[PATCH 4/4] arm64: dts: imx8mp-beacon: Add DMIC support

Adam Ford aford173 at gmail.com
Thu Aug 31 05:34:39 PDT 2023


On Thu, Aug 31, 2023 at 6:51 AM Adam Ford <aford173 at gmail.com> 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 at gmail.com>
>

Shawn,

I forgot to mention that this patch depends on a different patch that is found:

https://patchwork.kernel.org/project/linux-arm-kernel/patch/20230831044431.250338-2-aford173@gmail.com/

Sorry about that.

adam

> diff --git a/arch/arm64/boot/dts/freescale/imx8mp-beacon-kit.dts b/arch/arm64/boot/dts/freescale/imx8mp-beacon-kit.dts
> index acd265d8b58e..ee64c6ffb551 100644
> --- a/arch/arm64/boot/dts/freescale/imx8mp-beacon-kit.dts
> +++ b/arch/arm64/boot/dts/freescale/imx8mp-beacon-kit.dts
> @@ -49,6 +49,12 @@ ss_ep: endpoint {
>                 };
>         };
>
> +       dmic_codec: dmic-codec {
> +               compatible = "dmic-codec";
> +               num-channels = <1>;
> +               #sound-dai-cells = <0>;
> +       };
> +
>         gpio-keys {
>                 compatible = "gpio-keys";
>                 autorepeat;
> @@ -147,6 +153,22 @@ reg_usb1_host_vbus: regulator-usb1-vbus {
>                 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";
> @@ -174,6 +196,11 @@ simple-audio-card,codec {
>         };
>  };
>
> +&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>;
> @@ -364,6 +391,15 @@ hd3ss3220_out_ep: endpoint {
>         };
>  };
>
> +&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>;
> @@ -545,6 +581,13 @@ MX8MP_IOMUXC_SAI2_RXFS__GPIO4_IO21 0x10    /* PCIe_nRST */
>                 >;
>         };
>
> +       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
> --
> 2.39.2
>



More information about the linux-arm-kernel mailing list