aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAbel Vesa <[email protected]>2024-04-18 16:41:32 +0300
committerBjorn Andersson <[email protected]>2024-04-20 11:50:26 -0500
commit810e6d2fac01ab1e189f3002a364f19bd5d0f444 (patch)
treea9fdb1e6b36820d2e007fba9cff9c9b04bd7044b
parent1aab318f1e4900fac325e0d55a0591108ea0cfbb (diff)
clk: qcom: clk-alpha-pll: Skip reconfiguring the running Lucid Evo
The PLL0 is configured by the bootloader and is the parent of the mdp_clk_src. The Trion implementation of the configure function is already skipping this step if the PLL is enabled, so lets extend the same behavior to Lucid Evo variant. Signed-off-by: Abel Vesa <[email protected]> Reviewed-by: Bjorn Andersson <[email protected]> Link: https://lore.kernel.org/r/20240418-clk-qcom-lucid-evo-skip-configuring-enabled-v1-1-caede5f1c7a3@linaro.org Signed-off-by: Bjorn Andersson <[email protected]>
-rw-r--r--drivers/clk/qcom/clk-alpha-pll.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/clk/qcom/clk-alpha-pll.c b/drivers/clk/qcom/clk-alpha-pll.c
index 8a412ef47e16..4c5aeccff0ef 100644
--- a/drivers/clk/qcom/clk-alpha-pll.c
+++ b/drivers/clk/qcom/clk-alpha-pll.c
@@ -2114,6 +2114,15 @@ void clk_lucid_evo_pll_configure(struct clk_alpha_pll *pll, struct regmap *regma
{
u32 lval = config->l;
+ /*
+ * If the bootloader left the PLL enabled it's likely that there are
+ * RCGs that will lock up if we disable the PLL below.
+ */
+ if (trion_pll_is_enabled(pll, regmap)) {
+ pr_debug("Lucid Evo PLL is already enabled, skipping configuration\n");
+ return;
+ }
+
lval |= TRION_PLL_CAL_VAL << LUCID_EVO_PLL_CAL_L_VAL_SHIFT;
clk_alpha_pll_write_config(regmap, PLL_L_VAL(pll), lval);
clk_alpha_pll_write_config(regmap, PLL_ALPHA_VAL(pll), config->alpha);