Skip to content

Commit a419f7b

Browse files
taniyadas20andersson
authored andcommitted
clk: qcom: clk-alpha-pll: Add support for controlling Rivian PLL
Add clock ops for Rivian ELU and EKO_T PLLs, add the register offsets for the Rivian ELU PLL. Since ELU and EKO_T shared the same offsets and PLL ops, reuse the Rivian EKO_T enum. Signed-off-by: Jingyi Wang <jingyi.wang@oss.qualcomm.com> Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> Signed-off-by: Taniya Das <taniya.das@oss.qualcomm.com> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> Link: https://lore.kernel.org/r/20260107-kaanapali-mmcc-v3-v3-3-8e10adc236a8@oss.qualcomm.com Signed-off-by: Bjorn Andersson <andersson@kernel.org>
1 parent 6ff40dd commit a419f7b

2 files changed

Lines changed: 18 additions & 0 deletions

File tree

drivers/clk/qcom/clk-alpha-pll.c

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -243,6 +243,19 @@ const u8 clk_alpha_pll_regs[][PLL_OFF_MAX_REGS] = {
243243
[PLL_OFF_TEST_CTL] = 0x28,
244244
[PLL_OFF_TEST_CTL_U] = 0x2c,
245245
},
246+
[CLK_ALPHA_PLL_TYPE_RIVIAN_ELU] = {
247+
[PLL_OFF_OPMODE] = 0x04,
248+
[PLL_OFF_STATUS] = 0x0c,
249+
[PLL_OFF_L_VAL] = 0x10,
250+
[PLL_OFF_USER_CTL] = 0x14,
251+
[PLL_OFF_USER_CTL_U] = 0x18,
252+
[PLL_OFF_CONFIG_CTL] = 0x1c,
253+
[PLL_OFF_CONFIG_CTL_U] = 0x20,
254+
[PLL_OFF_CONFIG_CTL_U1] = 0x24,
255+
[PLL_OFF_CONFIG_CTL_U2] = 0x28,
256+
[PLL_OFF_TEST_CTL] = 0x2c,
257+
[PLL_OFF_TEST_CTL_U] = 0x30,
258+
},
246259
[CLK_ALPHA_PLL_TYPE_DEFAULT_EVO] = {
247260
[PLL_OFF_L_VAL] = 0x04,
248261
[PLL_OFF_ALPHA_VAL] = 0x08,
@@ -3002,6 +3015,7 @@ void qcom_clk_alpha_pll_configure(struct clk_alpha_pll *pll, struct regmap *regm
30023015
clk_taycan_elu_pll_configure(pll, regmap, pll->config);
30033016
break;
30043017
case CLK_ALPHA_PLL_TYPE_RIVIAN_EVO:
3018+
case CLK_ALPHA_PLL_TYPE_RIVIAN_ELU:
30053019
clk_rivian_evo_pll_configure(pll, regmap, pll->config);
30063020
break;
30073021
case CLK_ALPHA_PLL_TYPE_TRION:

drivers/clk/qcom/clk-alpha-pll.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ enum {
3131
CLK_ALPHA_PLL_TYPE_TAYCAN_ELU,
3232
CLK_ALPHA_PLL_TYPE_TAYCAN_EKO_T = CLK_ALPHA_PLL_TYPE_TAYCAN_ELU,
3333
CLK_ALPHA_PLL_TYPE_RIVIAN_EVO,
34+
CLK_ALPHA_PLL_TYPE_RIVIAN_ELU,
35+
CLK_ALPHA_PLL_TYPE_RIVIAN_EKO_T = CLK_ALPHA_PLL_TYPE_RIVIAN_ELU,
3436
CLK_ALPHA_PLL_TYPE_DEFAULT_EVO,
3537
CLK_ALPHA_PLL_TYPE_BRAMMO_EVO,
3638
CLK_ALPHA_PLL_TYPE_STROMER,
@@ -208,6 +210,8 @@ extern const struct clk_ops clk_alpha_pll_postdiv_lucid_evo_ops;
208210
extern const struct clk_ops clk_alpha_pll_pongo_elu_ops;
209211
extern const struct clk_ops clk_alpha_pll_rivian_evo_ops;
210212
#define clk_alpha_pll_postdiv_rivian_evo_ops clk_alpha_pll_postdiv_fabia_ops
213+
#define clk_alpha_pll_rivian_elu_ops clk_alpha_pll_rivian_evo_ops
214+
#define clk_alpha_pll_rivian_eko_t_ops clk_alpha_pll_rivian_evo_ops
211215

212216
extern const struct clk_ops clk_alpha_pll_regera_ops;
213217
extern const struct clk_ops clk_alpha_pll_slew_ops;

0 commit comments

Comments
 (0)