ARM: dts: imx6sx-sabreauto: Add cs42888 sound card support
authorShengjiu Wang <shengjiu.wang@nxp.com>
Thu, 18 Jun 2020 06:03:49 +0000 (14:03 +0800)
committerShawn Guo <shawnguo@kernel.org>
Mon, 13 Jul 2020 11:48:53 +0000 (19:48 +0800)
Complete the ESAI node and Add cs42888 sound card support.

Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
arch/arm/boot/dts/imx6sx-sabreauto.dts
arch/arm/boot/dts/imx6sx.dtsi

index 772b8ac..76a4c06 100644 (file)
                vin-supply = <&reg_can_en>;
        };
 
+       reg_cs42888: cs42888_supply {
+               compatible = "regulator-fixed";
+               regulator-name = "cs42888_supply";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-always-on;
+       };
+
+       sound-cs42888 {
+               compatible = "fsl,imx6-sabreauto-cs42888",
+                            "fsl,imx-audio-cs42888";
+               model = "imx-cs42888";
+               audio-cpu = <&esai>;
+               audio-asrc = <&asrc>;
+               audio-codec = <&cs42888>;
+               audio-routing =
+                       "Line Out Jack", "AOUT1L",
+                       "Line Out Jack", "AOUT1R",
+                       "Line Out Jack", "AOUT2L",
+                       "Line Out Jack", "AOUT2R",
+                       "Line Out Jack", "AOUT3L",
+                       "Line Out Jack", "AOUT3R",
+                       "Line Out Jack", "AOUT4L",
+                       "Line Out Jack", "AOUT4R",
+                       "AIN1L", "Line In Jack",
+                       "AIN1R", "Line In Jack",
+                       "AIN2L", "Line In Jack",
+                       "AIN2R", "Line In Jack";
+       };
+
        sound-spdif {
                compatible = "fsl,imx-audio-spdif";
                model = "imx-spdif";
        clock-frequency = <24576000>;
 };
 
+&clks {
+       assigned-clocks = <&clks IMX6SX_PLL4_BYPASS_SRC>,
+                         <&clks IMX6SX_PLL4_BYPASS>,
+                         <&clks IMX6SX_CLK_PLL4_POST_DIV>;
+       assigned-clock-parents = <&clks IMX6SX_CLK_LVDS2_IN>,
+                                <&clks IMX6SX_PLL4_BYPASS_SRC>;
+       assigned-clock-rates = <0>, <0>, <24576000>;
+};
+
+&esai {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_esai>;
+       assigned-clocks = <&clks IMX6SX_CLK_ESAI_SEL>,
+                       <&clks IMX6SX_CLK_ESAI_EXTAL>;
+       assigned-clock-parents = <&clks IMX6SX_CLK_PLL4_AUDIO_DIV>;
+       assigned-clock-rates = <0>, <24576000>;
+       status = "okay";
+};
+
 &fec1 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_enet1>;
                >;
        };
 
+       pinctrl_esai: esaigrp {
+               fsl,pins = <
+                       MX6SX_PAD_CSI_DATA00__ESAI_TX_CLK   0x1b030
+                       MX6SX_PAD_CSI_DATA01__ESAI_TX_FS    0x1b030
+                       MX6SX_PAD_CSI_HSYNC__ESAI_TX0       0x1b030
+                       MX6SX_PAD_CSI_DATA04__ESAI_TX1      0x1b030
+                       MX6SX_PAD_CSI_DATA06__ESAI_TX2_RX3  0x1b030
+                       MX6SX_PAD_CSI_DATA07__ESAI_TX3_RX2  0x1b030
+                       MX6SX_PAD_CSI_DATA02__ESAI_RX_CLK   0x1b030
+                       MX6SX_PAD_CSI_DATA03__ESAI_RX_FS    0x1b030
+                       MX6SX_PAD_CSI_VSYNC__ESAI_TX5_RX0   0x1b030
+                       MX6SX_PAD_CSI_DATA05__ESAI_TX4_RX1  0x1b030
+               >;
+       };
+
        pinctrl_flexcan1: flexcan1grp {
                fsl,pins = <
                        MX6SX_PAD_QSPI1B_DQS__CAN1_TX   0x1b020
        pinctrl-0 = <&pinctrl_i2c2>;
        status = "okay";
 
+       cs42888: cs42888@48 {
+               compatible = "cirrus,cs42888";
+               reg = <0x48>;
+               clocks = <&anaclk2 0>;
+               clock-names = "mclk";
+               VA-supply = <&reg_cs42888>;
+               VD-supply = <&reg_cs42888>;
+               VLS-supply = <&reg_cs42888>;
+               VLC-supply = <&reg_cs42888>;
+       };
+
        touchscreen@4 {
                compatible = "eeti,egalax_ts";
                reg = <0x04>;
index 04dda6f..5c2b785 100644 (file)
                                };
 
                                esai: esai@2024000 {
+                                       compatible = "fsl,imx6sx-esai", "fsl,imx35-esai";
                                        reg = <0x02024000 0x4000>;
                                        interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
                                        clocks = <&clks IMX6SX_CLK_ESAI_IPG>,
                                                 <&clks IMX6SX_CLK_SPBA>;
                                        clock-names = "core", "mem", "extal",
                                                      "fsys", "spba";
+                                       dmas = <&sdma 23 21 0>,
+                                              <&sdma 24 21 0>;
+                                       dma-names = "rx", "tx";
                                        status = "disabled";
                                };