]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
arm64: dts: imx943-evk: Add PDM microphone sound card support
authorShengjiu Wang <shengjiu.wang@nxp.com>
Wed, 28 May 2025 01:58:37 +0000 (09:58 +0800)
committerShawn Guo <shawnguo@kernel.org>
Mon, 30 Jun 2025 03:30:40 +0000 (11:30 +0800)
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@nxp.com>
Reviewed-by: Frank Li <Frank.Li@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
arch/arm64/boot/dts/freescale/imx943-evk.dts

index 85cec644dd92675a6cca65a4129095da8b14ae15..c8c3eff9df1a23c52e74bf2bc5d4ba543bb5a65b 100644 (file)
                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>;
                };
        };
 
+       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>;
                                        gpio-hog;
                                        output-high;
                                };
+
+                               mqs-mic-sel-hog {
+                                       gpios = <11 GPIO_ACTIVE_HIGH>;
+                                       gpio-hog;
+                                       output-low;
+                               };
                        };
                };
 
                                #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;
        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>,
                >;
        };
 
+       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