Configure the SAI device node, configure audio clock
and pinctrl.

Enable the audio sound card, which use the SAI1 and
wm8960, and enable headphone detection.

Signed-off-by: Shengjiu Wang <[email protected]>
---
 arch/arm/boot/dts/imx7d-sdb.dts | 81 +++++++++++++++++++++++++++++++++
 1 file changed, 81 insertions(+)

diff --git a/arch/arm/boot/dts/imx7d-sdb.dts b/arch/arm/boot/dts/imx7d-sdb.dts
index 17cca8a9f77b..b50b19f2d0f1 100644
--- a/arch/arm/boot/dts/imx7d-sdb.dts
+++ b/arch/arm/boot/dts/imx7d-sdb.dts
@@ -146,6 +146,24 @@ panel_in: endpoint {
                        };
                };
        };
+
+       sound {
+               compatible = "fsl,imx7d-evk-wm8960",
+                            "fsl,imx-audio-wm8960";
+               model = "wm8960-audio";
+               audio-cpu = <&sai1>;
+               audio-codec = <&codec>;
+               hp-det-gpio = <&gpio2 28 GPIO_ACTIVE_HIGH>;
+               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", "AMIC",
+                       "AMIC", "MICB";
+       };
 };
 
 &adc1 {
@@ -363,6 +381,13 @@ codec: wm8960@1a {
                clocks = <&clks IMX7D_AUDIO_MCLK_ROOT_CLK>;
                clock-names = "mclk";
                wlf,shared-lrclk;
+               wlf,hp-cfg = <2 2 3>;
+               wlf,gpio-cfg = <1 3>;
+               assigned-clocks = <&clks IMX7D_AUDIO_MCLK_ROOT_SRC>,
+                                 <&clks IMX7D_PLL_AUDIO_POST_DIV>,
+                                 <&clks IMX7D_AUDIO_MCLK_ROOT_CLK>;
+               assigned-clock-parents = <&clks IMX7D_PLL_AUDIO_POST_DIV>;
+               assigned-clock-rates = <0>, <884736000>, <12288000>;
        };
 };
 
@@ -391,6 +416,28 @@ &reg_1p2 {
        vin-supply = <&sw2_reg>;
 };
 
+&sai1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_sai1>;
+       assigned-clocks = <&clks IMX7D_SAI1_ROOT_SRC>,
+                         <&clks IMX7D_PLL_AUDIO_POST_DIV>,
+                         <&clks IMX7D_SAI1_ROOT_CLK>;
+       assigned-clock-parents = <&clks IMX7D_PLL_AUDIO_POST_DIV>;
+       assigned-clock-rates = <0>, <884736000>, <36864000>;
+       status = "okay";
+};
+
+&sai3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_sai3 &pinctrl_sai3_mclk>;
+       assigned-clocks = <&clks IMX7D_SAI3_ROOT_SRC>,
+                         <&clks IMX7D_PLL_AUDIO_POST_DIV>,
+                         <&clks IMX7D_SAI3_ROOT_CLK>;
+       assigned-clock-parents = <&clks IMX7D_PLL_AUDIO_POST_DIV>;
+       assigned-clock-rates = <0>, <884736000>, <36864000>;
+       status = "okay";
+};
+
 &snvs_pwrkey {
        status = "okay";
 };
@@ -550,6 +597,7 @@ MX7D_PAD_SD2_WP__GPIO5_IO10         0x59
                pinctrl_hog: hoggrp {
                        fsl,pins = <
                                MX7D_PAD_ECSPI2_SS0__GPIO4_IO23         0x34  
/* bt reg on */
+                               MX7D_PAD_EPDC_BDR0__GPIO2_IO28          0x59  
/* headphone detect */
                        >;
                };
 
@@ -615,6 +663,33 @@ MX7D_PAD_LCD_RESET__LCD_RESET              0x79
                        >;
                };
 
+               pinctrl_sai1: sai1grp {
+                       fsl,pins = <
+                               MX7D_PAD_SAI1_MCLK__SAI1_MCLK           0x1f
+                               MX7D_PAD_ENET1_RX_CLK__SAI1_TX_BCLK     0x1f
+                               MX7D_PAD_ENET1_CRS__SAI1_TX_SYNC        0x1f
+                               MX7D_PAD_ENET1_COL__SAI1_TX_DATA0       0x30
+                               MX7D_PAD_ENET1_TX_CLK__SAI1_RX_DATA0    0x1f
+                       >;
+               };
+
+               pinctrl_sai2: sai2grp {
+                       fsl,pins = <
+                               MX7D_PAD_SAI2_TX_BCLK__SAI2_TX_BCLK     0x1f
+                               MX7D_PAD_SAI2_TX_SYNC__SAI2_TX_SYNC     0x1f
+                               MX7D_PAD_SAI2_TX_DATA__SAI2_TX_DATA0    0x30
+                               MX7D_PAD_SAI2_RX_DATA__SAI2_RX_DATA0    0x1f
+                       >;
+               };
+
+               pinctrl_sai3: sai3grp {
+                       fsl,pins = <
+                               MX7D_PAD_UART3_TX_DATA__SAI3_TX_BCLK   0x1f
+                               MX7D_PAD_UART3_CTS_B__SAI3_TX_SYNC     0x1f
+                               MX7D_PAD_UART3_RTS_B__SAI3_TX_DATA0    0x30
+                       >;
+               };
+
                pinctrl_spi4: spi4grp {
                        fsl,pins = <
                                MX7D_PAD_GPIO1_IO09__GPIO1_IO9  0x59
@@ -776,4 +851,10 @@ pinctrl_usb_otg2_vbus_reg: usbotg2vbusreggrp {
                        MX7D_PAD_LPSR_GPIO1_IO07__GPIO1_IO7       0x14
                >;
        };
+
+       pinctrl_sai3_mclk: sai3grp_mclk {
+               fsl,pins = <
+                       MX7D_PAD_LPSR_GPIO1_IO03__SAI3_MCLK     0x1f
+               >;
+       };
 };
-- 
2.27.0

Reply via email to