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

index 313e93663d6ff117e78665017b5001692cf9e1c3..6086dae2e5fbef37e9a583860b6fa9af57970e76 100644 (file)
@@ -6,6 +6,13 @@
 #include <dt-bindings/phy/phy-imx8-pcie.h>
 
 / {
+
+       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 IMX8MM_CLK_PDM>;
+       assigned-clock-parents = <&clk IMX8MM_AUDIO_PLL1_OUT>;
+       assigned-clock-rates = <49152000>;
+       status = "okay";
+};
+
 &mipi_csi {
        status = "okay";
        ports {
                >;
        };
 
+       pinctrl_pdm: pdmgrp {
+               fsl,pins = <
+                       MX8MM_IOMUXC_SAI5_RXC_PDM_CLK   0xd6
+                       MX8MM_IOMUXC_SAI5_RXD0_PDM_DATA0        0xd6
+               >;
+       };
+
        pinctrl_reg_usb_otg1: usbotg1grp {
                fsl,pins = <
                        MX8MM_IOMUXC_SAI3_RXC_GPIO4_IO29     0x19