audio: SM1 tdmouta gated by earc [1/1]

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>
This commit is contained in:
Shuai Li
2019-07-31 19:25:39 +08:00
parent 839d4a0816
commit 9bd1b6820c
8 changed files with 62 additions and 84 deletions

View File

@@ -603,15 +603,15 @@
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>;
};
};
@@ -1115,7 +1115,7 @@
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>;

View File

@@ -605,15 +605,15 @@
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>;
};
};
@@ -1124,13 +1124,8 @@
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>;
@@ -1522,16 +1517,14 @@
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";
};
};

View File

@@ -605,15 +605,15 @@
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>;
};
};
@@ -1124,13 +1124,8 @@
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>;
@@ -1522,16 +1517,14 @@
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";
};
};

View File

@@ -601,15 +601,15 @@
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>;
};
};
@@ -1114,7 +1114,7 @@
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>;

View File

@@ -603,15 +603,15 @@
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>;
};
};
@@ -1123,13 +1123,8 @@
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>;
@@ -1520,16 +1515,14 @@
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";
};
};

View File

@@ -603,15 +603,15 @@
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>;
};
};
@@ -1123,13 +1123,8 @@
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>;
@@ -1521,16 +1516,14 @@
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";
};
};

View 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]));
}

View 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]));
}