MLK-11612-01 ARM: dts: imx6sx-sabreauto: add esai<->cs42888 sound card support
authorZidan Wang <zidan.wang@freescale.com>
Tue, 22 Sep 2015 06:31:32 +0000 (14:31 +0800)
committerNitin Garg <nitin.garg@nxp.com>
Mon, 19 Mar 2018 19:48:41 +0000 (14:48 -0500)
add esai<->cs42888 sound card support for imx6sx-sabreauto board.

Signed-off-by: Zidan Wang <zidan.wang@freescale.com>
arch/arm/boot/dts/imx6sx-sabreauto.dts
arch/arm/boot/dts/imx6sx.dtsi

index 563e9c9..f46336c 100644 (file)
        model = "Freescale i.MX6 SoloX Sabre Auto Board";
        compatible = "fsl,imx6sx-sabreauto", "fsl,imx6sx";
 
+       clocks {
+               codec_osc: anaclk2 {
+                       #clock-cells = <0>;
+                       compatible = "fixed-clock";
+                       clock-frequency = <24576000>;
+               };
+       };
+
        max7310_reset: max7310-reset {
                compatible = "gpio-reset";
                reset-gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
                #address-cells = <1>;
                #size-cells = <0>;
 
+               reg_audio: cs42888_supply {
+                       compatible = "regulator-fixed";
+                       regulator-name = "cs42888_supply";
+                       regulator-min-microvolt = <3300000>;
+                       regulator-max-microvolt = <3300000>;
+                       regulator-always-on;
+               };
+
                vcc_sd3: regulator@0 {
                        compatible = "regulator-fixed";
                        reg = <0>;
                        enable-active-high;
                };
        };
+
+       sound-cs42888 {
+               compatible = "fsl,imx6-sabreauto-cs42888",
+                          "fsl,imx-audio-cs42888";
+               model = "imx-cs42888";
+               esai-controller = <&esai>;
+               asrc-controller = <&asrc>;
+               audio-codec = <&codec>;
+       };
+};
+
+&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_2>;
+       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-0 = <&pinctrl_i2c2_1>;
        status = "okay";
 
+       codec: cs42888@048 {
+               compatible = "cirrus,cs42888";
+               reg = <0x048>;
+               clocks = <&codec_osc 0>;
+               clock-names = "mclk";
+               VA-supply = <&reg_audio>;
+               VD-supply = <&reg_audio>;
+               VLS-supply = <&reg_audio>;
+               VLC-supply = <&reg_audio>;
+       };
+
        max7322: gpio@68 {
                compatible = "maxim,max7322";
                reg = <0x68>;
                        >;
                };
 
+               pinctrl_esai_2: esaigrp-2 {
+                       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_i2c2_1: i2c2grp-1 {
                        fsl,pins = <
                                MX6SX_PAD_GPIO1_IO03__I2C2_SDA          0x4001b8b1
index dfbc6b2..306a640 100644 (file)
                                };
 
                                esai: esai@02024000 {
+                                       compatible = "fsl,imx35-esai";
                                        reg = <0x02024000 0x4000>;
                                        interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
                                        clocks = <&clks IMX6SX_CLK_ESAI_IPG>,
                                                 <&clks IMX6SX_CLK_ESAI_IPG>,
                                                 <&clks IMX6SX_CLK_SPBA>;
                                        clock-names = "core", "mem", "extal",
-                                                     "fsys", "spba";
+                                                     "fsys", "dma";
+                                       dmas = <&sdma 23 21 0>,
+                                              <&sdma 24 21 0>;
+                                       dma-names = "rx", "tx";
                                        status = "disabled";
                                };
 
                        };
 
                        sdma: sdma@020ec000 {
-                               compatible = "fsl,imx6sx-sdma", "fsl,imx6q-sdma";
+                               compatible = "fsl,imx6sx-sdma", "fsl,imx35-sdma";
                                reg = <0x020ec000 0x4000>;
                                interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&clks IMX6SX_CLK_SDMA>,