[PATCH 5/6] arm64: dts: imx91-9x9-qsb: Add WM8524 sound card support

Frank Li Frank.li at oss.nxp.com
Wed Jul 8 13:37:36 PDT 2026


On Tue, Jul 07, 2026 at 03:57:24PM +0900, chancel.liu at oss.nxp.com wrote:
> From: Chancel Liu <chancel.liu at nxp.com>
>
> Add WM8524 sound card support which connects to SAI1.
>
> Signed-off-by: Chancel Liu <chancel.liu at nxp.com>
> ---
>  .../boot/dts/freescale/imx91-9x9-qsb.dts      | 67 +++++++++++++++++++
>  1 file changed, 67 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/freescale/imx91-9x9-qsb.dts b/arch/arm64/boot/dts/freescale/imx91-9x9-qsb.dts
> index 1f2d8082d255..c5b9dfee95eb 100644
> --- a/arch/arm64/boot/dts/freescale/imx91-9x9-qsb.dts
> +++ b/arch/arm64/boot/dts/freescale/imx91-9x9-qsb.dts
> @@ -110,6 +110,28 @@ linux,cma {
>  			linux,cma-default;
>  		};
>  	};
> +
> +	sound-wm8524 {
> +		compatible = "audio-graph-card2";
> +		label = "wm8524-audio";
> +		links = <&sai1_port1>;
> +		widgets = "Line", "Line Out Jack";
> +		routing =
> +			"Line Out Jack", "LINEVOUTL",
> +			"Line Out Jack", "LINEVOUTR";
> +	};
> +
> +	wm8524: audio-codec {
> +		#sound-dai-cells = <0>;
> +		compatible = "wlf,wm8524";

compatible should first property

> +		wlf,mute-gpios = <&pcal6524 2 GPIO_ACTIVE_LOW>;
> +
> +		port {
> +			codec_ep: endpoint {
> +				remote-endpoint = <&sai1_ep1>;
> +			};
> +		};
> +	};
>  };
>
>  &adc1 {
> @@ -186,6 +208,15 @@ MX91_PAD_SD2_RESET_B__GPIO3_IO7                         0x31e
>  		>;
>  	};
>
> +	pinctrl_sai1: sai1grp {
> +		fsl,pins = <
> +			MX91_PAD_SAI1_TXC__SAI1_TX_BCLK				0x31e
> +			MX91_PAD_SAI1_TXFS__SAI1_TX_SYNC			0x31e
> +			MX91_PAD_SAI1_TXD0__SAI1_TX_DATA0			0x31e
> +			MX91_PAD_SAI1_RXD0__SAI1_MCLK				0x31e
> +		>;
> +	};
> +
>  	pinctrl_uart1: uart1grp {
>  		fsl,pins = <
>  			MX91_PAD_UART1_RXD__LPUART1_RX                          0x31e
> @@ -433,6 +464,42 @@ &lpuart1 {
>  	status = "okay";
>  };
>
> +&sai1 {
> +	#sound-dai-cells = <0>;
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&pinctrl_sai1>, <&sai1_fun>, <&sai1_enable>;
> +	assigned-clocks = <&clk IMX93_CLK_SAI1>;
> +	assigned-clock-parents = <&clk IMX93_CLK_AUDIO_PLL>;
> +	assigned-clock-rates = <24576000>;
> +	fsl,sai-mclk-direction-output;

vendor property should be last but before status

Frank
> +	clocks = <&clk IMX93_CLK_SAI1_IPG>, <&clk IMX93_CLK_DUMMY>,
> +		 <&clk IMX93_CLK_SAI1_GATE>, <&clk IMX93_CLK_DUMMY>,
> +		 <&clk IMX93_CLK_DUMMY>, <&clk IMX93_CLK_AUDIO_PLL>;
> +	clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3", "pll8k";
> +	status = "okay";
> +
> +	ports {
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +
> +		sai1_port1: port at 1 {
> +			reg = <1>;
> +			playback-only;
> +
> +			sai1_ep1: endpoint {
> +				dai-format = "i2s";
> +				dai-tdm-slot-num = <2>;
> +				dai-tdm-slot-width = <32>;
> +				bitclock-master;
> +				frame-master;
> +				mclk-fs = <256>;
> +				system-clock-direction-out;
> +				remote-endpoint = <&codec_ep>;
> +			};
> +		};
> +	};
> +};
> +
>  &usbotg1 {
>  	adp-disable;
>  	disable-over-current;
> --
> 2.50.1
>
>



More information about the linux-arm-kernel mailing list