Re: [PATCH 2/4] arm64: dts: imx8mm-beacon: Add DMIC support

From: Shawn Guo
Date: Sun Sep 24 2023 - 21:15:10 EST


On Thu, Aug 31, 2023 at 06:51:26AM -0500, Adam Ford wrote:
> 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@xxxxxxxxx>
>
> diff --git a/arch/arm64/boot/dts/freescale/imx8mm-beacon-baseboard.dtsi b/arch/arm64/boot/dts/freescale/imx8mm-beacon-baseboard.dtsi
> index 313e93663d6f..d0dd4c81a557 100644
> --- a/arch/arm64/boot/dts/freescale/imx8mm-beacon-baseboard.dtsi
> +++ b/arch/arm64/boot/dts/freescale/imx8mm-beacon-baseboard.dtsi
> @@ -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";
>
> @@ -98,6 +105,22 @@ reg_usdhc2_vmmc: regulator-usdhc2 {
> 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";
> @@ -228,6 +251,16 @@ pca6416_1: gpio@21 {
> };
> };
>
> +&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";

We usually end property list with 'status'.

Shawn

> + #sound-dai-cells = <0>;
> +};
> +
> &mipi_csi {
> status = "okay";
> ports {
> @@ -365,6 +398,13 @@ MX8MM_IOMUXC_SAI2_MCLK_GPIO4_IO27 0x19
> >;
> };
>
> + 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
> --
> 2.39.2
>