[PATCH] Support for MAX98090/91 codec in iMX8MM evk

Hardevsinh Palaniya hardevsinh.palaniya at siliconsignals.io
Thu Jan 12 21:50:30 PST 2023


>From d2001cdbc2fda3345af307b4cf3d0f2e53d80c35 Mon Sep 17 00:00:00 2001
From: Hardevsinh Palaniya <hardevsinh.palaniya at siliconsignals.io>
Date: Fri, 13 Jan 2023 11:01:22 +0530
Subject: [PATCH] Add dts to support MAX98090/91 with i.MX8MM-evk

- Add sound-max98090 node to support external codec MAX98090/91
- Use i2c3 for i2c communicate with codec
- Use sai5 for i2s communication

Signed-off-by: Hardevsinh Palaniya <hardevsinh.palaniya at siliconsignals.io>

diff --git a/arch/arm64/boot/dts/freescale/imx8mm-evk-max98090-91.dts b/arch/arm64/boot/dts/freescale/imx8mm-evk-max98090-91.dts
new file mode 100644
index 000000000000..d053c586514a
--- /dev/null
+++ b/arch/arm64/boot/dts/freescale/imx8mm-evk-max98090-91.dts
@@ -0,0 +1,65 @@
+#include "imx8mm-evk.dtsi"
+
+/ {
+	sound-max98090 {
+		compatible = "simple-audio-card";
+		simple-audio-card,name = "max98090-audio";
+		simple-audio-card,format = "i2s";
+		simple-audio-card,frame-master = <&cpudai>;
+		simple-audio-card,bitclock-master = <&cpudai>;
+		simple-audio-card,widgets = "Speakers", "Speakers";
+		simple-audio-card,routing =
+				"Speakers", "SPKR",
+				"Speakers", "SPKL",
+				"IN1", "MICBIAS",
+				"MIC1","IN1",
+				"MIC2","IN1";
+
+		cpudai: simple-audio-card,cpu {
+			sound-dai = <&sai5>;
+			dai-tdm-slot-num = <2>;
+			dai-tdm-slot-width = <32>;
+		};
+
+		simple-audio-card,codec {
+			sound-dai = <&max98090>;
+			clocks = <&clk IMX8MM_CLK_SAI5_ROOT>;
+		};
+	};
+}
+
+&i2c3 {
+	max98090: audio-codec at 10 {
+		compatible = "maxim,max98090","maxim,max98091";
+		#sound-dai-ceddlls = <0>;
+		reg = <0x10>;
+		clocks = <&clk IMX8MM_CLK_SAI5_ROOT>;
+		clock-names = "mclk";
+	};
+}
+
+&sai5 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_sai5>;
+	assigned-clocks = <&clk IMX8MM_CLK_SAI5>;
+	assigned-clock-parents = <&clk IMX8MM_AUDIO_PLL1_OUT>;
+	assigned-clock-rates = <24576000>;
+	clocks = <&clk IMX8MM_CLK_SAI5_IPG>, <&clk IMX8MM_CLK_DUMMY>,
+		<&clk IMX8MM_CLK_SAI5_ROOT>, <&clk IMX8MM_CLK_DUMMY>,
+		<&clk IMX8MM_CLK_DUMMY>, <&clk IMX8MM_AUDIO_PLL1_OUT>,
+		<&clk IMX8MM_AUDIO_PLL2_OUT>;
+	clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3", "pll8k", "pll11k";
+	status = "okay";
+};
+
+&iomuxc {
+	pinctrl_sai5: sai5grp {
+		fsl,pins = <
+			MX8MM_IOMUXC_SAI5_MCLK_SAI5_MCLK        0xd6
+			MX8MM_IOMUXC_SAI5_RXD2_SAI5_TX_BCLK     0xd6
+			MX8MM_IOMUXC_SAI5_RXD1_SAI5_TX_SYNC     0xd6
+			MX8MM_IOMUXC_SAI5_RXD0_SAI5_RX_DATA0    0xd6
+			MX8MM_IOMUXC_SAI5_RXD3_SAI5_TX_DATA0    0xd6
+		>;
+	}
+}
-- 
2.25.1
________________________________________
From: Daniel Baluta <daniel.baluta at gmail.com>
Sent: Wednesday, January 11, 2023 5:26 PM
To: Hardevsinh Palaniya; Daniel Baluta
Cc: robh+dt at kernel.org; krzysztof.kozlowski+dt at linaro.org; shawnguo at kernel.org; s.hauer at pengutronix.de; kernel at pengutronix.de; festevam at gmail.com; linux-imx at nxp.com; lgirdwood at gmail.com; broonie at kernel.org; perex at perex.cz; tiwai at suse.com; peng.fan at nxp.com; m.felsch at pengutronix.de; shengjiu.wang at nxp.com; Markus.Niebel at ew.tq-group.com; hongxing.zhu at nxp.com; tommaso.merciai at amarulasolutions.com; jun.li at nxp.com; ckeepax at opensource.cirrus.com; rf at opensource.cirrus.com; povik+lin at cutebit.org; pierre-louis.bossart at linux.intel.com; james.schulman at cirrus.com; flatmax at flatmax.com; srinivas.kandagatla at linaro.org; ryan.lee.analog at gmail.com; devicetree at vger.kernel.org; linux-arm-kernel at lists.infradead.org; linux-kernel at vger.kernel.org; alsa-devel at alsa-project.org
Subject: Re: [PATCH] Support for MAX98090/91 codec in iMX8MM evk


 > I have added support for the external codec MAX98091 with I.MX8MM-EVK.

Please fix your email client to start sending email in text format only.

Now, going back to the matter at hand.

I do think that for an external codec we should find a smarter way of enabling it.

What would happen if you enable MAX codec in the dts but expander board is not plugged in?

Maybe create a separate dts which includes imx8mm-evk.dtsi?





More information about the linux-arm-kernel mailing list