From 35deaefe2a198508903c5657a0fa7cb2ad60f56d Mon Sep 17 00:00:00 2001 From: guowenxue <guowenxue@gmail.com> Date: Wed, 17 Jul 2024 14:20:23 +0800 Subject: [PATCH] Patch:IGKBoard-IMX8MP: Add WM8960 audio codec support --- kernel/patches/igkboard-imx8mp/linux-imx-lf-6.1.36-2.1.0.patch | 82 ++++++++++++++++++++++++++++++++++++++--- 1 files changed, 76 insertions(+), 6 deletions(-) diff --git a/kernel/patches/igkboard-imx8mp/linux-imx-lf-6.1.36-2.1.0.patch b/kernel/patches/igkboard-imx8mp/linux-imx-lf-6.1.36-2.1.0.patch index 9a930f9..733e728 100644 --- a/kernel/patches/igkboard-imx8mp/linux-imx-lf-6.1.36-2.1.0.patch +++ b/kernel/patches/igkboard-imx8mp/linux-imx-lf-6.1.36-2.1.0.patch @@ -10,10 +10,10 @@ +dtb-$(CONFIG_ARCH_MXC) += igkboard-imx8mp.dtb diff --git a/arch/arm64/boot/dts/freescale/igkboard-imx8mp.dts b/arch/arm64/boot/dts/freescale/igkboard-imx8mp.dts new file mode 100644 -index 000000000..8ce653b69 +index 000000000..ce38a5b4a --- /dev/null +++ b/arch/arm64/boot/dts/freescale/igkboard-imx8mp.dts -@@ -0,0 +1,712 @@ +@@ -0,0 +1,782 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Device Tree Source for LingYun IGKBoard(IoT Gateway Kits Board) - imx8mp @@ -105,6 +105,25 @@ + gpios = <&gpio5 27 GPIO_ACTIVE_LOW>; + linux,code = <BTN_4>; + }; ++ }; ++ ++ sound-wm8960 { ++ compatible = "fsl,imx-audio-wm8960"; ++ model = "wm8960-audio"; ++ audio-cpu = <&sai3>; ++ audio-codec = <&codec>; ++ audio-asrc = <&easrc>; ++ //hp-det-gpio = <&gpio4 29 0>; ++ audio-routing = ++ "Headphone Jack", "HP_L", ++ "Headphone Jack", "HP_R", ++ "Ext Spk", "SPK_LP", ++ "Ext Spk", "SPK_LN", ++ "Ext Spk", "SPK_RP", ++ "Ext Spk", "SPK_RN", ++ "LINPUT1", "Mic Jack", ++ "LINPUT3", "Mic Jack", ++ "Mic Jack", "MICB"; + }; +}; + @@ -272,10 +291,12 @@ + pinctrl-0 = <&pinctrl_i2c2>; + status = "okay"; + -+ rtc1208@6f { -+ compatible = "isil,isl1208"; -+ reg = <0x6f>; -+ status = "okay"; ++ codec: wm8960@1a { ++ compatible = "wlf,wm8960"; ++ reg = <0x1a>; ++ clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIO_BLK_CTRL_SAI3_MCLK1>; ++ clock-names = "mclk"; ++ wlf,shared-lrclk; + }; + + ms1112@4a { @@ -299,6 +320,44 @@ + ti,mode = <1>; + }; + }; ++ ++ rtc1208@6f { ++ compatible = "isil,isl1208"; ++ reg = <0x6f>; ++ status = "okay"; ++ }; ++}; ++ ++/*+------------------------+ ++ | WM8960 Audio Codec | ++ +------------------------+*/ ++ ++&sai3 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_sai3>; ++ assigned-clocks = <&clk IMX8MP_CLK_SAI3>; ++ assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL1_OUT>; ++ assigned-clock-rates = <12288000>; ++ clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIO_BLK_CTRL_SAI3_IPG>, <&clk IMX8MP_CLK_DUMMY>, ++ <&audio_blk_ctrl IMX8MP_CLK_AUDIO_BLK_CTRL_SAI3_MCLK1>, <&clk IMX8MP_CLK_DUMMY>, ++ <&clk IMX8MP_CLK_DUMMY>; ++ clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3"; ++ fsl,sai-mclk-direction-output; ++ status = "okay"; ++}; ++ ++&easrc { ++ fsl,asrc-rate = <48000>; ++ status = "okay"; ++}; ++ ++&xcvr { ++ #sound-dai-cells = <0>; ++ status = "okay"; ++}; ++ ++&sdma2 { ++ status = "okay"; +}; + +/*+------------------------+ @@ -592,6 +651,17 @@ + >; + }; + ++ pinctrl_sai3: sai3grp { ++ fsl,pins = < ++ MX8MP_IOMUXC_SAI3_TXFS__AUDIOMIX_SAI3_TX_SYNC 0xd6 ++ MX8MP_IOMUXC_SAI3_TXC__AUDIOMIX_SAI3_TX_BCLK 0xd6 ++ MX8MP_IOMUXC_SAI3_RXD__AUDIOMIX_SAI3_RX_DATA00 0xd6 ++ MX8MP_IOMUXC_SAI3_TXD__AUDIOMIX_SAI3_TX_DATA00 0xd6 ++ MX8MP_IOMUXC_SAI3_MCLK__AUDIOMIX_SAI3_MCLK 0xd6 ++ MX8MP_IOMUXC_SAI3_RXC__GPIO4_IO29 0xd6 ++ >; ++ }; ++ + pinctrl_pmic: pmicirq { + fsl,pins = < + MX8MP_IOMUXC_GPIO1_IO03__GPIO1_IO03 0x41 -- Gitblit v1.9.1