1 // SPDX-License-Identifier: GPL-2.0-only
3 * Copyright (c) 2021, The Linux Foundation. All rights reserved.
4 * Copyright (c) 2022, Linaro Ltd.
7 #include <linux/clk-provider.h>
9 #include <linux/kernel.h>
10 #include <linux/module.h>
11 #include <linux/of_device.h>
13 #include <linux/regmap.h>
15 #include <dt-bindings/clock/qcom,gcc-sc8280xp.h>
17 #include "clk-alpha-pll.h"
18 #include "clk-branch.h"
20 #include "clk-regmap.h"
21 #include "clk-regmap-divider.h"
22 #include "clk-regmap-mux.h"
27 /* Need to match the order of clocks in DT binding */
31 DT_UFS_PHY_RX_SYMBOL_0_CLK,
32 DT_UFS_PHY_RX_SYMBOL_1_CLK,
33 DT_UFS_PHY_TX_SYMBOL_0_CLK,
34 DT_UFS_CARD_RX_SYMBOL_0_CLK,
35 DT_UFS_CARD_RX_SYMBOL_1_CLK,
36 DT_UFS_CARD_TX_SYMBOL_0_CLK,
37 DT_USB3_PHY_WRAPPER_GCC_USB30_PIPE_CLK,
38 DT_GCC_USB4_PHY_PIPEGMUX_CLK_SRC,
39 DT_GCC_USB4_PHY_DP_GMUX_CLK_SRC,
40 DT_GCC_USB4_PHY_SYS_PIPEGMUX_CLK_SRC,
41 DT_USB4_PHY_GCC_USB4_PCIE_PIPE_CLK,
42 DT_USB4_PHY_GCC_USB4RTR_MAX_PIPE_CLK,
43 DT_QUSB4PHY_GCC_USB4_RX0_CLK,
44 DT_QUSB4PHY_GCC_USB4_RX1_CLK,
45 DT_USB3_UNI_PHY_SEC_GCC_USB30_PIPE_CLK,
46 DT_GCC_USB4_1_PHY_PIPEGMUX_CLK_SRC,
47 DT_GCC_USB4_1_PHY_DP_GMUX_CLK_SRC,
48 DT_GCC_USB4_1_PHY_SYS_PIPEGMUX_CLK_SRC,
49 DT_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK,
50 DT_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK,
51 DT_QUSB4PHY_1_GCC_USB4_RX0_CLK,
52 DT_QUSB4PHY_1_GCC_USB4_RX1_CLK,
53 DT_USB3_UNI_PHY_MP_GCC_USB30_PIPE_0_CLK,
54 DT_USB3_UNI_PHY_MP_GCC_USB30_PIPE_1_CLK,
73 P_GCC_USB3_PRIM_PHY_PIPE_CLK_SRC,
74 P_GCC_USB3_SEC_PHY_PIPE_CLK_SRC,
75 P_GCC_USB4_1_PHY_DP_GMUX_CLK_SRC,
76 P_GCC_USB4_1_PHY_PCIE_PIPE_CLK_SRC,
77 P_GCC_USB4_1_PHY_PCIE_PIPEGMUX_CLK_SRC,
78 P_GCC_USB4_1_PHY_PIPEGMUX_CLK_SRC,
79 P_GCC_USB4_1_PHY_SYS_PIPEGMUX_CLK_SRC,
80 P_GCC_USB4_PHY_DP_GMUX_CLK_SRC,
81 P_GCC_USB4_PHY_PCIE_PIPE_CLK_SRC,
82 P_GCC_USB4_PHY_PCIE_PIPEGMUX_CLK_SRC,
83 P_GCC_USB4_PHY_PIPEGMUX_CLK_SRC,
84 P_GCC_USB4_PHY_SYS_PIPEGMUX_CLK_SRC,
90 P_QUSB4PHY_1_GCC_USB4_RX0_CLK,
91 P_QUSB4PHY_1_GCC_USB4_RX1_CLK,
92 P_QUSB4PHY_GCC_USB4_RX0_CLK,
93 P_QUSB4PHY_GCC_USB4_RX1_CLK,
97 P_UFS_CARD_RX_SYMBOL_0_CLK,
98 P_UFS_CARD_RX_SYMBOL_1_CLK,
99 P_UFS_CARD_TX_SYMBOL_0_CLK,
100 P_UFS_PHY_RX_SYMBOL_0_CLK,
101 P_UFS_PHY_RX_SYMBOL_1_CLK,
102 P_UFS_PHY_TX_SYMBOL_0_CLK,
103 P_USB3_PHY_WRAPPER_GCC_USB30_PIPE_CLK,
104 P_USB3_UNI_PHY_MP_GCC_USB30_PIPE_0_CLK,
105 P_USB3_UNI_PHY_MP_GCC_USB30_PIPE_1_CLK,
106 P_USB3_UNI_PHY_SEC_GCC_USB30_PIPE_CLK,
107 P_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK,
108 P_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK,
109 P_USB4_PHY_GCC_USB4_PCIE_PIPE_CLK,
110 P_USB4_PHY_GCC_USB4RTR_MAX_PIPE_CLK,
113 static const struct clk_parent_data gcc_parent_data_tcxo = { .index = DT_BI_TCXO };
115 static struct clk_alpha_pll gcc_gpll0 = {
117 .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID],
119 .enable_reg = 0x52028,
120 .enable_mask = BIT(0),
121 .hw.init = &(const struct clk_init_data) {
123 .parent_data = &gcc_parent_data_tcxo,
125 .ops = &clk_alpha_pll_fixed_lucid_5lpe_ops,
130 static const struct clk_div_table post_div_table_gcc_gpll0_out_even[] = {
135 static struct clk_alpha_pll_postdiv gcc_gpll0_out_even = {
138 .post_div_table = post_div_table_gcc_gpll0_out_even,
139 .num_post_div = ARRAY_SIZE(post_div_table_gcc_gpll0_out_even),
141 .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID],
142 .clkr.hw.init = &(const struct clk_init_data) {
143 .name = "gcc_gpll0_out_even",
144 .parent_hws = (const struct clk_hw*[]){
148 .ops = &clk_alpha_pll_postdiv_lucid_5lpe_ops,
152 static struct clk_alpha_pll gcc_gpll2 = {
154 .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID],
156 .enable_reg = 0x52028,
157 .enable_mask = BIT(2),
158 .hw.init = &(const struct clk_init_data) {
160 .parent_data = &gcc_parent_data_tcxo,
162 .ops = &clk_alpha_pll_fixed_lucid_5lpe_ops,
167 static struct clk_alpha_pll gcc_gpll4 = {
169 .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID],
171 .enable_reg = 0x52028,
172 .enable_mask = BIT(4),
173 .hw.init = &(const struct clk_init_data) {
175 .parent_data = &gcc_parent_data_tcxo,
177 .ops = &clk_alpha_pll_fixed_lucid_5lpe_ops,
182 static struct clk_alpha_pll gcc_gpll7 = {
184 .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID],
186 .enable_reg = 0x52028,
187 .enable_mask = BIT(7),
188 .hw.init = &(const struct clk_init_data) {
190 .parent_data = &gcc_parent_data_tcxo,
192 .ops = &clk_alpha_pll_fixed_lucid_5lpe_ops,
197 static struct clk_alpha_pll gcc_gpll8 = {
199 .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID],
201 .enable_reg = 0x52028,
202 .enable_mask = BIT(8),
203 .hw.init = &(const struct clk_init_data) {
205 .parent_data = &gcc_parent_data_tcxo,
207 .ops = &clk_alpha_pll_fixed_lucid_5lpe_ops,
212 static struct clk_alpha_pll gcc_gpll9 = {
214 .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID],
216 .enable_reg = 0x52028,
217 .enable_mask = BIT(9),
218 .hw.init = &(const struct clk_init_data) {
220 .parent_data = &gcc_parent_data_tcxo,
222 .ops = &clk_alpha_pll_fixed_lucid_5lpe_ops,
227 static struct clk_rcg2 gcc_usb4_1_phy_pcie_pipe_clk_src;
228 static struct clk_rcg2 gcc_usb4_phy_pcie_pipe_clk_src;
230 static const struct parent_map gcc_parent_map_0[] = {
232 { P_GCC_GPLL0_OUT_MAIN, 1 },
233 { P_GCC_GPLL0_OUT_EVEN, 6 },
236 static const struct clk_parent_data gcc_parent_data_0[] = {
237 { .index = DT_BI_TCXO },
238 { .hw = &gcc_gpll0.clkr.hw },
239 { .hw = &gcc_gpll0_out_even.clkr.hw },
242 static const struct parent_map gcc_parent_map_1[] = {
247 static const struct clk_parent_data gcc_parent_data_1[] = {
248 { .index = DT_BI_TCXO },
249 { .index = DT_SLEEP_CLK },
252 static const struct parent_map gcc_parent_map_2[] = {
254 { P_GCC_GPLL0_OUT_MAIN, 1 },
256 { P_GCC_GPLL0_OUT_EVEN, 6 },
259 static const struct clk_parent_data gcc_parent_data_2[] = {
260 { .index = DT_BI_TCXO },
261 { .hw = &gcc_gpll0.clkr.hw },
262 { .index = DT_SLEEP_CLK },
263 { .hw = &gcc_gpll0_out_even.clkr.hw },
266 static const struct parent_map gcc_parent_map_3[] = {
270 static const struct clk_parent_data gcc_parent_data_3[] = {
271 { .index = DT_BI_TCXO },
274 static const struct parent_map gcc_parent_map_4[] = {
276 { P_GCC_GPLL7_OUT_MAIN, 2 },
277 { P_GCC_GPLL4_OUT_MAIN, 5 },
278 { P_GCC_GPLL0_OUT_EVEN, 6 },
281 static const struct clk_parent_data gcc_parent_data_4[] = {
282 { .index = DT_BI_TCXO },
283 { .hw = &gcc_gpll7.clkr.hw },
284 { .hw = &gcc_gpll4.clkr.hw },
285 { .hw = &gcc_gpll0_out_even.clkr.hw },
288 static const struct parent_map gcc_parent_map_5[] = {
290 { P_GCC_GPLL0_OUT_MAIN, 1 },
291 { P_GCC_GPLL8_OUT_MAIN, 2 },
292 { P_GCC_GPLL0_OUT_EVEN, 6 },
295 static const struct clk_parent_data gcc_parent_data_5[] = {
296 { .index = DT_BI_TCXO },
297 { .hw = &gcc_gpll0.clkr.hw },
298 { .hw = &gcc_gpll8.clkr.hw },
299 { .hw = &gcc_gpll0_out_even.clkr.hw },
302 static const struct parent_map gcc_parent_map_6[] = {
304 { P_GCC_GPLL0_OUT_MAIN, 1 },
305 { P_GCC_GPLL7_OUT_MAIN, 2 },
308 static const struct clk_parent_data gcc_parent_data_6[] = {
309 { .index = DT_BI_TCXO },
310 { .hw = &gcc_gpll0.clkr.hw },
311 { .hw = &gcc_gpll7.clkr.hw },
314 static const struct parent_map gcc_parent_map_7[] = {
316 { P_GCC_GPLL0_OUT_MAIN, 1 },
317 { P_GCC_GPLL2_OUT_MAIN, 2 },
320 static const struct clk_parent_data gcc_parent_data_7[] = {
321 { .index = DT_BI_TCXO },
322 { .hw = &gcc_gpll0.clkr.hw },
323 { .hw = &gcc_gpll2.clkr.hw },
326 static const struct parent_map gcc_parent_map_8[] = {
328 { P_GCC_GPLL7_OUT_MAIN, 2 },
329 { P_RXC0_REF_CLK, 3 },
330 { P_GCC_GPLL0_OUT_EVEN, 6 },
333 static const struct clk_parent_data gcc_parent_data_8[] = {
334 { .index = DT_BI_TCXO },
335 { .hw = &gcc_gpll7.clkr.hw },
336 { .index = DT_RXC0_REF_CLK },
337 { .hw = &gcc_gpll0_out_even.clkr.hw },
340 static const struct parent_map gcc_parent_map_9[] = {
342 { P_GCC_GPLL7_OUT_MAIN, 2 },
343 { P_RXC1_REF_CLK, 3 },
344 { P_GCC_GPLL0_OUT_EVEN, 6 },
347 static const struct clk_parent_data gcc_parent_data_9[] = {
348 { .index = DT_BI_TCXO },
349 { .hw = &gcc_gpll7.clkr.hw },
350 { .index = DT_RXC1_REF_CLK },
351 { .hw = &gcc_gpll0_out_even.clkr.hw },
354 static const struct parent_map gcc_parent_map_10[] = {
355 { P_PCIE_2A_PIPE_CLK, 0 },
359 static const struct clk_parent_data gcc_parent_data_10[] = {
360 { .index = DT_PCIE_2A_PIPE_CLK },
361 { .index = DT_BI_TCXO },
364 static const struct parent_map gcc_parent_map_11[] = {
365 { P_PCIE_2B_PIPE_CLK, 0 },
369 static const struct clk_parent_data gcc_parent_data_11[] = {
370 { .index = DT_PCIE_2B_PIPE_CLK },
371 { .index = DT_BI_TCXO },
374 static const struct parent_map gcc_parent_map_12[] = {
375 { P_PCIE_3A_PIPE_CLK, 0 },
379 static const struct clk_parent_data gcc_parent_data_12[] = {
380 { .index = DT_PCIE_3A_PIPE_CLK },
381 { .index = DT_BI_TCXO },
384 static const struct parent_map gcc_parent_map_13[] = {
385 { P_PCIE_3B_PIPE_CLK, 0 },
389 static const struct clk_parent_data gcc_parent_data_13[] = {
390 { .index = DT_PCIE_3B_PIPE_CLK },
391 { .index = DT_BI_TCXO },
394 static const struct parent_map gcc_parent_map_14[] = {
395 { P_PCIE_4_PIPE_CLK, 0 },
399 static const struct clk_parent_data gcc_parent_data_14[] = {
400 { .index = DT_PCIE_4_PIPE_CLK },
401 { .index = DT_BI_TCXO },
404 static const struct parent_map gcc_parent_map_15[] = {
406 { P_GCC_GPLL0_OUT_MAIN, 1 },
407 { P_GCC_GPLL9_OUT_MAIN, 2 },
408 { P_GCC_GPLL4_OUT_MAIN, 5 },
409 { P_GCC_GPLL0_OUT_EVEN, 6 },
412 static const struct clk_parent_data gcc_parent_data_15[] = {
413 { .index = DT_BI_TCXO },
414 { .hw = &gcc_gpll0.clkr.hw },
415 { .hw = &gcc_gpll9.clkr.hw },
416 { .hw = &gcc_gpll4.clkr.hw },
417 { .hw = &gcc_gpll0_out_even.clkr.hw },
420 static const struct parent_map gcc_parent_map_16[] = {
421 { P_UFS_CARD_RX_SYMBOL_0_CLK, 0 },
425 static const struct clk_parent_data gcc_parent_data_16[] = {
426 { .index = DT_UFS_CARD_RX_SYMBOL_0_CLK },
427 { .index = DT_BI_TCXO },
430 static const struct parent_map gcc_parent_map_17[] = {
431 { P_UFS_CARD_RX_SYMBOL_1_CLK, 0 },
435 static const struct clk_parent_data gcc_parent_data_17[] = {
436 { .index = DT_UFS_CARD_RX_SYMBOL_1_CLK },
437 { .index = DT_BI_TCXO },
440 static const struct parent_map gcc_parent_map_18[] = {
441 { P_UFS_CARD_TX_SYMBOL_0_CLK, 0 },
445 static const struct clk_parent_data gcc_parent_data_18[] = {
446 { .index = DT_UFS_CARD_TX_SYMBOL_0_CLK },
447 { .index = DT_BI_TCXO },
450 static const struct parent_map gcc_parent_map_19[] = {
451 { P_UFS_PHY_RX_SYMBOL_0_CLK, 0 },
455 static const struct clk_parent_data gcc_parent_data_19[] = {
456 { .index = DT_UFS_PHY_RX_SYMBOL_0_CLK },
457 { .index = DT_BI_TCXO },
460 static const struct parent_map gcc_parent_map_20[] = {
461 { P_UFS_PHY_RX_SYMBOL_1_CLK, 0 },
465 static const struct clk_parent_data gcc_parent_data_20[] = {
466 { .index = DT_UFS_PHY_RX_SYMBOL_1_CLK },
467 { .index = DT_BI_TCXO },
470 static const struct parent_map gcc_parent_map_21[] = {
471 { P_UFS_PHY_TX_SYMBOL_0_CLK, 0 },
475 static const struct clk_parent_data gcc_parent_data_21[] = {
476 { .index = DT_UFS_PHY_TX_SYMBOL_0_CLK },
477 { .index = DT_BI_TCXO },
480 static const struct parent_map gcc_parent_map_22[] = {
481 { P_USB3_PHY_WRAPPER_GCC_USB30_PIPE_CLK, 0 },
485 static const struct clk_parent_data gcc_parent_data_22[] = {
486 { .index = DT_USB3_PHY_WRAPPER_GCC_USB30_PIPE_CLK },
487 { .index = DT_BI_TCXO },
490 static const struct parent_map gcc_parent_map_23[] = {
491 { P_USB3_UNI_PHY_SEC_GCC_USB30_PIPE_CLK, 0 },
495 static const struct clk_parent_data gcc_parent_data_23[] = {
496 { .index = DT_USB3_UNI_PHY_SEC_GCC_USB30_PIPE_CLK },
497 { .index = DT_BI_TCXO },
500 static struct clk_regmap_mux gcc_usb3_prim_phy_pipe_clk_src = {
504 .parent_map = gcc_parent_map_22,
506 .hw.init = &(const struct clk_init_data) {
507 .name = "gcc_usb3_prim_phy_pipe_clk_src",
508 .parent_data = gcc_parent_data_22,
509 .num_parents = ARRAY_SIZE(gcc_parent_data_22),
510 .ops = &clk_regmap_mux_closest_ops,
515 static struct clk_regmap_mux gcc_usb3_sec_phy_pipe_clk_src = {
519 .parent_map = gcc_parent_map_23,
521 .hw.init = &(const struct clk_init_data) {
522 .name = "gcc_usb3_sec_phy_pipe_clk_src",
523 .parent_data = gcc_parent_data_23,
524 .num_parents = ARRAY_SIZE(gcc_parent_data_23),
525 .ops = &clk_regmap_mux_closest_ops,
530 static const struct parent_map gcc_parent_map_24[] = {
531 { P_USB3_UNI_PHY_MP_GCC_USB30_PIPE_0_CLK, 0 },
535 static const struct clk_parent_data gcc_parent_data_24[] = {
536 { .index = DT_USB3_UNI_PHY_MP_GCC_USB30_PIPE_0_CLK },
537 { .index = DT_BI_TCXO },
540 static const struct parent_map gcc_parent_map_25[] = {
541 { P_USB3_UNI_PHY_MP_GCC_USB30_PIPE_1_CLK, 0 },
545 static const struct clk_parent_data gcc_parent_data_25[] = {
546 { .index = DT_USB3_UNI_PHY_MP_GCC_USB30_PIPE_1_CLK },
547 { .index = DT_BI_TCXO },
550 static const struct parent_map gcc_parent_map_26[] = {
551 { P_GCC_USB3_PRIM_PHY_PIPE_CLK_SRC, 0 },
552 { P_USB4_PHY_GCC_USB4RTR_MAX_PIPE_CLK, 1 },
553 { P_GCC_USB4_PHY_PIPEGMUX_CLK_SRC, 3 },
556 static const struct clk_parent_data gcc_parent_data_26[] = {
557 { .hw = &gcc_usb3_prim_phy_pipe_clk_src.clkr.hw },
558 { .index = DT_USB4_PHY_GCC_USB4RTR_MAX_PIPE_CLK },
559 { .index = DT_GCC_USB4_PHY_PIPEGMUX_CLK_SRC },
562 static const struct parent_map gcc_parent_map_27[] = {
563 { P_GCC_USB3_SEC_PHY_PIPE_CLK_SRC, 0 },
564 { P_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK, 1 },
565 { P_GCC_USB4_1_PHY_PIPEGMUX_CLK_SRC, 3 },
568 static const struct clk_parent_data gcc_parent_data_27[] = {
569 { .hw = &gcc_usb3_sec_phy_pipe_clk_src.clkr.hw },
570 { .index = DT_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK },
571 { .index = DT_GCC_USB4_1_PHY_PIPEGMUX_CLK_SRC },
574 static const struct parent_map gcc_parent_map_28[] = {
575 { P_GCC_USB4_1_PHY_DP_GMUX_CLK_SRC, 0 },
576 { P_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK, 2 },
579 static const struct clk_parent_data gcc_parent_data_28[] = {
580 { .index = DT_GCC_USB4_1_PHY_DP_GMUX_CLK_SRC },
581 { .index = DT_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK },
584 static const struct parent_map gcc_parent_map_29[] = {
585 { P_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK, 0 },
589 static const struct clk_parent_data gcc_parent_data_29[] = {
590 { .index = DT_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK },
591 { .index = DT_BI_TCXO },
594 static const struct parent_map gcc_parent_map_30[] = {
595 { P_GCC_USB4_1_PHY_SYS_PIPEGMUX_CLK_SRC, 0 },
596 { P_GCC_USB4_1_PHY_PCIE_PIPE_CLK_SRC, 1 },
599 static const struct clk_parent_data gcc_parent_data_30[] = {
600 { .index = DT_GCC_USB4_1_PHY_SYS_PIPEGMUX_CLK_SRC },
601 { .hw = &gcc_usb4_1_phy_pcie_pipe_clk_src.clkr.hw },
604 static struct clk_regmap_mux gcc_usb4_1_phy_pcie_pipegmux_clk_src = {
608 .parent_map = gcc_parent_map_30,
610 .hw.init = &(const struct clk_init_data) {
611 .name = "gcc_usb4_1_phy_pcie_pipegmux_clk_src",
612 .parent_data = gcc_parent_data_30,
613 .num_parents = ARRAY_SIZE(gcc_parent_data_30),
614 .ops = &clk_regmap_mux_closest_ops,
619 static const struct parent_map gcc_parent_map_31[] = {
620 { P_GCC_USB4_1_PHY_PCIE_PIPEGMUX_CLK_SRC, 0 },
621 { P_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK, 2 },
624 static const struct clk_parent_data gcc_parent_data_31[] = {
625 { .hw = &gcc_usb4_1_phy_pcie_pipegmux_clk_src.clkr.hw },
626 { .index = DT_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK },
629 static const struct parent_map gcc_parent_map_32[] = {
630 { P_QUSB4PHY_1_GCC_USB4_RX0_CLK, 0 },
634 static const struct clk_parent_data gcc_parent_data_32[] = {
635 { .index = DT_QUSB4PHY_1_GCC_USB4_RX0_CLK },
636 { .index = DT_BI_TCXO },
639 static const struct parent_map gcc_parent_map_33[] = {
640 { P_QUSB4PHY_1_GCC_USB4_RX1_CLK, 0 },
644 static const struct clk_parent_data gcc_parent_data_33[] = {
645 { .index = DT_QUSB4PHY_1_GCC_USB4_RX1_CLK },
646 { .index = DT_BI_TCXO },
649 static const struct parent_map gcc_parent_map_34[] = {
650 { P_GCC_USB4_1_PHY_SYS_PIPEGMUX_CLK_SRC, 0 },
651 { P_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK, 2 },
654 static const struct clk_parent_data gcc_parent_data_34[] = {
655 { .index = DT_GCC_USB4_1_PHY_SYS_PIPEGMUX_CLK_SRC },
656 { .index = DT_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK },
659 static const struct parent_map gcc_parent_map_35[] = {
660 { P_GCC_USB4_PHY_DP_GMUX_CLK_SRC, 0 },
661 { P_USB4_PHY_GCC_USB4RTR_MAX_PIPE_CLK, 2 },
664 static const struct clk_parent_data gcc_parent_data_35[] = {
665 { .index = DT_GCC_USB4_PHY_DP_GMUX_CLK_SRC },
666 { .index = DT_USB4_PHY_GCC_USB4RTR_MAX_PIPE_CLK },
669 static const struct parent_map gcc_parent_map_36[] = {
670 { P_USB4_PHY_GCC_USB4_PCIE_PIPE_CLK, 0 },
674 static const struct clk_parent_data gcc_parent_data_36[] = {
675 { .index = DT_USB4_PHY_GCC_USB4_PCIE_PIPE_CLK },
676 { .index = DT_BI_TCXO },
679 static const struct parent_map gcc_parent_map_37[] = {
680 { P_GCC_USB4_PHY_SYS_PIPEGMUX_CLK_SRC, 0 },
681 { P_GCC_USB4_PHY_PCIE_PIPE_CLK_SRC, 1 },
684 static const struct clk_parent_data gcc_parent_data_37[] = {
685 { .index = DT_GCC_USB4_PHY_SYS_PIPEGMUX_CLK_SRC },
686 { .hw = &gcc_usb4_phy_pcie_pipe_clk_src.clkr.hw },
689 static struct clk_regmap_mux gcc_usb4_phy_pcie_pipegmux_clk_src = {
693 .parent_map = gcc_parent_map_37,
695 .hw.init = &(const struct clk_init_data) {
696 .name = "gcc_usb4_phy_pcie_pipegmux_clk_src",
697 .parent_data = gcc_parent_data_37,
698 .num_parents = ARRAY_SIZE(gcc_parent_data_37),
699 .ops = &clk_regmap_mux_closest_ops,
704 static const struct parent_map gcc_parent_map_38[] = {
705 { P_GCC_USB4_PHY_PCIE_PIPEGMUX_CLK_SRC, 0 },
706 { P_USB4_PHY_GCC_USB4_PCIE_PIPE_CLK, 2 },
709 static const struct clk_parent_data gcc_parent_data_38[] = {
710 { .hw = &gcc_usb4_phy_pcie_pipegmux_clk_src.clkr.hw },
711 { .index = DT_USB4_PHY_GCC_USB4_PCIE_PIPE_CLK },
714 static const struct parent_map gcc_parent_map_39[] = {
715 { P_QUSB4PHY_GCC_USB4_RX0_CLK, 0 },
719 static const struct clk_parent_data gcc_parent_data_39[] = {
720 { .index = DT_QUSB4PHY_GCC_USB4_RX0_CLK },
721 { .index = DT_BI_TCXO },
724 static const struct parent_map gcc_parent_map_40[] = {
725 { P_QUSB4PHY_GCC_USB4_RX1_CLK, 0 },
729 static const struct clk_parent_data gcc_parent_data_40[] = {
730 { .index = DT_QUSB4PHY_GCC_USB4_RX1_CLK },
731 { .index = DT_BI_TCXO },
734 static const struct parent_map gcc_parent_map_41[] = {
735 { P_GCC_USB4_PHY_SYS_PIPEGMUX_CLK_SRC, 0 },
736 { P_USB4_PHY_GCC_USB4_PCIE_PIPE_CLK, 2 },
739 static const struct clk_parent_data gcc_parent_data_41[] = {
740 { .index = DT_GCC_USB4_PHY_SYS_PIPEGMUX_CLK_SRC },
741 { .index = DT_USB4_PHY_GCC_USB4_PCIE_PIPE_CLK },
744 static struct clk_regmap_mux gcc_pcie_2a_pipe_clk_src = {
748 .parent_map = gcc_parent_map_10,
750 .hw.init = &(const struct clk_init_data) {
751 .name = "gcc_pcie_2a_pipe_clk_src",
752 .parent_data = gcc_parent_data_10,
753 .num_parents = ARRAY_SIZE(gcc_parent_data_10),
754 .ops = &clk_regmap_mux_closest_ops,
759 static struct clk_regmap_mux gcc_pcie_2b_pipe_clk_src = {
763 .parent_map = gcc_parent_map_11,
765 .hw.init = &(const struct clk_init_data) {
766 .name = "gcc_pcie_2b_pipe_clk_src",
767 .parent_data = gcc_parent_data_11,
768 .num_parents = ARRAY_SIZE(gcc_parent_data_11),
769 .ops = &clk_regmap_mux_closest_ops,
774 static struct clk_regmap_mux gcc_pcie_3a_pipe_clk_src = {
778 .parent_map = gcc_parent_map_12,
780 .hw.init = &(const struct clk_init_data) {
781 .name = "gcc_pcie_3a_pipe_clk_src",
782 .parent_data = gcc_parent_data_12,
783 .num_parents = ARRAY_SIZE(gcc_parent_data_12),
784 .ops = &clk_regmap_mux_closest_ops,
789 static struct clk_regmap_mux gcc_pcie_3b_pipe_clk_src = {
793 .parent_map = gcc_parent_map_13,
795 .hw.init = &(const struct clk_init_data) {
796 .name = "gcc_pcie_3b_pipe_clk_src",
797 .parent_data = gcc_parent_data_13,
798 .num_parents = ARRAY_SIZE(gcc_parent_data_13),
799 .ops = &clk_regmap_mux_closest_ops,
804 static struct clk_regmap_mux gcc_pcie_4_pipe_clk_src = {
808 .parent_map = gcc_parent_map_14,
810 .hw.init = &(const struct clk_init_data) {
811 .name = "gcc_pcie_4_pipe_clk_src",
812 .parent_data = gcc_parent_data_14,
813 .num_parents = ARRAY_SIZE(gcc_parent_data_14),
814 .ops = &clk_regmap_mux_closest_ops,
819 static struct clk_regmap_mux gcc_ufs_card_rx_symbol_0_clk_src = {
823 .parent_map = gcc_parent_map_16,
825 .hw.init = &(const struct clk_init_data) {
826 .name = "gcc_ufs_card_rx_symbol_0_clk_src",
827 .parent_data = gcc_parent_data_16,
828 .num_parents = ARRAY_SIZE(gcc_parent_data_16),
829 .ops = &clk_regmap_mux_closest_ops,
834 static struct clk_regmap_mux gcc_ufs_card_rx_symbol_1_clk_src = {
838 .parent_map = gcc_parent_map_17,
840 .hw.init = &(const struct clk_init_data) {
841 .name = "gcc_ufs_card_rx_symbol_1_clk_src",
842 .parent_data = gcc_parent_data_17,
843 .num_parents = ARRAY_SIZE(gcc_parent_data_17),
844 .ops = &clk_regmap_mux_closest_ops,
849 static struct clk_regmap_mux gcc_ufs_card_tx_symbol_0_clk_src = {
853 .parent_map = gcc_parent_map_18,
855 .hw.init = &(const struct clk_init_data) {
856 .name = "gcc_ufs_card_tx_symbol_0_clk_src",
857 .parent_data = gcc_parent_data_18,
858 .num_parents = ARRAY_SIZE(gcc_parent_data_18),
859 .ops = &clk_regmap_mux_closest_ops,
864 static struct clk_regmap_mux gcc_ufs_phy_rx_symbol_0_clk_src = {
868 .parent_map = gcc_parent_map_19,
870 .hw.init = &(const struct clk_init_data) {
871 .name = "gcc_ufs_phy_rx_symbol_0_clk_src",
872 .parent_data = gcc_parent_data_19,
873 .num_parents = ARRAY_SIZE(gcc_parent_data_19),
874 .ops = &clk_regmap_mux_closest_ops,
879 static struct clk_regmap_mux gcc_ufs_phy_rx_symbol_1_clk_src = {
883 .parent_map = gcc_parent_map_20,
885 .hw.init = &(const struct clk_init_data) {
886 .name = "gcc_ufs_phy_rx_symbol_1_clk_src",
887 .parent_data = gcc_parent_data_20,
888 .num_parents = ARRAY_SIZE(gcc_parent_data_20),
889 .ops = &clk_regmap_mux_closest_ops,
894 static struct clk_regmap_mux gcc_ufs_phy_tx_symbol_0_clk_src = {
898 .parent_map = gcc_parent_map_21,
900 .hw.init = &(const struct clk_init_data) {
901 .name = "gcc_ufs_phy_tx_symbol_0_clk_src",
902 .parent_data = gcc_parent_data_21,
903 .num_parents = ARRAY_SIZE(gcc_parent_data_21),
904 .ops = &clk_regmap_mux_closest_ops,
909 static struct clk_regmap_mux gcc_usb34_prim_phy_pipe_clk_src = {
913 .parent_map = gcc_parent_map_26,
915 .hw.init = &(const struct clk_init_data) {
916 .name = "gcc_usb34_prim_phy_pipe_clk_src",
917 .parent_data = gcc_parent_data_26,
918 .num_parents = ARRAY_SIZE(gcc_parent_data_26),
919 .ops = &clk_regmap_mux_closest_ops,
924 static struct clk_regmap_mux gcc_usb34_sec_phy_pipe_clk_src = {
928 .parent_map = gcc_parent_map_27,
930 .hw.init = &(const struct clk_init_data) {
931 .name = "gcc_usb34_sec_phy_pipe_clk_src",
932 .parent_data = gcc_parent_data_27,
933 .num_parents = ARRAY_SIZE(gcc_parent_data_27),
934 .ops = &clk_regmap_mux_closest_ops,
939 static struct clk_regmap_mux gcc_usb3_mp_phy_pipe_0_clk_src = {
943 .parent_map = gcc_parent_map_24,
945 .hw.init = &(const struct clk_init_data) {
946 .name = "gcc_usb3_mp_phy_pipe_0_clk_src",
947 .parent_data = gcc_parent_data_24,
948 .num_parents = ARRAY_SIZE(gcc_parent_data_24),
949 .ops = &clk_regmap_mux_closest_ops,
954 static struct clk_regmap_mux gcc_usb3_mp_phy_pipe_1_clk_src = {
958 .parent_map = gcc_parent_map_25,
960 .hw.init = &(const struct clk_init_data) {
961 .name = "gcc_usb3_mp_phy_pipe_1_clk_src",
962 .parent_data = gcc_parent_data_25,
963 .num_parents = ARRAY_SIZE(gcc_parent_data_25),
964 .ops = &clk_regmap_mux_closest_ops,
969 static struct clk_regmap_mux gcc_usb4_1_phy_dp_clk_src = {
973 .parent_map = gcc_parent_map_28,
975 .hw.init = &(const struct clk_init_data) {
976 .name = "gcc_usb4_1_phy_dp_clk_src",
977 .parent_data = gcc_parent_data_28,
978 .num_parents = ARRAY_SIZE(gcc_parent_data_28),
979 .ops = &clk_regmap_mux_closest_ops,
984 static struct clk_regmap_mux gcc_usb4_1_phy_p2rr2p_pipe_clk_src = {
988 .parent_map = gcc_parent_map_29,
990 .hw.init = &(const struct clk_init_data) {
991 .name = "gcc_usb4_1_phy_p2rr2p_pipe_clk_src",
992 .parent_data = gcc_parent_data_29,
993 .num_parents = ARRAY_SIZE(gcc_parent_data_29),
994 .ops = &clk_regmap_mux_closest_ops,
999 static struct clk_regmap_mux gcc_usb4_1_phy_pcie_pipe_mux_clk_src = {
1003 .parent_map = gcc_parent_map_31,
1005 .hw.init = &(const struct clk_init_data) {
1006 .name = "gcc_usb4_1_phy_pcie_pipe_mux_clk_src",
1007 .parent_data = gcc_parent_data_31,
1008 .num_parents = ARRAY_SIZE(gcc_parent_data_31),
1009 .ops = &clk_regmap_mux_closest_ops,
1014 static struct clk_regmap_mux gcc_usb4_1_phy_rx0_clk_src = {
1018 .parent_map = gcc_parent_map_32,
1020 .hw.init = &(const struct clk_init_data) {
1021 .name = "gcc_usb4_1_phy_rx0_clk_src",
1022 .parent_data = gcc_parent_data_32,
1023 .num_parents = ARRAY_SIZE(gcc_parent_data_32),
1024 .ops = &clk_regmap_mux_closest_ops,
1029 static struct clk_regmap_mux gcc_usb4_1_phy_rx1_clk_src = {
1033 .parent_map = gcc_parent_map_33,
1035 .hw.init = &(const struct clk_init_data) {
1036 .name = "gcc_usb4_1_phy_rx1_clk_src",
1037 .parent_data = gcc_parent_data_33,
1038 .num_parents = ARRAY_SIZE(gcc_parent_data_33),
1039 .ops = &clk_regmap_mux_closest_ops,
1044 static struct clk_regmap_mux gcc_usb4_1_phy_sys_clk_src = {
1048 .parent_map = gcc_parent_map_34,
1050 .hw.init = &(const struct clk_init_data) {
1051 .name = "gcc_usb4_1_phy_sys_clk_src",
1052 .parent_data = gcc_parent_data_34,
1053 .num_parents = ARRAY_SIZE(gcc_parent_data_34),
1054 .ops = &clk_regmap_mux_closest_ops,
1059 static struct clk_regmap_mux gcc_usb4_phy_dp_clk_src = {
1063 .parent_map = gcc_parent_map_35,
1065 .hw.init = &(const struct clk_init_data) {
1066 .name = "gcc_usb4_phy_dp_clk_src",
1067 .parent_data = gcc_parent_data_35,
1068 .num_parents = ARRAY_SIZE(gcc_parent_data_35),
1069 .ops = &clk_regmap_mux_closest_ops,
1074 static struct clk_regmap_mux gcc_usb4_phy_p2rr2p_pipe_clk_src = {
1078 .parent_map = gcc_parent_map_36,
1080 .hw.init = &(const struct clk_init_data) {
1081 .name = "gcc_usb4_phy_p2rr2p_pipe_clk_src",
1082 .parent_data = gcc_parent_data_36,
1083 .num_parents = ARRAY_SIZE(gcc_parent_data_36),
1084 .ops = &clk_regmap_mux_closest_ops,
1089 static struct clk_regmap_mux gcc_usb4_phy_pcie_pipe_mux_clk_src = {
1093 .parent_map = gcc_parent_map_38,
1095 .hw.init = &(const struct clk_init_data) {
1096 .name = "gcc_usb4_phy_pcie_pipe_mux_clk_src",
1097 .parent_data = gcc_parent_data_38,
1098 .num_parents = ARRAY_SIZE(gcc_parent_data_38),
1099 .ops = &clk_regmap_mux_closest_ops,
1104 static struct clk_regmap_mux gcc_usb4_phy_rx0_clk_src = {
1108 .parent_map = gcc_parent_map_39,
1110 .hw.init = &(const struct clk_init_data) {
1111 .name = "gcc_usb4_phy_rx0_clk_src",
1112 .parent_data = gcc_parent_data_39,
1113 .num_parents = ARRAY_SIZE(gcc_parent_data_39),
1114 .ops = &clk_regmap_mux_closest_ops,
1119 static struct clk_regmap_mux gcc_usb4_phy_rx1_clk_src = {
1123 .parent_map = gcc_parent_map_40,
1125 .hw.init = &(const struct clk_init_data) {
1126 .name = "gcc_usb4_phy_rx1_clk_src",
1127 .parent_data = gcc_parent_data_40,
1128 .num_parents = ARRAY_SIZE(gcc_parent_data_40),
1129 .ops = &clk_regmap_mux_closest_ops,
1134 static struct clk_regmap_mux gcc_usb4_phy_sys_clk_src = {
1138 .parent_map = gcc_parent_map_41,
1140 .hw.init = &(const struct clk_init_data) {
1141 .name = "gcc_usb4_phy_sys_clk_src",
1142 .parent_data = gcc_parent_data_41,
1143 .num_parents = ARRAY_SIZE(gcc_parent_data_41),
1144 .ops = &clk_regmap_mux_closest_ops,
1149 static const struct freq_tbl ftbl_gcc_emac0_ptp_clk_src[] = {
1150 F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0),
1151 F(125000000, P_GCC_GPLL7_OUT_MAIN, 4, 0, 0),
1152 F(230400000, P_GCC_GPLL4_OUT_MAIN, 3.5, 0, 0),
1156 static struct clk_rcg2 gcc_emac0_ptp_clk_src = {
1157 .cmd_rcgr = 0xaa020,
1160 .parent_map = gcc_parent_map_4,
1161 .freq_tbl = ftbl_gcc_emac0_ptp_clk_src,
1162 .clkr.hw.init = &(const struct clk_init_data) {
1163 .name = "gcc_emac0_ptp_clk_src",
1164 .parent_data = gcc_parent_data_4,
1165 .num_parents = ARRAY_SIZE(gcc_parent_data_4),
1166 .ops = &clk_rcg2_shared_ops,
1170 static const struct freq_tbl ftbl_gcc_emac0_rgmii_clk_src[] = {
1171 F(50000000, P_GCC_GPLL0_OUT_EVEN, 6, 0, 0),
1172 F(125000000, P_GCC_GPLL7_OUT_MAIN, 4, 0, 0),
1173 F(250000000, P_GCC_GPLL7_OUT_MAIN, 2, 0, 0),
1177 static struct clk_rcg2 gcc_emac0_rgmii_clk_src = {
1178 .cmd_rcgr = 0xaa040,
1181 .parent_map = gcc_parent_map_8,
1182 .freq_tbl = ftbl_gcc_emac0_rgmii_clk_src,
1183 .clkr.hw.init = &(const struct clk_init_data) {
1184 .name = "gcc_emac0_rgmii_clk_src",
1185 .parent_data = gcc_parent_data_8,
1186 .num_parents = ARRAY_SIZE(gcc_parent_data_8),
1187 .ops = &clk_rcg2_shared_ops,
1191 static struct clk_rcg2 gcc_emac1_ptp_clk_src = {
1192 .cmd_rcgr = 0xba020,
1195 .parent_map = gcc_parent_map_4,
1196 .freq_tbl = ftbl_gcc_emac0_ptp_clk_src,
1197 .clkr.hw.init = &(const struct clk_init_data) {
1198 .name = "gcc_emac1_ptp_clk_src",
1199 .parent_data = gcc_parent_data_4,
1200 .num_parents = ARRAY_SIZE(gcc_parent_data_4),
1201 .ops = &clk_rcg2_shared_ops,
1205 static struct clk_rcg2 gcc_emac1_rgmii_clk_src = {
1206 .cmd_rcgr = 0xba040,
1209 .parent_map = gcc_parent_map_9,
1210 .freq_tbl = ftbl_gcc_emac0_rgmii_clk_src,
1211 .clkr.hw.init = &(const struct clk_init_data) {
1212 .name = "gcc_emac1_rgmii_clk_src",
1213 .parent_data = gcc_parent_data_9,
1214 .num_parents = ARRAY_SIZE(gcc_parent_data_9),
1215 .ops = &clk_rcg2_shared_ops,
1219 static const struct freq_tbl ftbl_gcc_gp1_clk_src[] = {
1220 F(50000000, P_GCC_GPLL0_OUT_EVEN, 6, 0, 0),
1221 F(100000000, P_GCC_GPLL0_OUT_MAIN, 6, 0, 0),
1222 F(200000000, P_GCC_GPLL0_OUT_MAIN, 3, 0, 0),
1226 static struct clk_rcg2 gcc_gp1_clk_src = {
1227 .cmd_rcgr = 0x64004,
1230 .parent_map = gcc_parent_map_2,
1231 .freq_tbl = ftbl_gcc_gp1_clk_src,
1232 .clkr.hw.init = &(const struct clk_init_data) {
1233 .name = "gcc_gp1_clk_src",
1234 .parent_data = gcc_parent_data_2,
1235 .num_parents = ARRAY_SIZE(gcc_parent_data_2),
1236 .ops = &clk_rcg2_shared_ops,
1240 static struct clk_rcg2 gcc_gp2_clk_src = {
1241 .cmd_rcgr = 0x65004,
1244 .parent_map = gcc_parent_map_2,
1245 .freq_tbl = ftbl_gcc_gp1_clk_src,
1246 .clkr.hw.init = &(const struct clk_init_data) {
1247 .name = "gcc_gp2_clk_src",
1248 .parent_data = gcc_parent_data_2,
1249 .num_parents = ARRAY_SIZE(gcc_parent_data_2),
1250 .ops = &clk_rcg2_shared_ops,
1254 static struct clk_rcg2 gcc_gp3_clk_src = {
1255 .cmd_rcgr = 0x66004,
1258 .parent_map = gcc_parent_map_2,
1259 .freq_tbl = ftbl_gcc_gp1_clk_src,
1260 .clkr.hw.init = &(const struct clk_init_data) {
1261 .name = "gcc_gp3_clk_src",
1262 .parent_data = gcc_parent_data_2,
1263 .num_parents = ARRAY_SIZE(gcc_parent_data_2),
1264 .ops = &clk_rcg2_shared_ops,
1268 static struct clk_rcg2 gcc_gp4_clk_src = {
1269 .cmd_rcgr = 0xc2004,
1272 .parent_map = gcc_parent_map_2,
1273 .freq_tbl = ftbl_gcc_gp1_clk_src,
1274 .clkr.hw.init = &(const struct clk_init_data) {
1275 .name = "gcc_gp4_clk_src",
1276 .parent_data = gcc_parent_data_2,
1277 .num_parents = ARRAY_SIZE(gcc_parent_data_2),
1278 .ops = &clk_rcg2_shared_ops,
1282 static struct clk_rcg2 gcc_gp5_clk_src = {
1283 .cmd_rcgr = 0xc3004,
1286 .parent_map = gcc_parent_map_2,
1287 .freq_tbl = ftbl_gcc_gp1_clk_src,
1288 .clkr.hw.init = &(const struct clk_init_data) {
1289 .name = "gcc_gp5_clk_src",
1290 .parent_data = gcc_parent_data_2,
1291 .num_parents = ARRAY_SIZE(gcc_parent_data_2),
1292 .ops = &clk_rcg2_shared_ops,
1296 static const struct freq_tbl ftbl_gcc_pcie_0_aux_clk_src[] = {
1297 F(9600000, P_BI_TCXO, 2, 0, 0),
1298 F(19200000, P_BI_TCXO, 1, 0, 0),
1302 static struct clk_rcg2 gcc_pcie_0_aux_clk_src = {
1303 .cmd_rcgr = 0xa4054,
1306 .parent_map = gcc_parent_map_1,
1307 .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
1308 .clkr.hw.init = &(const struct clk_init_data) {
1309 .name = "gcc_pcie_0_aux_clk_src",
1310 .parent_data = gcc_parent_data_1,
1311 .num_parents = ARRAY_SIZE(gcc_parent_data_1),
1312 .ops = &clk_rcg2_shared_ops,
1316 static const struct freq_tbl ftbl_gcc_pcie_0_phy_rchng_clk_src[] = {
1317 F(100000000, P_GCC_GPLL0_OUT_EVEN, 3, 0, 0),
1321 static struct clk_rcg2 gcc_pcie_0_phy_rchng_clk_src = {
1322 .cmd_rcgr = 0xa403c,
1325 .parent_map = gcc_parent_map_0,
1326 .freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src,
1327 .clkr.hw.init = &(const struct clk_init_data) {
1328 .name = "gcc_pcie_0_phy_rchng_clk_src",
1329 .parent_data = gcc_parent_data_0,
1330 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1331 .ops = &clk_rcg2_shared_ops,
1335 static const struct freq_tbl ftbl_gcc_pcie_1_aux_clk_src[] = {
1336 F(19200000, P_BI_TCXO, 1, 0, 0),
1340 static struct clk_rcg2 gcc_pcie_1_aux_clk_src = {
1341 .cmd_rcgr = 0x8d054,
1344 .parent_map = gcc_parent_map_1,
1345 .freq_tbl = ftbl_gcc_pcie_1_aux_clk_src,
1346 .clkr.hw.init = &(const struct clk_init_data) {
1347 .name = "gcc_pcie_1_aux_clk_src",
1348 .parent_data = gcc_parent_data_1,
1349 .num_parents = ARRAY_SIZE(gcc_parent_data_1),
1350 .ops = &clk_rcg2_shared_ops,
1354 static struct clk_rcg2 gcc_pcie_1_phy_rchng_clk_src = {
1355 .cmd_rcgr = 0x8d03c,
1358 .parent_map = gcc_parent_map_0,
1359 .freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src,
1360 .clkr.hw.init = &(const struct clk_init_data) {
1361 .name = "gcc_pcie_1_phy_rchng_clk_src",
1362 .parent_data = gcc_parent_data_0,
1363 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1364 .ops = &clk_rcg2_shared_ops,
1368 static struct clk_rcg2 gcc_pcie_2a_aux_clk_src = {
1369 .cmd_rcgr = 0x9d064,
1372 .parent_map = gcc_parent_map_1,
1373 .freq_tbl = ftbl_gcc_pcie_1_aux_clk_src,
1374 .clkr.hw.init = &(const struct clk_init_data) {
1375 .name = "gcc_pcie_2a_aux_clk_src",
1376 .parent_data = gcc_parent_data_1,
1377 .num_parents = ARRAY_SIZE(gcc_parent_data_1),
1378 .ops = &clk_rcg2_shared_ops,
1382 static struct clk_rcg2 gcc_pcie_2a_phy_rchng_clk_src = {
1383 .cmd_rcgr = 0x9d044,
1386 .parent_map = gcc_parent_map_0,
1387 .freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src,
1388 .clkr.hw.init = &(const struct clk_init_data) {
1389 .name = "gcc_pcie_2a_phy_rchng_clk_src",
1390 .parent_data = gcc_parent_data_0,
1391 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1392 .ops = &clk_rcg2_shared_ops,
1396 static struct clk_rcg2 gcc_pcie_2b_aux_clk_src = {
1397 .cmd_rcgr = 0x9e064,
1400 .parent_map = gcc_parent_map_1,
1401 .freq_tbl = ftbl_gcc_pcie_1_aux_clk_src,
1402 .clkr.hw.init = &(const struct clk_init_data) {
1403 .name = "gcc_pcie_2b_aux_clk_src",
1404 .parent_data = gcc_parent_data_1,
1405 .num_parents = ARRAY_SIZE(gcc_parent_data_1),
1406 .ops = &clk_rcg2_shared_ops,
1410 static struct clk_rcg2 gcc_pcie_2b_phy_rchng_clk_src = {
1411 .cmd_rcgr = 0x9e044,
1414 .parent_map = gcc_parent_map_0,
1415 .freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src,
1416 .clkr.hw.init = &(const struct clk_init_data) {
1417 .name = "gcc_pcie_2b_phy_rchng_clk_src",
1418 .parent_data = gcc_parent_data_0,
1419 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1420 .ops = &clk_rcg2_shared_ops,
1424 static struct clk_rcg2 gcc_pcie_3a_aux_clk_src = {
1425 .cmd_rcgr = 0xa0064,
1428 .parent_map = gcc_parent_map_1,
1429 .freq_tbl = ftbl_gcc_pcie_1_aux_clk_src,
1430 .clkr.hw.init = &(const struct clk_init_data) {
1431 .name = "gcc_pcie_3a_aux_clk_src",
1432 .parent_data = gcc_parent_data_1,
1433 .num_parents = ARRAY_SIZE(gcc_parent_data_1),
1434 .ops = &clk_rcg2_shared_ops,
1438 static struct clk_rcg2 gcc_pcie_3a_phy_rchng_clk_src = {
1439 .cmd_rcgr = 0xa0044,
1442 .parent_map = gcc_parent_map_0,
1443 .freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src,
1444 .clkr.hw.init = &(const struct clk_init_data) {
1445 .name = "gcc_pcie_3a_phy_rchng_clk_src",
1446 .parent_data = gcc_parent_data_0,
1447 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1448 .ops = &clk_rcg2_shared_ops,
1452 static struct clk_rcg2 gcc_pcie_3b_aux_clk_src = {
1453 .cmd_rcgr = 0xa2064,
1456 .parent_map = gcc_parent_map_1,
1457 .freq_tbl = ftbl_gcc_pcie_1_aux_clk_src,
1458 .clkr.hw.init = &(const struct clk_init_data) {
1459 .name = "gcc_pcie_3b_aux_clk_src",
1460 .parent_data = gcc_parent_data_1,
1461 .num_parents = ARRAY_SIZE(gcc_parent_data_1),
1462 .ops = &clk_rcg2_shared_ops,
1466 static struct clk_rcg2 gcc_pcie_3b_phy_rchng_clk_src = {
1467 .cmd_rcgr = 0xa2044,
1470 .parent_map = gcc_parent_map_0,
1471 .freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src,
1472 .clkr.hw.init = &(const struct clk_init_data) {
1473 .name = "gcc_pcie_3b_phy_rchng_clk_src",
1474 .parent_data = gcc_parent_data_0,
1475 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1476 .ops = &clk_rcg2_shared_ops,
1480 static struct clk_rcg2 gcc_pcie_4_aux_clk_src = {
1481 .cmd_rcgr = 0x6b064,
1484 .parent_map = gcc_parent_map_1,
1485 .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
1486 .clkr.hw.init = &(const struct clk_init_data) {
1487 .name = "gcc_pcie_4_aux_clk_src",
1488 .parent_data = gcc_parent_data_1,
1489 .num_parents = ARRAY_SIZE(gcc_parent_data_1),
1490 .ops = &clk_rcg2_shared_ops,
1494 static struct clk_rcg2 gcc_pcie_4_phy_rchng_clk_src = {
1495 .cmd_rcgr = 0x6b044,
1498 .parent_map = gcc_parent_map_0,
1499 .freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src,
1500 .clkr.hw.init = &(const struct clk_init_data) {
1501 .name = "gcc_pcie_4_phy_rchng_clk_src",
1502 .parent_data = gcc_parent_data_0,
1503 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1504 .ops = &clk_rcg2_shared_ops,
1508 static struct clk_rcg2 gcc_pcie_rscc_xo_clk_src = {
1509 .cmd_rcgr = 0xae00c,
1512 .parent_map = gcc_parent_map_3,
1513 .freq_tbl = ftbl_gcc_pcie_1_aux_clk_src,
1514 .clkr.hw.init = &(const struct clk_init_data) {
1515 .name = "gcc_pcie_rscc_xo_clk_src",
1516 .parent_data = gcc_parent_data_3,
1517 .num_parents = ARRAY_SIZE(gcc_parent_data_3),
1518 .ops = &clk_rcg2_shared_ops,
1522 static const struct freq_tbl ftbl_gcc_pdm2_clk_src[] = {
1523 F(60000000, P_GCC_GPLL0_OUT_EVEN, 5, 0, 0),
1527 static struct clk_rcg2 gcc_pdm2_clk_src = {
1528 .cmd_rcgr = 0x33010,
1531 .parent_map = gcc_parent_map_0,
1532 .freq_tbl = ftbl_gcc_pdm2_clk_src,
1533 .clkr.hw.init = &(const struct clk_init_data) {
1534 .name = "gcc_pdm2_clk_src",
1535 .parent_data = gcc_parent_data_0,
1536 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1537 .ops = &clk_rcg2_shared_ops,
1541 static const struct freq_tbl ftbl_gcc_qupv3_wrap0_s0_clk_src[] = {
1542 F(7372800, P_GCC_GPLL0_OUT_EVEN, 1, 384, 15625),
1543 F(14745600, P_GCC_GPLL0_OUT_EVEN, 1, 768, 15625),
1544 F(19200000, P_BI_TCXO, 1, 0, 0),
1545 F(29491200, P_GCC_GPLL0_OUT_EVEN, 1, 1536, 15625),
1546 F(32000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 75),
1547 F(48000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 25),
1548 F(64000000, P_GCC_GPLL0_OUT_EVEN, 1, 16, 75),
1549 F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0),
1550 F(80000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 15),
1551 F(96000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 25),
1552 F(100000000, P_GCC_GPLL0_OUT_MAIN, 6, 0, 0),
1556 static struct clk_init_data gcc_qupv3_wrap0_s0_clk_src_init = {
1557 .name = "gcc_qupv3_wrap0_s0_clk_src",
1558 .parent_data = gcc_parent_data_0,
1559 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1560 .flags = CLK_SET_RATE_PARENT,
1561 .ops = &clk_rcg2_shared_ops,
1564 static struct clk_rcg2 gcc_qupv3_wrap0_s0_clk_src = {
1565 .cmd_rcgr = 0x17148,
1568 .parent_map = gcc_parent_map_0,
1569 .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1570 .clkr.hw.init = &gcc_qupv3_wrap0_s0_clk_src_init,
1573 static struct clk_init_data gcc_qupv3_wrap0_s1_clk_src_init = {
1574 .name = "gcc_qupv3_wrap0_s1_clk_src",
1575 .parent_data = gcc_parent_data_0,
1576 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1577 .flags = CLK_SET_RATE_PARENT,
1578 .ops = &clk_rcg2_shared_ops,
1581 static struct clk_rcg2 gcc_qupv3_wrap0_s1_clk_src = {
1582 .cmd_rcgr = 0x17278,
1585 .parent_map = gcc_parent_map_0,
1586 .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1587 .clkr.hw.init = &gcc_qupv3_wrap0_s1_clk_src_init,
1590 static struct clk_init_data gcc_qupv3_wrap0_s2_clk_src_init = {
1591 .name = "gcc_qupv3_wrap0_s2_clk_src",
1592 .parent_data = gcc_parent_data_0,
1593 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1594 .flags = CLK_SET_RATE_PARENT,
1595 .ops = &clk_rcg2_shared_ops,
1598 static struct clk_rcg2 gcc_qupv3_wrap0_s2_clk_src = {
1599 .cmd_rcgr = 0x173a8,
1602 .parent_map = gcc_parent_map_0,
1603 .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1604 .clkr.hw.init = &gcc_qupv3_wrap0_s2_clk_src_init,
1607 static struct clk_init_data gcc_qupv3_wrap0_s3_clk_src_init = {
1608 .name = "gcc_qupv3_wrap0_s3_clk_src",
1609 .parent_data = gcc_parent_data_0,
1610 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1611 .flags = CLK_SET_RATE_PARENT,
1612 .ops = &clk_rcg2_shared_ops,
1615 static struct clk_rcg2 gcc_qupv3_wrap0_s3_clk_src = {
1616 .cmd_rcgr = 0x174d8,
1619 .parent_map = gcc_parent_map_0,
1620 .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1621 .clkr.hw.init = &gcc_qupv3_wrap0_s3_clk_src_init,
1624 static struct clk_init_data gcc_qupv3_wrap0_s4_clk_src_init = {
1625 .name = "gcc_qupv3_wrap0_s4_clk_src",
1626 .parent_data = gcc_parent_data_0,
1627 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1628 .flags = CLK_SET_RATE_PARENT,
1629 .ops = &clk_rcg2_shared_ops,
1632 static struct clk_rcg2 gcc_qupv3_wrap0_s4_clk_src = {
1633 .cmd_rcgr = 0x17608,
1636 .parent_map = gcc_parent_map_0,
1637 .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1638 .clkr.hw.init = &gcc_qupv3_wrap0_s4_clk_src_init,
1641 static struct clk_init_data gcc_qupv3_wrap0_s5_clk_src_init = {
1642 .name = "gcc_qupv3_wrap0_s5_clk_src",
1643 .parent_data = gcc_parent_data_0,
1644 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1645 .flags = CLK_SET_RATE_PARENT,
1646 .ops = &clk_rcg2_shared_ops,
1649 static struct clk_rcg2 gcc_qupv3_wrap0_s5_clk_src = {
1650 .cmd_rcgr = 0x17738,
1653 .parent_map = gcc_parent_map_0,
1654 .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1655 .clkr.hw.init = &gcc_qupv3_wrap0_s5_clk_src_init,
1658 static const struct freq_tbl ftbl_gcc_qupv3_wrap0_s6_clk_src[] = {
1659 F(7372800, P_GCC_GPLL0_OUT_EVEN, 1, 384, 15625),
1660 F(14745600, P_GCC_GPLL0_OUT_EVEN, 1, 768, 15625),
1661 F(19200000, P_BI_TCXO, 1, 0, 0),
1662 F(29491200, P_GCC_GPLL0_OUT_EVEN, 1, 1536, 15625),
1663 F(32000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 75),
1664 F(48000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 25),
1665 F(64000000, P_GCC_GPLL0_OUT_EVEN, 1, 16, 75),
1666 F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0),
1667 F(80000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 15),
1668 F(96000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 25),
1669 F(120000000, P_GCC_GPLL0_OUT_MAIN, 5, 0, 0),
1673 static struct clk_init_data gcc_qupv3_wrap0_s6_clk_src_init = {
1674 .name = "gcc_qupv3_wrap0_s6_clk_src",
1675 .parent_data = gcc_parent_data_0,
1676 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1677 .flags = CLK_SET_RATE_PARENT,
1678 .ops = &clk_rcg2_shared_ops,
1681 static struct clk_rcg2 gcc_qupv3_wrap0_s6_clk_src = {
1682 .cmd_rcgr = 0x17868,
1685 .parent_map = gcc_parent_map_0,
1686 .freq_tbl = ftbl_gcc_qupv3_wrap0_s6_clk_src,
1687 .clkr.hw.init = &gcc_qupv3_wrap0_s6_clk_src_init,
1690 static struct clk_init_data gcc_qupv3_wrap0_s7_clk_src_init = {
1691 .name = "gcc_qupv3_wrap0_s7_clk_src",
1692 .parent_data = gcc_parent_data_0,
1693 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1694 .flags = CLK_SET_RATE_PARENT,
1695 .ops = &clk_rcg2_shared_ops,
1698 static struct clk_rcg2 gcc_qupv3_wrap0_s7_clk_src = {
1699 .cmd_rcgr = 0x17998,
1702 .parent_map = gcc_parent_map_0,
1703 .freq_tbl = ftbl_gcc_qupv3_wrap0_s6_clk_src,
1704 .clkr.hw.init = &gcc_qupv3_wrap0_s7_clk_src_init,
1707 static struct clk_init_data gcc_qupv3_wrap1_s0_clk_src_init = {
1708 .name = "gcc_qupv3_wrap1_s0_clk_src",
1709 .parent_data = gcc_parent_data_0,
1710 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1711 .flags = CLK_SET_RATE_PARENT,
1712 .ops = &clk_rcg2_shared_ops,
1715 static struct clk_rcg2 gcc_qupv3_wrap1_s0_clk_src = {
1716 .cmd_rcgr = 0x18148,
1719 .parent_map = gcc_parent_map_0,
1720 .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1721 .clkr.hw.init = &gcc_qupv3_wrap1_s0_clk_src_init,
1724 static struct clk_init_data gcc_qupv3_wrap1_s1_clk_src_init = {
1725 .name = "gcc_qupv3_wrap1_s1_clk_src",
1726 .parent_data = gcc_parent_data_0,
1727 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1728 .flags = CLK_SET_RATE_PARENT,
1729 .ops = &clk_rcg2_shared_ops,
1732 static struct clk_rcg2 gcc_qupv3_wrap1_s1_clk_src = {
1733 .cmd_rcgr = 0x18278,
1736 .parent_map = gcc_parent_map_0,
1737 .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1738 .clkr.hw.init = &gcc_qupv3_wrap1_s1_clk_src_init,
1741 static struct clk_init_data gcc_qupv3_wrap1_s2_clk_src_init = {
1742 .name = "gcc_qupv3_wrap1_s2_clk_src",
1743 .parent_data = gcc_parent_data_0,
1744 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1745 .flags = CLK_SET_RATE_PARENT,
1746 .ops = &clk_rcg2_shared_ops,
1749 static struct clk_rcg2 gcc_qupv3_wrap1_s2_clk_src = {
1750 .cmd_rcgr = 0x183a8,
1753 .parent_map = gcc_parent_map_0,
1754 .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1755 .clkr.hw.init = &gcc_qupv3_wrap1_s2_clk_src_init,
1758 static struct clk_init_data gcc_qupv3_wrap1_s3_clk_src_init = {
1759 .name = "gcc_qupv3_wrap1_s3_clk_src",
1760 .parent_data = gcc_parent_data_0,
1761 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1762 .flags = CLK_SET_RATE_PARENT,
1763 .ops = &clk_rcg2_shared_ops,
1766 static struct clk_rcg2 gcc_qupv3_wrap1_s3_clk_src = {
1767 .cmd_rcgr = 0x184d8,
1770 .parent_map = gcc_parent_map_0,
1771 .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1772 .clkr.hw.init = &gcc_qupv3_wrap1_s3_clk_src_init,
1775 static struct clk_init_data gcc_qupv3_wrap1_s4_clk_src_init = {
1776 .name = "gcc_qupv3_wrap1_s4_clk_src",
1777 .parent_data = gcc_parent_data_0,
1778 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1779 .flags = CLK_SET_RATE_PARENT,
1780 .ops = &clk_rcg2_shared_ops,
1783 static struct clk_rcg2 gcc_qupv3_wrap1_s4_clk_src = {
1784 .cmd_rcgr = 0x18608,
1787 .parent_map = gcc_parent_map_0,
1788 .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1789 .clkr.hw.init = &gcc_qupv3_wrap1_s4_clk_src_init,
1792 static struct clk_init_data gcc_qupv3_wrap1_s5_clk_src_init = {
1793 .name = "gcc_qupv3_wrap1_s5_clk_src",
1794 .parent_data = gcc_parent_data_0,
1795 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1796 .flags = CLK_SET_RATE_PARENT,
1797 .ops = &clk_rcg2_shared_ops,
1800 static struct clk_rcg2 gcc_qupv3_wrap1_s5_clk_src = {
1801 .cmd_rcgr = 0x18738,
1804 .parent_map = gcc_parent_map_0,
1805 .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1806 .clkr.hw.init = &gcc_qupv3_wrap1_s5_clk_src_init,
1809 static struct clk_init_data gcc_qupv3_wrap1_s6_clk_src_init = {
1810 .name = "gcc_qupv3_wrap1_s6_clk_src",
1811 .parent_data = gcc_parent_data_0,
1812 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1813 .flags = CLK_SET_RATE_PARENT,
1814 .ops = &clk_rcg2_shared_ops,
1817 static struct clk_rcg2 gcc_qupv3_wrap1_s6_clk_src = {
1818 .cmd_rcgr = 0x18868,
1821 .parent_map = gcc_parent_map_0,
1822 .freq_tbl = ftbl_gcc_qupv3_wrap0_s6_clk_src,
1823 .clkr.hw.init = &gcc_qupv3_wrap1_s6_clk_src_init,
1826 static struct clk_init_data gcc_qupv3_wrap1_s7_clk_src_init = {
1827 .name = "gcc_qupv3_wrap1_s7_clk_src",
1828 .parent_data = gcc_parent_data_0,
1829 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1830 .flags = CLK_SET_RATE_PARENT,
1831 .ops = &clk_rcg2_shared_ops,
1834 static struct clk_rcg2 gcc_qupv3_wrap1_s7_clk_src = {
1835 .cmd_rcgr = 0x18998,
1838 .parent_map = gcc_parent_map_0,
1839 .freq_tbl = ftbl_gcc_qupv3_wrap0_s6_clk_src,
1840 .clkr.hw.init = &gcc_qupv3_wrap1_s7_clk_src_init,
1843 static struct clk_init_data gcc_qupv3_wrap2_s0_clk_src_init = {
1844 .name = "gcc_qupv3_wrap2_s0_clk_src",
1845 .parent_data = gcc_parent_data_0,
1846 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1847 .flags = CLK_SET_RATE_PARENT,
1848 .ops = &clk_rcg2_shared_ops,
1851 static struct clk_rcg2 gcc_qupv3_wrap2_s0_clk_src = {
1852 .cmd_rcgr = 0x1e148,
1855 .parent_map = gcc_parent_map_0,
1856 .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1857 .clkr.hw.init = &gcc_qupv3_wrap2_s0_clk_src_init,
1860 static struct clk_init_data gcc_qupv3_wrap2_s1_clk_src_init = {
1861 .name = "gcc_qupv3_wrap2_s1_clk_src",
1862 .parent_data = gcc_parent_data_0,
1863 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1864 .flags = CLK_SET_RATE_PARENT,
1865 .ops = &clk_rcg2_shared_ops,
1868 static struct clk_rcg2 gcc_qupv3_wrap2_s1_clk_src = {
1869 .cmd_rcgr = 0x1e278,
1872 .parent_map = gcc_parent_map_0,
1873 .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1874 .clkr.hw.init = &gcc_qupv3_wrap2_s1_clk_src_init,
1877 static struct clk_init_data gcc_qupv3_wrap2_s2_clk_src_init = {
1878 .name = "gcc_qupv3_wrap2_s2_clk_src",
1879 .parent_data = gcc_parent_data_0,
1880 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1881 .flags = CLK_SET_RATE_PARENT,
1882 .ops = &clk_rcg2_shared_ops,
1885 static struct clk_rcg2 gcc_qupv3_wrap2_s2_clk_src = {
1886 .cmd_rcgr = 0x1e3a8,
1889 .parent_map = gcc_parent_map_0,
1890 .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1891 .clkr.hw.init = &gcc_qupv3_wrap2_s2_clk_src_init,
1894 static struct clk_init_data gcc_qupv3_wrap2_s3_clk_src_init = {
1895 .name = "gcc_qupv3_wrap2_s3_clk_src",
1896 .parent_data = gcc_parent_data_0,
1897 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1898 .flags = CLK_SET_RATE_PARENT,
1899 .ops = &clk_rcg2_shared_ops,
1902 static struct clk_rcg2 gcc_qupv3_wrap2_s3_clk_src = {
1903 .cmd_rcgr = 0x1e4d8,
1906 .parent_map = gcc_parent_map_0,
1907 .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1908 .clkr.hw.init = &gcc_qupv3_wrap2_s3_clk_src_init,
1911 static struct clk_init_data gcc_qupv3_wrap2_s4_clk_src_init = {
1912 .name = "gcc_qupv3_wrap2_s4_clk_src",
1913 .parent_data = gcc_parent_data_0,
1914 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1915 .flags = CLK_SET_RATE_PARENT,
1916 .ops = &clk_rcg2_shared_ops,
1919 static struct clk_rcg2 gcc_qupv3_wrap2_s4_clk_src = {
1920 .cmd_rcgr = 0x1e608,
1923 .parent_map = gcc_parent_map_0,
1924 .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1925 .clkr.hw.init = &gcc_qupv3_wrap2_s4_clk_src_init,
1928 static struct clk_init_data gcc_qupv3_wrap2_s5_clk_src_init = {
1929 .name = "gcc_qupv3_wrap2_s5_clk_src",
1930 .parent_data = gcc_parent_data_0,
1931 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1932 .flags = CLK_SET_RATE_PARENT,
1933 .ops = &clk_rcg2_shared_ops,
1936 static struct clk_rcg2 gcc_qupv3_wrap2_s5_clk_src = {
1937 .cmd_rcgr = 0x1e738,
1940 .parent_map = gcc_parent_map_0,
1941 .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1942 .clkr.hw.init = &gcc_qupv3_wrap2_s5_clk_src_init,
1945 static struct clk_init_data gcc_qupv3_wrap2_s6_clk_src_init = {
1946 .name = "gcc_qupv3_wrap2_s6_clk_src",
1947 .parent_data = gcc_parent_data_0,
1948 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1949 .flags = CLK_SET_RATE_PARENT,
1950 .ops = &clk_rcg2_shared_ops,
1953 static struct clk_rcg2 gcc_qupv3_wrap2_s6_clk_src = {
1954 .cmd_rcgr = 0x1e868,
1957 .parent_map = gcc_parent_map_0,
1958 .freq_tbl = ftbl_gcc_qupv3_wrap0_s6_clk_src,
1959 .clkr.hw.init = &gcc_qupv3_wrap2_s6_clk_src_init,
1962 static struct clk_init_data gcc_qupv3_wrap2_s7_clk_src_init = {
1963 .name = "gcc_qupv3_wrap2_s7_clk_src",
1964 .parent_data = gcc_parent_data_0,
1965 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1966 .flags = CLK_SET_RATE_PARENT,
1967 .ops = &clk_rcg2_shared_ops,
1970 static struct clk_rcg2 gcc_qupv3_wrap2_s7_clk_src = {
1971 .cmd_rcgr = 0x1e998,
1974 .parent_map = gcc_parent_map_0,
1975 .freq_tbl = ftbl_gcc_qupv3_wrap0_s6_clk_src,
1976 .clkr.hw.init = &gcc_qupv3_wrap2_s7_clk_src_init,
1979 static const struct freq_tbl ftbl_gcc_sdcc2_apps_clk_src[] = {
1980 F(400000, P_BI_TCXO, 12, 1, 4),
1981 F(25000000, P_GCC_GPLL0_OUT_EVEN, 12, 0, 0),
1982 F(50000000, P_GCC_GPLL0_OUT_EVEN, 6, 0, 0),
1983 F(100000000, P_GCC_GPLL0_OUT_EVEN, 3, 0, 0),
1984 F(202000000, P_GCC_GPLL9_OUT_MAIN, 4, 0, 0),
1988 static struct clk_rcg2 gcc_sdcc2_apps_clk_src = {
1989 .cmd_rcgr = 0x1400c,
1992 .parent_map = gcc_parent_map_15,
1993 .freq_tbl = ftbl_gcc_sdcc2_apps_clk_src,
1994 .clkr.hw.init = &(const struct clk_init_data) {
1995 .name = "gcc_sdcc2_apps_clk_src",
1996 .parent_data = gcc_parent_data_15,
1997 .num_parents = ARRAY_SIZE(gcc_parent_data_15),
1998 .ops = &clk_rcg2_shared_ops,
2002 static const struct freq_tbl ftbl_gcc_sdcc4_apps_clk_src[] = {
2003 F(400000, P_BI_TCXO, 12, 1, 4),
2004 F(25000000, P_GCC_GPLL0_OUT_EVEN, 12, 0, 0),
2005 F(100000000, P_GCC_GPLL0_OUT_EVEN, 3, 0, 0),
2009 static struct clk_rcg2 gcc_sdcc4_apps_clk_src = {
2010 .cmd_rcgr = 0x1600c,
2013 .parent_map = gcc_parent_map_0,
2014 .freq_tbl = ftbl_gcc_sdcc4_apps_clk_src,
2015 .clkr.hw.init = &(const struct clk_init_data) {
2016 .name = "gcc_sdcc4_apps_clk_src",
2017 .parent_data = gcc_parent_data_0,
2018 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
2019 .ops = &clk_rcg2_shared_ops,
2023 static const struct freq_tbl ftbl_gcc_ufs_card_axi_clk_src[] = {
2024 F(25000000, P_GCC_GPLL0_OUT_EVEN, 12, 0, 0),
2025 F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0),
2026 F(150000000, P_GCC_GPLL0_OUT_MAIN, 4, 0, 0),
2027 F(300000000, P_GCC_GPLL0_OUT_MAIN, 2, 0, 0),
2031 static struct clk_rcg2 gcc_ufs_card_axi_clk_src = {
2032 .cmd_rcgr = 0x75024,
2035 .parent_map = gcc_parent_map_0,
2036 .freq_tbl = ftbl_gcc_ufs_card_axi_clk_src,
2037 .clkr.hw.init = &(const struct clk_init_data) {
2038 .name = "gcc_ufs_card_axi_clk_src",
2039 .parent_data = gcc_parent_data_0,
2040 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
2041 .ops = &clk_rcg2_shared_ops,
2045 static const struct freq_tbl ftbl_gcc_ufs_card_ice_core_clk_src[] = {
2046 F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0),
2047 F(150000000, P_GCC_GPLL0_OUT_MAIN, 4, 0, 0),
2048 F(300000000, P_GCC_GPLL0_OUT_MAIN, 2, 0, 0),
2052 static struct clk_rcg2 gcc_ufs_card_ice_core_clk_src = {
2053 .cmd_rcgr = 0x7506c,
2056 .parent_map = gcc_parent_map_0,
2057 .freq_tbl = ftbl_gcc_ufs_card_ice_core_clk_src,
2058 .clkr.hw.init = &(const struct clk_init_data) {
2059 .name = "gcc_ufs_card_ice_core_clk_src",
2060 .parent_data = gcc_parent_data_0,
2061 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
2062 .ops = &clk_rcg2_shared_ops,
2066 static struct clk_rcg2 gcc_ufs_card_phy_aux_clk_src = {
2067 .cmd_rcgr = 0x750a0,
2070 .parent_map = gcc_parent_map_3,
2071 .freq_tbl = ftbl_gcc_pcie_1_aux_clk_src,
2072 .clkr.hw.init = &(const struct clk_init_data) {
2073 .name = "gcc_ufs_card_phy_aux_clk_src",
2074 .parent_data = gcc_parent_data_3,
2075 .num_parents = ARRAY_SIZE(gcc_parent_data_3),
2076 .ops = &clk_rcg2_shared_ops,
2080 static struct clk_rcg2 gcc_ufs_card_unipro_core_clk_src = {
2081 .cmd_rcgr = 0x75084,
2084 .parent_map = gcc_parent_map_0,
2085 .freq_tbl = ftbl_gcc_ufs_card_ice_core_clk_src,
2086 .clkr.hw.init = &(const struct clk_init_data) {
2087 .name = "gcc_ufs_card_unipro_core_clk_src",
2088 .parent_data = gcc_parent_data_0,
2089 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
2090 .ops = &clk_rcg2_shared_ops,
2094 static struct clk_rcg2 gcc_ufs_phy_axi_clk_src = {
2095 .cmd_rcgr = 0x77024,
2098 .parent_map = gcc_parent_map_0,
2099 .freq_tbl = ftbl_gcc_ufs_card_axi_clk_src,
2100 .clkr.hw.init = &(const struct clk_init_data) {
2101 .name = "gcc_ufs_phy_axi_clk_src",
2102 .parent_data = gcc_parent_data_0,
2103 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
2104 .ops = &clk_rcg2_shared_ops,
2108 static struct clk_rcg2 gcc_ufs_phy_ice_core_clk_src = {
2109 .cmd_rcgr = 0x7706c,
2112 .parent_map = gcc_parent_map_0,
2113 .freq_tbl = ftbl_gcc_ufs_card_ice_core_clk_src,
2114 .clkr.hw.init = &(const struct clk_init_data) {
2115 .name = "gcc_ufs_phy_ice_core_clk_src",
2116 .parent_data = gcc_parent_data_0,
2117 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
2118 .ops = &clk_rcg2_shared_ops,
2122 static struct clk_rcg2 gcc_ufs_phy_phy_aux_clk_src = {
2123 .cmd_rcgr = 0x770a0,
2126 .parent_map = gcc_parent_map_3,
2127 .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
2128 .clkr.hw.init = &(const struct clk_init_data) {
2129 .name = "gcc_ufs_phy_phy_aux_clk_src",
2130 .parent_data = gcc_parent_data_3,
2131 .num_parents = ARRAY_SIZE(gcc_parent_data_3),
2132 .ops = &clk_rcg2_shared_ops,
2136 static struct clk_rcg2 gcc_ufs_phy_unipro_core_clk_src = {
2137 .cmd_rcgr = 0x77084,
2140 .parent_map = gcc_parent_map_0,
2141 .freq_tbl = ftbl_gcc_ufs_card_ice_core_clk_src,
2142 .clkr.hw.init = &(const struct clk_init_data) {
2143 .name = "gcc_ufs_phy_unipro_core_clk_src",
2144 .parent_data = gcc_parent_data_0,
2145 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
2146 .ops = &clk_rcg2_shared_ops,
2150 static const struct freq_tbl ftbl_gcc_usb30_mp_master_clk_src[] = {
2151 F(66666667, P_GCC_GPLL0_OUT_EVEN, 4.5, 0, 0),
2152 F(133333333, P_GCC_GPLL0_OUT_MAIN, 4.5, 0, 0),
2153 F(200000000, P_GCC_GPLL0_OUT_MAIN, 3, 0, 0),
2154 F(240000000, P_GCC_GPLL0_OUT_MAIN, 2.5, 0, 0),
2158 static struct clk_rcg2 gcc_usb30_mp_master_clk_src = {
2159 .cmd_rcgr = 0xab020,
2162 .parent_map = gcc_parent_map_0,
2163 .freq_tbl = ftbl_gcc_usb30_mp_master_clk_src,
2164 .clkr.hw.init = &(const struct clk_init_data) {
2165 .name = "gcc_usb30_mp_master_clk_src",
2166 .parent_data = gcc_parent_data_0,
2167 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
2168 .ops = &clk_rcg2_shared_ops,
2172 static struct clk_rcg2 gcc_usb30_mp_mock_utmi_clk_src = {
2173 .cmd_rcgr = 0xab038,
2176 .parent_map = gcc_parent_map_0,
2177 .freq_tbl = ftbl_gcc_pcie_1_aux_clk_src,
2178 .clkr.hw.init = &(const struct clk_init_data) {
2179 .name = "gcc_usb30_mp_mock_utmi_clk_src",
2180 .parent_data = gcc_parent_data_0,
2181 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
2182 .ops = &clk_rcg2_shared_ops,
2186 static struct clk_rcg2 gcc_usb30_prim_master_clk_src = {
2190 .parent_map = gcc_parent_map_0,
2191 .freq_tbl = ftbl_gcc_usb30_mp_master_clk_src,
2192 .clkr.hw.init = &(const struct clk_init_data) {
2193 .name = "gcc_usb30_prim_master_clk_src",
2194 .parent_data = gcc_parent_data_0,
2195 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
2196 .ops = &clk_rcg2_shared_ops,
2200 static struct clk_rcg2 gcc_usb30_prim_mock_utmi_clk_src = {
2204 .parent_map = gcc_parent_map_0,
2205 .freq_tbl = ftbl_gcc_pcie_1_aux_clk_src,
2206 .clkr.hw.init = &(const struct clk_init_data) {
2207 .name = "gcc_usb30_prim_mock_utmi_clk_src",
2208 .parent_data = gcc_parent_data_0,
2209 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
2210 .ops = &clk_rcg2_shared_ops,
2214 static struct clk_rcg2 gcc_usb30_sec_master_clk_src = {
2215 .cmd_rcgr = 0x10020,
2218 .parent_map = gcc_parent_map_0,
2219 .freq_tbl = ftbl_gcc_usb30_mp_master_clk_src,
2220 .clkr.hw.init = &(const struct clk_init_data) {
2221 .name = "gcc_usb30_sec_master_clk_src",
2222 .parent_data = gcc_parent_data_0,
2223 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
2224 .ops = &clk_rcg2_shared_ops,
2228 static struct clk_rcg2 gcc_usb30_sec_mock_utmi_clk_src = {
2229 .cmd_rcgr = 0x10038,
2232 .parent_map = gcc_parent_map_0,
2233 .freq_tbl = ftbl_gcc_pcie_1_aux_clk_src,
2234 .clkr.hw.init = &(const struct clk_init_data) {
2235 .name = "gcc_usb30_sec_mock_utmi_clk_src",
2236 .parent_data = gcc_parent_data_0,
2237 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
2238 .ops = &clk_rcg2_shared_ops,
2242 static struct clk_rcg2 gcc_usb3_mp_phy_aux_clk_src = {
2243 .cmd_rcgr = 0xab06c,
2246 .parent_map = gcc_parent_map_1,
2247 .freq_tbl = ftbl_gcc_pcie_1_aux_clk_src,
2248 .clkr.hw.init = &(const struct clk_init_data) {
2249 .name = "gcc_usb3_mp_phy_aux_clk_src",
2250 .parent_data = gcc_parent_data_1,
2251 .num_parents = ARRAY_SIZE(gcc_parent_data_1),
2252 .ops = &clk_rcg2_shared_ops,
2256 static struct clk_rcg2 gcc_usb3_prim_phy_aux_clk_src = {
2260 .parent_map = gcc_parent_map_1,
2261 .freq_tbl = ftbl_gcc_pcie_1_aux_clk_src,
2262 .clkr.hw.init = &(const struct clk_init_data) {
2263 .name = "gcc_usb3_prim_phy_aux_clk_src",
2264 .parent_data = gcc_parent_data_1,
2265 .num_parents = ARRAY_SIZE(gcc_parent_data_1),
2266 .ops = &clk_rcg2_shared_ops,
2270 static struct clk_rcg2 gcc_usb3_sec_phy_aux_clk_src = {
2271 .cmd_rcgr = 0x10068,
2274 .parent_map = gcc_parent_map_1,
2275 .freq_tbl = ftbl_gcc_pcie_1_aux_clk_src,
2276 .clkr.hw.init = &(const struct clk_init_data) {
2277 .name = "gcc_usb3_sec_phy_aux_clk_src",
2278 .parent_data = gcc_parent_data_1,
2279 .num_parents = ARRAY_SIZE(gcc_parent_data_1),
2280 .ops = &clk_rcg2_shared_ops,
2284 static const struct freq_tbl ftbl_gcc_usb4_1_master_clk_src[] = {
2285 F(85714286, P_GCC_GPLL0_OUT_EVEN, 3.5, 0, 0),
2286 F(175000000, P_GCC_GPLL8_OUT_MAIN, 4, 0, 0),
2287 F(350000000, P_GCC_GPLL8_OUT_MAIN, 2, 0, 0),
2291 static struct clk_rcg2 gcc_usb4_1_master_clk_src = {
2292 .cmd_rcgr = 0xb8018,
2295 .parent_map = gcc_parent_map_5,
2296 .freq_tbl = ftbl_gcc_usb4_1_master_clk_src,
2297 .clkr.hw.init = &(const struct clk_init_data) {
2298 .name = "gcc_usb4_1_master_clk_src",
2299 .parent_data = gcc_parent_data_5,
2300 .num_parents = ARRAY_SIZE(gcc_parent_data_5),
2301 .ops = &clk_rcg2_shared_ops,
2305 static const struct freq_tbl ftbl_gcc_usb4_1_phy_pcie_pipe_clk_src[] = {
2306 F(19200000, P_BI_TCXO, 1, 0, 0),
2307 F(125000000, P_GCC_GPLL7_OUT_MAIN, 4, 0, 0),
2308 F(250000000, P_GCC_GPLL7_OUT_MAIN, 2, 0, 0),
2312 static struct clk_rcg2 gcc_usb4_1_phy_pcie_pipe_clk_src = {
2313 .cmd_rcgr = 0xb80c4,
2316 .parent_map = gcc_parent_map_6,
2317 .freq_tbl = ftbl_gcc_usb4_1_phy_pcie_pipe_clk_src,
2318 .clkr.hw.init = &(const struct clk_init_data) {
2319 .name = "gcc_usb4_1_phy_pcie_pipe_clk_src",
2320 .parent_data = gcc_parent_data_6,
2321 .num_parents = ARRAY_SIZE(gcc_parent_data_6),
2322 .ops = &clk_rcg2_shared_ops,
2326 static struct clk_rcg2 gcc_usb4_1_sb_if_clk_src = {
2327 .cmd_rcgr = 0xb8070,
2330 .parent_map = gcc_parent_map_1,
2331 .freq_tbl = ftbl_gcc_pcie_1_aux_clk_src,
2332 .clkr.hw.init = &(const struct clk_init_data) {
2333 .name = "gcc_usb4_1_sb_if_clk_src",
2334 .parent_data = gcc_parent_data_1,
2335 .num_parents = ARRAY_SIZE(gcc_parent_data_1),
2336 .ops = &clk_rcg2_shared_ops,
2340 static const struct freq_tbl ftbl_gcc_usb4_1_tmu_clk_src[] = {
2341 F(19200000, P_BI_TCXO, 1, 0, 0),
2342 F(250000000, P_GCC_GPLL2_OUT_MAIN, 4, 0, 0),
2346 static struct clk_rcg2 gcc_usb4_1_tmu_clk_src = {
2347 .cmd_rcgr = 0xb8054,
2350 .parent_map = gcc_parent_map_7,
2351 .freq_tbl = ftbl_gcc_usb4_1_tmu_clk_src,
2352 .clkr.hw.init = &(const struct clk_init_data) {
2353 .name = "gcc_usb4_1_tmu_clk_src",
2354 .parent_data = gcc_parent_data_7,
2355 .num_parents = ARRAY_SIZE(gcc_parent_data_7),
2356 .ops = &clk_rcg2_shared_ops,
2360 static struct clk_rcg2 gcc_usb4_master_clk_src = {
2361 .cmd_rcgr = 0x2a018,
2364 .parent_map = gcc_parent_map_5,
2365 .freq_tbl = ftbl_gcc_usb4_1_master_clk_src,
2366 .clkr.hw.init = &(const struct clk_init_data) {
2367 .name = "gcc_usb4_master_clk_src",
2368 .parent_data = gcc_parent_data_5,
2369 .num_parents = ARRAY_SIZE(gcc_parent_data_5),
2370 .ops = &clk_rcg2_shared_ops,
2374 static struct clk_rcg2 gcc_usb4_phy_pcie_pipe_clk_src = {
2375 .cmd_rcgr = 0x2a0c4,
2378 .parent_map = gcc_parent_map_6,
2379 .freq_tbl = ftbl_gcc_usb4_1_phy_pcie_pipe_clk_src,
2380 .clkr.hw.init = &(const struct clk_init_data) {
2381 .name = "gcc_usb4_phy_pcie_pipe_clk_src",
2382 .parent_data = gcc_parent_data_6,
2383 .num_parents = ARRAY_SIZE(gcc_parent_data_6),
2384 .ops = &clk_rcg2_shared_ops,
2388 static struct clk_rcg2 gcc_usb4_sb_if_clk_src = {
2389 .cmd_rcgr = 0x2a070,
2392 .parent_map = gcc_parent_map_1,
2393 .freq_tbl = ftbl_gcc_pcie_1_aux_clk_src,
2394 .clkr.hw.init = &(const struct clk_init_data) {
2395 .name = "gcc_usb4_sb_if_clk_src",
2396 .parent_data = gcc_parent_data_1,
2397 .num_parents = ARRAY_SIZE(gcc_parent_data_1),
2398 .ops = &clk_rcg2_shared_ops,
2402 static struct clk_rcg2 gcc_usb4_tmu_clk_src = {
2403 .cmd_rcgr = 0x2a054,
2406 .parent_map = gcc_parent_map_7,
2407 .freq_tbl = ftbl_gcc_usb4_1_tmu_clk_src,
2408 .clkr.hw.init = &(const struct clk_init_data) {
2409 .name = "gcc_usb4_tmu_clk_src",
2410 .parent_data = gcc_parent_data_7,
2411 .num_parents = ARRAY_SIZE(gcc_parent_data_7),
2412 .ops = &clk_rcg2_shared_ops,
2416 static struct clk_regmap_div gcc_pcie_2a_pipe_div_clk_src = {
2420 .clkr.hw.init = &(const struct clk_init_data) {
2421 .name = "gcc_pcie_2a_pipe_div_clk_src",
2422 .parent_hws = (const struct clk_hw*[]){
2423 &gcc_pcie_2a_pipe_clk_src.clkr.hw,
2426 .flags = CLK_SET_RATE_PARENT,
2427 .ops = &clk_regmap_div_ro_ops,
2431 static struct clk_regmap_div gcc_pcie_2b_pipe_div_clk_src = {
2435 .clkr.hw.init = &(const struct clk_init_data) {
2436 .name = "gcc_pcie_2b_pipe_div_clk_src",
2437 .parent_hws = (const struct clk_hw*[]){
2438 &gcc_pcie_2b_pipe_clk_src.clkr.hw,
2441 .flags = CLK_SET_RATE_PARENT,
2442 .ops = &clk_regmap_div_ro_ops,
2446 static struct clk_regmap_div gcc_pcie_3a_pipe_div_clk_src = {
2450 .clkr.hw.init = &(const struct clk_init_data) {
2451 .name = "gcc_pcie_3a_pipe_div_clk_src",
2452 .parent_hws = (const struct clk_hw*[]){
2453 &gcc_pcie_3a_pipe_clk_src.clkr.hw,
2456 .flags = CLK_SET_RATE_PARENT,
2457 .ops = &clk_regmap_div_ro_ops,
2461 static struct clk_regmap_div gcc_pcie_3b_pipe_div_clk_src = {
2465 .clkr.hw.init = &(const struct clk_init_data) {
2466 .name = "gcc_pcie_3b_pipe_div_clk_src",
2467 .parent_hws = (const struct clk_hw*[]){
2468 &gcc_pcie_3b_pipe_clk_src.clkr.hw,
2471 .flags = CLK_SET_RATE_PARENT,
2472 .ops = &clk_regmap_div_ro_ops,
2476 static struct clk_regmap_div gcc_pcie_4_pipe_div_clk_src = {
2480 .clkr.hw.init = &(const struct clk_init_data) {
2481 .name = "gcc_pcie_4_pipe_div_clk_src",
2482 .parent_hws = (const struct clk_hw*[]){
2483 &gcc_pcie_4_pipe_clk_src.clkr.hw,
2486 .flags = CLK_SET_RATE_PARENT,
2487 .ops = &clk_regmap_div_ro_ops,
2491 static struct clk_regmap_div gcc_qupv3_wrap0_s4_div_clk_src = {
2495 .clkr.hw.init = &(const struct clk_init_data) {
2496 .name = "gcc_qupv3_wrap0_s4_div_clk_src",
2497 .parent_hws = (const struct clk_hw*[]){
2498 &gcc_qupv3_wrap0_s4_clk_src.clkr.hw,
2501 .flags = CLK_SET_RATE_PARENT,
2502 .ops = &clk_regmap_div_ro_ops,
2506 static struct clk_regmap_div gcc_qupv3_wrap1_s4_div_clk_src = {
2510 .clkr.hw.init = &(const struct clk_init_data) {
2511 .name = "gcc_qupv3_wrap1_s4_div_clk_src",
2512 .parent_hws = (const struct clk_hw*[]){
2513 &gcc_qupv3_wrap1_s4_clk_src.clkr.hw,
2516 .flags = CLK_SET_RATE_PARENT,
2517 .ops = &clk_regmap_div_ro_ops,
2521 static struct clk_regmap_div gcc_qupv3_wrap2_s4_div_clk_src = {
2525 .clkr.hw.init = &(const struct clk_init_data) {
2526 .name = "gcc_qupv3_wrap2_s4_div_clk_src",
2527 .parent_hws = (const struct clk_hw*[]){
2528 &gcc_qupv3_wrap2_s4_clk_src.clkr.hw,
2531 .flags = CLK_SET_RATE_PARENT,
2532 .ops = &clk_regmap_div_ro_ops,
2536 static struct clk_regmap_div gcc_usb30_mp_mock_utmi_postdiv_clk_src = {
2540 .clkr.hw.init = &(const struct clk_init_data) {
2541 .name = "gcc_usb30_mp_mock_utmi_postdiv_clk_src",
2542 .parent_hws = (const struct clk_hw*[]){
2543 &gcc_usb30_mp_mock_utmi_clk_src.clkr.hw,
2546 .flags = CLK_SET_RATE_PARENT,
2547 .ops = &clk_regmap_div_ro_ops,
2551 static struct clk_regmap_div gcc_usb30_prim_mock_utmi_postdiv_clk_src = {
2555 .clkr.hw.init = &(const struct clk_init_data) {
2556 .name = "gcc_usb30_prim_mock_utmi_postdiv_clk_src",
2557 .parent_hws = (const struct clk_hw*[]){
2558 &gcc_usb30_prim_mock_utmi_clk_src.clkr.hw,
2561 .flags = CLK_SET_RATE_PARENT,
2562 .ops = &clk_regmap_div_ro_ops,
2566 static struct clk_regmap_div gcc_usb30_sec_mock_utmi_postdiv_clk_src = {
2570 .clkr.hw.init = &(const struct clk_init_data) {
2571 .name = "gcc_usb30_sec_mock_utmi_postdiv_clk_src",
2572 .parent_hws = (const struct clk_hw*[]){
2573 &gcc_usb30_sec_mock_utmi_clk_src.clkr.hw,
2576 .flags = CLK_SET_RATE_PARENT,
2577 .ops = &clk_regmap_div_ro_ops,
2581 static struct clk_branch gcc_aggre_noc_pcie0_tunnel_axi_clk = {
2582 .halt_reg = 0xa41a8,
2583 .halt_check = BRANCH_HALT_SKIP,
2584 .hwcg_reg = 0xa41a8,
2587 .enable_reg = 0x52018,
2588 .enable_mask = BIT(14),
2589 .hw.init = &(const struct clk_init_data) {
2590 .name = "gcc_aggre_noc_pcie0_tunnel_axi_clk",
2591 .ops = &clk_branch2_ops,
2596 static struct clk_branch gcc_aggre_noc_pcie1_tunnel_axi_clk = {
2597 .halt_reg = 0x8d07c,
2598 .halt_check = BRANCH_HALT_SKIP,
2599 .hwcg_reg = 0x8d07c,
2602 .enable_reg = 0x52018,
2603 .enable_mask = BIT(21),
2604 .hw.init = &(const struct clk_init_data) {
2605 .name = "gcc_aggre_noc_pcie1_tunnel_axi_clk",
2606 .ops = &clk_branch2_ops,
2611 static struct clk_branch gcc_aggre_noc_pcie_4_axi_clk = {
2612 .halt_reg = 0x6b1b8,
2613 .halt_check = BRANCH_HALT_SKIP,
2614 .hwcg_reg = 0x6b1b8,
2617 .enable_reg = 0x52000,
2618 .enable_mask = BIT(12),
2619 .hw.init = &(const struct clk_init_data) {
2620 .name = "gcc_aggre_noc_pcie_4_axi_clk",
2621 .ops = &clk_branch2_ops,
2626 static struct clk_branch gcc_aggre_noc_pcie_south_sf_axi_clk = {
2627 .halt_reg = 0xbf13c,
2628 .halt_check = BRANCH_HALT_SKIP,
2629 .hwcg_reg = 0xbf13c,
2632 .enable_reg = 0x52018,
2633 .enable_mask = BIT(13),
2634 .hw.init = &(const struct clk_init_data) {
2635 .name = "gcc_aggre_noc_pcie_south_sf_axi_clk",
2636 .ops = &clk_branch2_ops,
2641 static struct clk_branch gcc_aggre_ufs_card_axi_clk = {
2642 .halt_reg = 0x750cc,
2643 .halt_check = BRANCH_HALT_VOTED,
2644 .hwcg_reg = 0x750cc,
2647 .enable_reg = 0x750cc,
2648 .enable_mask = BIT(0),
2649 .hw.init = &(const struct clk_init_data) {
2650 .name = "gcc_aggre_ufs_card_axi_clk",
2651 .parent_hws = (const struct clk_hw*[]){
2652 &gcc_ufs_card_axi_clk_src.clkr.hw,
2655 .flags = CLK_SET_RATE_PARENT,
2656 .ops = &clk_branch2_ops,
2661 static struct clk_branch gcc_aggre_ufs_card_axi_hw_ctl_clk = {
2662 .halt_reg = 0x750cc,
2663 .halt_check = BRANCH_HALT_VOTED,
2664 .hwcg_reg = 0x750cc,
2667 .enable_reg = 0x750cc,
2668 .enable_mask = BIT(1),
2669 .hw.init = &(const struct clk_init_data) {
2670 .name = "gcc_aggre_ufs_card_axi_hw_ctl_clk",
2671 .parent_hws = (const struct clk_hw*[]){
2672 &gcc_ufs_card_axi_clk_src.clkr.hw,
2675 .flags = CLK_SET_RATE_PARENT,
2676 .ops = &clk_branch2_ops,
2681 static struct clk_branch gcc_aggre_ufs_phy_axi_clk = {
2682 .halt_reg = 0x770cc,
2683 .halt_check = BRANCH_HALT_VOTED,
2684 .hwcg_reg = 0x770cc,
2687 .enable_reg = 0x770cc,
2688 .enable_mask = BIT(0),
2689 .hw.init = &(const struct clk_init_data) {
2690 .name = "gcc_aggre_ufs_phy_axi_clk",
2691 .parent_hws = (const struct clk_hw*[]){
2692 &gcc_ufs_phy_axi_clk_src.clkr.hw,
2695 .flags = CLK_SET_RATE_PARENT,
2696 .ops = &clk_branch2_ops,
2701 static struct clk_branch gcc_aggre_ufs_phy_axi_hw_ctl_clk = {
2702 .halt_reg = 0x770cc,
2703 .halt_check = BRANCH_HALT_VOTED,
2704 .hwcg_reg = 0x770cc,
2707 .enable_reg = 0x770cc,
2708 .enable_mask = BIT(1),
2709 .hw.init = &(const struct clk_init_data) {
2710 .name = "gcc_aggre_ufs_phy_axi_hw_ctl_clk",
2711 .parent_hws = (const struct clk_hw*[]){
2712 &gcc_ufs_phy_axi_clk_src.clkr.hw,
2715 .flags = CLK_SET_RATE_PARENT,
2716 .ops = &clk_branch2_ops,
2721 static struct clk_branch gcc_aggre_usb3_mp_axi_clk = {
2722 .halt_reg = 0xab084,
2723 .halt_check = BRANCH_HALT_VOTED,
2724 .hwcg_reg = 0xab084,
2727 .enable_reg = 0xab084,
2728 .enable_mask = BIT(0),
2729 .hw.init = &(const struct clk_init_data) {
2730 .name = "gcc_aggre_usb3_mp_axi_clk",
2731 .parent_hws = (const struct clk_hw*[]){
2732 &gcc_usb30_mp_master_clk_src.clkr.hw,
2735 .flags = CLK_SET_RATE_PARENT,
2736 .ops = &clk_branch2_ops,
2741 static struct clk_branch gcc_aggre_usb3_prim_axi_clk = {
2743 .halt_check = BRANCH_HALT_VOTED,
2747 .enable_reg = 0xf080,
2748 .enable_mask = BIT(0),
2749 .hw.init = &(const struct clk_init_data) {
2750 .name = "gcc_aggre_usb3_prim_axi_clk",
2751 .parent_hws = (const struct clk_hw*[]){
2752 &gcc_usb30_prim_master_clk_src.clkr.hw,
2755 .flags = CLK_SET_RATE_PARENT,
2756 .ops = &clk_branch2_ops,
2761 static struct clk_branch gcc_aggre_usb3_sec_axi_clk = {
2762 .halt_reg = 0x10080,
2763 .halt_check = BRANCH_HALT_VOTED,
2764 .hwcg_reg = 0x10080,
2767 .enable_reg = 0x10080,
2768 .enable_mask = BIT(0),
2769 .hw.init = &(const struct clk_init_data) {
2770 .name = "gcc_aggre_usb3_sec_axi_clk",
2771 .parent_hws = (const struct clk_hw*[]){
2772 &gcc_usb30_sec_master_clk_src.clkr.hw,
2775 .flags = CLK_SET_RATE_PARENT,
2776 .ops = &clk_branch2_ops,
2781 static struct clk_branch gcc_aggre_usb4_1_axi_clk = {
2782 .halt_reg = 0xb80e4,
2783 .halt_check = BRANCH_HALT_VOTED,
2784 .hwcg_reg = 0xb80e4,
2787 .enable_reg = 0xb80e4,
2788 .enable_mask = BIT(0),
2789 .hw.init = &(const struct clk_init_data) {
2790 .name = "gcc_aggre_usb4_1_axi_clk",
2791 .parent_hws = (const struct clk_hw*[]){
2792 &gcc_usb4_1_master_clk_src.clkr.hw,
2795 .flags = CLK_SET_RATE_PARENT,
2796 .ops = &clk_branch2_ops,
2801 static struct clk_branch gcc_aggre_usb4_axi_clk = {
2802 .halt_reg = 0x2a0e4,
2803 .halt_check = BRANCH_HALT_VOTED,
2804 .hwcg_reg = 0x2a0e4,
2807 .enable_reg = 0x2a0e4,
2808 .enable_mask = BIT(0),
2809 .hw.init = &(const struct clk_init_data) {
2810 .name = "gcc_aggre_usb4_axi_clk",
2811 .parent_hws = (const struct clk_hw*[]){
2812 &gcc_usb4_master_clk_src.clkr.hw,
2815 .flags = CLK_SET_RATE_PARENT,
2816 .ops = &clk_branch2_ops,
2821 static struct clk_branch gcc_aggre_usb_noc_axi_clk = {
2822 .halt_reg = 0x5d024,
2823 .halt_check = BRANCH_HALT_VOTED,
2824 .hwcg_reg = 0x5d024,
2827 .enable_reg = 0x5d024,
2828 .enable_mask = BIT(0),
2829 .hw.init = &(const struct clk_init_data) {
2830 .name = "gcc_aggre_usb_noc_axi_clk",
2831 .ops = &clk_branch2_ops,
2836 static struct clk_branch gcc_aggre_usb_noc_north_axi_clk = {
2837 .halt_reg = 0x5d020,
2838 .halt_check = BRANCH_HALT_VOTED,
2839 .hwcg_reg = 0x5d020,
2842 .enable_reg = 0x5d020,
2843 .enable_mask = BIT(0),
2844 .hw.init = &(const struct clk_init_data) {
2845 .name = "gcc_aggre_usb_noc_north_axi_clk",
2846 .ops = &clk_branch2_ops,
2851 static struct clk_branch gcc_aggre_usb_noc_south_axi_clk = {
2852 .halt_reg = 0x5d01c,
2853 .halt_check = BRANCH_HALT_VOTED,
2854 .hwcg_reg = 0x5d01c,
2857 .enable_reg = 0x5d01c,
2858 .enable_mask = BIT(0),
2859 .hw.init = &(const struct clk_init_data) {
2860 .name = "gcc_aggre_usb_noc_south_axi_clk",
2861 .ops = &clk_branch2_ops,
2866 static struct clk_branch gcc_ahb2phy0_clk = {
2867 .halt_reg = 0x6a004,
2868 .halt_check = BRANCH_HALT_VOTED,
2869 .hwcg_reg = 0x6a004,
2872 .enable_reg = 0x6a004,
2873 .enable_mask = BIT(0),
2874 .hw.init = &(const struct clk_init_data) {
2875 .name = "gcc_ahb2phy0_clk",
2876 .ops = &clk_branch2_ops,
2881 static struct clk_branch gcc_ahb2phy2_clk = {
2882 .halt_reg = 0x6a008,
2883 .halt_check = BRANCH_HALT_VOTED,
2884 .hwcg_reg = 0x6a008,
2887 .enable_reg = 0x6a008,
2888 .enable_mask = BIT(0),
2889 .hw.init = &(const struct clk_init_data) {
2890 .name = "gcc_ahb2phy2_clk",
2891 .ops = &clk_branch2_ops,
2896 static struct clk_branch gcc_boot_rom_ahb_clk = {
2897 .halt_reg = 0x38004,
2898 .halt_check = BRANCH_HALT_VOTED,
2899 .hwcg_reg = 0x38004,
2902 .enable_reg = 0x52000,
2903 .enable_mask = BIT(10),
2904 .hw.init = &(const struct clk_init_data) {
2905 .name = "gcc_boot_rom_ahb_clk",
2906 .ops = &clk_branch2_ops,
2911 static struct clk_branch gcc_camera_hf_axi_clk = {
2912 .halt_reg = 0x26010,
2913 .halt_check = BRANCH_HALT_SKIP,
2914 .hwcg_reg = 0x26010,
2917 .enable_reg = 0x26010,
2918 .enable_mask = BIT(0),
2919 .hw.init = &(const struct clk_init_data) {
2920 .name = "gcc_camera_hf_axi_clk",
2921 .ops = &clk_branch2_ops,
2926 static struct clk_branch gcc_camera_sf_axi_clk = {
2927 .halt_reg = 0x26014,
2928 .halt_check = BRANCH_HALT_SKIP,
2929 .hwcg_reg = 0x26014,
2932 .enable_reg = 0x26014,
2933 .enable_mask = BIT(0),
2934 .hw.init = &(const struct clk_init_data) {
2935 .name = "gcc_camera_sf_axi_clk",
2936 .ops = &clk_branch2_ops,
2941 static struct clk_branch gcc_camera_throttle_nrt_axi_clk = {
2942 .halt_reg = 0x2601c,
2943 .halt_check = BRANCH_HALT_SKIP,
2944 .hwcg_reg = 0x2601c,
2947 .enable_reg = 0x2601c,
2948 .enable_mask = BIT(0),
2949 .hw.init = &(const struct clk_init_data) {
2950 .name = "gcc_camera_throttle_nrt_axi_clk",
2951 .ops = &clk_branch2_ops,
2956 static struct clk_branch gcc_camera_throttle_rt_axi_clk = {
2957 .halt_reg = 0x26018,
2958 .halt_check = BRANCH_HALT_SKIP,
2959 .hwcg_reg = 0x26018,
2962 .enable_reg = 0x26018,
2963 .enable_mask = BIT(0),
2964 .hw.init = &(const struct clk_init_data) {
2965 .name = "gcc_camera_throttle_rt_axi_clk",
2966 .ops = &clk_branch2_ops,
2971 static struct clk_branch gcc_camera_throttle_xo_clk = {
2972 .halt_reg = 0x26024,
2973 .halt_check = BRANCH_HALT,
2975 .enable_reg = 0x26024,
2976 .enable_mask = BIT(0),
2977 .hw.init = &(const struct clk_init_data) {
2978 .name = "gcc_camera_throttle_xo_clk",
2979 .ops = &clk_branch2_ops,
2984 static struct clk_branch gcc_cfg_noc_usb3_mp_axi_clk = {
2985 .halt_reg = 0xab088,
2986 .halt_check = BRANCH_HALT_VOTED,
2987 .hwcg_reg = 0xab088,
2990 .enable_reg = 0xab088,
2991 .enable_mask = BIT(0),
2992 .hw.init = &(const struct clk_init_data) {
2993 .name = "gcc_cfg_noc_usb3_mp_axi_clk",
2994 .parent_hws = (const struct clk_hw*[]){
2995 &gcc_usb30_mp_master_clk_src.clkr.hw,
2998 .flags = CLK_SET_RATE_PARENT,
2999 .ops = &clk_branch2_ops,
3004 static struct clk_branch gcc_cfg_noc_usb3_prim_axi_clk = {
3006 .halt_check = BRANCH_HALT_VOTED,
3010 .enable_reg = 0xf084,
3011 .enable_mask = BIT(0),
3012 .hw.init = &(const struct clk_init_data) {
3013 .name = "gcc_cfg_noc_usb3_prim_axi_clk",
3014 .parent_hws = (const struct clk_hw*[]){
3015 &gcc_usb30_prim_master_clk_src.clkr.hw,
3018 .flags = CLK_SET_RATE_PARENT,
3019 .ops = &clk_branch2_ops,
3024 static struct clk_branch gcc_cfg_noc_usb3_sec_axi_clk = {
3025 .halt_reg = 0x10084,
3026 .halt_check = BRANCH_HALT_VOTED,
3027 .hwcg_reg = 0x10084,
3030 .enable_reg = 0x10084,
3031 .enable_mask = BIT(0),
3032 .hw.init = &(const struct clk_init_data) {
3033 .name = "gcc_cfg_noc_usb3_sec_axi_clk",
3034 .parent_hws = (const struct clk_hw*[]){
3035 &gcc_usb30_sec_master_clk_src.clkr.hw,
3038 .flags = CLK_SET_RATE_PARENT,
3039 .ops = &clk_branch2_ops,
3044 static struct clk_branch gcc_cnoc_pcie0_tunnel_clk = {
3045 .halt_reg = 0xa4074,
3046 .halt_check = BRANCH_HALT_VOTED,
3048 .enable_reg = 0x52020,
3049 .enable_mask = BIT(8),
3050 .hw.init = &(const struct clk_init_data) {
3051 .name = "gcc_cnoc_pcie0_tunnel_clk",
3052 .ops = &clk_branch2_ops,
3057 static struct clk_branch gcc_cnoc_pcie1_tunnel_clk = {
3058 .halt_reg = 0x8d074,
3059 .halt_check = BRANCH_HALT_VOTED,
3061 .enable_reg = 0x52020,
3062 .enable_mask = BIT(9),
3063 .hw.init = &(const struct clk_init_data) {
3064 .name = "gcc_cnoc_pcie1_tunnel_clk",
3065 .ops = &clk_branch2_ops,
3070 static struct clk_branch gcc_cnoc_pcie4_qx_clk = {
3071 .halt_reg = 0x6b084,
3072 .halt_check = BRANCH_HALT_VOTED,
3073 .hwcg_reg = 0x6b084,
3076 .enable_reg = 0x52020,
3077 .enable_mask = BIT(10),
3078 .hw.init = &(const struct clk_init_data) {
3079 .name = "gcc_cnoc_pcie4_qx_clk",
3080 .ops = &clk_branch2_ops,
3085 static struct clk_branch gcc_ddrss_gpu_axi_clk = {
3086 .halt_reg = 0x7115c,
3087 .halt_check = BRANCH_HALT_SKIP,
3088 .hwcg_reg = 0x7115c,
3091 .enable_reg = 0x7115c,
3092 .enable_mask = BIT(0),
3093 .hw.init = &(const struct clk_init_data) {
3094 .name = "gcc_ddrss_gpu_axi_clk",
3095 .ops = &clk_branch2_aon_ops,
3100 static struct clk_branch gcc_ddrss_pcie_sf_tbu_clk = {
3101 .halt_reg = 0xa602c,
3102 .halt_check = BRANCH_HALT_SKIP,
3103 .hwcg_reg = 0xa602c,
3106 .enable_reg = 0x52000,
3107 .enable_mask = BIT(19),
3108 .hw.init = &(const struct clk_init_data) {
3109 .name = "gcc_ddrss_pcie_sf_tbu_clk",
3110 .ops = &clk_branch2_ops,
3115 static struct clk_branch gcc_disp1_hf_axi_clk = {
3116 .halt_reg = 0xbb010,
3117 .halt_check = BRANCH_HALT_SKIP,
3118 .hwcg_reg = 0xbb010,
3121 .enable_reg = 0xbb010,
3122 .enable_mask = BIT(0),
3123 .hw.init = &(const struct clk_init_data) {
3124 .name = "gcc_disp1_hf_axi_clk",
3125 .ops = &clk_branch2_ops,
3130 static struct clk_branch gcc_disp1_sf_axi_clk = {
3131 .halt_reg = 0xbb018,
3132 .halt_check = BRANCH_HALT_SKIP,
3133 .hwcg_reg = 0xbb018,
3136 .enable_reg = 0xbb018,
3137 .enable_mask = BIT(0),
3138 .hw.init = &(const struct clk_init_data) {
3139 .name = "gcc_disp1_sf_axi_clk",
3140 .ops = &clk_branch2_ops,
3145 static struct clk_branch gcc_disp1_throttle_nrt_axi_clk = {
3146 .halt_reg = 0xbb024,
3147 .halt_check = BRANCH_HALT_SKIP,
3148 .hwcg_reg = 0xbb024,
3151 .enable_reg = 0xbb024,
3152 .enable_mask = BIT(0),
3153 .hw.init = &(const struct clk_init_data) {
3154 .name = "gcc_disp1_throttle_nrt_axi_clk",
3155 .ops = &clk_branch2_ops,
3160 static struct clk_branch gcc_disp1_throttle_rt_axi_clk = {
3161 .halt_reg = 0xbb020,
3162 .halt_check = BRANCH_HALT_SKIP,
3163 .hwcg_reg = 0xbb020,
3166 .enable_reg = 0xbb020,
3167 .enable_mask = BIT(0),
3168 .hw.init = &(const struct clk_init_data) {
3169 .name = "gcc_disp1_throttle_rt_axi_clk",
3170 .ops = &clk_branch2_ops,
3175 static struct clk_branch gcc_disp_hf_axi_clk = {
3176 .halt_reg = 0x27010,
3177 .halt_check = BRANCH_HALT_SKIP,
3178 .hwcg_reg = 0x27010,
3181 .enable_reg = 0x27010,
3182 .enable_mask = BIT(0),
3183 .hw.init = &(const struct clk_init_data) {
3184 .name = "gcc_disp_hf_axi_clk",
3185 .ops = &clk_branch2_ops,
3190 static struct clk_branch gcc_disp_sf_axi_clk = {
3191 .halt_reg = 0x27018,
3192 .halt_check = BRANCH_HALT_SKIP,
3193 .hwcg_reg = 0x27018,
3196 .enable_reg = 0x27018,
3197 .enable_mask = BIT(0),
3198 .hw.init = &(const struct clk_init_data) {
3199 .name = "gcc_disp_sf_axi_clk",
3200 .ops = &clk_branch2_ops,
3205 static struct clk_branch gcc_disp_throttle_nrt_axi_clk = {
3206 .halt_reg = 0x27024,
3207 .halt_check = BRANCH_HALT_SKIP,
3208 .hwcg_reg = 0x27024,
3211 .enable_reg = 0x27024,
3212 .enable_mask = BIT(0),
3213 .hw.init = &(const struct clk_init_data) {
3214 .name = "gcc_disp_throttle_nrt_axi_clk",
3215 .ops = &clk_branch2_ops,
3220 static struct clk_branch gcc_disp_throttle_rt_axi_clk = {
3221 .halt_reg = 0x27020,
3222 .halt_check = BRANCH_HALT_SKIP,
3223 .hwcg_reg = 0x27020,
3226 .enable_reg = 0x27020,
3227 .enable_mask = BIT(0),
3228 .hw.init = &(const struct clk_init_data) {
3229 .name = "gcc_disp_throttle_rt_axi_clk",
3230 .ops = &clk_branch2_ops,
3235 static struct clk_branch gcc_emac0_axi_clk = {
3236 .halt_reg = 0xaa010,
3237 .halt_check = BRANCH_HALT_VOTED,
3238 .hwcg_reg = 0xaa010,
3241 .enable_reg = 0xaa010,
3242 .enable_mask = BIT(0),
3243 .hw.init = &(const struct clk_init_data) {
3244 .name = "gcc_emac0_axi_clk",
3245 .ops = &clk_branch2_ops,
3250 static struct clk_branch gcc_emac0_ptp_clk = {
3251 .halt_reg = 0xaa01c,
3252 .halt_check = BRANCH_HALT,
3254 .enable_reg = 0xaa01c,
3255 .enable_mask = BIT(0),
3256 .hw.init = &(const struct clk_init_data) {
3257 .name = "gcc_emac0_ptp_clk",
3258 .parent_hws = (const struct clk_hw*[]){
3259 &gcc_emac0_ptp_clk_src.clkr.hw,
3262 .flags = CLK_SET_RATE_PARENT,
3263 .ops = &clk_branch2_ops,
3268 static struct clk_branch gcc_emac0_rgmii_clk = {
3269 .halt_reg = 0xaa038,
3270 .halt_check = BRANCH_HALT,
3272 .enable_reg = 0xaa038,
3273 .enable_mask = BIT(0),
3274 .hw.init = &(const struct clk_init_data) {
3275 .name = "gcc_emac0_rgmii_clk",
3276 .parent_hws = (const struct clk_hw*[]){
3277 &gcc_emac0_rgmii_clk_src.clkr.hw,
3280 .flags = CLK_SET_RATE_PARENT,
3281 .ops = &clk_branch2_ops,
3286 static struct clk_branch gcc_emac0_slv_ahb_clk = {
3287 .halt_reg = 0xaa018,
3288 .halt_check = BRANCH_HALT_VOTED,
3289 .hwcg_reg = 0xaa018,
3292 .enable_reg = 0xaa018,
3293 .enable_mask = BIT(0),
3294 .hw.init = &(const struct clk_init_data) {
3295 .name = "gcc_emac0_slv_ahb_clk",
3296 .ops = &clk_branch2_ops,
3301 static struct clk_branch gcc_emac1_axi_clk = {
3302 .halt_reg = 0xba010,
3303 .halt_check = BRANCH_HALT_VOTED,
3304 .hwcg_reg = 0xba010,
3307 .enable_reg = 0xba010,
3308 .enable_mask = BIT(0),
3309 .hw.init = &(const struct clk_init_data) {
3310 .name = "gcc_emac1_axi_clk",
3311 .ops = &clk_branch2_ops,
3316 static struct clk_branch gcc_emac1_ptp_clk = {
3317 .halt_reg = 0xba01c,
3318 .halt_check = BRANCH_HALT,
3320 .enable_reg = 0xba01c,
3321 .enable_mask = BIT(0),
3322 .hw.init = &(const struct clk_init_data) {
3323 .name = "gcc_emac1_ptp_clk",
3324 .parent_hws = (const struct clk_hw*[]){
3325 &gcc_emac1_ptp_clk_src.clkr.hw,
3328 .flags = CLK_SET_RATE_PARENT,
3329 .ops = &clk_branch2_ops,
3334 static struct clk_branch gcc_emac1_rgmii_clk = {
3335 .halt_reg = 0xba038,
3336 .halt_check = BRANCH_HALT,
3338 .enable_reg = 0xba038,
3339 .enable_mask = BIT(0),
3340 .hw.init = &(const struct clk_init_data) {
3341 .name = "gcc_emac1_rgmii_clk",
3342 .parent_hws = (const struct clk_hw*[]){
3343 &gcc_emac1_rgmii_clk_src.clkr.hw,
3346 .flags = CLK_SET_RATE_PARENT,
3347 .ops = &clk_branch2_ops,
3352 static struct clk_branch gcc_emac1_slv_ahb_clk = {
3353 .halt_reg = 0xba018,
3354 .halt_check = BRANCH_HALT_VOTED,
3355 .hwcg_reg = 0xba018,
3358 .enable_reg = 0xba018,
3359 .enable_mask = BIT(0),
3360 .hw.init = &(const struct clk_init_data) {
3361 .name = "gcc_emac1_slv_ahb_clk",
3362 .ops = &clk_branch2_ops,
3367 static struct clk_branch gcc_gp1_clk = {
3368 .halt_reg = 0x64000,
3369 .halt_check = BRANCH_HALT,
3371 .enable_reg = 0x64000,
3372 .enable_mask = BIT(0),
3373 .hw.init = &(const struct clk_init_data) {
3374 .name = "gcc_gp1_clk",
3375 .parent_hws = (const struct clk_hw*[]){
3376 &gcc_gp1_clk_src.clkr.hw,
3379 .flags = CLK_SET_RATE_PARENT,
3380 .ops = &clk_branch2_ops,
3385 static struct clk_branch gcc_gp2_clk = {
3386 .halt_reg = 0x65000,
3387 .halt_check = BRANCH_HALT,
3389 .enable_reg = 0x65000,
3390 .enable_mask = BIT(0),
3391 .hw.init = &(const struct clk_init_data) {
3392 .name = "gcc_gp2_clk",
3393 .parent_hws = (const struct clk_hw*[]){
3394 &gcc_gp2_clk_src.clkr.hw,
3397 .flags = CLK_SET_RATE_PARENT,
3398 .ops = &clk_branch2_ops,
3403 static struct clk_branch gcc_gp3_clk = {
3404 .halt_reg = 0x66000,
3405 .halt_check = BRANCH_HALT,
3407 .enable_reg = 0x66000,
3408 .enable_mask = BIT(0),
3409 .hw.init = &(const struct clk_init_data) {
3410 .name = "gcc_gp3_clk",
3411 .parent_hws = (const struct clk_hw*[]){
3412 &gcc_gp3_clk_src.clkr.hw,
3415 .flags = CLK_SET_RATE_PARENT,
3416 .ops = &clk_branch2_ops,
3421 static struct clk_branch gcc_gp4_clk = {
3422 .halt_reg = 0xc2000,
3423 .halt_check = BRANCH_HALT,
3425 .enable_reg = 0xc2000,
3426 .enable_mask = BIT(0),
3427 .hw.init = &(const struct clk_init_data) {
3428 .name = "gcc_gp4_clk",
3429 .parent_hws = (const struct clk_hw*[]){
3430 &gcc_gp4_clk_src.clkr.hw,
3433 .flags = CLK_SET_RATE_PARENT,
3434 .ops = &clk_branch2_ops,
3439 static struct clk_branch gcc_gp5_clk = {
3440 .halt_reg = 0xc3000,
3441 .halt_check = BRANCH_HALT,
3443 .enable_reg = 0xc3000,
3444 .enable_mask = BIT(0),
3445 .hw.init = &(const struct clk_init_data) {
3446 .name = "gcc_gp5_clk",
3447 .parent_hws = (const struct clk_hw*[]){
3448 &gcc_gp5_clk_src.clkr.hw,
3451 .flags = CLK_SET_RATE_PARENT,
3452 .ops = &clk_branch2_ops,
3457 static struct clk_branch gcc_gpu_gpll0_clk_src = {
3458 .halt_check = BRANCH_HALT_DELAY,
3460 .enable_reg = 0x52000,
3461 .enable_mask = BIT(15),
3462 .hw.init = &(const struct clk_init_data) {
3463 .name = "gcc_gpu_gpll0_clk_src",
3464 .parent_hws = (const struct clk_hw*[]){
3468 .flags = CLK_SET_RATE_PARENT,
3469 .ops = &clk_branch2_ops,
3474 static struct clk_branch gcc_gpu_gpll0_div_clk_src = {
3475 .halt_check = BRANCH_HALT_DELAY,
3477 .enable_reg = 0x52000,
3478 .enable_mask = BIT(16),
3479 .hw.init = &(const struct clk_init_data) {
3480 .name = "gcc_gpu_gpll0_div_clk_src",
3481 .parent_hws = (const struct clk_hw*[]){
3482 &gcc_gpll0_out_even.clkr.hw,
3485 .flags = CLK_SET_RATE_PARENT,
3486 .ops = &clk_branch2_ops,
3491 static struct clk_branch gcc_gpu_iref_en = {
3492 .halt_reg = 0x8c014,
3493 .halt_check = BRANCH_HALT,
3495 .enable_reg = 0x8c014,
3496 .enable_mask = BIT(0),
3497 .hw.init = &(const struct clk_init_data) {
3498 .name = "gcc_gpu_iref_en",
3499 .ops = &clk_branch2_ops,
3504 static struct clk_branch gcc_gpu_memnoc_gfx_clk = {
3505 .halt_reg = 0x71010,
3506 .halt_check = BRANCH_HALT_VOTED,
3507 .hwcg_reg = 0x71010,
3510 .enable_reg = 0x71010,
3511 .enable_mask = BIT(0),
3512 .hw.init = &(const struct clk_init_data) {
3513 .name = "gcc_gpu_memnoc_gfx_clk",
3514 .ops = &clk_branch2_aon_ops,
3519 static struct clk_branch gcc_gpu_snoc_dvm_gfx_clk = {
3520 .halt_reg = 0x71020,
3521 .halt_check = BRANCH_HALT,
3523 .enable_reg = 0x71020,
3524 .enable_mask = BIT(0),
3525 .hw.init = &(const struct clk_init_data) {
3526 .name = "gcc_gpu_snoc_dvm_gfx_clk",
3527 .ops = &clk_branch2_aon_ops,
3532 static struct clk_branch gcc_gpu_tcu_throttle_ahb_clk = {
3533 .halt_reg = 0x71008,
3534 .halt_check = BRANCH_HALT_VOTED,
3535 .hwcg_reg = 0x71008,
3538 .enable_reg = 0x71008,
3539 .enable_mask = BIT(0),
3540 .hw.init = &(const struct clk_init_data) {
3541 .name = "gcc_gpu_tcu_throttle_ahb_clk",
3542 .ops = &clk_branch2_ops,
3547 static struct clk_branch gcc_gpu_tcu_throttle_clk = {
3548 .halt_reg = 0x71018,
3549 .halt_check = BRANCH_HALT_VOTED,
3550 .hwcg_reg = 0x71018,
3553 .enable_reg = 0x71018,
3554 .enable_mask = BIT(0),
3555 .hw.init = &(const struct clk_init_data) {
3556 .name = "gcc_gpu_tcu_throttle_clk",
3557 .ops = &clk_branch2_ops,
3562 static struct clk_branch gcc_pcie0_phy_rchng_clk = {
3563 .halt_reg = 0xa4038,
3564 .halt_check = BRANCH_HALT_VOTED,
3566 .enable_reg = 0x52018,
3567 .enable_mask = BIT(11),
3568 .hw.init = &(const struct clk_init_data) {
3569 .name = "gcc_pcie0_phy_rchng_clk",
3570 .parent_hws = (const struct clk_hw*[]){
3571 &gcc_pcie_0_phy_rchng_clk_src.clkr.hw,
3574 .flags = CLK_SET_RATE_PARENT,
3575 .ops = &clk_branch2_ops,
3580 static struct clk_branch gcc_pcie1_phy_rchng_clk = {
3581 .halt_reg = 0x8d038,
3582 .halt_check = BRANCH_HALT_VOTED,
3584 .enable_reg = 0x52000,
3585 .enable_mask = BIT(23),
3586 .hw.init = &(const struct clk_init_data) {
3587 .name = "gcc_pcie1_phy_rchng_clk",
3588 .parent_hws = (const struct clk_hw*[]){
3589 &gcc_pcie_1_phy_rchng_clk_src.clkr.hw,
3592 .flags = CLK_SET_RATE_PARENT,
3593 .ops = &clk_branch2_ops,
3598 static struct clk_branch gcc_pcie2a_phy_rchng_clk = {
3599 .halt_reg = 0x9d040,
3600 .halt_check = BRANCH_HALT_VOTED,
3602 .enable_reg = 0x52010,
3603 .enable_mask = BIT(15),
3604 .hw.init = &(const struct clk_init_data) {
3605 .name = "gcc_pcie2a_phy_rchng_clk",
3606 .parent_hws = (const struct clk_hw*[]){
3607 &gcc_pcie_2a_phy_rchng_clk_src.clkr.hw,
3610 .flags = CLK_SET_RATE_PARENT,
3611 .ops = &clk_branch2_ops,
3616 static struct clk_branch gcc_pcie2b_phy_rchng_clk = {
3617 .halt_reg = 0x9e040,
3618 .halt_check = BRANCH_HALT_VOTED,
3620 .enable_reg = 0x52010,
3621 .enable_mask = BIT(22),
3622 .hw.init = &(const struct clk_init_data) {
3623 .name = "gcc_pcie2b_phy_rchng_clk",
3624 .parent_hws = (const struct clk_hw*[]){
3625 &gcc_pcie_2b_phy_rchng_clk_src.clkr.hw,
3628 .flags = CLK_SET_RATE_PARENT,
3629 .ops = &clk_branch2_ops,
3634 static struct clk_branch gcc_pcie3a_phy_rchng_clk = {
3635 .halt_reg = 0xa0040,
3636 .halt_check = BRANCH_HALT_VOTED,
3638 .enable_reg = 0x52010,
3639 .enable_mask = BIT(29),
3640 .hw.init = &(const struct clk_init_data) {
3641 .name = "gcc_pcie3a_phy_rchng_clk",
3642 .parent_hws = (const struct clk_hw*[]){
3643 &gcc_pcie_3a_phy_rchng_clk_src.clkr.hw,
3646 .flags = CLK_SET_RATE_PARENT,
3647 .ops = &clk_branch2_ops,
3652 static struct clk_branch gcc_pcie3b_phy_rchng_clk = {
3653 .halt_reg = 0xa2040,
3654 .halt_check = BRANCH_HALT_VOTED,
3656 .enable_reg = 0x52018,
3657 .enable_mask = BIT(4),
3658 .hw.init = &(const struct clk_init_data) {
3659 .name = "gcc_pcie3b_phy_rchng_clk",
3660 .parent_hws = (const struct clk_hw*[]){
3661 &gcc_pcie_3b_phy_rchng_clk_src.clkr.hw,
3664 .flags = CLK_SET_RATE_PARENT,
3665 .ops = &clk_branch2_ops,
3670 static struct clk_branch gcc_pcie4_phy_rchng_clk = {
3671 .halt_reg = 0x6b040,
3672 .halt_check = BRANCH_HALT_VOTED,
3674 .enable_reg = 0x52000,
3675 .enable_mask = BIT(22),
3676 .hw.init = &(const struct clk_init_data) {
3677 .name = "gcc_pcie4_phy_rchng_clk",
3678 .parent_hws = (const struct clk_hw*[]){
3679 &gcc_pcie_4_phy_rchng_clk_src.clkr.hw,
3682 .flags = CLK_SET_RATE_PARENT,
3683 .ops = &clk_branch2_ops,
3688 static struct clk_branch gcc_pcie_0_aux_clk = {
3689 .halt_reg = 0xa4028,
3690 .halt_check = BRANCH_HALT_VOTED,
3692 .enable_reg = 0x52018,
3693 .enable_mask = BIT(9),
3694 .hw.init = &(const struct clk_init_data) {
3695 .name = "gcc_pcie_0_aux_clk",
3696 .parent_hws = (const struct clk_hw*[]){
3697 &gcc_pcie_0_aux_clk_src.clkr.hw,
3700 .flags = CLK_SET_RATE_PARENT,
3701 .ops = &clk_branch2_ops,
3706 static struct clk_branch gcc_pcie_0_cfg_ahb_clk = {
3707 .halt_reg = 0xa4024,
3708 .halt_check = BRANCH_HALT_VOTED,
3709 .hwcg_reg = 0xa4024,
3712 .enable_reg = 0x52018,
3713 .enable_mask = BIT(8),
3714 .hw.init = &(const struct clk_init_data) {
3715 .name = "gcc_pcie_0_cfg_ahb_clk",
3716 .ops = &clk_branch2_ops,
3721 static struct clk_branch gcc_pcie_0_mstr_axi_clk = {
3722 .halt_reg = 0xa401c,
3723 .halt_check = BRANCH_HALT_SKIP,
3724 .hwcg_reg = 0xa401c,
3727 .enable_reg = 0x52018,
3728 .enable_mask = BIT(7),
3729 .hw.init = &(const struct clk_init_data) {
3730 .name = "gcc_pcie_0_mstr_axi_clk",
3731 .ops = &clk_branch2_ops,
3736 static struct clk_branch gcc_pcie_0_pipe_clk = {
3737 .halt_reg = 0xa4030,
3738 .halt_check = BRANCH_HALT_SKIP,
3740 .enable_reg = 0x52018,
3741 .enable_mask = BIT(10),
3742 .hw.init = &(const struct clk_init_data) {
3743 .name = "gcc_pcie_0_pipe_clk",
3744 .parent_hws = (const struct clk_hw*[]){
3745 &gcc_usb4_phy_pcie_pipe_mux_clk_src.clkr.hw,
3748 .flags = CLK_SET_RATE_PARENT,
3749 .ops = &clk_branch2_ops,
3754 static struct clk_branch gcc_pcie_0_slv_axi_clk = {
3755 .halt_reg = 0xa4014,
3756 .halt_check = BRANCH_HALT_VOTED,
3757 .hwcg_reg = 0xa4014,
3760 .enable_reg = 0x52018,
3761 .enable_mask = BIT(6),
3762 .hw.init = &(const struct clk_init_data) {
3763 .name = "gcc_pcie_0_slv_axi_clk",
3764 .ops = &clk_branch2_ops,
3769 static struct clk_branch gcc_pcie_0_slv_q2a_axi_clk = {
3770 .halt_reg = 0xa4010,
3771 .halt_check = BRANCH_HALT_VOTED,
3773 .enable_reg = 0x52018,
3774 .enable_mask = BIT(5),
3775 .hw.init = &(const struct clk_init_data) {
3776 .name = "gcc_pcie_0_slv_q2a_axi_clk",
3777 .ops = &clk_branch2_ops,
3782 static struct clk_branch gcc_pcie_1_aux_clk = {
3783 .halt_reg = 0x8d028,
3784 .halt_check = BRANCH_HALT_VOTED,
3786 .enable_reg = 0x52000,
3787 .enable_mask = BIT(29),
3788 .hw.init = &(const struct clk_init_data) {
3789 .name = "gcc_pcie_1_aux_clk",
3790 .parent_hws = (const struct clk_hw*[]){
3791 &gcc_pcie_1_aux_clk_src.clkr.hw,
3794 .flags = CLK_SET_RATE_PARENT,
3795 .ops = &clk_branch2_ops,
3800 static struct clk_branch gcc_pcie_1_cfg_ahb_clk = {
3801 .halt_reg = 0x8d024,
3802 .halt_check = BRANCH_HALT_VOTED,
3803 .hwcg_reg = 0x8d024,
3806 .enable_reg = 0x52000,
3807 .enable_mask = BIT(28),
3808 .hw.init = &(const struct clk_init_data) {
3809 .name = "gcc_pcie_1_cfg_ahb_clk",
3810 .ops = &clk_branch2_ops,
3815 static struct clk_branch gcc_pcie_1_mstr_axi_clk = {
3816 .halt_reg = 0x8d01c,
3817 .halt_check = BRANCH_HALT_SKIP,
3818 .hwcg_reg = 0x8d01c,
3821 .enable_reg = 0x52000,
3822 .enable_mask = BIT(27),
3823 .hw.init = &(const struct clk_init_data) {
3824 .name = "gcc_pcie_1_mstr_axi_clk",
3825 .ops = &clk_branch2_ops,
3830 static struct clk_branch gcc_pcie_1_pipe_clk = {
3831 .halt_reg = 0x8d030,
3832 .halt_check = BRANCH_HALT_SKIP,
3834 .enable_reg = 0x52000,
3835 .enable_mask = BIT(30),
3836 .hw.init = &(const struct clk_init_data) {
3837 .name = "gcc_pcie_1_pipe_clk",
3838 .parent_hws = (const struct clk_hw*[]){
3839 &gcc_usb4_1_phy_pcie_pipe_mux_clk_src.clkr.hw,
3842 .flags = CLK_SET_RATE_PARENT,
3843 .ops = &clk_branch2_ops,
3848 static struct clk_branch gcc_pcie_1_slv_axi_clk = {
3849 .halt_reg = 0x8d014,
3850 .halt_check = BRANCH_HALT_VOTED,
3851 .hwcg_reg = 0x8d014,
3854 .enable_reg = 0x52000,
3855 .enable_mask = BIT(26),
3856 .hw.init = &(const struct clk_init_data) {
3857 .name = "gcc_pcie_1_slv_axi_clk",
3858 .ops = &clk_branch2_ops,
3863 static struct clk_branch gcc_pcie_1_slv_q2a_axi_clk = {
3864 .halt_reg = 0x8d010,
3865 .halt_check = BRANCH_HALT_VOTED,
3867 .enable_reg = 0x52000,
3868 .enable_mask = BIT(25),
3869 .hw.init = &(const struct clk_init_data) {
3870 .name = "gcc_pcie_1_slv_q2a_axi_clk",
3871 .ops = &clk_branch2_ops,
3876 static struct clk_branch gcc_pcie_2a2b_clkref_clk = {
3877 .halt_reg = 0x8c034,
3878 .halt_check = BRANCH_HALT,
3880 .enable_reg = 0x8c034,
3881 .enable_mask = BIT(0),
3882 .hw.init = &(const struct clk_init_data) {
3883 .name = "gcc_pcie_2a2b_clkref_clk",
3884 .ops = &clk_branch2_ops,
3889 static struct clk_branch gcc_pcie_2a_aux_clk = {
3890 .halt_reg = 0x9d028,
3891 .halt_check = BRANCH_HALT_VOTED,
3893 .enable_reg = 0x52010,
3894 .enable_mask = BIT(13),
3895 .hw.init = &(const struct clk_init_data) {
3896 .name = "gcc_pcie_2a_aux_clk",
3897 .parent_hws = (const struct clk_hw*[]){
3898 &gcc_pcie_2a_aux_clk_src.clkr.hw,
3901 .flags = CLK_SET_RATE_PARENT,
3902 .ops = &clk_branch2_ops,
3907 static struct clk_branch gcc_pcie_2a_cfg_ahb_clk = {
3908 .halt_reg = 0x9d024,
3909 .halt_check = BRANCH_HALT_VOTED,
3910 .hwcg_reg = 0x9d024,
3913 .enable_reg = 0x52010,
3914 .enable_mask = BIT(12),
3915 .hw.init = &(const struct clk_init_data) {
3916 .name = "gcc_pcie_2a_cfg_ahb_clk",
3917 .ops = &clk_branch2_ops,
3922 static struct clk_branch gcc_pcie_2a_mstr_axi_clk = {
3923 .halt_reg = 0x9d01c,
3924 .halt_check = BRANCH_HALT_SKIP,
3925 .hwcg_reg = 0x9d01c,
3928 .enable_reg = 0x52010,
3929 .enable_mask = BIT(11),
3930 .hw.init = &(const struct clk_init_data) {
3931 .name = "gcc_pcie_2a_mstr_axi_clk",
3932 .ops = &clk_branch2_ops,
3937 static struct clk_branch gcc_pcie_2a_pipe_clk = {
3938 .halt_reg = 0x9d030,
3939 .halt_check = BRANCH_HALT_SKIP,
3941 .enable_reg = 0x52010,
3942 .enable_mask = BIT(14),
3943 .hw.init = &(const struct clk_init_data) {
3944 .name = "gcc_pcie_2a_pipe_clk",
3945 .parent_hws = (const struct clk_hw*[]){
3946 &gcc_pcie_2a_pipe_clk_src.clkr.hw,
3949 .flags = CLK_SET_RATE_PARENT,
3950 .ops = &clk_branch2_ops,
3955 static struct clk_branch gcc_pcie_2a_pipediv2_clk = {
3956 .halt_reg = 0x9d038,
3957 .halt_check = BRANCH_HALT_SKIP,
3959 .enable_reg = 0x52018,
3960 .enable_mask = BIT(22),
3961 .hw.init = &(const struct clk_init_data) {
3962 .name = "gcc_pcie_2a_pipediv2_clk",
3963 .parent_hws = (const struct clk_hw*[]){
3964 &gcc_pcie_2a_pipe_div_clk_src.clkr.hw,
3967 .flags = CLK_SET_RATE_PARENT,
3968 .ops = &clk_branch2_ops,
3973 static struct clk_branch gcc_pcie_2a_slv_axi_clk = {
3974 .halt_reg = 0x9d014,
3975 .halt_check = BRANCH_HALT_VOTED,
3976 .hwcg_reg = 0x9d014,
3979 .enable_reg = 0x52010,
3980 .enable_mask = BIT(10),
3981 .hw.init = &(const struct clk_init_data) {
3982 .name = "gcc_pcie_2a_slv_axi_clk",
3983 .ops = &clk_branch2_ops,
3988 static struct clk_branch gcc_pcie_2a_slv_q2a_axi_clk = {
3989 .halt_reg = 0x9d010,
3990 .halt_check = BRANCH_HALT_VOTED,
3992 .enable_reg = 0x52018,
3993 .enable_mask = BIT(12),
3994 .hw.init = &(const struct clk_init_data) {
3995 .name = "gcc_pcie_2a_slv_q2a_axi_clk",
3996 .ops = &clk_branch2_ops,
4001 static struct clk_branch gcc_pcie_2b_aux_clk = {
4002 .halt_reg = 0x9e028,
4003 .halt_check = BRANCH_HALT_VOTED,
4005 .enable_reg = 0x52010,
4006 .enable_mask = BIT(20),
4007 .hw.init = &(const struct clk_init_data) {
4008 .name = "gcc_pcie_2b_aux_clk",
4009 .parent_hws = (const struct clk_hw*[]){
4010 &gcc_pcie_2b_aux_clk_src.clkr.hw,
4013 .flags = CLK_SET_RATE_PARENT,
4014 .ops = &clk_branch2_ops,
4019 static struct clk_branch gcc_pcie_2b_cfg_ahb_clk = {
4020 .halt_reg = 0x9e024,
4021 .halt_check = BRANCH_HALT_VOTED,
4022 .hwcg_reg = 0x9e024,
4025 .enable_reg = 0x52010,
4026 .enable_mask = BIT(19),
4027 .hw.init = &(const struct clk_init_data) {
4028 .name = "gcc_pcie_2b_cfg_ahb_clk",
4029 .ops = &clk_branch2_ops,
4034 static struct clk_branch gcc_pcie_2b_mstr_axi_clk = {
4035 .halt_reg = 0x9e01c,
4036 .halt_check = BRANCH_HALT_SKIP,
4037 .hwcg_reg = 0x9e01c,
4040 .enable_reg = 0x52010,
4041 .enable_mask = BIT(18),
4042 .hw.init = &(const struct clk_init_data) {
4043 .name = "gcc_pcie_2b_mstr_axi_clk",
4044 .ops = &clk_branch2_ops,
4049 static struct clk_branch gcc_pcie_2b_pipe_clk = {
4050 .halt_reg = 0x9e030,
4051 .halt_check = BRANCH_HALT_SKIP,
4053 .enable_reg = 0x52010,
4054 .enable_mask = BIT(21),
4055 .hw.init = &(const struct clk_init_data) {
4056 .name = "gcc_pcie_2b_pipe_clk",
4057 .parent_hws = (const struct clk_hw*[]){
4058 &gcc_pcie_2b_pipe_clk_src.clkr.hw,
4061 .flags = CLK_SET_RATE_PARENT,
4062 .ops = &clk_branch2_ops,
4067 static struct clk_branch gcc_pcie_2b_pipediv2_clk = {
4068 .halt_reg = 0x9e038,
4069 .halt_check = BRANCH_HALT_SKIP,
4071 .enable_reg = 0x52018,
4072 .enable_mask = BIT(23),
4073 .hw.init = &(const struct clk_init_data) {
4074 .name = "gcc_pcie_2b_pipediv2_clk",
4075 .parent_hws = (const struct clk_hw*[]){
4076 &gcc_pcie_2b_pipe_div_clk_src.clkr.hw,
4079 .flags = CLK_SET_RATE_PARENT,
4080 .ops = &clk_branch2_ops,
4085 static struct clk_branch gcc_pcie_2b_slv_axi_clk = {
4086 .halt_reg = 0x9e014,
4087 .halt_check = BRANCH_HALT_VOTED,
4088 .hwcg_reg = 0x9e014,
4091 .enable_reg = 0x52010,
4092 .enable_mask = BIT(17),
4093 .hw.init = &(const struct clk_init_data) {
4094 .name = "gcc_pcie_2b_slv_axi_clk",
4095 .ops = &clk_branch2_ops,
4100 static struct clk_branch gcc_pcie_2b_slv_q2a_axi_clk = {
4101 .halt_reg = 0x9e010,
4102 .halt_check = BRANCH_HALT_VOTED,
4104 .enable_reg = 0x52010,
4105 .enable_mask = BIT(16),
4106 .hw.init = &(const struct clk_init_data) {
4107 .name = "gcc_pcie_2b_slv_q2a_axi_clk",
4108 .ops = &clk_branch2_ops,
4113 static struct clk_branch gcc_pcie_3a3b_clkref_clk = {
4114 .halt_reg = 0x8c038,
4115 .halt_check = BRANCH_HALT,
4117 .enable_reg = 0x8c038,
4118 .enable_mask = BIT(0),
4119 .hw.init = &(const struct clk_init_data) {
4120 .name = "gcc_pcie_3a3b_clkref_clk",
4121 .ops = &clk_branch2_ops,
4126 static struct clk_branch gcc_pcie_3a_aux_clk = {
4127 .halt_reg = 0xa0028,
4128 .halt_check = BRANCH_HALT_VOTED,
4130 .enable_reg = 0x52010,
4131 .enable_mask = BIT(27),
4132 .hw.init = &(const struct clk_init_data) {
4133 .name = "gcc_pcie_3a_aux_clk",
4134 .parent_hws = (const struct clk_hw*[]){
4135 &gcc_pcie_3a_aux_clk_src.clkr.hw,
4138 .flags = CLK_SET_RATE_PARENT,
4139 .ops = &clk_branch2_ops,
4144 static struct clk_branch gcc_pcie_3a_cfg_ahb_clk = {
4145 .halt_reg = 0xa0024,
4146 .halt_check = BRANCH_HALT_VOTED,
4147 .hwcg_reg = 0xa0024,
4150 .enable_reg = 0x52010,
4151 .enable_mask = BIT(26),
4152 .hw.init = &(const struct clk_init_data) {
4153 .name = "gcc_pcie_3a_cfg_ahb_clk",
4154 .ops = &clk_branch2_ops,
4159 static struct clk_branch gcc_pcie_3a_mstr_axi_clk = {
4160 .halt_reg = 0xa001c,
4161 .halt_check = BRANCH_HALT_SKIP,
4162 .hwcg_reg = 0xa001c,
4165 .enable_reg = 0x52010,
4166 .enable_mask = BIT(25),
4167 .hw.init = &(const struct clk_init_data) {
4168 .name = "gcc_pcie_3a_mstr_axi_clk",
4169 .ops = &clk_branch2_ops,
4174 static struct clk_branch gcc_pcie_3a_pipe_clk = {
4175 .halt_reg = 0xa0030,
4176 .halt_check = BRANCH_HALT_SKIP,
4178 .enable_reg = 0x52010,
4179 .enable_mask = BIT(28),
4180 .hw.init = &(const struct clk_init_data) {
4181 .name = "gcc_pcie_3a_pipe_clk",
4182 .parent_hws = (const struct clk_hw*[]){
4183 &gcc_pcie_3a_pipe_clk_src.clkr.hw,
4186 .flags = CLK_SET_RATE_PARENT,
4187 .ops = &clk_branch2_ops,
4192 static struct clk_branch gcc_pcie_3a_pipediv2_clk = {
4193 .halt_reg = 0xa0038,
4194 .halt_check = BRANCH_HALT_SKIP,
4196 .enable_reg = 0x52018,
4197 .enable_mask = BIT(24),
4198 .hw.init = &(const struct clk_init_data) {
4199 .name = "gcc_pcie_3a_pipediv2_clk",
4200 .parent_hws = (const struct clk_hw*[]){
4201 &gcc_pcie_3a_pipe_div_clk_src.clkr.hw,
4204 .flags = CLK_SET_RATE_PARENT,
4205 .ops = &clk_branch2_ops,
4210 static struct clk_branch gcc_pcie_3a_slv_axi_clk = {
4211 .halt_reg = 0xa0014,
4212 .halt_check = BRANCH_HALT_VOTED,
4213 .hwcg_reg = 0xa0014,
4216 .enable_reg = 0x52010,
4217 .enable_mask = BIT(24),
4218 .hw.init = &(const struct clk_init_data) {
4219 .name = "gcc_pcie_3a_slv_axi_clk",
4220 .ops = &clk_branch2_ops,
4225 static struct clk_branch gcc_pcie_3a_slv_q2a_axi_clk = {
4226 .halt_reg = 0xa0010,
4227 .halt_check = BRANCH_HALT_VOTED,
4229 .enable_reg = 0x52010,
4230 .enable_mask = BIT(23),
4231 .hw.init = &(const struct clk_init_data) {
4232 .name = "gcc_pcie_3a_slv_q2a_axi_clk",
4233 .ops = &clk_branch2_ops,
4238 static struct clk_branch gcc_pcie_3b_aux_clk = {
4239 .halt_reg = 0xa2028,
4240 .halt_check = BRANCH_HALT_VOTED,
4242 .enable_reg = 0x52018,
4243 .enable_mask = BIT(2),
4244 .hw.init = &(const struct clk_init_data) {
4245 .name = "gcc_pcie_3b_aux_clk",
4246 .parent_hws = (const struct clk_hw*[]){
4247 &gcc_pcie_3b_aux_clk_src.clkr.hw,
4250 .flags = CLK_SET_RATE_PARENT,
4251 .ops = &clk_branch2_ops,
4256 static struct clk_branch gcc_pcie_3b_cfg_ahb_clk = {
4257 .halt_reg = 0xa2024,
4258 .halt_check = BRANCH_HALT_VOTED,
4259 .hwcg_reg = 0xa2024,
4262 .enable_reg = 0x52018,
4263 .enable_mask = BIT(1),
4264 .hw.init = &(const struct clk_init_data) {
4265 .name = "gcc_pcie_3b_cfg_ahb_clk",
4266 .ops = &clk_branch2_ops,
4271 static struct clk_branch gcc_pcie_3b_mstr_axi_clk = {
4272 .halt_reg = 0xa201c,
4273 .halt_check = BRANCH_HALT_SKIP,
4274 .hwcg_reg = 0xa201c,
4277 .enable_reg = 0x52018,
4278 .enable_mask = BIT(0),
4279 .hw.init = &(const struct clk_init_data) {
4280 .name = "gcc_pcie_3b_mstr_axi_clk",
4281 .ops = &clk_branch2_ops,
4286 static struct clk_branch gcc_pcie_3b_pipe_clk = {
4287 .halt_reg = 0xa2030,
4288 .halt_check = BRANCH_HALT_SKIP,
4290 .enable_reg = 0x52018,
4291 .enable_mask = BIT(3),
4292 .hw.init = &(const struct clk_init_data) {
4293 .name = "gcc_pcie_3b_pipe_clk",
4294 .parent_hws = (const struct clk_hw*[]){
4295 &gcc_pcie_3b_pipe_clk_src.clkr.hw,
4298 .flags = CLK_SET_RATE_PARENT,
4299 .ops = &clk_branch2_ops,
4304 static struct clk_branch gcc_pcie_3b_pipediv2_clk = {
4305 .halt_reg = 0xa2038,
4306 .halt_check = BRANCH_HALT_SKIP,
4308 .enable_reg = 0x52018,
4309 .enable_mask = BIT(25),
4310 .hw.init = &(const struct clk_init_data) {
4311 .name = "gcc_pcie_3b_pipediv2_clk",
4312 .parent_hws = (const struct clk_hw*[]){
4313 &gcc_pcie_3b_pipe_div_clk_src.clkr.hw,
4316 .flags = CLK_SET_RATE_PARENT,
4317 .ops = &clk_branch2_ops,
4322 static struct clk_branch gcc_pcie_3b_slv_axi_clk = {
4323 .halt_reg = 0xa2014,
4324 .halt_check = BRANCH_HALT_VOTED,
4325 .hwcg_reg = 0xa2014,
4328 .enable_reg = 0x52010,
4329 .enable_mask = BIT(31),
4330 .hw.init = &(const struct clk_init_data) {
4331 .name = "gcc_pcie_3b_slv_axi_clk",
4332 .ops = &clk_branch2_ops,
4337 static struct clk_branch gcc_pcie_3b_slv_q2a_axi_clk = {
4338 .halt_reg = 0xa2010,
4339 .halt_check = BRANCH_HALT_VOTED,
4341 .enable_reg = 0x52010,
4342 .enable_mask = BIT(30),
4343 .hw.init = &(const struct clk_init_data) {
4344 .name = "gcc_pcie_3b_slv_q2a_axi_clk",
4345 .ops = &clk_branch2_ops,
4350 static struct clk_branch gcc_pcie_4_aux_clk = {
4351 .halt_reg = 0x6b028,
4352 .halt_check = BRANCH_HALT_VOTED,
4354 .enable_reg = 0x52008,
4355 .enable_mask = BIT(3),
4356 .hw.init = &(const struct clk_init_data) {
4357 .name = "gcc_pcie_4_aux_clk",
4358 .parent_hws = (const struct clk_hw*[]){
4359 &gcc_pcie_4_aux_clk_src.clkr.hw,
4362 .flags = CLK_SET_RATE_PARENT,
4363 .ops = &clk_branch2_ops,
4368 static struct clk_branch gcc_pcie_4_cfg_ahb_clk = {
4369 .halt_reg = 0x6b024,
4370 .halt_check = BRANCH_HALT_VOTED,
4371 .hwcg_reg = 0x6b024,
4374 .enable_reg = 0x52008,
4375 .enable_mask = BIT(2),
4376 .hw.init = &(const struct clk_init_data) {
4377 .name = "gcc_pcie_4_cfg_ahb_clk",
4378 .ops = &clk_branch2_ops,
4383 static struct clk_branch gcc_pcie_4_clkref_clk = {
4384 .halt_reg = 0x8c030,
4385 .halt_check = BRANCH_HALT,
4387 .enable_reg = 0x8c030,
4388 .enable_mask = BIT(0),
4389 .hw.init = &(const struct clk_init_data) {
4390 .name = "gcc_pcie_4_clkref_clk",
4391 .ops = &clk_branch2_ops,
4396 static struct clk_branch gcc_pcie_4_mstr_axi_clk = {
4397 .halt_reg = 0x6b01c,
4398 .halt_check = BRANCH_HALT_SKIP,
4399 .hwcg_reg = 0x6b01c,
4402 .enable_reg = 0x52008,
4403 .enable_mask = BIT(1),
4404 .hw.init = &(const struct clk_init_data) {
4405 .name = "gcc_pcie_4_mstr_axi_clk",
4406 .ops = &clk_branch2_ops,
4411 static struct clk_branch gcc_pcie_4_pipe_clk = {
4412 .halt_reg = 0x6b030,
4413 .halt_check = BRANCH_HALT_SKIP,
4415 .enable_reg = 0x52008,
4416 .enable_mask = BIT(4),
4417 .hw.init = &(const struct clk_init_data) {
4418 .name = "gcc_pcie_4_pipe_clk",
4419 .parent_hws = (const struct clk_hw*[]){
4420 &gcc_pcie_4_pipe_clk_src.clkr.hw,
4423 .flags = CLK_SET_RATE_PARENT,
4424 .ops = &clk_branch2_ops,
4429 static struct clk_branch gcc_pcie_4_pipediv2_clk = {
4430 .halt_reg = 0x6b038,
4431 .halt_check = BRANCH_HALT_SKIP,
4433 .enable_reg = 0x52018,
4434 .enable_mask = BIT(16),
4435 .hw.init = &(const struct clk_init_data) {
4436 .name = "gcc_pcie_4_pipediv2_clk",
4437 .parent_hws = (const struct clk_hw*[]){
4438 &gcc_pcie_4_pipe_div_clk_src.clkr.hw,
4441 .flags = CLK_SET_RATE_PARENT,
4442 .ops = &clk_branch2_ops,
4447 static struct clk_branch gcc_pcie_4_slv_axi_clk = {
4448 .halt_reg = 0x6b014,
4449 .halt_check = BRANCH_HALT_VOTED,
4450 .hwcg_reg = 0x6b014,
4453 .enable_reg = 0x52008,
4454 .enable_mask = BIT(0),
4455 .hw.init = &(const struct clk_init_data) {
4456 .name = "gcc_pcie_4_slv_axi_clk",
4457 .ops = &clk_branch2_ops,
4462 static struct clk_branch gcc_pcie_4_slv_q2a_axi_clk = {
4463 .halt_reg = 0x6b010,
4464 .halt_check = BRANCH_HALT_VOTED,
4466 .enable_reg = 0x52008,
4467 .enable_mask = BIT(5),
4468 .hw.init = &(const struct clk_init_data) {
4469 .name = "gcc_pcie_4_slv_q2a_axi_clk",
4470 .ops = &clk_branch2_ops,
4475 static struct clk_branch gcc_pcie_rscc_ahb_clk = {
4476 .halt_reg = 0xae008,
4477 .halt_check = BRANCH_HALT_VOTED,
4478 .hwcg_reg = 0xae008,
4481 .enable_reg = 0x52020,
4482 .enable_mask = BIT(17),
4483 .hw.init = &(const struct clk_init_data) {
4484 .name = "gcc_pcie_rscc_ahb_clk",
4485 .ops = &clk_branch2_ops,
4490 static struct clk_branch gcc_pcie_rscc_xo_clk = {
4491 .halt_reg = 0xae004,
4492 .halt_check = BRANCH_HALT_VOTED,
4494 .enable_reg = 0x52020,
4495 .enable_mask = BIT(16),
4496 .hw.init = &(const struct clk_init_data) {
4497 .name = "gcc_pcie_rscc_xo_clk",
4498 .parent_hws = (const struct clk_hw*[]){
4499 &gcc_pcie_rscc_xo_clk_src.clkr.hw,
4502 .flags = CLK_SET_RATE_PARENT,
4503 .ops = &clk_branch2_ops,
4508 static struct clk_branch gcc_pcie_throttle_cfg_clk = {
4509 .halt_reg = 0xa6028,
4510 .halt_check = BRANCH_HALT_VOTED,
4512 .enable_reg = 0x52020,
4513 .enable_mask = BIT(15),
4514 .hw.init = &(const struct clk_init_data) {
4515 .name = "gcc_pcie_throttle_cfg_clk",
4516 .ops = &clk_branch2_ops,
4521 static struct clk_branch gcc_pdm2_clk = {
4522 .halt_reg = 0x3300c,
4523 .halt_check = BRANCH_HALT,
4525 .enable_reg = 0x3300c,
4526 .enable_mask = BIT(0),
4527 .hw.init = &(const struct clk_init_data) {
4528 .name = "gcc_pdm2_clk",
4529 .parent_hws = (const struct clk_hw*[]){
4530 &gcc_pdm2_clk_src.clkr.hw,
4533 .flags = CLK_SET_RATE_PARENT,
4534 .ops = &clk_branch2_ops,
4539 static struct clk_branch gcc_pdm_ahb_clk = {
4540 .halt_reg = 0x33004,
4541 .halt_check = BRANCH_HALT_VOTED,
4542 .hwcg_reg = 0x33004,
4545 .enable_reg = 0x33004,
4546 .enable_mask = BIT(0),
4547 .hw.init = &(const struct clk_init_data) {
4548 .name = "gcc_pdm_ahb_clk",
4549 .ops = &clk_branch2_ops,
4554 static struct clk_branch gcc_pdm_xo4_clk = {
4555 .halt_reg = 0x33008,
4556 .halt_check = BRANCH_HALT,
4558 .enable_reg = 0x33008,
4559 .enable_mask = BIT(0),
4560 .hw.init = &(const struct clk_init_data) {
4561 .name = "gcc_pdm_xo4_clk",
4562 .ops = &clk_branch2_ops,
4567 static struct clk_branch gcc_qmip_camera_nrt_ahb_clk = {
4568 .halt_reg = 0x26008,
4569 .halt_check = BRANCH_HALT_VOTED,
4570 .hwcg_reg = 0x26008,
4573 .enable_reg = 0x26008,
4574 .enable_mask = BIT(0),
4575 .hw.init = &(const struct clk_init_data) {
4576 .name = "gcc_qmip_camera_nrt_ahb_clk",
4577 .ops = &clk_branch2_ops,
4582 static struct clk_branch gcc_qmip_camera_rt_ahb_clk = {
4583 .halt_reg = 0x2600c,
4584 .halt_check = BRANCH_HALT_VOTED,
4585 .hwcg_reg = 0x2600c,
4588 .enable_reg = 0x2600c,
4589 .enable_mask = BIT(0),
4590 .hw.init = &(const struct clk_init_data) {
4591 .name = "gcc_qmip_camera_rt_ahb_clk",
4592 .ops = &clk_branch2_ops,
4597 static struct clk_branch gcc_qmip_disp1_ahb_clk = {
4598 .halt_reg = 0xbb008,
4599 .halt_check = BRANCH_HALT_VOTED,
4600 .hwcg_reg = 0xbb008,
4603 .enable_reg = 0xbb008,
4604 .enable_mask = BIT(0),
4605 .hw.init = &(const struct clk_init_data) {
4606 .name = "gcc_qmip_disp1_ahb_clk",
4607 .ops = &clk_branch2_ops,
4612 static struct clk_branch gcc_qmip_disp1_rot_ahb_clk = {
4613 .halt_reg = 0xbb00c,
4614 .halt_check = BRANCH_HALT_VOTED,
4615 .hwcg_reg = 0xbb00c,
4618 .enable_reg = 0xbb00c,
4619 .enable_mask = BIT(0),
4620 .hw.init = &(const struct clk_init_data) {
4621 .name = "gcc_qmip_disp1_rot_ahb_clk",
4622 .ops = &clk_branch2_ops,
4627 static struct clk_branch gcc_qmip_disp_ahb_clk = {
4628 .halt_reg = 0x27008,
4629 .halt_check = BRANCH_HALT_VOTED,
4630 .hwcg_reg = 0x27008,
4633 .enable_reg = 0x27008,
4634 .enable_mask = BIT(0),
4635 .hw.init = &(const struct clk_init_data) {
4636 .name = "gcc_qmip_disp_ahb_clk",
4637 .ops = &clk_branch2_ops,
4642 static struct clk_branch gcc_qmip_disp_rot_ahb_clk = {
4643 .halt_reg = 0x2700c,
4644 .halt_check = BRANCH_HALT_VOTED,
4645 .hwcg_reg = 0x2700c,
4648 .enable_reg = 0x2700c,
4649 .enable_mask = BIT(0),
4650 .hw.init = &(const struct clk_init_data) {
4651 .name = "gcc_qmip_disp_rot_ahb_clk",
4652 .ops = &clk_branch2_ops,
4657 static struct clk_branch gcc_qmip_video_cvp_ahb_clk = {
4658 .halt_reg = 0x28008,
4659 .halt_check = BRANCH_HALT_VOTED,
4660 .hwcg_reg = 0x28008,
4663 .enable_reg = 0x28008,
4664 .enable_mask = BIT(0),
4665 .hw.init = &(const struct clk_init_data) {
4666 .name = "gcc_qmip_video_cvp_ahb_clk",
4667 .ops = &clk_branch2_ops,
4672 static struct clk_branch gcc_qmip_video_vcodec_ahb_clk = {
4673 .halt_reg = 0x2800c,
4674 .halt_check = BRANCH_HALT_VOTED,
4675 .hwcg_reg = 0x2800c,
4678 .enable_reg = 0x2800c,
4679 .enable_mask = BIT(0),
4680 .hw.init = &(const struct clk_init_data) {
4681 .name = "gcc_qmip_video_vcodec_ahb_clk",
4682 .ops = &clk_branch2_ops,
4687 static struct clk_branch gcc_qupv3_wrap0_core_2x_clk = {
4688 .halt_reg = 0x17014,
4689 .halt_check = BRANCH_HALT_VOTED,
4691 .enable_reg = 0x52008,
4692 .enable_mask = BIT(9),
4693 .hw.init = &(const struct clk_init_data) {
4694 .name = "gcc_qupv3_wrap0_core_2x_clk",
4695 .ops = &clk_branch2_ops,
4700 static struct clk_branch gcc_qupv3_wrap0_core_clk = {
4701 .halt_reg = 0x1700c,
4702 .halt_check = BRANCH_HALT_VOTED,
4704 .enable_reg = 0x52008,
4705 .enable_mask = BIT(8),
4706 .hw.init = &(const struct clk_init_data) {
4707 .name = "gcc_qupv3_wrap0_core_clk",
4708 .ops = &clk_branch2_ops,
4713 static struct clk_branch gcc_qupv3_wrap0_qspi0_clk = {
4714 .halt_reg = 0x17ac4,
4715 .halt_check = BRANCH_HALT_VOTED,
4717 .enable_reg = 0x52020,
4718 .enable_mask = BIT(0),
4719 .hw.init = &(const struct clk_init_data) {
4720 .name = "gcc_qupv3_wrap0_qspi0_clk",
4721 .parent_hws = (const struct clk_hw*[]){
4722 &gcc_qupv3_wrap0_s4_clk_src.clkr.hw,
4725 .flags = CLK_SET_RATE_PARENT,
4726 .ops = &clk_branch2_ops,
4731 static struct clk_branch gcc_qupv3_wrap0_s0_clk = {
4732 .halt_reg = 0x17144,
4733 .halt_check = BRANCH_HALT_VOTED,
4735 .enable_reg = 0x52008,
4736 .enable_mask = BIT(10),
4737 .hw.init = &(const struct clk_init_data) {
4738 .name = "gcc_qupv3_wrap0_s0_clk",
4739 .parent_hws = (const struct clk_hw*[]){
4740 &gcc_qupv3_wrap0_s0_clk_src.clkr.hw,
4743 .flags = CLK_SET_RATE_PARENT,
4744 .ops = &clk_branch2_ops,
4749 static struct clk_branch gcc_qupv3_wrap0_s1_clk = {
4750 .halt_reg = 0x17274,
4751 .halt_check = BRANCH_HALT_VOTED,
4753 .enable_reg = 0x52008,
4754 .enable_mask = BIT(11),
4755 .hw.init = &(const struct clk_init_data) {
4756 .name = "gcc_qupv3_wrap0_s1_clk",
4757 .parent_hws = (const struct clk_hw*[]){
4758 &gcc_qupv3_wrap0_s1_clk_src.clkr.hw,
4761 .flags = CLK_SET_RATE_PARENT,
4762 .ops = &clk_branch2_ops,
4767 static struct clk_branch gcc_qupv3_wrap0_s2_clk = {
4768 .halt_reg = 0x173a4,
4769 .halt_check = BRANCH_HALT_VOTED,
4771 .enable_reg = 0x52008,
4772 .enable_mask = BIT(12),
4773 .hw.init = &(const struct clk_init_data) {
4774 .name = "gcc_qupv3_wrap0_s2_clk",
4775 .parent_hws = (const struct clk_hw*[]){
4776 &gcc_qupv3_wrap0_s2_clk_src.clkr.hw,
4779 .flags = CLK_SET_RATE_PARENT,
4780 .ops = &clk_branch2_ops,
4785 static struct clk_branch gcc_qupv3_wrap0_s3_clk = {
4786 .halt_reg = 0x174d4,
4787 .halt_check = BRANCH_HALT_VOTED,
4789 .enable_reg = 0x52008,
4790 .enable_mask = BIT(13),
4791 .hw.init = &(const struct clk_init_data) {
4792 .name = "gcc_qupv3_wrap0_s3_clk",
4793 .parent_hws = (const struct clk_hw*[]){
4794 &gcc_qupv3_wrap0_s3_clk_src.clkr.hw,
4797 .flags = CLK_SET_RATE_PARENT,
4798 .ops = &clk_branch2_ops,
4803 static struct clk_branch gcc_qupv3_wrap0_s4_clk = {
4804 .halt_reg = 0x17604,
4805 .halt_check = BRANCH_HALT_VOTED,
4807 .enable_reg = 0x52008,
4808 .enable_mask = BIT(14),
4809 .hw.init = &(const struct clk_init_data) {
4810 .name = "gcc_qupv3_wrap0_s4_clk",
4811 .parent_hws = (const struct clk_hw*[]){
4812 &gcc_qupv3_wrap0_s4_div_clk_src.clkr.hw,
4815 .flags = CLK_SET_RATE_PARENT,
4816 .ops = &clk_branch2_ops,
4821 static struct clk_branch gcc_qupv3_wrap0_s5_clk = {
4822 .halt_reg = 0x17734,
4823 .halt_check = BRANCH_HALT_VOTED,
4825 .enable_reg = 0x52008,
4826 .enable_mask = BIT(15),
4827 .hw.init = &(const struct clk_init_data) {
4828 .name = "gcc_qupv3_wrap0_s5_clk",
4829 .parent_hws = (const struct clk_hw*[]){
4830 &gcc_qupv3_wrap0_s5_clk_src.clkr.hw,
4833 .flags = CLK_SET_RATE_PARENT,
4834 .ops = &clk_branch2_ops,
4839 static struct clk_branch gcc_qupv3_wrap0_s6_clk = {
4840 .halt_reg = 0x17864,
4841 .halt_check = BRANCH_HALT_VOTED,
4843 .enable_reg = 0x52008,
4844 .enable_mask = BIT(16),
4845 .hw.init = &(const struct clk_init_data) {
4846 .name = "gcc_qupv3_wrap0_s6_clk",
4847 .parent_hws = (const struct clk_hw*[]){
4848 &gcc_qupv3_wrap0_s6_clk_src.clkr.hw,
4851 .flags = CLK_SET_RATE_PARENT,
4852 .ops = &clk_branch2_ops,
4857 static struct clk_branch gcc_qupv3_wrap0_s7_clk = {
4858 .halt_reg = 0x17994,
4859 .halt_check = BRANCH_HALT_VOTED,
4861 .enable_reg = 0x52008,
4862 .enable_mask = BIT(17),
4863 .hw.init = &(const struct clk_init_data) {
4864 .name = "gcc_qupv3_wrap0_s7_clk",
4865 .parent_hws = (const struct clk_hw*[]){
4866 &gcc_qupv3_wrap0_s7_clk_src.clkr.hw,
4869 .flags = CLK_SET_RATE_PARENT,
4870 .ops = &clk_branch2_ops,
4875 static struct clk_branch gcc_qupv3_wrap1_core_2x_clk = {
4876 .halt_reg = 0x18014,
4877 .halt_check = BRANCH_HALT_VOTED,
4879 .enable_reg = 0x52008,
4880 .enable_mask = BIT(18),
4881 .hw.init = &(const struct clk_init_data) {
4882 .name = "gcc_qupv3_wrap1_core_2x_clk",
4883 .ops = &clk_branch2_ops,
4888 static struct clk_branch gcc_qupv3_wrap1_core_clk = {
4889 .halt_reg = 0x1800c,
4890 .halt_check = BRANCH_HALT_VOTED,
4892 .enable_reg = 0x52008,
4893 .enable_mask = BIT(19),
4894 .hw.init = &(const struct clk_init_data) {
4895 .name = "gcc_qupv3_wrap1_core_clk",
4896 .ops = &clk_branch2_ops,
4901 static struct clk_branch gcc_qupv3_wrap1_qspi0_clk = {
4902 .halt_reg = 0x18ac4,
4903 .halt_check = BRANCH_HALT_VOTED,
4905 .enable_reg = 0x52020,
4906 .enable_mask = BIT(2),
4907 .hw.init = &(const struct clk_init_data) {
4908 .name = "gcc_qupv3_wrap1_qspi0_clk",
4909 .parent_hws = (const struct clk_hw*[]){
4910 &gcc_qupv3_wrap1_s4_clk_src.clkr.hw,
4913 .flags = CLK_SET_RATE_PARENT,
4914 .ops = &clk_branch2_ops,
4919 static struct clk_branch gcc_qupv3_wrap1_s0_clk = {
4920 .halt_reg = 0x18144,
4921 .halt_check = BRANCH_HALT_VOTED,
4923 .enable_reg = 0x52008,
4924 .enable_mask = BIT(22),
4925 .hw.init = &(const struct clk_init_data) {
4926 .name = "gcc_qupv3_wrap1_s0_clk",
4927 .parent_hws = (const struct clk_hw*[]){
4928 &gcc_qupv3_wrap1_s0_clk_src.clkr.hw,
4931 .flags = CLK_SET_RATE_PARENT,
4932 .ops = &clk_branch2_ops,
4937 static struct clk_branch gcc_qupv3_wrap1_s1_clk = {
4938 .halt_reg = 0x18274,
4939 .halt_check = BRANCH_HALT_VOTED,
4941 .enable_reg = 0x52008,
4942 .enable_mask = BIT(23),
4943 .hw.init = &(const struct clk_init_data) {
4944 .name = "gcc_qupv3_wrap1_s1_clk",
4945 .parent_hws = (const struct clk_hw*[]){
4946 &gcc_qupv3_wrap1_s1_clk_src.clkr.hw,
4949 .flags = CLK_SET_RATE_PARENT,
4950 .ops = &clk_branch2_ops,
4955 static struct clk_branch gcc_qupv3_wrap1_s2_clk = {
4956 .halt_reg = 0x183a4,
4957 .halt_check = BRANCH_HALT_VOTED,
4959 .enable_reg = 0x52008,
4960 .enable_mask = BIT(24),
4961 .hw.init = &(const struct clk_init_data) {
4962 .name = "gcc_qupv3_wrap1_s2_clk",
4963 .parent_hws = (const struct clk_hw*[]){
4964 &gcc_qupv3_wrap1_s2_clk_src.clkr.hw,
4967 .flags = CLK_SET_RATE_PARENT,
4968 .ops = &clk_branch2_ops,
4973 static struct clk_branch gcc_qupv3_wrap1_s3_clk = {
4974 .halt_reg = 0x184d4,
4975 .halt_check = BRANCH_HALT_VOTED,
4977 .enable_reg = 0x52008,
4978 .enable_mask = BIT(25),
4979 .hw.init = &(const struct clk_init_data) {
4980 .name = "gcc_qupv3_wrap1_s3_clk",
4981 .parent_hws = (const struct clk_hw*[]){
4982 &gcc_qupv3_wrap1_s3_clk_src.clkr.hw,
4985 .flags = CLK_SET_RATE_PARENT,
4986 .ops = &clk_branch2_ops,
4991 static struct clk_branch gcc_qupv3_wrap1_s4_clk = {
4992 .halt_reg = 0x18604,
4993 .halt_check = BRANCH_HALT_VOTED,
4995 .enable_reg = 0x52008,
4996 .enable_mask = BIT(26),
4997 .hw.init = &(const struct clk_init_data) {
4998 .name = "gcc_qupv3_wrap1_s4_clk",
4999 .parent_hws = (const struct clk_hw*[]){
5000 &gcc_qupv3_wrap1_s4_div_clk_src.clkr.hw,
5003 .flags = CLK_SET_RATE_PARENT,
5004 .ops = &clk_branch2_ops,
5009 static struct clk_branch gcc_qupv3_wrap1_s5_clk = {
5010 .halt_reg = 0x18734,
5011 .halt_check = BRANCH_HALT_VOTED,
5013 .enable_reg = 0x52008,
5014 .enable_mask = BIT(27),
5015 .hw.init = &(const struct clk_init_data) {
5016 .name = "gcc_qupv3_wrap1_s5_clk",
5017 .parent_hws = (const struct clk_hw*[]){
5018 &gcc_qupv3_wrap1_s5_clk_src.clkr.hw,
5021 .flags = CLK_SET_RATE_PARENT,
5022 .ops = &clk_branch2_ops,
5027 static struct clk_branch gcc_qupv3_wrap1_s6_clk = {
5028 .halt_reg = 0x18864,
5029 .halt_check = BRANCH_HALT_VOTED,
5031 .enable_reg = 0x52018,
5032 .enable_mask = BIT(27),
5033 .hw.init = &(const struct clk_init_data) {
5034 .name = "gcc_qupv3_wrap1_s6_clk",
5035 .parent_hws = (const struct clk_hw*[]){
5036 &gcc_qupv3_wrap1_s6_clk_src.clkr.hw,
5039 .flags = CLK_SET_RATE_PARENT,
5040 .ops = &clk_branch2_ops,
5045 static struct clk_branch gcc_qupv3_wrap1_s7_clk = {
5046 .halt_reg = 0x18994,
5047 .halt_check = BRANCH_HALT_VOTED,
5049 .enable_reg = 0x52018,
5050 .enable_mask = BIT(28),
5051 .hw.init = &(const struct clk_init_data) {
5052 .name = "gcc_qupv3_wrap1_s7_clk",
5053 .parent_hws = (const struct clk_hw*[]){
5054 &gcc_qupv3_wrap1_s7_clk_src.clkr.hw,
5057 .flags = CLK_SET_RATE_PARENT,
5058 .ops = &clk_branch2_ops,
5063 static struct clk_branch gcc_qupv3_wrap2_core_2x_clk = {
5064 .halt_reg = 0x1e014,
5065 .halt_check = BRANCH_HALT_VOTED,
5067 .enable_reg = 0x52010,
5068 .enable_mask = BIT(3),
5069 .hw.init = &(const struct clk_init_data) {
5070 .name = "gcc_qupv3_wrap2_core_2x_clk",
5071 .ops = &clk_branch2_ops,
5076 static struct clk_branch gcc_qupv3_wrap2_core_clk = {
5077 .halt_reg = 0x1e00c,
5078 .halt_check = BRANCH_HALT_VOTED,
5080 .enable_reg = 0x52010,
5081 .enable_mask = BIT(0),
5082 .hw.init = &(const struct clk_init_data) {
5083 .name = "gcc_qupv3_wrap2_core_clk",
5084 .ops = &clk_branch2_ops,
5089 static struct clk_branch gcc_qupv3_wrap2_qspi0_clk = {
5090 .halt_reg = 0x1eac4,
5091 .halt_check = BRANCH_HALT_VOTED,
5093 .enable_reg = 0x52020,
5094 .enable_mask = BIT(4),
5095 .hw.init = &(const struct clk_init_data) {
5096 .name = "gcc_qupv3_wrap2_qspi0_clk",
5097 .parent_hws = (const struct clk_hw*[]){
5098 &gcc_qupv3_wrap2_s4_clk_src.clkr.hw,
5101 .flags = CLK_SET_RATE_PARENT,
5102 .ops = &clk_branch2_ops,
5107 static struct clk_branch gcc_qupv3_wrap2_s0_clk = {
5108 .halt_reg = 0x1e144,
5109 .halt_check = BRANCH_HALT_VOTED,
5111 .enable_reg = 0x52010,
5112 .enable_mask = BIT(4),
5113 .hw.init = &(const struct clk_init_data) {
5114 .name = "gcc_qupv3_wrap2_s0_clk",
5115 .parent_hws = (const struct clk_hw*[]){
5116 &gcc_qupv3_wrap2_s0_clk_src.clkr.hw,
5119 .flags = CLK_SET_RATE_PARENT,
5120 .ops = &clk_branch2_ops,
5125 static struct clk_branch gcc_qupv3_wrap2_s1_clk = {
5126 .halt_reg = 0x1e274,
5127 .halt_check = BRANCH_HALT_VOTED,
5129 .enable_reg = 0x52010,
5130 .enable_mask = BIT(5),
5131 .hw.init = &(const struct clk_init_data) {
5132 .name = "gcc_qupv3_wrap2_s1_clk",
5133 .parent_hws = (const struct clk_hw*[]){
5134 &gcc_qupv3_wrap2_s1_clk_src.clkr.hw,
5137 .flags = CLK_SET_RATE_PARENT,
5138 .ops = &clk_branch2_ops,
5143 static struct clk_branch gcc_qupv3_wrap2_s2_clk = {
5144 .halt_reg = 0x1e3a4,
5145 .halt_check = BRANCH_HALT_VOTED,
5147 .enable_reg = 0x52010,
5148 .enable_mask = BIT(6),
5149 .hw.init = &(const struct clk_init_data) {
5150 .name = "gcc_qupv3_wrap2_s2_clk",
5151 .parent_hws = (const struct clk_hw*[]){
5152 &gcc_qupv3_wrap2_s2_clk_src.clkr.hw,
5155 .flags = CLK_SET_RATE_PARENT,
5156 .ops = &clk_branch2_ops,
5161 static struct clk_branch gcc_qupv3_wrap2_s3_clk = {
5162 .halt_reg = 0x1e4d4,
5163 .halt_check = BRANCH_HALT_VOTED,
5165 .enable_reg = 0x52010,
5166 .enable_mask = BIT(7),
5167 .hw.init = &(const struct clk_init_data) {
5168 .name = "gcc_qupv3_wrap2_s3_clk",
5169 .parent_hws = (const struct clk_hw*[]){
5170 &gcc_qupv3_wrap2_s3_clk_src.clkr.hw,
5173 .flags = CLK_SET_RATE_PARENT,
5174 .ops = &clk_branch2_ops,
5179 static struct clk_branch gcc_qupv3_wrap2_s4_clk = {
5180 .halt_reg = 0x1e604,
5181 .halt_check = BRANCH_HALT_VOTED,
5183 .enable_reg = 0x52010,
5184 .enable_mask = BIT(8),
5185 .hw.init = &(const struct clk_init_data) {
5186 .name = "gcc_qupv3_wrap2_s4_clk",
5187 .parent_hws = (const struct clk_hw*[]){
5188 &gcc_qupv3_wrap2_s4_div_clk_src.clkr.hw,
5191 .flags = CLK_SET_RATE_PARENT,
5192 .ops = &clk_branch2_ops,
5197 static struct clk_branch gcc_qupv3_wrap2_s5_clk = {
5198 .halt_reg = 0x1e734,
5199 .halt_check = BRANCH_HALT_VOTED,
5201 .enable_reg = 0x52010,
5202 .enable_mask = BIT(9),
5203 .hw.init = &(const struct clk_init_data) {
5204 .name = "gcc_qupv3_wrap2_s5_clk",
5205 .parent_hws = (const struct clk_hw*[]){
5206 &gcc_qupv3_wrap2_s5_clk_src.clkr.hw,
5209 .flags = CLK_SET_RATE_PARENT,
5210 .ops = &clk_branch2_ops,
5215 static struct clk_branch gcc_qupv3_wrap2_s6_clk = {
5216 .halt_reg = 0x1e864,
5217 .halt_check = BRANCH_HALT_VOTED,
5219 .enable_reg = 0x52018,
5220 .enable_mask = BIT(29),
5221 .hw.init = &(const struct clk_init_data) {
5222 .name = "gcc_qupv3_wrap2_s6_clk",
5223 .parent_hws = (const struct clk_hw*[]){
5224 &gcc_qupv3_wrap2_s6_clk_src.clkr.hw,
5227 .flags = CLK_SET_RATE_PARENT,
5228 .ops = &clk_branch2_ops,
5233 static struct clk_branch gcc_qupv3_wrap2_s7_clk = {
5234 .halt_reg = 0x1e994,
5235 .halt_check = BRANCH_HALT_VOTED,
5237 .enable_reg = 0x52018,
5238 .enable_mask = BIT(30),
5239 .hw.init = &(const struct clk_init_data) {
5240 .name = "gcc_qupv3_wrap2_s7_clk",
5241 .parent_hws = (const struct clk_hw*[]){
5242 &gcc_qupv3_wrap2_s7_clk_src.clkr.hw,
5245 .flags = CLK_SET_RATE_PARENT,
5246 .ops = &clk_branch2_ops,
5251 static struct clk_branch gcc_qupv3_wrap_0_m_ahb_clk = {
5252 .halt_reg = 0x17004,
5253 .halt_check = BRANCH_HALT_VOTED,
5254 .hwcg_reg = 0x17004,
5257 .enable_reg = 0x52008,
5258 .enable_mask = BIT(6),
5259 .hw.init = &(const struct clk_init_data) {
5260 .name = "gcc_qupv3_wrap_0_m_ahb_clk",
5261 .ops = &clk_branch2_ops,
5266 static struct clk_branch gcc_qupv3_wrap_0_s_ahb_clk = {
5267 .halt_reg = 0x17008,
5268 .halt_check = BRANCH_HALT_VOTED,
5269 .hwcg_reg = 0x17008,
5272 .enable_reg = 0x52008,
5273 .enable_mask = BIT(7),
5274 .hw.init = &(const struct clk_init_data) {
5275 .name = "gcc_qupv3_wrap_0_s_ahb_clk",
5276 .ops = &clk_branch2_ops,
5281 static struct clk_branch gcc_qupv3_wrap_1_m_ahb_clk = {
5282 .halt_reg = 0x18004,
5283 .halt_check = BRANCH_HALT_VOTED,
5284 .hwcg_reg = 0x18004,
5287 .enable_reg = 0x52008,
5288 .enable_mask = BIT(20),
5289 .hw.init = &(const struct clk_init_data) {
5290 .name = "gcc_qupv3_wrap_1_m_ahb_clk",
5291 .ops = &clk_branch2_ops,
5296 static struct clk_branch gcc_qupv3_wrap_1_s_ahb_clk = {
5297 .halt_reg = 0x18008,
5298 .halt_check = BRANCH_HALT_VOTED,
5299 .hwcg_reg = 0x18008,
5302 .enable_reg = 0x52008,
5303 .enable_mask = BIT(21),
5304 .hw.init = &(const struct clk_init_data) {
5305 .name = "gcc_qupv3_wrap_1_s_ahb_clk",
5306 .ops = &clk_branch2_ops,
5311 static struct clk_branch gcc_qupv3_wrap_2_m_ahb_clk = {
5312 .halt_reg = 0x1e004,
5313 .halt_check = BRANCH_HALT_VOTED,
5314 .hwcg_reg = 0x1e004,
5317 .enable_reg = 0x52010,
5318 .enable_mask = BIT(2),
5319 .hw.init = &(const struct clk_init_data) {
5320 .name = "gcc_qupv3_wrap_2_m_ahb_clk",
5321 .ops = &clk_branch2_ops,
5326 static struct clk_branch gcc_qupv3_wrap_2_s_ahb_clk = {
5327 .halt_reg = 0x1e008,
5328 .halt_check = BRANCH_HALT_VOTED,
5329 .hwcg_reg = 0x1e008,
5332 .enable_reg = 0x52010,
5333 .enable_mask = BIT(1),
5334 .hw.init = &(const struct clk_init_data) {
5335 .name = "gcc_qupv3_wrap_2_s_ahb_clk",
5336 .ops = &clk_branch2_ops,
5341 static struct clk_branch gcc_sdcc2_ahb_clk = {
5342 .halt_reg = 0x14008,
5343 .halt_check = BRANCH_HALT,
5345 .enable_reg = 0x14008,
5346 .enable_mask = BIT(0),
5347 .hw.init = &(const struct clk_init_data) {
5348 .name = "gcc_sdcc2_ahb_clk",
5349 .ops = &clk_branch2_ops,
5354 static struct clk_branch gcc_sdcc2_apps_clk = {
5355 .halt_reg = 0x14004,
5356 .halt_check = BRANCH_HALT,
5358 .enable_reg = 0x14004,
5359 .enable_mask = BIT(0),
5360 .hw.init = &(const struct clk_init_data) {
5361 .name = "gcc_sdcc2_apps_clk",
5362 .parent_hws = (const struct clk_hw*[]){
5363 &gcc_sdcc2_apps_clk_src.clkr.hw,
5366 .flags = CLK_SET_RATE_PARENT,
5367 .ops = &clk_branch2_ops,
5372 static struct clk_branch gcc_sdcc4_ahb_clk = {
5373 .halt_reg = 0x16008,
5374 .halt_check = BRANCH_HALT,
5376 .enable_reg = 0x16008,
5377 .enable_mask = BIT(0),
5378 .hw.init = &(const struct clk_init_data) {
5379 .name = "gcc_sdcc4_ahb_clk",
5380 .ops = &clk_branch2_ops,
5385 static struct clk_branch gcc_sdcc4_apps_clk = {
5386 .halt_reg = 0x16004,
5387 .halt_check = BRANCH_HALT,
5389 .enable_reg = 0x16004,
5390 .enable_mask = BIT(0),
5391 .hw.init = &(const struct clk_init_data) {
5392 .name = "gcc_sdcc4_apps_clk",
5393 .parent_hws = (const struct clk_hw*[]){
5394 &gcc_sdcc4_apps_clk_src.clkr.hw,
5397 .flags = CLK_SET_RATE_PARENT,
5398 .ops = &clk_branch2_ops,
5403 static struct clk_branch gcc_sys_noc_usb_axi_clk = {
5404 .halt_reg = 0x5d000,
5405 .halt_check = BRANCH_HALT_VOTED,
5406 .hwcg_reg = 0x5d000,
5409 .enable_reg = 0x5d000,
5410 .enable_mask = BIT(0),
5411 .hw.init = &(const struct clk_init_data) {
5412 .name = "gcc_sys_noc_usb_axi_clk",
5413 .ops = &clk_branch2_ops,
5418 static struct clk_branch gcc_ufs_1_card_clkref_clk = {
5419 .halt_reg = 0x8c000,
5420 .halt_check = BRANCH_HALT,
5422 .enable_reg = 0x8c000,
5423 .enable_mask = BIT(0),
5424 .hw.init = &(const struct clk_init_data) {
5425 .name = "gcc_ufs_1_card_clkref_clk",
5426 .ops = &clk_branch2_ops,
5431 static struct clk_branch gcc_ufs_card_ahb_clk = {
5432 .halt_reg = 0x75018,
5433 .halt_check = BRANCH_HALT_VOTED,
5434 .hwcg_reg = 0x75018,
5437 .enable_reg = 0x75018,
5438 .enable_mask = BIT(0),
5439 .hw.init = &(const struct clk_init_data) {
5440 .name = "gcc_ufs_card_ahb_clk",
5441 .ops = &clk_branch2_ops,
5446 static struct clk_branch gcc_ufs_card_axi_clk = {
5447 .halt_reg = 0x75010,
5448 .halt_check = BRANCH_HALT_VOTED,
5449 .hwcg_reg = 0x75010,
5452 .enable_reg = 0x75010,
5453 .enable_mask = BIT(0),
5454 .hw.init = &(const struct clk_init_data) {
5455 .name = "gcc_ufs_card_axi_clk",
5456 .parent_hws = (const struct clk_hw*[]){
5457 &gcc_ufs_card_axi_clk_src.clkr.hw,
5460 .flags = CLK_SET_RATE_PARENT,
5461 .ops = &clk_branch2_ops,
5466 static struct clk_branch gcc_ufs_card_axi_hw_ctl_clk = {
5467 .halt_reg = 0x75010,
5468 .halt_check = BRANCH_HALT_VOTED,
5469 .hwcg_reg = 0x75010,
5472 .enable_reg = 0x75010,
5473 .enable_mask = BIT(1),
5474 .hw.init = &(const struct clk_init_data) {
5475 .name = "gcc_ufs_card_axi_hw_ctl_clk",
5476 .parent_hws = (const struct clk_hw*[]){
5477 &gcc_ufs_card_axi_clk_src.clkr.hw,
5480 .flags = CLK_SET_RATE_PARENT,
5481 .ops = &clk_branch2_ops,
5486 static struct clk_branch gcc_ufs_card_clkref_clk = {
5487 .halt_reg = 0x8c054,
5488 .halt_check = BRANCH_HALT,
5490 .enable_reg = 0x8c054,
5491 .enable_mask = BIT(0),
5492 .hw.init = &(const struct clk_init_data) {
5493 .name = "gcc_ufs_card_clkref_clk",
5494 .ops = &clk_branch2_ops,
5499 static struct clk_branch gcc_ufs_card_ice_core_clk = {
5500 .halt_reg = 0x75064,
5501 .halt_check = BRANCH_HALT_VOTED,
5502 .hwcg_reg = 0x75064,
5505 .enable_reg = 0x75064,
5506 .enable_mask = BIT(0),
5507 .hw.init = &(const struct clk_init_data) {
5508 .name = "gcc_ufs_card_ice_core_clk",
5509 .parent_hws = (const struct clk_hw*[]){
5510 &gcc_ufs_card_ice_core_clk_src.clkr.hw,
5513 .flags = CLK_SET_RATE_PARENT,
5514 .ops = &clk_branch2_ops,
5519 static struct clk_branch gcc_ufs_card_ice_core_hw_ctl_clk = {
5520 .halt_reg = 0x75064,
5521 .halt_check = BRANCH_HALT_VOTED,
5522 .hwcg_reg = 0x75064,
5525 .enable_reg = 0x75064,
5526 .enable_mask = BIT(1),
5527 .hw.init = &(const struct clk_init_data) {
5528 .name = "gcc_ufs_card_ice_core_hw_ctl_clk",
5529 .parent_hws = (const struct clk_hw*[]){
5530 &gcc_ufs_card_ice_core_clk_src.clkr.hw,
5533 .flags = CLK_SET_RATE_PARENT,
5534 .ops = &clk_branch2_ops,
5539 static struct clk_branch gcc_ufs_card_phy_aux_clk = {
5540 .halt_reg = 0x7509c,
5541 .halt_check = BRANCH_HALT_VOTED,
5542 .hwcg_reg = 0x7509c,
5545 .enable_reg = 0x7509c,
5546 .enable_mask = BIT(0),
5547 .hw.init = &(const struct clk_init_data) {
5548 .name = "gcc_ufs_card_phy_aux_clk",
5549 .parent_hws = (const struct clk_hw*[]){
5550 &gcc_ufs_card_phy_aux_clk_src.clkr.hw,
5553 .flags = CLK_SET_RATE_PARENT,
5554 .ops = &clk_branch2_ops,
5559 static struct clk_branch gcc_ufs_card_phy_aux_hw_ctl_clk = {
5560 .halt_reg = 0x7509c,
5561 .halt_check = BRANCH_HALT_VOTED,
5562 .hwcg_reg = 0x7509c,
5565 .enable_reg = 0x7509c,
5566 .enable_mask = BIT(1),
5567 .hw.init = &(const struct clk_init_data) {
5568 .name = "gcc_ufs_card_phy_aux_hw_ctl_clk",
5569 .parent_hws = (const struct clk_hw*[]){
5570 &gcc_ufs_card_phy_aux_clk_src.clkr.hw,
5573 .flags = CLK_SET_RATE_PARENT,
5574 .ops = &clk_branch2_ops,
5579 static struct clk_branch gcc_ufs_card_rx_symbol_0_clk = {
5580 .halt_reg = 0x75020,
5581 .halt_check = BRANCH_HALT_DELAY,
5583 .enable_reg = 0x75020,
5584 .enable_mask = BIT(0),
5585 .hw.init = &(const struct clk_init_data) {
5586 .name = "gcc_ufs_card_rx_symbol_0_clk",
5587 .parent_hws = (const struct clk_hw*[]){
5588 &gcc_ufs_card_rx_symbol_0_clk_src.clkr.hw,
5591 .flags = CLK_SET_RATE_PARENT,
5592 .ops = &clk_branch2_ops,
5597 static struct clk_branch gcc_ufs_card_rx_symbol_1_clk = {
5598 .halt_reg = 0x750b8,
5599 .halt_check = BRANCH_HALT_DELAY,
5601 .enable_reg = 0x750b8,
5602 .enable_mask = BIT(0),
5603 .hw.init = &(const struct clk_init_data) {
5604 .name = "gcc_ufs_card_rx_symbol_1_clk",
5605 .parent_hws = (const struct clk_hw*[]){
5606 &gcc_ufs_card_rx_symbol_1_clk_src.clkr.hw,
5609 .flags = CLK_SET_RATE_PARENT,
5610 .ops = &clk_branch2_ops,
5615 static struct clk_branch gcc_ufs_card_tx_symbol_0_clk = {
5616 .halt_reg = 0x7501c,
5617 .halt_check = BRANCH_HALT_DELAY,
5619 .enable_reg = 0x7501c,
5620 .enable_mask = BIT(0),
5621 .hw.init = &(const struct clk_init_data) {
5622 .name = "gcc_ufs_card_tx_symbol_0_clk",
5623 .parent_hws = (const struct clk_hw*[]){
5624 &gcc_ufs_card_tx_symbol_0_clk_src.clkr.hw,
5627 .flags = CLK_SET_RATE_PARENT,
5628 .ops = &clk_branch2_ops,
5633 static struct clk_branch gcc_ufs_card_unipro_core_clk = {
5634 .halt_reg = 0x7505c,
5635 .halt_check = BRANCH_HALT_VOTED,
5636 .hwcg_reg = 0x7505c,
5639 .enable_reg = 0x7505c,
5640 .enable_mask = BIT(0),
5641 .hw.init = &(const struct clk_init_data) {
5642 .name = "gcc_ufs_card_unipro_core_clk",
5643 .parent_hws = (const struct clk_hw*[]){
5644 &gcc_ufs_card_unipro_core_clk_src.clkr.hw,
5647 .flags = CLK_SET_RATE_PARENT,
5648 .ops = &clk_branch2_ops,
5653 static struct clk_branch gcc_ufs_card_unipro_core_hw_ctl_clk = {
5654 .halt_reg = 0x7505c,
5655 .halt_check = BRANCH_HALT_VOTED,
5656 .hwcg_reg = 0x7505c,
5659 .enable_reg = 0x7505c,
5660 .enable_mask = BIT(1),
5661 .hw.init = &(const struct clk_init_data) {
5662 .name = "gcc_ufs_card_unipro_core_hw_ctl_clk",
5663 .parent_hws = (const struct clk_hw*[]){
5664 &gcc_ufs_card_unipro_core_clk_src.clkr.hw,
5667 .flags = CLK_SET_RATE_PARENT,
5668 .ops = &clk_branch2_ops,
5673 static struct clk_branch gcc_ufs_phy_ahb_clk = {
5674 .halt_reg = 0x77018,
5675 .halt_check = BRANCH_HALT_VOTED,
5676 .hwcg_reg = 0x77018,
5679 .enable_reg = 0x77018,
5680 .enable_mask = BIT(0),
5681 .hw.init = &(const struct clk_init_data) {
5682 .name = "gcc_ufs_phy_ahb_clk",
5683 .ops = &clk_branch2_ops,
5688 static struct clk_branch gcc_ufs_phy_axi_clk = {
5689 .halt_reg = 0x77010,
5690 .halt_check = BRANCH_HALT_VOTED,
5691 .hwcg_reg = 0x77010,
5694 .enable_reg = 0x77010,
5695 .enable_mask = BIT(0),
5696 .hw.init = &(const struct clk_init_data) {
5697 .name = "gcc_ufs_phy_axi_clk",
5698 .parent_hws = (const struct clk_hw*[]){
5699 &gcc_ufs_phy_axi_clk_src.clkr.hw,
5702 .flags = CLK_SET_RATE_PARENT,
5703 .ops = &clk_branch2_ops,
5708 static struct clk_branch gcc_ufs_phy_axi_hw_ctl_clk = {
5709 .halt_reg = 0x77010,
5710 .halt_check = BRANCH_HALT_VOTED,
5711 .hwcg_reg = 0x77010,
5714 .enable_reg = 0x77010,
5715 .enable_mask = BIT(1),
5716 .hw.init = &(const struct clk_init_data) {
5717 .name = "gcc_ufs_phy_axi_hw_ctl_clk",
5718 .parent_hws = (const struct clk_hw*[]){
5719 &gcc_ufs_phy_axi_clk_src.clkr.hw,
5722 .flags = CLK_SET_RATE_PARENT,
5723 .ops = &clk_branch2_ops,
5728 static struct clk_branch gcc_ufs_phy_ice_core_clk = {
5729 .halt_reg = 0x77064,
5730 .halt_check = BRANCH_HALT_VOTED,
5731 .hwcg_reg = 0x77064,
5734 .enable_reg = 0x77064,
5735 .enable_mask = BIT(0),
5736 .hw.init = &(const struct clk_init_data) {
5737 .name = "gcc_ufs_phy_ice_core_clk",
5738 .parent_hws = (const struct clk_hw*[]){
5739 &gcc_ufs_phy_ice_core_clk_src.clkr.hw,
5742 .flags = CLK_SET_RATE_PARENT,
5743 .ops = &clk_branch2_ops,
5748 static struct clk_branch gcc_ufs_phy_ice_core_hw_ctl_clk = {
5749 .halt_reg = 0x77064,
5750 .halt_check = BRANCH_HALT_VOTED,
5751 .hwcg_reg = 0x77064,
5754 .enable_reg = 0x77064,
5755 .enable_mask = BIT(1),
5756 .hw.init = &(const struct clk_init_data) {
5757 .name = "gcc_ufs_phy_ice_core_hw_ctl_clk",
5758 .parent_hws = (const struct clk_hw*[]){
5759 &gcc_ufs_phy_ice_core_clk_src.clkr.hw,
5762 .flags = CLK_SET_RATE_PARENT,
5763 .ops = &clk_branch2_ops,
5768 static struct clk_branch gcc_ufs_phy_phy_aux_clk = {
5769 .halt_reg = 0x7709c,
5770 .halt_check = BRANCH_HALT_VOTED,
5771 .hwcg_reg = 0x7709c,
5774 .enable_reg = 0x7709c,
5775 .enable_mask = BIT(0),
5776 .hw.init = &(const struct clk_init_data) {
5777 .name = "gcc_ufs_phy_phy_aux_clk",
5778 .parent_hws = (const struct clk_hw*[]){
5779 &gcc_ufs_phy_phy_aux_clk_src.clkr.hw,
5782 .flags = CLK_SET_RATE_PARENT,
5783 .ops = &clk_branch2_ops,
5788 static struct clk_branch gcc_ufs_phy_phy_aux_hw_ctl_clk = {
5789 .halt_reg = 0x7709c,
5790 .halt_check = BRANCH_HALT_VOTED,
5791 .hwcg_reg = 0x7709c,
5794 .enable_reg = 0x7709c,
5795 .enable_mask = BIT(1),
5796 .hw.init = &(const struct clk_init_data) {
5797 .name = "gcc_ufs_phy_phy_aux_hw_ctl_clk",
5798 .parent_hws = (const struct clk_hw*[]){
5799 &gcc_ufs_phy_phy_aux_clk_src.clkr.hw,
5802 .flags = CLK_SET_RATE_PARENT,
5803 .ops = &clk_branch2_ops,
5808 static struct clk_branch gcc_ufs_phy_rx_symbol_0_clk = {
5809 .halt_reg = 0x77020,
5810 .halt_check = BRANCH_HALT_DELAY,
5812 .enable_reg = 0x77020,
5813 .enable_mask = BIT(0),
5814 .hw.init = &(const struct clk_init_data) {
5815 .name = "gcc_ufs_phy_rx_symbol_0_clk",
5816 .parent_hws = (const struct clk_hw*[]){
5817 &gcc_ufs_phy_rx_symbol_0_clk_src.clkr.hw,
5820 .flags = CLK_SET_RATE_PARENT,
5821 .ops = &clk_branch2_ops,
5826 static struct clk_branch gcc_ufs_phy_rx_symbol_1_clk = {
5827 .halt_reg = 0x770b8,
5828 .halt_check = BRANCH_HALT_DELAY,
5830 .enable_reg = 0x770b8,
5831 .enable_mask = BIT(0),
5832 .hw.init = &(const struct clk_init_data) {
5833 .name = "gcc_ufs_phy_rx_symbol_1_clk",
5834 .parent_hws = (const struct clk_hw*[]){
5835 &gcc_ufs_phy_rx_symbol_1_clk_src.clkr.hw,
5838 .flags = CLK_SET_RATE_PARENT,
5839 .ops = &clk_branch2_ops,
5844 static struct clk_branch gcc_ufs_phy_tx_symbol_0_clk = {
5845 .halt_reg = 0x7701c,
5846 .halt_check = BRANCH_HALT_DELAY,
5848 .enable_reg = 0x7701c,
5849 .enable_mask = BIT(0),
5850 .hw.init = &(const struct clk_init_data) {
5851 .name = "gcc_ufs_phy_tx_symbol_0_clk",
5852 .parent_hws = (const struct clk_hw*[]){
5853 &gcc_ufs_phy_tx_symbol_0_clk_src.clkr.hw,
5856 .flags = CLK_SET_RATE_PARENT,
5857 .ops = &clk_branch2_ops,
5862 static struct clk_branch gcc_ufs_phy_unipro_core_clk = {
5863 .halt_reg = 0x7705c,
5864 .halt_check = BRANCH_HALT_VOTED,
5865 .hwcg_reg = 0x7705c,
5868 .enable_reg = 0x7705c,
5869 .enable_mask = BIT(0),
5870 .hw.init = &(const struct clk_init_data) {
5871 .name = "gcc_ufs_phy_unipro_core_clk",
5872 .parent_hws = (const struct clk_hw*[]){
5873 &gcc_ufs_phy_unipro_core_clk_src.clkr.hw,
5876 .flags = CLK_SET_RATE_PARENT,
5877 .ops = &clk_branch2_ops,
5882 static struct clk_branch gcc_ufs_phy_unipro_core_hw_ctl_clk = {
5883 .halt_reg = 0x7705c,
5884 .halt_check = BRANCH_HALT_VOTED,
5885 .hwcg_reg = 0x7705c,
5888 .enable_reg = 0x7705c,
5889 .enable_mask = BIT(1),
5890 .hw.init = &(const struct clk_init_data) {
5891 .name = "gcc_ufs_phy_unipro_core_hw_ctl_clk",
5892 .parent_hws = (const struct clk_hw*[]){
5893 &gcc_ufs_phy_unipro_core_clk_src.clkr.hw,
5896 .flags = CLK_SET_RATE_PARENT,
5897 .ops = &clk_branch2_ops,
5902 static struct clk_branch gcc_ufs_ref_clkref_clk = {
5903 .halt_reg = 0x8c058,
5904 .halt_check = BRANCH_HALT,
5906 .enable_reg = 0x8c058,
5907 .enable_mask = BIT(0),
5908 .hw.init = &(const struct clk_init_data) {
5909 .name = "gcc_ufs_ref_clkref_clk",
5910 .ops = &clk_branch2_ops,
5915 static struct clk_branch gcc_usb2_hs0_clkref_clk = {
5916 .halt_reg = 0x8c044,
5917 .halt_check = BRANCH_HALT,
5919 .enable_reg = 0x8c044,
5920 .enable_mask = BIT(0),
5921 .hw.init = &(const struct clk_init_data) {
5922 .name = "gcc_usb2_hs0_clkref_clk",
5923 .ops = &clk_branch2_ops,
5928 static struct clk_branch gcc_usb2_hs1_clkref_clk = {
5929 .halt_reg = 0x8c048,
5930 .halt_check = BRANCH_HALT,
5932 .enable_reg = 0x8c048,
5933 .enable_mask = BIT(0),
5934 .hw.init = &(const struct clk_init_data) {
5935 .name = "gcc_usb2_hs1_clkref_clk",
5936 .ops = &clk_branch2_ops,
5941 static struct clk_branch gcc_usb2_hs2_clkref_clk = {
5942 .halt_reg = 0x8c04c,
5943 .halt_check = BRANCH_HALT,
5945 .enable_reg = 0x8c04c,
5946 .enable_mask = BIT(0),
5947 .hw.init = &(const struct clk_init_data) {
5948 .name = "gcc_usb2_hs2_clkref_clk",
5949 .ops = &clk_branch2_ops,
5954 static struct clk_branch gcc_usb2_hs3_clkref_clk = {
5955 .halt_reg = 0x8c050,
5956 .halt_check = BRANCH_HALT,
5958 .enable_reg = 0x8c050,
5959 .enable_mask = BIT(0),
5960 .hw.init = &(const struct clk_init_data) {
5961 .name = "gcc_usb2_hs3_clkref_clk",
5962 .ops = &clk_branch2_ops,
5967 static struct clk_branch gcc_usb30_mp_master_clk = {
5968 .halt_reg = 0xab010,
5969 .halt_check = BRANCH_HALT,
5971 .enable_reg = 0xab010,
5972 .enable_mask = BIT(0),
5973 .hw.init = &(const struct clk_init_data) {
5974 .name = "gcc_usb30_mp_master_clk",
5975 .parent_hws = (const struct clk_hw*[]){
5976 &gcc_usb30_mp_master_clk_src.clkr.hw,
5979 .flags = CLK_SET_RATE_PARENT,
5980 .ops = &clk_branch2_ops,
5985 static struct clk_branch gcc_usb30_mp_mock_utmi_clk = {
5986 .halt_reg = 0xab01c,
5987 .halt_check = BRANCH_HALT,
5989 .enable_reg = 0xab01c,
5990 .enable_mask = BIT(0),
5991 .hw.init = &(const struct clk_init_data) {
5992 .name = "gcc_usb30_mp_mock_utmi_clk",
5993 .parent_hws = (const struct clk_hw*[]){
5994 &gcc_usb30_mp_mock_utmi_postdiv_clk_src.clkr.hw,
5997 .flags = CLK_SET_RATE_PARENT,
5998 .ops = &clk_branch2_ops,
6003 static struct clk_branch gcc_usb30_mp_sleep_clk = {
6004 .halt_reg = 0xab018,
6005 .halt_check = BRANCH_HALT,
6007 .enable_reg = 0xab018,
6008 .enable_mask = BIT(0),
6009 .hw.init = &(const struct clk_init_data) {
6010 .name = "gcc_usb30_mp_sleep_clk",
6011 .ops = &clk_branch2_ops,
6016 static struct clk_branch gcc_usb30_prim_master_clk = {
6018 .halt_check = BRANCH_HALT,
6020 .enable_reg = 0xf010,
6021 .enable_mask = BIT(0),
6022 .hw.init = &(const struct clk_init_data) {
6023 .name = "gcc_usb30_prim_master_clk",
6024 .parent_hws = (const struct clk_hw*[]){
6025 &gcc_usb30_prim_master_clk_src.clkr.hw,
6028 .flags = CLK_SET_RATE_PARENT,
6029 .ops = &clk_branch2_ops,
6034 static struct clk_branch gcc_usb30_prim_mock_utmi_clk = {
6036 .halt_check = BRANCH_HALT,
6038 .enable_reg = 0xf01c,
6039 .enable_mask = BIT(0),
6040 .hw.init = &(const struct clk_init_data) {
6041 .name = "gcc_usb30_prim_mock_utmi_clk",
6042 .parent_hws = (const struct clk_hw*[]){
6043 &gcc_usb30_prim_mock_utmi_postdiv_clk_src.clkr.hw,
6046 .flags = CLK_SET_RATE_PARENT,
6047 .ops = &clk_branch2_ops,
6052 static struct clk_branch gcc_usb30_prim_sleep_clk = {
6054 .halt_check = BRANCH_HALT,
6056 .enable_reg = 0xf018,
6057 .enable_mask = BIT(0),
6058 .hw.init = &(const struct clk_init_data) {
6059 .name = "gcc_usb30_prim_sleep_clk",
6060 .ops = &clk_branch2_ops,
6065 static struct clk_branch gcc_usb30_sec_master_clk = {
6066 .halt_reg = 0x10010,
6067 .halt_check = BRANCH_HALT,
6069 .enable_reg = 0x10010,
6070 .enable_mask = BIT(0),
6071 .hw.init = &(const struct clk_init_data) {
6072 .name = "gcc_usb30_sec_master_clk",
6073 .parent_hws = (const struct clk_hw*[]){
6074 &gcc_usb30_sec_master_clk_src.clkr.hw,
6077 .flags = CLK_SET_RATE_PARENT,
6078 .ops = &clk_branch2_ops,
6083 static struct clk_branch gcc_usb30_sec_mock_utmi_clk = {
6084 .halt_reg = 0x1001c,
6085 .halt_check = BRANCH_HALT,
6087 .enable_reg = 0x1001c,
6088 .enable_mask = BIT(0),
6089 .hw.init = &(const struct clk_init_data) {
6090 .name = "gcc_usb30_sec_mock_utmi_clk",
6091 .parent_hws = (const struct clk_hw*[]){
6092 &gcc_usb30_sec_mock_utmi_postdiv_clk_src.clkr.hw,
6095 .flags = CLK_SET_RATE_PARENT,
6096 .ops = &clk_branch2_ops,
6101 static struct clk_branch gcc_usb30_sec_sleep_clk = {
6102 .halt_reg = 0x10018,
6103 .halt_check = BRANCH_HALT,
6105 .enable_reg = 0x10018,
6106 .enable_mask = BIT(0),
6107 .hw.init = &(const struct clk_init_data) {
6108 .name = "gcc_usb30_sec_sleep_clk",
6109 .ops = &clk_branch2_ops,
6114 static struct clk_branch gcc_usb3_mp0_clkref_clk = {
6115 .halt_reg = 0x8c03c,
6116 .halt_check = BRANCH_HALT,
6118 .enable_reg = 0x8c03c,
6119 .enable_mask = BIT(0),
6120 .hw.init = &(const struct clk_init_data) {
6121 .name = "gcc_usb3_mp0_clkref_clk",
6122 .ops = &clk_branch2_ops,
6127 static struct clk_branch gcc_usb3_mp1_clkref_clk = {
6128 .halt_reg = 0x8c040,
6129 .halt_check = BRANCH_HALT,
6131 .enable_reg = 0x8c040,
6132 .enable_mask = BIT(0),
6133 .hw.init = &(const struct clk_init_data) {
6134 .name = "gcc_usb3_mp1_clkref_clk",
6135 .ops = &clk_branch2_ops,
6140 static struct clk_branch gcc_usb3_mp_phy_aux_clk = {
6141 .halt_reg = 0xab054,
6142 .halt_check = BRANCH_HALT,
6144 .enable_reg = 0xab054,
6145 .enable_mask = BIT(0),
6146 .hw.init = &(const struct clk_init_data) {
6147 .name = "gcc_usb3_mp_phy_aux_clk",
6148 .parent_hws = (const struct clk_hw*[]){
6149 &gcc_usb3_mp_phy_aux_clk_src.clkr.hw,
6152 .flags = CLK_SET_RATE_PARENT,
6153 .ops = &clk_branch2_ops,
6158 static struct clk_branch gcc_usb3_mp_phy_com_aux_clk = {
6159 .halt_reg = 0xab058,
6160 .halt_check = BRANCH_HALT,
6162 .enable_reg = 0xab058,
6163 .enable_mask = BIT(0),
6164 .hw.init = &(const struct clk_init_data) {
6165 .name = "gcc_usb3_mp_phy_com_aux_clk",
6166 .parent_hws = (const struct clk_hw*[]){
6167 &gcc_usb3_mp_phy_aux_clk_src.clkr.hw,
6170 .flags = CLK_SET_RATE_PARENT,
6171 .ops = &clk_branch2_ops,
6176 static struct clk_branch gcc_usb3_mp_phy_pipe_0_clk = {
6177 .halt_reg = 0xab05c,
6178 .halt_check = BRANCH_HALT_DELAY,
6180 .enable_reg = 0xab05c,
6181 .enable_mask = BIT(0),
6182 .hw.init = &(const struct clk_init_data) {
6183 .name = "gcc_usb3_mp_phy_pipe_0_clk",
6184 .parent_hws = (const struct clk_hw*[]){
6185 &gcc_usb3_mp_phy_pipe_0_clk_src.clkr.hw,
6188 .flags = CLK_SET_RATE_PARENT,
6189 .ops = &clk_branch2_ops,
6194 static struct clk_branch gcc_usb3_mp_phy_pipe_1_clk = {
6195 .halt_reg = 0xab064,
6196 .halt_check = BRANCH_HALT_DELAY,
6198 .enable_reg = 0xab064,
6199 .enable_mask = BIT(0),
6200 .hw.init = &(const struct clk_init_data) {
6201 .name = "gcc_usb3_mp_phy_pipe_1_clk",
6202 .parent_hws = (const struct clk_hw*[]){
6203 &gcc_usb3_mp_phy_pipe_1_clk_src.clkr.hw,
6206 .flags = CLK_SET_RATE_PARENT,
6207 .ops = &clk_branch2_ops,
6212 static struct clk_branch gcc_usb3_prim_phy_aux_clk = {
6214 .halt_check = BRANCH_HALT,
6216 .enable_reg = 0xf054,
6217 .enable_mask = BIT(0),
6218 .hw.init = &(const struct clk_init_data) {
6219 .name = "gcc_usb3_prim_phy_aux_clk",
6220 .parent_hws = (const struct clk_hw*[]){
6221 &gcc_usb3_prim_phy_aux_clk_src.clkr.hw,
6224 .flags = CLK_SET_RATE_PARENT,
6225 .ops = &clk_branch2_ops,
6230 static struct clk_branch gcc_usb3_prim_phy_com_aux_clk = {
6232 .halt_check = BRANCH_HALT,
6234 .enable_reg = 0xf058,
6235 .enable_mask = BIT(0),
6236 .hw.init = &(const struct clk_init_data) {
6237 .name = "gcc_usb3_prim_phy_com_aux_clk",
6238 .parent_hws = (const struct clk_hw*[]){
6239 &gcc_usb3_prim_phy_aux_clk_src.clkr.hw,
6242 .flags = CLK_SET_RATE_PARENT,
6243 .ops = &clk_branch2_ops,
6248 static struct clk_branch gcc_usb3_prim_phy_pipe_clk = {
6250 .halt_check = BRANCH_HALT_DELAY,
6254 .enable_reg = 0xf05c,
6255 .enable_mask = BIT(0),
6256 .hw.init = &(const struct clk_init_data) {
6257 .name = "gcc_usb3_prim_phy_pipe_clk",
6258 .parent_hws = (const struct clk_hw*[]){
6259 &gcc_usb34_prim_phy_pipe_clk_src.clkr.hw,
6262 .flags = CLK_SET_RATE_PARENT,
6263 .ops = &clk_branch2_ops,
6268 static struct clk_branch gcc_usb3_sec_phy_aux_clk = {
6269 .halt_reg = 0x10054,
6270 .halt_check = BRANCH_HALT,
6272 .enable_reg = 0x10054,
6273 .enable_mask = BIT(0),
6274 .hw.init = &(const struct clk_init_data) {
6275 .name = "gcc_usb3_sec_phy_aux_clk",
6276 .parent_hws = (const struct clk_hw*[]){
6277 &gcc_usb3_sec_phy_aux_clk_src.clkr.hw,
6280 .flags = CLK_SET_RATE_PARENT,
6281 .ops = &clk_branch2_ops,
6286 static struct clk_branch gcc_usb3_sec_phy_com_aux_clk = {
6287 .halt_reg = 0x10058,
6288 .halt_check = BRANCH_HALT,
6290 .enable_reg = 0x10058,
6291 .enable_mask = BIT(0),
6292 .hw.init = &(const struct clk_init_data) {
6293 .name = "gcc_usb3_sec_phy_com_aux_clk",
6294 .parent_hws = (const struct clk_hw*[]){
6295 &gcc_usb3_sec_phy_aux_clk_src.clkr.hw,
6298 .flags = CLK_SET_RATE_PARENT,
6299 .ops = &clk_branch2_ops,
6304 static struct clk_branch gcc_usb3_sec_phy_pipe_clk = {
6305 .halt_reg = 0x1005c,
6306 .halt_check = BRANCH_HALT_DELAY,
6307 .hwcg_reg = 0x1005c,
6310 .enable_reg = 0x1005c,
6311 .enable_mask = BIT(0),
6312 .hw.init = &(const struct clk_init_data) {
6313 .name = "gcc_usb3_sec_phy_pipe_clk",
6314 .parent_hws = (const struct clk_hw*[]){
6315 &gcc_usb34_sec_phy_pipe_clk_src.clkr.hw,
6318 .flags = CLK_SET_RATE_PARENT,
6319 .ops = &clk_branch2_ops,
6324 static struct clk_branch gcc_usb4_1_cfg_ahb_clk = {
6325 .halt_reg = 0xb808c,
6326 .halt_check = BRANCH_HALT_VOTED,
6327 .hwcg_reg = 0xb808c,
6330 .enable_reg = 0xb808c,
6331 .enable_mask = BIT(0),
6332 .hw.init = &(const struct clk_init_data) {
6333 .name = "gcc_usb4_1_cfg_ahb_clk",
6334 .ops = &clk_branch2_ops,
6339 static struct clk_branch gcc_usb4_1_dp_clk = {
6340 .halt_reg = 0xb8048,
6341 .halt_check = BRANCH_HALT,
6343 .enable_reg = 0xb8048,
6344 .enable_mask = BIT(0),
6345 .hw.init = &(const struct clk_init_data) {
6346 .name = "gcc_usb4_1_dp_clk",
6347 .parent_hws = (const struct clk_hw*[]){
6348 &gcc_usb4_1_phy_dp_clk_src.clkr.hw,
6351 .flags = CLK_SET_RATE_PARENT,
6352 .ops = &clk_branch2_ops,
6357 static struct clk_branch gcc_usb4_1_master_clk = {
6358 .halt_reg = 0xb8010,
6359 .halt_check = BRANCH_HALT,
6361 .enable_reg = 0xb8010,
6362 .enable_mask = BIT(0),
6363 .hw.init = &(const struct clk_init_data) {
6364 .name = "gcc_usb4_1_master_clk",
6365 .parent_hws = (const struct clk_hw*[]){
6366 &gcc_usb4_1_master_clk_src.clkr.hw,
6369 .flags = CLK_SET_RATE_PARENT,
6370 .ops = &clk_branch2_ops,
6375 static struct clk_branch gcc_usb4_1_phy_p2rr2p_pipe_clk = {
6376 .halt_reg = 0xb80b4,
6377 .halt_check = BRANCH_HALT_DELAY,
6379 .enable_reg = 0xb80b4,
6380 .enable_mask = BIT(0),
6381 .hw.init = &(const struct clk_init_data) {
6382 .name = "gcc_usb4_1_phy_p2rr2p_pipe_clk",
6383 .parent_hws = (const struct clk_hw*[]){
6384 &gcc_usb4_1_phy_p2rr2p_pipe_clk_src.clkr.hw,
6387 .flags = CLK_SET_RATE_PARENT,
6388 .ops = &clk_branch2_ops,
6393 static struct clk_branch gcc_usb4_1_phy_pcie_pipe_clk = {
6394 .halt_reg = 0xb8038,
6395 .halt_check = BRANCH_HALT_DELAY,
6397 .enable_reg = 0x52020,
6398 .enable_mask = BIT(19),
6399 .hw.init = &(const struct clk_init_data) {
6400 .name = "gcc_usb4_1_phy_pcie_pipe_clk",
6401 .parent_hws = (const struct clk_hw*[]){
6402 &gcc_usb4_1_phy_pcie_pipe_mux_clk_src.clkr.hw,
6405 .flags = CLK_SET_RATE_PARENT,
6406 .ops = &clk_branch2_ops,
6411 static struct clk_branch gcc_usb4_1_phy_rx0_clk = {
6412 .halt_reg = 0xb8094,
6413 .halt_check = BRANCH_HALT,
6415 .enable_reg = 0xb8094,
6416 .enable_mask = BIT(0),
6417 .hw.init = &(const struct clk_init_data) {
6418 .name = "gcc_usb4_1_phy_rx0_clk",
6419 .parent_hws = (const struct clk_hw*[]){
6420 &gcc_usb4_1_phy_rx0_clk_src.clkr.hw,
6423 .flags = CLK_SET_RATE_PARENT,
6424 .ops = &clk_branch2_ops,
6429 static struct clk_branch gcc_usb4_1_phy_rx1_clk = {
6430 .halt_reg = 0xb80a0,
6431 .halt_check = BRANCH_HALT,
6433 .enable_reg = 0xb80a0,
6434 .enable_mask = BIT(0),
6435 .hw.init = &(const struct clk_init_data) {
6436 .name = "gcc_usb4_1_phy_rx1_clk",
6437 .parent_hws = (const struct clk_hw*[]){
6438 &gcc_usb4_1_phy_rx1_clk_src.clkr.hw,
6441 .flags = CLK_SET_RATE_PARENT,
6442 .ops = &clk_branch2_ops,
6447 static struct clk_branch gcc_usb4_1_phy_usb_pipe_clk = {
6448 .halt_reg = 0xb8088,
6449 .halt_check = BRANCH_HALT_DELAY,
6450 .hwcg_reg = 0xb8088,
6453 .enable_reg = 0xb8088,
6454 .enable_mask = BIT(0),
6455 .hw.init = &(const struct clk_init_data) {
6456 .name = "gcc_usb4_1_phy_usb_pipe_clk",
6457 .parent_hws = (const struct clk_hw*[]){
6458 &gcc_usb34_sec_phy_pipe_clk_src.clkr.hw,
6461 .flags = CLK_SET_RATE_PARENT,
6462 .ops = &clk_branch2_ops,
6467 static struct clk_branch gcc_usb4_1_sb_if_clk = {
6468 .halt_reg = 0xb8034,
6469 .halt_check = BRANCH_HALT,
6471 .enable_reg = 0xb8034,
6472 .enable_mask = BIT(0),
6473 .hw.init = &(const struct clk_init_data) {
6474 .name = "gcc_usb4_1_sb_if_clk",
6475 .parent_hws = (const struct clk_hw*[]){
6476 &gcc_usb4_1_sb_if_clk_src.clkr.hw,
6479 .flags = CLK_SET_RATE_PARENT,
6480 .ops = &clk_branch2_ops,
6485 static struct clk_branch gcc_usb4_1_sys_clk = {
6486 .halt_reg = 0xb8040,
6487 .halt_check = BRANCH_HALT,
6489 .enable_reg = 0xb8040,
6490 .enable_mask = BIT(0),
6491 .hw.init = &(const struct clk_init_data) {
6492 .name = "gcc_usb4_1_sys_clk",
6493 .parent_hws = (const struct clk_hw*[]){
6494 &gcc_usb4_1_phy_sys_clk_src.clkr.hw,
6497 .flags = CLK_SET_RATE_PARENT,
6498 .ops = &clk_branch2_ops,
6503 static struct clk_branch gcc_usb4_1_tmu_clk = {
6504 .halt_reg = 0xb806c,
6505 .halt_check = BRANCH_HALT_VOTED,
6506 .hwcg_reg = 0xb806c,
6509 .enable_reg = 0xb806c,
6510 .enable_mask = BIT(0),
6511 .hw.init = &(const struct clk_init_data) {
6512 .name = "gcc_usb4_1_tmu_clk",
6513 .parent_hws = (const struct clk_hw*[]){
6514 &gcc_usb4_1_tmu_clk_src.clkr.hw,
6517 .flags = CLK_SET_RATE_PARENT,
6518 .ops = &clk_branch2_ops,
6523 static struct clk_branch gcc_usb4_cfg_ahb_clk = {
6524 .halt_reg = 0x2a08c,
6525 .halt_check = BRANCH_HALT_VOTED,
6526 .hwcg_reg = 0x2a08c,
6529 .enable_reg = 0x2a08c,
6530 .enable_mask = BIT(0),
6531 .hw.init = &(const struct clk_init_data) {
6532 .name = "gcc_usb4_cfg_ahb_clk",
6533 .ops = &clk_branch2_ops,
6538 static struct clk_branch gcc_usb4_clkref_clk = {
6539 .halt_reg = 0x8c010,
6540 .halt_check = BRANCH_HALT,
6542 .enable_reg = 0x8c010,
6543 .enable_mask = BIT(0),
6544 .hw.init = &(const struct clk_init_data) {
6545 .name = "gcc_usb4_clkref_clk",
6546 .ops = &clk_branch2_ops,
6551 static struct clk_branch gcc_usb4_dp_clk = {
6552 .halt_reg = 0x2a048,
6553 .halt_check = BRANCH_HALT,
6555 .enable_reg = 0x2a048,
6556 .enable_mask = BIT(0),
6557 .hw.init = &(const struct clk_init_data) {
6558 .name = "gcc_usb4_dp_clk",
6559 .parent_hws = (const struct clk_hw*[]){
6560 &gcc_usb4_phy_dp_clk_src.clkr.hw,
6563 .flags = CLK_SET_RATE_PARENT,
6564 .ops = &clk_branch2_ops,
6569 static struct clk_branch gcc_usb4_eud_clkref_clk = {
6570 .halt_reg = 0x8c02c,
6571 .halt_check = BRANCH_HALT,
6573 .enable_reg = 0x8c02c,
6574 .enable_mask = BIT(0),
6575 .hw.init = &(const struct clk_init_data) {
6576 .name = "gcc_usb4_eud_clkref_clk",
6577 .ops = &clk_branch2_ops,
6582 static struct clk_branch gcc_usb4_master_clk = {
6583 .halt_reg = 0x2a010,
6584 .halt_check = BRANCH_HALT,
6586 .enable_reg = 0x2a010,
6587 .enable_mask = BIT(0),
6588 .hw.init = &(const struct clk_init_data) {
6589 .name = "gcc_usb4_master_clk",
6590 .parent_hws = (const struct clk_hw*[]){
6591 &gcc_usb4_master_clk_src.clkr.hw,
6594 .flags = CLK_SET_RATE_PARENT,
6595 .ops = &clk_branch2_ops,
6600 static struct clk_branch gcc_usb4_phy_p2rr2p_pipe_clk = {
6601 .halt_reg = 0x2a0b4,
6602 .halt_check = BRANCH_HALT_DELAY,
6604 .enable_reg = 0x2a0b4,
6605 .enable_mask = BIT(0),
6606 .hw.init = &(const struct clk_init_data) {
6607 .name = "gcc_usb4_phy_p2rr2p_pipe_clk",
6608 .parent_hws = (const struct clk_hw*[]){
6609 &gcc_usb4_phy_p2rr2p_pipe_clk_src.clkr.hw,
6612 .flags = CLK_SET_RATE_PARENT,
6613 .ops = &clk_branch2_ops,
6618 static struct clk_branch gcc_usb4_phy_pcie_pipe_clk = {
6619 .halt_reg = 0x2a038,
6620 .halt_check = BRANCH_HALT_DELAY,
6622 .enable_reg = 0x52020,
6623 .enable_mask = BIT(18),
6624 .hw.init = &(const struct clk_init_data) {
6625 .name = "gcc_usb4_phy_pcie_pipe_clk",
6626 .parent_hws = (const struct clk_hw*[]){
6627 &gcc_usb4_phy_pcie_pipe_mux_clk_src.clkr.hw,
6630 .flags = CLK_SET_RATE_PARENT,
6631 .ops = &clk_branch2_ops,
6636 static struct clk_branch gcc_usb4_phy_rx0_clk = {
6637 .halt_reg = 0x2a094,
6638 .halt_check = BRANCH_HALT,
6640 .enable_reg = 0x2a094,
6641 .enable_mask = BIT(0),
6642 .hw.init = &(const struct clk_init_data) {
6643 .name = "gcc_usb4_phy_rx0_clk",
6644 .parent_hws = (const struct clk_hw*[]){
6645 &gcc_usb4_phy_rx0_clk_src.clkr.hw,
6648 .flags = CLK_SET_RATE_PARENT,
6649 .ops = &clk_branch2_ops,
6654 static struct clk_branch gcc_usb4_phy_rx1_clk = {
6655 .halt_reg = 0x2a0a0,
6656 .halt_check = BRANCH_HALT,
6658 .enable_reg = 0x2a0a0,
6659 .enable_mask = BIT(0),
6660 .hw.init = &(const struct clk_init_data) {
6661 .name = "gcc_usb4_phy_rx1_clk",
6662 .parent_hws = (const struct clk_hw*[]){
6663 &gcc_usb4_phy_rx1_clk_src.clkr.hw,
6666 .flags = CLK_SET_RATE_PARENT,
6667 .ops = &clk_branch2_ops,
6672 static struct clk_branch gcc_usb4_phy_usb_pipe_clk = {
6673 .halt_reg = 0x2a088,
6674 .halt_check = BRANCH_HALT_DELAY,
6675 .hwcg_reg = 0x2a088,
6678 .enable_reg = 0x2a088,
6679 .enable_mask = BIT(0),
6680 .hw.init = &(const struct clk_init_data) {
6681 .name = "gcc_usb4_phy_usb_pipe_clk",
6682 .parent_hws = (const struct clk_hw*[]){
6683 &gcc_usb34_prim_phy_pipe_clk_src.clkr.hw,
6686 .flags = CLK_SET_RATE_PARENT,
6687 .ops = &clk_branch2_ops,
6692 static struct clk_branch gcc_usb4_sb_if_clk = {
6693 .halt_reg = 0x2a034,
6694 .halt_check = BRANCH_HALT,
6696 .enable_reg = 0x2a034,
6697 .enable_mask = BIT(0),
6698 .hw.init = &(const struct clk_init_data) {
6699 .name = "gcc_usb4_sb_if_clk",
6700 .parent_hws = (const struct clk_hw*[]){
6701 &gcc_usb4_sb_if_clk_src.clkr.hw,
6704 .flags = CLK_SET_RATE_PARENT,
6705 .ops = &clk_branch2_ops,
6710 static struct clk_branch gcc_usb4_sys_clk = {
6711 .halt_reg = 0x2a040,
6712 .halt_check = BRANCH_HALT,
6714 .enable_reg = 0x2a040,
6715 .enable_mask = BIT(0),
6716 .hw.init = &(const struct clk_init_data) {
6717 .name = "gcc_usb4_sys_clk",
6718 .parent_hws = (const struct clk_hw*[]){
6719 &gcc_usb4_phy_sys_clk_src.clkr.hw,
6722 .flags = CLK_SET_RATE_PARENT,
6723 .ops = &clk_branch2_ops,
6728 static struct clk_branch gcc_usb4_tmu_clk = {
6729 .halt_reg = 0x2a06c,
6730 .halt_check = BRANCH_HALT_VOTED,
6731 .hwcg_reg = 0x2a06c,
6734 .enable_reg = 0x2a06c,
6735 .enable_mask = BIT(0),
6736 .hw.init = &(const struct clk_init_data) {
6737 .name = "gcc_usb4_tmu_clk",
6738 .parent_hws = (const struct clk_hw*[]){
6739 &gcc_usb4_tmu_clk_src.clkr.hw,
6742 .flags = CLK_SET_RATE_PARENT,
6743 .ops = &clk_branch2_ops,
6748 static struct clk_branch gcc_video_axi0_clk = {
6749 .halt_reg = 0x28010,
6750 .halt_check = BRANCH_HALT_SKIP,
6751 .hwcg_reg = 0x28010,
6754 .enable_reg = 0x28010,
6755 .enable_mask = BIT(0),
6756 .hw.init = &(const struct clk_init_data) {
6757 .name = "gcc_video_axi0_clk",
6758 .ops = &clk_branch2_ops,
6763 static struct clk_branch gcc_video_axi1_clk = {
6764 .halt_reg = 0x28018,
6765 .halt_check = BRANCH_HALT_SKIP,
6766 .hwcg_reg = 0x28018,
6769 .enable_reg = 0x28018,
6770 .enable_mask = BIT(0),
6771 .hw.init = &(const struct clk_init_data) {
6772 .name = "gcc_video_axi1_clk",
6773 .ops = &clk_branch2_ops,
6778 static struct clk_branch gcc_video_cvp_throttle_clk = {
6779 .halt_reg = 0x28024,
6780 .halt_check = BRANCH_HALT_SKIP,
6781 .hwcg_reg = 0x28024,
6784 .enable_reg = 0x28024,
6785 .enable_mask = BIT(0),
6786 .hw.init = &(const struct clk_init_data) {
6787 .name = "gcc_video_cvp_throttle_clk",
6788 .ops = &clk_branch2_ops,
6793 static struct clk_branch gcc_video_vcodec_throttle_clk = {
6794 .halt_reg = 0x28020,
6795 .halt_check = BRANCH_HALT_SKIP,
6796 .hwcg_reg = 0x28020,
6799 .enable_reg = 0x28020,
6800 .enable_mask = BIT(0),
6801 .hw.init = &(const struct clk_init_data) {
6802 .name = "gcc_video_vcodec_throttle_clk",
6803 .ops = &clk_branch2_ops,
6808 static struct gdsc pcie_0_tunnel_gdsc = {
6811 .name = "pcie_0_tunnel_gdsc",
6813 .pwrsts = PWRSTS_OFF_ON,
6816 static struct gdsc pcie_1_tunnel_gdsc = {
6819 .name = "pcie_1_tunnel_gdsc",
6821 .pwrsts = PWRSTS_OFF_ON,
6824 static struct gdsc pcie_2a_gdsc = {
6827 .name = "pcie_2a_gdsc",
6829 .pwrsts = PWRSTS_OFF_ON,
6832 static struct gdsc pcie_2b_gdsc = {
6835 .name = "pcie_2b_gdsc",
6837 .pwrsts = PWRSTS_OFF_ON,
6840 static struct gdsc pcie_3a_gdsc = {
6843 .name = "pcie_3a_gdsc",
6845 .pwrsts = PWRSTS_OFF_ON,
6848 static struct gdsc pcie_3b_gdsc = {
6851 .name = "pcie_3b_gdsc",
6853 .pwrsts = PWRSTS_OFF_ON,
6856 static struct gdsc pcie_4_gdsc = {
6859 .name = "pcie_4_gdsc",
6861 .pwrsts = PWRSTS_OFF_ON,
6864 static struct gdsc ufs_card_gdsc = {
6867 .name = "ufs_card_gdsc",
6869 .pwrsts = PWRSTS_OFF_ON,
6872 static struct gdsc ufs_phy_gdsc = {
6875 .name = "ufs_phy_gdsc",
6877 .pwrsts = PWRSTS_OFF_ON,
6880 static struct gdsc usb30_mp_gdsc = {
6883 .name = "usb30_mp_gdsc",
6885 .pwrsts = PWRSTS_OFF_ON,
6888 static struct gdsc usb30_prim_gdsc = {
6891 .name = "usb30_prim_gdsc",
6893 .pwrsts = PWRSTS_OFF_ON,
6896 static struct gdsc usb30_sec_gdsc = {
6899 .name = "usb30_sec_gdsc",
6901 .pwrsts = PWRSTS_OFF_ON,
6904 static struct clk_regmap *gcc_sc8280xp_clocks[] = {
6905 [GCC_AGGRE_NOC_PCIE0_TUNNEL_AXI_CLK] = &gcc_aggre_noc_pcie0_tunnel_axi_clk.clkr,
6906 [GCC_AGGRE_NOC_PCIE1_TUNNEL_AXI_CLK] = &gcc_aggre_noc_pcie1_tunnel_axi_clk.clkr,
6907 [GCC_AGGRE_NOC_PCIE_4_AXI_CLK] = &gcc_aggre_noc_pcie_4_axi_clk.clkr,
6908 [GCC_AGGRE_NOC_PCIE_SOUTH_SF_AXI_CLK] = &gcc_aggre_noc_pcie_south_sf_axi_clk.clkr,
6909 [GCC_AGGRE_UFS_CARD_AXI_CLK] = &gcc_aggre_ufs_card_axi_clk.clkr,
6910 [GCC_AGGRE_UFS_CARD_AXI_HW_CTL_CLK] = &gcc_aggre_ufs_card_axi_hw_ctl_clk.clkr,
6911 [GCC_AGGRE_UFS_PHY_AXI_CLK] = &gcc_aggre_ufs_phy_axi_clk.clkr,
6912 [GCC_AGGRE_UFS_PHY_AXI_HW_CTL_CLK] = &gcc_aggre_ufs_phy_axi_hw_ctl_clk.clkr,
6913 [GCC_AGGRE_USB3_MP_AXI_CLK] = &gcc_aggre_usb3_mp_axi_clk.clkr,
6914 [GCC_AGGRE_USB3_PRIM_AXI_CLK] = &gcc_aggre_usb3_prim_axi_clk.clkr,
6915 [GCC_AGGRE_USB3_SEC_AXI_CLK] = &gcc_aggre_usb3_sec_axi_clk.clkr,
6916 [GCC_AGGRE_USB4_1_AXI_CLK] = &gcc_aggre_usb4_1_axi_clk.clkr,
6917 [GCC_AGGRE_USB4_AXI_CLK] = &gcc_aggre_usb4_axi_clk.clkr,
6918 [GCC_AGGRE_USB_NOC_AXI_CLK] = &gcc_aggre_usb_noc_axi_clk.clkr,
6919 [GCC_AGGRE_USB_NOC_NORTH_AXI_CLK] = &gcc_aggre_usb_noc_north_axi_clk.clkr,
6920 [GCC_AGGRE_USB_NOC_SOUTH_AXI_CLK] = &gcc_aggre_usb_noc_south_axi_clk.clkr,
6921 [GCC_AHB2PHY0_CLK] = &gcc_ahb2phy0_clk.clkr,
6922 [GCC_AHB2PHY2_CLK] = &gcc_ahb2phy2_clk.clkr,
6923 [GCC_BOOT_ROM_AHB_CLK] = &gcc_boot_rom_ahb_clk.clkr,
6924 [GCC_CAMERA_HF_AXI_CLK] = &gcc_camera_hf_axi_clk.clkr,
6925 [GCC_CAMERA_SF_AXI_CLK] = &gcc_camera_sf_axi_clk.clkr,
6926 [GCC_CAMERA_THROTTLE_NRT_AXI_CLK] = &gcc_camera_throttle_nrt_axi_clk.clkr,
6927 [GCC_CAMERA_THROTTLE_RT_AXI_CLK] = &gcc_camera_throttle_rt_axi_clk.clkr,
6928 [GCC_CAMERA_THROTTLE_XO_CLK] = &gcc_camera_throttle_xo_clk.clkr,
6929 [GCC_CFG_NOC_USB3_MP_AXI_CLK] = &gcc_cfg_noc_usb3_mp_axi_clk.clkr,
6930 [GCC_CFG_NOC_USB3_PRIM_AXI_CLK] = &gcc_cfg_noc_usb3_prim_axi_clk.clkr,
6931 [GCC_CFG_NOC_USB3_SEC_AXI_CLK] = &gcc_cfg_noc_usb3_sec_axi_clk.clkr,
6932 [GCC_CNOC_PCIE0_TUNNEL_CLK] = &gcc_cnoc_pcie0_tunnel_clk.clkr,
6933 [GCC_CNOC_PCIE1_TUNNEL_CLK] = &gcc_cnoc_pcie1_tunnel_clk.clkr,
6934 [GCC_CNOC_PCIE4_QX_CLK] = &gcc_cnoc_pcie4_qx_clk.clkr,
6935 [GCC_DDRSS_GPU_AXI_CLK] = &gcc_ddrss_gpu_axi_clk.clkr,
6936 [GCC_DDRSS_PCIE_SF_TBU_CLK] = &gcc_ddrss_pcie_sf_tbu_clk.clkr,
6937 [GCC_DISP1_HF_AXI_CLK] = &gcc_disp1_hf_axi_clk.clkr,
6938 [GCC_DISP1_SF_AXI_CLK] = &gcc_disp1_sf_axi_clk.clkr,
6939 [GCC_DISP1_THROTTLE_NRT_AXI_CLK] = &gcc_disp1_throttle_nrt_axi_clk.clkr,
6940 [GCC_DISP1_THROTTLE_RT_AXI_CLK] = &gcc_disp1_throttle_rt_axi_clk.clkr,
6941 [GCC_DISP_HF_AXI_CLK] = &gcc_disp_hf_axi_clk.clkr,
6942 [GCC_DISP_SF_AXI_CLK] = &gcc_disp_sf_axi_clk.clkr,
6943 [GCC_DISP_THROTTLE_NRT_AXI_CLK] = &gcc_disp_throttle_nrt_axi_clk.clkr,
6944 [GCC_DISP_THROTTLE_RT_AXI_CLK] = &gcc_disp_throttle_rt_axi_clk.clkr,
6945 [GCC_EMAC0_AXI_CLK] = &gcc_emac0_axi_clk.clkr,
6946 [GCC_EMAC0_PTP_CLK] = &gcc_emac0_ptp_clk.clkr,
6947 [GCC_EMAC0_PTP_CLK_SRC] = &gcc_emac0_ptp_clk_src.clkr,
6948 [GCC_EMAC0_RGMII_CLK] = &gcc_emac0_rgmii_clk.clkr,
6949 [GCC_EMAC0_RGMII_CLK_SRC] = &gcc_emac0_rgmii_clk_src.clkr,
6950 [GCC_EMAC0_SLV_AHB_CLK] = &gcc_emac0_slv_ahb_clk.clkr,
6951 [GCC_EMAC1_AXI_CLK] = &gcc_emac1_axi_clk.clkr,
6952 [GCC_EMAC1_PTP_CLK] = &gcc_emac1_ptp_clk.clkr,
6953 [GCC_EMAC1_PTP_CLK_SRC] = &gcc_emac1_ptp_clk_src.clkr,
6954 [GCC_EMAC1_RGMII_CLK] = &gcc_emac1_rgmii_clk.clkr,
6955 [GCC_EMAC1_RGMII_CLK_SRC] = &gcc_emac1_rgmii_clk_src.clkr,
6956 [GCC_EMAC1_SLV_AHB_CLK] = &gcc_emac1_slv_ahb_clk.clkr,
6957 [GCC_GP1_CLK] = &gcc_gp1_clk.clkr,
6958 [GCC_GP1_CLK_SRC] = &gcc_gp1_clk_src.clkr,
6959 [GCC_GP2_CLK] = &gcc_gp2_clk.clkr,
6960 [GCC_GP2_CLK_SRC] = &gcc_gp2_clk_src.clkr,
6961 [GCC_GP3_CLK] = &gcc_gp3_clk.clkr,
6962 [GCC_GP3_CLK_SRC] = &gcc_gp3_clk_src.clkr,
6963 [GCC_GP4_CLK] = &gcc_gp4_clk.clkr,
6964 [GCC_GP4_CLK_SRC] = &gcc_gp4_clk_src.clkr,
6965 [GCC_GP5_CLK] = &gcc_gp5_clk.clkr,
6966 [GCC_GP5_CLK_SRC] = &gcc_gp5_clk_src.clkr,
6967 [GCC_GPLL0] = &gcc_gpll0.clkr,
6968 [GCC_GPLL0_OUT_EVEN] = &gcc_gpll0_out_even.clkr,
6969 [GCC_GPLL2] = &gcc_gpll2.clkr,
6970 [GCC_GPLL4] = &gcc_gpll4.clkr,
6971 [GCC_GPLL7] = &gcc_gpll7.clkr,
6972 [GCC_GPLL8] = &gcc_gpll8.clkr,
6973 [GCC_GPLL9] = &gcc_gpll9.clkr,
6974 [GCC_GPU_GPLL0_CLK_SRC] = &gcc_gpu_gpll0_clk_src.clkr,
6975 [GCC_GPU_GPLL0_DIV_CLK_SRC] = &gcc_gpu_gpll0_div_clk_src.clkr,
6976 [GCC_GPU_IREF_EN] = &gcc_gpu_iref_en.clkr,
6977 [GCC_GPU_MEMNOC_GFX_CLK] = &gcc_gpu_memnoc_gfx_clk.clkr,
6978 [GCC_GPU_SNOC_DVM_GFX_CLK] = &gcc_gpu_snoc_dvm_gfx_clk.clkr,
6979 [GCC_GPU_TCU_THROTTLE_AHB_CLK] = &gcc_gpu_tcu_throttle_ahb_clk.clkr,
6980 [GCC_GPU_TCU_THROTTLE_CLK] = &gcc_gpu_tcu_throttle_clk.clkr,
6981 [GCC_PCIE0_PHY_RCHNG_CLK] = &gcc_pcie0_phy_rchng_clk.clkr,
6982 [GCC_PCIE1_PHY_RCHNG_CLK] = &gcc_pcie1_phy_rchng_clk.clkr,
6983 [GCC_PCIE2A_PHY_RCHNG_CLK] = &gcc_pcie2a_phy_rchng_clk.clkr,
6984 [GCC_PCIE2B_PHY_RCHNG_CLK] = &gcc_pcie2b_phy_rchng_clk.clkr,
6985 [GCC_PCIE3A_PHY_RCHNG_CLK] = &gcc_pcie3a_phy_rchng_clk.clkr,
6986 [GCC_PCIE3B_PHY_RCHNG_CLK] = &gcc_pcie3b_phy_rchng_clk.clkr,
6987 [GCC_PCIE4_PHY_RCHNG_CLK] = &gcc_pcie4_phy_rchng_clk.clkr,
6988 [GCC_PCIE_0_AUX_CLK] = &gcc_pcie_0_aux_clk.clkr,
6989 [GCC_PCIE_0_AUX_CLK_SRC] = &gcc_pcie_0_aux_clk_src.clkr,
6990 [GCC_PCIE_0_CFG_AHB_CLK] = &gcc_pcie_0_cfg_ahb_clk.clkr,
6991 [GCC_PCIE_0_MSTR_AXI_CLK] = &gcc_pcie_0_mstr_axi_clk.clkr,
6992 [GCC_PCIE_0_PHY_RCHNG_CLK_SRC] = &gcc_pcie_0_phy_rchng_clk_src.clkr,
6993 [GCC_PCIE_0_PIPE_CLK] = &gcc_pcie_0_pipe_clk.clkr,
6994 [GCC_PCIE_0_SLV_AXI_CLK] = &gcc_pcie_0_slv_axi_clk.clkr,
6995 [GCC_PCIE_0_SLV_Q2A_AXI_CLK] = &gcc_pcie_0_slv_q2a_axi_clk.clkr,
6996 [GCC_PCIE_1_AUX_CLK] = &gcc_pcie_1_aux_clk.clkr,
6997 [GCC_PCIE_1_AUX_CLK_SRC] = &gcc_pcie_1_aux_clk_src.clkr,
6998 [GCC_PCIE_1_CFG_AHB_CLK] = &gcc_pcie_1_cfg_ahb_clk.clkr,
6999 [GCC_PCIE_1_MSTR_AXI_CLK] = &gcc_pcie_1_mstr_axi_clk.clkr,
7000 [GCC_PCIE_1_PHY_RCHNG_CLK_SRC] = &gcc_pcie_1_phy_rchng_clk_src.clkr,
7001 [GCC_PCIE_1_PIPE_CLK] = &gcc_pcie_1_pipe_clk.clkr,
7002 [GCC_PCIE_1_SLV_AXI_CLK] = &gcc_pcie_1_slv_axi_clk.clkr,
7003 [GCC_PCIE_1_SLV_Q2A_AXI_CLK] = &gcc_pcie_1_slv_q2a_axi_clk.clkr,
7004 [GCC_PCIE_2A2B_CLKREF_CLK] = &gcc_pcie_2a2b_clkref_clk.clkr,
7005 [GCC_PCIE_2A_AUX_CLK] = &gcc_pcie_2a_aux_clk.clkr,
7006 [GCC_PCIE_2A_AUX_CLK_SRC] = &gcc_pcie_2a_aux_clk_src.clkr,
7007 [GCC_PCIE_2A_CFG_AHB_CLK] = &gcc_pcie_2a_cfg_ahb_clk.clkr,
7008 [GCC_PCIE_2A_MSTR_AXI_CLK] = &gcc_pcie_2a_mstr_axi_clk.clkr,
7009 [GCC_PCIE_2A_PHY_RCHNG_CLK_SRC] = &gcc_pcie_2a_phy_rchng_clk_src.clkr,
7010 [GCC_PCIE_2A_PIPE_CLK] = &gcc_pcie_2a_pipe_clk.clkr,
7011 [GCC_PCIE_2A_PIPE_CLK_SRC] = &gcc_pcie_2a_pipe_clk_src.clkr,
7012 [GCC_PCIE_2A_PIPE_DIV_CLK_SRC] = &gcc_pcie_2a_pipe_div_clk_src.clkr,
7013 [GCC_PCIE_2A_PIPEDIV2_CLK] = &gcc_pcie_2a_pipediv2_clk.clkr,
7014 [GCC_PCIE_2A_SLV_AXI_CLK] = &gcc_pcie_2a_slv_axi_clk.clkr,
7015 [GCC_PCIE_2A_SLV_Q2A_AXI_CLK] = &gcc_pcie_2a_slv_q2a_axi_clk.clkr,
7016 [GCC_PCIE_2B_AUX_CLK] = &gcc_pcie_2b_aux_clk.clkr,
7017 [GCC_PCIE_2B_AUX_CLK_SRC] = &gcc_pcie_2b_aux_clk_src.clkr,
7018 [GCC_PCIE_2B_CFG_AHB_CLK] = &gcc_pcie_2b_cfg_ahb_clk.clkr,
7019 [GCC_PCIE_2B_MSTR_AXI_CLK] = &gcc_pcie_2b_mstr_axi_clk.clkr,
7020 [GCC_PCIE_2B_PHY_RCHNG_CLK_SRC] = &gcc_pcie_2b_phy_rchng_clk_src.clkr,
7021 [GCC_PCIE_2B_PIPE_CLK] = &gcc_pcie_2b_pipe_clk.clkr,
7022 [GCC_PCIE_2B_PIPE_CLK_SRC] = &gcc_pcie_2b_pipe_clk_src.clkr,
7023 [GCC_PCIE_2B_PIPE_DIV_CLK_SRC] = &gcc_pcie_2b_pipe_div_clk_src.clkr,
7024 [GCC_PCIE_2B_PIPEDIV2_CLK] = &gcc_pcie_2b_pipediv2_clk.clkr,
7025 [GCC_PCIE_2B_SLV_AXI_CLK] = &gcc_pcie_2b_slv_axi_clk.clkr,
7026 [GCC_PCIE_2B_SLV_Q2A_AXI_CLK] = &gcc_pcie_2b_slv_q2a_axi_clk.clkr,
7027 [GCC_PCIE_3A3B_CLKREF_CLK] = &gcc_pcie_3a3b_clkref_clk.clkr,
7028 [GCC_PCIE_3A_AUX_CLK] = &gcc_pcie_3a_aux_clk.clkr,
7029 [GCC_PCIE_3A_AUX_CLK_SRC] = &gcc_pcie_3a_aux_clk_src.clkr,
7030 [GCC_PCIE_3A_CFG_AHB_CLK] = &gcc_pcie_3a_cfg_ahb_clk.clkr,
7031 [GCC_PCIE_3A_MSTR_AXI_CLK] = &gcc_pcie_3a_mstr_axi_clk.clkr,
7032 [GCC_PCIE_3A_PHY_RCHNG_CLK_SRC] = &gcc_pcie_3a_phy_rchng_clk_src.clkr,
7033 [GCC_PCIE_3A_PIPE_CLK] = &gcc_pcie_3a_pipe_clk.clkr,
7034 [GCC_PCIE_3A_PIPE_CLK_SRC] = &gcc_pcie_3a_pipe_clk_src.clkr,
7035 [GCC_PCIE_3A_PIPE_DIV_CLK_SRC] = &gcc_pcie_3a_pipe_div_clk_src.clkr,
7036 [GCC_PCIE_3A_PIPEDIV2_CLK] = &gcc_pcie_3a_pipediv2_clk.clkr,
7037 [GCC_PCIE_3A_SLV_AXI_CLK] = &gcc_pcie_3a_slv_axi_clk.clkr,
7038 [GCC_PCIE_3A_SLV_Q2A_AXI_CLK] = &gcc_pcie_3a_slv_q2a_axi_clk.clkr,
7039 [GCC_PCIE_3B_AUX_CLK] = &gcc_pcie_3b_aux_clk.clkr,
7040 [GCC_PCIE_3B_AUX_CLK_SRC] = &gcc_pcie_3b_aux_clk_src.clkr,
7041 [GCC_PCIE_3B_CFG_AHB_CLK] = &gcc_pcie_3b_cfg_ahb_clk.clkr,
7042 [GCC_PCIE_3B_MSTR_AXI_CLK] = &gcc_pcie_3b_mstr_axi_clk.clkr,
7043 [GCC_PCIE_3B_PHY_RCHNG_CLK_SRC] = &gcc_pcie_3b_phy_rchng_clk_src.clkr,
7044 [GCC_PCIE_3B_PIPE_CLK] = &gcc_pcie_3b_pipe_clk.clkr,
7045 [GCC_PCIE_3B_PIPE_CLK_SRC] = &gcc_pcie_3b_pipe_clk_src.clkr,
7046 [GCC_PCIE_3B_PIPE_DIV_CLK_SRC] = &gcc_pcie_3b_pipe_div_clk_src.clkr,
7047 [GCC_PCIE_3B_PIPEDIV2_CLK] = &gcc_pcie_3b_pipediv2_clk.clkr,
7048 [GCC_PCIE_3B_SLV_AXI_CLK] = &gcc_pcie_3b_slv_axi_clk.clkr,
7049 [GCC_PCIE_3B_SLV_Q2A_AXI_CLK] = &gcc_pcie_3b_slv_q2a_axi_clk.clkr,
7050 [GCC_PCIE_4_AUX_CLK] = &gcc_pcie_4_aux_clk.clkr,
7051 [GCC_PCIE_4_AUX_CLK_SRC] = &gcc_pcie_4_aux_clk_src.clkr,
7052 [GCC_PCIE_4_CFG_AHB_CLK] = &gcc_pcie_4_cfg_ahb_clk.clkr,
7053 [GCC_PCIE_4_CLKREF_CLK] = &gcc_pcie_4_clkref_clk.clkr,
7054 [GCC_PCIE_4_MSTR_AXI_CLK] = &gcc_pcie_4_mstr_axi_clk.clkr,
7055 [GCC_PCIE_4_PHY_RCHNG_CLK_SRC] = &gcc_pcie_4_phy_rchng_clk_src.clkr,
7056 [GCC_PCIE_4_PIPE_CLK] = &gcc_pcie_4_pipe_clk.clkr,
7057 [GCC_PCIE_4_PIPE_CLK_SRC] = &gcc_pcie_4_pipe_clk_src.clkr,
7058 [GCC_PCIE_4_PIPE_DIV_CLK_SRC] = &gcc_pcie_4_pipe_div_clk_src.clkr,
7059 [GCC_PCIE_4_PIPEDIV2_CLK] = &gcc_pcie_4_pipediv2_clk.clkr,
7060 [GCC_PCIE_4_SLV_AXI_CLK] = &gcc_pcie_4_slv_axi_clk.clkr,
7061 [GCC_PCIE_4_SLV_Q2A_AXI_CLK] = &gcc_pcie_4_slv_q2a_axi_clk.clkr,
7062 [GCC_PCIE_RSCC_AHB_CLK] = &gcc_pcie_rscc_ahb_clk.clkr,
7063 [GCC_PCIE_RSCC_XO_CLK] = &gcc_pcie_rscc_xo_clk.clkr,
7064 [GCC_PCIE_RSCC_XO_CLK_SRC] = &gcc_pcie_rscc_xo_clk_src.clkr,
7065 [GCC_PCIE_THROTTLE_CFG_CLK] = &gcc_pcie_throttle_cfg_clk.clkr,
7066 [GCC_PDM2_CLK] = &gcc_pdm2_clk.clkr,
7067 [GCC_PDM2_CLK_SRC] = &gcc_pdm2_clk_src.clkr,
7068 [GCC_PDM_AHB_CLK] = &gcc_pdm_ahb_clk.clkr,
7069 [GCC_PDM_XO4_CLK] = &gcc_pdm_xo4_clk.clkr,
7070 [GCC_QMIP_CAMERA_NRT_AHB_CLK] = &gcc_qmip_camera_nrt_ahb_clk.clkr,
7071 [GCC_QMIP_CAMERA_RT_AHB_CLK] = &gcc_qmip_camera_rt_ahb_clk.clkr,
7072 [GCC_QMIP_DISP1_AHB_CLK] = &gcc_qmip_disp1_ahb_clk.clkr,
7073 [GCC_QMIP_DISP1_ROT_AHB_CLK] = &gcc_qmip_disp1_rot_ahb_clk.clkr,
7074 [GCC_QMIP_DISP_AHB_CLK] = &gcc_qmip_disp_ahb_clk.clkr,
7075 [GCC_QMIP_DISP_ROT_AHB_CLK] = &gcc_qmip_disp_rot_ahb_clk.clkr,
7076 [GCC_QMIP_VIDEO_CVP_AHB_CLK] = &gcc_qmip_video_cvp_ahb_clk.clkr,
7077 [GCC_QMIP_VIDEO_VCODEC_AHB_CLK] = &gcc_qmip_video_vcodec_ahb_clk.clkr,
7078 [GCC_QUPV3_WRAP0_CORE_2X_CLK] = &gcc_qupv3_wrap0_core_2x_clk.clkr,
7079 [GCC_QUPV3_WRAP0_CORE_CLK] = &gcc_qupv3_wrap0_core_clk.clkr,
7080 [GCC_QUPV3_WRAP0_QSPI0_CLK] = &gcc_qupv3_wrap0_qspi0_clk.clkr,
7081 [GCC_QUPV3_WRAP0_S0_CLK] = &gcc_qupv3_wrap0_s0_clk.clkr,
7082 [GCC_QUPV3_WRAP0_S0_CLK_SRC] = &gcc_qupv3_wrap0_s0_clk_src.clkr,
7083 [GCC_QUPV3_WRAP0_S1_CLK] = &gcc_qupv3_wrap0_s1_clk.clkr,
7084 [GCC_QUPV3_WRAP0_S1_CLK_SRC] = &gcc_qupv3_wrap0_s1_clk_src.clkr,
7085 [GCC_QUPV3_WRAP0_S2_CLK] = &gcc_qupv3_wrap0_s2_clk.clkr,
7086 [GCC_QUPV3_WRAP0_S2_CLK_SRC] = &gcc_qupv3_wrap0_s2_clk_src.clkr,
7087 [GCC_QUPV3_WRAP0_S3_CLK] = &gcc_qupv3_wrap0_s3_clk.clkr,
7088 [GCC_QUPV3_WRAP0_S3_CLK_SRC] = &gcc_qupv3_wrap0_s3_clk_src.clkr,
7089 [GCC_QUPV3_WRAP0_S4_CLK] = &gcc_qupv3_wrap0_s4_clk.clkr,
7090 [GCC_QUPV3_WRAP0_S4_CLK_SRC] = &gcc_qupv3_wrap0_s4_clk_src.clkr,
7091 [GCC_QUPV3_WRAP0_S4_DIV_CLK_SRC] = &gcc_qupv3_wrap0_s4_div_clk_src.clkr,
7092 [GCC_QUPV3_WRAP0_S5_CLK] = &gcc_qupv3_wrap0_s5_clk.clkr,
7093 [GCC_QUPV3_WRAP0_S5_CLK_SRC] = &gcc_qupv3_wrap0_s5_clk_src.clkr,
7094 [GCC_QUPV3_WRAP0_S6_CLK] = &gcc_qupv3_wrap0_s6_clk.clkr,
7095 [GCC_QUPV3_WRAP0_S6_CLK_SRC] = &gcc_qupv3_wrap0_s6_clk_src.clkr,
7096 [GCC_QUPV3_WRAP0_S7_CLK] = &gcc_qupv3_wrap0_s7_clk.clkr,
7097 [GCC_QUPV3_WRAP0_S7_CLK_SRC] = &gcc_qupv3_wrap0_s7_clk_src.clkr,
7098 [GCC_QUPV3_WRAP1_CORE_2X_CLK] = &gcc_qupv3_wrap1_core_2x_clk.clkr,
7099 [GCC_QUPV3_WRAP1_CORE_CLK] = &gcc_qupv3_wrap1_core_clk.clkr,
7100 [GCC_QUPV3_WRAP1_QSPI0_CLK] = &gcc_qupv3_wrap1_qspi0_clk.clkr,
7101 [GCC_QUPV3_WRAP1_S0_CLK] = &gcc_qupv3_wrap1_s0_clk.clkr,
7102 [GCC_QUPV3_WRAP1_S0_CLK_SRC] = &gcc_qupv3_wrap1_s0_clk_src.clkr,
7103 [GCC_QUPV3_WRAP1_S1_CLK] = &gcc_qupv3_wrap1_s1_clk.clkr,
7104 [GCC_QUPV3_WRAP1_S1_CLK_SRC] = &gcc_qupv3_wrap1_s1_clk_src.clkr,
7105 [GCC_QUPV3_WRAP1_S2_CLK] = &gcc_qupv3_wrap1_s2_clk.clkr,
7106 [GCC_QUPV3_WRAP1_S2_CLK_SRC] = &gcc_qupv3_wrap1_s2_clk_src.clkr,
7107 [GCC_QUPV3_WRAP1_S3_CLK] = &gcc_qupv3_wrap1_s3_clk.clkr,
7108 [GCC_QUPV3_WRAP1_S3_CLK_SRC] = &gcc_qupv3_wrap1_s3_clk_src.clkr,
7109 [GCC_QUPV3_WRAP1_S4_CLK] = &gcc_qupv3_wrap1_s4_clk.clkr,
7110 [GCC_QUPV3_WRAP1_S4_CLK_SRC] = &gcc_qupv3_wrap1_s4_clk_src.clkr,
7111 [GCC_QUPV3_WRAP1_S4_DIV_CLK_SRC] = &gcc_qupv3_wrap1_s4_div_clk_src.clkr,
7112 [GCC_QUPV3_WRAP1_S5_CLK] = &gcc_qupv3_wrap1_s5_clk.clkr,
7113 [GCC_QUPV3_WRAP1_S5_CLK_SRC] = &gcc_qupv3_wrap1_s5_clk_src.clkr,
7114 [GCC_QUPV3_WRAP1_S6_CLK] = &gcc_qupv3_wrap1_s6_clk.clkr,
7115 [GCC_QUPV3_WRAP1_S6_CLK_SRC] = &gcc_qupv3_wrap1_s6_clk_src.clkr,
7116 [GCC_QUPV3_WRAP1_S7_CLK] = &gcc_qupv3_wrap1_s7_clk.clkr,
7117 [GCC_QUPV3_WRAP1_S7_CLK_SRC] = &gcc_qupv3_wrap1_s7_clk_src.clkr,
7118 [GCC_QUPV3_WRAP2_CORE_2X_CLK] = &gcc_qupv3_wrap2_core_2x_clk.clkr,
7119 [GCC_QUPV3_WRAP2_CORE_CLK] = &gcc_qupv3_wrap2_core_clk.clkr,
7120 [GCC_QUPV3_WRAP2_QSPI0_CLK] = &gcc_qupv3_wrap2_qspi0_clk.clkr,
7121 [GCC_QUPV3_WRAP2_S0_CLK] = &gcc_qupv3_wrap2_s0_clk.clkr,
7122 [GCC_QUPV3_WRAP2_S0_CLK_SRC] = &gcc_qupv3_wrap2_s0_clk_src.clkr,
7123 [GCC_QUPV3_WRAP2_S1_CLK] = &gcc_qupv3_wrap2_s1_clk.clkr,
7124 [GCC_QUPV3_WRAP2_S1_CLK_SRC] = &gcc_qupv3_wrap2_s1_clk_src.clkr,
7125 [GCC_QUPV3_WRAP2_S2_CLK] = &gcc_qupv3_wrap2_s2_clk.clkr,
7126 [GCC_QUPV3_WRAP2_S2_CLK_SRC] = &gcc_qupv3_wrap2_s2_clk_src.clkr,
7127 [GCC_QUPV3_WRAP2_S3_CLK] = &gcc_qupv3_wrap2_s3_clk.clkr,
7128 [GCC_QUPV3_WRAP2_S3_CLK_SRC] = &gcc_qupv3_wrap2_s3_clk_src.clkr,
7129 [GCC_QUPV3_WRAP2_S4_CLK] = &gcc_qupv3_wrap2_s4_clk.clkr,
7130 [GCC_QUPV3_WRAP2_S4_CLK_SRC] = &gcc_qupv3_wrap2_s4_clk_src.clkr,
7131 [GCC_QUPV3_WRAP2_S4_DIV_CLK_SRC] = &gcc_qupv3_wrap2_s4_div_clk_src.clkr,
7132 [GCC_QUPV3_WRAP2_S5_CLK] = &gcc_qupv3_wrap2_s5_clk.clkr,
7133 [GCC_QUPV3_WRAP2_S5_CLK_SRC] = &gcc_qupv3_wrap2_s5_clk_src.clkr,
7134 [GCC_QUPV3_WRAP2_S6_CLK] = &gcc_qupv3_wrap2_s6_clk.clkr,
7135 [GCC_QUPV3_WRAP2_S6_CLK_SRC] = &gcc_qupv3_wrap2_s6_clk_src.clkr,
7136 [GCC_QUPV3_WRAP2_S7_CLK] = &gcc_qupv3_wrap2_s7_clk.clkr,
7137 [GCC_QUPV3_WRAP2_S7_CLK_SRC] = &gcc_qupv3_wrap2_s7_clk_src.clkr,
7138 [GCC_QUPV3_WRAP_0_M_AHB_CLK] = &gcc_qupv3_wrap_0_m_ahb_clk.clkr,
7139 [GCC_QUPV3_WRAP_0_S_AHB_CLK] = &gcc_qupv3_wrap_0_s_ahb_clk.clkr,
7140 [GCC_QUPV3_WRAP_1_M_AHB_CLK] = &gcc_qupv3_wrap_1_m_ahb_clk.clkr,
7141 [GCC_QUPV3_WRAP_1_S_AHB_CLK] = &gcc_qupv3_wrap_1_s_ahb_clk.clkr,
7142 [GCC_QUPV3_WRAP_2_M_AHB_CLK] = &gcc_qupv3_wrap_2_m_ahb_clk.clkr,
7143 [GCC_QUPV3_WRAP_2_S_AHB_CLK] = &gcc_qupv3_wrap_2_s_ahb_clk.clkr,
7144 [GCC_SDCC2_AHB_CLK] = &gcc_sdcc2_ahb_clk.clkr,
7145 [GCC_SDCC2_APPS_CLK] = &gcc_sdcc2_apps_clk.clkr,
7146 [GCC_SDCC2_APPS_CLK_SRC] = &gcc_sdcc2_apps_clk_src.clkr,
7147 [GCC_SDCC4_AHB_CLK] = &gcc_sdcc4_ahb_clk.clkr,
7148 [GCC_SDCC4_APPS_CLK] = &gcc_sdcc4_apps_clk.clkr,
7149 [GCC_SDCC4_APPS_CLK_SRC] = &gcc_sdcc4_apps_clk_src.clkr,
7150 [GCC_SYS_NOC_USB_AXI_CLK] = &gcc_sys_noc_usb_axi_clk.clkr,
7151 [GCC_UFS_1_CARD_CLKREF_CLK] = &gcc_ufs_1_card_clkref_clk.clkr,
7152 [GCC_UFS_CARD_AHB_CLK] = &gcc_ufs_card_ahb_clk.clkr,
7153 [GCC_UFS_CARD_AXI_CLK] = &gcc_ufs_card_axi_clk.clkr,
7154 [GCC_UFS_CARD_AXI_CLK_SRC] = &gcc_ufs_card_axi_clk_src.clkr,
7155 [GCC_UFS_CARD_AXI_HW_CTL_CLK] = &gcc_ufs_card_axi_hw_ctl_clk.clkr,
7156 [GCC_UFS_CARD_CLKREF_CLK] = &gcc_ufs_card_clkref_clk.clkr,
7157 [GCC_UFS_CARD_ICE_CORE_CLK] = &gcc_ufs_card_ice_core_clk.clkr,
7158 [GCC_UFS_CARD_ICE_CORE_CLK_SRC] = &gcc_ufs_card_ice_core_clk_src.clkr,
7159 [GCC_UFS_CARD_ICE_CORE_HW_CTL_CLK] = &gcc_ufs_card_ice_core_hw_ctl_clk.clkr,
7160 [GCC_UFS_CARD_PHY_AUX_CLK] = &gcc_ufs_card_phy_aux_clk.clkr,
7161 [GCC_UFS_CARD_PHY_AUX_CLK_SRC] = &gcc_ufs_card_phy_aux_clk_src.clkr,
7162 [GCC_UFS_CARD_PHY_AUX_HW_CTL_CLK] = &gcc_ufs_card_phy_aux_hw_ctl_clk.clkr,
7163 [GCC_UFS_CARD_RX_SYMBOL_0_CLK] = &gcc_ufs_card_rx_symbol_0_clk.clkr,
7164 [GCC_UFS_CARD_RX_SYMBOL_0_CLK_SRC] = &gcc_ufs_card_rx_symbol_0_clk_src.clkr,
7165 [GCC_UFS_CARD_RX_SYMBOL_1_CLK] = &gcc_ufs_card_rx_symbol_1_clk.clkr,
7166 [GCC_UFS_CARD_RX_SYMBOL_1_CLK_SRC] = &gcc_ufs_card_rx_symbol_1_clk_src.clkr,
7167 [GCC_UFS_CARD_TX_SYMBOL_0_CLK] = &gcc_ufs_card_tx_symbol_0_clk.clkr,
7168 [GCC_UFS_CARD_TX_SYMBOL_0_CLK_SRC] = &gcc_ufs_card_tx_symbol_0_clk_src.clkr,
7169 [GCC_UFS_CARD_UNIPRO_CORE_CLK] = &gcc_ufs_card_unipro_core_clk.clkr,
7170 [GCC_UFS_CARD_UNIPRO_CORE_CLK_SRC] = &gcc_ufs_card_unipro_core_clk_src.clkr,
7171 [GCC_UFS_CARD_UNIPRO_CORE_HW_CTL_CLK] = &gcc_ufs_card_unipro_core_hw_ctl_clk.clkr,
7172 [GCC_UFS_PHY_AHB_CLK] = &gcc_ufs_phy_ahb_clk.clkr,
7173 [GCC_UFS_PHY_AXI_CLK] = &gcc_ufs_phy_axi_clk.clkr,
7174 [GCC_UFS_PHY_AXI_CLK_SRC] = &gcc_ufs_phy_axi_clk_src.clkr,
7175 [GCC_UFS_PHY_AXI_HW_CTL_CLK] = &gcc_ufs_phy_axi_hw_ctl_clk.clkr,
7176 [GCC_UFS_PHY_ICE_CORE_CLK] = &gcc_ufs_phy_ice_core_clk.clkr,
7177 [GCC_UFS_PHY_ICE_CORE_CLK_SRC] = &gcc_ufs_phy_ice_core_clk_src.clkr,
7178 [GCC_UFS_PHY_ICE_CORE_HW_CTL_CLK] = &gcc_ufs_phy_ice_core_hw_ctl_clk.clkr,
7179 [GCC_UFS_PHY_PHY_AUX_CLK] = &gcc_ufs_phy_phy_aux_clk.clkr,
7180 [GCC_UFS_PHY_PHY_AUX_CLK_SRC] = &gcc_ufs_phy_phy_aux_clk_src.clkr,
7181 [GCC_UFS_PHY_PHY_AUX_HW_CTL_CLK] = &gcc_ufs_phy_phy_aux_hw_ctl_clk.clkr,
7182 [GCC_UFS_PHY_RX_SYMBOL_0_CLK] = &gcc_ufs_phy_rx_symbol_0_clk.clkr,
7183 [GCC_UFS_PHY_RX_SYMBOL_0_CLK_SRC] = &gcc_ufs_phy_rx_symbol_0_clk_src.clkr,
7184 [GCC_UFS_PHY_RX_SYMBOL_1_CLK] = &gcc_ufs_phy_rx_symbol_1_clk.clkr,
7185 [GCC_UFS_PHY_RX_SYMBOL_1_CLK_SRC] = &gcc_ufs_phy_rx_symbol_1_clk_src.clkr,
7186 [GCC_UFS_PHY_TX_SYMBOL_0_CLK] = &gcc_ufs_phy_tx_symbol_0_clk.clkr,
7187 [GCC_UFS_PHY_TX_SYMBOL_0_CLK_SRC] = &gcc_ufs_phy_tx_symbol_0_clk_src.clkr,
7188 [GCC_UFS_PHY_UNIPRO_CORE_CLK] = &gcc_ufs_phy_unipro_core_clk.clkr,
7189 [GCC_UFS_PHY_UNIPRO_CORE_CLK_SRC] = &gcc_ufs_phy_unipro_core_clk_src.clkr,
7190 [GCC_UFS_PHY_UNIPRO_CORE_HW_CTL_CLK] = &gcc_ufs_phy_unipro_core_hw_ctl_clk.clkr,
7191 [GCC_UFS_REF_CLKREF_CLK] = &gcc_ufs_ref_clkref_clk.clkr,
7192 [GCC_USB2_HS0_CLKREF_CLK] = &gcc_usb2_hs0_clkref_clk.clkr,
7193 [GCC_USB2_HS1_CLKREF_CLK] = &gcc_usb2_hs1_clkref_clk.clkr,
7194 [GCC_USB2_HS2_CLKREF_CLK] = &gcc_usb2_hs2_clkref_clk.clkr,
7195 [GCC_USB2_HS3_CLKREF_CLK] = &gcc_usb2_hs3_clkref_clk.clkr,
7196 [GCC_USB30_MP_MASTER_CLK] = &gcc_usb30_mp_master_clk.clkr,
7197 [GCC_USB30_MP_MASTER_CLK_SRC] = &gcc_usb30_mp_master_clk_src.clkr,
7198 [GCC_USB30_MP_MOCK_UTMI_CLK] = &gcc_usb30_mp_mock_utmi_clk.clkr,
7199 [GCC_USB30_MP_MOCK_UTMI_CLK_SRC] = &gcc_usb30_mp_mock_utmi_clk_src.clkr,
7200 [GCC_USB30_MP_MOCK_UTMI_POSTDIV_CLK_SRC] = &gcc_usb30_mp_mock_utmi_postdiv_clk_src.clkr,
7201 [GCC_USB30_MP_SLEEP_CLK] = &gcc_usb30_mp_sleep_clk.clkr,
7202 [GCC_USB30_PRIM_MASTER_CLK] = &gcc_usb30_prim_master_clk.clkr,
7203 [GCC_USB30_PRIM_MASTER_CLK_SRC] = &gcc_usb30_prim_master_clk_src.clkr,
7204 [GCC_USB30_PRIM_MOCK_UTMI_CLK] = &gcc_usb30_prim_mock_utmi_clk.clkr,
7205 [GCC_USB30_PRIM_MOCK_UTMI_CLK_SRC] = &gcc_usb30_prim_mock_utmi_clk_src.clkr,
7206 [GCC_USB30_PRIM_MOCK_UTMI_POSTDIV_CLK_SRC] = &gcc_usb30_prim_mock_utmi_postdiv_clk_src.clkr,
7207 [GCC_USB30_PRIM_SLEEP_CLK] = &gcc_usb30_prim_sleep_clk.clkr,
7208 [GCC_USB30_SEC_MASTER_CLK] = &gcc_usb30_sec_master_clk.clkr,
7209 [GCC_USB30_SEC_MASTER_CLK_SRC] = &gcc_usb30_sec_master_clk_src.clkr,
7210 [GCC_USB30_SEC_MOCK_UTMI_CLK] = &gcc_usb30_sec_mock_utmi_clk.clkr,
7211 [GCC_USB30_SEC_MOCK_UTMI_CLK_SRC] = &gcc_usb30_sec_mock_utmi_clk_src.clkr,
7212 [GCC_USB30_SEC_MOCK_UTMI_POSTDIV_CLK_SRC] = &gcc_usb30_sec_mock_utmi_postdiv_clk_src.clkr,
7213 [GCC_USB30_SEC_SLEEP_CLK] = &gcc_usb30_sec_sleep_clk.clkr,
7214 [GCC_USB34_PRIM_PHY_PIPE_CLK_SRC] = &gcc_usb34_prim_phy_pipe_clk_src.clkr,
7215 [GCC_USB34_SEC_PHY_PIPE_CLK_SRC] = &gcc_usb34_sec_phy_pipe_clk_src.clkr,
7216 [GCC_USB3_MP0_CLKREF_CLK] = &gcc_usb3_mp0_clkref_clk.clkr,
7217 [GCC_USB3_MP1_CLKREF_CLK] = &gcc_usb3_mp1_clkref_clk.clkr,
7218 [GCC_USB3_MP_PHY_AUX_CLK] = &gcc_usb3_mp_phy_aux_clk.clkr,
7219 [GCC_USB3_MP_PHY_AUX_CLK_SRC] = &gcc_usb3_mp_phy_aux_clk_src.clkr,
7220 [GCC_USB3_MP_PHY_COM_AUX_CLK] = &gcc_usb3_mp_phy_com_aux_clk.clkr,
7221 [GCC_USB3_MP_PHY_PIPE_0_CLK] = &gcc_usb3_mp_phy_pipe_0_clk.clkr,
7222 [GCC_USB3_MP_PHY_PIPE_0_CLK_SRC] = &gcc_usb3_mp_phy_pipe_0_clk_src.clkr,
7223 [GCC_USB3_MP_PHY_PIPE_1_CLK] = &gcc_usb3_mp_phy_pipe_1_clk.clkr,
7224 [GCC_USB3_MP_PHY_PIPE_1_CLK_SRC] = &gcc_usb3_mp_phy_pipe_1_clk_src.clkr,
7225 [GCC_USB3_PRIM_PHY_AUX_CLK] = &gcc_usb3_prim_phy_aux_clk.clkr,
7226 [GCC_USB3_PRIM_PHY_AUX_CLK_SRC] = &gcc_usb3_prim_phy_aux_clk_src.clkr,
7227 [GCC_USB3_PRIM_PHY_COM_AUX_CLK] = &gcc_usb3_prim_phy_com_aux_clk.clkr,
7228 [GCC_USB3_PRIM_PHY_PIPE_CLK] = &gcc_usb3_prim_phy_pipe_clk.clkr,
7229 [GCC_USB3_PRIM_PHY_PIPE_CLK_SRC] = &gcc_usb3_prim_phy_pipe_clk_src.clkr,
7230 [GCC_USB3_SEC_PHY_AUX_CLK] = &gcc_usb3_sec_phy_aux_clk.clkr,
7231 [GCC_USB3_SEC_PHY_AUX_CLK_SRC] = &gcc_usb3_sec_phy_aux_clk_src.clkr,
7232 [GCC_USB3_SEC_PHY_COM_AUX_CLK] = &gcc_usb3_sec_phy_com_aux_clk.clkr,
7233 [GCC_USB3_SEC_PHY_PIPE_CLK] = &gcc_usb3_sec_phy_pipe_clk.clkr,
7234 [GCC_USB3_SEC_PHY_PIPE_CLK_SRC] = &gcc_usb3_sec_phy_pipe_clk_src.clkr,
7235 [GCC_USB4_1_CFG_AHB_CLK] = &gcc_usb4_1_cfg_ahb_clk.clkr,
7236 [GCC_USB4_1_DP_CLK] = &gcc_usb4_1_dp_clk.clkr,
7237 [GCC_USB4_1_MASTER_CLK] = &gcc_usb4_1_master_clk.clkr,
7238 [GCC_USB4_1_MASTER_CLK_SRC] = &gcc_usb4_1_master_clk_src.clkr,
7239 [GCC_USB4_1_PHY_DP_CLK_SRC] = &gcc_usb4_1_phy_dp_clk_src.clkr,
7240 [GCC_USB4_1_PHY_P2RR2P_PIPE_CLK] = &gcc_usb4_1_phy_p2rr2p_pipe_clk.clkr,
7241 [GCC_USB4_1_PHY_P2RR2P_PIPE_CLK_SRC] = &gcc_usb4_1_phy_p2rr2p_pipe_clk_src.clkr,
7242 [GCC_USB4_1_PHY_PCIE_PIPE_CLK] = &gcc_usb4_1_phy_pcie_pipe_clk.clkr,
7243 [GCC_USB4_1_PHY_PCIE_PIPE_CLK_SRC] = &gcc_usb4_1_phy_pcie_pipe_clk_src.clkr,
7244 [GCC_USB4_1_PHY_PCIE_PIPE_MUX_CLK_SRC] = &gcc_usb4_1_phy_pcie_pipe_mux_clk_src.clkr,
7245 [GCC_USB4_1_PHY_PCIE_PIPEGMUX_CLK_SRC] = &gcc_usb4_1_phy_pcie_pipegmux_clk_src.clkr,
7246 [GCC_USB4_1_PHY_RX0_CLK] = &gcc_usb4_1_phy_rx0_clk.clkr,
7247 [GCC_USB4_1_PHY_RX0_CLK_SRC] = &gcc_usb4_1_phy_rx0_clk_src.clkr,
7248 [GCC_USB4_1_PHY_RX1_CLK] = &gcc_usb4_1_phy_rx1_clk.clkr,
7249 [GCC_USB4_1_PHY_RX1_CLK_SRC] = &gcc_usb4_1_phy_rx1_clk_src.clkr,
7250 [GCC_USB4_1_PHY_SYS_CLK_SRC] = &gcc_usb4_1_phy_sys_clk_src.clkr,
7251 [GCC_USB4_1_PHY_USB_PIPE_CLK] = &gcc_usb4_1_phy_usb_pipe_clk.clkr,
7252 [GCC_USB4_1_SB_IF_CLK] = &gcc_usb4_1_sb_if_clk.clkr,
7253 [GCC_USB4_1_SB_IF_CLK_SRC] = &gcc_usb4_1_sb_if_clk_src.clkr,
7254 [GCC_USB4_1_SYS_CLK] = &gcc_usb4_1_sys_clk.clkr,
7255 [GCC_USB4_1_TMU_CLK] = &gcc_usb4_1_tmu_clk.clkr,
7256 [GCC_USB4_1_TMU_CLK_SRC] = &gcc_usb4_1_tmu_clk_src.clkr,
7257 [GCC_USB4_CFG_AHB_CLK] = &gcc_usb4_cfg_ahb_clk.clkr,
7258 [GCC_USB4_CLKREF_CLK] = &gcc_usb4_clkref_clk.clkr,
7259 [GCC_USB4_DP_CLK] = &gcc_usb4_dp_clk.clkr,
7260 [GCC_USB4_EUD_CLKREF_CLK] = &gcc_usb4_eud_clkref_clk.clkr,
7261 [GCC_USB4_MASTER_CLK] = &gcc_usb4_master_clk.clkr,
7262 [GCC_USB4_MASTER_CLK_SRC] = &gcc_usb4_master_clk_src.clkr,
7263 [GCC_USB4_PHY_DP_CLK_SRC] = &gcc_usb4_phy_dp_clk_src.clkr,
7264 [GCC_USB4_PHY_P2RR2P_PIPE_CLK] = &gcc_usb4_phy_p2rr2p_pipe_clk.clkr,
7265 [GCC_USB4_PHY_P2RR2P_PIPE_CLK_SRC] = &gcc_usb4_phy_p2rr2p_pipe_clk_src.clkr,
7266 [GCC_USB4_PHY_PCIE_PIPE_CLK] = &gcc_usb4_phy_pcie_pipe_clk.clkr,
7267 [GCC_USB4_PHY_PCIE_PIPE_CLK_SRC] = &gcc_usb4_phy_pcie_pipe_clk_src.clkr,
7268 [GCC_USB4_PHY_PCIE_PIPE_MUX_CLK_SRC] = &gcc_usb4_phy_pcie_pipe_mux_clk_src.clkr,
7269 [GCC_USB4_PHY_PCIE_PIPEGMUX_CLK_SRC] = &gcc_usb4_phy_pcie_pipegmux_clk_src.clkr,
7270 [GCC_USB4_PHY_RX0_CLK] = &gcc_usb4_phy_rx0_clk.clkr,
7271 [GCC_USB4_PHY_RX0_CLK_SRC] = &gcc_usb4_phy_rx0_clk_src.clkr,
7272 [GCC_USB4_PHY_RX1_CLK] = &gcc_usb4_phy_rx1_clk.clkr,
7273 [GCC_USB4_PHY_RX1_CLK_SRC] = &gcc_usb4_phy_rx1_clk_src.clkr,
7274 [GCC_USB4_PHY_SYS_CLK_SRC] = &gcc_usb4_phy_sys_clk_src.clkr,
7275 [GCC_USB4_PHY_USB_PIPE_CLK] = &gcc_usb4_phy_usb_pipe_clk.clkr,
7276 [GCC_USB4_SB_IF_CLK] = &gcc_usb4_sb_if_clk.clkr,
7277 [GCC_USB4_SB_IF_CLK_SRC] = &gcc_usb4_sb_if_clk_src.clkr,
7278 [GCC_USB4_SYS_CLK] = &gcc_usb4_sys_clk.clkr,
7279 [GCC_USB4_TMU_CLK] = &gcc_usb4_tmu_clk.clkr,
7280 [GCC_USB4_TMU_CLK_SRC] = &gcc_usb4_tmu_clk_src.clkr,
7281 [GCC_VIDEO_AXI0_CLK] = &gcc_video_axi0_clk.clkr,
7282 [GCC_VIDEO_AXI1_CLK] = &gcc_video_axi1_clk.clkr,
7283 [GCC_VIDEO_CVP_THROTTLE_CLK] = &gcc_video_cvp_throttle_clk.clkr,
7284 [GCC_VIDEO_VCODEC_THROTTLE_CLK] = &gcc_video_vcodec_throttle_clk.clkr,
7287 static const struct qcom_reset_map gcc_sc8280xp_resets[] = {
7288 [GCC_EMAC0_BCR] = { 0xaa000 },
7289 [GCC_EMAC1_BCR] = { 0xba000 },
7290 [GCC_PCIE_0_LINK_DOWN_BCR] = { 0x6c014 },
7291 [GCC_PCIE_0_NOCSR_COM_PHY_BCR] = { 0x6c020 },
7292 [GCC_PCIE_0_PHY_BCR] = { 0x6c01c },
7293 [GCC_PCIE_0_PHY_NOCSR_COM_PHY_BCR] = { 0x6c028 },
7294 [GCC_PCIE_0_TUNNEL_BCR] = { 0xa4000 },
7295 [GCC_PCIE_1_LINK_DOWN_BCR] = { 0x8e014 },
7296 [GCC_PCIE_1_NOCSR_COM_PHY_BCR] = { 0x8e020 },
7297 [GCC_PCIE_1_PHY_BCR] = { 0x8e01c },
7298 [GCC_PCIE_1_PHY_NOCSR_COM_PHY_BCR] = { 0x8e000 },
7299 [GCC_PCIE_1_TUNNEL_BCR] = { 0x8d000 },
7300 [GCC_PCIE_2A_BCR] = { 0x9d000 },
7301 [GCC_PCIE_2A_LINK_DOWN_BCR] = { 0x9d13c },
7302 [GCC_PCIE_2A_NOCSR_COM_PHY_BCR] = { 0x9d148 },
7303 [GCC_PCIE_2A_PHY_BCR] = { 0x9d144 },
7304 [GCC_PCIE_2A_PHY_NOCSR_COM_PHY_BCR] = { 0x9d14c },
7305 [GCC_PCIE_2B_BCR] = { 0x9e000 },
7306 [GCC_PCIE_2B_LINK_DOWN_BCR] = { 0x9e084 },
7307 [GCC_PCIE_2B_NOCSR_COM_PHY_BCR] = { 0x9e090 },
7308 [GCC_PCIE_2B_PHY_BCR] = { 0x9e08c },
7309 [GCC_PCIE_2B_PHY_NOCSR_COM_PHY_BCR] = { 0x9e094 },
7310 [GCC_PCIE_3A_BCR] = { 0xa0000 },
7311 [GCC_PCIE_3A_LINK_DOWN_BCR] = { 0xa00f0 },
7312 [GCC_PCIE_3A_NOCSR_COM_PHY_BCR] = { 0xa00fc },
7313 [GCC_PCIE_3A_PHY_BCR] = { 0xa00e0 },
7314 [GCC_PCIE_3A_PHY_NOCSR_COM_PHY_BCR] = { 0xa00e4 },
7315 [GCC_PCIE_3B_BCR] = { 0xa2000 },
7316 [GCC_PCIE_3B_LINK_DOWN_BCR] = { 0xa20e0 },
7317 [GCC_PCIE_3B_NOCSR_COM_PHY_BCR] = { 0xa20ec },
7318 [GCC_PCIE_3B_PHY_BCR] = { 0xa20e8 },
7319 [GCC_PCIE_3B_PHY_NOCSR_COM_PHY_BCR] = { 0xa20f0 },
7320 [GCC_PCIE_4_BCR] = { 0x6b000 },
7321 [GCC_PCIE_4_LINK_DOWN_BCR] = { 0x6b300 },
7322 [GCC_PCIE_4_NOCSR_COM_PHY_BCR] = { 0x6b30c },
7323 [GCC_PCIE_4_PHY_BCR] = { 0x6b308 },
7324 [GCC_PCIE_4_PHY_NOCSR_COM_PHY_BCR] = { 0x6b310 },
7325 [GCC_PCIE_PHY_CFG_AHB_BCR] = { 0x6f00c },
7326 [GCC_PCIE_PHY_COM_BCR] = { 0x6f010 },
7327 [GCC_PCIE_RSCC_BCR] = { 0xae000 },
7328 [GCC_QUSB2PHY_HS0_MP_BCR] = { 0x12008 },
7329 [GCC_QUSB2PHY_HS1_MP_BCR] = { 0x1200c },
7330 [GCC_QUSB2PHY_HS2_MP_BCR] = { 0x12010 },
7331 [GCC_QUSB2PHY_HS3_MP_BCR] = { 0x12014 },
7332 [GCC_QUSB2PHY_PRIM_BCR] = { 0x12000 },
7333 [GCC_QUSB2PHY_SEC_BCR] = { 0x12004 },
7334 [GCC_SDCC2_BCR] = { 0x14000 },
7335 [GCC_SDCC4_BCR] = { 0x16000 },
7336 [GCC_UFS_CARD_BCR] = { 0x75000 },
7337 [GCC_UFS_PHY_BCR] = { 0x77000 },
7338 [GCC_USB2_PHY_PRIM_BCR] = { 0x50028 },
7339 [GCC_USB2_PHY_SEC_BCR] = { 0x5002c },
7340 [GCC_USB30_MP_BCR] = { 0xab000 },
7341 [GCC_USB30_PRIM_BCR] = { 0xf000 },
7342 [GCC_USB30_SEC_BCR] = { 0x10000 },
7343 [GCC_USB3_DP_PHY_PRIM_BCR] = { 0x50008 },
7344 [GCC_USB3_DP_PHY_SEC_BCR] = { 0x50014 },
7345 [GCC_USB3_PHY_PRIM_BCR] = { 0x50000 },
7346 [GCC_USB3_PHY_SEC_BCR] = { 0x5000c },
7347 [GCC_USB3_UNIPHY_MP0_BCR] = { 0x50018 },
7348 [GCC_USB3_UNIPHY_MP1_BCR] = { 0x5001c },
7349 [GCC_USB3PHY_PHY_PRIM_BCR] = { 0x50004 },
7350 [GCC_USB3PHY_PHY_SEC_BCR] = { 0x50010 },
7351 [GCC_USB3UNIPHY_PHY_MP0_BCR] = { 0x50020 },
7352 [GCC_USB3UNIPHY_PHY_MP1_BCR] = { 0x50024 },
7353 [GCC_USB4_1_BCR] = { 0xb8000 },
7354 [GCC_USB4_1_DP_PHY_PRIM_BCR] = { 0xb9020 },
7355 [GCC_USB4_1_DPPHY_AUX_BCR] = { 0xb9024 },
7356 [GCC_USB4_1_PHY_PRIM_BCR] = { 0xb9018 },
7357 [GCC_USB4_BCR] = { 0x2a000 },
7358 [GCC_USB4_DP_PHY_PRIM_BCR] = { 0x4a008 },
7359 [GCC_USB4_DPPHY_AUX_BCR] = { 0x4a00c },
7360 [GCC_USB4_PHY_PRIM_BCR] = { 0x4a000 },
7361 [GCC_USB4PHY_1_PHY_PRIM_BCR] = { 0xb901c },
7362 [GCC_USB4PHY_PHY_PRIM_BCR] = { 0x4a004 },
7363 [GCC_USB_PHY_CFG_AHB2PHY_BCR] = { 0x6a000 },
7364 [GCC_VIDEO_BCR] = { 0x28000 },
7365 [GCC_VIDEO_AXI0_CLK_ARES] = { 0x28010, 2 },
7366 [GCC_VIDEO_AXI1_CLK_ARES] = { 0x28018, 2 },
7369 static struct gdsc *gcc_sc8280xp_gdscs[] = {
7370 [PCIE_0_TUNNEL_GDSC] = &pcie_0_tunnel_gdsc,
7371 [PCIE_1_TUNNEL_GDSC] = &pcie_1_tunnel_gdsc,
7372 [PCIE_2A_GDSC] = &pcie_2a_gdsc,
7373 [PCIE_2B_GDSC] = &pcie_2b_gdsc,
7374 [PCIE_3A_GDSC] = &pcie_3a_gdsc,
7375 [PCIE_3B_GDSC] = &pcie_3b_gdsc,
7376 [PCIE_4_GDSC] = &pcie_4_gdsc,
7377 [UFS_CARD_GDSC] = &ufs_card_gdsc,
7378 [UFS_PHY_GDSC] = &ufs_phy_gdsc,
7379 [USB30_MP_GDSC] = &usb30_mp_gdsc,
7380 [USB30_PRIM_GDSC] = &usb30_prim_gdsc,
7381 [USB30_SEC_GDSC] = &usb30_sec_gdsc,
7384 static const struct clk_rcg_dfs_data gcc_dfs_clocks[] = {
7385 DEFINE_RCG_DFS(gcc_qupv3_wrap0_s0_clk_src),
7386 DEFINE_RCG_DFS(gcc_qupv3_wrap0_s1_clk_src),
7387 DEFINE_RCG_DFS(gcc_qupv3_wrap0_s2_clk_src),
7388 DEFINE_RCG_DFS(gcc_qupv3_wrap0_s3_clk_src),
7389 DEFINE_RCG_DFS(gcc_qupv3_wrap0_s4_clk_src),
7390 DEFINE_RCG_DFS(gcc_qupv3_wrap0_s5_clk_src),
7391 DEFINE_RCG_DFS(gcc_qupv3_wrap0_s6_clk_src),
7392 DEFINE_RCG_DFS(gcc_qupv3_wrap0_s7_clk_src),
7393 DEFINE_RCG_DFS(gcc_qupv3_wrap1_s0_clk_src),
7394 DEFINE_RCG_DFS(gcc_qupv3_wrap1_s1_clk_src),
7395 DEFINE_RCG_DFS(gcc_qupv3_wrap1_s2_clk_src),
7396 DEFINE_RCG_DFS(gcc_qupv3_wrap1_s3_clk_src),
7397 DEFINE_RCG_DFS(gcc_qupv3_wrap1_s4_clk_src),
7398 DEFINE_RCG_DFS(gcc_qupv3_wrap1_s5_clk_src),
7399 DEFINE_RCG_DFS(gcc_qupv3_wrap1_s6_clk_src),
7400 DEFINE_RCG_DFS(gcc_qupv3_wrap1_s7_clk_src),
7401 DEFINE_RCG_DFS(gcc_qupv3_wrap2_s0_clk_src),
7402 DEFINE_RCG_DFS(gcc_qupv3_wrap2_s1_clk_src),
7403 DEFINE_RCG_DFS(gcc_qupv3_wrap2_s2_clk_src),
7404 DEFINE_RCG_DFS(gcc_qupv3_wrap2_s3_clk_src),
7405 DEFINE_RCG_DFS(gcc_qupv3_wrap2_s4_clk_src),
7406 DEFINE_RCG_DFS(gcc_qupv3_wrap2_s5_clk_src),
7407 DEFINE_RCG_DFS(gcc_qupv3_wrap2_s6_clk_src),
7408 DEFINE_RCG_DFS(gcc_qupv3_wrap2_s7_clk_src),
7411 static const struct regmap_config gcc_sc8280xp_regmap_config = {
7415 .max_register = 0xc3014,
7419 static const struct qcom_cc_desc gcc_sc8280xp_desc = {
7420 .config = &gcc_sc8280xp_regmap_config,
7421 .clks = gcc_sc8280xp_clocks,
7422 .num_clks = ARRAY_SIZE(gcc_sc8280xp_clocks),
7423 .resets = gcc_sc8280xp_resets,
7424 .num_resets = ARRAY_SIZE(gcc_sc8280xp_resets),
7425 .gdscs = gcc_sc8280xp_gdscs,
7426 .num_gdscs = ARRAY_SIZE(gcc_sc8280xp_gdscs),
7429 static int gcc_sc8280xp_probe(struct platform_device *pdev)
7431 struct regmap *regmap;
7434 regmap = qcom_cc_map(pdev, &gcc_sc8280xp_desc);
7436 return PTR_ERR(regmap);
7439 * Keep the clocks always-ON
7440 * GCC_CAMERA_AHB_CLK, GCC_CAMERA_XO_CLK, GCC_DISP_AHB_CLK,
7441 * GCC_DISP_XO_CLK, GCC_GPU_CFG_AHB_CLK, GCC_VIDEO_AHB_CLK,
7442 * GCC_VIDEO_XO_CLK, GCC_DISP1_AHB_CLK, GCC_DISP1_XO_CLK
7444 regmap_update_bits(regmap, 0x26004, BIT(0), BIT(0));
7445 regmap_update_bits(regmap, 0x26020, BIT(0), BIT(0));
7446 regmap_update_bits(regmap, 0x27004, BIT(0), BIT(0));
7447 regmap_update_bits(regmap, 0x27028, BIT(0), BIT(0));
7448 regmap_update_bits(regmap, 0x71004, BIT(0), BIT(0));
7449 regmap_update_bits(regmap, 0x28004, BIT(0), BIT(0));
7450 regmap_update_bits(regmap, 0x28028, BIT(0), BIT(0));
7451 regmap_update_bits(regmap, 0xbb004, BIT(0), BIT(0));
7452 regmap_update_bits(regmap, 0xbb028, BIT(0), BIT(0));
7454 ret = qcom_cc_register_rcg_dfs(regmap, gcc_dfs_clocks, ARRAY_SIZE(gcc_dfs_clocks));
7458 return qcom_cc_really_probe(pdev, &gcc_sc8280xp_desc, regmap);
7461 static const struct of_device_id gcc_sc8280xp_match_table[] = {
7462 { .compatible = "qcom,gcc-sc8280xp" },
7465 MODULE_DEVICE_TABLE(of, gcc_sc8280xp_match_table);
7467 static struct platform_driver gcc_sc8280xp_driver = {
7468 .probe = gcc_sc8280xp_probe,
7470 .name = "gcc-sc8280xp",
7471 .of_match_table = gcc_sc8280xp_match_table,
7475 static int __init gcc_sc8280xp_init(void)
7477 return platform_driver_register(&gcc_sc8280xp_driver);
7479 subsys_initcall(gcc_sc8280xp_init);
7481 static void __exit gcc_sc8280xp_exit(void)
7483 platform_driver_unregister(&gcc_sc8280xp_driver);
7485 module_exit(gcc_sc8280xp_exit);
7487 MODULE_DESCRIPTION("Qualcomm SC8280XP GCC driver");
7488 MODULE_LICENSE("GPL");