From: Hardevsinh Palaniya hardevsinh.palaniya@siliconsignals.io Date: Sat, 7 Jan 2023 17:08:28 +0530 Subject: [PATCH] Support for MAX98090/91 codec in iMX8MM evk
- Adding node for MAX98090/91 in dts imx8mm-evk.dtsi - Adding tristate option in <sound/soc/codecs/Kconfig>
Signed-off-by: Hardevsinh Palaniya hardevsinh.palaniya@siliconsignals.io
diff --git a/arch/arm64/boot/dts/freescale/imx8mm-evk.dtsi b/arch/arm64/boot/dts/freescale/imx8mm-evk.dtsi index e0b604ac0da4..58ff63cbc930 100644 --- a/arch/arm64/boot/dts/freescale/imx8mm-evk.dtsi +++ b/arch/arm64/boot/dts/freescale/imx8mm-evk.dtsi @@ -132,6 +132,32 @@ simple-audio-card,codec { clocks = <&clk IMX8MM_CLK_SAI3_ROOT>; }; }; + + 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>; + }; + }; };
&A53_0 { @@ -339,6 +365,14 @@ &i2c3 { pinctrl-0 = <&pinctrl_i2c3>; status = "okay";
+ max98090: max98090@10 { + #sound-dai-cells = <0>; + compatible = "maxim,max98090"; + reg = <0x10>; + clocks = <&clk IMX8MM_CLK_SAI5_ROOT>; + clock-names = "mclk"; + }; + pca6416: gpio@20 { compatible = "ti,tca6416"; reg = <0x20>; @@ -391,6 +425,20 @@ &sai3 { status = "okay"; };
+&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"; +}; + &snvs_pwrkey { status = "okay"; }; @@ -552,6 +600,16 @@ MX8MM_IOMUXC_SAI3_TXD_SAI3_TX_DATA0 0xd6 >; };
+ 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 + >; + } + pinctrl_typec1: typec1grp { fsl,pins = < MX8MM_IOMUXC_SD1_STROBE_GPIO2_IO11 0x159 diff --git a/sound/soc/codecs/Kconfig b/sound/soc/codecs/Kconfig index 0f9d71490075..efef2df362a4 100644 --- a/sound/soc/codecs/Kconfig +++ b/sound/soc/codecs/Kconfig @@ -1009,7 +1009,7 @@ config SND_SOC_MAX98088 depends on I2C
config SND_SOC_MAX98090 - tristate + tristate "Maxim MAX98090/1, Stereo Audio Codec" depends on I2C
config SND_SOC_MAX98095 -- 2.25.1