]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
clk: qcom: clk-alpha-pll: Update the PLL support for cal_l
authorTaniya Das <taniya.das@oss.qualcomm.com>
Wed, 7 Jan 2026 09:43:04 +0000 (15:13 +0530)
committerBjorn Andersson <andersson@kernel.org>
Wed, 7 Jan 2026 15:52:57 +0000 (09:52 -0600)
Recent QCOM PLLs require the CAL_L field to be programmed according to
specific hardware recommendations, rather than using the legacy default
value of 0x44. Hardcoding this value can lead to suboptimal or incorrect
behavior on newer platforms.

To address this, introduce a `cal_l` field in the PLL configuration
structure, allowing CAL_L to be set explicitly based on platform
requirements. This improves flexibility and ensures correct PLL
initialization across different hardware variants.

Signed-off-by: Jingyi Wang <jingyi.wang@oss.qualcomm.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: Taniya Das <taniya.das@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260107-kaanapali-mmcc-v3-v3-1-8e10adc236a8@oss.qualcomm.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
drivers/clk/qcom/clk-alpha-pll.c
drivers/clk/qcom/clk-alpha-pll.h

index 8586649d76f8aef119ed51fbf1ca90bc5e3ce510..3fbdee6e67f9c82a2b93f2624a112934f01686d5 100644 (file)
@@ -2351,7 +2351,11 @@ void clk_lucid_evo_pll_configure(struct clk_alpha_pll *pll, struct regmap *regma
                return;
        }
 
-       lval |= TRION_PLL_CAL_VAL << LUCID_EVO_PLL_CAL_L_VAL_SHIFT;
+       if (config->cal_l)
+               lval |= config->cal_l << LUCID_EVO_PLL_CAL_L_VAL_SHIFT;
+       else
+               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);
        clk_alpha_pll_write_config(regmap, PLL_CONFIG_CTL(pll), config->config_ctl_val);
index 046e6f2583ea83b4478765f41e518cb5c234079f..a211119a5fc11ef3a48ec5dfad8d743ae4f3265c 100644 (file)
@@ -130,6 +130,7 @@ struct clk_alpha_pll_postdiv {
 
 struct alpha_pll_config {
        u32 l;
+       u32 cal_l;
        u32 alpha;
        u32 alpha_hi;
        u32 config_ctl_val;