audio: SM1 tdmouta gated by earc [1/1]
authorShuai Li <shuai.li@amlogic.com>
Wed, 31 Jul 2019 11:25:39 +0000 (19:25 +0800)
committerShuai Li <shuai.li@amlogic.com>
Tue, 6 Aug 2019 02:38:40 +0000 (19:38 -0700)
PD#IPTV-3732

Problem:
TMDOUTA is gated by earc clk gate.
There is a bug in sm1 clk gating.

Solution:
Fix the wrong map of clk mapping.

Verify:
SM1.

Change-Id: Ia395d3307c249ef0cd64b715bb936dea3e2925ac
Signed-off-by: Shuai Li <shuai.li@amlogic.com>
arch/arm/boot/dts/amlogic/sm1_s905d3_ac200.dts
arch/arm/boot/dts/amlogic/sm1_s905d3_ac202.dts
arch/arm/boot/dts/amlogic/sm1_s905d3_ac202_1g.dts
arch/arm64/boot/dts/amlogic/sm1_s905d3_ac200.dts
arch/arm64/boot/dts/amlogic/sm1_s905d3_ac202.dts
arch/arm64/boot/dts/amlogic/sm1_s905d3_ac202_1g.dts
sound/soc/amlogic/auge/sm1,clocks.c
sound/soc/amlogic/auge/tm2,clocks.c

index 507ad15..5c4e664 100644 (file)
                        tdmacpu: cpu {
                                sound-dai = <&tdma>;
                                dai-tdm-slot-tx-mask =
-                                                       <1 1 1 1 1 1 1 1>;
+                                                       <1>;
                                dai-tdm-slot-rx-mask =
-                                                       <1 1 1 1 1 1 1 1>;
-                               dai-tdm-slot-num = <8>;
-                               dai-tdm-slot-width = <32>;
-                               system-clock-frequency = <24576000>;
+                                                       <1>;
+                               dai-tdm-slot-num = <2>;
+                               dai-tdm-slot-width = <16>;
+                               system-clock-frequency = <256000>;
                        };
                        tdmacodec: codec {
-                               sound-dai = <&dummy_codec &dummy_codec>;
+                               sound-dai = <&dummy_codec>;
                        };
                };
 
                compatible = "amlogic, sm1-snd-tdma";
                #sound-dai-cells = <0>;
                dai-tdm-lane-slot-mask-in = <0 1>;
-               dai-tdm-oe-lane-slot-mask-out = <1 0>;
+               dai-tdm-lane-slot-mask-out = <1 0>;
                dai-tdm-clk-sel = <0>;
                clocks = <&clkaudio CLKID_AUDIO_MCLK_A
                                &clkc CLKID_MPLL0>;
index 40a50b7..f9dd311 100644 (file)
                        tdmacpu: cpu {
                                sound-dai = <&tdma>;
                                dai-tdm-slot-tx-mask =
-                                                       <1 1 1 1 1 1 1 1>;
+                                                       <1>;
                                dai-tdm-slot-rx-mask =
-                                                       <1 1 1 1 1 1 1 1>;
-                               dai-tdm-slot-num = <8>;
-                               dai-tdm-slot-width = <32>;
-                               system-clock-frequency = <24576000>;
+                                                       <1>;
+                               dai-tdm-slot-num = <2>;
+                               dai-tdm-slot-width = <16>;
+                               system-clock-frequency = <256000>;
                        };
                        tdmacodec: codec {
-                               sound-dai = <&dummy_codec &dummy_codec>;
+                               sound-dai = <&dummy_codec>;
                        };
                };
 
        tdma: tdm@0 {
                compatible = "amlogic, sm1-snd-tdma";
                #sound-dai-cells = <0>;
-               dai-tdm-lane-slot-mask-in = <1 1>;
-               dai-tdm-oe-lane-slot-mask-out = <1 1>;
-               dai-format = "dsp_a";
-               dai-tdm-slot-tx-mask = <1>;
-               dai-tdm-slot-rx-mask = <1>;
-               dai-tdm-slot-num = <2>;
-               dai-tdm-slot-width = <16>;
+               dai-tdm-lane-slot-mask-in = <0 1>;
+               dai-tdm-lane-slot-mask-out = <1 0>;
                dai-tdm-clk-sel = <0>;
                clocks = <&clkaudio CLKID_AUDIO_MCLK_A
                                &clkc CLKID_MPLL0>;
                mux { /* GPIOX_11, GPIOX_10, GPIOX_9 */
                        groups = "tdma_sclk",
                                "tdma_fs",
-                               "tdma_dout0",
-                               "tdma_dout1";
+                               "tdma_dout0";
                        function = "tdma_out";
                };
        };
 
        tdmin_a: tdmin_a {
                mux { /* GPIOX_8 */
-                       groups = "tdma_din0",
-                                       "tdma_din1";
+                       groups = "tdma_din1";
                        function = "tdma_in";
                };
        };
index 1ac891a..ebd2879 100644 (file)
                        tdmacpu: cpu {
                                sound-dai = <&tdma>;
                                dai-tdm-slot-tx-mask =
-                                                       <1 1 1 1 1 1 1 1>;
+                                                       <1>;
                                dai-tdm-slot-rx-mask =
-                                                       <1 1 1 1 1 1 1 1>;
-                               dai-tdm-slot-num = <8>;
-                               dai-tdm-slot-width = <32>;
-                               system-clock-frequency = <24576000>;
+                                                       <1>;
+                               dai-tdm-slot-num = <2>;
+                               dai-tdm-slot-width = <16>;
+                               system-clock-frequency = <256000>;
                        };
                        tdmacodec: codec {
-                               sound-dai = <&dummy_codec &dummy_codec>;
+                               sound-dai = <&dummy_codec>;
                        };
                };
 
        tdma: tdm@0 {
                compatible = "amlogic, sm1-snd-tdma";
                #sound-dai-cells = <0>;
-               dai-tdm-lane-slot-mask-in = <1 1>;
-               dai-tdm-oe-lane-slot-mask-out = <1 1>;
-               dai-format = "dsp_a";
-               dai-tdm-slot-tx-mask = <1>;
-               dai-tdm-slot-rx-mask = <1>;
-               dai-tdm-slot-num = <2>;
-               dai-tdm-slot-width = <16>;
+               dai-tdm-lane-slot-mask-in = <0 1>;
+               dai-tdm-lane-slot-mask-out = <1 0>;
                dai-tdm-clk-sel = <0>;
                clocks = <&clkaudio CLKID_AUDIO_MCLK_A
                                &clkc CLKID_MPLL0>;
                mux { /* GPIOX_11, GPIOX_10, GPIOX_9 */
                        groups = "tdma_sclk",
                                "tdma_fs",
-                               "tdma_dout0",
-                               "tdma_dout1";
+                               "tdma_dout0";
                        function = "tdma_out";
                };
        };
 
        tdmin_a: tdmin_a {
                mux { /* GPIOX_8 */
-                       groups = "tdma_din0",
-                                       "tdma_din1";
+                       groups = "tdma_din1";
                        function = "tdma_in";
                };
        };
index 96cdb0b..b9b3460 100644 (file)
                        tdmacpu: cpu {
                                sound-dai = <&tdma>;
                                dai-tdm-slot-tx-mask =
-                                                       <1 1 1 1 1 1 1 1>;
+                                                       <1>;
                                dai-tdm-slot-rx-mask =
-                                                       <1 1 1 1 1 1 1 1>;
-                               dai-tdm-slot-num = <8>;
-                               dai-tdm-slot-width = <32>;
-                               system-clock-frequency = <24576000>;
+                                                       <1>;
+                               dai-tdm-slot-num = <2>;
+                               dai-tdm-slot-width = <16>;
+                               system-clock-frequency = <256000>;
                        };
                        tdmacodec: codec {
-                               sound-dai = <&dummy_codec &dummy_codec>;
+                               sound-dai = <&dummy_codec>;
                        };
                };
 
                compatible = "amlogic, sm1-snd-tdma";
                #sound-dai-cells = <0>;
                dai-tdm-lane-slot-mask-in = <0 1>;
-               dai-tdm-oe-lane-slot-mask-out = <1 0>;
+               dai-tdm-lane-slot-mask-out = <1 0>;
                dai-tdm-clk-sel = <0>;
                clocks = <&clkaudio CLKID_AUDIO_MCLK_A
                                &clkc CLKID_MPLL0>;
index 7892a26..b5e8557 100644 (file)
                        tdmacpu: cpu {
                                sound-dai = <&tdma>;
                                dai-tdm-slot-tx-mask =
-                                                       <1 1 1 1 1 1 1 1>;
+                                                       <1>;
                                dai-tdm-slot-rx-mask =
-                                                       <1 1 1 1 1 1 1 1>;
-                               dai-tdm-slot-num = <8>;
-                               dai-tdm-slot-width = <32>;
-                               system-clock-frequency = <24576000>;
+                                                       <1>;
+                               dai-tdm-slot-num = <2>;
+                               dai-tdm-slot-width = <16>;
+                               system-clock-frequency = <256000>;
                        };
                        tdmacodec: codec {
-                               sound-dai = <&dummy_codec &dummy_codec>;
+                               sound-dai = <&dummy_codec>;
                        };
                };
 
        tdma: tdm@0 {
                compatible = "amlogic, sm1-snd-tdma";
                #sound-dai-cells = <0>;
-               dai-tdm-lane-slot-mask-in = <1 1>;
-               dai-tdm-oe-lane-slot-mask-out = <1 1>;
-               dai-format = "dsp_a";
-               dai-tdm-slot-tx-mask = <1>;
-               dai-tdm-slot-rx-mask = <1>;
-               dai-tdm-slot-num = <2>;
-               dai-tdm-slot-width = <16>;
+               dai-tdm-lane-slot-mask-in = <0 1>;
+               dai-tdm-lane-slot-mask-out = <1 0>;
                dai-tdm-clk-sel = <0>;
                clocks = <&clkaudio CLKID_AUDIO_MCLK_A
                                &clkc CLKID_MPLL0>;
                mux { /* GPIOX_11, GPIOX_10, GPIOX_9 */
                        groups = "tdma_sclk",
                                "tdma_fs",
-                               "tdma_dout0",
-                               "tdma_dout1";
+                               "tdma_dout0";
                        function = "tdma_out";
                };
        };
 
        tdmin_a: tdmin_a {
                mux { /* GPIOX_8 */
-                       groups = "tdma_din0",
-                                       "tdma_din1";
+                       groups = "tdma_din1";
                        function = "tdma_in";
                };
        };
index 794ccbf..6c8aa3e 100644 (file)
                        tdmacpu: cpu {
                                sound-dai = <&tdma>;
                                dai-tdm-slot-tx-mask =
-                                                       <1 1 1 1 1 1 1 1>;
+                                                       <1>;
                                dai-tdm-slot-rx-mask =
-                                                       <1 1 1 1 1 1 1 1>;
-                               dai-tdm-slot-num = <8>;
-                               dai-tdm-slot-width = <32>;
-                               system-clock-frequency = <24576000>;
+                                                       <1>;
+                               dai-tdm-slot-num = <2>;
+                               dai-tdm-slot-width = <16>;
+                               system-clock-frequency = <256000>;
                        };
                        tdmacodec: codec {
-                               sound-dai = <&dummy_codec &dummy_codec>;
+                               sound-dai = <&dummy_codec>;
                        };
                };
 
        tdma: tdm@0 {
                compatible = "amlogic, sm1-snd-tdma";
                #sound-dai-cells = <0>;
-               dai-tdm-lane-slot-mask-in = <1 1>;
-               dai-tdm-oe-lane-slot-mask-out = <1 1>;
-               dai-format = "dsp_a";
-               dai-tdm-slot-tx-mask = <1>;
-               dai-tdm-slot-rx-mask = <1>;
-               dai-tdm-slot-num = <2>;
-               dai-tdm-slot-width = <16>;
+               dai-tdm-lane-slot-mask-in = <0 1>;
+               dai-tdm-lane-slot-mask-out = <1 0>;
                dai-tdm-clk-sel = <0>;
                clocks = <&clkaudio CLKID_AUDIO_MCLK_A
                                &clkc CLKID_MPLL0>;
                mux { /* GPIOX_11, GPIOX_10, GPIOX_9 */
                        groups = "tdma_sclk",
                                "tdma_fs",
-                               "tdma_dout0",
-                               "tdma_dout1";
+                               "tdma_dout0";
                        function = "tdma_out";
                };
        };
 
        tdmin_a: tdmin_a {
                mux { /* GPIOX_8 */
-                       groups = "tdma_din0",
-                                       "tdma_din1";
+                       groups = "tdma_din1";
                        function = "tdma_in";
                };
        };
index 27b192b..3190c70 100644 (file)
@@ -161,7 +161,10 @@ static int sm1_clk_gates_init(struct clk **clks, void __iomem *iobase)
        }
 
        for (clkid = 0; clkid < MCLK_BASE; clkid++) {
-               sm1_audio_clk_gates[clkid]->reg = iobase;
+               unsigned long offset =
+                       (unsigned long)sm1_audio_clk_gates[clkid]->reg;
+               sm1_audio_clk_gates[clkid]->reg =
+                       (void __iomem *)((unsigned long)iobase + offset);
                clks[clkid] = clk_register(NULL, sm1_audio_clk_hws[clkid]);
                WARN_ON(IS_ERR_OR_NULL(clks[clkid]));
        }
index ca7beb7..f21e9f2 100644 (file)
@@ -177,7 +177,10 @@ static int tm2_clk_gates_init(struct clk **clks, void __iomem *iobase)
        }
 
        for (clkid = 0; clkid < MCLK_BASE; clkid++) {
-               tm2_audio_clk_gates[clkid]->reg = iobase;
+               unsigned long offset =
+                       (unsigned long)tm2_audio_clk_gates[clkid]->reg;
+               tm2_audio_clk_gates[clkid]->reg =
+                       (void __iomem *)((unsigned long)iobase + offset);
                clks[clkid] = clk_register(NULL, tm2_audio_clk_hws[clkid]);
                WARN_ON(IS_ERR_OR_NULL(clks[clkid]));
        }