[PATCH v2 3/3] arm64: dts: imx91-9x9-qsb: Add PDM microphone sound card support

Frank Li Frank.li at oss.nxp.com
Fri Jul 10 08:50:19 PDT 2026


On Fri, Jul 10, 2026 at 11:42:04AM +0900, Chancel Liu wrote:
> From: Chancel Liu <chancel.liu at nxp.com>
>
> Add PDM microphone sound card support, configure the pinmux.
>
> This sound card supports recording sound from PDM microphone and
> convert the PDM format data to PCM data.
>
> Signed-off-by: Chancel Liu <chancel.liu at nxp.com>
> ---
>  .../boot/dts/freescale/imx91-9x9-qsb.dts      | 44 +++++++++++++++++++
>  1 file changed, 44 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/freescale/imx91-9x9-qsb.dts b/arch/arm64/boot/dts/freescale/imx91-9x9-qsb.dts
> index e5983bb083ea..2f663b1f7c56 100644
> --- a/arch/arm64/boot/dts/freescale/imx91-9x9-qsb.dts
> +++ b/arch/arm64/boot/dts/freescale/imx91-9x9-qsb.dts
> @@ -79,6 +79,18 @@ sai1_fun: sai1-grp {
>  		};
>  	};
>
> +	dmic: dmic {


Is it order? look like it is after pinctrl-gpiomux, can you try best to
keep nodename orderred.

Frank


> +		compatible = "dmic-codec";
> +		#sound-dai-cells = <0>;
> +		num-channels = <4>;
> +
> +		port {
> +			dmic_ep: endpoint {
> +				remote-endpoint = <&micfil_ep>;
> +			};
> +		};
> +	};
> +
>  	reg_vref_1v8: regulator-adc-vref {
>  		compatible = "regulator-fixed";
>  		regulator-name = "vref_1v8";
> @@ -111,6 +123,12 @@ linux,cma {
>  		};
>  	};
>
> +	sound-micfil {
> +		compatible = "audio-graph-card2";
> +		label = "micfil-audio";
> +		links = <&micfil_port>;
> +	};
> +
>  	sound-wm8524 {
>  		compatible = "audio-graph-card2";
>  		label = "wm8524-audio";
> @@ -202,6 +220,14 @@ MX91_PAD_CCM_CLKO1__GPIO3_IO26                          0x31e
>  		>;
>  	};
>
> +	pinctrl_pdm: pdmgrp {
> +		fsl,pins = <
> +			MX91_PAD_PDM_CLK__PDM_CLK				0x31e
> +			MX91_PAD_PDM_BIT_STREAM0__PDM_BIT_STREAM0		0x31e
> +			MX91_PAD_PDM_BIT_STREAM1__PDM_BIT_STREAM1		0x31e
> +		>;
> +	};
> +
>  	pinctrl_reg_usdhc2_vmmc: regusdhc2vmmcgrp {
>  		fsl,pins = <
>  			MX91_PAD_SD2_RESET_B__GPIO3_IO7                         0x31e
> @@ -464,6 +490,24 @@ &lpuart1 {
>  	status = "okay";
>  };
>
> +&micfil {
> +	#sound-dai-cells = <0>;
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&pinctrl_pdm>, <&pdm_fun>;
> +	assigned-clocks = <&clk IMX93_CLK_PDM>;
> +	assigned-clock-parents = <&clk IMX93_CLK_AUDIO_PLL>;
> +	assigned-clock-rates = <49152000>;
> +	status = "okay";
> +
> +	micfil_port: port {
> +		capture-only;
> +
> +		micfil_ep: endpoint {
> +			remote-endpoint = <&dmic_ep>;
> +		};
> +	};
> +};
> +
>  &sai1 {
>  	#sound-dai-cells = <0>;
>  	pinctrl-names = "default";
> --
> 2.50.1
>
>



More information about the linux-arm-kernel mailing list