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

Configure Feed

Select the types of activity you want to include in your feed.

clk: qcom: gcc-sm6115: Override default Alpha PLL regs

The DEFAULT and BRAMMO PLL offsets are non-standard in downstream, but
currently only BRAMMO ones are overridden. Override DEFAULT ones too.

A very similar thing is happening in gcc-qcm2290 driver.

Fixes: cbe63bfdc54f ("clk: qcom: Add Global Clock controller (GCC) driver for SM6115")
Signed-off-by: Adam Skladowski <a_skl39@protonmail.com>
Signed-off-by: Iskren Chernev <iskren.chernev@gmail.com>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20220830075620.974009-2-iskren.chernev@gmail.com

authored by

Adam Skladowski and committed by
Bjorn Andersson
068a0605 16fb89f9

+30 -16
+30 -16
drivers/clk/qcom/gcc-sm6115.c
··· 53 53 { 750000000, 1500000000, 1 }, 54 54 }; 55 55 56 + static const u8 clk_alpha_pll_regs_offset[][PLL_OFF_MAX_REGS] = { 57 + [CLK_ALPHA_PLL_TYPE_DEFAULT] = { 58 + [PLL_OFF_L_VAL] = 0x04, 59 + [PLL_OFF_ALPHA_VAL] = 0x08, 60 + [PLL_OFF_ALPHA_VAL_U] = 0x0c, 61 + [PLL_OFF_TEST_CTL] = 0x10, 62 + [PLL_OFF_TEST_CTL_U] = 0x14, 63 + [PLL_OFF_USER_CTL] = 0x18, 64 + [PLL_OFF_USER_CTL_U] = 0x1c, 65 + [PLL_OFF_CONFIG_CTL] = 0x20, 66 + [PLL_OFF_STATUS] = 0x24, 67 + }, 68 + }; 69 + 56 70 static struct clk_alpha_pll gpll0 = { 57 71 .offset = 0x0, 58 72 .vco_table = default_vco, 59 73 .num_vco = ARRAY_SIZE(default_vco), 60 - .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT], 74 + .regs = clk_alpha_pll_regs_offset[CLK_ALPHA_PLL_TYPE_DEFAULT], 61 75 .clkr = { 62 76 .enable_reg = 0x79000, 63 77 .enable_mask = BIT(0), ··· 97 83 .post_div_table = post_div_table_gpll0_out_aux2, 98 84 .num_post_div = ARRAY_SIZE(post_div_table_gpll0_out_aux2), 99 85 .width = 4, 100 - .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT], 86 + .regs = clk_alpha_pll_regs_offset[CLK_ALPHA_PLL_TYPE_DEFAULT], 101 87 .clkr.hw.init = &(struct clk_init_data){ 102 88 .name = "gpll0_out_aux2", 103 89 .parent_hws = (const struct clk_hw *[]){ &gpll0.clkr.hw }, ··· 129 115 .post_div_table = post_div_table_gpll0_out_main, 130 116 .num_post_div = ARRAY_SIZE(post_div_table_gpll0_out_main), 131 117 .width = 4, 132 - .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT], 118 + .regs = clk_alpha_pll_regs_offset[CLK_ALPHA_PLL_TYPE_DEFAULT], 133 119 .clkr.hw.init = &(struct clk_init_data){ 134 120 .name = "gpll0_out_main", 135 121 .parent_hws = (const struct clk_hw *[]){ &gpll0.clkr.hw }, ··· 151 137 .offset = 0xa000, 152 138 .vco_table = gpll10_vco, 153 139 .num_vco = ARRAY_SIZE(gpll10_vco), 154 - .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT], 140 + .regs = clk_alpha_pll_regs_offset[CLK_ALPHA_PLL_TYPE_DEFAULT], 155 141 .clkr = { 156 142 .enable_reg = 0x79000, 157 143 .enable_mask = BIT(10), ··· 177 163 .post_div_table = post_div_table_gpll10_out_main, 178 164 .num_post_div = ARRAY_SIZE(post_div_table_gpll10_out_main), 179 165 .width = 4, 180 - .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT], 166 + .regs = clk_alpha_pll_regs_offset[CLK_ALPHA_PLL_TYPE_DEFAULT], 181 167 .clkr.hw.init = &(struct clk_init_data){ 182 168 .name = "gpll10_out_main", 183 169 .parent_hws = (const struct clk_hw *[]){ &gpll10.clkr.hw }, ··· 203 189 .vco_table = default_vco, 204 190 .num_vco = ARRAY_SIZE(default_vco), 205 191 .flags = SUPPORTS_DYNAMIC_UPDATE, 206 - .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT], 192 + .regs = clk_alpha_pll_regs_offset[CLK_ALPHA_PLL_TYPE_DEFAULT], 207 193 .clkr = { 208 194 .enable_reg = 0x79000, 209 195 .enable_mask = BIT(11), ··· 229 215 .post_div_table = post_div_table_gpll11_out_main, 230 216 .num_post_div = ARRAY_SIZE(post_div_table_gpll11_out_main), 231 217 .width = 4, 232 - .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT], 218 + .regs = clk_alpha_pll_regs_offset[CLK_ALPHA_PLL_TYPE_DEFAULT], 233 219 .clkr.hw.init = &(struct clk_init_data){ 234 220 .name = "gpll11_out_main", 235 221 .parent_hws = (const struct clk_hw *[]){ &gpll11.clkr.hw }, ··· 243 229 .offset = 0x3000, 244 230 .vco_table = default_vco, 245 231 .num_vco = ARRAY_SIZE(default_vco), 246 - .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT], 232 + .regs = clk_alpha_pll_regs_offset[CLK_ALPHA_PLL_TYPE_DEFAULT], 247 233 .clkr = { 248 234 .enable_reg = 0x79000, 249 235 .enable_mask = BIT(3), ··· 262 248 .offset = 0x4000, 263 249 .vco_table = default_vco, 264 250 .num_vco = ARRAY_SIZE(default_vco), 265 - .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT], 251 + .regs = clk_alpha_pll_regs_offset[CLK_ALPHA_PLL_TYPE_DEFAULT], 266 252 .clkr = { 267 253 .enable_reg = 0x79000, 268 254 .enable_mask = BIT(4), ··· 288 274 .post_div_table = post_div_table_gpll4_out_main, 289 275 .num_post_div = ARRAY_SIZE(post_div_table_gpll4_out_main), 290 276 .width = 4, 291 - .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT], 277 + .regs = clk_alpha_pll_regs_offset[CLK_ALPHA_PLL_TYPE_DEFAULT], 292 278 .clkr.hw.init = &(struct clk_init_data){ 293 279 .name = "gpll4_out_main", 294 280 .parent_hws = (const struct clk_hw *[]){ &gpll4.clkr.hw }, ··· 301 287 .offset = 0x6000, 302 288 .vco_table = default_vco, 303 289 .num_vco = ARRAY_SIZE(default_vco), 304 - .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT], 290 + .regs = clk_alpha_pll_regs_offset[CLK_ALPHA_PLL_TYPE_DEFAULT], 305 291 .clkr = { 306 292 .enable_reg = 0x79000, 307 293 .enable_mask = BIT(6), ··· 327 313 .post_div_table = post_div_table_gpll6_out_main, 328 314 .num_post_div = ARRAY_SIZE(post_div_table_gpll6_out_main), 329 315 .width = 4, 330 - .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT], 316 + .regs = clk_alpha_pll_regs_offset[CLK_ALPHA_PLL_TYPE_DEFAULT], 331 317 .clkr.hw.init = &(struct clk_init_data){ 332 318 .name = "gpll6_out_main", 333 319 .parent_hws = (const struct clk_hw *[]){ &gpll6.clkr.hw }, ··· 340 326 .offset = 0x7000, 341 327 .vco_table = default_vco, 342 328 .num_vco = ARRAY_SIZE(default_vco), 343 - .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT], 329 + .regs = clk_alpha_pll_regs_offset[CLK_ALPHA_PLL_TYPE_DEFAULT], 344 330 .clkr = { 345 331 .enable_reg = 0x79000, 346 332 .enable_mask = BIT(7), ··· 366 352 .post_div_table = post_div_table_gpll7_out_main, 367 353 .num_post_div = ARRAY_SIZE(post_div_table_gpll7_out_main), 368 354 .width = 4, 369 - .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT], 355 + .regs = clk_alpha_pll_regs_offset[CLK_ALPHA_PLL_TYPE_DEFAULT], 370 356 .clkr.hw.init = &(struct clk_init_data){ 371 357 .name = "gpll7_out_main", 372 358 .parent_hws = (const struct clk_hw *[]){ &gpll7.clkr.hw }, ··· 394 380 .offset = 0x8000, 395 381 .vco_table = default_vco, 396 382 .num_vco = ARRAY_SIZE(default_vco), 397 - .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT], 383 + .regs = clk_alpha_pll_regs_offset[CLK_ALPHA_PLL_TYPE_DEFAULT], 398 384 .flags = SUPPORTS_DYNAMIC_UPDATE, 399 385 .clkr = { 400 386 .enable_reg = 0x79000, ··· 421 407 .post_div_table = post_div_table_gpll8_out_main, 422 408 .num_post_div = ARRAY_SIZE(post_div_table_gpll8_out_main), 423 409 .width = 4, 424 - .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT], 410 + .regs = clk_alpha_pll_regs_offset[CLK_ALPHA_PLL_TYPE_DEFAULT], 425 411 .clkr.hw.init = &(struct clk_init_data){ 426 412 .name = "gpll8_out_main", 427 413 .parent_hws = (const struct clk_hw *[]){ &gpll8.clkr.hw },