arm64: dts: imx8mp-beacon: Add DMIC support
authorAdam Ford <aford173@gmail.com>
Sun, 8 Oct 2023 14:02:38 +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/imx8mp-beacon-kit.dts

index 5c90788ab6a1a9902d086d020c67a84cc216734f..0bea0798d2db25ed3dbe4167643843d836ea7634 100644 (file)
                };
        };
 
+       dmic_codec: dmic-codec {
+               compatible = "dmic-codec";
+               num-channels = <1>;
+               #sound-dai-cells = <0>;
+       };
+
        gpio-keys {
                compatible = "gpio-keys";
                autorepeat;
                enable-active-high;
        };
 
+       sound-dmic {
+               compatible = "simple-audio-card";
+               simple-audio-card,name = "sound-pdm";
+               simple-audio-card,format = "i2s";
+               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";
        };
 };
 
+&audio_blk_ctrl {
+       assigned-clocks = <&clk IMX8MP_AUDIO_PLL1>, <&clk IMX8MP_AUDIO_PLL2>;
+       assigned-clock-rates = <393216000>, <135475200>;
+};
+
 &ecspi2 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_ecspi2>;
        };
 };
 
+&micfil {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pdm>;
+       assigned-clocks = <&clk IMX8MP_CLK_PDM>;
+       assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL1_OUT>;
+       assigned-clock-rates = <49152000>;
+       status = "okay";
+};
+
 &pcie {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pcie>;
                >;
        };
 
+       pinctrl_pdm: pdmgrp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_SAI5_RXC__AUDIOMIX_PDM_CLK         0xd6
+                       MX8MP_IOMUXC_SAI5_RXD0__AUDIOMIX_PDM_BIT_STREAM00       0xd6
+               >;
+       };
+
        pinctrl_reg_usdhc2_vmmc: regusdhc2vmmcgrp {
                fsl,pins = <
                        MX8MP_IOMUXC_SD2_RESET_B__GPIO2_IO19    0x40