[PATCH v2 4/4] arm64: dts: imx952-evk: Add PDM microphone sound card support
From: Shengjiu Wang
Date: Sun Mar 15 2026 - 22:13:08 EST
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@xxxxxxx>
Reviewed-by: Daniel Baluta <daniel.baluta@xxxxxxx>
---
arch/arm64/boot/dts/freescale/imx952-evk.dts | 54 ++++++++++++++++++++
1 file changed, 54 insertions(+)
diff --git a/arch/arm64/boot/dts/freescale/imx952-evk.dts b/arch/arm64/boot/dts/freescale/imx952-evk.dts
index 2615fbb63145..62d1c1c7c501 100644
--- a/arch/arm64/boot/dts/freescale/imx952-evk.dts
+++ b/arch/arm64/boot/dts/freescale/imx952-evk.dts
@@ -52,6 +52,12 @@ chosen {
stdout-path = &lpuart1;
};
+ dmic: dmic {
+ compatible = "dmic-codec";
+ #sound-dai-cells = <0>;
+ num-channels = <2>;
+ };
+
memory@80000000 {
device_type = "memory";
reg = <0x0 0x80000000 0 0x80000000>;
@@ -164,6 +170,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-asrc = <&asrc1>;
@@ -411,6 +435,22 @@ &lpspi7 {
status = "okay";
};
+&micfil {
+ assigned-clocks = <&scmi_clk IMX952_CLK_AUDIOPLL1_VCO>,
+ <&scmi_clk IMX952_CLK_AUDIOPLL2_VCO>,
+ <&scmi_clk IMX952_CLK_AUDIOPLL1>,
+ <&scmi_clk IMX952_CLK_AUDIOPLL2>,
+ <&scmi_clk IMX952_CLK_PDM>;
+ assigned-clock-parents = <0>, <0>, <0>, <0>,
+ <&scmi_clk IMX952_CLK_AUDIOPLL1>;
+ assigned-clock-rates = <3932160000>, <3612672000>,
+ <393216000>, <361267200>, <49152000>;
+ pinctrl-0 = <&pinctrl_pdm>;
+ pinctrl-1 = <&pinctrl_pdm_sleep>;
+ pinctrl-names = "default", "sleep";
+ status = "okay";
+};
+
&sai1 {
assigned-clocks = <&scmi_clk IMX952_CLK_AUDIOPLL1_VCO>,
<&scmi_clk IMX952_CLK_AUDIOPLL2_VCO>,
@@ -604,6 +644,20 @@ IMX952_PAD_GPIO_IO36__WAKEUPMIX_TOP_GPIO5_IO_16 0x31e
>;
};
+ pinctrl_pdm: pdmgrp {
+ fsl,pins = <
+ IMX952_PAD_PDM_CLK__AONMIX_TOP_PDM_CLK 0x31e
+ IMX952_PAD_PDM_BIT_STREAM0__AONMIX_TOP_PDM_BIT_STREAM_0 0x31e
+ >;
+ };
+
+ pinctrl_pdm_sleep: pdmsleepgrp {
+ fsl,pins = <
+ IMX952_PAD_PDM_CLK__AONMIX_TOP_GPIO1_IO_8 0x31e
+ IMX952_PAD_PDM_BIT_STREAM0__AONMIX_TOP_GPIO1_IO_9 0x31e
+ >;
+ };
+
pinctrl_ptn5110: ptn5110grp {
fsl,pins = <
IMX952_PAD_GPIO_IO34__WAKEUPMIX_TOP_GPIO5_IO_14 0x31e
--
2.34.1