diff mbox series

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

Message ID 20230831115128.254226-4-aford173@gmail.com (mailing list archive)
State New, archived
Headers show
Series [1/4] arm64: dts: imx8mm-beacon: Migrate sound card to simple-audio-card | expand

Commit Message

Adam Ford Aug. 31, 2023, 11:51 a.m. UTC
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>

Comments

Adam Ford Aug. 31, 2023, 12:34 p.m. UTC | #1
On Thu, Aug 31, 2023 at 6:51 AM Adam Ford <aford173@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@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
>
kernel test robot Aug. 31, 2023, 11:13 p.m. UTC | #2
Hi Adam,

kernel test robot noticed the following build errors:

[auto build test ERROR on robh/for-next]
[also build test ERROR on arm/for-next arm64/for-next/core kvmarm/next rockchip/for-next shawnguo/for-next soc/for-next linus/master v6.5 next-20230831]
[cannot apply to arm/fixes]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Adam-Ford/arm64-dts-imx8mm-beacon-Add-DMIC-support/20230831-195442
base:   https://git.kernel.org/pub/scm/linux/kernel/git/robh/linux.git for-next
patch link:    https://lore.kernel.org/r/20230831115128.254226-4-aford173%40gmail.com
patch subject: [PATCH 4/4] arm64: dts: imx8mp-beacon: Add DMIC support
config: arm64-defconfig (https://download.01.org/0day-ci/archive/20230901/202309010735.D668npQl-lkp@intel.com/config)
compiler: aarch64-linux-gcc (GCC) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20230901/202309010735.D668npQl-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202309010735.D668npQl-lkp@intel.com/

All errors (new ones prefixed by >>):

>> Error: arch/arm64/boot/dts/freescale/imx8mp-beacon-kit.dts:394.1-8 Label or path micfil not found
>> FATAL ERROR: Syntax error parsing input tree
diff mbox series

Patch

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