[PATCH 07/13] clk: qcom: clk-alpha-pll: Add support to skip PLL configuration
From: Jagadeesh Kona
Date: Mon Apr 20 2026 - 13:04:35 EST
Some PLLs are already configured as part of CRM(CESTA Resource
manager) initialization. Add support to skip PLL reconfiguration
for such PLLs that are already configured.
Signed-off-by: Jagadeesh Kona <jagadeesh.kona@xxxxxxxxxxxxxxxx>
---
drivers/clk/qcom/clk-alpha-pll.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/drivers/clk/qcom/clk-alpha-pll.c b/drivers/clk/qcom/clk-alpha-pll.c
index 67fc97739d0d4c26aec0bac5d43d1b87d297bc6a..2f4ebf4d3884b92c981dbe0e67245704a88881ad 100644
--- a/drivers/clk/qcom/clk-alpha-pll.c
+++ b/drivers/clk/qcom/clk-alpha-pll.c
@@ -2332,7 +2332,7 @@ EXPORT_SYMBOL_GPL(clk_alpha_pll_zonda_ops);
void clk_lucid_evo_pll_configure(struct clk_alpha_pll *pll, struct regmap *regmap,
const struct alpha_pll_config *config)
{
- u32 lval = config->l;
+ u32 lval = config->l, regval;
/*
* If the bootloader left the PLL enabled it's likely that there are
@@ -2343,6 +2343,12 @@ void clk_lucid_evo_pll_configure(struct clk_alpha_pll *pll, struct regmap *regma
return;
}
+ /* Return early if PLL is already configured */
+ regmap_read(regmap, PLL_L_VAL(pll), ®val);
+ regval &= LUCID_EVO_PLL_L_VAL_MASK;
+ if (regval)
+ return;
+
if (config->cal_l)
lval |= config->cal_l << LUCID_EVO_PLL_CAL_L_VAL_SHIFT;
else
--
2.34.1