Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

clk: qcom: camcc-sm6350: Fix PLL config of PLL2

The 'Agera' PLLs (with clk_agera_pll_configure) do not take some of the
parameters that are provided in the vendor driver. Instead the upstream
configuration should provide the final user_ctl value that is written to
the USER_CTL register.

Fix the config so that the PLL is configured correctly, and fixes
CAMCC_MCLK* being stuck off.

Fixes: 80f5451d9a7c ("clk: qcom: Add camera clock controller driver for SM6350")
Suggested-by: Taniya Das <taniya.das@oss.qualcomm.com>
Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
Reviewed-by: Abel Vesa <abel.vesa@linaro.org>
Reviewed-by: Taniya Das <taniya.das@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20251021-agera-pll-fixups-v1-1-8c1d8aff4afc@fairphone.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>

authored by

Luca Weiss and committed by
Bjorn Andersson
ab0e1314 fd0b632e

+1 -5
+1 -5
drivers/clk/qcom/camcc-sm6350.c
··· 145 145 static const struct alpha_pll_config camcc_pll2_config = { 146 146 .l = 0x64, 147 147 .alpha = 0x0, 148 - .post_div_val = 0x3 << 8, 149 - .post_div_mask = 0x3 << 8, 150 - .aux_output_mask = BIT(1), 151 - .main_output_mask = BIT(0), 152 - .early_output_mask = BIT(3), 153 148 .config_ctl_val = 0x20000800, 154 149 .config_ctl_hi_val = 0x400003d2, 155 150 .test_ctl_val = 0x04000400, 156 151 .test_ctl_hi_val = 0x00004000, 152 + .user_ctl_val = 0x0000030b, 157 153 }; 158 154 159 155 static struct clk_alpha_pll camcc_pll2 = {