[PATCH v8 04/11] clk: renesas: rzg2l-cpg: Add helper for mod clock enable/disable
From: Biju
Date: Tue Mar 24 2026 - 07:51:41 EST
From: Biju Das <biju.das.jz@xxxxxxxxxxxxxx>
Refactor rzg2l_mod_clock_endisable() by extracting its logic into a new
helper function rzg2l_mod_clock_endisable_helper(), which accepts an
additional set_mstop_state boolean parameter. This allows callers to
control whether the module stop state is updated alongside the clock
enable/disable operation. No functional change for existing callers.
Signed-off-by: Biju Das <biju.das.jz@xxxxxxxxxxxxxx>
---
v8:
* New patch
---
drivers/clk/renesas/rzg2l-cpg.c | 14 +++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/drivers/clk/renesas/rzg2l-cpg.c b/drivers/clk/renesas/rzg2l-cpg.c
index f9e4af7f49d0..a38401c18dcf 100644
--- a/drivers/clk/renesas/rzg2l-cpg.c
+++ b/drivers/clk/renesas/rzg2l-cpg.c
@@ -1439,7 +1439,8 @@ static int rzg2l_mod_clock_mstop_show(struct seq_file *s, void *what)
}
DEFINE_SHOW_ATTRIBUTE(rzg2l_mod_clock_mstop);
-static int rzg2l_mod_clock_endisable(struct clk_hw *hw, bool enable)
+static int rzg2l_mod_clock_endisable_helper(struct clk_hw *hw, bool enable,
+ bool set_mstop_state)
{
struct mod_clock *clock = to_mod_clock(hw);
struct rzg2l_cpg_priv *priv = clock->priv;
@@ -1464,9 +1465,11 @@ static int rzg2l_mod_clock_endisable(struct clk_hw *hw, bool enable)
scoped_guard(spinlock_irqsave, &priv->rmw_lock) {
if (enable) {
writel(value, priv->base + CLK_ON_R(reg));
- rzg2l_mod_clock_module_set_state(clock, false);
+ if (set_mstop_state)
+ rzg2l_mod_clock_module_set_state(clock, false);
} else {
- rzg2l_mod_clock_module_set_state(clock, true);
+ if (set_mstop_state)
+ rzg2l_mod_clock_module_set_state(clock, true);
writel(value, priv->base + CLK_ON_R(reg));
}
}
@@ -1486,6 +1489,11 @@ static int rzg2l_mod_clock_endisable(struct clk_hw *hw, bool enable)
return error;
}
+static int rzg2l_mod_clock_endisable(struct clk_hw *hw, bool enable)
+{
+ return rzg2l_mod_clock_endisable_helper(hw, enable, true);
+}
+
static int rzg2l_mod_clock_enable(struct clk_hw *hw)
{
struct mod_clock *clock = to_mod_clock(hw);
--
2.43.0