1 // SPDX-License-Identifier: GPL-2.0-only
2 /*
3 * Copyright (c) 2021, The Linux Foundation. All rights reserved.
4 * Copyright (c) 2022, Linaro Ltd.
5 */
6
7 #include <linux/clk-provider.h>
8 #include <linux/err.h>
9 #include <linux/kernel.h>
10 #include <linux/module.h>
11 #include <linux/pm_runtime.h>
12 #include <linux/of.h>
13 #include <linux/platform_device.h>
14 #include <linux/regmap.h>
15
16 #include <dt-bindings/clock/qcom,gcc-sc8280xp.h>
17
18 #include "clk-alpha-pll.h"
19 #include "clk-branch.h"
20 #include "clk-rcg.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"
25 #include "common.h"
26 #include "gdsc.h"
27 #include "reset.h"
28
29 /* Need to match the order of clocks in DT binding */
30 enum {
31 DT_BI_TCXO,
32 DT_SLEEP_CLK,
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,
57 DT_PCIE_2A_PIPE_CLK,
58 DT_PCIE_2B_PIPE_CLK,
59 DT_PCIE_3A_PIPE_CLK,
60 DT_PCIE_3B_PIPE_CLK,
61 DT_PCIE_4_PIPE_CLK,
62 DT_RXC0_REF_CLK,
63 DT_RXC1_REF_CLK,
64 };
65
66 enum {
67 P_BI_TCXO,
68 P_GCC_GPLL0_OUT_EVEN,
69 P_GCC_GPLL0_OUT_MAIN,
70 P_GCC_GPLL2_OUT_MAIN,
71 P_GCC_GPLL4_OUT_MAIN,
72 P_GCC_GPLL7_OUT_MAIN,
73 P_GCC_GPLL8_OUT_MAIN,
74 P_GCC_GPLL9_OUT_MAIN,
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,
91 P_RXC0_REF_CLK,
92 P_RXC1_REF_CLK,
93 P_SLEEP_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,
108 };
109
110 static const struct clk_parent_data gcc_parent_data_tcxo = { .index = DT_BI_TCXO };
111
112 static struct clk_alpha_pll gcc_gpll0 = {
113 .offset = 0x0,
114 .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID],
115 .clkr = {
116 .enable_reg = 0x52028,
117 .enable_mask = BIT(0),
118 .hw.init = &(const struct clk_init_data) {
119 .name = "gcc_gpll0",
120 .parent_data = &gcc_parent_data_tcxo,
121 .num_parents = 1,
122 .ops = &clk_alpha_pll_fixed_lucid_5lpe_ops,
123 },
124 },
125 };
126
127 static const struct clk_div_table post_div_table_gcc_gpll0_out_even[] = {
128 { 0x1, 2 },
129 { }
130 };
131
132 static struct clk_alpha_pll_postdiv gcc_gpll0_out_even = {
133 .offset = 0x0,
134 .post_div_shift = 8,
135 .post_div_table = post_div_table_gcc_gpll0_out_even,
136 .num_post_div = ARRAY_SIZE(post_div_table_gcc_gpll0_out_even),
137 .width = 4,
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*[]){
142 &gcc_gpll0.clkr.hw,
143 },
144 .num_parents = 1,
145 .ops = &clk_alpha_pll_postdiv_lucid_5lpe_ops,
146 },
147 };
148
149 static struct clk_alpha_pll gcc_gpll2 = {
150 .offset = 0x2000,
151 .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID],
152 .clkr = {
153 .enable_reg = 0x52028,
154 .enable_mask = BIT(2),
155 .hw.init = &(const struct clk_init_data) {
156 .name = "gcc_gpll2",
157 .parent_data = &gcc_parent_data_tcxo,
158 .num_parents = 1,
159 .ops = &clk_alpha_pll_fixed_lucid_5lpe_ops,
160 },
161 },
162 };
163
164 static struct clk_alpha_pll gcc_gpll4 = {
165 .offset = 0x76000,
166 .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID],
167 .clkr = {
168 .enable_reg = 0x52028,
169 .enable_mask = BIT(4),
170 .hw.init = &(const struct clk_init_data) {
171 .name = "gcc_gpll4",
172 .parent_data = &gcc_parent_data_tcxo,
173 .num_parents = 1,
174 .ops = &clk_alpha_pll_fixed_lucid_5lpe_ops,
175 },
176 },
177 };
178
179 static struct clk_alpha_pll gcc_gpll7 = {
180 .offset = 0x1a000,
181 .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID],
182 .clkr = {
183 .enable_reg = 0x52028,
184 .enable_mask = BIT(7),
185 .hw.init = &(const struct clk_init_data) {
186 .name = "gcc_gpll7",
187 .parent_data = &gcc_parent_data_tcxo,
188 .num_parents = 1,
189 .ops = &clk_alpha_pll_fixed_lucid_5lpe_ops,
190 },
191 },
192 };
193
194 static struct clk_alpha_pll gcc_gpll8 = {
195 .offset = 0x1b000,
196 .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID],
197 .clkr = {
198 .enable_reg = 0x52028,
199 .enable_mask = BIT(8),
200 .hw.init = &(const struct clk_init_data) {
201 .name = "gcc_gpll8",
202 .parent_data = &gcc_parent_data_tcxo,
203 .num_parents = 1,
204 .ops = &clk_alpha_pll_fixed_lucid_5lpe_ops,
205 },
206 },
207 };
208
209 static struct clk_alpha_pll gcc_gpll9 = {
210 .offset = 0x1c000,
211 .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID],
212 .clkr = {
213 .enable_reg = 0x52028,
214 .enable_mask = BIT(9),
215 .hw.init = &(const struct clk_init_data) {
216 .name = "gcc_gpll9",
217 .parent_data = &gcc_parent_data_tcxo,
218 .num_parents = 1,
219 .ops = &clk_alpha_pll_fixed_lucid_5lpe_ops,
220 },
221 },
222 };
223
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;
226
227 static const struct parent_map gcc_parent_map_0[] = {
228 { P_BI_TCXO, 0 },
229 { P_GCC_GPLL0_OUT_MAIN, 1 },
230 { P_GCC_GPLL0_OUT_EVEN, 6 },
231 };
232
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 },
237 };
238
239 static const struct parent_map gcc_parent_map_1[] = {
240 { P_BI_TCXO, 0 },
241 { P_SLEEP_CLK, 5 },
242 };
243
244 static const struct clk_parent_data gcc_parent_data_1[] = {
245 { .index = DT_BI_TCXO },
246 { .index = DT_SLEEP_CLK },
247 };
248
249 static const struct parent_map gcc_parent_map_2[] = {
250 { P_BI_TCXO, 0 },
251 { P_GCC_GPLL0_OUT_MAIN, 1 },
252 { P_SLEEP_CLK, 5 },
253 { P_GCC_GPLL0_OUT_EVEN, 6 },
254 };
255
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 },
261 };
262
263 static const struct parent_map gcc_parent_map_3[] = {
264 { P_BI_TCXO, 0 },
265 };
266
267 static const struct clk_parent_data gcc_parent_data_3[] = {
268 { .index = DT_BI_TCXO },
269 };
270
271 static const struct parent_map gcc_parent_map_4[] = {
272 { P_BI_TCXO, 0 },
273 { P_GCC_GPLL7_OUT_MAIN, 2 },
274 { P_GCC_GPLL4_OUT_MAIN, 5 },
275 { P_GCC_GPLL0_OUT_EVEN, 6 },
276 };
277
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 },
283 };
284
285 static const struct parent_map gcc_parent_map_5[] = {
286 { P_BI_TCXO, 0 },
287 { P_GCC_GPLL0_OUT_MAIN, 1 },
288 { P_GCC_GPLL8_OUT_MAIN, 2 },
289 { P_GCC_GPLL0_OUT_EVEN, 6 },
290 };
291
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 },
297 };
298
299 static const struct parent_map gcc_parent_map_6[] = {
300 { P_BI_TCXO, 0 },
301 { P_GCC_GPLL0_OUT_MAIN, 1 },
302 { P_GCC_GPLL7_OUT_MAIN, 2 },
303 };
304
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 },
309 };
310
311 static const struct parent_map gcc_parent_map_7[] = {
312 { P_BI_TCXO, 0 },
313 { P_GCC_GPLL0_OUT_MAIN, 1 },
314 { P_GCC_GPLL2_OUT_MAIN, 2 },
315 };
316
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 },
321 };
322
323 static const struct parent_map gcc_parent_map_8[] = {
324 { P_BI_TCXO, 0 },
325 { P_GCC_GPLL7_OUT_MAIN, 2 },
326 { P_RXC0_REF_CLK, 3 },
327 { P_GCC_GPLL0_OUT_EVEN, 6 },
328 };
329
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 },
335 };
336
337 static const struct parent_map gcc_parent_map_9[] = {
338 { P_BI_TCXO, 0 },
339 { P_GCC_GPLL7_OUT_MAIN, 2 },
340 { P_RXC1_REF_CLK, 3 },
341 { P_GCC_GPLL0_OUT_EVEN, 6 },
342 };
343
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 },
349 };
350
351 static const struct parent_map gcc_parent_map_15[] = {
352 { P_BI_TCXO, 0 },
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 },
357 };
358
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 },
365 };
366
367 static const struct parent_map gcc_parent_map_16[] = {
368 { P_UFS_CARD_RX_SYMBOL_0_CLK, 0 },
369 { P_BI_TCXO, 2 },
370 };
371
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 },
375 };
376
377 static const struct parent_map gcc_parent_map_17[] = {
378 { P_UFS_CARD_RX_SYMBOL_1_CLK, 0 },
379 { P_BI_TCXO, 2 },
380 };
381
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 },
385 };
386
387 static const struct parent_map gcc_parent_map_18[] = {
388 { P_UFS_CARD_TX_SYMBOL_0_CLK, 0 },
389 { P_BI_TCXO, 2 },
390 };
391
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 },
395 };
396
397 static const struct parent_map gcc_parent_map_19[] = {
398 { P_UFS_PHY_RX_SYMBOL_0_CLK, 0 },
399 { P_BI_TCXO, 2 },
400 };
401
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 },
405 };
406
407 static const struct parent_map gcc_parent_map_20[] = {
408 { P_UFS_PHY_RX_SYMBOL_1_CLK, 0 },
409 { P_BI_TCXO, 2 },
410 };
411
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 },
415 };
416
417 static const struct parent_map gcc_parent_map_21[] = {
418 { P_UFS_PHY_TX_SYMBOL_0_CLK, 0 },
419 { P_BI_TCXO, 2 },
420 };
421
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 },
425 };
426
427 static const struct parent_map gcc_parent_map_22[] = {
428 { P_USB3_PHY_WRAPPER_GCC_USB30_PIPE_CLK, 0 },
429 { P_BI_TCXO, 2 },
430 };
431
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 },
435 };
436
437 static const struct parent_map gcc_parent_map_23[] = {
438 { P_USB3_UNI_PHY_SEC_GCC_USB30_PIPE_CLK, 0 },
439 { P_BI_TCXO, 2 },
440 };
441
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 },
445 };
446
447 static struct clk_regmap_mux gcc_usb3_prim_phy_pipe_clk_src = {
448 .reg = 0xf060,
449 .shift = 0,
450 .width = 2,
451 .parent_map = gcc_parent_map_22,
452 .clkr = {
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,
458 },
459 },
460 };
461
462 static struct clk_regmap_mux gcc_usb3_sec_phy_pipe_clk_src = {
463 .reg = 0x10060,
464 .shift = 0,
465 .width = 2,
466 .parent_map = gcc_parent_map_23,
467 .clkr = {
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,
473 },
474 },
475 };
476
477 static const struct parent_map gcc_parent_map_24[] = {
478 { P_USB3_UNI_PHY_MP_GCC_USB30_PIPE_0_CLK, 0 },
479 { P_BI_TCXO, 2 },
480 };
481
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 },
485 };
486
487 static const struct parent_map gcc_parent_map_25[] = {
488 { P_USB3_UNI_PHY_MP_GCC_USB30_PIPE_1_CLK, 0 },
489 { P_BI_TCXO, 2 },
490 };
491
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 },
495 };
496
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 },
501 };
502
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 },
507 };
508
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 },
513 };
514
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 },
519 };
520
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 },
524 };
525
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 },
529 };
530
531 static const struct parent_map gcc_parent_map_29[] = {
532 { P_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK, 0 },
533 { P_BI_TCXO, 2 },
534 };
535
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 },
539 };
540
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 },
544 };
545
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 },
549 };
550
551 static struct clk_regmap_mux gcc_usb4_1_phy_pcie_pipegmux_clk_src = {
552 .reg = 0xb80dc,
553 .shift = 0,
554 .width = 1,
555 .parent_map = gcc_parent_map_30,
556 .clkr = {
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,
562 },
563 },
564 };
565
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 },
569 };
570
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 },
574 };
575
576 static const struct parent_map gcc_parent_map_32[] = {
577 { P_QUSB4PHY_1_GCC_USB4_RX0_CLK, 0 },
578 { P_BI_TCXO, 2 },
579 };
580
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 },
584 };
585
586 static const struct parent_map gcc_parent_map_33[] = {
587 { P_QUSB4PHY_1_GCC_USB4_RX1_CLK, 0 },
588 { P_BI_TCXO, 2 },
589 };
590
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 },
594 };
595
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 },
599 };
600
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 },
604 };
605
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 },
609 };
610
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 },
614 };
615
616 static const struct parent_map gcc_parent_map_36[] = {
617 { P_USB4_PHY_GCC_USB4_PCIE_PIPE_CLK, 0 },
618 { P_BI_TCXO, 2 },
619 };
620
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 },
624 };
625
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 },
629 };
630
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 },
634 };
635
636 static struct clk_regmap_mux gcc_usb4_phy_pcie_pipegmux_clk_src = {
637 .reg = 0x2a0dc,
638 .shift = 0,
639 .width = 1,
640 .parent_map = gcc_parent_map_37,
641 .clkr = {
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,
647 },
648 },
649 };
650
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 },
654 };
655
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 },
659 };
660
661 static const struct parent_map gcc_parent_map_39[] = {
662 { P_QUSB4PHY_GCC_USB4_RX0_CLK, 0 },
663 { P_BI_TCXO, 2 },
664 };
665
666 static const struct clk_parent_data gcc_parent_data_39[] = {
667 { .index = DT_QUSB4PHY_GCC_USB4_RX0_CLK },
668 { .index = DT_BI_TCXO },
669 };
670
671 static const struct parent_map gcc_parent_map_40[] = {
672 { P_QUSB4PHY_GCC_USB4_RX1_CLK, 0 },
673 { P_BI_TCXO, 2 },
674 };
675
676 static const struct clk_parent_data gcc_parent_data_40[] = {
677 { .index = DT_QUSB4PHY_GCC_USB4_RX1_CLK },
678 { .index = DT_BI_TCXO },
679 };
680
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 },
684 };
685
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 },
689 };
690
691 static struct clk_regmap_phy_mux gcc_pcie_2a_pipe_clk_src = {
692 .reg = 0x9d05c,
693 .clkr = {
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,
698 },
699 .num_parents = 1,
700 .ops = &clk_regmap_phy_mux_ops,
701 },
702 },
703 };
704
705 static struct clk_regmap_phy_mux gcc_pcie_2b_pipe_clk_src = {
706 .reg = 0x9e05c,
707 .clkr = {
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,
712 },
713 .num_parents = 1,
714 .ops = &clk_regmap_phy_mux_ops,
715 },
716 },
717 };
718
719 static struct clk_regmap_phy_mux gcc_pcie_3a_pipe_clk_src = {
720 .reg = 0xa005c,
721 .clkr = {
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,
726 },
727 .num_parents = 1,
728 .ops = &clk_regmap_phy_mux_ops,
729 },
730 },
731 };
732
733 static struct clk_regmap_phy_mux gcc_pcie_3b_pipe_clk_src = {
734 .reg = 0xa205c,
735 .clkr = {
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,
740 },
741 .num_parents = 1,
742 .ops = &clk_regmap_phy_mux_ops,
743 },
744 },
745 };
746
747 static struct clk_regmap_phy_mux gcc_pcie_4_pipe_clk_src = {
748 .reg = 0x6b05c,
749 .clkr = {
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,
754 },
755 .num_parents = 1,
756 .ops = &clk_regmap_phy_mux_ops,
757 },
758 },
759 };
760
761 static struct clk_regmap_mux gcc_ufs_card_rx_symbol_0_clk_src = {
762 .reg = 0x75058,
763 .shift = 0,
764 .width = 2,
765 .parent_map = gcc_parent_map_16,
766 .clkr = {
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,
772 },
773 },
774 };
775
776 static struct clk_regmap_mux gcc_ufs_card_rx_symbol_1_clk_src = {
777 .reg = 0x750c8,
778 .shift = 0,
779 .width = 2,
780 .parent_map = gcc_parent_map_17,
781 .clkr = {
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,
787 },
788 },
789 };
790
791 static struct clk_regmap_mux gcc_ufs_card_tx_symbol_0_clk_src = {
792 .reg = 0x75048,
793 .shift = 0,
794 .width = 2,
795 .parent_map = gcc_parent_map_18,
796 .clkr = {
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,
802 },
803 },
804 };
805
806 static struct clk_regmap_mux gcc_ufs_phy_rx_symbol_0_clk_src = {
807 .reg = 0x77058,
808 .shift = 0,
809 .width = 2,
810 .parent_map = gcc_parent_map_19,
811 .clkr = {
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,
817 },
818 },
819 };
820
821 static struct clk_regmap_mux gcc_ufs_phy_rx_symbol_1_clk_src = {
822 .reg = 0x770c8,
823 .shift = 0,
824 .width = 2,
825 .parent_map = gcc_parent_map_20,
826 .clkr = {
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,
832 },
833 },
834 };
835
836 static struct clk_regmap_mux gcc_ufs_phy_tx_symbol_0_clk_src = {
837 .reg = 0x77048,
838 .shift = 0,
839 .width = 2,
840 .parent_map = gcc_parent_map_21,
841 .clkr = {
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,
847 },
848 },
849 };
850
851 static struct clk_regmap_mux gcc_usb34_prim_phy_pipe_clk_src = {
852 .reg = 0xf064,
853 .shift = 0,
854 .width = 2,
855 .parent_map = gcc_parent_map_26,
856 .clkr = {
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,
862 },
863 },
864 };
865
866 static struct clk_regmap_mux gcc_usb34_sec_phy_pipe_clk_src = {
867 .reg = 0x10064,
868 .shift = 0,
869 .width = 2,
870 .parent_map = gcc_parent_map_27,
871 .clkr = {
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,
877 },
878 },
879 };
880
881 static struct clk_regmap_mux gcc_usb3_mp_phy_pipe_0_clk_src = {
882 .reg = 0xab060,
883 .shift = 0,
884 .width = 2,
885 .parent_map = gcc_parent_map_24,
886 .clkr = {
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,
892 },
893 },
894 };
895
896 static struct clk_regmap_mux gcc_usb3_mp_phy_pipe_1_clk_src = {
897 .reg = 0xab068,
898 .shift = 0,
899 .width = 2,
900 .parent_map = gcc_parent_map_25,
901 .clkr = {
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,
907 },
908 },
909 };
910
911 static struct clk_regmap_mux gcc_usb4_1_phy_dp_clk_src = {
912 .reg = 0xb8050,
913 .shift = 0,
914 .width = 2,
915 .parent_map = gcc_parent_map_28,
916 .clkr = {
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,
922 },
923 },
924 };
925
926 static struct clk_regmap_mux gcc_usb4_1_phy_p2rr2p_pipe_clk_src = {
927 .reg = 0xb80b0,
928 .shift = 0,
929 .width = 2,
930 .parent_map = gcc_parent_map_29,
931 .clkr = {
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,
937 },
938 },
939 };
940
941 static struct clk_regmap_mux gcc_usb4_1_phy_pcie_pipe_mux_clk_src = {
942 .reg = 0xb80e0,
943 .shift = 0,
944 .width = 2,
945 .parent_map = gcc_parent_map_31,
946 .clkr = {
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,
952 },
953 },
954 };
955
956 static struct clk_regmap_mux gcc_usb4_1_phy_rx0_clk_src = {
957 .reg = 0xb8090,
958 .shift = 0,
959 .width = 2,
960 .parent_map = gcc_parent_map_32,
961 .clkr = {
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,
967 },
968 },
969 };
970
971 static struct clk_regmap_mux gcc_usb4_1_phy_rx1_clk_src = {
972 .reg = 0xb809c,
973 .shift = 0,
974 .width = 2,
975 .parent_map = gcc_parent_map_33,
976 .clkr = {
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,
982 },
983 },
984 };
985
986 static struct clk_regmap_mux gcc_usb4_1_phy_sys_clk_src = {
987 .reg = 0xb80c0,
988 .shift = 0,
989 .width = 2,
990 .parent_map = gcc_parent_map_34,
991 .clkr = {
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,
997 },
998 },
999 };
1000
1001 static struct clk_regmap_mux gcc_usb4_phy_dp_clk_src = {
1002 .reg = 0x2a050,
1003 .shift = 0,
1004 .width = 2,
1005 .parent_map = gcc_parent_map_35,
1006 .clkr = {
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,
1012 },
1013 },
1014 };
1015
1016 static struct clk_regmap_mux gcc_usb4_phy_p2rr2p_pipe_clk_src = {
1017 .reg = 0x2a0b0,
1018 .shift = 0,
1019 .width = 2,
1020 .parent_map = gcc_parent_map_36,
1021 .clkr = {
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,
1027 },
1028 },
1029 };
1030
1031 static struct clk_regmap_mux gcc_usb4_phy_pcie_pipe_mux_clk_src = {
1032 .reg = 0x2a0e0,
1033 .shift = 0,
1034 .width = 2,
1035 .parent_map = gcc_parent_map_38,
1036 .clkr = {
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,
1042 },
1043 },
1044 };
1045
1046 static struct clk_regmap_mux gcc_usb4_phy_rx0_clk_src = {
1047 .reg = 0x2a090,
1048 .shift = 0,
1049 .width = 2,
1050 .parent_map = gcc_parent_map_39,
1051 .clkr = {
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,
1057 },
1058 },
1059 };
1060
1061 static struct clk_regmap_mux gcc_usb4_phy_rx1_clk_src = {
1062 .reg = 0x2a09c,
1063 .shift = 0,
1064 .width = 2,
1065 .parent_map = gcc_parent_map_40,
1066 .clkr = {
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,
1072 },
1073 },
1074 };
1075
1076 static struct clk_regmap_mux gcc_usb4_phy_sys_clk_src = {
1077 .reg = 0x2a0c0,
1078 .shift = 0,
1079 .width = 2,
1080 .parent_map = gcc_parent_map_41,
1081 .clkr = {
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,
1087 },
1088 },
1089 };
1090
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),
1095 { }
1096 };
1097
1098 static struct clk_rcg2 gcc_emac0_ptp_clk_src = {
1099 .cmd_rcgr = 0xaa020,
1100 .mnd_width = 0,
1101 .hid_width = 5,
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,
1109 },
1110 };
1111
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),
1116 { }
1117 };
1118
1119 static struct clk_rcg2 gcc_emac0_rgmii_clk_src = {
1120 .cmd_rcgr = 0xaa040,
1121 .mnd_width = 8,
1122 .hid_width = 5,
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,
1130 },
1131 };
1132
1133 static struct clk_rcg2 gcc_emac1_ptp_clk_src = {
1134 .cmd_rcgr = 0xba020,
1135 .mnd_width = 0,
1136 .hid_width = 5,
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,
1144 },
1145 };
1146
1147 static struct clk_rcg2 gcc_emac1_rgmii_clk_src = {
1148 .cmd_rcgr = 0xba040,
1149 .mnd_width = 8,
1150 .hid_width = 5,
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,
1158 },
1159 };
1160
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),
1165 { }
1166 };
1167
1168 static struct clk_rcg2 gcc_gp1_clk_src = {
1169 .cmd_rcgr = 0x64004,
1170 .mnd_width = 16,
1171 .hid_width = 5,
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,
1179 },
1180 };
1181
1182 static struct clk_rcg2 gcc_gp2_clk_src = {
1183 .cmd_rcgr = 0x65004,
1184 .mnd_width = 16,
1185 .hid_width = 5,
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,
1193 },
1194 };
1195
1196 static struct clk_rcg2 gcc_gp3_clk_src = {
1197 .cmd_rcgr = 0x66004,
1198 .mnd_width = 16,
1199 .hid_width = 5,
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,
1207 },
1208 };
1209
1210 static struct clk_rcg2 gcc_gp4_clk_src = {
1211 .cmd_rcgr = 0xc2004,
1212 .mnd_width = 16,
1213 .hid_width = 5,
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,
1221 },
1222 };
1223
1224 static struct clk_rcg2 gcc_gp5_clk_src = {
1225 .cmd_rcgr = 0xc3004,
1226 .mnd_width = 16,
1227 .hid_width = 5,
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,
1235 },
1236 };
1237
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),
1241 { }
1242 };
1243
1244 static struct clk_rcg2 gcc_pcie_0_aux_clk_src = {
1245 .cmd_rcgr = 0xa4054,
1246 .mnd_width = 16,
1247 .hid_width = 5,
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,
1255 },
1256 };
1257
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),
1260 { }
1261 };
1262
1263 static struct clk_rcg2 gcc_pcie_0_phy_rchng_clk_src = {
1264 .cmd_rcgr = 0xa403c,
1265 .mnd_width = 0,
1266 .hid_width = 5,
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,
1274 },
1275 };
1276
1277 static const struct freq_tbl ftbl_gcc_pcie_1_aux_clk_src[] = {
1278 F(19200000, P_BI_TCXO, 1, 0, 0),
1279 { }
1280 };
1281
1282 static struct clk_rcg2 gcc_pcie_1_aux_clk_src = {
1283 .cmd_rcgr = 0x8d054,
1284 .mnd_width = 16,
1285 .hid_width = 5,
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,
1293 },
1294 };
1295
1296 static struct clk_rcg2 gcc_pcie_1_phy_rchng_clk_src = {
1297 .cmd_rcgr = 0x8d03c,
1298 .mnd_width = 0,
1299 .hid_width = 5,
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,
1307 },
1308 };
1309
1310 static struct clk_rcg2 gcc_pcie_2a_aux_clk_src = {
1311 .cmd_rcgr = 0x9d064,
1312 .mnd_width = 16,
1313 .hid_width = 5,
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,
1321 },
1322 };
1323
1324 static struct clk_rcg2 gcc_pcie_2a_phy_rchng_clk_src = {
1325 .cmd_rcgr = 0x9d044,
1326 .mnd_width = 0,
1327 .hid_width = 5,
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,
1335 },
1336 };
1337
1338 static struct clk_rcg2 gcc_pcie_2b_aux_clk_src = {
1339 .cmd_rcgr = 0x9e064,
1340 .mnd_width = 16,
1341 .hid_width = 5,
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,
1349 },
1350 };
1351
1352 static struct clk_rcg2 gcc_pcie_2b_phy_rchng_clk_src = {
1353 .cmd_rcgr = 0x9e044,
1354 .mnd_width = 0,
1355 .hid_width = 5,
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,
1363 },
1364 };
1365
1366 static struct clk_rcg2 gcc_pcie_3a_aux_clk_src = {
1367 .cmd_rcgr = 0xa0064,
1368 .mnd_width = 16,
1369 .hid_width = 5,
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,
1377 },
1378 };
1379
1380 static struct clk_rcg2 gcc_pcie_3a_phy_rchng_clk_src = {
1381 .cmd_rcgr = 0xa0044,
1382 .mnd_width = 0,
1383 .hid_width = 5,
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,
1391 },
1392 };
1393
1394 static struct clk_rcg2 gcc_pcie_3b_aux_clk_src = {
1395 .cmd_rcgr = 0xa2064,
1396 .mnd_width = 16,
1397 .hid_width = 5,
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,
1405 },
1406 };
1407
1408 static struct clk_rcg2 gcc_pcie_3b_phy_rchng_clk_src = {
1409 .cmd_rcgr = 0xa2044,
1410 .mnd_width = 0,
1411 .hid_width = 5,
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,
1419 },
1420 };
1421
1422 static struct clk_rcg2 gcc_pcie_4_aux_clk_src = {
1423 .cmd_rcgr = 0x6b064,
1424 .mnd_width = 16,
1425 .hid_width = 5,
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,
1433 },
1434 };
1435
1436 static struct clk_rcg2 gcc_pcie_4_phy_rchng_clk_src = {
1437 .cmd_rcgr = 0x6b044,
1438 .mnd_width = 0,
1439 .hid_width = 5,
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,
1447 },
1448 };
1449
1450 static struct clk_rcg2 gcc_pcie_rscc_xo_clk_src = {
1451 .cmd_rcgr = 0xae00c,
1452 .mnd_width = 0,
1453 .hid_width = 5,
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,
1461 },
1462 };
1463
1464 static const struct freq_tbl ftbl_gcc_pdm2_clk_src[] = {
1465 F(60000000, P_GCC_GPLL0_OUT_EVEN, 5, 0, 0),
1466 { }
1467 };
1468
1469 static struct clk_rcg2 gcc_pdm2_clk_src = {
1470 .cmd_rcgr = 0x33010,
1471 .mnd_width = 0,
1472 .hid_width = 5,
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,
1480 },
1481 };
1482
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),
1495 { }
1496 };
1497
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,
1504 };
1505
1506 static struct clk_rcg2 gcc_qupv3_wrap0_s0_clk_src = {
1507 .cmd_rcgr = 0x17148,
1508 .mnd_width = 16,
1509 .hid_width = 5,
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,
1513 };
1514
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,
1521 };
1522
1523 static struct clk_rcg2 gcc_qupv3_wrap0_s1_clk_src = {
1524 .cmd_rcgr = 0x17278,
1525 .mnd_width = 16,
1526 .hid_width = 5,
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,
1530 };
1531
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,
1538 };
1539
1540 static struct clk_rcg2 gcc_qupv3_wrap0_s2_clk_src = {
1541 .cmd_rcgr = 0x173a8,
1542 .mnd_width = 16,
1543 .hid_width = 5,
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,
1547 };
1548
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,
1555 };
1556
1557 static struct clk_rcg2 gcc_qupv3_wrap0_s3_clk_src = {
1558 .cmd_rcgr = 0x174d8,
1559 .mnd_width = 16,
1560 .hid_width = 5,
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,
1564 };
1565
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,
1572 };
1573
1574 static struct clk_rcg2 gcc_qupv3_wrap0_s4_clk_src = {
1575 .cmd_rcgr = 0x17608,
1576 .mnd_width = 16,
1577 .hid_width = 5,
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,
1581 };
1582
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,
1589 };
1590
1591 static struct clk_rcg2 gcc_qupv3_wrap0_s5_clk_src = {
1592 .cmd_rcgr = 0x17738,
1593 .mnd_width = 16,
1594 .hid_width = 5,
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,
1598 };
1599
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),
1612 { }
1613 };
1614
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,
1621 };
1622
1623 static struct clk_rcg2 gcc_qupv3_wrap0_s6_clk_src = {
1624 .cmd_rcgr = 0x17868,
1625 .mnd_width = 16,
1626 .hid_width = 5,
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,
1630 };
1631
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,
1638 };
1639
1640 static struct clk_rcg2 gcc_qupv3_wrap0_s7_clk_src = {
1641 .cmd_rcgr = 0x17998,
1642 .mnd_width = 16,
1643 .hid_width = 5,
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,
1647 };
1648
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,
1655 };
1656
1657 static struct clk_rcg2 gcc_qupv3_wrap1_s0_clk_src = {
1658 .cmd_rcgr = 0x18148,
1659 .mnd_width = 16,
1660 .hid_width = 5,
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,
1664 };
1665
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,
1672 };
1673
1674 static struct clk_rcg2 gcc_qupv3_wrap1_s1_clk_src = {
1675 .cmd_rcgr = 0x18278,
1676 .mnd_width = 16,
1677 .hid_width = 5,
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,
1681 };
1682
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,
1689 };
1690
1691 static struct clk_rcg2 gcc_qupv3_wrap1_s2_clk_src = {
1692 .cmd_rcgr = 0x183a8,
1693 .mnd_width = 16,
1694 .hid_width = 5,
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,
1698 };
1699
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,
1706 };
1707
1708 static struct clk_rcg2 gcc_qupv3_wrap1_s3_clk_src = {
1709 .cmd_rcgr = 0x184d8,
1710 .mnd_width = 16,
1711 .hid_width = 5,
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,
1715 };
1716
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,
1723 };
1724
1725 static struct clk_rcg2 gcc_qupv3_wrap1_s4_clk_src = {
1726 .cmd_rcgr = 0x18608,
1727 .mnd_width = 16,
1728 .hid_width = 5,
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,
1732 };
1733
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,
1740 };
1741
1742 static struct clk_rcg2 gcc_qupv3_wrap1_s5_clk_src = {
1743 .cmd_rcgr = 0x18738,
1744 .mnd_width = 16,
1745 .hid_width = 5,
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,
1749 };
1750
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,
1757 };
1758
1759 static struct clk_rcg2 gcc_qupv3_wrap1_s6_clk_src = {
1760 .cmd_rcgr = 0x18868,
1761 .mnd_width = 16,
1762 .hid_width = 5,
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,
1766 };
1767
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,
1774 };
1775
1776 static struct clk_rcg2 gcc_qupv3_wrap1_s7_clk_src = {
1777 .cmd_rcgr = 0x18998,
1778 .mnd_width = 16,
1779 .hid_width = 5,
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,
1783 };
1784
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,
1791 };
1792
1793 static struct clk_rcg2 gcc_qupv3_wrap2_s0_clk_src = {
1794 .cmd_rcgr = 0x1e148,
1795 .mnd_width = 16,
1796 .hid_width = 5,
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,
1800 };
1801
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,
1808 };
1809
1810 static struct clk_rcg2 gcc_qupv3_wrap2_s1_clk_src = {
1811 .cmd_rcgr = 0x1e278,
1812 .mnd_width = 16,
1813 .hid_width = 5,
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,
1817 };
1818
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,
1825 };
1826
1827 static struct clk_rcg2 gcc_qupv3_wrap2_s2_clk_src = {
1828 .cmd_rcgr = 0x1e3a8,
1829 .mnd_width = 16,
1830 .hid_width = 5,
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,
1834 };
1835
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,
1842 };
1843
1844 static struct clk_rcg2 gcc_qupv3_wrap2_s3_clk_src = {
1845 .cmd_rcgr = 0x1e4d8,
1846 .mnd_width = 16,
1847 .hid_width = 5,
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,
1851 };
1852
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,
1859 };
1860
1861 static struct clk_rcg2 gcc_qupv3_wrap2_s4_clk_src = {
1862 .cmd_rcgr = 0x1e608,
1863 .mnd_width = 16,
1864 .hid_width = 5,
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,
1868 };
1869
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,
1876 };
1877
1878 static struct clk_rcg2 gcc_qupv3_wrap2_s5_clk_src = {
1879 .cmd_rcgr = 0x1e738,
1880 .mnd_width = 16,
1881 .hid_width = 5,
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,
1885 };
1886
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,
1893 };
1894
1895 static struct clk_rcg2 gcc_qupv3_wrap2_s6_clk_src = {
1896 .cmd_rcgr = 0x1e868,
1897 .mnd_width = 16,
1898 .hid_width = 5,
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,
1902 };
1903
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,
1910 };
1911
1912 static struct clk_rcg2 gcc_qupv3_wrap2_s7_clk_src = {
1913 .cmd_rcgr = 0x1e998,
1914 .mnd_width = 16,
1915 .hid_width = 5,
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,
1919 };
1920
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),
1927 { }
1928 };
1929
1930 static struct clk_rcg2 gcc_sdcc2_apps_clk_src = {
1931 .cmd_rcgr = 0x1400c,
1932 .mnd_width = 8,
1933 .hid_width = 5,
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,
1941 },
1942 };
1943
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),
1948 { }
1949 };
1950
1951 static struct clk_rcg2 gcc_sdcc4_apps_clk_src = {
1952 .cmd_rcgr = 0x1600c,
1953 .mnd_width = 8,
1954 .hid_width = 5,
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,
1962 },
1963 };
1964
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),
1970 { }
1971 };
1972
1973 static struct clk_rcg2 gcc_ufs_card_axi_clk_src = {
1974 .cmd_rcgr = 0x75024,
1975 .mnd_width = 8,
1976 .hid_width = 5,
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,
1984 },
1985 };
1986
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),
1991 { }
1992 };
1993
1994 static struct clk_rcg2 gcc_ufs_card_ice_core_clk_src = {
1995 .cmd_rcgr = 0x7506c,
1996 .mnd_width = 0,
1997 .hid_width = 5,
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,
2005 },
2006 };
2007
2008 static struct clk_rcg2 gcc_ufs_card_phy_aux_clk_src = {
2009 .cmd_rcgr = 0x750a0,
2010 .mnd_width = 0,
2011 .hid_width = 5,
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,
2019 },
2020 };
2021
2022 static struct clk_rcg2 gcc_ufs_card_unipro_core_clk_src = {
2023 .cmd_rcgr = 0x75084,
2024 .mnd_width = 0,
2025 .hid_width = 5,
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,
2033 },
2034 };
2035
2036 static struct clk_rcg2 gcc_ufs_phy_axi_clk_src = {
2037 .cmd_rcgr = 0x77024,
2038 .mnd_width = 8,
2039 .hid_width = 5,
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,
2047 },
2048 };
2049
2050 static struct clk_rcg2 gcc_ufs_phy_ice_core_clk_src = {
2051 .cmd_rcgr = 0x7706c,
2052 .mnd_width = 0,
2053 .hid_width = 5,
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,
2061 },
2062 };
2063
2064 static struct clk_rcg2 gcc_ufs_phy_phy_aux_clk_src = {
2065 .cmd_rcgr = 0x770a0,
2066 .mnd_width = 0,
2067 .hid_width = 5,
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,
2075 },
2076 };
2077
2078 static struct clk_rcg2 gcc_ufs_phy_unipro_core_clk_src = {
2079 .cmd_rcgr = 0x77084,
2080 .mnd_width = 0,
2081 .hid_width = 5,
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,
2089 },
2090 };
2091
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),
2097 { }
2098 };
2099
2100 static struct clk_rcg2 gcc_usb30_mp_master_clk_src = {
2101 .cmd_rcgr = 0xab020,
2102 .mnd_width = 8,
2103 .hid_width = 5,
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,
2111 },
2112 };
2113
2114 static struct clk_rcg2 gcc_usb30_mp_mock_utmi_clk_src = {
2115 .cmd_rcgr = 0xab038,
2116 .mnd_width = 0,
2117 .hid_width = 5,
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,
2125 },
2126 };
2127
2128 static struct clk_rcg2 gcc_usb30_prim_master_clk_src = {
2129 .cmd_rcgr = 0xf020,
2130 .mnd_width = 8,
2131 .hid_width = 5,
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,
2139 },
2140 };
2141
2142 static struct clk_rcg2 gcc_usb30_prim_mock_utmi_clk_src = {
2143 .cmd_rcgr = 0xf038,
2144 .mnd_width = 0,
2145 .hid_width = 5,
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,
2153 },
2154 };
2155
2156 static struct clk_rcg2 gcc_usb30_sec_master_clk_src = {
2157 .cmd_rcgr = 0x10020,
2158 .mnd_width = 8,
2159 .hid_width = 5,
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,
2167 },
2168 };
2169
2170 static struct clk_rcg2 gcc_usb30_sec_mock_utmi_clk_src = {
2171 .cmd_rcgr = 0x10038,
2172 .mnd_width = 0,
2173 .hid_width = 5,
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,
2181 },
2182 };
2183
2184 static struct clk_rcg2 gcc_usb3_mp_phy_aux_clk_src = {
2185 .cmd_rcgr = 0xab06c,
2186 .mnd_width = 0,
2187 .hid_width = 5,
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,
2195 },
2196 };
2197
2198 static struct clk_rcg2 gcc_usb3_prim_phy_aux_clk_src = {
2199 .cmd_rcgr = 0xf068,
2200 .mnd_width = 0,
2201 .hid_width = 5,
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,
2209 },
2210 };
2211
2212 static struct clk_rcg2 gcc_usb3_sec_phy_aux_clk_src = {
2213 .cmd_rcgr = 0x10068,
2214 .mnd_width = 0,
2215 .hid_width = 5,
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,
2223 },
2224 };
2225
2226 static const struct freq_tbl ftbl_gcc_usb4_1_master_clk_src[] = {
2227 F(175000000, P_GCC_GPLL8_OUT_MAIN, 4, 0, 0),
2228 F(350000000, P_GCC_GPLL8_OUT_MAIN, 2, 0, 0),
2229 { }
2230 };
2231
2232 static struct clk_rcg2 gcc_usb4_1_master_clk_src = {
2233 .cmd_rcgr = 0xb8018,
2234 .mnd_width = 8,
2235 .hid_width = 5,
2236 .parent_map = gcc_parent_map_5,
2237 .freq_tbl = ftbl_gcc_usb4_1_master_clk_src,
2238 .clkr.hw.init = &(const struct clk_init_data) {
2239 .name = "gcc_usb4_1_master_clk_src",
2240 .parent_data = gcc_parent_data_5,
2241 .num_parents = ARRAY_SIZE(gcc_parent_data_5),
2242 .ops = &clk_rcg2_shared_ops,
2243 },
2244 };
2245
2246 static const struct freq_tbl ftbl_gcc_usb4_1_phy_pcie_pipe_clk_src[] = {
2247 F(19200000, P_BI_TCXO, 1, 0, 0),
2248 F(125000000, P_GCC_GPLL7_OUT_MAIN, 4, 0, 0),
2249 F(250000000, P_GCC_GPLL7_OUT_MAIN, 2, 0, 0),
2250 { }
2251 };
2252
2253 static struct clk_rcg2 gcc_usb4_1_phy_pcie_pipe_clk_src = {
2254 .cmd_rcgr = 0xb80c4,
2255 .mnd_width = 0,
2256 .hid_width = 5,
2257 .parent_map = gcc_parent_map_6,
2258 .freq_tbl = ftbl_gcc_usb4_1_phy_pcie_pipe_clk_src,
2259 .clkr.hw.init = &(const struct clk_init_data) {
2260 .name = "gcc_usb4_1_phy_pcie_pipe_clk_src",
2261 .parent_data = gcc_parent_data_6,
2262 .num_parents = ARRAY_SIZE(gcc_parent_data_6),
2263 .ops = &clk_rcg2_shared_ops,
2264 },
2265 };
2266
2267 static struct clk_rcg2 gcc_usb4_1_sb_if_clk_src = {
2268 .cmd_rcgr = 0xb8070,
2269 .mnd_width = 0,
2270 .hid_width = 5,
2271 .parent_map = gcc_parent_map_1,
2272 .freq_tbl = ftbl_gcc_pcie_1_aux_clk_src,
2273 .clkr.hw.init = &(const struct clk_init_data) {
2274 .name = "gcc_usb4_1_sb_if_clk_src",
2275 .parent_data = gcc_parent_data_1,
2276 .num_parents = ARRAY_SIZE(gcc_parent_data_1),
2277 .ops = &clk_rcg2_shared_ops,
2278 },
2279 };
2280
2281 static const struct freq_tbl ftbl_gcc_usb4_1_tmu_clk_src[] = {
2282 F(19200000, P_BI_TCXO, 1, 0, 0),
2283 F(250000000, P_GCC_GPLL2_OUT_MAIN, 4, 0, 0),
2284 { }
2285 };
2286
2287 static struct clk_rcg2 gcc_usb4_1_tmu_clk_src = {
2288 .cmd_rcgr = 0xb8054,
2289 .mnd_width = 0,
2290 .hid_width = 5,
2291 .parent_map = gcc_parent_map_7,
2292 .freq_tbl = ftbl_gcc_usb4_1_tmu_clk_src,
2293 .clkr.hw.init = &(const struct clk_init_data) {
2294 .name = "gcc_usb4_1_tmu_clk_src",
2295 .parent_data = gcc_parent_data_7,
2296 .num_parents = ARRAY_SIZE(gcc_parent_data_7),
2297 .ops = &clk_rcg2_shared_ops,
2298 },
2299 };
2300
2301 static struct clk_rcg2 gcc_usb4_master_clk_src = {
2302 .cmd_rcgr = 0x2a018,
2303 .mnd_width = 8,
2304 .hid_width = 5,
2305 .parent_map = gcc_parent_map_5,
2306 .freq_tbl = ftbl_gcc_usb4_1_master_clk_src,
2307 .clkr.hw.init = &(const struct clk_init_data) {
2308 .name = "gcc_usb4_master_clk_src",
2309 .parent_data = gcc_parent_data_5,
2310 .num_parents = ARRAY_SIZE(gcc_parent_data_5),
2311 .ops = &clk_rcg2_shared_ops,
2312 },
2313 };
2314
2315 static struct clk_rcg2 gcc_usb4_phy_pcie_pipe_clk_src = {
2316 .cmd_rcgr = 0x2a0c4,
2317 .mnd_width = 0,
2318 .hid_width = 5,
2319 .parent_map = gcc_parent_map_6,
2320 .freq_tbl = ftbl_gcc_usb4_1_phy_pcie_pipe_clk_src,
2321 .clkr.hw.init = &(const struct clk_init_data) {
2322 .name = "gcc_usb4_phy_pcie_pipe_clk_src",
2323 .parent_data = gcc_parent_data_6,
2324 .num_parents = ARRAY_SIZE(gcc_parent_data_6),
2325 .ops = &clk_rcg2_shared_ops,
2326 },
2327 };
2328
2329 static struct clk_rcg2 gcc_usb4_sb_if_clk_src = {
2330 .cmd_rcgr = 0x2a070,
2331 .mnd_width = 0,
2332 .hid_width = 5,
2333 .parent_map = gcc_parent_map_1,
2334 .freq_tbl = ftbl_gcc_pcie_1_aux_clk_src,
2335 .clkr.hw.init = &(const struct clk_init_data) {
2336 .name = "gcc_usb4_sb_if_clk_src",
2337 .parent_data = gcc_parent_data_1,
2338 .num_parents = ARRAY_SIZE(gcc_parent_data_1),
2339 .ops = &clk_rcg2_shared_ops,
2340 },
2341 };
2342
2343 static struct clk_rcg2 gcc_usb4_tmu_clk_src = {
2344 .cmd_rcgr = 0x2a054,
2345 .mnd_width = 0,
2346 .hid_width = 5,
2347 .parent_map = gcc_parent_map_7,
2348 .freq_tbl = ftbl_gcc_usb4_1_tmu_clk_src,
2349 .clkr.hw.init = &(const struct clk_init_data) {
2350 .name = "gcc_usb4_tmu_clk_src",
2351 .parent_data = gcc_parent_data_7,
2352 .num_parents = ARRAY_SIZE(gcc_parent_data_7),
2353 .ops = &clk_rcg2_shared_ops,
2354 },
2355 };
2356
2357 static struct clk_regmap_div gcc_pcie_2a_pipe_div_clk_src = {
2358 .reg = 0x9d060,
2359 .shift = 0,
2360 .width = 4,
2361 .clkr.hw.init = &(const struct clk_init_data) {
2362 .name = "gcc_pcie_2a_pipe_div_clk_src",
2363 .parent_hws = (const struct clk_hw*[]){
2364 &gcc_pcie_2a_pipe_clk_src.clkr.hw,
2365 },
2366 .num_parents = 1,
2367 .flags = CLK_SET_RATE_PARENT,
2368 .ops = &clk_regmap_div_ro_ops,
2369 },
2370 };
2371
2372 static struct clk_regmap_div gcc_pcie_2b_pipe_div_clk_src = {
2373 .reg = 0x9e060,
2374 .shift = 0,
2375 .width = 4,
2376 .clkr.hw.init = &(const struct clk_init_data) {
2377 .name = "gcc_pcie_2b_pipe_div_clk_src",
2378 .parent_hws = (const struct clk_hw*[]){
2379 &gcc_pcie_2b_pipe_clk_src.clkr.hw,
2380 },
2381 .num_parents = 1,
2382 .flags = CLK_SET_RATE_PARENT,
2383 .ops = &clk_regmap_div_ro_ops,
2384 },
2385 };
2386
2387 static struct clk_regmap_div gcc_pcie_3a_pipe_div_clk_src = {
2388 .reg = 0xa0060,
2389 .shift = 0,
2390 .width = 4,
2391 .clkr.hw.init = &(const struct clk_init_data) {
2392 .name = "gcc_pcie_3a_pipe_div_clk_src",
2393 .parent_hws = (const struct clk_hw*[]){
2394 &gcc_pcie_3a_pipe_clk_src.clkr.hw,
2395 },
2396 .num_parents = 1,
2397 .flags = CLK_SET_RATE_PARENT,
2398 .ops = &clk_regmap_div_ro_ops,
2399 },
2400 };
2401
2402 static struct clk_regmap_div gcc_pcie_3b_pipe_div_clk_src = {
2403 .reg = 0xa2060,
2404 .shift = 0,
2405 .width = 4,
2406 .clkr.hw.init = &(const struct clk_init_data) {
2407 .name = "gcc_pcie_3b_pipe_div_clk_src",
2408 .parent_hws = (const struct clk_hw*[]){
2409 &gcc_pcie_3b_pipe_clk_src.clkr.hw,
2410 },
2411 .num_parents = 1,
2412 .flags = CLK_SET_RATE_PARENT,
2413 .ops = &clk_regmap_div_ro_ops,
2414 },
2415 };
2416
2417 static struct clk_regmap_div gcc_pcie_4_pipe_div_clk_src = {
2418 .reg = 0x6b060,
2419 .shift = 0,
2420 .width = 4,
2421 .clkr.hw.init = &(const struct clk_init_data) {
2422 .name = "gcc_pcie_4_pipe_div_clk_src",
2423 .parent_hws = (const struct clk_hw*[]){
2424 &gcc_pcie_4_pipe_clk_src.clkr.hw,
2425 },
2426 .num_parents = 1,
2427 .flags = CLK_SET_RATE_PARENT,
2428 .ops = &clk_regmap_div_ro_ops,
2429 },
2430 };
2431
2432 static struct clk_regmap_div gcc_qupv3_wrap0_s4_div_clk_src = {
2433 .reg = 0x17ac8,
2434 .shift = 0,
2435 .width = 4,
2436 .clkr.hw.init = &(const struct clk_init_data) {
2437 .name = "gcc_qupv3_wrap0_s4_div_clk_src",
2438 .parent_hws = (const struct clk_hw*[]){
2439 &gcc_qupv3_wrap0_s4_clk_src.clkr.hw,
2440 },
2441 .num_parents = 1,
2442 .flags = CLK_SET_RATE_PARENT,
2443 .ops = &clk_regmap_div_ro_ops,
2444 },
2445 };
2446
2447 static struct clk_regmap_div gcc_qupv3_wrap1_s4_div_clk_src = {
2448 .reg = 0x18ac8,
2449 .shift = 0,
2450 .width = 4,
2451 .clkr.hw.init = &(const struct clk_init_data) {
2452 .name = "gcc_qupv3_wrap1_s4_div_clk_src",
2453 .parent_hws = (const struct clk_hw*[]){
2454 &gcc_qupv3_wrap1_s4_clk_src.clkr.hw,
2455 },
2456 .num_parents = 1,
2457 .flags = CLK_SET_RATE_PARENT,
2458 .ops = &clk_regmap_div_ro_ops,
2459 },
2460 };
2461
2462 static struct clk_regmap_div gcc_qupv3_wrap2_s4_div_clk_src = {
2463 .reg = 0x1eac8,
2464 .shift = 0,
2465 .width = 4,
2466 .clkr.hw.init = &(const struct clk_init_data) {
2467 .name = "gcc_qupv3_wrap2_s4_div_clk_src",
2468 .parent_hws = (const struct clk_hw*[]){
2469 &gcc_qupv3_wrap2_s4_clk_src.clkr.hw,
2470 },
2471 .num_parents = 1,
2472 .flags = CLK_SET_RATE_PARENT,
2473 .ops = &clk_regmap_div_ro_ops,
2474 },
2475 };
2476
2477 static struct clk_regmap_div gcc_usb30_mp_mock_utmi_postdiv_clk_src = {
2478 .reg = 0xab050,
2479 .shift = 0,
2480 .width = 4,
2481 .clkr.hw.init = &(const struct clk_init_data) {
2482 .name = "gcc_usb30_mp_mock_utmi_postdiv_clk_src",
2483 .parent_hws = (const struct clk_hw*[]){
2484 &gcc_usb30_mp_mock_utmi_clk_src.clkr.hw,
2485 },
2486 .num_parents = 1,
2487 .flags = CLK_SET_RATE_PARENT,
2488 .ops = &clk_regmap_div_ro_ops,
2489 },
2490 };
2491
2492 static struct clk_regmap_div gcc_usb30_prim_mock_utmi_postdiv_clk_src = {
2493 .reg = 0xf050,
2494 .shift = 0,
2495 .width = 4,
2496 .clkr.hw.init = &(const struct clk_init_data) {
2497 .name = "gcc_usb30_prim_mock_utmi_postdiv_clk_src",
2498 .parent_hws = (const struct clk_hw*[]){
2499 &gcc_usb30_prim_mock_utmi_clk_src.clkr.hw,
2500 },
2501 .num_parents = 1,
2502 .flags = CLK_SET_RATE_PARENT,
2503 .ops = &clk_regmap_div_ro_ops,
2504 },
2505 };
2506
2507 static struct clk_regmap_div gcc_usb30_sec_mock_utmi_postdiv_clk_src = {
2508 .reg = 0x10050,
2509 .shift = 0,
2510 .width = 4,
2511 .clkr.hw.init = &(const struct clk_init_data) {
2512 .name = "gcc_usb30_sec_mock_utmi_postdiv_clk_src",
2513 .parent_hws = (const struct clk_hw*[]){
2514 &gcc_usb30_sec_mock_utmi_clk_src.clkr.hw,
2515 },
2516 .num_parents = 1,
2517 .flags = CLK_SET_RATE_PARENT,
2518 .ops = &clk_regmap_div_ro_ops,
2519 },
2520 };
2521
2522 static struct clk_branch gcc_aggre_noc_pcie0_tunnel_axi_clk = {
2523 .halt_reg = 0xa41a8,
2524 .halt_check = BRANCH_HALT_SKIP,
2525 .hwcg_reg = 0xa41a8,
2526 .hwcg_bit = 1,
2527 .clkr = {
2528 .enable_reg = 0x52018,
2529 .enable_mask = BIT(14),
2530 .hw.init = &(const struct clk_init_data) {
2531 .name = "gcc_aggre_noc_pcie0_tunnel_axi_clk",
2532 .ops = &clk_branch2_ops,
2533 },
2534 },
2535 };
2536
2537 static struct clk_branch gcc_aggre_noc_pcie1_tunnel_axi_clk = {
2538 .halt_reg = 0x8d07c,
2539 .halt_check = BRANCH_HALT_SKIP,
2540 .hwcg_reg = 0x8d07c,
2541 .hwcg_bit = 1,
2542 .clkr = {
2543 .enable_reg = 0x52018,
2544 .enable_mask = BIT(21),
2545 .hw.init = &(const struct clk_init_data) {
2546 .name = "gcc_aggre_noc_pcie1_tunnel_axi_clk",
2547 .ops = &clk_branch2_ops,
2548 },
2549 },
2550 };
2551
2552 static struct clk_branch gcc_aggre_noc_pcie_4_axi_clk = {
2553 .halt_reg = 0x6b1b8,
2554 .halt_check = BRANCH_HALT_SKIP,
2555 .hwcg_reg = 0x6b1b8,
2556 .hwcg_bit = 1,
2557 .clkr = {
2558 .enable_reg = 0x52000,
2559 .enable_mask = BIT(12),
2560 .hw.init = &(const struct clk_init_data) {
2561 .name = "gcc_aggre_noc_pcie_4_axi_clk",
2562 .ops = &clk_branch2_ops,
2563 },
2564 },
2565 };
2566
2567 static struct clk_branch gcc_aggre_noc_pcie_south_sf_axi_clk = {
2568 .halt_reg = 0xbf13c,
2569 .halt_check = BRANCH_HALT_SKIP,
2570 .hwcg_reg = 0xbf13c,
2571 .hwcg_bit = 1,
2572 .clkr = {
2573 .enable_reg = 0x52018,
2574 .enable_mask = BIT(13),
2575 .hw.init = &(const struct clk_init_data) {
2576 .name = "gcc_aggre_noc_pcie_south_sf_axi_clk",
2577 .ops = &clk_branch2_ops,
2578 },
2579 },
2580 };
2581
2582 static struct clk_branch gcc_aggre_ufs_card_axi_clk = {
2583 .halt_reg = 0x750cc,
2584 .halt_check = BRANCH_HALT_VOTED,
2585 .hwcg_reg = 0x750cc,
2586 .hwcg_bit = 1,
2587 .clkr = {
2588 .enable_reg = 0x750cc,
2589 .enable_mask = BIT(0),
2590 .hw.init = &(const struct clk_init_data) {
2591 .name = "gcc_aggre_ufs_card_axi_clk",
2592 .parent_hws = (const struct clk_hw*[]){
2593 &gcc_ufs_card_axi_clk_src.clkr.hw,
2594 },
2595 .num_parents = 1,
2596 .flags = CLK_SET_RATE_PARENT,
2597 .ops = &clk_branch2_ops,
2598 },
2599 },
2600 };
2601
2602 static struct clk_branch gcc_aggre_ufs_card_axi_hw_ctl_clk = {
2603 .halt_reg = 0x750cc,
2604 .halt_check = BRANCH_HALT_VOTED,
2605 .hwcg_reg = 0x750cc,
2606 .hwcg_bit = 1,
2607 .clkr = {
2608 .enable_reg = 0x750cc,
2609 .enable_mask = BIT(1),
2610 .hw.init = &(const struct clk_init_data) {
2611 .name = "gcc_aggre_ufs_card_axi_hw_ctl_clk",
2612 .parent_hws = (const struct clk_hw*[]){
2613 &gcc_ufs_card_axi_clk_src.clkr.hw,
2614 },
2615 .num_parents = 1,
2616 .flags = CLK_SET_RATE_PARENT,
2617 .ops = &clk_branch2_ops,
2618 },
2619 },
2620 };
2621
2622 static struct clk_branch gcc_aggre_ufs_phy_axi_clk = {
2623 .halt_reg = 0x770cc,
2624 .halt_check = BRANCH_HALT_VOTED,
2625 .hwcg_reg = 0x770cc,
2626 .hwcg_bit = 1,
2627 .clkr = {
2628 .enable_reg = 0x770cc,
2629 .enable_mask = BIT(0),
2630 .hw.init = &(const struct clk_init_data) {
2631 .name = "gcc_aggre_ufs_phy_axi_clk",
2632 .parent_hws = (const struct clk_hw*[]){
2633 &gcc_ufs_phy_axi_clk_src.clkr.hw,
2634 },
2635 .num_parents = 1,
2636 .flags = CLK_SET_RATE_PARENT,
2637 .ops = &clk_branch2_ops,
2638 },
2639 },
2640 };
2641
2642 static struct clk_branch gcc_aggre_ufs_phy_axi_hw_ctl_clk = {
2643 .halt_reg = 0x770cc,
2644 .halt_check = BRANCH_HALT_VOTED,
2645 .hwcg_reg = 0x770cc,
2646 .hwcg_bit = 1,
2647 .clkr = {
2648 .enable_reg = 0x770cc,
2649 .enable_mask = BIT(1),
2650 .hw.init = &(const struct clk_init_data) {
2651 .name = "gcc_aggre_ufs_phy_axi_hw_ctl_clk",
2652 .parent_hws = (const struct clk_hw*[]){
2653 &gcc_ufs_phy_axi_clk_src.clkr.hw,
2654 },
2655 .num_parents = 1,
2656 .flags = CLK_SET_RATE_PARENT,
2657 .ops = &clk_branch2_ops,
2658 },
2659 },
2660 };
2661
2662 static struct clk_branch gcc_aggre_usb3_mp_axi_clk = {
2663 .halt_reg = 0xab084,
2664 .halt_check = BRANCH_HALT_VOTED,
2665 .hwcg_reg = 0xab084,
2666 .hwcg_bit = 1,
2667 .clkr = {
2668 .enable_reg = 0xab084,
2669 .enable_mask = BIT(0),
2670 .hw.init = &(const struct clk_init_data) {
2671 .name = "gcc_aggre_usb3_mp_axi_clk",
2672 .parent_hws = (const struct clk_hw*[]){
2673 &gcc_usb30_mp_master_clk_src.clkr.hw,
2674 },
2675 .num_parents = 1,
2676 .flags = CLK_SET_RATE_PARENT,
2677 .ops = &clk_branch2_ops,
2678 },
2679 },
2680 };
2681
2682 static struct clk_branch gcc_aggre_usb3_prim_axi_clk = {
2683 .halt_reg = 0xf080,
2684 .halt_check = BRANCH_HALT_VOTED,
2685 .hwcg_reg = 0xf080,
2686 .hwcg_bit = 1,
2687 .clkr = {
2688 .enable_reg = 0xf080,
2689 .enable_mask = BIT(0),
2690 .hw.init = &(const struct clk_init_data) {
2691 .name = "gcc_aggre_usb3_prim_axi_clk",
2692 .parent_hws = (const struct clk_hw*[]){
2693 &gcc_usb30_prim_master_clk_src.clkr.hw,
2694 },
2695 .num_parents = 1,
2696 .flags = CLK_SET_RATE_PARENT,
2697 .ops = &clk_branch2_ops,
2698 },
2699 },
2700 };
2701
2702 static struct clk_branch gcc_aggre_usb3_sec_axi_clk = {
2703 .halt_reg = 0x10080,
2704 .halt_check = BRANCH_HALT_VOTED,
2705 .hwcg_reg = 0x10080,
2706 .hwcg_bit = 1,
2707 .clkr = {
2708 .enable_reg = 0x10080,
2709 .enable_mask = BIT(0),
2710 .hw.init = &(const struct clk_init_data) {
2711 .name = "gcc_aggre_usb3_sec_axi_clk",
2712 .parent_hws = (const struct clk_hw*[]){
2713 &gcc_usb30_sec_master_clk_src.clkr.hw,
2714 },
2715 .num_parents = 1,
2716 .flags = CLK_SET_RATE_PARENT,
2717 .ops = &clk_branch2_ops,
2718 },
2719 },
2720 };
2721
2722 static struct clk_branch gcc_aggre_usb4_1_axi_clk = {
2723 .halt_reg = 0xb80e4,
2724 .halt_check = BRANCH_HALT_VOTED,
2725 .hwcg_reg = 0xb80e4,
2726 .hwcg_bit = 1,
2727 .clkr = {
2728 .enable_reg = 0xb80e4,
2729 .enable_mask = BIT(0),
2730 .hw.init = &(const struct clk_init_data) {
2731 .name = "gcc_aggre_usb4_1_axi_clk",
2732 .parent_hws = (const struct clk_hw*[]){
2733 &gcc_usb4_1_master_clk_src.clkr.hw,
2734 },
2735 .num_parents = 1,
2736 .flags = CLK_SET_RATE_PARENT,
2737 .ops = &clk_branch2_ops,
2738 },
2739 },
2740 };
2741
2742 static struct clk_branch gcc_aggre_usb4_axi_clk = {
2743 .halt_reg = 0x2a0e4,
2744 .halt_check = BRANCH_HALT_VOTED,
2745 .hwcg_reg = 0x2a0e4,
2746 .hwcg_bit = 1,
2747 .clkr = {
2748 .enable_reg = 0x2a0e4,
2749 .enable_mask = BIT(0),
2750 .hw.init = &(const struct clk_init_data) {
2751 .name = "gcc_aggre_usb4_axi_clk",
2752 .parent_hws = (const struct clk_hw*[]){
2753 &gcc_usb4_master_clk_src.clkr.hw,
2754 },
2755 .num_parents = 1,
2756 .flags = CLK_SET_RATE_PARENT,
2757 .ops = &clk_branch2_ops,
2758 },
2759 },
2760 };
2761
2762 static struct clk_branch gcc_aggre_usb_noc_axi_clk = {
2763 .halt_reg = 0x5d024,
2764 .halt_check = BRANCH_HALT_VOTED,
2765 .hwcg_reg = 0x5d024,
2766 .hwcg_bit = 1,
2767 .clkr = {
2768 .enable_reg = 0x5d024,
2769 .enable_mask = BIT(0),
2770 .hw.init = &(const struct clk_init_data) {
2771 .name = "gcc_aggre_usb_noc_axi_clk",
2772 .ops = &clk_branch2_ops,
2773 },
2774 },
2775 };
2776
2777 static struct clk_branch gcc_aggre_usb_noc_north_axi_clk = {
2778 .halt_reg = 0x5d020,
2779 .halt_check = BRANCH_HALT_VOTED,
2780 .hwcg_reg = 0x5d020,
2781 .hwcg_bit = 1,
2782 .clkr = {
2783 .enable_reg = 0x5d020,
2784 .enable_mask = BIT(0),
2785 .hw.init = &(const struct clk_init_data) {
2786 .name = "gcc_aggre_usb_noc_north_axi_clk",
2787 .ops = &clk_branch2_ops,
2788 },
2789 },
2790 };
2791
2792 static struct clk_branch gcc_aggre_usb_noc_south_axi_clk = {
2793 .halt_reg = 0x5d01c,
2794 .halt_check = BRANCH_HALT_VOTED,
2795 .hwcg_reg = 0x5d01c,
2796 .hwcg_bit = 1,
2797 .clkr = {
2798 .enable_reg = 0x5d01c,
2799 .enable_mask = BIT(0),
2800 .hw.init = &(const struct clk_init_data) {
2801 .name = "gcc_aggre_usb_noc_south_axi_clk",
2802 .ops = &clk_branch2_ops,
2803 },
2804 },
2805 };
2806
2807 static struct clk_branch gcc_ahb2phy0_clk = {
2808 .halt_reg = 0x6a004,
2809 .halt_check = BRANCH_HALT_VOTED,
2810 .hwcg_reg = 0x6a004,
2811 .hwcg_bit = 1,
2812 .clkr = {
2813 .enable_reg = 0x6a004,
2814 .enable_mask = BIT(0),
2815 .hw.init = &(const struct clk_init_data) {
2816 .name = "gcc_ahb2phy0_clk",
2817 .ops = &clk_branch2_ops,
2818 },
2819 },
2820 };
2821
2822 static struct clk_branch gcc_ahb2phy2_clk = {
2823 .halt_reg = 0x6a008,
2824 .halt_check = BRANCH_HALT_VOTED,
2825 .hwcg_reg = 0x6a008,
2826 .hwcg_bit = 1,
2827 .clkr = {
2828 .enable_reg = 0x6a008,
2829 .enable_mask = BIT(0),
2830 .hw.init = &(const struct clk_init_data) {
2831 .name = "gcc_ahb2phy2_clk",
2832 .ops = &clk_branch2_ops,
2833 },
2834 },
2835 };
2836
2837 static struct clk_branch gcc_boot_rom_ahb_clk = {
2838 .halt_reg = 0x38004,
2839 .halt_check = BRANCH_HALT_VOTED,
2840 .hwcg_reg = 0x38004,
2841 .hwcg_bit = 1,
2842 .clkr = {
2843 .enable_reg = 0x52000,
2844 .enable_mask = BIT(10),
2845 .hw.init = &(const struct clk_init_data) {
2846 .name = "gcc_boot_rom_ahb_clk",
2847 .ops = &clk_branch2_ops,
2848 },
2849 },
2850 };
2851
2852 static struct clk_branch gcc_camera_hf_axi_clk = {
2853 .halt_reg = 0x26010,
2854 .halt_check = BRANCH_HALT_SKIP,
2855 .hwcg_reg = 0x26010,
2856 .hwcg_bit = 1,
2857 .clkr = {
2858 .enable_reg = 0x26010,
2859 .enable_mask = BIT(0),
2860 .hw.init = &(const struct clk_init_data) {
2861 .name = "gcc_camera_hf_axi_clk",
2862 .ops = &clk_branch2_ops,
2863 },
2864 },
2865 };
2866
2867 static struct clk_branch gcc_camera_sf_axi_clk = {
2868 .halt_reg = 0x26014,
2869 .halt_check = BRANCH_HALT_SKIP,
2870 .hwcg_reg = 0x26014,
2871 .hwcg_bit = 1,
2872 .clkr = {
2873 .enable_reg = 0x26014,
2874 .enable_mask = BIT(0),
2875 .hw.init = &(const struct clk_init_data) {
2876 .name = "gcc_camera_sf_axi_clk",
2877 .ops = &clk_branch2_ops,
2878 },
2879 },
2880 };
2881
2882 static struct clk_branch gcc_camera_throttle_nrt_axi_clk = {
2883 .halt_reg = 0x2601c,
2884 .halt_check = BRANCH_HALT_SKIP,
2885 .hwcg_reg = 0x2601c,
2886 .hwcg_bit = 1,
2887 .clkr = {
2888 .enable_reg = 0x2601c,
2889 .enable_mask = BIT(0),
2890 .hw.init = &(const struct clk_init_data) {
2891 .name = "gcc_camera_throttle_nrt_axi_clk",
2892 .ops = &clk_branch2_ops,
2893 },
2894 },
2895 };
2896
2897 static struct clk_branch gcc_camera_throttle_rt_axi_clk = {
2898 .halt_reg = 0x26018,
2899 .halt_check = BRANCH_HALT_SKIP,
2900 .hwcg_reg = 0x26018,
2901 .hwcg_bit = 1,
2902 .clkr = {
2903 .enable_reg = 0x26018,
2904 .enable_mask = BIT(0),
2905 .hw.init = &(const struct clk_init_data) {
2906 .name = "gcc_camera_throttle_rt_axi_clk",
2907 .ops = &clk_branch2_ops,
2908 },
2909 },
2910 };
2911
2912 static struct clk_branch gcc_camera_throttle_xo_clk = {
2913 .halt_reg = 0x26024,
2914 .halt_check = BRANCH_HALT,
2915 .clkr = {
2916 .enable_reg = 0x26024,
2917 .enable_mask = BIT(0),
2918 .hw.init = &(const struct clk_init_data) {
2919 .name = "gcc_camera_throttle_xo_clk",
2920 .ops = &clk_branch2_ops,
2921 },
2922 },
2923 };
2924
2925 static struct clk_branch gcc_cfg_noc_usb3_mp_axi_clk = {
2926 .halt_reg = 0xab088,
2927 .halt_check = BRANCH_HALT_VOTED,
2928 .hwcg_reg = 0xab088,
2929 .hwcg_bit = 1,
2930 .clkr = {
2931 .enable_reg = 0xab088,
2932 .enable_mask = BIT(0),
2933 .hw.init = &(const struct clk_init_data) {
2934 .name = "gcc_cfg_noc_usb3_mp_axi_clk",
2935 .parent_hws = (const struct clk_hw*[]){
2936 &gcc_usb30_mp_master_clk_src.clkr.hw,
2937 },
2938 .num_parents = 1,
2939 .flags = CLK_SET_RATE_PARENT,
2940 .ops = &clk_branch2_ops,
2941 },
2942 },
2943 };
2944
2945 static struct clk_branch gcc_cfg_noc_usb3_prim_axi_clk = {
2946 .halt_reg = 0xf084,
2947 .halt_check = BRANCH_HALT_VOTED,
2948 .hwcg_reg = 0xf084,
2949 .hwcg_bit = 1,
2950 .clkr = {
2951 .enable_reg = 0xf084,
2952 .enable_mask = BIT(0),
2953 .hw.init = &(const struct clk_init_data) {
2954 .name = "gcc_cfg_noc_usb3_prim_axi_clk",
2955 .parent_hws = (const struct clk_hw*[]){
2956 &gcc_usb30_prim_master_clk_src.clkr.hw,
2957 },
2958 .num_parents = 1,
2959 .flags = CLK_SET_RATE_PARENT,
2960 .ops = &clk_branch2_ops,
2961 },
2962 },
2963 };
2964
2965 static struct clk_branch gcc_cfg_noc_usb3_sec_axi_clk = {
2966 .halt_reg = 0x10084,
2967 .halt_check = BRANCH_HALT_VOTED,
2968 .hwcg_reg = 0x10084,
2969 .hwcg_bit = 1,
2970 .clkr = {
2971 .enable_reg = 0x10084,
2972 .enable_mask = BIT(0),
2973 .hw.init = &(const struct clk_init_data) {
2974 .name = "gcc_cfg_noc_usb3_sec_axi_clk",
2975 .parent_hws = (const struct clk_hw*[]){
2976 &gcc_usb30_sec_master_clk_src.clkr.hw,
2977 },
2978 .num_parents = 1,
2979 .flags = CLK_SET_RATE_PARENT,
2980 .ops = &clk_branch2_ops,
2981 },
2982 },
2983 };
2984
2985 static struct clk_branch gcc_cnoc_pcie0_tunnel_clk = {
2986 .halt_reg = 0xa4074,
2987 .halt_check = BRANCH_HALT_VOTED,
2988 .clkr = {
2989 .enable_reg = 0x52020,
2990 .enable_mask = BIT(8),
2991 .hw.init = &(const struct clk_init_data) {
2992 .name = "gcc_cnoc_pcie0_tunnel_clk",
2993 .ops = &clk_branch2_ops,
2994 },
2995 },
2996 };
2997
2998 static struct clk_branch gcc_cnoc_pcie1_tunnel_clk = {
2999 .halt_reg = 0x8d074,
3000 .halt_check = BRANCH_HALT_VOTED,
3001 .clkr = {
3002 .enable_reg = 0x52020,
3003 .enable_mask = BIT(9),
3004 .hw.init = &(const struct clk_init_data) {
3005 .name = "gcc_cnoc_pcie1_tunnel_clk",
3006 .ops = &clk_branch2_ops,
3007 },
3008 },
3009 };
3010
3011 static struct clk_branch gcc_cnoc_pcie4_qx_clk = {
3012 .halt_reg = 0x6b084,
3013 .halt_check = BRANCH_HALT_VOTED,
3014 .hwcg_reg = 0x6b084,
3015 .hwcg_bit = 1,
3016 .clkr = {
3017 .enable_reg = 0x52020,
3018 .enable_mask = BIT(10),
3019 .hw.init = &(const struct clk_init_data) {
3020 .name = "gcc_cnoc_pcie4_qx_clk",
3021 .ops = &clk_branch2_ops,
3022 },
3023 },
3024 };
3025
3026 static struct clk_branch gcc_ddrss_gpu_axi_clk = {
3027 .halt_reg = 0x7115c,
3028 .halt_check = BRANCH_HALT_SKIP,
3029 .hwcg_reg = 0x7115c,
3030 .hwcg_bit = 1,
3031 .clkr = {
3032 .enable_reg = 0x7115c,
3033 .enable_mask = BIT(0),
3034 .hw.init = &(const struct clk_init_data) {
3035 .name = "gcc_ddrss_gpu_axi_clk",
3036 .ops = &clk_branch2_aon_ops,
3037 },
3038 },
3039 };
3040
3041 static struct clk_branch gcc_ddrss_pcie_sf_tbu_clk = {
3042 .halt_reg = 0xa602c,
3043 .halt_check = BRANCH_HALT_SKIP,
3044 .hwcg_reg = 0xa602c,
3045 .hwcg_bit = 1,
3046 .clkr = {
3047 .enable_reg = 0x52000,
3048 .enable_mask = BIT(19),
3049 .hw.init = &(const struct clk_init_data) {
3050 .name = "gcc_ddrss_pcie_sf_tbu_clk",
3051 .ops = &clk_branch2_ops,
3052 },
3053 },
3054 };
3055
3056 static struct clk_branch gcc_disp1_hf_axi_clk = {
3057 .halt_reg = 0xbb010,
3058 .halt_check = BRANCH_HALT_SKIP,
3059 .hwcg_reg = 0xbb010,
3060 .hwcg_bit = 1,
3061 .clkr = {
3062 .enable_reg = 0xbb010,
3063 .enable_mask = BIT(0),
3064 .hw.init = &(const struct clk_init_data) {
3065 .name = "gcc_disp1_hf_axi_clk",
3066 .ops = &clk_branch2_ops,
3067 },
3068 },
3069 };
3070
3071 static struct clk_branch gcc_disp1_sf_axi_clk = {
3072 .halt_reg = 0xbb018,
3073 .halt_check = BRANCH_HALT_SKIP,
3074 .hwcg_reg = 0xbb018,
3075 .hwcg_bit = 1,
3076 .clkr = {
3077 .enable_reg = 0xbb018,
3078 .enable_mask = BIT(0),
3079 .hw.init = &(const struct clk_init_data) {
3080 .name = "gcc_disp1_sf_axi_clk",
3081 .ops = &clk_branch2_ops,
3082 },
3083 },
3084 };
3085
3086 static struct clk_branch gcc_disp1_throttle_nrt_axi_clk = {
3087 .halt_reg = 0xbb024,
3088 .halt_check = BRANCH_HALT_SKIP,
3089 .hwcg_reg = 0xbb024,
3090 .hwcg_bit = 1,
3091 .clkr = {
3092 .enable_reg = 0xbb024,
3093 .enable_mask = BIT(0),
3094 .hw.init = &(const struct clk_init_data) {
3095 .name = "gcc_disp1_throttle_nrt_axi_clk",
3096 .ops = &clk_branch2_ops,
3097 },
3098 },
3099 };
3100
3101 static struct clk_branch gcc_disp1_throttle_rt_axi_clk = {
3102 .halt_reg = 0xbb020,
3103 .halt_check = BRANCH_HALT_SKIP,
3104 .hwcg_reg = 0xbb020,
3105 .hwcg_bit = 1,
3106 .clkr = {
3107 .enable_reg = 0xbb020,
3108 .enable_mask = BIT(0),
3109 .hw.init = &(const struct clk_init_data) {
3110 .name = "gcc_disp1_throttle_rt_axi_clk",
3111 .ops = &clk_branch2_ops,
3112 },
3113 },
3114 };
3115
3116 static struct clk_branch gcc_disp_hf_axi_clk = {
3117 .halt_reg = 0x27010,
3118 .halt_check = BRANCH_HALT_SKIP,
3119 .hwcg_reg = 0x27010,
3120 .hwcg_bit = 1,
3121 .clkr = {
3122 .enable_reg = 0x27010,
3123 .enable_mask = BIT(0),
3124 .hw.init = &(const struct clk_init_data) {
3125 .name = "gcc_disp_hf_axi_clk",
3126 .ops = &clk_branch2_ops,
3127 },
3128 },
3129 };
3130
3131 static struct clk_branch gcc_disp_sf_axi_clk = {
3132 .halt_reg = 0x27018,
3133 .halt_check = BRANCH_HALT_SKIP,
3134 .hwcg_reg = 0x27018,
3135 .hwcg_bit = 1,
3136 .clkr = {
3137 .enable_reg = 0x27018,
3138 .enable_mask = BIT(0),
3139 .hw.init = &(const struct clk_init_data) {
3140 .name = "gcc_disp_sf_axi_clk",
3141 .ops = &clk_branch2_ops,
3142 },
3143 },
3144 };
3145
3146 static struct clk_branch gcc_disp_throttle_nrt_axi_clk = {
3147 .halt_reg = 0x27024,
3148 .halt_check = BRANCH_HALT_SKIP,
3149 .hwcg_reg = 0x27024,
3150 .hwcg_bit = 1,
3151 .clkr = {
3152 .enable_reg = 0x27024,
3153 .enable_mask = BIT(0),
3154 .hw.init = &(const struct clk_init_data) {
3155 .name = "gcc_disp_throttle_nrt_axi_clk",
3156 .ops = &clk_branch2_ops,
3157 },
3158 },
3159 };
3160
3161 static struct clk_branch gcc_disp_throttle_rt_axi_clk = {
3162 .halt_reg = 0x27020,
3163 .halt_check = BRANCH_HALT_SKIP,
3164 .hwcg_reg = 0x27020,
3165 .hwcg_bit = 1,
3166 .clkr = {
3167 .enable_reg = 0x27020,
3168 .enable_mask = BIT(0),
3169 .hw.init = &(const struct clk_init_data) {
3170 .name = "gcc_disp_throttle_rt_axi_clk",
3171 .ops = &clk_branch2_ops,
3172 },
3173 },
3174 };
3175
3176 static struct clk_branch gcc_emac0_axi_clk = {
3177 .halt_reg = 0xaa010,
3178 .halt_check = BRANCH_HALT_VOTED,
3179 .hwcg_reg = 0xaa010,
3180 .hwcg_bit = 1,
3181 .clkr = {
3182 .enable_reg = 0xaa010,
3183 .enable_mask = BIT(0),
3184 .hw.init = &(const struct clk_init_data) {
3185 .name = "gcc_emac0_axi_clk",
3186 .ops = &clk_branch2_ops,
3187 },
3188 },
3189 };
3190
3191 static struct clk_branch gcc_emac0_ptp_clk = {
3192 .halt_reg = 0xaa01c,
3193 .halt_check = BRANCH_HALT,
3194 .clkr = {
3195 .enable_reg = 0xaa01c,
3196 .enable_mask = BIT(0),
3197 .hw.init = &(const struct clk_init_data) {
3198 .name = "gcc_emac0_ptp_clk",
3199 .parent_hws = (const struct clk_hw*[]){
3200 &gcc_emac0_ptp_clk_src.clkr.hw,
3201 },
3202 .num_parents = 1,
3203 .flags = CLK_SET_RATE_PARENT,
3204 .ops = &clk_branch2_ops,
3205 },
3206 },
3207 };
3208
3209 static struct clk_branch gcc_emac0_rgmii_clk = {
3210 .halt_reg = 0xaa038,
3211 .halt_check = BRANCH_HALT,
3212 .clkr = {
3213 .enable_reg = 0xaa038,
3214 .enable_mask = BIT(0),
3215 .hw.init = &(const struct clk_init_data) {
3216 .name = "gcc_emac0_rgmii_clk",
3217 .parent_hws = (const struct clk_hw*[]){
3218 &gcc_emac0_rgmii_clk_src.clkr.hw,
3219 },
3220 .num_parents = 1,
3221 .flags = CLK_SET_RATE_PARENT,
3222 .ops = &clk_branch2_ops,
3223 },
3224 },
3225 };
3226
3227 static struct clk_branch gcc_emac0_slv_ahb_clk = {
3228 .halt_reg = 0xaa018,
3229 .halt_check = BRANCH_HALT_VOTED,
3230 .hwcg_reg = 0xaa018,
3231 .hwcg_bit = 1,
3232 .clkr = {
3233 .enable_reg = 0xaa018,
3234 .enable_mask = BIT(0),
3235 .hw.init = &(const struct clk_init_data) {
3236 .name = "gcc_emac0_slv_ahb_clk",
3237 .ops = &clk_branch2_ops,
3238 },
3239 },
3240 };
3241
3242 static struct clk_branch gcc_emac1_axi_clk = {
3243 .halt_reg = 0xba010,
3244 .halt_check = BRANCH_HALT_VOTED,
3245 .hwcg_reg = 0xba010,
3246 .hwcg_bit = 1,
3247 .clkr = {
3248 .enable_reg = 0xba010,
3249 .enable_mask = BIT(0),
3250 .hw.init = &(const struct clk_init_data) {
3251 .name = "gcc_emac1_axi_clk",
3252 .ops = &clk_branch2_ops,
3253 },
3254 },
3255 };
3256
3257 static struct clk_branch gcc_emac1_ptp_clk = {
3258 .halt_reg = 0xba01c,
3259 .halt_check = BRANCH_HALT,
3260 .clkr = {
3261 .enable_reg = 0xba01c,
3262 .enable_mask = BIT(0),
3263 .hw.init = &(const struct clk_init_data) {
3264 .name = "gcc_emac1_ptp_clk",
3265 .parent_hws = (const struct clk_hw*[]){
3266 &gcc_emac1_ptp_clk_src.clkr.hw,
3267 },
3268 .num_parents = 1,
3269 .flags = CLK_SET_RATE_PARENT,
3270 .ops = &clk_branch2_ops,
3271 },
3272 },
3273 };
3274
3275 static struct clk_branch gcc_emac1_rgmii_clk = {
3276 .halt_reg = 0xba038,
3277 .halt_check = BRANCH_HALT,
3278 .clkr = {
3279 .enable_reg = 0xba038,
3280 .enable_mask = BIT(0),
3281 .hw.init = &(const struct clk_init_data) {
3282 .name = "gcc_emac1_rgmii_clk",
3283 .parent_hws = (const struct clk_hw*[]){
3284 &gcc_emac1_rgmii_clk_src.clkr.hw,
3285 },
3286 .num_parents = 1,
3287 .flags = CLK_SET_RATE_PARENT,
3288 .ops = &clk_branch2_ops,
3289 },
3290 },
3291 };
3292
3293 static struct clk_branch gcc_emac1_slv_ahb_clk = {
3294 .halt_reg = 0xba018,
3295 .halt_check = BRANCH_HALT_VOTED,
3296 .hwcg_reg = 0xba018,
3297 .hwcg_bit = 1,
3298 .clkr = {
3299 .enable_reg = 0xba018,
3300 .enable_mask = BIT(0),
3301 .hw.init = &(const struct clk_init_data) {
3302 .name = "gcc_emac1_slv_ahb_clk",
3303 .ops = &clk_branch2_ops,
3304 },
3305 },
3306 };
3307
3308 static struct clk_branch gcc_gp1_clk = {
3309 .halt_reg = 0x64000,
3310 .halt_check = BRANCH_HALT,
3311 .clkr = {
3312 .enable_reg = 0x64000,
3313 .enable_mask = BIT(0),
3314 .hw.init = &(const struct clk_init_data) {
3315 .name = "gcc_gp1_clk",
3316 .parent_hws = (const struct clk_hw*[]){
3317 &gcc_gp1_clk_src.clkr.hw,
3318 },
3319 .num_parents = 1,
3320 .flags = CLK_SET_RATE_PARENT,
3321 .ops = &clk_branch2_ops,
3322 },
3323 },
3324 };
3325
3326 static struct clk_branch gcc_gp2_clk = {
3327 .halt_reg = 0x65000,
3328 .halt_check = BRANCH_HALT,
3329 .clkr = {
3330 .enable_reg = 0x65000,
3331 .enable_mask = BIT(0),
3332 .hw.init = &(const struct clk_init_data) {
3333 .name = "gcc_gp2_clk",
3334 .parent_hws = (const struct clk_hw*[]){
3335 &gcc_gp2_clk_src.clkr.hw,
3336 },
3337 .num_parents = 1,
3338 .flags = CLK_SET_RATE_PARENT,
3339 .ops = &clk_branch2_ops,
3340 },
3341 },
3342 };
3343
3344 static struct clk_branch gcc_gp3_clk = {
3345 .halt_reg = 0x66000,
3346 .halt_check = BRANCH_HALT,
3347 .clkr = {
3348 .enable_reg = 0x66000,
3349 .enable_mask = BIT(0),
3350 .hw.init = &(const struct clk_init_data) {
3351 .name = "gcc_gp3_clk",
3352 .parent_hws = (const struct clk_hw*[]){
3353 &gcc_gp3_clk_src.clkr.hw,
3354 },
3355 .num_parents = 1,
3356 .flags = CLK_SET_RATE_PARENT,
3357 .ops = &clk_branch2_ops,
3358 },
3359 },
3360 };
3361
3362 static struct clk_branch gcc_gp4_clk = {
3363 .halt_reg = 0xc2000,
3364 .halt_check = BRANCH_HALT,
3365 .clkr = {
3366 .enable_reg = 0xc2000,
3367 .enable_mask = BIT(0),
3368 .hw.init = &(const struct clk_init_data) {
3369 .name = "gcc_gp4_clk",
3370 .parent_hws = (const struct clk_hw*[]){
3371 &gcc_gp4_clk_src.clkr.hw,
3372 },
3373 .num_parents = 1,
3374 .flags = CLK_SET_RATE_PARENT,
3375 .ops = &clk_branch2_ops,
3376 },
3377 },
3378 };
3379
3380 static struct clk_branch gcc_gp5_clk = {
3381 .halt_reg = 0xc3000,
3382 .halt_check = BRANCH_HALT,
3383 .clkr = {
3384 .enable_reg = 0xc3000,
3385 .enable_mask = BIT(0),
3386 .hw.init = &(const struct clk_init_data) {
3387 .name = "gcc_gp5_clk",
3388 .parent_hws = (const struct clk_hw*[]){
3389 &gcc_gp5_clk_src.clkr.hw,
3390 },
3391 .num_parents = 1,
3392 .flags = CLK_SET_RATE_PARENT,
3393 .ops = &clk_branch2_ops,
3394 },
3395 },
3396 };
3397
3398 static struct clk_branch gcc_gpu_gpll0_clk_src = {
3399 .halt_check = BRANCH_HALT_DELAY,
3400 .clkr = {
3401 .enable_reg = 0x52000,
3402 .enable_mask = BIT(15),
3403 .hw.init = &(const struct clk_init_data) {
3404 .name = "gcc_gpu_gpll0_clk_src",
3405 .parent_hws = (const struct clk_hw*[]){
3406 &gcc_gpll0.clkr.hw,
3407 },
3408 .num_parents = 1,
3409 .flags = CLK_SET_RATE_PARENT,
3410 .ops = &clk_branch2_ops,
3411 },
3412 },
3413 };
3414
3415 static struct clk_branch gcc_gpu_gpll0_div_clk_src = {
3416 .halt_check = BRANCH_HALT_DELAY,
3417 .clkr = {
3418 .enable_reg = 0x52000,
3419 .enable_mask = BIT(16),
3420 .hw.init = &(const struct clk_init_data) {
3421 .name = "gcc_gpu_gpll0_div_clk_src",
3422 .parent_hws = (const struct clk_hw*[]){
3423 &gcc_gpll0_out_even.clkr.hw,
3424 },
3425 .num_parents = 1,
3426 .flags = CLK_SET_RATE_PARENT,
3427 .ops = &clk_branch2_ops,
3428 },
3429 },
3430 };
3431
3432 static struct clk_branch gcc_gpu_iref_en = {
3433 .halt_reg = 0x8c014,
3434 .halt_check = BRANCH_HALT,
3435 .clkr = {
3436 .enable_reg = 0x8c014,
3437 .enable_mask = BIT(0),
3438 .hw.init = &(const struct clk_init_data) {
3439 .name = "gcc_gpu_iref_en",
3440 .ops = &clk_branch2_ops,
3441 },
3442 },
3443 };
3444
3445 static struct clk_branch gcc_gpu_memnoc_gfx_clk = {
3446 .halt_reg = 0x71010,
3447 .halt_check = BRANCH_HALT_VOTED,
3448 .hwcg_reg = 0x71010,
3449 .hwcg_bit = 1,
3450 .clkr = {
3451 .enable_reg = 0x71010,
3452 .enable_mask = BIT(0),
3453 .hw.init = &(const struct clk_init_data) {
3454 .name = "gcc_gpu_memnoc_gfx_clk",
3455 .ops = &clk_branch2_aon_ops,
3456 },
3457 },
3458 };
3459
3460 static struct clk_branch gcc_gpu_snoc_dvm_gfx_clk = {
3461 .halt_reg = 0x71020,
3462 .halt_check = BRANCH_HALT,
3463 .clkr = {
3464 .enable_reg = 0x71020,
3465 .enable_mask = BIT(0),
3466 .hw.init = &(const struct clk_init_data) {
3467 .name = "gcc_gpu_snoc_dvm_gfx_clk",
3468 .ops = &clk_branch2_aon_ops,
3469 },
3470 },
3471 };
3472
3473 static struct clk_branch gcc_gpu_tcu_throttle_ahb_clk = {
3474 .halt_reg = 0x71008,
3475 .halt_check = BRANCH_HALT_VOTED,
3476 .hwcg_reg = 0x71008,
3477 .hwcg_bit = 1,
3478 .clkr = {
3479 .enable_reg = 0x71008,
3480 .enable_mask = BIT(0),
3481 .hw.init = &(const struct clk_init_data) {
3482 .name = "gcc_gpu_tcu_throttle_ahb_clk",
3483 .ops = &clk_branch2_ops,
3484 },
3485 },
3486 };
3487
3488 static struct clk_branch gcc_gpu_tcu_throttle_clk = {
3489 .halt_reg = 0x71018,
3490 .halt_check = BRANCH_HALT_VOTED,
3491 .hwcg_reg = 0x71018,
3492 .hwcg_bit = 1,
3493 .clkr = {
3494 .enable_reg = 0x71018,
3495 .enable_mask = BIT(0),
3496 .hw.init = &(const struct clk_init_data) {
3497 .name = "gcc_gpu_tcu_throttle_clk",
3498 .ops = &clk_branch2_ops,
3499 },
3500 },
3501 };
3502
3503 static struct clk_branch gcc_pcie0_phy_rchng_clk = {
3504 .halt_reg = 0xa4038,
3505 .halt_check = BRANCH_HALT_VOTED,
3506 .clkr = {
3507 .enable_reg = 0x52018,
3508 .enable_mask = BIT(11),
3509 .hw.init = &(const struct clk_init_data) {
3510 .name = "gcc_pcie0_phy_rchng_clk",
3511 .parent_hws = (const struct clk_hw*[]){
3512 &gcc_pcie_0_phy_rchng_clk_src.clkr.hw,
3513 },
3514 .num_parents = 1,
3515 .flags = CLK_SET_RATE_PARENT,
3516 .ops = &clk_branch2_ops,
3517 },
3518 },
3519 };
3520
3521 static struct clk_branch gcc_pcie1_phy_rchng_clk = {
3522 .halt_reg = 0x8d038,
3523 .halt_check = BRANCH_HALT_VOTED,
3524 .clkr = {
3525 .enable_reg = 0x52000,
3526 .enable_mask = BIT(23),
3527 .hw.init = &(const struct clk_init_data) {
3528 .name = "gcc_pcie1_phy_rchng_clk",
3529 .parent_hws = (const struct clk_hw*[]){
3530 &gcc_pcie_1_phy_rchng_clk_src.clkr.hw,
3531 },
3532 .num_parents = 1,
3533 .flags = CLK_SET_RATE_PARENT,
3534 .ops = &clk_branch2_ops,
3535 },
3536 },
3537 };
3538
3539 static struct clk_branch gcc_pcie2a_phy_rchng_clk = {
3540 .halt_reg = 0x9d040,
3541 .halt_check = BRANCH_HALT_VOTED,
3542 .clkr = {
3543 .enable_reg = 0x52010,
3544 .enable_mask = BIT(15),
3545 .hw.init = &(const struct clk_init_data) {
3546 .name = "gcc_pcie2a_phy_rchng_clk",
3547 .parent_hws = (const struct clk_hw*[]){
3548 &gcc_pcie_2a_phy_rchng_clk_src.clkr.hw,
3549 },
3550 .num_parents = 1,
3551 .flags = CLK_SET_RATE_PARENT,
3552 .ops = &clk_branch2_ops,
3553 },
3554 },
3555 };
3556
3557 static struct clk_branch gcc_pcie2b_phy_rchng_clk = {
3558 .halt_reg = 0x9e040,
3559 .halt_check = BRANCH_HALT_VOTED,
3560 .clkr = {
3561 .enable_reg = 0x52010,
3562 .enable_mask = BIT(22),
3563 .hw.init = &(const struct clk_init_data) {
3564 .name = "gcc_pcie2b_phy_rchng_clk",
3565 .parent_hws = (const struct clk_hw*[]){
3566 &gcc_pcie_2b_phy_rchng_clk_src.clkr.hw,
3567 },
3568 .num_parents = 1,
3569 .flags = CLK_SET_RATE_PARENT,
3570 .ops = &clk_branch2_ops,
3571 },
3572 },
3573 };
3574
3575 static struct clk_branch gcc_pcie3a_phy_rchng_clk = {
3576 .halt_reg = 0xa0040,
3577 .halt_check = BRANCH_HALT_VOTED,
3578 .clkr = {
3579 .enable_reg = 0x52010,
3580 .enable_mask = BIT(29),
3581 .hw.init = &(const struct clk_init_data) {
3582 .name = "gcc_pcie3a_phy_rchng_clk",
3583 .parent_hws = (const struct clk_hw*[]){
3584 &gcc_pcie_3a_phy_rchng_clk_src.clkr.hw,
3585 },
3586 .num_parents = 1,
3587 .flags = CLK_SET_RATE_PARENT,
3588 .ops = &clk_branch2_ops,
3589 },
3590 },
3591 };
3592
3593 static struct clk_branch gcc_pcie3b_phy_rchng_clk = {
3594 .halt_reg = 0xa2040,
3595 .halt_check = BRANCH_HALT_VOTED,
3596 .clkr = {
3597 .enable_reg = 0x52018,
3598 .enable_mask = BIT(4),
3599 .hw.init = &(const struct clk_init_data) {
3600 .name = "gcc_pcie3b_phy_rchng_clk",
3601 .parent_hws = (const struct clk_hw*[]){
3602 &gcc_pcie_3b_phy_rchng_clk_src.clkr.hw,
3603 },
3604 .num_parents = 1,
3605 .flags = CLK_SET_RATE_PARENT,
3606 .ops = &clk_branch2_ops,
3607 },
3608 },
3609 };
3610
3611 static struct clk_branch gcc_pcie4_phy_rchng_clk = {
3612 .halt_reg = 0x6b040,
3613 .halt_check = BRANCH_HALT_VOTED,
3614 .clkr = {
3615 .enable_reg = 0x52000,
3616 .enable_mask = BIT(22),
3617 .hw.init = &(const struct clk_init_data) {
3618 .name = "gcc_pcie4_phy_rchng_clk",
3619 .parent_hws = (const struct clk_hw*[]){
3620 &gcc_pcie_4_phy_rchng_clk_src.clkr.hw,
3621 },
3622 .num_parents = 1,
3623 .flags = CLK_SET_RATE_PARENT,
3624 .ops = &clk_branch2_ops,
3625 },
3626 },
3627 };
3628
3629 static struct clk_branch gcc_pcie_0_aux_clk = {
3630 .halt_reg = 0xa4028,
3631 .halt_check = BRANCH_HALT_VOTED,
3632 .clkr = {
3633 .enable_reg = 0x52018,
3634 .enable_mask = BIT(9),
3635 .hw.init = &(const struct clk_init_data) {
3636 .name = "gcc_pcie_0_aux_clk",
3637 .parent_hws = (const struct clk_hw*[]){
3638 &gcc_pcie_0_aux_clk_src.clkr.hw,
3639 },
3640 .num_parents = 1,
3641 .flags = CLK_SET_RATE_PARENT,
3642 .ops = &clk_branch2_ops,
3643 },
3644 },
3645 };
3646
3647 static struct clk_branch gcc_pcie_0_cfg_ahb_clk = {
3648 .halt_reg = 0xa4024,
3649 .halt_check = BRANCH_HALT_VOTED,
3650 .hwcg_reg = 0xa4024,
3651 .hwcg_bit = 1,
3652 .clkr = {
3653 .enable_reg = 0x52018,
3654 .enable_mask = BIT(8),
3655 .hw.init = &(const struct clk_init_data) {
3656 .name = "gcc_pcie_0_cfg_ahb_clk",
3657 .ops = &clk_branch2_ops,
3658 },
3659 },
3660 };
3661
3662 static struct clk_branch gcc_pcie_0_mstr_axi_clk = {
3663 .halt_reg = 0xa401c,
3664 .halt_check = BRANCH_HALT_SKIP,
3665 .hwcg_reg = 0xa401c,
3666 .hwcg_bit = 1,
3667 .clkr = {
3668 .enable_reg = 0x52018,
3669 .enable_mask = BIT(7),
3670 .hw.init = &(const struct clk_init_data) {
3671 .name = "gcc_pcie_0_mstr_axi_clk",
3672 .ops = &clk_branch2_ops,
3673 },
3674 },
3675 };
3676
3677 static struct clk_branch gcc_pcie_0_pipe_clk = {
3678 .halt_reg = 0xa4030,
3679 .halt_check = BRANCH_HALT_SKIP,
3680 .clkr = {
3681 .enable_reg = 0x52018,
3682 .enable_mask = BIT(10),
3683 .hw.init = &(const struct clk_init_data) {
3684 .name = "gcc_pcie_0_pipe_clk",
3685 .parent_hws = (const struct clk_hw*[]){
3686 &gcc_usb4_phy_pcie_pipe_mux_clk_src.clkr.hw,
3687 },
3688 .num_parents = 1,
3689 .flags = CLK_SET_RATE_PARENT,
3690 .ops = &clk_branch2_ops,
3691 },
3692 },
3693 };
3694
3695 static struct clk_branch gcc_pcie_0_slv_axi_clk = {
3696 .halt_reg = 0xa4014,
3697 .halt_check = BRANCH_HALT_VOTED,
3698 .hwcg_reg = 0xa4014,
3699 .hwcg_bit = 1,
3700 .clkr = {
3701 .enable_reg = 0x52018,
3702 .enable_mask = BIT(6),
3703 .hw.init = &(const struct clk_init_data) {
3704 .name = "gcc_pcie_0_slv_axi_clk",
3705 .ops = &clk_branch2_ops,
3706 },
3707 },
3708 };
3709
3710 static struct clk_branch gcc_pcie_0_slv_q2a_axi_clk = {
3711 .halt_reg = 0xa4010,
3712 .halt_check = BRANCH_HALT_VOTED,
3713 .clkr = {
3714 .enable_reg = 0x52018,
3715 .enable_mask = BIT(5),
3716 .hw.init = &(const struct clk_init_data) {
3717 .name = "gcc_pcie_0_slv_q2a_axi_clk",
3718 .ops = &clk_branch2_ops,
3719 },
3720 },
3721 };
3722
3723 static struct clk_branch gcc_pcie_1_aux_clk = {
3724 .halt_reg = 0x8d028,
3725 .halt_check = BRANCH_HALT_VOTED,
3726 .clkr = {
3727 .enable_reg = 0x52000,
3728 .enable_mask = BIT(29),
3729 .hw.init = &(const struct clk_init_data) {
3730 .name = "gcc_pcie_1_aux_clk",
3731 .parent_hws = (const struct clk_hw*[]){
3732 &gcc_pcie_1_aux_clk_src.clkr.hw,
3733 },
3734 .num_parents = 1,
3735 .flags = CLK_SET_RATE_PARENT,
3736 .ops = &clk_branch2_ops,
3737 },
3738 },
3739 };
3740
3741 static struct clk_branch gcc_pcie_1_cfg_ahb_clk = {
3742 .halt_reg = 0x8d024,
3743 .halt_check = BRANCH_HALT_VOTED,
3744 .hwcg_reg = 0x8d024,
3745 .hwcg_bit = 1,
3746 .clkr = {
3747 .enable_reg = 0x52000,
3748 .enable_mask = BIT(28),
3749 .hw.init = &(const struct clk_init_data) {
3750 .name = "gcc_pcie_1_cfg_ahb_clk",
3751 .ops = &clk_branch2_ops,
3752 },
3753 },
3754 };
3755
3756 static struct clk_branch gcc_pcie_1_mstr_axi_clk = {
3757 .halt_reg = 0x8d01c,
3758 .halt_check = BRANCH_HALT_SKIP,
3759 .hwcg_reg = 0x8d01c,
3760 .hwcg_bit = 1,
3761 .clkr = {
3762 .enable_reg = 0x52000,
3763 .enable_mask = BIT(27),
3764 .hw.init = &(const struct clk_init_data) {
3765 .name = "gcc_pcie_1_mstr_axi_clk",
3766 .ops = &clk_branch2_ops,
3767 },
3768 },
3769 };
3770
3771 static struct clk_branch gcc_pcie_1_pipe_clk = {
3772 .halt_reg = 0x8d030,
3773 .halt_check = BRANCH_HALT_SKIP,
3774 .clkr = {
3775 .enable_reg = 0x52000,
3776 .enable_mask = BIT(30),
3777 .hw.init = &(const struct clk_init_data) {
3778 .name = "gcc_pcie_1_pipe_clk",
3779 .parent_hws = (const struct clk_hw*[]){
3780 &gcc_usb4_1_phy_pcie_pipe_mux_clk_src.clkr.hw,
3781 },
3782 .num_parents = 1,
3783 .flags = CLK_SET_RATE_PARENT,
3784 .ops = &clk_branch2_ops,
3785 },
3786 },
3787 };
3788
3789 static struct clk_branch gcc_pcie_1_slv_axi_clk = {
3790 .halt_reg = 0x8d014,
3791 .halt_check = BRANCH_HALT_VOTED,
3792 .hwcg_reg = 0x8d014,
3793 .hwcg_bit = 1,
3794 .clkr = {
3795 .enable_reg = 0x52000,
3796 .enable_mask = BIT(26),
3797 .hw.init = &(const struct clk_init_data) {
3798 .name = "gcc_pcie_1_slv_axi_clk",
3799 .ops = &clk_branch2_ops,
3800 },
3801 },
3802 };
3803
3804 static struct clk_branch gcc_pcie_1_slv_q2a_axi_clk = {
3805 .halt_reg = 0x8d010,
3806 .halt_check = BRANCH_HALT_VOTED,
3807 .clkr = {
3808 .enable_reg = 0x52000,
3809 .enable_mask = BIT(25),
3810 .hw.init = &(const struct clk_init_data) {
3811 .name = "gcc_pcie_1_slv_q2a_axi_clk",
3812 .ops = &clk_branch2_ops,
3813 },
3814 },
3815 };
3816
3817 static struct clk_branch gcc_pcie_2a2b_clkref_clk = {
3818 .halt_reg = 0x8c034,
3819 .halt_check = BRANCH_HALT,
3820 .clkr = {
3821 .enable_reg = 0x8c034,
3822 .enable_mask = BIT(0),
3823 .hw.init = &(const struct clk_init_data) {
3824 .name = "gcc_pcie_2a2b_clkref_clk",
3825 .ops = &clk_branch2_ops,
3826 },
3827 },
3828 };
3829
3830 static struct clk_branch gcc_pcie_2a_aux_clk = {
3831 .halt_reg = 0x9d028,
3832 .halt_check = BRANCH_HALT_VOTED,
3833 .clkr = {
3834 .enable_reg = 0x52010,
3835 .enable_mask = BIT(13),
3836 .hw.init = &(const struct clk_init_data) {
3837 .name = "gcc_pcie_2a_aux_clk",
3838 .parent_hws = (const struct clk_hw*[]){
3839 &gcc_pcie_2a_aux_clk_src.clkr.hw,
3840 },
3841 .num_parents = 1,
3842 .flags = CLK_SET_RATE_PARENT,
3843 .ops = &clk_branch2_ops,
3844 },
3845 },
3846 };
3847
3848 static struct clk_branch gcc_pcie_2a_cfg_ahb_clk = {
3849 .halt_reg = 0x9d024,
3850 .halt_check = BRANCH_HALT_VOTED,
3851 .hwcg_reg = 0x9d024,
3852 .hwcg_bit = 1,
3853 .clkr = {
3854 .enable_reg = 0x52010,
3855 .enable_mask = BIT(12),
3856 .hw.init = &(const struct clk_init_data) {
3857 .name = "gcc_pcie_2a_cfg_ahb_clk",
3858 .ops = &clk_branch2_ops,
3859 },
3860 },
3861 };
3862
3863 static struct clk_branch gcc_pcie_2a_mstr_axi_clk = {
3864 .halt_reg = 0x9d01c,
3865 .halt_check = BRANCH_HALT_SKIP,
3866 .hwcg_reg = 0x9d01c,
3867 .hwcg_bit = 1,
3868 .clkr = {
3869 .enable_reg = 0x52010,
3870 .enable_mask = BIT(11),
3871 .hw.init = &(const struct clk_init_data) {
3872 .name = "gcc_pcie_2a_mstr_axi_clk",
3873 .ops = &clk_branch2_ops,
3874 },
3875 },
3876 };
3877
3878 static struct clk_branch gcc_pcie_2a_pipe_clk = {
3879 .halt_reg = 0x9d030,
3880 .halt_check = BRANCH_HALT_SKIP,
3881 .clkr = {
3882 .enable_reg = 0x52010,
3883 .enable_mask = BIT(14),
3884 .hw.init = &(const struct clk_init_data) {
3885 .name = "gcc_pcie_2a_pipe_clk",
3886 .parent_hws = (const struct clk_hw*[]){
3887 &gcc_pcie_2a_pipe_clk_src.clkr.hw,
3888 },
3889 .num_parents = 1,
3890 .flags = CLK_SET_RATE_PARENT,
3891 .ops = &clk_branch2_ops,
3892 },
3893 },
3894 };
3895
3896 static struct clk_branch gcc_pcie_2a_pipediv2_clk = {
3897 .halt_reg = 0x9d038,
3898 .halt_check = BRANCH_HALT_SKIP,
3899 .clkr = {
3900 .enable_reg = 0x52018,
3901 .enable_mask = BIT(22),
3902 .hw.init = &(const struct clk_init_data) {
3903 .name = "gcc_pcie_2a_pipediv2_clk",
3904 .parent_hws = (const struct clk_hw*[]){
3905 &gcc_pcie_2a_pipe_div_clk_src.clkr.hw,
3906 },
3907 .num_parents = 1,
3908 .flags = CLK_SET_RATE_PARENT,
3909 .ops = &clk_branch2_ops,
3910 },
3911 },
3912 };
3913
3914 static struct clk_branch gcc_pcie_2a_slv_axi_clk = {
3915 .halt_reg = 0x9d014,
3916 .halt_check = BRANCH_HALT_VOTED,
3917 .hwcg_reg = 0x9d014,
3918 .hwcg_bit = 1,
3919 .clkr = {
3920 .enable_reg = 0x52010,
3921 .enable_mask = BIT(10),
3922 .hw.init = &(const struct clk_init_data) {
3923 .name = "gcc_pcie_2a_slv_axi_clk",
3924 .ops = &clk_branch2_ops,
3925 },
3926 },
3927 };
3928
3929 static struct clk_branch gcc_pcie_2a_slv_q2a_axi_clk = {
3930 .halt_reg = 0x9d010,
3931 .halt_check = BRANCH_HALT_VOTED,
3932 .clkr = {
3933 .enable_reg = 0x52018,
3934 .enable_mask = BIT(12),
3935 .hw.init = &(const struct clk_init_data) {
3936 .name = "gcc_pcie_2a_slv_q2a_axi_clk",
3937 .ops = &clk_branch2_ops,
3938 },
3939 },
3940 };
3941
3942 static struct clk_branch gcc_pcie_2b_aux_clk = {
3943 .halt_reg = 0x9e028,
3944 .halt_check = BRANCH_HALT_VOTED,
3945 .clkr = {
3946 .enable_reg = 0x52010,
3947 .enable_mask = BIT(20),
3948 .hw.init = &(const struct clk_init_data) {
3949 .name = "gcc_pcie_2b_aux_clk",
3950 .parent_hws = (const struct clk_hw*[]){
3951 &gcc_pcie_2b_aux_clk_src.clkr.hw,
3952 },
3953 .num_parents = 1,
3954 .flags = CLK_SET_RATE_PARENT,
3955 .ops = &clk_branch2_ops,
3956 },
3957 },
3958 };
3959
3960 static struct clk_branch gcc_pcie_2b_cfg_ahb_clk = {
3961 .halt_reg = 0x9e024,
3962 .halt_check = BRANCH_HALT_VOTED,
3963 .hwcg_reg = 0x9e024,
3964 .hwcg_bit = 1,
3965 .clkr = {
3966 .enable_reg = 0x52010,
3967 .enable_mask = BIT(19),
3968 .hw.init = &(const struct clk_init_data) {
3969 .name = "gcc_pcie_2b_cfg_ahb_clk",
3970 .ops = &clk_branch2_ops,
3971 },
3972 },
3973 };
3974
3975 static struct clk_branch gcc_pcie_2b_mstr_axi_clk = {
3976 .halt_reg = 0x9e01c,
3977 .halt_check = BRANCH_HALT_SKIP,
3978 .hwcg_reg = 0x9e01c,
3979 .hwcg_bit = 1,
3980 .clkr = {
3981 .enable_reg = 0x52010,
3982 .enable_mask = BIT(18),
3983 .hw.init = &(const struct clk_init_data) {
3984 .name = "gcc_pcie_2b_mstr_axi_clk",
3985 .ops = &clk_branch2_ops,
3986 },
3987 },
3988 };
3989
3990 static struct clk_branch gcc_pcie_2b_pipe_clk = {
3991 .halt_reg = 0x9e030,
3992 .halt_check = BRANCH_HALT_SKIP,
3993 .clkr = {
3994 .enable_reg = 0x52010,
3995 .enable_mask = BIT(21),
3996 .hw.init = &(const struct clk_init_data) {
3997 .name = "gcc_pcie_2b_pipe_clk",
3998 .parent_hws = (const struct clk_hw*[]){
3999 &gcc_pcie_2b_pipe_clk_src.clkr.hw,
4000 },
4001 .num_parents = 1,
4002 .flags = CLK_SET_RATE_PARENT,
4003 .ops = &clk_branch2_ops,
4004 },
4005 },
4006 };
4007
4008 static struct clk_branch gcc_pcie_2b_pipediv2_clk = {
4009 .halt_reg = 0x9e038,
4010 .halt_check = BRANCH_HALT_SKIP,
4011 .clkr = {
4012 .enable_reg = 0x52018,
4013 .enable_mask = BIT(23),
4014 .hw.init = &(const struct clk_init_data) {
4015 .name = "gcc_pcie_2b_pipediv2_clk",
4016 .parent_hws = (const struct clk_hw*[]){
4017 &gcc_pcie_2b_pipe_div_clk_src.clkr.hw,
4018 },
4019 .num_parents = 1,
4020 .flags = CLK_SET_RATE_PARENT,
4021 .ops = &clk_branch2_ops,
4022 },
4023 },
4024 };
4025
4026 static struct clk_branch gcc_pcie_2b_slv_axi_clk = {
4027 .halt_reg = 0x9e014,
4028 .halt_check = BRANCH_HALT_VOTED,
4029 .hwcg_reg = 0x9e014,
4030 .hwcg_bit = 1,
4031 .clkr = {
4032 .enable_reg = 0x52010,
4033 .enable_mask = BIT(17),
4034 .hw.init = &(const struct clk_init_data) {
4035 .name = "gcc_pcie_2b_slv_axi_clk",
4036 .ops = &clk_branch2_ops,
4037 },
4038 },
4039 };
4040
4041 static struct clk_branch gcc_pcie_2b_slv_q2a_axi_clk = {
4042 .halt_reg = 0x9e010,
4043 .halt_check = BRANCH_HALT_VOTED,
4044 .clkr = {
4045 .enable_reg = 0x52010,
4046 .enable_mask = BIT(16),
4047 .hw.init = &(const struct clk_init_data) {
4048 .name = "gcc_pcie_2b_slv_q2a_axi_clk",
4049 .ops = &clk_branch2_ops,
4050 },
4051 },
4052 };
4053
4054 static struct clk_branch gcc_pcie_3a3b_clkref_clk = {
4055 .halt_reg = 0x8c038,
4056 .halt_check = BRANCH_HALT,
4057 .clkr = {
4058 .enable_reg = 0x8c038,
4059 .enable_mask = BIT(0),
4060 .hw.init = &(const struct clk_init_data) {
4061 .name = "gcc_pcie_3a3b_clkref_clk",
4062 .ops = &clk_branch2_ops,
4063 },
4064 },
4065 };
4066
4067 static struct clk_branch gcc_pcie_3a_aux_clk = {
4068 .halt_reg = 0xa0028,
4069 .halt_check = BRANCH_HALT_VOTED,
4070 .clkr = {
4071 .enable_reg = 0x52010,
4072 .enable_mask = BIT(27),
4073 .hw.init = &(const struct clk_init_data) {
4074 .name = "gcc_pcie_3a_aux_clk",
4075 .parent_hws = (const struct clk_hw*[]){
4076 &gcc_pcie_3a_aux_clk_src.clkr.hw,
4077 },
4078 .num_parents = 1,
4079 .flags = CLK_SET_RATE_PARENT,
4080 .ops = &clk_branch2_ops,
4081 },
4082 },
4083 };
4084
4085 static struct clk_branch gcc_pcie_3a_cfg_ahb_clk = {
4086 .halt_reg = 0xa0024,
4087 .halt_check = BRANCH_HALT_VOTED,
4088 .hwcg_reg = 0xa0024,
4089 .hwcg_bit = 1,
4090 .clkr = {
4091 .enable_reg = 0x52010,
4092 .enable_mask = BIT(26),
4093 .hw.init = &(const struct clk_init_data) {
4094 .name = "gcc_pcie_3a_cfg_ahb_clk",
4095 .ops = &clk_branch2_ops,
4096 },
4097 },
4098 };
4099
4100 static struct clk_branch gcc_pcie_3a_mstr_axi_clk = {
4101 .halt_reg = 0xa001c,
4102 .halt_check = BRANCH_HALT_SKIP,
4103 .hwcg_reg = 0xa001c,
4104 .hwcg_bit = 1,
4105 .clkr = {
4106 .enable_reg = 0x52010,
4107 .enable_mask = BIT(25),
4108 .hw.init = &(const struct clk_init_data) {
4109 .name = "gcc_pcie_3a_mstr_axi_clk",
4110 .ops = &clk_branch2_ops,
4111 },
4112 },
4113 };
4114
4115 static struct clk_branch gcc_pcie_3a_pipe_clk = {
4116 .halt_reg = 0xa0030,
4117 .halt_check = BRANCH_HALT_SKIP,
4118 .clkr = {
4119 .enable_reg = 0x52010,
4120 .enable_mask = BIT(28),
4121 .hw.init = &(const struct clk_init_data) {
4122 .name = "gcc_pcie_3a_pipe_clk",
4123 .parent_hws = (const struct clk_hw*[]){
4124 &gcc_pcie_3a_pipe_clk_src.clkr.hw,
4125 },
4126 .num_parents = 1,
4127 .flags = CLK_SET_RATE_PARENT,
4128 .ops = &clk_branch2_ops,
4129 },
4130 },
4131 };
4132
4133 static struct clk_branch gcc_pcie_3a_pipediv2_clk = {
4134 .halt_reg = 0xa0038,
4135 .halt_check = BRANCH_HALT_SKIP,
4136 .clkr = {
4137 .enable_reg = 0x52018,
4138 .enable_mask = BIT(24),
4139 .hw.init = &(const struct clk_init_data) {
4140 .name = "gcc_pcie_3a_pipediv2_clk",
4141 .parent_hws = (const struct clk_hw*[]){
4142 &gcc_pcie_3a_pipe_div_clk_src.clkr.hw,
4143 },
4144 .num_parents = 1,
4145 .flags = CLK_SET_RATE_PARENT,
4146 .ops = &clk_branch2_ops,
4147 },
4148 },
4149 };
4150
4151 static struct clk_branch gcc_pcie_3a_slv_axi_clk = {
4152 .halt_reg = 0xa0014,
4153 .halt_check = BRANCH_HALT_VOTED,
4154 .hwcg_reg = 0xa0014,
4155 .hwcg_bit = 1,
4156 .clkr = {
4157 .enable_reg = 0x52010,
4158 .enable_mask = BIT(24),
4159 .hw.init = &(const struct clk_init_data) {
4160 .name = "gcc_pcie_3a_slv_axi_clk",
4161 .ops = &clk_branch2_ops,
4162 },
4163 },
4164 };
4165
4166 static struct clk_branch gcc_pcie_3a_slv_q2a_axi_clk = {
4167 .halt_reg = 0xa0010,
4168 .halt_check = BRANCH_HALT_VOTED,
4169 .clkr = {
4170 .enable_reg = 0x52010,
4171 .enable_mask = BIT(23),
4172 .hw.init = &(const struct clk_init_data) {
4173 .name = "gcc_pcie_3a_slv_q2a_axi_clk",
4174 .ops = &clk_branch2_ops,
4175 },
4176 },
4177 };
4178
4179 static struct clk_branch gcc_pcie_3b_aux_clk = {
4180 .halt_reg = 0xa2028,
4181 .halt_check = BRANCH_HALT_VOTED,
4182 .clkr = {
4183 .enable_reg = 0x52018,
4184 .enable_mask = BIT(2),
4185 .hw.init = &(const struct clk_init_data) {
4186 .name = "gcc_pcie_3b_aux_clk",
4187 .parent_hws = (const struct clk_hw*[]){
4188 &gcc_pcie_3b_aux_clk_src.clkr.hw,
4189 },
4190 .num_parents = 1,
4191 .flags = CLK_SET_RATE_PARENT,
4192 .ops = &clk_branch2_ops,
4193 },
4194 },
4195 };
4196
4197 static struct clk_branch gcc_pcie_3b_cfg_ahb_clk = {
4198 .halt_reg = 0xa2024,
4199 .halt_check = BRANCH_HALT_VOTED,
4200 .hwcg_reg = 0xa2024,
4201 .hwcg_bit = 1,
4202 .clkr = {
4203 .enable_reg = 0x52018,
4204 .enable_mask = BIT(1),
4205 .hw.init = &(const struct clk_init_data) {
4206 .name = "gcc_pcie_3b_cfg_ahb_clk",
4207 .ops = &clk_branch2_ops,
4208 },
4209 },
4210 };
4211
4212 static struct clk_branch gcc_pcie_3b_mstr_axi_clk = {
4213 .halt_reg = 0xa201c,
4214 .halt_check = BRANCH_HALT_SKIP,
4215 .hwcg_reg = 0xa201c,
4216 .hwcg_bit = 1,
4217 .clkr = {
4218 .enable_reg = 0x52018,
4219 .enable_mask = BIT(0),
4220 .hw.init = &(const struct clk_init_data) {
4221 .name = "gcc_pcie_3b_mstr_axi_clk",
4222 .ops = &clk_branch2_ops,
4223 },
4224 },
4225 };
4226
4227 static struct clk_branch gcc_pcie_3b_pipe_clk = {
4228 .halt_reg = 0xa2030,
4229 .halt_check = BRANCH_HALT_SKIP,
4230 .clkr = {
4231 .enable_reg = 0x52018,
4232 .enable_mask = BIT(3),
4233 .hw.init = &(const struct clk_init_data) {
4234 .name = "gcc_pcie_3b_pipe_clk",
4235 .parent_hws = (const struct clk_hw*[]){
4236 &gcc_pcie_3b_pipe_clk_src.clkr.hw,
4237 },
4238 .num_parents = 1,
4239 .flags = CLK_SET_RATE_PARENT,
4240 .ops = &clk_branch2_ops,
4241 },
4242 },
4243 };
4244
4245 static struct clk_branch gcc_pcie_3b_pipediv2_clk = {
4246 .halt_reg = 0xa2038,
4247 .halt_check = BRANCH_HALT_SKIP,
4248 .clkr = {
4249 .enable_reg = 0x52018,
4250 .enable_mask = BIT(25),
4251 .hw.init = &(const struct clk_init_data) {
4252 .name = "gcc_pcie_3b_pipediv2_clk",
4253 .parent_hws = (const struct clk_hw*[]){
4254 &gcc_pcie_3b_pipe_div_clk_src.clkr.hw,
4255 },
4256 .num_parents = 1,
4257 .flags = CLK_SET_RATE_PARENT,
4258 .ops = &clk_branch2_ops,
4259 },
4260 },
4261 };
4262
4263 static struct clk_branch gcc_pcie_3b_slv_axi_clk = {
4264 .halt_reg = 0xa2014,
4265 .halt_check = BRANCH_HALT_VOTED,
4266 .hwcg_reg = 0xa2014,
4267 .hwcg_bit = 1,
4268 .clkr = {
4269 .enable_reg = 0x52010,
4270 .enable_mask = BIT(31),
4271 .hw.init = &(const struct clk_init_data) {
4272 .name = "gcc_pcie_3b_slv_axi_clk",
4273 .ops = &clk_branch2_ops,
4274 },
4275 },
4276 };
4277
4278 static struct clk_branch gcc_pcie_3b_slv_q2a_axi_clk = {
4279 .halt_reg = 0xa2010,
4280 .halt_check = BRANCH_HALT_VOTED,
4281 .clkr = {
4282 .enable_reg = 0x52010,
4283 .enable_mask = BIT(30),
4284 .hw.init = &(const struct clk_init_data) {
4285 .name = "gcc_pcie_3b_slv_q2a_axi_clk",
4286 .ops = &clk_branch2_ops,
4287 },
4288 },
4289 };
4290
4291 static struct clk_branch gcc_pcie_4_aux_clk = {
4292 .halt_reg = 0x6b028,
4293 .halt_check = BRANCH_HALT_VOTED,
4294 .clkr = {
4295 .enable_reg = 0x52008,
4296 .enable_mask = BIT(3),
4297 .hw.init = &(const struct clk_init_data) {
4298 .name = "gcc_pcie_4_aux_clk",
4299 .parent_hws = (const struct clk_hw*[]){
4300 &gcc_pcie_4_aux_clk_src.clkr.hw,
4301 },
4302 .num_parents = 1,
4303 .flags = CLK_SET_RATE_PARENT,
4304 .ops = &clk_branch2_ops,
4305 },
4306 },
4307 };
4308
4309 static struct clk_branch gcc_pcie_4_cfg_ahb_clk = {
4310 .halt_reg = 0x6b024,
4311 .halt_check = BRANCH_HALT_VOTED,
4312 .hwcg_reg = 0x6b024,
4313 .hwcg_bit = 1,
4314 .clkr = {
4315 .enable_reg = 0x52008,
4316 .enable_mask = BIT(2),
4317 .hw.init = &(const struct clk_init_data) {
4318 .name = "gcc_pcie_4_cfg_ahb_clk",
4319 .ops = &clk_branch2_ops,
4320 },
4321 },
4322 };
4323
4324 static struct clk_branch gcc_pcie_4_clkref_clk = {
4325 .halt_reg = 0x8c030,
4326 .halt_check = BRANCH_HALT,
4327 .clkr = {
4328 .enable_reg = 0x8c030,
4329 .enable_mask = BIT(0),
4330 .hw.init = &(const struct clk_init_data) {
4331 .name = "gcc_pcie_4_clkref_clk",
4332 .ops = &clk_branch2_ops,
4333 },
4334 },
4335 };
4336
4337 static struct clk_branch gcc_pcie_4_mstr_axi_clk = {
4338 .halt_reg = 0x6b01c,
4339 .halt_check = BRANCH_HALT_SKIP,
4340 .hwcg_reg = 0x6b01c,
4341 .hwcg_bit = 1,
4342 .clkr = {
4343 .enable_reg = 0x52008,
4344 .enable_mask = BIT(1),
4345 .hw.init = &(const struct clk_init_data) {
4346 .name = "gcc_pcie_4_mstr_axi_clk",
4347 .ops = &clk_branch2_ops,
4348 },
4349 },
4350 };
4351
4352 static struct clk_branch gcc_pcie_4_pipe_clk = {
4353 .halt_reg = 0x6b030,
4354 .halt_check = BRANCH_HALT_SKIP,
4355 .clkr = {
4356 .enable_reg = 0x52008,
4357 .enable_mask = BIT(4),
4358 .hw.init = &(const struct clk_init_data) {
4359 .name = "gcc_pcie_4_pipe_clk",
4360 .parent_hws = (const struct clk_hw*[]){
4361 &gcc_pcie_4_pipe_clk_src.clkr.hw,
4362 },
4363 .num_parents = 1,
4364 .flags = CLK_SET_RATE_PARENT,
4365 .ops = &clk_branch2_ops,
4366 },
4367 },
4368 };
4369
4370 static struct clk_branch gcc_pcie_4_pipediv2_clk = {
4371 .halt_reg = 0x6b038,
4372 .halt_check = BRANCH_HALT_SKIP,
4373 .clkr = {
4374 .enable_reg = 0x52018,
4375 .enable_mask = BIT(16),
4376 .hw.init = &(const struct clk_init_data) {
4377 .name = "gcc_pcie_4_pipediv2_clk",
4378 .parent_hws = (const struct clk_hw*[]){
4379 &gcc_pcie_4_pipe_div_clk_src.clkr.hw,
4380 },
4381 .num_parents = 1,
4382 .flags = CLK_SET_RATE_PARENT,
4383 .ops = &clk_branch2_ops,
4384 },
4385 },
4386 };
4387
4388 static struct clk_branch gcc_pcie_4_slv_axi_clk = {
4389 .halt_reg = 0x6b014,
4390 .halt_check = BRANCH_HALT_VOTED,
4391 .hwcg_reg = 0x6b014,
4392 .hwcg_bit = 1,
4393 .clkr = {
4394 .enable_reg = 0x52008,
4395 .enable_mask = BIT(0),
4396 .hw.init = &(const struct clk_init_data) {
4397 .name = "gcc_pcie_4_slv_axi_clk",
4398 .ops = &clk_branch2_ops,
4399 },
4400 },
4401 };
4402
4403 static struct clk_branch gcc_pcie_4_slv_q2a_axi_clk = {
4404 .halt_reg = 0x6b010,
4405 .halt_check = BRANCH_HALT_VOTED,
4406 .clkr = {
4407 .enable_reg = 0x52008,
4408 .enable_mask = BIT(5),
4409 .hw.init = &(const struct clk_init_data) {
4410 .name = "gcc_pcie_4_slv_q2a_axi_clk",
4411 .ops = &clk_branch2_ops,
4412 },
4413 },
4414 };
4415
4416 static struct clk_branch gcc_pcie_rscc_ahb_clk = {
4417 .halt_reg = 0xae008,
4418 .halt_check = BRANCH_HALT_VOTED,
4419 .hwcg_reg = 0xae008,
4420 .hwcg_bit = 1,
4421 .clkr = {
4422 .enable_reg = 0x52020,
4423 .enable_mask = BIT(17),
4424 .hw.init = &(const struct clk_init_data) {
4425 .name = "gcc_pcie_rscc_ahb_clk",
4426 .ops = &clk_branch2_ops,
4427 },
4428 },
4429 };
4430
4431 static struct clk_branch gcc_pcie_rscc_xo_clk = {
4432 .halt_reg = 0xae004,
4433 .halt_check = BRANCH_HALT_VOTED,
4434 .clkr = {
4435 .enable_reg = 0x52020,
4436 .enable_mask = BIT(16),
4437 .hw.init = &(const struct clk_init_data) {
4438 .name = "gcc_pcie_rscc_xo_clk",
4439 .parent_hws = (const struct clk_hw*[]){
4440 &gcc_pcie_rscc_xo_clk_src.clkr.hw,
4441 },
4442 .num_parents = 1,
4443 .flags = CLK_SET_RATE_PARENT,
4444 .ops = &clk_branch2_ops,
4445 },
4446 },
4447 };
4448
4449 static struct clk_branch gcc_pcie_throttle_cfg_clk = {
4450 .halt_reg = 0xa6028,
4451 .halt_check = BRANCH_HALT_VOTED,
4452 .clkr = {
4453 .enable_reg = 0x52020,
4454 .enable_mask = BIT(15),
4455 .hw.init = &(const struct clk_init_data) {
4456 .name = "gcc_pcie_throttle_cfg_clk",
4457 .ops = &clk_branch2_ops,
4458 },
4459 },
4460 };
4461
4462 static struct clk_branch gcc_pdm2_clk = {
4463 .halt_reg = 0x3300c,
4464 .halt_check = BRANCH_HALT,
4465 .clkr = {
4466 .enable_reg = 0x3300c,
4467 .enable_mask = BIT(0),
4468 .hw.init = &(const struct clk_init_data) {
4469 .name = "gcc_pdm2_clk",
4470 .parent_hws = (const struct clk_hw*[]){
4471 &gcc_pdm2_clk_src.clkr.hw,
4472 },
4473 .num_parents = 1,
4474 .flags = CLK_SET_RATE_PARENT,
4475 .ops = &clk_branch2_ops,
4476 },
4477 },
4478 };
4479
4480 static struct clk_branch gcc_pdm_ahb_clk = {
4481 .halt_reg = 0x33004,
4482 .halt_check = BRANCH_HALT_VOTED,
4483 .hwcg_reg = 0x33004,
4484 .hwcg_bit = 1,
4485 .clkr = {
4486 .enable_reg = 0x33004,
4487 .enable_mask = BIT(0),
4488 .hw.init = &(const struct clk_init_data) {
4489 .name = "gcc_pdm_ahb_clk",
4490 .ops = &clk_branch2_ops,
4491 },
4492 },
4493 };
4494
4495 static struct clk_branch gcc_pdm_xo4_clk = {
4496 .halt_reg = 0x33008,
4497 .halt_check = BRANCH_HALT,
4498 .clkr = {
4499 .enable_reg = 0x33008,
4500 .enable_mask = BIT(0),
4501 .hw.init = &(const struct clk_init_data) {
4502 .name = "gcc_pdm_xo4_clk",
4503 .ops = &clk_branch2_ops,
4504 },
4505 },
4506 };
4507
4508 static struct clk_branch gcc_qmip_camera_nrt_ahb_clk = {
4509 .halt_reg = 0x26008,
4510 .halt_check = BRANCH_HALT_VOTED,
4511 .hwcg_reg = 0x26008,
4512 .hwcg_bit = 1,
4513 .clkr = {
4514 .enable_reg = 0x26008,
4515 .enable_mask = BIT(0),
4516 .hw.init = &(const struct clk_init_data) {
4517 .name = "gcc_qmip_camera_nrt_ahb_clk",
4518 .ops = &clk_branch2_ops,
4519 },
4520 },
4521 };
4522
4523 static struct clk_branch gcc_qmip_camera_rt_ahb_clk = {
4524 .halt_reg = 0x2600c,
4525 .halt_check = BRANCH_HALT_VOTED,
4526 .hwcg_reg = 0x2600c,
4527 .hwcg_bit = 1,
4528 .clkr = {
4529 .enable_reg = 0x2600c,
4530 .enable_mask = BIT(0),
4531 .hw.init = &(const struct clk_init_data) {
4532 .name = "gcc_qmip_camera_rt_ahb_clk",
4533 .ops = &clk_branch2_ops,
4534 },
4535 },
4536 };
4537
4538 static struct clk_branch gcc_qmip_disp1_ahb_clk = {
4539 .halt_reg = 0xbb008,
4540 .halt_check = BRANCH_HALT_VOTED,
4541 .hwcg_reg = 0xbb008,
4542 .hwcg_bit = 1,
4543 .clkr = {
4544 .enable_reg = 0xbb008,
4545 .enable_mask = BIT(0),
4546 .hw.init = &(const struct clk_init_data) {
4547 .name = "gcc_qmip_disp1_ahb_clk",
4548 .ops = &clk_branch2_ops,
4549 },
4550 },
4551 };
4552
4553 static struct clk_branch gcc_qmip_disp1_rot_ahb_clk = {
4554 .halt_reg = 0xbb00c,
4555 .halt_check = BRANCH_HALT_VOTED,
4556 .hwcg_reg = 0xbb00c,
4557 .hwcg_bit = 1,
4558 .clkr = {
4559 .enable_reg = 0xbb00c,
4560 .enable_mask = BIT(0),
4561 .hw.init = &(const struct clk_init_data) {
4562 .name = "gcc_qmip_disp1_rot_ahb_clk",
4563 .ops = &clk_branch2_ops,
4564 },
4565 },
4566 };
4567
4568 static struct clk_branch gcc_qmip_disp_ahb_clk = {
4569 .halt_reg = 0x27008,
4570 .halt_check = BRANCH_HALT_VOTED,
4571 .hwcg_reg = 0x27008,
4572 .hwcg_bit = 1,
4573 .clkr = {
4574 .enable_reg = 0x27008,
4575 .enable_mask = BIT(0),
4576 .hw.init = &(const struct clk_init_data) {
4577 .name = "gcc_qmip_disp_ahb_clk",
4578 .ops = &clk_branch2_ops,
4579 },
4580 },
4581 };
4582
4583 static struct clk_branch gcc_qmip_disp_rot_ahb_clk = {
4584 .halt_reg = 0x2700c,
4585 .halt_check = BRANCH_HALT_VOTED,
4586 .hwcg_reg = 0x2700c,
4587 .hwcg_bit = 1,
4588 .clkr = {
4589 .enable_reg = 0x2700c,
4590 .enable_mask = BIT(0),
4591 .hw.init = &(const struct clk_init_data) {
4592 .name = "gcc_qmip_disp_rot_ahb_clk",
4593 .ops = &clk_branch2_ops,
4594 },
4595 },
4596 };
4597
4598 static struct clk_branch gcc_qmip_video_cvp_ahb_clk = {
4599 .halt_reg = 0x28008,
4600 .halt_check = BRANCH_HALT_VOTED,
4601 .hwcg_reg = 0x28008,
4602 .hwcg_bit = 1,
4603 .clkr = {
4604 .enable_reg = 0x28008,
4605 .enable_mask = BIT(0),
4606 .hw.init = &(const struct clk_init_data) {
4607 .name = "gcc_qmip_video_cvp_ahb_clk",
4608 .ops = &clk_branch2_ops,
4609 },
4610 },
4611 };
4612
4613 static struct clk_branch gcc_qmip_video_vcodec_ahb_clk = {
4614 .halt_reg = 0x2800c,
4615 .halt_check = BRANCH_HALT_VOTED,
4616 .hwcg_reg = 0x2800c,
4617 .hwcg_bit = 1,
4618 .clkr = {
4619 .enable_reg = 0x2800c,
4620 .enable_mask = BIT(0),
4621 .hw.init = &(const struct clk_init_data) {
4622 .name = "gcc_qmip_video_vcodec_ahb_clk",
4623 .ops = &clk_branch2_ops,
4624 },
4625 },
4626 };
4627
4628 static struct clk_branch gcc_qupv3_wrap0_core_2x_clk = {
4629 .halt_reg = 0x17014,
4630 .halt_check = BRANCH_HALT_VOTED,
4631 .clkr = {
4632 .enable_reg = 0x52008,
4633 .enable_mask = BIT(9),
4634 .hw.init = &(const struct clk_init_data) {
4635 .name = "gcc_qupv3_wrap0_core_2x_clk",
4636 .ops = &clk_branch2_ops,
4637 },
4638 },
4639 };
4640
4641 static struct clk_branch gcc_qupv3_wrap0_core_clk = {
4642 .halt_reg = 0x1700c,
4643 .halt_check = BRANCH_HALT_VOTED,
4644 .clkr = {
4645 .enable_reg = 0x52008,
4646 .enable_mask = BIT(8),
4647 .hw.init = &(const struct clk_init_data) {
4648 .name = "gcc_qupv3_wrap0_core_clk",
4649 .ops = &clk_branch2_ops,
4650 },
4651 },
4652 };
4653
4654 static struct clk_branch gcc_qupv3_wrap0_qspi0_clk = {
4655 .halt_reg = 0x17ac4,
4656 .halt_check = BRANCH_HALT_VOTED,
4657 .clkr = {
4658 .enable_reg = 0x52020,
4659 .enable_mask = BIT(0),
4660 .hw.init = &(const struct clk_init_data) {
4661 .name = "gcc_qupv3_wrap0_qspi0_clk",
4662 .parent_hws = (const struct clk_hw*[]){
4663 &gcc_qupv3_wrap0_s4_clk_src.clkr.hw,
4664 },
4665 .num_parents = 1,
4666 .flags = CLK_SET_RATE_PARENT,
4667 .ops = &clk_branch2_ops,
4668 },
4669 },
4670 };
4671
4672 static struct clk_branch gcc_qupv3_wrap0_s0_clk = {
4673 .halt_reg = 0x17144,
4674 .halt_check = BRANCH_HALT_VOTED,
4675 .clkr = {
4676 .enable_reg = 0x52008,
4677 .enable_mask = BIT(10),
4678 .hw.init = &(const struct clk_init_data) {
4679 .name = "gcc_qupv3_wrap0_s0_clk",
4680 .parent_hws = (const struct clk_hw*[]){
4681 &gcc_qupv3_wrap0_s0_clk_src.clkr.hw,
4682 },
4683 .num_parents = 1,
4684 .flags = CLK_SET_RATE_PARENT,
4685 .ops = &clk_branch2_ops,
4686 },
4687 },
4688 };
4689
4690 static struct clk_branch gcc_qupv3_wrap0_s1_clk = {
4691 .halt_reg = 0x17274,
4692 .halt_check = BRANCH_HALT_VOTED,
4693 .clkr = {
4694 .enable_reg = 0x52008,
4695 .enable_mask = BIT(11),
4696 .hw.init = &(const struct clk_init_data) {
4697 .name = "gcc_qupv3_wrap0_s1_clk",
4698 .parent_hws = (const struct clk_hw*[]){
4699 &gcc_qupv3_wrap0_s1_clk_src.clkr.hw,
4700 },
4701 .num_parents = 1,
4702 .flags = CLK_SET_RATE_PARENT,
4703 .ops = &clk_branch2_ops,
4704 },
4705 },
4706 };
4707
4708 static struct clk_branch gcc_qupv3_wrap0_s2_clk = {
4709 .halt_reg = 0x173a4,
4710 .halt_check = BRANCH_HALT_VOTED,
4711 .clkr = {
4712 .enable_reg = 0x52008,
4713 .enable_mask = BIT(12),
4714 .hw.init = &(const struct clk_init_data) {
4715 .name = "gcc_qupv3_wrap0_s2_clk",
4716 .parent_hws = (const struct clk_hw*[]){
4717 &gcc_qupv3_wrap0_s2_clk_src.clkr.hw,
4718 },
4719 .num_parents = 1,
4720 .flags = CLK_SET_RATE_PARENT,
4721 .ops = &clk_branch2_ops,
4722 },
4723 },
4724 };
4725
4726 static struct clk_branch gcc_qupv3_wrap0_s3_clk = {
4727 .halt_reg = 0x174d4,
4728 .halt_check = BRANCH_HALT_VOTED,
4729 .clkr = {
4730 .enable_reg = 0x52008,
4731 .enable_mask = BIT(13),
4732 .hw.init = &(const struct clk_init_data) {
4733 .name = "gcc_qupv3_wrap0_s3_clk",
4734 .parent_hws = (const struct clk_hw*[]){
4735 &gcc_qupv3_wrap0_s3_clk_src.clkr.hw,
4736 },
4737 .num_parents = 1,
4738 .flags = CLK_SET_RATE_PARENT,
4739 .ops = &clk_branch2_ops,
4740 },
4741 },
4742 };
4743
4744 static struct clk_branch gcc_qupv3_wrap0_s4_clk = {
4745 .halt_reg = 0x17604,
4746 .halt_check = BRANCH_HALT_VOTED,
4747 .clkr = {
4748 .enable_reg = 0x52008,
4749 .enable_mask = BIT(14),
4750 .hw.init = &(const struct clk_init_data) {
4751 .name = "gcc_qupv3_wrap0_s4_clk",
4752 .parent_hws = (const struct clk_hw*[]){
4753 &gcc_qupv3_wrap0_s4_div_clk_src.clkr.hw,
4754 },
4755 .num_parents = 1,
4756 .flags = CLK_SET_RATE_PARENT,
4757 .ops = &clk_branch2_ops,
4758 },
4759 },
4760 };
4761
4762 static struct clk_branch gcc_qupv3_wrap0_s5_clk = {
4763 .halt_reg = 0x17734,
4764 .halt_check = BRANCH_HALT_VOTED,
4765 .clkr = {
4766 .enable_reg = 0x52008,
4767 .enable_mask = BIT(15),
4768 .hw.init = &(const struct clk_init_data) {
4769 .name = "gcc_qupv3_wrap0_s5_clk",
4770 .parent_hws = (const struct clk_hw*[]){
4771 &gcc_qupv3_wrap0_s5_clk_src.clkr.hw,
4772 },
4773 .num_parents = 1,
4774 .flags = CLK_SET_RATE_PARENT,
4775 .ops = &clk_branch2_ops,
4776 },
4777 },
4778 };
4779
4780 static struct clk_branch gcc_qupv3_wrap0_s6_clk = {
4781 .halt_reg = 0x17864,
4782 .halt_check = BRANCH_HALT_VOTED,
4783 .clkr = {
4784 .enable_reg = 0x52008,
4785 .enable_mask = BIT(16),
4786 .hw.init = &(const struct clk_init_data) {
4787 .name = "gcc_qupv3_wrap0_s6_clk",
4788 .parent_hws = (const struct clk_hw*[]){
4789 &gcc_qupv3_wrap0_s6_clk_src.clkr.hw,
4790 },
4791 .num_parents = 1,
4792 .flags = CLK_SET_RATE_PARENT,
4793 .ops = &clk_branch2_ops,
4794 },
4795 },
4796 };
4797
4798 static struct clk_branch gcc_qupv3_wrap0_s7_clk = {
4799 .halt_reg = 0x17994,
4800 .halt_check = BRANCH_HALT_VOTED,
4801 .clkr = {
4802 .enable_reg = 0x52008,
4803 .enable_mask = BIT(17),
4804 .hw.init = &(const struct clk_init_data) {
4805 .name = "gcc_qupv3_wrap0_s7_clk",
4806 .parent_hws = (const struct clk_hw*[]){
4807 &gcc_qupv3_wrap0_s7_clk_src.clkr.hw,
4808 },
4809 .num_parents = 1,
4810 .flags = CLK_SET_RATE_PARENT,
4811 .ops = &clk_branch2_ops,
4812 },
4813 },
4814 };
4815
4816 static struct clk_branch gcc_qupv3_wrap1_core_2x_clk = {
4817 .halt_reg = 0x18014,
4818 .halt_check = BRANCH_HALT_VOTED,
4819 .clkr = {
4820 .enable_reg = 0x52008,
4821 .enable_mask = BIT(18),
4822 .hw.init = &(const struct clk_init_data) {
4823 .name = "gcc_qupv3_wrap1_core_2x_clk",
4824 .ops = &clk_branch2_ops,
4825 },
4826 },
4827 };
4828
4829 static struct clk_branch gcc_qupv3_wrap1_core_clk = {
4830 .halt_reg = 0x1800c,
4831 .halt_check = BRANCH_HALT_VOTED,
4832 .clkr = {
4833 .enable_reg = 0x52008,
4834 .enable_mask = BIT(19),
4835 .hw.init = &(const struct clk_init_data) {
4836 .name = "gcc_qupv3_wrap1_core_clk",
4837 .ops = &clk_branch2_ops,
4838 },
4839 },
4840 };
4841
4842 static struct clk_branch gcc_qupv3_wrap1_qspi0_clk = {
4843 .halt_reg = 0x18ac4,
4844 .halt_check = BRANCH_HALT_VOTED,
4845 .clkr = {
4846 .enable_reg = 0x52020,
4847 .enable_mask = BIT(2),
4848 .hw.init = &(const struct clk_init_data) {
4849 .name = "gcc_qupv3_wrap1_qspi0_clk",
4850 .parent_hws = (const struct clk_hw*[]){
4851 &gcc_qupv3_wrap1_s4_clk_src.clkr.hw,
4852 },
4853 .num_parents = 1,
4854 .flags = CLK_SET_RATE_PARENT,
4855 .ops = &clk_branch2_ops,
4856 },
4857 },
4858 };
4859
4860 static struct clk_branch gcc_qupv3_wrap1_s0_clk = {
4861 .halt_reg = 0x18144,
4862 .halt_check = BRANCH_HALT_VOTED,
4863 .clkr = {
4864 .enable_reg = 0x52008,
4865 .enable_mask = BIT(22),
4866 .hw.init = &(const struct clk_init_data) {
4867 .name = "gcc_qupv3_wrap1_s0_clk",
4868 .parent_hws = (const struct clk_hw*[]){
4869 &gcc_qupv3_wrap1_s0_clk_src.clkr.hw,
4870 },
4871 .num_parents = 1,
4872 .flags = CLK_SET_RATE_PARENT,
4873 .ops = &clk_branch2_ops,
4874 },
4875 },
4876 };
4877
4878 static struct clk_branch gcc_qupv3_wrap1_s1_clk = {
4879 .halt_reg = 0x18274,
4880 .halt_check = BRANCH_HALT_VOTED,
4881 .clkr = {
4882 .enable_reg = 0x52008,
4883 .enable_mask = BIT(23),
4884 .hw.init = &(const struct clk_init_data) {
4885 .name = "gcc_qupv3_wrap1_s1_clk",
4886 .parent_hws = (const struct clk_hw*[]){
4887 &gcc_qupv3_wrap1_s1_clk_src.clkr.hw,
4888 },
4889 .num_parents = 1,
4890 .flags = CLK_SET_RATE_PARENT,
4891 .ops = &clk_branch2_ops,
4892 },
4893 },
4894 };
4895
4896 static struct clk_branch gcc_qupv3_wrap1_s2_clk = {
4897 .halt_reg = 0x183a4,
4898 .halt_check = BRANCH_HALT_VOTED,
4899 .clkr = {
4900 .enable_reg = 0x52008,
4901 .enable_mask = BIT(24),
4902 .hw.init = &(const struct clk_init_data) {
4903 .name = "gcc_qupv3_wrap1_s2_clk",
4904 .parent_hws = (const struct clk_hw*[]){
4905 &gcc_qupv3_wrap1_s2_clk_src.clkr.hw,
4906 },
4907 .num_parents = 1,
4908 .flags = CLK_SET_RATE_PARENT,
4909 .ops = &clk_branch2_ops,
4910 },
4911 },
4912 };
4913
4914 static struct clk_branch gcc_qupv3_wrap1_s3_clk = {
4915 .halt_reg = 0x184d4,
4916 .halt_check = BRANCH_HALT_VOTED,
4917 .clkr = {
4918 .enable_reg = 0x52008,
4919 .enable_mask = BIT(25),
4920 .hw.init = &(const struct clk_init_data) {
4921 .name = "gcc_qupv3_wrap1_s3_clk",
4922 .parent_hws = (const struct clk_hw*[]){
4923 &gcc_qupv3_wrap1_s3_clk_src.clkr.hw,
4924 },
4925 .num_parents = 1,
4926 .flags = CLK_SET_RATE_PARENT,
4927 .ops = &clk_branch2_ops,
4928 },
4929 },
4930 };
4931
4932 static struct clk_branch gcc_qupv3_wrap1_s4_clk = {
4933 .halt_reg = 0x18604,
4934 .halt_check = BRANCH_HALT_VOTED,
4935 .clkr = {
4936 .enable_reg = 0x52008,
4937 .enable_mask = BIT(26),
4938 .hw.init = &(const struct clk_init_data) {
4939 .name = "gcc_qupv3_wrap1_s4_clk",
4940 .parent_hws = (const struct clk_hw*[]){
4941 &gcc_qupv3_wrap1_s4_div_clk_src.clkr.hw,
4942 },
4943 .num_parents = 1,
4944 .flags = CLK_SET_RATE_PARENT,
4945 .ops = &clk_branch2_ops,
4946 },
4947 },
4948 };
4949
4950 static struct clk_branch gcc_qupv3_wrap1_s5_clk = {
4951 .halt_reg = 0x18734,
4952 .halt_check = BRANCH_HALT_VOTED,
4953 .clkr = {
4954 .enable_reg = 0x52008,
4955 .enable_mask = BIT(27),
4956 .hw.init = &(const struct clk_init_data) {
4957 .name = "gcc_qupv3_wrap1_s5_clk",
4958 .parent_hws = (const struct clk_hw*[]){
4959 &gcc_qupv3_wrap1_s5_clk_src.clkr.hw,
4960 },
4961 .num_parents = 1,
4962 .flags = CLK_SET_RATE_PARENT,
4963 .ops = &clk_branch2_ops,
4964 },
4965 },
4966 };
4967
4968 static struct clk_branch gcc_qupv3_wrap1_s6_clk = {
4969 .halt_reg = 0x18864,
4970 .halt_check = BRANCH_HALT_VOTED,
4971 .clkr = {
4972 .enable_reg = 0x52018,
4973 .enable_mask = BIT(27),
4974 .hw.init = &(const struct clk_init_data) {
4975 .name = "gcc_qupv3_wrap1_s6_clk",
4976 .parent_hws = (const struct clk_hw*[]){
4977 &gcc_qupv3_wrap1_s6_clk_src.clkr.hw,
4978 },
4979 .num_parents = 1,
4980 .flags = CLK_SET_RATE_PARENT,
4981 .ops = &clk_branch2_ops,
4982 },
4983 },
4984 };
4985
4986 static struct clk_branch gcc_qupv3_wrap1_s7_clk = {
4987 .halt_reg = 0x18994,
4988 .halt_check = BRANCH_HALT_VOTED,
4989 .clkr = {
4990 .enable_reg = 0x52018,
4991 .enable_mask = BIT(28),
4992 .hw.init = &(const struct clk_init_data) {
4993 .name = "gcc_qupv3_wrap1_s7_clk",
4994 .parent_hws = (const struct clk_hw*[]){
4995 &gcc_qupv3_wrap1_s7_clk_src.clkr.hw,
4996 },
4997 .num_parents = 1,
4998 .flags = CLK_SET_RATE_PARENT,
4999 .ops = &clk_branch2_ops,
5000 },
5001 },
5002 };
5003
5004 static struct clk_branch gcc_qupv3_wrap2_core_2x_clk = {
5005 .halt_reg = 0x1e014,
5006 .halt_check = BRANCH_HALT_VOTED,
5007 .clkr = {
5008 .enable_reg = 0x52010,
5009 .enable_mask = BIT(3),
5010 .hw.init = &(const struct clk_init_data) {
5011 .name = "gcc_qupv3_wrap2_core_2x_clk",
5012 .ops = &clk_branch2_ops,
5013 },
5014 },
5015 };
5016
5017 static struct clk_branch gcc_qupv3_wrap2_core_clk = {
5018 .halt_reg = 0x1e00c,
5019 .halt_check = BRANCH_HALT_VOTED,
5020 .clkr = {
5021 .enable_reg = 0x52010,
5022 .enable_mask = BIT(0),
5023 .hw.init = &(const struct clk_init_data) {
5024 .name = "gcc_qupv3_wrap2_core_clk",
5025 .ops = &clk_branch2_ops,
5026 },
5027 },
5028 };
5029
5030 static struct clk_branch gcc_qupv3_wrap2_qspi0_clk = {
5031 .halt_reg = 0x1eac4,
5032 .halt_check = BRANCH_HALT_VOTED,
5033 .clkr = {
5034 .enable_reg = 0x52020,
5035 .enable_mask = BIT(4),
5036 .hw.init = &(const struct clk_init_data) {
5037 .name = "gcc_qupv3_wrap2_qspi0_clk",
5038 .parent_hws = (const struct clk_hw*[]){
5039 &gcc_qupv3_wrap2_s4_clk_src.clkr.hw,
5040 },
5041 .num_parents = 1,
5042 .flags = CLK_SET_RATE_PARENT,
5043 .ops = &clk_branch2_ops,
5044 },
5045 },
5046 };
5047
5048 static struct clk_branch gcc_qupv3_wrap2_s0_clk = {
5049 .halt_reg = 0x1e144,
5050 .halt_check = BRANCH_HALT_VOTED,
5051 .clkr = {
5052 .enable_reg = 0x52010,
5053 .enable_mask = BIT(4),
5054 .hw.init = &(const struct clk_init_data) {
5055 .name = "gcc_qupv3_wrap2_s0_clk",
5056 .parent_hws = (const struct clk_hw*[]){
5057 &gcc_qupv3_wrap2_s0_clk_src.clkr.hw,
5058 },
5059 .num_parents = 1,
5060 .flags = CLK_SET_RATE_PARENT,
5061 .ops = &clk_branch2_ops,
5062 },
5063 },
5064 };
5065
5066 static struct clk_branch gcc_qupv3_wrap2_s1_clk = {
5067 .halt_reg = 0x1e274,
5068 .halt_check = BRANCH_HALT_VOTED,
5069 .clkr = {
5070 .enable_reg = 0x52010,
5071 .enable_mask = BIT(5),
5072 .hw.init = &(const struct clk_init_data) {
5073 .name = "gcc_qupv3_wrap2_s1_clk",
5074 .parent_hws = (const struct clk_hw*[]){
5075 &gcc_qupv3_wrap2_s1_clk_src.clkr.hw,
5076 },
5077 .num_parents = 1,
5078 .flags = CLK_SET_RATE_PARENT,
5079 .ops = &clk_branch2_ops,
5080 },
5081 },
5082 };
5083
5084 static struct clk_branch gcc_qupv3_wrap2_s2_clk = {
5085 .halt_reg = 0x1e3a4,
5086 .halt_check = BRANCH_HALT_VOTED,
5087 .clkr = {
5088 .enable_reg = 0x52010,
5089 .enable_mask = BIT(6),
5090 .hw.init = &(const struct clk_init_data) {
5091 .name = "gcc_qupv3_wrap2_s2_clk",
5092 .parent_hws = (const struct clk_hw*[]){
5093 &gcc_qupv3_wrap2_s2_clk_src.clkr.hw,
5094 },
5095 .num_parents = 1,
5096 .flags = CLK_SET_RATE_PARENT,
5097 .ops = &clk_branch2_ops,
5098 },
5099 },
5100 };
5101
5102 static struct clk_branch gcc_qupv3_wrap2_s3_clk = {
5103 .halt_reg = 0x1e4d4,
5104 .halt_check = BRANCH_HALT_VOTED,
5105 .clkr = {
5106 .enable_reg = 0x52010,
5107 .enable_mask = BIT(7),
5108 .hw.init = &(const struct clk_init_data) {
5109 .name = "gcc_qupv3_wrap2_s3_clk",
5110 .parent_hws = (const struct clk_hw*[]){
5111 &gcc_qupv3_wrap2_s3_clk_src.clkr.hw,
5112 },
5113 .num_parents = 1,
5114 .flags = CLK_SET_RATE_PARENT,
5115 .ops = &clk_branch2_ops,
5116 },
5117 },
5118 };
5119
5120 static struct clk_branch gcc_qupv3_wrap2_s4_clk = {
5121 .halt_reg = 0x1e604,
5122 .halt_check = BRANCH_HALT_VOTED,
5123 .clkr = {
5124 .enable_reg = 0x52010,
5125 .enable_mask = BIT(8),
5126 .hw.init = &(const struct clk_init_data) {
5127 .name = "gcc_qupv3_wrap2_s4_clk",
5128 .parent_hws = (const struct clk_hw*[]){
5129 &gcc_qupv3_wrap2_s4_div_clk_src.clkr.hw,
5130 },
5131 .num_parents = 1,
5132 .flags = CLK_SET_RATE_PARENT,
5133 .ops = &clk_branch2_ops,
5134 },
5135 },
5136 };
5137
5138 static struct clk_branch gcc_qupv3_wrap2_s5_clk = {
5139 .halt_reg = 0x1e734,
5140 .halt_check = BRANCH_HALT_VOTED,
5141 .clkr = {
5142 .enable_reg = 0x52010,
5143 .enable_mask = BIT(9),
5144 .hw.init = &(const struct clk_init_data) {
5145 .name = "gcc_qupv3_wrap2_s5_clk",
5146 .parent_hws = (const struct clk_hw*[]){
5147 &gcc_qupv3_wrap2_s5_clk_src.clkr.hw,
5148 },
5149 .num_parents = 1,
5150 .flags = CLK_SET_RATE_PARENT,
5151 .ops = &clk_branch2_ops,
5152 },
5153 },
5154 };
5155
5156 static struct clk_branch gcc_qupv3_wrap2_s6_clk = {
5157 .halt_reg = 0x1e864,
5158 .halt_check = BRANCH_HALT_VOTED,
5159 .clkr = {
5160 .enable_reg = 0x52018,
5161 .enable_mask = BIT(29),
5162 .hw.init = &(const struct clk_init_data) {
5163 .name = "gcc_qupv3_wrap2_s6_clk",
5164 .parent_hws = (const struct clk_hw*[]){
5165 &gcc_qupv3_wrap2_s6_clk_src.clkr.hw,
5166 },
5167 .num_parents = 1,
5168 .flags = CLK_SET_RATE_PARENT,
5169 .ops = &clk_branch2_ops,
5170 },
5171 },
5172 };
5173
5174 static struct clk_branch gcc_qupv3_wrap2_s7_clk = {
5175 .halt_reg = 0x1e994,
5176 .halt_check = BRANCH_HALT_VOTED,
5177 .clkr = {
5178 .enable_reg = 0x52018,
5179 .enable_mask = BIT(30),
5180 .hw.init = &(const struct clk_init_data) {
5181 .name = "gcc_qupv3_wrap2_s7_clk",
5182 .parent_hws = (const struct clk_hw*[]){
5183 &gcc_qupv3_wrap2_s7_clk_src.clkr.hw,
5184 },
5185 .num_parents = 1,
5186 .flags = CLK_SET_RATE_PARENT,
5187 .ops = &clk_branch2_ops,
5188 },
5189 },
5190 };
5191
5192 static struct clk_branch gcc_qupv3_wrap_0_m_ahb_clk = {
5193 .halt_reg = 0x17004,
5194 .halt_check = BRANCH_HALT_VOTED,
5195 .hwcg_reg = 0x17004,
5196 .hwcg_bit = 1,
5197 .clkr = {
5198 .enable_reg = 0x52008,
5199 .enable_mask = BIT(6),
5200 .hw.init = &(const struct clk_init_data) {
5201 .name = "gcc_qupv3_wrap_0_m_ahb_clk",
5202 .ops = &clk_branch2_ops,
5203 },
5204 },
5205 };
5206
5207 static struct clk_branch gcc_qupv3_wrap_0_s_ahb_clk = {
5208 .halt_reg = 0x17008,
5209 .halt_check = BRANCH_HALT_VOTED,
5210 .hwcg_reg = 0x17008,
5211 .hwcg_bit = 1,
5212 .clkr = {
5213 .enable_reg = 0x52008,
5214 .enable_mask = BIT(7),
5215 .hw.init = &(const struct clk_init_data) {
5216 .name = "gcc_qupv3_wrap_0_s_ahb_clk",
5217 .ops = &clk_branch2_ops,
5218 },
5219 },
5220 };
5221
5222 static struct clk_branch gcc_qupv3_wrap_1_m_ahb_clk = {
5223 .halt_reg = 0x18004,
5224 .halt_check = BRANCH_HALT_VOTED,
5225 .hwcg_reg = 0x18004,
5226 .hwcg_bit = 1,
5227 .clkr = {
5228 .enable_reg = 0x52008,
5229 .enable_mask = BIT(20),
5230 .hw.init = &(const struct clk_init_data) {
5231 .name = "gcc_qupv3_wrap_1_m_ahb_clk",
5232 .ops = &clk_branch2_ops,
5233 },
5234 },
5235 };
5236
5237 static struct clk_branch gcc_qupv3_wrap_1_s_ahb_clk = {
5238 .halt_reg = 0x18008,
5239 .halt_check = BRANCH_HALT_VOTED,
5240 .hwcg_reg = 0x18008,
5241 .hwcg_bit = 1,
5242 .clkr = {
5243 .enable_reg = 0x52008,
5244 .enable_mask = BIT(21),
5245 .hw.init = &(const struct clk_init_data) {
5246 .name = "gcc_qupv3_wrap_1_s_ahb_clk",
5247 .ops = &clk_branch2_ops,
5248 },
5249 },
5250 };
5251
5252 static struct clk_branch gcc_qupv3_wrap_2_m_ahb_clk = {
5253 .halt_reg = 0x1e004,
5254 .halt_check = BRANCH_HALT_VOTED,
5255 .hwcg_reg = 0x1e004,
5256 .hwcg_bit = 1,
5257 .clkr = {
5258 .enable_reg = 0x52010,
5259 .enable_mask = BIT(2),
5260 .hw.init = &(const struct clk_init_data) {
5261 .name = "gcc_qupv3_wrap_2_m_ahb_clk",
5262 .ops = &clk_branch2_ops,
5263 },
5264 },
5265 };
5266
5267 static struct clk_branch gcc_qupv3_wrap_2_s_ahb_clk = {
5268 .halt_reg = 0x1e008,
5269 .halt_check = BRANCH_HALT_VOTED,
5270 .hwcg_reg = 0x1e008,
5271 .hwcg_bit = 1,
5272 .clkr = {
5273 .enable_reg = 0x52010,
5274 .enable_mask = BIT(1),
5275 .hw.init = &(const struct clk_init_data) {
5276 .name = "gcc_qupv3_wrap_2_s_ahb_clk",
5277 .ops = &clk_branch2_ops,
5278 },
5279 },
5280 };
5281
5282 static struct clk_branch gcc_sdcc2_ahb_clk = {
5283 .halt_reg = 0x14008,
5284 .halt_check = BRANCH_HALT,
5285 .clkr = {
5286 .enable_reg = 0x14008,
5287 .enable_mask = BIT(0),
5288 .hw.init = &(const struct clk_init_data) {
5289 .name = "gcc_sdcc2_ahb_clk",
5290 .ops = &clk_branch2_ops,
5291 },
5292 },
5293 };
5294
5295 static struct clk_branch gcc_sdcc2_apps_clk = {
5296 .halt_reg = 0x14004,
5297 .halt_check = BRANCH_HALT,
5298 .clkr = {
5299 .enable_reg = 0x14004,
5300 .enable_mask = BIT(0),
5301 .hw.init = &(const struct clk_init_data) {
5302 .name = "gcc_sdcc2_apps_clk",
5303 .parent_hws = (const struct clk_hw*[]){
5304 &gcc_sdcc2_apps_clk_src.clkr.hw,
5305 },
5306 .num_parents = 1,
5307 .flags = CLK_SET_RATE_PARENT,
5308 .ops = &clk_branch2_ops,
5309 },
5310 },
5311 };
5312
5313 static struct clk_branch gcc_sdcc4_ahb_clk = {
5314 .halt_reg = 0x16008,
5315 .halt_check = BRANCH_HALT,
5316 .clkr = {
5317 .enable_reg = 0x16008,
5318 .enable_mask = BIT(0),
5319 .hw.init = &(const struct clk_init_data) {
5320 .name = "gcc_sdcc4_ahb_clk",
5321 .ops = &clk_branch2_ops,
5322 },
5323 },
5324 };
5325
5326 static struct clk_branch gcc_sdcc4_apps_clk = {
5327 .halt_reg = 0x16004,
5328 .halt_check = BRANCH_HALT,
5329 .clkr = {
5330 .enable_reg = 0x16004,
5331 .enable_mask = BIT(0),
5332 .hw.init = &(const struct clk_init_data) {
5333 .name = "gcc_sdcc4_apps_clk",
5334 .parent_hws = (const struct clk_hw*[]){
5335 &gcc_sdcc4_apps_clk_src.clkr.hw,
5336 },
5337 .num_parents = 1,
5338 .flags = CLK_SET_RATE_PARENT,
5339 .ops = &clk_branch2_ops,
5340 },
5341 },
5342 };
5343
5344 static struct clk_branch gcc_sys_noc_usb_axi_clk = {
5345 .halt_reg = 0x5d000,
5346 .halt_check = BRANCH_HALT_VOTED,
5347 .hwcg_reg = 0x5d000,
5348 .hwcg_bit = 1,
5349 .clkr = {
5350 .enable_reg = 0x5d000,
5351 .enable_mask = BIT(0),
5352 .hw.init = &(const struct clk_init_data) {
5353 .name = "gcc_sys_noc_usb_axi_clk",
5354 .ops = &clk_branch2_ops,
5355 },
5356 },
5357 };
5358
5359 static struct clk_branch gcc_ufs_1_card_clkref_clk = {
5360 .halt_reg = 0x8c000,
5361 .halt_check = BRANCH_HALT,
5362 .clkr = {
5363 .enable_reg = 0x8c000,
5364 .enable_mask = BIT(0),
5365 .hw.init = &(const struct clk_init_data) {
5366 .name = "gcc_ufs_1_card_clkref_clk",
5367 .parent_data = &gcc_parent_data_tcxo,
5368 .num_parents = 1,
5369 .ops = &clk_branch2_ops,
5370 },
5371 },
5372 };
5373
5374 static struct clk_branch gcc_ufs_card_ahb_clk = {
5375 .halt_reg = 0x75018,
5376 .halt_check = BRANCH_HALT_VOTED,
5377 .hwcg_reg = 0x75018,
5378 .hwcg_bit = 1,
5379 .clkr = {
5380 .enable_reg = 0x75018,
5381 .enable_mask = BIT(0),
5382 .hw.init = &(const struct clk_init_data) {
5383 .name = "gcc_ufs_card_ahb_clk",
5384 .ops = &clk_branch2_ops,
5385 },
5386 },
5387 };
5388
5389 static struct clk_branch gcc_ufs_card_axi_clk = {
5390 .halt_reg = 0x75010,
5391 .halt_check = BRANCH_HALT_VOTED,
5392 .hwcg_reg = 0x75010,
5393 .hwcg_bit = 1,
5394 .clkr = {
5395 .enable_reg = 0x75010,
5396 .enable_mask = BIT(0),
5397 .hw.init = &(const struct clk_init_data) {
5398 .name = "gcc_ufs_card_axi_clk",
5399 .parent_hws = (const struct clk_hw*[]){
5400 &gcc_ufs_card_axi_clk_src.clkr.hw,
5401 },
5402 .num_parents = 1,
5403 .flags = CLK_SET_RATE_PARENT,
5404 .ops = &clk_branch2_ops,
5405 },
5406 },
5407 };
5408
5409 static struct clk_branch gcc_ufs_card_axi_hw_ctl_clk = {
5410 .halt_reg = 0x75010,
5411 .halt_check = BRANCH_HALT_VOTED,
5412 .hwcg_reg = 0x75010,
5413 .hwcg_bit = 1,
5414 .clkr = {
5415 .enable_reg = 0x75010,
5416 .enable_mask = BIT(1),
5417 .hw.init = &(const struct clk_init_data) {
5418 .name = "gcc_ufs_card_axi_hw_ctl_clk",
5419 .parent_hws = (const struct clk_hw*[]){
5420 &gcc_ufs_card_axi_clk_src.clkr.hw,
5421 },
5422 .num_parents = 1,
5423 .flags = CLK_SET_RATE_PARENT,
5424 .ops = &clk_branch2_ops,
5425 },
5426 },
5427 };
5428
5429 static struct clk_branch gcc_ufs_card_clkref_clk = {
5430 .halt_reg = 0x8c054,
5431 .halt_check = BRANCH_HALT,
5432 .clkr = {
5433 .enable_reg = 0x8c054,
5434 .enable_mask = BIT(0),
5435 .hw.init = &(const struct clk_init_data) {
5436 .name = "gcc_ufs_card_clkref_clk",
5437 .parent_data = &gcc_parent_data_tcxo,
5438 .num_parents = 1,
5439 .ops = &clk_branch2_ops,
5440 },
5441 },
5442 };
5443
5444 static struct clk_branch gcc_ufs_card_ice_core_clk = {
5445 .halt_reg = 0x75064,
5446 .halt_check = BRANCH_HALT_VOTED,
5447 .hwcg_reg = 0x75064,
5448 .hwcg_bit = 1,
5449 .clkr = {
5450 .enable_reg = 0x75064,
5451 .enable_mask = BIT(0),
5452 .hw.init = &(const struct clk_init_data) {
5453 .name = "gcc_ufs_card_ice_core_clk",
5454 .parent_hws = (const struct clk_hw*[]){
5455 &gcc_ufs_card_ice_core_clk_src.clkr.hw,
5456 },
5457 .num_parents = 1,
5458 .flags = CLK_SET_RATE_PARENT,
5459 .ops = &clk_branch2_ops,
5460 },
5461 },
5462 };
5463
5464 static struct clk_branch gcc_ufs_card_ice_core_hw_ctl_clk = {
5465 .halt_reg = 0x75064,
5466 .halt_check = BRANCH_HALT_VOTED,
5467 .hwcg_reg = 0x75064,
5468 .hwcg_bit = 1,
5469 .clkr = {
5470 .enable_reg = 0x75064,
5471 .enable_mask = BIT(1),
5472 .hw.init = &(const struct clk_init_data) {
5473 .name = "gcc_ufs_card_ice_core_hw_ctl_clk",
5474 .parent_hws = (const struct clk_hw*[]){
5475 &gcc_ufs_card_ice_core_clk_src.clkr.hw,
5476 },
5477 .num_parents = 1,
5478 .flags = CLK_SET_RATE_PARENT,
5479 .ops = &clk_branch2_ops,
5480 },
5481 },
5482 };
5483
5484 static struct clk_branch gcc_ufs_card_phy_aux_clk = {
5485 .halt_reg = 0x7509c,
5486 .halt_check = BRANCH_HALT_VOTED,
5487 .hwcg_reg = 0x7509c,
5488 .hwcg_bit = 1,
5489 .clkr = {
5490 .enable_reg = 0x7509c,
5491 .enable_mask = BIT(0),
5492 .hw.init = &(const struct clk_init_data) {
5493 .name = "gcc_ufs_card_phy_aux_clk",
5494 .parent_hws = (const struct clk_hw*[]){
5495 &gcc_ufs_card_phy_aux_clk_src.clkr.hw,
5496 },
5497 .num_parents = 1,
5498 .flags = CLK_SET_RATE_PARENT,
5499 .ops = &clk_branch2_ops,
5500 },
5501 },
5502 };
5503
5504 static struct clk_branch gcc_ufs_card_phy_aux_hw_ctl_clk = {
5505 .halt_reg = 0x7509c,
5506 .halt_check = BRANCH_HALT_VOTED,
5507 .hwcg_reg = 0x7509c,
5508 .hwcg_bit = 1,
5509 .clkr = {
5510 .enable_reg = 0x7509c,
5511 .enable_mask = BIT(1),
5512 .hw.init = &(const struct clk_init_data) {
5513 .name = "gcc_ufs_card_phy_aux_hw_ctl_clk",
5514 .parent_hws = (const struct clk_hw*[]){
5515 &gcc_ufs_card_phy_aux_clk_src.clkr.hw,
5516 },
5517 .num_parents = 1,
5518 .flags = CLK_SET_RATE_PARENT,
5519 .ops = &clk_branch2_ops,
5520 },
5521 },
5522 };
5523
5524 static struct clk_branch gcc_ufs_card_rx_symbol_0_clk = {
5525 .halt_reg = 0x75020,
5526 .halt_check = BRANCH_HALT_DELAY,
5527 .clkr = {
5528 .enable_reg = 0x75020,
5529 .enable_mask = BIT(0),
5530 .hw.init = &(const struct clk_init_data) {
5531 .name = "gcc_ufs_card_rx_symbol_0_clk",
5532 .parent_hws = (const struct clk_hw*[]){
5533 &gcc_ufs_card_rx_symbol_0_clk_src.clkr.hw,
5534 },
5535 .num_parents = 1,
5536 .flags = CLK_SET_RATE_PARENT,
5537 .ops = &clk_branch2_ops,
5538 },
5539 },
5540 };
5541
5542 static struct clk_branch gcc_ufs_card_rx_symbol_1_clk = {
5543 .halt_reg = 0x750b8,
5544 .halt_check = BRANCH_HALT_DELAY,
5545 .clkr = {
5546 .enable_reg = 0x750b8,
5547 .enable_mask = BIT(0),
5548 .hw.init = &(const struct clk_init_data) {
5549 .name = "gcc_ufs_card_rx_symbol_1_clk",
5550 .parent_hws = (const struct clk_hw*[]){
5551 &gcc_ufs_card_rx_symbol_1_clk_src.clkr.hw,
5552 },
5553 .num_parents = 1,
5554 .flags = CLK_SET_RATE_PARENT,
5555 .ops = &clk_branch2_ops,
5556 },
5557 },
5558 };
5559
5560 static struct clk_branch gcc_ufs_card_tx_symbol_0_clk = {
5561 .halt_reg = 0x7501c,
5562 .halt_check = BRANCH_HALT_DELAY,
5563 .clkr = {
5564 .enable_reg = 0x7501c,
5565 .enable_mask = BIT(0),
5566 .hw.init = &(const struct clk_init_data) {
5567 .name = "gcc_ufs_card_tx_symbol_0_clk",
5568 .parent_hws = (const struct clk_hw*[]){
5569 &gcc_ufs_card_tx_symbol_0_clk_src.clkr.hw,
5570 },
5571 .num_parents = 1,
5572 .flags = CLK_SET_RATE_PARENT,
5573 .ops = &clk_branch2_ops,
5574 },
5575 },
5576 };
5577
5578 static struct clk_branch gcc_ufs_card_unipro_core_clk = {
5579 .halt_reg = 0x7505c,
5580 .halt_check = BRANCH_HALT_VOTED,
5581 .hwcg_reg = 0x7505c,
5582 .hwcg_bit = 1,
5583 .clkr = {
5584 .enable_reg = 0x7505c,
5585 .enable_mask = BIT(0),
5586 .hw.init = &(const struct clk_init_data) {
5587 .name = "gcc_ufs_card_unipro_core_clk",
5588 .parent_hws = (const struct clk_hw*[]){
5589 &gcc_ufs_card_unipro_core_clk_src.clkr.hw,
5590 },
5591 .num_parents = 1,
5592 .flags = CLK_SET_RATE_PARENT,
5593 .ops = &clk_branch2_ops,
5594 },
5595 },
5596 };
5597
5598 static struct clk_branch gcc_ufs_card_unipro_core_hw_ctl_clk = {
5599 .halt_reg = 0x7505c,
5600 .halt_check = BRANCH_HALT_VOTED,
5601 .hwcg_reg = 0x7505c,
5602 .hwcg_bit = 1,
5603 .clkr = {
5604 .enable_reg = 0x7505c,
5605 .enable_mask = BIT(1),
5606 .hw.init = &(const struct clk_init_data) {
5607 .name = "gcc_ufs_card_unipro_core_hw_ctl_clk",
5608 .parent_hws = (const struct clk_hw*[]){
5609 &gcc_ufs_card_unipro_core_clk_src.clkr.hw,
5610 },
5611 .num_parents = 1,
5612 .flags = CLK_SET_RATE_PARENT,
5613 .ops = &clk_branch2_ops,
5614 },
5615 },
5616 };
5617
5618 static struct clk_branch gcc_ufs_phy_ahb_clk = {
5619 .halt_reg = 0x77018,
5620 .halt_check = BRANCH_HALT_VOTED,
5621 .hwcg_reg = 0x77018,
5622 .hwcg_bit = 1,
5623 .clkr = {
5624 .enable_reg = 0x77018,
5625 .enable_mask = BIT(0),
5626 .hw.init = &(const struct clk_init_data) {
5627 .name = "gcc_ufs_phy_ahb_clk",
5628 .ops = &clk_branch2_ops,
5629 },
5630 },
5631 };
5632
5633 static struct clk_branch gcc_ufs_phy_axi_clk = {
5634 .halt_reg = 0x77010,
5635 .halt_check = BRANCH_HALT_VOTED,
5636 .hwcg_reg = 0x77010,
5637 .hwcg_bit = 1,
5638 .clkr = {
5639 .enable_reg = 0x77010,
5640 .enable_mask = BIT(0),
5641 .hw.init = &(const struct clk_init_data) {
5642 .name = "gcc_ufs_phy_axi_clk",
5643 .parent_hws = (const struct clk_hw*[]){
5644 &gcc_ufs_phy_axi_clk_src.clkr.hw,
5645 },
5646 .num_parents = 1,
5647 .flags = CLK_SET_RATE_PARENT,
5648 .ops = &clk_branch2_ops,
5649 },
5650 },
5651 };
5652
5653 static struct clk_branch gcc_ufs_phy_axi_hw_ctl_clk = {
5654 .halt_reg = 0x77010,
5655 .halt_check = BRANCH_HALT_VOTED,
5656 .hwcg_reg = 0x77010,
5657 .hwcg_bit = 1,
5658 .clkr = {
5659 .enable_reg = 0x77010,
5660 .enable_mask = BIT(1),
5661 .hw.init = &(const struct clk_init_data) {
5662 .name = "gcc_ufs_phy_axi_hw_ctl_clk",
5663 .parent_hws = (const struct clk_hw*[]){
5664 &gcc_ufs_phy_axi_clk_src.clkr.hw,
5665 },
5666 .num_parents = 1,
5667 .flags = CLK_SET_RATE_PARENT,
5668 .ops = &clk_branch2_ops,
5669 },
5670 },
5671 };
5672
5673 static struct clk_branch gcc_ufs_phy_ice_core_clk = {
5674 .halt_reg = 0x77064,
5675 .halt_check = BRANCH_HALT_VOTED,
5676 .hwcg_reg = 0x77064,
5677 .hwcg_bit = 1,
5678 .clkr = {
5679 .enable_reg = 0x77064,
5680 .enable_mask = BIT(0),
5681 .hw.init = &(const struct clk_init_data) {
5682 .name = "gcc_ufs_phy_ice_core_clk",
5683 .parent_hws = (const struct clk_hw*[]){
5684 &gcc_ufs_phy_ice_core_clk_src.clkr.hw,
5685 },
5686 .num_parents = 1,
5687 .flags = CLK_SET_RATE_PARENT,
5688 .ops = &clk_branch2_ops,
5689 },
5690 },
5691 };
5692
5693 static struct clk_branch gcc_ufs_phy_ice_core_hw_ctl_clk = {
5694 .halt_reg = 0x77064,
5695 .halt_check = BRANCH_HALT_VOTED,
5696 .hwcg_reg = 0x77064,
5697 .hwcg_bit = 1,
5698 .clkr = {
5699 .enable_reg = 0x77064,
5700 .enable_mask = BIT(1),
5701 .hw.init = &(const struct clk_init_data) {
5702 .name = "gcc_ufs_phy_ice_core_hw_ctl_clk",
5703 .parent_hws = (const struct clk_hw*[]){
5704 &gcc_ufs_phy_ice_core_clk_src.clkr.hw,
5705 },
5706 .num_parents = 1,
5707 .flags = CLK_SET_RATE_PARENT,
5708 .ops = &clk_branch2_ops,
5709 },
5710 },
5711 };
5712
5713 static struct clk_branch gcc_ufs_phy_phy_aux_clk = {
5714 .halt_reg = 0x7709c,
5715 .halt_check = BRANCH_HALT_VOTED,
5716 .hwcg_reg = 0x7709c,
5717 .hwcg_bit = 1,
5718 .clkr = {
5719 .enable_reg = 0x7709c,
5720 .enable_mask = BIT(0),
5721 .hw.init = &(const struct clk_init_data) {
5722 .name = "gcc_ufs_phy_phy_aux_clk",
5723 .parent_hws = (const struct clk_hw*[]){
5724 &gcc_ufs_phy_phy_aux_clk_src.clkr.hw,
5725 },
5726 .num_parents = 1,
5727 .flags = CLK_SET_RATE_PARENT,
5728 .ops = &clk_branch2_ops,
5729 },
5730 },
5731 };
5732
5733 static struct clk_branch gcc_ufs_phy_phy_aux_hw_ctl_clk = {
5734 .halt_reg = 0x7709c,
5735 .halt_check = BRANCH_HALT_VOTED,
5736 .hwcg_reg = 0x7709c,
5737 .hwcg_bit = 1,
5738 .clkr = {
5739 .enable_reg = 0x7709c,
5740 .enable_mask = BIT(1),
5741 .hw.init = &(const struct clk_init_data) {
5742 .name = "gcc_ufs_phy_phy_aux_hw_ctl_clk",
5743 .parent_hws = (const struct clk_hw*[]){
5744 &gcc_ufs_phy_phy_aux_clk_src.clkr.hw,
5745 },
5746 .num_parents = 1,
5747 .flags = CLK_SET_RATE_PARENT,
5748 .ops = &clk_branch2_ops,
5749 },
5750 },
5751 };
5752
5753 static struct clk_branch gcc_ufs_phy_rx_symbol_0_clk = {
5754 .halt_reg = 0x77020,
5755 .halt_check = BRANCH_HALT_DELAY,
5756 .clkr = {
5757 .enable_reg = 0x77020,
5758 .enable_mask = BIT(0),
5759 .hw.init = &(const struct clk_init_data) {
5760 .name = "gcc_ufs_phy_rx_symbol_0_clk",
5761 .parent_hws = (const struct clk_hw*[]){
5762 &gcc_ufs_phy_rx_symbol_0_clk_src.clkr.hw,
5763 },
5764 .num_parents = 1,
5765 .flags = CLK_SET_RATE_PARENT,
5766 .ops = &clk_branch2_ops,
5767 },
5768 },
5769 };
5770
5771 static struct clk_branch gcc_ufs_phy_rx_symbol_1_clk = {
5772 .halt_reg = 0x770b8,
5773 .halt_check = BRANCH_HALT_DELAY,
5774 .clkr = {
5775 .enable_reg = 0x770b8,
5776 .enable_mask = BIT(0),
5777 .hw.init = &(const struct clk_init_data) {
5778 .name = "gcc_ufs_phy_rx_symbol_1_clk",
5779 .parent_hws = (const struct clk_hw*[]){
5780 &gcc_ufs_phy_rx_symbol_1_clk_src.clkr.hw,
5781 },
5782 .num_parents = 1,
5783 .flags = CLK_SET_RATE_PARENT,
5784 .ops = &clk_branch2_ops,
5785 },
5786 },
5787 };
5788
5789 static struct clk_branch gcc_ufs_phy_tx_symbol_0_clk = {
5790 .halt_reg = 0x7701c,
5791 .halt_check = BRANCH_HALT_DELAY,
5792 .clkr = {
5793 .enable_reg = 0x7701c,
5794 .enable_mask = BIT(0),
5795 .hw.init = &(const struct clk_init_data) {
5796 .name = "gcc_ufs_phy_tx_symbol_0_clk",
5797 .parent_hws = (const struct clk_hw*[]){
5798 &gcc_ufs_phy_tx_symbol_0_clk_src.clkr.hw,
5799 },
5800 .num_parents = 1,
5801 .flags = CLK_SET_RATE_PARENT,
5802 .ops = &clk_branch2_ops,
5803 },
5804 },
5805 };
5806
5807 static struct clk_branch gcc_ufs_phy_unipro_core_clk = {
5808 .halt_reg = 0x7705c,
5809 .halt_check = BRANCH_HALT_VOTED,
5810 .hwcg_reg = 0x7705c,
5811 .hwcg_bit = 1,
5812 .clkr = {
5813 .enable_reg = 0x7705c,
5814 .enable_mask = BIT(0),
5815 .hw.init = &(const struct clk_init_data) {
5816 .name = "gcc_ufs_phy_unipro_core_clk",
5817 .parent_hws = (const struct clk_hw*[]){
5818 &gcc_ufs_phy_unipro_core_clk_src.clkr.hw,
5819 },
5820 .num_parents = 1,
5821 .flags = CLK_SET_RATE_PARENT,
5822 .ops = &clk_branch2_ops,
5823 },
5824 },
5825 };
5826
5827 static struct clk_branch gcc_ufs_phy_unipro_core_hw_ctl_clk = {
5828 .halt_reg = 0x7705c,
5829 .halt_check = BRANCH_HALT_VOTED,
5830 .hwcg_reg = 0x7705c,
5831 .hwcg_bit = 1,
5832 .clkr = {
5833 .enable_reg = 0x7705c,
5834 .enable_mask = BIT(1),
5835 .hw.init = &(const struct clk_init_data) {
5836 .name = "gcc_ufs_phy_unipro_core_hw_ctl_clk",
5837 .parent_hws = (const struct clk_hw*[]){
5838 &gcc_ufs_phy_unipro_core_clk_src.clkr.hw,
5839 },
5840 .num_parents = 1,
5841 .flags = CLK_SET_RATE_PARENT,
5842 .ops = &clk_branch2_ops,
5843 },
5844 },
5845 };
5846
5847 static struct clk_branch gcc_ufs_ref_clkref_clk = {
5848 .halt_reg = 0x8c058,
5849 .halt_check = BRANCH_HALT,
5850 .clkr = {
5851 .enable_reg = 0x8c058,
5852 .enable_mask = BIT(0),
5853 .hw.init = &(const struct clk_init_data) {
5854 .name = "gcc_ufs_ref_clkref_clk",
5855 .parent_data = &gcc_parent_data_tcxo,
5856 .num_parents = 1,
5857 .ops = &clk_branch2_ops,
5858 },
5859 },
5860 };
5861
5862 static struct clk_branch gcc_usb2_hs0_clkref_clk = {
5863 .halt_reg = 0x8c044,
5864 .halt_check = BRANCH_HALT,
5865 .clkr = {
5866 .enable_reg = 0x8c044,
5867 .enable_mask = BIT(0),
5868 .hw.init = &(const struct clk_init_data) {
5869 .name = "gcc_usb2_hs0_clkref_clk",
5870 .ops = &clk_branch2_ops,
5871 },
5872 },
5873 };
5874
5875 static struct clk_branch gcc_usb2_hs1_clkref_clk = {
5876 .halt_reg = 0x8c048,
5877 .halt_check = BRANCH_HALT,
5878 .clkr = {
5879 .enable_reg = 0x8c048,
5880 .enable_mask = BIT(0),
5881 .hw.init = &(const struct clk_init_data) {
5882 .name = "gcc_usb2_hs1_clkref_clk",
5883 .ops = &clk_branch2_ops,
5884 },
5885 },
5886 };
5887
5888 static struct clk_branch gcc_usb2_hs2_clkref_clk = {
5889 .halt_reg = 0x8c04c,
5890 .halt_check = BRANCH_HALT,
5891 .clkr = {
5892 .enable_reg = 0x8c04c,
5893 .enable_mask = BIT(0),
5894 .hw.init = &(const struct clk_init_data) {
5895 .name = "gcc_usb2_hs2_clkref_clk",
5896 .ops = &clk_branch2_ops,
5897 },
5898 },
5899 };
5900
5901 static struct clk_branch gcc_usb2_hs3_clkref_clk = {
5902 .halt_reg = 0x8c050,
5903 .halt_check = BRANCH_HALT,
5904 .clkr = {
5905 .enable_reg = 0x8c050,
5906 .enable_mask = BIT(0),
5907 .hw.init = &(const struct clk_init_data) {
5908 .name = "gcc_usb2_hs3_clkref_clk",
5909 .ops = &clk_branch2_ops,
5910 },
5911 },
5912 };
5913
5914 static struct clk_branch gcc_usb30_mp_master_clk = {
5915 .halt_reg = 0xab010,
5916 .halt_check = BRANCH_HALT,
5917 .clkr = {
5918 .enable_reg = 0xab010,
5919 .enable_mask = BIT(0),
5920 .hw.init = &(const struct clk_init_data) {
5921 .name = "gcc_usb30_mp_master_clk",
5922 .parent_hws = (const struct clk_hw*[]){
5923 &gcc_usb30_mp_master_clk_src.clkr.hw,
5924 },
5925 .num_parents = 1,
5926 .flags = CLK_SET_RATE_PARENT,
5927 .ops = &clk_branch2_ops,
5928 },
5929 },
5930 };
5931
5932 static struct clk_branch gcc_usb30_mp_mock_utmi_clk = {
5933 .halt_reg = 0xab01c,
5934 .halt_check = BRANCH_HALT,
5935 .clkr = {
5936 .enable_reg = 0xab01c,
5937 .enable_mask = BIT(0),
5938 .hw.init = &(const struct clk_init_data) {
5939 .name = "gcc_usb30_mp_mock_utmi_clk",
5940 .parent_hws = (const struct clk_hw*[]){
5941 &gcc_usb30_mp_mock_utmi_postdiv_clk_src.clkr.hw,
5942 },
5943 .num_parents = 1,
5944 .flags = CLK_SET_RATE_PARENT,
5945 .ops = &clk_branch2_ops,
5946 },
5947 },
5948 };
5949
5950 static struct clk_branch gcc_usb30_mp_sleep_clk = {
5951 .halt_reg = 0xab018,
5952 .halt_check = BRANCH_HALT,
5953 .clkr = {
5954 .enable_reg = 0xab018,
5955 .enable_mask = BIT(0),
5956 .hw.init = &(const struct clk_init_data) {
5957 .name = "gcc_usb30_mp_sleep_clk",
5958 .ops = &clk_branch2_ops,
5959 },
5960 },
5961 };
5962
5963 static struct clk_branch gcc_usb30_prim_master_clk = {
5964 .halt_reg = 0xf010,
5965 .halt_check = BRANCH_HALT,
5966 .clkr = {
5967 .enable_reg = 0xf010,
5968 .enable_mask = BIT(0),
5969 .hw.init = &(const struct clk_init_data) {
5970 .name = "gcc_usb30_prim_master_clk",
5971 .parent_hws = (const struct clk_hw*[]){
5972 &gcc_usb30_prim_master_clk_src.clkr.hw,
5973 },
5974 .num_parents = 1,
5975 .flags = CLK_SET_RATE_PARENT,
5976 .ops = &clk_branch2_ops,
5977 },
5978 },
5979 };
5980
5981 static struct clk_branch gcc_usb30_prim_mock_utmi_clk = {
5982 .halt_reg = 0xf01c,
5983 .halt_check = BRANCH_HALT,
5984 .clkr = {
5985 .enable_reg = 0xf01c,
5986 .enable_mask = BIT(0),
5987 .hw.init = &(const struct clk_init_data) {
5988 .name = "gcc_usb30_prim_mock_utmi_clk",
5989 .parent_hws = (const struct clk_hw*[]){
5990 &gcc_usb30_prim_mock_utmi_postdiv_clk_src.clkr.hw,
5991 },
5992 .num_parents = 1,
5993 .flags = CLK_SET_RATE_PARENT,
5994 .ops = &clk_branch2_ops,
5995 },
5996 },
5997 };
5998
5999 static struct clk_branch gcc_usb30_prim_sleep_clk = {
6000 .halt_reg = 0xf018,
6001 .halt_check = BRANCH_HALT,
6002 .clkr = {
6003 .enable_reg = 0xf018,
6004 .enable_mask = BIT(0),
6005 .hw.init = &(const struct clk_init_data) {
6006 .name = "gcc_usb30_prim_sleep_clk",
6007 .ops = &clk_branch2_ops,
6008 },
6009 },
6010 };
6011
6012 static struct clk_branch gcc_usb30_sec_master_clk = {
6013 .halt_reg = 0x10010,
6014 .halt_check = BRANCH_HALT,
6015 .clkr = {
6016 .enable_reg = 0x10010,
6017 .enable_mask = BIT(0),
6018 .hw.init = &(const struct clk_init_data) {
6019 .name = "gcc_usb30_sec_master_clk",
6020 .parent_hws = (const struct clk_hw*[]){
6021 &gcc_usb30_sec_master_clk_src.clkr.hw,
6022 },
6023 .num_parents = 1,
6024 .flags = CLK_SET_RATE_PARENT,
6025 .ops = &clk_branch2_ops,
6026 },
6027 },
6028 };
6029
6030 static struct clk_branch gcc_usb30_sec_mock_utmi_clk = {
6031 .halt_reg = 0x1001c,
6032 .halt_check = BRANCH_HALT,
6033 .clkr = {
6034 .enable_reg = 0x1001c,
6035 .enable_mask = BIT(0),
6036 .hw.init = &(const struct clk_init_data) {
6037 .name = "gcc_usb30_sec_mock_utmi_clk",
6038 .parent_hws = (const struct clk_hw*[]){
6039 &gcc_usb30_sec_mock_utmi_postdiv_clk_src.clkr.hw,
6040 },
6041 .num_parents = 1,
6042 .flags = CLK_SET_RATE_PARENT,
6043 .ops = &clk_branch2_ops,
6044 },
6045 },
6046 };
6047
6048 static struct clk_branch gcc_usb30_sec_sleep_clk = {
6049 .halt_reg = 0x10018,
6050 .halt_check = BRANCH_HALT,
6051 .clkr = {
6052 .enable_reg = 0x10018,
6053 .enable_mask = BIT(0),
6054 .hw.init = &(const struct clk_init_data) {
6055 .name = "gcc_usb30_sec_sleep_clk",
6056 .ops = &clk_branch2_ops,
6057 },
6058 },
6059 };
6060
6061 static struct clk_branch gcc_usb3_mp0_clkref_clk = {
6062 .halt_reg = 0x8c03c,
6063 .halt_check = BRANCH_HALT,
6064 .clkr = {
6065 .enable_reg = 0x8c03c,
6066 .enable_mask = BIT(0),
6067 .hw.init = &(const struct clk_init_data) {
6068 .name = "gcc_usb3_mp0_clkref_clk",
6069 .ops = &clk_branch2_ops,
6070 },
6071 },
6072 };
6073
6074 static struct clk_branch gcc_usb3_mp1_clkref_clk = {
6075 .halt_reg = 0x8c040,
6076 .halt_check = BRANCH_HALT,
6077 .clkr = {
6078 .enable_reg = 0x8c040,
6079 .enable_mask = BIT(0),
6080 .hw.init = &(const struct clk_init_data) {
6081 .name = "gcc_usb3_mp1_clkref_clk",
6082 .ops = &clk_branch2_ops,
6083 },
6084 },
6085 };
6086
6087 static struct clk_branch gcc_usb3_mp_phy_aux_clk = {
6088 .halt_reg = 0xab054,
6089 .halt_check = BRANCH_HALT,
6090 .clkr = {
6091 .enable_reg = 0xab054,
6092 .enable_mask = BIT(0),
6093 .hw.init = &(const struct clk_init_data) {
6094 .name = "gcc_usb3_mp_phy_aux_clk",
6095 .parent_hws = (const struct clk_hw*[]){
6096 &gcc_usb3_mp_phy_aux_clk_src.clkr.hw,
6097 },
6098 .num_parents = 1,
6099 .flags = CLK_SET_RATE_PARENT,
6100 .ops = &clk_branch2_ops,
6101 },
6102 },
6103 };
6104
6105 static struct clk_branch gcc_usb3_mp_phy_com_aux_clk = {
6106 .halt_reg = 0xab058,
6107 .halt_check = BRANCH_HALT,
6108 .clkr = {
6109 .enable_reg = 0xab058,
6110 .enable_mask = BIT(0),
6111 .hw.init = &(const struct clk_init_data) {
6112 .name = "gcc_usb3_mp_phy_com_aux_clk",
6113 .parent_hws = (const struct clk_hw*[]){
6114 &gcc_usb3_mp_phy_aux_clk_src.clkr.hw,
6115 },
6116 .num_parents = 1,
6117 .flags = CLK_SET_RATE_PARENT,
6118 .ops = &clk_branch2_ops,
6119 },
6120 },
6121 };
6122
6123 static struct clk_branch gcc_usb3_mp_phy_pipe_0_clk = {
6124 .halt_reg = 0xab05c,
6125 .halt_check = BRANCH_HALT_DELAY,
6126 .clkr = {
6127 .enable_reg = 0xab05c,
6128 .enable_mask = BIT(0),
6129 .hw.init = &(const struct clk_init_data) {
6130 .name = "gcc_usb3_mp_phy_pipe_0_clk",
6131 .parent_hws = (const struct clk_hw*[]){
6132 &gcc_usb3_mp_phy_pipe_0_clk_src.clkr.hw,
6133 },
6134 .num_parents = 1,
6135 .flags = CLK_SET_RATE_PARENT,
6136 .ops = &clk_branch2_ops,
6137 },
6138 },
6139 };
6140
6141 static struct clk_branch gcc_usb3_mp_phy_pipe_1_clk = {
6142 .halt_reg = 0xab064,
6143 .halt_check = BRANCH_HALT_DELAY,
6144 .clkr = {
6145 .enable_reg = 0xab064,
6146 .enable_mask = BIT(0),
6147 .hw.init = &(const struct clk_init_data) {
6148 .name = "gcc_usb3_mp_phy_pipe_1_clk",
6149 .parent_hws = (const struct clk_hw*[]){
6150 &gcc_usb3_mp_phy_pipe_1_clk_src.clkr.hw,
6151 },
6152 .num_parents = 1,
6153 .flags = CLK_SET_RATE_PARENT,
6154 .ops = &clk_branch2_ops,
6155 },
6156 },
6157 };
6158
6159 static struct clk_branch gcc_usb3_prim_phy_aux_clk = {
6160 .halt_reg = 0xf054,
6161 .halt_check = BRANCH_HALT,
6162 .clkr = {
6163 .enable_reg = 0xf054,
6164 .enable_mask = BIT(0),
6165 .hw.init = &(const struct clk_init_data) {
6166 .name = "gcc_usb3_prim_phy_aux_clk",
6167 .parent_hws = (const struct clk_hw*[]){
6168 &gcc_usb3_prim_phy_aux_clk_src.clkr.hw,
6169 },
6170 .num_parents = 1,
6171 .flags = CLK_SET_RATE_PARENT,
6172 .ops = &clk_branch2_ops,
6173 },
6174 },
6175 };
6176
6177 static struct clk_branch gcc_usb3_prim_phy_com_aux_clk = {
6178 .halt_reg = 0xf058,
6179 .halt_check = BRANCH_HALT,
6180 .clkr = {
6181 .enable_reg = 0xf058,
6182 .enable_mask = BIT(0),
6183 .hw.init = &(const struct clk_init_data) {
6184 .name = "gcc_usb3_prim_phy_com_aux_clk",
6185 .parent_hws = (const struct clk_hw*[]){
6186 &gcc_usb3_prim_phy_aux_clk_src.clkr.hw,
6187 },
6188 .num_parents = 1,
6189 .flags = CLK_SET_RATE_PARENT,
6190 .ops = &clk_branch2_ops,
6191 },
6192 },
6193 };
6194
6195 static struct clk_branch gcc_usb3_prim_phy_pipe_clk = {
6196 .halt_reg = 0xf05c,
6197 .halt_check = BRANCH_HALT_DELAY,
6198 .hwcg_reg = 0xf05c,
6199 .hwcg_bit = 1,
6200 .clkr = {
6201 .enable_reg = 0xf05c,
6202 .enable_mask = BIT(0),
6203 .hw.init = &(const struct clk_init_data) {
6204 .name = "gcc_usb3_prim_phy_pipe_clk",
6205 .parent_hws = (const struct clk_hw*[]){
6206 &gcc_usb34_prim_phy_pipe_clk_src.clkr.hw,
6207 },
6208 .num_parents = 1,
6209 .flags = CLK_SET_RATE_PARENT,
6210 .ops = &clk_branch2_ops,
6211 },
6212 },
6213 };
6214
6215 static struct clk_branch gcc_usb3_sec_phy_aux_clk = {
6216 .halt_reg = 0x10054,
6217 .halt_check = BRANCH_HALT,
6218 .clkr = {
6219 .enable_reg = 0x10054,
6220 .enable_mask = BIT(0),
6221 .hw.init = &(const struct clk_init_data) {
6222 .name = "gcc_usb3_sec_phy_aux_clk",
6223 .parent_hws = (const struct clk_hw*[]){
6224 &gcc_usb3_sec_phy_aux_clk_src.clkr.hw,
6225 },
6226 .num_parents = 1,
6227 .flags = CLK_SET_RATE_PARENT,
6228 .ops = &clk_branch2_ops,
6229 },
6230 },
6231 };
6232
6233 static struct clk_branch gcc_usb3_sec_phy_com_aux_clk = {
6234 .halt_reg = 0x10058,
6235 .halt_check = BRANCH_HALT,
6236 .clkr = {
6237 .enable_reg = 0x10058,
6238 .enable_mask = BIT(0),
6239 .hw.init = &(const struct clk_init_data) {
6240 .name = "gcc_usb3_sec_phy_com_aux_clk",
6241 .parent_hws = (const struct clk_hw*[]){
6242 &gcc_usb3_sec_phy_aux_clk_src.clkr.hw,
6243 },
6244 .num_parents = 1,
6245 .flags = CLK_SET_RATE_PARENT,
6246 .ops = &clk_branch2_ops,
6247 },
6248 },
6249 };
6250
6251 static struct clk_branch gcc_usb3_sec_phy_pipe_clk = {
6252 .halt_reg = 0x1005c,
6253 .halt_check = BRANCH_HALT_DELAY,
6254 .hwcg_reg = 0x1005c,
6255 .hwcg_bit = 1,
6256 .clkr = {
6257 .enable_reg = 0x1005c,
6258 .enable_mask = BIT(0),
6259 .hw.init = &(const struct clk_init_data) {
6260 .name = "gcc_usb3_sec_phy_pipe_clk",
6261 .parent_hws = (const struct clk_hw*[]){
6262 &gcc_usb34_sec_phy_pipe_clk_src.clkr.hw,
6263 },
6264 .num_parents = 1,
6265 .flags = CLK_SET_RATE_PARENT,
6266 .ops = &clk_branch2_ops,
6267 },
6268 },
6269 };
6270
6271 static struct clk_branch gcc_usb4_1_cfg_ahb_clk = {
6272 .halt_reg = 0xb808c,
6273 .halt_check = BRANCH_HALT_VOTED,
6274 .hwcg_reg = 0xb808c,
6275 .hwcg_bit = 1,
6276 .clkr = {
6277 .enable_reg = 0xb808c,
6278 .enable_mask = BIT(0),
6279 .hw.init = &(const struct clk_init_data) {
6280 .name = "gcc_usb4_1_cfg_ahb_clk",
6281 .ops = &clk_branch2_ops,
6282 },
6283 },
6284 };
6285
6286 static struct clk_branch gcc_usb4_1_dp_clk = {
6287 .halt_reg = 0xb8048,
6288 .halt_check = BRANCH_HALT,
6289 .clkr = {
6290 .enable_reg = 0xb8048,
6291 .enable_mask = BIT(0),
6292 .hw.init = &(const struct clk_init_data) {
6293 .name = "gcc_usb4_1_dp_clk",
6294 .parent_hws = (const struct clk_hw*[]){
6295 &gcc_usb4_1_phy_dp_clk_src.clkr.hw,
6296 },
6297 .num_parents = 1,
6298 .flags = CLK_SET_RATE_PARENT,
6299 .ops = &clk_branch2_ops,
6300 },
6301 },
6302 };
6303
6304 static struct clk_branch gcc_usb4_1_master_clk = {
6305 .halt_reg = 0xb8010,
6306 .halt_check = BRANCH_HALT,
6307 .clkr = {
6308 .enable_reg = 0xb8010,
6309 .enable_mask = BIT(0),
6310 .hw.init = &(const struct clk_init_data) {
6311 .name = "gcc_usb4_1_master_clk",
6312 .parent_hws = (const struct clk_hw*[]){
6313 &gcc_usb4_1_master_clk_src.clkr.hw,
6314 },
6315 .num_parents = 1,
6316 .flags = CLK_SET_RATE_PARENT,
6317 .ops = &clk_branch2_ops,
6318 },
6319 },
6320 };
6321
6322 static struct clk_branch gcc_usb4_1_phy_p2rr2p_pipe_clk = {
6323 .halt_reg = 0xb80b4,
6324 .halt_check = BRANCH_HALT_DELAY,
6325 .clkr = {
6326 .enable_reg = 0xb80b4,
6327 .enable_mask = BIT(0),
6328 .hw.init = &(const struct clk_init_data) {
6329 .name = "gcc_usb4_1_phy_p2rr2p_pipe_clk",
6330 .parent_hws = (const struct clk_hw*[]){
6331 &gcc_usb4_1_phy_p2rr2p_pipe_clk_src.clkr.hw,
6332 },
6333 .num_parents = 1,
6334 .flags = CLK_SET_RATE_PARENT,
6335 .ops = &clk_branch2_ops,
6336 },
6337 },
6338 };
6339
6340 static struct clk_branch gcc_usb4_1_phy_pcie_pipe_clk = {
6341 .halt_reg = 0xb8038,
6342 .halt_check = BRANCH_HALT_DELAY,
6343 .clkr = {
6344 .enable_reg = 0x52020,
6345 .enable_mask = BIT(19),
6346 .hw.init = &(const struct clk_init_data) {
6347 .name = "gcc_usb4_1_phy_pcie_pipe_clk",
6348 .parent_hws = (const struct clk_hw*[]){
6349 &gcc_usb4_1_phy_pcie_pipe_mux_clk_src.clkr.hw,
6350 },
6351 .num_parents = 1,
6352 .flags = CLK_SET_RATE_PARENT,
6353 .ops = &clk_branch2_ops,
6354 },
6355 },
6356 };
6357
6358 static struct clk_branch gcc_usb4_1_phy_rx0_clk = {
6359 .halt_reg = 0xb8094,
6360 .halt_check = BRANCH_HALT,
6361 .clkr = {
6362 .enable_reg = 0xb8094,
6363 .enable_mask = BIT(0),
6364 .hw.init = &(const struct clk_init_data) {
6365 .name = "gcc_usb4_1_phy_rx0_clk",
6366 .parent_hws = (const struct clk_hw*[]){
6367 &gcc_usb4_1_phy_rx0_clk_src.clkr.hw,
6368 },
6369 .num_parents = 1,
6370 .flags = CLK_SET_RATE_PARENT,
6371 .ops = &clk_branch2_ops,
6372 },
6373 },
6374 };
6375
6376 static struct clk_branch gcc_usb4_1_phy_rx1_clk = {
6377 .halt_reg = 0xb80a0,
6378 .halt_check = BRANCH_HALT,
6379 .clkr = {
6380 .enable_reg = 0xb80a0,
6381 .enable_mask = BIT(0),
6382 .hw.init = &(const struct clk_init_data) {
6383 .name = "gcc_usb4_1_phy_rx1_clk",
6384 .parent_hws = (const struct clk_hw*[]){
6385 &gcc_usb4_1_phy_rx1_clk_src.clkr.hw,
6386 },
6387 .num_parents = 1,
6388 .flags = CLK_SET_RATE_PARENT,
6389 .ops = &clk_branch2_ops,
6390 },
6391 },
6392 };
6393
6394 static struct clk_branch gcc_usb4_1_phy_usb_pipe_clk = {
6395 .halt_reg = 0xb8088,
6396 .halt_check = BRANCH_HALT_DELAY,
6397 .hwcg_reg = 0xb8088,
6398 .hwcg_bit = 1,
6399 .clkr = {
6400 .enable_reg = 0xb8088,
6401 .enable_mask = BIT(0),
6402 .hw.init = &(const struct clk_init_data) {
6403 .name = "gcc_usb4_1_phy_usb_pipe_clk",
6404 .parent_hws = (const struct clk_hw*[]){
6405 &gcc_usb34_sec_phy_pipe_clk_src.clkr.hw,
6406 },
6407 .num_parents = 1,
6408 .flags = CLK_SET_RATE_PARENT,
6409 .ops = &clk_branch2_ops,
6410 },
6411 },
6412 };
6413
6414 static struct clk_branch gcc_usb4_1_sb_if_clk = {
6415 .halt_reg = 0xb8034,
6416 .halt_check = BRANCH_HALT,
6417 .clkr = {
6418 .enable_reg = 0xb8034,
6419 .enable_mask = BIT(0),
6420 .hw.init = &(const struct clk_init_data) {
6421 .name = "gcc_usb4_1_sb_if_clk",
6422 .parent_hws = (const struct clk_hw*[]){
6423 &gcc_usb4_1_sb_if_clk_src.clkr.hw,
6424 },
6425 .num_parents = 1,
6426 .flags = CLK_SET_RATE_PARENT,
6427 .ops = &clk_branch2_ops,
6428 },
6429 },
6430 };
6431
6432 static struct clk_branch gcc_usb4_1_sys_clk = {
6433 .halt_reg = 0xb8040,
6434 .halt_check = BRANCH_HALT,
6435 .clkr = {
6436 .enable_reg = 0xb8040,
6437 .enable_mask = BIT(0),
6438 .hw.init = &(const struct clk_init_data) {
6439 .name = "gcc_usb4_1_sys_clk",
6440 .parent_hws = (const struct clk_hw*[]){
6441 &gcc_usb4_1_phy_sys_clk_src.clkr.hw,
6442 },
6443 .num_parents = 1,
6444 .flags = CLK_SET_RATE_PARENT,
6445 .ops = &clk_branch2_ops,
6446 },
6447 },
6448 };
6449
6450 static struct clk_branch gcc_usb4_1_tmu_clk = {
6451 .halt_reg = 0xb806c,
6452 .halt_check = BRANCH_HALT_VOTED,
6453 .hwcg_reg = 0xb806c,
6454 .hwcg_bit = 1,
6455 .clkr = {
6456 .enable_reg = 0xb806c,
6457 .enable_mask = BIT(0),
6458 .hw.init = &(const struct clk_init_data) {
6459 .name = "gcc_usb4_1_tmu_clk",
6460 .parent_hws = (const struct clk_hw*[]){
6461 &gcc_usb4_1_tmu_clk_src.clkr.hw,
6462 },
6463 .num_parents = 1,
6464 .flags = CLK_SET_RATE_PARENT,
6465 .ops = &clk_branch2_ops,
6466 },
6467 },
6468 };
6469
6470 static struct clk_branch gcc_usb4_cfg_ahb_clk = {
6471 .halt_reg = 0x2a08c,
6472 .halt_check = BRANCH_HALT_VOTED,
6473 .hwcg_reg = 0x2a08c,
6474 .hwcg_bit = 1,
6475 .clkr = {
6476 .enable_reg = 0x2a08c,
6477 .enable_mask = BIT(0),
6478 .hw.init = &(const struct clk_init_data) {
6479 .name = "gcc_usb4_cfg_ahb_clk",
6480 .ops = &clk_branch2_ops,
6481 },
6482 },
6483 };
6484
6485 static struct clk_branch gcc_usb4_clkref_clk = {
6486 .halt_reg = 0x8c010,
6487 .halt_check = BRANCH_HALT,
6488 .clkr = {
6489 .enable_reg = 0x8c010,
6490 .enable_mask = BIT(0),
6491 .hw.init = &(const struct clk_init_data) {
6492 .name = "gcc_usb4_clkref_clk",
6493 .ops = &clk_branch2_ops,
6494 },
6495 },
6496 };
6497
6498 static struct clk_branch gcc_usb4_dp_clk = {
6499 .halt_reg = 0x2a048,
6500 .halt_check = BRANCH_HALT,
6501 .clkr = {
6502 .enable_reg = 0x2a048,
6503 .enable_mask = BIT(0),
6504 .hw.init = &(const struct clk_init_data) {
6505 .name = "gcc_usb4_dp_clk",
6506 .parent_hws = (const struct clk_hw*[]){
6507 &gcc_usb4_phy_dp_clk_src.clkr.hw,
6508 },
6509 .num_parents = 1,
6510 .flags = CLK_SET_RATE_PARENT,
6511 .ops = &clk_branch2_ops,
6512 },
6513 },
6514 };
6515
6516 static struct clk_branch gcc_usb4_eud_clkref_clk = {
6517 .halt_reg = 0x8c02c,
6518 .halt_check = BRANCH_HALT,
6519 .clkr = {
6520 .enable_reg = 0x8c02c,
6521 .enable_mask = BIT(0),
6522 .hw.init = &(const struct clk_init_data) {
6523 .name = "gcc_usb4_eud_clkref_clk",
6524 .ops = &clk_branch2_ops,
6525 },
6526 },
6527 };
6528
6529 static struct clk_branch gcc_usb4_master_clk = {
6530 .halt_reg = 0x2a010,
6531 .halt_check = BRANCH_HALT,
6532 .clkr = {
6533 .enable_reg = 0x2a010,
6534 .enable_mask = BIT(0),
6535 .hw.init = &(const struct clk_init_data) {
6536 .name = "gcc_usb4_master_clk",
6537 .parent_hws = (const struct clk_hw*[]){
6538 &gcc_usb4_master_clk_src.clkr.hw,
6539 },
6540 .num_parents = 1,
6541 .flags = CLK_SET_RATE_PARENT,
6542 .ops = &clk_branch2_ops,
6543 },
6544 },
6545 };
6546
6547 static struct clk_branch gcc_usb4_phy_p2rr2p_pipe_clk = {
6548 .halt_reg = 0x2a0b4,
6549 .halt_check = BRANCH_HALT_DELAY,
6550 .clkr = {
6551 .enable_reg = 0x2a0b4,
6552 .enable_mask = BIT(0),
6553 .hw.init = &(const struct clk_init_data) {
6554 .name = "gcc_usb4_phy_p2rr2p_pipe_clk",
6555 .parent_hws = (const struct clk_hw*[]){
6556 &gcc_usb4_phy_p2rr2p_pipe_clk_src.clkr.hw,
6557 },
6558 .num_parents = 1,
6559 .flags = CLK_SET_RATE_PARENT,
6560 .ops = &clk_branch2_ops,
6561 },
6562 },
6563 };
6564
6565 static struct clk_branch gcc_usb4_phy_pcie_pipe_clk = {
6566 .halt_reg = 0x2a038,
6567 .halt_check = BRANCH_HALT_DELAY,
6568 .clkr = {
6569 .enable_reg = 0x52020,
6570 .enable_mask = BIT(18),
6571 .hw.init = &(const struct clk_init_data) {
6572 .name = "gcc_usb4_phy_pcie_pipe_clk",
6573 .parent_hws = (const struct clk_hw*[]){
6574 &gcc_usb4_phy_pcie_pipe_mux_clk_src.clkr.hw,
6575 },
6576 .num_parents = 1,
6577 .flags = CLK_SET_RATE_PARENT,
6578 .ops = &clk_branch2_ops,
6579 },
6580 },
6581 };
6582
6583 static struct clk_branch gcc_usb4_phy_rx0_clk = {
6584 .halt_reg = 0x2a094,
6585 .halt_check = BRANCH_HALT,
6586 .clkr = {
6587 .enable_reg = 0x2a094,
6588 .enable_mask = BIT(0),
6589 .hw.init = &(const struct clk_init_data) {
6590 .name = "gcc_usb4_phy_rx0_clk",
6591 .parent_hws = (const struct clk_hw*[]){
6592 &gcc_usb4_phy_rx0_clk_src.clkr.hw,
6593 },
6594 .num_parents = 1,
6595 .flags = CLK_SET_RATE_PARENT,
6596 .ops = &clk_branch2_ops,
6597 },
6598 },
6599 };
6600
6601 static struct clk_branch gcc_usb4_phy_rx1_clk = {
6602 .halt_reg = 0x2a0a0,
6603 .halt_check = BRANCH_HALT,
6604 .clkr = {
6605 .enable_reg = 0x2a0a0,
6606 .enable_mask = BIT(0),
6607 .hw.init = &(const struct clk_init_data) {
6608 .name = "gcc_usb4_phy_rx1_clk",
6609 .parent_hws = (const struct clk_hw*[]){
6610 &gcc_usb4_phy_rx1_clk_src.clkr.hw,
6611 },
6612 .num_parents = 1,
6613 .flags = CLK_SET_RATE_PARENT,
6614 .ops = &clk_branch2_ops,
6615 },
6616 },
6617 };
6618
6619 static struct clk_branch gcc_usb4_phy_usb_pipe_clk = {
6620 .halt_reg = 0x2a088,
6621 .halt_check = BRANCH_HALT_DELAY,
6622 .hwcg_reg = 0x2a088,
6623 .hwcg_bit = 1,
6624 .clkr = {
6625 .enable_reg = 0x2a088,
6626 .enable_mask = BIT(0),
6627 .hw.init = &(const struct clk_init_data) {
6628 .name = "gcc_usb4_phy_usb_pipe_clk",
6629 .parent_hws = (const struct clk_hw*[]){
6630 &gcc_usb34_prim_phy_pipe_clk_src.clkr.hw,
6631 },
6632 .num_parents = 1,
6633 .flags = CLK_SET_RATE_PARENT,
6634 .ops = &clk_branch2_ops,
6635 },
6636 },
6637 };
6638
6639 static struct clk_branch gcc_usb4_sb_if_clk = {
6640 .halt_reg = 0x2a034,
6641 .halt_check = BRANCH_HALT,
6642 .clkr = {
6643 .enable_reg = 0x2a034,
6644 .enable_mask = BIT(0),
6645 .hw.init = &(const struct clk_init_data) {
6646 .name = "gcc_usb4_sb_if_clk",
6647 .parent_hws = (const struct clk_hw*[]){
6648 &gcc_usb4_sb_if_clk_src.clkr.hw,
6649 },
6650 .num_parents = 1,
6651 .flags = CLK_SET_RATE_PARENT,
6652 .ops = &clk_branch2_ops,
6653 },
6654 },
6655 };
6656
6657 static struct clk_branch gcc_usb4_sys_clk = {
6658 .halt_reg = 0x2a040,
6659 .halt_check = BRANCH_HALT,
6660 .clkr = {
6661 .enable_reg = 0x2a040,
6662 .enable_mask = BIT(0),
6663 .hw.init = &(const struct clk_init_data) {
6664 .name = "gcc_usb4_sys_clk",
6665 .parent_hws = (const struct clk_hw*[]){
6666 &gcc_usb4_phy_sys_clk_src.clkr.hw,
6667 },
6668 .num_parents = 1,
6669 .flags = CLK_SET_RATE_PARENT,
6670 .ops = &clk_branch2_ops,
6671 },
6672 },
6673 };
6674
6675 static struct clk_branch gcc_usb4_tmu_clk = {
6676 .halt_reg = 0x2a06c,
6677 .halt_check = BRANCH_HALT_VOTED,
6678 .hwcg_reg = 0x2a06c,
6679 .hwcg_bit = 1,
6680 .clkr = {
6681 .enable_reg = 0x2a06c,
6682 .enable_mask = BIT(0),
6683 .hw.init = &(const struct clk_init_data) {
6684 .name = "gcc_usb4_tmu_clk",
6685 .parent_hws = (const struct clk_hw*[]){
6686 &gcc_usb4_tmu_clk_src.clkr.hw,
6687 },
6688 .num_parents = 1,
6689 .flags = CLK_SET_RATE_PARENT,
6690 .ops = &clk_branch2_ops,
6691 },
6692 },
6693 };
6694
6695 static struct clk_branch gcc_video_axi0_clk = {
6696 .halt_reg = 0x28010,
6697 .halt_check = BRANCH_HALT_SKIP,
6698 .hwcg_reg = 0x28010,
6699 .hwcg_bit = 1,
6700 .clkr = {
6701 .enable_reg = 0x28010,
6702 .enable_mask = BIT(0),
6703 .hw.init = &(const struct clk_init_data) {
6704 .name = "gcc_video_axi0_clk",
6705 .ops = &clk_branch2_ops,
6706 },
6707 },
6708 };
6709
6710 static struct clk_branch gcc_video_axi1_clk = {
6711 .halt_reg = 0x28018,
6712 .halt_check = BRANCH_HALT_SKIP,
6713 .hwcg_reg = 0x28018,
6714 .hwcg_bit = 1,
6715 .clkr = {
6716 .enable_reg = 0x28018,
6717 .enable_mask = BIT(0),
6718 .hw.init = &(const struct clk_init_data) {
6719 .name = "gcc_video_axi1_clk",
6720 .ops = &clk_branch2_ops,
6721 },
6722 },
6723 };
6724
6725 static struct clk_branch gcc_video_cvp_throttle_clk = {
6726 .halt_reg = 0x28024,
6727 .halt_check = BRANCH_HALT_SKIP,
6728 .hwcg_reg = 0x28024,
6729 .hwcg_bit = 1,
6730 .clkr = {
6731 .enable_reg = 0x28024,
6732 .enable_mask = BIT(0),
6733 .hw.init = &(const struct clk_init_data) {
6734 .name = "gcc_video_cvp_throttle_clk",
6735 .ops = &clk_branch2_ops,
6736 },
6737 },
6738 };
6739
6740 static struct clk_branch gcc_video_vcodec_throttle_clk = {
6741 .halt_reg = 0x28020,
6742 .halt_check = BRANCH_HALT_SKIP,
6743 .hwcg_reg = 0x28020,
6744 .hwcg_bit = 1,
6745 .clkr = {
6746 .enable_reg = 0x28020,
6747 .enable_mask = BIT(0),
6748 .hw.init = &(const struct clk_init_data) {
6749 .name = "gcc_video_vcodec_throttle_clk",
6750 .ops = &clk_branch2_ops,
6751 },
6752 },
6753 };
6754
6755 static struct gdsc pcie_0_tunnel_gdsc = {
6756 .gdscr = 0xa4004,
6757 .collapse_ctrl = 0x52128,
6758 .collapse_mask = BIT(0),
6759 .pd = {
6760 .name = "pcie_0_tunnel_gdsc",
6761 },
6762 .pwrsts = PWRSTS_OFF_ON,
6763 .flags = VOTABLE | RETAIN_FF_ENABLE,
6764 };
6765
6766 static struct gdsc pcie_1_tunnel_gdsc = {
6767 .gdscr = 0x8d004,
6768 .collapse_ctrl = 0x52128,
6769 .collapse_mask = BIT(1),
6770 .pd = {
6771 .name = "pcie_1_tunnel_gdsc",
6772 },
6773 .pwrsts = PWRSTS_OFF_ON,
6774 .flags = VOTABLE | RETAIN_FF_ENABLE,
6775 };
6776
6777 static struct gdsc pcie_2a_gdsc = {
6778 .gdscr = 0x9d004,
6779 .collapse_ctrl = 0x52128,
6780 .collapse_mask = BIT(2),
6781 .pd = {
6782 .name = "pcie_2a_gdsc",
6783 },
6784 .pwrsts = PWRSTS_RET_ON,
6785 .flags = VOTABLE | RETAIN_FF_ENABLE,
6786 };
6787
6788 static struct gdsc pcie_2b_gdsc = {
6789 .gdscr = 0x9e004,
6790 .collapse_ctrl = 0x52128,
6791 .collapse_mask = BIT(3),
6792 .pd = {
6793 .name = "pcie_2b_gdsc",
6794 },
6795 .pwrsts = PWRSTS_RET_ON,
6796 .flags = VOTABLE | RETAIN_FF_ENABLE,
6797 };
6798
6799 static struct gdsc pcie_3a_gdsc = {
6800 .gdscr = 0xa0004,
6801 .collapse_ctrl = 0x52128,
6802 .collapse_mask = BIT(4),
6803 .pd = {
6804 .name = "pcie_3a_gdsc",
6805 },
6806 .pwrsts = PWRSTS_RET_ON,
6807 .flags = VOTABLE | RETAIN_FF_ENABLE,
6808 };
6809
6810 static struct gdsc pcie_3b_gdsc = {
6811 .gdscr = 0xa2004,
6812 .collapse_ctrl = 0x52128,
6813 .collapse_mask = BIT(5),
6814 .pd = {
6815 .name = "pcie_3b_gdsc",
6816 },
6817 .pwrsts = PWRSTS_RET_ON,
6818 .flags = VOTABLE | RETAIN_FF_ENABLE,
6819 };
6820
6821 static struct gdsc pcie_4_gdsc = {
6822 .gdscr = 0x6b004,
6823 .collapse_ctrl = 0x52128,
6824 .collapse_mask = BIT(6),
6825 .pd = {
6826 .name = "pcie_4_gdsc",
6827 },
6828 .pwrsts = PWRSTS_RET_ON,
6829 .flags = VOTABLE | RETAIN_FF_ENABLE,
6830 };
6831
6832 static struct gdsc ufs_card_gdsc = {
6833 .gdscr = 0x75004,
6834 .pd = {
6835 .name = "ufs_card_gdsc",
6836 },
6837 .pwrsts = PWRSTS_OFF_ON,
6838 .flags = RETAIN_FF_ENABLE,
6839 };
6840
6841 static struct gdsc ufs_phy_gdsc = {
6842 .gdscr = 0x77004,
6843 .pd = {
6844 .name = "ufs_phy_gdsc",
6845 },
6846 .pwrsts = PWRSTS_OFF_ON,
6847 .flags = RETAIN_FF_ENABLE,
6848 };
6849
6850 static struct gdsc usb30_mp_gdsc = {
6851 .gdscr = 0xab004,
6852 .pd = {
6853 .name = "usb30_mp_gdsc",
6854 },
6855 .pwrsts = PWRSTS_RET_ON,
6856 .flags = RETAIN_FF_ENABLE,
6857 };
6858
6859 static struct gdsc usb30_prim_gdsc = {
6860 .gdscr = 0xf004,
6861 .pd = {
6862 .name = "usb30_prim_gdsc",
6863 },
6864 .pwrsts = PWRSTS_RET_ON,
6865 .flags = RETAIN_FF_ENABLE,
6866 };
6867
6868 static struct gdsc usb30_sec_gdsc = {
6869 .gdscr = 0x10004,
6870 .pd = {
6871 .name = "usb30_sec_gdsc",
6872 },
6873 .pwrsts = PWRSTS_RET_ON,
6874 .flags = RETAIN_FF_ENABLE,
6875 };
6876
6877 static struct gdsc emac_0_gdsc = {
6878 .gdscr = 0xaa004,
6879 .pd = {
6880 .name = "emac_0_gdsc",
6881 },
6882 .pwrsts = PWRSTS_OFF_ON,
6883 .flags = RETAIN_FF_ENABLE,
6884 };
6885
6886 static struct gdsc emac_1_gdsc = {
6887 .gdscr = 0xba004,
6888 .pd = {
6889 .name = "emac_1_gdsc",
6890 },
6891 .pwrsts = PWRSTS_OFF_ON,
6892 .flags = RETAIN_FF_ENABLE,
6893 };
6894
6895 static struct gdsc usb4_1_gdsc = {
6896 .gdscr = 0xb8004,
6897 .pd = {
6898 .name = "usb4_1_gdsc",
6899 },
6900 .pwrsts = PWRSTS_OFF_ON,
6901 .flags = RETAIN_FF_ENABLE,
6902 };
6903
6904 static struct gdsc usb4_gdsc = {
6905 .gdscr = 0x2a004,
6906 .pd = {
6907 .name = "usb4_gdsc",
6908 },
6909 .pwrsts = PWRSTS_OFF_ON,
6910 .flags = RETAIN_FF_ENABLE,
6911 };
6912
6913 static struct gdsc hlos1_vote_mmnoc_mmu_tbu_hf0_gdsc = {
6914 .gdscr = 0x7d050,
6915 .pd = {
6916 .name = "hlos1_vote_mmnoc_mmu_tbu_hf0_gdsc",
6917 },
6918 .pwrsts = PWRSTS_OFF_ON,
6919 .flags = VOTABLE,
6920 };
6921
6922 static struct gdsc hlos1_vote_mmnoc_mmu_tbu_hf1_gdsc = {
6923 .gdscr = 0x7d058,
6924 .pd = {
6925 .name = "hlos1_vote_mmnoc_mmu_tbu_hf1_gdsc",
6926 },
6927 .pwrsts = PWRSTS_OFF_ON,
6928 .flags = VOTABLE,
6929 };
6930
6931 static struct gdsc hlos1_vote_mmnoc_mmu_tbu_sf0_gdsc = {
6932 .gdscr = 0x7d054,
6933 .pd = {
6934 .name = "hlos1_vote_mmnoc_mmu_tbu_sf0_gdsc",
6935 },
6936 .pwrsts = PWRSTS_OFF_ON,
6937 .flags = VOTABLE,
6938 };
6939
6940 static struct gdsc hlos1_vote_mmnoc_mmu_tbu_sf1_gdsc = {
6941 .gdscr = 0x7d06c,
6942 .pd = {
6943 .name = "hlos1_vote_mmnoc_mmu_tbu_sf1_gdsc",
6944 },
6945 .pwrsts = PWRSTS_OFF_ON,
6946 .flags = VOTABLE,
6947 };
6948
6949 static struct gdsc hlos1_vote_turing_mmu_tbu0_gdsc = {
6950 .gdscr = 0x7d05c,
6951 .pd = {
6952 .name = "hlos1_vote_turing_mmu_tbu0_gdsc",
6953 },
6954 .pwrsts = PWRSTS_OFF_ON,
6955 .flags = VOTABLE,
6956 };
6957
6958 static struct gdsc hlos1_vote_turing_mmu_tbu1_gdsc = {
6959 .gdscr = 0x7d060,
6960 .pd = {
6961 .name = "hlos1_vote_turing_mmu_tbu1_gdsc",
6962 },
6963 .pwrsts = PWRSTS_OFF_ON,
6964 .flags = VOTABLE,
6965 };
6966
6967 static struct gdsc hlos1_vote_turing_mmu_tbu2_gdsc = {
6968 .gdscr = 0x7d0a0,
6969 .pd = {
6970 .name = "hlos1_vote_turing_mmu_tbu2_gdsc",
6971 },
6972 .pwrsts = PWRSTS_OFF_ON,
6973 .flags = VOTABLE,
6974 };
6975
6976 static struct gdsc hlos1_vote_turing_mmu_tbu3_gdsc = {
6977 .gdscr = 0x7d0a4,
6978 .pd = {
6979 .name = "hlos1_vote_turing_mmu_tbu3_gdsc",
6980 },
6981 .pwrsts = PWRSTS_OFF_ON,
6982 .flags = VOTABLE,
6983 };
6984
6985 static struct clk_regmap *gcc_sc8280xp_clocks[] = {
6986 [GCC_AGGRE_NOC_PCIE0_TUNNEL_AXI_CLK] = &gcc_aggre_noc_pcie0_tunnel_axi_clk.clkr,
6987 [GCC_AGGRE_NOC_PCIE1_TUNNEL_AXI_CLK] = &gcc_aggre_noc_pcie1_tunnel_axi_clk.clkr,
6988 [GCC_AGGRE_NOC_PCIE_4_AXI_CLK] = &gcc_aggre_noc_pcie_4_axi_clk.clkr,
6989 [GCC_AGGRE_NOC_PCIE_SOUTH_SF_AXI_CLK] = &gcc_aggre_noc_pcie_south_sf_axi_clk.clkr,
6990 [GCC_AGGRE_UFS_CARD_AXI_CLK] = &gcc_aggre_ufs_card_axi_clk.clkr,
6991 [GCC_AGGRE_UFS_CARD_AXI_HW_CTL_CLK] = &gcc_aggre_ufs_card_axi_hw_ctl_clk.clkr,
6992 [GCC_AGGRE_UFS_PHY_AXI_CLK] = &gcc_aggre_ufs_phy_axi_clk.clkr,
6993 [GCC_AGGRE_UFS_PHY_AXI_HW_CTL_CLK] = &gcc_aggre_ufs_phy_axi_hw_ctl_clk.clkr,
6994 [GCC_AGGRE_USB3_MP_AXI_CLK] = &gcc_aggre_usb3_mp_axi_clk.clkr,
6995 [GCC_AGGRE_USB3_PRIM_AXI_CLK] = &gcc_aggre_usb3_prim_axi_clk.clkr,
6996 [GCC_AGGRE_USB3_SEC_AXI_CLK] = &gcc_aggre_usb3_sec_axi_clk.clkr,
6997 [GCC_AGGRE_USB4_1_AXI_CLK] = &gcc_aggre_usb4_1_axi_clk.clkr,
6998 [GCC_AGGRE_USB4_AXI_CLK] = &gcc_aggre_usb4_axi_clk.clkr,
6999 [GCC_AGGRE_USB_NOC_AXI_CLK] = &gcc_aggre_usb_noc_axi_clk.clkr,
7000 [GCC_AGGRE_USB_NOC_NORTH_AXI_CLK] = &gcc_aggre_usb_noc_north_axi_clk.clkr,
7001 [GCC_AGGRE_USB_NOC_SOUTH_AXI_CLK] = &gcc_aggre_usb_noc_south_axi_clk.clkr,
7002 [GCC_AHB2PHY0_CLK] = &gcc_ahb2phy0_clk.clkr,
7003 [GCC_AHB2PHY2_CLK] = &gcc_ahb2phy2_clk.clkr,
7004 [GCC_BOOT_ROM_AHB_CLK] = &gcc_boot_rom_ahb_clk.clkr,
7005 [GCC_CAMERA_HF_AXI_CLK] = &gcc_camera_hf_axi_clk.clkr,
7006 [GCC_CAMERA_SF_AXI_CLK] = &gcc_camera_sf_axi_clk.clkr,
7007 [GCC_CAMERA_THROTTLE_NRT_AXI_CLK] = &gcc_camera_throttle_nrt_axi_clk.clkr,
7008 [GCC_CAMERA_THROTTLE_RT_AXI_CLK] = &gcc_camera_throttle_rt_axi_clk.clkr,
7009 [GCC_CAMERA_THROTTLE_XO_CLK] = &gcc_camera_throttle_xo_clk.clkr,
7010 [GCC_CFG_NOC_USB3_MP_AXI_CLK] = &gcc_cfg_noc_usb3_mp_axi_clk.clkr,
7011 [GCC_CFG_NOC_USB3_PRIM_AXI_CLK] = &gcc_cfg_noc_usb3_prim_axi_clk.clkr,
7012 [GCC_CFG_NOC_USB3_SEC_AXI_CLK] = &gcc_cfg_noc_usb3_sec_axi_clk.clkr,
7013 [GCC_CNOC_PCIE0_TUNNEL_CLK] = &gcc_cnoc_pcie0_tunnel_clk.clkr,
7014 [GCC_CNOC_PCIE1_TUNNEL_CLK] = &gcc_cnoc_pcie1_tunnel_clk.clkr,
7015 [GCC_CNOC_PCIE4_QX_CLK] = &gcc_cnoc_pcie4_qx_clk.clkr,
7016 [GCC_DDRSS_GPU_AXI_CLK] = &gcc_ddrss_gpu_axi_clk.clkr,
7017 [GCC_DDRSS_PCIE_SF_TBU_CLK] = &gcc_ddrss_pcie_sf_tbu_clk.clkr,
7018 [GCC_DISP1_HF_AXI_CLK] = &gcc_disp1_hf_axi_clk.clkr,
7019 [GCC_DISP1_SF_AXI_CLK] = &gcc_disp1_sf_axi_clk.clkr,
7020 [GCC_DISP1_THROTTLE_NRT_AXI_CLK] = &gcc_disp1_throttle_nrt_axi_clk.clkr,
7021 [GCC_DISP1_THROTTLE_RT_AXI_CLK] = &gcc_disp1_throttle_rt_axi_clk.clkr,
7022 [GCC_DISP_HF_AXI_CLK] = &gcc_disp_hf_axi_clk.clkr,
7023 [GCC_DISP_SF_AXI_CLK] = &gcc_disp_sf_axi_clk.clkr,
7024 [GCC_DISP_THROTTLE_NRT_AXI_CLK] = &gcc_disp_throttle_nrt_axi_clk.clkr,
7025 [GCC_DISP_THROTTLE_RT_AXI_CLK] = &gcc_disp_throttle_rt_axi_clk.clkr,
7026 [GCC_EMAC0_AXI_CLK] = &gcc_emac0_axi_clk.clkr,
7027 [GCC_EMAC0_PTP_CLK] = &gcc_emac0_ptp_clk.clkr,
7028 [GCC_EMAC0_PTP_CLK_SRC] = &gcc_emac0_ptp_clk_src.clkr,
7029 [GCC_EMAC0_RGMII_CLK] = &gcc_emac0_rgmii_clk.clkr,
7030 [GCC_EMAC0_RGMII_CLK_SRC] = &gcc_emac0_rgmii_clk_src.clkr,
7031 [GCC_EMAC0_SLV_AHB_CLK] = &gcc_emac0_slv_ahb_clk.clkr,
7032 [GCC_EMAC1_AXI_CLK] = &gcc_emac1_axi_clk.clkr,
7033 [GCC_EMAC1_PTP_CLK] = &gcc_emac1_ptp_clk.clkr,
7034 [GCC_EMAC1_PTP_CLK_SRC] = &gcc_emac1_ptp_clk_src.clkr,
7035 [GCC_EMAC1_RGMII_CLK] = &gcc_emac1_rgmii_clk.clkr,
7036 [GCC_EMAC1_RGMII_CLK_SRC] = &gcc_emac1_rgmii_clk_src.clkr,
7037 [GCC_EMAC1_SLV_AHB_CLK] = &gcc_emac1_slv_ahb_clk.clkr,
7038 [GCC_GP1_CLK] = &gcc_gp1_clk.clkr,
7039 [GCC_GP1_CLK_SRC] = &gcc_gp1_clk_src.clkr,
7040 [GCC_GP2_CLK] = &gcc_gp2_clk.clkr,
7041 [GCC_GP2_CLK_SRC] = &gcc_gp2_clk_src.clkr,
7042 [GCC_GP3_CLK] = &gcc_gp3_clk.clkr,
7043 [GCC_GP3_CLK_SRC] = &gcc_gp3_clk_src.clkr,
7044 [GCC_GP4_CLK] = &gcc_gp4_clk.clkr,
7045 [GCC_GP4_CLK_SRC] = &gcc_gp4_clk_src.clkr,
7046 [GCC_GP5_CLK] = &gcc_gp5_clk.clkr,
7047 [GCC_GP5_CLK_SRC] = &gcc_gp5_clk_src.clkr,
7048 [GCC_GPLL0] = &gcc_gpll0.clkr,
7049 [GCC_GPLL0_OUT_EVEN] = &gcc_gpll0_out_even.clkr,
7050 [GCC_GPLL2] = &gcc_gpll2.clkr,
7051 [GCC_GPLL4] = &gcc_gpll4.clkr,
7052 [GCC_GPLL7] = &gcc_gpll7.clkr,
7053 [GCC_GPLL8] = &gcc_gpll8.clkr,
7054 [GCC_GPLL9] = &gcc_gpll9.clkr,
7055 [GCC_GPU_GPLL0_CLK_SRC] = &gcc_gpu_gpll0_clk_src.clkr,
7056 [GCC_GPU_GPLL0_DIV_CLK_SRC] = &gcc_gpu_gpll0_div_clk_src.clkr,
7057 [GCC_GPU_IREF_EN] = &gcc_gpu_iref_en.clkr,
7058 [GCC_GPU_MEMNOC_GFX_CLK] = &gcc_gpu_memnoc_gfx_clk.clkr,
7059 [GCC_GPU_SNOC_DVM_GFX_CLK] = &gcc_gpu_snoc_dvm_gfx_clk.clkr,
7060 [GCC_GPU_TCU_THROTTLE_AHB_CLK] = &gcc_gpu_tcu_throttle_ahb_clk.clkr,
7061 [GCC_GPU_TCU_THROTTLE_CLK] = &gcc_gpu_tcu_throttle_clk.clkr,
7062 [GCC_PCIE0_PHY_RCHNG_CLK] = &gcc_pcie0_phy_rchng_clk.clkr,
7063 [GCC_PCIE1_PHY_RCHNG_CLK] = &gcc_pcie1_phy_rchng_clk.clkr,
7064 [GCC_PCIE2A_PHY_RCHNG_CLK] = &gcc_pcie2a_phy_rchng_clk.clkr,
7065 [GCC_PCIE2B_PHY_RCHNG_CLK] = &gcc_pcie2b_phy_rchng_clk.clkr,
7066 [GCC_PCIE3A_PHY_RCHNG_CLK] = &gcc_pcie3a_phy_rchng_clk.clkr,
7067 [GCC_PCIE3B_PHY_RCHNG_CLK] = &gcc_pcie3b_phy_rchng_clk.clkr,
7068 [GCC_PCIE4_PHY_RCHNG_CLK] = &gcc_pcie4_phy_rchng_clk.clkr,
7069 [GCC_PCIE_0_AUX_CLK] = &gcc_pcie_0_aux_clk.clkr,
7070 [GCC_PCIE_0_AUX_CLK_SRC] = &gcc_pcie_0_aux_clk_src.clkr,
7071 [GCC_PCIE_0_CFG_AHB_CLK] = &gcc_pcie_0_cfg_ahb_clk.clkr,
7072 [GCC_PCIE_0_MSTR_AXI_CLK] = &gcc_pcie_0_mstr_axi_clk.clkr,
7073 [GCC_PCIE_0_PHY_RCHNG_CLK_SRC] = &gcc_pcie_0_phy_rchng_clk_src.clkr,
7074 [GCC_PCIE_0_PIPE_CLK] = &gcc_pcie_0_pipe_clk.clkr,
7075 [GCC_PCIE_0_SLV_AXI_CLK] = &gcc_pcie_0_slv_axi_clk.clkr,
7076 [GCC_PCIE_0_SLV_Q2A_AXI_CLK] = &gcc_pcie_0_slv_q2a_axi_clk.clkr,
7077 [GCC_PCIE_1_AUX_CLK] = &gcc_pcie_1_aux_clk.clkr,
7078 [GCC_PCIE_1_AUX_CLK_SRC] = &gcc_pcie_1_aux_clk_src.clkr,
7079 [GCC_PCIE_1_CFG_AHB_CLK] = &gcc_pcie_1_cfg_ahb_clk.clkr,
7080 [GCC_PCIE_1_MSTR_AXI_CLK] = &gcc_pcie_1_mstr_axi_clk.clkr,
7081 [GCC_PCIE_1_PHY_RCHNG_CLK_SRC] = &gcc_pcie_1_phy_rchng_clk_src.clkr,
7082 [GCC_PCIE_1_PIPE_CLK] = &gcc_pcie_1_pipe_clk.clkr,
7083 [GCC_PCIE_1_SLV_AXI_CLK] = &gcc_pcie_1_slv_axi_clk.clkr,
7084 [GCC_PCIE_1_SLV_Q2A_AXI_CLK] = &gcc_pcie_1_slv_q2a_axi_clk.clkr,
7085 [GCC_PCIE_2A2B_CLKREF_CLK] = &gcc_pcie_2a2b_clkref_clk.clkr,
7086 [GCC_PCIE_2A_AUX_CLK] = &gcc_pcie_2a_aux_clk.clkr,
7087 [GCC_PCIE_2A_AUX_CLK_SRC] = &gcc_pcie_2a_aux_clk_src.clkr,
7088 [GCC_PCIE_2A_CFG_AHB_CLK] = &gcc_pcie_2a_cfg_ahb_clk.clkr,
7089 [GCC_PCIE_2A_MSTR_AXI_CLK] = &gcc_pcie_2a_mstr_axi_clk.clkr,
7090 [GCC_PCIE_2A_PHY_RCHNG_CLK_SRC] = &gcc_pcie_2a_phy_rchng_clk_src.clkr,
7091 [GCC_PCIE_2A_PIPE_CLK] = &gcc_pcie_2a_pipe_clk.clkr,
7092 [GCC_PCIE_2A_PIPE_CLK_SRC] = &gcc_pcie_2a_pipe_clk_src.clkr,
7093 [GCC_PCIE_2A_PIPE_DIV_CLK_SRC] = &gcc_pcie_2a_pipe_div_clk_src.clkr,
7094 [GCC_PCIE_2A_PIPEDIV2_CLK] = &gcc_pcie_2a_pipediv2_clk.clkr,
7095 [GCC_PCIE_2A_SLV_AXI_CLK] = &gcc_pcie_2a_slv_axi_clk.clkr,
7096 [GCC_PCIE_2A_SLV_Q2A_AXI_CLK] = &gcc_pcie_2a_slv_q2a_axi_clk.clkr,
7097 [GCC_PCIE_2B_AUX_CLK] = &gcc_pcie_2b_aux_clk.clkr,
7098 [GCC_PCIE_2B_AUX_CLK_SRC] = &gcc_pcie_2b_aux_clk_src.clkr,
7099 [GCC_PCIE_2B_CFG_AHB_CLK] = &gcc_pcie_2b_cfg_ahb_clk.clkr,
7100 [GCC_PCIE_2B_MSTR_AXI_CLK] = &gcc_pcie_2b_mstr_axi_clk.clkr,
7101 [GCC_PCIE_2B_PHY_RCHNG_CLK_SRC] = &gcc_pcie_2b_phy_rchng_clk_src.clkr,
7102 [GCC_PCIE_2B_PIPE_CLK] = &gcc_pcie_2b_pipe_clk.clkr,
7103 [GCC_PCIE_2B_PIPE_CLK_SRC] = &gcc_pcie_2b_pipe_clk_src.clkr,
7104 [GCC_PCIE_2B_PIPE_DIV_CLK_SRC] = &gcc_pcie_2b_pipe_div_clk_src.clkr,
7105 [GCC_PCIE_2B_PIPEDIV2_CLK] = &gcc_pcie_2b_pipediv2_clk.clkr,
7106 [GCC_PCIE_2B_SLV_AXI_CLK] = &gcc_pcie_2b_slv_axi_clk.clkr,
7107 [GCC_PCIE_2B_SLV_Q2A_AXI_CLK] = &gcc_pcie_2b_slv_q2a_axi_clk.clkr,
7108 [GCC_PCIE_3A3B_CLKREF_CLK] = &gcc_pcie_3a3b_clkref_clk.clkr,
7109 [GCC_PCIE_3A_AUX_CLK] = &gcc_pcie_3a_aux_clk.clkr,
7110 [GCC_PCIE_3A_AUX_CLK_SRC] = &gcc_pcie_3a_aux_clk_src.clkr,
7111 [GCC_PCIE_3A_CFG_AHB_CLK] = &gcc_pcie_3a_cfg_ahb_clk.clkr,
7112 [GCC_PCIE_3A_MSTR_AXI_CLK] = &gcc_pcie_3a_mstr_axi_clk.clkr,
7113 [GCC_PCIE_3A_PHY_RCHNG_CLK_SRC] = &gcc_pcie_3a_phy_rchng_clk_src.clkr,
7114 [GCC_PCIE_3A_PIPE_CLK] = &gcc_pcie_3a_pipe_clk.clkr,
7115 [GCC_PCIE_3A_PIPE_CLK_SRC] = &gcc_pcie_3a_pipe_clk_src.clkr,
7116 [GCC_PCIE_3A_PIPE_DIV_CLK_SRC] = &gcc_pcie_3a_pipe_div_clk_src.clkr,
7117 [GCC_PCIE_3A_PIPEDIV2_CLK] = &gcc_pcie_3a_pipediv2_clk.clkr,
7118 [GCC_PCIE_3A_SLV_AXI_CLK] = &gcc_pcie_3a_slv_axi_clk.clkr,
7119 [GCC_PCIE_3A_SLV_Q2A_AXI_CLK] = &gcc_pcie_3a_slv_q2a_axi_clk.clkr,
7120 [GCC_PCIE_3B_AUX_CLK] = &gcc_pcie_3b_aux_clk.clkr,
7121 [GCC_PCIE_3B_AUX_CLK_SRC] = &gcc_pcie_3b_aux_clk_src.clkr,
7122 [GCC_PCIE_3B_CFG_AHB_CLK] = &gcc_pcie_3b_cfg_ahb_clk.clkr,
7123 [GCC_PCIE_3B_MSTR_AXI_CLK] = &gcc_pcie_3b_mstr_axi_clk.clkr,
7124 [GCC_PCIE_3B_PHY_RCHNG_CLK_SRC] = &gcc_pcie_3b_phy_rchng_clk_src.clkr,
7125 [GCC_PCIE_3B_PIPE_CLK] = &gcc_pcie_3b_pipe_clk.clkr,
7126 [GCC_PCIE_3B_PIPE_CLK_SRC] = &gcc_pcie_3b_pipe_clk_src.clkr,
7127 [GCC_PCIE_3B_PIPE_DIV_CLK_SRC] = &gcc_pcie_3b_pipe_div_clk_src.clkr,
7128 [GCC_PCIE_3B_PIPEDIV2_CLK] = &gcc_pcie_3b_pipediv2_clk.clkr,
7129 [GCC_PCIE_3B_SLV_AXI_CLK] = &gcc_pcie_3b_slv_axi_clk.clkr,
7130 [GCC_PCIE_3B_SLV_Q2A_AXI_CLK] = &gcc_pcie_3b_slv_q2a_axi_clk.clkr,
7131 [GCC_PCIE_4_AUX_CLK] = &gcc_pcie_4_aux_clk.clkr,
7132 [GCC_PCIE_4_AUX_CLK_SRC] = &gcc_pcie_4_aux_clk_src.clkr,
7133 [GCC_PCIE_4_CFG_AHB_CLK] = &gcc_pcie_4_cfg_ahb_clk.clkr,
7134 [GCC_PCIE_4_CLKREF_CLK] = &gcc_pcie_4_clkref_clk.clkr,
7135 [GCC_PCIE_4_MSTR_AXI_CLK] = &gcc_pcie_4_mstr_axi_clk.clkr,
7136 [GCC_PCIE_4_PHY_RCHNG_CLK_SRC] = &gcc_pcie_4_phy_rchng_clk_src.clkr,
7137 [GCC_PCIE_4_PIPE_CLK] = &gcc_pcie_4_pipe_clk.clkr,
7138 [GCC_PCIE_4_PIPE_CLK_SRC] = &gcc_pcie_4_pipe_clk_src.clkr,
7139 [GCC_PCIE_4_PIPE_DIV_CLK_SRC] = &gcc_pcie_4_pipe_div_clk_src.clkr,
7140 [GCC_PCIE_4_PIPEDIV2_CLK] = &gcc_pcie_4_pipediv2_clk.clkr,
7141 [GCC_PCIE_4_SLV_AXI_CLK] = &gcc_pcie_4_slv_axi_clk.clkr,
7142 [GCC_PCIE_4_SLV_Q2A_AXI_CLK] = &gcc_pcie_4_slv_q2a_axi_clk.clkr,
7143 [GCC_PCIE_RSCC_AHB_CLK] = &gcc_pcie_rscc_ahb_clk.clkr,
7144 [GCC_PCIE_RSCC_XO_CLK] = &gcc_pcie_rscc_xo_clk.clkr,
7145 [GCC_PCIE_RSCC_XO_CLK_SRC] = &gcc_pcie_rscc_xo_clk_src.clkr,
7146 [GCC_PCIE_THROTTLE_CFG_CLK] = &gcc_pcie_throttle_cfg_clk.clkr,
7147 [GCC_PDM2_CLK] = &gcc_pdm2_clk.clkr,
7148 [GCC_PDM2_CLK_SRC] = &gcc_pdm2_clk_src.clkr,
7149 [GCC_PDM_AHB_CLK] = &gcc_pdm_ahb_clk.clkr,
7150 [GCC_PDM_XO4_CLK] = &gcc_pdm_xo4_clk.clkr,
7151 [GCC_QMIP_CAMERA_NRT_AHB_CLK] = &gcc_qmip_camera_nrt_ahb_clk.clkr,
7152 [GCC_QMIP_CAMERA_RT_AHB_CLK] = &gcc_qmip_camera_rt_ahb_clk.clkr,
7153 [GCC_QMIP_DISP1_AHB_CLK] = &gcc_qmip_disp1_ahb_clk.clkr,
7154 [GCC_QMIP_DISP1_ROT_AHB_CLK] = &gcc_qmip_disp1_rot_ahb_clk.clkr,
7155 [GCC_QMIP_DISP_AHB_CLK] = &gcc_qmip_disp_ahb_clk.clkr,
7156 [GCC_QMIP_DISP_ROT_AHB_CLK] = &gcc_qmip_disp_rot_ahb_clk.clkr,
7157 [GCC_QMIP_VIDEO_CVP_AHB_CLK] = &gcc_qmip_video_cvp_ahb_clk.clkr,
7158 [GCC_QMIP_VIDEO_VCODEC_AHB_CLK] = &gcc_qmip_video_vcodec_ahb_clk.clkr,
7159 [GCC_QUPV3_WRAP0_CORE_2X_CLK] = &gcc_qupv3_wrap0_core_2x_clk.clkr,
7160 [GCC_QUPV3_WRAP0_CORE_CLK] = &gcc_qupv3_wrap0_core_clk.clkr,
7161 [GCC_QUPV3_WRAP0_QSPI0_CLK] = &gcc_qupv3_wrap0_qspi0_clk.clkr,
7162 [GCC_QUPV3_WRAP0_S0_CLK] = &gcc_qupv3_wrap0_s0_clk.clkr,
7163 [GCC_QUPV3_WRAP0_S0_CLK_SRC] = &gcc_qupv3_wrap0_s0_clk_src.clkr,
7164 [GCC_QUPV3_WRAP0_S1_CLK] = &gcc_qupv3_wrap0_s1_clk.clkr,
7165 [GCC_QUPV3_WRAP0_S1_CLK_SRC] = &gcc_qupv3_wrap0_s1_clk_src.clkr,
7166 [GCC_QUPV3_WRAP0_S2_CLK] = &gcc_qupv3_wrap0_s2_clk.clkr,
7167 [GCC_QUPV3_WRAP0_S2_CLK_SRC] = &gcc_qupv3_wrap0_s2_clk_src.clkr,
7168 [GCC_QUPV3_WRAP0_S3_CLK] = &gcc_qupv3_wrap0_s3_clk.clkr,
7169 [GCC_QUPV3_WRAP0_S3_CLK_SRC] = &gcc_qupv3_wrap0_s3_clk_src.clkr,
7170 [GCC_QUPV3_WRAP0_S4_CLK] = &gcc_qupv3_wrap0_s4_clk.clkr,
7171 [GCC_QUPV3_WRAP0_S4_CLK_SRC] = &gcc_qupv3_wrap0_s4_clk_src.clkr,
7172 [GCC_QUPV3_WRAP0_S4_DIV_CLK_SRC] = &gcc_qupv3_wrap0_s4_div_clk_src.clkr,
7173 [GCC_QUPV3_WRAP0_S5_CLK] = &gcc_qupv3_wrap0_s5_clk.clkr,
7174 [GCC_QUPV3_WRAP0_S5_CLK_SRC] = &gcc_qupv3_wrap0_s5_clk_src.clkr,
7175 [GCC_QUPV3_WRAP0_S6_CLK] = &gcc_qupv3_wrap0_s6_clk.clkr,
7176 [GCC_QUPV3_WRAP0_S6_CLK_SRC] = &gcc_qupv3_wrap0_s6_clk_src.clkr,
7177 [GCC_QUPV3_WRAP0_S7_CLK] = &gcc_qupv3_wrap0_s7_clk.clkr,
7178 [GCC_QUPV3_WRAP0_S7_CLK_SRC] = &gcc_qupv3_wrap0_s7_clk_src.clkr,
7179 [GCC_QUPV3_WRAP1_CORE_2X_CLK] = &gcc_qupv3_wrap1_core_2x_clk.clkr,
7180 [GCC_QUPV3_WRAP1_CORE_CLK] = &gcc_qupv3_wrap1_core_clk.clkr,
7181 [GCC_QUPV3_WRAP1_QSPI0_CLK] = &gcc_qupv3_wrap1_qspi0_clk.clkr,
7182 [GCC_QUPV3_WRAP1_S0_CLK] = &gcc_qupv3_wrap1_s0_clk.clkr,
7183 [GCC_QUPV3_WRAP1_S0_CLK_SRC] = &gcc_qupv3_wrap1_s0_clk_src.clkr,
7184 [GCC_QUPV3_WRAP1_S1_CLK] = &gcc_qupv3_wrap1_s1_clk.clkr,
7185 [GCC_QUPV3_WRAP1_S1_CLK_SRC] = &gcc_qupv3_wrap1_s1_clk_src.clkr,
7186 [GCC_QUPV3_WRAP1_S2_CLK] = &gcc_qupv3_wrap1_s2_clk.clkr,
7187 [GCC_QUPV3_WRAP1_S2_CLK_SRC] = &gcc_qupv3_wrap1_s2_clk_src.clkr,
7188 [GCC_QUPV3_WRAP1_S3_CLK] = &gcc_qupv3_wrap1_s3_clk.clkr,
7189 [GCC_QUPV3_WRAP1_S3_CLK_SRC] = &gcc_qupv3_wrap1_s3_clk_src.clkr,
7190 [GCC_QUPV3_WRAP1_S4_CLK] = &gcc_qupv3_wrap1_s4_clk.clkr,
7191 [GCC_QUPV3_WRAP1_S4_CLK_SRC] = &gcc_qupv3_wrap1_s4_clk_src.clkr,
7192 [GCC_QUPV3_WRAP1_S4_DIV_CLK_SRC] = &gcc_qupv3_wrap1_s4_div_clk_src.clkr,
7193 [GCC_QUPV3_WRAP1_S5_CLK] = &gcc_qupv3_wrap1_s5_clk.clkr,
7194 [GCC_QUPV3_WRAP1_S5_CLK_SRC] = &gcc_qupv3_wrap1_s5_clk_src.clkr,
7195 [GCC_QUPV3_WRAP1_S6_CLK] = &gcc_qupv3_wrap1_s6_clk.clkr,
7196 [GCC_QUPV3_WRAP1_S6_CLK_SRC] = &gcc_qupv3_wrap1_s6_clk_src.clkr,
7197 [GCC_QUPV3_WRAP1_S7_CLK] = &gcc_qupv3_wrap1_s7_clk.clkr,
7198 [GCC_QUPV3_WRAP1_S7_CLK_SRC] = &gcc_qupv3_wrap1_s7_clk_src.clkr,
7199 [GCC_QUPV3_WRAP2_CORE_2X_CLK] = &gcc_qupv3_wrap2_core_2x_clk.clkr,
7200 [GCC_QUPV3_WRAP2_CORE_CLK] = &gcc_qupv3_wrap2_core_clk.clkr,
7201 [GCC_QUPV3_WRAP2_QSPI0_CLK] = &gcc_qupv3_wrap2_qspi0_clk.clkr,
7202 [GCC_QUPV3_WRAP2_S0_CLK] = &gcc_qupv3_wrap2_s0_clk.clkr,
7203 [GCC_QUPV3_WRAP2_S0_CLK_SRC] = &gcc_qupv3_wrap2_s0_clk_src.clkr,
7204 [GCC_QUPV3_WRAP2_S1_CLK] = &gcc_qupv3_wrap2_s1_clk.clkr,
7205 [GCC_QUPV3_WRAP2_S1_CLK_SRC] = &gcc_qupv3_wrap2_s1_clk_src.clkr,
7206 [GCC_QUPV3_WRAP2_S2_CLK] = &gcc_qupv3_wrap2_s2_clk.clkr,
7207 [GCC_QUPV3_WRAP2_S2_CLK_SRC] = &gcc_qupv3_wrap2_s2_clk_src.clkr,
7208 [GCC_QUPV3_WRAP2_S3_CLK] = &gcc_qupv3_wrap2_s3_clk.clkr,
7209 [GCC_QUPV3_WRAP2_S3_CLK_SRC] = &gcc_qupv3_wrap2_s3_clk_src.clkr,
7210 [GCC_QUPV3_WRAP2_S4_CLK] = &gcc_qupv3_wrap2_s4_clk.clkr,
7211 [GCC_QUPV3_WRAP2_S4_CLK_SRC] = &gcc_qupv3_wrap2_s4_clk_src.clkr,
7212 [GCC_QUPV3_WRAP2_S4_DIV_CLK_SRC] = &gcc_qupv3_wrap2_s4_div_clk_src.clkr,
7213 [GCC_QUPV3_WRAP2_S5_CLK] = &gcc_qupv3_wrap2_s5_clk.clkr,
7214 [GCC_QUPV3_WRAP2_S5_CLK_SRC] = &gcc_qupv3_wrap2_s5_clk_src.clkr,
7215 [GCC_QUPV3_WRAP2_S6_CLK] = &gcc_qupv3_wrap2_s6_clk.clkr,
7216 [GCC_QUPV3_WRAP2_S6_CLK_SRC] = &gcc_qupv3_wrap2_s6_clk_src.clkr,
7217 [GCC_QUPV3_WRAP2_S7_CLK] = &gcc_qupv3_wrap2_s7_clk.clkr,
7218 [GCC_QUPV3_WRAP2_S7_CLK_SRC] = &gcc_qupv3_wrap2_s7_clk_src.clkr,
7219 [GCC_QUPV3_WRAP_0_M_AHB_CLK] = &gcc_qupv3_wrap_0_m_ahb_clk.clkr,
7220 [GCC_QUPV3_WRAP_0_S_AHB_CLK] = &gcc_qupv3_wrap_0_s_ahb_clk.clkr,
7221 [GCC_QUPV3_WRAP_1_M_AHB_CLK] = &gcc_qupv3_wrap_1_m_ahb_clk.clkr,
7222 [GCC_QUPV3_WRAP_1_S_AHB_CLK] = &gcc_qupv3_wrap_1_s_ahb_clk.clkr,
7223 [GCC_QUPV3_WRAP_2_M_AHB_CLK] = &gcc_qupv3_wrap_2_m_ahb_clk.clkr,
7224 [GCC_QUPV3_WRAP_2_S_AHB_CLK] = &gcc_qupv3_wrap_2_s_ahb_clk.clkr,
7225 [GCC_SDCC2_AHB_CLK] = &gcc_sdcc2_ahb_clk.clkr,
7226 [GCC_SDCC2_APPS_CLK] = &gcc_sdcc2_apps_clk.clkr,
7227 [GCC_SDCC2_APPS_CLK_SRC] = &gcc_sdcc2_apps_clk_src.clkr,
7228 [GCC_SDCC4_AHB_CLK] = &gcc_sdcc4_ahb_clk.clkr,
7229 [GCC_SDCC4_APPS_CLK] = &gcc_sdcc4_apps_clk.clkr,
7230 [GCC_SDCC4_APPS_CLK_SRC] = &gcc_sdcc4_apps_clk_src.clkr,
7231 [GCC_SYS_NOC_USB_AXI_CLK] = &gcc_sys_noc_usb_axi_clk.clkr,
7232 [GCC_UFS_1_CARD_CLKREF_CLK] = &gcc_ufs_1_card_clkref_clk.clkr,
7233 [GCC_UFS_CARD_AHB_CLK] = &gcc_ufs_card_ahb_clk.clkr,
7234 [GCC_UFS_CARD_AXI_CLK] = &gcc_ufs_card_axi_clk.clkr,
7235 [GCC_UFS_CARD_AXI_CLK_SRC] = &gcc_ufs_card_axi_clk_src.clkr,
7236 [GCC_UFS_CARD_AXI_HW_CTL_CLK] = &gcc_ufs_card_axi_hw_ctl_clk.clkr,
7237 [GCC_UFS_CARD_CLKREF_CLK] = &gcc_ufs_card_clkref_clk.clkr,
7238 [GCC_UFS_CARD_ICE_CORE_CLK] = &gcc_ufs_card_ice_core_clk.clkr,
7239 [GCC_UFS_CARD_ICE_CORE_CLK_SRC] = &gcc_ufs_card_ice_core_clk_src.clkr,
7240 [GCC_UFS_CARD_ICE_CORE_HW_CTL_CLK] = &gcc_ufs_card_ice_core_hw_ctl_clk.clkr,
7241 [GCC_UFS_CARD_PHY_AUX_CLK] = &gcc_ufs_card_phy_aux_clk.clkr,
7242 [GCC_UFS_CARD_PHY_AUX_CLK_SRC] = &gcc_ufs_card_phy_aux_clk_src.clkr,
7243 [GCC_UFS_CARD_PHY_AUX_HW_CTL_CLK] = &gcc_ufs_card_phy_aux_hw_ctl_clk.clkr,
7244 [GCC_UFS_CARD_RX_SYMBOL_0_CLK] = &gcc_ufs_card_rx_symbol_0_clk.clkr,
7245 [GCC_UFS_CARD_RX_SYMBOL_0_CLK_SRC] = &gcc_ufs_card_rx_symbol_0_clk_src.clkr,
7246 [GCC_UFS_CARD_RX_SYMBOL_1_CLK] = &gcc_ufs_card_rx_symbol_1_clk.clkr,
7247 [GCC_UFS_CARD_RX_SYMBOL_1_CLK_SRC] = &gcc_ufs_card_rx_symbol_1_clk_src.clkr,
7248 [GCC_UFS_CARD_TX_SYMBOL_0_CLK] = &gcc_ufs_card_tx_symbol_0_clk.clkr,
7249 [GCC_UFS_CARD_TX_SYMBOL_0_CLK_SRC] = &gcc_ufs_card_tx_symbol_0_clk_src.clkr,
7250 [GCC_UFS_CARD_UNIPRO_CORE_CLK] = &gcc_ufs_card_unipro_core_clk.clkr,
7251 [GCC_UFS_CARD_UNIPRO_CORE_CLK_SRC] = &gcc_ufs_card_unipro_core_clk_src.clkr,
7252 [GCC_UFS_CARD_UNIPRO_CORE_HW_CTL_CLK] = &gcc_ufs_card_unipro_core_hw_ctl_clk.clkr,
7253 [GCC_UFS_PHY_AHB_CLK] = &gcc_ufs_phy_ahb_clk.clkr,
7254 [GCC_UFS_PHY_AXI_CLK] = &gcc_ufs_phy_axi_clk.clkr,
7255 [GCC_UFS_PHY_AXI_CLK_SRC] = &gcc_ufs_phy_axi_clk_src.clkr,
7256 [GCC_UFS_PHY_AXI_HW_CTL_CLK] = &gcc_ufs_phy_axi_hw_ctl_clk.clkr,
7257 [GCC_UFS_PHY_ICE_CORE_CLK] = &gcc_ufs_phy_ice_core_clk.clkr,
7258 [GCC_UFS_PHY_ICE_CORE_CLK_SRC] = &gcc_ufs_phy_ice_core_clk_src.clkr,
7259 [GCC_UFS_PHY_ICE_CORE_HW_CTL_CLK] = &gcc_ufs_phy_ice_core_hw_ctl_clk.clkr,
7260 [GCC_UFS_PHY_PHY_AUX_CLK] = &gcc_ufs_phy_phy_aux_clk.clkr,
7261 [GCC_UFS_PHY_PHY_AUX_CLK_SRC] = &gcc_ufs_phy_phy_aux_clk_src.clkr,
7262 [GCC_UFS_PHY_PHY_AUX_HW_CTL_CLK] = &gcc_ufs_phy_phy_aux_hw_ctl_clk.clkr,
7263 [GCC_UFS_PHY_RX_SYMBOL_0_CLK] = &gcc_ufs_phy_rx_symbol_0_clk.clkr,
7264 [GCC_UFS_PHY_RX_SYMBOL_0_CLK_SRC] = &gcc_ufs_phy_rx_symbol_0_clk_src.clkr,
7265 [GCC_UFS_PHY_RX_SYMBOL_1_CLK] = &gcc_ufs_phy_rx_symbol_1_clk.clkr,
7266 [GCC_UFS_PHY_RX_SYMBOL_1_CLK_SRC] = &gcc_ufs_phy_rx_symbol_1_clk_src.clkr,
7267 [GCC_UFS_PHY_TX_SYMBOL_0_CLK] = &gcc_ufs_phy_tx_symbol_0_clk.clkr,
7268 [GCC_UFS_PHY_TX_SYMBOL_0_CLK_SRC] = &gcc_ufs_phy_tx_symbol_0_clk_src.clkr,
7269 [GCC_UFS_PHY_UNIPRO_CORE_CLK] = &gcc_ufs_phy_unipro_core_clk.clkr,
7270 [GCC_UFS_PHY_UNIPRO_CORE_CLK_SRC] = &gcc_ufs_phy_unipro_core_clk_src.clkr,
7271 [GCC_UFS_PHY_UNIPRO_CORE_HW_CTL_CLK] = &gcc_ufs_phy_unipro_core_hw_ctl_clk.clkr,
7272 [GCC_UFS_REF_CLKREF_CLK] = &gcc_ufs_ref_clkref_clk.clkr,
7273 [GCC_USB2_HS0_CLKREF_CLK] = &gcc_usb2_hs0_clkref_clk.clkr,
7274 [GCC_USB2_HS1_CLKREF_CLK] = &gcc_usb2_hs1_clkref_clk.clkr,
7275 [GCC_USB2_HS2_CLKREF_CLK] = &gcc_usb2_hs2_clkref_clk.clkr,
7276 [GCC_USB2_HS3_CLKREF_CLK] = &gcc_usb2_hs3_clkref_clk.clkr,
7277 [GCC_USB30_MP_MASTER_CLK] = &gcc_usb30_mp_master_clk.clkr,
7278 [GCC_USB30_MP_MASTER_CLK_SRC] = &gcc_usb30_mp_master_clk_src.clkr,
7279 [GCC_USB30_MP_MOCK_UTMI_CLK] = &gcc_usb30_mp_mock_utmi_clk.clkr,
7280 [GCC_USB30_MP_MOCK_UTMI_CLK_SRC] = &gcc_usb30_mp_mock_utmi_clk_src.clkr,
7281 [GCC_USB30_MP_MOCK_UTMI_POSTDIV_CLK_SRC] = &gcc_usb30_mp_mock_utmi_postdiv_clk_src.clkr,
7282 [GCC_USB30_MP_SLEEP_CLK] = &gcc_usb30_mp_sleep_clk.clkr,
7283 [GCC_USB30_PRIM_MASTER_CLK] = &gcc_usb30_prim_master_clk.clkr,
7284 [GCC_USB30_PRIM_MASTER_CLK_SRC] = &gcc_usb30_prim_master_clk_src.clkr,
7285 [GCC_USB30_PRIM_MOCK_UTMI_CLK] = &gcc_usb30_prim_mock_utmi_clk.clkr,
7286 [GCC_USB30_PRIM_MOCK_UTMI_CLK_SRC] = &gcc_usb30_prim_mock_utmi_clk_src.clkr,
7287 [GCC_USB30_PRIM_MOCK_UTMI_POSTDIV_CLK_SRC] = &gcc_usb30_prim_mock_utmi_postdiv_clk_src.clkr,
7288 [GCC_USB30_PRIM_SLEEP_CLK] = &gcc_usb30_prim_sleep_clk.clkr,
7289 [GCC_USB30_SEC_MASTER_CLK] = &gcc_usb30_sec_master_clk.clkr,
7290 [GCC_USB30_SEC_MASTER_CLK_SRC] = &gcc_usb30_sec_master_clk_src.clkr,
7291 [GCC_USB30_SEC_MOCK_UTMI_CLK] = &gcc_usb30_sec_mock_utmi_clk.clkr,
7292 [GCC_USB30_SEC_MOCK_UTMI_CLK_SRC] = &gcc_usb30_sec_mock_utmi_clk_src.clkr,
7293 [GCC_USB30_SEC_MOCK_UTMI_POSTDIV_CLK_SRC] = &gcc_usb30_sec_mock_utmi_postdiv_clk_src.clkr,
7294 [GCC_USB30_SEC_SLEEP_CLK] = &gcc_usb30_sec_sleep_clk.clkr,
7295 [GCC_USB34_PRIM_PHY_PIPE_CLK_SRC] = &gcc_usb34_prim_phy_pipe_clk_src.clkr,
7296 [GCC_USB34_SEC_PHY_PIPE_CLK_SRC] = &gcc_usb34_sec_phy_pipe_clk_src.clkr,
7297 [GCC_USB3_MP0_CLKREF_CLK] = &gcc_usb3_mp0_clkref_clk.clkr,
7298 [GCC_USB3_MP1_CLKREF_CLK] = &gcc_usb3_mp1_clkref_clk.clkr,
7299 [GCC_USB3_MP_PHY_AUX_CLK] = &gcc_usb3_mp_phy_aux_clk.clkr,
7300 [GCC_USB3_MP_PHY_AUX_CLK_SRC] = &gcc_usb3_mp_phy_aux_clk_src.clkr,
7301 [GCC_USB3_MP_PHY_COM_AUX_CLK] = &gcc_usb3_mp_phy_com_aux_clk.clkr,
7302 [GCC_USB3_MP_PHY_PIPE_0_CLK] = &gcc_usb3_mp_phy_pipe_0_clk.clkr,
7303 [GCC_USB3_MP_PHY_PIPE_0_CLK_SRC] = &gcc_usb3_mp_phy_pipe_0_clk_src.clkr,
7304 [GCC_USB3_MP_PHY_PIPE_1_CLK] = &gcc_usb3_mp_phy_pipe_1_clk.clkr,
7305 [GCC_USB3_MP_PHY_PIPE_1_CLK_SRC] = &gcc_usb3_mp_phy_pipe_1_clk_src.clkr,
7306 [GCC_USB3_PRIM_PHY_AUX_CLK] = &gcc_usb3_prim_phy_aux_clk.clkr,
7307 [GCC_USB3_PRIM_PHY_AUX_CLK_SRC] = &gcc_usb3_prim_phy_aux_clk_src.clkr,
7308 [GCC_USB3_PRIM_PHY_COM_AUX_CLK] = &gcc_usb3_prim_phy_com_aux_clk.clkr,
7309 [GCC_USB3_PRIM_PHY_PIPE_CLK] = &gcc_usb3_prim_phy_pipe_clk.clkr,
7310 [GCC_USB3_PRIM_PHY_PIPE_CLK_SRC] = &gcc_usb3_prim_phy_pipe_clk_src.clkr,
7311 [GCC_USB3_SEC_PHY_AUX_CLK] = &gcc_usb3_sec_phy_aux_clk.clkr,
7312 [GCC_USB3_SEC_PHY_AUX_CLK_SRC] = &gcc_usb3_sec_phy_aux_clk_src.clkr,
7313 [GCC_USB3_SEC_PHY_COM_AUX_CLK] = &gcc_usb3_sec_phy_com_aux_clk.clkr,
7314 [GCC_USB3_SEC_PHY_PIPE_CLK] = &gcc_usb3_sec_phy_pipe_clk.clkr,
7315 [GCC_USB3_SEC_PHY_PIPE_CLK_SRC] = &gcc_usb3_sec_phy_pipe_clk_src.clkr,
7316 [GCC_USB4_1_CFG_AHB_CLK] = &gcc_usb4_1_cfg_ahb_clk.clkr,
7317 [GCC_USB4_1_DP_CLK] = &gcc_usb4_1_dp_clk.clkr,
7318 [GCC_USB4_1_MASTER_CLK] = &gcc_usb4_1_master_clk.clkr,
7319 [GCC_USB4_1_MASTER_CLK_SRC] = &gcc_usb4_1_master_clk_src.clkr,
7320 [GCC_USB4_1_PHY_DP_CLK_SRC] = &gcc_usb4_1_phy_dp_clk_src.clkr,
7321 [GCC_USB4_1_PHY_P2RR2P_PIPE_CLK] = &gcc_usb4_1_phy_p2rr2p_pipe_clk.clkr,
7322 [GCC_USB4_1_PHY_P2RR2P_PIPE_CLK_SRC] = &gcc_usb4_1_phy_p2rr2p_pipe_clk_src.clkr,
7323 [GCC_USB4_1_PHY_PCIE_PIPE_CLK] = &gcc_usb4_1_phy_pcie_pipe_clk.clkr,
7324 [GCC_USB4_1_PHY_PCIE_PIPE_CLK_SRC] = &gcc_usb4_1_phy_pcie_pipe_clk_src.clkr,
7325 [GCC_USB4_1_PHY_PCIE_PIPE_MUX_CLK_SRC] = &gcc_usb4_1_phy_pcie_pipe_mux_clk_src.clkr,
7326 [GCC_USB4_1_PHY_PCIE_PIPEGMUX_CLK_SRC] = &gcc_usb4_1_phy_pcie_pipegmux_clk_src.clkr,
7327 [GCC_USB4_1_PHY_RX0_CLK] = &gcc_usb4_1_phy_rx0_clk.clkr,
7328 [GCC_USB4_1_PHY_RX0_CLK_SRC] = &gcc_usb4_1_phy_rx0_clk_src.clkr,
7329 [GCC_USB4_1_PHY_RX1_CLK] = &gcc_usb4_1_phy_rx1_clk.clkr,
7330 [GCC_USB4_1_PHY_RX1_CLK_SRC] = &gcc_usb4_1_phy_rx1_clk_src.clkr,
7331 [GCC_USB4_1_PHY_SYS_CLK_SRC] = &gcc_usb4_1_phy_sys_clk_src.clkr,
7332 [GCC_USB4_1_PHY_USB_PIPE_CLK] = &gcc_usb4_1_phy_usb_pipe_clk.clkr,
7333 [GCC_USB4_1_SB_IF_CLK] = &gcc_usb4_1_sb_if_clk.clkr,
7334 [GCC_USB4_1_SB_IF_CLK_SRC] = &gcc_usb4_1_sb_if_clk_src.clkr,
7335 [GCC_USB4_1_SYS_CLK] = &gcc_usb4_1_sys_clk.clkr,
7336 [GCC_USB4_1_TMU_CLK] = &gcc_usb4_1_tmu_clk.clkr,
7337 [GCC_USB4_1_TMU_CLK_SRC] = &gcc_usb4_1_tmu_clk_src.clkr,
7338 [GCC_USB4_CFG_AHB_CLK] = &gcc_usb4_cfg_ahb_clk.clkr,
7339 [GCC_USB4_CLKREF_CLK] = &gcc_usb4_clkref_clk.clkr,
7340 [GCC_USB4_DP_CLK] = &gcc_usb4_dp_clk.clkr,
7341 [GCC_USB4_EUD_CLKREF_CLK] = &gcc_usb4_eud_clkref_clk.clkr,
7342 [GCC_USB4_MASTER_CLK] = &gcc_usb4_master_clk.clkr,
7343 [GCC_USB4_MASTER_CLK_SRC] = &gcc_usb4_master_clk_src.clkr,
7344 [GCC_USB4_PHY_DP_CLK_SRC] = &gcc_usb4_phy_dp_clk_src.clkr,
7345 [GCC_USB4_PHY_P2RR2P_PIPE_CLK] = &gcc_usb4_phy_p2rr2p_pipe_clk.clkr,
7346 [GCC_USB4_PHY_P2RR2P_PIPE_CLK_SRC] = &gcc_usb4_phy_p2rr2p_pipe_clk_src.clkr,
7347 [GCC_USB4_PHY_PCIE_PIPE_CLK] = &gcc_usb4_phy_pcie_pipe_clk.clkr,
7348 [GCC_USB4_PHY_PCIE_PIPE_CLK_SRC] = &gcc_usb4_phy_pcie_pipe_clk_src.clkr,
7349 [GCC_USB4_PHY_PCIE_PIPE_MUX_CLK_SRC] = &gcc_usb4_phy_pcie_pipe_mux_clk_src.clkr,
7350 [GCC_USB4_PHY_PCIE_PIPEGMUX_CLK_SRC] = &gcc_usb4_phy_pcie_pipegmux_clk_src.clkr,
7351 [GCC_USB4_PHY_RX0_CLK] = &gcc_usb4_phy_rx0_clk.clkr,
7352 [GCC_USB4_PHY_RX0_CLK_SRC] = &gcc_usb4_phy_rx0_clk_src.clkr,
7353 [GCC_USB4_PHY_RX1_CLK] = &gcc_usb4_phy_rx1_clk.clkr,
7354 [GCC_USB4_PHY_RX1_CLK_SRC] = &gcc_usb4_phy_rx1_clk_src.clkr,
7355 [GCC_USB4_PHY_SYS_CLK_SRC] = &gcc_usb4_phy_sys_clk_src.clkr,
7356 [GCC_USB4_PHY_USB_PIPE_CLK] = &gcc_usb4_phy_usb_pipe_clk.clkr,
7357 [GCC_USB4_SB_IF_CLK] = &gcc_usb4_sb_if_clk.clkr,
7358 [GCC_USB4_SB_IF_CLK_SRC] = &gcc_usb4_sb_if_clk_src.clkr,
7359 [GCC_USB4_SYS_CLK] = &gcc_usb4_sys_clk.clkr,
7360 [GCC_USB4_TMU_CLK] = &gcc_usb4_tmu_clk.clkr,
7361 [GCC_USB4_TMU_CLK_SRC] = &gcc_usb4_tmu_clk_src.clkr,
7362 [GCC_VIDEO_AXI0_CLK] = &gcc_video_axi0_clk.clkr,
7363 [GCC_VIDEO_AXI1_CLK] = &gcc_video_axi1_clk.clkr,
7364 [GCC_VIDEO_CVP_THROTTLE_CLK] = &gcc_video_cvp_throttle_clk.clkr,
7365 [GCC_VIDEO_VCODEC_THROTTLE_CLK] = &gcc_video_vcodec_throttle_clk.clkr,
7366 };
7367
7368 static const struct qcom_reset_map gcc_sc8280xp_resets[] = {
7369 [GCC_EMAC0_BCR] = { 0xaa000 },
7370 [GCC_EMAC1_BCR] = { 0xba000 },
7371 [GCC_PCIE_0_LINK_DOWN_BCR] = { 0x6c014 },
7372 [GCC_PCIE_0_NOCSR_COM_PHY_BCR] = { 0x6c020 },
7373 [GCC_PCIE_0_PHY_BCR] = { 0x6c01c },
7374 [GCC_PCIE_0_PHY_NOCSR_COM_PHY_BCR] = { 0x6c028 },
7375 [GCC_PCIE_0_TUNNEL_BCR] = { 0xa4000 },
7376 [GCC_PCIE_1_LINK_DOWN_BCR] = { 0x8e014 },
7377 [GCC_PCIE_1_NOCSR_COM_PHY_BCR] = { 0x8e020 },
7378 [GCC_PCIE_1_PHY_BCR] = { 0x8e01c },
7379 [GCC_PCIE_1_PHY_NOCSR_COM_PHY_BCR] = { 0x8e000 },
7380 [GCC_PCIE_1_TUNNEL_BCR] = { 0x8d000 },
7381 [GCC_PCIE_2A_BCR] = { 0x9d000 },
7382 [GCC_PCIE_2A_LINK_DOWN_BCR] = { 0x9d13c },
7383 [GCC_PCIE_2A_NOCSR_COM_PHY_BCR] = { 0x9d148 },
7384 [GCC_PCIE_2A_PHY_BCR] = { 0x9d144 },
7385 [GCC_PCIE_2A_PHY_NOCSR_COM_PHY_BCR] = { 0x9d14c },
7386 [GCC_PCIE_2B_BCR] = { 0x9e000 },
7387 [GCC_PCIE_2B_LINK_DOWN_BCR] = { 0x9e084 },
7388 [GCC_PCIE_2B_NOCSR_COM_PHY_BCR] = { 0x9e090 },
7389 [GCC_PCIE_2B_PHY_BCR] = { 0x9e08c },
7390 [GCC_PCIE_2B_PHY_NOCSR_COM_PHY_BCR] = { 0x9e094 },
7391 [GCC_PCIE_3A_BCR] = { 0xa0000 },
7392 [GCC_PCIE_3A_LINK_DOWN_BCR] = { 0xa00f0 },
7393 [GCC_PCIE_3A_NOCSR_COM_PHY_BCR] = { 0xa00fc },
7394 [GCC_PCIE_3A_PHY_BCR] = { 0xa00e0 },
7395 [GCC_PCIE_3A_PHY_NOCSR_COM_PHY_BCR] = { 0xa00e4 },
7396 [GCC_PCIE_3B_BCR] = { 0xa2000 },
7397 [GCC_PCIE_3B_LINK_DOWN_BCR] = { 0xa20e0 },
7398 [GCC_PCIE_3B_NOCSR_COM_PHY_BCR] = { 0xa20ec },
7399 [GCC_PCIE_3B_PHY_BCR] = { 0xa20e8 },
7400 [GCC_PCIE_3B_PHY_NOCSR_COM_PHY_BCR] = { 0xa20f0 },
7401 [GCC_PCIE_4_BCR] = { 0x6b000 },
7402 [GCC_PCIE_4_LINK_DOWN_BCR] = { 0x6b300 },
7403 [GCC_PCIE_4_NOCSR_COM_PHY_BCR] = { 0x6b30c },
7404 [GCC_PCIE_4_PHY_BCR] = { 0x6b308 },
7405 [GCC_PCIE_4_PHY_NOCSR_COM_PHY_BCR] = { 0x6b310 },
7406 [GCC_PCIE_PHY_CFG_AHB_BCR] = { 0x6f00c },
7407 [GCC_PCIE_PHY_COM_BCR] = { 0x6f010 },
7408 [GCC_PCIE_RSCC_BCR] = { 0xae000 },
7409 [GCC_QUSB2PHY_HS0_MP_BCR] = { 0x12008 },
7410 [GCC_QUSB2PHY_HS1_MP_BCR] = { 0x1200c },
7411 [GCC_QUSB2PHY_HS2_MP_BCR] = { 0x12010 },
7412 [GCC_QUSB2PHY_HS3_MP_BCR] = { 0x12014 },
7413 [GCC_QUSB2PHY_PRIM_BCR] = { 0x12000 },
7414 [GCC_QUSB2PHY_SEC_BCR] = { 0x12004 },
7415 [GCC_SDCC2_BCR] = { 0x14000 },
7416 [GCC_SDCC4_BCR] = { 0x16000 },
7417 [GCC_UFS_CARD_BCR] = { 0x75000 },
7418 [GCC_UFS_PHY_BCR] = { 0x77000 },
7419 [GCC_USB2_PHY_PRIM_BCR] = { 0x50028 },
7420 [GCC_USB2_PHY_SEC_BCR] = { 0x5002c },
7421 [GCC_USB30_MP_BCR] = { 0xab000 },
7422 [GCC_USB30_PRIM_BCR] = { 0xf000 },
7423 [GCC_USB30_SEC_BCR] = { 0x10000 },
7424 [GCC_USB3_DP_PHY_PRIM_BCR] = { 0x50008 },
7425 [GCC_USB3_DP_PHY_SEC_BCR] = { 0x50014 },
7426 [GCC_USB3_PHY_PRIM_BCR] = { 0x50000 },
7427 [GCC_USB3_PHY_SEC_BCR] = { 0x5000c },
7428 [GCC_USB3_UNIPHY_MP0_BCR] = { 0x50018 },
7429 [GCC_USB3_UNIPHY_MP1_BCR] = { 0x5001c },
7430 [GCC_USB3PHY_PHY_PRIM_BCR] = { 0x50004 },
7431 [GCC_USB3PHY_PHY_SEC_BCR] = { 0x50010 },
7432 [GCC_USB3UNIPHY_PHY_MP0_BCR] = { 0x50020 },
7433 [GCC_USB3UNIPHY_PHY_MP1_BCR] = { 0x50024 },
7434 [GCC_USB4_1_BCR] = { 0xb8000 },
7435 [GCC_USB4_1_DP_PHY_PRIM_BCR] = { 0xb9020 },
7436 [GCC_USB4_1_DPPHY_AUX_BCR] = { 0xb9024 },
7437 [GCC_USB4_1_PHY_PRIM_BCR] = { 0xb9018 },
7438 [GCC_USB4_BCR] = { 0x2a000 },
7439 [GCC_USB4_DP_PHY_PRIM_BCR] = { 0x4a008 },
7440 [GCC_USB4_DPPHY_AUX_BCR] = { 0x4a00c },
7441 [GCC_USB4_PHY_PRIM_BCR] = { 0x4a000 },
7442 [GCC_USB4PHY_1_PHY_PRIM_BCR] = { 0xb901c },
7443 [GCC_USB4PHY_PHY_PRIM_BCR] = { 0x4a004 },
7444 [GCC_USB_PHY_CFG_AHB2PHY_BCR] = { 0x6a000 },
7445 [GCC_VIDEO_BCR] = { 0x28000 },
7446 [GCC_VIDEO_AXI0_CLK_ARES] = { .reg = 0x28010, .bit = 2, .udelay = 400 },
7447 [GCC_VIDEO_AXI1_CLK_ARES] = { .reg = 0x28018, .bit = 2, .udelay = 400 },
7448 };
7449
7450 static struct gdsc *gcc_sc8280xp_gdscs[] = {
7451 [PCIE_0_TUNNEL_GDSC] = &pcie_0_tunnel_gdsc,
7452 [PCIE_1_TUNNEL_GDSC] = &pcie_1_tunnel_gdsc,
7453 [PCIE_2A_GDSC] = &pcie_2a_gdsc,
7454 [PCIE_2B_GDSC] = &pcie_2b_gdsc,
7455 [PCIE_3A_GDSC] = &pcie_3a_gdsc,
7456 [PCIE_3B_GDSC] = &pcie_3b_gdsc,
7457 [PCIE_4_GDSC] = &pcie_4_gdsc,
7458 [UFS_CARD_GDSC] = &ufs_card_gdsc,
7459 [UFS_PHY_GDSC] = &ufs_phy_gdsc,
7460 [USB30_MP_GDSC] = &usb30_mp_gdsc,
7461 [USB30_PRIM_GDSC] = &usb30_prim_gdsc,
7462 [USB30_SEC_GDSC] = &usb30_sec_gdsc,
7463 [EMAC_0_GDSC] = &emac_0_gdsc,
7464 [EMAC_1_GDSC] = &emac_1_gdsc,
7465 [USB4_1_GDSC] = &usb4_1_gdsc,
7466 [USB4_GDSC] = &usb4_gdsc,
7467 [HLOS1_VOTE_MMNOC_MMU_TBU_HF0_GDSC] = &hlos1_vote_mmnoc_mmu_tbu_hf0_gdsc,
7468 [HLOS1_VOTE_MMNOC_MMU_TBU_HF1_GDSC] = &hlos1_vote_mmnoc_mmu_tbu_hf1_gdsc,
7469 [HLOS1_VOTE_MMNOC_MMU_TBU_SF0_GDSC] = &hlos1_vote_mmnoc_mmu_tbu_sf0_gdsc,
7470 [HLOS1_VOTE_MMNOC_MMU_TBU_SF1_GDSC] = &hlos1_vote_mmnoc_mmu_tbu_sf1_gdsc,
7471 [HLOS1_VOTE_TURING_MMU_TBU0_GDSC] = &hlos1_vote_turing_mmu_tbu0_gdsc,
7472 [HLOS1_VOTE_TURING_MMU_TBU1_GDSC] = &hlos1_vote_turing_mmu_tbu1_gdsc,
7473 [HLOS1_VOTE_TURING_MMU_TBU2_GDSC] = &hlos1_vote_turing_mmu_tbu2_gdsc,
7474 [HLOS1_VOTE_TURING_MMU_TBU3_GDSC] = &hlos1_vote_turing_mmu_tbu3_gdsc,
7475 };
7476
7477 static const struct clk_rcg_dfs_data gcc_dfs_clocks[] = {
7478 DEFINE_RCG_DFS(gcc_qupv3_wrap0_s0_clk_src),
7479 DEFINE_RCG_DFS(gcc_qupv3_wrap0_s1_clk_src),
7480 DEFINE_RCG_DFS(gcc_qupv3_wrap0_s2_clk_src),
7481 DEFINE_RCG_DFS(gcc_qupv3_wrap0_s3_clk_src),
7482 DEFINE_RCG_DFS(gcc_qupv3_wrap0_s4_clk_src),
7483 DEFINE_RCG_DFS(gcc_qupv3_wrap0_s5_clk_src),
7484 DEFINE_RCG_DFS(gcc_qupv3_wrap0_s6_clk_src),
7485 DEFINE_RCG_DFS(gcc_qupv3_wrap0_s7_clk_src),
7486 DEFINE_RCG_DFS(gcc_qupv3_wrap1_s0_clk_src),
7487 DEFINE_RCG_DFS(gcc_qupv3_wrap1_s1_clk_src),
7488 DEFINE_RCG_DFS(gcc_qupv3_wrap1_s2_clk_src),
7489 DEFINE_RCG_DFS(gcc_qupv3_wrap1_s3_clk_src),
7490 DEFINE_RCG_DFS(gcc_qupv3_wrap1_s4_clk_src),
7491 DEFINE_RCG_DFS(gcc_qupv3_wrap1_s5_clk_src),
7492 DEFINE_RCG_DFS(gcc_qupv3_wrap1_s6_clk_src),
7493 DEFINE_RCG_DFS(gcc_qupv3_wrap1_s7_clk_src),
7494 DEFINE_RCG_DFS(gcc_qupv3_wrap2_s0_clk_src),
7495 DEFINE_RCG_DFS(gcc_qupv3_wrap2_s1_clk_src),
7496 DEFINE_RCG_DFS(gcc_qupv3_wrap2_s2_clk_src),
7497 DEFINE_RCG_DFS(gcc_qupv3_wrap2_s3_clk_src),
7498 DEFINE_RCG_DFS(gcc_qupv3_wrap2_s4_clk_src),
7499 DEFINE_RCG_DFS(gcc_qupv3_wrap2_s5_clk_src),
7500 DEFINE_RCG_DFS(gcc_qupv3_wrap2_s6_clk_src),
7501 DEFINE_RCG_DFS(gcc_qupv3_wrap2_s7_clk_src),
7502 };
7503
7504 static const struct regmap_config gcc_sc8280xp_regmap_config = {
7505 .reg_bits = 32,
7506 .reg_stride = 4,
7507 .val_bits = 32,
7508 .max_register = 0xc3014,
7509 .fast_io = true,
7510 };
7511
7512 static const struct qcom_cc_desc gcc_sc8280xp_desc = {
7513 .config = &gcc_sc8280xp_regmap_config,
7514 .clks = gcc_sc8280xp_clocks,
7515 .num_clks = ARRAY_SIZE(gcc_sc8280xp_clocks),
7516 .resets = gcc_sc8280xp_resets,
7517 .num_resets = ARRAY_SIZE(gcc_sc8280xp_resets),
7518 .gdscs = gcc_sc8280xp_gdscs,
7519 .num_gdscs = ARRAY_SIZE(gcc_sc8280xp_gdscs),
7520 };
7521
gcc_sc8280xp_probe(struct platform_device * pdev)7522 static int gcc_sc8280xp_probe(struct platform_device *pdev)
7523 {
7524 struct regmap *regmap;
7525 int ret;
7526
7527 ret = devm_pm_runtime_enable(&pdev->dev);
7528 if (ret)
7529 return ret;
7530
7531 ret = pm_runtime_resume_and_get(&pdev->dev);
7532 if (ret)
7533 return ret;
7534
7535 regmap = qcom_cc_map(pdev, &gcc_sc8280xp_desc);
7536 if (IS_ERR(regmap)) {
7537 ret = PTR_ERR(regmap);
7538 goto err_put_rpm;
7539 }
7540
7541 /* Keep some clocks always-on */
7542 qcom_branch_set_clk_en(regmap, 0x26004); /* GCC_CAMERA_AHB_CLK */
7543 qcom_branch_set_clk_en(regmap, 0x26020); /* GCC_CAMERA_XO_CLK */
7544 qcom_branch_set_clk_en(regmap, 0x27004); /* GCC_DISP_AHB_CLK */
7545 qcom_branch_set_clk_en(regmap, 0x27028); /* GCC_DISP_XO_CLK */
7546 qcom_branch_set_clk_en(regmap, 0x71004); /* GCC_GPU_CFG_AHB_CLK */
7547 qcom_branch_set_clk_en(regmap, 0x28004); /* GCC_VIDEO_AHB_CLK */
7548 qcom_branch_set_clk_en(regmap, 0x28028); /* GCC_VIDEO_XO_CLK */
7549 qcom_branch_set_clk_en(regmap, 0xbb004); /* GCC_DISP1_AHB_CLK */
7550 qcom_branch_set_clk_en(regmap, 0xbb028); /* GCC_DISP1_XO_CLK */
7551
7552 ret = qcom_cc_register_rcg_dfs(regmap, gcc_dfs_clocks, ARRAY_SIZE(gcc_dfs_clocks));
7553 if (ret)
7554 goto err_put_rpm;
7555
7556 ret = qcom_cc_really_probe(&pdev->dev, &gcc_sc8280xp_desc, regmap);
7557 if (ret)
7558 goto err_put_rpm;
7559
7560 pm_runtime_put(&pdev->dev);
7561
7562 return 0;
7563
7564 err_put_rpm:
7565 pm_runtime_put_sync(&pdev->dev);
7566
7567 return ret;
7568 }
7569
7570 static const struct of_device_id gcc_sc8280xp_match_table[] = {
7571 { .compatible = "qcom,gcc-sc8280xp" },
7572 { }
7573 };
7574 MODULE_DEVICE_TABLE(of, gcc_sc8280xp_match_table);
7575
7576 static struct platform_driver gcc_sc8280xp_driver = {
7577 .probe = gcc_sc8280xp_probe,
7578 .driver = {
7579 .name = "gcc-sc8280xp",
7580 .of_match_table = gcc_sc8280xp_match_table,
7581 },
7582 };
7583
gcc_sc8280xp_init(void)7584 static int __init gcc_sc8280xp_init(void)
7585 {
7586 return platform_driver_register(&gcc_sc8280xp_driver);
7587 }
7588 subsys_initcall(gcc_sc8280xp_init);
7589
gcc_sc8280xp_exit(void)7590 static void __exit gcc_sc8280xp_exit(void)
7591 {
7592 platform_driver_unregister(&gcc_sc8280xp_driver);
7593 }
7594 module_exit(gcc_sc8280xp_exit);
7595
7596 MODULE_DESCRIPTION("Qualcomm SC8280XP GCC driver");
7597 MODULE_LICENSE("GPL");
7598