[PATCH 6/6] arm64: dts: imx943-evk: Add PDM microphone sound card support

Frank Li Frank.li at nxp.com
Mon May 19 12:09:33 PDT 2025


On Thu, May 15, 2025 at 01:19:00PM +0800, Shengjiu Wang wrote:
> Add PDM micphone 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: Shengjiu Wang <shengjiu.wang at nxp.com>

Reviewed-by: Frank Li <Frank.Li at nxp.com>

> ---
>  arch/arm64/boot/dts/freescale/imx943-evk.dts | 60 ++++++++++++++++++++
>  1 file changed, 60 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/freescale/imx943-evk.dts b/arch/arm64/boot/dts/freescale/imx943-evk.dts
> index 85cec644dd92..c8c3eff9df1a 100644
> --- a/arch/arm64/boot/dts/freescale/imx943-evk.dts
> +++ b/arch/arm64/boot/dts/freescale/imx943-evk.dts
> @@ -29,6 +29,11 @@ chosen {
>  		stdout-path = &lpuart1;
>  	};
>
> +	dmic: dmic {
> +		compatible = "dmic-codec";
> +		#sound-dai-cells = <0>;
> +	};
> +
>  	reg_usdhc2_vmmc: regulator-usdhc2 {
>  		compatible = "regulator-fixed";
>  		off-on-delay-us = <12000>;
> @@ -83,6 +88,24 @@ btcpu: simple-audio-card,cpu {
>  		};
>  	};
>
> +	sound-micfil {
> +		compatible = "fsl,imx-audio-card";
> +		model = "micfil-audio";
> +
> +		pri-dai-link {
> +			format = "i2s";
> +			link-name = "micfil hifi";
> +
> +			codec {
> +				sound-dai = <&dmic>;
> +			};
> +
> +			cpu {
> +				sound-dai = <&micfil>;
> +			};
> +		};
> +	};
> +
>  	sound-wm8962 {
>  		compatible = "fsl,imx-audio-wm8962";
>  		audio-codec = <&wm8962>;
> @@ -204,6 +227,12 @@ audio-pwren-hog {
>  					gpio-hog;
>  					output-high;
>  				};
> +
> +				mqs-mic-sel-hog {
> +					gpios = <11 GPIO_ACTIVE_HIGH>;
> +					gpio-hog;
> +					output-low;
> +				};
>  			};
>  		};
>
> @@ -314,6 +343,13 @@ pcal6416_i2c6_u44: gpio at 20 {
>  				#gpio-cells = <2>;
>  				gpio-controller;
>
> +				/* pdm selection */
> +				can-pdm-sel-hog {
> +					gpios = <12 GPIO_ACTIVE_HIGH>;
> +					gpio-hog;
> +					output-low;
> +				};
> +
>  				sai3-sel-hog {
>  					gpios = <11 GPIO_ACTIVE_HIGH>;
>  					gpio-hog;
> @@ -344,6 +380,22 @@ &lpuart1 {
>  	status = "okay";
>  };
>
> +&micfil {
> +	assigned-clocks = <&scmi_clk IMX94_CLK_AUDIOPLL1_VCO>,
> +			  <&scmi_clk IMX94_CLK_AUDIOPLL2_VCO>,
> +			  <&scmi_clk IMX94_CLK_AUDIOPLL1>,
> +			  <&scmi_clk IMX94_CLK_AUDIOPLL2>,
> +			  <&scmi_clk IMX94_CLK_PDM>;
> +	assigned-clock-parents = <0>, <0>, <0>, <0>,
> +				 <&scmi_clk IMX94_CLK_AUDIOPLL1>;
> +	assigned-clock-rates = <3932160000>,
> +			       <3612672000>, <393216000>,
> +			       <361267200>, <49152000>;
> +	pinctrl-0 = <&pinctrl_pdm>;
> +	pinctrl-names = "default";
> +	status = "okay";
> +};
> +
>  &sai1 {
>  	assigned-clocks = <&scmi_clk IMX94_CLK_AUDIOPLL1_VCO>,
>  			  <&scmi_clk IMX94_CLK_AUDIOPLL2_VCO>,
> @@ -413,6 +465,14 @@ IMX94_PAD_GPIO_IO28__LPI2C6_SCL		0x40000b9e
>  		>;
>  	};
>
> +	pinctrl_pdm: pdmgrp {
> +		fsl,pins = <
> +			IMX94_PAD_PDM_CLK__PDM_CLK			0x31e
> +			IMX94_PAD_PDM_BIT_STREAM0__PDM_BIT_STREAM0	0x31e
> +			IMX94_PAD_PDM_BIT_STREAM1__PDM_BIT_STREAM1	0x31e
> +		>;
> +	};
> +
>  	pinctrl_sai1: sai1grp {
>  		fsl,pins = <
>  			IMX94_PAD_SAI1_TXFS__SAI1_TX_SYNC	0x31e
> --
> 2.34.1
>



More information about the linux-arm-kernel mailing list