Re: [PATCH V2 3/6] clk: qcom: clk-alpha-pll: Remove explicit CAL_L configuration for EVO PLL

From: Dmitry Baryshkov
Date: Fri May 26 2023 - 11:53:57 EST


On 26/05/2023 12:33, Konrad Dybcio wrote:


On 25.05.2023 19:21, Jagadeesh Kona wrote:
In lucid evo pll, the CAL_L field is part of L value register itself, and
the l value configuration passed from clock controller driver includes
CAL_L and L values as well. Hence remove explicit configuration of CAL_L
for evo pll.

Fixes: 260e36606a03 ("clk: qcom: clk-alpha-pll: add Lucid EVO PLL configuration interfaces")
Signed-off-by: Taniya Das <quic_tdas@xxxxxxxxxxx>
Signed-off-by: Jagadeesh Kona <quic_jkona@xxxxxxxxxxx>
---
Oh that isn't obvious at first sight, nice find!

I'd suggest a different solution though:

#define LUCID_EVO_PLL_L_LVAL GENMASK(..
#define LUCID_EVO_PLL_L_CAL_L GENMASK(..

lval = FIELD_PREP(LUCID_EVO_PLL_L_LVAL, config->l) |
FIELD_PREP(LUCID_EVO_PLL_L_CAL_L, config->cal_l);

This would make the separation between the two parts more explicit

however

config->l would then represent the L value and not the end value
written to the L register

Yes. I think there should be separate config->l and config->cal_l values (and probably ringosc_cal_l, basing on the comment in the source).

Just a question: is camcc-sm8550 using the same PLL type or is it some kind of subtype of lucid_evo PLL?

--
With best wishes
Dmitry