arm64: dts: imx8mn-beacon: Add DMIC support
authorAdam Ford <aford173@gmail.com>
Sun, 8 Oct 2023 14:02:37 +0000 (09:02 -0500)
committerShawn Guo <shawnguo@kernel.org>
Tue, 10 Oct 2023 03:06:02 +0000 (11:06 +0800)
The baseboard has a connector for a pulse density microphone.
This is connected via the micfil interface and uses the DMIC
audio codec with the simple-audio-card.

Signed-off-by: Adam Ford <aford173@gmail.com>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
arch/arm64/boot/dts/freescale/imx8mn-beacon-baseboard.dtsi

index 16761975f56e3ec0d701aa7f2ed26e733bf153cb..20018ee2c803e334573cb5bf1015f5df0d1a0c9b 100644 (file)
@@ -4,6 +4,12 @@
  */
 
 / {
+       dmic_codec: dmic-codec {
+               compatible = "dmic-codec";
+               num-channels = <1>;
+               #sound-dai-cells = <0>;
+       };
+
        leds {
                compatible = "gpio-leds";
 
                enable-active-high;
        };
 
+       sound-dmic {
+               compatible = "simple-audio-card";
+               simple-audio-card,name = "dmic";
+               simple-audio-card,format = "pdm";
+               simple-audio-card,bitclock-master = <&dailink_master>;
+               simple-audio-card,frame-master = <&dailink_master>;
+
+               dailink_master: simple-audio-card,cpu {
+                       sound-dai = <&micfil>;
+               };
+
+               simple-audio-card,codec {
+                       sound-dai = <&dmic_codec>;
+               };
+       };
+
        sound-wm8962 {
                compatible = "simple-audio-card";
                simple-audio-card,name = "wm8962";
        };
 };
 
+&micfil {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pdm>;
+       assigned-clocks = <&clk IMX8MN_CLK_PDM>;
+       assigned-clock-parents = <&clk IMX8MN_AUDIO_PLL1_OUT>;
+       assigned-clock-rates = <49152000>;
+       status = "okay";
+};
+
 &sai3 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_sai3>;
                >;
        };
 
+       pinctrl_pdm: pdmgrp {
+               fsl,pins = <
+                       MX8MN_IOMUXC_SAI5_RXC_PDM_CLK   0xd6
+                       MX8MN_IOMUXC_SAI5_RXD0_PDM_BIT_STREAM0  0xd6
+               >;
+       };
+
        pinctrl_reg_usb_otg: reg-otggrp {
                fsl,pins = <
                        MX8MN_IOMUXC_SAI3_RXC_GPIO4_IO29     0x19