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"
23 #include "clk-regmap-phy-mux.h"
28 /* Need to match the order of clocks in DT binding */
32 DT_UFS_PHY_RX_SYMBOL_0_CLK,
33 DT_UFS_PHY_RX_SYMBOL_1_CLK,
34 DT_UFS_PHY_TX_SYMBOL_0_CLK,
35 DT_UFS_CARD_RX_SYMBOL_0_CLK,
36 DT_UFS_CARD_RX_SYMBOL_1_CLK,
37 DT_UFS_CARD_TX_SYMBOL_0_CLK,
38 DT_USB3_PHY_WRAPPER_GCC_USB30_PIPE_CLK,
39 DT_GCC_USB4_PHY_PIPEGMUX_CLK_SRC,
40 DT_GCC_USB4_PHY_DP_GMUX_CLK_SRC,
41 DT_GCC_USB4_PHY_SYS_PIPEGMUX_CLK_SRC,
42 DT_USB4_PHY_GCC_USB4_PCIE_PIPE_CLK,
43 DT_USB4_PHY_GCC_USB4RTR_MAX_PIPE_CLK,
44 DT_QUSB4PHY_GCC_USB4_RX0_CLK,
45 DT_QUSB4PHY_GCC_USB4_RX1_CLK,
46 DT_USB3_UNI_PHY_SEC_GCC_USB30_PIPE_CLK,
47 DT_GCC_USB4_1_PHY_PIPEGMUX_CLK_SRC,
48 DT_GCC_USB4_1_PHY_DP_GMUX_CLK_SRC,
49 DT_GCC_USB4_1_PHY_SYS_PIPEGMUX_CLK_SRC,
50 DT_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK,
51 DT_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK,
52 DT_QUSB4PHY_1_GCC_USB4_RX0_CLK,
53 DT_QUSB4PHY_1_GCC_USB4_RX1_CLK,
54 DT_USB3_UNI_PHY_MP_GCC_USB30_PIPE_0_CLK,
55 DT_USB3_UNI_PHY_MP_GCC_USB30_PIPE_1_CLK,
74 P_GCC_USB3_PRIM_PHY_PIPE_CLK_SRC,
75 P_GCC_USB3_SEC_PHY_PIPE_CLK_SRC,
76 P_GCC_USB4_1_PHY_DP_GMUX_CLK_SRC,
77 P_GCC_USB4_1_PHY_PCIE_PIPE_CLK_SRC,
78 P_GCC_USB4_1_PHY_PCIE_PIPEGMUX_CLK_SRC,
79 P_GCC_USB4_1_PHY_PIPEGMUX_CLK_SRC,
80 P_GCC_USB4_1_PHY_SYS_PIPEGMUX_CLK_SRC,
81 P_GCC_USB4_PHY_DP_GMUX_CLK_SRC,
82 P_GCC_USB4_PHY_PCIE_PIPE_CLK_SRC,
83 P_GCC_USB4_PHY_PCIE_PIPEGMUX_CLK_SRC,
84 P_GCC_USB4_PHY_PIPEGMUX_CLK_SRC,
85 P_GCC_USB4_PHY_SYS_PIPEGMUX_CLK_SRC,
86 P_QUSB4PHY_1_GCC_USB4_RX0_CLK,
87 P_QUSB4PHY_1_GCC_USB4_RX1_CLK,
88 P_QUSB4PHY_GCC_USB4_RX0_CLK,
89 P_QUSB4PHY_GCC_USB4_RX1_CLK,
93 P_UFS_CARD_RX_SYMBOL_0_CLK,
94 P_UFS_CARD_RX_SYMBOL_1_CLK,
95 P_UFS_CARD_TX_SYMBOL_0_CLK,
96 P_UFS_PHY_RX_SYMBOL_0_CLK,
97 P_UFS_PHY_RX_SYMBOL_1_CLK,
98 P_UFS_PHY_TX_SYMBOL_0_CLK,
99 P_USB3_PHY_WRAPPER_GCC_USB30_PIPE_CLK,
100 P_USB3_UNI_PHY_MP_GCC_USB30_PIPE_0_CLK,
101 P_USB3_UNI_PHY_MP_GCC_USB30_PIPE_1_CLK,
102 P_USB3_UNI_PHY_SEC_GCC_USB30_PIPE_CLK,
103 P_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK,
104 P_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK,
105 P_USB4_PHY_GCC_USB4_PCIE_PIPE_CLK,
106 P_USB4_PHY_GCC_USB4RTR_MAX_PIPE_CLK,
109 static const struct clk_parent_data gcc_parent_data_tcxo = { .index = DT_BI_TCXO };
111 static struct clk_alpha_pll gcc_gpll0 = {
113 .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID],
115 .enable_reg = 0x52028,
116 .enable_mask = BIT(0),
117 .hw.init = &(const struct clk_init_data) {
119 .parent_data = &gcc_parent_data_tcxo,
121 .ops = &clk_alpha_pll_fixed_lucid_5lpe_ops,
126 static const struct clk_div_table post_div_table_gcc_gpll0_out_even[] = {
131 static struct clk_alpha_pll_postdiv gcc_gpll0_out_even = {
134 .post_div_table = post_div_table_gcc_gpll0_out_even,
135 .num_post_div = ARRAY_SIZE(post_div_table_gcc_gpll0_out_even),
137 .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID],
138 .clkr.hw.init = &(const struct clk_init_data) {
139 .name = "gcc_gpll0_out_even",
140 .parent_hws = (const struct clk_hw*[]){
144 .ops = &clk_alpha_pll_postdiv_lucid_5lpe_ops,
148 static struct clk_alpha_pll gcc_gpll2 = {
150 .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID],
152 .enable_reg = 0x52028,
153 .enable_mask = BIT(2),
154 .hw.init = &(const struct clk_init_data) {
156 .parent_data = &gcc_parent_data_tcxo,
158 .ops = &clk_alpha_pll_fixed_lucid_5lpe_ops,
163 static struct clk_alpha_pll gcc_gpll4 = {
165 .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID],
167 .enable_reg = 0x52028,
168 .enable_mask = BIT(4),
169 .hw.init = &(const struct clk_init_data) {
171 .parent_data = &gcc_parent_data_tcxo,
173 .ops = &clk_alpha_pll_fixed_lucid_5lpe_ops,
178 static struct clk_alpha_pll gcc_gpll7 = {
180 .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID],
182 .enable_reg = 0x52028,
183 .enable_mask = BIT(7),
184 .hw.init = &(const struct clk_init_data) {
186 .parent_data = &gcc_parent_data_tcxo,
188 .ops = &clk_alpha_pll_fixed_lucid_5lpe_ops,
193 static struct clk_alpha_pll gcc_gpll8 = {
195 .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID],
197 .enable_reg = 0x52028,
198 .enable_mask = BIT(8),
199 .hw.init = &(const struct clk_init_data) {
201 .parent_data = &gcc_parent_data_tcxo,
203 .ops = &clk_alpha_pll_fixed_lucid_5lpe_ops,
208 static struct clk_alpha_pll gcc_gpll9 = {
210 .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID],
212 .enable_reg = 0x52028,
213 .enable_mask = BIT(9),
214 .hw.init = &(const struct clk_init_data) {
216 .parent_data = &gcc_parent_data_tcxo,
218 .ops = &clk_alpha_pll_fixed_lucid_5lpe_ops,
223 static struct clk_rcg2 gcc_usb4_1_phy_pcie_pipe_clk_src;
224 static struct clk_rcg2 gcc_usb4_phy_pcie_pipe_clk_src;
226 static const struct parent_map gcc_parent_map_0[] = {
228 { P_GCC_GPLL0_OUT_MAIN, 1 },
229 { P_GCC_GPLL0_OUT_EVEN, 6 },
232 static const struct clk_parent_data gcc_parent_data_0[] = {
233 { .index = DT_BI_TCXO },
234 { .hw = &gcc_gpll0.clkr.hw },
235 { .hw = &gcc_gpll0_out_even.clkr.hw },
238 static const struct parent_map gcc_parent_map_1[] = {
243 static const struct clk_parent_data gcc_parent_data_1[] = {
244 { .index = DT_BI_TCXO },
245 { .index = DT_SLEEP_CLK },
248 static const struct parent_map gcc_parent_map_2[] = {
250 { P_GCC_GPLL0_OUT_MAIN, 1 },
252 { P_GCC_GPLL0_OUT_EVEN, 6 },
255 static const struct clk_parent_data gcc_parent_data_2[] = {
256 { .index = DT_BI_TCXO },
257 { .hw = &gcc_gpll0.clkr.hw },
258 { .index = DT_SLEEP_CLK },
259 { .hw = &gcc_gpll0_out_even.clkr.hw },
262 static const struct parent_map gcc_parent_map_3[] = {
266 static const struct clk_parent_data gcc_parent_data_3[] = {
267 { .index = DT_BI_TCXO },
270 static const struct parent_map gcc_parent_map_4[] = {
272 { P_GCC_GPLL7_OUT_MAIN, 2 },
273 { P_GCC_GPLL4_OUT_MAIN, 5 },
274 { P_GCC_GPLL0_OUT_EVEN, 6 },
277 static const struct clk_parent_data gcc_parent_data_4[] = {
278 { .index = DT_BI_TCXO },
279 { .hw = &gcc_gpll7.clkr.hw },
280 { .hw = &gcc_gpll4.clkr.hw },
281 { .hw = &gcc_gpll0_out_even.clkr.hw },
284 static const struct parent_map gcc_parent_map_5[] = {
286 { P_GCC_GPLL0_OUT_MAIN, 1 },
287 { P_GCC_GPLL8_OUT_MAIN, 2 },
288 { P_GCC_GPLL0_OUT_EVEN, 6 },
291 static const struct clk_parent_data gcc_parent_data_5[] = {
292 { .index = DT_BI_TCXO },
293 { .hw = &gcc_gpll0.clkr.hw },
294 { .hw = &gcc_gpll8.clkr.hw },
295 { .hw = &gcc_gpll0_out_even.clkr.hw },
298 static const struct parent_map gcc_parent_map_6[] = {
300 { P_GCC_GPLL0_OUT_MAIN, 1 },
301 { P_GCC_GPLL7_OUT_MAIN, 2 },
304 static const struct clk_parent_data gcc_parent_data_6[] = {
305 { .index = DT_BI_TCXO },
306 { .hw = &gcc_gpll0.clkr.hw },
307 { .hw = &gcc_gpll7.clkr.hw },
310 static const struct parent_map gcc_parent_map_7[] = {
312 { P_GCC_GPLL0_OUT_MAIN, 1 },
313 { P_GCC_GPLL2_OUT_MAIN, 2 },
316 static const struct clk_parent_data gcc_parent_data_7[] = {
317 { .index = DT_BI_TCXO },
318 { .hw = &gcc_gpll0.clkr.hw },
319 { .hw = &gcc_gpll2.clkr.hw },
322 static const struct parent_map gcc_parent_map_8[] = {
324 { P_GCC_GPLL7_OUT_MAIN, 2 },
325 { P_RXC0_REF_CLK, 3 },
326 { P_GCC_GPLL0_OUT_EVEN, 6 },
329 static const struct clk_parent_data gcc_parent_data_8[] = {
330 { .index = DT_BI_TCXO },
331 { .hw = &gcc_gpll7.clkr.hw },
332 { .index = DT_RXC0_REF_CLK },
333 { .hw = &gcc_gpll0_out_even.clkr.hw },
336 static const struct parent_map gcc_parent_map_9[] = {
338 { P_GCC_GPLL7_OUT_MAIN, 2 },
339 { P_RXC1_REF_CLK, 3 },
340 { P_GCC_GPLL0_OUT_EVEN, 6 },
343 static const struct clk_parent_data gcc_parent_data_9[] = {
344 { .index = DT_BI_TCXO },
345 { .hw = &gcc_gpll7.clkr.hw },
346 { .index = DT_RXC1_REF_CLK },
347 { .hw = &gcc_gpll0_out_even.clkr.hw },
350 static const struct parent_map gcc_parent_map_15[] = {
352 { P_GCC_GPLL0_OUT_MAIN, 1 },
353 { P_GCC_GPLL9_OUT_MAIN, 2 },
354 { P_GCC_GPLL4_OUT_MAIN, 5 },
355 { P_GCC_GPLL0_OUT_EVEN, 6 },
358 static const struct clk_parent_data gcc_parent_data_15[] = {
359 { .index = DT_BI_TCXO },
360 { .hw = &gcc_gpll0.clkr.hw },
361 { .hw = &gcc_gpll9.clkr.hw },
362 { .hw = &gcc_gpll4.clkr.hw },
363 { .hw = &gcc_gpll0_out_even.clkr.hw },
366 static const struct parent_map gcc_parent_map_16[] = {
367 { P_UFS_CARD_RX_SYMBOL_0_CLK, 0 },
371 static const struct clk_parent_data gcc_parent_data_16[] = {
372 { .index = DT_UFS_CARD_RX_SYMBOL_0_CLK },
373 { .index = DT_BI_TCXO },
376 static const struct parent_map gcc_parent_map_17[] = {
377 { P_UFS_CARD_RX_SYMBOL_1_CLK, 0 },
381 static const struct clk_parent_data gcc_parent_data_17[] = {
382 { .index = DT_UFS_CARD_RX_SYMBOL_1_CLK },
383 { .index = DT_BI_TCXO },
386 static const struct parent_map gcc_parent_map_18[] = {
387 { P_UFS_CARD_TX_SYMBOL_0_CLK, 0 },
391 static const struct clk_parent_data gcc_parent_data_18[] = {
392 { .index = DT_UFS_CARD_TX_SYMBOL_0_CLK },
393 { .index = DT_BI_TCXO },
396 static const struct parent_map gcc_parent_map_19[] = {
397 { P_UFS_PHY_RX_SYMBOL_0_CLK, 0 },
401 static const struct clk_parent_data gcc_parent_data_19[] = {
402 { .index = DT_UFS_PHY_RX_SYMBOL_0_CLK },
403 { .index = DT_BI_TCXO },
406 static const struct parent_map gcc_parent_map_20[] = {
407 { P_UFS_PHY_RX_SYMBOL_1_CLK, 0 },
411 static const struct clk_parent_data gcc_parent_data_20[] = {
412 { .index = DT_UFS_PHY_RX_SYMBOL_1_CLK },
413 { .index = DT_BI_TCXO },
416 static const struct parent_map gcc_parent_map_21[] = {
417 { P_UFS_PHY_TX_SYMBOL_0_CLK, 0 },
421 static const struct clk_parent_data gcc_parent_data_21[] = {
422 { .index = DT_UFS_PHY_TX_SYMBOL_0_CLK },
423 { .index = DT_BI_TCXO },
426 static const struct parent_map gcc_parent_map_22[] = {
427 { P_USB3_PHY_WRAPPER_GCC_USB30_PIPE_CLK, 0 },
431 static const struct clk_parent_data gcc_parent_data_22[] = {
432 { .index = DT_USB3_PHY_WRAPPER_GCC_USB30_PIPE_CLK },
433 { .index = DT_BI_TCXO },
436 static const struct parent_map gcc_parent_map_23[] = {
437 { P_USB3_UNI_PHY_SEC_GCC_USB30_PIPE_CLK, 0 },
441 static const struct clk_parent_data gcc_parent_data_23[] = {
442 { .index = DT_USB3_UNI_PHY_SEC_GCC_USB30_PIPE_CLK },
443 { .index = DT_BI_TCXO },
446 static struct clk_regmap_mux gcc_usb3_prim_phy_pipe_clk_src = {
450 .parent_map = gcc_parent_map_22,
452 .hw.init = &(const struct clk_init_data) {
453 .name = "gcc_usb3_prim_phy_pipe_clk_src",
454 .parent_data = gcc_parent_data_22,
455 .num_parents = ARRAY_SIZE(gcc_parent_data_22),
456 .ops = &clk_regmap_mux_closest_ops,
461 static struct clk_regmap_mux gcc_usb3_sec_phy_pipe_clk_src = {
465 .parent_map = gcc_parent_map_23,
467 .hw.init = &(const struct clk_init_data) {
468 .name = "gcc_usb3_sec_phy_pipe_clk_src",
469 .parent_data = gcc_parent_data_23,
470 .num_parents = ARRAY_SIZE(gcc_parent_data_23),
471 .ops = &clk_regmap_mux_closest_ops,
476 static const struct parent_map gcc_parent_map_24[] = {
477 { P_USB3_UNI_PHY_MP_GCC_USB30_PIPE_0_CLK, 0 },
481 static const struct clk_parent_data gcc_parent_data_24[] = {
482 { .index = DT_USB3_UNI_PHY_MP_GCC_USB30_PIPE_0_CLK },
483 { .index = DT_BI_TCXO },
486 static const struct parent_map gcc_parent_map_25[] = {
487 { P_USB3_UNI_PHY_MP_GCC_USB30_PIPE_1_CLK, 0 },
491 static const struct clk_parent_data gcc_parent_data_25[] = {
492 { .index = DT_USB3_UNI_PHY_MP_GCC_USB30_PIPE_1_CLK },
493 { .index = DT_BI_TCXO },
496 static const struct parent_map gcc_parent_map_26[] = {
497 { P_GCC_USB3_PRIM_PHY_PIPE_CLK_SRC, 0 },
498 { P_USB4_PHY_GCC_USB4RTR_MAX_PIPE_CLK, 1 },
499 { P_GCC_USB4_PHY_PIPEGMUX_CLK_SRC, 3 },
502 static const struct clk_parent_data gcc_parent_data_26[] = {
503 { .hw = &gcc_usb3_prim_phy_pipe_clk_src.clkr.hw },
504 { .index = DT_USB4_PHY_GCC_USB4RTR_MAX_PIPE_CLK },
505 { .index = DT_GCC_USB4_PHY_PIPEGMUX_CLK_SRC },
508 static const struct parent_map gcc_parent_map_27[] = {
509 { P_GCC_USB3_SEC_PHY_PIPE_CLK_SRC, 0 },
510 { P_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK, 1 },
511 { P_GCC_USB4_1_PHY_PIPEGMUX_CLK_SRC, 3 },
514 static const struct clk_parent_data gcc_parent_data_27[] = {
515 { .hw = &gcc_usb3_sec_phy_pipe_clk_src.clkr.hw },
516 { .index = DT_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK },
517 { .index = DT_GCC_USB4_1_PHY_PIPEGMUX_CLK_SRC },
520 static const struct parent_map gcc_parent_map_28[] = {
521 { P_GCC_USB4_1_PHY_DP_GMUX_CLK_SRC, 0 },
522 { P_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK, 2 },
525 static const struct clk_parent_data gcc_parent_data_28[] = {
526 { .index = DT_GCC_USB4_1_PHY_DP_GMUX_CLK_SRC },
527 { .index = DT_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK },
530 static const struct parent_map gcc_parent_map_29[] = {
531 { P_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK, 0 },
535 static const struct clk_parent_data gcc_parent_data_29[] = {
536 { .index = DT_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK },
537 { .index = DT_BI_TCXO },
540 static const struct parent_map gcc_parent_map_30[] = {
541 { P_GCC_USB4_1_PHY_SYS_PIPEGMUX_CLK_SRC, 0 },
542 { P_GCC_USB4_1_PHY_PCIE_PIPE_CLK_SRC, 1 },
545 static const struct clk_parent_data gcc_parent_data_30[] = {
546 { .index = DT_GCC_USB4_1_PHY_SYS_PIPEGMUX_CLK_SRC },
547 { .hw = &gcc_usb4_1_phy_pcie_pipe_clk_src.clkr.hw },
550 static struct clk_regmap_mux gcc_usb4_1_phy_pcie_pipegmux_clk_src = {
554 .parent_map = gcc_parent_map_30,
556 .hw.init = &(const struct clk_init_data) {
557 .name = "gcc_usb4_1_phy_pcie_pipegmux_clk_src",
558 .parent_data = gcc_parent_data_30,
559 .num_parents = ARRAY_SIZE(gcc_parent_data_30),
560 .ops = &clk_regmap_mux_closest_ops,
565 static const struct parent_map gcc_parent_map_31[] = {
566 { P_GCC_USB4_1_PHY_PCIE_PIPEGMUX_CLK_SRC, 0 },
567 { P_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK, 2 },
570 static const struct clk_parent_data gcc_parent_data_31[] = {
571 { .hw = &gcc_usb4_1_phy_pcie_pipegmux_clk_src.clkr.hw },
572 { .index = DT_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK },
575 static const struct parent_map gcc_parent_map_32[] = {
576 { P_QUSB4PHY_1_GCC_USB4_RX0_CLK, 0 },
580 static const struct clk_parent_data gcc_parent_data_32[] = {
581 { .index = DT_QUSB4PHY_1_GCC_USB4_RX0_CLK },
582 { .index = DT_BI_TCXO },
585 static const struct parent_map gcc_parent_map_33[] = {
586 { P_QUSB4PHY_1_GCC_USB4_RX1_CLK, 0 },
590 static const struct clk_parent_data gcc_parent_data_33[] = {
591 { .index = DT_QUSB4PHY_1_GCC_USB4_RX1_CLK },
592 { .index = DT_BI_TCXO },
595 static const struct parent_map gcc_parent_map_34[] = {
596 { P_GCC_USB4_1_PHY_SYS_PIPEGMUX_CLK_SRC, 0 },
597 { P_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK, 2 },
600 static const struct clk_parent_data gcc_parent_data_34[] = {
601 { .index = DT_GCC_USB4_1_PHY_SYS_PIPEGMUX_CLK_SRC },
602 { .index = DT_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK },
605 static const struct parent_map gcc_parent_map_35[] = {
606 { P_GCC_USB4_PHY_DP_GMUX_CLK_SRC, 0 },
607 { P_USB4_PHY_GCC_USB4RTR_MAX_PIPE_CLK, 2 },
610 static const struct clk_parent_data gcc_parent_data_35[] = {
611 { .index = DT_GCC_USB4_PHY_DP_GMUX_CLK_SRC },
612 { .index = DT_USB4_PHY_GCC_USB4RTR_MAX_PIPE_CLK },
615 static const struct parent_map gcc_parent_map_36[] = {
616 { P_USB4_PHY_GCC_USB4_PCIE_PIPE_CLK, 0 },
620 static const struct clk_parent_data gcc_parent_data_36[] = {
621 { .index = DT_USB4_PHY_GCC_USB4_PCIE_PIPE_CLK },
622 { .index = DT_BI_TCXO },
625 static const struct parent_map gcc_parent_map_37[] = {
626 { P_GCC_USB4_PHY_SYS_PIPEGMUX_CLK_SRC, 0 },
627 { P_GCC_USB4_PHY_PCIE_PIPE_CLK_SRC, 1 },
630 static const struct clk_parent_data gcc_parent_data_37[] = {
631 { .index = DT_GCC_USB4_PHY_SYS_PIPEGMUX_CLK_SRC },
632 { .hw = &gcc_usb4_phy_pcie_pipe_clk_src.clkr.hw },
635 static struct clk_regmap_mux gcc_usb4_phy_pcie_pipegmux_clk_src = {
639 .parent_map = gcc_parent_map_37,
641 .hw.init = &(const struct clk_init_data) {
642 .name = "gcc_usb4_phy_pcie_pipegmux_clk_src",
643 .parent_data = gcc_parent_data_37,
644 .num_parents = ARRAY_SIZE(gcc_parent_data_37),
645 .ops = &clk_regmap_mux_closest_ops,
650 static const struct parent_map gcc_parent_map_38[] = {
651 { P_GCC_USB4_PHY_PCIE_PIPEGMUX_CLK_SRC, 0 },
652 { P_USB4_PHY_GCC_USB4_PCIE_PIPE_CLK, 2 },
655 static const struct clk_parent_data gcc_parent_data_38[] = {
656 { .hw = &gcc_usb4_phy_pcie_pipegmux_clk_src.clkr.hw },
657 { .index = DT_USB4_PHY_GCC_USB4_PCIE_PIPE_CLK },
660 static const struct parent_map gcc_parent_map_39[] = {
661 { P_QUSB4PHY_GCC_USB4_RX0_CLK, 0 },
665 static const struct clk_parent_data gcc_parent_data_39[] = {
666 { .index = DT_QUSB4PHY_GCC_USB4_RX0_CLK },
667 { .index = DT_BI_TCXO },
670 static const struct parent_map gcc_parent_map_40[] = {
671 { P_QUSB4PHY_GCC_USB4_RX1_CLK, 0 },
675 static const struct clk_parent_data gcc_parent_data_40[] = {
676 { .index = DT_QUSB4PHY_GCC_USB4_RX1_CLK },
677 { .index = DT_BI_TCXO },
680 static const struct parent_map gcc_parent_map_41[] = {
681 { P_GCC_USB4_PHY_SYS_PIPEGMUX_CLK_SRC, 0 },
682 { P_USB4_PHY_GCC_USB4_PCIE_PIPE_CLK, 2 },
685 static const struct clk_parent_data gcc_parent_data_41[] = {
686 { .index = DT_GCC_USB4_PHY_SYS_PIPEGMUX_CLK_SRC },
687 { .index = DT_USB4_PHY_GCC_USB4_PCIE_PIPE_CLK },
690 static struct clk_regmap_phy_mux gcc_pcie_2a_pipe_clk_src = {
693 .hw.init = &(const struct clk_init_data) {
694 .name = "gcc_pcie_2a_pipe_clk_src",
695 .parent_data = &(const struct clk_parent_data){
696 .index = DT_PCIE_2A_PIPE_CLK,
699 .ops = &clk_regmap_phy_mux_ops,
704 static struct clk_regmap_phy_mux gcc_pcie_2b_pipe_clk_src = {
707 .hw.init = &(const struct clk_init_data) {
708 .name = "gcc_pcie_2b_pipe_clk_src",
709 .parent_data = &(const struct clk_parent_data){
710 .index = DT_PCIE_2B_PIPE_CLK,
713 .ops = &clk_regmap_phy_mux_ops,
718 static struct clk_regmap_phy_mux gcc_pcie_3a_pipe_clk_src = {
721 .hw.init = &(const struct clk_init_data) {
722 .name = "gcc_pcie_3a_pipe_clk_src",
723 .parent_data = &(const struct clk_parent_data){
724 .index = DT_PCIE_3A_PIPE_CLK,
727 .ops = &clk_regmap_phy_mux_ops,
732 static struct clk_regmap_phy_mux gcc_pcie_3b_pipe_clk_src = {
735 .hw.init = &(const struct clk_init_data) {
736 .name = "gcc_pcie_3b_pipe_clk_src",
737 .parent_data = &(const struct clk_parent_data){
738 .index = DT_PCIE_3B_PIPE_CLK,
741 .ops = &clk_regmap_phy_mux_ops,
746 static struct clk_regmap_phy_mux gcc_pcie_4_pipe_clk_src = {
749 .hw.init = &(const struct clk_init_data) {
750 .name = "gcc_pcie_4_pipe_clk_src",
751 .parent_data = &(const struct clk_parent_data){
752 .index = DT_PCIE_4_PIPE_CLK,
755 .ops = &clk_regmap_phy_mux_ops,
760 static struct clk_regmap_mux gcc_ufs_card_rx_symbol_0_clk_src = {
764 .parent_map = gcc_parent_map_16,
766 .hw.init = &(const struct clk_init_data) {
767 .name = "gcc_ufs_card_rx_symbol_0_clk_src",
768 .parent_data = gcc_parent_data_16,
769 .num_parents = ARRAY_SIZE(gcc_parent_data_16),
770 .ops = &clk_regmap_mux_closest_ops,
775 static struct clk_regmap_mux gcc_ufs_card_rx_symbol_1_clk_src = {
779 .parent_map = gcc_parent_map_17,
781 .hw.init = &(const struct clk_init_data) {
782 .name = "gcc_ufs_card_rx_symbol_1_clk_src",
783 .parent_data = gcc_parent_data_17,
784 .num_parents = ARRAY_SIZE(gcc_parent_data_17),
785 .ops = &clk_regmap_mux_closest_ops,
790 static struct clk_regmap_mux gcc_ufs_card_tx_symbol_0_clk_src = {
794 .parent_map = gcc_parent_map_18,
796 .hw.init = &(const struct clk_init_data) {
797 .name = "gcc_ufs_card_tx_symbol_0_clk_src",
798 .parent_data = gcc_parent_data_18,
799 .num_parents = ARRAY_SIZE(gcc_parent_data_18),
800 .ops = &clk_regmap_mux_closest_ops,
805 static struct clk_regmap_mux gcc_ufs_phy_rx_symbol_0_clk_src = {
809 .parent_map = gcc_parent_map_19,
811 .hw.init = &(const struct clk_init_data) {
812 .name = "gcc_ufs_phy_rx_symbol_0_clk_src",
813 .parent_data = gcc_parent_data_19,
814 .num_parents = ARRAY_SIZE(gcc_parent_data_19),
815 .ops = &clk_regmap_mux_closest_ops,
820 static struct clk_regmap_mux gcc_ufs_phy_rx_symbol_1_clk_src = {
824 .parent_map = gcc_parent_map_20,
826 .hw.init = &(const struct clk_init_data) {
827 .name = "gcc_ufs_phy_rx_symbol_1_clk_src",
828 .parent_data = gcc_parent_data_20,
829 .num_parents = ARRAY_SIZE(gcc_parent_data_20),
830 .ops = &clk_regmap_mux_closest_ops,
835 static struct clk_regmap_mux gcc_ufs_phy_tx_symbol_0_clk_src = {
839 .parent_map = gcc_parent_map_21,
841 .hw.init = &(const struct clk_init_data) {
842 .name = "gcc_ufs_phy_tx_symbol_0_clk_src",
843 .parent_data = gcc_parent_data_21,
844 .num_parents = ARRAY_SIZE(gcc_parent_data_21),
845 .ops = &clk_regmap_mux_closest_ops,
850 static struct clk_regmap_mux gcc_usb34_prim_phy_pipe_clk_src = {
854 .parent_map = gcc_parent_map_26,
856 .hw.init = &(const struct clk_init_data) {
857 .name = "gcc_usb34_prim_phy_pipe_clk_src",
858 .parent_data = gcc_parent_data_26,
859 .num_parents = ARRAY_SIZE(gcc_parent_data_26),
860 .ops = &clk_regmap_mux_closest_ops,
865 static struct clk_regmap_mux gcc_usb34_sec_phy_pipe_clk_src = {
869 .parent_map = gcc_parent_map_27,
871 .hw.init = &(const struct clk_init_data) {
872 .name = "gcc_usb34_sec_phy_pipe_clk_src",
873 .parent_data = gcc_parent_data_27,
874 .num_parents = ARRAY_SIZE(gcc_parent_data_27),
875 .ops = &clk_regmap_mux_closest_ops,
880 static struct clk_regmap_mux gcc_usb3_mp_phy_pipe_0_clk_src = {
884 .parent_map = gcc_parent_map_24,
886 .hw.init = &(const struct clk_init_data) {
887 .name = "gcc_usb3_mp_phy_pipe_0_clk_src",
888 .parent_data = gcc_parent_data_24,
889 .num_parents = ARRAY_SIZE(gcc_parent_data_24),
890 .ops = &clk_regmap_mux_closest_ops,
895 static struct clk_regmap_mux gcc_usb3_mp_phy_pipe_1_clk_src = {
899 .parent_map = gcc_parent_map_25,
901 .hw.init = &(const struct clk_init_data) {
902 .name = "gcc_usb3_mp_phy_pipe_1_clk_src",
903 .parent_data = gcc_parent_data_25,
904 .num_parents = ARRAY_SIZE(gcc_parent_data_25),
905 .ops = &clk_regmap_mux_closest_ops,
910 static struct clk_regmap_mux gcc_usb4_1_phy_dp_clk_src = {
914 .parent_map = gcc_parent_map_28,
916 .hw.init = &(const struct clk_init_data) {
917 .name = "gcc_usb4_1_phy_dp_clk_src",
918 .parent_data = gcc_parent_data_28,
919 .num_parents = ARRAY_SIZE(gcc_parent_data_28),
920 .ops = &clk_regmap_mux_closest_ops,
925 static struct clk_regmap_mux gcc_usb4_1_phy_p2rr2p_pipe_clk_src = {
929 .parent_map = gcc_parent_map_29,
931 .hw.init = &(const struct clk_init_data) {
932 .name = "gcc_usb4_1_phy_p2rr2p_pipe_clk_src",
933 .parent_data = gcc_parent_data_29,
934 .num_parents = ARRAY_SIZE(gcc_parent_data_29),
935 .ops = &clk_regmap_mux_closest_ops,
940 static struct clk_regmap_mux gcc_usb4_1_phy_pcie_pipe_mux_clk_src = {
944 .parent_map = gcc_parent_map_31,
946 .hw.init = &(const struct clk_init_data) {
947 .name = "gcc_usb4_1_phy_pcie_pipe_mux_clk_src",
948 .parent_data = gcc_parent_data_31,
949 .num_parents = ARRAY_SIZE(gcc_parent_data_31),
950 .ops = &clk_regmap_mux_closest_ops,
955 static struct clk_regmap_mux gcc_usb4_1_phy_rx0_clk_src = {
959 .parent_map = gcc_parent_map_32,
961 .hw.init = &(const struct clk_init_data) {
962 .name = "gcc_usb4_1_phy_rx0_clk_src",
963 .parent_data = gcc_parent_data_32,
964 .num_parents = ARRAY_SIZE(gcc_parent_data_32),
965 .ops = &clk_regmap_mux_closest_ops,
970 static struct clk_regmap_mux gcc_usb4_1_phy_rx1_clk_src = {
974 .parent_map = gcc_parent_map_33,
976 .hw.init = &(const struct clk_init_data) {
977 .name = "gcc_usb4_1_phy_rx1_clk_src",
978 .parent_data = gcc_parent_data_33,
979 .num_parents = ARRAY_SIZE(gcc_parent_data_33),
980 .ops = &clk_regmap_mux_closest_ops,
985 static struct clk_regmap_mux gcc_usb4_1_phy_sys_clk_src = {
989 .parent_map = gcc_parent_map_34,
991 .hw.init = &(const struct clk_init_data) {
992 .name = "gcc_usb4_1_phy_sys_clk_src",
993 .parent_data = gcc_parent_data_34,
994 .num_parents = ARRAY_SIZE(gcc_parent_data_34),
995 .ops = &clk_regmap_mux_closest_ops,
1000 static struct clk_regmap_mux gcc_usb4_phy_dp_clk_src = {
1004 .parent_map = gcc_parent_map_35,
1006 .hw.init = &(const struct clk_init_data) {
1007 .name = "gcc_usb4_phy_dp_clk_src",
1008 .parent_data = gcc_parent_data_35,
1009 .num_parents = ARRAY_SIZE(gcc_parent_data_35),
1010 .ops = &clk_regmap_mux_closest_ops,
1015 static struct clk_regmap_mux gcc_usb4_phy_p2rr2p_pipe_clk_src = {
1019 .parent_map = gcc_parent_map_36,
1021 .hw.init = &(const struct clk_init_data) {
1022 .name = "gcc_usb4_phy_p2rr2p_pipe_clk_src",
1023 .parent_data = gcc_parent_data_36,
1024 .num_parents = ARRAY_SIZE(gcc_parent_data_36),
1025 .ops = &clk_regmap_mux_closest_ops,
1030 static struct clk_regmap_mux gcc_usb4_phy_pcie_pipe_mux_clk_src = {
1034 .parent_map = gcc_parent_map_38,
1036 .hw.init = &(const struct clk_init_data) {
1037 .name = "gcc_usb4_phy_pcie_pipe_mux_clk_src",
1038 .parent_data = gcc_parent_data_38,
1039 .num_parents = ARRAY_SIZE(gcc_parent_data_38),
1040 .ops = &clk_regmap_mux_closest_ops,
1045 static struct clk_regmap_mux gcc_usb4_phy_rx0_clk_src = {
1049 .parent_map = gcc_parent_map_39,
1051 .hw.init = &(const struct clk_init_data) {
1052 .name = "gcc_usb4_phy_rx0_clk_src",
1053 .parent_data = gcc_parent_data_39,
1054 .num_parents = ARRAY_SIZE(gcc_parent_data_39),
1055 .ops = &clk_regmap_mux_closest_ops,
1060 static struct clk_regmap_mux gcc_usb4_phy_rx1_clk_src = {
1064 .parent_map = gcc_parent_map_40,
1066 .hw.init = &(const struct clk_init_data) {
1067 .name = "gcc_usb4_phy_rx1_clk_src",
1068 .parent_data = gcc_parent_data_40,
1069 .num_parents = ARRAY_SIZE(gcc_parent_data_40),
1070 .ops = &clk_regmap_mux_closest_ops,
1075 static struct clk_regmap_mux gcc_usb4_phy_sys_clk_src = {
1079 .parent_map = gcc_parent_map_41,
1081 .hw.init = &(const struct clk_init_data) {
1082 .name = "gcc_usb4_phy_sys_clk_src",
1083 .parent_data = gcc_parent_data_41,
1084 .num_parents = ARRAY_SIZE(gcc_parent_data_41),
1085 .ops = &clk_regmap_mux_closest_ops,
1090 static const struct freq_tbl ftbl_gcc_emac0_ptp_clk_src[] = {
1091 F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0),
1092 F(125000000, P_GCC_GPLL7_OUT_MAIN, 4, 0, 0),
1093 F(230400000, P_GCC_GPLL4_OUT_MAIN, 3.5, 0, 0),
1097 static struct clk_rcg2 gcc_emac0_ptp_clk_src = {
1098 .cmd_rcgr = 0xaa020,
1101 .parent_map = gcc_parent_map_4,
1102 .freq_tbl = ftbl_gcc_emac0_ptp_clk_src,
1103 .clkr.hw.init = &(const struct clk_init_data) {
1104 .name = "gcc_emac0_ptp_clk_src",
1105 .parent_data = gcc_parent_data_4,
1106 .num_parents = ARRAY_SIZE(gcc_parent_data_4),
1107 .ops = &clk_rcg2_shared_ops,
1111 static const struct freq_tbl ftbl_gcc_emac0_rgmii_clk_src[] = {
1112 F(50000000, P_GCC_GPLL0_OUT_EVEN, 6, 0, 0),
1113 F(125000000, P_GCC_GPLL7_OUT_MAIN, 4, 0, 0),
1114 F(250000000, P_GCC_GPLL7_OUT_MAIN, 2, 0, 0),
1118 static struct clk_rcg2 gcc_emac0_rgmii_clk_src = {
1119 .cmd_rcgr = 0xaa040,
1122 .parent_map = gcc_parent_map_8,
1123 .freq_tbl = ftbl_gcc_emac0_rgmii_clk_src,
1124 .clkr.hw.init = &(const struct clk_init_data) {
1125 .name = "gcc_emac0_rgmii_clk_src",
1126 .parent_data = gcc_parent_data_8,
1127 .num_parents = ARRAY_SIZE(gcc_parent_data_8),
1128 .ops = &clk_rcg2_shared_ops,
1132 static struct clk_rcg2 gcc_emac1_ptp_clk_src = {
1133 .cmd_rcgr = 0xba020,
1136 .parent_map = gcc_parent_map_4,
1137 .freq_tbl = ftbl_gcc_emac0_ptp_clk_src,
1138 .clkr.hw.init = &(const struct clk_init_data) {
1139 .name = "gcc_emac1_ptp_clk_src",
1140 .parent_data = gcc_parent_data_4,
1141 .num_parents = ARRAY_SIZE(gcc_parent_data_4),
1142 .ops = &clk_rcg2_shared_ops,
1146 static struct clk_rcg2 gcc_emac1_rgmii_clk_src = {
1147 .cmd_rcgr = 0xba040,
1150 .parent_map = gcc_parent_map_9,
1151 .freq_tbl = ftbl_gcc_emac0_rgmii_clk_src,
1152 .clkr.hw.init = &(const struct clk_init_data) {
1153 .name = "gcc_emac1_rgmii_clk_src",
1154 .parent_data = gcc_parent_data_9,
1155 .num_parents = ARRAY_SIZE(gcc_parent_data_9),
1156 .ops = &clk_rcg2_shared_ops,
1160 static const struct freq_tbl ftbl_gcc_gp1_clk_src[] = {
1161 F(50000000, P_GCC_GPLL0_OUT_EVEN, 6, 0, 0),
1162 F(100000000, P_GCC_GPLL0_OUT_MAIN, 6, 0, 0),
1163 F(200000000, P_GCC_GPLL0_OUT_MAIN, 3, 0, 0),
1167 static struct clk_rcg2 gcc_gp1_clk_src = {
1168 .cmd_rcgr = 0x64004,
1171 .parent_map = gcc_parent_map_2,
1172 .freq_tbl = ftbl_gcc_gp1_clk_src,
1173 .clkr.hw.init = &(const struct clk_init_data) {
1174 .name = "gcc_gp1_clk_src",
1175 .parent_data = gcc_parent_data_2,
1176 .num_parents = ARRAY_SIZE(gcc_parent_data_2),
1177 .ops = &clk_rcg2_shared_ops,
1181 static struct clk_rcg2 gcc_gp2_clk_src = {
1182 .cmd_rcgr = 0x65004,
1185 .parent_map = gcc_parent_map_2,
1186 .freq_tbl = ftbl_gcc_gp1_clk_src,
1187 .clkr.hw.init = &(const struct clk_init_data) {
1188 .name = "gcc_gp2_clk_src",
1189 .parent_data = gcc_parent_data_2,
1190 .num_parents = ARRAY_SIZE(gcc_parent_data_2),
1191 .ops = &clk_rcg2_shared_ops,
1195 static struct clk_rcg2 gcc_gp3_clk_src = {
1196 .cmd_rcgr = 0x66004,
1199 .parent_map = gcc_parent_map_2,
1200 .freq_tbl = ftbl_gcc_gp1_clk_src,
1201 .clkr.hw.init = &(const struct clk_init_data) {
1202 .name = "gcc_gp3_clk_src",
1203 .parent_data = gcc_parent_data_2,
1204 .num_parents = ARRAY_SIZE(gcc_parent_data_2),
1205 .ops = &clk_rcg2_shared_ops,
1209 static struct clk_rcg2 gcc_gp4_clk_src = {
1210 .cmd_rcgr = 0xc2004,
1213 .parent_map = gcc_parent_map_2,
1214 .freq_tbl = ftbl_gcc_gp1_clk_src,
1215 .clkr.hw.init = &(const struct clk_init_data) {
1216 .name = "gcc_gp4_clk_src",
1217 .parent_data = gcc_parent_data_2,
1218 .num_parents = ARRAY_SIZE(gcc_parent_data_2),
1219 .ops = &clk_rcg2_shared_ops,
1223 static struct clk_rcg2 gcc_gp5_clk_src = {
1224 .cmd_rcgr = 0xc3004,
1227 .parent_map = gcc_parent_map_2,
1228 .freq_tbl = ftbl_gcc_gp1_clk_src,
1229 .clkr.hw.init = &(const struct clk_init_data) {
1230 .name = "gcc_gp5_clk_src",
1231 .parent_data = gcc_parent_data_2,
1232 .num_parents = ARRAY_SIZE(gcc_parent_data_2),
1233 .ops = &clk_rcg2_shared_ops,
1237 static const struct freq_tbl ftbl_gcc_pcie_0_aux_clk_src[] = {
1238 F(9600000, P_BI_TCXO, 2, 0, 0),
1239 F(19200000, P_BI_TCXO, 1, 0, 0),
1243 static struct clk_rcg2 gcc_pcie_0_aux_clk_src = {
1244 .cmd_rcgr = 0xa4054,
1247 .parent_map = gcc_parent_map_1,
1248 .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
1249 .clkr.hw.init = &(const struct clk_init_data) {
1250 .name = "gcc_pcie_0_aux_clk_src",
1251 .parent_data = gcc_parent_data_1,
1252 .num_parents = ARRAY_SIZE(gcc_parent_data_1),
1253 .ops = &clk_rcg2_shared_ops,
1257 static const struct freq_tbl ftbl_gcc_pcie_0_phy_rchng_clk_src[] = {
1258 F(100000000, P_GCC_GPLL0_OUT_EVEN, 3, 0, 0),
1262 static struct clk_rcg2 gcc_pcie_0_phy_rchng_clk_src = {
1263 .cmd_rcgr = 0xa403c,
1266 .parent_map = gcc_parent_map_0,
1267 .freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src,
1268 .clkr.hw.init = &(const struct clk_init_data) {
1269 .name = "gcc_pcie_0_phy_rchng_clk_src",
1270 .parent_data = gcc_parent_data_0,
1271 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1272 .ops = &clk_rcg2_shared_ops,
1276 static const struct freq_tbl ftbl_gcc_pcie_1_aux_clk_src[] = {
1277 F(19200000, P_BI_TCXO, 1, 0, 0),
1281 static struct clk_rcg2 gcc_pcie_1_aux_clk_src = {
1282 .cmd_rcgr = 0x8d054,
1285 .parent_map = gcc_parent_map_1,
1286 .freq_tbl = ftbl_gcc_pcie_1_aux_clk_src,
1287 .clkr.hw.init = &(const struct clk_init_data) {
1288 .name = "gcc_pcie_1_aux_clk_src",
1289 .parent_data = gcc_parent_data_1,
1290 .num_parents = ARRAY_SIZE(gcc_parent_data_1),
1291 .ops = &clk_rcg2_shared_ops,
1295 static struct clk_rcg2 gcc_pcie_1_phy_rchng_clk_src = {
1296 .cmd_rcgr = 0x8d03c,
1299 .parent_map = gcc_parent_map_0,
1300 .freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src,
1301 .clkr.hw.init = &(const struct clk_init_data) {
1302 .name = "gcc_pcie_1_phy_rchng_clk_src",
1303 .parent_data = gcc_parent_data_0,
1304 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1305 .ops = &clk_rcg2_shared_ops,
1309 static struct clk_rcg2 gcc_pcie_2a_aux_clk_src = {
1310 .cmd_rcgr = 0x9d064,
1313 .parent_map = gcc_parent_map_1,
1314 .freq_tbl = ftbl_gcc_pcie_1_aux_clk_src,
1315 .clkr.hw.init = &(const struct clk_init_data) {
1316 .name = "gcc_pcie_2a_aux_clk_src",
1317 .parent_data = gcc_parent_data_1,
1318 .num_parents = ARRAY_SIZE(gcc_parent_data_1),
1319 .ops = &clk_rcg2_shared_ops,
1323 static struct clk_rcg2 gcc_pcie_2a_phy_rchng_clk_src = {
1324 .cmd_rcgr = 0x9d044,
1327 .parent_map = gcc_parent_map_0,
1328 .freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src,
1329 .clkr.hw.init = &(const struct clk_init_data) {
1330 .name = "gcc_pcie_2a_phy_rchng_clk_src",
1331 .parent_data = gcc_parent_data_0,
1332 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1333 .ops = &clk_rcg2_shared_ops,
1337 static struct clk_rcg2 gcc_pcie_2b_aux_clk_src = {
1338 .cmd_rcgr = 0x9e064,
1341 .parent_map = gcc_parent_map_1,
1342 .freq_tbl = ftbl_gcc_pcie_1_aux_clk_src,
1343 .clkr.hw.init = &(const struct clk_init_data) {
1344 .name = "gcc_pcie_2b_aux_clk_src",
1345 .parent_data = gcc_parent_data_1,
1346 .num_parents = ARRAY_SIZE(gcc_parent_data_1),
1347 .ops = &clk_rcg2_shared_ops,
1351 static struct clk_rcg2 gcc_pcie_2b_phy_rchng_clk_src = {
1352 .cmd_rcgr = 0x9e044,
1355 .parent_map = gcc_parent_map_0,
1356 .freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src,
1357 .clkr.hw.init = &(const struct clk_init_data) {
1358 .name = "gcc_pcie_2b_phy_rchng_clk_src",
1359 .parent_data = gcc_parent_data_0,
1360 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1361 .ops = &clk_rcg2_shared_ops,
1365 static struct clk_rcg2 gcc_pcie_3a_aux_clk_src = {
1366 .cmd_rcgr = 0xa0064,
1369 .parent_map = gcc_parent_map_1,
1370 .freq_tbl = ftbl_gcc_pcie_1_aux_clk_src,
1371 .clkr.hw.init = &(const struct clk_init_data) {
1372 .name = "gcc_pcie_3a_aux_clk_src",
1373 .parent_data = gcc_parent_data_1,
1374 .num_parents = ARRAY_SIZE(gcc_parent_data_1),
1375 .ops = &clk_rcg2_shared_ops,
1379 static struct clk_rcg2 gcc_pcie_3a_phy_rchng_clk_src = {
1380 .cmd_rcgr = 0xa0044,
1383 .parent_map = gcc_parent_map_0,
1384 .freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src,
1385 .clkr.hw.init = &(const struct clk_init_data) {
1386 .name = "gcc_pcie_3a_phy_rchng_clk_src",
1387 .parent_data = gcc_parent_data_0,
1388 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1389 .ops = &clk_rcg2_shared_ops,
1393 static struct clk_rcg2 gcc_pcie_3b_aux_clk_src = {
1394 .cmd_rcgr = 0xa2064,
1397 .parent_map = gcc_parent_map_1,
1398 .freq_tbl = ftbl_gcc_pcie_1_aux_clk_src,
1399 .clkr.hw.init = &(const struct clk_init_data) {
1400 .name = "gcc_pcie_3b_aux_clk_src",
1401 .parent_data = gcc_parent_data_1,
1402 .num_parents = ARRAY_SIZE(gcc_parent_data_1),
1403 .ops = &clk_rcg2_shared_ops,
1407 static struct clk_rcg2 gcc_pcie_3b_phy_rchng_clk_src = {
1408 .cmd_rcgr = 0xa2044,
1411 .parent_map = gcc_parent_map_0,
1412 .freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src,
1413 .clkr.hw.init = &(const struct clk_init_data) {
1414 .name = "gcc_pcie_3b_phy_rchng_clk_src",
1415 .parent_data = gcc_parent_data_0,
1416 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1417 .ops = &clk_rcg2_shared_ops,
1421 static struct clk_rcg2 gcc_pcie_4_aux_clk_src = {
1422 .cmd_rcgr = 0x6b064,
1425 .parent_map = gcc_parent_map_1,
1426 .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
1427 .clkr.hw.init = &(const struct clk_init_data) {
1428 .name = "gcc_pcie_4_aux_clk_src",
1429 .parent_data = gcc_parent_data_1,
1430 .num_parents = ARRAY_SIZE(gcc_parent_data_1),
1431 .ops = &clk_rcg2_shared_ops,
1435 static struct clk_rcg2 gcc_pcie_4_phy_rchng_clk_src = {
1436 .cmd_rcgr = 0x6b044,
1439 .parent_map = gcc_parent_map_0,
1440 .freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src,
1441 .clkr.hw.init = &(const struct clk_init_data) {
1442 .name = "gcc_pcie_4_phy_rchng_clk_src",
1443 .parent_data = gcc_parent_data_0,
1444 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1445 .ops = &clk_rcg2_shared_ops,
1449 static struct clk_rcg2 gcc_pcie_rscc_xo_clk_src = {
1450 .cmd_rcgr = 0xae00c,
1453 .parent_map = gcc_parent_map_3,
1454 .freq_tbl = ftbl_gcc_pcie_1_aux_clk_src,
1455 .clkr.hw.init = &(const struct clk_init_data) {
1456 .name = "gcc_pcie_rscc_xo_clk_src",
1457 .parent_data = gcc_parent_data_3,
1458 .num_parents = ARRAY_SIZE(gcc_parent_data_3),
1459 .ops = &clk_rcg2_shared_ops,
1463 static const struct freq_tbl ftbl_gcc_pdm2_clk_src[] = {
1464 F(60000000, P_GCC_GPLL0_OUT_EVEN, 5, 0, 0),
1468 static struct clk_rcg2 gcc_pdm2_clk_src = {
1469 .cmd_rcgr = 0x33010,
1472 .parent_map = gcc_parent_map_0,
1473 .freq_tbl = ftbl_gcc_pdm2_clk_src,
1474 .clkr.hw.init = &(const struct clk_init_data) {
1475 .name = "gcc_pdm2_clk_src",
1476 .parent_data = gcc_parent_data_0,
1477 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1478 .ops = &clk_rcg2_shared_ops,
1482 static const struct freq_tbl ftbl_gcc_qupv3_wrap0_s0_clk_src[] = {
1483 F(7372800, P_GCC_GPLL0_OUT_EVEN, 1, 384, 15625),
1484 F(14745600, P_GCC_GPLL0_OUT_EVEN, 1, 768, 15625),
1485 F(19200000, P_BI_TCXO, 1, 0, 0),
1486 F(29491200, P_GCC_GPLL0_OUT_EVEN, 1, 1536, 15625),
1487 F(32000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 75),
1488 F(48000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 25),
1489 F(64000000, P_GCC_GPLL0_OUT_EVEN, 1, 16, 75),
1490 F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0),
1491 F(80000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 15),
1492 F(96000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 25),
1493 F(100000000, P_GCC_GPLL0_OUT_MAIN, 6, 0, 0),
1497 static struct clk_init_data gcc_qupv3_wrap0_s0_clk_src_init = {
1498 .name = "gcc_qupv3_wrap0_s0_clk_src",
1499 .parent_data = gcc_parent_data_0,
1500 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1501 .flags = CLK_SET_RATE_PARENT,
1502 .ops = &clk_rcg2_shared_ops,
1505 static struct clk_rcg2 gcc_qupv3_wrap0_s0_clk_src = {
1506 .cmd_rcgr = 0x17148,
1509 .parent_map = gcc_parent_map_0,
1510 .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1511 .clkr.hw.init = &gcc_qupv3_wrap0_s0_clk_src_init,
1514 static struct clk_init_data gcc_qupv3_wrap0_s1_clk_src_init = {
1515 .name = "gcc_qupv3_wrap0_s1_clk_src",
1516 .parent_data = gcc_parent_data_0,
1517 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1518 .flags = CLK_SET_RATE_PARENT,
1519 .ops = &clk_rcg2_shared_ops,
1522 static struct clk_rcg2 gcc_qupv3_wrap0_s1_clk_src = {
1523 .cmd_rcgr = 0x17278,
1526 .parent_map = gcc_parent_map_0,
1527 .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1528 .clkr.hw.init = &gcc_qupv3_wrap0_s1_clk_src_init,
1531 static struct clk_init_data gcc_qupv3_wrap0_s2_clk_src_init = {
1532 .name = "gcc_qupv3_wrap0_s2_clk_src",
1533 .parent_data = gcc_parent_data_0,
1534 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1535 .flags = CLK_SET_RATE_PARENT,
1536 .ops = &clk_rcg2_shared_ops,
1539 static struct clk_rcg2 gcc_qupv3_wrap0_s2_clk_src = {
1540 .cmd_rcgr = 0x173a8,
1543 .parent_map = gcc_parent_map_0,
1544 .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1545 .clkr.hw.init = &gcc_qupv3_wrap0_s2_clk_src_init,
1548 static struct clk_init_data gcc_qupv3_wrap0_s3_clk_src_init = {
1549 .name = "gcc_qupv3_wrap0_s3_clk_src",
1550 .parent_data = gcc_parent_data_0,
1551 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1552 .flags = CLK_SET_RATE_PARENT,
1553 .ops = &clk_rcg2_shared_ops,
1556 static struct clk_rcg2 gcc_qupv3_wrap0_s3_clk_src = {
1557 .cmd_rcgr = 0x174d8,
1560 .parent_map = gcc_parent_map_0,
1561 .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1562 .clkr.hw.init = &gcc_qupv3_wrap0_s3_clk_src_init,
1565 static struct clk_init_data gcc_qupv3_wrap0_s4_clk_src_init = {
1566 .name = "gcc_qupv3_wrap0_s4_clk_src",
1567 .parent_data = gcc_parent_data_0,
1568 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1569 .flags = CLK_SET_RATE_PARENT,
1570 .ops = &clk_rcg2_shared_ops,
1573 static struct clk_rcg2 gcc_qupv3_wrap0_s4_clk_src = {
1574 .cmd_rcgr = 0x17608,
1577 .parent_map = gcc_parent_map_0,
1578 .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1579 .clkr.hw.init = &gcc_qupv3_wrap0_s4_clk_src_init,
1582 static struct clk_init_data gcc_qupv3_wrap0_s5_clk_src_init = {
1583 .name = "gcc_qupv3_wrap0_s5_clk_src",
1584 .parent_data = gcc_parent_data_0,
1585 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1586 .flags = CLK_SET_RATE_PARENT,
1587 .ops = &clk_rcg2_shared_ops,
1590 static struct clk_rcg2 gcc_qupv3_wrap0_s5_clk_src = {
1591 .cmd_rcgr = 0x17738,
1594 .parent_map = gcc_parent_map_0,
1595 .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1596 .clkr.hw.init = &gcc_qupv3_wrap0_s5_clk_src_init,
1599 static const struct freq_tbl ftbl_gcc_qupv3_wrap0_s6_clk_src[] = {
1600 F(7372800, P_GCC_GPLL0_OUT_EVEN, 1, 384, 15625),
1601 F(14745600, P_GCC_GPLL0_OUT_EVEN, 1, 768, 15625),
1602 F(19200000, P_BI_TCXO, 1, 0, 0),
1603 F(29491200, P_GCC_GPLL0_OUT_EVEN, 1, 1536, 15625),
1604 F(32000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 75),
1605 F(48000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 25),
1606 F(64000000, P_GCC_GPLL0_OUT_EVEN, 1, 16, 75),
1607 F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0),
1608 F(80000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 15),
1609 F(96000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 25),
1610 F(120000000, P_GCC_GPLL0_OUT_MAIN, 5, 0, 0),
1614 static struct clk_init_data gcc_qupv3_wrap0_s6_clk_src_init = {
1615 .name = "gcc_qupv3_wrap0_s6_clk_src",
1616 .parent_data = gcc_parent_data_0,
1617 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1618 .flags = CLK_SET_RATE_PARENT,
1619 .ops = &clk_rcg2_shared_ops,
1622 static struct clk_rcg2 gcc_qupv3_wrap0_s6_clk_src = {
1623 .cmd_rcgr = 0x17868,
1626 .parent_map = gcc_parent_map_0,
1627 .freq_tbl = ftbl_gcc_qupv3_wrap0_s6_clk_src,
1628 .clkr.hw.init = &gcc_qupv3_wrap0_s6_clk_src_init,
1631 static struct clk_init_data gcc_qupv3_wrap0_s7_clk_src_init = {
1632 .name = "gcc_qupv3_wrap0_s7_clk_src",
1633 .parent_data = gcc_parent_data_0,
1634 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1635 .flags = CLK_SET_RATE_PARENT,
1636 .ops = &clk_rcg2_shared_ops,
1639 static struct clk_rcg2 gcc_qupv3_wrap0_s7_clk_src = {
1640 .cmd_rcgr = 0x17998,
1643 .parent_map = gcc_parent_map_0,
1644 .freq_tbl = ftbl_gcc_qupv3_wrap0_s6_clk_src,
1645 .clkr.hw.init = &gcc_qupv3_wrap0_s7_clk_src_init,
1648 static struct clk_init_data gcc_qupv3_wrap1_s0_clk_src_init = {
1649 .name = "gcc_qupv3_wrap1_s0_clk_src",
1650 .parent_data = gcc_parent_data_0,
1651 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1652 .flags = CLK_SET_RATE_PARENT,
1653 .ops = &clk_rcg2_shared_ops,
1656 static struct clk_rcg2 gcc_qupv3_wrap1_s0_clk_src = {
1657 .cmd_rcgr = 0x18148,
1660 .parent_map = gcc_parent_map_0,
1661 .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1662 .clkr.hw.init = &gcc_qupv3_wrap1_s0_clk_src_init,
1665 static struct clk_init_data gcc_qupv3_wrap1_s1_clk_src_init = {
1666 .name = "gcc_qupv3_wrap1_s1_clk_src",
1667 .parent_data = gcc_parent_data_0,
1668 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1669 .flags = CLK_SET_RATE_PARENT,
1670 .ops = &clk_rcg2_shared_ops,
1673 static struct clk_rcg2 gcc_qupv3_wrap1_s1_clk_src = {
1674 .cmd_rcgr = 0x18278,
1677 .parent_map = gcc_parent_map_0,
1678 .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1679 .clkr.hw.init = &gcc_qupv3_wrap1_s1_clk_src_init,
1682 static struct clk_init_data gcc_qupv3_wrap1_s2_clk_src_init = {
1683 .name = "gcc_qupv3_wrap1_s2_clk_src",
1684 .parent_data = gcc_parent_data_0,
1685 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1686 .flags = CLK_SET_RATE_PARENT,
1687 .ops = &clk_rcg2_shared_ops,
1690 static struct clk_rcg2 gcc_qupv3_wrap1_s2_clk_src = {
1691 .cmd_rcgr = 0x183a8,
1694 .parent_map = gcc_parent_map_0,
1695 .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1696 .clkr.hw.init = &gcc_qupv3_wrap1_s2_clk_src_init,
1699 static struct clk_init_data gcc_qupv3_wrap1_s3_clk_src_init = {
1700 .name = "gcc_qupv3_wrap1_s3_clk_src",
1701 .parent_data = gcc_parent_data_0,
1702 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1703 .flags = CLK_SET_RATE_PARENT,
1704 .ops = &clk_rcg2_shared_ops,
1707 static struct clk_rcg2 gcc_qupv3_wrap1_s3_clk_src = {
1708 .cmd_rcgr = 0x184d8,
1711 .parent_map = gcc_parent_map_0,
1712 .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1713 .clkr.hw.init = &gcc_qupv3_wrap1_s3_clk_src_init,
1716 static struct clk_init_data gcc_qupv3_wrap1_s4_clk_src_init = {
1717 .name = "gcc_qupv3_wrap1_s4_clk_src",
1718 .parent_data = gcc_parent_data_0,
1719 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1720 .flags = CLK_SET_RATE_PARENT,
1721 .ops = &clk_rcg2_shared_ops,
1724 static struct clk_rcg2 gcc_qupv3_wrap1_s4_clk_src = {
1725 .cmd_rcgr = 0x18608,
1728 .parent_map = gcc_parent_map_0,
1729 .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1730 .clkr.hw.init = &gcc_qupv3_wrap1_s4_clk_src_init,
1733 static struct clk_init_data gcc_qupv3_wrap1_s5_clk_src_init = {
1734 .name = "gcc_qupv3_wrap1_s5_clk_src",
1735 .parent_data = gcc_parent_data_0,
1736 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1737 .flags = CLK_SET_RATE_PARENT,
1738 .ops = &clk_rcg2_shared_ops,
1741 static struct clk_rcg2 gcc_qupv3_wrap1_s5_clk_src = {
1742 .cmd_rcgr = 0x18738,
1745 .parent_map = gcc_parent_map_0,
1746 .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1747 .clkr.hw.init = &gcc_qupv3_wrap1_s5_clk_src_init,
1750 static struct clk_init_data gcc_qupv3_wrap1_s6_clk_src_init = {
1751 .name = "gcc_qupv3_wrap1_s6_clk_src",
1752 .parent_data = gcc_parent_data_0,
1753 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1754 .flags = CLK_SET_RATE_PARENT,
1755 .ops = &clk_rcg2_shared_ops,
1758 static struct clk_rcg2 gcc_qupv3_wrap1_s6_clk_src = {
1759 .cmd_rcgr = 0x18868,
1762 .parent_map = gcc_parent_map_0,
1763 .freq_tbl = ftbl_gcc_qupv3_wrap0_s6_clk_src,
1764 .clkr.hw.init = &gcc_qupv3_wrap1_s6_clk_src_init,
1767 static struct clk_init_data gcc_qupv3_wrap1_s7_clk_src_init = {
1768 .name = "gcc_qupv3_wrap1_s7_clk_src",
1769 .parent_data = gcc_parent_data_0,
1770 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1771 .flags = CLK_SET_RATE_PARENT,
1772 .ops = &clk_rcg2_shared_ops,
1775 static struct clk_rcg2 gcc_qupv3_wrap1_s7_clk_src = {
1776 .cmd_rcgr = 0x18998,
1779 .parent_map = gcc_parent_map_0,
1780 .freq_tbl = ftbl_gcc_qupv3_wrap0_s6_clk_src,
1781 .clkr.hw.init = &gcc_qupv3_wrap1_s7_clk_src_init,
1784 static struct clk_init_data gcc_qupv3_wrap2_s0_clk_src_init = {
1785 .name = "gcc_qupv3_wrap2_s0_clk_src",
1786 .parent_data = gcc_parent_data_0,
1787 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1788 .flags = CLK_SET_RATE_PARENT,
1789 .ops = &clk_rcg2_shared_ops,
1792 static struct clk_rcg2 gcc_qupv3_wrap2_s0_clk_src = {
1793 .cmd_rcgr = 0x1e148,
1796 .parent_map = gcc_parent_map_0,
1797 .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1798 .clkr.hw.init = &gcc_qupv3_wrap2_s0_clk_src_init,
1801 static struct clk_init_data gcc_qupv3_wrap2_s1_clk_src_init = {
1802 .name = "gcc_qupv3_wrap2_s1_clk_src",
1803 .parent_data = gcc_parent_data_0,
1804 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1805 .flags = CLK_SET_RATE_PARENT,
1806 .ops = &clk_rcg2_shared_ops,
1809 static struct clk_rcg2 gcc_qupv3_wrap2_s1_clk_src = {
1810 .cmd_rcgr = 0x1e278,
1813 .parent_map = gcc_parent_map_0,
1814 .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1815 .clkr.hw.init = &gcc_qupv3_wrap2_s1_clk_src_init,
1818 static struct clk_init_data gcc_qupv3_wrap2_s2_clk_src_init = {
1819 .name = "gcc_qupv3_wrap2_s2_clk_src",
1820 .parent_data = gcc_parent_data_0,
1821 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1822 .flags = CLK_SET_RATE_PARENT,
1823 .ops = &clk_rcg2_shared_ops,
1826 static struct clk_rcg2 gcc_qupv3_wrap2_s2_clk_src = {
1827 .cmd_rcgr = 0x1e3a8,
1830 .parent_map = gcc_parent_map_0,
1831 .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1832 .clkr.hw.init = &gcc_qupv3_wrap2_s2_clk_src_init,
1835 static struct clk_init_data gcc_qupv3_wrap2_s3_clk_src_init = {
1836 .name = "gcc_qupv3_wrap2_s3_clk_src",
1837 .parent_data = gcc_parent_data_0,
1838 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1839 .flags = CLK_SET_RATE_PARENT,
1840 .ops = &clk_rcg2_shared_ops,
1843 static struct clk_rcg2 gcc_qupv3_wrap2_s3_clk_src = {
1844 .cmd_rcgr = 0x1e4d8,
1847 .parent_map = gcc_parent_map_0,
1848 .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1849 .clkr.hw.init = &gcc_qupv3_wrap2_s3_clk_src_init,
1852 static struct clk_init_data gcc_qupv3_wrap2_s4_clk_src_init = {
1853 .name = "gcc_qupv3_wrap2_s4_clk_src",
1854 .parent_data = gcc_parent_data_0,
1855 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1856 .flags = CLK_SET_RATE_PARENT,
1857 .ops = &clk_rcg2_shared_ops,
1860 static struct clk_rcg2 gcc_qupv3_wrap2_s4_clk_src = {
1861 .cmd_rcgr = 0x1e608,
1864 .parent_map = gcc_parent_map_0,
1865 .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1866 .clkr.hw.init = &gcc_qupv3_wrap2_s4_clk_src_init,
1869 static struct clk_init_data gcc_qupv3_wrap2_s5_clk_src_init = {
1870 .name = "gcc_qupv3_wrap2_s5_clk_src",
1871 .parent_data = gcc_parent_data_0,
1872 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1873 .flags = CLK_SET_RATE_PARENT,
1874 .ops = &clk_rcg2_shared_ops,
1877 static struct clk_rcg2 gcc_qupv3_wrap2_s5_clk_src = {
1878 .cmd_rcgr = 0x1e738,
1881 .parent_map = gcc_parent_map_0,
1882 .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1883 .clkr.hw.init = &gcc_qupv3_wrap2_s5_clk_src_init,
1886 static struct clk_init_data gcc_qupv3_wrap2_s6_clk_src_init = {
1887 .name = "gcc_qupv3_wrap2_s6_clk_src",
1888 .parent_data = gcc_parent_data_0,
1889 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1890 .flags = CLK_SET_RATE_PARENT,
1891 .ops = &clk_rcg2_shared_ops,
1894 static struct clk_rcg2 gcc_qupv3_wrap2_s6_clk_src = {
1895 .cmd_rcgr = 0x1e868,
1898 .parent_map = gcc_parent_map_0,
1899 .freq_tbl = ftbl_gcc_qupv3_wrap0_s6_clk_src,
1900 .clkr.hw.init = &gcc_qupv3_wrap2_s6_clk_src_init,
1903 static struct clk_init_data gcc_qupv3_wrap2_s7_clk_src_init = {
1904 .name = "gcc_qupv3_wrap2_s7_clk_src",
1905 .parent_data = gcc_parent_data_0,
1906 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1907 .flags = CLK_SET_RATE_PARENT,
1908 .ops = &clk_rcg2_shared_ops,
1911 static struct clk_rcg2 gcc_qupv3_wrap2_s7_clk_src = {
1912 .cmd_rcgr = 0x1e998,
1915 .parent_map = gcc_parent_map_0,
1916 .freq_tbl = ftbl_gcc_qupv3_wrap0_s6_clk_src,
1917 .clkr.hw.init = &gcc_qupv3_wrap2_s7_clk_src_init,
1920 static const struct freq_tbl ftbl_gcc_sdcc2_apps_clk_src[] = {
1921 F(400000, P_BI_TCXO, 12, 1, 4),
1922 F(25000000, P_GCC_GPLL0_OUT_EVEN, 12, 0, 0),
1923 F(50000000, P_GCC_GPLL0_OUT_EVEN, 6, 0, 0),
1924 F(100000000, P_GCC_GPLL0_OUT_EVEN, 3, 0, 0),
1925 F(202000000, P_GCC_GPLL9_OUT_MAIN, 4, 0, 0),
1929 static struct clk_rcg2 gcc_sdcc2_apps_clk_src = {
1930 .cmd_rcgr = 0x1400c,
1933 .parent_map = gcc_parent_map_15,
1934 .freq_tbl = ftbl_gcc_sdcc2_apps_clk_src,
1935 .clkr.hw.init = &(const struct clk_init_data) {
1936 .name = "gcc_sdcc2_apps_clk_src",
1937 .parent_data = gcc_parent_data_15,
1938 .num_parents = ARRAY_SIZE(gcc_parent_data_15),
1939 .ops = &clk_rcg2_shared_ops,
1943 static const struct freq_tbl ftbl_gcc_sdcc4_apps_clk_src[] = {
1944 F(400000, P_BI_TCXO, 12, 1, 4),
1945 F(25000000, P_GCC_GPLL0_OUT_EVEN, 12, 0, 0),
1946 F(100000000, P_GCC_GPLL0_OUT_EVEN, 3, 0, 0),
1950 static struct clk_rcg2 gcc_sdcc4_apps_clk_src = {
1951 .cmd_rcgr = 0x1600c,
1954 .parent_map = gcc_parent_map_0,
1955 .freq_tbl = ftbl_gcc_sdcc4_apps_clk_src,
1956 .clkr.hw.init = &(const struct clk_init_data) {
1957 .name = "gcc_sdcc4_apps_clk_src",
1958 .parent_data = gcc_parent_data_0,
1959 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1960 .ops = &clk_rcg2_shared_ops,
1964 static const struct freq_tbl ftbl_gcc_ufs_card_axi_clk_src[] = {
1965 F(25000000, P_GCC_GPLL0_OUT_EVEN, 12, 0, 0),
1966 F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0),
1967 F(150000000, P_GCC_GPLL0_OUT_MAIN, 4, 0, 0),
1968 F(300000000, P_GCC_GPLL0_OUT_MAIN, 2, 0, 0),
1972 static struct clk_rcg2 gcc_ufs_card_axi_clk_src = {
1973 .cmd_rcgr = 0x75024,
1976 .parent_map = gcc_parent_map_0,
1977 .freq_tbl = ftbl_gcc_ufs_card_axi_clk_src,
1978 .clkr.hw.init = &(const struct clk_init_data) {
1979 .name = "gcc_ufs_card_axi_clk_src",
1980 .parent_data = gcc_parent_data_0,
1981 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1982 .ops = &clk_rcg2_shared_ops,
1986 static const struct freq_tbl ftbl_gcc_ufs_card_ice_core_clk_src[] = {
1987 F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0),
1988 F(150000000, P_GCC_GPLL0_OUT_MAIN, 4, 0, 0),
1989 F(300000000, P_GCC_GPLL0_OUT_MAIN, 2, 0, 0),
1993 static struct clk_rcg2 gcc_ufs_card_ice_core_clk_src = {
1994 .cmd_rcgr = 0x7506c,
1997 .parent_map = gcc_parent_map_0,
1998 .freq_tbl = ftbl_gcc_ufs_card_ice_core_clk_src,
1999 .clkr.hw.init = &(const struct clk_init_data) {
2000 .name = "gcc_ufs_card_ice_core_clk_src",
2001 .parent_data = gcc_parent_data_0,
2002 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
2003 .ops = &clk_rcg2_shared_ops,
2007 static struct clk_rcg2 gcc_ufs_card_phy_aux_clk_src = {
2008 .cmd_rcgr = 0x750a0,
2011 .parent_map = gcc_parent_map_3,
2012 .freq_tbl = ftbl_gcc_pcie_1_aux_clk_src,
2013 .clkr.hw.init = &(const struct clk_init_data) {
2014 .name = "gcc_ufs_card_phy_aux_clk_src",
2015 .parent_data = gcc_parent_data_3,
2016 .num_parents = ARRAY_SIZE(gcc_parent_data_3),
2017 .ops = &clk_rcg2_shared_ops,
2021 static struct clk_rcg2 gcc_ufs_card_unipro_core_clk_src = {
2022 .cmd_rcgr = 0x75084,
2025 .parent_map = gcc_parent_map_0,
2026 .freq_tbl = ftbl_gcc_ufs_card_ice_core_clk_src,
2027 .clkr.hw.init = &(const struct clk_init_data) {
2028 .name = "gcc_ufs_card_unipro_core_clk_src",
2029 .parent_data = gcc_parent_data_0,
2030 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
2031 .ops = &clk_rcg2_shared_ops,
2035 static struct clk_rcg2 gcc_ufs_phy_axi_clk_src = {
2036 .cmd_rcgr = 0x77024,
2039 .parent_map = gcc_parent_map_0,
2040 .freq_tbl = ftbl_gcc_ufs_card_axi_clk_src,
2041 .clkr.hw.init = &(const struct clk_init_data) {
2042 .name = "gcc_ufs_phy_axi_clk_src",
2043 .parent_data = gcc_parent_data_0,
2044 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
2045 .ops = &clk_rcg2_shared_ops,
2049 static struct clk_rcg2 gcc_ufs_phy_ice_core_clk_src = {
2050 .cmd_rcgr = 0x7706c,
2053 .parent_map = gcc_parent_map_0,
2054 .freq_tbl = ftbl_gcc_ufs_card_ice_core_clk_src,
2055 .clkr.hw.init = &(const struct clk_init_data) {
2056 .name = "gcc_ufs_phy_ice_core_clk_src",
2057 .parent_data = gcc_parent_data_0,
2058 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
2059 .ops = &clk_rcg2_shared_ops,
2063 static struct clk_rcg2 gcc_ufs_phy_phy_aux_clk_src = {
2064 .cmd_rcgr = 0x770a0,
2067 .parent_map = gcc_parent_map_3,
2068 .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
2069 .clkr.hw.init = &(const struct clk_init_data) {
2070 .name = "gcc_ufs_phy_phy_aux_clk_src",
2071 .parent_data = gcc_parent_data_3,
2072 .num_parents = ARRAY_SIZE(gcc_parent_data_3),
2073 .ops = &clk_rcg2_shared_ops,
2077 static struct clk_rcg2 gcc_ufs_phy_unipro_core_clk_src = {
2078 .cmd_rcgr = 0x77084,
2081 .parent_map = gcc_parent_map_0,
2082 .freq_tbl = ftbl_gcc_ufs_card_ice_core_clk_src,
2083 .clkr.hw.init = &(const struct clk_init_data) {
2084 .name = "gcc_ufs_phy_unipro_core_clk_src",
2085 .parent_data = gcc_parent_data_0,
2086 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
2087 .ops = &clk_rcg2_shared_ops,
2091 static const struct freq_tbl ftbl_gcc_usb30_mp_master_clk_src[] = {
2092 F(66666667, P_GCC_GPLL0_OUT_EVEN, 4.5, 0, 0),
2093 F(133333333, P_GCC_GPLL0_OUT_MAIN, 4.5, 0, 0),
2094 F(200000000, P_GCC_GPLL0_OUT_MAIN, 3, 0, 0),
2095 F(240000000, P_GCC_GPLL0_OUT_MAIN, 2.5, 0, 0),
2099 static struct clk_rcg2 gcc_usb30_mp_master_clk_src = {
2100 .cmd_rcgr = 0xab020,
2103 .parent_map = gcc_parent_map_0,
2104 .freq_tbl = ftbl_gcc_usb30_mp_master_clk_src,
2105 .clkr.hw.init = &(const struct clk_init_data) {
2106 .name = "gcc_usb30_mp_master_clk_src",
2107 .parent_data = gcc_parent_data_0,
2108 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
2109 .ops = &clk_rcg2_shared_ops,
2113 static struct clk_rcg2 gcc_usb30_mp_mock_utmi_clk_src = {
2114 .cmd_rcgr = 0xab038,
2117 .parent_map = gcc_parent_map_0,
2118 .freq_tbl = ftbl_gcc_pcie_1_aux_clk_src,
2119 .clkr.hw.init = &(const struct clk_init_data) {
2120 .name = "gcc_usb30_mp_mock_utmi_clk_src",
2121 .parent_data = gcc_parent_data_0,
2122 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
2123 .ops = &clk_rcg2_shared_ops,
2127 static struct clk_rcg2 gcc_usb30_prim_master_clk_src = {
2131 .parent_map = gcc_parent_map_0,
2132 .freq_tbl = ftbl_gcc_usb30_mp_master_clk_src,
2133 .clkr.hw.init = &(const struct clk_init_data) {
2134 .name = "gcc_usb30_prim_master_clk_src",
2135 .parent_data = gcc_parent_data_0,
2136 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
2137 .ops = &clk_rcg2_shared_ops,
2141 static struct clk_rcg2 gcc_usb30_prim_mock_utmi_clk_src = {
2145 .parent_map = gcc_parent_map_0,
2146 .freq_tbl = ftbl_gcc_pcie_1_aux_clk_src,
2147 .clkr.hw.init = &(const struct clk_init_data) {
2148 .name = "gcc_usb30_prim_mock_utmi_clk_src",
2149 .parent_data = gcc_parent_data_0,
2150 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
2151 .ops = &clk_rcg2_shared_ops,
2155 static struct clk_rcg2 gcc_usb30_sec_master_clk_src = {
2156 .cmd_rcgr = 0x10020,
2159 .parent_map = gcc_parent_map_0,
2160 .freq_tbl = ftbl_gcc_usb30_mp_master_clk_src,
2161 .clkr.hw.init = &(const struct clk_init_data) {
2162 .name = "gcc_usb30_sec_master_clk_src",
2163 .parent_data = gcc_parent_data_0,
2164 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
2165 .ops = &clk_rcg2_shared_ops,
2169 static struct clk_rcg2 gcc_usb30_sec_mock_utmi_clk_src = {
2170 .cmd_rcgr = 0x10038,
2173 .parent_map = gcc_parent_map_0,
2174 .freq_tbl = ftbl_gcc_pcie_1_aux_clk_src,
2175 .clkr.hw.init = &(const struct clk_init_data) {
2176 .name = "gcc_usb30_sec_mock_utmi_clk_src",
2177 .parent_data = gcc_parent_data_0,
2178 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
2179 .ops = &clk_rcg2_shared_ops,
2183 static struct clk_rcg2 gcc_usb3_mp_phy_aux_clk_src = {
2184 .cmd_rcgr = 0xab06c,
2187 .parent_map = gcc_parent_map_1,
2188 .freq_tbl = ftbl_gcc_pcie_1_aux_clk_src,
2189 .clkr.hw.init = &(const struct clk_init_data) {
2190 .name = "gcc_usb3_mp_phy_aux_clk_src",
2191 .parent_data = gcc_parent_data_1,
2192 .num_parents = ARRAY_SIZE(gcc_parent_data_1),
2193 .ops = &clk_rcg2_shared_ops,
2197 static struct clk_rcg2 gcc_usb3_prim_phy_aux_clk_src = {
2201 .parent_map = gcc_parent_map_1,
2202 .freq_tbl = ftbl_gcc_pcie_1_aux_clk_src,
2203 .clkr.hw.init = &(const struct clk_init_data) {
2204 .name = "gcc_usb3_prim_phy_aux_clk_src",
2205 .parent_data = gcc_parent_data_1,
2206 .num_parents = ARRAY_SIZE(gcc_parent_data_1),
2207 .ops = &clk_rcg2_shared_ops,
2211 static struct clk_rcg2 gcc_usb3_sec_phy_aux_clk_src = {
2212 .cmd_rcgr = 0x10068,
2215 .parent_map = gcc_parent_map_1,
2216 .freq_tbl = ftbl_gcc_pcie_1_aux_clk_src,
2217 .clkr.hw.init = &(const struct clk_init_data) {
2218 .name = "gcc_usb3_sec_phy_aux_clk_src",
2219 .parent_data = gcc_parent_data_1,
2220 .num_parents = ARRAY_SIZE(gcc_parent_data_1),
2221 .ops = &clk_rcg2_shared_ops,
2225 static const struct freq_tbl ftbl_gcc_usb4_1_master_clk_src[] = {
2226 F(85714286, P_GCC_GPLL0_OUT_EVEN, 3.5, 0, 0),
2227 F(175000000, P_GCC_GPLL8_OUT_MAIN, 4, 0, 0),
2228 F(350000000, P_GCC_GPLL8_OUT_MAIN, 2, 0, 0),
2232 static struct clk_rcg2 gcc_usb4_1_master_clk_src = {
2233 .cmd_rcgr = 0xb8018,
2236 .parent_map = gcc_parent_map_5,
2237 .freq_tbl = ftbl_gcc_usb4_1_master_clk_src,
2238 .clkr.hw.init = &(const struct clk_init_data) {
2239 .name = "gcc_usb4_1_master_clk_src",
2240 .parent_data = gcc_parent_data_5,
2241 .num_parents = ARRAY_SIZE(gcc_parent_data_5),
2242 .ops = &clk_rcg2_shared_ops,
2246 static const struct freq_tbl ftbl_gcc_usb4_1_phy_pcie_pipe_clk_src[] = {
2247 F(19200000, P_BI_TCXO, 1, 0, 0),
2248 F(125000000, P_GCC_GPLL7_OUT_MAIN, 4, 0, 0),
2249 F(250000000, P_GCC_GPLL7_OUT_MAIN, 2, 0, 0),
2253 static struct clk_rcg2 gcc_usb4_1_phy_pcie_pipe_clk_src = {
2254 .cmd_rcgr = 0xb80c4,
2257 .parent_map = gcc_parent_map_6,
2258 .freq_tbl = ftbl_gcc_usb4_1_phy_pcie_pipe_clk_src,
2259 .clkr.hw.init = &(const struct clk_init_data) {
2260 .name = "gcc_usb4_1_phy_pcie_pipe_clk_src",
2261 .parent_data = gcc_parent_data_6,
2262 .num_parents = ARRAY_SIZE(gcc_parent_data_6),
2263 .ops = &clk_rcg2_shared_ops,
2267 static struct clk_rcg2 gcc_usb4_1_sb_if_clk_src = {
2268 .cmd_rcgr = 0xb8070,
2271 .parent_map = gcc_parent_map_1,
2272 .freq_tbl = ftbl_gcc_pcie_1_aux_clk_src,
2273 .clkr.hw.init = &(const struct clk_init_data) {
2274 .name = "gcc_usb4_1_sb_if_clk_src",
2275 .parent_data = gcc_parent_data_1,
2276 .num_parents = ARRAY_SIZE(gcc_parent_data_1),
2277 .ops = &clk_rcg2_shared_ops,
2281 static const struct freq_tbl ftbl_gcc_usb4_1_tmu_clk_src[] = {
2282 F(19200000, P_BI_TCXO, 1, 0, 0),
2283 F(250000000, P_GCC_GPLL2_OUT_MAIN, 4, 0, 0),
2287 static struct clk_rcg2 gcc_usb4_1_tmu_clk_src = {
2288 .cmd_rcgr = 0xb8054,
2291 .parent_map = gcc_parent_map_7,
2292 .freq_tbl = ftbl_gcc_usb4_1_tmu_clk_src,
2293 .clkr.hw.init = &(const struct clk_init_data) {
2294 .name = "gcc_usb4_1_tmu_clk_src",
2295 .parent_data = gcc_parent_data_7,
2296 .num_parents = ARRAY_SIZE(gcc_parent_data_7),
2297 .ops = &clk_rcg2_shared_ops,
2301 static struct clk_rcg2 gcc_usb4_master_clk_src = {
2302 .cmd_rcgr = 0x2a018,
2305 .parent_map = gcc_parent_map_5,
2306 .freq_tbl = ftbl_gcc_usb4_1_master_clk_src,
2307 .clkr.hw.init = &(const struct clk_init_data) {
2308 .name = "gcc_usb4_master_clk_src",
2309 .parent_data = gcc_parent_data_5,
2310 .num_parents = ARRAY_SIZE(gcc_parent_data_5),
2311 .ops = &clk_rcg2_shared_ops,
2315 static struct clk_rcg2 gcc_usb4_phy_pcie_pipe_clk_src = {
2316 .cmd_rcgr = 0x2a0c4,
2319 .parent_map = gcc_parent_map_6,
2320 .freq_tbl = ftbl_gcc_usb4_1_phy_pcie_pipe_clk_src,
2321 .clkr.hw.init = &(const struct clk_init_data) {
2322 .name = "gcc_usb4_phy_pcie_pipe_clk_src",
2323 .parent_data = gcc_parent_data_6,
2324 .num_parents = ARRAY_SIZE(gcc_parent_data_6),
2325 .ops = &clk_rcg2_shared_ops,
2329 static struct clk_rcg2 gcc_usb4_sb_if_clk_src = {
2330 .cmd_rcgr = 0x2a070,
2333 .parent_map = gcc_parent_map_1,
2334 .freq_tbl = ftbl_gcc_pcie_1_aux_clk_src,
2335 .clkr.hw.init = &(const struct clk_init_data) {
2336 .name = "gcc_usb4_sb_if_clk_src",
2337 .parent_data = gcc_parent_data_1,
2338 .num_parents = ARRAY_SIZE(gcc_parent_data_1),
2339 .ops = &clk_rcg2_shared_ops,
2343 static struct clk_rcg2 gcc_usb4_tmu_clk_src = {
2344 .cmd_rcgr = 0x2a054,
2347 .parent_map = gcc_parent_map_7,
2348 .freq_tbl = ftbl_gcc_usb4_1_tmu_clk_src,
2349 .clkr.hw.init = &(const struct clk_init_data) {
2350 .name = "gcc_usb4_tmu_clk_src",
2351 .parent_data = gcc_parent_data_7,
2352 .num_parents = ARRAY_SIZE(gcc_parent_data_7),
2353 .ops = &clk_rcg2_shared_ops,
2357 static struct clk_regmap_div gcc_pcie_2a_pipe_div_clk_src = {
2361 .clkr.hw.init = &(const struct clk_init_data) {
2362 .name = "gcc_pcie_2a_pipe_div_clk_src",
2363 .parent_hws = (const struct clk_hw*[]){
2364 &gcc_pcie_2a_pipe_clk_src.clkr.hw,
2367 .flags = CLK_SET_RATE_PARENT,
2368 .ops = &clk_regmap_div_ro_ops,
2372 static struct clk_regmap_div gcc_pcie_2b_pipe_div_clk_src = {
2376 .clkr.hw.init = &(const struct clk_init_data) {
2377 .name = "gcc_pcie_2b_pipe_div_clk_src",
2378 .parent_hws = (const struct clk_hw*[]){
2379 &gcc_pcie_2b_pipe_clk_src.clkr.hw,
2382 .flags = CLK_SET_RATE_PARENT,
2383 .ops = &clk_regmap_div_ro_ops,
2387 static struct clk_regmap_div gcc_pcie_3a_pipe_div_clk_src = {
2391 .clkr.hw.init = &(const struct clk_init_data) {
2392 .name = "gcc_pcie_3a_pipe_div_clk_src",
2393 .parent_hws = (const struct clk_hw*[]){
2394 &gcc_pcie_3a_pipe_clk_src.clkr.hw,
2397 .flags = CLK_SET_RATE_PARENT,
2398 .ops = &clk_regmap_div_ro_ops,
2402 static struct clk_regmap_div gcc_pcie_3b_pipe_div_clk_src = {
2406 .clkr.hw.init = &(const struct clk_init_data) {
2407 .name = "gcc_pcie_3b_pipe_div_clk_src",
2408 .parent_hws = (const struct clk_hw*[]){
2409 &gcc_pcie_3b_pipe_clk_src.clkr.hw,
2412 .flags = CLK_SET_RATE_PARENT,
2413 .ops = &clk_regmap_div_ro_ops,
2417 static struct clk_regmap_div gcc_pcie_4_pipe_div_clk_src = {
2421 .clkr.hw.init = &(const struct clk_init_data) {
2422 .name = "gcc_pcie_4_pipe_div_clk_src",
2423 .parent_hws = (const struct clk_hw*[]){
2424 &gcc_pcie_4_pipe_clk_src.clkr.hw,
2427 .flags = CLK_SET_RATE_PARENT,
2428 .ops = &clk_regmap_div_ro_ops,
2432 static struct clk_regmap_div gcc_qupv3_wrap0_s4_div_clk_src = {
2436 .clkr.hw.init = &(const struct clk_init_data) {
2437 .name = "gcc_qupv3_wrap0_s4_div_clk_src",
2438 .parent_hws = (const struct clk_hw*[]){
2439 &gcc_qupv3_wrap0_s4_clk_src.clkr.hw,
2442 .flags = CLK_SET_RATE_PARENT,
2443 .ops = &clk_regmap_div_ro_ops,
2447 static struct clk_regmap_div gcc_qupv3_wrap1_s4_div_clk_src = {
2451 .clkr.hw.init = &(const struct clk_init_data) {
2452 .name = "gcc_qupv3_wrap1_s4_div_clk_src",
2453 .parent_hws = (const struct clk_hw*[]){
2454 &gcc_qupv3_wrap1_s4_clk_src.clkr.hw,
2457 .flags = CLK_SET_RATE_PARENT,
2458 .ops = &clk_regmap_div_ro_ops,
2462 static struct clk_regmap_div gcc_qupv3_wrap2_s4_div_clk_src = {
2466 .clkr.hw.init = &(const struct clk_init_data) {
2467 .name = "gcc_qupv3_wrap2_s4_div_clk_src",
2468 .parent_hws = (const struct clk_hw*[]){
2469 &gcc_qupv3_wrap2_s4_clk_src.clkr.hw,
2472 .flags = CLK_SET_RATE_PARENT,
2473 .ops = &clk_regmap_div_ro_ops,
2477 static struct clk_regmap_div gcc_usb30_mp_mock_utmi_postdiv_clk_src = {
2481 .clkr.hw.init = &(const struct clk_init_data) {
2482 .name = "gcc_usb30_mp_mock_utmi_postdiv_clk_src",
2483 .parent_hws = (const struct clk_hw*[]){
2484 &gcc_usb30_mp_mock_utmi_clk_src.clkr.hw,
2487 .flags = CLK_SET_RATE_PARENT,
2488 .ops = &clk_regmap_div_ro_ops,
2492 static struct clk_regmap_div gcc_usb30_prim_mock_utmi_postdiv_clk_src = {
2496 .clkr.hw.init = &(const struct clk_init_data) {
2497 .name = "gcc_usb30_prim_mock_utmi_postdiv_clk_src",
2498 .parent_hws = (const struct clk_hw*[]){
2499 &gcc_usb30_prim_mock_utmi_clk_src.clkr.hw,
2502 .flags = CLK_SET_RATE_PARENT,
2503 .ops = &clk_regmap_div_ro_ops,
2507 static struct clk_regmap_div gcc_usb30_sec_mock_utmi_postdiv_clk_src = {
2511 .clkr.hw.init = &(const struct clk_init_data) {
2512 .name = "gcc_usb30_sec_mock_utmi_postdiv_clk_src",
2513 .parent_hws = (const struct clk_hw*[]){
2514 &gcc_usb30_sec_mock_utmi_clk_src.clkr.hw,
2517 .flags = CLK_SET_RATE_PARENT,
2518 .ops = &clk_regmap_div_ro_ops,
2522 static struct clk_branch gcc_aggre_noc_pcie0_tunnel_axi_clk = {
2523 .halt_reg = 0xa41a8,
2524 .halt_check = BRANCH_HALT_SKIP,
2525 .hwcg_reg = 0xa41a8,
2528 .enable_reg = 0x52018,
2529 .enable_mask = BIT(14),
2530 .hw.init = &(const struct clk_init_data) {
2531 .name = "gcc_aggre_noc_pcie0_tunnel_axi_clk",
2532 .ops = &clk_branch2_ops,
2537 static struct clk_branch gcc_aggre_noc_pcie1_tunnel_axi_clk = {
2538 .halt_reg = 0x8d07c,
2539 .halt_check = BRANCH_HALT_SKIP,
2540 .hwcg_reg = 0x8d07c,
2543 .enable_reg = 0x52018,
2544 .enable_mask = BIT(21),
2545 .hw.init = &(const struct clk_init_data) {
2546 .name = "gcc_aggre_noc_pcie1_tunnel_axi_clk",
2547 .ops = &clk_branch2_ops,
2552 static struct clk_branch gcc_aggre_noc_pcie_4_axi_clk = {
2553 .halt_reg = 0x6b1b8,
2554 .halt_check = BRANCH_HALT_SKIP,
2555 .hwcg_reg = 0x6b1b8,
2558 .enable_reg = 0x52000,
2559 .enable_mask = BIT(12),
2560 .hw.init = &(const struct clk_init_data) {
2561 .name = "gcc_aggre_noc_pcie_4_axi_clk",
2562 .ops = &clk_branch2_ops,
2567 static struct clk_branch gcc_aggre_noc_pcie_south_sf_axi_clk = {
2568 .halt_reg = 0xbf13c,
2569 .halt_check = BRANCH_HALT_SKIP,
2570 .hwcg_reg = 0xbf13c,
2573 .enable_reg = 0x52018,
2574 .enable_mask = BIT(13),
2575 .hw.init = &(const struct clk_init_data) {
2576 .name = "gcc_aggre_noc_pcie_south_sf_axi_clk",
2577 .ops = &clk_branch2_ops,
2582 static struct clk_branch gcc_aggre_ufs_card_axi_clk = {
2583 .halt_reg = 0x750cc,
2584 .halt_check = BRANCH_HALT_VOTED,
2585 .hwcg_reg = 0x750cc,
2588 .enable_reg = 0x750cc,
2589 .enable_mask = BIT(0),
2590 .hw.init = &(const struct clk_init_data) {
2591 .name = "gcc_aggre_ufs_card_axi_clk",
2592 .parent_hws = (const struct clk_hw*[]){
2593 &gcc_ufs_card_axi_clk_src.clkr.hw,
2596 .flags = CLK_SET_RATE_PARENT,
2597 .ops = &clk_branch2_ops,
2602 static struct clk_branch gcc_aggre_ufs_card_axi_hw_ctl_clk = {
2603 .halt_reg = 0x750cc,
2604 .halt_check = BRANCH_HALT_VOTED,
2605 .hwcg_reg = 0x750cc,
2608 .enable_reg = 0x750cc,
2609 .enable_mask = BIT(1),
2610 .hw.init = &(const struct clk_init_data) {
2611 .name = "gcc_aggre_ufs_card_axi_hw_ctl_clk",
2612 .parent_hws = (const struct clk_hw*[]){
2613 &gcc_ufs_card_axi_clk_src.clkr.hw,
2616 .flags = CLK_SET_RATE_PARENT,
2617 .ops = &clk_branch2_ops,
2622 static struct clk_branch gcc_aggre_ufs_phy_axi_clk = {
2623 .halt_reg = 0x770cc,
2624 .halt_check = BRANCH_HALT_VOTED,
2625 .hwcg_reg = 0x770cc,
2628 .enable_reg = 0x770cc,
2629 .enable_mask = BIT(0),
2630 .hw.init = &(const struct clk_init_data) {
2631 .name = "gcc_aggre_ufs_phy_axi_clk",
2632 .parent_hws = (const struct clk_hw*[]){
2633 &gcc_ufs_phy_axi_clk_src.clkr.hw,
2636 .flags = CLK_SET_RATE_PARENT,
2637 .ops = &clk_branch2_ops,
2642 static struct clk_branch gcc_aggre_ufs_phy_axi_hw_ctl_clk = {
2643 .halt_reg = 0x770cc,
2644 .halt_check = BRANCH_HALT_VOTED,
2645 .hwcg_reg = 0x770cc,
2648 .enable_reg = 0x770cc,
2649 .enable_mask = BIT(1),
2650 .hw.init = &(const struct clk_init_data) {
2651 .name = "gcc_aggre_ufs_phy_axi_hw_ctl_clk",
2652 .parent_hws = (const struct clk_hw*[]){
2653 &gcc_ufs_phy_axi_clk_src.clkr.hw,
2656 .flags = CLK_SET_RATE_PARENT,
2657 .ops = &clk_branch2_ops,
2662 static struct clk_branch gcc_aggre_usb3_mp_axi_clk = {
2663 .halt_reg = 0xab084,
2664 .halt_check = BRANCH_HALT_VOTED,
2665 .hwcg_reg = 0xab084,
2668 .enable_reg = 0xab084,
2669 .enable_mask = BIT(0),
2670 .hw.init = &(const struct clk_init_data) {
2671 .name = "gcc_aggre_usb3_mp_axi_clk",
2672 .parent_hws = (const struct clk_hw*[]){
2673 &gcc_usb30_mp_master_clk_src.clkr.hw,
2676 .flags = CLK_SET_RATE_PARENT,
2677 .ops = &clk_branch2_ops,
2682 static struct clk_branch gcc_aggre_usb3_prim_axi_clk = {
2684 .halt_check = BRANCH_HALT_VOTED,
2688 .enable_reg = 0xf080,
2689 .enable_mask = BIT(0),
2690 .hw.init = &(const struct clk_init_data) {
2691 .name = "gcc_aggre_usb3_prim_axi_clk",
2692 .parent_hws = (const struct clk_hw*[]){
2693 &gcc_usb30_prim_master_clk_src.clkr.hw,
2696 .flags = CLK_SET_RATE_PARENT,
2697 .ops = &clk_branch2_ops,
2702 static struct clk_branch gcc_aggre_usb3_sec_axi_clk = {
2703 .halt_reg = 0x10080,
2704 .halt_check = BRANCH_HALT_VOTED,
2705 .hwcg_reg = 0x10080,
2708 .enable_reg = 0x10080,
2709 .enable_mask = BIT(0),
2710 .hw.init = &(const struct clk_init_data) {
2711 .name = "gcc_aggre_usb3_sec_axi_clk",
2712 .parent_hws = (const struct clk_hw*[]){
2713 &gcc_usb30_sec_master_clk_src.clkr.hw,
2716 .flags = CLK_SET_RATE_PARENT,
2717 .ops = &clk_branch2_ops,
2722 static struct clk_branch gcc_aggre_usb4_1_axi_clk = {
2723 .halt_reg = 0xb80e4,
2724 .halt_check = BRANCH_HALT_VOTED,
2725 .hwcg_reg = 0xb80e4,
2728 .enable_reg = 0xb80e4,
2729 .enable_mask = BIT(0),
2730 .hw.init = &(const struct clk_init_data) {
2731 .name = "gcc_aggre_usb4_1_axi_clk",
2732 .parent_hws = (const struct clk_hw*[]){
2733 &gcc_usb4_1_master_clk_src.clkr.hw,
2736 .flags = CLK_SET_RATE_PARENT,
2737 .ops = &clk_branch2_ops,
2742 static struct clk_branch gcc_aggre_usb4_axi_clk = {
2743 .halt_reg = 0x2a0e4,
2744 .halt_check = BRANCH_HALT_VOTED,
2745 .hwcg_reg = 0x2a0e4,
2748 .enable_reg = 0x2a0e4,
2749 .enable_mask = BIT(0),
2750 .hw.init = &(const struct clk_init_data) {
2751 .name = "gcc_aggre_usb4_axi_clk",
2752 .parent_hws = (const struct clk_hw*[]){
2753 &gcc_usb4_master_clk_src.clkr.hw,
2756 .flags = CLK_SET_RATE_PARENT,
2757 .ops = &clk_branch2_ops,
2762 static struct clk_branch gcc_aggre_usb_noc_axi_clk = {
2763 .halt_reg = 0x5d024,
2764 .halt_check = BRANCH_HALT_VOTED,
2765 .hwcg_reg = 0x5d024,
2768 .enable_reg = 0x5d024,
2769 .enable_mask = BIT(0),
2770 .hw.init = &(const struct clk_init_data) {
2771 .name = "gcc_aggre_usb_noc_axi_clk",
2772 .ops = &clk_branch2_ops,
2777 static struct clk_branch gcc_aggre_usb_noc_north_axi_clk = {
2778 .halt_reg = 0x5d020,
2779 .halt_check = BRANCH_HALT_VOTED,
2780 .hwcg_reg = 0x5d020,
2783 .enable_reg = 0x5d020,
2784 .enable_mask = BIT(0),
2785 .hw.init = &(const struct clk_init_data) {
2786 .name = "gcc_aggre_usb_noc_north_axi_clk",
2787 .ops = &clk_branch2_ops,
2792 static struct clk_branch gcc_aggre_usb_noc_south_axi_clk = {
2793 .halt_reg = 0x5d01c,
2794 .halt_check = BRANCH_HALT_VOTED,
2795 .hwcg_reg = 0x5d01c,
2798 .enable_reg = 0x5d01c,
2799 .enable_mask = BIT(0),
2800 .hw.init = &(const struct clk_init_data) {
2801 .name = "gcc_aggre_usb_noc_south_axi_clk",
2802 .ops = &clk_branch2_ops,
2807 static struct clk_branch gcc_ahb2phy0_clk = {
2808 .halt_reg = 0x6a004,
2809 .halt_check = BRANCH_HALT_VOTED,
2810 .hwcg_reg = 0x6a004,
2813 .enable_reg = 0x6a004,
2814 .enable_mask = BIT(0),
2815 .hw.init = &(const struct clk_init_data) {
2816 .name = "gcc_ahb2phy0_clk",
2817 .ops = &clk_branch2_ops,
2822 static struct clk_branch gcc_ahb2phy2_clk = {
2823 .halt_reg = 0x6a008,
2824 .halt_check = BRANCH_HALT_VOTED,
2825 .hwcg_reg = 0x6a008,
2828 .enable_reg = 0x6a008,
2829 .enable_mask = BIT(0),
2830 .hw.init = &(const struct clk_init_data) {
2831 .name = "gcc_ahb2phy2_clk",
2832 .ops = &clk_branch2_ops,
2837 static struct clk_branch gcc_boot_rom_ahb_clk = {
2838 .halt_reg = 0x38004,
2839 .halt_check = BRANCH_HALT_VOTED,
2840 .hwcg_reg = 0x38004,
2843 .enable_reg = 0x52000,
2844 .enable_mask = BIT(10),
2845 .hw.init = &(const struct clk_init_data) {
2846 .name = "gcc_boot_rom_ahb_clk",
2847 .ops = &clk_branch2_ops,
2852 static struct clk_branch gcc_camera_hf_axi_clk = {
2853 .halt_reg = 0x26010,
2854 .halt_check = BRANCH_HALT_SKIP,
2855 .hwcg_reg = 0x26010,
2858 .enable_reg = 0x26010,
2859 .enable_mask = BIT(0),
2860 .hw.init = &(const struct clk_init_data) {
2861 .name = "gcc_camera_hf_axi_clk",
2862 .ops = &clk_branch2_ops,
2867 static struct clk_branch gcc_camera_sf_axi_clk = {
2868 .halt_reg = 0x26014,
2869 .halt_check = BRANCH_HALT_SKIP,
2870 .hwcg_reg = 0x26014,
2873 .enable_reg = 0x26014,
2874 .enable_mask = BIT(0),
2875 .hw.init = &(const struct clk_init_data) {
2876 .name = "gcc_camera_sf_axi_clk",
2877 .ops = &clk_branch2_ops,
2882 static struct clk_branch gcc_camera_throttle_nrt_axi_clk = {
2883 .halt_reg = 0x2601c,
2884 .halt_check = BRANCH_HALT_SKIP,
2885 .hwcg_reg = 0x2601c,
2888 .enable_reg = 0x2601c,
2889 .enable_mask = BIT(0),
2890 .hw.init = &(const struct clk_init_data) {
2891 .name = "gcc_camera_throttle_nrt_axi_clk",
2892 .ops = &clk_branch2_ops,
2897 static struct clk_branch gcc_camera_throttle_rt_axi_clk = {
2898 .halt_reg = 0x26018,
2899 .halt_check = BRANCH_HALT_SKIP,
2900 .hwcg_reg = 0x26018,
2903 .enable_reg = 0x26018,
2904 .enable_mask = BIT(0),
2905 .hw.init = &(const struct clk_init_data) {
2906 .name = "gcc_camera_throttle_rt_axi_clk",
2907 .ops = &clk_branch2_ops,
2912 static struct clk_branch gcc_camera_throttle_xo_clk = {
2913 .halt_reg = 0x26024,
2914 .halt_check = BRANCH_HALT,
2916 .enable_reg = 0x26024,
2917 .enable_mask = BIT(0),
2918 .hw.init = &(const struct clk_init_data) {
2919 .name = "gcc_camera_throttle_xo_clk",
2920 .ops = &clk_branch2_ops,
2925 static struct clk_branch gcc_cfg_noc_usb3_mp_axi_clk = {
2926 .halt_reg = 0xab088,
2927 .halt_check = BRANCH_HALT_VOTED,
2928 .hwcg_reg = 0xab088,
2931 .enable_reg = 0xab088,
2932 .enable_mask = BIT(0),
2933 .hw.init = &(const struct clk_init_data) {
2934 .name = "gcc_cfg_noc_usb3_mp_axi_clk",
2935 .parent_hws = (const struct clk_hw*[]){
2936 &gcc_usb30_mp_master_clk_src.clkr.hw,
2939 .flags = CLK_SET_RATE_PARENT,
2940 .ops = &clk_branch2_ops,
2945 static struct clk_branch gcc_cfg_noc_usb3_prim_axi_clk = {
2947 .halt_check = BRANCH_HALT_VOTED,
2951 .enable_reg = 0xf084,
2952 .enable_mask = BIT(0),
2953 .hw.init = &(const struct clk_init_data) {
2954 .name = "gcc_cfg_noc_usb3_prim_axi_clk",
2955 .parent_hws = (const struct clk_hw*[]){
2956 &gcc_usb30_prim_master_clk_src.clkr.hw,
2959 .flags = CLK_SET_RATE_PARENT,
2960 .ops = &clk_branch2_ops,
2965 static struct clk_branch gcc_cfg_noc_usb3_sec_axi_clk = {
2966 .halt_reg = 0x10084,
2967 .halt_check = BRANCH_HALT_VOTED,
2968 .hwcg_reg = 0x10084,
2971 .enable_reg = 0x10084,
2972 .enable_mask = BIT(0),
2973 .hw.init = &(const struct clk_init_data) {
2974 .name = "gcc_cfg_noc_usb3_sec_axi_clk",
2975 .parent_hws = (const struct clk_hw*[]){
2976 &gcc_usb30_sec_master_clk_src.clkr.hw,
2979 .flags = CLK_SET_RATE_PARENT,
2980 .ops = &clk_branch2_ops,
2985 static struct clk_branch gcc_cnoc_pcie0_tunnel_clk = {
2986 .halt_reg = 0xa4074,
2987 .halt_check = BRANCH_HALT_VOTED,
2989 .enable_reg = 0x52020,
2990 .enable_mask = BIT(8),
2991 .hw.init = &(const struct clk_init_data) {
2992 .name = "gcc_cnoc_pcie0_tunnel_clk",
2993 .ops = &clk_branch2_ops,
2998 static struct clk_branch gcc_cnoc_pcie1_tunnel_clk = {
2999 .halt_reg = 0x8d074,
3000 .halt_check = BRANCH_HALT_VOTED,
3002 .enable_reg = 0x52020,
3003 .enable_mask = BIT(9),
3004 .hw.init = &(const struct clk_init_data) {
3005 .name = "gcc_cnoc_pcie1_tunnel_clk",
3006 .ops = &clk_branch2_ops,
3011 static struct clk_branch gcc_cnoc_pcie4_qx_clk = {
3012 .halt_reg = 0x6b084,
3013 .halt_check = BRANCH_HALT_VOTED,
3014 .hwcg_reg = 0x6b084,
3017 .enable_reg = 0x52020,
3018 .enable_mask = BIT(10),
3019 .hw.init = &(const struct clk_init_data) {
3020 .name = "gcc_cnoc_pcie4_qx_clk",
3021 .ops = &clk_branch2_ops,
3026 static struct clk_branch gcc_ddrss_gpu_axi_clk = {
3027 .halt_reg = 0x7115c,
3028 .halt_check = BRANCH_HALT_SKIP,
3029 .hwcg_reg = 0x7115c,
3032 .enable_reg = 0x7115c,
3033 .enable_mask = BIT(0),
3034 .hw.init = &(const struct clk_init_data) {
3035 .name = "gcc_ddrss_gpu_axi_clk",
3036 .ops = &clk_branch2_aon_ops,
3041 static struct clk_branch gcc_ddrss_pcie_sf_tbu_clk = {
3042 .halt_reg = 0xa602c,
3043 .halt_check = BRANCH_HALT_SKIP,
3044 .hwcg_reg = 0xa602c,
3047 .enable_reg = 0x52000,
3048 .enable_mask = BIT(19),
3049 .hw.init = &(const struct clk_init_data) {
3050 .name = "gcc_ddrss_pcie_sf_tbu_clk",
3051 .ops = &clk_branch2_ops,
3056 static struct clk_branch gcc_disp1_hf_axi_clk = {
3057 .halt_reg = 0xbb010,
3058 .halt_check = BRANCH_HALT_SKIP,
3059 .hwcg_reg = 0xbb010,
3062 .enable_reg = 0xbb010,
3063 .enable_mask = BIT(0),
3064 .hw.init = &(const struct clk_init_data) {
3065 .name = "gcc_disp1_hf_axi_clk",
3066 .ops = &clk_branch2_ops,
3071 static struct clk_branch gcc_disp1_sf_axi_clk = {
3072 .halt_reg = 0xbb018,
3073 .halt_check = BRANCH_HALT_SKIP,
3074 .hwcg_reg = 0xbb018,
3077 .enable_reg = 0xbb018,
3078 .enable_mask = BIT(0),
3079 .hw.init = &(const struct clk_init_data) {
3080 .name = "gcc_disp1_sf_axi_clk",
3081 .ops = &clk_branch2_ops,
3086 static struct clk_branch gcc_disp1_throttle_nrt_axi_clk = {
3087 .halt_reg = 0xbb024,
3088 .halt_check = BRANCH_HALT_SKIP,
3089 .hwcg_reg = 0xbb024,
3092 .enable_reg = 0xbb024,
3093 .enable_mask = BIT(0),
3094 .hw.init = &(const struct clk_init_data) {
3095 .name = "gcc_disp1_throttle_nrt_axi_clk",
3096 .ops = &clk_branch2_ops,
3101 static struct clk_branch gcc_disp1_throttle_rt_axi_clk = {
3102 .halt_reg = 0xbb020,
3103 .halt_check = BRANCH_HALT_SKIP,
3104 .hwcg_reg = 0xbb020,
3107 .enable_reg = 0xbb020,
3108 .enable_mask = BIT(0),
3109 .hw.init = &(const struct clk_init_data) {
3110 .name = "gcc_disp1_throttle_rt_axi_clk",
3111 .ops = &clk_branch2_ops,
3116 static struct clk_branch gcc_disp_hf_axi_clk = {
3117 .halt_reg = 0x27010,
3118 .halt_check = BRANCH_HALT_SKIP,
3119 .hwcg_reg = 0x27010,
3122 .enable_reg = 0x27010,
3123 .enable_mask = BIT(0),
3124 .hw.init = &(const struct clk_init_data) {
3125 .name = "gcc_disp_hf_axi_clk",
3126 .ops = &clk_branch2_ops,
3131 static struct clk_branch gcc_disp_sf_axi_clk = {
3132 .halt_reg = 0x27018,
3133 .halt_check = BRANCH_HALT_SKIP,
3134 .hwcg_reg = 0x27018,
3137 .enable_reg = 0x27018,
3138 .enable_mask = BIT(0),
3139 .hw.init = &(const struct clk_init_data) {
3140 .name = "gcc_disp_sf_axi_clk",
3141 .ops = &clk_branch2_ops,
3146 static struct clk_branch gcc_disp_throttle_nrt_axi_clk = {
3147 .halt_reg = 0x27024,
3148 .halt_check = BRANCH_HALT_SKIP,
3149 .hwcg_reg = 0x27024,
3152 .enable_reg = 0x27024,
3153 .enable_mask = BIT(0),
3154 .hw.init = &(const struct clk_init_data) {
3155 .name = "gcc_disp_throttle_nrt_axi_clk",
3156 .ops = &clk_branch2_ops,
3161 static struct clk_branch gcc_disp_throttle_rt_axi_clk = {
3162 .halt_reg = 0x27020,
3163 .halt_check = BRANCH_HALT_SKIP,
3164 .hwcg_reg = 0x27020,
3167 .enable_reg = 0x27020,
3168 .enable_mask = BIT(0),
3169 .hw.init = &(const struct clk_init_data) {
3170 .name = "gcc_disp_throttle_rt_axi_clk",
3171 .ops = &clk_branch2_ops,
3176 static struct clk_branch gcc_emac0_axi_clk = {
3177 .halt_reg = 0xaa010,
3178 .halt_check = BRANCH_HALT_VOTED,
3179 .hwcg_reg = 0xaa010,
3182 .enable_reg = 0xaa010,
3183 .enable_mask = BIT(0),
3184 .hw.init = &(const struct clk_init_data) {
3185 .name = "gcc_emac0_axi_clk",
3186 .ops = &clk_branch2_ops,
3191 static struct clk_branch gcc_emac0_ptp_clk = {
3192 .halt_reg = 0xaa01c,
3193 .halt_check = BRANCH_HALT,
3195 .enable_reg = 0xaa01c,
3196 .enable_mask = BIT(0),
3197 .hw.init = &(const struct clk_init_data) {
3198 .name = "gcc_emac0_ptp_clk",
3199 .parent_hws = (const struct clk_hw*[]){
3200 &gcc_emac0_ptp_clk_src.clkr.hw,
3203 .flags = CLK_SET_RATE_PARENT,
3204 .ops = &clk_branch2_ops,
3209 static struct clk_branch gcc_emac0_rgmii_clk = {
3210 .halt_reg = 0xaa038,
3211 .halt_check = BRANCH_HALT,
3213 .enable_reg = 0xaa038,
3214 .enable_mask = BIT(0),
3215 .hw.init = &(const struct clk_init_data) {
3216 .name = "gcc_emac0_rgmii_clk",
3217 .parent_hws = (const struct clk_hw*[]){
3218 &gcc_emac0_rgmii_clk_src.clkr.hw,
3221 .flags = CLK_SET_RATE_PARENT,
3222 .ops = &clk_branch2_ops,
3227 static struct clk_branch gcc_emac0_slv_ahb_clk = {
3228 .halt_reg = 0xaa018,
3229 .halt_check = BRANCH_HALT_VOTED,
3230 .hwcg_reg = 0xaa018,
3233 .enable_reg = 0xaa018,
3234 .enable_mask = BIT(0),
3235 .hw.init = &(const struct clk_init_data) {
3236 .name = "gcc_emac0_slv_ahb_clk",
3237 .ops = &clk_branch2_ops,
3242 static struct clk_branch gcc_emac1_axi_clk = {
3243 .halt_reg = 0xba010,
3244 .halt_check = BRANCH_HALT_VOTED,
3245 .hwcg_reg = 0xba010,
3248 .enable_reg = 0xba010,
3249 .enable_mask = BIT(0),
3250 .hw.init = &(const struct clk_init_data) {
3251 .name = "gcc_emac1_axi_clk",
3252 .ops = &clk_branch2_ops,
3257 static struct clk_branch gcc_emac1_ptp_clk = {
3258 .halt_reg = 0xba01c,
3259 .halt_check = BRANCH_HALT,
3261 .enable_reg = 0xba01c,
3262 .enable_mask = BIT(0),
3263 .hw.init = &(const struct clk_init_data) {
3264 .name = "gcc_emac1_ptp_clk",
3265 .parent_hws = (const struct clk_hw*[]){
3266 &gcc_emac1_ptp_clk_src.clkr.hw,
3269 .flags = CLK_SET_RATE_PARENT,
3270 .ops = &clk_branch2_ops,
3275 static struct clk_branch gcc_emac1_rgmii_clk = {
3276 .halt_reg = 0xba038,
3277 .halt_check = BRANCH_HALT,
3279 .enable_reg = 0xba038,
3280 .enable_mask = BIT(0),
3281 .hw.init = &(const struct clk_init_data) {
3282 .name = "gcc_emac1_rgmii_clk",
3283 .parent_hws = (const struct clk_hw*[]){
3284 &gcc_emac1_rgmii_clk_src.clkr.hw,
3287 .flags = CLK_SET_RATE_PARENT,
3288 .ops = &clk_branch2_ops,
3293 static struct clk_branch gcc_emac1_slv_ahb_clk = {
3294 .halt_reg = 0xba018,
3295 .halt_check = BRANCH_HALT_VOTED,
3296 .hwcg_reg = 0xba018,
3299 .enable_reg = 0xba018,
3300 .enable_mask = BIT(0),
3301 .hw.init = &(const struct clk_init_data) {
3302 .name = "gcc_emac1_slv_ahb_clk",
3303 .ops = &clk_branch2_ops,
3308 static struct clk_branch gcc_gp1_clk = {
3309 .halt_reg = 0x64000,
3310 .halt_check = BRANCH_HALT,
3312 .enable_reg = 0x64000,
3313 .enable_mask = BIT(0),
3314 .hw.init = &(const struct clk_init_data) {
3315 .name = "gcc_gp1_clk",
3316 .parent_hws = (const struct clk_hw*[]){
3317 &gcc_gp1_clk_src.clkr.hw,
3320 .flags = CLK_SET_RATE_PARENT,
3321 .ops = &clk_branch2_ops,
3326 static struct clk_branch gcc_gp2_clk = {
3327 .halt_reg = 0x65000,
3328 .halt_check = BRANCH_HALT,
3330 .enable_reg = 0x65000,
3331 .enable_mask = BIT(0),
3332 .hw.init = &(const struct clk_init_data) {
3333 .name = "gcc_gp2_clk",
3334 .parent_hws = (const struct clk_hw*[]){
3335 &gcc_gp2_clk_src.clkr.hw,
3338 .flags = CLK_SET_RATE_PARENT,
3339 .ops = &clk_branch2_ops,
3344 static struct clk_branch gcc_gp3_clk = {
3345 .halt_reg = 0x66000,
3346 .halt_check = BRANCH_HALT,
3348 .enable_reg = 0x66000,
3349 .enable_mask = BIT(0),
3350 .hw.init = &(const struct clk_init_data) {
3351 .name = "gcc_gp3_clk",
3352 .parent_hws = (const struct clk_hw*[]){
3353 &gcc_gp3_clk_src.clkr.hw,
3356 .flags = CLK_SET_RATE_PARENT,
3357 .ops = &clk_branch2_ops,
3362 static struct clk_branch gcc_gp4_clk = {
3363 .halt_reg = 0xc2000,
3364 .halt_check = BRANCH_HALT,
3366 .enable_reg = 0xc2000,
3367 .enable_mask = BIT(0),
3368 .hw.init = &(const struct clk_init_data) {
3369 .name = "gcc_gp4_clk",
3370 .parent_hws = (const struct clk_hw*[]){
3371 &gcc_gp4_clk_src.clkr.hw,
3374 .flags = CLK_SET_RATE_PARENT,
3375 .ops = &clk_branch2_ops,
3380 static struct clk_branch gcc_gp5_clk = {
3381 .halt_reg = 0xc3000,
3382 .halt_check = BRANCH_HALT,
3384 .enable_reg = 0xc3000,
3385 .enable_mask = BIT(0),
3386 .hw.init = &(const struct clk_init_data) {
3387 .name = "gcc_gp5_clk",
3388 .parent_hws = (const struct clk_hw*[]){
3389 &gcc_gp5_clk_src.clkr.hw,
3392 .flags = CLK_SET_RATE_PARENT,
3393 .ops = &clk_branch2_ops,
3398 static struct clk_branch gcc_gpu_gpll0_clk_src = {
3399 .halt_check = BRANCH_HALT_DELAY,
3401 .enable_reg = 0x52000,
3402 .enable_mask = BIT(15),
3403 .hw.init = &(const struct clk_init_data) {
3404 .name = "gcc_gpu_gpll0_clk_src",
3405 .parent_hws = (const struct clk_hw*[]){
3409 .flags = CLK_SET_RATE_PARENT,
3410 .ops = &clk_branch2_ops,
3415 static struct clk_branch gcc_gpu_gpll0_div_clk_src = {
3416 .halt_check = BRANCH_HALT_DELAY,
3418 .enable_reg = 0x52000,
3419 .enable_mask = BIT(16),
3420 .hw.init = &(const struct clk_init_data) {
3421 .name = "gcc_gpu_gpll0_div_clk_src",
3422 .parent_hws = (const struct clk_hw*[]){
3423 &gcc_gpll0_out_even.clkr.hw,
3426 .flags = CLK_SET_RATE_PARENT,
3427 .ops = &clk_branch2_ops,
3432 static struct clk_branch gcc_gpu_iref_en = {
3433 .halt_reg = 0x8c014,
3434 .halt_check = BRANCH_HALT,
3436 .enable_reg = 0x8c014,
3437 .enable_mask = BIT(0),
3438 .hw.init = &(const struct clk_init_data) {
3439 .name = "gcc_gpu_iref_en",
3440 .ops = &clk_branch2_ops,
3445 static struct clk_branch gcc_gpu_memnoc_gfx_clk = {
3446 .halt_reg = 0x71010,
3447 .halt_check = BRANCH_HALT_VOTED,
3448 .hwcg_reg = 0x71010,
3451 .enable_reg = 0x71010,
3452 .enable_mask = BIT(0),
3453 .hw.init = &(const struct clk_init_data) {
3454 .name = "gcc_gpu_memnoc_gfx_clk",
3455 .ops = &clk_branch2_aon_ops,
3460 static struct clk_branch gcc_gpu_snoc_dvm_gfx_clk = {
3461 .halt_reg = 0x71020,
3462 .halt_check = BRANCH_HALT,
3464 .enable_reg = 0x71020,
3465 .enable_mask = BIT(0),
3466 .hw.init = &(const struct clk_init_data) {
3467 .name = "gcc_gpu_snoc_dvm_gfx_clk",
3468 .ops = &clk_branch2_aon_ops,
3473 static struct clk_branch gcc_gpu_tcu_throttle_ahb_clk = {
3474 .halt_reg = 0x71008,
3475 .halt_check = BRANCH_HALT_VOTED,
3476 .hwcg_reg = 0x71008,
3479 .enable_reg = 0x71008,
3480 .enable_mask = BIT(0),
3481 .hw.init = &(const struct clk_init_data) {
3482 .name = "gcc_gpu_tcu_throttle_ahb_clk",
3483 .ops = &clk_branch2_ops,
3488 static struct clk_branch gcc_gpu_tcu_throttle_clk = {
3489 .halt_reg = 0x71018,
3490 .halt_check = BRANCH_HALT_VOTED,
3491 .hwcg_reg = 0x71018,
3494 .enable_reg = 0x71018,
3495 .enable_mask = BIT(0),
3496 .hw.init = &(const struct clk_init_data) {
3497 .name = "gcc_gpu_tcu_throttle_clk",
3498 .ops = &clk_branch2_ops,
3503 static struct clk_branch gcc_pcie0_phy_rchng_clk = {
3504 .halt_reg = 0xa4038,
3505 .halt_check = BRANCH_HALT_VOTED,
3507 .enable_reg = 0x52018,
3508 .enable_mask = BIT(11),
3509 .hw.init = &(const struct clk_init_data) {
3510 .name = "gcc_pcie0_phy_rchng_clk",
3511 .parent_hws = (const struct clk_hw*[]){
3512 &gcc_pcie_0_phy_rchng_clk_src.clkr.hw,
3515 .flags = CLK_SET_RATE_PARENT,
3516 .ops = &clk_branch2_ops,
3521 static struct clk_branch gcc_pcie1_phy_rchng_clk = {
3522 .halt_reg = 0x8d038,
3523 .halt_check = BRANCH_HALT_VOTED,
3525 .enable_reg = 0x52000,
3526 .enable_mask = BIT(23),
3527 .hw.init = &(const struct clk_init_data) {
3528 .name = "gcc_pcie1_phy_rchng_clk",
3529 .parent_hws = (const struct clk_hw*[]){
3530 &gcc_pcie_1_phy_rchng_clk_src.clkr.hw,
3533 .flags = CLK_SET_RATE_PARENT,
3534 .ops = &clk_branch2_ops,
3539 static struct clk_branch gcc_pcie2a_phy_rchng_clk = {
3540 .halt_reg = 0x9d040,
3541 .halt_check = BRANCH_HALT_VOTED,
3543 .enable_reg = 0x52010,
3544 .enable_mask = BIT(15),
3545 .hw.init = &(const struct clk_init_data) {
3546 .name = "gcc_pcie2a_phy_rchng_clk",
3547 .parent_hws = (const struct clk_hw*[]){
3548 &gcc_pcie_2a_phy_rchng_clk_src.clkr.hw,
3551 .flags = CLK_SET_RATE_PARENT,
3552 .ops = &clk_branch2_ops,
3557 static struct clk_branch gcc_pcie2b_phy_rchng_clk = {
3558 .halt_reg = 0x9e040,
3559 .halt_check = BRANCH_HALT_VOTED,
3561 .enable_reg = 0x52010,
3562 .enable_mask = BIT(22),
3563 .hw.init = &(const struct clk_init_data) {
3564 .name = "gcc_pcie2b_phy_rchng_clk",
3565 .parent_hws = (const struct clk_hw*[]){
3566 &gcc_pcie_2b_phy_rchng_clk_src.clkr.hw,
3569 .flags = CLK_SET_RATE_PARENT,
3570 .ops = &clk_branch2_ops,
3575 static struct clk_branch gcc_pcie3a_phy_rchng_clk = {
3576 .halt_reg = 0xa0040,
3577 .halt_check = BRANCH_HALT_VOTED,
3579 .enable_reg = 0x52010,
3580 .enable_mask = BIT(29),
3581 .hw.init = &(const struct clk_init_data) {
3582 .name = "gcc_pcie3a_phy_rchng_clk",
3583 .parent_hws = (const struct clk_hw*[]){
3584 &gcc_pcie_3a_phy_rchng_clk_src.clkr.hw,
3587 .flags = CLK_SET_RATE_PARENT,
3588 .ops = &clk_branch2_ops,
3593 static struct clk_branch gcc_pcie3b_phy_rchng_clk = {
3594 .halt_reg = 0xa2040,
3595 .halt_check = BRANCH_HALT_VOTED,
3597 .enable_reg = 0x52018,
3598 .enable_mask = BIT(4),
3599 .hw.init = &(const struct clk_init_data) {
3600 .name = "gcc_pcie3b_phy_rchng_clk",
3601 .parent_hws = (const struct clk_hw*[]){
3602 &gcc_pcie_3b_phy_rchng_clk_src.clkr.hw,
3605 .flags = CLK_SET_RATE_PARENT,
3606 .ops = &clk_branch2_ops,
3611 static struct clk_branch gcc_pcie4_phy_rchng_clk = {
3612 .halt_reg = 0x6b040,
3613 .halt_check = BRANCH_HALT_VOTED,
3615 .enable_reg = 0x52000,
3616 .enable_mask = BIT(22),
3617 .hw.init = &(const struct clk_init_data) {
3618 .name = "gcc_pcie4_phy_rchng_clk",
3619 .parent_hws = (const struct clk_hw*[]){
3620 &gcc_pcie_4_phy_rchng_clk_src.clkr.hw,
3623 .flags = CLK_SET_RATE_PARENT,
3624 .ops = &clk_branch2_ops,
3629 static struct clk_branch gcc_pcie_0_aux_clk = {
3630 .halt_reg = 0xa4028,
3631 .halt_check = BRANCH_HALT_VOTED,
3633 .enable_reg = 0x52018,
3634 .enable_mask = BIT(9),
3635 .hw.init = &(const struct clk_init_data) {
3636 .name = "gcc_pcie_0_aux_clk",
3637 .parent_hws = (const struct clk_hw*[]){
3638 &gcc_pcie_0_aux_clk_src.clkr.hw,
3641 .flags = CLK_SET_RATE_PARENT,
3642 .ops = &clk_branch2_ops,
3647 static struct clk_branch gcc_pcie_0_cfg_ahb_clk = {
3648 .halt_reg = 0xa4024,
3649 .halt_check = BRANCH_HALT_VOTED,
3650 .hwcg_reg = 0xa4024,
3653 .enable_reg = 0x52018,
3654 .enable_mask = BIT(8),
3655 .hw.init = &(const struct clk_init_data) {
3656 .name = "gcc_pcie_0_cfg_ahb_clk",
3657 .ops = &clk_branch2_ops,
3662 static struct clk_branch gcc_pcie_0_mstr_axi_clk = {
3663 .halt_reg = 0xa401c,
3664 .halt_check = BRANCH_HALT_SKIP,
3665 .hwcg_reg = 0xa401c,
3668 .enable_reg = 0x52018,
3669 .enable_mask = BIT(7),
3670 .hw.init = &(const struct clk_init_data) {
3671 .name = "gcc_pcie_0_mstr_axi_clk",
3672 .ops = &clk_branch2_ops,
3677 static struct clk_branch gcc_pcie_0_pipe_clk = {
3678 .halt_reg = 0xa4030,
3679 .halt_check = BRANCH_HALT_SKIP,
3681 .enable_reg = 0x52018,
3682 .enable_mask = BIT(10),
3683 .hw.init = &(const struct clk_init_data) {
3684 .name = "gcc_pcie_0_pipe_clk",
3685 .parent_hws = (const struct clk_hw*[]){
3686 &gcc_usb4_phy_pcie_pipe_mux_clk_src.clkr.hw,
3689 .flags = CLK_SET_RATE_PARENT,
3690 .ops = &clk_branch2_ops,
3695 static struct clk_branch gcc_pcie_0_slv_axi_clk = {
3696 .halt_reg = 0xa4014,
3697 .halt_check = BRANCH_HALT_VOTED,
3698 .hwcg_reg = 0xa4014,
3701 .enable_reg = 0x52018,
3702 .enable_mask = BIT(6),
3703 .hw.init = &(const struct clk_init_data) {
3704 .name = "gcc_pcie_0_slv_axi_clk",
3705 .ops = &clk_branch2_ops,
3710 static struct clk_branch gcc_pcie_0_slv_q2a_axi_clk = {
3711 .halt_reg = 0xa4010,
3712 .halt_check = BRANCH_HALT_VOTED,
3714 .enable_reg = 0x52018,
3715 .enable_mask = BIT(5),
3716 .hw.init = &(const struct clk_init_data) {
3717 .name = "gcc_pcie_0_slv_q2a_axi_clk",
3718 .ops = &clk_branch2_ops,
3723 static struct clk_branch gcc_pcie_1_aux_clk = {
3724 .halt_reg = 0x8d028,
3725 .halt_check = BRANCH_HALT_VOTED,
3727 .enable_reg = 0x52000,
3728 .enable_mask = BIT(29),
3729 .hw.init = &(const struct clk_init_data) {
3730 .name = "gcc_pcie_1_aux_clk",
3731 .parent_hws = (const struct clk_hw*[]){
3732 &gcc_pcie_1_aux_clk_src.clkr.hw,
3735 .flags = CLK_SET_RATE_PARENT,
3736 .ops = &clk_branch2_ops,
3741 static struct clk_branch gcc_pcie_1_cfg_ahb_clk = {
3742 .halt_reg = 0x8d024,
3743 .halt_check = BRANCH_HALT_VOTED,
3744 .hwcg_reg = 0x8d024,
3747 .enable_reg = 0x52000,
3748 .enable_mask = BIT(28),
3749 .hw.init = &(const struct clk_init_data) {
3750 .name = "gcc_pcie_1_cfg_ahb_clk",
3751 .ops = &clk_branch2_ops,
3756 static struct clk_branch gcc_pcie_1_mstr_axi_clk = {
3757 .halt_reg = 0x8d01c,
3758 .halt_check = BRANCH_HALT_SKIP,
3759 .hwcg_reg = 0x8d01c,
3762 .enable_reg = 0x52000,
3763 .enable_mask = BIT(27),
3764 .hw.init = &(const struct clk_init_data) {
3765 .name = "gcc_pcie_1_mstr_axi_clk",
3766 .ops = &clk_branch2_ops,
3771 static struct clk_branch gcc_pcie_1_pipe_clk = {
3772 .halt_reg = 0x8d030,
3773 .halt_check = BRANCH_HALT_SKIP,
3775 .enable_reg = 0x52000,
3776 .enable_mask = BIT(30),
3777 .hw.init = &(const struct clk_init_data) {
3778 .name = "gcc_pcie_1_pipe_clk",
3779 .parent_hws = (const struct clk_hw*[]){
3780 &gcc_usb4_1_phy_pcie_pipe_mux_clk_src.clkr.hw,
3783 .flags = CLK_SET_RATE_PARENT,
3784 .ops = &clk_branch2_ops,
3789 static struct clk_branch gcc_pcie_1_slv_axi_clk = {
3790 .halt_reg = 0x8d014,
3791 .halt_check = BRANCH_HALT_VOTED,
3792 .hwcg_reg = 0x8d014,
3795 .enable_reg = 0x52000,
3796 .enable_mask = BIT(26),
3797 .hw.init = &(const struct clk_init_data) {
3798 .name = "gcc_pcie_1_slv_axi_clk",
3799 .ops = &clk_branch2_ops,
3804 static struct clk_branch gcc_pcie_1_slv_q2a_axi_clk = {
3805 .halt_reg = 0x8d010,
3806 .halt_check = BRANCH_HALT_VOTED,
3808 .enable_reg = 0x52000,
3809 .enable_mask = BIT(25),
3810 .hw.init = &(const struct clk_init_data) {
3811 .name = "gcc_pcie_1_slv_q2a_axi_clk",
3812 .ops = &clk_branch2_ops,
3817 static struct clk_branch gcc_pcie_2a2b_clkref_clk = {
3818 .halt_reg = 0x8c034,
3819 .halt_check = BRANCH_HALT,
3821 .enable_reg = 0x8c034,
3822 .enable_mask = BIT(0),
3823 .hw.init = &(const struct clk_init_data) {
3824 .name = "gcc_pcie_2a2b_clkref_clk",
3825 .ops = &clk_branch2_ops,
3830 static struct clk_branch gcc_pcie_2a_aux_clk = {
3831 .halt_reg = 0x9d028,
3832 .halt_check = BRANCH_HALT_VOTED,
3834 .enable_reg = 0x52010,
3835 .enable_mask = BIT(13),
3836 .hw.init = &(const struct clk_init_data) {
3837 .name = "gcc_pcie_2a_aux_clk",
3838 .parent_hws = (const struct clk_hw*[]){
3839 &gcc_pcie_2a_aux_clk_src.clkr.hw,
3842 .flags = CLK_SET_RATE_PARENT,
3843 .ops = &clk_branch2_ops,
3848 static struct clk_branch gcc_pcie_2a_cfg_ahb_clk = {
3849 .halt_reg = 0x9d024,
3850 .halt_check = BRANCH_HALT_VOTED,
3851 .hwcg_reg = 0x9d024,
3854 .enable_reg = 0x52010,
3855 .enable_mask = BIT(12),
3856 .hw.init = &(const struct clk_init_data) {
3857 .name = "gcc_pcie_2a_cfg_ahb_clk",
3858 .ops = &clk_branch2_ops,
3863 static struct clk_branch gcc_pcie_2a_mstr_axi_clk = {
3864 .halt_reg = 0x9d01c,
3865 .halt_check = BRANCH_HALT_SKIP,
3866 .hwcg_reg = 0x9d01c,
3869 .enable_reg = 0x52010,
3870 .enable_mask = BIT(11),
3871 .hw.init = &(const struct clk_init_data) {
3872 .name = "gcc_pcie_2a_mstr_axi_clk",
3873 .ops = &clk_branch2_ops,
3878 static struct clk_branch gcc_pcie_2a_pipe_clk = {
3879 .halt_reg = 0x9d030,
3880 .halt_check = BRANCH_HALT_SKIP,
3882 .enable_reg = 0x52010,
3883 .enable_mask = BIT(14),
3884 .hw.init = &(const struct clk_init_data) {
3885 .name = "gcc_pcie_2a_pipe_clk",
3886 .parent_hws = (const struct clk_hw*[]){
3887 &gcc_pcie_2a_pipe_clk_src.clkr.hw,
3890 .flags = CLK_SET_RATE_PARENT,
3891 .ops = &clk_branch2_ops,
3896 static struct clk_branch gcc_pcie_2a_pipediv2_clk = {
3897 .halt_reg = 0x9d038,
3898 .halt_check = BRANCH_HALT_SKIP,
3900 .enable_reg = 0x52018,
3901 .enable_mask = BIT(22),
3902 .hw.init = &(const struct clk_init_data) {
3903 .name = "gcc_pcie_2a_pipediv2_clk",
3904 .parent_hws = (const struct clk_hw*[]){
3905 &gcc_pcie_2a_pipe_div_clk_src.clkr.hw,
3908 .flags = CLK_SET_RATE_PARENT,
3909 .ops = &clk_branch2_ops,
3914 static struct clk_branch gcc_pcie_2a_slv_axi_clk = {
3915 .halt_reg = 0x9d014,
3916 .halt_check = BRANCH_HALT_VOTED,
3917 .hwcg_reg = 0x9d014,
3920 .enable_reg = 0x52010,
3921 .enable_mask = BIT(10),
3922 .hw.init = &(const struct clk_init_data) {
3923 .name = "gcc_pcie_2a_slv_axi_clk",
3924 .ops = &clk_branch2_ops,
3929 static struct clk_branch gcc_pcie_2a_slv_q2a_axi_clk = {
3930 .halt_reg = 0x9d010,
3931 .halt_check = BRANCH_HALT_VOTED,
3933 .enable_reg = 0x52018,
3934 .enable_mask = BIT(12),
3935 .hw.init = &(const struct clk_init_data) {
3936 .name = "gcc_pcie_2a_slv_q2a_axi_clk",
3937 .ops = &clk_branch2_ops,
3942 static struct clk_branch gcc_pcie_2b_aux_clk = {
3943 .halt_reg = 0x9e028,
3944 .halt_check = BRANCH_HALT_VOTED,
3946 .enable_reg = 0x52010,
3947 .enable_mask = BIT(20),
3948 .hw.init = &(const struct clk_init_data) {
3949 .name = "gcc_pcie_2b_aux_clk",
3950 .parent_hws = (const struct clk_hw*[]){
3951 &gcc_pcie_2b_aux_clk_src.clkr.hw,
3954 .flags = CLK_SET_RATE_PARENT,
3955 .ops = &clk_branch2_ops,
3960 static struct clk_branch gcc_pcie_2b_cfg_ahb_clk = {
3961 .halt_reg = 0x9e024,
3962 .halt_check = BRANCH_HALT_VOTED,
3963 .hwcg_reg = 0x9e024,
3966 .enable_reg = 0x52010,
3967 .enable_mask = BIT(19),
3968 .hw.init = &(const struct clk_init_data) {
3969 .name = "gcc_pcie_2b_cfg_ahb_clk",
3970 .ops = &clk_branch2_ops,
3975 static struct clk_branch gcc_pcie_2b_mstr_axi_clk = {
3976 .halt_reg = 0x9e01c,
3977 .halt_check = BRANCH_HALT_SKIP,
3978 .hwcg_reg = 0x9e01c,
3981 .enable_reg = 0x52010,
3982 .enable_mask = BIT(18),
3983 .hw.init = &(const struct clk_init_data) {
3984 .name = "gcc_pcie_2b_mstr_axi_clk",
3985 .ops = &clk_branch2_ops,
3990 static struct clk_branch gcc_pcie_2b_pipe_clk = {
3991 .halt_reg = 0x9e030,
3992 .halt_check = BRANCH_HALT_SKIP,
3994 .enable_reg = 0x52010,
3995 .enable_mask = BIT(21),
3996 .hw.init = &(const struct clk_init_data) {
3997 .name = "gcc_pcie_2b_pipe_clk",
3998 .parent_hws = (const struct clk_hw*[]){
3999 &gcc_pcie_2b_pipe_clk_src.clkr.hw,
4002 .flags = CLK_SET_RATE_PARENT,
4003 .ops = &clk_branch2_ops,
4008 static struct clk_branch gcc_pcie_2b_pipediv2_clk = {
4009 .halt_reg = 0x9e038,
4010 .halt_check = BRANCH_HALT_SKIP,
4012 .enable_reg = 0x52018,
4013 .enable_mask = BIT(23),
4014 .hw.init = &(const struct clk_init_data) {
4015 .name = "gcc_pcie_2b_pipediv2_clk",
4016 .parent_hws = (const struct clk_hw*[]){
4017 &gcc_pcie_2b_pipe_div_clk_src.clkr.hw,
4020 .flags = CLK_SET_RATE_PARENT,
4021 .ops = &clk_branch2_ops,
4026 static struct clk_branch gcc_pcie_2b_slv_axi_clk = {
4027 .halt_reg = 0x9e014,
4028 .halt_check = BRANCH_HALT_VOTED,
4029 .hwcg_reg = 0x9e014,
4032 .enable_reg = 0x52010,
4033 .enable_mask = BIT(17),
4034 .hw.init = &(const struct clk_init_data) {
4035 .name = "gcc_pcie_2b_slv_axi_clk",
4036 .ops = &clk_branch2_ops,
4041 static struct clk_branch gcc_pcie_2b_slv_q2a_axi_clk = {
4042 .halt_reg = 0x9e010,
4043 .halt_check = BRANCH_HALT_VOTED,
4045 .enable_reg = 0x52010,
4046 .enable_mask = BIT(16),
4047 .hw.init = &(const struct clk_init_data) {
4048 .name = "gcc_pcie_2b_slv_q2a_axi_clk",
4049 .ops = &clk_branch2_ops,
4054 static struct clk_branch gcc_pcie_3a3b_clkref_clk = {
4055 .halt_reg = 0x8c038,
4056 .halt_check = BRANCH_HALT,
4058 .enable_reg = 0x8c038,
4059 .enable_mask = BIT(0),
4060 .hw.init = &(const struct clk_init_data) {
4061 .name = "gcc_pcie_3a3b_clkref_clk",
4062 .ops = &clk_branch2_ops,
4067 static struct clk_branch gcc_pcie_3a_aux_clk = {
4068 .halt_reg = 0xa0028,
4069 .halt_check = BRANCH_HALT_VOTED,
4071 .enable_reg = 0x52010,
4072 .enable_mask = BIT(27),
4073 .hw.init = &(const struct clk_init_data) {
4074 .name = "gcc_pcie_3a_aux_clk",
4075 .parent_hws = (const struct clk_hw*[]){
4076 &gcc_pcie_3a_aux_clk_src.clkr.hw,
4079 .flags = CLK_SET_RATE_PARENT,
4080 .ops = &clk_branch2_ops,
4085 static struct clk_branch gcc_pcie_3a_cfg_ahb_clk = {
4086 .halt_reg = 0xa0024,
4087 .halt_check = BRANCH_HALT_VOTED,
4088 .hwcg_reg = 0xa0024,
4091 .enable_reg = 0x52010,
4092 .enable_mask = BIT(26),
4093 .hw.init = &(const struct clk_init_data) {
4094 .name = "gcc_pcie_3a_cfg_ahb_clk",
4095 .ops = &clk_branch2_ops,
4100 static struct clk_branch gcc_pcie_3a_mstr_axi_clk = {
4101 .halt_reg = 0xa001c,
4102 .halt_check = BRANCH_HALT_SKIP,
4103 .hwcg_reg = 0xa001c,
4106 .enable_reg = 0x52010,
4107 .enable_mask = BIT(25),
4108 .hw.init = &(const struct clk_init_data) {
4109 .name = "gcc_pcie_3a_mstr_axi_clk",
4110 .ops = &clk_branch2_ops,
4115 static struct clk_branch gcc_pcie_3a_pipe_clk = {
4116 .halt_reg = 0xa0030,
4117 .halt_check = BRANCH_HALT_SKIP,
4119 .enable_reg = 0x52010,
4120 .enable_mask = BIT(28),
4121 .hw.init = &(const struct clk_init_data) {
4122 .name = "gcc_pcie_3a_pipe_clk",
4123 .parent_hws = (const struct clk_hw*[]){
4124 &gcc_pcie_3a_pipe_clk_src.clkr.hw,
4127 .flags = CLK_SET_RATE_PARENT,
4128 .ops = &clk_branch2_ops,
4133 static struct clk_branch gcc_pcie_3a_pipediv2_clk = {
4134 .halt_reg = 0xa0038,
4135 .halt_check = BRANCH_HALT_SKIP,
4137 .enable_reg = 0x52018,
4138 .enable_mask = BIT(24),
4139 .hw.init = &(const struct clk_init_data) {
4140 .name = "gcc_pcie_3a_pipediv2_clk",
4141 .parent_hws = (const struct clk_hw*[]){
4142 &gcc_pcie_3a_pipe_div_clk_src.clkr.hw,
4145 .flags = CLK_SET_RATE_PARENT,
4146 .ops = &clk_branch2_ops,
4151 static struct clk_branch gcc_pcie_3a_slv_axi_clk = {
4152 .halt_reg = 0xa0014,
4153 .halt_check = BRANCH_HALT_VOTED,
4154 .hwcg_reg = 0xa0014,
4157 .enable_reg = 0x52010,
4158 .enable_mask = BIT(24),
4159 .hw.init = &(const struct clk_init_data) {
4160 .name = "gcc_pcie_3a_slv_axi_clk",
4161 .ops = &clk_branch2_ops,
4166 static struct clk_branch gcc_pcie_3a_slv_q2a_axi_clk = {
4167 .halt_reg = 0xa0010,
4168 .halt_check = BRANCH_HALT_VOTED,
4170 .enable_reg = 0x52010,
4171 .enable_mask = BIT(23),
4172 .hw.init = &(const struct clk_init_data) {
4173 .name = "gcc_pcie_3a_slv_q2a_axi_clk",
4174 .ops = &clk_branch2_ops,
4179 static struct clk_branch gcc_pcie_3b_aux_clk = {
4180 .halt_reg = 0xa2028,
4181 .halt_check = BRANCH_HALT_VOTED,
4183 .enable_reg = 0x52018,
4184 .enable_mask = BIT(2),
4185 .hw.init = &(const struct clk_init_data) {
4186 .name = "gcc_pcie_3b_aux_clk",
4187 .parent_hws = (const struct clk_hw*[]){
4188 &gcc_pcie_3b_aux_clk_src.clkr.hw,
4191 .flags = CLK_SET_RATE_PARENT,
4192 .ops = &clk_branch2_ops,
4197 static struct clk_branch gcc_pcie_3b_cfg_ahb_clk = {
4198 .halt_reg = 0xa2024,
4199 .halt_check = BRANCH_HALT_VOTED,
4200 .hwcg_reg = 0xa2024,
4203 .enable_reg = 0x52018,
4204 .enable_mask = BIT(1),
4205 .hw.init = &(const struct clk_init_data) {
4206 .name = "gcc_pcie_3b_cfg_ahb_clk",
4207 .ops = &clk_branch2_ops,
4212 static struct clk_branch gcc_pcie_3b_mstr_axi_clk = {
4213 .halt_reg = 0xa201c,
4214 .halt_check = BRANCH_HALT_SKIP,
4215 .hwcg_reg = 0xa201c,
4218 .enable_reg = 0x52018,
4219 .enable_mask = BIT(0),
4220 .hw.init = &(const struct clk_init_data) {
4221 .name = "gcc_pcie_3b_mstr_axi_clk",
4222 .ops = &clk_branch2_ops,
4227 static struct clk_branch gcc_pcie_3b_pipe_clk = {
4228 .halt_reg = 0xa2030,
4229 .halt_check = BRANCH_HALT_SKIP,
4231 .enable_reg = 0x52018,
4232 .enable_mask = BIT(3),
4233 .hw.init = &(const struct clk_init_data) {
4234 .name = "gcc_pcie_3b_pipe_clk",
4235 .parent_hws = (const struct clk_hw*[]){
4236 &gcc_pcie_3b_pipe_clk_src.clkr.hw,
4239 .flags = CLK_SET_RATE_PARENT,
4240 .ops = &clk_branch2_ops,
4245 static struct clk_branch gcc_pcie_3b_pipediv2_clk = {
4246 .halt_reg = 0xa2038,
4247 .halt_check = BRANCH_HALT_SKIP,
4249 .enable_reg = 0x52018,
4250 .enable_mask = BIT(25),
4251 .hw.init = &(const struct clk_init_data) {
4252 .name = "gcc_pcie_3b_pipediv2_clk",
4253 .parent_hws = (const struct clk_hw*[]){
4254 &gcc_pcie_3b_pipe_div_clk_src.clkr.hw,
4257 .flags = CLK_SET_RATE_PARENT,
4258 .ops = &clk_branch2_ops,
4263 static struct clk_branch gcc_pcie_3b_slv_axi_clk = {
4264 .halt_reg = 0xa2014,
4265 .halt_check = BRANCH_HALT_VOTED,
4266 .hwcg_reg = 0xa2014,
4269 .enable_reg = 0x52010,
4270 .enable_mask = BIT(31),
4271 .hw.init = &(const struct clk_init_data) {
4272 .name = "gcc_pcie_3b_slv_axi_clk",
4273 .ops = &clk_branch2_ops,
4278 static struct clk_branch gcc_pcie_3b_slv_q2a_axi_clk = {
4279 .halt_reg = 0xa2010,
4280 .halt_check = BRANCH_HALT_VOTED,
4282 .enable_reg = 0x52010,
4283 .enable_mask = BIT(30),
4284 .hw.init = &(const struct clk_init_data) {
4285 .name = "gcc_pcie_3b_slv_q2a_axi_clk",
4286 .ops = &clk_branch2_ops,
4291 static struct clk_branch gcc_pcie_4_aux_clk = {
4292 .halt_reg = 0x6b028,
4293 .halt_check = BRANCH_HALT_VOTED,
4295 .enable_reg = 0x52008,
4296 .enable_mask = BIT(3),
4297 .hw.init = &(const struct clk_init_data) {
4298 .name = "gcc_pcie_4_aux_clk",
4299 .parent_hws = (const struct clk_hw*[]){
4300 &gcc_pcie_4_aux_clk_src.clkr.hw,
4303 .flags = CLK_SET_RATE_PARENT,
4304 .ops = &clk_branch2_ops,
4309 static struct clk_branch gcc_pcie_4_cfg_ahb_clk = {
4310 .halt_reg = 0x6b024,
4311 .halt_check = BRANCH_HALT_VOTED,
4312 .hwcg_reg = 0x6b024,
4315 .enable_reg = 0x52008,
4316 .enable_mask = BIT(2),
4317 .hw.init = &(const struct clk_init_data) {
4318 .name = "gcc_pcie_4_cfg_ahb_clk",
4319 .ops = &clk_branch2_ops,
4324 static struct clk_branch gcc_pcie_4_clkref_clk = {
4325 .halt_reg = 0x8c030,
4326 .halt_check = BRANCH_HALT,
4328 .enable_reg = 0x8c030,
4329 .enable_mask = BIT(0),
4330 .hw.init = &(const struct clk_init_data) {
4331 .name = "gcc_pcie_4_clkref_clk",
4332 .ops = &clk_branch2_ops,
4337 static struct clk_branch gcc_pcie_4_mstr_axi_clk = {
4338 .halt_reg = 0x6b01c,
4339 .halt_check = BRANCH_HALT_SKIP,
4340 .hwcg_reg = 0x6b01c,
4343 .enable_reg = 0x52008,
4344 .enable_mask = BIT(1),
4345 .hw.init = &(const struct clk_init_data) {
4346 .name = "gcc_pcie_4_mstr_axi_clk",
4347 .ops = &clk_branch2_ops,
4352 static struct clk_branch gcc_pcie_4_pipe_clk = {
4353 .halt_reg = 0x6b030,
4354 .halt_check = BRANCH_HALT_SKIP,
4356 .enable_reg = 0x52008,
4357 .enable_mask = BIT(4),
4358 .hw.init = &(const struct clk_init_data) {
4359 .name = "gcc_pcie_4_pipe_clk",
4360 .parent_hws = (const struct clk_hw*[]){
4361 &gcc_pcie_4_pipe_clk_src.clkr.hw,
4364 .flags = CLK_SET_RATE_PARENT,
4365 .ops = &clk_branch2_ops,
4370 static struct clk_branch gcc_pcie_4_pipediv2_clk = {
4371 .halt_reg = 0x6b038,
4372 .halt_check = BRANCH_HALT_SKIP,
4374 .enable_reg = 0x52018,
4375 .enable_mask = BIT(16),
4376 .hw.init = &(const struct clk_init_data) {
4377 .name = "gcc_pcie_4_pipediv2_clk",
4378 .parent_hws = (const struct clk_hw*[]){
4379 &gcc_pcie_4_pipe_div_clk_src.clkr.hw,
4382 .flags = CLK_SET_RATE_PARENT,
4383 .ops = &clk_branch2_ops,
4388 static struct clk_branch gcc_pcie_4_slv_axi_clk = {
4389 .halt_reg = 0x6b014,
4390 .halt_check = BRANCH_HALT_VOTED,
4391 .hwcg_reg = 0x6b014,
4394 .enable_reg = 0x52008,
4395 .enable_mask = BIT(0),
4396 .hw.init = &(const struct clk_init_data) {
4397 .name = "gcc_pcie_4_slv_axi_clk",
4398 .ops = &clk_branch2_ops,
4403 static struct clk_branch gcc_pcie_4_slv_q2a_axi_clk = {
4404 .halt_reg = 0x6b010,
4405 .halt_check = BRANCH_HALT_VOTED,
4407 .enable_reg = 0x52008,
4408 .enable_mask = BIT(5),
4409 .hw.init = &(const struct clk_init_data) {
4410 .name = "gcc_pcie_4_slv_q2a_axi_clk",
4411 .ops = &clk_branch2_ops,
4416 static struct clk_branch gcc_pcie_rscc_ahb_clk = {
4417 .halt_reg = 0xae008,
4418 .halt_check = BRANCH_HALT_VOTED,
4419 .hwcg_reg = 0xae008,
4422 .enable_reg = 0x52020,
4423 .enable_mask = BIT(17),
4424 .hw.init = &(const struct clk_init_data) {
4425 .name = "gcc_pcie_rscc_ahb_clk",
4426 .ops = &clk_branch2_ops,
4431 static struct clk_branch gcc_pcie_rscc_xo_clk = {
4432 .halt_reg = 0xae004,
4433 .halt_check = BRANCH_HALT_VOTED,
4435 .enable_reg = 0x52020,
4436 .enable_mask = BIT(16),
4437 .hw.init = &(const struct clk_init_data) {
4438 .name = "gcc_pcie_rscc_xo_clk",
4439 .parent_hws = (const struct clk_hw*[]){
4440 &gcc_pcie_rscc_xo_clk_src.clkr.hw,
4443 .flags = CLK_SET_RATE_PARENT,
4444 .ops = &clk_branch2_ops,
4449 static struct clk_branch gcc_pcie_throttle_cfg_clk = {
4450 .halt_reg = 0xa6028,
4451 .halt_check = BRANCH_HALT_VOTED,
4453 .enable_reg = 0x52020,
4454 .enable_mask = BIT(15),
4455 .hw.init = &(const struct clk_init_data) {
4456 .name = "gcc_pcie_throttle_cfg_clk",
4457 .ops = &clk_branch2_ops,
4462 static struct clk_branch gcc_pdm2_clk = {
4463 .halt_reg = 0x3300c,
4464 .halt_check = BRANCH_HALT,
4466 .enable_reg = 0x3300c,
4467 .enable_mask = BIT(0),
4468 .hw.init = &(const struct clk_init_data) {
4469 .name = "gcc_pdm2_clk",
4470 .parent_hws = (const struct clk_hw*[]){
4471 &gcc_pdm2_clk_src.clkr.hw,
4474 .flags = CLK_SET_RATE_PARENT,
4475 .ops = &clk_branch2_ops,
4480 static struct clk_branch gcc_pdm_ahb_clk = {
4481 .halt_reg = 0x33004,
4482 .halt_check = BRANCH_HALT_VOTED,
4483 .hwcg_reg = 0x33004,
4486 .enable_reg = 0x33004,
4487 .enable_mask = BIT(0),
4488 .hw.init = &(const struct clk_init_data) {
4489 .name = "gcc_pdm_ahb_clk",
4490 .ops = &clk_branch2_ops,
4495 static struct clk_branch gcc_pdm_xo4_clk = {
4496 .halt_reg = 0x33008,
4497 .halt_check = BRANCH_HALT,
4499 .enable_reg = 0x33008,
4500 .enable_mask = BIT(0),
4501 .hw.init = &(const struct clk_init_data) {
4502 .name = "gcc_pdm_xo4_clk",
4503 .ops = &clk_branch2_ops,
4508 static struct clk_branch gcc_qmip_camera_nrt_ahb_clk = {
4509 .halt_reg = 0x26008,
4510 .halt_check = BRANCH_HALT_VOTED,
4511 .hwcg_reg = 0x26008,
4514 .enable_reg = 0x26008,
4515 .enable_mask = BIT(0),
4516 .hw.init = &(const struct clk_init_data) {
4517 .name = "gcc_qmip_camera_nrt_ahb_clk",
4518 .ops = &clk_branch2_ops,
4523 static struct clk_branch gcc_qmip_camera_rt_ahb_clk = {
4524 .halt_reg = 0x2600c,
4525 .halt_check = BRANCH_HALT_VOTED,
4526 .hwcg_reg = 0x2600c,
4529 .enable_reg = 0x2600c,
4530 .enable_mask = BIT(0),
4531 .hw.init = &(const struct clk_init_data) {
4532 .name = "gcc_qmip_camera_rt_ahb_clk",
4533 .ops = &clk_branch2_ops,
4538 static struct clk_branch gcc_qmip_disp1_ahb_clk = {
4539 .halt_reg = 0xbb008,
4540 .halt_check = BRANCH_HALT_VOTED,
4541 .hwcg_reg = 0xbb008,
4544 .enable_reg = 0xbb008,
4545 .enable_mask = BIT(0),
4546 .hw.init = &(const struct clk_init_data) {
4547 .name = "gcc_qmip_disp1_ahb_clk",
4548 .ops = &clk_branch2_ops,
4553 static struct clk_branch gcc_qmip_disp1_rot_ahb_clk = {
4554 .halt_reg = 0xbb00c,
4555 .halt_check = BRANCH_HALT_VOTED,
4556 .hwcg_reg = 0xbb00c,
4559 .enable_reg = 0xbb00c,
4560 .enable_mask = BIT(0),
4561 .hw.init = &(const struct clk_init_data) {
4562 .name = "gcc_qmip_disp1_rot_ahb_clk",
4563 .ops = &clk_branch2_ops,
4568 static struct clk_branch gcc_qmip_disp_ahb_clk = {
4569 .halt_reg = 0x27008,
4570 .halt_check = BRANCH_HALT_VOTED,
4571 .hwcg_reg = 0x27008,
4574 .enable_reg = 0x27008,
4575 .enable_mask = BIT(0),
4576 .hw.init = &(const struct clk_init_data) {
4577 .name = "gcc_qmip_disp_ahb_clk",
4578 .ops = &clk_branch2_ops,
4583 static struct clk_branch gcc_qmip_disp_rot_ahb_clk = {
4584 .halt_reg = 0x2700c,
4585 .halt_check = BRANCH_HALT_VOTED,
4586 .hwcg_reg = 0x2700c,
4589 .enable_reg = 0x2700c,
4590 .enable_mask = BIT(0),
4591 .hw.init = &(const struct clk_init_data) {
4592 .name = "gcc_qmip_disp_rot_ahb_clk",
4593 .ops = &clk_branch2_ops,
4598 static struct clk_branch gcc_qmip_video_cvp_ahb_clk = {
4599 .halt_reg = 0x28008,
4600 .halt_check = BRANCH_HALT_VOTED,
4601 .hwcg_reg = 0x28008,
4604 .enable_reg = 0x28008,
4605 .enable_mask = BIT(0),
4606 .hw.init = &(const struct clk_init_data) {
4607 .name = "gcc_qmip_video_cvp_ahb_clk",
4608 .ops = &clk_branch2_ops,
4613 static struct clk_branch gcc_qmip_video_vcodec_ahb_clk = {
4614 .halt_reg = 0x2800c,
4615 .halt_check = BRANCH_HALT_VOTED,
4616 .hwcg_reg = 0x2800c,
4619 .enable_reg = 0x2800c,
4620 .enable_mask = BIT(0),
4621 .hw.init = &(const struct clk_init_data) {
4622 .name = "gcc_qmip_video_vcodec_ahb_clk",
4623 .ops = &clk_branch2_ops,
4628 static struct clk_branch gcc_qupv3_wrap0_core_2x_clk = {
4629 .halt_reg = 0x17014,
4630 .halt_check = BRANCH_HALT_VOTED,
4632 .enable_reg = 0x52008,
4633 .enable_mask = BIT(9),
4634 .hw.init = &(const struct clk_init_data) {
4635 .name = "gcc_qupv3_wrap0_core_2x_clk",
4636 .ops = &clk_branch2_ops,
4641 static struct clk_branch gcc_qupv3_wrap0_core_clk = {
4642 .halt_reg = 0x1700c,
4643 .halt_check = BRANCH_HALT_VOTED,
4645 .enable_reg = 0x52008,
4646 .enable_mask = BIT(8),
4647 .hw.init = &(const struct clk_init_data) {
4648 .name = "gcc_qupv3_wrap0_core_clk",
4649 .ops = &clk_branch2_ops,
4654 static struct clk_branch gcc_qupv3_wrap0_qspi0_clk = {
4655 .halt_reg = 0x17ac4,
4656 .halt_check = BRANCH_HALT_VOTED,
4658 .enable_reg = 0x52020,
4659 .enable_mask = BIT(0),
4660 .hw.init = &(const struct clk_init_data) {
4661 .name = "gcc_qupv3_wrap0_qspi0_clk",
4662 .parent_hws = (const struct clk_hw*[]){
4663 &gcc_qupv3_wrap0_s4_clk_src.clkr.hw,
4666 .flags = CLK_SET_RATE_PARENT,
4667 .ops = &clk_branch2_ops,
4672 static struct clk_branch gcc_qupv3_wrap0_s0_clk = {
4673 .halt_reg = 0x17144,
4674 .halt_check = BRANCH_HALT_VOTED,
4676 .enable_reg = 0x52008,
4677 .enable_mask = BIT(10),
4678 .hw.init = &(const struct clk_init_data) {
4679 .name = "gcc_qupv3_wrap0_s0_clk",
4680 .parent_hws = (const struct clk_hw*[]){
4681 &gcc_qupv3_wrap0_s0_clk_src.clkr.hw,
4684 .flags = CLK_SET_RATE_PARENT,
4685 .ops = &clk_branch2_ops,
4690 static struct clk_branch gcc_qupv3_wrap0_s1_clk = {
4691 .halt_reg = 0x17274,
4692 .halt_check = BRANCH_HALT_VOTED,
4694 .enable_reg = 0x52008,
4695 .enable_mask = BIT(11),
4696 .hw.init = &(const struct clk_init_data) {
4697 .name = "gcc_qupv3_wrap0_s1_clk",
4698 .parent_hws = (const struct clk_hw*[]){
4699 &gcc_qupv3_wrap0_s1_clk_src.clkr.hw,
4702 .flags = CLK_SET_RATE_PARENT,
4703 .ops = &clk_branch2_ops,
4708 static struct clk_branch gcc_qupv3_wrap0_s2_clk = {
4709 .halt_reg = 0x173a4,
4710 .halt_check = BRANCH_HALT_VOTED,
4712 .enable_reg = 0x52008,
4713 .enable_mask = BIT(12),
4714 .hw.init = &(const struct clk_init_data) {
4715 .name = "gcc_qupv3_wrap0_s2_clk",
4716 .parent_hws = (const struct clk_hw*[]){
4717 &gcc_qupv3_wrap0_s2_clk_src.clkr.hw,
4720 .flags = CLK_SET_RATE_PARENT,
4721 .ops = &clk_branch2_ops,
4726 static struct clk_branch gcc_qupv3_wrap0_s3_clk = {
4727 .halt_reg = 0x174d4,
4728 .halt_check = BRANCH_HALT_VOTED,
4730 .enable_reg = 0x52008,
4731 .enable_mask = BIT(13),
4732 .hw.init = &(const struct clk_init_data) {
4733 .name = "gcc_qupv3_wrap0_s3_clk",
4734 .parent_hws = (const struct clk_hw*[]){
4735 &gcc_qupv3_wrap0_s3_clk_src.clkr.hw,
4738 .flags = CLK_SET_RATE_PARENT,
4739 .ops = &clk_branch2_ops,
4744 static struct clk_branch gcc_qupv3_wrap0_s4_clk = {
4745 .halt_reg = 0x17604,
4746 .halt_check = BRANCH_HALT_VOTED,
4748 .enable_reg = 0x52008,
4749 .enable_mask = BIT(14),
4750 .hw.init = &(const struct clk_init_data) {
4751 .name = "gcc_qupv3_wrap0_s4_clk",
4752 .parent_hws = (const struct clk_hw*[]){
4753 &gcc_qupv3_wrap0_s4_div_clk_src.clkr.hw,
4756 .flags = CLK_SET_RATE_PARENT,
4757 .ops = &clk_branch2_ops,
4762 static struct clk_branch gcc_qupv3_wrap0_s5_clk = {
4763 .halt_reg = 0x17734,
4764 .halt_check = BRANCH_HALT_VOTED,
4766 .enable_reg = 0x52008,
4767 .enable_mask = BIT(15),
4768 .hw.init = &(const struct clk_init_data) {
4769 .name = "gcc_qupv3_wrap0_s5_clk",
4770 .parent_hws = (const struct clk_hw*[]){
4771 &gcc_qupv3_wrap0_s5_clk_src.clkr.hw,
4774 .flags = CLK_SET_RATE_PARENT,
4775 .ops = &clk_branch2_ops,
4780 static struct clk_branch gcc_qupv3_wrap0_s6_clk = {
4781 .halt_reg = 0x17864,
4782 .halt_check = BRANCH_HALT_VOTED,
4784 .enable_reg = 0x52008,
4785 .enable_mask = BIT(16),
4786 .hw.init = &(const struct clk_init_data) {
4787 .name = "gcc_qupv3_wrap0_s6_clk",
4788 .parent_hws = (const struct clk_hw*[]){
4789 &gcc_qupv3_wrap0_s6_clk_src.clkr.hw,
4792 .flags = CLK_SET_RATE_PARENT,
4793 .ops = &clk_branch2_ops,
4798 static struct clk_branch gcc_qupv3_wrap0_s7_clk = {
4799 .halt_reg = 0x17994,
4800 .halt_check = BRANCH_HALT_VOTED,
4802 .enable_reg = 0x52008,
4803 .enable_mask = BIT(17),
4804 .hw.init = &(const struct clk_init_data) {
4805 .name = "gcc_qupv3_wrap0_s7_clk",
4806 .parent_hws = (const struct clk_hw*[]){
4807 &gcc_qupv3_wrap0_s7_clk_src.clkr.hw,
4810 .flags = CLK_SET_RATE_PARENT,
4811 .ops = &clk_branch2_ops,
4816 static struct clk_branch gcc_qupv3_wrap1_core_2x_clk = {
4817 .halt_reg = 0x18014,
4818 .halt_check = BRANCH_HALT_VOTED,
4820 .enable_reg = 0x52008,
4821 .enable_mask = BIT(18),
4822 .hw.init = &(const struct clk_init_data) {
4823 .name = "gcc_qupv3_wrap1_core_2x_clk",
4824 .ops = &clk_branch2_ops,
4829 static struct clk_branch gcc_qupv3_wrap1_core_clk = {
4830 .halt_reg = 0x1800c,
4831 .halt_check = BRANCH_HALT_VOTED,
4833 .enable_reg = 0x52008,
4834 .enable_mask = BIT(19),
4835 .hw.init = &(const struct clk_init_data) {
4836 .name = "gcc_qupv3_wrap1_core_clk",
4837 .ops = &clk_branch2_ops,
4842 static struct clk_branch gcc_qupv3_wrap1_qspi0_clk = {
4843 .halt_reg = 0x18ac4,
4844 .halt_check = BRANCH_HALT_VOTED,
4846 .enable_reg = 0x52020,
4847 .enable_mask = BIT(2),
4848 .hw.init = &(const struct clk_init_data) {
4849 .name = "gcc_qupv3_wrap1_qspi0_clk",
4850 .parent_hws = (const struct clk_hw*[]){
4851 &gcc_qupv3_wrap1_s4_clk_src.clkr.hw,
4854 .flags = CLK_SET_RATE_PARENT,
4855 .ops = &clk_branch2_ops,
4860 static struct clk_branch gcc_qupv3_wrap1_s0_clk = {
4861 .halt_reg = 0x18144,
4862 .halt_check = BRANCH_HALT_VOTED,
4864 .enable_reg = 0x52008,
4865 .enable_mask = BIT(22),
4866 .hw.init = &(const struct clk_init_data) {
4867 .name = "gcc_qupv3_wrap1_s0_clk",
4868 .parent_hws = (const struct clk_hw*[]){
4869 &gcc_qupv3_wrap1_s0_clk_src.clkr.hw,
4872 .flags = CLK_SET_RATE_PARENT,
4873 .ops = &clk_branch2_ops,
4878 static struct clk_branch gcc_qupv3_wrap1_s1_clk = {
4879 .halt_reg = 0x18274,
4880 .halt_check = BRANCH_HALT_VOTED,
4882 .enable_reg = 0x52008,
4883 .enable_mask = BIT(23),
4884 .hw.init = &(const struct clk_init_data) {
4885 .name = "gcc_qupv3_wrap1_s1_clk",
4886 .parent_hws = (const struct clk_hw*[]){
4887 &gcc_qupv3_wrap1_s1_clk_src.clkr.hw,
4890 .flags = CLK_SET_RATE_PARENT,
4891 .ops = &clk_branch2_ops,
4896 static struct clk_branch gcc_qupv3_wrap1_s2_clk = {
4897 .halt_reg = 0x183a4,
4898 .halt_check = BRANCH_HALT_VOTED,
4900 .enable_reg = 0x52008,
4901 .enable_mask = BIT(24),
4902 .hw.init = &(const struct clk_init_data) {
4903 .name = "gcc_qupv3_wrap1_s2_clk",
4904 .parent_hws = (const struct clk_hw*[]){
4905 &gcc_qupv3_wrap1_s2_clk_src.clkr.hw,
4908 .flags = CLK_SET_RATE_PARENT,
4909 .ops = &clk_branch2_ops,
4914 static struct clk_branch gcc_qupv3_wrap1_s3_clk = {
4915 .halt_reg = 0x184d4,
4916 .halt_check = BRANCH_HALT_VOTED,
4918 .enable_reg = 0x52008,
4919 .enable_mask = BIT(25),
4920 .hw.init = &(const struct clk_init_data) {
4921 .name = "gcc_qupv3_wrap1_s3_clk",
4922 .parent_hws = (const struct clk_hw*[]){
4923 &gcc_qupv3_wrap1_s3_clk_src.clkr.hw,
4926 .flags = CLK_SET_RATE_PARENT,
4927 .ops = &clk_branch2_ops,
4932 static struct clk_branch gcc_qupv3_wrap1_s4_clk = {
4933 .halt_reg = 0x18604,
4934 .halt_check = BRANCH_HALT_VOTED,
4936 .enable_reg = 0x52008,
4937 .enable_mask = BIT(26),
4938 .hw.init = &(const struct clk_init_data) {
4939 .name = "gcc_qupv3_wrap1_s4_clk",
4940 .parent_hws = (const struct clk_hw*[]){
4941 &gcc_qupv3_wrap1_s4_div_clk_src.clkr.hw,
4944 .flags = CLK_SET_RATE_PARENT,
4945 .ops = &clk_branch2_ops,
4950 static struct clk_branch gcc_qupv3_wrap1_s5_clk = {
4951 .halt_reg = 0x18734,
4952 .halt_check = BRANCH_HALT_VOTED,
4954 .enable_reg = 0x52008,
4955 .enable_mask = BIT(27),
4956 .hw.init = &(const struct clk_init_data) {
4957 .name = "gcc_qupv3_wrap1_s5_clk",
4958 .parent_hws = (const struct clk_hw*[]){
4959 &gcc_qupv3_wrap1_s5_clk_src.clkr.hw,
4962 .flags = CLK_SET_RATE_PARENT,
4963 .ops = &clk_branch2_ops,
4968 static struct clk_branch gcc_qupv3_wrap1_s6_clk = {
4969 .halt_reg = 0x18864,
4970 .halt_check = BRANCH_HALT_VOTED,
4972 .enable_reg = 0x52018,
4973 .enable_mask = BIT(27),
4974 .hw.init = &(const struct clk_init_data) {
4975 .name = "gcc_qupv3_wrap1_s6_clk",
4976 .parent_hws = (const struct clk_hw*[]){
4977 &gcc_qupv3_wrap1_s6_clk_src.clkr.hw,
4980 .flags = CLK_SET_RATE_PARENT,
4981 .ops = &clk_branch2_ops,
4986 static struct clk_branch gcc_qupv3_wrap1_s7_clk = {
4987 .halt_reg = 0x18994,
4988 .halt_check = BRANCH_HALT_VOTED,
4990 .enable_reg = 0x52018,
4991 .enable_mask = BIT(28),
4992 .hw.init = &(const struct clk_init_data) {
4993 .name = "gcc_qupv3_wrap1_s7_clk",
4994 .parent_hws = (const struct clk_hw*[]){
4995 &gcc_qupv3_wrap1_s7_clk_src.clkr.hw,
4998 .flags = CLK_SET_RATE_PARENT,
4999 .ops = &clk_branch2_ops,
5004 static struct clk_branch gcc_qupv3_wrap2_core_2x_clk = {
5005 .halt_reg = 0x1e014,
5006 .halt_check = BRANCH_HALT_VOTED,
5008 .enable_reg = 0x52010,
5009 .enable_mask = BIT(3),
5010 .hw.init = &(const struct clk_init_data) {
5011 .name = "gcc_qupv3_wrap2_core_2x_clk",
5012 .ops = &clk_branch2_ops,
5017 static struct clk_branch gcc_qupv3_wrap2_core_clk = {
5018 .halt_reg = 0x1e00c,
5019 .halt_check = BRANCH_HALT_VOTED,
5021 .enable_reg = 0x52010,
5022 .enable_mask = BIT(0),
5023 .hw.init = &(const struct clk_init_data) {
5024 .name = "gcc_qupv3_wrap2_core_clk",
5025 .ops = &clk_branch2_ops,
5030 static struct clk_branch gcc_qupv3_wrap2_qspi0_clk = {
5031 .halt_reg = 0x1eac4,
5032 .halt_check = BRANCH_HALT_VOTED,
5034 .enable_reg = 0x52020,
5035 .enable_mask = BIT(4),
5036 .hw.init = &(const struct clk_init_data) {
5037 .name = "gcc_qupv3_wrap2_qspi0_clk",
5038 .parent_hws = (const struct clk_hw*[]){
5039 &gcc_qupv3_wrap2_s4_clk_src.clkr.hw,
5042 .flags = CLK_SET_RATE_PARENT,
5043 .ops = &clk_branch2_ops,
5048 static struct clk_branch gcc_qupv3_wrap2_s0_clk = {
5049 .halt_reg = 0x1e144,
5050 .halt_check = BRANCH_HALT_VOTED,
5052 .enable_reg = 0x52010,
5053 .enable_mask = BIT(4),
5054 .hw.init = &(const struct clk_init_data) {
5055 .name = "gcc_qupv3_wrap2_s0_clk",
5056 .parent_hws = (const struct clk_hw*[]){
5057 &gcc_qupv3_wrap2_s0_clk_src.clkr.hw,
5060 .flags = CLK_SET_RATE_PARENT,
5061 .ops = &clk_branch2_ops,
5066 static struct clk_branch gcc_qupv3_wrap2_s1_clk = {
5067 .halt_reg = 0x1e274,
5068 .halt_check = BRANCH_HALT_VOTED,
5070 .enable_reg = 0x52010,
5071 .enable_mask = BIT(5),
5072 .hw.init = &(const struct clk_init_data) {
5073 .name = "gcc_qupv3_wrap2_s1_clk",
5074 .parent_hws = (const struct clk_hw*[]){
5075 &gcc_qupv3_wrap2_s1_clk_src.clkr.hw,
5078 .flags = CLK_SET_RATE_PARENT,
5079 .ops = &clk_branch2_ops,
5084 static struct clk_branch gcc_qupv3_wrap2_s2_clk = {
5085 .halt_reg = 0x1e3a4,
5086 .halt_check = BRANCH_HALT_VOTED,
5088 .enable_reg = 0x52010,
5089 .enable_mask = BIT(6),
5090 .hw.init = &(const struct clk_init_data) {
5091 .name = "gcc_qupv3_wrap2_s2_clk",
5092 .parent_hws = (const struct clk_hw*[]){
5093 &gcc_qupv3_wrap2_s2_clk_src.clkr.hw,
5096 .flags = CLK_SET_RATE_PARENT,
5097 .ops = &clk_branch2_ops,
5102 static struct clk_branch gcc_qupv3_wrap2_s3_clk = {
5103 .halt_reg = 0x1e4d4,
5104 .halt_check = BRANCH_HALT_VOTED,
5106 .enable_reg = 0x52010,
5107 .enable_mask = BIT(7),
5108 .hw.init = &(const struct clk_init_data) {
5109 .name = "gcc_qupv3_wrap2_s3_clk",
5110 .parent_hws = (const struct clk_hw*[]){
5111 &gcc_qupv3_wrap2_s3_clk_src.clkr.hw,
5114 .flags = CLK_SET_RATE_PARENT,
5115 .ops = &clk_branch2_ops,
5120 static struct clk_branch gcc_qupv3_wrap2_s4_clk = {
5121 .halt_reg = 0x1e604,
5122 .halt_check = BRANCH_HALT_VOTED,
5124 .enable_reg = 0x52010,
5125 .enable_mask = BIT(8),
5126 .hw.init = &(const struct clk_init_data) {
5127 .name = "gcc_qupv3_wrap2_s4_clk",
5128 .parent_hws = (const struct clk_hw*[]){
5129 &gcc_qupv3_wrap2_s4_div_clk_src.clkr.hw,
5132 .flags = CLK_SET_RATE_PARENT,
5133 .ops = &clk_branch2_ops,
5138 static struct clk_branch gcc_qupv3_wrap2_s5_clk = {
5139 .halt_reg = 0x1e734,
5140 .halt_check = BRANCH_HALT_VOTED,
5142 .enable_reg = 0x52010,
5143 .enable_mask = BIT(9),
5144 .hw.init = &(const struct clk_init_data) {
5145 .name = "gcc_qupv3_wrap2_s5_clk",
5146 .parent_hws = (const struct clk_hw*[]){
5147 &gcc_qupv3_wrap2_s5_clk_src.clkr.hw,
5150 .flags = CLK_SET_RATE_PARENT,
5151 .ops = &clk_branch2_ops,
5156 static struct clk_branch gcc_qupv3_wrap2_s6_clk = {
5157 .halt_reg = 0x1e864,
5158 .halt_check = BRANCH_HALT_VOTED,
5160 .enable_reg = 0x52018,
5161 .enable_mask = BIT(29),
5162 .hw.init = &(const struct clk_init_data) {
5163 .name = "gcc_qupv3_wrap2_s6_clk",
5164 .parent_hws = (const struct clk_hw*[]){
5165 &gcc_qupv3_wrap2_s6_clk_src.clkr.hw,
5168 .flags = CLK_SET_RATE_PARENT,
5169 .ops = &clk_branch2_ops,
5174 static struct clk_branch gcc_qupv3_wrap2_s7_clk = {
5175 .halt_reg = 0x1e994,
5176 .halt_check = BRANCH_HALT_VOTED,
5178 .enable_reg = 0x52018,
5179 .enable_mask = BIT(30),
5180 .hw.init = &(const struct clk_init_data) {
5181 .name = "gcc_qupv3_wrap2_s7_clk",
5182 .parent_hws = (const struct clk_hw*[]){
5183 &gcc_qupv3_wrap2_s7_clk_src.clkr.hw,
5186 .flags = CLK_SET_RATE_PARENT,
5187 .ops = &clk_branch2_ops,
5192 static struct clk_branch gcc_qupv3_wrap_0_m_ahb_clk = {
5193 .halt_reg = 0x17004,
5194 .halt_check = BRANCH_HALT_VOTED,
5195 .hwcg_reg = 0x17004,
5198 .enable_reg = 0x52008,
5199 .enable_mask = BIT(6),
5200 .hw.init = &(const struct clk_init_data) {
5201 .name = "gcc_qupv3_wrap_0_m_ahb_clk",
5202 .ops = &clk_branch2_ops,
5207 static struct clk_branch gcc_qupv3_wrap_0_s_ahb_clk = {
5208 .halt_reg = 0x17008,
5209 .halt_check = BRANCH_HALT_VOTED,
5210 .hwcg_reg = 0x17008,
5213 .enable_reg = 0x52008,
5214 .enable_mask = BIT(7),
5215 .hw.init = &(const struct clk_init_data) {
5216 .name = "gcc_qupv3_wrap_0_s_ahb_clk",
5217 .ops = &clk_branch2_ops,
5222 static struct clk_branch gcc_qupv3_wrap_1_m_ahb_clk = {
5223 .halt_reg = 0x18004,
5224 .halt_check = BRANCH_HALT_VOTED,
5225 .hwcg_reg = 0x18004,
5228 .enable_reg = 0x52008,
5229 .enable_mask = BIT(20),
5230 .hw.init = &(const struct clk_init_data) {
5231 .name = "gcc_qupv3_wrap_1_m_ahb_clk",
5232 .ops = &clk_branch2_ops,
5237 static struct clk_branch gcc_qupv3_wrap_1_s_ahb_clk = {
5238 .halt_reg = 0x18008,
5239 .halt_check = BRANCH_HALT_VOTED,
5240 .hwcg_reg = 0x18008,
5243 .enable_reg = 0x52008,
5244 .enable_mask = BIT(21),
5245 .hw.init = &(const struct clk_init_data) {
5246 .name = "gcc_qupv3_wrap_1_s_ahb_clk",
5247 .ops = &clk_branch2_ops,
5252 static struct clk_branch gcc_qupv3_wrap_2_m_ahb_clk = {
5253 .halt_reg = 0x1e004,
5254 .halt_check = BRANCH_HALT_VOTED,
5255 .hwcg_reg = 0x1e004,
5258 .enable_reg = 0x52010,
5259 .enable_mask = BIT(2),
5260 .hw.init = &(const struct clk_init_data) {
5261 .name = "gcc_qupv3_wrap_2_m_ahb_clk",
5262 .ops = &clk_branch2_ops,
5267 static struct clk_branch gcc_qupv3_wrap_2_s_ahb_clk = {
5268 .halt_reg = 0x1e008,
5269 .halt_check = BRANCH_HALT_VOTED,
5270 .hwcg_reg = 0x1e008,
5273 .enable_reg = 0x52010,
5274 .enable_mask = BIT(1),
5275 .hw.init = &(const struct clk_init_data) {
5276 .name = "gcc_qupv3_wrap_2_s_ahb_clk",
5277 .ops = &clk_branch2_ops,
5282 static struct clk_branch gcc_sdcc2_ahb_clk = {
5283 .halt_reg = 0x14008,
5284 .halt_check = BRANCH_HALT,
5286 .enable_reg = 0x14008,
5287 .enable_mask = BIT(0),
5288 .hw.init = &(const struct clk_init_data) {
5289 .name = "gcc_sdcc2_ahb_clk",
5290 .ops = &clk_branch2_ops,
5295 static struct clk_branch gcc_sdcc2_apps_clk = {
5296 .halt_reg = 0x14004,
5297 .halt_check = BRANCH_HALT,
5299 .enable_reg = 0x14004,
5300 .enable_mask = BIT(0),
5301 .hw.init = &(const struct clk_init_data) {
5302 .name = "gcc_sdcc2_apps_clk",
5303 .parent_hws = (const struct clk_hw*[]){
5304 &gcc_sdcc2_apps_clk_src.clkr.hw,
5307 .flags = CLK_SET_RATE_PARENT,
5308 .ops = &clk_branch2_ops,
5313 static struct clk_branch gcc_sdcc4_ahb_clk = {
5314 .halt_reg = 0x16008,
5315 .halt_check = BRANCH_HALT,
5317 .enable_reg = 0x16008,
5318 .enable_mask = BIT(0),
5319 .hw.init = &(const struct clk_init_data) {
5320 .name = "gcc_sdcc4_ahb_clk",
5321 .ops = &clk_branch2_ops,
5326 static struct clk_branch gcc_sdcc4_apps_clk = {
5327 .halt_reg = 0x16004,
5328 .halt_check = BRANCH_HALT,
5330 .enable_reg = 0x16004,
5331 .enable_mask = BIT(0),
5332 .hw.init = &(const struct clk_init_data) {
5333 .name = "gcc_sdcc4_apps_clk",
5334 .parent_hws = (const struct clk_hw*[]){
5335 &gcc_sdcc4_apps_clk_src.clkr.hw,
5338 .flags = CLK_SET_RATE_PARENT,
5339 .ops = &clk_branch2_ops,
5344 static struct clk_branch gcc_sys_noc_usb_axi_clk = {
5345 .halt_reg = 0x5d000,
5346 .halt_check = BRANCH_HALT_VOTED,
5347 .hwcg_reg = 0x5d000,
5350 .enable_reg = 0x5d000,
5351 .enable_mask = BIT(0),
5352 .hw.init = &(const struct clk_init_data) {
5353 .name = "gcc_sys_noc_usb_axi_clk",
5354 .ops = &clk_branch2_ops,
5359 static struct clk_branch gcc_ufs_1_card_clkref_clk = {
5360 .halt_reg = 0x8c000,
5361 .halt_check = BRANCH_HALT,
5363 .enable_reg = 0x8c000,
5364 .enable_mask = BIT(0),
5365 .hw.init = &(const struct clk_init_data) {
5366 .name = "gcc_ufs_1_card_clkref_clk",
5367 .ops = &clk_branch2_ops,
5372 static struct clk_branch gcc_ufs_card_ahb_clk = {
5373 .halt_reg = 0x75018,
5374 .halt_check = BRANCH_HALT_VOTED,
5375 .hwcg_reg = 0x75018,
5378 .enable_reg = 0x75018,
5379 .enable_mask = BIT(0),
5380 .hw.init = &(const struct clk_init_data) {
5381 .name = "gcc_ufs_card_ahb_clk",
5382 .ops = &clk_branch2_ops,
5387 static struct clk_branch gcc_ufs_card_axi_clk = {
5388 .halt_reg = 0x75010,
5389 .halt_check = BRANCH_HALT_VOTED,
5390 .hwcg_reg = 0x75010,
5393 .enable_reg = 0x75010,
5394 .enable_mask = BIT(0),
5395 .hw.init = &(const struct clk_init_data) {
5396 .name = "gcc_ufs_card_axi_clk",
5397 .parent_hws = (const struct clk_hw*[]){
5398 &gcc_ufs_card_axi_clk_src.clkr.hw,
5401 .flags = CLK_SET_RATE_PARENT,
5402 .ops = &clk_branch2_ops,
5407 static struct clk_branch gcc_ufs_card_axi_hw_ctl_clk = {
5408 .halt_reg = 0x75010,
5409 .halt_check = BRANCH_HALT_VOTED,
5410 .hwcg_reg = 0x75010,
5413 .enable_reg = 0x75010,
5414 .enable_mask = BIT(1),
5415 .hw.init = &(const struct clk_init_data) {
5416 .name = "gcc_ufs_card_axi_hw_ctl_clk",
5417 .parent_hws = (const struct clk_hw*[]){
5418 &gcc_ufs_card_axi_clk_src.clkr.hw,
5421 .flags = CLK_SET_RATE_PARENT,
5422 .ops = &clk_branch2_ops,
5427 static struct clk_branch gcc_ufs_card_clkref_clk = {
5428 .halt_reg = 0x8c054,
5429 .halt_check = BRANCH_HALT,
5431 .enable_reg = 0x8c054,
5432 .enable_mask = BIT(0),
5433 .hw.init = &(const struct clk_init_data) {
5434 .name = "gcc_ufs_card_clkref_clk",
5435 .ops = &clk_branch2_ops,
5440 static struct clk_branch gcc_ufs_card_ice_core_clk = {
5441 .halt_reg = 0x75064,
5442 .halt_check = BRANCH_HALT_VOTED,
5443 .hwcg_reg = 0x75064,
5446 .enable_reg = 0x75064,
5447 .enable_mask = BIT(0),
5448 .hw.init = &(const struct clk_init_data) {
5449 .name = "gcc_ufs_card_ice_core_clk",
5450 .parent_hws = (const struct clk_hw*[]){
5451 &gcc_ufs_card_ice_core_clk_src.clkr.hw,
5454 .flags = CLK_SET_RATE_PARENT,
5455 .ops = &clk_branch2_ops,
5460 static struct clk_branch gcc_ufs_card_ice_core_hw_ctl_clk = {
5461 .halt_reg = 0x75064,
5462 .halt_check = BRANCH_HALT_VOTED,
5463 .hwcg_reg = 0x75064,
5466 .enable_reg = 0x75064,
5467 .enable_mask = BIT(1),
5468 .hw.init = &(const struct clk_init_data) {
5469 .name = "gcc_ufs_card_ice_core_hw_ctl_clk",
5470 .parent_hws = (const struct clk_hw*[]){
5471 &gcc_ufs_card_ice_core_clk_src.clkr.hw,
5474 .flags = CLK_SET_RATE_PARENT,
5475 .ops = &clk_branch2_ops,
5480 static struct clk_branch gcc_ufs_card_phy_aux_clk = {
5481 .halt_reg = 0x7509c,
5482 .halt_check = BRANCH_HALT_VOTED,
5483 .hwcg_reg = 0x7509c,
5486 .enable_reg = 0x7509c,
5487 .enable_mask = BIT(0),
5488 .hw.init = &(const struct clk_init_data) {
5489 .name = "gcc_ufs_card_phy_aux_clk",
5490 .parent_hws = (const struct clk_hw*[]){
5491 &gcc_ufs_card_phy_aux_clk_src.clkr.hw,
5494 .flags = CLK_SET_RATE_PARENT,
5495 .ops = &clk_branch2_ops,
5500 static struct clk_branch gcc_ufs_card_phy_aux_hw_ctl_clk = {
5501 .halt_reg = 0x7509c,
5502 .halt_check = BRANCH_HALT_VOTED,
5503 .hwcg_reg = 0x7509c,
5506 .enable_reg = 0x7509c,
5507 .enable_mask = BIT(1),
5508 .hw.init = &(const struct clk_init_data) {
5509 .name = "gcc_ufs_card_phy_aux_hw_ctl_clk",
5510 .parent_hws = (const struct clk_hw*[]){
5511 &gcc_ufs_card_phy_aux_clk_src.clkr.hw,
5514 .flags = CLK_SET_RATE_PARENT,
5515 .ops = &clk_branch2_ops,
5520 static struct clk_branch gcc_ufs_card_rx_symbol_0_clk = {
5521 .halt_reg = 0x75020,
5522 .halt_check = BRANCH_HALT_DELAY,
5524 .enable_reg = 0x75020,
5525 .enable_mask = BIT(0),
5526 .hw.init = &(const struct clk_init_data) {
5527 .name = "gcc_ufs_card_rx_symbol_0_clk",
5528 .parent_hws = (const struct clk_hw*[]){
5529 &gcc_ufs_card_rx_symbol_0_clk_src.clkr.hw,
5532 .flags = CLK_SET_RATE_PARENT,
5533 .ops = &clk_branch2_ops,
5538 static struct clk_branch gcc_ufs_card_rx_symbol_1_clk = {
5539 .halt_reg = 0x750b8,
5540 .halt_check = BRANCH_HALT_DELAY,
5542 .enable_reg = 0x750b8,
5543 .enable_mask = BIT(0),
5544 .hw.init = &(const struct clk_init_data) {
5545 .name = "gcc_ufs_card_rx_symbol_1_clk",
5546 .parent_hws = (const struct clk_hw*[]){
5547 &gcc_ufs_card_rx_symbol_1_clk_src.clkr.hw,
5550 .flags = CLK_SET_RATE_PARENT,
5551 .ops = &clk_branch2_ops,
5556 static struct clk_branch gcc_ufs_card_tx_symbol_0_clk = {
5557 .halt_reg = 0x7501c,
5558 .halt_check = BRANCH_HALT_DELAY,
5560 .enable_reg = 0x7501c,
5561 .enable_mask = BIT(0),
5562 .hw.init = &(const struct clk_init_data) {
5563 .name = "gcc_ufs_card_tx_symbol_0_clk",
5564 .parent_hws = (const struct clk_hw*[]){
5565 &gcc_ufs_card_tx_symbol_0_clk_src.clkr.hw,
5568 .flags = CLK_SET_RATE_PARENT,
5569 .ops = &clk_branch2_ops,
5574 static struct clk_branch gcc_ufs_card_unipro_core_clk = {
5575 .halt_reg = 0x7505c,
5576 .halt_check = BRANCH_HALT_VOTED,
5577 .hwcg_reg = 0x7505c,
5580 .enable_reg = 0x7505c,
5581 .enable_mask = BIT(0),
5582 .hw.init = &(const struct clk_init_data) {
5583 .name = "gcc_ufs_card_unipro_core_clk",
5584 .parent_hws = (const struct clk_hw*[]){
5585 &gcc_ufs_card_unipro_core_clk_src.clkr.hw,
5588 .flags = CLK_SET_RATE_PARENT,
5589 .ops = &clk_branch2_ops,
5594 static struct clk_branch gcc_ufs_card_unipro_core_hw_ctl_clk = {
5595 .halt_reg = 0x7505c,
5596 .halt_check = BRANCH_HALT_VOTED,
5597 .hwcg_reg = 0x7505c,
5600 .enable_reg = 0x7505c,
5601 .enable_mask = BIT(1),
5602 .hw.init = &(const struct clk_init_data) {
5603 .name = "gcc_ufs_card_unipro_core_hw_ctl_clk",
5604 .parent_hws = (const struct clk_hw*[]){
5605 &gcc_ufs_card_unipro_core_clk_src.clkr.hw,
5608 .flags = CLK_SET_RATE_PARENT,
5609 .ops = &clk_branch2_ops,
5614 static struct clk_branch gcc_ufs_phy_ahb_clk = {
5615 .halt_reg = 0x77018,
5616 .halt_check = BRANCH_HALT_VOTED,
5617 .hwcg_reg = 0x77018,
5620 .enable_reg = 0x77018,
5621 .enable_mask = BIT(0),
5622 .hw.init = &(const struct clk_init_data) {
5623 .name = "gcc_ufs_phy_ahb_clk",
5624 .ops = &clk_branch2_ops,
5629 static struct clk_branch gcc_ufs_phy_axi_clk = {
5630 .halt_reg = 0x77010,
5631 .halt_check = BRANCH_HALT_VOTED,
5632 .hwcg_reg = 0x77010,
5635 .enable_reg = 0x77010,
5636 .enable_mask = BIT(0),
5637 .hw.init = &(const struct clk_init_data) {
5638 .name = "gcc_ufs_phy_axi_clk",
5639 .parent_hws = (const struct clk_hw*[]){
5640 &gcc_ufs_phy_axi_clk_src.clkr.hw,
5643 .flags = CLK_SET_RATE_PARENT,
5644 .ops = &clk_branch2_ops,
5649 static struct clk_branch gcc_ufs_phy_axi_hw_ctl_clk = {
5650 .halt_reg = 0x77010,
5651 .halt_check = BRANCH_HALT_VOTED,
5652 .hwcg_reg = 0x77010,
5655 .enable_reg = 0x77010,
5656 .enable_mask = BIT(1),
5657 .hw.init = &(const struct clk_init_data) {
5658 .name = "gcc_ufs_phy_axi_hw_ctl_clk",
5659 .parent_hws = (const struct clk_hw*[]){
5660 &gcc_ufs_phy_axi_clk_src.clkr.hw,
5663 .flags = CLK_SET_RATE_PARENT,
5664 .ops = &clk_branch2_ops,
5669 static struct clk_branch gcc_ufs_phy_ice_core_clk = {
5670 .halt_reg = 0x77064,
5671 .halt_check = BRANCH_HALT_VOTED,
5672 .hwcg_reg = 0x77064,
5675 .enable_reg = 0x77064,
5676 .enable_mask = BIT(0),
5677 .hw.init = &(const struct clk_init_data) {
5678 .name = "gcc_ufs_phy_ice_core_clk",
5679 .parent_hws = (const struct clk_hw*[]){
5680 &gcc_ufs_phy_ice_core_clk_src.clkr.hw,
5683 .flags = CLK_SET_RATE_PARENT,
5684 .ops = &clk_branch2_ops,
5689 static struct clk_branch gcc_ufs_phy_ice_core_hw_ctl_clk = {
5690 .halt_reg = 0x77064,
5691 .halt_check = BRANCH_HALT_VOTED,
5692 .hwcg_reg = 0x77064,
5695 .enable_reg = 0x77064,
5696 .enable_mask = BIT(1),
5697 .hw.init = &(const struct clk_init_data) {
5698 .name = "gcc_ufs_phy_ice_core_hw_ctl_clk",
5699 .parent_hws = (const struct clk_hw*[]){
5700 &gcc_ufs_phy_ice_core_clk_src.clkr.hw,
5703 .flags = CLK_SET_RATE_PARENT,
5704 .ops = &clk_branch2_ops,
5709 static struct clk_branch gcc_ufs_phy_phy_aux_clk = {
5710 .halt_reg = 0x7709c,
5711 .halt_check = BRANCH_HALT_VOTED,
5712 .hwcg_reg = 0x7709c,
5715 .enable_reg = 0x7709c,
5716 .enable_mask = BIT(0),
5717 .hw.init = &(const struct clk_init_data) {
5718 .name = "gcc_ufs_phy_phy_aux_clk",
5719 .parent_hws = (const struct clk_hw*[]){
5720 &gcc_ufs_phy_phy_aux_clk_src.clkr.hw,
5723 .flags = CLK_SET_RATE_PARENT,
5724 .ops = &clk_branch2_ops,
5729 static struct clk_branch gcc_ufs_phy_phy_aux_hw_ctl_clk = {
5730 .halt_reg = 0x7709c,
5731 .halt_check = BRANCH_HALT_VOTED,
5732 .hwcg_reg = 0x7709c,
5735 .enable_reg = 0x7709c,
5736 .enable_mask = BIT(1),
5737 .hw.init = &(const struct clk_init_data) {
5738 .name = "gcc_ufs_phy_phy_aux_hw_ctl_clk",
5739 .parent_hws = (const struct clk_hw*[]){
5740 &gcc_ufs_phy_phy_aux_clk_src.clkr.hw,
5743 .flags = CLK_SET_RATE_PARENT,
5744 .ops = &clk_branch2_ops,
5749 static struct clk_branch gcc_ufs_phy_rx_symbol_0_clk = {
5750 .halt_reg = 0x77020,
5751 .halt_check = BRANCH_HALT_DELAY,
5753 .enable_reg = 0x77020,
5754 .enable_mask = BIT(0),
5755 .hw.init = &(const struct clk_init_data) {
5756 .name = "gcc_ufs_phy_rx_symbol_0_clk",
5757 .parent_hws = (const struct clk_hw*[]){
5758 &gcc_ufs_phy_rx_symbol_0_clk_src.clkr.hw,
5761 .flags = CLK_SET_RATE_PARENT,
5762 .ops = &clk_branch2_ops,
5767 static struct clk_branch gcc_ufs_phy_rx_symbol_1_clk = {
5768 .halt_reg = 0x770b8,
5769 .halt_check = BRANCH_HALT_DELAY,
5771 .enable_reg = 0x770b8,
5772 .enable_mask = BIT(0),
5773 .hw.init = &(const struct clk_init_data) {
5774 .name = "gcc_ufs_phy_rx_symbol_1_clk",
5775 .parent_hws = (const struct clk_hw*[]){
5776 &gcc_ufs_phy_rx_symbol_1_clk_src.clkr.hw,
5779 .flags = CLK_SET_RATE_PARENT,
5780 .ops = &clk_branch2_ops,
5785 static struct clk_branch gcc_ufs_phy_tx_symbol_0_clk = {
5786 .halt_reg = 0x7701c,
5787 .halt_check = BRANCH_HALT_DELAY,
5789 .enable_reg = 0x7701c,
5790 .enable_mask = BIT(0),
5791 .hw.init = &(const struct clk_init_data) {
5792 .name = "gcc_ufs_phy_tx_symbol_0_clk",
5793 .parent_hws = (const struct clk_hw*[]){
5794 &gcc_ufs_phy_tx_symbol_0_clk_src.clkr.hw,
5797 .flags = CLK_SET_RATE_PARENT,
5798 .ops = &clk_branch2_ops,
5803 static struct clk_branch gcc_ufs_phy_unipro_core_clk = {
5804 .halt_reg = 0x7705c,
5805 .halt_check = BRANCH_HALT_VOTED,
5806 .hwcg_reg = 0x7705c,
5809 .enable_reg = 0x7705c,
5810 .enable_mask = BIT(0),
5811 .hw.init = &(const struct clk_init_data) {
5812 .name = "gcc_ufs_phy_unipro_core_clk",
5813 .parent_hws = (const struct clk_hw*[]){
5814 &gcc_ufs_phy_unipro_core_clk_src.clkr.hw,
5817 .flags = CLK_SET_RATE_PARENT,
5818 .ops = &clk_branch2_ops,
5823 static struct clk_branch gcc_ufs_phy_unipro_core_hw_ctl_clk = {
5824 .halt_reg = 0x7705c,
5825 .halt_check = BRANCH_HALT_VOTED,
5826 .hwcg_reg = 0x7705c,
5829 .enable_reg = 0x7705c,
5830 .enable_mask = BIT(1),
5831 .hw.init = &(const struct clk_init_data) {
5832 .name = "gcc_ufs_phy_unipro_core_hw_ctl_clk",
5833 .parent_hws = (const struct clk_hw*[]){
5834 &gcc_ufs_phy_unipro_core_clk_src.clkr.hw,
5837 .flags = CLK_SET_RATE_PARENT,
5838 .ops = &clk_branch2_ops,
5843 static struct clk_branch gcc_ufs_ref_clkref_clk = {
5844 .halt_reg = 0x8c058,
5845 .halt_check = BRANCH_HALT,
5847 .enable_reg = 0x8c058,
5848 .enable_mask = BIT(0),
5849 .hw.init = &(const struct clk_init_data) {
5850 .name = "gcc_ufs_ref_clkref_clk",
5851 .ops = &clk_branch2_ops,
5856 static struct clk_branch gcc_usb2_hs0_clkref_clk = {
5857 .halt_reg = 0x8c044,
5858 .halt_check = BRANCH_HALT,
5860 .enable_reg = 0x8c044,
5861 .enable_mask = BIT(0),
5862 .hw.init = &(const struct clk_init_data) {
5863 .name = "gcc_usb2_hs0_clkref_clk",
5864 .ops = &clk_branch2_ops,
5869 static struct clk_branch gcc_usb2_hs1_clkref_clk = {
5870 .halt_reg = 0x8c048,
5871 .halt_check = BRANCH_HALT,
5873 .enable_reg = 0x8c048,
5874 .enable_mask = BIT(0),
5875 .hw.init = &(const struct clk_init_data) {
5876 .name = "gcc_usb2_hs1_clkref_clk",
5877 .ops = &clk_branch2_ops,
5882 static struct clk_branch gcc_usb2_hs2_clkref_clk = {
5883 .halt_reg = 0x8c04c,
5884 .halt_check = BRANCH_HALT,
5886 .enable_reg = 0x8c04c,
5887 .enable_mask = BIT(0),
5888 .hw.init = &(const struct clk_init_data) {
5889 .name = "gcc_usb2_hs2_clkref_clk",
5890 .ops = &clk_branch2_ops,
5895 static struct clk_branch gcc_usb2_hs3_clkref_clk = {
5896 .halt_reg = 0x8c050,
5897 .halt_check = BRANCH_HALT,
5899 .enable_reg = 0x8c050,
5900 .enable_mask = BIT(0),
5901 .hw.init = &(const struct clk_init_data) {
5902 .name = "gcc_usb2_hs3_clkref_clk",
5903 .ops = &clk_branch2_ops,
5908 static struct clk_branch gcc_usb30_mp_master_clk = {
5909 .halt_reg = 0xab010,
5910 .halt_check = BRANCH_HALT,
5912 .enable_reg = 0xab010,
5913 .enable_mask = BIT(0),
5914 .hw.init = &(const struct clk_init_data) {
5915 .name = "gcc_usb30_mp_master_clk",
5916 .parent_hws = (const struct clk_hw*[]){
5917 &gcc_usb30_mp_master_clk_src.clkr.hw,
5920 .flags = CLK_SET_RATE_PARENT,
5921 .ops = &clk_branch2_ops,
5926 static struct clk_branch gcc_usb30_mp_mock_utmi_clk = {
5927 .halt_reg = 0xab01c,
5928 .halt_check = BRANCH_HALT,
5930 .enable_reg = 0xab01c,
5931 .enable_mask = BIT(0),
5932 .hw.init = &(const struct clk_init_data) {
5933 .name = "gcc_usb30_mp_mock_utmi_clk",
5934 .parent_hws = (const struct clk_hw*[]){
5935 &gcc_usb30_mp_mock_utmi_postdiv_clk_src.clkr.hw,
5938 .flags = CLK_SET_RATE_PARENT,
5939 .ops = &clk_branch2_ops,
5944 static struct clk_branch gcc_usb30_mp_sleep_clk = {
5945 .halt_reg = 0xab018,
5946 .halt_check = BRANCH_HALT,
5948 .enable_reg = 0xab018,
5949 .enable_mask = BIT(0),
5950 .hw.init = &(const struct clk_init_data) {
5951 .name = "gcc_usb30_mp_sleep_clk",
5952 .ops = &clk_branch2_ops,
5957 static struct clk_branch gcc_usb30_prim_master_clk = {
5959 .halt_check = BRANCH_HALT,
5961 .enable_reg = 0xf010,
5962 .enable_mask = BIT(0),
5963 .hw.init = &(const struct clk_init_data) {
5964 .name = "gcc_usb30_prim_master_clk",
5965 .parent_hws = (const struct clk_hw*[]){
5966 &gcc_usb30_prim_master_clk_src.clkr.hw,
5969 .flags = CLK_SET_RATE_PARENT,
5970 .ops = &clk_branch2_ops,
5975 static struct clk_branch gcc_usb30_prim_mock_utmi_clk = {
5977 .halt_check = BRANCH_HALT,
5979 .enable_reg = 0xf01c,
5980 .enable_mask = BIT(0),
5981 .hw.init = &(const struct clk_init_data) {
5982 .name = "gcc_usb30_prim_mock_utmi_clk",
5983 .parent_hws = (const struct clk_hw*[]){
5984 &gcc_usb30_prim_mock_utmi_postdiv_clk_src.clkr.hw,
5987 .flags = CLK_SET_RATE_PARENT,
5988 .ops = &clk_branch2_ops,
5993 static struct clk_branch gcc_usb30_prim_sleep_clk = {
5995 .halt_check = BRANCH_HALT,
5997 .enable_reg = 0xf018,
5998 .enable_mask = BIT(0),
5999 .hw.init = &(const struct clk_init_data) {
6000 .name = "gcc_usb30_prim_sleep_clk",
6001 .ops = &clk_branch2_ops,
6006 static struct clk_branch gcc_usb30_sec_master_clk = {
6007 .halt_reg = 0x10010,
6008 .halt_check = BRANCH_HALT,
6010 .enable_reg = 0x10010,
6011 .enable_mask = BIT(0),
6012 .hw.init = &(const struct clk_init_data) {
6013 .name = "gcc_usb30_sec_master_clk",
6014 .parent_hws = (const struct clk_hw*[]){
6015 &gcc_usb30_sec_master_clk_src.clkr.hw,
6018 .flags = CLK_SET_RATE_PARENT,
6019 .ops = &clk_branch2_ops,
6024 static struct clk_branch gcc_usb30_sec_mock_utmi_clk = {
6025 .halt_reg = 0x1001c,
6026 .halt_check = BRANCH_HALT,
6028 .enable_reg = 0x1001c,
6029 .enable_mask = BIT(0),
6030 .hw.init = &(const struct clk_init_data) {
6031 .name = "gcc_usb30_sec_mock_utmi_clk",
6032 .parent_hws = (const struct clk_hw*[]){
6033 &gcc_usb30_sec_mock_utmi_postdiv_clk_src.clkr.hw,
6036 .flags = CLK_SET_RATE_PARENT,
6037 .ops = &clk_branch2_ops,
6042 static struct clk_branch gcc_usb30_sec_sleep_clk = {
6043 .halt_reg = 0x10018,
6044 .halt_check = BRANCH_HALT,
6046 .enable_reg = 0x10018,
6047 .enable_mask = BIT(0),
6048 .hw.init = &(const struct clk_init_data) {
6049 .name = "gcc_usb30_sec_sleep_clk",
6050 .ops = &clk_branch2_ops,
6055 static struct clk_branch gcc_usb3_mp0_clkref_clk = {
6056 .halt_reg = 0x8c03c,
6057 .halt_check = BRANCH_HALT,
6059 .enable_reg = 0x8c03c,
6060 .enable_mask = BIT(0),
6061 .hw.init = &(const struct clk_init_data) {
6062 .name = "gcc_usb3_mp0_clkref_clk",
6063 .ops = &clk_branch2_ops,
6068 static struct clk_branch gcc_usb3_mp1_clkref_clk = {
6069 .halt_reg = 0x8c040,
6070 .halt_check = BRANCH_HALT,
6072 .enable_reg = 0x8c040,
6073 .enable_mask = BIT(0),
6074 .hw.init = &(const struct clk_init_data) {
6075 .name = "gcc_usb3_mp1_clkref_clk",
6076 .ops = &clk_branch2_ops,
6081 static struct clk_branch gcc_usb3_mp_phy_aux_clk = {
6082 .halt_reg = 0xab054,
6083 .halt_check = BRANCH_HALT,
6085 .enable_reg = 0xab054,
6086 .enable_mask = BIT(0),
6087 .hw.init = &(const struct clk_init_data) {
6088 .name = "gcc_usb3_mp_phy_aux_clk",
6089 .parent_hws = (const struct clk_hw*[]){
6090 &gcc_usb3_mp_phy_aux_clk_src.clkr.hw,
6093 .flags = CLK_SET_RATE_PARENT,
6094 .ops = &clk_branch2_ops,
6099 static struct clk_branch gcc_usb3_mp_phy_com_aux_clk = {
6100 .halt_reg = 0xab058,
6101 .halt_check = BRANCH_HALT,
6103 .enable_reg = 0xab058,
6104 .enable_mask = BIT(0),
6105 .hw.init = &(const struct clk_init_data) {
6106 .name = "gcc_usb3_mp_phy_com_aux_clk",
6107 .parent_hws = (const struct clk_hw*[]){
6108 &gcc_usb3_mp_phy_aux_clk_src.clkr.hw,
6111 .flags = CLK_SET_RATE_PARENT,
6112 .ops = &clk_branch2_ops,
6117 static struct clk_branch gcc_usb3_mp_phy_pipe_0_clk = {
6118 .halt_reg = 0xab05c,
6119 .halt_check = BRANCH_HALT_DELAY,
6121 .enable_reg = 0xab05c,
6122 .enable_mask = BIT(0),
6123 .hw.init = &(const struct clk_init_data) {
6124 .name = "gcc_usb3_mp_phy_pipe_0_clk",
6125 .parent_hws = (const struct clk_hw*[]){
6126 &gcc_usb3_mp_phy_pipe_0_clk_src.clkr.hw,
6129 .flags = CLK_SET_RATE_PARENT,
6130 .ops = &clk_branch2_ops,
6135 static struct clk_branch gcc_usb3_mp_phy_pipe_1_clk = {
6136 .halt_reg = 0xab064,
6137 .halt_check = BRANCH_HALT_DELAY,
6139 .enable_reg = 0xab064,
6140 .enable_mask = BIT(0),
6141 .hw.init = &(const struct clk_init_data) {
6142 .name = "gcc_usb3_mp_phy_pipe_1_clk",
6143 .parent_hws = (const struct clk_hw*[]){
6144 &gcc_usb3_mp_phy_pipe_1_clk_src.clkr.hw,
6147 .flags = CLK_SET_RATE_PARENT,
6148 .ops = &clk_branch2_ops,
6153 static struct clk_branch gcc_usb3_prim_phy_aux_clk = {
6155 .halt_check = BRANCH_HALT,
6157 .enable_reg = 0xf054,
6158 .enable_mask = BIT(0),
6159 .hw.init = &(const struct clk_init_data) {
6160 .name = "gcc_usb3_prim_phy_aux_clk",
6161 .parent_hws = (const struct clk_hw*[]){
6162 &gcc_usb3_prim_phy_aux_clk_src.clkr.hw,
6165 .flags = CLK_SET_RATE_PARENT,
6166 .ops = &clk_branch2_ops,
6171 static struct clk_branch gcc_usb3_prim_phy_com_aux_clk = {
6173 .halt_check = BRANCH_HALT,
6175 .enable_reg = 0xf058,
6176 .enable_mask = BIT(0),
6177 .hw.init = &(const struct clk_init_data) {
6178 .name = "gcc_usb3_prim_phy_com_aux_clk",
6179 .parent_hws = (const struct clk_hw*[]){
6180 &gcc_usb3_prim_phy_aux_clk_src.clkr.hw,
6183 .flags = CLK_SET_RATE_PARENT,
6184 .ops = &clk_branch2_ops,
6189 static struct clk_branch gcc_usb3_prim_phy_pipe_clk = {
6191 .halt_check = BRANCH_HALT_DELAY,
6195 .enable_reg = 0xf05c,
6196 .enable_mask = BIT(0),
6197 .hw.init = &(const struct clk_init_data) {
6198 .name = "gcc_usb3_prim_phy_pipe_clk",
6199 .parent_hws = (const struct clk_hw*[]){
6200 &gcc_usb34_prim_phy_pipe_clk_src.clkr.hw,
6203 .flags = CLK_SET_RATE_PARENT,
6204 .ops = &clk_branch2_ops,
6209 static struct clk_branch gcc_usb3_sec_phy_aux_clk = {
6210 .halt_reg = 0x10054,
6211 .halt_check = BRANCH_HALT,
6213 .enable_reg = 0x10054,
6214 .enable_mask = BIT(0),
6215 .hw.init = &(const struct clk_init_data) {
6216 .name = "gcc_usb3_sec_phy_aux_clk",
6217 .parent_hws = (const struct clk_hw*[]){
6218 &gcc_usb3_sec_phy_aux_clk_src.clkr.hw,
6221 .flags = CLK_SET_RATE_PARENT,
6222 .ops = &clk_branch2_ops,
6227 static struct clk_branch gcc_usb3_sec_phy_com_aux_clk = {
6228 .halt_reg = 0x10058,
6229 .halt_check = BRANCH_HALT,
6231 .enable_reg = 0x10058,
6232 .enable_mask = BIT(0),
6233 .hw.init = &(const struct clk_init_data) {
6234 .name = "gcc_usb3_sec_phy_com_aux_clk",
6235 .parent_hws = (const struct clk_hw*[]){
6236 &gcc_usb3_sec_phy_aux_clk_src.clkr.hw,
6239 .flags = CLK_SET_RATE_PARENT,
6240 .ops = &clk_branch2_ops,
6245 static struct clk_branch gcc_usb3_sec_phy_pipe_clk = {
6246 .halt_reg = 0x1005c,
6247 .halt_check = BRANCH_HALT_DELAY,
6248 .hwcg_reg = 0x1005c,
6251 .enable_reg = 0x1005c,
6252 .enable_mask = BIT(0),
6253 .hw.init = &(const struct clk_init_data) {
6254 .name = "gcc_usb3_sec_phy_pipe_clk",
6255 .parent_hws = (const struct clk_hw*[]){
6256 &gcc_usb34_sec_phy_pipe_clk_src.clkr.hw,
6259 .flags = CLK_SET_RATE_PARENT,
6260 .ops = &clk_branch2_ops,
6265 static struct clk_branch gcc_usb4_1_cfg_ahb_clk = {
6266 .halt_reg = 0xb808c,
6267 .halt_check = BRANCH_HALT_VOTED,
6268 .hwcg_reg = 0xb808c,
6271 .enable_reg = 0xb808c,
6272 .enable_mask = BIT(0),
6273 .hw.init = &(const struct clk_init_data) {
6274 .name = "gcc_usb4_1_cfg_ahb_clk",
6275 .ops = &clk_branch2_ops,
6280 static struct clk_branch gcc_usb4_1_dp_clk = {
6281 .halt_reg = 0xb8048,
6282 .halt_check = BRANCH_HALT,
6284 .enable_reg = 0xb8048,
6285 .enable_mask = BIT(0),
6286 .hw.init = &(const struct clk_init_data) {
6287 .name = "gcc_usb4_1_dp_clk",
6288 .parent_hws = (const struct clk_hw*[]){
6289 &gcc_usb4_1_phy_dp_clk_src.clkr.hw,
6292 .flags = CLK_SET_RATE_PARENT,
6293 .ops = &clk_branch2_ops,
6298 static struct clk_branch gcc_usb4_1_master_clk = {
6299 .halt_reg = 0xb8010,
6300 .halt_check = BRANCH_HALT,
6302 .enable_reg = 0xb8010,
6303 .enable_mask = BIT(0),
6304 .hw.init = &(const struct clk_init_data) {
6305 .name = "gcc_usb4_1_master_clk",
6306 .parent_hws = (const struct clk_hw*[]){
6307 &gcc_usb4_1_master_clk_src.clkr.hw,
6310 .flags = CLK_SET_RATE_PARENT,
6311 .ops = &clk_branch2_ops,
6316 static struct clk_branch gcc_usb4_1_phy_p2rr2p_pipe_clk = {
6317 .halt_reg = 0xb80b4,
6318 .halt_check = BRANCH_HALT_DELAY,
6320 .enable_reg = 0xb80b4,
6321 .enable_mask = BIT(0),
6322 .hw.init = &(const struct clk_init_data) {
6323 .name = "gcc_usb4_1_phy_p2rr2p_pipe_clk",
6324 .parent_hws = (const struct clk_hw*[]){
6325 &gcc_usb4_1_phy_p2rr2p_pipe_clk_src.clkr.hw,
6328 .flags = CLK_SET_RATE_PARENT,
6329 .ops = &clk_branch2_ops,
6334 static struct clk_branch gcc_usb4_1_phy_pcie_pipe_clk = {
6335 .halt_reg = 0xb8038,
6336 .halt_check = BRANCH_HALT_DELAY,
6338 .enable_reg = 0x52020,
6339 .enable_mask = BIT(19),
6340 .hw.init = &(const struct clk_init_data) {
6341 .name = "gcc_usb4_1_phy_pcie_pipe_clk",
6342 .parent_hws = (const struct clk_hw*[]){
6343 &gcc_usb4_1_phy_pcie_pipe_mux_clk_src.clkr.hw,
6346 .flags = CLK_SET_RATE_PARENT,
6347 .ops = &clk_branch2_ops,
6352 static struct clk_branch gcc_usb4_1_phy_rx0_clk = {
6353 .halt_reg = 0xb8094,
6354 .halt_check = BRANCH_HALT,
6356 .enable_reg = 0xb8094,
6357 .enable_mask = BIT(0),
6358 .hw.init = &(const struct clk_init_data) {
6359 .name = "gcc_usb4_1_phy_rx0_clk",
6360 .parent_hws = (const struct clk_hw*[]){
6361 &gcc_usb4_1_phy_rx0_clk_src.clkr.hw,
6364 .flags = CLK_SET_RATE_PARENT,
6365 .ops = &clk_branch2_ops,
6370 static struct clk_branch gcc_usb4_1_phy_rx1_clk = {
6371 .halt_reg = 0xb80a0,
6372 .halt_check = BRANCH_HALT,
6374 .enable_reg = 0xb80a0,
6375 .enable_mask = BIT(0),
6376 .hw.init = &(const struct clk_init_data) {
6377 .name = "gcc_usb4_1_phy_rx1_clk",
6378 .parent_hws = (const struct clk_hw*[]){
6379 &gcc_usb4_1_phy_rx1_clk_src.clkr.hw,
6382 .flags = CLK_SET_RATE_PARENT,
6383 .ops = &clk_branch2_ops,
6388 static struct clk_branch gcc_usb4_1_phy_usb_pipe_clk = {
6389 .halt_reg = 0xb8088,
6390 .halt_check = BRANCH_HALT_DELAY,
6391 .hwcg_reg = 0xb8088,
6394 .enable_reg = 0xb8088,
6395 .enable_mask = BIT(0),
6396 .hw.init = &(const struct clk_init_data) {
6397 .name = "gcc_usb4_1_phy_usb_pipe_clk",
6398 .parent_hws = (const struct clk_hw*[]){
6399 &gcc_usb34_sec_phy_pipe_clk_src.clkr.hw,
6402 .flags = CLK_SET_RATE_PARENT,
6403 .ops = &clk_branch2_ops,
6408 static struct clk_branch gcc_usb4_1_sb_if_clk = {
6409 .halt_reg = 0xb8034,
6410 .halt_check = BRANCH_HALT,
6412 .enable_reg = 0xb8034,
6413 .enable_mask = BIT(0),
6414 .hw.init = &(const struct clk_init_data) {
6415 .name = "gcc_usb4_1_sb_if_clk",
6416 .parent_hws = (const struct clk_hw*[]){
6417 &gcc_usb4_1_sb_if_clk_src.clkr.hw,
6420 .flags = CLK_SET_RATE_PARENT,
6421 .ops = &clk_branch2_ops,
6426 static struct clk_branch gcc_usb4_1_sys_clk = {
6427 .halt_reg = 0xb8040,
6428 .halt_check = BRANCH_HALT,
6430 .enable_reg = 0xb8040,
6431 .enable_mask = BIT(0),
6432 .hw.init = &(const struct clk_init_data) {
6433 .name = "gcc_usb4_1_sys_clk",
6434 .parent_hws = (const struct clk_hw*[]){
6435 &gcc_usb4_1_phy_sys_clk_src.clkr.hw,
6438 .flags = CLK_SET_RATE_PARENT,
6439 .ops = &clk_branch2_ops,
6444 static struct clk_branch gcc_usb4_1_tmu_clk = {
6445 .halt_reg = 0xb806c,
6446 .halt_check = BRANCH_HALT_VOTED,
6447 .hwcg_reg = 0xb806c,
6450 .enable_reg = 0xb806c,
6451 .enable_mask = BIT(0),
6452 .hw.init = &(const struct clk_init_data) {
6453 .name = "gcc_usb4_1_tmu_clk",
6454 .parent_hws = (const struct clk_hw*[]){
6455 &gcc_usb4_1_tmu_clk_src.clkr.hw,
6458 .flags = CLK_SET_RATE_PARENT,
6459 .ops = &clk_branch2_ops,
6464 static struct clk_branch gcc_usb4_cfg_ahb_clk = {
6465 .halt_reg = 0x2a08c,
6466 .halt_check = BRANCH_HALT_VOTED,
6467 .hwcg_reg = 0x2a08c,
6470 .enable_reg = 0x2a08c,
6471 .enable_mask = BIT(0),
6472 .hw.init = &(const struct clk_init_data) {
6473 .name = "gcc_usb4_cfg_ahb_clk",
6474 .ops = &clk_branch2_ops,
6479 static struct clk_branch gcc_usb4_clkref_clk = {
6480 .halt_reg = 0x8c010,
6481 .halt_check = BRANCH_HALT,
6483 .enable_reg = 0x8c010,
6484 .enable_mask = BIT(0),
6485 .hw.init = &(const struct clk_init_data) {
6486 .name = "gcc_usb4_clkref_clk",
6487 .ops = &clk_branch2_ops,
6492 static struct clk_branch gcc_usb4_dp_clk = {
6493 .halt_reg = 0x2a048,
6494 .halt_check = BRANCH_HALT,
6496 .enable_reg = 0x2a048,
6497 .enable_mask = BIT(0),
6498 .hw.init = &(const struct clk_init_data) {
6499 .name = "gcc_usb4_dp_clk",
6500 .parent_hws = (const struct clk_hw*[]){
6501 &gcc_usb4_phy_dp_clk_src.clkr.hw,
6504 .flags = CLK_SET_RATE_PARENT,
6505 .ops = &clk_branch2_ops,
6510 static struct clk_branch gcc_usb4_eud_clkref_clk = {
6511 .halt_reg = 0x8c02c,
6512 .halt_check = BRANCH_HALT,
6514 .enable_reg = 0x8c02c,
6515 .enable_mask = BIT(0),
6516 .hw.init = &(const struct clk_init_data) {
6517 .name = "gcc_usb4_eud_clkref_clk",
6518 .ops = &clk_branch2_ops,
6523 static struct clk_branch gcc_usb4_master_clk = {
6524 .halt_reg = 0x2a010,
6525 .halt_check = BRANCH_HALT,
6527 .enable_reg = 0x2a010,
6528 .enable_mask = BIT(0),
6529 .hw.init = &(const struct clk_init_data) {
6530 .name = "gcc_usb4_master_clk",
6531 .parent_hws = (const struct clk_hw*[]){
6532 &gcc_usb4_master_clk_src.clkr.hw,
6535 .flags = CLK_SET_RATE_PARENT,
6536 .ops = &clk_branch2_ops,
6541 static struct clk_branch gcc_usb4_phy_p2rr2p_pipe_clk = {
6542 .halt_reg = 0x2a0b4,
6543 .halt_check = BRANCH_HALT_DELAY,
6545 .enable_reg = 0x2a0b4,
6546 .enable_mask = BIT(0),
6547 .hw.init = &(const struct clk_init_data) {
6548 .name = "gcc_usb4_phy_p2rr2p_pipe_clk",
6549 .parent_hws = (const struct clk_hw*[]){
6550 &gcc_usb4_phy_p2rr2p_pipe_clk_src.clkr.hw,
6553 .flags = CLK_SET_RATE_PARENT,
6554 .ops = &clk_branch2_ops,
6559 static struct clk_branch gcc_usb4_phy_pcie_pipe_clk = {
6560 .halt_reg = 0x2a038,
6561 .halt_check = BRANCH_HALT_DELAY,
6563 .enable_reg = 0x52020,
6564 .enable_mask = BIT(18),
6565 .hw.init = &(const struct clk_init_data) {
6566 .name = "gcc_usb4_phy_pcie_pipe_clk",
6567 .parent_hws = (const struct clk_hw*[]){
6568 &gcc_usb4_phy_pcie_pipe_mux_clk_src.clkr.hw,
6571 .flags = CLK_SET_RATE_PARENT,
6572 .ops = &clk_branch2_ops,
6577 static struct clk_branch gcc_usb4_phy_rx0_clk = {
6578 .halt_reg = 0x2a094,
6579 .halt_check = BRANCH_HALT,
6581 .enable_reg = 0x2a094,
6582 .enable_mask = BIT(0),
6583 .hw.init = &(const struct clk_init_data) {
6584 .name = "gcc_usb4_phy_rx0_clk",
6585 .parent_hws = (const struct clk_hw*[]){
6586 &gcc_usb4_phy_rx0_clk_src.clkr.hw,
6589 .flags = CLK_SET_RATE_PARENT,
6590 .ops = &clk_branch2_ops,
6595 static struct clk_branch gcc_usb4_phy_rx1_clk = {
6596 .halt_reg = 0x2a0a0,
6597 .halt_check = BRANCH_HALT,
6599 .enable_reg = 0x2a0a0,
6600 .enable_mask = BIT(0),
6601 .hw.init = &(const struct clk_init_data) {
6602 .name = "gcc_usb4_phy_rx1_clk",
6603 .parent_hws = (const struct clk_hw*[]){
6604 &gcc_usb4_phy_rx1_clk_src.clkr.hw,
6607 .flags = CLK_SET_RATE_PARENT,
6608 .ops = &clk_branch2_ops,
6613 static struct clk_branch gcc_usb4_phy_usb_pipe_clk = {
6614 .halt_reg = 0x2a088,
6615 .halt_check = BRANCH_HALT_DELAY,
6616 .hwcg_reg = 0x2a088,
6619 .enable_reg = 0x2a088,
6620 .enable_mask = BIT(0),
6621 .hw.init = &(const struct clk_init_data) {
6622 .name = "gcc_usb4_phy_usb_pipe_clk",
6623 .parent_hws = (const struct clk_hw*[]){
6624 &gcc_usb34_prim_phy_pipe_clk_src.clkr.hw,
6627 .flags = CLK_SET_RATE_PARENT,
6628 .ops = &clk_branch2_ops,
6633 static struct clk_branch gcc_usb4_sb_if_clk = {
6634 .halt_reg = 0x2a034,
6635 .halt_check = BRANCH_HALT,
6637 .enable_reg = 0x2a034,
6638 .enable_mask = BIT(0),
6639 .hw.init = &(const struct clk_init_data) {
6640 .name = "gcc_usb4_sb_if_clk",
6641 .parent_hws = (const struct clk_hw*[]){
6642 &gcc_usb4_sb_if_clk_src.clkr.hw,
6645 .flags = CLK_SET_RATE_PARENT,
6646 .ops = &clk_branch2_ops,
6651 static struct clk_branch gcc_usb4_sys_clk = {
6652 .halt_reg = 0x2a040,
6653 .halt_check = BRANCH_HALT,
6655 .enable_reg = 0x2a040,
6656 .enable_mask = BIT(0),
6657 .hw.init = &(const struct clk_init_data) {
6658 .name = "gcc_usb4_sys_clk",
6659 .parent_hws = (const struct clk_hw*[]){
6660 &gcc_usb4_phy_sys_clk_src.clkr.hw,
6663 .flags = CLK_SET_RATE_PARENT,
6664 .ops = &clk_branch2_ops,
6669 static struct clk_branch gcc_usb4_tmu_clk = {
6670 .halt_reg = 0x2a06c,
6671 .halt_check = BRANCH_HALT_VOTED,
6672 .hwcg_reg = 0x2a06c,
6675 .enable_reg = 0x2a06c,
6676 .enable_mask = BIT(0),
6677 .hw.init = &(const struct clk_init_data) {
6678 .name = "gcc_usb4_tmu_clk",
6679 .parent_hws = (const struct clk_hw*[]){
6680 &gcc_usb4_tmu_clk_src.clkr.hw,
6683 .flags = CLK_SET_RATE_PARENT,
6684 .ops = &clk_branch2_ops,
6689 static struct clk_branch gcc_video_axi0_clk = {
6690 .halt_reg = 0x28010,
6691 .halt_check = BRANCH_HALT_SKIP,
6692 .hwcg_reg = 0x28010,
6695 .enable_reg = 0x28010,
6696 .enable_mask = BIT(0),
6697 .hw.init = &(const struct clk_init_data) {
6698 .name = "gcc_video_axi0_clk",
6699 .ops = &clk_branch2_ops,
6704 static struct clk_branch gcc_video_axi1_clk = {
6705 .halt_reg = 0x28018,
6706 .halt_check = BRANCH_HALT_SKIP,
6707 .hwcg_reg = 0x28018,
6710 .enable_reg = 0x28018,
6711 .enable_mask = BIT(0),
6712 .hw.init = &(const struct clk_init_data) {
6713 .name = "gcc_video_axi1_clk",
6714 .ops = &clk_branch2_ops,
6719 static struct clk_branch gcc_video_cvp_throttle_clk = {
6720 .halt_reg = 0x28024,
6721 .halt_check = BRANCH_HALT_SKIP,
6722 .hwcg_reg = 0x28024,
6725 .enable_reg = 0x28024,
6726 .enable_mask = BIT(0),
6727 .hw.init = &(const struct clk_init_data) {
6728 .name = "gcc_video_cvp_throttle_clk",
6729 .ops = &clk_branch2_ops,
6734 static struct clk_branch gcc_video_vcodec_throttle_clk = {
6735 .halt_reg = 0x28020,
6736 .halt_check = BRANCH_HALT_SKIP,
6737 .hwcg_reg = 0x28020,
6740 .enable_reg = 0x28020,
6741 .enable_mask = BIT(0),
6742 .hw.init = &(const struct clk_init_data) {
6743 .name = "gcc_video_vcodec_throttle_clk",
6744 .ops = &clk_branch2_ops,
6749 static struct gdsc pcie_0_tunnel_gdsc = {
6751 .collapse_ctrl = 0x52128,
6752 .collapse_mask = BIT(0),
6754 .name = "pcie_0_tunnel_gdsc",
6756 .pwrsts = PWRSTS_OFF_ON,
6760 static struct gdsc pcie_1_tunnel_gdsc = {
6762 .collapse_ctrl = 0x52128,
6763 .collapse_mask = BIT(1),
6765 .name = "pcie_1_tunnel_gdsc",
6767 .pwrsts = PWRSTS_OFF_ON,
6772 * The Qualcomm PCIe driver does not yet implement suspend so to keep the
6773 * PCIe power domains always-on for now.
6775 static struct gdsc pcie_2a_gdsc = {
6777 .collapse_ctrl = 0x52128,
6778 .collapse_mask = BIT(2),
6780 .name = "pcie_2a_gdsc",
6782 .pwrsts = PWRSTS_OFF_ON,
6783 .flags = VOTABLE | ALWAYS_ON,
6786 static struct gdsc pcie_2b_gdsc = {
6788 .collapse_ctrl = 0x52128,
6789 .collapse_mask = BIT(3),
6791 .name = "pcie_2b_gdsc",
6793 .pwrsts = PWRSTS_OFF_ON,
6794 .flags = VOTABLE | ALWAYS_ON,
6797 static struct gdsc pcie_3a_gdsc = {
6799 .collapse_ctrl = 0x52128,
6800 .collapse_mask = BIT(4),
6802 .name = "pcie_3a_gdsc",
6804 .pwrsts = PWRSTS_OFF_ON,
6805 .flags = VOTABLE | ALWAYS_ON,
6808 static struct gdsc pcie_3b_gdsc = {
6810 .collapse_ctrl = 0x52128,
6811 .collapse_mask = BIT(5),
6813 .name = "pcie_3b_gdsc",
6815 .pwrsts = PWRSTS_OFF_ON,
6816 .flags = VOTABLE | ALWAYS_ON,
6819 static struct gdsc pcie_4_gdsc = {
6821 .collapse_ctrl = 0x52128,
6822 .collapse_mask = BIT(6),
6824 .name = "pcie_4_gdsc",
6826 .pwrsts = PWRSTS_OFF_ON,
6827 .flags = VOTABLE | ALWAYS_ON,
6830 static struct gdsc ufs_card_gdsc = {
6833 .name = "ufs_card_gdsc",
6835 .pwrsts = PWRSTS_OFF_ON,
6838 static struct gdsc ufs_phy_gdsc = {
6841 .name = "ufs_phy_gdsc",
6843 .pwrsts = PWRSTS_OFF_ON,
6846 static struct gdsc usb30_mp_gdsc = {
6849 .name = "usb30_mp_gdsc",
6851 .pwrsts = PWRSTS_RET_ON,
6854 static struct gdsc usb30_prim_gdsc = {
6857 .name = "usb30_prim_gdsc",
6859 .pwrsts = PWRSTS_RET_ON,
6862 static struct gdsc usb30_sec_gdsc = {
6865 .name = "usb30_sec_gdsc",
6867 .pwrsts = PWRSTS_RET_ON,
6870 static struct clk_regmap *gcc_sc8280xp_clocks[] = {
6871 [GCC_AGGRE_NOC_PCIE0_TUNNEL_AXI_CLK] = &gcc_aggre_noc_pcie0_tunnel_axi_clk.clkr,
6872 [GCC_AGGRE_NOC_PCIE1_TUNNEL_AXI_CLK] = &gcc_aggre_noc_pcie1_tunnel_axi_clk.clkr,
6873 [GCC_AGGRE_NOC_PCIE_4_AXI_CLK] = &gcc_aggre_noc_pcie_4_axi_clk.clkr,
6874 [GCC_AGGRE_NOC_PCIE_SOUTH_SF_AXI_CLK] = &gcc_aggre_noc_pcie_south_sf_axi_clk.clkr,
6875 [GCC_AGGRE_UFS_CARD_AXI_CLK] = &gcc_aggre_ufs_card_axi_clk.clkr,
6876 [GCC_AGGRE_UFS_CARD_AXI_HW_CTL_CLK] = &gcc_aggre_ufs_card_axi_hw_ctl_clk.clkr,
6877 [GCC_AGGRE_UFS_PHY_AXI_CLK] = &gcc_aggre_ufs_phy_axi_clk.clkr,
6878 [GCC_AGGRE_UFS_PHY_AXI_HW_CTL_CLK] = &gcc_aggre_ufs_phy_axi_hw_ctl_clk.clkr,
6879 [GCC_AGGRE_USB3_MP_AXI_CLK] = &gcc_aggre_usb3_mp_axi_clk.clkr,
6880 [GCC_AGGRE_USB3_PRIM_AXI_CLK] = &gcc_aggre_usb3_prim_axi_clk.clkr,
6881 [GCC_AGGRE_USB3_SEC_AXI_CLK] = &gcc_aggre_usb3_sec_axi_clk.clkr,
6882 [GCC_AGGRE_USB4_1_AXI_CLK] = &gcc_aggre_usb4_1_axi_clk.clkr,
6883 [GCC_AGGRE_USB4_AXI_CLK] = &gcc_aggre_usb4_axi_clk.clkr,
6884 [GCC_AGGRE_USB_NOC_AXI_CLK] = &gcc_aggre_usb_noc_axi_clk.clkr,
6885 [GCC_AGGRE_USB_NOC_NORTH_AXI_CLK] = &gcc_aggre_usb_noc_north_axi_clk.clkr,
6886 [GCC_AGGRE_USB_NOC_SOUTH_AXI_CLK] = &gcc_aggre_usb_noc_south_axi_clk.clkr,
6887 [GCC_AHB2PHY0_CLK] = &gcc_ahb2phy0_clk.clkr,
6888 [GCC_AHB2PHY2_CLK] = &gcc_ahb2phy2_clk.clkr,
6889 [GCC_BOOT_ROM_AHB_CLK] = &gcc_boot_rom_ahb_clk.clkr,
6890 [GCC_CAMERA_HF_AXI_CLK] = &gcc_camera_hf_axi_clk.clkr,
6891 [GCC_CAMERA_SF_AXI_CLK] = &gcc_camera_sf_axi_clk.clkr,
6892 [GCC_CAMERA_THROTTLE_NRT_AXI_CLK] = &gcc_camera_throttle_nrt_axi_clk.clkr,
6893 [GCC_CAMERA_THROTTLE_RT_AXI_CLK] = &gcc_camera_throttle_rt_axi_clk.clkr,
6894 [GCC_CAMERA_THROTTLE_XO_CLK] = &gcc_camera_throttle_xo_clk.clkr,
6895 [GCC_CFG_NOC_USB3_MP_AXI_CLK] = &gcc_cfg_noc_usb3_mp_axi_clk.clkr,
6896 [GCC_CFG_NOC_USB3_PRIM_AXI_CLK] = &gcc_cfg_noc_usb3_prim_axi_clk.clkr,
6897 [GCC_CFG_NOC_USB3_SEC_AXI_CLK] = &gcc_cfg_noc_usb3_sec_axi_clk.clkr,
6898 [GCC_CNOC_PCIE0_TUNNEL_CLK] = &gcc_cnoc_pcie0_tunnel_clk.clkr,
6899 [GCC_CNOC_PCIE1_TUNNEL_CLK] = &gcc_cnoc_pcie1_tunnel_clk.clkr,
6900 [GCC_CNOC_PCIE4_QX_CLK] = &gcc_cnoc_pcie4_qx_clk.clkr,
6901 [GCC_DDRSS_GPU_AXI_CLK] = &gcc_ddrss_gpu_axi_clk.clkr,
6902 [GCC_DDRSS_PCIE_SF_TBU_CLK] = &gcc_ddrss_pcie_sf_tbu_clk.clkr,
6903 [GCC_DISP1_HF_AXI_CLK] = &gcc_disp1_hf_axi_clk.clkr,
6904 [GCC_DISP1_SF_AXI_CLK] = &gcc_disp1_sf_axi_clk.clkr,
6905 [GCC_DISP1_THROTTLE_NRT_AXI_CLK] = &gcc_disp1_throttle_nrt_axi_clk.clkr,
6906 [GCC_DISP1_THROTTLE_RT_AXI_CLK] = &gcc_disp1_throttle_rt_axi_clk.clkr,
6907 [GCC_DISP_HF_AXI_CLK] = &gcc_disp_hf_axi_clk.clkr,
6908 [GCC_DISP_SF_AXI_CLK] = &gcc_disp_sf_axi_clk.clkr,
6909 [GCC_DISP_THROTTLE_NRT_AXI_CLK] = &gcc_disp_throttle_nrt_axi_clk.clkr,
6910 [GCC_DISP_THROTTLE_RT_AXI_CLK] = &gcc_disp_throttle_rt_axi_clk.clkr,
6911 [GCC_EMAC0_AXI_CLK] = &gcc_emac0_axi_clk.clkr,
6912 [GCC_EMAC0_PTP_CLK] = &gcc_emac0_ptp_clk.clkr,
6913 [GCC_EMAC0_PTP_CLK_SRC] = &gcc_emac0_ptp_clk_src.clkr,
6914 [GCC_EMAC0_RGMII_CLK] = &gcc_emac0_rgmii_clk.clkr,
6915 [GCC_EMAC0_RGMII_CLK_SRC] = &gcc_emac0_rgmii_clk_src.clkr,
6916 [GCC_EMAC0_SLV_AHB_CLK] = &gcc_emac0_slv_ahb_clk.clkr,
6917 [GCC_EMAC1_AXI_CLK] = &gcc_emac1_axi_clk.clkr,
6918 [GCC_EMAC1_PTP_CLK] = &gcc_emac1_ptp_clk.clkr,
6919 [GCC_EMAC1_PTP_CLK_SRC] = &gcc_emac1_ptp_clk_src.clkr,
6920 [GCC_EMAC1_RGMII_CLK] = &gcc_emac1_rgmii_clk.clkr,
6921 [GCC_EMAC1_RGMII_CLK_SRC] = &gcc_emac1_rgmii_clk_src.clkr,
6922 [GCC_EMAC1_SLV_AHB_CLK] = &gcc_emac1_slv_ahb_clk.clkr,
6923 [GCC_GP1_CLK] = &gcc_gp1_clk.clkr,
6924 [GCC_GP1_CLK_SRC] = &gcc_gp1_clk_src.clkr,
6925 [GCC_GP2_CLK] = &gcc_gp2_clk.clkr,
6926 [GCC_GP2_CLK_SRC] = &gcc_gp2_clk_src.clkr,
6927 [GCC_GP3_CLK] = &gcc_gp3_clk.clkr,
6928 [GCC_GP3_CLK_SRC] = &gcc_gp3_clk_src.clkr,
6929 [GCC_GP4_CLK] = &gcc_gp4_clk.clkr,
6930 [GCC_GP4_CLK_SRC] = &gcc_gp4_clk_src.clkr,
6931 [GCC_GP5_CLK] = &gcc_gp5_clk.clkr,
6932 [GCC_GP5_CLK_SRC] = &gcc_gp5_clk_src.clkr,
6933 [GCC_GPLL0] = &gcc_gpll0.clkr,
6934 [GCC_GPLL0_OUT_EVEN] = &gcc_gpll0_out_even.clkr,
6935 [GCC_GPLL2] = &gcc_gpll2.clkr,
6936 [GCC_GPLL4] = &gcc_gpll4.clkr,
6937 [GCC_GPLL7] = &gcc_gpll7.clkr,
6938 [GCC_GPLL8] = &gcc_gpll8.clkr,
6939 [GCC_GPLL9] = &gcc_gpll9.clkr,
6940 [GCC_GPU_GPLL0_CLK_SRC] = &gcc_gpu_gpll0_clk_src.clkr,
6941 [GCC_GPU_GPLL0_DIV_CLK_SRC] = &gcc_gpu_gpll0_div_clk_src.clkr,
6942 [GCC_GPU_IREF_EN] = &gcc_gpu_iref_en.clkr,
6943 [GCC_GPU_MEMNOC_GFX_CLK] = &gcc_gpu_memnoc_gfx_clk.clkr,
6944 [GCC_GPU_SNOC_DVM_GFX_CLK] = &gcc_gpu_snoc_dvm_gfx_clk.clkr,
6945 [GCC_GPU_TCU_THROTTLE_AHB_CLK] = &gcc_gpu_tcu_throttle_ahb_clk.clkr,
6946 [GCC_GPU_TCU_THROTTLE_CLK] = &gcc_gpu_tcu_throttle_clk.clkr,
6947 [GCC_PCIE0_PHY_RCHNG_CLK] = &gcc_pcie0_phy_rchng_clk.clkr,
6948 [GCC_PCIE1_PHY_RCHNG_CLK] = &gcc_pcie1_phy_rchng_clk.clkr,
6949 [GCC_PCIE2A_PHY_RCHNG_CLK] = &gcc_pcie2a_phy_rchng_clk.clkr,
6950 [GCC_PCIE2B_PHY_RCHNG_CLK] = &gcc_pcie2b_phy_rchng_clk.clkr,
6951 [GCC_PCIE3A_PHY_RCHNG_CLK] = &gcc_pcie3a_phy_rchng_clk.clkr,
6952 [GCC_PCIE3B_PHY_RCHNG_CLK] = &gcc_pcie3b_phy_rchng_clk.clkr,
6953 [GCC_PCIE4_PHY_RCHNG_CLK] = &gcc_pcie4_phy_rchng_clk.clkr,
6954 [GCC_PCIE_0_AUX_CLK] = &gcc_pcie_0_aux_clk.clkr,
6955 [GCC_PCIE_0_AUX_CLK_SRC] = &gcc_pcie_0_aux_clk_src.clkr,
6956 [GCC_PCIE_0_CFG_AHB_CLK] = &gcc_pcie_0_cfg_ahb_clk.clkr,
6957 [GCC_PCIE_0_MSTR_AXI_CLK] = &gcc_pcie_0_mstr_axi_clk.clkr,
6958 [GCC_PCIE_0_PHY_RCHNG_CLK_SRC] = &gcc_pcie_0_phy_rchng_clk_src.clkr,
6959 [GCC_PCIE_0_PIPE_CLK] = &gcc_pcie_0_pipe_clk.clkr,
6960 [GCC_PCIE_0_SLV_AXI_CLK] = &gcc_pcie_0_slv_axi_clk.clkr,
6961 [GCC_PCIE_0_SLV_Q2A_AXI_CLK] = &gcc_pcie_0_slv_q2a_axi_clk.clkr,
6962 [GCC_PCIE_1_AUX_CLK] = &gcc_pcie_1_aux_clk.clkr,
6963 [GCC_PCIE_1_AUX_CLK_SRC] = &gcc_pcie_1_aux_clk_src.clkr,
6964 [GCC_PCIE_1_CFG_AHB_CLK] = &gcc_pcie_1_cfg_ahb_clk.clkr,
6965 [GCC_PCIE_1_MSTR_AXI_CLK] = &gcc_pcie_1_mstr_axi_clk.clkr,
6966 [GCC_PCIE_1_PHY_RCHNG_CLK_SRC] = &gcc_pcie_1_phy_rchng_clk_src.clkr,
6967 [GCC_PCIE_1_PIPE_CLK] = &gcc_pcie_1_pipe_clk.clkr,
6968 [GCC_PCIE_1_SLV_AXI_CLK] = &gcc_pcie_1_slv_axi_clk.clkr,
6969 [GCC_PCIE_1_SLV_Q2A_AXI_CLK] = &gcc_pcie_1_slv_q2a_axi_clk.clkr,
6970 [GCC_PCIE_2A2B_CLKREF_CLK] = &gcc_pcie_2a2b_clkref_clk.clkr,
6971 [GCC_PCIE_2A_AUX_CLK] = &gcc_pcie_2a_aux_clk.clkr,
6972 [GCC_PCIE_2A_AUX_CLK_SRC] = &gcc_pcie_2a_aux_clk_src.clkr,
6973 [GCC_PCIE_2A_CFG_AHB_CLK] = &gcc_pcie_2a_cfg_ahb_clk.clkr,
6974 [GCC_PCIE_2A_MSTR_AXI_CLK] = &gcc_pcie_2a_mstr_axi_clk.clkr,
6975 [GCC_PCIE_2A_PHY_RCHNG_CLK_SRC] = &gcc_pcie_2a_phy_rchng_clk_src.clkr,
6976 [GCC_PCIE_2A_PIPE_CLK] = &gcc_pcie_2a_pipe_clk.clkr,
6977 [GCC_PCIE_2A_PIPE_CLK_SRC] = &gcc_pcie_2a_pipe_clk_src.clkr,
6978 [GCC_PCIE_2A_PIPE_DIV_CLK_SRC] = &gcc_pcie_2a_pipe_div_clk_src.clkr,
6979 [GCC_PCIE_2A_PIPEDIV2_CLK] = &gcc_pcie_2a_pipediv2_clk.clkr,
6980 [GCC_PCIE_2A_SLV_AXI_CLK] = &gcc_pcie_2a_slv_axi_clk.clkr,
6981 [GCC_PCIE_2A_SLV_Q2A_AXI_CLK] = &gcc_pcie_2a_slv_q2a_axi_clk.clkr,
6982 [GCC_PCIE_2B_AUX_CLK] = &gcc_pcie_2b_aux_clk.clkr,
6983 [GCC_PCIE_2B_AUX_CLK_SRC] = &gcc_pcie_2b_aux_clk_src.clkr,
6984 [GCC_PCIE_2B_CFG_AHB_CLK] = &gcc_pcie_2b_cfg_ahb_clk.clkr,
6985 [GCC_PCIE_2B_MSTR_AXI_CLK] = &gcc_pcie_2b_mstr_axi_clk.clkr,
6986 [GCC_PCIE_2B_PHY_RCHNG_CLK_SRC] = &gcc_pcie_2b_phy_rchng_clk_src.clkr,
6987 [GCC_PCIE_2B_PIPE_CLK] = &gcc_pcie_2b_pipe_clk.clkr,
6988 [GCC_PCIE_2B_PIPE_CLK_SRC] = &gcc_pcie_2b_pipe_clk_src.clkr,
6989 [GCC_PCIE_2B_PIPE_DIV_CLK_SRC] = &gcc_pcie_2b_pipe_div_clk_src.clkr,
6990 [GCC_PCIE_2B_PIPEDIV2_CLK] = &gcc_pcie_2b_pipediv2_clk.clkr,
6991 [GCC_PCIE_2B_SLV_AXI_CLK] = &gcc_pcie_2b_slv_axi_clk.clkr,
6992 [GCC_PCIE_2B_SLV_Q2A_AXI_CLK] = &gcc_pcie_2b_slv_q2a_axi_clk.clkr,
6993 [GCC_PCIE_3A3B_CLKREF_CLK] = &gcc_pcie_3a3b_clkref_clk.clkr,
6994 [GCC_PCIE_3A_AUX_CLK] = &gcc_pcie_3a_aux_clk.clkr,
6995 [GCC_PCIE_3A_AUX_CLK_SRC] = &gcc_pcie_3a_aux_clk_src.clkr,
6996 [GCC_PCIE_3A_CFG_AHB_CLK] = &gcc_pcie_3a_cfg_ahb_clk.clkr,
6997 [GCC_PCIE_3A_MSTR_AXI_CLK] = &gcc_pcie_3a_mstr_axi_clk.clkr,
6998 [GCC_PCIE_3A_PHY_RCHNG_CLK_SRC] = &gcc_pcie_3a_phy_rchng_clk_src.clkr,
6999 [GCC_PCIE_3A_PIPE_CLK] = &gcc_pcie_3a_pipe_clk.clkr,
7000 [GCC_PCIE_3A_PIPE_CLK_SRC] = &gcc_pcie_3a_pipe_clk_src.clkr,
7001 [GCC_PCIE_3A_PIPE_DIV_CLK_SRC] = &gcc_pcie_3a_pipe_div_clk_src.clkr,
7002 [GCC_PCIE_3A_PIPEDIV2_CLK] = &gcc_pcie_3a_pipediv2_clk.clkr,
7003 [GCC_PCIE_3A_SLV_AXI_CLK] = &gcc_pcie_3a_slv_axi_clk.clkr,
7004 [GCC_PCIE_3A_SLV_Q2A_AXI_CLK] = &gcc_pcie_3a_slv_q2a_axi_clk.clkr,
7005 [GCC_PCIE_3B_AUX_CLK] = &gcc_pcie_3b_aux_clk.clkr,
7006 [GCC_PCIE_3B_AUX_CLK_SRC] = &gcc_pcie_3b_aux_clk_src.clkr,
7007 [GCC_PCIE_3B_CFG_AHB_CLK] = &gcc_pcie_3b_cfg_ahb_clk.clkr,
7008 [GCC_PCIE_3B_MSTR_AXI_CLK] = &gcc_pcie_3b_mstr_axi_clk.clkr,
7009 [GCC_PCIE_3B_PHY_RCHNG_CLK_SRC] = &gcc_pcie_3b_phy_rchng_clk_src.clkr,
7010 [GCC_PCIE_3B_PIPE_CLK] = &gcc_pcie_3b_pipe_clk.clkr,
7011 [GCC_PCIE_3B_PIPE_CLK_SRC] = &gcc_pcie_3b_pipe_clk_src.clkr,
7012 [GCC_PCIE_3B_PIPE_DIV_CLK_SRC] = &gcc_pcie_3b_pipe_div_clk_src.clkr,
7013 [GCC_PCIE_3B_PIPEDIV2_CLK] = &gcc_pcie_3b_pipediv2_clk.clkr,
7014 [GCC_PCIE_3B_SLV_AXI_CLK] = &gcc_pcie_3b_slv_axi_clk.clkr,
7015 [GCC_PCIE_3B_SLV_Q2A_AXI_CLK] = &gcc_pcie_3b_slv_q2a_axi_clk.clkr,
7016 [GCC_PCIE_4_AUX_CLK] = &gcc_pcie_4_aux_clk.clkr,
7017 [GCC_PCIE_4_AUX_CLK_SRC] = &gcc_pcie_4_aux_clk_src.clkr,
7018 [GCC_PCIE_4_CFG_AHB_CLK] = &gcc_pcie_4_cfg_ahb_clk.clkr,
7019 [GCC_PCIE_4_CLKREF_CLK] = &gcc_pcie_4_clkref_clk.clkr,
7020 [GCC_PCIE_4_MSTR_AXI_CLK] = &gcc_pcie_4_mstr_axi_clk.clkr,
7021 [GCC_PCIE_4_PHY_RCHNG_CLK_SRC] = &gcc_pcie_4_phy_rchng_clk_src.clkr,
7022 [GCC_PCIE_4_PIPE_CLK] = &gcc_pcie_4_pipe_clk.clkr,
7023 [GCC_PCIE_4_PIPE_CLK_SRC] = &gcc_pcie_4_pipe_clk_src.clkr,
7024 [GCC_PCIE_4_PIPE_DIV_CLK_SRC] = &gcc_pcie_4_pipe_div_clk_src.clkr,
7025 [GCC_PCIE_4_PIPEDIV2_CLK] = &gcc_pcie_4_pipediv2_clk.clkr,
7026 [GCC_PCIE_4_SLV_AXI_CLK] = &gcc_pcie_4_slv_axi_clk.clkr,
7027 [GCC_PCIE_4_SLV_Q2A_AXI_CLK] = &gcc_pcie_4_slv_q2a_axi_clk.clkr,
7028 [GCC_PCIE_RSCC_AHB_CLK] = &gcc_pcie_rscc_ahb_clk.clkr,
7029 [GCC_PCIE_RSCC_XO_CLK] = &gcc_pcie_rscc_xo_clk.clkr,
7030 [GCC_PCIE_RSCC_XO_CLK_SRC] = &gcc_pcie_rscc_xo_clk_src.clkr,
7031 [GCC_PCIE_THROTTLE_CFG_CLK] = &gcc_pcie_throttle_cfg_clk.clkr,
7032 [GCC_PDM2_CLK] = &gcc_pdm2_clk.clkr,
7033 [GCC_PDM2_CLK_SRC] = &gcc_pdm2_clk_src.clkr,
7034 [GCC_PDM_AHB_CLK] = &gcc_pdm_ahb_clk.clkr,
7035 [GCC_PDM_XO4_CLK] = &gcc_pdm_xo4_clk.clkr,
7036 [GCC_QMIP_CAMERA_NRT_AHB_CLK] = &gcc_qmip_camera_nrt_ahb_clk.clkr,
7037 [GCC_QMIP_CAMERA_RT_AHB_CLK] = &gcc_qmip_camera_rt_ahb_clk.clkr,
7038 [GCC_QMIP_DISP1_AHB_CLK] = &gcc_qmip_disp1_ahb_clk.clkr,
7039 [GCC_QMIP_DISP1_ROT_AHB_CLK] = &gcc_qmip_disp1_rot_ahb_clk.clkr,
7040 [GCC_QMIP_DISP_AHB_CLK] = &gcc_qmip_disp_ahb_clk.clkr,
7041 [GCC_QMIP_DISP_ROT_AHB_CLK] = &gcc_qmip_disp_rot_ahb_clk.clkr,
7042 [GCC_QMIP_VIDEO_CVP_AHB_CLK] = &gcc_qmip_video_cvp_ahb_clk.clkr,
7043 [GCC_QMIP_VIDEO_VCODEC_AHB_CLK] = &gcc_qmip_video_vcodec_ahb_clk.clkr,
7044 [GCC_QUPV3_WRAP0_CORE_2X_CLK] = &gcc_qupv3_wrap0_core_2x_clk.clkr,
7045 [GCC_QUPV3_WRAP0_CORE_CLK] = &gcc_qupv3_wrap0_core_clk.clkr,
7046 [GCC_QUPV3_WRAP0_QSPI0_CLK] = &gcc_qupv3_wrap0_qspi0_clk.clkr,
7047 [GCC_QUPV3_WRAP0_S0_CLK] = &gcc_qupv3_wrap0_s0_clk.clkr,
7048 [GCC_QUPV3_WRAP0_S0_CLK_SRC] = &gcc_qupv3_wrap0_s0_clk_src.clkr,
7049 [GCC_QUPV3_WRAP0_S1_CLK] = &gcc_qupv3_wrap0_s1_clk.clkr,
7050 [GCC_QUPV3_WRAP0_S1_CLK_SRC] = &gcc_qupv3_wrap0_s1_clk_src.clkr,
7051 [GCC_QUPV3_WRAP0_S2_CLK] = &gcc_qupv3_wrap0_s2_clk.clkr,
7052 [GCC_QUPV3_WRAP0_S2_CLK_SRC] = &gcc_qupv3_wrap0_s2_clk_src.clkr,
7053 [GCC_QUPV3_WRAP0_S3_CLK] = &gcc_qupv3_wrap0_s3_clk.clkr,
7054 [GCC_QUPV3_WRAP0_S3_CLK_SRC] = &gcc_qupv3_wrap0_s3_clk_src.clkr,
7055 [GCC_QUPV3_WRAP0_S4_CLK] = &gcc_qupv3_wrap0_s4_clk.clkr,
7056 [GCC_QUPV3_WRAP0_S4_CLK_SRC] = &gcc_qupv3_wrap0_s4_clk_src.clkr,
7057 [GCC_QUPV3_WRAP0_S4_DIV_CLK_SRC] = &gcc_qupv3_wrap0_s4_div_clk_src.clkr,
7058 [GCC_QUPV3_WRAP0_S5_CLK] = &gcc_qupv3_wrap0_s5_clk.clkr,
7059 [GCC_QUPV3_WRAP0_S5_CLK_SRC] = &gcc_qupv3_wrap0_s5_clk_src.clkr,
7060 [GCC_QUPV3_WRAP0_S6_CLK] = &gcc_qupv3_wrap0_s6_clk.clkr,
7061 [GCC_QUPV3_WRAP0_S6_CLK_SRC] = &gcc_qupv3_wrap0_s6_clk_src.clkr,
7062 [GCC_QUPV3_WRAP0_S7_CLK] = &gcc_qupv3_wrap0_s7_clk.clkr,
7063 [GCC_QUPV3_WRAP0_S7_CLK_SRC] = &gcc_qupv3_wrap0_s7_clk_src.clkr,
7064 [GCC_QUPV3_WRAP1_CORE_2X_CLK] = &gcc_qupv3_wrap1_core_2x_clk.clkr,
7065 [GCC_QUPV3_WRAP1_CORE_CLK] = &gcc_qupv3_wrap1_core_clk.clkr,
7066 [GCC_QUPV3_WRAP1_QSPI0_CLK] = &gcc_qupv3_wrap1_qspi0_clk.clkr,
7067 [GCC_QUPV3_WRAP1_S0_CLK] = &gcc_qupv3_wrap1_s0_clk.clkr,
7068 [GCC_QUPV3_WRAP1_S0_CLK_SRC] = &gcc_qupv3_wrap1_s0_clk_src.clkr,
7069 [GCC_QUPV3_WRAP1_S1_CLK] = &gcc_qupv3_wrap1_s1_clk.clkr,
7070 [GCC_QUPV3_WRAP1_S1_CLK_SRC] = &gcc_qupv3_wrap1_s1_clk_src.clkr,
7071 [GCC_QUPV3_WRAP1_S2_CLK] = &gcc_qupv3_wrap1_s2_clk.clkr,
7072 [GCC_QUPV3_WRAP1_S2_CLK_SRC] = &gcc_qupv3_wrap1_s2_clk_src.clkr,
7073 [GCC_QUPV3_WRAP1_S3_CLK] = &gcc_qupv3_wrap1_s3_clk.clkr,
7074 [GCC_QUPV3_WRAP1_S3_CLK_SRC] = &gcc_qupv3_wrap1_s3_clk_src.clkr,
7075 [GCC_QUPV3_WRAP1_S4_CLK] = &gcc_qupv3_wrap1_s4_clk.clkr,
7076 [GCC_QUPV3_WRAP1_S4_CLK_SRC] = &gcc_qupv3_wrap1_s4_clk_src.clkr,
7077 [GCC_QUPV3_WRAP1_S4_DIV_CLK_SRC] = &gcc_qupv3_wrap1_s4_div_clk_src.clkr,
7078 [GCC_QUPV3_WRAP1_S5_CLK] = &gcc_qupv3_wrap1_s5_clk.clkr,
7079 [GCC_QUPV3_WRAP1_S5_CLK_SRC] = &gcc_qupv3_wrap1_s5_clk_src.clkr,
7080 [GCC_QUPV3_WRAP1_S6_CLK] = &gcc_qupv3_wrap1_s6_clk.clkr,
7081 [GCC_QUPV3_WRAP1_S6_CLK_SRC] = &gcc_qupv3_wrap1_s6_clk_src.clkr,
7082 [GCC_QUPV3_WRAP1_S7_CLK] = &gcc_qupv3_wrap1_s7_clk.clkr,
7083 [GCC_QUPV3_WRAP1_S7_CLK_SRC] = &gcc_qupv3_wrap1_s7_clk_src.clkr,
7084 [GCC_QUPV3_WRAP2_CORE_2X_CLK] = &gcc_qupv3_wrap2_core_2x_clk.clkr,
7085 [GCC_QUPV3_WRAP2_CORE_CLK] = &gcc_qupv3_wrap2_core_clk.clkr,
7086 [GCC_QUPV3_WRAP2_QSPI0_CLK] = &gcc_qupv3_wrap2_qspi0_clk.clkr,
7087 [GCC_QUPV3_WRAP2_S0_CLK] = &gcc_qupv3_wrap2_s0_clk.clkr,
7088 [GCC_QUPV3_WRAP2_S0_CLK_SRC] = &gcc_qupv3_wrap2_s0_clk_src.clkr,
7089 [GCC_QUPV3_WRAP2_S1_CLK] = &gcc_qupv3_wrap2_s1_clk.clkr,
7090 [GCC_QUPV3_WRAP2_S1_CLK_SRC] = &gcc_qupv3_wrap2_s1_clk_src.clkr,
7091 [GCC_QUPV3_WRAP2_S2_CLK] = &gcc_qupv3_wrap2_s2_clk.clkr,
7092 [GCC_QUPV3_WRAP2_S2_CLK_SRC] = &gcc_qupv3_wrap2_s2_clk_src.clkr,
7093 [GCC_QUPV3_WRAP2_S3_CLK] = &gcc_qupv3_wrap2_s3_clk.clkr,
7094 [GCC_QUPV3_WRAP2_S3_CLK_SRC] = &gcc_qupv3_wrap2_s3_clk_src.clkr,
7095 [GCC_QUPV3_WRAP2_S4_CLK] = &gcc_qupv3_wrap2_s4_clk.clkr,
7096 [GCC_QUPV3_WRAP2_S4_CLK_SRC] = &gcc_qupv3_wrap2_s4_clk_src.clkr,
7097 [GCC_QUPV3_WRAP2_S4_DIV_CLK_SRC] = &gcc_qupv3_wrap2_s4_div_clk_src.clkr,
7098 [GCC_QUPV3_WRAP2_S5_CLK] = &gcc_qupv3_wrap2_s5_clk.clkr,
7099 [GCC_QUPV3_WRAP2_S5_CLK_SRC] = &gcc_qupv3_wrap2_s5_clk_src.clkr,
7100 [GCC_QUPV3_WRAP2_S6_CLK] = &gcc_qupv3_wrap2_s6_clk.clkr,
7101 [GCC_QUPV3_WRAP2_S6_CLK_SRC] = &gcc_qupv3_wrap2_s6_clk_src.clkr,
7102 [GCC_QUPV3_WRAP2_S7_CLK] = &gcc_qupv3_wrap2_s7_clk.clkr,
7103 [GCC_QUPV3_WRAP2_S7_CLK_SRC] = &gcc_qupv3_wrap2_s7_clk_src.clkr,
7104 [GCC_QUPV3_WRAP_0_M_AHB_CLK] = &gcc_qupv3_wrap_0_m_ahb_clk.clkr,
7105 [GCC_QUPV3_WRAP_0_S_AHB_CLK] = &gcc_qupv3_wrap_0_s_ahb_clk.clkr,
7106 [GCC_QUPV3_WRAP_1_M_AHB_CLK] = &gcc_qupv3_wrap_1_m_ahb_clk.clkr,
7107 [GCC_QUPV3_WRAP_1_S_AHB_CLK] = &gcc_qupv3_wrap_1_s_ahb_clk.clkr,
7108 [GCC_QUPV3_WRAP_2_M_AHB_CLK] = &gcc_qupv3_wrap_2_m_ahb_clk.clkr,
7109 [GCC_QUPV3_WRAP_2_S_AHB_CLK] = &gcc_qupv3_wrap_2_s_ahb_clk.clkr,
7110 [GCC_SDCC2_AHB_CLK] = &gcc_sdcc2_ahb_clk.clkr,
7111 [GCC_SDCC2_APPS_CLK] = &gcc_sdcc2_apps_clk.clkr,
7112 [GCC_SDCC2_APPS_CLK_SRC] = &gcc_sdcc2_apps_clk_src.clkr,
7113 [GCC_SDCC4_AHB_CLK] = &gcc_sdcc4_ahb_clk.clkr,
7114 [GCC_SDCC4_APPS_CLK] = &gcc_sdcc4_apps_clk.clkr,
7115 [GCC_SDCC4_APPS_CLK_SRC] = &gcc_sdcc4_apps_clk_src.clkr,
7116 [GCC_SYS_NOC_USB_AXI_CLK] = &gcc_sys_noc_usb_axi_clk.clkr,
7117 [GCC_UFS_1_CARD_CLKREF_CLK] = &gcc_ufs_1_card_clkref_clk.clkr,
7118 [GCC_UFS_CARD_AHB_CLK] = &gcc_ufs_card_ahb_clk.clkr,
7119 [GCC_UFS_CARD_AXI_CLK] = &gcc_ufs_card_axi_clk.clkr,
7120 [GCC_UFS_CARD_AXI_CLK_SRC] = &gcc_ufs_card_axi_clk_src.clkr,
7121 [GCC_UFS_CARD_AXI_HW_CTL_CLK] = &gcc_ufs_card_axi_hw_ctl_clk.clkr,
7122 [GCC_UFS_CARD_CLKREF_CLK] = &gcc_ufs_card_clkref_clk.clkr,
7123 [GCC_UFS_CARD_ICE_CORE_CLK] = &gcc_ufs_card_ice_core_clk.clkr,
7124 [GCC_UFS_CARD_ICE_CORE_CLK_SRC] = &gcc_ufs_card_ice_core_clk_src.clkr,
7125 [GCC_UFS_CARD_ICE_CORE_HW_CTL_CLK] = &gcc_ufs_card_ice_core_hw_ctl_clk.clkr,
7126 [GCC_UFS_CARD_PHY_AUX_CLK] = &gcc_ufs_card_phy_aux_clk.clkr,
7127 [GCC_UFS_CARD_PHY_AUX_CLK_SRC] = &gcc_ufs_card_phy_aux_clk_src.clkr,
7128 [GCC_UFS_CARD_PHY_AUX_HW_CTL_CLK] = &gcc_ufs_card_phy_aux_hw_ctl_clk.clkr,
7129 [GCC_UFS_CARD_RX_SYMBOL_0_CLK] = &gcc_ufs_card_rx_symbol_0_clk.clkr,
7130 [GCC_UFS_CARD_RX_SYMBOL_0_CLK_SRC] = &gcc_ufs_card_rx_symbol_0_clk_src.clkr,
7131 [GCC_UFS_CARD_RX_SYMBOL_1_CLK] = &gcc_ufs_card_rx_symbol_1_clk.clkr,
7132 [GCC_UFS_CARD_RX_SYMBOL_1_CLK_SRC] = &gcc_ufs_card_rx_symbol_1_clk_src.clkr,
7133 [GCC_UFS_CARD_TX_SYMBOL_0_CLK] = &gcc_ufs_card_tx_symbol_0_clk.clkr,
7134 [GCC_UFS_CARD_TX_SYMBOL_0_CLK_SRC] = &gcc_ufs_card_tx_symbol_0_clk_src.clkr,
7135 [GCC_UFS_CARD_UNIPRO_CORE_CLK] = &gcc_ufs_card_unipro_core_clk.clkr,
7136 [GCC_UFS_CARD_UNIPRO_CORE_CLK_SRC] = &gcc_ufs_card_unipro_core_clk_src.clkr,
7137 [GCC_UFS_CARD_UNIPRO_CORE_HW_CTL_CLK] = &gcc_ufs_card_unipro_core_hw_ctl_clk.clkr,
7138 [GCC_UFS_PHY_AHB_CLK] = &gcc_ufs_phy_ahb_clk.clkr,
7139 [GCC_UFS_PHY_AXI_CLK] = &gcc_ufs_phy_axi_clk.clkr,
7140 [GCC_UFS_PHY_AXI_CLK_SRC] = &gcc_ufs_phy_axi_clk_src.clkr,
7141 [GCC_UFS_PHY_AXI_HW_CTL_CLK] = &gcc_ufs_phy_axi_hw_ctl_clk.clkr,
7142 [GCC_UFS_PHY_ICE_CORE_CLK] = &gcc_ufs_phy_ice_core_clk.clkr,
7143 [GCC_UFS_PHY_ICE_CORE_CLK_SRC] = &gcc_ufs_phy_ice_core_clk_src.clkr,
7144 [GCC_UFS_PHY_ICE_CORE_HW_CTL_CLK] = &gcc_ufs_phy_ice_core_hw_ctl_clk.clkr,
7145 [GCC_UFS_PHY_PHY_AUX_CLK] = &gcc_ufs_phy_phy_aux_clk.clkr,
7146 [GCC_UFS_PHY_PHY_AUX_CLK_SRC] = &gcc_ufs_phy_phy_aux_clk_src.clkr,
7147 [GCC_UFS_PHY_PHY_AUX_HW_CTL_CLK] = &gcc_ufs_phy_phy_aux_hw_ctl_clk.clkr,
7148 [GCC_UFS_PHY_RX_SYMBOL_0_CLK] = &gcc_ufs_phy_rx_symbol_0_clk.clkr,
7149 [GCC_UFS_PHY_RX_SYMBOL_0_CLK_SRC] = &gcc_ufs_phy_rx_symbol_0_clk_src.clkr,
7150 [GCC_UFS_PHY_RX_SYMBOL_1_CLK] = &gcc_ufs_phy_rx_symbol_1_clk.clkr,
7151 [GCC_UFS_PHY_RX_SYMBOL_1_CLK_SRC] = &gcc_ufs_phy_rx_symbol_1_clk_src.clkr,
7152 [GCC_UFS_PHY_TX_SYMBOL_0_CLK] = &gcc_ufs_phy_tx_symbol_0_clk.clkr,
7153 [GCC_UFS_PHY_TX_SYMBOL_0_CLK_SRC] = &gcc_ufs_phy_tx_symbol_0_clk_src.clkr,
7154 [GCC_UFS_PHY_UNIPRO_CORE_CLK] = &gcc_ufs_phy_unipro_core_clk.clkr,
7155 [GCC_UFS_PHY_UNIPRO_CORE_CLK_SRC] = &gcc_ufs_phy_unipro_core_clk_src.clkr,
7156 [GCC_UFS_PHY_UNIPRO_CORE_HW_CTL_CLK] = &gcc_ufs_phy_unipro_core_hw_ctl_clk.clkr,
7157 [GCC_UFS_REF_CLKREF_CLK] = &gcc_ufs_ref_clkref_clk.clkr,
7158 [GCC_USB2_HS0_CLKREF_CLK] = &gcc_usb2_hs0_clkref_clk.clkr,
7159 [GCC_USB2_HS1_CLKREF_CLK] = &gcc_usb2_hs1_clkref_clk.clkr,
7160 [GCC_USB2_HS2_CLKREF_CLK] = &gcc_usb2_hs2_clkref_clk.clkr,
7161 [GCC_USB2_HS3_CLKREF_CLK] = &gcc_usb2_hs3_clkref_clk.clkr,
7162 [GCC_USB30_MP_MASTER_CLK] = &gcc_usb30_mp_master_clk.clkr,
7163 [GCC_USB30_MP_MASTER_CLK_SRC] = &gcc_usb30_mp_master_clk_src.clkr,
7164 [GCC_USB30_MP_MOCK_UTMI_CLK] = &gcc_usb30_mp_mock_utmi_clk.clkr,
7165 [GCC_USB30_MP_MOCK_UTMI_CLK_SRC] = &gcc_usb30_mp_mock_utmi_clk_src.clkr,
7166 [GCC_USB30_MP_MOCK_UTMI_POSTDIV_CLK_SRC] = &gcc_usb30_mp_mock_utmi_postdiv_clk_src.clkr,
7167 [GCC_USB30_MP_SLEEP_CLK] = &gcc_usb30_mp_sleep_clk.clkr,
7168 [GCC_USB30_PRIM_MASTER_CLK] = &gcc_usb30_prim_master_clk.clkr,
7169 [GCC_USB30_PRIM_MASTER_CLK_SRC] = &gcc_usb30_prim_master_clk_src.clkr,
7170 [GCC_USB30_PRIM_MOCK_UTMI_CLK] = &gcc_usb30_prim_mock_utmi_clk.clkr,
7171 [GCC_USB30_PRIM_MOCK_UTMI_CLK_SRC] = &gcc_usb30_prim_mock_utmi_clk_src.clkr,
7172 [GCC_USB30_PRIM_MOCK_UTMI_POSTDIV_CLK_SRC] = &gcc_usb30_prim_mock_utmi_postdiv_clk_src.clkr,
7173 [GCC_USB30_PRIM_SLEEP_CLK] = &gcc_usb30_prim_sleep_clk.clkr,
7174 [GCC_USB30_SEC_MASTER_CLK] = &gcc_usb30_sec_master_clk.clkr,
7175 [GCC_USB30_SEC_MASTER_CLK_SRC] = &gcc_usb30_sec_master_clk_src.clkr,
7176 [GCC_USB30_SEC_MOCK_UTMI_CLK] = &gcc_usb30_sec_mock_utmi_clk.clkr,
7177 [GCC_USB30_SEC_MOCK_UTMI_CLK_SRC] = &gcc_usb30_sec_mock_utmi_clk_src.clkr,
7178 [GCC_USB30_SEC_MOCK_UTMI_POSTDIV_CLK_SRC] = &gcc_usb30_sec_mock_utmi_postdiv_clk_src.clkr,
7179 [GCC_USB30_SEC_SLEEP_CLK] = &gcc_usb30_sec_sleep_clk.clkr,
7180 [GCC_USB34_PRIM_PHY_PIPE_CLK_SRC] = &gcc_usb34_prim_phy_pipe_clk_src.clkr,
7181 [GCC_USB34_SEC_PHY_PIPE_CLK_SRC] = &gcc_usb34_sec_phy_pipe_clk_src.clkr,
7182 [GCC_USB3_MP0_CLKREF_CLK] = &gcc_usb3_mp0_clkref_clk.clkr,
7183 [GCC_USB3_MP1_CLKREF_CLK] = &gcc_usb3_mp1_clkref_clk.clkr,
7184 [GCC_USB3_MP_PHY_AUX_CLK] = &gcc_usb3_mp_phy_aux_clk.clkr,
7185 [GCC_USB3_MP_PHY_AUX_CLK_SRC] = &gcc_usb3_mp_phy_aux_clk_src.clkr,
7186 [GCC_USB3_MP_PHY_COM_AUX_CLK] = &gcc_usb3_mp_phy_com_aux_clk.clkr,
7187 [GCC_USB3_MP_PHY_PIPE_0_CLK] = &gcc_usb3_mp_phy_pipe_0_clk.clkr,
7188 [GCC_USB3_MP_PHY_PIPE_0_CLK_SRC] = &gcc_usb3_mp_phy_pipe_0_clk_src.clkr,
7189 [GCC_USB3_MP_PHY_PIPE_1_CLK] = &gcc_usb3_mp_phy_pipe_1_clk.clkr,
7190 [GCC_USB3_MP_PHY_PIPE_1_CLK_SRC] = &gcc_usb3_mp_phy_pipe_1_clk_src.clkr,
7191 [GCC_USB3_PRIM_PHY_AUX_CLK] = &gcc_usb3_prim_phy_aux_clk.clkr,
7192 [GCC_USB3_PRIM_PHY_AUX_CLK_SRC] = &gcc_usb3_prim_phy_aux_clk_src.clkr,
7193 [GCC_USB3_PRIM_PHY_COM_AUX_CLK] = &gcc_usb3_prim_phy_com_aux_clk.clkr,
7194 [GCC_USB3_PRIM_PHY_PIPE_CLK] = &gcc_usb3_prim_phy_pipe_clk.clkr,
7195 [GCC_USB3_PRIM_PHY_PIPE_CLK_SRC] = &gcc_usb3_prim_phy_pipe_clk_src.clkr,
7196 [GCC_USB3_SEC_PHY_AUX_CLK] = &gcc_usb3_sec_phy_aux_clk.clkr,
7197 [GCC_USB3_SEC_PHY_AUX_CLK_SRC] = &gcc_usb3_sec_phy_aux_clk_src.clkr,
7198 [GCC_USB3_SEC_PHY_COM_AUX_CLK] = &gcc_usb3_sec_phy_com_aux_clk.clkr,
7199 [GCC_USB3_SEC_PHY_PIPE_CLK] = &gcc_usb3_sec_phy_pipe_clk.clkr,
7200 [GCC_USB3_SEC_PHY_PIPE_CLK_SRC] = &gcc_usb3_sec_phy_pipe_clk_src.clkr,
7201 [GCC_USB4_1_CFG_AHB_CLK] = &gcc_usb4_1_cfg_ahb_clk.clkr,
7202 [GCC_USB4_1_DP_CLK] = &gcc_usb4_1_dp_clk.clkr,
7203 [GCC_USB4_1_MASTER_CLK] = &gcc_usb4_1_master_clk.clkr,
7204 [GCC_USB4_1_MASTER_CLK_SRC] = &gcc_usb4_1_master_clk_src.clkr,
7205 [GCC_USB4_1_PHY_DP_CLK_SRC] = &gcc_usb4_1_phy_dp_clk_src.clkr,
7206 [GCC_USB4_1_PHY_P2RR2P_PIPE_CLK] = &gcc_usb4_1_phy_p2rr2p_pipe_clk.clkr,
7207 [GCC_USB4_1_PHY_P2RR2P_PIPE_CLK_SRC] = &gcc_usb4_1_phy_p2rr2p_pipe_clk_src.clkr,
7208 [GCC_USB4_1_PHY_PCIE_PIPE_CLK] = &gcc_usb4_1_phy_pcie_pipe_clk.clkr,
7209 [GCC_USB4_1_PHY_PCIE_PIPE_CLK_SRC] = &gcc_usb4_1_phy_pcie_pipe_clk_src.clkr,
7210 [GCC_USB4_1_PHY_PCIE_PIPE_MUX_CLK_SRC] = &gcc_usb4_1_phy_pcie_pipe_mux_clk_src.clkr,
7211 [GCC_USB4_1_PHY_PCIE_PIPEGMUX_CLK_SRC] = &gcc_usb4_1_phy_pcie_pipegmux_clk_src.clkr,
7212 [GCC_USB4_1_PHY_RX0_CLK] = &gcc_usb4_1_phy_rx0_clk.clkr,
7213 [GCC_USB4_1_PHY_RX0_CLK_SRC] = &gcc_usb4_1_phy_rx0_clk_src.clkr,
7214 [GCC_USB4_1_PHY_RX1_CLK] = &gcc_usb4_1_phy_rx1_clk.clkr,
7215 [GCC_USB4_1_PHY_RX1_CLK_SRC] = &gcc_usb4_1_phy_rx1_clk_src.clkr,
7216 [GCC_USB4_1_PHY_SYS_CLK_SRC] = &gcc_usb4_1_phy_sys_clk_src.clkr,
7217 [GCC_USB4_1_PHY_USB_PIPE_CLK] = &gcc_usb4_1_phy_usb_pipe_clk.clkr,
7218 [GCC_USB4_1_SB_IF_CLK] = &gcc_usb4_1_sb_if_clk.clkr,
7219 [GCC_USB4_1_SB_IF_CLK_SRC] = &gcc_usb4_1_sb_if_clk_src.clkr,
7220 [GCC_USB4_1_SYS_CLK] = &gcc_usb4_1_sys_clk.clkr,
7221 [GCC_USB4_1_TMU_CLK] = &gcc_usb4_1_tmu_clk.clkr,
7222 [GCC_USB4_1_TMU_CLK_SRC] = &gcc_usb4_1_tmu_clk_src.clkr,
7223 [GCC_USB4_CFG_AHB_CLK] = &gcc_usb4_cfg_ahb_clk.clkr,
7224 [GCC_USB4_CLKREF_CLK] = &gcc_usb4_clkref_clk.clkr,
7225 [GCC_USB4_DP_CLK] = &gcc_usb4_dp_clk.clkr,
7226 [GCC_USB4_EUD_CLKREF_CLK] = &gcc_usb4_eud_clkref_clk.clkr,
7227 [GCC_USB4_MASTER_CLK] = &gcc_usb4_master_clk.clkr,
7228 [GCC_USB4_MASTER_CLK_SRC] = &gcc_usb4_master_clk_src.clkr,
7229 [GCC_USB4_PHY_DP_CLK_SRC] = &gcc_usb4_phy_dp_clk_src.clkr,
7230 [GCC_USB4_PHY_P2RR2P_PIPE_CLK] = &gcc_usb4_phy_p2rr2p_pipe_clk.clkr,
7231 [GCC_USB4_PHY_P2RR2P_PIPE_CLK_SRC] = &gcc_usb4_phy_p2rr2p_pipe_clk_src.clkr,
7232 [GCC_USB4_PHY_PCIE_PIPE_CLK] = &gcc_usb4_phy_pcie_pipe_clk.clkr,
7233 [GCC_USB4_PHY_PCIE_PIPE_CLK_SRC] = &gcc_usb4_phy_pcie_pipe_clk_src.clkr,
7234 [GCC_USB4_PHY_PCIE_PIPE_MUX_CLK_SRC] = &gcc_usb4_phy_pcie_pipe_mux_clk_src.clkr,
7235 [GCC_USB4_PHY_PCIE_PIPEGMUX_CLK_SRC] = &gcc_usb4_phy_pcie_pipegmux_clk_src.clkr,
7236 [GCC_USB4_PHY_RX0_CLK] = &gcc_usb4_phy_rx0_clk.clkr,
7237 [GCC_USB4_PHY_RX0_CLK_SRC] = &gcc_usb4_phy_rx0_clk_src.clkr,
7238 [GCC_USB4_PHY_RX1_CLK] = &gcc_usb4_phy_rx1_clk.clkr,
7239 [GCC_USB4_PHY_RX1_CLK_SRC] = &gcc_usb4_phy_rx1_clk_src.clkr,
7240 [GCC_USB4_PHY_SYS_CLK_SRC] = &gcc_usb4_phy_sys_clk_src.clkr,
7241 [GCC_USB4_PHY_USB_PIPE_CLK] = &gcc_usb4_phy_usb_pipe_clk.clkr,
7242 [GCC_USB4_SB_IF_CLK] = &gcc_usb4_sb_if_clk.clkr,
7243 [GCC_USB4_SB_IF_CLK_SRC] = &gcc_usb4_sb_if_clk_src.clkr,
7244 [GCC_USB4_SYS_CLK] = &gcc_usb4_sys_clk.clkr,
7245 [GCC_USB4_TMU_CLK] = &gcc_usb4_tmu_clk.clkr,
7246 [GCC_USB4_TMU_CLK_SRC] = &gcc_usb4_tmu_clk_src.clkr,
7247 [GCC_VIDEO_AXI0_CLK] = &gcc_video_axi0_clk.clkr,
7248 [GCC_VIDEO_AXI1_CLK] = &gcc_video_axi1_clk.clkr,
7249 [GCC_VIDEO_CVP_THROTTLE_CLK] = &gcc_video_cvp_throttle_clk.clkr,
7250 [GCC_VIDEO_VCODEC_THROTTLE_CLK] = &gcc_video_vcodec_throttle_clk.clkr,
7253 static const struct qcom_reset_map gcc_sc8280xp_resets[] = {
7254 [GCC_EMAC0_BCR] = { 0xaa000 },
7255 [GCC_EMAC1_BCR] = { 0xba000 },
7256 [GCC_PCIE_0_LINK_DOWN_BCR] = { 0x6c014 },
7257 [GCC_PCIE_0_NOCSR_COM_PHY_BCR] = { 0x6c020 },
7258 [GCC_PCIE_0_PHY_BCR] = { 0x6c01c },
7259 [GCC_PCIE_0_PHY_NOCSR_COM_PHY_BCR] = { 0x6c028 },
7260 [GCC_PCIE_0_TUNNEL_BCR] = { 0xa4000 },
7261 [GCC_PCIE_1_LINK_DOWN_BCR] = { 0x8e014 },
7262 [GCC_PCIE_1_NOCSR_COM_PHY_BCR] = { 0x8e020 },
7263 [GCC_PCIE_1_PHY_BCR] = { 0x8e01c },
7264 [GCC_PCIE_1_PHY_NOCSR_COM_PHY_BCR] = { 0x8e000 },
7265 [GCC_PCIE_1_TUNNEL_BCR] = { 0x8d000 },
7266 [GCC_PCIE_2A_BCR] = { 0x9d000 },
7267 [GCC_PCIE_2A_LINK_DOWN_BCR] = { 0x9d13c },
7268 [GCC_PCIE_2A_NOCSR_COM_PHY_BCR] = { 0x9d148 },
7269 [GCC_PCIE_2A_PHY_BCR] = { 0x9d144 },
7270 [GCC_PCIE_2A_PHY_NOCSR_COM_PHY_BCR] = { 0x9d14c },
7271 [GCC_PCIE_2B_BCR] = { 0x9e000 },
7272 [GCC_PCIE_2B_LINK_DOWN_BCR] = { 0x9e084 },
7273 [GCC_PCIE_2B_NOCSR_COM_PHY_BCR] = { 0x9e090 },
7274 [GCC_PCIE_2B_PHY_BCR] = { 0x9e08c },
7275 [GCC_PCIE_2B_PHY_NOCSR_COM_PHY_BCR] = { 0x9e094 },
7276 [GCC_PCIE_3A_BCR] = { 0xa0000 },
7277 [GCC_PCIE_3A_LINK_DOWN_BCR] = { 0xa00f0 },
7278 [GCC_PCIE_3A_NOCSR_COM_PHY_BCR] = { 0xa00fc },
7279 [GCC_PCIE_3A_PHY_BCR] = { 0xa00e0 },
7280 [GCC_PCIE_3A_PHY_NOCSR_COM_PHY_BCR] = { 0xa00e4 },
7281 [GCC_PCIE_3B_BCR] = { 0xa2000 },
7282 [GCC_PCIE_3B_LINK_DOWN_BCR] = { 0xa20e0 },
7283 [GCC_PCIE_3B_NOCSR_COM_PHY_BCR] = { 0xa20ec },
7284 [GCC_PCIE_3B_PHY_BCR] = { 0xa20e8 },
7285 [GCC_PCIE_3B_PHY_NOCSR_COM_PHY_BCR] = { 0xa20f0 },
7286 [GCC_PCIE_4_BCR] = { 0x6b000 },
7287 [GCC_PCIE_4_LINK_DOWN_BCR] = { 0x6b300 },
7288 [GCC_PCIE_4_NOCSR_COM_PHY_BCR] = { 0x6b30c },
7289 [GCC_PCIE_4_PHY_BCR] = { 0x6b308 },
7290 [GCC_PCIE_4_PHY_NOCSR_COM_PHY_BCR] = { 0x6b310 },
7291 [GCC_PCIE_PHY_CFG_AHB_BCR] = { 0x6f00c },
7292 [GCC_PCIE_PHY_COM_BCR] = { 0x6f010 },
7293 [GCC_PCIE_RSCC_BCR] = { 0xae000 },
7294 [GCC_QUSB2PHY_HS0_MP_BCR] = { 0x12008 },
7295 [GCC_QUSB2PHY_HS1_MP_BCR] = { 0x1200c },
7296 [GCC_QUSB2PHY_HS2_MP_BCR] = { 0x12010 },
7297 [GCC_QUSB2PHY_HS3_MP_BCR] = { 0x12014 },
7298 [GCC_QUSB2PHY_PRIM_BCR] = { 0x12000 },
7299 [GCC_QUSB2PHY_SEC_BCR] = { 0x12004 },
7300 [GCC_SDCC2_BCR] = { 0x14000 },
7301 [GCC_SDCC4_BCR] = { 0x16000 },
7302 [GCC_UFS_CARD_BCR] = { 0x75000 },
7303 [GCC_UFS_PHY_BCR] = { 0x77000 },
7304 [GCC_USB2_PHY_PRIM_BCR] = { 0x50028 },
7305 [GCC_USB2_PHY_SEC_BCR] = { 0x5002c },
7306 [GCC_USB30_MP_BCR] = { 0xab000 },
7307 [GCC_USB30_PRIM_BCR] = { 0xf000 },
7308 [GCC_USB30_SEC_BCR] = { 0x10000 },
7309 [GCC_USB3_DP_PHY_PRIM_BCR] = { 0x50008 },
7310 [GCC_USB3_DP_PHY_SEC_BCR] = { 0x50014 },
7311 [GCC_USB3_PHY_PRIM_BCR] = { 0x50000 },
7312 [GCC_USB3_PHY_SEC_BCR] = { 0x5000c },
7313 [GCC_USB3_UNIPHY_MP0_BCR] = { 0x50018 },
7314 [GCC_USB3_UNIPHY_MP1_BCR] = { 0x5001c },
7315 [GCC_USB3PHY_PHY_PRIM_BCR] = { 0x50004 },
7316 [GCC_USB3PHY_PHY_SEC_BCR] = { 0x50010 },
7317 [GCC_USB3UNIPHY_PHY_MP0_BCR] = { 0x50020 },
7318 [GCC_USB3UNIPHY_PHY_MP1_BCR] = { 0x50024 },
7319 [GCC_USB4_1_BCR] = { 0xb8000 },
7320 [GCC_USB4_1_DP_PHY_PRIM_BCR] = { 0xb9020 },
7321 [GCC_USB4_1_DPPHY_AUX_BCR] = { 0xb9024 },
7322 [GCC_USB4_1_PHY_PRIM_BCR] = { 0xb9018 },
7323 [GCC_USB4_BCR] = { 0x2a000 },
7324 [GCC_USB4_DP_PHY_PRIM_BCR] = { 0x4a008 },
7325 [GCC_USB4_DPPHY_AUX_BCR] = { 0x4a00c },
7326 [GCC_USB4_PHY_PRIM_BCR] = { 0x4a000 },
7327 [GCC_USB4PHY_1_PHY_PRIM_BCR] = { 0xb901c },
7328 [GCC_USB4PHY_PHY_PRIM_BCR] = { 0x4a004 },
7329 [GCC_USB_PHY_CFG_AHB2PHY_BCR] = { 0x6a000 },
7330 [GCC_VIDEO_BCR] = { 0x28000 },
7331 [GCC_VIDEO_AXI0_CLK_ARES] = { 0x28010, 2 },
7332 [GCC_VIDEO_AXI1_CLK_ARES] = { 0x28018, 2 },
7335 static struct gdsc *gcc_sc8280xp_gdscs[] = {
7336 [PCIE_0_TUNNEL_GDSC] = &pcie_0_tunnel_gdsc,
7337 [PCIE_1_TUNNEL_GDSC] = &pcie_1_tunnel_gdsc,
7338 [PCIE_2A_GDSC] = &pcie_2a_gdsc,
7339 [PCIE_2B_GDSC] = &pcie_2b_gdsc,
7340 [PCIE_3A_GDSC] = &pcie_3a_gdsc,
7341 [PCIE_3B_GDSC] = &pcie_3b_gdsc,
7342 [PCIE_4_GDSC] = &pcie_4_gdsc,
7343 [UFS_CARD_GDSC] = &ufs_card_gdsc,
7344 [UFS_PHY_GDSC] = &ufs_phy_gdsc,
7345 [USB30_MP_GDSC] = &usb30_mp_gdsc,
7346 [USB30_PRIM_GDSC] = &usb30_prim_gdsc,
7347 [USB30_SEC_GDSC] = &usb30_sec_gdsc,
7350 static const struct clk_rcg_dfs_data gcc_dfs_clocks[] = {
7351 DEFINE_RCG_DFS(gcc_qupv3_wrap0_s0_clk_src),
7352 DEFINE_RCG_DFS(gcc_qupv3_wrap0_s1_clk_src),
7353 DEFINE_RCG_DFS(gcc_qupv3_wrap0_s2_clk_src),
7354 DEFINE_RCG_DFS(gcc_qupv3_wrap0_s3_clk_src),
7355 DEFINE_RCG_DFS(gcc_qupv3_wrap0_s4_clk_src),
7356 DEFINE_RCG_DFS(gcc_qupv3_wrap0_s5_clk_src),
7357 DEFINE_RCG_DFS(gcc_qupv3_wrap0_s6_clk_src),
7358 DEFINE_RCG_DFS(gcc_qupv3_wrap0_s7_clk_src),
7359 DEFINE_RCG_DFS(gcc_qupv3_wrap1_s0_clk_src),
7360 DEFINE_RCG_DFS(gcc_qupv3_wrap1_s1_clk_src),
7361 DEFINE_RCG_DFS(gcc_qupv3_wrap1_s2_clk_src),
7362 DEFINE_RCG_DFS(gcc_qupv3_wrap1_s3_clk_src),
7363 DEFINE_RCG_DFS(gcc_qupv3_wrap1_s4_clk_src),
7364 DEFINE_RCG_DFS(gcc_qupv3_wrap1_s5_clk_src),
7365 DEFINE_RCG_DFS(gcc_qupv3_wrap1_s6_clk_src),
7366 DEFINE_RCG_DFS(gcc_qupv3_wrap1_s7_clk_src),
7367 DEFINE_RCG_DFS(gcc_qupv3_wrap2_s0_clk_src),
7368 DEFINE_RCG_DFS(gcc_qupv3_wrap2_s1_clk_src),
7369 DEFINE_RCG_DFS(gcc_qupv3_wrap2_s2_clk_src),
7370 DEFINE_RCG_DFS(gcc_qupv3_wrap2_s3_clk_src),
7371 DEFINE_RCG_DFS(gcc_qupv3_wrap2_s4_clk_src),
7372 DEFINE_RCG_DFS(gcc_qupv3_wrap2_s5_clk_src),
7373 DEFINE_RCG_DFS(gcc_qupv3_wrap2_s6_clk_src),
7374 DEFINE_RCG_DFS(gcc_qupv3_wrap2_s7_clk_src),
7377 static const struct regmap_config gcc_sc8280xp_regmap_config = {
7381 .max_register = 0xc3014,
7385 static const struct qcom_cc_desc gcc_sc8280xp_desc = {
7386 .config = &gcc_sc8280xp_regmap_config,
7387 .clks = gcc_sc8280xp_clocks,
7388 .num_clks = ARRAY_SIZE(gcc_sc8280xp_clocks),
7389 .resets = gcc_sc8280xp_resets,
7390 .num_resets = ARRAY_SIZE(gcc_sc8280xp_resets),
7391 .gdscs = gcc_sc8280xp_gdscs,
7392 .num_gdscs = ARRAY_SIZE(gcc_sc8280xp_gdscs),
7395 static int gcc_sc8280xp_probe(struct platform_device *pdev)
7397 struct regmap *regmap;
7400 regmap = qcom_cc_map(pdev, &gcc_sc8280xp_desc);
7402 return PTR_ERR(regmap);
7405 * Keep the clocks always-ON
7406 * GCC_CAMERA_AHB_CLK, GCC_CAMERA_XO_CLK, GCC_DISP_AHB_CLK,
7407 * GCC_DISP_XO_CLK, GCC_GPU_CFG_AHB_CLK, GCC_VIDEO_AHB_CLK,
7408 * GCC_VIDEO_XO_CLK, GCC_DISP1_AHB_CLK, GCC_DISP1_XO_CLK
7410 regmap_update_bits(regmap, 0x26004, BIT(0), BIT(0));
7411 regmap_update_bits(regmap, 0x26020, BIT(0), BIT(0));
7412 regmap_update_bits(regmap, 0x27004, BIT(0), BIT(0));
7413 regmap_update_bits(regmap, 0x27028, BIT(0), BIT(0));
7414 regmap_update_bits(regmap, 0x71004, BIT(0), BIT(0));
7415 regmap_update_bits(regmap, 0x28004, BIT(0), BIT(0));
7416 regmap_update_bits(regmap, 0x28028, BIT(0), BIT(0));
7417 regmap_update_bits(regmap, 0xbb004, BIT(0), BIT(0));
7418 regmap_update_bits(regmap, 0xbb028, BIT(0), BIT(0));
7420 ret = qcom_cc_register_rcg_dfs(regmap, gcc_dfs_clocks, ARRAY_SIZE(gcc_dfs_clocks));
7424 return qcom_cc_really_probe(pdev, &gcc_sc8280xp_desc, regmap);
7427 static const struct of_device_id gcc_sc8280xp_match_table[] = {
7428 { .compatible = "qcom,gcc-sc8280xp" },
7431 MODULE_DEVICE_TABLE(of, gcc_sc8280xp_match_table);
7433 static struct platform_driver gcc_sc8280xp_driver = {
7434 .probe = gcc_sc8280xp_probe,
7436 .name = "gcc-sc8280xp",
7437 .of_match_table = gcc_sc8280xp_match_table,
7441 static int __init gcc_sc8280xp_init(void)
7443 return platform_driver_register(&gcc_sc8280xp_driver);
7445 subsys_initcall(gcc_sc8280xp_init);
7447 static void __exit gcc_sc8280xp_exit(void)
7449 platform_driver_unregister(&gcc_sc8280xp_driver);
7451 module_exit(gcc_sc8280xp_exit);
7453 MODULE_DESCRIPTION("Qualcomm SC8280XP GCC driver");
7454 MODULE_LICENSE("GPL");