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

From: Frank Li

Date: Wed Jul 08 2026 - 16:43:39 EST


On Tue, Jul 07, 2026 at 03:57:24PM +0900, chancel.liu@xxxxxxxxxxx wrote:
> From: Chancel Liu <chancel.liu@xxxxxxx>
>
> Add WM8524 sound card support which connects to SAI1.
>
> Signed-off-by: Chancel Liu <chancel.liu@xxxxxxx>
> ---
> .../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@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
>
>