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/pm_runtime.h>
13 #include <linux/platform_device.h>
14 #include <linux/regmap.h>
16 #include <dt-bindings/clock/qcom,gcc-sc8280xp.h>
18 #include "clk-alpha-pll.h"
19 #include "clk-branch.h"
21 #include "clk-regmap.h"
22 #include "clk-regmap-divider.h"
23 #include "clk-regmap-mux.h"
24 #include "clk-regmap-phy-mux.h"
29 /* Need to match the order of clocks in DT binding */
33 DT_UFS_PHY_RX_SYMBOL_0_CLK
,
34 DT_UFS_PHY_RX_SYMBOL_1_CLK
,
35 DT_UFS_PHY_TX_SYMBOL_0_CLK
,
36 DT_UFS_CARD_RX_SYMBOL_0_CLK
,
37 DT_UFS_CARD_RX_SYMBOL_1_CLK
,
38 DT_UFS_CARD_TX_SYMBOL_0_CLK
,
39 DT_USB3_PHY_WRAPPER_GCC_USB30_PIPE_CLK
,
40 DT_GCC_USB4_PHY_PIPEGMUX_CLK_SRC
,
41 DT_GCC_USB4_PHY_DP_GMUX_CLK_SRC
,
42 DT_GCC_USB4_PHY_SYS_PIPEGMUX_CLK_SRC
,
43 DT_USB4_PHY_GCC_USB4_PCIE_PIPE_CLK
,
44 DT_USB4_PHY_GCC_USB4RTR_MAX_PIPE_CLK
,
45 DT_QUSB4PHY_GCC_USB4_RX0_CLK
,
46 DT_QUSB4PHY_GCC_USB4_RX1_CLK
,
47 DT_USB3_UNI_PHY_SEC_GCC_USB30_PIPE_CLK
,
48 DT_GCC_USB4_1_PHY_PIPEGMUX_CLK_SRC
,
49 DT_GCC_USB4_1_PHY_DP_GMUX_CLK_SRC
,
50 DT_GCC_USB4_1_PHY_SYS_PIPEGMUX_CLK_SRC
,
51 DT_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK
,
52 DT_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK
,
53 DT_QUSB4PHY_1_GCC_USB4_RX0_CLK
,
54 DT_QUSB4PHY_1_GCC_USB4_RX1_CLK
,
55 DT_USB3_UNI_PHY_MP_GCC_USB30_PIPE_0_CLK
,
56 DT_USB3_UNI_PHY_MP_GCC_USB30_PIPE_1_CLK
,
75 P_GCC_USB3_PRIM_PHY_PIPE_CLK_SRC
,
76 P_GCC_USB3_SEC_PHY_PIPE_CLK_SRC
,
77 P_GCC_USB4_1_PHY_DP_GMUX_CLK_SRC
,
78 P_GCC_USB4_1_PHY_PCIE_PIPE_CLK_SRC
,
79 P_GCC_USB4_1_PHY_PCIE_PIPEGMUX_CLK_SRC
,
80 P_GCC_USB4_1_PHY_PIPEGMUX_CLK_SRC
,
81 P_GCC_USB4_1_PHY_SYS_PIPEGMUX_CLK_SRC
,
82 P_GCC_USB4_PHY_DP_GMUX_CLK_SRC
,
83 P_GCC_USB4_PHY_PCIE_PIPE_CLK_SRC
,
84 P_GCC_USB4_PHY_PCIE_PIPEGMUX_CLK_SRC
,
85 P_GCC_USB4_PHY_PIPEGMUX_CLK_SRC
,
86 P_GCC_USB4_PHY_SYS_PIPEGMUX_CLK_SRC
,
87 P_QUSB4PHY_1_GCC_USB4_RX0_CLK
,
88 P_QUSB4PHY_1_GCC_USB4_RX1_CLK
,
89 P_QUSB4PHY_GCC_USB4_RX0_CLK
,
90 P_QUSB4PHY_GCC_USB4_RX1_CLK
,
94 P_UFS_CARD_RX_SYMBOL_0_CLK
,
95 P_UFS_CARD_RX_SYMBOL_1_CLK
,
96 P_UFS_CARD_TX_SYMBOL_0_CLK
,
97 P_UFS_PHY_RX_SYMBOL_0_CLK
,
98 P_UFS_PHY_RX_SYMBOL_1_CLK
,
99 P_UFS_PHY_TX_SYMBOL_0_CLK
,
100 P_USB3_PHY_WRAPPER_GCC_USB30_PIPE_CLK
,
101 P_USB3_UNI_PHY_MP_GCC_USB30_PIPE_0_CLK
,
102 P_USB3_UNI_PHY_MP_GCC_USB30_PIPE_1_CLK
,
103 P_USB3_UNI_PHY_SEC_GCC_USB30_PIPE_CLK
,
104 P_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK
,
105 P_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK
,
106 P_USB4_PHY_GCC_USB4_PCIE_PIPE_CLK
,
107 P_USB4_PHY_GCC_USB4RTR_MAX_PIPE_CLK
,
110 static const struct clk_parent_data gcc_parent_data_tcxo
= { .index
= DT_BI_TCXO
};
112 static struct clk_alpha_pll gcc_gpll0
= {
114 .regs
= clk_alpha_pll_regs
[CLK_ALPHA_PLL_TYPE_LUCID
],
116 .enable_reg
= 0x52028,
117 .enable_mask
= BIT(0),
118 .hw
.init
= &(const struct clk_init_data
) {
120 .parent_data
= &gcc_parent_data_tcxo
,
122 .ops
= &clk_alpha_pll_fixed_lucid_5lpe_ops
,
127 static const struct clk_div_table post_div_table_gcc_gpll0_out_even
[] = {
132 static struct clk_alpha_pll_postdiv gcc_gpll0_out_even
= {
135 .post_div_table
= post_div_table_gcc_gpll0_out_even
,
136 .num_post_div
= ARRAY_SIZE(post_div_table_gcc_gpll0_out_even
),
138 .regs
= clk_alpha_pll_regs
[CLK_ALPHA_PLL_TYPE_LUCID
],
139 .clkr
.hw
.init
= &(const struct clk_init_data
) {
140 .name
= "gcc_gpll0_out_even",
141 .parent_hws
= (const struct clk_hw
*[]){
145 .ops
= &clk_alpha_pll_postdiv_lucid_5lpe_ops
,
149 static struct clk_alpha_pll gcc_gpll2
= {
151 .regs
= clk_alpha_pll_regs
[CLK_ALPHA_PLL_TYPE_LUCID
],
153 .enable_reg
= 0x52028,
154 .enable_mask
= BIT(2),
155 .hw
.init
= &(const struct clk_init_data
) {
157 .parent_data
= &gcc_parent_data_tcxo
,
159 .ops
= &clk_alpha_pll_fixed_lucid_5lpe_ops
,
164 static struct clk_alpha_pll gcc_gpll4
= {
166 .regs
= clk_alpha_pll_regs
[CLK_ALPHA_PLL_TYPE_LUCID
],
168 .enable_reg
= 0x52028,
169 .enable_mask
= BIT(4),
170 .hw
.init
= &(const struct clk_init_data
) {
172 .parent_data
= &gcc_parent_data_tcxo
,
174 .ops
= &clk_alpha_pll_fixed_lucid_5lpe_ops
,
179 static struct clk_alpha_pll gcc_gpll7
= {
181 .regs
= clk_alpha_pll_regs
[CLK_ALPHA_PLL_TYPE_LUCID
],
183 .enable_reg
= 0x52028,
184 .enable_mask
= BIT(7),
185 .hw
.init
= &(const struct clk_init_data
) {
187 .parent_data
= &gcc_parent_data_tcxo
,
189 .ops
= &clk_alpha_pll_fixed_lucid_5lpe_ops
,
194 static struct clk_alpha_pll gcc_gpll8
= {
196 .regs
= clk_alpha_pll_regs
[CLK_ALPHA_PLL_TYPE_LUCID
],
198 .enable_reg
= 0x52028,
199 .enable_mask
= BIT(8),
200 .hw
.init
= &(const struct clk_init_data
) {
202 .parent_data
= &gcc_parent_data_tcxo
,
204 .ops
= &clk_alpha_pll_fixed_lucid_5lpe_ops
,
209 static struct clk_alpha_pll gcc_gpll9
= {
211 .regs
= clk_alpha_pll_regs
[CLK_ALPHA_PLL_TYPE_LUCID
],
213 .enable_reg
= 0x52028,
214 .enable_mask
= BIT(9),
215 .hw
.init
= &(const struct clk_init_data
) {
217 .parent_data
= &gcc_parent_data_tcxo
,
219 .ops
= &clk_alpha_pll_fixed_lucid_5lpe_ops
,
224 static struct clk_rcg2 gcc_usb4_1_phy_pcie_pipe_clk_src
;
225 static struct clk_rcg2 gcc_usb4_phy_pcie_pipe_clk_src
;
227 static const struct parent_map gcc_parent_map_0
[] = {
229 { P_GCC_GPLL0_OUT_MAIN
, 1 },
230 { P_GCC_GPLL0_OUT_EVEN
, 6 },
233 static const struct clk_parent_data gcc_parent_data_0
[] = {
234 { .index
= DT_BI_TCXO
},
235 { .hw
= &gcc_gpll0
.clkr
.hw
},
236 { .hw
= &gcc_gpll0_out_even
.clkr
.hw
},
239 static const struct parent_map gcc_parent_map_1
[] = {
244 static const struct clk_parent_data gcc_parent_data_1
[] = {
245 { .index
= DT_BI_TCXO
},
246 { .index
= DT_SLEEP_CLK
},
249 static const struct parent_map gcc_parent_map_2
[] = {
251 { P_GCC_GPLL0_OUT_MAIN
, 1 },
253 { P_GCC_GPLL0_OUT_EVEN
, 6 },
256 static const struct clk_parent_data gcc_parent_data_2
[] = {
257 { .index
= DT_BI_TCXO
},
258 { .hw
= &gcc_gpll0
.clkr
.hw
},
259 { .index
= DT_SLEEP_CLK
},
260 { .hw
= &gcc_gpll0_out_even
.clkr
.hw
},
263 static const struct parent_map gcc_parent_map_3
[] = {
267 static const struct clk_parent_data gcc_parent_data_3
[] = {
268 { .index
= DT_BI_TCXO
},
271 static const struct parent_map gcc_parent_map_4
[] = {
273 { P_GCC_GPLL7_OUT_MAIN
, 2 },
274 { P_GCC_GPLL4_OUT_MAIN
, 5 },
275 { P_GCC_GPLL0_OUT_EVEN
, 6 },
278 static const struct clk_parent_data gcc_parent_data_4
[] = {
279 { .index
= DT_BI_TCXO
},
280 { .hw
= &gcc_gpll7
.clkr
.hw
},
281 { .hw
= &gcc_gpll4
.clkr
.hw
},
282 { .hw
= &gcc_gpll0_out_even
.clkr
.hw
},
285 static const struct parent_map gcc_parent_map_5
[] = {
287 { P_GCC_GPLL0_OUT_MAIN
, 1 },
288 { P_GCC_GPLL8_OUT_MAIN
, 2 },
289 { P_GCC_GPLL0_OUT_EVEN
, 6 },
292 static const struct clk_parent_data gcc_parent_data_5
[] = {
293 { .index
= DT_BI_TCXO
},
294 { .hw
= &gcc_gpll0
.clkr
.hw
},
295 { .hw
= &gcc_gpll8
.clkr
.hw
},
296 { .hw
= &gcc_gpll0_out_even
.clkr
.hw
},
299 static const struct parent_map gcc_parent_map_6
[] = {
301 { P_GCC_GPLL0_OUT_MAIN
, 1 },
302 { P_GCC_GPLL7_OUT_MAIN
, 2 },
305 static const struct clk_parent_data gcc_parent_data_6
[] = {
306 { .index
= DT_BI_TCXO
},
307 { .hw
= &gcc_gpll0
.clkr
.hw
},
308 { .hw
= &gcc_gpll7
.clkr
.hw
},
311 static const struct parent_map gcc_parent_map_7
[] = {
313 { P_GCC_GPLL0_OUT_MAIN
, 1 },
314 { P_GCC_GPLL2_OUT_MAIN
, 2 },
317 static const struct clk_parent_data gcc_parent_data_7
[] = {
318 { .index
= DT_BI_TCXO
},
319 { .hw
= &gcc_gpll0
.clkr
.hw
},
320 { .hw
= &gcc_gpll2
.clkr
.hw
},
323 static const struct parent_map gcc_parent_map_8
[] = {
325 { P_GCC_GPLL7_OUT_MAIN
, 2 },
326 { P_RXC0_REF_CLK
, 3 },
327 { P_GCC_GPLL0_OUT_EVEN
, 6 },
330 static const struct clk_parent_data gcc_parent_data_8
[] = {
331 { .index
= DT_BI_TCXO
},
332 { .hw
= &gcc_gpll7
.clkr
.hw
},
333 { .index
= DT_RXC0_REF_CLK
},
334 { .hw
= &gcc_gpll0_out_even
.clkr
.hw
},
337 static const struct parent_map gcc_parent_map_9
[] = {
339 { P_GCC_GPLL7_OUT_MAIN
, 2 },
340 { P_RXC1_REF_CLK
, 3 },
341 { P_GCC_GPLL0_OUT_EVEN
, 6 },
344 static const struct clk_parent_data gcc_parent_data_9
[] = {
345 { .index
= DT_BI_TCXO
},
346 { .hw
= &gcc_gpll7
.clkr
.hw
},
347 { .index
= DT_RXC1_REF_CLK
},
348 { .hw
= &gcc_gpll0_out_even
.clkr
.hw
},
351 static const struct parent_map gcc_parent_map_15
[] = {
353 { P_GCC_GPLL0_OUT_MAIN
, 1 },
354 { P_GCC_GPLL9_OUT_MAIN
, 2 },
355 { P_GCC_GPLL4_OUT_MAIN
, 5 },
356 { P_GCC_GPLL0_OUT_EVEN
, 6 },
359 static const struct clk_parent_data gcc_parent_data_15
[] = {
360 { .index
= DT_BI_TCXO
},
361 { .hw
= &gcc_gpll0
.clkr
.hw
},
362 { .hw
= &gcc_gpll9
.clkr
.hw
},
363 { .hw
= &gcc_gpll4
.clkr
.hw
},
364 { .hw
= &gcc_gpll0_out_even
.clkr
.hw
},
367 static const struct parent_map gcc_parent_map_16
[] = {
368 { P_UFS_CARD_RX_SYMBOL_0_CLK
, 0 },
372 static const struct clk_parent_data gcc_parent_data_16
[] = {
373 { .index
= DT_UFS_CARD_RX_SYMBOL_0_CLK
},
374 { .index
= DT_BI_TCXO
},
377 static const struct parent_map gcc_parent_map_17
[] = {
378 { P_UFS_CARD_RX_SYMBOL_1_CLK
, 0 },
382 static const struct clk_parent_data gcc_parent_data_17
[] = {
383 { .index
= DT_UFS_CARD_RX_SYMBOL_1_CLK
},
384 { .index
= DT_BI_TCXO
},
387 static const struct parent_map gcc_parent_map_18
[] = {
388 { P_UFS_CARD_TX_SYMBOL_0_CLK
, 0 },
392 static const struct clk_parent_data gcc_parent_data_18
[] = {
393 { .index
= DT_UFS_CARD_TX_SYMBOL_0_CLK
},
394 { .index
= DT_BI_TCXO
},
397 static const struct parent_map gcc_parent_map_19
[] = {
398 { P_UFS_PHY_RX_SYMBOL_0_CLK
, 0 },
402 static const struct clk_parent_data gcc_parent_data_19
[] = {
403 { .index
= DT_UFS_PHY_RX_SYMBOL_0_CLK
},
404 { .index
= DT_BI_TCXO
},
407 static const struct parent_map gcc_parent_map_20
[] = {
408 { P_UFS_PHY_RX_SYMBOL_1_CLK
, 0 },
412 static const struct clk_parent_data gcc_parent_data_20
[] = {
413 { .index
= DT_UFS_PHY_RX_SYMBOL_1_CLK
},
414 { .index
= DT_BI_TCXO
},
417 static const struct parent_map gcc_parent_map_21
[] = {
418 { P_UFS_PHY_TX_SYMBOL_0_CLK
, 0 },
422 static const struct clk_parent_data gcc_parent_data_21
[] = {
423 { .index
= DT_UFS_PHY_TX_SYMBOL_0_CLK
},
424 { .index
= DT_BI_TCXO
},
427 static const struct parent_map gcc_parent_map_22
[] = {
428 { P_USB3_PHY_WRAPPER_GCC_USB30_PIPE_CLK
, 0 },
432 static const struct clk_parent_data gcc_parent_data_22
[] = {
433 { .index
= DT_USB3_PHY_WRAPPER_GCC_USB30_PIPE_CLK
},
434 { .index
= DT_BI_TCXO
},
437 static const struct parent_map gcc_parent_map_23
[] = {
438 { P_USB3_UNI_PHY_SEC_GCC_USB30_PIPE_CLK
, 0 },
442 static const struct clk_parent_data gcc_parent_data_23
[] = {
443 { .index
= DT_USB3_UNI_PHY_SEC_GCC_USB30_PIPE_CLK
},
444 { .index
= DT_BI_TCXO
},
447 static struct clk_regmap_mux gcc_usb3_prim_phy_pipe_clk_src
= {
451 .parent_map
= gcc_parent_map_22
,
453 .hw
.init
= &(const struct clk_init_data
) {
454 .name
= "gcc_usb3_prim_phy_pipe_clk_src",
455 .parent_data
= gcc_parent_data_22
,
456 .num_parents
= ARRAY_SIZE(gcc_parent_data_22
),
457 .ops
= &clk_regmap_mux_closest_ops
,
462 static struct clk_regmap_mux gcc_usb3_sec_phy_pipe_clk_src
= {
466 .parent_map
= gcc_parent_map_23
,
468 .hw
.init
= &(const struct clk_init_data
) {
469 .name
= "gcc_usb3_sec_phy_pipe_clk_src",
470 .parent_data
= gcc_parent_data_23
,
471 .num_parents
= ARRAY_SIZE(gcc_parent_data_23
),
472 .ops
= &clk_regmap_mux_closest_ops
,
477 static const struct parent_map gcc_parent_map_24
[] = {
478 { P_USB3_UNI_PHY_MP_GCC_USB30_PIPE_0_CLK
, 0 },
482 static const struct clk_parent_data gcc_parent_data_24
[] = {
483 { .index
= DT_USB3_UNI_PHY_MP_GCC_USB30_PIPE_0_CLK
},
484 { .index
= DT_BI_TCXO
},
487 static const struct parent_map gcc_parent_map_25
[] = {
488 { P_USB3_UNI_PHY_MP_GCC_USB30_PIPE_1_CLK
, 0 },
492 static const struct clk_parent_data gcc_parent_data_25
[] = {
493 { .index
= DT_USB3_UNI_PHY_MP_GCC_USB30_PIPE_1_CLK
},
494 { .index
= DT_BI_TCXO
},
497 static const struct parent_map gcc_parent_map_26
[] = {
498 { P_GCC_USB3_PRIM_PHY_PIPE_CLK_SRC
, 0 },
499 { P_USB4_PHY_GCC_USB4RTR_MAX_PIPE_CLK
, 1 },
500 { P_GCC_USB4_PHY_PIPEGMUX_CLK_SRC
, 3 },
503 static const struct clk_parent_data gcc_parent_data_26
[] = {
504 { .hw
= &gcc_usb3_prim_phy_pipe_clk_src
.clkr
.hw
},
505 { .index
= DT_USB4_PHY_GCC_USB4RTR_MAX_PIPE_CLK
},
506 { .index
= DT_GCC_USB4_PHY_PIPEGMUX_CLK_SRC
},
509 static const struct parent_map gcc_parent_map_27
[] = {
510 { P_GCC_USB3_SEC_PHY_PIPE_CLK_SRC
, 0 },
511 { P_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK
, 1 },
512 { P_GCC_USB4_1_PHY_PIPEGMUX_CLK_SRC
, 3 },
515 static const struct clk_parent_data gcc_parent_data_27
[] = {
516 { .hw
= &gcc_usb3_sec_phy_pipe_clk_src
.clkr
.hw
},
517 { .index
= DT_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK
},
518 { .index
= DT_GCC_USB4_1_PHY_PIPEGMUX_CLK_SRC
},
521 static const struct parent_map gcc_parent_map_28
[] = {
522 { P_GCC_USB4_1_PHY_DP_GMUX_CLK_SRC
, 0 },
523 { P_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK
, 2 },
526 static const struct clk_parent_data gcc_parent_data_28
[] = {
527 { .index
= DT_GCC_USB4_1_PHY_DP_GMUX_CLK_SRC
},
528 { .index
= DT_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK
},
531 static const struct parent_map gcc_parent_map_29
[] = {
532 { P_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK
, 0 },
536 static const struct clk_parent_data gcc_parent_data_29
[] = {
537 { .index
= DT_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK
},
538 { .index
= DT_BI_TCXO
},
541 static const struct parent_map gcc_parent_map_30
[] = {
542 { P_GCC_USB4_1_PHY_SYS_PIPEGMUX_CLK_SRC
, 0 },
543 { P_GCC_USB4_1_PHY_PCIE_PIPE_CLK_SRC
, 1 },
546 static const struct clk_parent_data gcc_parent_data_30
[] = {
547 { .index
= DT_GCC_USB4_1_PHY_SYS_PIPEGMUX_CLK_SRC
},
548 { .hw
= &gcc_usb4_1_phy_pcie_pipe_clk_src
.clkr
.hw
},
551 static struct clk_regmap_mux gcc_usb4_1_phy_pcie_pipegmux_clk_src
= {
555 .parent_map
= gcc_parent_map_30
,
557 .hw
.init
= &(const struct clk_init_data
) {
558 .name
= "gcc_usb4_1_phy_pcie_pipegmux_clk_src",
559 .parent_data
= gcc_parent_data_30
,
560 .num_parents
= ARRAY_SIZE(gcc_parent_data_30
),
561 .ops
= &clk_regmap_mux_closest_ops
,
566 static const struct parent_map gcc_parent_map_31
[] = {
567 { P_GCC_USB4_1_PHY_PCIE_PIPEGMUX_CLK_SRC
, 0 },
568 { P_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK
, 2 },
571 static const struct clk_parent_data gcc_parent_data_31
[] = {
572 { .hw
= &gcc_usb4_1_phy_pcie_pipegmux_clk_src
.clkr
.hw
},
573 { .index
= DT_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK
},
576 static const struct parent_map gcc_parent_map_32
[] = {
577 { P_QUSB4PHY_1_GCC_USB4_RX0_CLK
, 0 },
581 static const struct clk_parent_data gcc_parent_data_32
[] = {
582 { .index
= DT_QUSB4PHY_1_GCC_USB4_RX0_CLK
},
583 { .index
= DT_BI_TCXO
},
586 static const struct parent_map gcc_parent_map_33
[] = {
587 { P_QUSB4PHY_1_GCC_USB4_RX1_CLK
, 0 },
591 static const struct clk_parent_data gcc_parent_data_33
[] = {
592 { .index
= DT_QUSB4PHY_1_GCC_USB4_RX1_CLK
},
593 { .index
= DT_BI_TCXO
},
596 static const struct parent_map gcc_parent_map_34
[] = {
597 { P_GCC_USB4_1_PHY_SYS_PIPEGMUX_CLK_SRC
, 0 },
598 { P_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK
, 2 },
601 static const struct clk_parent_data gcc_parent_data_34
[] = {
602 { .index
= DT_GCC_USB4_1_PHY_SYS_PIPEGMUX_CLK_SRC
},
603 { .index
= DT_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK
},
606 static const struct parent_map gcc_parent_map_35
[] = {
607 { P_GCC_USB4_PHY_DP_GMUX_CLK_SRC
, 0 },
608 { P_USB4_PHY_GCC_USB4RTR_MAX_PIPE_CLK
, 2 },
611 static const struct clk_parent_data gcc_parent_data_35
[] = {
612 { .index
= DT_GCC_USB4_PHY_DP_GMUX_CLK_SRC
},
613 { .index
= DT_USB4_PHY_GCC_USB4RTR_MAX_PIPE_CLK
},
616 static const struct parent_map gcc_parent_map_36
[] = {
617 { P_USB4_PHY_GCC_USB4_PCIE_PIPE_CLK
, 0 },
621 static const struct clk_parent_data gcc_parent_data_36
[] = {
622 { .index
= DT_USB4_PHY_GCC_USB4_PCIE_PIPE_CLK
},
623 { .index
= DT_BI_TCXO
},
626 static const struct parent_map gcc_parent_map_37
[] = {
627 { P_GCC_USB4_PHY_SYS_PIPEGMUX_CLK_SRC
, 0 },
628 { P_GCC_USB4_PHY_PCIE_PIPE_CLK_SRC
, 1 },
631 static const struct clk_parent_data gcc_parent_data_37
[] = {
632 { .index
= DT_GCC_USB4_PHY_SYS_PIPEGMUX_CLK_SRC
},
633 { .hw
= &gcc_usb4_phy_pcie_pipe_clk_src
.clkr
.hw
},
636 static struct clk_regmap_mux gcc_usb4_phy_pcie_pipegmux_clk_src
= {
640 .parent_map
= gcc_parent_map_37
,
642 .hw
.init
= &(const struct clk_init_data
) {
643 .name
= "gcc_usb4_phy_pcie_pipegmux_clk_src",
644 .parent_data
= gcc_parent_data_37
,
645 .num_parents
= ARRAY_SIZE(gcc_parent_data_37
),
646 .ops
= &clk_regmap_mux_closest_ops
,
651 static const struct parent_map gcc_parent_map_38
[] = {
652 { P_GCC_USB4_PHY_PCIE_PIPEGMUX_CLK_SRC
, 0 },
653 { P_USB4_PHY_GCC_USB4_PCIE_PIPE_CLK
, 2 },
656 static const struct clk_parent_data gcc_parent_data_38
[] = {
657 { .hw
= &gcc_usb4_phy_pcie_pipegmux_clk_src
.clkr
.hw
},
658 { .index
= DT_USB4_PHY_GCC_USB4_PCIE_PIPE_CLK
},
661 static const struct parent_map gcc_parent_map_39
[] = {
662 { P_QUSB4PHY_GCC_USB4_RX0_CLK
, 0 },
666 static const struct clk_parent_data gcc_parent_data_39
[] = {
667 { .index
= DT_QUSB4PHY_GCC_USB4_RX0_CLK
},
668 { .index
= DT_BI_TCXO
},
671 static const struct parent_map gcc_parent_map_40
[] = {
672 { P_QUSB4PHY_GCC_USB4_RX1_CLK
, 0 },
676 static const struct clk_parent_data gcc_parent_data_40
[] = {
677 { .index
= DT_QUSB4PHY_GCC_USB4_RX1_CLK
},
678 { .index
= DT_BI_TCXO
},
681 static const struct parent_map gcc_parent_map_41
[] = {
682 { P_GCC_USB4_PHY_SYS_PIPEGMUX_CLK_SRC
, 0 },
683 { P_USB4_PHY_GCC_USB4_PCIE_PIPE_CLK
, 2 },
686 static const struct clk_parent_data gcc_parent_data_41
[] = {
687 { .index
= DT_GCC_USB4_PHY_SYS_PIPEGMUX_CLK_SRC
},
688 { .index
= DT_USB4_PHY_GCC_USB4_PCIE_PIPE_CLK
},
691 static struct clk_regmap_phy_mux gcc_pcie_2a_pipe_clk_src
= {
694 .hw
.init
= &(const struct clk_init_data
) {
695 .name
= "gcc_pcie_2a_pipe_clk_src",
696 .parent_data
= &(const struct clk_parent_data
){
697 .index
= DT_PCIE_2A_PIPE_CLK
,
700 .ops
= &clk_regmap_phy_mux_ops
,
705 static struct clk_regmap_phy_mux gcc_pcie_2b_pipe_clk_src
= {
708 .hw
.init
= &(const struct clk_init_data
) {
709 .name
= "gcc_pcie_2b_pipe_clk_src",
710 .parent_data
= &(const struct clk_parent_data
){
711 .index
= DT_PCIE_2B_PIPE_CLK
,
714 .ops
= &clk_regmap_phy_mux_ops
,
719 static struct clk_regmap_phy_mux gcc_pcie_3a_pipe_clk_src
= {
722 .hw
.init
= &(const struct clk_init_data
) {
723 .name
= "gcc_pcie_3a_pipe_clk_src",
724 .parent_data
= &(const struct clk_parent_data
){
725 .index
= DT_PCIE_3A_PIPE_CLK
,
728 .ops
= &clk_regmap_phy_mux_ops
,
733 static struct clk_regmap_phy_mux gcc_pcie_3b_pipe_clk_src
= {
736 .hw
.init
= &(const struct clk_init_data
) {
737 .name
= "gcc_pcie_3b_pipe_clk_src",
738 .parent_data
= &(const struct clk_parent_data
){
739 .index
= DT_PCIE_3B_PIPE_CLK
,
742 .ops
= &clk_regmap_phy_mux_ops
,
747 static struct clk_regmap_phy_mux gcc_pcie_4_pipe_clk_src
= {
750 .hw
.init
= &(const struct clk_init_data
) {
751 .name
= "gcc_pcie_4_pipe_clk_src",
752 .parent_data
= &(const struct clk_parent_data
){
753 .index
= DT_PCIE_4_PIPE_CLK
,
756 .ops
= &clk_regmap_phy_mux_ops
,
761 static struct clk_regmap_mux gcc_ufs_card_rx_symbol_0_clk_src
= {
765 .parent_map
= gcc_parent_map_16
,
767 .hw
.init
= &(const struct clk_init_data
) {
768 .name
= "gcc_ufs_card_rx_symbol_0_clk_src",
769 .parent_data
= gcc_parent_data_16
,
770 .num_parents
= ARRAY_SIZE(gcc_parent_data_16
),
771 .ops
= &clk_regmap_mux_closest_ops
,
776 static struct clk_regmap_mux gcc_ufs_card_rx_symbol_1_clk_src
= {
780 .parent_map
= gcc_parent_map_17
,
782 .hw
.init
= &(const struct clk_init_data
) {
783 .name
= "gcc_ufs_card_rx_symbol_1_clk_src",
784 .parent_data
= gcc_parent_data_17
,
785 .num_parents
= ARRAY_SIZE(gcc_parent_data_17
),
786 .ops
= &clk_regmap_mux_closest_ops
,
791 static struct clk_regmap_mux gcc_ufs_card_tx_symbol_0_clk_src
= {
795 .parent_map
= gcc_parent_map_18
,
797 .hw
.init
= &(const struct clk_init_data
) {
798 .name
= "gcc_ufs_card_tx_symbol_0_clk_src",
799 .parent_data
= gcc_parent_data_18
,
800 .num_parents
= ARRAY_SIZE(gcc_parent_data_18
),
801 .ops
= &clk_regmap_mux_closest_ops
,
806 static struct clk_regmap_mux gcc_ufs_phy_rx_symbol_0_clk_src
= {
810 .parent_map
= gcc_parent_map_19
,
812 .hw
.init
= &(const struct clk_init_data
) {
813 .name
= "gcc_ufs_phy_rx_symbol_0_clk_src",
814 .parent_data
= gcc_parent_data_19
,
815 .num_parents
= ARRAY_SIZE(gcc_parent_data_19
),
816 .ops
= &clk_regmap_mux_closest_ops
,
821 static struct clk_regmap_mux gcc_ufs_phy_rx_symbol_1_clk_src
= {
825 .parent_map
= gcc_parent_map_20
,
827 .hw
.init
= &(const struct clk_init_data
) {
828 .name
= "gcc_ufs_phy_rx_symbol_1_clk_src",
829 .parent_data
= gcc_parent_data_20
,
830 .num_parents
= ARRAY_SIZE(gcc_parent_data_20
),
831 .ops
= &clk_regmap_mux_closest_ops
,
836 static struct clk_regmap_mux gcc_ufs_phy_tx_symbol_0_clk_src
= {
840 .parent_map
= gcc_parent_map_21
,
842 .hw
.init
= &(const struct clk_init_data
) {
843 .name
= "gcc_ufs_phy_tx_symbol_0_clk_src",
844 .parent_data
= gcc_parent_data_21
,
845 .num_parents
= ARRAY_SIZE(gcc_parent_data_21
),
846 .ops
= &clk_regmap_mux_closest_ops
,
851 static struct clk_regmap_mux gcc_usb34_prim_phy_pipe_clk_src
= {
855 .parent_map
= gcc_parent_map_26
,
857 .hw
.init
= &(const struct clk_init_data
) {
858 .name
= "gcc_usb34_prim_phy_pipe_clk_src",
859 .parent_data
= gcc_parent_data_26
,
860 .num_parents
= ARRAY_SIZE(gcc_parent_data_26
),
861 .ops
= &clk_regmap_mux_closest_ops
,
866 static struct clk_regmap_mux gcc_usb34_sec_phy_pipe_clk_src
= {
870 .parent_map
= gcc_parent_map_27
,
872 .hw
.init
= &(const struct clk_init_data
) {
873 .name
= "gcc_usb34_sec_phy_pipe_clk_src",
874 .parent_data
= gcc_parent_data_27
,
875 .num_parents
= ARRAY_SIZE(gcc_parent_data_27
),
876 .ops
= &clk_regmap_mux_closest_ops
,
881 static struct clk_regmap_mux gcc_usb3_mp_phy_pipe_0_clk_src
= {
885 .parent_map
= gcc_parent_map_24
,
887 .hw
.init
= &(const struct clk_init_data
) {
888 .name
= "gcc_usb3_mp_phy_pipe_0_clk_src",
889 .parent_data
= gcc_parent_data_24
,
890 .num_parents
= ARRAY_SIZE(gcc_parent_data_24
),
891 .ops
= &clk_regmap_mux_closest_ops
,
896 static struct clk_regmap_mux gcc_usb3_mp_phy_pipe_1_clk_src
= {
900 .parent_map
= gcc_parent_map_25
,
902 .hw
.init
= &(const struct clk_init_data
) {
903 .name
= "gcc_usb3_mp_phy_pipe_1_clk_src",
904 .parent_data
= gcc_parent_data_25
,
905 .num_parents
= ARRAY_SIZE(gcc_parent_data_25
),
906 .ops
= &clk_regmap_mux_closest_ops
,
911 static struct clk_regmap_mux gcc_usb4_1_phy_dp_clk_src
= {
915 .parent_map
= gcc_parent_map_28
,
917 .hw
.init
= &(const struct clk_init_data
) {
918 .name
= "gcc_usb4_1_phy_dp_clk_src",
919 .parent_data
= gcc_parent_data_28
,
920 .num_parents
= ARRAY_SIZE(gcc_parent_data_28
),
921 .ops
= &clk_regmap_mux_closest_ops
,
926 static struct clk_regmap_mux gcc_usb4_1_phy_p2rr2p_pipe_clk_src
= {
930 .parent_map
= gcc_parent_map_29
,
932 .hw
.init
= &(const struct clk_init_data
) {
933 .name
= "gcc_usb4_1_phy_p2rr2p_pipe_clk_src",
934 .parent_data
= gcc_parent_data_29
,
935 .num_parents
= ARRAY_SIZE(gcc_parent_data_29
),
936 .ops
= &clk_regmap_mux_closest_ops
,
941 static struct clk_regmap_mux gcc_usb4_1_phy_pcie_pipe_mux_clk_src
= {
945 .parent_map
= gcc_parent_map_31
,
947 .hw
.init
= &(const struct clk_init_data
) {
948 .name
= "gcc_usb4_1_phy_pcie_pipe_mux_clk_src",
949 .parent_data
= gcc_parent_data_31
,
950 .num_parents
= ARRAY_SIZE(gcc_parent_data_31
),
951 .ops
= &clk_regmap_mux_closest_ops
,
956 static struct clk_regmap_mux gcc_usb4_1_phy_rx0_clk_src
= {
960 .parent_map
= gcc_parent_map_32
,
962 .hw
.init
= &(const struct clk_init_data
) {
963 .name
= "gcc_usb4_1_phy_rx0_clk_src",
964 .parent_data
= gcc_parent_data_32
,
965 .num_parents
= ARRAY_SIZE(gcc_parent_data_32
),
966 .ops
= &clk_regmap_mux_closest_ops
,
971 static struct clk_regmap_mux gcc_usb4_1_phy_rx1_clk_src
= {
975 .parent_map
= gcc_parent_map_33
,
977 .hw
.init
= &(const struct clk_init_data
) {
978 .name
= "gcc_usb4_1_phy_rx1_clk_src",
979 .parent_data
= gcc_parent_data_33
,
980 .num_parents
= ARRAY_SIZE(gcc_parent_data_33
),
981 .ops
= &clk_regmap_mux_closest_ops
,
986 static struct clk_regmap_mux gcc_usb4_1_phy_sys_clk_src
= {
990 .parent_map
= gcc_parent_map_34
,
992 .hw
.init
= &(const struct clk_init_data
) {
993 .name
= "gcc_usb4_1_phy_sys_clk_src",
994 .parent_data
= gcc_parent_data_34
,
995 .num_parents
= ARRAY_SIZE(gcc_parent_data_34
),
996 .ops
= &clk_regmap_mux_closest_ops
,
1001 static struct clk_regmap_mux gcc_usb4_phy_dp_clk_src
= {
1005 .parent_map
= gcc_parent_map_35
,
1007 .hw
.init
= &(const struct clk_init_data
) {
1008 .name
= "gcc_usb4_phy_dp_clk_src",
1009 .parent_data
= gcc_parent_data_35
,
1010 .num_parents
= ARRAY_SIZE(gcc_parent_data_35
),
1011 .ops
= &clk_regmap_mux_closest_ops
,
1016 static struct clk_regmap_mux gcc_usb4_phy_p2rr2p_pipe_clk_src
= {
1020 .parent_map
= gcc_parent_map_36
,
1022 .hw
.init
= &(const struct clk_init_data
) {
1023 .name
= "gcc_usb4_phy_p2rr2p_pipe_clk_src",
1024 .parent_data
= gcc_parent_data_36
,
1025 .num_parents
= ARRAY_SIZE(gcc_parent_data_36
),
1026 .ops
= &clk_regmap_mux_closest_ops
,
1031 static struct clk_regmap_mux gcc_usb4_phy_pcie_pipe_mux_clk_src
= {
1035 .parent_map
= gcc_parent_map_38
,
1037 .hw
.init
= &(const struct clk_init_data
) {
1038 .name
= "gcc_usb4_phy_pcie_pipe_mux_clk_src",
1039 .parent_data
= gcc_parent_data_38
,
1040 .num_parents
= ARRAY_SIZE(gcc_parent_data_38
),
1041 .ops
= &clk_regmap_mux_closest_ops
,
1046 static struct clk_regmap_mux gcc_usb4_phy_rx0_clk_src
= {
1050 .parent_map
= gcc_parent_map_39
,
1052 .hw
.init
= &(const struct clk_init_data
) {
1053 .name
= "gcc_usb4_phy_rx0_clk_src",
1054 .parent_data
= gcc_parent_data_39
,
1055 .num_parents
= ARRAY_SIZE(gcc_parent_data_39
),
1056 .ops
= &clk_regmap_mux_closest_ops
,
1061 static struct clk_regmap_mux gcc_usb4_phy_rx1_clk_src
= {
1065 .parent_map
= gcc_parent_map_40
,
1067 .hw
.init
= &(const struct clk_init_data
) {
1068 .name
= "gcc_usb4_phy_rx1_clk_src",
1069 .parent_data
= gcc_parent_data_40
,
1070 .num_parents
= ARRAY_SIZE(gcc_parent_data_40
),
1071 .ops
= &clk_regmap_mux_closest_ops
,
1076 static struct clk_regmap_mux gcc_usb4_phy_sys_clk_src
= {
1080 .parent_map
= gcc_parent_map_41
,
1082 .hw
.init
= &(const struct clk_init_data
) {
1083 .name
= "gcc_usb4_phy_sys_clk_src",
1084 .parent_data
= gcc_parent_data_41
,
1085 .num_parents
= ARRAY_SIZE(gcc_parent_data_41
),
1086 .ops
= &clk_regmap_mux_closest_ops
,
1091 static const struct freq_tbl ftbl_gcc_emac0_ptp_clk_src
[] = {
1092 F(75000000, P_GCC_GPLL0_OUT_EVEN
, 4, 0, 0),
1093 F(125000000, P_GCC_GPLL7_OUT_MAIN
, 4, 0, 0),
1094 F(230400000, P_GCC_GPLL4_OUT_MAIN
, 3.5, 0, 0),
1098 static struct clk_rcg2 gcc_emac0_ptp_clk_src
= {
1099 .cmd_rcgr
= 0xaa020,
1102 .parent_map
= gcc_parent_map_4
,
1103 .freq_tbl
= ftbl_gcc_emac0_ptp_clk_src
,
1104 .clkr
.hw
.init
= &(const struct clk_init_data
) {
1105 .name
= "gcc_emac0_ptp_clk_src",
1106 .parent_data
= gcc_parent_data_4
,
1107 .num_parents
= ARRAY_SIZE(gcc_parent_data_4
),
1108 .ops
= &clk_rcg2_shared_ops
,
1112 static const struct freq_tbl ftbl_gcc_emac0_rgmii_clk_src
[] = {
1113 F(50000000, P_GCC_GPLL0_OUT_EVEN
, 6, 0, 0),
1114 F(125000000, P_GCC_GPLL7_OUT_MAIN
, 4, 0, 0),
1115 F(250000000, P_GCC_GPLL7_OUT_MAIN
, 2, 0, 0),
1119 static struct clk_rcg2 gcc_emac0_rgmii_clk_src
= {
1120 .cmd_rcgr
= 0xaa040,
1123 .parent_map
= gcc_parent_map_8
,
1124 .freq_tbl
= ftbl_gcc_emac0_rgmii_clk_src
,
1125 .clkr
.hw
.init
= &(const struct clk_init_data
) {
1126 .name
= "gcc_emac0_rgmii_clk_src",
1127 .parent_data
= gcc_parent_data_8
,
1128 .num_parents
= ARRAY_SIZE(gcc_parent_data_8
),
1129 .ops
= &clk_rcg2_shared_ops
,
1133 static struct clk_rcg2 gcc_emac1_ptp_clk_src
= {
1134 .cmd_rcgr
= 0xba020,
1137 .parent_map
= gcc_parent_map_4
,
1138 .freq_tbl
= ftbl_gcc_emac0_ptp_clk_src
,
1139 .clkr
.hw
.init
= &(const struct clk_init_data
) {
1140 .name
= "gcc_emac1_ptp_clk_src",
1141 .parent_data
= gcc_parent_data_4
,
1142 .num_parents
= ARRAY_SIZE(gcc_parent_data_4
),
1143 .ops
= &clk_rcg2_shared_ops
,
1147 static struct clk_rcg2 gcc_emac1_rgmii_clk_src
= {
1148 .cmd_rcgr
= 0xba040,
1151 .parent_map
= gcc_parent_map_9
,
1152 .freq_tbl
= ftbl_gcc_emac0_rgmii_clk_src
,
1153 .clkr
.hw
.init
= &(const struct clk_init_data
) {
1154 .name
= "gcc_emac1_rgmii_clk_src",
1155 .parent_data
= gcc_parent_data_9
,
1156 .num_parents
= ARRAY_SIZE(gcc_parent_data_9
),
1157 .ops
= &clk_rcg2_shared_ops
,
1161 static const struct freq_tbl ftbl_gcc_gp1_clk_src
[] = {
1162 F(50000000, P_GCC_GPLL0_OUT_EVEN
, 6, 0, 0),
1163 F(100000000, P_GCC_GPLL0_OUT_MAIN
, 6, 0, 0),
1164 F(200000000, P_GCC_GPLL0_OUT_MAIN
, 3, 0, 0),
1168 static struct clk_rcg2 gcc_gp1_clk_src
= {
1169 .cmd_rcgr
= 0x64004,
1172 .parent_map
= gcc_parent_map_2
,
1173 .freq_tbl
= ftbl_gcc_gp1_clk_src
,
1174 .clkr
.hw
.init
= &(const struct clk_init_data
) {
1175 .name
= "gcc_gp1_clk_src",
1176 .parent_data
= gcc_parent_data_2
,
1177 .num_parents
= ARRAY_SIZE(gcc_parent_data_2
),
1178 .ops
= &clk_rcg2_shared_ops
,
1182 static struct clk_rcg2 gcc_gp2_clk_src
= {
1183 .cmd_rcgr
= 0x65004,
1186 .parent_map
= gcc_parent_map_2
,
1187 .freq_tbl
= ftbl_gcc_gp1_clk_src
,
1188 .clkr
.hw
.init
= &(const struct clk_init_data
) {
1189 .name
= "gcc_gp2_clk_src",
1190 .parent_data
= gcc_parent_data_2
,
1191 .num_parents
= ARRAY_SIZE(gcc_parent_data_2
),
1192 .ops
= &clk_rcg2_shared_ops
,
1196 static struct clk_rcg2 gcc_gp3_clk_src
= {
1197 .cmd_rcgr
= 0x66004,
1200 .parent_map
= gcc_parent_map_2
,
1201 .freq_tbl
= ftbl_gcc_gp1_clk_src
,
1202 .clkr
.hw
.init
= &(const struct clk_init_data
) {
1203 .name
= "gcc_gp3_clk_src",
1204 .parent_data
= gcc_parent_data_2
,
1205 .num_parents
= ARRAY_SIZE(gcc_parent_data_2
),
1206 .ops
= &clk_rcg2_shared_ops
,
1210 static struct clk_rcg2 gcc_gp4_clk_src
= {
1211 .cmd_rcgr
= 0xc2004,
1214 .parent_map
= gcc_parent_map_2
,
1215 .freq_tbl
= ftbl_gcc_gp1_clk_src
,
1216 .clkr
.hw
.init
= &(const struct clk_init_data
) {
1217 .name
= "gcc_gp4_clk_src",
1218 .parent_data
= gcc_parent_data_2
,
1219 .num_parents
= ARRAY_SIZE(gcc_parent_data_2
),
1220 .ops
= &clk_rcg2_shared_ops
,
1224 static struct clk_rcg2 gcc_gp5_clk_src
= {
1225 .cmd_rcgr
= 0xc3004,
1228 .parent_map
= gcc_parent_map_2
,
1229 .freq_tbl
= ftbl_gcc_gp1_clk_src
,
1230 .clkr
.hw
.init
= &(const struct clk_init_data
) {
1231 .name
= "gcc_gp5_clk_src",
1232 .parent_data
= gcc_parent_data_2
,
1233 .num_parents
= ARRAY_SIZE(gcc_parent_data_2
),
1234 .ops
= &clk_rcg2_shared_ops
,
1238 static const struct freq_tbl ftbl_gcc_pcie_0_aux_clk_src
[] = {
1239 F(9600000, P_BI_TCXO
, 2, 0, 0),
1240 F(19200000, P_BI_TCXO
, 1, 0, 0),
1244 static struct clk_rcg2 gcc_pcie_0_aux_clk_src
= {
1245 .cmd_rcgr
= 0xa4054,
1248 .parent_map
= gcc_parent_map_1
,
1249 .freq_tbl
= ftbl_gcc_pcie_0_aux_clk_src
,
1250 .clkr
.hw
.init
= &(const struct clk_init_data
) {
1251 .name
= "gcc_pcie_0_aux_clk_src",
1252 .parent_data
= gcc_parent_data_1
,
1253 .num_parents
= ARRAY_SIZE(gcc_parent_data_1
),
1254 .ops
= &clk_rcg2_shared_ops
,
1258 static const struct freq_tbl ftbl_gcc_pcie_0_phy_rchng_clk_src
[] = {
1259 F(100000000, P_GCC_GPLL0_OUT_EVEN
, 3, 0, 0),
1263 static struct clk_rcg2 gcc_pcie_0_phy_rchng_clk_src
= {
1264 .cmd_rcgr
= 0xa403c,
1267 .parent_map
= gcc_parent_map_0
,
1268 .freq_tbl
= ftbl_gcc_pcie_0_phy_rchng_clk_src
,
1269 .clkr
.hw
.init
= &(const struct clk_init_data
) {
1270 .name
= "gcc_pcie_0_phy_rchng_clk_src",
1271 .parent_data
= gcc_parent_data_0
,
1272 .num_parents
= ARRAY_SIZE(gcc_parent_data_0
),
1273 .ops
= &clk_rcg2_shared_ops
,
1277 static const struct freq_tbl ftbl_gcc_pcie_1_aux_clk_src
[] = {
1278 F(19200000, P_BI_TCXO
, 1, 0, 0),
1282 static struct clk_rcg2 gcc_pcie_1_aux_clk_src
= {
1283 .cmd_rcgr
= 0x8d054,
1286 .parent_map
= gcc_parent_map_1
,
1287 .freq_tbl
= ftbl_gcc_pcie_1_aux_clk_src
,
1288 .clkr
.hw
.init
= &(const struct clk_init_data
) {
1289 .name
= "gcc_pcie_1_aux_clk_src",
1290 .parent_data
= gcc_parent_data_1
,
1291 .num_parents
= ARRAY_SIZE(gcc_parent_data_1
),
1292 .ops
= &clk_rcg2_shared_ops
,
1296 static struct clk_rcg2 gcc_pcie_1_phy_rchng_clk_src
= {
1297 .cmd_rcgr
= 0x8d03c,
1300 .parent_map
= gcc_parent_map_0
,
1301 .freq_tbl
= ftbl_gcc_pcie_0_phy_rchng_clk_src
,
1302 .clkr
.hw
.init
= &(const struct clk_init_data
) {
1303 .name
= "gcc_pcie_1_phy_rchng_clk_src",
1304 .parent_data
= gcc_parent_data_0
,
1305 .num_parents
= ARRAY_SIZE(gcc_parent_data_0
),
1306 .ops
= &clk_rcg2_shared_ops
,
1310 static struct clk_rcg2 gcc_pcie_2a_aux_clk_src
= {
1311 .cmd_rcgr
= 0x9d064,
1314 .parent_map
= gcc_parent_map_1
,
1315 .freq_tbl
= ftbl_gcc_pcie_1_aux_clk_src
,
1316 .clkr
.hw
.init
= &(const struct clk_init_data
) {
1317 .name
= "gcc_pcie_2a_aux_clk_src",
1318 .parent_data
= gcc_parent_data_1
,
1319 .num_parents
= ARRAY_SIZE(gcc_parent_data_1
),
1320 .ops
= &clk_rcg2_shared_ops
,
1324 static struct clk_rcg2 gcc_pcie_2a_phy_rchng_clk_src
= {
1325 .cmd_rcgr
= 0x9d044,
1328 .parent_map
= gcc_parent_map_0
,
1329 .freq_tbl
= ftbl_gcc_pcie_0_phy_rchng_clk_src
,
1330 .clkr
.hw
.init
= &(const struct clk_init_data
) {
1331 .name
= "gcc_pcie_2a_phy_rchng_clk_src",
1332 .parent_data
= gcc_parent_data_0
,
1333 .num_parents
= ARRAY_SIZE(gcc_parent_data_0
),
1334 .ops
= &clk_rcg2_shared_ops
,
1338 static struct clk_rcg2 gcc_pcie_2b_aux_clk_src
= {
1339 .cmd_rcgr
= 0x9e064,
1342 .parent_map
= gcc_parent_map_1
,
1343 .freq_tbl
= ftbl_gcc_pcie_1_aux_clk_src
,
1344 .clkr
.hw
.init
= &(const struct clk_init_data
) {
1345 .name
= "gcc_pcie_2b_aux_clk_src",
1346 .parent_data
= gcc_parent_data_1
,
1347 .num_parents
= ARRAY_SIZE(gcc_parent_data_1
),
1348 .ops
= &clk_rcg2_shared_ops
,
1352 static struct clk_rcg2 gcc_pcie_2b_phy_rchng_clk_src
= {
1353 .cmd_rcgr
= 0x9e044,
1356 .parent_map
= gcc_parent_map_0
,
1357 .freq_tbl
= ftbl_gcc_pcie_0_phy_rchng_clk_src
,
1358 .clkr
.hw
.init
= &(const struct clk_init_data
) {
1359 .name
= "gcc_pcie_2b_phy_rchng_clk_src",
1360 .parent_data
= gcc_parent_data_0
,
1361 .num_parents
= ARRAY_SIZE(gcc_parent_data_0
),
1362 .ops
= &clk_rcg2_shared_ops
,
1366 static struct clk_rcg2 gcc_pcie_3a_aux_clk_src
= {
1367 .cmd_rcgr
= 0xa0064,
1370 .parent_map
= gcc_parent_map_1
,
1371 .freq_tbl
= ftbl_gcc_pcie_1_aux_clk_src
,
1372 .clkr
.hw
.init
= &(const struct clk_init_data
) {
1373 .name
= "gcc_pcie_3a_aux_clk_src",
1374 .parent_data
= gcc_parent_data_1
,
1375 .num_parents
= ARRAY_SIZE(gcc_parent_data_1
),
1376 .ops
= &clk_rcg2_shared_ops
,
1380 static struct clk_rcg2 gcc_pcie_3a_phy_rchng_clk_src
= {
1381 .cmd_rcgr
= 0xa0044,
1384 .parent_map
= gcc_parent_map_0
,
1385 .freq_tbl
= ftbl_gcc_pcie_0_phy_rchng_clk_src
,
1386 .clkr
.hw
.init
= &(const struct clk_init_data
) {
1387 .name
= "gcc_pcie_3a_phy_rchng_clk_src",
1388 .parent_data
= gcc_parent_data_0
,
1389 .num_parents
= ARRAY_SIZE(gcc_parent_data_0
),
1390 .ops
= &clk_rcg2_shared_ops
,
1394 static struct clk_rcg2 gcc_pcie_3b_aux_clk_src
= {
1395 .cmd_rcgr
= 0xa2064,
1398 .parent_map
= gcc_parent_map_1
,
1399 .freq_tbl
= ftbl_gcc_pcie_1_aux_clk_src
,
1400 .clkr
.hw
.init
= &(const struct clk_init_data
) {
1401 .name
= "gcc_pcie_3b_aux_clk_src",
1402 .parent_data
= gcc_parent_data_1
,
1403 .num_parents
= ARRAY_SIZE(gcc_parent_data_1
),
1404 .ops
= &clk_rcg2_shared_ops
,
1408 static struct clk_rcg2 gcc_pcie_3b_phy_rchng_clk_src
= {
1409 .cmd_rcgr
= 0xa2044,
1412 .parent_map
= gcc_parent_map_0
,
1413 .freq_tbl
= ftbl_gcc_pcie_0_phy_rchng_clk_src
,
1414 .clkr
.hw
.init
= &(const struct clk_init_data
) {
1415 .name
= "gcc_pcie_3b_phy_rchng_clk_src",
1416 .parent_data
= gcc_parent_data_0
,
1417 .num_parents
= ARRAY_SIZE(gcc_parent_data_0
),
1418 .ops
= &clk_rcg2_shared_ops
,
1422 static struct clk_rcg2 gcc_pcie_4_aux_clk_src
= {
1423 .cmd_rcgr
= 0x6b064,
1426 .parent_map
= gcc_parent_map_1
,
1427 .freq_tbl
= ftbl_gcc_pcie_0_aux_clk_src
,
1428 .clkr
.hw
.init
= &(const struct clk_init_data
) {
1429 .name
= "gcc_pcie_4_aux_clk_src",
1430 .parent_data
= gcc_parent_data_1
,
1431 .num_parents
= ARRAY_SIZE(gcc_parent_data_1
),
1432 .ops
= &clk_rcg2_shared_ops
,
1436 static struct clk_rcg2 gcc_pcie_4_phy_rchng_clk_src
= {
1437 .cmd_rcgr
= 0x6b044,
1440 .parent_map
= gcc_parent_map_0
,
1441 .freq_tbl
= ftbl_gcc_pcie_0_phy_rchng_clk_src
,
1442 .clkr
.hw
.init
= &(const struct clk_init_data
) {
1443 .name
= "gcc_pcie_4_phy_rchng_clk_src",
1444 .parent_data
= gcc_parent_data_0
,
1445 .num_parents
= ARRAY_SIZE(gcc_parent_data_0
),
1446 .ops
= &clk_rcg2_shared_ops
,
1450 static struct clk_rcg2 gcc_pcie_rscc_xo_clk_src
= {
1451 .cmd_rcgr
= 0xae00c,
1454 .parent_map
= gcc_parent_map_3
,
1455 .freq_tbl
= ftbl_gcc_pcie_1_aux_clk_src
,
1456 .clkr
.hw
.init
= &(const struct clk_init_data
) {
1457 .name
= "gcc_pcie_rscc_xo_clk_src",
1458 .parent_data
= gcc_parent_data_3
,
1459 .num_parents
= ARRAY_SIZE(gcc_parent_data_3
),
1460 .ops
= &clk_rcg2_shared_ops
,
1464 static const struct freq_tbl ftbl_gcc_pdm2_clk_src
[] = {
1465 F(60000000, P_GCC_GPLL0_OUT_EVEN
, 5, 0, 0),
1469 static struct clk_rcg2 gcc_pdm2_clk_src
= {
1470 .cmd_rcgr
= 0x33010,
1473 .parent_map
= gcc_parent_map_0
,
1474 .freq_tbl
= ftbl_gcc_pdm2_clk_src
,
1475 .clkr
.hw
.init
= &(const struct clk_init_data
) {
1476 .name
= "gcc_pdm2_clk_src",
1477 .parent_data
= gcc_parent_data_0
,
1478 .num_parents
= ARRAY_SIZE(gcc_parent_data_0
),
1479 .ops
= &clk_rcg2_shared_ops
,
1483 static const struct freq_tbl ftbl_gcc_qupv3_wrap0_s0_clk_src
[] = {
1484 F(7372800, P_GCC_GPLL0_OUT_EVEN
, 1, 384, 15625),
1485 F(14745600, P_GCC_GPLL0_OUT_EVEN
, 1, 768, 15625),
1486 F(19200000, P_BI_TCXO
, 1, 0, 0),
1487 F(29491200, P_GCC_GPLL0_OUT_EVEN
, 1, 1536, 15625),
1488 F(32000000, P_GCC_GPLL0_OUT_EVEN
, 1, 8, 75),
1489 F(48000000, P_GCC_GPLL0_OUT_EVEN
, 1, 4, 25),
1490 F(64000000, P_GCC_GPLL0_OUT_EVEN
, 1, 16, 75),
1491 F(75000000, P_GCC_GPLL0_OUT_EVEN
, 4, 0, 0),
1492 F(80000000, P_GCC_GPLL0_OUT_EVEN
, 1, 4, 15),
1493 F(96000000, P_GCC_GPLL0_OUT_EVEN
, 1, 8, 25),
1494 F(100000000, P_GCC_GPLL0_OUT_MAIN
, 6, 0, 0),
1498 static struct clk_init_data gcc_qupv3_wrap0_s0_clk_src_init
= {
1499 .name
= "gcc_qupv3_wrap0_s0_clk_src",
1500 .parent_data
= gcc_parent_data_0
,
1501 .num_parents
= ARRAY_SIZE(gcc_parent_data_0
),
1502 .flags
= CLK_SET_RATE_PARENT
,
1503 .ops
= &clk_rcg2_ops
,
1506 static struct clk_rcg2 gcc_qupv3_wrap0_s0_clk_src
= {
1507 .cmd_rcgr
= 0x17148,
1510 .parent_map
= gcc_parent_map_0
,
1511 .freq_tbl
= ftbl_gcc_qupv3_wrap0_s0_clk_src
,
1512 .clkr
.hw
.init
= &gcc_qupv3_wrap0_s0_clk_src_init
,
1515 static struct clk_init_data gcc_qupv3_wrap0_s1_clk_src_init
= {
1516 .name
= "gcc_qupv3_wrap0_s1_clk_src",
1517 .parent_data
= gcc_parent_data_0
,
1518 .num_parents
= ARRAY_SIZE(gcc_parent_data_0
),
1519 .flags
= CLK_SET_RATE_PARENT
,
1520 .ops
= &clk_rcg2_ops
,
1523 static struct clk_rcg2 gcc_qupv3_wrap0_s1_clk_src
= {
1524 .cmd_rcgr
= 0x17278,
1527 .parent_map
= gcc_parent_map_0
,
1528 .freq_tbl
= ftbl_gcc_qupv3_wrap0_s0_clk_src
,
1529 .clkr
.hw
.init
= &gcc_qupv3_wrap0_s1_clk_src_init
,
1532 static struct clk_init_data gcc_qupv3_wrap0_s2_clk_src_init
= {
1533 .name
= "gcc_qupv3_wrap0_s2_clk_src",
1534 .parent_data
= gcc_parent_data_0
,
1535 .num_parents
= ARRAY_SIZE(gcc_parent_data_0
),
1536 .flags
= CLK_SET_RATE_PARENT
,
1537 .ops
= &clk_rcg2_ops
,
1540 static struct clk_rcg2 gcc_qupv3_wrap0_s2_clk_src
= {
1541 .cmd_rcgr
= 0x173a8,
1544 .parent_map
= gcc_parent_map_0
,
1545 .freq_tbl
= ftbl_gcc_qupv3_wrap0_s0_clk_src
,
1546 .clkr
.hw
.init
= &gcc_qupv3_wrap0_s2_clk_src_init
,
1549 static struct clk_init_data gcc_qupv3_wrap0_s3_clk_src_init
= {
1550 .name
= "gcc_qupv3_wrap0_s3_clk_src",
1551 .parent_data
= gcc_parent_data_0
,
1552 .num_parents
= ARRAY_SIZE(gcc_parent_data_0
),
1553 .flags
= CLK_SET_RATE_PARENT
,
1554 .ops
= &clk_rcg2_ops
,
1557 static struct clk_rcg2 gcc_qupv3_wrap0_s3_clk_src
= {
1558 .cmd_rcgr
= 0x174d8,
1561 .parent_map
= gcc_parent_map_0
,
1562 .freq_tbl
= ftbl_gcc_qupv3_wrap0_s0_clk_src
,
1563 .clkr
.hw
.init
= &gcc_qupv3_wrap0_s3_clk_src_init
,
1566 static struct clk_init_data gcc_qupv3_wrap0_s4_clk_src_init
= {
1567 .name
= "gcc_qupv3_wrap0_s4_clk_src",
1568 .parent_data
= gcc_parent_data_0
,
1569 .num_parents
= ARRAY_SIZE(gcc_parent_data_0
),
1570 .flags
= CLK_SET_RATE_PARENT
,
1571 .ops
= &clk_rcg2_ops
,
1574 static struct clk_rcg2 gcc_qupv3_wrap0_s4_clk_src
= {
1575 .cmd_rcgr
= 0x17608,
1578 .parent_map
= gcc_parent_map_0
,
1579 .freq_tbl
= ftbl_gcc_qupv3_wrap0_s0_clk_src
,
1580 .clkr
.hw
.init
= &gcc_qupv3_wrap0_s4_clk_src_init
,
1583 static struct clk_init_data gcc_qupv3_wrap0_s5_clk_src_init
= {
1584 .name
= "gcc_qupv3_wrap0_s5_clk_src",
1585 .parent_data
= gcc_parent_data_0
,
1586 .num_parents
= ARRAY_SIZE(gcc_parent_data_0
),
1587 .flags
= CLK_SET_RATE_PARENT
,
1588 .ops
= &clk_rcg2_ops
,
1591 static struct clk_rcg2 gcc_qupv3_wrap0_s5_clk_src
= {
1592 .cmd_rcgr
= 0x17738,
1595 .parent_map
= gcc_parent_map_0
,
1596 .freq_tbl
= ftbl_gcc_qupv3_wrap0_s0_clk_src
,
1597 .clkr
.hw
.init
= &gcc_qupv3_wrap0_s5_clk_src_init
,
1600 static const struct freq_tbl ftbl_gcc_qupv3_wrap0_s6_clk_src
[] = {
1601 F(7372800, P_GCC_GPLL0_OUT_EVEN
, 1, 384, 15625),
1602 F(14745600, P_GCC_GPLL0_OUT_EVEN
, 1, 768, 15625),
1603 F(19200000, P_BI_TCXO
, 1, 0, 0),
1604 F(29491200, P_GCC_GPLL0_OUT_EVEN
, 1, 1536, 15625),
1605 F(32000000, P_GCC_GPLL0_OUT_EVEN
, 1, 8, 75),
1606 F(48000000, P_GCC_GPLL0_OUT_EVEN
, 1, 4, 25),
1607 F(64000000, P_GCC_GPLL0_OUT_EVEN
, 1, 16, 75),
1608 F(75000000, P_GCC_GPLL0_OUT_EVEN
, 4, 0, 0),
1609 F(80000000, P_GCC_GPLL0_OUT_EVEN
, 1, 4, 15),
1610 F(96000000, P_GCC_GPLL0_OUT_EVEN
, 1, 8, 25),
1611 F(120000000, P_GCC_GPLL0_OUT_MAIN
, 5, 0, 0),
1615 static struct clk_init_data gcc_qupv3_wrap0_s6_clk_src_init
= {
1616 .name
= "gcc_qupv3_wrap0_s6_clk_src",
1617 .parent_data
= gcc_parent_data_0
,
1618 .num_parents
= ARRAY_SIZE(gcc_parent_data_0
),
1619 .flags
= CLK_SET_RATE_PARENT
,
1620 .ops
= &clk_rcg2_ops
,
1623 static struct clk_rcg2 gcc_qupv3_wrap0_s6_clk_src
= {
1624 .cmd_rcgr
= 0x17868,
1627 .parent_map
= gcc_parent_map_0
,
1628 .freq_tbl
= ftbl_gcc_qupv3_wrap0_s6_clk_src
,
1629 .clkr
.hw
.init
= &gcc_qupv3_wrap0_s6_clk_src_init
,
1632 static struct clk_init_data gcc_qupv3_wrap0_s7_clk_src_init
= {
1633 .name
= "gcc_qupv3_wrap0_s7_clk_src",
1634 .parent_data
= gcc_parent_data_0
,
1635 .num_parents
= ARRAY_SIZE(gcc_parent_data_0
),
1636 .flags
= CLK_SET_RATE_PARENT
,
1637 .ops
= &clk_rcg2_ops
,
1640 static struct clk_rcg2 gcc_qupv3_wrap0_s7_clk_src
= {
1641 .cmd_rcgr
= 0x17998,
1644 .parent_map
= gcc_parent_map_0
,
1645 .freq_tbl
= ftbl_gcc_qupv3_wrap0_s6_clk_src
,
1646 .clkr
.hw
.init
= &gcc_qupv3_wrap0_s7_clk_src_init
,
1649 static struct clk_init_data gcc_qupv3_wrap1_s0_clk_src_init
= {
1650 .name
= "gcc_qupv3_wrap1_s0_clk_src",
1651 .parent_data
= gcc_parent_data_0
,
1652 .num_parents
= ARRAY_SIZE(gcc_parent_data_0
),
1653 .flags
= CLK_SET_RATE_PARENT
,
1654 .ops
= &clk_rcg2_ops
,
1657 static struct clk_rcg2 gcc_qupv3_wrap1_s0_clk_src
= {
1658 .cmd_rcgr
= 0x18148,
1661 .parent_map
= gcc_parent_map_0
,
1662 .freq_tbl
= ftbl_gcc_qupv3_wrap0_s0_clk_src
,
1663 .clkr
.hw
.init
= &gcc_qupv3_wrap1_s0_clk_src_init
,
1666 static struct clk_init_data gcc_qupv3_wrap1_s1_clk_src_init
= {
1667 .name
= "gcc_qupv3_wrap1_s1_clk_src",
1668 .parent_data
= gcc_parent_data_0
,
1669 .num_parents
= ARRAY_SIZE(gcc_parent_data_0
),
1670 .flags
= CLK_SET_RATE_PARENT
,
1671 .ops
= &clk_rcg2_ops
,
1674 static struct clk_rcg2 gcc_qupv3_wrap1_s1_clk_src
= {
1675 .cmd_rcgr
= 0x18278,
1678 .parent_map
= gcc_parent_map_0
,
1679 .freq_tbl
= ftbl_gcc_qupv3_wrap0_s0_clk_src
,
1680 .clkr
.hw
.init
= &gcc_qupv3_wrap1_s1_clk_src_init
,
1683 static struct clk_init_data gcc_qupv3_wrap1_s2_clk_src_init
= {
1684 .name
= "gcc_qupv3_wrap1_s2_clk_src",
1685 .parent_data
= gcc_parent_data_0
,
1686 .num_parents
= ARRAY_SIZE(gcc_parent_data_0
),
1687 .flags
= CLK_SET_RATE_PARENT
,
1688 .ops
= &clk_rcg2_ops
,
1691 static struct clk_rcg2 gcc_qupv3_wrap1_s2_clk_src
= {
1692 .cmd_rcgr
= 0x183a8,
1695 .parent_map
= gcc_parent_map_0
,
1696 .freq_tbl
= ftbl_gcc_qupv3_wrap0_s0_clk_src
,
1697 .clkr
.hw
.init
= &gcc_qupv3_wrap1_s2_clk_src_init
,
1700 static struct clk_init_data gcc_qupv3_wrap1_s3_clk_src_init
= {
1701 .name
= "gcc_qupv3_wrap1_s3_clk_src",
1702 .parent_data
= gcc_parent_data_0
,
1703 .num_parents
= ARRAY_SIZE(gcc_parent_data_0
),
1704 .flags
= CLK_SET_RATE_PARENT
,
1705 .ops
= &clk_rcg2_ops
,
1708 static struct clk_rcg2 gcc_qupv3_wrap1_s3_clk_src
= {
1709 .cmd_rcgr
= 0x184d8,
1712 .parent_map
= gcc_parent_map_0
,
1713 .freq_tbl
= ftbl_gcc_qupv3_wrap0_s0_clk_src
,
1714 .clkr
.hw
.init
= &gcc_qupv3_wrap1_s3_clk_src_init
,
1717 static struct clk_init_data gcc_qupv3_wrap1_s4_clk_src_init
= {
1718 .name
= "gcc_qupv3_wrap1_s4_clk_src",
1719 .parent_data
= gcc_parent_data_0
,
1720 .num_parents
= ARRAY_SIZE(gcc_parent_data_0
),
1721 .flags
= CLK_SET_RATE_PARENT
,
1722 .ops
= &clk_rcg2_ops
,
1725 static struct clk_rcg2 gcc_qupv3_wrap1_s4_clk_src
= {
1726 .cmd_rcgr
= 0x18608,
1729 .parent_map
= gcc_parent_map_0
,
1730 .freq_tbl
= ftbl_gcc_qupv3_wrap0_s0_clk_src
,
1731 .clkr
.hw
.init
= &gcc_qupv3_wrap1_s4_clk_src_init
,
1734 static struct clk_init_data gcc_qupv3_wrap1_s5_clk_src_init
= {
1735 .name
= "gcc_qupv3_wrap1_s5_clk_src",
1736 .parent_data
= gcc_parent_data_0
,
1737 .num_parents
= ARRAY_SIZE(gcc_parent_data_0
),
1738 .flags
= CLK_SET_RATE_PARENT
,
1739 .ops
= &clk_rcg2_ops
,
1742 static struct clk_rcg2 gcc_qupv3_wrap1_s5_clk_src
= {
1743 .cmd_rcgr
= 0x18738,
1746 .parent_map
= gcc_parent_map_0
,
1747 .freq_tbl
= ftbl_gcc_qupv3_wrap0_s0_clk_src
,
1748 .clkr
.hw
.init
= &gcc_qupv3_wrap1_s5_clk_src_init
,
1751 static struct clk_init_data gcc_qupv3_wrap1_s6_clk_src_init
= {
1752 .name
= "gcc_qupv3_wrap1_s6_clk_src",
1753 .parent_data
= gcc_parent_data_0
,
1754 .num_parents
= ARRAY_SIZE(gcc_parent_data_0
),
1755 .flags
= CLK_SET_RATE_PARENT
,
1756 .ops
= &clk_rcg2_ops
,
1759 static struct clk_rcg2 gcc_qupv3_wrap1_s6_clk_src
= {
1760 .cmd_rcgr
= 0x18868,
1763 .parent_map
= gcc_parent_map_0
,
1764 .freq_tbl
= ftbl_gcc_qupv3_wrap0_s6_clk_src
,
1765 .clkr
.hw
.init
= &gcc_qupv3_wrap1_s6_clk_src_init
,
1768 static struct clk_init_data gcc_qupv3_wrap1_s7_clk_src_init
= {
1769 .name
= "gcc_qupv3_wrap1_s7_clk_src",
1770 .parent_data
= gcc_parent_data_0
,
1771 .num_parents
= ARRAY_SIZE(gcc_parent_data_0
),
1772 .flags
= CLK_SET_RATE_PARENT
,
1773 .ops
= &clk_rcg2_ops
,
1776 static struct clk_rcg2 gcc_qupv3_wrap1_s7_clk_src
= {
1777 .cmd_rcgr
= 0x18998,
1780 .parent_map
= gcc_parent_map_0
,
1781 .freq_tbl
= ftbl_gcc_qupv3_wrap0_s6_clk_src
,
1782 .clkr
.hw
.init
= &gcc_qupv3_wrap1_s7_clk_src_init
,
1785 static struct clk_init_data gcc_qupv3_wrap2_s0_clk_src_init
= {
1786 .name
= "gcc_qupv3_wrap2_s0_clk_src",
1787 .parent_data
= gcc_parent_data_0
,
1788 .num_parents
= ARRAY_SIZE(gcc_parent_data_0
),
1789 .flags
= CLK_SET_RATE_PARENT
,
1790 .ops
= &clk_rcg2_ops
,
1793 static struct clk_rcg2 gcc_qupv3_wrap2_s0_clk_src
= {
1794 .cmd_rcgr
= 0x1e148,
1797 .parent_map
= gcc_parent_map_0
,
1798 .freq_tbl
= ftbl_gcc_qupv3_wrap0_s0_clk_src
,
1799 .clkr
.hw
.init
= &gcc_qupv3_wrap2_s0_clk_src_init
,
1802 static struct clk_init_data gcc_qupv3_wrap2_s1_clk_src_init
= {
1803 .name
= "gcc_qupv3_wrap2_s1_clk_src",
1804 .parent_data
= gcc_parent_data_0
,
1805 .num_parents
= ARRAY_SIZE(gcc_parent_data_0
),
1806 .flags
= CLK_SET_RATE_PARENT
,
1807 .ops
= &clk_rcg2_ops
,
1810 static struct clk_rcg2 gcc_qupv3_wrap2_s1_clk_src
= {
1811 .cmd_rcgr
= 0x1e278,
1814 .parent_map
= gcc_parent_map_0
,
1815 .freq_tbl
= ftbl_gcc_qupv3_wrap0_s0_clk_src
,
1816 .clkr
.hw
.init
= &gcc_qupv3_wrap2_s1_clk_src_init
,
1819 static struct clk_init_data gcc_qupv3_wrap2_s2_clk_src_init
= {
1820 .name
= "gcc_qupv3_wrap2_s2_clk_src",
1821 .parent_data
= gcc_parent_data_0
,
1822 .num_parents
= ARRAY_SIZE(gcc_parent_data_0
),
1823 .flags
= CLK_SET_RATE_PARENT
,
1824 .ops
= &clk_rcg2_ops
,
1827 static struct clk_rcg2 gcc_qupv3_wrap2_s2_clk_src
= {
1828 .cmd_rcgr
= 0x1e3a8,
1831 .parent_map
= gcc_parent_map_0
,
1832 .freq_tbl
= ftbl_gcc_qupv3_wrap0_s0_clk_src
,
1833 .clkr
.hw
.init
= &gcc_qupv3_wrap2_s2_clk_src_init
,
1836 static struct clk_init_data gcc_qupv3_wrap2_s3_clk_src_init
= {
1837 .name
= "gcc_qupv3_wrap2_s3_clk_src",
1838 .parent_data
= gcc_parent_data_0
,
1839 .num_parents
= ARRAY_SIZE(gcc_parent_data_0
),
1840 .flags
= CLK_SET_RATE_PARENT
,
1841 .ops
= &clk_rcg2_ops
,
1844 static struct clk_rcg2 gcc_qupv3_wrap2_s3_clk_src
= {
1845 .cmd_rcgr
= 0x1e4d8,
1848 .parent_map
= gcc_parent_map_0
,
1849 .freq_tbl
= ftbl_gcc_qupv3_wrap0_s0_clk_src
,
1850 .clkr
.hw
.init
= &gcc_qupv3_wrap2_s3_clk_src_init
,
1853 static struct clk_init_data gcc_qupv3_wrap2_s4_clk_src_init
= {
1854 .name
= "gcc_qupv3_wrap2_s4_clk_src",
1855 .parent_data
= gcc_parent_data_0
,
1856 .num_parents
= ARRAY_SIZE(gcc_parent_data_0
),
1857 .flags
= CLK_SET_RATE_PARENT
,
1858 .ops
= &clk_rcg2_ops
,
1861 static struct clk_rcg2 gcc_qupv3_wrap2_s4_clk_src
= {
1862 .cmd_rcgr
= 0x1e608,
1865 .parent_map
= gcc_parent_map_0
,
1866 .freq_tbl
= ftbl_gcc_qupv3_wrap0_s0_clk_src
,
1867 .clkr
.hw
.init
= &gcc_qupv3_wrap2_s4_clk_src_init
,
1870 static struct clk_init_data gcc_qupv3_wrap2_s5_clk_src_init
= {
1871 .name
= "gcc_qupv3_wrap2_s5_clk_src",
1872 .parent_data
= gcc_parent_data_0
,
1873 .num_parents
= ARRAY_SIZE(gcc_parent_data_0
),
1874 .flags
= CLK_SET_RATE_PARENT
,
1875 .ops
= &clk_rcg2_ops
,
1878 static struct clk_rcg2 gcc_qupv3_wrap2_s5_clk_src
= {
1879 .cmd_rcgr
= 0x1e738,
1882 .parent_map
= gcc_parent_map_0
,
1883 .freq_tbl
= ftbl_gcc_qupv3_wrap0_s0_clk_src
,
1884 .clkr
.hw
.init
= &gcc_qupv3_wrap2_s5_clk_src_init
,
1887 static struct clk_init_data gcc_qupv3_wrap2_s6_clk_src_init
= {
1888 .name
= "gcc_qupv3_wrap2_s6_clk_src",
1889 .parent_data
= gcc_parent_data_0
,
1890 .num_parents
= ARRAY_SIZE(gcc_parent_data_0
),
1891 .flags
= CLK_SET_RATE_PARENT
,
1892 .ops
= &clk_rcg2_ops
,
1895 static struct clk_rcg2 gcc_qupv3_wrap2_s6_clk_src
= {
1896 .cmd_rcgr
= 0x1e868,
1899 .parent_map
= gcc_parent_map_0
,
1900 .freq_tbl
= ftbl_gcc_qupv3_wrap0_s6_clk_src
,
1901 .clkr
.hw
.init
= &gcc_qupv3_wrap2_s6_clk_src_init
,
1904 static struct clk_init_data gcc_qupv3_wrap2_s7_clk_src_init
= {
1905 .name
= "gcc_qupv3_wrap2_s7_clk_src",
1906 .parent_data
= gcc_parent_data_0
,
1907 .num_parents
= ARRAY_SIZE(gcc_parent_data_0
),
1908 .flags
= CLK_SET_RATE_PARENT
,
1909 .ops
= &clk_rcg2_ops
,
1912 static struct clk_rcg2 gcc_qupv3_wrap2_s7_clk_src
= {
1913 .cmd_rcgr
= 0x1e998,
1916 .parent_map
= gcc_parent_map_0
,
1917 .freq_tbl
= ftbl_gcc_qupv3_wrap0_s6_clk_src
,
1918 .clkr
.hw
.init
= &gcc_qupv3_wrap2_s7_clk_src_init
,
1921 static const struct freq_tbl ftbl_gcc_sdcc2_apps_clk_src
[] = {
1922 F(400000, P_BI_TCXO
, 12, 1, 4),
1923 F(25000000, P_GCC_GPLL0_OUT_EVEN
, 12, 0, 0),
1924 F(50000000, P_GCC_GPLL0_OUT_EVEN
, 6, 0, 0),
1925 F(100000000, P_GCC_GPLL0_OUT_EVEN
, 3, 0, 0),
1926 F(202000000, P_GCC_GPLL9_OUT_MAIN
, 4, 0, 0),
1930 static struct clk_rcg2 gcc_sdcc2_apps_clk_src
= {
1931 .cmd_rcgr
= 0x1400c,
1934 .parent_map
= gcc_parent_map_15
,
1935 .freq_tbl
= ftbl_gcc_sdcc2_apps_clk_src
,
1936 .clkr
.hw
.init
= &(const struct clk_init_data
) {
1937 .name
= "gcc_sdcc2_apps_clk_src",
1938 .parent_data
= gcc_parent_data_15
,
1939 .num_parents
= ARRAY_SIZE(gcc_parent_data_15
),
1940 .ops
= &clk_rcg2_shared_ops
,
1944 static const struct freq_tbl ftbl_gcc_sdcc4_apps_clk_src
[] = {
1945 F(400000, P_BI_TCXO
, 12, 1, 4),
1946 F(25000000, P_GCC_GPLL0_OUT_EVEN
, 12, 0, 0),
1947 F(100000000, P_GCC_GPLL0_OUT_EVEN
, 3, 0, 0),
1951 static struct clk_rcg2 gcc_sdcc4_apps_clk_src
= {
1952 .cmd_rcgr
= 0x1600c,
1955 .parent_map
= gcc_parent_map_0
,
1956 .freq_tbl
= ftbl_gcc_sdcc4_apps_clk_src
,
1957 .clkr
.hw
.init
= &(const struct clk_init_data
) {
1958 .name
= "gcc_sdcc4_apps_clk_src",
1959 .parent_data
= gcc_parent_data_0
,
1960 .num_parents
= ARRAY_SIZE(gcc_parent_data_0
),
1961 .ops
= &clk_rcg2_shared_ops
,
1965 static const struct freq_tbl ftbl_gcc_ufs_card_axi_clk_src
[] = {
1966 F(25000000, P_GCC_GPLL0_OUT_EVEN
, 12, 0, 0),
1967 F(75000000, P_GCC_GPLL0_OUT_EVEN
, 4, 0, 0),
1968 F(150000000, P_GCC_GPLL0_OUT_MAIN
, 4, 0, 0),
1969 F(300000000, P_GCC_GPLL0_OUT_MAIN
, 2, 0, 0),
1973 static struct clk_rcg2 gcc_ufs_card_axi_clk_src
= {
1974 .cmd_rcgr
= 0x75024,
1977 .parent_map
= gcc_parent_map_0
,
1978 .freq_tbl
= ftbl_gcc_ufs_card_axi_clk_src
,
1979 .clkr
.hw
.init
= &(const struct clk_init_data
) {
1980 .name
= "gcc_ufs_card_axi_clk_src",
1981 .parent_data
= gcc_parent_data_0
,
1982 .num_parents
= ARRAY_SIZE(gcc_parent_data_0
),
1983 .ops
= &clk_rcg2_shared_ops
,
1987 static const struct freq_tbl ftbl_gcc_ufs_card_ice_core_clk_src
[] = {
1988 F(75000000, P_GCC_GPLL0_OUT_EVEN
, 4, 0, 0),
1989 F(150000000, P_GCC_GPLL0_OUT_MAIN
, 4, 0, 0),
1990 F(300000000, P_GCC_GPLL0_OUT_MAIN
, 2, 0, 0),
1994 static struct clk_rcg2 gcc_ufs_card_ice_core_clk_src
= {
1995 .cmd_rcgr
= 0x7506c,
1998 .parent_map
= gcc_parent_map_0
,
1999 .freq_tbl
= ftbl_gcc_ufs_card_ice_core_clk_src
,
2000 .clkr
.hw
.init
= &(const struct clk_init_data
) {
2001 .name
= "gcc_ufs_card_ice_core_clk_src",
2002 .parent_data
= gcc_parent_data_0
,
2003 .num_parents
= ARRAY_SIZE(gcc_parent_data_0
),
2004 .ops
= &clk_rcg2_shared_ops
,
2008 static struct clk_rcg2 gcc_ufs_card_phy_aux_clk_src
= {
2009 .cmd_rcgr
= 0x750a0,
2012 .parent_map
= gcc_parent_map_3
,
2013 .freq_tbl
= ftbl_gcc_pcie_1_aux_clk_src
,
2014 .clkr
.hw
.init
= &(const struct clk_init_data
) {
2015 .name
= "gcc_ufs_card_phy_aux_clk_src",
2016 .parent_data
= gcc_parent_data_3
,
2017 .num_parents
= ARRAY_SIZE(gcc_parent_data_3
),
2018 .ops
= &clk_rcg2_shared_ops
,
2022 static struct clk_rcg2 gcc_ufs_card_unipro_core_clk_src
= {
2023 .cmd_rcgr
= 0x75084,
2026 .parent_map
= gcc_parent_map_0
,
2027 .freq_tbl
= ftbl_gcc_ufs_card_ice_core_clk_src
,
2028 .clkr
.hw
.init
= &(const struct clk_init_data
) {
2029 .name
= "gcc_ufs_card_unipro_core_clk_src",
2030 .parent_data
= gcc_parent_data_0
,
2031 .num_parents
= ARRAY_SIZE(gcc_parent_data_0
),
2032 .ops
= &clk_rcg2_shared_ops
,
2036 static struct clk_rcg2 gcc_ufs_phy_axi_clk_src
= {
2037 .cmd_rcgr
= 0x77024,
2040 .parent_map
= gcc_parent_map_0
,
2041 .freq_tbl
= ftbl_gcc_ufs_card_axi_clk_src
,
2042 .clkr
.hw
.init
= &(const struct clk_init_data
) {
2043 .name
= "gcc_ufs_phy_axi_clk_src",
2044 .parent_data
= gcc_parent_data_0
,
2045 .num_parents
= ARRAY_SIZE(gcc_parent_data_0
),
2046 .ops
= &clk_rcg2_shared_ops
,
2050 static struct clk_rcg2 gcc_ufs_phy_ice_core_clk_src
= {
2051 .cmd_rcgr
= 0x7706c,
2054 .parent_map
= gcc_parent_map_0
,
2055 .freq_tbl
= ftbl_gcc_ufs_card_ice_core_clk_src
,
2056 .clkr
.hw
.init
= &(const struct clk_init_data
) {
2057 .name
= "gcc_ufs_phy_ice_core_clk_src",
2058 .parent_data
= gcc_parent_data_0
,
2059 .num_parents
= ARRAY_SIZE(gcc_parent_data_0
),
2060 .ops
= &clk_rcg2_shared_ops
,
2064 static struct clk_rcg2 gcc_ufs_phy_phy_aux_clk_src
= {
2065 .cmd_rcgr
= 0x770a0,
2068 .parent_map
= gcc_parent_map_3
,
2069 .freq_tbl
= ftbl_gcc_pcie_0_aux_clk_src
,
2070 .clkr
.hw
.init
= &(const struct clk_init_data
) {
2071 .name
= "gcc_ufs_phy_phy_aux_clk_src",
2072 .parent_data
= gcc_parent_data_3
,
2073 .num_parents
= ARRAY_SIZE(gcc_parent_data_3
),
2074 .ops
= &clk_rcg2_shared_ops
,
2078 static struct clk_rcg2 gcc_ufs_phy_unipro_core_clk_src
= {
2079 .cmd_rcgr
= 0x77084,
2082 .parent_map
= gcc_parent_map_0
,
2083 .freq_tbl
= ftbl_gcc_ufs_card_ice_core_clk_src
,
2084 .clkr
.hw
.init
= &(const struct clk_init_data
) {
2085 .name
= "gcc_ufs_phy_unipro_core_clk_src",
2086 .parent_data
= gcc_parent_data_0
,
2087 .num_parents
= ARRAY_SIZE(gcc_parent_data_0
),
2088 .ops
= &clk_rcg2_shared_ops
,
2092 static const struct freq_tbl ftbl_gcc_usb30_mp_master_clk_src
[] = {
2093 F(66666667, P_GCC_GPLL0_OUT_EVEN
, 4.5, 0, 0),
2094 F(133333333, P_GCC_GPLL0_OUT_MAIN
, 4.5, 0, 0),
2095 F(200000000, P_GCC_GPLL0_OUT_MAIN
, 3, 0, 0),
2096 F(240000000, P_GCC_GPLL0_OUT_MAIN
, 2.5, 0, 0),
2100 static struct clk_rcg2 gcc_usb30_mp_master_clk_src
= {
2101 .cmd_rcgr
= 0xab020,
2104 .parent_map
= gcc_parent_map_0
,
2105 .freq_tbl
= ftbl_gcc_usb30_mp_master_clk_src
,
2106 .clkr
.hw
.init
= &(const struct clk_init_data
) {
2107 .name
= "gcc_usb30_mp_master_clk_src",
2108 .parent_data
= gcc_parent_data_0
,
2109 .num_parents
= ARRAY_SIZE(gcc_parent_data_0
),
2110 .ops
= &clk_rcg2_shared_ops
,
2114 static struct clk_rcg2 gcc_usb30_mp_mock_utmi_clk_src
= {
2115 .cmd_rcgr
= 0xab038,
2118 .parent_map
= gcc_parent_map_0
,
2119 .freq_tbl
= ftbl_gcc_pcie_1_aux_clk_src
,
2120 .clkr
.hw
.init
= &(const struct clk_init_data
) {
2121 .name
= "gcc_usb30_mp_mock_utmi_clk_src",
2122 .parent_data
= gcc_parent_data_0
,
2123 .num_parents
= ARRAY_SIZE(gcc_parent_data_0
),
2124 .ops
= &clk_rcg2_shared_ops
,
2128 static struct clk_rcg2 gcc_usb30_prim_master_clk_src
= {
2132 .parent_map
= gcc_parent_map_0
,
2133 .freq_tbl
= ftbl_gcc_usb30_mp_master_clk_src
,
2134 .clkr
.hw
.init
= &(const struct clk_init_data
) {
2135 .name
= "gcc_usb30_prim_master_clk_src",
2136 .parent_data
= gcc_parent_data_0
,
2137 .num_parents
= ARRAY_SIZE(gcc_parent_data_0
),
2138 .ops
= &clk_rcg2_shared_ops
,
2142 static struct clk_rcg2 gcc_usb30_prim_mock_utmi_clk_src
= {
2146 .parent_map
= gcc_parent_map_0
,
2147 .freq_tbl
= ftbl_gcc_pcie_1_aux_clk_src
,
2148 .clkr
.hw
.init
= &(const struct clk_init_data
) {
2149 .name
= "gcc_usb30_prim_mock_utmi_clk_src",
2150 .parent_data
= gcc_parent_data_0
,
2151 .num_parents
= ARRAY_SIZE(gcc_parent_data_0
),
2152 .ops
= &clk_rcg2_shared_ops
,
2156 static struct clk_rcg2 gcc_usb30_sec_master_clk_src
= {
2157 .cmd_rcgr
= 0x10020,
2160 .parent_map
= gcc_parent_map_0
,
2161 .freq_tbl
= ftbl_gcc_usb30_mp_master_clk_src
,
2162 .clkr
.hw
.init
= &(const struct clk_init_data
) {
2163 .name
= "gcc_usb30_sec_master_clk_src",
2164 .parent_data
= gcc_parent_data_0
,
2165 .num_parents
= ARRAY_SIZE(gcc_parent_data_0
),
2166 .ops
= &clk_rcg2_shared_ops
,
2170 static struct clk_rcg2 gcc_usb30_sec_mock_utmi_clk_src
= {
2171 .cmd_rcgr
= 0x10038,
2174 .parent_map
= gcc_parent_map_0
,
2175 .freq_tbl
= ftbl_gcc_pcie_1_aux_clk_src
,
2176 .clkr
.hw
.init
= &(const struct clk_init_data
) {
2177 .name
= "gcc_usb30_sec_mock_utmi_clk_src",
2178 .parent_data
= gcc_parent_data_0
,
2179 .num_parents
= ARRAY_SIZE(gcc_parent_data_0
),
2180 .ops
= &clk_rcg2_shared_ops
,
2184 static struct clk_rcg2 gcc_usb3_mp_phy_aux_clk_src
= {
2185 .cmd_rcgr
= 0xab06c,
2188 .parent_map
= gcc_parent_map_1
,
2189 .freq_tbl
= ftbl_gcc_pcie_1_aux_clk_src
,
2190 .clkr
.hw
.init
= &(const struct clk_init_data
) {
2191 .name
= "gcc_usb3_mp_phy_aux_clk_src",
2192 .parent_data
= gcc_parent_data_1
,
2193 .num_parents
= ARRAY_SIZE(gcc_parent_data_1
),
2194 .ops
= &clk_rcg2_shared_ops
,
2198 static struct clk_rcg2 gcc_usb3_prim_phy_aux_clk_src
= {
2202 .parent_map
= gcc_parent_map_1
,
2203 .freq_tbl
= ftbl_gcc_pcie_1_aux_clk_src
,
2204 .clkr
.hw
.init
= &(const struct clk_init_data
) {
2205 .name
= "gcc_usb3_prim_phy_aux_clk_src",
2206 .parent_data
= gcc_parent_data_1
,
2207 .num_parents
= ARRAY_SIZE(gcc_parent_data_1
),
2208 .ops
= &clk_rcg2_shared_ops
,
2212 static struct clk_rcg2 gcc_usb3_sec_phy_aux_clk_src
= {
2213 .cmd_rcgr
= 0x10068,
2216 .parent_map
= gcc_parent_map_1
,
2217 .freq_tbl
= ftbl_gcc_pcie_1_aux_clk_src
,
2218 .clkr
.hw
.init
= &(const struct clk_init_data
) {
2219 .name
= "gcc_usb3_sec_phy_aux_clk_src",
2220 .parent_data
= gcc_parent_data_1
,
2221 .num_parents
= ARRAY_SIZE(gcc_parent_data_1
),
2222 .ops
= &clk_rcg2_shared_ops
,
2226 static const struct freq_tbl ftbl_gcc_usb4_1_master_clk_src
[] = {
2227 F(85714286, P_GCC_GPLL0_OUT_EVEN
, 3.5, 0, 0),
2228 F(175000000, P_GCC_GPLL8_OUT_MAIN
, 4, 0, 0),
2229 F(350000000, P_GCC_GPLL8_OUT_MAIN
, 2, 0, 0),
2233 static struct clk_rcg2 gcc_usb4_1_master_clk_src
= {
2234 .cmd_rcgr
= 0xb8018,
2237 .parent_map
= gcc_parent_map_5
,
2238 .freq_tbl
= ftbl_gcc_usb4_1_master_clk_src
,
2239 .clkr
.hw
.init
= &(const struct clk_init_data
) {
2240 .name
= "gcc_usb4_1_master_clk_src",
2241 .parent_data
= gcc_parent_data_5
,
2242 .num_parents
= ARRAY_SIZE(gcc_parent_data_5
),
2243 .ops
= &clk_rcg2_shared_ops
,
2247 static const struct freq_tbl ftbl_gcc_usb4_1_phy_pcie_pipe_clk_src
[] = {
2248 F(19200000, P_BI_TCXO
, 1, 0, 0),
2249 F(125000000, P_GCC_GPLL7_OUT_MAIN
, 4, 0, 0),
2250 F(250000000, P_GCC_GPLL7_OUT_MAIN
, 2, 0, 0),
2254 static struct clk_rcg2 gcc_usb4_1_phy_pcie_pipe_clk_src
= {
2255 .cmd_rcgr
= 0xb80c4,
2258 .parent_map
= gcc_parent_map_6
,
2259 .freq_tbl
= ftbl_gcc_usb4_1_phy_pcie_pipe_clk_src
,
2260 .clkr
.hw
.init
= &(const struct clk_init_data
) {
2261 .name
= "gcc_usb4_1_phy_pcie_pipe_clk_src",
2262 .parent_data
= gcc_parent_data_6
,
2263 .num_parents
= ARRAY_SIZE(gcc_parent_data_6
),
2264 .ops
= &clk_rcg2_shared_ops
,
2268 static struct clk_rcg2 gcc_usb4_1_sb_if_clk_src
= {
2269 .cmd_rcgr
= 0xb8070,
2272 .parent_map
= gcc_parent_map_1
,
2273 .freq_tbl
= ftbl_gcc_pcie_1_aux_clk_src
,
2274 .clkr
.hw
.init
= &(const struct clk_init_data
) {
2275 .name
= "gcc_usb4_1_sb_if_clk_src",
2276 .parent_data
= gcc_parent_data_1
,
2277 .num_parents
= ARRAY_SIZE(gcc_parent_data_1
),
2278 .ops
= &clk_rcg2_shared_ops
,
2282 static const struct freq_tbl ftbl_gcc_usb4_1_tmu_clk_src
[] = {
2283 F(19200000, P_BI_TCXO
, 1, 0, 0),
2284 F(250000000, P_GCC_GPLL2_OUT_MAIN
, 4, 0, 0),
2288 static struct clk_rcg2 gcc_usb4_1_tmu_clk_src
= {
2289 .cmd_rcgr
= 0xb8054,
2292 .parent_map
= gcc_parent_map_7
,
2293 .freq_tbl
= ftbl_gcc_usb4_1_tmu_clk_src
,
2294 .clkr
.hw
.init
= &(const struct clk_init_data
) {
2295 .name
= "gcc_usb4_1_tmu_clk_src",
2296 .parent_data
= gcc_parent_data_7
,
2297 .num_parents
= ARRAY_SIZE(gcc_parent_data_7
),
2298 .ops
= &clk_rcg2_shared_ops
,
2302 static struct clk_rcg2 gcc_usb4_master_clk_src
= {
2303 .cmd_rcgr
= 0x2a018,
2306 .parent_map
= gcc_parent_map_5
,
2307 .freq_tbl
= ftbl_gcc_usb4_1_master_clk_src
,
2308 .clkr
.hw
.init
= &(const struct clk_init_data
) {
2309 .name
= "gcc_usb4_master_clk_src",
2310 .parent_data
= gcc_parent_data_5
,
2311 .num_parents
= ARRAY_SIZE(gcc_parent_data_5
),
2312 .ops
= &clk_rcg2_shared_ops
,
2316 static struct clk_rcg2 gcc_usb4_phy_pcie_pipe_clk_src
= {
2317 .cmd_rcgr
= 0x2a0c4,
2320 .parent_map
= gcc_parent_map_6
,
2321 .freq_tbl
= ftbl_gcc_usb4_1_phy_pcie_pipe_clk_src
,
2322 .clkr
.hw
.init
= &(const struct clk_init_data
) {
2323 .name
= "gcc_usb4_phy_pcie_pipe_clk_src",
2324 .parent_data
= gcc_parent_data_6
,
2325 .num_parents
= ARRAY_SIZE(gcc_parent_data_6
),
2326 .ops
= &clk_rcg2_shared_ops
,
2330 static struct clk_rcg2 gcc_usb4_sb_if_clk_src
= {
2331 .cmd_rcgr
= 0x2a070,
2334 .parent_map
= gcc_parent_map_1
,
2335 .freq_tbl
= ftbl_gcc_pcie_1_aux_clk_src
,
2336 .clkr
.hw
.init
= &(const struct clk_init_data
) {
2337 .name
= "gcc_usb4_sb_if_clk_src",
2338 .parent_data
= gcc_parent_data_1
,
2339 .num_parents
= ARRAY_SIZE(gcc_parent_data_1
),
2340 .ops
= &clk_rcg2_shared_ops
,
2344 static struct clk_rcg2 gcc_usb4_tmu_clk_src
= {
2345 .cmd_rcgr
= 0x2a054,
2348 .parent_map
= gcc_parent_map_7
,
2349 .freq_tbl
= ftbl_gcc_usb4_1_tmu_clk_src
,
2350 .clkr
.hw
.init
= &(const struct clk_init_data
) {
2351 .name
= "gcc_usb4_tmu_clk_src",
2352 .parent_data
= gcc_parent_data_7
,
2353 .num_parents
= ARRAY_SIZE(gcc_parent_data_7
),
2354 .ops
= &clk_rcg2_shared_ops
,
2358 static struct clk_regmap_div gcc_pcie_2a_pipe_div_clk_src
= {
2362 .clkr
.hw
.init
= &(const struct clk_init_data
) {
2363 .name
= "gcc_pcie_2a_pipe_div_clk_src",
2364 .parent_hws
= (const struct clk_hw
*[]){
2365 &gcc_pcie_2a_pipe_clk_src
.clkr
.hw
,
2368 .flags
= CLK_SET_RATE_PARENT
,
2369 .ops
= &clk_regmap_div_ro_ops
,
2373 static struct clk_regmap_div gcc_pcie_2b_pipe_div_clk_src
= {
2377 .clkr
.hw
.init
= &(const struct clk_init_data
) {
2378 .name
= "gcc_pcie_2b_pipe_div_clk_src",
2379 .parent_hws
= (const struct clk_hw
*[]){
2380 &gcc_pcie_2b_pipe_clk_src
.clkr
.hw
,
2383 .flags
= CLK_SET_RATE_PARENT
,
2384 .ops
= &clk_regmap_div_ro_ops
,
2388 static struct clk_regmap_div gcc_pcie_3a_pipe_div_clk_src
= {
2392 .clkr
.hw
.init
= &(const struct clk_init_data
) {
2393 .name
= "gcc_pcie_3a_pipe_div_clk_src",
2394 .parent_hws
= (const struct clk_hw
*[]){
2395 &gcc_pcie_3a_pipe_clk_src
.clkr
.hw
,
2398 .flags
= CLK_SET_RATE_PARENT
,
2399 .ops
= &clk_regmap_div_ro_ops
,
2403 static struct clk_regmap_div gcc_pcie_3b_pipe_div_clk_src
= {
2407 .clkr
.hw
.init
= &(const struct clk_init_data
) {
2408 .name
= "gcc_pcie_3b_pipe_div_clk_src",
2409 .parent_hws
= (const struct clk_hw
*[]){
2410 &gcc_pcie_3b_pipe_clk_src
.clkr
.hw
,
2413 .flags
= CLK_SET_RATE_PARENT
,
2414 .ops
= &clk_regmap_div_ro_ops
,
2418 static struct clk_regmap_div gcc_pcie_4_pipe_div_clk_src
= {
2422 .clkr
.hw
.init
= &(const struct clk_init_data
) {
2423 .name
= "gcc_pcie_4_pipe_div_clk_src",
2424 .parent_hws
= (const struct clk_hw
*[]){
2425 &gcc_pcie_4_pipe_clk_src
.clkr
.hw
,
2428 .flags
= CLK_SET_RATE_PARENT
,
2429 .ops
= &clk_regmap_div_ro_ops
,
2433 static struct clk_regmap_div gcc_qupv3_wrap0_s4_div_clk_src
= {
2437 .clkr
.hw
.init
= &(const struct clk_init_data
) {
2438 .name
= "gcc_qupv3_wrap0_s4_div_clk_src",
2439 .parent_hws
= (const struct clk_hw
*[]){
2440 &gcc_qupv3_wrap0_s4_clk_src
.clkr
.hw
,
2443 .flags
= CLK_SET_RATE_PARENT
,
2444 .ops
= &clk_regmap_div_ro_ops
,
2448 static struct clk_regmap_div gcc_qupv3_wrap1_s4_div_clk_src
= {
2452 .clkr
.hw
.init
= &(const struct clk_init_data
) {
2453 .name
= "gcc_qupv3_wrap1_s4_div_clk_src",
2454 .parent_hws
= (const struct clk_hw
*[]){
2455 &gcc_qupv3_wrap1_s4_clk_src
.clkr
.hw
,
2458 .flags
= CLK_SET_RATE_PARENT
,
2459 .ops
= &clk_regmap_div_ro_ops
,
2463 static struct clk_regmap_div gcc_qupv3_wrap2_s4_div_clk_src
= {
2467 .clkr
.hw
.init
= &(const struct clk_init_data
) {
2468 .name
= "gcc_qupv3_wrap2_s4_div_clk_src",
2469 .parent_hws
= (const struct clk_hw
*[]){
2470 &gcc_qupv3_wrap2_s4_clk_src
.clkr
.hw
,
2473 .flags
= CLK_SET_RATE_PARENT
,
2474 .ops
= &clk_regmap_div_ro_ops
,
2478 static struct clk_regmap_div gcc_usb30_mp_mock_utmi_postdiv_clk_src
= {
2482 .clkr
.hw
.init
= &(const struct clk_init_data
) {
2483 .name
= "gcc_usb30_mp_mock_utmi_postdiv_clk_src",
2484 .parent_hws
= (const struct clk_hw
*[]){
2485 &gcc_usb30_mp_mock_utmi_clk_src
.clkr
.hw
,
2488 .flags
= CLK_SET_RATE_PARENT
,
2489 .ops
= &clk_regmap_div_ro_ops
,
2493 static struct clk_regmap_div gcc_usb30_prim_mock_utmi_postdiv_clk_src
= {
2497 .clkr
.hw
.init
= &(const struct clk_init_data
) {
2498 .name
= "gcc_usb30_prim_mock_utmi_postdiv_clk_src",
2499 .parent_hws
= (const struct clk_hw
*[]){
2500 &gcc_usb30_prim_mock_utmi_clk_src
.clkr
.hw
,
2503 .flags
= CLK_SET_RATE_PARENT
,
2504 .ops
= &clk_regmap_div_ro_ops
,
2508 static struct clk_regmap_div gcc_usb30_sec_mock_utmi_postdiv_clk_src
= {
2512 .clkr
.hw
.init
= &(const struct clk_init_data
) {
2513 .name
= "gcc_usb30_sec_mock_utmi_postdiv_clk_src",
2514 .parent_hws
= (const struct clk_hw
*[]){
2515 &gcc_usb30_sec_mock_utmi_clk_src
.clkr
.hw
,
2518 .flags
= CLK_SET_RATE_PARENT
,
2519 .ops
= &clk_regmap_div_ro_ops
,
2523 static struct clk_branch gcc_aggre_noc_pcie0_tunnel_axi_clk
= {
2524 .halt_reg
= 0xa41a8,
2525 .halt_check
= BRANCH_HALT_SKIP
,
2526 .hwcg_reg
= 0xa41a8,
2529 .enable_reg
= 0x52018,
2530 .enable_mask
= BIT(14),
2531 .hw
.init
= &(const struct clk_init_data
) {
2532 .name
= "gcc_aggre_noc_pcie0_tunnel_axi_clk",
2533 .ops
= &clk_branch2_ops
,
2538 static struct clk_branch gcc_aggre_noc_pcie1_tunnel_axi_clk
= {
2539 .halt_reg
= 0x8d07c,
2540 .halt_check
= BRANCH_HALT_SKIP
,
2541 .hwcg_reg
= 0x8d07c,
2544 .enable_reg
= 0x52018,
2545 .enable_mask
= BIT(21),
2546 .hw
.init
= &(const struct clk_init_data
) {
2547 .name
= "gcc_aggre_noc_pcie1_tunnel_axi_clk",
2548 .ops
= &clk_branch2_ops
,
2553 static struct clk_branch gcc_aggre_noc_pcie_4_axi_clk
= {
2554 .halt_reg
= 0x6b1b8,
2555 .halt_check
= BRANCH_HALT_SKIP
,
2556 .hwcg_reg
= 0x6b1b8,
2559 .enable_reg
= 0x52000,
2560 .enable_mask
= BIT(12),
2561 .hw
.init
= &(const struct clk_init_data
) {
2562 .name
= "gcc_aggre_noc_pcie_4_axi_clk",
2563 .ops
= &clk_branch2_ops
,
2568 static struct clk_branch gcc_aggre_noc_pcie_south_sf_axi_clk
= {
2569 .halt_reg
= 0xbf13c,
2570 .halt_check
= BRANCH_HALT_SKIP
,
2571 .hwcg_reg
= 0xbf13c,
2574 .enable_reg
= 0x52018,
2575 .enable_mask
= BIT(13),
2576 .hw
.init
= &(const struct clk_init_data
) {
2577 .name
= "gcc_aggre_noc_pcie_south_sf_axi_clk",
2578 .ops
= &clk_branch2_ops
,
2583 static struct clk_branch gcc_aggre_ufs_card_axi_clk
= {
2584 .halt_reg
= 0x750cc,
2585 .halt_check
= BRANCH_HALT_VOTED
,
2586 .hwcg_reg
= 0x750cc,
2589 .enable_reg
= 0x750cc,
2590 .enable_mask
= BIT(0),
2591 .hw
.init
= &(const struct clk_init_data
) {
2592 .name
= "gcc_aggre_ufs_card_axi_clk",
2593 .parent_hws
= (const struct clk_hw
*[]){
2594 &gcc_ufs_card_axi_clk_src
.clkr
.hw
,
2597 .flags
= CLK_SET_RATE_PARENT
,
2598 .ops
= &clk_branch2_ops
,
2603 static struct clk_branch gcc_aggre_ufs_card_axi_hw_ctl_clk
= {
2604 .halt_reg
= 0x750cc,
2605 .halt_check
= BRANCH_HALT_VOTED
,
2606 .hwcg_reg
= 0x750cc,
2609 .enable_reg
= 0x750cc,
2610 .enable_mask
= BIT(1),
2611 .hw
.init
= &(const struct clk_init_data
) {
2612 .name
= "gcc_aggre_ufs_card_axi_hw_ctl_clk",
2613 .parent_hws
= (const struct clk_hw
*[]){
2614 &gcc_ufs_card_axi_clk_src
.clkr
.hw
,
2617 .flags
= CLK_SET_RATE_PARENT
,
2618 .ops
= &clk_branch2_ops
,
2623 static struct clk_branch gcc_aggre_ufs_phy_axi_clk
= {
2624 .halt_reg
= 0x770cc,
2625 .halt_check
= BRANCH_HALT_VOTED
,
2626 .hwcg_reg
= 0x770cc,
2629 .enable_reg
= 0x770cc,
2630 .enable_mask
= BIT(0),
2631 .hw
.init
= &(const struct clk_init_data
) {
2632 .name
= "gcc_aggre_ufs_phy_axi_clk",
2633 .parent_hws
= (const struct clk_hw
*[]){
2634 &gcc_ufs_phy_axi_clk_src
.clkr
.hw
,
2637 .flags
= CLK_SET_RATE_PARENT
,
2638 .ops
= &clk_branch2_ops
,
2643 static struct clk_branch gcc_aggre_ufs_phy_axi_hw_ctl_clk
= {
2644 .halt_reg
= 0x770cc,
2645 .halt_check
= BRANCH_HALT_VOTED
,
2646 .hwcg_reg
= 0x770cc,
2649 .enable_reg
= 0x770cc,
2650 .enable_mask
= BIT(1),
2651 .hw
.init
= &(const struct clk_init_data
) {
2652 .name
= "gcc_aggre_ufs_phy_axi_hw_ctl_clk",
2653 .parent_hws
= (const struct clk_hw
*[]){
2654 &gcc_ufs_phy_axi_clk_src
.clkr
.hw
,
2657 .flags
= CLK_SET_RATE_PARENT
,
2658 .ops
= &clk_branch2_ops
,
2663 static struct clk_branch gcc_aggre_usb3_mp_axi_clk
= {
2664 .halt_reg
= 0xab084,
2665 .halt_check
= BRANCH_HALT_VOTED
,
2666 .hwcg_reg
= 0xab084,
2669 .enable_reg
= 0xab084,
2670 .enable_mask
= BIT(0),
2671 .hw
.init
= &(const struct clk_init_data
) {
2672 .name
= "gcc_aggre_usb3_mp_axi_clk",
2673 .parent_hws
= (const struct clk_hw
*[]){
2674 &gcc_usb30_mp_master_clk_src
.clkr
.hw
,
2677 .flags
= CLK_SET_RATE_PARENT
,
2678 .ops
= &clk_branch2_ops
,
2683 static struct clk_branch gcc_aggre_usb3_prim_axi_clk
= {
2685 .halt_check
= BRANCH_HALT_VOTED
,
2689 .enable_reg
= 0xf080,
2690 .enable_mask
= BIT(0),
2691 .hw
.init
= &(const struct clk_init_data
) {
2692 .name
= "gcc_aggre_usb3_prim_axi_clk",
2693 .parent_hws
= (const struct clk_hw
*[]){
2694 &gcc_usb30_prim_master_clk_src
.clkr
.hw
,
2697 .flags
= CLK_SET_RATE_PARENT
,
2698 .ops
= &clk_branch2_ops
,
2703 static struct clk_branch gcc_aggre_usb3_sec_axi_clk
= {
2704 .halt_reg
= 0x10080,
2705 .halt_check
= BRANCH_HALT_VOTED
,
2706 .hwcg_reg
= 0x10080,
2709 .enable_reg
= 0x10080,
2710 .enable_mask
= BIT(0),
2711 .hw
.init
= &(const struct clk_init_data
) {
2712 .name
= "gcc_aggre_usb3_sec_axi_clk",
2713 .parent_hws
= (const struct clk_hw
*[]){
2714 &gcc_usb30_sec_master_clk_src
.clkr
.hw
,
2717 .flags
= CLK_SET_RATE_PARENT
,
2718 .ops
= &clk_branch2_ops
,
2723 static struct clk_branch gcc_aggre_usb4_1_axi_clk
= {
2724 .halt_reg
= 0xb80e4,
2725 .halt_check
= BRANCH_HALT_VOTED
,
2726 .hwcg_reg
= 0xb80e4,
2729 .enable_reg
= 0xb80e4,
2730 .enable_mask
= BIT(0),
2731 .hw
.init
= &(const struct clk_init_data
) {
2732 .name
= "gcc_aggre_usb4_1_axi_clk",
2733 .parent_hws
= (const struct clk_hw
*[]){
2734 &gcc_usb4_1_master_clk_src
.clkr
.hw
,
2737 .flags
= CLK_SET_RATE_PARENT
,
2738 .ops
= &clk_branch2_ops
,
2743 static struct clk_branch gcc_aggre_usb4_axi_clk
= {
2744 .halt_reg
= 0x2a0e4,
2745 .halt_check
= BRANCH_HALT_VOTED
,
2746 .hwcg_reg
= 0x2a0e4,
2749 .enable_reg
= 0x2a0e4,
2750 .enable_mask
= BIT(0),
2751 .hw
.init
= &(const struct clk_init_data
) {
2752 .name
= "gcc_aggre_usb4_axi_clk",
2753 .parent_hws
= (const struct clk_hw
*[]){
2754 &gcc_usb4_master_clk_src
.clkr
.hw
,
2757 .flags
= CLK_SET_RATE_PARENT
,
2758 .ops
= &clk_branch2_ops
,
2763 static struct clk_branch gcc_aggre_usb_noc_axi_clk
= {
2764 .halt_reg
= 0x5d024,
2765 .halt_check
= BRANCH_HALT_VOTED
,
2766 .hwcg_reg
= 0x5d024,
2769 .enable_reg
= 0x5d024,
2770 .enable_mask
= BIT(0),
2771 .hw
.init
= &(const struct clk_init_data
) {
2772 .name
= "gcc_aggre_usb_noc_axi_clk",
2773 .ops
= &clk_branch2_ops
,
2778 static struct clk_branch gcc_aggre_usb_noc_north_axi_clk
= {
2779 .halt_reg
= 0x5d020,
2780 .halt_check
= BRANCH_HALT_VOTED
,
2781 .hwcg_reg
= 0x5d020,
2784 .enable_reg
= 0x5d020,
2785 .enable_mask
= BIT(0),
2786 .hw
.init
= &(const struct clk_init_data
) {
2787 .name
= "gcc_aggre_usb_noc_north_axi_clk",
2788 .ops
= &clk_branch2_ops
,
2793 static struct clk_branch gcc_aggre_usb_noc_south_axi_clk
= {
2794 .halt_reg
= 0x5d01c,
2795 .halt_check
= BRANCH_HALT_VOTED
,
2796 .hwcg_reg
= 0x5d01c,
2799 .enable_reg
= 0x5d01c,
2800 .enable_mask
= BIT(0),
2801 .hw
.init
= &(const struct clk_init_data
) {
2802 .name
= "gcc_aggre_usb_noc_south_axi_clk",
2803 .ops
= &clk_branch2_ops
,
2808 static struct clk_branch gcc_ahb2phy0_clk
= {
2809 .halt_reg
= 0x6a004,
2810 .halt_check
= BRANCH_HALT_VOTED
,
2811 .hwcg_reg
= 0x6a004,
2814 .enable_reg
= 0x6a004,
2815 .enable_mask
= BIT(0),
2816 .hw
.init
= &(const struct clk_init_data
) {
2817 .name
= "gcc_ahb2phy0_clk",
2818 .ops
= &clk_branch2_ops
,
2823 static struct clk_branch gcc_ahb2phy2_clk
= {
2824 .halt_reg
= 0x6a008,
2825 .halt_check
= BRANCH_HALT_VOTED
,
2826 .hwcg_reg
= 0x6a008,
2829 .enable_reg
= 0x6a008,
2830 .enable_mask
= BIT(0),
2831 .hw
.init
= &(const struct clk_init_data
) {
2832 .name
= "gcc_ahb2phy2_clk",
2833 .ops
= &clk_branch2_ops
,
2838 static struct clk_branch gcc_boot_rom_ahb_clk
= {
2839 .halt_reg
= 0x38004,
2840 .halt_check
= BRANCH_HALT_VOTED
,
2841 .hwcg_reg
= 0x38004,
2844 .enable_reg
= 0x52000,
2845 .enable_mask
= BIT(10),
2846 .hw
.init
= &(const struct clk_init_data
) {
2847 .name
= "gcc_boot_rom_ahb_clk",
2848 .ops
= &clk_branch2_ops
,
2853 static struct clk_branch gcc_camera_hf_axi_clk
= {
2854 .halt_reg
= 0x26010,
2855 .halt_check
= BRANCH_HALT_SKIP
,
2856 .hwcg_reg
= 0x26010,
2859 .enable_reg
= 0x26010,
2860 .enable_mask
= BIT(0),
2861 .hw
.init
= &(const struct clk_init_data
) {
2862 .name
= "gcc_camera_hf_axi_clk",
2863 .ops
= &clk_branch2_ops
,
2868 static struct clk_branch gcc_camera_sf_axi_clk
= {
2869 .halt_reg
= 0x26014,
2870 .halt_check
= BRANCH_HALT_SKIP
,
2871 .hwcg_reg
= 0x26014,
2874 .enable_reg
= 0x26014,
2875 .enable_mask
= BIT(0),
2876 .hw
.init
= &(const struct clk_init_data
) {
2877 .name
= "gcc_camera_sf_axi_clk",
2878 .ops
= &clk_branch2_ops
,
2883 static struct clk_branch gcc_camera_throttle_nrt_axi_clk
= {
2884 .halt_reg
= 0x2601c,
2885 .halt_check
= BRANCH_HALT_SKIP
,
2886 .hwcg_reg
= 0x2601c,
2889 .enable_reg
= 0x2601c,
2890 .enable_mask
= BIT(0),
2891 .hw
.init
= &(const struct clk_init_data
) {
2892 .name
= "gcc_camera_throttle_nrt_axi_clk",
2893 .ops
= &clk_branch2_ops
,
2898 static struct clk_branch gcc_camera_throttle_rt_axi_clk
= {
2899 .halt_reg
= 0x26018,
2900 .halt_check
= BRANCH_HALT_SKIP
,
2901 .hwcg_reg
= 0x26018,
2904 .enable_reg
= 0x26018,
2905 .enable_mask
= BIT(0),
2906 .hw
.init
= &(const struct clk_init_data
) {
2907 .name
= "gcc_camera_throttle_rt_axi_clk",
2908 .ops
= &clk_branch2_ops
,
2913 static struct clk_branch gcc_camera_throttle_xo_clk
= {
2914 .halt_reg
= 0x26024,
2915 .halt_check
= BRANCH_HALT
,
2917 .enable_reg
= 0x26024,
2918 .enable_mask
= BIT(0),
2919 .hw
.init
= &(const struct clk_init_data
) {
2920 .name
= "gcc_camera_throttle_xo_clk",
2921 .ops
= &clk_branch2_ops
,
2926 static struct clk_branch gcc_cfg_noc_usb3_mp_axi_clk
= {
2927 .halt_reg
= 0xab088,
2928 .halt_check
= BRANCH_HALT_VOTED
,
2929 .hwcg_reg
= 0xab088,
2932 .enable_reg
= 0xab088,
2933 .enable_mask
= BIT(0),
2934 .hw
.init
= &(const struct clk_init_data
) {
2935 .name
= "gcc_cfg_noc_usb3_mp_axi_clk",
2936 .parent_hws
= (const struct clk_hw
*[]){
2937 &gcc_usb30_mp_master_clk_src
.clkr
.hw
,
2940 .flags
= CLK_SET_RATE_PARENT
,
2941 .ops
= &clk_branch2_ops
,
2946 static struct clk_branch gcc_cfg_noc_usb3_prim_axi_clk
= {
2948 .halt_check
= BRANCH_HALT_VOTED
,
2952 .enable_reg
= 0xf084,
2953 .enable_mask
= BIT(0),
2954 .hw
.init
= &(const struct clk_init_data
) {
2955 .name
= "gcc_cfg_noc_usb3_prim_axi_clk",
2956 .parent_hws
= (const struct clk_hw
*[]){
2957 &gcc_usb30_prim_master_clk_src
.clkr
.hw
,
2960 .flags
= CLK_SET_RATE_PARENT
,
2961 .ops
= &clk_branch2_ops
,
2966 static struct clk_branch gcc_cfg_noc_usb3_sec_axi_clk
= {
2967 .halt_reg
= 0x10084,
2968 .halt_check
= BRANCH_HALT_VOTED
,
2969 .hwcg_reg
= 0x10084,
2972 .enable_reg
= 0x10084,
2973 .enable_mask
= BIT(0),
2974 .hw
.init
= &(const struct clk_init_data
) {
2975 .name
= "gcc_cfg_noc_usb3_sec_axi_clk",
2976 .parent_hws
= (const struct clk_hw
*[]){
2977 &gcc_usb30_sec_master_clk_src
.clkr
.hw
,
2980 .flags
= CLK_SET_RATE_PARENT
,
2981 .ops
= &clk_branch2_ops
,
2986 static struct clk_branch gcc_cnoc_pcie0_tunnel_clk
= {
2987 .halt_reg
= 0xa4074,
2988 .halt_check
= BRANCH_HALT_VOTED
,
2990 .enable_reg
= 0x52020,
2991 .enable_mask
= BIT(8),
2992 .hw
.init
= &(const struct clk_init_data
) {
2993 .name
= "gcc_cnoc_pcie0_tunnel_clk",
2994 .ops
= &clk_branch2_ops
,
2999 static struct clk_branch gcc_cnoc_pcie1_tunnel_clk
= {
3000 .halt_reg
= 0x8d074,
3001 .halt_check
= BRANCH_HALT_VOTED
,
3003 .enable_reg
= 0x52020,
3004 .enable_mask
= BIT(9),
3005 .hw
.init
= &(const struct clk_init_data
) {
3006 .name
= "gcc_cnoc_pcie1_tunnel_clk",
3007 .ops
= &clk_branch2_ops
,
3012 static struct clk_branch gcc_cnoc_pcie4_qx_clk
= {
3013 .halt_reg
= 0x6b084,
3014 .halt_check
= BRANCH_HALT_VOTED
,
3015 .hwcg_reg
= 0x6b084,
3018 .enable_reg
= 0x52020,
3019 .enable_mask
= BIT(10),
3020 .hw
.init
= &(const struct clk_init_data
) {
3021 .name
= "gcc_cnoc_pcie4_qx_clk",
3022 .ops
= &clk_branch2_ops
,
3027 static struct clk_branch gcc_ddrss_gpu_axi_clk
= {
3028 .halt_reg
= 0x7115c,
3029 .halt_check
= BRANCH_HALT_SKIP
,
3030 .hwcg_reg
= 0x7115c,
3033 .enable_reg
= 0x7115c,
3034 .enable_mask
= BIT(0),
3035 .hw
.init
= &(const struct clk_init_data
) {
3036 .name
= "gcc_ddrss_gpu_axi_clk",
3037 .ops
= &clk_branch2_aon_ops
,
3042 static struct clk_branch gcc_ddrss_pcie_sf_tbu_clk
= {
3043 .halt_reg
= 0xa602c,
3044 .halt_check
= BRANCH_HALT_SKIP
,
3045 .hwcg_reg
= 0xa602c,
3048 .enable_reg
= 0x52000,
3049 .enable_mask
= BIT(19),
3050 .hw
.init
= &(const struct clk_init_data
) {
3051 .name
= "gcc_ddrss_pcie_sf_tbu_clk",
3052 .ops
= &clk_branch2_ops
,
3057 static struct clk_branch gcc_disp1_hf_axi_clk
= {
3058 .halt_reg
= 0xbb010,
3059 .halt_check
= BRANCH_HALT_SKIP
,
3060 .hwcg_reg
= 0xbb010,
3063 .enable_reg
= 0xbb010,
3064 .enable_mask
= BIT(0),
3065 .hw
.init
= &(const struct clk_init_data
) {
3066 .name
= "gcc_disp1_hf_axi_clk",
3067 .ops
= &clk_branch2_ops
,
3072 static struct clk_branch gcc_disp1_sf_axi_clk
= {
3073 .halt_reg
= 0xbb018,
3074 .halt_check
= BRANCH_HALT_SKIP
,
3075 .hwcg_reg
= 0xbb018,
3078 .enable_reg
= 0xbb018,
3079 .enable_mask
= BIT(0),
3080 .hw
.init
= &(const struct clk_init_data
) {
3081 .name
= "gcc_disp1_sf_axi_clk",
3082 .ops
= &clk_branch2_ops
,
3087 static struct clk_branch gcc_disp1_throttle_nrt_axi_clk
= {
3088 .halt_reg
= 0xbb024,
3089 .halt_check
= BRANCH_HALT_SKIP
,
3090 .hwcg_reg
= 0xbb024,
3093 .enable_reg
= 0xbb024,
3094 .enable_mask
= BIT(0),
3095 .hw
.init
= &(const struct clk_init_data
) {
3096 .name
= "gcc_disp1_throttle_nrt_axi_clk",
3097 .ops
= &clk_branch2_ops
,
3102 static struct clk_branch gcc_disp1_throttle_rt_axi_clk
= {
3103 .halt_reg
= 0xbb020,
3104 .halt_check
= BRANCH_HALT_SKIP
,
3105 .hwcg_reg
= 0xbb020,
3108 .enable_reg
= 0xbb020,
3109 .enable_mask
= BIT(0),
3110 .hw
.init
= &(const struct clk_init_data
) {
3111 .name
= "gcc_disp1_throttle_rt_axi_clk",
3112 .ops
= &clk_branch2_ops
,
3117 static struct clk_branch gcc_disp_hf_axi_clk
= {
3118 .halt_reg
= 0x27010,
3119 .halt_check
= BRANCH_HALT_SKIP
,
3120 .hwcg_reg
= 0x27010,
3123 .enable_reg
= 0x27010,
3124 .enable_mask
= BIT(0),
3125 .hw
.init
= &(const struct clk_init_data
) {
3126 .name
= "gcc_disp_hf_axi_clk",
3127 .ops
= &clk_branch2_ops
,
3132 static struct clk_branch gcc_disp_sf_axi_clk
= {
3133 .halt_reg
= 0x27018,
3134 .halt_check
= BRANCH_HALT_SKIP
,
3135 .hwcg_reg
= 0x27018,
3138 .enable_reg
= 0x27018,
3139 .enable_mask
= BIT(0),
3140 .hw
.init
= &(const struct clk_init_data
) {
3141 .name
= "gcc_disp_sf_axi_clk",
3142 .ops
= &clk_branch2_ops
,
3147 static struct clk_branch gcc_disp_throttle_nrt_axi_clk
= {
3148 .halt_reg
= 0x27024,
3149 .halt_check
= BRANCH_HALT_SKIP
,
3150 .hwcg_reg
= 0x27024,
3153 .enable_reg
= 0x27024,
3154 .enable_mask
= BIT(0),
3155 .hw
.init
= &(const struct clk_init_data
) {
3156 .name
= "gcc_disp_throttle_nrt_axi_clk",
3157 .ops
= &clk_branch2_ops
,
3162 static struct clk_branch gcc_disp_throttle_rt_axi_clk
= {
3163 .halt_reg
= 0x27020,
3164 .halt_check
= BRANCH_HALT_SKIP
,
3165 .hwcg_reg
= 0x27020,
3168 .enable_reg
= 0x27020,
3169 .enable_mask
= BIT(0),
3170 .hw
.init
= &(const struct clk_init_data
) {
3171 .name
= "gcc_disp_throttle_rt_axi_clk",
3172 .ops
= &clk_branch2_ops
,
3177 static struct clk_branch gcc_emac0_axi_clk
= {
3178 .halt_reg
= 0xaa010,
3179 .halt_check
= BRANCH_HALT_VOTED
,
3180 .hwcg_reg
= 0xaa010,
3183 .enable_reg
= 0xaa010,
3184 .enable_mask
= BIT(0),
3185 .hw
.init
= &(const struct clk_init_data
) {
3186 .name
= "gcc_emac0_axi_clk",
3187 .ops
= &clk_branch2_ops
,
3192 static struct clk_branch gcc_emac0_ptp_clk
= {
3193 .halt_reg
= 0xaa01c,
3194 .halt_check
= BRANCH_HALT
,
3196 .enable_reg
= 0xaa01c,
3197 .enable_mask
= BIT(0),
3198 .hw
.init
= &(const struct clk_init_data
) {
3199 .name
= "gcc_emac0_ptp_clk",
3200 .parent_hws
= (const struct clk_hw
*[]){
3201 &gcc_emac0_ptp_clk_src
.clkr
.hw
,
3204 .flags
= CLK_SET_RATE_PARENT
,
3205 .ops
= &clk_branch2_ops
,
3210 static struct clk_branch gcc_emac0_rgmii_clk
= {
3211 .halt_reg
= 0xaa038,
3212 .halt_check
= BRANCH_HALT
,
3214 .enable_reg
= 0xaa038,
3215 .enable_mask
= BIT(0),
3216 .hw
.init
= &(const struct clk_init_data
) {
3217 .name
= "gcc_emac0_rgmii_clk",
3218 .parent_hws
= (const struct clk_hw
*[]){
3219 &gcc_emac0_rgmii_clk_src
.clkr
.hw
,
3222 .flags
= CLK_SET_RATE_PARENT
,
3223 .ops
= &clk_branch2_ops
,
3228 static struct clk_branch gcc_emac0_slv_ahb_clk
= {
3229 .halt_reg
= 0xaa018,
3230 .halt_check
= BRANCH_HALT_VOTED
,
3231 .hwcg_reg
= 0xaa018,
3234 .enable_reg
= 0xaa018,
3235 .enable_mask
= BIT(0),
3236 .hw
.init
= &(const struct clk_init_data
) {
3237 .name
= "gcc_emac0_slv_ahb_clk",
3238 .ops
= &clk_branch2_ops
,
3243 static struct clk_branch gcc_emac1_axi_clk
= {
3244 .halt_reg
= 0xba010,
3245 .halt_check
= BRANCH_HALT_VOTED
,
3246 .hwcg_reg
= 0xba010,
3249 .enable_reg
= 0xba010,
3250 .enable_mask
= BIT(0),
3251 .hw
.init
= &(const struct clk_init_data
) {
3252 .name
= "gcc_emac1_axi_clk",
3253 .ops
= &clk_branch2_ops
,
3258 static struct clk_branch gcc_emac1_ptp_clk
= {
3259 .halt_reg
= 0xba01c,
3260 .halt_check
= BRANCH_HALT
,
3262 .enable_reg
= 0xba01c,
3263 .enable_mask
= BIT(0),
3264 .hw
.init
= &(const struct clk_init_data
) {
3265 .name
= "gcc_emac1_ptp_clk",
3266 .parent_hws
= (const struct clk_hw
*[]){
3267 &gcc_emac1_ptp_clk_src
.clkr
.hw
,
3270 .flags
= CLK_SET_RATE_PARENT
,
3271 .ops
= &clk_branch2_ops
,
3276 static struct clk_branch gcc_emac1_rgmii_clk
= {
3277 .halt_reg
= 0xba038,
3278 .halt_check
= BRANCH_HALT
,
3280 .enable_reg
= 0xba038,
3281 .enable_mask
= BIT(0),
3282 .hw
.init
= &(const struct clk_init_data
) {
3283 .name
= "gcc_emac1_rgmii_clk",
3284 .parent_hws
= (const struct clk_hw
*[]){
3285 &gcc_emac1_rgmii_clk_src
.clkr
.hw
,
3288 .flags
= CLK_SET_RATE_PARENT
,
3289 .ops
= &clk_branch2_ops
,
3294 static struct clk_branch gcc_emac1_slv_ahb_clk
= {
3295 .halt_reg
= 0xba018,
3296 .halt_check
= BRANCH_HALT_VOTED
,
3297 .hwcg_reg
= 0xba018,
3300 .enable_reg
= 0xba018,
3301 .enable_mask
= BIT(0),
3302 .hw
.init
= &(const struct clk_init_data
) {
3303 .name
= "gcc_emac1_slv_ahb_clk",
3304 .ops
= &clk_branch2_ops
,
3309 static struct clk_branch gcc_gp1_clk
= {
3310 .halt_reg
= 0x64000,
3311 .halt_check
= BRANCH_HALT
,
3313 .enable_reg
= 0x64000,
3314 .enable_mask
= BIT(0),
3315 .hw
.init
= &(const struct clk_init_data
) {
3316 .name
= "gcc_gp1_clk",
3317 .parent_hws
= (const struct clk_hw
*[]){
3318 &gcc_gp1_clk_src
.clkr
.hw
,
3321 .flags
= CLK_SET_RATE_PARENT
,
3322 .ops
= &clk_branch2_ops
,
3327 static struct clk_branch gcc_gp2_clk
= {
3328 .halt_reg
= 0x65000,
3329 .halt_check
= BRANCH_HALT
,
3331 .enable_reg
= 0x65000,
3332 .enable_mask
= BIT(0),
3333 .hw
.init
= &(const struct clk_init_data
) {
3334 .name
= "gcc_gp2_clk",
3335 .parent_hws
= (const struct clk_hw
*[]){
3336 &gcc_gp2_clk_src
.clkr
.hw
,
3339 .flags
= CLK_SET_RATE_PARENT
,
3340 .ops
= &clk_branch2_ops
,
3345 static struct clk_branch gcc_gp3_clk
= {
3346 .halt_reg
= 0x66000,
3347 .halt_check
= BRANCH_HALT
,
3349 .enable_reg
= 0x66000,
3350 .enable_mask
= BIT(0),
3351 .hw
.init
= &(const struct clk_init_data
) {
3352 .name
= "gcc_gp3_clk",
3353 .parent_hws
= (const struct clk_hw
*[]){
3354 &gcc_gp3_clk_src
.clkr
.hw
,
3357 .flags
= CLK_SET_RATE_PARENT
,
3358 .ops
= &clk_branch2_ops
,
3363 static struct clk_branch gcc_gp4_clk
= {
3364 .halt_reg
= 0xc2000,
3365 .halt_check
= BRANCH_HALT
,
3367 .enable_reg
= 0xc2000,
3368 .enable_mask
= BIT(0),
3369 .hw
.init
= &(const struct clk_init_data
) {
3370 .name
= "gcc_gp4_clk",
3371 .parent_hws
= (const struct clk_hw
*[]){
3372 &gcc_gp4_clk_src
.clkr
.hw
,
3375 .flags
= CLK_SET_RATE_PARENT
,
3376 .ops
= &clk_branch2_ops
,
3381 static struct clk_branch gcc_gp5_clk
= {
3382 .halt_reg
= 0xc3000,
3383 .halt_check
= BRANCH_HALT
,
3385 .enable_reg
= 0xc3000,
3386 .enable_mask
= BIT(0),
3387 .hw
.init
= &(const struct clk_init_data
) {
3388 .name
= "gcc_gp5_clk",
3389 .parent_hws
= (const struct clk_hw
*[]){
3390 &gcc_gp5_clk_src
.clkr
.hw
,
3393 .flags
= CLK_SET_RATE_PARENT
,
3394 .ops
= &clk_branch2_ops
,
3399 static struct clk_branch gcc_gpu_gpll0_clk_src
= {
3400 .halt_check
= BRANCH_HALT_DELAY
,
3402 .enable_reg
= 0x52000,
3403 .enable_mask
= BIT(15),
3404 .hw
.init
= &(const struct clk_init_data
) {
3405 .name
= "gcc_gpu_gpll0_clk_src",
3406 .parent_hws
= (const struct clk_hw
*[]){
3410 .flags
= CLK_SET_RATE_PARENT
,
3411 .ops
= &clk_branch2_ops
,
3416 static struct clk_branch gcc_gpu_gpll0_div_clk_src
= {
3417 .halt_check
= BRANCH_HALT_DELAY
,
3419 .enable_reg
= 0x52000,
3420 .enable_mask
= BIT(16),
3421 .hw
.init
= &(const struct clk_init_data
) {
3422 .name
= "gcc_gpu_gpll0_div_clk_src",
3423 .parent_hws
= (const struct clk_hw
*[]){
3424 &gcc_gpll0_out_even
.clkr
.hw
,
3427 .flags
= CLK_SET_RATE_PARENT
,
3428 .ops
= &clk_branch2_ops
,
3433 static struct clk_branch gcc_gpu_iref_en
= {
3434 .halt_reg
= 0x8c014,
3435 .halt_check
= BRANCH_HALT
,
3437 .enable_reg
= 0x8c014,
3438 .enable_mask
= BIT(0),
3439 .hw
.init
= &(const struct clk_init_data
) {
3440 .name
= "gcc_gpu_iref_en",
3441 .ops
= &clk_branch2_ops
,
3446 static struct clk_branch gcc_gpu_memnoc_gfx_clk
= {
3447 .halt_reg
= 0x71010,
3448 .halt_check
= BRANCH_HALT_VOTED
,
3449 .hwcg_reg
= 0x71010,
3452 .enable_reg
= 0x71010,
3453 .enable_mask
= BIT(0),
3454 .hw
.init
= &(const struct clk_init_data
) {
3455 .name
= "gcc_gpu_memnoc_gfx_clk",
3456 .ops
= &clk_branch2_aon_ops
,
3461 static struct clk_branch gcc_gpu_snoc_dvm_gfx_clk
= {
3462 .halt_reg
= 0x71020,
3463 .halt_check
= BRANCH_HALT
,
3465 .enable_reg
= 0x71020,
3466 .enable_mask
= BIT(0),
3467 .hw
.init
= &(const struct clk_init_data
) {
3468 .name
= "gcc_gpu_snoc_dvm_gfx_clk",
3469 .ops
= &clk_branch2_aon_ops
,
3474 static struct clk_branch gcc_gpu_tcu_throttle_ahb_clk
= {
3475 .halt_reg
= 0x71008,
3476 .halt_check
= BRANCH_HALT_VOTED
,
3477 .hwcg_reg
= 0x71008,
3480 .enable_reg
= 0x71008,
3481 .enable_mask
= BIT(0),
3482 .hw
.init
= &(const struct clk_init_data
) {
3483 .name
= "gcc_gpu_tcu_throttle_ahb_clk",
3484 .ops
= &clk_branch2_ops
,
3489 static struct clk_branch gcc_gpu_tcu_throttle_clk
= {
3490 .halt_reg
= 0x71018,
3491 .halt_check
= BRANCH_HALT_VOTED
,
3492 .hwcg_reg
= 0x71018,
3495 .enable_reg
= 0x71018,
3496 .enable_mask
= BIT(0),
3497 .hw
.init
= &(const struct clk_init_data
) {
3498 .name
= "gcc_gpu_tcu_throttle_clk",
3499 .ops
= &clk_branch2_ops
,
3504 static struct clk_branch gcc_pcie0_phy_rchng_clk
= {
3505 .halt_reg
= 0xa4038,
3506 .halt_check
= BRANCH_HALT_VOTED
,
3508 .enable_reg
= 0x52018,
3509 .enable_mask
= BIT(11),
3510 .hw
.init
= &(const struct clk_init_data
) {
3511 .name
= "gcc_pcie0_phy_rchng_clk",
3512 .parent_hws
= (const struct clk_hw
*[]){
3513 &gcc_pcie_0_phy_rchng_clk_src
.clkr
.hw
,
3516 .flags
= CLK_SET_RATE_PARENT
,
3517 .ops
= &clk_branch2_ops
,
3522 static struct clk_branch gcc_pcie1_phy_rchng_clk
= {
3523 .halt_reg
= 0x8d038,
3524 .halt_check
= BRANCH_HALT_VOTED
,
3526 .enable_reg
= 0x52000,
3527 .enable_mask
= BIT(23),
3528 .hw
.init
= &(const struct clk_init_data
) {
3529 .name
= "gcc_pcie1_phy_rchng_clk",
3530 .parent_hws
= (const struct clk_hw
*[]){
3531 &gcc_pcie_1_phy_rchng_clk_src
.clkr
.hw
,
3534 .flags
= CLK_SET_RATE_PARENT
,
3535 .ops
= &clk_branch2_ops
,
3540 static struct clk_branch gcc_pcie2a_phy_rchng_clk
= {
3541 .halt_reg
= 0x9d040,
3542 .halt_check
= BRANCH_HALT_VOTED
,
3544 .enable_reg
= 0x52010,
3545 .enable_mask
= BIT(15),
3546 .hw
.init
= &(const struct clk_init_data
) {
3547 .name
= "gcc_pcie2a_phy_rchng_clk",
3548 .parent_hws
= (const struct clk_hw
*[]){
3549 &gcc_pcie_2a_phy_rchng_clk_src
.clkr
.hw
,
3552 .flags
= CLK_SET_RATE_PARENT
,
3553 .ops
= &clk_branch2_ops
,
3558 static struct clk_branch gcc_pcie2b_phy_rchng_clk
= {
3559 .halt_reg
= 0x9e040,
3560 .halt_check
= BRANCH_HALT_VOTED
,
3562 .enable_reg
= 0x52010,
3563 .enable_mask
= BIT(22),
3564 .hw
.init
= &(const struct clk_init_data
) {
3565 .name
= "gcc_pcie2b_phy_rchng_clk",
3566 .parent_hws
= (const struct clk_hw
*[]){
3567 &gcc_pcie_2b_phy_rchng_clk_src
.clkr
.hw
,
3570 .flags
= CLK_SET_RATE_PARENT
,
3571 .ops
= &clk_branch2_ops
,
3576 static struct clk_branch gcc_pcie3a_phy_rchng_clk
= {
3577 .halt_reg
= 0xa0040,
3578 .halt_check
= BRANCH_HALT_VOTED
,
3580 .enable_reg
= 0x52010,
3581 .enable_mask
= BIT(29),
3582 .hw
.init
= &(const struct clk_init_data
) {
3583 .name
= "gcc_pcie3a_phy_rchng_clk",
3584 .parent_hws
= (const struct clk_hw
*[]){
3585 &gcc_pcie_3a_phy_rchng_clk_src
.clkr
.hw
,
3588 .flags
= CLK_SET_RATE_PARENT
,
3589 .ops
= &clk_branch2_ops
,
3594 static struct clk_branch gcc_pcie3b_phy_rchng_clk
= {
3595 .halt_reg
= 0xa2040,
3596 .halt_check
= BRANCH_HALT_VOTED
,
3598 .enable_reg
= 0x52018,
3599 .enable_mask
= BIT(4),
3600 .hw
.init
= &(const struct clk_init_data
) {
3601 .name
= "gcc_pcie3b_phy_rchng_clk",
3602 .parent_hws
= (const struct clk_hw
*[]){
3603 &gcc_pcie_3b_phy_rchng_clk_src
.clkr
.hw
,
3606 .flags
= CLK_SET_RATE_PARENT
,
3607 .ops
= &clk_branch2_ops
,
3612 static struct clk_branch gcc_pcie4_phy_rchng_clk
= {
3613 .halt_reg
= 0x6b040,
3614 .halt_check
= BRANCH_HALT_VOTED
,
3616 .enable_reg
= 0x52000,
3617 .enable_mask
= BIT(22),
3618 .hw
.init
= &(const struct clk_init_data
) {
3619 .name
= "gcc_pcie4_phy_rchng_clk",
3620 .parent_hws
= (const struct clk_hw
*[]){
3621 &gcc_pcie_4_phy_rchng_clk_src
.clkr
.hw
,
3624 .flags
= CLK_SET_RATE_PARENT
,
3625 .ops
= &clk_branch2_ops
,
3630 static struct clk_branch gcc_pcie_0_aux_clk
= {
3631 .halt_reg
= 0xa4028,
3632 .halt_check
= BRANCH_HALT_VOTED
,
3634 .enable_reg
= 0x52018,
3635 .enable_mask
= BIT(9),
3636 .hw
.init
= &(const struct clk_init_data
) {
3637 .name
= "gcc_pcie_0_aux_clk",
3638 .parent_hws
= (const struct clk_hw
*[]){
3639 &gcc_pcie_0_aux_clk_src
.clkr
.hw
,
3642 .flags
= CLK_SET_RATE_PARENT
,
3643 .ops
= &clk_branch2_ops
,
3648 static struct clk_branch gcc_pcie_0_cfg_ahb_clk
= {
3649 .halt_reg
= 0xa4024,
3650 .halt_check
= BRANCH_HALT_VOTED
,
3651 .hwcg_reg
= 0xa4024,
3654 .enable_reg
= 0x52018,
3655 .enable_mask
= BIT(8),
3656 .hw
.init
= &(const struct clk_init_data
) {
3657 .name
= "gcc_pcie_0_cfg_ahb_clk",
3658 .ops
= &clk_branch2_ops
,
3663 static struct clk_branch gcc_pcie_0_mstr_axi_clk
= {
3664 .halt_reg
= 0xa401c,
3665 .halt_check
= BRANCH_HALT_SKIP
,
3666 .hwcg_reg
= 0xa401c,
3669 .enable_reg
= 0x52018,
3670 .enable_mask
= BIT(7),
3671 .hw
.init
= &(const struct clk_init_data
) {
3672 .name
= "gcc_pcie_0_mstr_axi_clk",
3673 .ops
= &clk_branch2_ops
,
3678 static struct clk_branch gcc_pcie_0_pipe_clk
= {
3679 .halt_reg
= 0xa4030,
3680 .halt_check
= BRANCH_HALT_SKIP
,
3682 .enable_reg
= 0x52018,
3683 .enable_mask
= BIT(10),
3684 .hw
.init
= &(const struct clk_init_data
) {
3685 .name
= "gcc_pcie_0_pipe_clk",
3686 .parent_hws
= (const struct clk_hw
*[]){
3687 &gcc_usb4_phy_pcie_pipe_mux_clk_src
.clkr
.hw
,
3690 .flags
= CLK_SET_RATE_PARENT
,
3691 .ops
= &clk_branch2_ops
,
3696 static struct clk_branch gcc_pcie_0_slv_axi_clk
= {
3697 .halt_reg
= 0xa4014,
3698 .halt_check
= BRANCH_HALT_VOTED
,
3699 .hwcg_reg
= 0xa4014,
3702 .enable_reg
= 0x52018,
3703 .enable_mask
= BIT(6),
3704 .hw
.init
= &(const struct clk_init_data
) {
3705 .name
= "gcc_pcie_0_slv_axi_clk",
3706 .ops
= &clk_branch2_ops
,
3711 static struct clk_branch gcc_pcie_0_slv_q2a_axi_clk
= {
3712 .halt_reg
= 0xa4010,
3713 .halt_check
= BRANCH_HALT_VOTED
,
3715 .enable_reg
= 0x52018,
3716 .enable_mask
= BIT(5),
3717 .hw
.init
= &(const struct clk_init_data
) {
3718 .name
= "gcc_pcie_0_slv_q2a_axi_clk",
3719 .ops
= &clk_branch2_ops
,
3724 static struct clk_branch gcc_pcie_1_aux_clk
= {
3725 .halt_reg
= 0x8d028,
3726 .halt_check
= BRANCH_HALT_VOTED
,
3728 .enable_reg
= 0x52000,
3729 .enable_mask
= BIT(29),
3730 .hw
.init
= &(const struct clk_init_data
) {
3731 .name
= "gcc_pcie_1_aux_clk",
3732 .parent_hws
= (const struct clk_hw
*[]){
3733 &gcc_pcie_1_aux_clk_src
.clkr
.hw
,
3736 .flags
= CLK_SET_RATE_PARENT
,
3737 .ops
= &clk_branch2_ops
,
3742 static struct clk_branch gcc_pcie_1_cfg_ahb_clk
= {
3743 .halt_reg
= 0x8d024,
3744 .halt_check
= BRANCH_HALT_VOTED
,
3745 .hwcg_reg
= 0x8d024,
3748 .enable_reg
= 0x52000,
3749 .enable_mask
= BIT(28),
3750 .hw
.init
= &(const struct clk_init_data
) {
3751 .name
= "gcc_pcie_1_cfg_ahb_clk",
3752 .ops
= &clk_branch2_ops
,
3757 static struct clk_branch gcc_pcie_1_mstr_axi_clk
= {
3758 .halt_reg
= 0x8d01c,
3759 .halt_check
= BRANCH_HALT_SKIP
,
3760 .hwcg_reg
= 0x8d01c,
3763 .enable_reg
= 0x52000,
3764 .enable_mask
= BIT(27),
3765 .hw
.init
= &(const struct clk_init_data
) {
3766 .name
= "gcc_pcie_1_mstr_axi_clk",
3767 .ops
= &clk_branch2_ops
,
3772 static struct clk_branch gcc_pcie_1_pipe_clk
= {
3773 .halt_reg
= 0x8d030,
3774 .halt_check
= BRANCH_HALT_SKIP
,
3776 .enable_reg
= 0x52000,
3777 .enable_mask
= BIT(30),
3778 .hw
.init
= &(const struct clk_init_data
) {
3779 .name
= "gcc_pcie_1_pipe_clk",
3780 .parent_hws
= (const struct clk_hw
*[]){
3781 &gcc_usb4_1_phy_pcie_pipe_mux_clk_src
.clkr
.hw
,
3784 .flags
= CLK_SET_RATE_PARENT
,
3785 .ops
= &clk_branch2_ops
,
3790 static struct clk_branch gcc_pcie_1_slv_axi_clk
= {
3791 .halt_reg
= 0x8d014,
3792 .halt_check
= BRANCH_HALT_VOTED
,
3793 .hwcg_reg
= 0x8d014,
3796 .enable_reg
= 0x52000,
3797 .enable_mask
= BIT(26),
3798 .hw
.init
= &(const struct clk_init_data
) {
3799 .name
= "gcc_pcie_1_slv_axi_clk",
3800 .ops
= &clk_branch2_ops
,
3805 static struct clk_branch gcc_pcie_1_slv_q2a_axi_clk
= {
3806 .halt_reg
= 0x8d010,
3807 .halt_check
= BRANCH_HALT_VOTED
,
3809 .enable_reg
= 0x52000,
3810 .enable_mask
= BIT(25),
3811 .hw
.init
= &(const struct clk_init_data
) {
3812 .name
= "gcc_pcie_1_slv_q2a_axi_clk",
3813 .ops
= &clk_branch2_ops
,
3818 static struct clk_branch gcc_pcie_2a2b_clkref_clk
= {
3819 .halt_reg
= 0x8c034,
3820 .halt_check
= BRANCH_HALT
,
3822 .enable_reg
= 0x8c034,
3823 .enable_mask
= BIT(0),
3824 .hw
.init
= &(const struct clk_init_data
) {
3825 .name
= "gcc_pcie_2a2b_clkref_clk",
3826 .ops
= &clk_branch2_ops
,
3831 static struct clk_branch gcc_pcie_2a_aux_clk
= {
3832 .halt_reg
= 0x9d028,
3833 .halt_check
= BRANCH_HALT_VOTED
,
3835 .enable_reg
= 0x52010,
3836 .enable_mask
= BIT(13),
3837 .hw
.init
= &(const struct clk_init_data
) {
3838 .name
= "gcc_pcie_2a_aux_clk",
3839 .parent_hws
= (const struct clk_hw
*[]){
3840 &gcc_pcie_2a_aux_clk_src
.clkr
.hw
,
3843 .flags
= CLK_SET_RATE_PARENT
,
3844 .ops
= &clk_branch2_ops
,
3849 static struct clk_branch gcc_pcie_2a_cfg_ahb_clk
= {
3850 .halt_reg
= 0x9d024,
3851 .halt_check
= BRANCH_HALT_VOTED
,
3852 .hwcg_reg
= 0x9d024,
3855 .enable_reg
= 0x52010,
3856 .enable_mask
= BIT(12),
3857 .hw
.init
= &(const struct clk_init_data
) {
3858 .name
= "gcc_pcie_2a_cfg_ahb_clk",
3859 .ops
= &clk_branch2_ops
,
3864 static struct clk_branch gcc_pcie_2a_mstr_axi_clk
= {
3865 .halt_reg
= 0x9d01c,
3866 .halt_check
= BRANCH_HALT_SKIP
,
3867 .hwcg_reg
= 0x9d01c,
3870 .enable_reg
= 0x52010,
3871 .enable_mask
= BIT(11),
3872 .hw
.init
= &(const struct clk_init_data
) {
3873 .name
= "gcc_pcie_2a_mstr_axi_clk",
3874 .ops
= &clk_branch2_ops
,
3879 static struct clk_branch gcc_pcie_2a_pipe_clk
= {
3880 .halt_reg
= 0x9d030,
3881 .halt_check
= BRANCH_HALT_SKIP
,
3883 .enable_reg
= 0x52010,
3884 .enable_mask
= BIT(14),
3885 .hw
.init
= &(const struct clk_init_data
) {
3886 .name
= "gcc_pcie_2a_pipe_clk",
3887 .parent_hws
= (const struct clk_hw
*[]){
3888 &gcc_pcie_2a_pipe_clk_src
.clkr
.hw
,
3891 .flags
= CLK_SET_RATE_PARENT
,
3892 .ops
= &clk_branch2_ops
,
3897 static struct clk_branch gcc_pcie_2a_pipediv2_clk
= {
3898 .halt_reg
= 0x9d038,
3899 .halt_check
= BRANCH_HALT_SKIP
,
3901 .enable_reg
= 0x52018,
3902 .enable_mask
= BIT(22),
3903 .hw
.init
= &(const struct clk_init_data
) {
3904 .name
= "gcc_pcie_2a_pipediv2_clk",
3905 .parent_hws
= (const struct clk_hw
*[]){
3906 &gcc_pcie_2a_pipe_div_clk_src
.clkr
.hw
,
3909 .flags
= CLK_SET_RATE_PARENT
,
3910 .ops
= &clk_branch2_ops
,
3915 static struct clk_branch gcc_pcie_2a_slv_axi_clk
= {
3916 .halt_reg
= 0x9d014,
3917 .halt_check
= BRANCH_HALT_VOTED
,
3918 .hwcg_reg
= 0x9d014,
3921 .enable_reg
= 0x52010,
3922 .enable_mask
= BIT(10),
3923 .hw
.init
= &(const struct clk_init_data
) {
3924 .name
= "gcc_pcie_2a_slv_axi_clk",
3925 .ops
= &clk_branch2_ops
,
3930 static struct clk_branch gcc_pcie_2a_slv_q2a_axi_clk
= {
3931 .halt_reg
= 0x9d010,
3932 .halt_check
= BRANCH_HALT_VOTED
,
3934 .enable_reg
= 0x52018,
3935 .enable_mask
= BIT(12),
3936 .hw
.init
= &(const struct clk_init_data
) {
3937 .name
= "gcc_pcie_2a_slv_q2a_axi_clk",
3938 .ops
= &clk_branch2_ops
,
3943 static struct clk_branch gcc_pcie_2b_aux_clk
= {
3944 .halt_reg
= 0x9e028,
3945 .halt_check
= BRANCH_HALT_VOTED
,
3947 .enable_reg
= 0x52010,
3948 .enable_mask
= BIT(20),
3949 .hw
.init
= &(const struct clk_init_data
) {
3950 .name
= "gcc_pcie_2b_aux_clk",
3951 .parent_hws
= (const struct clk_hw
*[]){
3952 &gcc_pcie_2b_aux_clk_src
.clkr
.hw
,
3955 .flags
= CLK_SET_RATE_PARENT
,
3956 .ops
= &clk_branch2_ops
,
3961 static struct clk_branch gcc_pcie_2b_cfg_ahb_clk
= {
3962 .halt_reg
= 0x9e024,
3963 .halt_check
= BRANCH_HALT_VOTED
,
3964 .hwcg_reg
= 0x9e024,
3967 .enable_reg
= 0x52010,
3968 .enable_mask
= BIT(19),
3969 .hw
.init
= &(const struct clk_init_data
) {
3970 .name
= "gcc_pcie_2b_cfg_ahb_clk",
3971 .ops
= &clk_branch2_ops
,
3976 static struct clk_branch gcc_pcie_2b_mstr_axi_clk
= {
3977 .halt_reg
= 0x9e01c,
3978 .halt_check
= BRANCH_HALT_SKIP
,
3979 .hwcg_reg
= 0x9e01c,
3982 .enable_reg
= 0x52010,
3983 .enable_mask
= BIT(18),
3984 .hw
.init
= &(const struct clk_init_data
) {
3985 .name
= "gcc_pcie_2b_mstr_axi_clk",
3986 .ops
= &clk_branch2_ops
,
3991 static struct clk_branch gcc_pcie_2b_pipe_clk
= {
3992 .halt_reg
= 0x9e030,
3993 .halt_check
= BRANCH_HALT_SKIP
,
3995 .enable_reg
= 0x52010,
3996 .enable_mask
= BIT(21),
3997 .hw
.init
= &(const struct clk_init_data
) {
3998 .name
= "gcc_pcie_2b_pipe_clk",
3999 .parent_hws
= (const struct clk_hw
*[]){
4000 &gcc_pcie_2b_pipe_clk_src
.clkr
.hw
,
4003 .flags
= CLK_SET_RATE_PARENT
,
4004 .ops
= &clk_branch2_ops
,
4009 static struct clk_branch gcc_pcie_2b_pipediv2_clk
= {
4010 .halt_reg
= 0x9e038,
4011 .halt_check
= BRANCH_HALT_SKIP
,
4013 .enable_reg
= 0x52018,
4014 .enable_mask
= BIT(23),
4015 .hw
.init
= &(const struct clk_init_data
) {
4016 .name
= "gcc_pcie_2b_pipediv2_clk",
4017 .parent_hws
= (const struct clk_hw
*[]){
4018 &gcc_pcie_2b_pipe_div_clk_src
.clkr
.hw
,
4021 .flags
= CLK_SET_RATE_PARENT
,
4022 .ops
= &clk_branch2_ops
,
4027 static struct clk_branch gcc_pcie_2b_slv_axi_clk
= {
4028 .halt_reg
= 0x9e014,
4029 .halt_check
= BRANCH_HALT_VOTED
,
4030 .hwcg_reg
= 0x9e014,
4033 .enable_reg
= 0x52010,
4034 .enable_mask
= BIT(17),
4035 .hw
.init
= &(const struct clk_init_data
) {
4036 .name
= "gcc_pcie_2b_slv_axi_clk",
4037 .ops
= &clk_branch2_ops
,
4042 static struct clk_branch gcc_pcie_2b_slv_q2a_axi_clk
= {
4043 .halt_reg
= 0x9e010,
4044 .halt_check
= BRANCH_HALT_VOTED
,
4046 .enable_reg
= 0x52010,
4047 .enable_mask
= BIT(16),
4048 .hw
.init
= &(const struct clk_init_data
) {
4049 .name
= "gcc_pcie_2b_slv_q2a_axi_clk",
4050 .ops
= &clk_branch2_ops
,
4055 static struct clk_branch gcc_pcie_3a3b_clkref_clk
= {
4056 .halt_reg
= 0x8c038,
4057 .halt_check
= BRANCH_HALT
,
4059 .enable_reg
= 0x8c038,
4060 .enable_mask
= BIT(0),
4061 .hw
.init
= &(const struct clk_init_data
) {
4062 .name
= "gcc_pcie_3a3b_clkref_clk",
4063 .ops
= &clk_branch2_ops
,
4068 static struct clk_branch gcc_pcie_3a_aux_clk
= {
4069 .halt_reg
= 0xa0028,
4070 .halt_check
= BRANCH_HALT_VOTED
,
4072 .enable_reg
= 0x52010,
4073 .enable_mask
= BIT(27),
4074 .hw
.init
= &(const struct clk_init_data
) {
4075 .name
= "gcc_pcie_3a_aux_clk",
4076 .parent_hws
= (const struct clk_hw
*[]){
4077 &gcc_pcie_3a_aux_clk_src
.clkr
.hw
,
4080 .flags
= CLK_SET_RATE_PARENT
,
4081 .ops
= &clk_branch2_ops
,
4086 static struct clk_branch gcc_pcie_3a_cfg_ahb_clk
= {
4087 .halt_reg
= 0xa0024,
4088 .halt_check
= BRANCH_HALT_VOTED
,
4089 .hwcg_reg
= 0xa0024,
4092 .enable_reg
= 0x52010,
4093 .enable_mask
= BIT(26),
4094 .hw
.init
= &(const struct clk_init_data
) {
4095 .name
= "gcc_pcie_3a_cfg_ahb_clk",
4096 .ops
= &clk_branch2_ops
,
4101 static struct clk_branch gcc_pcie_3a_mstr_axi_clk
= {
4102 .halt_reg
= 0xa001c,
4103 .halt_check
= BRANCH_HALT_SKIP
,
4104 .hwcg_reg
= 0xa001c,
4107 .enable_reg
= 0x52010,
4108 .enable_mask
= BIT(25),
4109 .hw
.init
= &(const struct clk_init_data
) {
4110 .name
= "gcc_pcie_3a_mstr_axi_clk",
4111 .ops
= &clk_branch2_ops
,
4116 static struct clk_branch gcc_pcie_3a_pipe_clk
= {
4117 .halt_reg
= 0xa0030,
4118 .halt_check
= BRANCH_HALT_SKIP
,
4120 .enable_reg
= 0x52010,
4121 .enable_mask
= BIT(28),
4122 .hw
.init
= &(const struct clk_init_data
) {
4123 .name
= "gcc_pcie_3a_pipe_clk",
4124 .parent_hws
= (const struct clk_hw
*[]){
4125 &gcc_pcie_3a_pipe_clk_src
.clkr
.hw
,
4128 .flags
= CLK_SET_RATE_PARENT
,
4129 .ops
= &clk_branch2_ops
,
4134 static struct clk_branch gcc_pcie_3a_pipediv2_clk
= {
4135 .halt_reg
= 0xa0038,
4136 .halt_check
= BRANCH_HALT_SKIP
,
4138 .enable_reg
= 0x52018,
4139 .enable_mask
= BIT(24),
4140 .hw
.init
= &(const struct clk_init_data
) {
4141 .name
= "gcc_pcie_3a_pipediv2_clk",
4142 .parent_hws
= (const struct clk_hw
*[]){
4143 &gcc_pcie_3a_pipe_div_clk_src
.clkr
.hw
,
4146 .flags
= CLK_SET_RATE_PARENT
,
4147 .ops
= &clk_branch2_ops
,
4152 static struct clk_branch gcc_pcie_3a_slv_axi_clk
= {
4153 .halt_reg
= 0xa0014,
4154 .halt_check
= BRANCH_HALT_VOTED
,
4155 .hwcg_reg
= 0xa0014,
4158 .enable_reg
= 0x52010,
4159 .enable_mask
= BIT(24),
4160 .hw
.init
= &(const struct clk_init_data
) {
4161 .name
= "gcc_pcie_3a_slv_axi_clk",
4162 .ops
= &clk_branch2_ops
,
4167 static struct clk_branch gcc_pcie_3a_slv_q2a_axi_clk
= {
4168 .halt_reg
= 0xa0010,
4169 .halt_check
= BRANCH_HALT_VOTED
,
4171 .enable_reg
= 0x52010,
4172 .enable_mask
= BIT(23),
4173 .hw
.init
= &(const struct clk_init_data
) {
4174 .name
= "gcc_pcie_3a_slv_q2a_axi_clk",
4175 .ops
= &clk_branch2_ops
,
4180 static struct clk_branch gcc_pcie_3b_aux_clk
= {
4181 .halt_reg
= 0xa2028,
4182 .halt_check
= BRANCH_HALT_VOTED
,
4184 .enable_reg
= 0x52018,
4185 .enable_mask
= BIT(2),
4186 .hw
.init
= &(const struct clk_init_data
) {
4187 .name
= "gcc_pcie_3b_aux_clk",
4188 .parent_hws
= (const struct clk_hw
*[]){
4189 &gcc_pcie_3b_aux_clk_src
.clkr
.hw
,
4192 .flags
= CLK_SET_RATE_PARENT
,
4193 .ops
= &clk_branch2_ops
,
4198 static struct clk_branch gcc_pcie_3b_cfg_ahb_clk
= {
4199 .halt_reg
= 0xa2024,
4200 .halt_check
= BRANCH_HALT_VOTED
,
4201 .hwcg_reg
= 0xa2024,
4204 .enable_reg
= 0x52018,
4205 .enable_mask
= BIT(1),
4206 .hw
.init
= &(const struct clk_init_data
) {
4207 .name
= "gcc_pcie_3b_cfg_ahb_clk",
4208 .ops
= &clk_branch2_ops
,
4213 static struct clk_branch gcc_pcie_3b_mstr_axi_clk
= {
4214 .halt_reg
= 0xa201c,
4215 .halt_check
= BRANCH_HALT_SKIP
,
4216 .hwcg_reg
= 0xa201c,
4219 .enable_reg
= 0x52018,
4220 .enable_mask
= BIT(0),
4221 .hw
.init
= &(const struct clk_init_data
) {
4222 .name
= "gcc_pcie_3b_mstr_axi_clk",
4223 .ops
= &clk_branch2_ops
,
4228 static struct clk_branch gcc_pcie_3b_pipe_clk
= {
4229 .halt_reg
= 0xa2030,
4230 .halt_check
= BRANCH_HALT_SKIP
,
4232 .enable_reg
= 0x52018,
4233 .enable_mask
= BIT(3),
4234 .hw
.init
= &(const struct clk_init_data
) {
4235 .name
= "gcc_pcie_3b_pipe_clk",
4236 .parent_hws
= (const struct clk_hw
*[]){
4237 &gcc_pcie_3b_pipe_clk_src
.clkr
.hw
,
4240 .flags
= CLK_SET_RATE_PARENT
,
4241 .ops
= &clk_branch2_ops
,
4246 static struct clk_branch gcc_pcie_3b_pipediv2_clk
= {
4247 .halt_reg
= 0xa2038,
4248 .halt_check
= BRANCH_HALT_SKIP
,
4250 .enable_reg
= 0x52018,
4251 .enable_mask
= BIT(25),
4252 .hw
.init
= &(const struct clk_init_data
) {
4253 .name
= "gcc_pcie_3b_pipediv2_clk",
4254 .parent_hws
= (const struct clk_hw
*[]){
4255 &gcc_pcie_3b_pipe_div_clk_src
.clkr
.hw
,
4258 .flags
= CLK_SET_RATE_PARENT
,
4259 .ops
= &clk_branch2_ops
,
4264 static struct clk_branch gcc_pcie_3b_slv_axi_clk
= {
4265 .halt_reg
= 0xa2014,
4266 .halt_check
= BRANCH_HALT_VOTED
,
4267 .hwcg_reg
= 0xa2014,
4270 .enable_reg
= 0x52010,
4271 .enable_mask
= BIT(31),
4272 .hw
.init
= &(const struct clk_init_data
) {
4273 .name
= "gcc_pcie_3b_slv_axi_clk",
4274 .ops
= &clk_branch2_ops
,
4279 static struct clk_branch gcc_pcie_3b_slv_q2a_axi_clk
= {
4280 .halt_reg
= 0xa2010,
4281 .halt_check
= BRANCH_HALT_VOTED
,
4283 .enable_reg
= 0x52010,
4284 .enable_mask
= BIT(30),
4285 .hw
.init
= &(const struct clk_init_data
) {
4286 .name
= "gcc_pcie_3b_slv_q2a_axi_clk",
4287 .ops
= &clk_branch2_ops
,
4292 static struct clk_branch gcc_pcie_4_aux_clk
= {
4293 .halt_reg
= 0x6b028,
4294 .halt_check
= BRANCH_HALT_VOTED
,
4296 .enable_reg
= 0x52008,
4297 .enable_mask
= BIT(3),
4298 .hw
.init
= &(const struct clk_init_data
) {
4299 .name
= "gcc_pcie_4_aux_clk",
4300 .parent_hws
= (const struct clk_hw
*[]){
4301 &gcc_pcie_4_aux_clk_src
.clkr
.hw
,
4304 .flags
= CLK_SET_RATE_PARENT
,
4305 .ops
= &clk_branch2_ops
,
4310 static struct clk_branch gcc_pcie_4_cfg_ahb_clk
= {
4311 .halt_reg
= 0x6b024,
4312 .halt_check
= BRANCH_HALT_VOTED
,
4313 .hwcg_reg
= 0x6b024,
4316 .enable_reg
= 0x52008,
4317 .enable_mask
= BIT(2),
4318 .hw
.init
= &(const struct clk_init_data
) {
4319 .name
= "gcc_pcie_4_cfg_ahb_clk",
4320 .ops
= &clk_branch2_ops
,
4325 static struct clk_branch gcc_pcie_4_clkref_clk
= {
4326 .halt_reg
= 0x8c030,
4327 .halt_check
= BRANCH_HALT
,
4329 .enable_reg
= 0x8c030,
4330 .enable_mask
= BIT(0),
4331 .hw
.init
= &(const struct clk_init_data
) {
4332 .name
= "gcc_pcie_4_clkref_clk",
4333 .ops
= &clk_branch2_ops
,
4338 static struct clk_branch gcc_pcie_4_mstr_axi_clk
= {
4339 .halt_reg
= 0x6b01c,
4340 .halt_check
= BRANCH_HALT_SKIP
,
4341 .hwcg_reg
= 0x6b01c,
4344 .enable_reg
= 0x52008,
4345 .enable_mask
= BIT(1),
4346 .hw
.init
= &(const struct clk_init_data
) {
4347 .name
= "gcc_pcie_4_mstr_axi_clk",
4348 .ops
= &clk_branch2_ops
,
4353 static struct clk_branch gcc_pcie_4_pipe_clk
= {
4354 .halt_reg
= 0x6b030,
4355 .halt_check
= BRANCH_HALT_SKIP
,
4357 .enable_reg
= 0x52008,
4358 .enable_mask
= BIT(4),
4359 .hw
.init
= &(const struct clk_init_data
) {
4360 .name
= "gcc_pcie_4_pipe_clk",
4361 .parent_hws
= (const struct clk_hw
*[]){
4362 &gcc_pcie_4_pipe_clk_src
.clkr
.hw
,
4365 .flags
= CLK_SET_RATE_PARENT
,
4366 .ops
= &clk_branch2_ops
,
4371 static struct clk_branch gcc_pcie_4_pipediv2_clk
= {
4372 .halt_reg
= 0x6b038,
4373 .halt_check
= BRANCH_HALT_SKIP
,
4375 .enable_reg
= 0x52018,
4376 .enable_mask
= BIT(16),
4377 .hw
.init
= &(const struct clk_init_data
) {
4378 .name
= "gcc_pcie_4_pipediv2_clk",
4379 .parent_hws
= (const struct clk_hw
*[]){
4380 &gcc_pcie_4_pipe_div_clk_src
.clkr
.hw
,
4383 .flags
= CLK_SET_RATE_PARENT
,
4384 .ops
= &clk_branch2_ops
,
4389 static struct clk_branch gcc_pcie_4_slv_axi_clk
= {
4390 .halt_reg
= 0x6b014,
4391 .halt_check
= BRANCH_HALT_VOTED
,
4392 .hwcg_reg
= 0x6b014,
4395 .enable_reg
= 0x52008,
4396 .enable_mask
= BIT(0),
4397 .hw
.init
= &(const struct clk_init_data
) {
4398 .name
= "gcc_pcie_4_slv_axi_clk",
4399 .ops
= &clk_branch2_ops
,
4404 static struct clk_branch gcc_pcie_4_slv_q2a_axi_clk
= {
4405 .halt_reg
= 0x6b010,
4406 .halt_check
= BRANCH_HALT_VOTED
,
4408 .enable_reg
= 0x52008,
4409 .enable_mask
= BIT(5),
4410 .hw
.init
= &(const struct clk_init_data
) {
4411 .name
= "gcc_pcie_4_slv_q2a_axi_clk",
4412 .ops
= &clk_branch2_ops
,
4417 static struct clk_branch gcc_pcie_rscc_ahb_clk
= {
4418 .halt_reg
= 0xae008,
4419 .halt_check
= BRANCH_HALT_VOTED
,
4420 .hwcg_reg
= 0xae008,
4423 .enable_reg
= 0x52020,
4424 .enable_mask
= BIT(17),
4425 .hw
.init
= &(const struct clk_init_data
) {
4426 .name
= "gcc_pcie_rscc_ahb_clk",
4427 .ops
= &clk_branch2_ops
,
4432 static struct clk_branch gcc_pcie_rscc_xo_clk
= {
4433 .halt_reg
= 0xae004,
4434 .halt_check
= BRANCH_HALT_VOTED
,
4436 .enable_reg
= 0x52020,
4437 .enable_mask
= BIT(16),
4438 .hw
.init
= &(const struct clk_init_data
) {
4439 .name
= "gcc_pcie_rscc_xo_clk",
4440 .parent_hws
= (const struct clk_hw
*[]){
4441 &gcc_pcie_rscc_xo_clk_src
.clkr
.hw
,
4444 .flags
= CLK_SET_RATE_PARENT
,
4445 .ops
= &clk_branch2_ops
,
4450 static struct clk_branch gcc_pcie_throttle_cfg_clk
= {
4451 .halt_reg
= 0xa6028,
4452 .halt_check
= BRANCH_HALT_VOTED
,
4454 .enable_reg
= 0x52020,
4455 .enable_mask
= BIT(15),
4456 .hw
.init
= &(const struct clk_init_data
) {
4457 .name
= "gcc_pcie_throttle_cfg_clk",
4458 .ops
= &clk_branch2_ops
,
4463 static struct clk_branch gcc_pdm2_clk
= {
4464 .halt_reg
= 0x3300c,
4465 .halt_check
= BRANCH_HALT
,
4467 .enable_reg
= 0x3300c,
4468 .enable_mask
= BIT(0),
4469 .hw
.init
= &(const struct clk_init_data
) {
4470 .name
= "gcc_pdm2_clk",
4471 .parent_hws
= (const struct clk_hw
*[]){
4472 &gcc_pdm2_clk_src
.clkr
.hw
,
4475 .flags
= CLK_SET_RATE_PARENT
,
4476 .ops
= &clk_branch2_ops
,
4481 static struct clk_branch gcc_pdm_ahb_clk
= {
4482 .halt_reg
= 0x33004,
4483 .halt_check
= BRANCH_HALT_VOTED
,
4484 .hwcg_reg
= 0x33004,
4487 .enable_reg
= 0x33004,
4488 .enable_mask
= BIT(0),
4489 .hw
.init
= &(const struct clk_init_data
) {
4490 .name
= "gcc_pdm_ahb_clk",
4491 .ops
= &clk_branch2_ops
,
4496 static struct clk_branch gcc_pdm_xo4_clk
= {
4497 .halt_reg
= 0x33008,
4498 .halt_check
= BRANCH_HALT
,
4500 .enable_reg
= 0x33008,
4501 .enable_mask
= BIT(0),
4502 .hw
.init
= &(const struct clk_init_data
) {
4503 .name
= "gcc_pdm_xo4_clk",
4504 .ops
= &clk_branch2_ops
,
4509 static struct clk_branch gcc_qmip_camera_nrt_ahb_clk
= {
4510 .halt_reg
= 0x26008,
4511 .halt_check
= BRANCH_HALT_VOTED
,
4512 .hwcg_reg
= 0x26008,
4515 .enable_reg
= 0x26008,
4516 .enable_mask
= BIT(0),
4517 .hw
.init
= &(const struct clk_init_data
) {
4518 .name
= "gcc_qmip_camera_nrt_ahb_clk",
4519 .ops
= &clk_branch2_ops
,
4524 static struct clk_branch gcc_qmip_camera_rt_ahb_clk
= {
4525 .halt_reg
= 0x2600c,
4526 .halt_check
= BRANCH_HALT_VOTED
,
4527 .hwcg_reg
= 0x2600c,
4530 .enable_reg
= 0x2600c,
4531 .enable_mask
= BIT(0),
4532 .hw
.init
= &(const struct clk_init_data
) {
4533 .name
= "gcc_qmip_camera_rt_ahb_clk",
4534 .ops
= &clk_branch2_ops
,
4539 static struct clk_branch gcc_qmip_disp1_ahb_clk
= {
4540 .halt_reg
= 0xbb008,
4541 .halt_check
= BRANCH_HALT_VOTED
,
4542 .hwcg_reg
= 0xbb008,
4545 .enable_reg
= 0xbb008,
4546 .enable_mask
= BIT(0),
4547 .hw
.init
= &(const struct clk_init_data
) {
4548 .name
= "gcc_qmip_disp1_ahb_clk",
4549 .ops
= &clk_branch2_ops
,
4554 static struct clk_branch gcc_qmip_disp1_rot_ahb_clk
= {
4555 .halt_reg
= 0xbb00c,
4556 .halt_check
= BRANCH_HALT_VOTED
,
4557 .hwcg_reg
= 0xbb00c,
4560 .enable_reg
= 0xbb00c,
4561 .enable_mask
= BIT(0),
4562 .hw
.init
= &(const struct clk_init_data
) {
4563 .name
= "gcc_qmip_disp1_rot_ahb_clk",
4564 .ops
= &clk_branch2_ops
,
4569 static struct clk_branch gcc_qmip_disp_ahb_clk
= {
4570 .halt_reg
= 0x27008,
4571 .halt_check
= BRANCH_HALT_VOTED
,
4572 .hwcg_reg
= 0x27008,
4575 .enable_reg
= 0x27008,
4576 .enable_mask
= BIT(0),
4577 .hw
.init
= &(const struct clk_init_data
) {
4578 .name
= "gcc_qmip_disp_ahb_clk",
4579 .ops
= &clk_branch2_ops
,
4584 static struct clk_branch gcc_qmip_disp_rot_ahb_clk
= {
4585 .halt_reg
= 0x2700c,
4586 .halt_check
= BRANCH_HALT_VOTED
,
4587 .hwcg_reg
= 0x2700c,
4590 .enable_reg
= 0x2700c,
4591 .enable_mask
= BIT(0),
4592 .hw
.init
= &(const struct clk_init_data
) {
4593 .name
= "gcc_qmip_disp_rot_ahb_clk",
4594 .ops
= &clk_branch2_ops
,
4599 static struct clk_branch gcc_qmip_video_cvp_ahb_clk
= {
4600 .halt_reg
= 0x28008,
4601 .halt_check
= BRANCH_HALT_VOTED
,
4602 .hwcg_reg
= 0x28008,
4605 .enable_reg
= 0x28008,
4606 .enable_mask
= BIT(0),
4607 .hw
.init
= &(const struct clk_init_data
) {
4608 .name
= "gcc_qmip_video_cvp_ahb_clk",
4609 .ops
= &clk_branch2_ops
,
4614 static struct clk_branch gcc_qmip_video_vcodec_ahb_clk
= {
4615 .halt_reg
= 0x2800c,
4616 .halt_check
= BRANCH_HALT_VOTED
,
4617 .hwcg_reg
= 0x2800c,
4620 .enable_reg
= 0x2800c,
4621 .enable_mask
= BIT(0),
4622 .hw
.init
= &(const struct clk_init_data
) {
4623 .name
= "gcc_qmip_video_vcodec_ahb_clk",
4624 .ops
= &clk_branch2_ops
,
4629 static struct clk_branch gcc_qupv3_wrap0_core_2x_clk
= {
4630 .halt_reg
= 0x17014,
4631 .halt_check
= BRANCH_HALT_VOTED
,
4633 .enable_reg
= 0x52008,
4634 .enable_mask
= BIT(9),
4635 .hw
.init
= &(const struct clk_init_data
) {
4636 .name
= "gcc_qupv3_wrap0_core_2x_clk",
4637 .ops
= &clk_branch2_ops
,
4642 static struct clk_branch gcc_qupv3_wrap0_core_clk
= {
4643 .halt_reg
= 0x1700c,
4644 .halt_check
= BRANCH_HALT_VOTED
,
4646 .enable_reg
= 0x52008,
4647 .enable_mask
= BIT(8),
4648 .hw
.init
= &(const struct clk_init_data
) {
4649 .name
= "gcc_qupv3_wrap0_core_clk",
4650 .ops
= &clk_branch2_ops
,
4655 static struct clk_branch gcc_qupv3_wrap0_qspi0_clk
= {
4656 .halt_reg
= 0x17ac4,
4657 .halt_check
= BRANCH_HALT_VOTED
,
4659 .enable_reg
= 0x52020,
4660 .enable_mask
= BIT(0),
4661 .hw
.init
= &(const struct clk_init_data
) {
4662 .name
= "gcc_qupv3_wrap0_qspi0_clk",
4663 .parent_hws
= (const struct clk_hw
*[]){
4664 &gcc_qupv3_wrap0_s4_clk_src
.clkr
.hw
,
4667 .flags
= CLK_SET_RATE_PARENT
,
4668 .ops
= &clk_branch2_ops
,
4673 static struct clk_branch gcc_qupv3_wrap0_s0_clk
= {
4674 .halt_reg
= 0x17144,
4675 .halt_check
= BRANCH_HALT_VOTED
,
4677 .enable_reg
= 0x52008,
4678 .enable_mask
= BIT(10),
4679 .hw
.init
= &(const struct clk_init_data
) {
4680 .name
= "gcc_qupv3_wrap0_s0_clk",
4681 .parent_hws
= (const struct clk_hw
*[]){
4682 &gcc_qupv3_wrap0_s0_clk_src
.clkr
.hw
,
4685 .flags
= CLK_SET_RATE_PARENT
,
4686 .ops
= &clk_branch2_ops
,
4691 static struct clk_branch gcc_qupv3_wrap0_s1_clk
= {
4692 .halt_reg
= 0x17274,
4693 .halt_check
= BRANCH_HALT_VOTED
,
4695 .enable_reg
= 0x52008,
4696 .enable_mask
= BIT(11),
4697 .hw
.init
= &(const struct clk_init_data
) {
4698 .name
= "gcc_qupv3_wrap0_s1_clk",
4699 .parent_hws
= (const struct clk_hw
*[]){
4700 &gcc_qupv3_wrap0_s1_clk_src
.clkr
.hw
,
4703 .flags
= CLK_SET_RATE_PARENT
,
4704 .ops
= &clk_branch2_ops
,
4709 static struct clk_branch gcc_qupv3_wrap0_s2_clk
= {
4710 .halt_reg
= 0x173a4,
4711 .halt_check
= BRANCH_HALT_VOTED
,
4713 .enable_reg
= 0x52008,
4714 .enable_mask
= BIT(12),
4715 .hw
.init
= &(const struct clk_init_data
) {
4716 .name
= "gcc_qupv3_wrap0_s2_clk",
4717 .parent_hws
= (const struct clk_hw
*[]){
4718 &gcc_qupv3_wrap0_s2_clk_src
.clkr
.hw
,
4721 .flags
= CLK_SET_RATE_PARENT
,
4722 .ops
= &clk_branch2_ops
,
4727 static struct clk_branch gcc_qupv3_wrap0_s3_clk
= {
4728 .halt_reg
= 0x174d4,
4729 .halt_check
= BRANCH_HALT_VOTED
,
4731 .enable_reg
= 0x52008,
4732 .enable_mask
= BIT(13),
4733 .hw
.init
= &(const struct clk_init_data
) {
4734 .name
= "gcc_qupv3_wrap0_s3_clk",
4735 .parent_hws
= (const struct clk_hw
*[]){
4736 &gcc_qupv3_wrap0_s3_clk_src
.clkr
.hw
,
4739 .flags
= CLK_SET_RATE_PARENT
,
4740 .ops
= &clk_branch2_ops
,
4745 static struct clk_branch gcc_qupv3_wrap0_s4_clk
= {
4746 .halt_reg
= 0x17604,
4747 .halt_check
= BRANCH_HALT_VOTED
,
4749 .enable_reg
= 0x52008,
4750 .enable_mask
= BIT(14),
4751 .hw
.init
= &(const struct clk_init_data
) {
4752 .name
= "gcc_qupv3_wrap0_s4_clk",
4753 .parent_hws
= (const struct clk_hw
*[]){
4754 &gcc_qupv3_wrap0_s4_div_clk_src
.clkr
.hw
,
4757 .flags
= CLK_SET_RATE_PARENT
,
4758 .ops
= &clk_branch2_ops
,
4763 static struct clk_branch gcc_qupv3_wrap0_s5_clk
= {
4764 .halt_reg
= 0x17734,
4765 .halt_check
= BRANCH_HALT_VOTED
,
4767 .enable_reg
= 0x52008,
4768 .enable_mask
= BIT(15),
4769 .hw
.init
= &(const struct clk_init_data
) {
4770 .name
= "gcc_qupv3_wrap0_s5_clk",
4771 .parent_hws
= (const struct clk_hw
*[]){
4772 &gcc_qupv3_wrap0_s5_clk_src
.clkr
.hw
,
4775 .flags
= CLK_SET_RATE_PARENT
,
4776 .ops
= &clk_branch2_ops
,
4781 static struct clk_branch gcc_qupv3_wrap0_s6_clk
= {
4782 .halt_reg
= 0x17864,
4783 .halt_check
= BRANCH_HALT_VOTED
,
4785 .enable_reg
= 0x52008,
4786 .enable_mask
= BIT(16),
4787 .hw
.init
= &(const struct clk_init_data
) {
4788 .name
= "gcc_qupv3_wrap0_s6_clk",
4789 .parent_hws
= (const struct clk_hw
*[]){
4790 &gcc_qupv3_wrap0_s6_clk_src
.clkr
.hw
,
4793 .flags
= CLK_SET_RATE_PARENT
,
4794 .ops
= &clk_branch2_ops
,
4799 static struct clk_branch gcc_qupv3_wrap0_s7_clk
= {
4800 .halt_reg
= 0x17994,
4801 .halt_check
= BRANCH_HALT_VOTED
,
4803 .enable_reg
= 0x52008,
4804 .enable_mask
= BIT(17),
4805 .hw
.init
= &(const struct clk_init_data
) {
4806 .name
= "gcc_qupv3_wrap0_s7_clk",
4807 .parent_hws
= (const struct clk_hw
*[]){
4808 &gcc_qupv3_wrap0_s7_clk_src
.clkr
.hw
,
4811 .flags
= CLK_SET_RATE_PARENT
,
4812 .ops
= &clk_branch2_ops
,
4817 static struct clk_branch gcc_qupv3_wrap1_core_2x_clk
= {
4818 .halt_reg
= 0x18014,
4819 .halt_check
= BRANCH_HALT_VOTED
,
4821 .enable_reg
= 0x52008,
4822 .enable_mask
= BIT(18),
4823 .hw
.init
= &(const struct clk_init_data
) {
4824 .name
= "gcc_qupv3_wrap1_core_2x_clk",
4825 .ops
= &clk_branch2_ops
,
4830 static struct clk_branch gcc_qupv3_wrap1_core_clk
= {
4831 .halt_reg
= 0x1800c,
4832 .halt_check
= BRANCH_HALT_VOTED
,
4834 .enable_reg
= 0x52008,
4835 .enable_mask
= BIT(19),
4836 .hw
.init
= &(const struct clk_init_data
) {
4837 .name
= "gcc_qupv3_wrap1_core_clk",
4838 .ops
= &clk_branch2_ops
,
4843 static struct clk_branch gcc_qupv3_wrap1_qspi0_clk
= {
4844 .halt_reg
= 0x18ac4,
4845 .halt_check
= BRANCH_HALT_VOTED
,
4847 .enable_reg
= 0x52020,
4848 .enable_mask
= BIT(2),
4849 .hw
.init
= &(const struct clk_init_data
) {
4850 .name
= "gcc_qupv3_wrap1_qspi0_clk",
4851 .parent_hws
= (const struct clk_hw
*[]){
4852 &gcc_qupv3_wrap1_s4_clk_src
.clkr
.hw
,
4855 .flags
= CLK_SET_RATE_PARENT
,
4856 .ops
= &clk_branch2_ops
,
4861 static struct clk_branch gcc_qupv3_wrap1_s0_clk
= {
4862 .halt_reg
= 0x18144,
4863 .halt_check
= BRANCH_HALT_VOTED
,
4865 .enable_reg
= 0x52008,
4866 .enable_mask
= BIT(22),
4867 .hw
.init
= &(const struct clk_init_data
) {
4868 .name
= "gcc_qupv3_wrap1_s0_clk",
4869 .parent_hws
= (const struct clk_hw
*[]){
4870 &gcc_qupv3_wrap1_s0_clk_src
.clkr
.hw
,
4873 .flags
= CLK_SET_RATE_PARENT
,
4874 .ops
= &clk_branch2_ops
,
4879 static struct clk_branch gcc_qupv3_wrap1_s1_clk
= {
4880 .halt_reg
= 0x18274,
4881 .halt_check
= BRANCH_HALT_VOTED
,
4883 .enable_reg
= 0x52008,
4884 .enable_mask
= BIT(23),
4885 .hw
.init
= &(const struct clk_init_data
) {
4886 .name
= "gcc_qupv3_wrap1_s1_clk",
4887 .parent_hws
= (const struct clk_hw
*[]){
4888 &gcc_qupv3_wrap1_s1_clk_src
.clkr
.hw
,
4891 .flags
= CLK_SET_RATE_PARENT
,
4892 .ops
= &clk_branch2_ops
,
4897 static struct clk_branch gcc_qupv3_wrap1_s2_clk
= {
4898 .halt_reg
= 0x183a4,
4899 .halt_check
= BRANCH_HALT_VOTED
,
4901 .enable_reg
= 0x52008,
4902 .enable_mask
= BIT(24),
4903 .hw
.init
= &(const struct clk_init_data
) {
4904 .name
= "gcc_qupv3_wrap1_s2_clk",
4905 .parent_hws
= (const struct clk_hw
*[]){
4906 &gcc_qupv3_wrap1_s2_clk_src
.clkr
.hw
,
4909 .flags
= CLK_SET_RATE_PARENT
,
4910 .ops
= &clk_branch2_ops
,
4915 static struct clk_branch gcc_qupv3_wrap1_s3_clk
= {
4916 .halt_reg
= 0x184d4,
4917 .halt_check
= BRANCH_HALT_VOTED
,
4919 .enable_reg
= 0x52008,
4920 .enable_mask
= BIT(25),
4921 .hw
.init
= &(const struct clk_init_data
) {
4922 .name
= "gcc_qupv3_wrap1_s3_clk",
4923 .parent_hws
= (const struct clk_hw
*[]){
4924 &gcc_qupv3_wrap1_s3_clk_src
.clkr
.hw
,
4927 .flags
= CLK_SET_RATE_PARENT
,
4928 .ops
= &clk_branch2_ops
,
4933 static struct clk_branch gcc_qupv3_wrap1_s4_clk
= {
4934 .halt_reg
= 0x18604,
4935 .halt_check
= BRANCH_HALT_VOTED
,
4937 .enable_reg
= 0x52008,
4938 .enable_mask
= BIT(26),
4939 .hw
.init
= &(const struct clk_init_data
) {
4940 .name
= "gcc_qupv3_wrap1_s4_clk",
4941 .parent_hws
= (const struct clk_hw
*[]){
4942 &gcc_qupv3_wrap1_s4_div_clk_src
.clkr
.hw
,
4945 .flags
= CLK_SET_RATE_PARENT
,
4946 .ops
= &clk_branch2_ops
,
4951 static struct clk_branch gcc_qupv3_wrap1_s5_clk
= {
4952 .halt_reg
= 0x18734,
4953 .halt_check
= BRANCH_HALT_VOTED
,
4955 .enable_reg
= 0x52008,
4956 .enable_mask
= BIT(27),
4957 .hw
.init
= &(const struct clk_init_data
) {
4958 .name
= "gcc_qupv3_wrap1_s5_clk",
4959 .parent_hws
= (const struct clk_hw
*[]){
4960 &gcc_qupv3_wrap1_s5_clk_src
.clkr
.hw
,
4963 .flags
= CLK_SET_RATE_PARENT
,
4964 .ops
= &clk_branch2_ops
,
4969 static struct clk_branch gcc_qupv3_wrap1_s6_clk
= {
4970 .halt_reg
= 0x18864,
4971 .halt_check
= BRANCH_HALT_VOTED
,
4973 .enable_reg
= 0x52018,
4974 .enable_mask
= BIT(27),
4975 .hw
.init
= &(const struct clk_init_data
) {
4976 .name
= "gcc_qupv3_wrap1_s6_clk",
4977 .parent_hws
= (const struct clk_hw
*[]){
4978 &gcc_qupv3_wrap1_s6_clk_src
.clkr
.hw
,
4981 .flags
= CLK_SET_RATE_PARENT
,
4982 .ops
= &clk_branch2_ops
,
4987 static struct clk_branch gcc_qupv3_wrap1_s7_clk
= {
4988 .halt_reg
= 0x18994,
4989 .halt_check
= BRANCH_HALT_VOTED
,
4991 .enable_reg
= 0x52018,
4992 .enable_mask
= BIT(28),
4993 .hw
.init
= &(const struct clk_init_data
) {
4994 .name
= "gcc_qupv3_wrap1_s7_clk",
4995 .parent_hws
= (const struct clk_hw
*[]){
4996 &gcc_qupv3_wrap1_s7_clk_src
.clkr
.hw
,
4999 .flags
= CLK_SET_RATE_PARENT
,
5000 .ops
= &clk_branch2_ops
,
5005 static struct clk_branch gcc_qupv3_wrap2_core_2x_clk
= {
5006 .halt_reg
= 0x1e014,
5007 .halt_check
= BRANCH_HALT_VOTED
,
5009 .enable_reg
= 0x52010,
5010 .enable_mask
= BIT(3),
5011 .hw
.init
= &(const struct clk_init_data
) {
5012 .name
= "gcc_qupv3_wrap2_core_2x_clk",
5013 .ops
= &clk_branch2_ops
,
5018 static struct clk_branch gcc_qupv3_wrap2_core_clk
= {
5019 .halt_reg
= 0x1e00c,
5020 .halt_check
= BRANCH_HALT_VOTED
,
5022 .enable_reg
= 0x52010,
5023 .enable_mask
= BIT(0),
5024 .hw
.init
= &(const struct clk_init_data
) {
5025 .name
= "gcc_qupv3_wrap2_core_clk",
5026 .ops
= &clk_branch2_ops
,
5031 static struct clk_branch gcc_qupv3_wrap2_qspi0_clk
= {
5032 .halt_reg
= 0x1eac4,
5033 .halt_check
= BRANCH_HALT_VOTED
,
5035 .enable_reg
= 0x52020,
5036 .enable_mask
= BIT(4),
5037 .hw
.init
= &(const struct clk_init_data
) {
5038 .name
= "gcc_qupv3_wrap2_qspi0_clk",
5039 .parent_hws
= (const struct clk_hw
*[]){
5040 &gcc_qupv3_wrap2_s4_clk_src
.clkr
.hw
,
5043 .flags
= CLK_SET_RATE_PARENT
,
5044 .ops
= &clk_branch2_ops
,
5049 static struct clk_branch gcc_qupv3_wrap2_s0_clk
= {
5050 .halt_reg
= 0x1e144,
5051 .halt_check
= BRANCH_HALT_VOTED
,
5053 .enable_reg
= 0x52010,
5054 .enable_mask
= BIT(4),
5055 .hw
.init
= &(const struct clk_init_data
) {
5056 .name
= "gcc_qupv3_wrap2_s0_clk",
5057 .parent_hws
= (const struct clk_hw
*[]){
5058 &gcc_qupv3_wrap2_s0_clk_src
.clkr
.hw
,
5061 .flags
= CLK_SET_RATE_PARENT
,
5062 .ops
= &clk_branch2_ops
,
5067 static struct clk_branch gcc_qupv3_wrap2_s1_clk
= {
5068 .halt_reg
= 0x1e274,
5069 .halt_check
= BRANCH_HALT_VOTED
,
5071 .enable_reg
= 0x52010,
5072 .enable_mask
= BIT(5),
5073 .hw
.init
= &(const struct clk_init_data
) {
5074 .name
= "gcc_qupv3_wrap2_s1_clk",
5075 .parent_hws
= (const struct clk_hw
*[]){
5076 &gcc_qupv3_wrap2_s1_clk_src
.clkr
.hw
,
5079 .flags
= CLK_SET_RATE_PARENT
,
5080 .ops
= &clk_branch2_ops
,
5085 static struct clk_branch gcc_qupv3_wrap2_s2_clk
= {
5086 .halt_reg
= 0x1e3a4,
5087 .halt_check
= BRANCH_HALT_VOTED
,
5089 .enable_reg
= 0x52010,
5090 .enable_mask
= BIT(6),
5091 .hw
.init
= &(const struct clk_init_data
) {
5092 .name
= "gcc_qupv3_wrap2_s2_clk",
5093 .parent_hws
= (const struct clk_hw
*[]){
5094 &gcc_qupv3_wrap2_s2_clk_src
.clkr
.hw
,
5097 .flags
= CLK_SET_RATE_PARENT
,
5098 .ops
= &clk_branch2_ops
,
5103 static struct clk_branch gcc_qupv3_wrap2_s3_clk
= {
5104 .halt_reg
= 0x1e4d4,
5105 .halt_check
= BRANCH_HALT_VOTED
,
5107 .enable_reg
= 0x52010,
5108 .enable_mask
= BIT(7),
5109 .hw
.init
= &(const struct clk_init_data
) {
5110 .name
= "gcc_qupv3_wrap2_s3_clk",
5111 .parent_hws
= (const struct clk_hw
*[]){
5112 &gcc_qupv3_wrap2_s3_clk_src
.clkr
.hw
,
5115 .flags
= CLK_SET_RATE_PARENT
,
5116 .ops
= &clk_branch2_ops
,
5121 static struct clk_branch gcc_qupv3_wrap2_s4_clk
= {
5122 .halt_reg
= 0x1e604,
5123 .halt_check
= BRANCH_HALT_VOTED
,
5125 .enable_reg
= 0x52010,
5126 .enable_mask
= BIT(8),
5127 .hw
.init
= &(const struct clk_init_data
) {
5128 .name
= "gcc_qupv3_wrap2_s4_clk",
5129 .parent_hws
= (const struct clk_hw
*[]){
5130 &gcc_qupv3_wrap2_s4_div_clk_src
.clkr
.hw
,
5133 .flags
= CLK_SET_RATE_PARENT
,
5134 .ops
= &clk_branch2_ops
,
5139 static struct clk_branch gcc_qupv3_wrap2_s5_clk
= {
5140 .halt_reg
= 0x1e734,
5141 .halt_check
= BRANCH_HALT_VOTED
,
5143 .enable_reg
= 0x52010,
5144 .enable_mask
= BIT(9),
5145 .hw
.init
= &(const struct clk_init_data
) {
5146 .name
= "gcc_qupv3_wrap2_s5_clk",
5147 .parent_hws
= (const struct clk_hw
*[]){
5148 &gcc_qupv3_wrap2_s5_clk_src
.clkr
.hw
,
5151 .flags
= CLK_SET_RATE_PARENT
,
5152 .ops
= &clk_branch2_ops
,
5157 static struct clk_branch gcc_qupv3_wrap2_s6_clk
= {
5158 .halt_reg
= 0x1e864,
5159 .halt_check
= BRANCH_HALT_VOTED
,
5161 .enable_reg
= 0x52018,
5162 .enable_mask
= BIT(29),
5163 .hw
.init
= &(const struct clk_init_data
) {
5164 .name
= "gcc_qupv3_wrap2_s6_clk",
5165 .parent_hws
= (const struct clk_hw
*[]){
5166 &gcc_qupv3_wrap2_s6_clk_src
.clkr
.hw
,
5169 .flags
= CLK_SET_RATE_PARENT
,
5170 .ops
= &clk_branch2_ops
,
5175 static struct clk_branch gcc_qupv3_wrap2_s7_clk
= {
5176 .halt_reg
= 0x1e994,
5177 .halt_check
= BRANCH_HALT_VOTED
,
5179 .enable_reg
= 0x52018,
5180 .enable_mask
= BIT(30),
5181 .hw
.init
= &(const struct clk_init_data
) {
5182 .name
= "gcc_qupv3_wrap2_s7_clk",
5183 .parent_hws
= (const struct clk_hw
*[]){
5184 &gcc_qupv3_wrap2_s7_clk_src
.clkr
.hw
,
5187 .flags
= CLK_SET_RATE_PARENT
,
5188 .ops
= &clk_branch2_ops
,
5193 static struct clk_branch gcc_qupv3_wrap_0_m_ahb_clk
= {
5194 .halt_reg
= 0x17004,
5195 .halt_check
= BRANCH_HALT_VOTED
,
5196 .hwcg_reg
= 0x17004,
5199 .enable_reg
= 0x52008,
5200 .enable_mask
= BIT(6),
5201 .hw
.init
= &(const struct clk_init_data
) {
5202 .name
= "gcc_qupv3_wrap_0_m_ahb_clk",
5203 .ops
= &clk_branch2_ops
,
5208 static struct clk_branch gcc_qupv3_wrap_0_s_ahb_clk
= {
5209 .halt_reg
= 0x17008,
5210 .halt_check
= BRANCH_HALT_VOTED
,
5211 .hwcg_reg
= 0x17008,
5214 .enable_reg
= 0x52008,
5215 .enable_mask
= BIT(7),
5216 .hw
.init
= &(const struct clk_init_data
) {
5217 .name
= "gcc_qupv3_wrap_0_s_ahb_clk",
5218 .ops
= &clk_branch2_ops
,
5223 static struct clk_branch gcc_qupv3_wrap_1_m_ahb_clk
= {
5224 .halt_reg
= 0x18004,
5225 .halt_check
= BRANCH_HALT_VOTED
,
5226 .hwcg_reg
= 0x18004,
5229 .enable_reg
= 0x52008,
5230 .enable_mask
= BIT(20),
5231 .hw
.init
= &(const struct clk_init_data
) {
5232 .name
= "gcc_qupv3_wrap_1_m_ahb_clk",
5233 .ops
= &clk_branch2_ops
,
5238 static struct clk_branch gcc_qupv3_wrap_1_s_ahb_clk
= {
5239 .halt_reg
= 0x18008,
5240 .halt_check
= BRANCH_HALT_VOTED
,
5241 .hwcg_reg
= 0x18008,
5244 .enable_reg
= 0x52008,
5245 .enable_mask
= BIT(21),
5246 .hw
.init
= &(const struct clk_init_data
) {
5247 .name
= "gcc_qupv3_wrap_1_s_ahb_clk",
5248 .ops
= &clk_branch2_ops
,
5253 static struct clk_branch gcc_qupv3_wrap_2_m_ahb_clk
= {
5254 .halt_reg
= 0x1e004,
5255 .halt_check
= BRANCH_HALT_VOTED
,
5256 .hwcg_reg
= 0x1e004,
5259 .enable_reg
= 0x52010,
5260 .enable_mask
= BIT(2),
5261 .hw
.init
= &(const struct clk_init_data
) {
5262 .name
= "gcc_qupv3_wrap_2_m_ahb_clk",
5263 .ops
= &clk_branch2_ops
,
5268 static struct clk_branch gcc_qupv3_wrap_2_s_ahb_clk
= {
5269 .halt_reg
= 0x1e008,
5270 .halt_check
= BRANCH_HALT_VOTED
,
5271 .hwcg_reg
= 0x1e008,
5274 .enable_reg
= 0x52010,
5275 .enable_mask
= BIT(1),
5276 .hw
.init
= &(const struct clk_init_data
) {
5277 .name
= "gcc_qupv3_wrap_2_s_ahb_clk",
5278 .ops
= &clk_branch2_ops
,
5283 static struct clk_branch gcc_sdcc2_ahb_clk
= {
5284 .halt_reg
= 0x14008,
5285 .halt_check
= BRANCH_HALT
,
5287 .enable_reg
= 0x14008,
5288 .enable_mask
= BIT(0),
5289 .hw
.init
= &(const struct clk_init_data
) {
5290 .name
= "gcc_sdcc2_ahb_clk",
5291 .ops
= &clk_branch2_ops
,
5296 static struct clk_branch gcc_sdcc2_apps_clk
= {
5297 .halt_reg
= 0x14004,
5298 .halt_check
= BRANCH_HALT
,
5300 .enable_reg
= 0x14004,
5301 .enable_mask
= BIT(0),
5302 .hw
.init
= &(const struct clk_init_data
) {
5303 .name
= "gcc_sdcc2_apps_clk",
5304 .parent_hws
= (const struct clk_hw
*[]){
5305 &gcc_sdcc2_apps_clk_src
.clkr
.hw
,
5308 .flags
= CLK_SET_RATE_PARENT
,
5309 .ops
= &clk_branch2_ops
,
5314 static struct clk_branch gcc_sdcc4_ahb_clk
= {
5315 .halt_reg
= 0x16008,
5316 .halt_check
= BRANCH_HALT
,
5318 .enable_reg
= 0x16008,
5319 .enable_mask
= BIT(0),
5320 .hw
.init
= &(const struct clk_init_data
) {
5321 .name
= "gcc_sdcc4_ahb_clk",
5322 .ops
= &clk_branch2_ops
,
5327 static struct clk_branch gcc_sdcc4_apps_clk
= {
5328 .halt_reg
= 0x16004,
5329 .halt_check
= BRANCH_HALT
,
5331 .enable_reg
= 0x16004,
5332 .enable_mask
= BIT(0),
5333 .hw
.init
= &(const struct clk_init_data
) {
5334 .name
= "gcc_sdcc4_apps_clk",
5335 .parent_hws
= (const struct clk_hw
*[]){
5336 &gcc_sdcc4_apps_clk_src
.clkr
.hw
,
5339 .flags
= CLK_SET_RATE_PARENT
,
5340 .ops
= &clk_branch2_ops
,
5345 static struct clk_branch gcc_sys_noc_usb_axi_clk
= {
5346 .halt_reg
= 0x5d000,
5347 .halt_check
= BRANCH_HALT_VOTED
,
5348 .hwcg_reg
= 0x5d000,
5351 .enable_reg
= 0x5d000,
5352 .enable_mask
= BIT(0),
5353 .hw
.init
= &(const struct clk_init_data
) {
5354 .name
= "gcc_sys_noc_usb_axi_clk",
5355 .ops
= &clk_branch2_ops
,
5360 static struct clk_branch gcc_ufs_1_card_clkref_clk
= {
5361 .halt_reg
= 0x8c000,
5362 .halt_check
= BRANCH_HALT
,
5364 .enable_reg
= 0x8c000,
5365 .enable_mask
= BIT(0),
5366 .hw
.init
= &(const struct clk_init_data
) {
5367 .name
= "gcc_ufs_1_card_clkref_clk",
5368 .parent_data
= &gcc_parent_data_tcxo
,
5370 .ops
= &clk_branch2_ops
,
5375 static struct clk_branch gcc_ufs_card_ahb_clk
= {
5376 .halt_reg
= 0x75018,
5377 .halt_check
= BRANCH_HALT_VOTED
,
5378 .hwcg_reg
= 0x75018,
5381 .enable_reg
= 0x75018,
5382 .enable_mask
= BIT(0),
5383 .hw
.init
= &(const struct clk_init_data
) {
5384 .name
= "gcc_ufs_card_ahb_clk",
5385 .ops
= &clk_branch2_ops
,
5390 static struct clk_branch gcc_ufs_card_axi_clk
= {
5391 .halt_reg
= 0x75010,
5392 .halt_check
= BRANCH_HALT_VOTED
,
5393 .hwcg_reg
= 0x75010,
5396 .enable_reg
= 0x75010,
5397 .enable_mask
= BIT(0),
5398 .hw
.init
= &(const struct clk_init_data
) {
5399 .name
= "gcc_ufs_card_axi_clk",
5400 .parent_hws
= (const struct clk_hw
*[]){
5401 &gcc_ufs_card_axi_clk_src
.clkr
.hw
,
5404 .flags
= CLK_SET_RATE_PARENT
,
5405 .ops
= &clk_branch2_ops
,
5410 static struct clk_branch gcc_ufs_card_axi_hw_ctl_clk
= {
5411 .halt_reg
= 0x75010,
5412 .halt_check
= BRANCH_HALT_VOTED
,
5413 .hwcg_reg
= 0x75010,
5416 .enable_reg
= 0x75010,
5417 .enable_mask
= BIT(1),
5418 .hw
.init
= &(const struct clk_init_data
) {
5419 .name
= "gcc_ufs_card_axi_hw_ctl_clk",
5420 .parent_hws
= (const struct clk_hw
*[]){
5421 &gcc_ufs_card_axi_clk_src
.clkr
.hw
,
5424 .flags
= CLK_SET_RATE_PARENT
,
5425 .ops
= &clk_branch2_ops
,
5430 static struct clk_branch gcc_ufs_card_clkref_clk
= {
5431 .halt_reg
= 0x8c054,
5432 .halt_check
= BRANCH_HALT
,
5434 .enable_reg
= 0x8c054,
5435 .enable_mask
= BIT(0),
5436 .hw
.init
= &(const struct clk_init_data
) {
5437 .name
= "gcc_ufs_card_clkref_clk",
5438 .parent_data
= &gcc_parent_data_tcxo
,
5440 .ops
= &clk_branch2_ops
,
5445 static struct clk_branch gcc_ufs_card_ice_core_clk
= {
5446 .halt_reg
= 0x75064,
5447 .halt_check
= BRANCH_HALT_VOTED
,
5448 .hwcg_reg
= 0x75064,
5451 .enable_reg
= 0x75064,
5452 .enable_mask
= BIT(0),
5453 .hw
.init
= &(const struct clk_init_data
) {
5454 .name
= "gcc_ufs_card_ice_core_clk",
5455 .parent_hws
= (const struct clk_hw
*[]){
5456 &gcc_ufs_card_ice_core_clk_src
.clkr
.hw
,
5459 .flags
= CLK_SET_RATE_PARENT
,
5460 .ops
= &clk_branch2_ops
,
5465 static struct clk_branch gcc_ufs_card_ice_core_hw_ctl_clk
= {
5466 .halt_reg
= 0x75064,
5467 .halt_check
= BRANCH_HALT_VOTED
,
5468 .hwcg_reg
= 0x75064,
5471 .enable_reg
= 0x75064,
5472 .enable_mask
= BIT(1),
5473 .hw
.init
= &(const struct clk_init_data
) {
5474 .name
= "gcc_ufs_card_ice_core_hw_ctl_clk",
5475 .parent_hws
= (const struct clk_hw
*[]){
5476 &gcc_ufs_card_ice_core_clk_src
.clkr
.hw
,
5479 .flags
= CLK_SET_RATE_PARENT
,
5480 .ops
= &clk_branch2_ops
,
5485 static struct clk_branch gcc_ufs_card_phy_aux_clk
= {
5486 .halt_reg
= 0x7509c,
5487 .halt_check
= BRANCH_HALT_VOTED
,
5488 .hwcg_reg
= 0x7509c,
5491 .enable_reg
= 0x7509c,
5492 .enable_mask
= BIT(0),
5493 .hw
.init
= &(const struct clk_init_data
) {
5494 .name
= "gcc_ufs_card_phy_aux_clk",
5495 .parent_hws
= (const struct clk_hw
*[]){
5496 &gcc_ufs_card_phy_aux_clk_src
.clkr
.hw
,
5499 .flags
= CLK_SET_RATE_PARENT
,
5500 .ops
= &clk_branch2_ops
,
5505 static struct clk_branch gcc_ufs_card_phy_aux_hw_ctl_clk
= {
5506 .halt_reg
= 0x7509c,
5507 .halt_check
= BRANCH_HALT_VOTED
,
5508 .hwcg_reg
= 0x7509c,
5511 .enable_reg
= 0x7509c,
5512 .enable_mask
= BIT(1),
5513 .hw
.init
= &(const struct clk_init_data
) {
5514 .name
= "gcc_ufs_card_phy_aux_hw_ctl_clk",
5515 .parent_hws
= (const struct clk_hw
*[]){
5516 &gcc_ufs_card_phy_aux_clk_src
.clkr
.hw
,
5519 .flags
= CLK_SET_RATE_PARENT
,
5520 .ops
= &clk_branch2_ops
,
5525 static struct clk_branch gcc_ufs_card_rx_symbol_0_clk
= {
5526 .halt_reg
= 0x75020,
5527 .halt_check
= BRANCH_HALT_DELAY
,
5529 .enable_reg
= 0x75020,
5530 .enable_mask
= BIT(0),
5531 .hw
.init
= &(const struct clk_init_data
) {
5532 .name
= "gcc_ufs_card_rx_symbol_0_clk",
5533 .parent_hws
= (const struct clk_hw
*[]){
5534 &gcc_ufs_card_rx_symbol_0_clk_src
.clkr
.hw
,
5537 .flags
= CLK_SET_RATE_PARENT
,
5538 .ops
= &clk_branch2_ops
,
5543 static struct clk_branch gcc_ufs_card_rx_symbol_1_clk
= {
5544 .halt_reg
= 0x750b8,
5545 .halt_check
= BRANCH_HALT_DELAY
,
5547 .enable_reg
= 0x750b8,
5548 .enable_mask
= BIT(0),
5549 .hw
.init
= &(const struct clk_init_data
) {
5550 .name
= "gcc_ufs_card_rx_symbol_1_clk",
5551 .parent_hws
= (const struct clk_hw
*[]){
5552 &gcc_ufs_card_rx_symbol_1_clk_src
.clkr
.hw
,
5555 .flags
= CLK_SET_RATE_PARENT
,
5556 .ops
= &clk_branch2_ops
,
5561 static struct clk_branch gcc_ufs_card_tx_symbol_0_clk
= {
5562 .halt_reg
= 0x7501c,
5563 .halt_check
= BRANCH_HALT_DELAY
,
5565 .enable_reg
= 0x7501c,
5566 .enable_mask
= BIT(0),
5567 .hw
.init
= &(const struct clk_init_data
) {
5568 .name
= "gcc_ufs_card_tx_symbol_0_clk",
5569 .parent_hws
= (const struct clk_hw
*[]){
5570 &gcc_ufs_card_tx_symbol_0_clk_src
.clkr
.hw
,
5573 .flags
= CLK_SET_RATE_PARENT
,
5574 .ops
= &clk_branch2_ops
,
5579 static struct clk_branch gcc_ufs_card_unipro_core_clk
= {
5580 .halt_reg
= 0x7505c,
5581 .halt_check
= BRANCH_HALT_VOTED
,
5582 .hwcg_reg
= 0x7505c,
5585 .enable_reg
= 0x7505c,
5586 .enable_mask
= BIT(0),
5587 .hw
.init
= &(const struct clk_init_data
) {
5588 .name
= "gcc_ufs_card_unipro_core_clk",
5589 .parent_hws
= (const struct clk_hw
*[]){
5590 &gcc_ufs_card_unipro_core_clk_src
.clkr
.hw
,
5593 .flags
= CLK_SET_RATE_PARENT
,
5594 .ops
= &clk_branch2_ops
,
5599 static struct clk_branch gcc_ufs_card_unipro_core_hw_ctl_clk
= {
5600 .halt_reg
= 0x7505c,
5601 .halt_check
= BRANCH_HALT_VOTED
,
5602 .hwcg_reg
= 0x7505c,
5605 .enable_reg
= 0x7505c,
5606 .enable_mask
= BIT(1),
5607 .hw
.init
= &(const struct clk_init_data
) {
5608 .name
= "gcc_ufs_card_unipro_core_hw_ctl_clk",
5609 .parent_hws
= (const struct clk_hw
*[]){
5610 &gcc_ufs_card_unipro_core_clk_src
.clkr
.hw
,
5613 .flags
= CLK_SET_RATE_PARENT
,
5614 .ops
= &clk_branch2_ops
,
5619 static struct clk_branch gcc_ufs_phy_ahb_clk
= {
5620 .halt_reg
= 0x77018,
5621 .halt_check
= BRANCH_HALT_VOTED
,
5622 .hwcg_reg
= 0x77018,
5625 .enable_reg
= 0x77018,
5626 .enable_mask
= BIT(0),
5627 .hw
.init
= &(const struct clk_init_data
) {
5628 .name
= "gcc_ufs_phy_ahb_clk",
5629 .ops
= &clk_branch2_ops
,
5634 static struct clk_branch gcc_ufs_phy_axi_clk
= {
5635 .halt_reg
= 0x77010,
5636 .halt_check
= BRANCH_HALT_VOTED
,
5637 .hwcg_reg
= 0x77010,
5640 .enable_reg
= 0x77010,
5641 .enable_mask
= BIT(0),
5642 .hw
.init
= &(const struct clk_init_data
) {
5643 .name
= "gcc_ufs_phy_axi_clk",
5644 .parent_hws
= (const struct clk_hw
*[]){
5645 &gcc_ufs_phy_axi_clk_src
.clkr
.hw
,
5648 .flags
= CLK_SET_RATE_PARENT
,
5649 .ops
= &clk_branch2_ops
,
5654 static struct clk_branch gcc_ufs_phy_axi_hw_ctl_clk
= {
5655 .halt_reg
= 0x77010,
5656 .halt_check
= BRANCH_HALT_VOTED
,
5657 .hwcg_reg
= 0x77010,
5660 .enable_reg
= 0x77010,
5661 .enable_mask
= BIT(1),
5662 .hw
.init
= &(const struct clk_init_data
) {
5663 .name
= "gcc_ufs_phy_axi_hw_ctl_clk",
5664 .parent_hws
= (const struct clk_hw
*[]){
5665 &gcc_ufs_phy_axi_clk_src
.clkr
.hw
,
5668 .flags
= CLK_SET_RATE_PARENT
,
5669 .ops
= &clk_branch2_ops
,
5674 static struct clk_branch gcc_ufs_phy_ice_core_clk
= {
5675 .halt_reg
= 0x77064,
5676 .halt_check
= BRANCH_HALT_VOTED
,
5677 .hwcg_reg
= 0x77064,
5680 .enable_reg
= 0x77064,
5681 .enable_mask
= BIT(0),
5682 .hw
.init
= &(const struct clk_init_data
) {
5683 .name
= "gcc_ufs_phy_ice_core_clk",
5684 .parent_hws
= (const struct clk_hw
*[]){
5685 &gcc_ufs_phy_ice_core_clk_src
.clkr
.hw
,
5688 .flags
= CLK_SET_RATE_PARENT
,
5689 .ops
= &clk_branch2_ops
,
5694 static struct clk_branch gcc_ufs_phy_ice_core_hw_ctl_clk
= {
5695 .halt_reg
= 0x77064,
5696 .halt_check
= BRANCH_HALT_VOTED
,
5697 .hwcg_reg
= 0x77064,
5700 .enable_reg
= 0x77064,
5701 .enable_mask
= BIT(1),
5702 .hw
.init
= &(const struct clk_init_data
) {
5703 .name
= "gcc_ufs_phy_ice_core_hw_ctl_clk",
5704 .parent_hws
= (const struct clk_hw
*[]){
5705 &gcc_ufs_phy_ice_core_clk_src
.clkr
.hw
,
5708 .flags
= CLK_SET_RATE_PARENT
,
5709 .ops
= &clk_branch2_ops
,
5714 static struct clk_branch gcc_ufs_phy_phy_aux_clk
= {
5715 .halt_reg
= 0x7709c,
5716 .halt_check
= BRANCH_HALT_VOTED
,
5717 .hwcg_reg
= 0x7709c,
5720 .enable_reg
= 0x7709c,
5721 .enable_mask
= BIT(0),
5722 .hw
.init
= &(const struct clk_init_data
) {
5723 .name
= "gcc_ufs_phy_phy_aux_clk",
5724 .parent_hws
= (const struct clk_hw
*[]){
5725 &gcc_ufs_phy_phy_aux_clk_src
.clkr
.hw
,
5728 .flags
= CLK_SET_RATE_PARENT
,
5729 .ops
= &clk_branch2_ops
,
5734 static struct clk_branch gcc_ufs_phy_phy_aux_hw_ctl_clk
= {
5735 .halt_reg
= 0x7709c,
5736 .halt_check
= BRANCH_HALT_VOTED
,
5737 .hwcg_reg
= 0x7709c,
5740 .enable_reg
= 0x7709c,
5741 .enable_mask
= BIT(1),
5742 .hw
.init
= &(const struct clk_init_data
) {
5743 .name
= "gcc_ufs_phy_phy_aux_hw_ctl_clk",
5744 .parent_hws
= (const struct clk_hw
*[]){
5745 &gcc_ufs_phy_phy_aux_clk_src
.clkr
.hw
,
5748 .flags
= CLK_SET_RATE_PARENT
,
5749 .ops
= &clk_branch2_ops
,
5754 static struct clk_branch gcc_ufs_phy_rx_symbol_0_clk
= {
5755 .halt_reg
= 0x77020,
5756 .halt_check
= BRANCH_HALT_DELAY
,
5758 .enable_reg
= 0x77020,
5759 .enable_mask
= BIT(0),
5760 .hw
.init
= &(const struct clk_init_data
) {
5761 .name
= "gcc_ufs_phy_rx_symbol_0_clk",
5762 .parent_hws
= (const struct clk_hw
*[]){
5763 &gcc_ufs_phy_rx_symbol_0_clk_src
.clkr
.hw
,
5766 .flags
= CLK_SET_RATE_PARENT
,
5767 .ops
= &clk_branch2_ops
,
5772 static struct clk_branch gcc_ufs_phy_rx_symbol_1_clk
= {
5773 .halt_reg
= 0x770b8,
5774 .halt_check
= BRANCH_HALT_DELAY
,
5776 .enable_reg
= 0x770b8,
5777 .enable_mask
= BIT(0),
5778 .hw
.init
= &(const struct clk_init_data
) {
5779 .name
= "gcc_ufs_phy_rx_symbol_1_clk",
5780 .parent_hws
= (const struct clk_hw
*[]){
5781 &gcc_ufs_phy_rx_symbol_1_clk_src
.clkr
.hw
,
5784 .flags
= CLK_SET_RATE_PARENT
,
5785 .ops
= &clk_branch2_ops
,
5790 static struct clk_branch gcc_ufs_phy_tx_symbol_0_clk
= {
5791 .halt_reg
= 0x7701c,
5792 .halt_check
= BRANCH_HALT_DELAY
,
5794 .enable_reg
= 0x7701c,
5795 .enable_mask
= BIT(0),
5796 .hw
.init
= &(const struct clk_init_data
) {
5797 .name
= "gcc_ufs_phy_tx_symbol_0_clk",
5798 .parent_hws
= (const struct clk_hw
*[]){
5799 &gcc_ufs_phy_tx_symbol_0_clk_src
.clkr
.hw
,
5802 .flags
= CLK_SET_RATE_PARENT
,
5803 .ops
= &clk_branch2_ops
,
5808 static struct clk_branch gcc_ufs_phy_unipro_core_clk
= {
5809 .halt_reg
= 0x7705c,
5810 .halt_check
= BRANCH_HALT_VOTED
,
5811 .hwcg_reg
= 0x7705c,
5814 .enable_reg
= 0x7705c,
5815 .enable_mask
= BIT(0),
5816 .hw
.init
= &(const struct clk_init_data
) {
5817 .name
= "gcc_ufs_phy_unipro_core_clk",
5818 .parent_hws
= (const struct clk_hw
*[]){
5819 &gcc_ufs_phy_unipro_core_clk_src
.clkr
.hw
,
5822 .flags
= CLK_SET_RATE_PARENT
,
5823 .ops
= &clk_branch2_ops
,
5828 static struct clk_branch gcc_ufs_phy_unipro_core_hw_ctl_clk
= {
5829 .halt_reg
= 0x7705c,
5830 .halt_check
= BRANCH_HALT_VOTED
,
5831 .hwcg_reg
= 0x7705c,
5834 .enable_reg
= 0x7705c,
5835 .enable_mask
= BIT(1),
5836 .hw
.init
= &(const struct clk_init_data
) {
5837 .name
= "gcc_ufs_phy_unipro_core_hw_ctl_clk",
5838 .parent_hws
= (const struct clk_hw
*[]){
5839 &gcc_ufs_phy_unipro_core_clk_src
.clkr
.hw
,
5842 .flags
= CLK_SET_RATE_PARENT
,
5843 .ops
= &clk_branch2_ops
,
5848 static struct clk_branch gcc_ufs_ref_clkref_clk
= {
5849 .halt_reg
= 0x8c058,
5850 .halt_check
= BRANCH_HALT
,
5852 .enable_reg
= 0x8c058,
5853 .enable_mask
= BIT(0),
5854 .hw
.init
= &(const struct clk_init_data
) {
5855 .name
= "gcc_ufs_ref_clkref_clk",
5856 .parent_data
= &gcc_parent_data_tcxo
,
5858 .ops
= &clk_branch2_ops
,
5863 static struct clk_branch gcc_usb2_hs0_clkref_clk
= {
5864 .halt_reg
= 0x8c044,
5865 .halt_check
= BRANCH_HALT
,
5867 .enable_reg
= 0x8c044,
5868 .enable_mask
= BIT(0),
5869 .hw
.init
= &(const struct clk_init_data
) {
5870 .name
= "gcc_usb2_hs0_clkref_clk",
5871 .ops
= &clk_branch2_ops
,
5876 static struct clk_branch gcc_usb2_hs1_clkref_clk
= {
5877 .halt_reg
= 0x8c048,
5878 .halt_check
= BRANCH_HALT
,
5880 .enable_reg
= 0x8c048,
5881 .enable_mask
= BIT(0),
5882 .hw
.init
= &(const struct clk_init_data
) {
5883 .name
= "gcc_usb2_hs1_clkref_clk",
5884 .ops
= &clk_branch2_ops
,
5889 static struct clk_branch gcc_usb2_hs2_clkref_clk
= {
5890 .halt_reg
= 0x8c04c,
5891 .halt_check
= BRANCH_HALT
,
5893 .enable_reg
= 0x8c04c,
5894 .enable_mask
= BIT(0),
5895 .hw
.init
= &(const struct clk_init_data
) {
5896 .name
= "gcc_usb2_hs2_clkref_clk",
5897 .ops
= &clk_branch2_ops
,
5902 static struct clk_branch gcc_usb2_hs3_clkref_clk
= {
5903 .halt_reg
= 0x8c050,
5904 .halt_check
= BRANCH_HALT
,
5906 .enable_reg
= 0x8c050,
5907 .enable_mask
= BIT(0),
5908 .hw
.init
= &(const struct clk_init_data
) {
5909 .name
= "gcc_usb2_hs3_clkref_clk",
5910 .ops
= &clk_branch2_ops
,
5915 static struct clk_branch gcc_usb30_mp_master_clk
= {
5916 .halt_reg
= 0xab010,
5917 .halt_check
= BRANCH_HALT
,
5919 .enable_reg
= 0xab010,
5920 .enable_mask
= BIT(0),
5921 .hw
.init
= &(const struct clk_init_data
) {
5922 .name
= "gcc_usb30_mp_master_clk",
5923 .parent_hws
= (const struct clk_hw
*[]){
5924 &gcc_usb30_mp_master_clk_src
.clkr
.hw
,
5927 .flags
= CLK_SET_RATE_PARENT
,
5928 .ops
= &clk_branch2_ops
,
5933 static struct clk_branch gcc_usb30_mp_mock_utmi_clk
= {
5934 .halt_reg
= 0xab01c,
5935 .halt_check
= BRANCH_HALT
,
5937 .enable_reg
= 0xab01c,
5938 .enable_mask
= BIT(0),
5939 .hw
.init
= &(const struct clk_init_data
) {
5940 .name
= "gcc_usb30_mp_mock_utmi_clk",
5941 .parent_hws
= (const struct clk_hw
*[]){
5942 &gcc_usb30_mp_mock_utmi_postdiv_clk_src
.clkr
.hw
,
5945 .flags
= CLK_SET_RATE_PARENT
,
5946 .ops
= &clk_branch2_ops
,
5951 static struct clk_branch gcc_usb30_mp_sleep_clk
= {
5952 .halt_reg
= 0xab018,
5953 .halt_check
= BRANCH_HALT
,
5955 .enable_reg
= 0xab018,
5956 .enable_mask
= BIT(0),
5957 .hw
.init
= &(const struct clk_init_data
) {
5958 .name
= "gcc_usb30_mp_sleep_clk",
5959 .ops
= &clk_branch2_ops
,
5964 static struct clk_branch gcc_usb30_prim_master_clk
= {
5966 .halt_check
= BRANCH_HALT
,
5968 .enable_reg
= 0xf010,
5969 .enable_mask
= BIT(0),
5970 .hw
.init
= &(const struct clk_init_data
) {
5971 .name
= "gcc_usb30_prim_master_clk",
5972 .parent_hws
= (const struct clk_hw
*[]){
5973 &gcc_usb30_prim_master_clk_src
.clkr
.hw
,
5976 .flags
= CLK_SET_RATE_PARENT
,
5977 .ops
= &clk_branch2_ops
,
5982 static struct clk_branch gcc_usb30_prim_mock_utmi_clk
= {
5984 .halt_check
= BRANCH_HALT
,
5986 .enable_reg
= 0xf01c,
5987 .enable_mask
= BIT(0),
5988 .hw
.init
= &(const struct clk_init_data
) {
5989 .name
= "gcc_usb30_prim_mock_utmi_clk",
5990 .parent_hws
= (const struct clk_hw
*[]){
5991 &gcc_usb30_prim_mock_utmi_postdiv_clk_src
.clkr
.hw
,
5994 .flags
= CLK_SET_RATE_PARENT
,
5995 .ops
= &clk_branch2_ops
,
6000 static struct clk_branch gcc_usb30_prim_sleep_clk
= {
6002 .halt_check
= BRANCH_HALT
,
6004 .enable_reg
= 0xf018,
6005 .enable_mask
= BIT(0),
6006 .hw
.init
= &(const struct clk_init_data
) {
6007 .name
= "gcc_usb30_prim_sleep_clk",
6008 .ops
= &clk_branch2_ops
,
6013 static struct clk_branch gcc_usb30_sec_master_clk
= {
6014 .halt_reg
= 0x10010,
6015 .halt_check
= BRANCH_HALT
,
6017 .enable_reg
= 0x10010,
6018 .enable_mask
= BIT(0),
6019 .hw
.init
= &(const struct clk_init_data
) {
6020 .name
= "gcc_usb30_sec_master_clk",
6021 .parent_hws
= (const struct clk_hw
*[]){
6022 &gcc_usb30_sec_master_clk_src
.clkr
.hw
,
6025 .flags
= CLK_SET_RATE_PARENT
,
6026 .ops
= &clk_branch2_ops
,
6031 static struct clk_branch gcc_usb30_sec_mock_utmi_clk
= {
6032 .halt_reg
= 0x1001c,
6033 .halt_check
= BRANCH_HALT
,
6035 .enable_reg
= 0x1001c,
6036 .enable_mask
= BIT(0),
6037 .hw
.init
= &(const struct clk_init_data
) {
6038 .name
= "gcc_usb30_sec_mock_utmi_clk",
6039 .parent_hws
= (const struct clk_hw
*[]){
6040 &gcc_usb30_sec_mock_utmi_postdiv_clk_src
.clkr
.hw
,
6043 .flags
= CLK_SET_RATE_PARENT
,
6044 .ops
= &clk_branch2_ops
,
6049 static struct clk_branch gcc_usb30_sec_sleep_clk
= {
6050 .halt_reg
= 0x10018,
6051 .halt_check
= BRANCH_HALT
,
6053 .enable_reg
= 0x10018,
6054 .enable_mask
= BIT(0),
6055 .hw
.init
= &(const struct clk_init_data
) {
6056 .name
= "gcc_usb30_sec_sleep_clk",
6057 .ops
= &clk_branch2_ops
,
6062 static struct clk_branch gcc_usb3_mp0_clkref_clk
= {
6063 .halt_reg
= 0x8c03c,
6064 .halt_check
= BRANCH_HALT
,
6066 .enable_reg
= 0x8c03c,
6067 .enable_mask
= BIT(0),
6068 .hw
.init
= &(const struct clk_init_data
) {
6069 .name
= "gcc_usb3_mp0_clkref_clk",
6070 .ops
= &clk_branch2_ops
,
6075 static struct clk_branch gcc_usb3_mp1_clkref_clk
= {
6076 .halt_reg
= 0x8c040,
6077 .halt_check
= BRANCH_HALT
,
6079 .enable_reg
= 0x8c040,
6080 .enable_mask
= BIT(0),
6081 .hw
.init
= &(const struct clk_init_data
) {
6082 .name
= "gcc_usb3_mp1_clkref_clk",
6083 .ops
= &clk_branch2_ops
,
6088 static struct clk_branch gcc_usb3_mp_phy_aux_clk
= {
6089 .halt_reg
= 0xab054,
6090 .halt_check
= BRANCH_HALT
,
6092 .enable_reg
= 0xab054,
6093 .enable_mask
= BIT(0),
6094 .hw
.init
= &(const struct clk_init_data
) {
6095 .name
= "gcc_usb3_mp_phy_aux_clk",
6096 .parent_hws
= (const struct clk_hw
*[]){
6097 &gcc_usb3_mp_phy_aux_clk_src
.clkr
.hw
,
6100 .flags
= CLK_SET_RATE_PARENT
,
6101 .ops
= &clk_branch2_ops
,
6106 static struct clk_branch gcc_usb3_mp_phy_com_aux_clk
= {
6107 .halt_reg
= 0xab058,
6108 .halt_check
= BRANCH_HALT
,
6110 .enable_reg
= 0xab058,
6111 .enable_mask
= BIT(0),
6112 .hw
.init
= &(const struct clk_init_data
) {
6113 .name
= "gcc_usb3_mp_phy_com_aux_clk",
6114 .parent_hws
= (const struct clk_hw
*[]){
6115 &gcc_usb3_mp_phy_aux_clk_src
.clkr
.hw
,
6118 .flags
= CLK_SET_RATE_PARENT
,
6119 .ops
= &clk_branch2_ops
,
6124 static struct clk_branch gcc_usb3_mp_phy_pipe_0_clk
= {
6125 .halt_reg
= 0xab05c,
6126 .halt_check
= BRANCH_HALT_DELAY
,
6128 .enable_reg
= 0xab05c,
6129 .enable_mask
= BIT(0),
6130 .hw
.init
= &(const struct clk_init_data
) {
6131 .name
= "gcc_usb3_mp_phy_pipe_0_clk",
6132 .parent_hws
= (const struct clk_hw
*[]){
6133 &gcc_usb3_mp_phy_pipe_0_clk_src
.clkr
.hw
,
6136 .flags
= CLK_SET_RATE_PARENT
,
6137 .ops
= &clk_branch2_ops
,
6142 static struct clk_branch gcc_usb3_mp_phy_pipe_1_clk
= {
6143 .halt_reg
= 0xab064,
6144 .halt_check
= BRANCH_HALT_DELAY
,
6146 .enable_reg
= 0xab064,
6147 .enable_mask
= BIT(0),
6148 .hw
.init
= &(const struct clk_init_data
) {
6149 .name
= "gcc_usb3_mp_phy_pipe_1_clk",
6150 .parent_hws
= (const struct clk_hw
*[]){
6151 &gcc_usb3_mp_phy_pipe_1_clk_src
.clkr
.hw
,
6154 .flags
= CLK_SET_RATE_PARENT
,
6155 .ops
= &clk_branch2_ops
,
6160 static struct clk_branch gcc_usb3_prim_phy_aux_clk
= {
6162 .halt_check
= BRANCH_HALT
,
6164 .enable_reg
= 0xf054,
6165 .enable_mask
= BIT(0),
6166 .hw
.init
= &(const struct clk_init_data
) {
6167 .name
= "gcc_usb3_prim_phy_aux_clk",
6168 .parent_hws
= (const struct clk_hw
*[]){
6169 &gcc_usb3_prim_phy_aux_clk_src
.clkr
.hw
,
6172 .flags
= CLK_SET_RATE_PARENT
,
6173 .ops
= &clk_branch2_ops
,
6178 static struct clk_branch gcc_usb3_prim_phy_com_aux_clk
= {
6180 .halt_check
= BRANCH_HALT
,
6182 .enable_reg
= 0xf058,
6183 .enable_mask
= BIT(0),
6184 .hw
.init
= &(const struct clk_init_data
) {
6185 .name
= "gcc_usb3_prim_phy_com_aux_clk",
6186 .parent_hws
= (const struct clk_hw
*[]){
6187 &gcc_usb3_prim_phy_aux_clk_src
.clkr
.hw
,
6190 .flags
= CLK_SET_RATE_PARENT
,
6191 .ops
= &clk_branch2_ops
,
6196 static struct clk_branch gcc_usb3_prim_phy_pipe_clk
= {
6198 .halt_check
= BRANCH_HALT_DELAY
,
6202 .enable_reg
= 0xf05c,
6203 .enable_mask
= BIT(0),
6204 .hw
.init
= &(const struct clk_init_data
) {
6205 .name
= "gcc_usb3_prim_phy_pipe_clk",
6206 .parent_hws
= (const struct clk_hw
*[]){
6207 &gcc_usb34_prim_phy_pipe_clk_src
.clkr
.hw
,
6210 .flags
= CLK_SET_RATE_PARENT
,
6211 .ops
= &clk_branch2_ops
,
6216 static struct clk_branch gcc_usb3_sec_phy_aux_clk
= {
6217 .halt_reg
= 0x10054,
6218 .halt_check
= BRANCH_HALT
,
6220 .enable_reg
= 0x10054,
6221 .enable_mask
= BIT(0),
6222 .hw
.init
= &(const struct clk_init_data
) {
6223 .name
= "gcc_usb3_sec_phy_aux_clk",
6224 .parent_hws
= (const struct clk_hw
*[]){
6225 &gcc_usb3_sec_phy_aux_clk_src
.clkr
.hw
,
6228 .flags
= CLK_SET_RATE_PARENT
,
6229 .ops
= &clk_branch2_ops
,
6234 static struct clk_branch gcc_usb3_sec_phy_com_aux_clk
= {
6235 .halt_reg
= 0x10058,
6236 .halt_check
= BRANCH_HALT
,
6238 .enable_reg
= 0x10058,
6239 .enable_mask
= BIT(0),
6240 .hw
.init
= &(const struct clk_init_data
) {
6241 .name
= "gcc_usb3_sec_phy_com_aux_clk",
6242 .parent_hws
= (const struct clk_hw
*[]){
6243 &gcc_usb3_sec_phy_aux_clk_src
.clkr
.hw
,
6246 .flags
= CLK_SET_RATE_PARENT
,
6247 .ops
= &clk_branch2_ops
,
6252 static struct clk_branch gcc_usb3_sec_phy_pipe_clk
= {
6253 .halt_reg
= 0x1005c,
6254 .halt_check
= BRANCH_HALT_DELAY
,
6255 .hwcg_reg
= 0x1005c,
6258 .enable_reg
= 0x1005c,
6259 .enable_mask
= BIT(0),
6260 .hw
.init
= &(const struct clk_init_data
) {
6261 .name
= "gcc_usb3_sec_phy_pipe_clk",
6262 .parent_hws
= (const struct clk_hw
*[]){
6263 &gcc_usb34_sec_phy_pipe_clk_src
.clkr
.hw
,
6266 .flags
= CLK_SET_RATE_PARENT
,
6267 .ops
= &clk_branch2_ops
,
6272 static struct clk_branch gcc_usb4_1_cfg_ahb_clk
= {
6273 .halt_reg
= 0xb808c,
6274 .halt_check
= BRANCH_HALT_VOTED
,
6275 .hwcg_reg
= 0xb808c,
6278 .enable_reg
= 0xb808c,
6279 .enable_mask
= BIT(0),
6280 .hw
.init
= &(const struct clk_init_data
) {
6281 .name
= "gcc_usb4_1_cfg_ahb_clk",
6282 .ops
= &clk_branch2_ops
,
6287 static struct clk_branch gcc_usb4_1_dp_clk
= {
6288 .halt_reg
= 0xb8048,
6289 .halt_check
= BRANCH_HALT
,
6291 .enable_reg
= 0xb8048,
6292 .enable_mask
= BIT(0),
6293 .hw
.init
= &(const struct clk_init_data
) {
6294 .name
= "gcc_usb4_1_dp_clk",
6295 .parent_hws
= (const struct clk_hw
*[]){
6296 &gcc_usb4_1_phy_dp_clk_src
.clkr
.hw
,
6299 .flags
= CLK_SET_RATE_PARENT
,
6300 .ops
= &clk_branch2_ops
,
6305 static struct clk_branch gcc_usb4_1_master_clk
= {
6306 .halt_reg
= 0xb8010,
6307 .halt_check
= BRANCH_HALT
,
6309 .enable_reg
= 0xb8010,
6310 .enable_mask
= BIT(0),
6311 .hw
.init
= &(const struct clk_init_data
) {
6312 .name
= "gcc_usb4_1_master_clk",
6313 .parent_hws
= (const struct clk_hw
*[]){
6314 &gcc_usb4_1_master_clk_src
.clkr
.hw
,
6317 .flags
= CLK_SET_RATE_PARENT
,
6318 .ops
= &clk_branch2_ops
,
6323 static struct clk_branch gcc_usb4_1_phy_p2rr2p_pipe_clk
= {
6324 .halt_reg
= 0xb80b4,
6325 .halt_check
= BRANCH_HALT_DELAY
,
6327 .enable_reg
= 0xb80b4,
6328 .enable_mask
= BIT(0),
6329 .hw
.init
= &(const struct clk_init_data
) {
6330 .name
= "gcc_usb4_1_phy_p2rr2p_pipe_clk",
6331 .parent_hws
= (const struct clk_hw
*[]){
6332 &gcc_usb4_1_phy_p2rr2p_pipe_clk_src
.clkr
.hw
,
6335 .flags
= CLK_SET_RATE_PARENT
,
6336 .ops
= &clk_branch2_ops
,
6341 static struct clk_branch gcc_usb4_1_phy_pcie_pipe_clk
= {
6342 .halt_reg
= 0xb8038,
6343 .halt_check
= BRANCH_HALT_DELAY
,
6345 .enable_reg
= 0x52020,
6346 .enable_mask
= BIT(19),
6347 .hw
.init
= &(const struct clk_init_data
) {
6348 .name
= "gcc_usb4_1_phy_pcie_pipe_clk",
6349 .parent_hws
= (const struct clk_hw
*[]){
6350 &gcc_usb4_1_phy_pcie_pipe_mux_clk_src
.clkr
.hw
,
6353 .flags
= CLK_SET_RATE_PARENT
,
6354 .ops
= &clk_branch2_ops
,
6359 static struct clk_branch gcc_usb4_1_phy_rx0_clk
= {
6360 .halt_reg
= 0xb8094,
6361 .halt_check
= BRANCH_HALT
,
6363 .enable_reg
= 0xb8094,
6364 .enable_mask
= BIT(0),
6365 .hw
.init
= &(const struct clk_init_data
) {
6366 .name
= "gcc_usb4_1_phy_rx0_clk",
6367 .parent_hws
= (const struct clk_hw
*[]){
6368 &gcc_usb4_1_phy_rx0_clk_src
.clkr
.hw
,
6371 .flags
= CLK_SET_RATE_PARENT
,
6372 .ops
= &clk_branch2_ops
,
6377 static struct clk_branch gcc_usb4_1_phy_rx1_clk
= {
6378 .halt_reg
= 0xb80a0,
6379 .halt_check
= BRANCH_HALT
,
6381 .enable_reg
= 0xb80a0,
6382 .enable_mask
= BIT(0),
6383 .hw
.init
= &(const struct clk_init_data
) {
6384 .name
= "gcc_usb4_1_phy_rx1_clk",
6385 .parent_hws
= (const struct clk_hw
*[]){
6386 &gcc_usb4_1_phy_rx1_clk_src
.clkr
.hw
,
6389 .flags
= CLK_SET_RATE_PARENT
,
6390 .ops
= &clk_branch2_ops
,
6395 static struct clk_branch gcc_usb4_1_phy_usb_pipe_clk
= {
6396 .halt_reg
= 0xb8088,
6397 .halt_check
= BRANCH_HALT_DELAY
,
6398 .hwcg_reg
= 0xb8088,
6401 .enable_reg
= 0xb8088,
6402 .enable_mask
= BIT(0),
6403 .hw
.init
= &(const struct clk_init_data
) {
6404 .name
= "gcc_usb4_1_phy_usb_pipe_clk",
6405 .parent_hws
= (const struct clk_hw
*[]){
6406 &gcc_usb34_sec_phy_pipe_clk_src
.clkr
.hw
,
6409 .flags
= CLK_SET_RATE_PARENT
,
6410 .ops
= &clk_branch2_ops
,
6415 static struct clk_branch gcc_usb4_1_sb_if_clk
= {
6416 .halt_reg
= 0xb8034,
6417 .halt_check
= BRANCH_HALT
,
6419 .enable_reg
= 0xb8034,
6420 .enable_mask
= BIT(0),
6421 .hw
.init
= &(const struct clk_init_data
) {
6422 .name
= "gcc_usb4_1_sb_if_clk",
6423 .parent_hws
= (const struct clk_hw
*[]){
6424 &gcc_usb4_1_sb_if_clk_src
.clkr
.hw
,
6427 .flags
= CLK_SET_RATE_PARENT
,
6428 .ops
= &clk_branch2_ops
,
6433 static struct clk_branch gcc_usb4_1_sys_clk
= {
6434 .halt_reg
= 0xb8040,
6435 .halt_check
= BRANCH_HALT
,
6437 .enable_reg
= 0xb8040,
6438 .enable_mask
= BIT(0),
6439 .hw
.init
= &(const struct clk_init_data
) {
6440 .name
= "gcc_usb4_1_sys_clk",
6441 .parent_hws
= (const struct clk_hw
*[]){
6442 &gcc_usb4_1_phy_sys_clk_src
.clkr
.hw
,
6445 .flags
= CLK_SET_RATE_PARENT
,
6446 .ops
= &clk_branch2_ops
,
6451 static struct clk_branch gcc_usb4_1_tmu_clk
= {
6452 .halt_reg
= 0xb806c,
6453 .halt_check
= BRANCH_HALT_VOTED
,
6454 .hwcg_reg
= 0xb806c,
6457 .enable_reg
= 0xb806c,
6458 .enable_mask
= BIT(0),
6459 .hw
.init
= &(const struct clk_init_data
) {
6460 .name
= "gcc_usb4_1_tmu_clk",
6461 .parent_hws
= (const struct clk_hw
*[]){
6462 &gcc_usb4_1_tmu_clk_src
.clkr
.hw
,
6465 .flags
= CLK_SET_RATE_PARENT
,
6466 .ops
= &clk_branch2_ops
,
6471 static struct clk_branch gcc_usb4_cfg_ahb_clk
= {
6472 .halt_reg
= 0x2a08c,
6473 .halt_check
= BRANCH_HALT_VOTED
,
6474 .hwcg_reg
= 0x2a08c,
6477 .enable_reg
= 0x2a08c,
6478 .enable_mask
= BIT(0),
6479 .hw
.init
= &(const struct clk_init_data
) {
6480 .name
= "gcc_usb4_cfg_ahb_clk",
6481 .ops
= &clk_branch2_ops
,
6486 static struct clk_branch gcc_usb4_clkref_clk
= {
6487 .halt_reg
= 0x8c010,
6488 .halt_check
= BRANCH_HALT
,
6490 .enable_reg
= 0x8c010,
6491 .enable_mask
= BIT(0),
6492 .hw
.init
= &(const struct clk_init_data
) {
6493 .name
= "gcc_usb4_clkref_clk",
6494 .ops
= &clk_branch2_ops
,
6499 static struct clk_branch gcc_usb4_dp_clk
= {
6500 .halt_reg
= 0x2a048,
6501 .halt_check
= BRANCH_HALT
,
6503 .enable_reg
= 0x2a048,
6504 .enable_mask
= BIT(0),
6505 .hw
.init
= &(const struct clk_init_data
) {
6506 .name
= "gcc_usb4_dp_clk",
6507 .parent_hws
= (const struct clk_hw
*[]){
6508 &gcc_usb4_phy_dp_clk_src
.clkr
.hw
,
6511 .flags
= CLK_SET_RATE_PARENT
,
6512 .ops
= &clk_branch2_ops
,
6517 static struct clk_branch gcc_usb4_eud_clkref_clk
= {
6518 .halt_reg
= 0x8c02c,
6519 .halt_check
= BRANCH_HALT
,
6521 .enable_reg
= 0x8c02c,
6522 .enable_mask
= BIT(0),
6523 .hw
.init
= &(const struct clk_init_data
) {
6524 .name
= "gcc_usb4_eud_clkref_clk",
6525 .ops
= &clk_branch2_ops
,
6530 static struct clk_branch gcc_usb4_master_clk
= {
6531 .halt_reg
= 0x2a010,
6532 .halt_check
= BRANCH_HALT
,
6534 .enable_reg
= 0x2a010,
6535 .enable_mask
= BIT(0),
6536 .hw
.init
= &(const struct clk_init_data
) {
6537 .name
= "gcc_usb4_master_clk",
6538 .parent_hws
= (const struct clk_hw
*[]){
6539 &gcc_usb4_master_clk_src
.clkr
.hw
,
6542 .flags
= CLK_SET_RATE_PARENT
,
6543 .ops
= &clk_branch2_ops
,
6548 static struct clk_branch gcc_usb4_phy_p2rr2p_pipe_clk
= {
6549 .halt_reg
= 0x2a0b4,
6550 .halt_check
= BRANCH_HALT_DELAY
,
6552 .enable_reg
= 0x2a0b4,
6553 .enable_mask
= BIT(0),
6554 .hw
.init
= &(const struct clk_init_data
) {
6555 .name
= "gcc_usb4_phy_p2rr2p_pipe_clk",
6556 .parent_hws
= (const struct clk_hw
*[]){
6557 &gcc_usb4_phy_p2rr2p_pipe_clk_src
.clkr
.hw
,
6560 .flags
= CLK_SET_RATE_PARENT
,
6561 .ops
= &clk_branch2_ops
,
6566 static struct clk_branch gcc_usb4_phy_pcie_pipe_clk
= {
6567 .halt_reg
= 0x2a038,
6568 .halt_check
= BRANCH_HALT_DELAY
,
6570 .enable_reg
= 0x52020,
6571 .enable_mask
= BIT(18),
6572 .hw
.init
= &(const struct clk_init_data
) {
6573 .name
= "gcc_usb4_phy_pcie_pipe_clk",
6574 .parent_hws
= (const struct clk_hw
*[]){
6575 &gcc_usb4_phy_pcie_pipe_mux_clk_src
.clkr
.hw
,
6578 .flags
= CLK_SET_RATE_PARENT
,
6579 .ops
= &clk_branch2_ops
,
6584 static struct clk_branch gcc_usb4_phy_rx0_clk
= {
6585 .halt_reg
= 0x2a094,
6586 .halt_check
= BRANCH_HALT
,
6588 .enable_reg
= 0x2a094,
6589 .enable_mask
= BIT(0),
6590 .hw
.init
= &(const struct clk_init_data
) {
6591 .name
= "gcc_usb4_phy_rx0_clk",
6592 .parent_hws
= (const struct clk_hw
*[]){
6593 &gcc_usb4_phy_rx0_clk_src
.clkr
.hw
,
6596 .flags
= CLK_SET_RATE_PARENT
,
6597 .ops
= &clk_branch2_ops
,
6602 static struct clk_branch gcc_usb4_phy_rx1_clk
= {
6603 .halt_reg
= 0x2a0a0,
6604 .halt_check
= BRANCH_HALT
,
6606 .enable_reg
= 0x2a0a0,
6607 .enable_mask
= BIT(0),
6608 .hw
.init
= &(const struct clk_init_data
) {
6609 .name
= "gcc_usb4_phy_rx1_clk",
6610 .parent_hws
= (const struct clk_hw
*[]){
6611 &gcc_usb4_phy_rx1_clk_src
.clkr
.hw
,
6614 .flags
= CLK_SET_RATE_PARENT
,
6615 .ops
= &clk_branch2_ops
,
6620 static struct clk_branch gcc_usb4_phy_usb_pipe_clk
= {
6621 .halt_reg
= 0x2a088,
6622 .halt_check
= BRANCH_HALT_DELAY
,
6623 .hwcg_reg
= 0x2a088,
6626 .enable_reg
= 0x2a088,
6627 .enable_mask
= BIT(0),
6628 .hw
.init
= &(const struct clk_init_data
) {
6629 .name
= "gcc_usb4_phy_usb_pipe_clk",
6630 .parent_hws
= (const struct clk_hw
*[]){
6631 &gcc_usb34_prim_phy_pipe_clk_src
.clkr
.hw
,
6634 .flags
= CLK_SET_RATE_PARENT
,
6635 .ops
= &clk_branch2_ops
,
6640 static struct clk_branch gcc_usb4_sb_if_clk
= {
6641 .halt_reg
= 0x2a034,
6642 .halt_check
= BRANCH_HALT
,
6644 .enable_reg
= 0x2a034,
6645 .enable_mask
= BIT(0),
6646 .hw
.init
= &(const struct clk_init_data
) {
6647 .name
= "gcc_usb4_sb_if_clk",
6648 .parent_hws
= (const struct clk_hw
*[]){
6649 &gcc_usb4_sb_if_clk_src
.clkr
.hw
,
6652 .flags
= CLK_SET_RATE_PARENT
,
6653 .ops
= &clk_branch2_ops
,
6658 static struct clk_branch gcc_usb4_sys_clk
= {
6659 .halt_reg
= 0x2a040,
6660 .halt_check
= BRANCH_HALT
,
6662 .enable_reg
= 0x2a040,
6663 .enable_mask
= BIT(0),
6664 .hw
.init
= &(const struct clk_init_data
) {
6665 .name
= "gcc_usb4_sys_clk",
6666 .parent_hws
= (const struct clk_hw
*[]){
6667 &gcc_usb4_phy_sys_clk_src
.clkr
.hw
,
6670 .flags
= CLK_SET_RATE_PARENT
,
6671 .ops
= &clk_branch2_ops
,
6676 static struct clk_branch gcc_usb4_tmu_clk
= {
6677 .halt_reg
= 0x2a06c,
6678 .halt_check
= BRANCH_HALT_VOTED
,
6679 .hwcg_reg
= 0x2a06c,
6682 .enable_reg
= 0x2a06c,
6683 .enable_mask
= BIT(0),
6684 .hw
.init
= &(const struct clk_init_data
) {
6685 .name
= "gcc_usb4_tmu_clk",
6686 .parent_hws
= (const struct clk_hw
*[]){
6687 &gcc_usb4_tmu_clk_src
.clkr
.hw
,
6690 .flags
= CLK_SET_RATE_PARENT
,
6691 .ops
= &clk_branch2_ops
,
6696 static struct clk_branch gcc_video_axi0_clk
= {
6697 .halt_reg
= 0x28010,
6698 .halt_check
= BRANCH_HALT_SKIP
,
6699 .hwcg_reg
= 0x28010,
6702 .enable_reg
= 0x28010,
6703 .enable_mask
= BIT(0),
6704 .hw
.init
= &(const struct clk_init_data
) {
6705 .name
= "gcc_video_axi0_clk",
6706 .ops
= &clk_branch2_ops
,
6711 static struct clk_branch gcc_video_axi1_clk
= {
6712 .halt_reg
= 0x28018,
6713 .halt_check
= BRANCH_HALT_SKIP
,
6714 .hwcg_reg
= 0x28018,
6717 .enable_reg
= 0x28018,
6718 .enable_mask
= BIT(0),
6719 .hw
.init
= &(const struct clk_init_data
) {
6720 .name
= "gcc_video_axi1_clk",
6721 .ops
= &clk_branch2_ops
,
6726 static struct clk_branch gcc_video_cvp_throttle_clk
= {
6727 .halt_reg
= 0x28024,
6728 .halt_check
= BRANCH_HALT_SKIP
,
6729 .hwcg_reg
= 0x28024,
6732 .enable_reg
= 0x28024,
6733 .enable_mask
= BIT(0),
6734 .hw
.init
= &(const struct clk_init_data
) {
6735 .name
= "gcc_video_cvp_throttle_clk",
6736 .ops
= &clk_branch2_ops
,
6741 static struct clk_branch gcc_video_vcodec_throttle_clk
= {
6742 .halt_reg
= 0x28020,
6743 .halt_check
= BRANCH_HALT_SKIP
,
6744 .hwcg_reg
= 0x28020,
6747 .enable_reg
= 0x28020,
6748 .enable_mask
= BIT(0),
6749 .hw
.init
= &(const struct clk_init_data
) {
6750 .name
= "gcc_video_vcodec_throttle_clk",
6751 .ops
= &clk_branch2_ops
,
6756 static struct gdsc pcie_0_tunnel_gdsc
= {
6758 .collapse_ctrl
= 0x52128,
6759 .collapse_mask
= BIT(0),
6761 .name
= "pcie_0_tunnel_gdsc",
6763 .pwrsts
= PWRSTS_OFF_ON
,
6764 .flags
= VOTABLE
| RETAIN_FF_ENABLE
,
6767 static struct gdsc pcie_1_tunnel_gdsc
= {
6769 .collapse_ctrl
= 0x52128,
6770 .collapse_mask
= BIT(1),
6772 .name
= "pcie_1_tunnel_gdsc",
6774 .pwrsts
= PWRSTS_OFF_ON
,
6775 .flags
= VOTABLE
| RETAIN_FF_ENABLE
,
6779 * The Qualcomm PCIe driver does not yet implement suspend so to keep the
6780 * PCIe power domains always-on for now.
6782 static struct gdsc pcie_2a_gdsc
= {
6784 .collapse_ctrl
= 0x52128,
6785 .collapse_mask
= BIT(2),
6787 .name
= "pcie_2a_gdsc",
6789 .pwrsts
= PWRSTS_RET_ON
,
6790 .flags
= VOTABLE
| RETAIN_FF_ENABLE
,
6793 static struct gdsc pcie_2b_gdsc
= {
6795 .collapse_ctrl
= 0x52128,
6796 .collapse_mask
= BIT(3),
6798 .name
= "pcie_2b_gdsc",
6800 .pwrsts
= PWRSTS_RET_ON
,
6801 .flags
= VOTABLE
| RETAIN_FF_ENABLE
,
6804 static struct gdsc pcie_3a_gdsc
= {
6806 .collapse_ctrl
= 0x52128,
6807 .collapse_mask
= BIT(4),
6809 .name
= "pcie_3a_gdsc",
6811 .pwrsts
= PWRSTS_RET_ON
,
6812 .flags
= VOTABLE
| RETAIN_FF_ENABLE
,
6815 static struct gdsc pcie_3b_gdsc
= {
6817 .collapse_ctrl
= 0x52128,
6818 .collapse_mask
= BIT(5),
6820 .name
= "pcie_3b_gdsc",
6822 .pwrsts
= PWRSTS_RET_ON
,
6823 .flags
= VOTABLE
| RETAIN_FF_ENABLE
,
6826 static struct gdsc pcie_4_gdsc
= {
6828 .collapse_ctrl
= 0x52128,
6829 .collapse_mask
= BIT(6),
6831 .name
= "pcie_4_gdsc",
6833 .pwrsts
= PWRSTS_RET_ON
,
6834 .flags
= VOTABLE
| RETAIN_FF_ENABLE
,
6837 static struct gdsc ufs_card_gdsc
= {
6840 .name
= "ufs_card_gdsc",
6842 .pwrsts
= PWRSTS_OFF_ON
,
6843 .flags
= RETAIN_FF_ENABLE
,
6846 static struct gdsc ufs_phy_gdsc
= {
6849 .name
= "ufs_phy_gdsc",
6851 .pwrsts
= PWRSTS_OFF_ON
,
6852 .flags
= RETAIN_FF_ENABLE
,
6855 static struct gdsc usb30_mp_gdsc
= {
6858 .name
= "usb30_mp_gdsc",
6860 .pwrsts
= PWRSTS_RET_ON
,
6861 .flags
= RETAIN_FF_ENABLE
,
6864 static struct gdsc usb30_prim_gdsc
= {
6867 .name
= "usb30_prim_gdsc",
6869 .pwrsts
= PWRSTS_RET_ON
,
6870 .flags
= RETAIN_FF_ENABLE
,
6873 static struct gdsc usb30_sec_gdsc
= {
6876 .name
= "usb30_sec_gdsc",
6878 .pwrsts
= PWRSTS_RET_ON
,
6879 .flags
= RETAIN_FF_ENABLE
,
6882 static struct gdsc emac_0_gdsc
= {
6885 .name
= "emac_0_gdsc",
6887 .pwrsts
= PWRSTS_OFF_ON
,
6888 .flags
= RETAIN_FF_ENABLE
,
6891 static struct gdsc emac_1_gdsc
= {
6894 .name
= "emac_1_gdsc",
6896 .pwrsts
= PWRSTS_OFF_ON
,
6897 .flags
= RETAIN_FF_ENABLE
,
6900 static struct gdsc usb4_1_gdsc
= {
6903 .name
= "usb4_1_gdsc",
6905 .pwrsts
= PWRSTS_OFF_ON
,
6906 .flags
= RETAIN_FF_ENABLE
,
6909 static struct gdsc usb4_gdsc
= {
6912 .name
= "usb4_gdsc",
6914 .pwrsts
= PWRSTS_OFF_ON
,
6915 .flags
= RETAIN_FF_ENABLE
,
6918 static struct gdsc hlos1_vote_mmnoc_mmu_tbu_hf0_gdsc
= {
6921 .name
= "hlos1_vote_mmnoc_mmu_tbu_hf0_gdsc",
6923 .pwrsts
= PWRSTS_OFF_ON
,
6927 static struct gdsc hlos1_vote_mmnoc_mmu_tbu_hf1_gdsc
= {
6930 .name
= "hlos1_vote_mmnoc_mmu_tbu_hf1_gdsc",
6932 .pwrsts
= PWRSTS_OFF_ON
,
6936 static struct gdsc hlos1_vote_mmnoc_mmu_tbu_sf0_gdsc
= {
6939 .name
= "hlos1_vote_mmnoc_mmu_tbu_sf0_gdsc",
6941 .pwrsts
= PWRSTS_OFF_ON
,
6945 static struct gdsc hlos1_vote_mmnoc_mmu_tbu_sf1_gdsc
= {
6948 .name
= "hlos1_vote_mmnoc_mmu_tbu_sf1_gdsc",
6950 .pwrsts
= PWRSTS_OFF_ON
,
6954 static struct gdsc hlos1_vote_turing_mmu_tbu0_gdsc
= {
6957 .name
= "hlos1_vote_turing_mmu_tbu0_gdsc",
6959 .pwrsts
= PWRSTS_OFF_ON
,
6963 static struct gdsc hlos1_vote_turing_mmu_tbu1_gdsc
= {
6966 .name
= "hlos1_vote_turing_mmu_tbu1_gdsc",
6968 .pwrsts
= PWRSTS_OFF_ON
,
6972 static struct gdsc hlos1_vote_turing_mmu_tbu2_gdsc
= {
6975 .name
= "hlos1_vote_turing_mmu_tbu2_gdsc",
6977 .pwrsts
= PWRSTS_OFF_ON
,
6981 static struct gdsc hlos1_vote_turing_mmu_tbu3_gdsc
= {
6984 .name
= "hlos1_vote_turing_mmu_tbu3_gdsc",
6986 .pwrsts
= PWRSTS_OFF_ON
,
6990 static struct clk_regmap
*gcc_sc8280xp_clocks
[] = {
6991 [GCC_AGGRE_NOC_PCIE0_TUNNEL_AXI_CLK
] = &gcc_aggre_noc_pcie0_tunnel_axi_clk
.clkr
,
6992 [GCC_AGGRE_NOC_PCIE1_TUNNEL_AXI_CLK
] = &gcc_aggre_noc_pcie1_tunnel_axi_clk
.clkr
,
6993 [GCC_AGGRE_NOC_PCIE_4_AXI_CLK
] = &gcc_aggre_noc_pcie_4_axi_clk
.clkr
,
6994 [GCC_AGGRE_NOC_PCIE_SOUTH_SF_AXI_CLK
] = &gcc_aggre_noc_pcie_south_sf_axi_clk
.clkr
,
6995 [GCC_AGGRE_UFS_CARD_AXI_CLK
] = &gcc_aggre_ufs_card_axi_clk
.clkr
,
6996 [GCC_AGGRE_UFS_CARD_AXI_HW_CTL_CLK
] = &gcc_aggre_ufs_card_axi_hw_ctl_clk
.clkr
,
6997 [GCC_AGGRE_UFS_PHY_AXI_CLK
] = &gcc_aggre_ufs_phy_axi_clk
.clkr
,
6998 [GCC_AGGRE_UFS_PHY_AXI_HW_CTL_CLK
] = &gcc_aggre_ufs_phy_axi_hw_ctl_clk
.clkr
,
6999 [GCC_AGGRE_USB3_MP_AXI_CLK
] = &gcc_aggre_usb3_mp_axi_clk
.clkr
,
7000 [GCC_AGGRE_USB3_PRIM_AXI_CLK
] = &gcc_aggre_usb3_prim_axi_clk
.clkr
,
7001 [GCC_AGGRE_USB3_SEC_AXI_CLK
] = &gcc_aggre_usb3_sec_axi_clk
.clkr
,
7002 [GCC_AGGRE_USB4_1_AXI_CLK
] = &gcc_aggre_usb4_1_axi_clk
.clkr
,
7003 [GCC_AGGRE_USB4_AXI_CLK
] = &gcc_aggre_usb4_axi_clk
.clkr
,
7004 [GCC_AGGRE_USB_NOC_AXI_CLK
] = &gcc_aggre_usb_noc_axi_clk
.clkr
,
7005 [GCC_AGGRE_USB_NOC_NORTH_AXI_CLK
] = &gcc_aggre_usb_noc_north_axi_clk
.clkr
,
7006 [GCC_AGGRE_USB_NOC_SOUTH_AXI_CLK
] = &gcc_aggre_usb_noc_south_axi_clk
.clkr
,
7007 [GCC_AHB2PHY0_CLK
] = &gcc_ahb2phy0_clk
.clkr
,
7008 [GCC_AHB2PHY2_CLK
] = &gcc_ahb2phy2_clk
.clkr
,
7009 [GCC_BOOT_ROM_AHB_CLK
] = &gcc_boot_rom_ahb_clk
.clkr
,
7010 [GCC_CAMERA_HF_AXI_CLK
] = &gcc_camera_hf_axi_clk
.clkr
,
7011 [GCC_CAMERA_SF_AXI_CLK
] = &gcc_camera_sf_axi_clk
.clkr
,
7012 [GCC_CAMERA_THROTTLE_NRT_AXI_CLK
] = &gcc_camera_throttle_nrt_axi_clk
.clkr
,
7013 [GCC_CAMERA_THROTTLE_RT_AXI_CLK
] = &gcc_camera_throttle_rt_axi_clk
.clkr
,
7014 [GCC_CAMERA_THROTTLE_XO_CLK
] = &gcc_camera_throttle_xo_clk
.clkr
,
7015 [GCC_CFG_NOC_USB3_MP_AXI_CLK
] = &gcc_cfg_noc_usb3_mp_axi_clk
.clkr
,
7016 [GCC_CFG_NOC_USB3_PRIM_AXI_CLK
] = &gcc_cfg_noc_usb3_prim_axi_clk
.clkr
,
7017 [GCC_CFG_NOC_USB3_SEC_AXI_CLK
] = &gcc_cfg_noc_usb3_sec_axi_clk
.clkr
,
7018 [GCC_CNOC_PCIE0_TUNNEL_CLK
] = &gcc_cnoc_pcie0_tunnel_clk
.clkr
,
7019 [GCC_CNOC_PCIE1_TUNNEL_CLK
] = &gcc_cnoc_pcie1_tunnel_clk
.clkr
,
7020 [GCC_CNOC_PCIE4_QX_CLK
] = &gcc_cnoc_pcie4_qx_clk
.clkr
,
7021 [GCC_DDRSS_GPU_AXI_CLK
] = &gcc_ddrss_gpu_axi_clk
.clkr
,
7022 [GCC_DDRSS_PCIE_SF_TBU_CLK
] = &gcc_ddrss_pcie_sf_tbu_clk
.clkr
,
7023 [GCC_DISP1_HF_AXI_CLK
] = &gcc_disp1_hf_axi_clk
.clkr
,
7024 [GCC_DISP1_SF_AXI_CLK
] = &gcc_disp1_sf_axi_clk
.clkr
,
7025 [GCC_DISP1_THROTTLE_NRT_AXI_CLK
] = &gcc_disp1_throttle_nrt_axi_clk
.clkr
,
7026 [GCC_DISP1_THROTTLE_RT_AXI_CLK
] = &gcc_disp1_throttle_rt_axi_clk
.clkr
,
7027 [GCC_DISP_HF_AXI_CLK
] = &gcc_disp_hf_axi_clk
.clkr
,
7028 [GCC_DISP_SF_AXI_CLK
] = &gcc_disp_sf_axi_clk
.clkr
,
7029 [GCC_DISP_THROTTLE_NRT_AXI_CLK
] = &gcc_disp_throttle_nrt_axi_clk
.clkr
,
7030 [GCC_DISP_THROTTLE_RT_AXI_CLK
] = &gcc_disp_throttle_rt_axi_clk
.clkr
,
7031 [GCC_EMAC0_AXI_CLK
] = &gcc_emac0_axi_clk
.clkr
,
7032 [GCC_EMAC0_PTP_CLK
] = &gcc_emac0_ptp_clk
.clkr
,
7033 [GCC_EMAC0_PTP_CLK_SRC
] = &gcc_emac0_ptp_clk_src
.clkr
,
7034 [GCC_EMAC0_RGMII_CLK
] = &gcc_emac0_rgmii_clk
.clkr
,
7035 [GCC_EMAC0_RGMII_CLK_SRC
] = &gcc_emac0_rgmii_clk_src
.clkr
,
7036 [GCC_EMAC0_SLV_AHB_CLK
] = &gcc_emac0_slv_ahb_clk
.clkr
,
7037 [GCC_EMAC1_AXI_CLK
] = &gcc_emac1_axi_clk
.clkr
,
7038 [GCC_EMAC1_PTP_CLK
] = &gcc_emac1_ptp_clk
.clkr
,
7039 [GCC_EMAC1_PTP_CLK_SRC
] = &gcc_emac1_ptp_clk_src
.clkr
,
7040 [GCC_EMAC1_RGMII_CLK
] = &gcc_emac1_rgmii_clk
.clkr
,
7041 [GCC_EMAC1_RGMII_CLK_SRC
] = &gcc_emac1_rgmii_clk_src
.clkr
,
7042 [GCC_EMAC1_SLV_AHB_CLK
] = &gcc_emac1_slv_ahb_clk
.clkr
,
7043 [GCC_GP1_CLK
] = &gcc_gp1_clk
.clkr
,
7044 [GCC_GP1_CLK_SRC
] = &gcc_gp1_clk_src
.clkr
,
7045 [GCC_GP2_CLK
] = &gcc_gp2_clk
.clkr
,
7046 [GCC_GP2_CLK_SRC
] = &gcc_gp2_clk_src
.clkr
,
7047 [GCC_GP3_CLK
] = &gcc_gp3_clk
.clkr
,
7048 [GCC_GP3_CLK_SRC
] = &gcc_gp3_clk_src
.clkr
,
7049 [GCC_GP4_CLK
] = &gcc_gp4_clk
.clkr
,
7050 [GCC_GP4_CLK_SRC
] = &gcc_gp4_clk_src
.clkr
,
7051 [GCC_GP5_CLK
] = &gcc_gp5_clk
.clkr
,
7052 [GCC_GP5_CLK_SRC
] = &gcc_gp5_clk_src
.clkr
,
7053 [GCC_GPLL0
] = &gcc_gpll0
.clkr
,
7054 [GCC_GPLL0_OUT_EVEN
] = &gcc_gpll0_out_even
.clkr
,
7055 [GCC_GPLL2
] = &gcc_gpll2
.clkr
,
7056 [GCC_GPLL4
] = &gcc_gpll4
.clkr
,
7057 [GCC_GPLL7
] = &gcc_gpll7
.clkr
,
7058 [GCC_GPLL8
] = &gcc_gpll8
.clkr
,
7059 [GCC_GPLL9
] = &gcc_gpll9
.clkr
,
7060 [GCC_GPU_GPLL0_CLK_SRC
] = &gcc_gpu_gpll0_clk_src
.clkr
,
7061 [GCC_GPU_GPLL0_DIV_CLK_SRC
] = &gcc_gpu_gpll0_div_clk_src
.clkr
,
7062 [GCC_GPU_IREF_EN
] = &gcc_gpu_iref_en
.clkr
,
7063 [GCC_GPU_MEMNOC_GFX_CLK
] = &gcc_gpu_memnoc_gfx_clk
.clkr
,
7064 [GCC_GPU_SNOC_DVM_GFX_CLK
] = &gcc_gpu_snoc_dvm_gfx_clk
.clkr
,
7065 [GCC_GPU_TCU_THROTTLE_AHB_CLK
] = &gcc_gpu_tcu_throttle_ahb_clk
.clkr
,
7066 [GCC_GPU_TCU_THROTTLE_CLK
] = &gcc_gpu_tcu_throttle_clk
.clkr
,
7067 [GCC_PCIE0_PHY_RCHNG_CLK
] = &gcc_pcie0_phy_rchng_clk
.clkr
,
7068 [GCC_PCIE1_PHY_RCHNG_CLK
] = &gcc_pcie1_phy_rchng_clk
.clkr
,
7069 [GCC_PCIE2A_PHY_RCHNG_CLK
] = &gcc_pcie2a_phy_rchng_clk
.clkr
,
7070 [GCC_PCIE2B_PHY_RCHNG_CLK
] = &gcc_pcie2b_phy_rchng_clk
.clkr
,
7071 [GCC_PCIE3A_PHY_RCHNG_CLK
] = &gcc_pcie3a_phy_rchng_clk
.clkr
,
7072 [GCC_PCIE3B_PHY_RCHNG_CLK
] = &gcc_pcie3b_phy_rchng_clk
.clkr
,
7073 [GCC_PCIE4_PHY_RCHNG_CLK
] = &gcc_pcie4_phy_rchng_clk
.clkr
,
7074 [GCC_PCIE_0_AUX_CLK
] = &gcc_pcie_0_aux_clk
.clkr
,
7075 [GCC_PCIE_0_AUX_CLK_SRC
] = &gcc_pcie_0_aux_clk_src
.clkr
,
7076 [GCC_PCIE_0_CFG_AHB_CLK
] = &gcc_pcie_0_cfg_ahb_clk
.clkr
,
7077 [GCC_PCIE_0_MSTR_AXI_CLK
] = &gcc_pcie_0_mstr_axi_clk
.clkr
,
7078 [GCC_PCIE_0_PHY_RCHNG_CLK_SRC
] = &gcc_pcie_0_phy_rchng_clk_src
.clkr
,
7079 [GCC_PCIE_0_PIPE_CLK
] = &gcc_pcie_0_pipe_clk
.clkr
,
7080 [GCC_PCIE_0_SLV_AXI_CLK
] = &gcc_pcie_0_slv_axi_clk
.clkr
,
7081 [GCC_PCIE_0_SLV_Q2A_AXI_CLK
] = &gcc_pcie_0_slv_q2a_axi_clk
.clkr
,
7082 [GCC_PCIE_1_AUX_CLK
] = &gcc_pcie_1_aux_clk
.clkr
,
7083 [GCC_PCIE_1_AUX_CLK_SRC
] = &gcc_pcie_1_aux_clk_src
.clkr
,
7084 [GCC_PCIE_1_CFG_AHB_CLK
] = &gcc_pcie_1_cfg_ahb_clk
.clkr
,
7085 [GCC_PCIE_1_MSTR_AXI_CLK
] = &gcc_pcie_1_mstr_axi_clk
.clkr
,
7086 [GCC_PCIE_1_PHY_RCHNG_CLK_SRC
] = &gcc_pcie_1_phy_rchng_clk_src
.clkr
,
7087 [GCC_PCIE_1_PIPE_CLK
] = &gcc_pcie_1_pipe_clk
.clkr
,
7088 [GCC_PCIE_1_SLV_AXI_CLK
] = &gcc_pcie_1_slv_axi_clk
.clkr
,
7089 [GCC_PCIE_1_SLV_Q2A_AXI_CLK
] = &gcc_pcie_1_slv_q2a_axi_clk
.clkr
,
7090 [GCC_PCIE_2A2B_CLKREF_CLK
] = &gcc_pcie_2a2b_clkref_clk
.clkr
,
7091 [GCC_PCIE_2A_AUX_CLK
] = &gcc_pcie_2a_aux_clk
.clkr
,
7092 [GCC_PCIE_2A_AUX_CLK_SRC
] = &gcc_pcie_2a_aux_clk_src
.clkr
,
7093 [GCC_PCIE_2A_CFG_AHB_CLK
] = &gcc_pcie_2a_cfg_ahb_clk
.clkr
,
7094 [GCC_PCIE_2A_MSTR_AXI_CLK
] = &gcc_pcie_2a_mstr_axi_clk
.clkr
,
7095 [GCC_PCIE_2A_PHY_RCHNG_CLK_SRC
] = &gcc_pcie_2a_phy_rchng_clk_src
.clkr
,
7096 [GCC_PCIE_2A_PIPE_CLK
] = &gcc_pcie_2a_pipe_clk
.clkr
,
7097 [GCC_PCIE_2A_PIPE_CLK_SRC
] = &gcc_pcie_2a_pipe_clk_src
.clkr
,
7098 [GCC_PCIE_2A_PIPE_DIV_CLK_SRC
] = &gcc_pcie_2a_pipe_div_clk_src
.clkr
,
7099 [GCC_PCIE_2A_PIPEDIV2_CLK
] = &gcc_pcie_2a_pipediv2_clk
.clkr
,
7100 [GCC_PCIE_2A_SLV_AXI_CLK
] = &gcc_pcie_2a_slv_axi_clk
.clkr
,
7101 [GCC_PCIE_2A_SLV_Q2A_AXI_CLK
] = &gcc_pcie_2a_slv_q2a_axi_clk
.clkr
,
7102 [GCC_PCIE_2B_AUX_CLK
] = &gcc_pcie_2b_aux_clk
.clkr
,
7103 [GCC_PCIE_2B_AUX_CLK_SRC
] = &gcc_pcie_2b_aux_clk_src
.clkr
,
7104 [GCC_PCIE_2B_CFG_AHB_CLK
] = &gcc_pcie_2b_cfg_ahb_clk
.clkr
,
7105 [GCC_PCIE_2B_MSTR_AXI_CLK
] = &gcc_pcie_2b_mstr_axi_clk
.clkr
,
7106 [GCC_PCIE_2B_PHY_RCHNG_CLK_SRC
] = &gcc_pcie_2b_phy_rchng_clk_src
.clkr
,
7107 [GCC_PCIE_2B_PIPE_CLK
] = &gcc_pcie_2b_pipe_clk
.clkr
,
7108 [GCC_PCIE_2B_PIPE_CLK_SRC
] = &gcc_pcie_2b_pipe_clk_src
.clkr
,
7109 [GCC_PCIE_2B_PIPE_DIV_CLK_SRC
] = &gcc_pcie_2b_pipe_div_clk_src
.clkr
,
7110 [GCC_PCIE_2B_PIPEDIV2_CLK
] = &gcc_pcie_2b_pipediv2_clk
.clkr
,
7111 [GCC_PCIE_2B_SLV_AXI_CLK
] = &gcc_pcie_2b_slv_axi_clk
.clkr
,
7112 [GCC_PCIE_2B_SLV_Q2A_AXI_CLK
] = &gcc_pcie_2b_slv_q2a_axi_clk
.clkr
,
7113 [GCC_PCIE_3A3B_CLKREF_CLK
] = &gcc_pcie_3a3b_clkref_clk
.clkr
,
7114 [GCC_PCIE_3A_AUX_CLK
] = &gcc_pcie_3a_aux_clk
.clkr
,
7115 [GCC_PCIE_3A_AUX_CLK_SRC
] = &gcc_pcie_3a_aux_clk_src
.clkr
,
7116 [GCC_PCIE_3A_CFG_AHB_CLK
] = &gcc_pcie_3a_cfg_ahb_clk
.clkr
,
7117 [GCC_PCIE_3A_MSTR_AXI_CLK
] = &gcc_pcie_3a_mstr_axi_clk
.clkr
,
7118 [GCC_PCIE_3A_PHY_RCHNG_CLK_SRC
] = &gcc_pcie_3a_phy_rchng_clk_src
.clkr
,
7119 [GCC_PCIE_3A_PIPE_CLK
] = &gcc_pcie_3a_pipe_clk
.clkr
,
7120 [GCC_PCIE_3A_PIPE_CLK_SRC
] = &gcc_pcie_3a_pipe_clk_src
.clkr
,
7121 [GCC_PCIE_3A_PIPE_DIV_CLK_SRC
] = &gcc_pcie_3a_pipe_div_clk_src
.clkr
,
7122 [GCC_PCIE_3A_PIPEDIV2_CLK
] = &gcc_pcie_3a_pipediv2_clk
.clkr
,
7123 [GCC_PCIE_3A_SLV_AXI_CLK
] = &gcc_pcie_3a_slv_axi_clk
.clkr
,
7124 [GCC_PCIE_3A_SLV_Q2A_AXI_CLK
] = &gcc_pcie_3a_slv_q2a_axi_clk
.clkr
,
7125 [GCC_PCIE_3B_AUX_CLK
] = &gcc_pcie_3b_aux_clk
.clkr
,
7126 [GCC_PCIE_3B_AUX_CLK_SRC
] = &gcc_pcie_3b_aux_clk_src
.clkr
,
7127 [GCC_PCIE_3B_CFG_AHB_CLK
] = &gcc_pcie_3b_cfg_ahb_clk
.clkr
,
7128 [GCC_PCIE_3B_MSTR_AXI_CLK
] = &gcc_pcie_3b_mstr_axi_clk
.clkr
,
7129 [GCC_PCIE_3B_PHY_RCHNG_CLK_SRC
] = &gcc_pcie_3b_phy_rchng_clk_src
.clkr
,
7130 [GCC_PCIE_3B_PIPE_CLK
] = &gcc_pcie_3b_pipe_clk
.clkr
,
7131 [GCC_PCIE_3B_PIPE_CLK_SRC
] = &gcc_pcie_3b_pipe_clk_src
.clkr
,
7132 [GCC_PCIE_3B_PIPE_DIV_CLK_SRC
] = &gcc_pcie_3b_pipe_div_clk_src
.clkr
,
7133 [GCC_PCIE_3B_PIPEDIV2_CLK
] = &gcc_pcie_3b_pipediv2_clk
.clkr
,
7134 [GCC_PCIE_3B_SLV_AXI_CLK
] = &gcc_pcie_3b_slv_axi_clk
.clkr
,
7135 [GCC_PCIE_3B_SLV_Q2A_AXI_CLK
] = &gcc_pcie_3b_slv_q2a_axi_clk
.clkr
,
7136 [GCC_PCIE_4_AUX_CLK
] = &gcc_pcie_4_aux_clk
.clkr
,
7137 [GCC_PCIE_4_AUX_CLK_SRC
] = &gcc_pcie_4_aux_clk_src
.clkr
,
7138 [GCC_PCIE_4_CFG_AHB_CLK
] = &gcc_pcie_4_cfg_ahb_clk
.clkr
,
7139 [GCC_PCIE_4_CLKREF_CLK
] = &gcc_pcie_4_clkref_clk
.clkr
,
7140 [GCC_PCIE_4_MSTR_AXI_CLK
] = &gcc_pcie_4_mstr_axi_clk
.clkr
,
7141 [GCC_PCIE_4_PHY_RCHNG_CLK_SRC
] = &gcc_pcie_4_phy_rchng_clk_src
.clkr
,
7142 [GCC_PCIE_4_PIPE_CLK
] = &gcc_pcie_4_pipe_clk
.clkr
,
7143 [GCC_PCIE_4_PIPE_CLK_SRC
] = &gcc_pcie_4_pipe_clk_src
.clkr
,
7144 [GCC_PCIE_4_PIPE_DIV_CLK_SRC
] = &gcc_pcie_4_pipe_div_clk_src
.clkr
,
7145 [GCC_PCIE_4_PIPEDIV2_CLK
] = &gcc_pcie_4_pipediv2_clk
.clkr
,
7146 [GCC_PCIE_4_SLV_AXI_CLK
] = &gcc_pcie_4_slv_axi_clk
.clkr
,
7147 [GCC_PCIE_4_SLV_Q2A_AXI_CLK
] = &gcc_pcie_4_slv_q2a_axi_clk
.clkr
,
7148 [GCC_PCIE_RSCC_AHB_CLK
] = &gcc_pcie_rscc_ahb_clk
.clkr
,
7149 [GCC_PCIE_RSCC_XO_CLK
] = &gcc_pcie_rscc_xo_clk
.clkr
,
7150 [GCC_PCIE_RSCC_XO_CLK_SRC
] = &gcc_pcie_rscc_xo_clk_src
.clkr
,
7151 [GCC_PCIE_THROTTLE_CFG_CLK
] = &gcc_pcie_throttle_cfg_clk
.clkr
,
7152 [GCC_PDM2_CLK
] = &gcc_pdm2_clk
.clkr
,
7153 [GCC_PDM2_CLK_SRC
] = &gcc_pdm2_clk_src
.clkr
,
7154 [GCC_PDM_AHB_CLK
] = &gcc_pdm_ahb_clk
.clkr
,
7155 [GCC_PDM_XO4_CLK
] = &gcc_pdm_xo4_clk
.clkr
,
7156 [GCC_QMIP_CAMERA_NRT_AHB_CLK
] = &gcc_qmip_camera_nrt_ahb_clk
.clkr
,
7157 [GCC_QMIP_CAMERA_RT_AHB_CLK
] = &gcc_qmip_camera_rt_ahb_clk
.clkr
,
7158 [GCC_QMIP_DISP1_AHB_CLK
] = &gcc_qmip_disp1_ahb_clk
.clkr
,
7159 [GCC_QMIP_DISP1_ROT_AHB_CLK
] = &gcc_qmip_disp1_rot_ahb_clk
.clkr
,
7160 [GCC_QMIP_DISP_AHB_CLK
] = &gcc_qmip_disp_ahb_clk
.clkr
,
7161 [GCC_QMIP_DISP_ROT_AHB_CLK
] = &gcc_qmip_disp_rot_ahb_clk
.clkr
,
7162 [GCC_QMIP_VIDEO_CVP_AHB_CLK
] = &gcc_qmip_video_cvp_ahb_clk
.clkr
,
7163 [GCC_QMIP_VIDEO_VCODEC_AHB_CLK
] = &gcc_qmip_video_vcodec_ahb_clk
.clkr
,
7164 [GCC_QUPV3_WRAP0_CORE_2X_CLK
] = &gcc_qupv3_wrap0_core_2x_clk
.clkr
,
7165 [GCC_QUPV3_WRAP0_CORE_CLK
] = &gcc_qupv3_wrap0_core_clk
.clkr
,
7166 [GCC_QUPV3_WRAP0_QSPI0_CLK
] = &gcc_qupv3_wrap0_qspi0_clk
.clkr
,
7167 [GCC_QUPV3_WRAP0_S0_CLK
] = &gcc_qupv3_wrap0_s0_clk
.clkr
,
7168 [GCC_QUPV3_WRAP0_S0_CLK_SRC
] = &gcc_qupv3_wrap0_s0_clk_src
.clkr
,
7169 [GCC_QUPV3_WRAP0_S1_CLK
] = &gcc_qupv3_wrap0_s1_clk
.clkr
,
7170 [GCC_QUPV3_WRAP0_S1_CLK_SRC
] = &gcc_qupv3_wrap0_s1_clk_src
.clkr
,
7171 [GCC_QUPV3_WRAP0_S2_CLK
] = &gcc_qupv3_wrap0_s2_clk
.clkr
,
7172 [GCC_QUPV3_WRAP0_S2_CLK_SRC
] = &gcc_qupv3_wrap0_s2_clk_src
.clkr
,
7173 [GCC_QUPV3_WRAP0_S3_CLK
] = &gcc_qupv3_wrap0_s3_clk
.clkr
,
7174 [GCC_QUPV3_WRAP0_S3_CLK_SRC
] = &gcc_qupv3_wrap0_s3_clk_src
.clkr
,
7175 [GCC_QUPV3_WRAP0_S4_CLK
] = &gcc_qupv3_wrap0_s4_clk
.clkr
,
7176 [GCC_QUPV3_WRAP0_S4_CLK_SRC
] = &gcc_qupv3_wrap0_s4_clk_src
.clkr
,
7177 [GCC_QUPV3_WRAP0_S4_DIV_CLK_SRC
] = &gcc_qupv3_wrap0_s4_div_clk_src
.clkr
,
7178 [GCC_QUPV3_WRAP0_S5_CLK
] = &gcc_qupv3_wrap0_s5_clk
.clkr
,
7179 [GCC_QUPV3_WRAP0_S5_CLK_SRC
] = &gcc_qupv3_wrap0_s5_clk_src
.clkr
,
7180 [GCC_QUPV3_WRAP0_S6_CLK
] = &gcc_qupv3_wrap0_s6_clk
.clkr
,
7181 [GCC_QUPV3_WRAP0_S6_CLK_SRC
] = &gcc_qupv3_wrap0_s6_clk_src
.clkr
,
7182 [GCC_QUPV3_WRAP0_S7_CLK
] = &gcc_qupv3_wrap0_s7_clk
.clkr
,
7183 [GCC_QUPV3_WRAP0_S7_CLK_SRC
] = &gcc_qupv3_wrap0_s7_clk_src
.clkr
,
7184 [GCC_QUPV3_WRAP1_CORE_2X_CLK
] = &gcc_qupv3_wrap1_core_2x_clk
.clkr
,
7185 [GCC_QUPV3_WRAP1_CORE_CLK
] = &gcc_qupv3_wrap1_core_clk
.clkr
,
7186 [GCC_QUPV3_WRAP1_QSPI0_CLK
] = &gcc_qupv3_wrap1_qspi0_clk
.clkr
,
7187 [GCC_QUPV3_WRAP1_S0_CLK
] = &gcc_qupv3_wrap1_s0_clk
.clkr
,
7188 [GCC_QUPV3_WRAP1_S0_CLK_SRC
] = &gcc_qupv3_wrap1_s0_clk_src
.clkr
,
7189 [GCC_QUPV3_WRAP1_S1_CLK
] = &gcc_qupv3_wrap1_s1_clk
.clkr
,
7190 [GCC_QUPV3_WRAP1_S1_CLK_SRC
] = &gcc_qupv3_wrap1_s1_clk_src
.clkr
,
7191 [GCC_QUPV3_WRAP1_S2_CLK
] = &gcc_qupv3_wrap1_s2_clk
.clkr
,
7192 [GCC_QUPV3_WRAP1_S2_CLK_SRC
] = &gcc_qupv3_wrap1_s2_clk_src
.clkr
,
7193 [GCC_QUPV3_WRAP1_S3_CLK
] = &gcc_qupv3_wrap1_s3_clk
.clkr
,
7194 [GCC_QUPV3_WRAP1_S3_CLK_SRC
] = &gcc_qupv3_wrap1_s3_clk_src
.clkr
,
7195 [GCC_QUPV3_WRAP1_S4_CLK
] = &gcc_qupv3_wrap1_s4_clk
.clkr
,
7196 [GCC_QUPV3_WRAP1_S4_CLK_SRC
] = &gcc_qupv3_wrap1_s4_clk_src
.clkr
,
7197 [GCC_QUPV3_WRAP1_S4_DIV_CLK_SRC
] = &gcc_qupv3_wrap1_s4_div_clk_src
.clkr
,
7198 [GCC_QUPV3_WRAP1_S5_CLK
] = &gcc_qupv3_wrap1_s5_clk
.clkr
,
7199 [GCC_QUPV3_WRAP1_S5_CLK_SRC
] = &gcc_qupv3_wrap1_s5_clk_src
.clkr
,
7200 [GCC_QUPV3_WRAP1_S6_CLK
] = &gcc_qupv3_wrap1_s6_clk
.clkr
,
7201 [GCC_QUPV3_WRAP1_S6_CLK_SRC
] = &gcc_qupv3_wrap1_s6_clk_src
.clkr
,
7202 [GCC_QUPV3_WRAP1_S7_CLK
] = &gcc_qupv3_wrap1_s7_clk
.clkr
,
7203 [GCC_QUPV3_WRAP1_S7_CLK_SRC
] = &gcc_qupv3_wrap1_s7_clk_src
.clkr
,
7204 [GCC_QUPV3_WRAP2_CORE_2X_CLK
] = &gcc_qupv3_wrap2_core_2x_clk
.clkr
,
7205 [GCC_QUPV3_WRAP2_CORE_CLK
] = &gcc_qupv3_wrap2_core_clk
.clkr
,
7206 [GCC_QUPV3_WRAP2_QSPI0_CLK
] = &gcc_qupv3_wrap2_qspi0_clk
.clkr
,
7207 [GCC_QUPV3_WRAP2_S0_CLK
] = &gcc_qupv3_wrap2_s0_clk
.clkr
,
7208 [GCC_QUPV3_WRAP2_S0_CLK_SRC
] = &gcc_qupv3_wrap2_s0_clk_src
.clkr
,
7209 [GCC_QUPV3_WRAP2_S1_CLK
] = &gcc_qupv3_wrap2_s1_clk
.clkr
,
7210 [GCC_QUPV3_WRAP2_S1_CLK_SRC
] = &gcc_qupv3_wrap2_s1_clk_src
.clkr
,
7211 [GCC_QUPV3_WRAP2_S2_CLK
] = &gcc_qupv3_wrap2_s2_clk
.clkr
,
7212 [GCC_QUPV3_WRAP2_S2_CLK_SRC
] = &gcc_qupv3_wrap2_s2_clk_src
.clkr
,
7213 [GCC_QUPV3_WRAP2_S3_CLK
] = &gcc_qupv3_wrap2_s3_clk
.clkr
,
7214 [GCC_QUPV3_WRAP2_S3_CLK_SRC
] = &gcc_qupv3_wrap2_s3_clk_src
.clkr
,
7215 [GCC_QUPV3_WRAP2_S4_CLK
] = &gcc_qupv3_wrap2_s4_clk
.clkr
,
7216 [GCC_QUPV3_WRAP2_S4_CLK_SRC
] = &gcc_qupv3_wrap2_s4_clk_src
.clkr
,
7217 [GCC_QUPV3_WRAP2_S4_DIV_CLK_SRC
] = &gcc_qupv3_wrap2_s4_div_clk_src
.clkr
,
7218 [GCC_QUPV3_WRAP2_S5_CLK
] = &gcc_qupv3_wrap2_s5_clk
.clkr
,
7219 [GCC_QUPV3_WRAP2_S5_CLK_SRC
] = &gcc_qupv3_wrap2_s5_clk_src
.clkr
,
7220 [GCC_QUPV3_WRAP2_S6_CLK
] = &gcc_qupv3_wrap2_s6_clk
.clkr
,
7221 [GCC_QUPV3_WRAP2_S6_CLK_SRC
] = &gcc_qupv3_wrap2_s6_clk_src
.clkr
,
7222 [GCC_QUPV3_WRAP2_S7_CLK
] = &gcc_qupv3_wrap2_s7_clk
.clkr
,
7223 [GCC_QUPV3_WRAP2_S7_CLK_SRC
] = &gcc_qupv3_wrap2_s7_clk_src
.clkr
,
7224 [GCC_QUPV3_WRAP_0_M_AHB_CLK
] = &gcc_qupv3_wrap_0_m_ahb_clk
.clkr
,
7225 [GCC_QUPV3_WRAP_0_S_AHB_CLK
] = &gcc_qupv3_wrap_0_s_ahb_clk
.clkr
,
7226 [GCC_QUPV3_WRAP_1_M_AHB_CLK
] = &gcc_qupv3_wrap_1_m_ahb_clk
.clkr
,
7227 [GCC_QUPV3_WRAP_1_S_AHB_CLK
] = &gcc_qupv3_wrap_1_s_ahb_clk
.clkr
,
7228 [GCC_QUPV3_WRAP_2_M_AHB_CLK
] = &gcc_qupv3_wrap_2_m_ahb_clk
.clkr
,
7229 [GCC_QUPV3_WRAP_2_S_AHB_CLK
] = &gcc_qupv3_wrap_2_s_ahb_clk
.clkr
,
7230 [GCC_SDCC2_AHB_CLK
] = &gcc_sdcc2_ahb_clk
.clkr
,
7231 [GCC_SDCC2_APPS_CLK
] = &gcc_sdcc2_apps_clk
.clkr
,
7232 [GCC_SDCC2_APPS_CLK_SRC
] = &gcc_sdcc2_apps_clk_src
.clkr
,
7233 [GCC_SDCC4_AHB_CLK
] = &gcc_sdcc4_ahb_clk
.clkr
,
7234 [GCC_SDCC4_APPS_CLK
] = &gcc_sdcc4_apps_clk
.clkr
,
7235 [GCC_SDCC4_APPS_CLK_SRC
] = &gcc_sdcc4_apps_clk_src
.clkr
,
7236 [GCC_SYS_NOC_USB_AXI_CLK
] = &gcc_sys_noc_usb_axi_clk
.clkr
,
7237 [GCC_UFS_1_CARD_CLKREF_CLK
] = &gcc_ufs_1_card_clkref_clk
.clkr
,
7238 [GCC_UFS_CARD_AHB_CLK
] = &gcc_ufs_card_ahb_clk
.clkr
,
7239 [GCC_UFS_CARD_AXI_CLK
] = &gcc_ufs_card_axi_clk
.clkr
,
7240 [GCC_UFS_CARD_AXI_CLK_SRC
] = &gcc_ufs_card_axi_clk_src
.clkr
,
7241 [GCC_UFS_CARD_AXI_HW_CTL_CLK
] = &gcc_ufs_card_axi_hw_ctl_clk
.clkr
,
7242 [GCC_UFS_CARD_CLKREF_CLK
] = &gcc_ufs_card_clkref_clk
.clkr
,
7243 [GCC_UFS_CARD_ICE_CORE_CLK
] = &gcc_ufs_card_ice_core_clk
.clkr
,
7244 [GCC_UFS_CARD_ICE_CORE_CLK_SRC
] = &gcc_ufs_card_ice_core_clk_src
.clkr
,
7245 [GCC_UFS_CARD_ICE_CORE_HW_CTL_CLK
] = &gcc_ufs_card_ice_core_hw_ctl_clk
.clkr
,
7246 [GCC_UFS_CARD_PHY_AUX_CLK
] = &gcc_ufs_card_phy_aux_clk
.clkr
,
7247 [GCC_UFS_CARD_PHY_AUX_CLK_SRC
] = &gcc_ufs_card_phy_aux_clk_src
.clkr
,
7248 [GCC_UFS_CARD_PHY_AUX_HW_CTL_CLK
] = &gcc_ufs_card_phy_aux_hw_ctl_clk
.clkr
,
7249 [GCC_UFS_CARD_RX_SYMBOL_0_CLK
] = &gcc_ufs_card_rx_symbol_0_clk
.clkr
,
7250 [GCC_UFS_CARD_RX_SYMBOL_0_CLK_SRC
] = &gcc_ufs_card_rx_symbol_0_clk_src
.clkr
,
7251 [GCC_UFS_CARD_RX_SYMBOL_1_CLK
] = &gcc_ufs_card_rx_symbol_1_clk
.clkr
,
7252 [GCC_UFS_CARD_RX_SYMBOL_1_CLK_SRC
] = &gcc_ufs_card_rx_symbol_1_clk_src
.clkr
,
7253 [GCC_UFS_CARD_TX_SYMBOL_0_CLK
] = &gcc_ufs_card_tx_symbol_0_clk
.clkr
,
7254 [GCC_UFS_CARD_TX_SYMBOL_0_CLK_SRC
] = &gcc_ufs_card_tx_symbol_0_clk_src
.clkr
,
7255 [GCC_UFS_CARD_UNIPRO_CORE_CLK
] = &gcc_ufs_card_unipro_core_clk
.clkr
,
7256 [GCC_UFS_CARD_UNIPRO_CORE_CLK_SRC
] = &gcc_ufs_card_unipro_core_clk_src
.clkr
,
7257 [GCC_UFS_CARD_UNIPRO_CORE_HW_CTL_CLK
] = &gcc_ufs_card_unipro_core_hw_ctl_clk
.clkr
,
7258 [GCC_UFS_PHY_AHB_CLK
] = &gcc_ufs_phy_ahb_clk
.clkr
,
7259 [GCC_UFS_PHY_AXI_CLK
] = &gcc_ufs_phy_axi_clk
.clkr
,
7260 [GCC_UFS_PHY_AXI_CLK_SRC
] = &gcc_ufs_phy_axi_clk_src
.clkr
,
7261 [GCC_UFS_PHY_AXI_HW_CTL_CLK
] = &gcc_ufs_phy_axi_hw_ctl_clk
.clkr
,
7262 [GCC_UFS_PHY_ICE_CORE_CLK
] = &gcc_ufs_phy_ice_core_clk
.clkr
,
7263 [GCC_UFS_PHY_ICE_CORE_CLK_SRC
] = &gcc_ufs_phy_ice_core_clk_src
.clkr
,
7264 [GCC_UFS_PHY_ICE_CORE_HW_CTL_CLK
] = &gcc_ufs_phy_ice_core_hw_ctl_clk
.clkr
,
7265 [GCC_UFS_PHY_PHY_AUX_CLK
] = &gcc_ufs_phy_phy_aux_clk
.clkr
,
7266 [GCC_UFS_PHY_PHY_AUX_CLK_SRC
] = &gcc_ufs_phy_phy_aux_clk_src
.clkr
,
7267 [GCC_UFS_PHY_PHY_AUX_HW_CTL_CLK
] = &gcc_ufs_phy_phy_aux_hw_ctl_clk
.clkr
,
7268 [GCC_UFS_PHY_RX_SYMBOL_0_CLK
] = &gcc_ufs_phy_rx_symbol_0_clk
.clkr
,
7269 [GCC_UFS_PHY_RX_SYMBOL_0_CLK_SRC
] = &gcc_ufs_phy_rx_symbol_0_clk_src
.clkr
,
7270 [GCC_UFS_PHY_RX_SYMBOL_1_CLK
] = &gcc_ufs_phy_rx_symbol_1_clk
.clkr
,
7271 [GCC_UFS_PHY_RX_SYMBOL_1_CLK_SRC
] = &gcc_ufs_phy_rx_symbol_1_clk_src
.clkr
,
7272 [GCC_UFS_PHY_TX_SYMBOL_0_CLK
] = &gcc_ufs_phy_tx_symbol_0_clk
.clkr
,
7273 [GCC_UFS_PHY_TX_SYMBOL_0_CLK_SRC
] = &gcc_ufs_phy_tx_symbol_0_clk_src
.clkr
,
7274 [GCC_UFS_PHY_UNIPRO_CORE_CLK
] = &gcc_ufs_phy_unipro_core_clk
.clkr
,
7275 [GCC_UFS_PHY_UNIPRO_CORE_CLK_SRC
] = &gcc_ufs_phy_unipro_core_clk_src
.clkr
,
7276 [GCC_UFS_PHY_UNIPRO_CORE_HW_CTL_CLK
] = &gcc_ufs_phy_unipro_core_hw_ctl_clk
.clkr
,
7277 [GCC_UFS_REF_CLKREF_CLK
] = &gcc_ufs_ref_clkref_clk
.clkr
,
7278 [GCC_USB2_HS0_CLKREF_CLK
] = &gcc_usb2_hs0_clkref_clk
.clkr
,
7279 [GCC_USB2_HS1_CLKREF_CLK
] = &gcc_usb2_hs1_clkref_clk
.clkr
,
7280 [GCC_USB2_HS2_CLKREF_CLK
] = &gcc_usb2_hs2_clkref_clk
.clkr
,
7281 [GCC_USB2_HS3_CLKREF_CLK
] = &gcc_usb2_hs3_clkref_clk
.clkr
,
7282 [GCC_USB30_MP_MASTER_CLK
] = &gcc_usb30_mp_master_clk
.clkr
,
7283 [GCC_USB30_MP_MASTER_CLK_SRC
] = &gcc_usb30_mp_master_clk_src
.clkr
,
7284 [GCC_USB30_MP_MOCK_UTMI_CLK
] = &gcc_usb30_mp_mock_utmi_clk
.clkr
,
7285 [GCC_USB30_MP_MOCK_UTMI_CLK_SRC
] = &gcc_usb30_mp_mock_utmi_clk_src
.clkr
,
7286 [GCC_USB30_MP_MOCK_UTMI_POSTDIV_CLK_SRC
] = &gcc_usb30_mp_mock_utmi_postdiv_clk_src
.clkr
,
7287 [GCC_USB30_MP_SLEEP_CLK
] = &gcc_usb30_mp_sleep_clk
.clkr
,
7288 [GCC_USB30_PRIM_MASTER_CLK
] = &gcc_usb30_prim_master_clk
.clkr
,
7289 [GCC_USB30_PRIM_MASTER_CLK_SRC
] = &gcc_usb30_prim_master_clk_src
.clkr
,
7290 [GCC_USB30_PRIM_MOCK_UTMI_CLK
] = &gcc_usb30_prim_mock_utmi_clk
.clkr
,
7291 [GCC_USB30_PRIM_MOCK_UTMI_CLK_SRC
] = &gcc_usb30_prim_mock_utmi_clk_src
.clkr
,
7292 [GCC_USB30_PRIM_MOCK_UTMI_POSTDIV_CLK_SRC
] = &gcc_usb30_prim_mock_utmi_postdiv_clk_src
.clkr
,
7293 [GCC_USB30_PRIM_SLEEP_CLK
] = &gcc_usb30_prim_sleep_clk
.clkr
,
7294 [GCC_USB30_SEC_MASTER_CLK
] = &gcc_usb30_sec_master_clk
.clkr
,
7295 [GCC_USB30_SEC_MASTER_CLK_SRC
] = &gcc_usb30_sec_master_clk_src
.clkr
,
7296 [GCC_USB30_SEC_MOCK_UTMI_CLK
] = &gcc_usb30_sec_mock_utmi_clk
.clkr
,
7297 [GCC_USB30_SEC_MOCK_UTMI_CLK_SRC
] = &gcc_usb30_sec_mock_utmi_clk_src
.clkr
,
7298 [GCC_USB30_SEC_MOCK_UTMI_POSTDIV_CLK_SRC
] = &gcc_usb30_sec_mock_utmi_postdiv_clk_src
.clkr
,
7299 [GCC_USB30_SEC_SLEEP_CLK
] = &gcc_usb30_sec_sleep_clk
.clkr
,
7300 [GCC_USB34_PRIM_PHY_PIPE_CLK_SRC
] = &gcc_usb34_prim_phy_pipe_clk_src
.clkr
,
7301 [GCC_USB34_SEC_PHY_PIPE_CLK_SRC
] = &gcc_usb34_sec_phy_pipe_clk_src
.clkr
,
7302 [GCC_USB3_MP0_CLKREF_CLK
] = &gcc_usb3_mp0_clkref_clk
.clkr
,
7303 [GCC_USB3_MP1_CLKREF_CLK
] = &gcc_usb3_mp1_clkref_clk
.clkr
,
7304 [GCC_USB3_MP_PHY_AUX_CLK
] = &gcc_usb3_mp_phy_aux_clk
.clkr
,
7305 [GCC_USB3_MP_PHY_AUX_CLK_SRC
] = &gcc_usb3_mp_phy_aux_clk_src
.clkr
,
7306 [GCC_USB3_MP_PHY_COM_AUX_CLK
] = &gcc_usb3_mp_phy_com_aux_clk
.clkr
,
7307 [GCC_USB3_MP_PHY_PIPE_0_CLK
] = &gcc_usb3_mp_phy_pipe_0_clk
.clkr
,
7308 [GCC_USB3_MP_PHY_PIPE_0_CLK_SRC
] = &gcc_usb3_mp_phy_pipe_0_clk_src
.clkr
,
7309 [GCC_USB3_MP_PHY_PIPE_1_CLK
] = &gcc_usb3_mp_phy_pipe_1_clk
.clkr
,
7310 [GCC_USB3_MP_PHY_PIPE_1_CLK_SRC
] = &gcc_usb3_mp_phy_pipe_1_clk_src
.clkr
,
7311 [GCC_USB3_PRIM_PHY_AUX_CLK
] = &gcc_usb3_prim_phy_aux_clk
.clkr
,
7312 [GCC_USB3_PRIM_PHY_AUX_CLK_SRC
] = &gcc_usb3_prim_phy_aux_clk_src
.clkr
,
7313 [GCC_USB3_PRIM_PHY_COM_AUX_CLK
] = &gcc_usb3_prim_phy_com_aux_clk
.clkr
,
7314 [GCC_USB3_PRIM_PHY_PIPE_CLK
] = &gcc_usb3_prim_phy_pipe_clk
.clkr
,
7315 [GCC_USB3_PRIM_PHY_PIPE_CLK_SRC
] = &gcc_usb3_prim_phy_pipe_clk_src
.clkr
,
7316 [GCC_USB3_SEC_PHY_AUX_CLK
] = &gcc_usb3_sec_phy_aux_clk
.clkr
,
7317 [GCC_USB3_SEC_PHY_AUX_CLK_SRC
] = &gcc_usb3_sec_phy_aux_clk_src
.clkr
,
7318 [GCC_USB3_SEC_PHY_COM_AUX_CLK
] = &gcc_usb3_sec_phy_com_aux_clk
.clkr
,
7319 [GCC_USB3_SEC_PHY_PIPE_CLK
] = &gcc_usb3_sec_phy_pipe_clk
.clkr
,
7320 [GCC_USB3_SEC_PHY_PIPE_CLK_SRC
] = &gcc_usb3_sec_phy_pipe_clk_src
.clkr
,
7321 [GCC_USB4_1_CFG_AHB_CLK
] = &gcc_usb4_1_cfg_ahb_clk
.clkr
,
7322 [GCC_USB4_1_DP_CLK
] = &gcc_usb4_1_dp_clk
.clkr
,
7323 [GCC_USB4_1_MASTER_CLK
] = &gcc_usb4_1_master_clk
.clkr
,
7324 [GCC_USB4_1_MASTER_CLK_SRC
] = &gcc_usb4_1_master_clk_src
.clkr
,
7325 [GCC_USB4_1_PHY_DP_CLK_SRC
] = &gcc_usb4_1_phy_dp_clk_src
.clkr
,
7326 [GCC_USB4_1_PHY_P2RR2P_PIPE_CLK
] = &gcc_usb4_1_phy_p2rr2p_pipe_clk
.clkr
,
7327 [GCC_USB4_1_PHY_P2RR2P_PIPE_CLK_SRC
] = &gcc_usb4_1_phy_p2rr2p_pipe_clk_src
.clkr
,
7328 [GCC_USB4_1_PHY_PCIE_PIPE_CLK
] = &gcc_usb4_1_phy_pcie_pipe_clk
.clkr
,
7329 [GCC_USB4_1_PHY_PCIE_PIPE_CLK_SRC
] = &gcc_usb4_1_phy_pcie_pipe_clk_src
.clkr
,
7330 [GCC_USB4_1_PHY_PCIE_PIPE_MUX_CLK_SRC
] = &gcc_usb4_1_phy_pcie_pipe_mux_clk_src
.clkr
,
7331 [GCC_USB4_1_PHY_PCIE_PIPEGMUX_CLK_SRC
] = &gcc_usb4_1_phy_pcie_pipegmux_clk_src
.clkr
,
7332 [GCC_USB4_1_PHY_RX0_CLK
] = &gcc_usb4_1_phy_rx0_clk
.clkr
,
7333 [GCC_USB4_1_PHY_RX0_CLK_SRC
] = &gcc_usb4_1_phy_rx0_clk_src
.clkr
,
7334 [GCC_USB4_1_PHY_RX1_CLK
] = &gcc_usb4_1_phy_rx1_clk
.clkr
,
7335 [GCC_USB4_1_PHY_RX1_CLK_SRC
] = &gcc_usb4_1_phy_rx1_clk_src
.clkr
,
7336 [GCC_USB4_1_PHY_SYS_CLK_SRC
] = &gcc_usb4_1_phy_sys_clk_src
.clkr
,
7337 [GCC_USB4_1_PHY_USB_PIPE_CLK
] = &gcc_usb4_1_phy_usb_pipe_clk
.clkr
,
7338 [GCC_USB4_1_SB_IF_CLK
] = &gcc_usb4_1_sb_if_clk
.clkr
,
7339 [GCC_USB4_1_SB_IF_CLK_SRC
] = &gcc_usb4_1_sb_if_clk_src
.clkr
,
7340 [GCC_USB4_1_SYS_CLK
] = &gcc_usb4_1_sys_clk
.clkr
,
7341 [GCC_USB4_1_TMU_CLK
] = &gcc_usb4_1_tmu_clk
.clkr
,
7342 [GCC_USB4_1_TMU_CLK_SRC
] = &gcc_usb4_1_tmu_clk_src
.clkr
,
7343 [GCC_USB4_CFG_AHB_CLK
] = &gcc_usb4_cfg_ahb_clk
.clkr
,
7344 [GCC_USB4_CLKREF_CLK
] = &gcc_usb4_clkref_clk
.clkr
,
7345 [GCC_USB4_DP_CLK
] = &gcc_usb4_dp_clk
.clkr
,
7346 [GCC_USB4_EUD_CLKREF_CLK
] = &gcc_usb4_eud_clkref_clk
.clkr
,
7347 [GCC_USB4_MASTER_CLK
] = &gcc_usb4_master_clk
.clkr
,
7348 [GCC_USB4_MASTER_CLK_SRC
] = &gcc_usb4_master_clk_src
.clkr
,
7349 [GCC_USB4_PHY_DP_CLK_SRC
] = &gcc_usb4_phy_dp_clk_src
.clkr
,
7350 [GCC_USB4_PHY_P2RR2P_PIPE_CLK
] = &gcc_usb4_phy_p2rr2p_pipe_clk
.clkr
,
7351 [GCC_USB4_PHY_P2RR2P_PIPE_CLK_SRC
] = &gcc_usb4_phy_p2rr2p_pipe_clk_src
.clkr
,
7352 [GCC_USB4_PHY_PCIE_PIPE_CLK
] = &gcc_usb4_phy_pcie_pipe_clk
.clkr
,
7353 [GCC_USB4_PHY_PCIE_PIPE_CLK_SRC
] = &gcc_usb4_phy_pcie_pipe_clk_src
.clkr
,
7354 [GCC_USB4_PHY_PCIE_PIPE_MUX_CLK_SRC
] = &gcc_usb4_phy_pcie_pipe_mux_clk_src
.clkr
,
7355 [GCC_USB4_PHY_PCIE_PIPEGMUX_CLK_SRC
] = &gcc_usb4_phy_pcie_pipegmux_clk_src
.clkr
,
7356 [GCC_USB4_PHY_RX0_CLK
] = &gcc_usb4_phy_rx0_clk
.clkr
,
7357 [GCC_USB4_PHY_RX0_CLK_SRC
] = &gcc_usb4_phy_rx0_clk_src
.clkr
,
7358 [GCC_USB4_PHY_RX1_CLK
] = &gcc_usb4_phy_rx1_clk
.clkr
,
7359 [GCC_USB4_PHY_RX1_CLK_SRC
] = &gcc_usb4_phy_rx1_clk_src
.clkr
,
7360 [GCC_USB4_PHY_SYS_CLK_SRC
] = &gcc_usb4_phy_sys_clk_src
.clkr
,
7361 [GCC_USB4_PHY_USB_PIPE_CLK
] = &gcc_usb4_phy_usb_pipe_clk
.clkr
,
7362 [GCC_USB4_SB_IF_CLK
] = &gcc_usb4_sb_if_clk
.clkr
,
7363 [GCC_USB4_SB_IF_CLK_SRC
] = &gcc_usb4_sb_if_clk_src
.clkr
,
7364 [GCC_USB4_SYS_CLK
] = &gcc_usb4_sys_clk
.clkr
,
7365 [GCC_USB4_TMU_CLK
] = &gcc_usb4_tmu_clk
.clkr
,
7366 [GCC_USB4_TMU_CLK_SRC
] = &gcc_usb4_tmu_clk_src
.clkr
,
7367 [GCC_VIDEO_AXI0_CLK
] = &gcc_video_axi0_clk
.clkr
,
7368 [GCC_VIDEO_AXI1_CLK
] = &gcc_video_axi1_clk
.clkr
,
7369 [GCC_VIDEO_CVP_THROTTLE_CLK
] = &gcc_video_cvp_throttle_clk
.clkr
,
7370 [GCC_VIDEO_VCODEC_THROTTLE_CLK
] = &gcc_video_vcodec_throttle_clk
.clkr
,
7373 static const struct qcom_reset_map gcc_sc8280xp_resets
[] = {
7374 [GCC_EMAC0_BCR
] = { 0xaa000 },
7375 [GCC_EMAC1_BCR
] = { 0xba000 },
7376 [GCC_PCIE_0_LINK_DOWN_BCR
] = { 0x6c014 },
7377 [GCC_PCIE_0_NOCSR_COM_PHY_BCR
] = { 0x6c020 },
7378 [GCC_PCIE_0_PHY_BCR
] = { 0x6c01c },
7379 [GCC_PCIE_0_PHY_NOCSR_COM_PHY_BCR
] = { 0x6c028 },
7380 [GCC_PCIE_0_TUNNEL_BCR
] = { 0xa4000 },
7381 [GCC_PCIE_1_LINK_DOWN_BCR
] = { 0x8e014 },
7382 [GCC_PCIE_1_NOCSR_COM_PHY_BCR
] = { 0x8e020 },
7383 [GCC_PCIE_1_PHY_BCR
] = { 0x8e01c },
7384 [GCC_PCIE_1_PHY_NOCSR_COM_PHY_BCR
] = { 0x8e000 },
7385 [GCC_PCIE_1_TUNNEL_BCR
] = { 0x8d000 },
7386 [GCC_PCIE_2A_BCR
] = { 0x9d000 },
7387 [GCC_PCIE_2A_LINK_DOWN_BCR
] = { 0x9d13c },
7388 [GCC_PCIE_2A_NOCSR_COM_PHY_BCR
] = { 0x9d148 },
7389 [GCC_PCIE_2A_PHY_BCR
] = { 0x9d144 },
7390 [GCC_PCIE_2A_PHY_NOCSR_COM_PHY_BCR
] = { 0x9d14c },
7391 [GCC_PCIE_2B_BCR
] = { 0x9e000 },
7392 [GCC_PCIE_2B_LINK_DOWN_BCR
] = { 0x9e084 },
7393 [GCC_PCIE_2B_NOCSR_COM_PHY_BCR
] = { 0x9e090 },
7394 [GCC_PCIE_2B_PHY_BCR
] = { 0x9e08c },
7395 [GCC_PCIE_2B_PHY_NOCSR_COM_PHY_BCR
] = { 0x9e094 },
7396 [GCC_PCIE_3A_BCR
] = { 0xa0000 },
7397 [GCC_PCIE_3A_LINK_DOWN_BCR
] = { 0xa00f0 },
7398 [GCC_PCIE_3A_NOCSR_COM_PHY_BCR
] = { 0xa00fc },
7399 [GCC_PCIE_3A_PHY_BCR
] = { 0xa00e0 },
7400 [GCC_PCIE_3A_PHY_NOCSR_COM_PHY_BCR
] = { 0xa00e4 },
7401 [GCC_PCIE_3B_BCR
] = { 0xa2000 },
7402 [GCC_PCIE_3B_LINK_DOWN_BCR
] = { 0xa20e0 },
7403 [GCC_PCIE_3B_NOCSR_COM_PHY_BCR
] = { 0xa20ec },
7404 [GCC_PCIE_3B_PHY_BCR
] = { 0xa20e8 },
7405 [GCC_PCIE_3B_PHY_NOCSR_COM_PHY_BCR
] = { 0xa20f0 },
7406 [GCC_PCIE_4_BCR
] = { 0x6b000 },
7407 [GCC_PCIE_4_LINK_DOWN_BCR
] = { 0x6b300 },
7408 [GCC_PCIE_4_NOCSR_COM_PHY_BCR
] = { 0x6b30c },
7409 [GCC_PCIE_4_PHY_BCR
] = { 0x6b308 },
7410 [GCC_PCIE_4_PHY_NOCSR_COM_PHY_BCR
] = { 0x6b310 },
7411 [GCC_PCIE_PHY_CFG_AHB_BCR
] = { 0x6f00c },
7412 [GCC_PCIE_PHY_COM_BCR
] = { 0x6f010 },
7413 [GCC_PCIE_RSCC_BCR
] = { 0xae000 },
7414 [GCC_QUSB2PHY_HS0_MP_BCR
] = { 0x12008 },
7415 [GCC_QUSB2PHY_HS1_MP_BCR
] = { 0x1200c },
7416 [GCC_QUSB2PHY_HS2_MP_BCR
] = { 0x12010 },
7417 [GCC_QUSB2PHY_HS3_MP_BCR
] = { 0x12014 },
7418 [GCC_QUSB2PHY_PRIM_BCR
] = { 0x12000 },
7419 [GCC_QUSB2PHY_SEC_BCR
] = { 0x12004 },
7420 [GCC_SDCC2_BCR
] = { 0x14000 },
7421 [GCC_SDCC4_BCR
] = { 0x16000 },
7422 [GCC_UFS_CARD_BCR
] = { 0x75000 },
7423 [GCC_UFS_PHY_BCR
] = { 0x77000 },
7424 [GCC_USB2_PHY_PRIM_BCR
] = { 0x50028 },
7425 [GCC_USB2_PHY_SEC_BCR
] = { 0x5002c },
7426 [GCC_USB30_MP_BCR
] = { 0xab000 },
7427 [GCC_USB30_PRIM_BCR
] = { 0xf000 },
7428 [GCC_USB30_SEC_BCR
] = { 0x10000 },
7429 [GCC_USB3_DP_PHY_PRIM_BCR
] = { 0x50008 },
7430 [GCC_USB3_DP_PHY_SEC_BCR
] = { 0x50014 },
7431 [GCC_USB3_PHY_PRIM_BCR
] = { 0x50000 },
7432 [GCC_USB3_PHY_SEC_BCR
] = { 0x5000c },
7433 [GCC_USB3_UNIPHY_MP0_BCR
] = { 0x50018 },
7434 [GCC_USB3_UNIPHY_MP1_BCR
] = { 0x5001c },
7435 [GCC_USB3PHY_PHY_PRIM_BCR
] = { 0x50004 },
7436 [GCC_USB3PHY_PHY_SEC_BCR
] = { 0x50010 },
7437 [GCC_USB3UNIPHY_PHY_MP0_BCR
] = { 0x50020 },
7438 [GCC_USB3UNIPHY_PHY_MP1_BCR
] = { 0x50024 },
7439 [GCC_USB4_1_BCR
] = { 0xb8000 },
7440 [GCC_USB4_1_DP_PHY_PRIM_BCR
] = { 0xb9020 },
7441 [GCC_USB4_1_DPPHY_AUX_BCR
] = { 0xb9024 },
7442 [GCC_USB4_1_PHY_PRIM_BCR
] = { 0xb9018 },
7443 [GCC_USB4_BCR
] = { 0x2a000 },
7444 [GCC_USB4_DP_PHY_PRIM_BCR
] = { 0x4a008 },
7445 [GCC_USB4_DPPHY_AUX_BCR
] = { 0x4a00c },
7446 [GCC_USB4_PHY_PRIM_BCR
] = { 0x4a000 },
7447 [GCC_USB4PHY_1_PHY_PRIM_BCR
] = { 0xb901c },
7448 [GCC_USB4PHY_PHY_PRIM_BCR
] = { 0x4a004 },
7449 [GCC_USB_PHY_CFG_AHB2PHY_BCR
] = { 0x6a000 },
7450 [GCC_VIDEO_BCR
] = { 0x28000 },
7451 [GCC_VIDEO_AXI0_CLK_ARES
] = { .reg
= 0x28010, .bit
= 2, .udelay
= 400 },
7452 [GCC_VIDEO_AXI1_CLK_ARES
] = { .reg
= 0x28018, .bit
= 2, .udelay
= 400 },
7455 static struct gdsc
*gcc_sc8280xp_gdscs
[] = {
7456 [PCIE_0_TUNNEL_GDSC
] = &pcie_0_tunnel_gdsc
,
7457 [PCIE_1_TUNNEL_GDSC
] = &pcie_1_tunnel_gdsc
,
7458 [PCIE_2A_GDSC
] = &pcie_2a_gdsc
,
7459 [PCIE_2B_GDSC
] = &pcie_2b_gdsc
,
7460 [PCIE_3A_GDSC
] = &pcie_3a_gdsc
,
7461 [PCIE_3B_GDSC
] = &pcie_3b_gdsc
,
7462 [PCIE_4_GDSC
] = &pcie_4_gdsc
,
7463 [UFS_CARD_GDSC
] = &ufs_card_gdsc
,
7464 [UFS_PHY_GDSC
] = &ufs_phy_gdsc
,
7465 [USB30_MP_GDSC
] = &usb30_mp_gdsc
,
7466 [USB30_PRIM_GDSC
] = &usb30_prim_gdsc
,
7467 [USB30_SEC_GDSC
] = &usb30_sec_gdsc
,
7468 [EMAC_0_GDSC
] = &emac_0_gdsc
,
7469 [EMAC_1_GDSC
] = &emac_1_gdsc
,
7470 [USB4_1_GDSC
] = &usb4_1_gdsc
,
7471 [USB4_GDSC
] = &usb4_gdsc
,
7472 [HLOS1_VOTE_MMNOC_MMU_TBU_HF0_GDSC
] = &hlos1_vote_mmnoc_mmu_tbu_hf0_gdsc
,
7473 [HLOS1_VOTE_MMNOC_MMU_TBU_HF1_GDSC
] = &hlos1_vote_mmnoc_mmu_tbu_hf1_gdsc
,
7474 [HLOS1_VOTE_MMNOC_MMU_TBU_SF0_GDSC
] = &hlos1_vote_mmnoc_mmu_tbu_sf0_gdsc
,
7475 [HLOS1_VOTE_MMNOC_MMU_TBU_SF1_GDSC
] = &hlos1_vote_mmnoc_mmu_tbu_sf1_gdsc
,
7476 [HLOS1_VOTE_TURING_MMU_TBU0_GDSC
] = &hlos1_vote_turing_mmu_tbu0_gdsc
,
7477 [HLOS1_VOTE_TURING_MMU_TBU1_GDSC
] = &hlos1_vote_turing_mmu_tbu1_gdsc
,
7478 [HLOS1_VOTE_TURING_MMU_TBU2_GDSC
] = &hlos1_vote_turing_mmu_tbu2_gdsc
,
7479 [HLOS1_VOTE_TURING_MMU_TBU3_GDSC
] = &hlos1_vote_turing_mmu_tbu3_gdsc
,
7482 static const struct clk_rcg_dfs_data gcc_dfs_clocks
[] = {
7483 DEFINE_RCG_DFS(gcc_qupv3_wrap0_s0_clk_src
),
7484 DEFINE_RCG_DFS(gcc_qupv3_wrap0_s1_clk_src
),
7485 DEFINE_RCG_DFS(gcc_qupv3_wrap0_s2_clk_src
),
7486 DEFINE_RCG_DFS(gcc_qupv3_wrap0_s3_clk_src
),
7487 DEFINE_RCG_DFS(gcc_qupv3_wrap0_s4_clk_src
),
7488 DEFINE_RCG_DFS(gcc_qupv3_wrap0_s5_clk_src
),
7489 DEFINE_RCG_DFS(gcc_qupv3_wrap0_s6_clk_src
),
7490 DEFINE_RCG_DFS(gcc_qupv3_wrap0_s7_clk_src
),
7491 DEFINE_RCG_DFS(gcc_qupv3_wrap1_s0_clk_src
),
7492 DEFINE_RCG_DFS(gcc_qupv3_wrap1_s1_clk_src
),
7493 DEFINE_RCG_DFS(gcc_qupv3_wrap1_s2_clk_src
),
7494 DEFINE_RCG_DFS(gcc_qupv3_wrap1_s3_clk_src
),
7495 DEFINE_RCG_DFS(gcc_qupv3_wrap1_s4_clk_src
),
7496 DEFINE_RCG_DFS(gcc_qupv3_wrap1_s5_clk_src
),
7497 DEFINE_RCG_DFS(gcc_qupv3_wrap1_s6_clk_src
),
7498 DEFINE_RCG_DFS(gcc_qupv3_wrap1_s7_clk_src
),
7499 DEFINE_RCG_DFS(gcc_qupv3_wrap2_s0_clk_src
),
7500 DEFINE_RCG_DFS(gcc_qupv3_wrap2_s1_clk_src
),
7501 DEFINE_RCG_DFS(gcc_qupv3_wrap2_s2_clk_src
),
7502 DEFINE_RCG_DFS(gcc_qupv3_wrap2_s3_clk_src
),
7503 DEFINE_RCG_DFS(gcc_qupv3_wrap2_s4_clk_src
),
7504 DEFINE_RCG_DFS(gcc_qupv3_wrap2_s5_clk_src
),
7505 DEFINE_RCG_DFS(gcc_qupv3_wrap2_s6_clk_src
),
7506 DEFINE_RCG_DFS(gcc_qupv3_wrap2_s7_clk_src
),
7509 static const struct regmap_config gcc_sc8280xp_regmap_config
= {
7513 .max_register
= 0xc3014,
7517 static const struct qcom_cc_desc gcc_sc8280xp_desc
= {
7518 .config
= &gcc_sc8280xp_regmap_config
,
7519 .clks
= gcc_sc8280xp_clocks
,
7520 .num_clks
= ARRAY_SIZE(gcc_sc8280xp_clocks
),
7521 .resets
= gcc_sc8280xp_resets
,
7522 .num_resets
= ARRAY_SIZE(gcc_sc8280xp_resets
),
7523 .gdscs
= gcc_sc8280xp_gdscs
,
7524 .num_gdscs
= ARRAY_SIZE(gcc_sc8280xp_gdscs
),
7527 static int gcc_sc8280xp_probe(struct platform_device
*pdev
)
7529 struct regmap
*regmap
;
7532 ret
= devm_pm_runtime_enable(&pdev
->dev
);
7536 ret
= pm_runtime_resume_and_get(&pdev
->dev
);
7540 regmap
= qcom_cc_map(pdev
, &gcc_sc8280xp_desc
);
7541 if (IS_ERR(regmap
)) {
7542 ret
= PTR_ERR(regmap
);
7546 /* Keep some clocks always-on */
7547 qcom_branch_set_clk_en(regmap
, 0x26004); /* GCC_CAMERA_AHB_CLK */
7548 qcom_branch_set_clk_en(regmap
, 0x26020); /* GCC_CAMERA_XO_CLK */
7549 qcom_branch_set_clk_en(regmap
, 0x27004); /* GCC_DISP_AHB_CLK */
7550 qcom_branch_set_clk_en(regmap
, 0x27028); /* GCC_DISP_XO_CLK */
7551 qcom_branch_set_clk_en(regmap
, 0x71004); /* GCC_GPU_CFG_AHB_CLK */
7552 qcom_branch_set_clk_en(regmap
, 0x28004); /* GCC_VIDEO_AHB_CLK */
7553 qcom_branch_set_clk_en(regmap
, 0x28028); /* GCC_VIDEO_XO_CLK */
7554 qcom_branch_set_clk_en(regmap
, 0xbb004); /* GCC_DISP1_AHB_CLK */
7555 qcom_branch_set_clk_en(regmap
, 0xbb028); /* GCC_DISP1_XO_CLK */
7557 ret
= qcom_cc_register_rcg_dfs(regmap
, gcc_dfs_clocks
, ARRAY_SIZE(gcc_dfs_clocks
));
7561 ret
= qcom_cc_really_probe(&pdev
->dev
, &gcc_sc8280xp_desc
, regmap
);
7565 pm_runtime_put(&pdev
->dev
);
7570 pm_runtime_put_sync(&pdev
->dev
);
7575 static const struct of_device_id gcc_sc8280xp_match_table
[] = {
7576 { .compatible
= "qcom,gcc-sc8280xp" },
7579 MODULE_DEVICE_TABLE(of
, gcc_sc8280xp_match_table
);
7581 static struct platform_driver gcc_sc8280xp_driver
= {
7582 .probe
= gcc_sc8280xp_probe
,
7584 .name
= "gcc-sc8280xp",
7585 .of_match_table
= gcc_sc8280xp_match_table
,
7589 static int __init
gcc_sc8280xp_init(void)
7591 return platform_driver_register(&gcc_sc8280xp_driver
);
7593 subsys_initcall(gcc_sc8280xp_init
);
7595 static void __exit
gcc_sc8280xp_exit(void)
7597 platform_driver_unregister(&gcc_sc8280xp_driver
);
7599 module_exit(gcc_sc8280xp_exit
);
7601 MODULE_DESCRIPTION("Qualcomm SC8280XP GCC driver");
7602 MODULE_LICENSE("GPL");