diff options
author | Hai Pham | 2020-05-22 10:39:04 +0700 |
---|---|---|
committer | Marek Vasut | 2021-05-21 15:00:17 +0200 |
commit | f7f8d473170dd7bd79bf034accf65a10b2f3edf6 (patch) | |
tree | 64111125cf62505dfba48c12a8a8d40e3f751aa1 /drivers | |
parent | e9354091995c9129f1ebf7a568a42e17c2b2f96e (diff) |
clk: renesas: Pass struct cpg_mssr_info to renesas_clk_endisable()
CPG IP in some specific Renesas SoCs (i.e. new R8A779A0 V3U SoC)
requires a different setting procedure. Make struct cpg_mssr_info
accessible to handle the clock setting in that case.
Signed-off-by: Hai Pham <hai.pham.ud@renesas.com>
Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/clk/renesas/clk-rcar-gen2.c | 4 | ||||
-rw-r--r-- | drivers/clk/renesas/clk-rcar-gen3.c | 4 | ||||
-rw-r--r-- | drivers/clk/renesas/renesas-cpg-mssr.c | 3 | ||||
-rw-r--r-- | drivers/clk/renesas/renesas-cpg-mssr.h | 3 |
4 files changed, 8 insertions, 6 deletions
diff --git a/drivers/clk/renesas/clk-rcar-gen2.c b/drivers/clk/renesas/clk-rcar-gen2.c index b0164a6486d..d2d0169dd87 100644 --- a/drivers/clk/renesas/clk-rcar-gen2.c +++ b/drivers/clk/renesas/clk-rcar-gen2.c @@ -61,14 +61,14 @@ static int gen2_clk_enable(struct clk *clk) { struct gen2_clk_priv *priv = dev_get_priv(clk->dev); - return renesas_clk_endisable(clk, priv->base, true); + return renesas_clk_endisable(clk, priv->base, priv->info, true); } static int gen2_clk_disable(struct clk *clk) { struct gen2_clk_priv *priv = dev_get_priv(clk->dev); - return renesas_clk_endisable(clk, priv->base, false); + return renesas_clk_endisable(clk, priv->base, priv->info, false); } static ulong gen2_clk_get_rate(struct clk *clk) diff --git a/drivers/clk/renesas/clk-rcar-gen3.c b/drivers/clk/renesas/clk-rcar-gen3.c index 938d98546ba..27939d6318f 100644 --- a/drivers/clk/renesas/clk-rcar-gen3.c +++ b/drivers/clk/renesas/clk-rcar-gen3.c @@ -143,14 +143,14 @@ static int gen3_clk_enable(struct clk *clk) { struct gen3_clk_priv *priv = dev_get_priv(clk->dev); - return renesas_clk_endisable(clk, priv->base, true); + return renesas_clk_endisable(clk, priv->base, priv->info, true); } static int gen3_clk_disable(struct clk *clk) { struct gen3_clk_priv *priv = dev_get_priv(clk->dev); - return renesas_clk_endisable(clk, priv->base, false); + return renesas_clk_endisable(clk, priv->base, priv->info, false); } static u64 gen3_clk_get_rate64(struct clk *clk) diff --git a/drivers/clk/renesas/renesas-cpg-mssr.c b/drivers/clk/renesas/renesas-cpg-mssr.c index bed2a16448a..0cf80a9866f 100644 --- a/drivers/clk/renesas/renesas-cpg-mssr.c +++ b/drivers/clk/renesas/renesas-cpg-mssr.c @@ -132,7 +132,8 @@ int renesas_clk_get_parent(struct clk *clk, struct cpg_mssr_info *info, return 0; } -int renesas_clk_endisable(struct clk *clk, void __iomem *base, bool enable) +int renesas_clk_endisable(struct clk *clk, void __iomem *base, + struct cpg_mssr_info *info, bool enable) { const unsigned long clkid = clk->id & 0xffff; const unsigned int reg = clkid / 100; diff --git a/drivers/clk/renesas/renesas-cpg-mssr.h b/drivers/clk/renesas/renesas-cpg-mssr.h index ad5d269fc49..8c8a09b9044 100644 --- a/drivers/clk/renesas/renesas-cpg-mssr.h +++ b/drivers/clk/renesas/renesas-cpg-mssr.h @@ -115,7 +115,8 @@ int renesas_clk_get_core(struct clk *clk, struct cpg_mssr_info *info, const struct cpg_core_clk **core); int renesas_clk_get_parent(struct clk *clk, struct cpg_mssr_info *info, struct clk *parent); -int renesas_clk_endisable(struct clk *clk, void __iomem *base, bool enable); +int renesas_clk_endisable(struct clk *clk, void __iomem *base, + struct cpg_mssr_info *info, bool enable); int renesas_clk_remove(void __iomem *base, struct cpg_mssr_info *info); #endif /* __DRIVERS_CLK_RENESAS_CPG_MSSR__ */ |