diff mbox series

clk: ast2600: Fix enabling of clocks

Message ID 20191016131319.31318-1-joel@jms.id.au
State Accepted
Commit 427400fc5c1988245827bacb0dfba0214f153a2f
Headers show
Series clk: ast2600: Fix enabling of clocks | expand

Commit Message

Joel Stanley Oct. 16, 2019, 1:13 p.m. UTC
The struct clk_ops enable callback for the aspeed gates mixes up the set
to clear and write to set registers.

Fixes: d3d04f6c330a ("clk: Add support for AST2600 SoC")
Reviewed-by: Andrew Jeffery <andrew@aj.id.au>

Signed-off-by: Joel Stanley <joel@jms.id.au>

---
 drivers/clk/clk-ast2600.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

-- 
2.23.0

Comments

Stephen Boyd Oct. 28, 2019, 11:40 p.m. UTC | #1
Quoting Joel Stanley (2019-10-16 06:13:19)
> The struct clk_ops enable callback for the aspeed gates mixes up the set

> to clear and write to set registers.

> 

> Fixes: d3d04f6c330a ("clk: Add support for AST2600 SoC")

> Reviewed-by: Andrew Jeffery <andrew@aj.id.au>

> Signed-off-by: Joel Stanley <joel@jms.id.au>

> ---


Applied to clk-fixes
diff mbox series

Patch

diff --git a/drivers/clk/clk-ast2600.c b/drivers/clk/clk-ast2600.c
index 1c1bb39bb04e..b1318e6b655b 100644
--- a/drivers/clk/clk-ast2600.c
+++ b/drivers/clk/clk-ast2600.c
@@ -266,10 +266,11 @@  static int aspeed_g6_clk_enable(struct clk_hw *hw)
 
 	/* Enable clock */
 	if (gate->flags & CLK_GATE_SET_TO_DISABLE) {
-		regmap_write(gate->map, get_clock_reg(gate), clk);
-	} else {
-		/* Use set to clear register */
+		/* Clock is clear to enable, so use set to clear register */
 		regmap_write(gate->map, get_clock_reg(gate) + 0x04, clk);
+	} else {
+		/* Clock is set to enable, so use write to set register */
+		regmap_write(gate->map, get_clock_reg(gate), clk);
 	}
 
 	if (gate->reset_idx >= 0) {