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

clk: qcom: gcc-sm6350: Add *_wait_val values for GDSCs

Compared to the msm-4.19 driver the mainline GDSC driver always sets the
bits for en_rest, en_few & clk_dis, and if those values are not set
per-GDSC in the respective driver then the default value from the GDSC
driver is used. The downstream driver only conditionally sets
clk_dis_wait_val if qcom,clk-dis-wait-val is given in devicetree.

Correct this situation by explicitly setting those values. For all GDSCs
the reset value of those bits are used.

Fixes: 131abae905df ("clk: qcom: Add SM6350 GCC driver")
Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
Reviewed-by: Taniya Das <quic_tdas@quicinc.com>
Link: https://lore.kernel.org/r/20250425-sm6350-gdsc-val-v1-3-1f252d9c5e4e@fairphone.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>

authored by

Luca Weiss and committed by
Bjorn Andersson
afdfd829 673989d2

+6
+6
drivers/clk/qcom/gcc-sm6350.c
··· 2320 2320 2321 2321 static struct gdsc usb30_prim_gdsc = { 2322 2322 .gdscr = 0x1a004, 2323 + .en_rest_wait_val = 0x2, 2324 + .en_few_wait_val = 0x2, 2325 + .clk_dis_wait_val = 0xf, 2323 2326 .pd = { 2324 2327 .name = "usb30_prim_gdsc", 2325 2328 }, ··· 2331 2328 2332 2329 static struct gdsc ufs_phy_gdsc = { 2333 2330 .gdscr = 0x3a004, 2331 + .en_rest_wait_val = 0x2, 2332 + .en_few_wait_val = 0x2, 2333 + .clk_dis_wait_val = 0xf, 2334 2334 .pd = { 2335 2335 .name = "ufs_phy_gdsc", 2336 2336 },