1 // SPDX-License-Identifier: GPL-2.0-only
2 /*
3 * Copyright (c) 2025, Qualcomm Technologies, Inc. and/or its subsidiaries.
4 */
5
6 #include <linux/clk-provider.h>
7 #include <linux/mod_devicetable.h>
8 #include <linux/module.h>
9 #include <linux/of.h>
10 #include <linux/platform_device.h>
11 #include <linux/regmap.h>
12
13 #include <dt-bindings/clock/qcom,glymur-gcc.h>
14
15 #include "clk-alpha-pll.h"
16 #include "clk-branch.h"
17 #include "clk-pll.h"
18 #include "clk-rcg.h"
19 #include "clk-regmap.h"
20 #include "clk-regmap-divider.h"
21 #include "clk-regmap-mux.h"
22 #include "clk-regmap-phy-mux.h"
23 #include "common.h"
24 #include "gdsc.h"
25 #include "reset.h"
26
27 enum {
28 DT_BI_TCXO,
29 DT_BI_TCXO_AO,
30 DT_SLEEP_CLK,
31 DT_GCC_USB4_0_PHY_DP0_GMUX_CLK_SRC,
32 DT_GCC_USB4_0_PHY_DP1_GMUX_CLK_SRC,
33 DT_GCC_USB4_0_PHY_PCIE_PIPEGMUX_CLK_SRC,
34 DT_GCC_USB4_0_PHY_PIPEGMUX_CLK_SRC,
35 DT_GCC_USB4_0_PHY_SYS_PIPEGMUX_CLK_SRC,
36 DT_GCC_USB4_1_PHY_DP0_GMUX_2_CLK_SRC,
37 DT_GCC_USB4_1_PHY_DP1_GMUX_2_CLK_SRC,
38 DT_GCC_USB4_1_PHY_PCIE_PIPEGMUX_CLK_SRC,
39 DT_GCC_USB4_1_PHY_PIPEGMUX_CLK_SRC,
40 DT_GCC_USB4_1_PHY_SYS_PIPEGMUX_CLK_SRC,
41 DT_GCC_USB4_2_PHY_DP0_GMUX_CLK_SRC,
42 DT_GCC_USB4_2_PHY_DP1_GMUX_CLK_SRC,
43 DT_GCC_USB4_2_PHY_PCIE_PIPEGMUX_CLK_SRC,
44 DT_GCC_USB4_2_PHY_PIPEGMUX_CLK_SRC,
45 DT_GCC_USB4_2_PHY_SYS_PIPEGMUX_CLK_SRC,
46 DT_PCIE_3A_PIPE_CLK,
47 DT_PCIE_3B_PIPE_CLK,
48 DT_PCIE_4_PIPE_CLK,
49 DT_PCIE_5_PIPE_CLK,
50 DT_PCIE_6_PIPE_CLK,
51 DT_QUSB4PHY_0_GCC_USB4_RX0_CLK,
52 DT_QUSB4PHY_0_GCC_USB4_RX1_CLK,
53 DT_QUSB4PHY_1_GCC_USB4_RX0_CLK,
54 DT_QUSB4PHY_1_GCC_USB4_RX1_CLK,
55 DT_QUSB4PHY_2_GCC_USB4_RX0_CLK,
56 DT_QUSB4PHY_2_GCC_USB4_RX1_CLK,
57 DT_UFS_PHY_RX_SYMBOL_0_CLK,
58 DT_UFS_PHY_RX_SYMBOL_1_CLK,
59 DT_UFS_PHY_TX_SYMBOL_0_CLK,
60 DT_USB3_PHY_0_WRAPPER_GCC_USB30_PIPE_CLK,
61 DT_USB3_PHY_1_WRAPPER_GCC_USB30_PIPE_CLK,
62 DT_USB3_PHY_2_WRAPPER_GCC_USB30_PIPE_CLK,
63 DT_USB3_UNI_PHY_MP_GCC_USB30_PIPE_0_CLK,
64 DT_USB3_UNI_PHY_MP_GCC_USB30_PIPE_1_CLK,
65 DT_USB4_0_PHY_GCC_USB4_PCIE_PIPE_CLK,
66 DT_USB4_0_PHY_GCC_USB4RTR_MAX_PIPE_CLK,
67 DT_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK,
68 DT_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK,
69 DT_USB4_2_PHY_GCC_USB4_PCIE_PIPE_CLK,
70 DT_USB4_2_PHY_GCC_USB4RTR_MAX_PIPE_CLK,
71 };
72
73 enum {
74 P_BI_TCXO,
75 P_GCC_GPLL0_OUT_EVEN,
76 P_GCC_GPLL0_OUT_MAIN,
77 P_GCC_GPLL14_OUT_EVEN,
78 P_GCC_GPLL14_OUT_MAIN,
79 P_GCC_GPLL1_OUT_MAIN,
80 P_GCC_GPLL4_OUT_MAIN,
81 P_GCC_GPLL5_OUT_MAIN,
82 P_GCC_GPLL7_OUT_MAIN,
83 P_GCC_GPLL8_OUT_MAIN,
84 P_GCC_GPLL9_OUT_MAIN,
85 P_GCC_USB3_PRIM_PHY_PIPE_CLK_SRC,
86 P_GCC_USB3_SEC_PHY_PIPE_CLK_SRC,
87 P_GCC_USB3_TERT_PHY_PIPE_CLK_SRC,
88 P_GCC_USB4_0_PHY_DP0_GMUX_CLK_SRC,
89 P_GCC_USB4_0_PHY_DP1_GMUX_CLK_SRC,
90 P_GCC_USB4_0_PHY_PCIE_PIPEGMUX_CLK_SRC,
91 P_GCC_USB4_0_PHY_PIPEGMUX_CLK_SRC,
92 P_GCC_USB4_0_PHY_SYS_PIPEGMUX_CLK_SRC,
93 P_GCC_USB4_1_PHY_DP0_GMUX_2_CLK_SRC,
94 P_GCC_USB4_1_PHY_DP1_GMUX_2_CLK_SRC,
95 P_GCC_USB4_1_PHY_PCIE_PIPEGMUX_CLK_SRC,
96 P_GCC_USB4_1_PHY_PIPEGMUX_CLK_SRC,
97 P_GCC_USB4_1_PHY_PLL_PIPE_CLK_SRC,
98 P_GCC_USB4_1_PHY_SYS_PIPEGMUX_CLK_SRC,
99 P_GCC_USB4_2_PHY_DP0_GMUX_CLK_SRC,
100 P_GCC_USB4_2_PHY_DP1_GMUX_CLK_SRC,
101 P_GCC_USB4_2_PHY_PCIE_PIPEGMUX_CLK_SRC,
102 P_GCC_USB4_2_PHY_PIPEGMUX_CLK_SRC,
103 P_GCC_USB4_2_PHY_SYS_PIPEGMUX_CLK_SRC,
104 P_PCIE_3A_PIPE_CLK,
105 P_PCIE_3B_PIPE_CLK,
106 P_PCIE_4_PIPE_CLK,
107 P_PCIE_5_PIPE_CLK,
108 P_PCIE_6_PIPE_CLK,
109 P_QUSB4PHY_0_GCC_USB4_RX0_CLK,
110 P_QUSB4PHY_0_GCC_USB4_RX1_CLK,
111 P_QUSB4PHY_1_GCC_USB4_RX0_CLK,
112 P_QUSB4PHY_1_GCC_USB4_RX1_CLK,
113 P_QUSB4PHY_2_GCC_USB4_RX0_CLK,
114 P_QUSB4PHY_2_GCC_USB4_RX1_CLK,
115 P_SLEEP_CLK,
116 P_UFS_PHY_RX_SYMBOL_0_CLK,
117 P_UFS_PHY_RX_SYMBOL_1_CLK,
118 P_UFS_PHY_TX_SYMBOL_0_CLK,
119 P_USB3_PHY_0_WRAPPER_GCC_USB30_PIPE_CLK,
120 P_USB3_PHY_1_WRAPPER_GCC_USB30_PIPE_CLK,
121 P_USB3_PHY_2_WRAPPER_GCC_USB30_PIPE_CLK,
122 P_USB3_UNI_PHY_MP_GCC_USB30_PIPE_0_CLK,
123 P_USB3_UNI_PHY_MP_GCC_USB30_PIPE_1_CLK,
124 P_USB4_0_PHY_GCC_USB4_PCIE_PIPE_CLK,
125 P_USB4_0_PHY_GCC_USB4RTR_MAX_PIPE_CLK,
126 P_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK,
127 P_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK,
128 P_USB4_2_PHY_GCC_USB4_PCIE_PIPE_CLK,
129 P_USB4_2_PHY_GCC_USB4RTR_MAX_PIPE_CLK,
130 };
131
132 static struct clk_alpha_pll gcc_gpll0 = {
133 .offset = 0x0,
134 .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_TAYCAN_EKO_T],
135 .clkr = {
136 .enable_reg = 0x62040,
137 .enable_mask = BIT(0),
138 .hw.init = &(const struct clk_init_data) {
139 .name = "gcc_gpll0",
140 .parent_data = &(const struct clk_parent_data) {
141 .index = DT_BI_TCXO,
142 },
143 .num_parents = 1,
144 .ops = &clk_alpha_pll_fixed_taycan_eko_t_ops,
145 },
146 },
147 };
148
149 static const struct clk_div_table post_div_table_gcc_gpll0_out_even[] = {
150 { 0x1, 2 },
151 { }
152 };
153
154 static struct clk_alpha_pll_postdiv gcc_gpll0_out_even = {
155 .offset = 0x0,
156 .post_div_shift = 10,
157 .post_div_table = post_div_table_gcc_gpll0_out_even,
158 .num_post_div = ARRAY_SIZE(post_div_table_gcc_gpll0_out_even),
159 .width = 4,
160 .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_TAYCAN_EKO_T],
161 .clkr.hw.init = &(const struct clk_init_data) {
162 .name = "gcc_gpll0_out_even",
163 .parent_hws = (const struct clk_hw*[]) {
164 &gcc_gpll0.clkr.hw,
165 },
166 .num_parents = 1,
167 .ops = &clk_alpha_pll_postdiv_taycan_eko_t_ops,
168 },
169 };
170
171 static struct clk_alpha_pll gcc_gpll1 = {
172 .offset = 0x1000,
173 .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_TAYCAN_EKO_T],
174 .clkr = {
175 .enable_reg = 0x62040,
176 .enable_mask = BIT(1),
177 .hw.init = &(const struct clk_init_data) {
178 .name = "gcc_gpll1",
179 .parent_data = &(const struct clk_parent_data) {
180 .index = DT_BI_TCXO,
181 },
182 .num_parents = 1,
183 .ops = &clk_alpha_pll_fixed_taycan_eko_t_ops,
184 },
185 },
186 };
187
188 static struct clk_alpha_pll gcc_gpll14 = {
189 .offset = 0xe000,
190 .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_TAYCAN_EKO_T],
191 .clkr = {
192 .enable_reg = 0x62040,
193 .enable_mask = BIT(14),
194 .hw.init = &(const struct clk_init_data) {
195 .name = "gcc_gpll14",
196 .parent_data = &(const struct clk_parent_data) {
197 .index = DT_BI_TCXO,
198 },
199 .num_parents = 1,
200 .ops = &clk_alpha_pll_fixed_taycan_eko_t_ops,
201 },
202 },
203 };
204
205 static const struct clk_div_table post_div_table_gcc_gpll14_out_even[] = {
206 { 0x1, 2 },
207 { }
208 };
209
210 static struct clk_alpha_pll_postdiv gcc_gpll14_out_even = {
211 .offset = 0xe000,
212 .post_div_shift = 10,
213 .post_div_table = post_div_table_gcc_gpll14_out_even,
214 .num_post_div = ARRAY_SIZE(post_div_table_gcc_gpll14_out_even),
215 .width = 4,
216 .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_TAYCAN_EKO_T],
217 .clkr.hw.init = &(const struct clk_init_data) {
218 .name = "gcc_gpll14_out_even",
219 .parent_hws = (const struct clk_hw*[]) {
220 &gcc_gpll14.clkr.hw,
221 },
222 .num_parents = 1,
223 .ops = &clk_alpha_pll_postdiv_taycan_eko_t_ops,
224 },
225 };
226
227 static struct clk_alpha_pll gcc_gpll4 = {
228 .offset = 0x4000,
229 .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_TAYCAN_EKO_T],
230 .clkr = {
231 .enable_reg = 0x62040,
232 .enable_mask = BIT(4),
233 .hw.init = &(const struct clk_init_data) {
234 .name = "gcc_gpll4",
235 .parent_data = &(const struct clk_parent_data) {
236 .index = DT_BI_TCXO,
237 },
238 .num_parents = 1,
239 .ops = &clk_alpha_pll_fixed_taycan_eko_t_ops,
240 },
241 },
242 };
243
244 static struct clk_alpha_pll gcc_gpll5 = {
245 .offset = 0x5000,
246 .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_TAYCAN_EKO_T],
247 .clkr = {
248 .enable_reg = 0x62040,
249 .enable_mask = BIT(5),
250 .hw.init = &(const struct clk_init_data) {
251 .name = "gcc_gpll5",
252 .parent_data = &(const struct clk_parent_data) {
253 .index = DT_BI_TCXO,
254 },
255 .num_parents = 1,
256 .ops = &clk_alpha_pll_fixed_taycan_eko_t_ops,
257 },
258 },
259 };
260
261 static struct clk_alpha_pll gcc_gpll7 = {
262 .offset = 0x7000,
263 .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_TAYCAN_EKO_T],
264 .clkr = {
265 .enable_reg = 0x62040,
266 .enable_mask = BIT(7),
267 .hw.init = &(const struct clk_init_data) {
268 .name = "gcc_gpll7",
269 .parent_data = &(const struct clk_parent_data) {
270 .index = DT_BI_TCXO,
271 },
272 .num_parents = 1,
273 .ops = &clk_alpha_pll_fixed_taycan_eko_t_ops,
274 },
275 },
276 };
277
278 static struct clk_alpha_pll gcc_gpll8 = {
279 .offset = 0x8000,
280 .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_TAYCAN_EKO_T],
281 .clkr = {
282 .enable_reg = 0x62040,
283 .enable_mask = BIT(8),
284 .hw.init = &(const struct clk_init_data) {
285 .name = "gcc_gpll8",
286 .parent_data = &(const struct clk_parent_data) {
287 .index = DT_BI_TCXO,
288 },
289 .num_parents = 1,
290 .ops = &clk_alpha_pll_fixed_taycan_eko_t_ops,
291 },
292 },
293 };
294
295 static struct clk_alpha_pll gcc_gpll9 = {
296 .offset = 0x9000,
297 .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_TAYCAN_EKO_T],
298 .clkr = {
299 .enable_reg = 0x62040,
300 .enable_mask = BIT(9),
301 .hw.init = &(const struct clk_init_data) {
302 .name = "gcc_gpll9",
303 .parent_data = &(const struct clk_parent_data) {
304 .index = DT_BI_TCXO,
305 },
306 .num_parents = 1,
307 .ops = &clk_alpha_pll_fixed_taycan_eko_t_ops,
308 },
309 },
310 };
311
312 static struct clk_regmap_mux gcc_usb3_prim_phy_pipe_clk_src;
313 static struct clk_regmap_mux gcc_usb3_sec_phy_pipe_clk_src;
314 static struct clk_regmap_mux gcc_usb3_tert_phy_pipe_clk_src;
315
316 static struct clk_rcg2 gcc_usb4_1_phy_pll_pipe_clk_src;
317
318 static const struct parent_map gcc_parent_map_0[] = {
319 { P_BI_TCXO, 0 },
320 { P_GCC_GPLL0_OUT_MAIN, 1 },
321 { P_GCC_GPLL0_OUT_EVEN, 6 },
322 };
323
324 static const struct clk_parent_data gcc_parent_data_0[] = {
325 { .index = DT_BI_TCXO },
326 { .hw = &gcc_gpll0.clkr.hw },
327 { .hw = &gcc_gpll0_out_even.clkr.hw },
328 };
329
330 static const struct parent_map gcc_parent_map_1[] = {
331 { P_BI_TCXO, 0 },
332 { P_GCC_GPLL0_OUT_MAIN, 1 },
333 { P_GCC_GPLL1_OUT_MAIN, 4 },
334 { P_GCC_GPLL0_OUT_EVEN, 6 },
335 };
336
337 static const struct clk_parent_data gcc_parent_data_1[] = {
338 { .index = DT_BI_TCXO },
339 { .hw = &gcc_gpll0.clkr.hw },
340 { .hw = &gcc_gpll1.clkr.hw },
341 { .hw = &gcc_gpll0_out_even.clkr.hw },
342 };
343
344 static const struct parent_map gcc_parent_map_2[] = {
345 { P_BI_TCXO, 0 },
346 { P_SLEEP_CLK, 5 },
347 };
348
349 static const struct clk_parent_data gcc_parent_data_2[] = {
350 { .index = DT_BI_TCXO },
351 { .index = DT_SLEEP_CLK },
352 };
353
354 static const struct parent_map gcc_parent_map_3[] = {
355 { P_BI_TCXO, 0 },
356 { P_GCC_GPLL0_OUT_MAIN, 1 },
357 { P_GCC_GPLL1_OUT_MAIN, 4 },
358 { P_GCC_GPLL4_OUT_MAIN, 5 },
359 { P_GCC_GPLL0_OUT_EVEN, 6 },
360 };
361
362 static const struct clk_parent_data gcc_parent_data_3[] = {
363 { .index = DT_BI_TCXO },
364 { .hw = &gcc_gpll0.clkr.hw },
365 { .hw = &gcc_gpll1.clkr.hw },
366 { .hw = &gcc_gpll4.clkr.hw },
367 { .hw = &gcc_gpll0_out_even.clkr.hw },
368 };
369
370 static const struct parent_map gcc_parent_map_4[] = {
371 { P_BI_TCXO, 0 },
372 { P_GCC_GPLL0_OUT_MAIN, 1 },
373 { P_SLEEP_CLK, 5 },
374 { P_GCC_GPLL0_OUT_EVEN, 6 },
375 };
376
377 static const struct clk_parent_data gcc_parent_data_4[] = {
378 { .index = DT_BI_TCXO },
379 { .hw = &gcc_gpll0.clkr.hw },
380 { .index = DT_SLEEP_CLK },
381 { .hw = &gcc_gpll0_out_even.clkr.hw },
382 };
383
384 static const struct parent_map gcc_parent_map_5[] = {
385 { P_BI_TCXO, 0 },
386 };
387
388 static const struct clk_parent_data gcc_parent_data_5[] = {
389 { .index = DT_BI_TCXO },
390 };
391
392 static const struct parent_map gcc_parent_map_6[] = {
393 { P_BI_TCXO, 0 },
394 { P_GCC_GPLL0_OUT_MAIN, 1 },
395 { P_GCC_GPLL4_OUT_MAIN, 5 },
396 { P_GCC_GPLL0_OUT_EVEN, 6 },
397 };
398
399 static const struct clk_parent_data gcc_parent_data_6[] = {
400 { .index = DT_BI_TCXO },
401 { .hw = &gcc_gpll0.clkr.hw },
402 { .hw = &gcc_gpll4.clkr.hw },
403 { .hw = &gcc_gpll0_out_even.clkr.hw },
404 };
405
406 static const struct parent_map gcc_parent_map_7[] = {
407 { P_BI_TCXO, 0 },
408 { P_GCC_GPLL14_OUT_MAIN, 1 },
409 { P_GCC_GPLL14_OUT_EVEN, 6 },
410 };
411
412 static const struct clk_parent_data gcc_parent_data_7[] = {
413 { .index = DT_BI_TCXO },
414 { .hw = &gcc_gpll14.clkr.hw },
415 { .hw = &gcc_gpll14_out_even.clkr.hw },
416 };
417
418 static const struct parent_map gcc_parent_map_8[] = {
419 { P_BI_TCXO, 0 },
420 { P_GCC_GPLL4_OUT_MAIN, 5 },
421 };
422
423 static const struct clk_parent_data gcc_parent_data_8[] = {
424 { .index = DT_BI_TCXO },
425 { .hw = &gcc_gpll4.clkr.hw },
426 };
427
428 static const struct parent_map gcc_parent_map_9[] = {
429 { P_BI_TCXO, 0 },
430 { P_GCC_GPLL0_OUT_MAIN, 1 },
431 { P_GCC_GPLL8_OUT_MAIN, 2 },
432 { P_GCC_GPLL0_OUT_EVEN, 6 },
433 };
434
435 static const struct clk_parent_data gcc_parent_data_9[] = {
436 { .index = DT_BI_TCXO },
437 { .hw = &gcc_gpll0.clkr.hw },
438 { .hw = &gcc_gpll8.clkr.hw },
439 { .hw = &gcc_gpll0_out_even.clkr.hw },
440 };
441
442 static const struct parent_map gcc_parent_map_10[] = {
443 { P_BI_TCXO, 0 },
444 { P_GCC_GPLL0_OUT_MAIN, 1 },
445 { P_GCC_GPLL7_OUT_MAIN, 2 },
446 };
447
448 static const struct clk_parent_data gcc_parent_data_10[] = {
449 { .index = DT_BI_TCXO },
450 { .hw = &gcc_gpll0.clkr.hw },
451 { .hw = &gcc_gpll7.clkr.hw },
452 };
453
454 static const struct parent_map gcc_parent_map_11[] = {
455 { P_BI_TCXO, 0 },
456 { P_GCC_GPLL0_OUT_MAIN, 1 },
457 { P_GCC_GPLL7_OUT_MAIN, 2 },
458 { P_GCC_GPLL8_OUT_MAIN, 3 },
459 { P_SLEEP_CLK, 5 },
460 };
461
462 static const struct clk_parent_data gcc_parent_data_11[] = {
463 { .index = DT_BI_TCXO },
464 { .hw = &gcc_gpll0.clkr.hw },
465 { .hw = &gcc_gpll7.clkr.hw },
466 { .hw = &gcc_gpll8.clkr.hw },
467 { .index = DT_SLEEP_CLK },
468 };
469
470 static const struct parent_map gcc_parent_map_17[] = {
471 { P_BI_TCXO, 0 },
472 { P_GCC_GPLL0_OUT_MAIN, 1 },
473 { P_GCC_GPLL9_OUT_MAIN, 2 },
474 { P_GCC_GPLL4_OUT_MAIN, 5 },
475 { P_GCC_GPLL0_OUT_EVEN, 6 },
476 };
477
478 static const struct clk_parent_data gcc_parent_data_17[] = {
479 { .index = DT_BI_TCXO },
480 { .hw = &gcc_gpll0.clkr.hw },
481 { .hw = &gcc_gpll9.clkr.hw },
482 { .hw = &gcc_gpll4.clkr.hw },
483 { .hw = &gcc_gpll0_out_even.clkr.hw },
484 };
485
486 static const struct parent_map gcc_parent_map_18[] = {
487 { P_UFS_PHY_RX_SYMBOL_0_CLK, 0 },
488 { P_BI_TCXO, 2 },
489 };
490
491 static const struct clk_parent_data gcc_parent_data_18[] = {
492 { .index = DT_UFS_PHY_RX_SYMBOL_0_CLK },
493 { .index = DT_BI_TCXO },
494 };
495
496 static const struct parent_map gcc_parent_map_19[] = {
497 { P_UFS_PHY_RX_SYMBOL_1_CLK, 0 },
498 { P_BI_TCXO, 2 },
499 };
500
501 static const struct clk_parent_data gcc_parent_data_19[] = {
502 { .index = DT_UFS_PHY_RX_SYMBOL_1_CLK },
503 { .index = DT_BI_TCXO },
504 };
505
506 static const struct parent_map gcc_parent_map_20[] = {
507 { P_UFS_PHY_TX_SYMBOL_0_CLK, 0 },
508 { P_BI_TCXO, 2 },
509 };
510
511 static const struct clk_parent_data gcc_parent_data_20[] = {
512 { .index = DT_UFS_PHY_TX_SYMBOL_0_CLK },
513 { .index = DT_BI_TCXO },
514 };
515
516 static const struct parent_map gcc_parent_map_21[] = {
517 { P_GCC_USB3_PRIM_PHY_PIPE_CLK_SRC, 0 },
518 { P_USB4_0_PHY_GCC_USB4RTR_MAX_PIPE_CLK, 1 },
519 { P_GCC_USB4_0_PHY_PIPEGMUX_CLK_SRC, 3 },
520 };
521
522 static const struct clk_parent_data gcc_parent_data_21[] = {
523 { .hw = &gcc_usb3_prim_phy_pipe_clk_src.clkr.hw },
524 { .index = DT_USB4_0_PHY_GCC_USB4RTR_MAX_PIPE_CLK },
525 { .index = DT_GCC_USB4_0_PHY_PIPEGMUX_CLK_SRC },
526 };
527
528 static const struct parent_map gcc_parent_map_22[] = {
529 { P_GCC_USB3_SEC_PHY_PIPE_CLK_SRC, 0 },
530 { P_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK, 1 },
531 { P_GCC_USB4_1_PHY_PLL_PIPE_CLK_SRC, 2 },
532 { P_GCC_USB4_1_PHY_PIPEGMUX_CLK_SRC, 3 },
533 };
534
535 static const struct clk_parent_data gcc_parent_data_22[] = {
536 { .hw = &gcc_usb3_sec_phy_pipe_clk_src.clkr.hw },
537 { .index = DT_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK },
538 { .hw = &gcc_usb4_1_phy_pll_pipe_clk_src.clkr.hw },
539 { .index = DT_GCC_USB4_1_PHY_PIPEGMUX_CLK_SRC },
540 };
541
542 static const struct parent_map gcc_parent_map_23[] = {
543 { P_GCC_USB3_TERT_PHY_PIPE_CLK_SRC, 0 },
544 { P_USB4_2_PHY_GCC_USB4RTR_MAX_PIPE_CLK, 1 },
545 { P_GCC_USB4_2_PHY_PIPEGMUX_CLK_SRC, 3 },
546 };
547
548 static const struct clk_parent_data gcc_parent_data_23[] = {
549 { .hw = &gcc_usb3_tert_phy_pipe_clk_src.clkr.hw },
550 { .index = DT_USB4_2_PHY_GCC_USB4RTR_MAX_PIPE_CLK },
551 { .index = DT_GCC_USB4_2_PHY_PIPEGMUX_CLK_SRC },
552 };
553
554 static const struct parent_map gcc_parent_map_24[] = {
555 { P_USB3_UNI_PHY_MP_GCC_USB30_PIPE_0_CLK, 0 },
556 { P_BI_TCXO, 2 },
557 };
558
559 static const struct clk_parent_data gcc_parent_data_24[] = {
560 { .index = DT_USB3_UNI_PHY_MP_GCC_USB30_PIPE_0_CLK },
561 { .index = DT_BI_TCXO },
562 };
563
564 static const struct parent_map gcc_parent_map_25[] = {
565 { P_USB3_UNI_PHY_MP_GCC_USB30_PIPE_1_CLK, 0 },
566 { P_BI_TCXO, 2 },
567 };
568
569 static const struct clk_parent_data gcc_parent_data_25[] = {
570 { .index = DT_USB3_UNI_PHY_MP_GCC_USB30_PIPE_1_CLK },
571 { .index = DT_BI_TCXO },
572 };
573
574 static const struct parent_map gcc_parent_map_26[] = {
575 { P_USB3_PHY_0_WRAPPER_GCC_USB30_PIPE_CLK, 0 },
576 { P_BI_TCXO, 2 },
577 };
578
579 static const struct clk_parent_data gcc_parent_data_26[] = {
580 { .index = DT_USB3_PHY_0_WRAPPER_GCC_USB30_PIPE_CLK },
581 { .index = DT_BI_TCXO },
582 };
583
584 static const struct parent_map gcc_parent_map_27[] = {
585 { P_USB3_PHY_1_WRAPPER_GCC_USB30_PIPE_CLK, 0 },
586 { P_BI_TCXO, 2 },
587 };
588
589 static const struct clk_parent_data gcc_parent_data_27[] = {
590 { .index = DT_USB3_PHY_1_WRAPPER_GCC_USB30_PIPE_CLK },
591 { .index = DT_BI_TCXO },
592 };
593
594 static const struct parent_map gcc_parent_map_28[] = {
595 { P_USB3_PHY_2_WRAPPER_GCC_USB30_PIPE_CLK, 0 },
596 { P_BI_TCXO, 2 },
597 };
598
599 static const struct clk_parent_data gcc_parent_data_28[] = {
600 { .index = DT_USB3_PHY_2_WRAPPER_GCC_USB30_PIPE_CLK },
601 { .index = DT_BI_TCXO },
602 };
603
604 static const struct parent_map gcc_parent_map_29[] = {
605 { P_GCC_USB4_0_PHY_DP0_GMUX_CLK_SRC, 0 },
606 { P_USB4_0_PHY_GCC_USB4RTR_MAX_PIPE_CLK, 2 },
607 };
608
609 static const struct clk_parent_data gcc_parent_data_29[] = {
610 { .index = DT_GCC_USB4_0_PHY_DP0_GMUX_CLK_SRC },
611 { .index = DT_USB4_0_PHY_GCC_USB4RTR_MAX_PIPE_CLK },
612 };
613
614 static const struct parent_map gcc_parent_map_30[] = {
615 { P_GCC_USB4_0_PHY_DP1_GMUX_CLK_SRC, 0 },
616 { P_USB4_0_PHY_GCC_USB4RTR_MAX_PIPE_CLK, 2 },
617 };
618
619 static const struct clk_parent_data gcc_parent_data_30[] = {
620 { .index = DT_GCC_USB4_0_PHY_DP1_GMUX_CLK_SRC },
621 { .index = DT_USB4_0_PHY_GCC_USB4RTR_MAX_PIPE_CLK },
622 };
623
624 static const struct parent_map gcc_parent_map_31[] = {
625 { P_USB4_0_PHY_GCC_USB4_PCIE_PIPE_CLK, 0 },
626 { P_BI_TCXO, 2 },
627 };
628
629 static const struct clk_parent_data gcc_parent_data_31[] = {
630 { .index = DT_USB4_0_PHY_GCC_USB4_PCIE_PIPE_CLK },
631 { .index = DT_BI_TCXO },
632 };
633
634 static const struct parent_map gcc_parent_map_32[] = {
635 { P_BI_TCXO, 0 },
636 { P_GCC_GPLL0_OUT_MAIN, 1 },
637 { P_GCC_GPLL7_OUT_MAIN, 2 },
638 { P_SLEEP_CLK, 5 },
639 };
640
641 static const struct clk_parent_data gcc_parent_data_32[] = {
642 { .index = DT_BI_TCXO },
643 { .hw = &gcc_gpll0.clkr.hw },
644 { .hw = &gcc_gpll7.clkr.hw },
645 { .index = DT_SLEEP_CLK },
646 };
647
648 static const struct parent_map gcc_parent_map_33[] = {
649 { P_GCC_USB4_0_PHY_PCIE_PIPEGMUX_CLK_SRC, 0 },
650 { P_USB4_0_PHY_GCC_USB4_PCIE_PIPE_CLK, 1 },
651 };
652
653 static const struct clk_parent_data gcc_parent_data_33[] = {
654 { .index = DT_GCC_USB4_0_PHY_PCIE_PIPEGMUX_CLK_SRC },
655 { .index = DT_USB4_0_PHY_GCC_USB4_PCIE_PIPE_CLK },
656 };
657
658 static const struct parent_map gcc_parent_map_34[] = {
659 { P_QUSB4PHY_0_GCC_USB4_RX0_CLK, 0 },
660 { P_BI_TCXO, 2 },
661 };
662
663 static const struct clk_parent_data gcc_parent_data_34[] = {
664 { .index = DT_QUSB4PHY_0_GCC_USB4_RX0_CLK },
665 { .index = DT_BI_TCXO },
666 };
667
668 static const struct parent_map gcc_parent_map_35[] = {
669 { P_QUSB4PHY_0_GCC_USB4_RX1_CLK, 0 },
670 { P_BI_TCXO, 2 },
671 };
672
673 static const struct clk_parent_data gcc_parent_data_35[] = {
674 { .index = DT_QUSB4PHY_0_GCC_USB4_RX1_CLK },
675 { .index = DT_BI_TCXO },
676 };
677
678 static const struct parent_map gcc_parent_map_36[] = {
679 { P_GCC_USB4_0_PHY_SYS_PIPEGMUX_CLK_SRC, 0 },
680 { P_USB4_0_PHY_GCC_USB4_PCIE_PIPE_CLK, 2 },
681 };
682
683 static const struct clk_parent_data gcc_parent_data_36[] = {
684 { .index = DT_GCC_USB4_0_PHY_SYS_PIPEGMUX_CLK_SRC },
685 { .index = DT_USB4_0_PHY_GCC_USB4_PCIE_PIPE_CLK },
686 };
687
688 static const struct parent_map gcc_parent_map_37[] = {
689 { P_GCC_USB4_1_PHY_DP0_GMUX_2_CLK_SRC, 0 },
690 { P_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK, 2 },
691 };
692
693 static const struct clk_parent_data gcc_parent_data_37[] = {
694 { .index = DT_GCC_USB4_1_PHY_DP0_GMUX_2_CLK_SRC },
695 { .index = DT_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK },
696 };
697
698 static const struct parent_map gcc_parent_map_38[] = {
699 { P_GCC_USB4_1_PHY_DP1_GMUX_2_CLK_SRC, 0 },
700 { P_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK, 2 },
701 };
702
703 static const struct clk_parent_data gcc_parent_data_38[] = {
704 { .index = DT_GCC_USB4_1_PHY_DP1_GMUX_2_CLK_SRC },
705 { .index = DT_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK },
706 };
707
708 static const struct parent_map gcc_parent_map_39[] = {
709 { P_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK, 0 },
710 { P_BI_TCXO, 2 },
711 };
712
713 static const struct clk_parent_data gcc_parent_data_39[] = {
714 { .index = DT_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK },
715 { .index = DT_BI_TCXO },
716 };
717
718 static const struct parent_map gcc_parent_map_40[] = {
719 { P_GCC_USB4_1_PHY_PCIE_PIPEGMUX_CLK_SRC, 0 },
720 { P_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK, 1 },
721 };
722
723 static const struct clk_parent_data gcc_parent_data_40[] = {
724 { .index = DT_GCC_USB4_1_PHY_PCIE_PIPEGMUX_CLK_SRC },
725 { .index = DT_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK },
726 };
727
728 static const struct parent_map gcc_parent_map_41[] = {
729 { P_BI_TCXO, 0 },
730 { P_GCC_GPLL0_OUT_MAIN, 1 },
731 { P_GCC_GPLL5_OUT_MAIN, 3 },
732 { P_GCC_GPLL0_OUT_EVEN, 6 },
733 };
734
735 static const struct clk_parent_data gcc_parent_data_41[] = {
736 { .index = DT_BI_TCXO },
737 { .hw = &gcc_gpll0.clkr.hw },
738 { .hw = &gcc_gpll5.clkr.hw },
739 { .hw = &gcc_gpll0_out_even.clkr.hw },
740 };
741
742 static const struct parent_map gcc_parent_map_42[] = {
743 { P_QUSB4PHY_1_GCC_USB4_RX0_CLK, 0 },
744 { P_BI_TCXO, 2 },
745 };
746
747 static const struct clk_parent_data gcc_parent_data_42[] = {
748 { .index = DT_QUSB4PHY_1_GCC_USB4_RX0_CLK },
749 { .index = DT_BI_TCXO },
750 };
751
752 static const struct parent_map gcc_parent_map_43[] = {
753 { P_QUSB4PHY_1_GCC_USB4_RX1_CLK, 0 },
754 { P_BI_TCXO, 2 },
755 };
756
757 static const struct clk_parent_data gcc_parent_data_43[] = {
758 { .index = DT_QUSB4PHY_1_GCC_USB4_RX1_CLK },
759 { .index = DT_BI_TCXO },
760 };
761
762 static const struct parent_map gcc_parent_map_44[] = {
763 { P_GCC_USB4_1_PHY_SYS_PIPEGMUX_CLK_SRC, 0 },
764 { P_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK, 2 },
765 };
766
767 static const struct clk_parent_data gcc_parent_data_44[] = {
768 { .index = DT_GCC_USB4_1_PHY_SYS_PIPEGMUX_CLK_SRC },
769 { .index = DT_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK },
770 };
771
772 static const struct parent_map gcc_parent_map_45[] = {
773 { P_GCC_USB4_2_PHY_DP0_GMUX_CLK_SRC, 0 },
774 { P_USB4_2_PHY_GCC_USB4RTR_MAX_PIPE_CLK, 2 },
775 };
776
777 static const struct clk_parent_data gcc_parent_data_45[] = {
778 { .index = DT_GCC_USB4_2_PHY_DP0_GMUX_CLK_SRC },
779 { .index = DT_USB4_2_PHY_GCC_USB4RTR_MAX_PIPE_CLK },
780 };
781
782 static const struct parent_map gcc_parent_map_46[] = {
783 { P_GCC_USB4_2_PHY_DP1_GMUX_CLK_SRC, 0 },
784 { P_USB4_2_PHY_GCC_USB4RTR_MAX_PIPE_CLK, 2 },
785 };
786
787 static const struct clk_parent_data gcc_parent_data_46[] = {
788 { .index = DT_GCC_USB4_2_PHY_DP1_GMUX_CLK_SRC },
789 { .index = DT_USB4_2_PHY_GCC_USB4RTR_MAX_PIPE_CLK },
790 };
791
792 static const struct parent_map gcc_parent_map_47[] = {
793 { P_USB4_2_PHY_GCC_USB4_PCIE_PIPE_CLK, 0 },
794 { P_BI_TCXO, 2 },
795 };
796
797 static const struct clk_parent_data gcc_parent_data_47[] = {
798 { .index = DT_USB4_2_PHY_GCC_USB4_PCIE_PIPE_CLK },
799 { .index = DT_BI_TCXO },
800 };
801
802 static const struct parent_map gcc_parent_map_48[] = {
803 { P_GCC_USB4_2_PHY_PCIE_PIPEGMUX_CLK_SRC, 0 },
804 { P_USB4_2_PHY_GCC_USB4_PCIE_PIPE_CLK, 1 },
805 };
806
807 static const struct clk_parent_data gcc_parent_data_48[] = {
808 { .index = DT_GCC_USB4_2_PHY_PCIE_PIPEGMUX_CLK_SRC },
809 { .index = DT_USB4_2_PHY_GCC_USB4_PCIE_PIPE_CLK },
810 };
811
812 static const struct parent_map gcc_parent_map_49[] = {
813 { P_QUSB4PHY_2_GCC_USB4_RX0_CLK, 0 },
814 { P_BI_TCXO, 2 },
815 };
816
817 static const struct clk_parent_data gcc_parent_data_49[] = {
818 { .index = DT_QUSB4PHY_2_GCC_USB4_RX0_CLK },
819 { .index = DT_BI_TCXO },
820 };
821
822 static const struct parent_map gcc_parent_map_50[] = {
823 { P_QUSB4PHY_2_GCC_USB4_RX1_CLK, 0 },
824 { P_BI_TCXO, 2 },
825 };
826
827 static const struct clk_parent_data gcc_parent_data_50[] = {
828 { .index = DT_QUSB4PHY_2_GCC_USB4_RX1_CLK },
829 { .index = DT_BI_TCXO },
830 };
831
832 static const struct parent_map gcc_parent_map_51[] = {
833 { P_GCC_USB4_2_PHY_SYS_PIPEGMUX_CLK_SRC, 0 },
834 { P_USB4_2_PHY_GCC_USB4_PCIE_PIPE_CLK, 2 },
835 };
836
837 static const struct clk_parent_data gcc_parent_data_51[] = {
838 { .index = DT_GCC_USB4_2_PHY_SYS_PIPEGMUX_CLK_SRC },
839 { .index = DT_USB4_2_PHY_GCC_USB4_PCIE_PIPE_CLK },
840 };
841
842 static struct clk_regmap_phy_mux gcc_pcie_3a_pipe_clk_src = {
843 .reg = 0xdc088,
844 .clkr = {
845 .hw.init = &(const struct clk_init_data) {
846 .name = "gcc_pcie_3a_pipe_clk_src",
847 .parent_data = &(const struct clk_parent_data){
848 .index = DT_PCIE_3A_PIPE_CLK,
849 },
850 .num_parents = 1,
851 .ops = &clk_regmap_phy_mux_ops,
852 },
853 },
854 };
855
856 static struct clk_regmap_phy_mux gcc_pcie_3b_pipe_clk_src = {
857 .reg = 0x941b4,
858 .clkr = {
859 .hw.init = &(const struct clk_init_data) {
860 .name = "gcc_pcie_3b_pipe_clk_src",
861 .parent_data = &(const struct clk_parent_data){
862 .index = DT_PCIE_3B_PIPE_CLK,
863 },
864 .num_parents = 1,
865 .ops = &clk_regmap_phy_mux_ops,
866 },
867 },
868 };
869
870 static struct clk_regmap_phy_mux gcc_pcie_4_pipe_clk_src = {
871 .reg = 0x881a4,
872 .clkr = {
873 .hw.init = &(const struct clk_init_data) {
874 .name = "gcc_pcie_4_pipe_clk_src",
875 .parent_data = &(const struct clk_parent_data){
876 .index = DT_PCIE_4_PIPE_CLK,
877 },
878 .num_parents = 1,
879 .ops = &clk_regmap_phy_mux_ops,
880 },
881 },
882 };
883
884 static struct clk_regmap_phy_mux gcc_pcie_5_pipe_clk_src = {
885 .reg = 0xc309c,
886 .clkr = {
887 .hw.init = &(const struct clk_init_data) {
888 .name = "gcc_pcie_5_pipe_clk_src",
889 .parent_data = &(const struct clk_parent_data){
890 .index = DT_PCIE_5_PIPE_CLK,
891 },
892 .num_parents = 1,
893 .ops = &clk_regmap_phy_mux_ops,
894 },
895 },
896 };
897
898 static struct clk_regmap_phy_mux gcc_pcie_6_pipe_clk_src = {
899 .reg = 0x8a1a4,
900 .clkr = {
901 .hw.init = &(const struct clk_init_data) {
902 .name = "gcc_pcie_6_pipe_clk_src",
903 .parent_data = &(const struct clk_parent_data){
904 .index = DT_PCIE_6_PIPE_CLK,
905 },
906 .num_parents = 1,
907 .ops = &clk_regmap_phy_mux_ops,
908 },
909 },
910 };
911
912 static struct clk_regmap_mux gcc_ufs_phy_rx_symbol_0_clk_src = {
913 .reg = 0x7706c,
914 .shift = 0,
915 .width = 2,
916 .parent_map = gcc_parent_map_18,
917 .clkr = {
918 .hw.init = &(const struct clk_init_data) {
919 .name = "gcc_ufs_phy_rx_symbol_0_clk_src",
920 .parent_data = gcc_parent_data_18,
921 .num_parents = ARRAY_SIZE(gcc_parent_data_18),
922 .ops = &clk_regmap_mux_closest_ops,
923 },
924 },
925 };
926
927 static struct clk_regmap_mux gcc_ufs_phy_rx_symbol_1_clk_src = {
928 .reg = 0x770f0,
929 .shift = 0,
930 .width = 2,
931 .parent_map = gcc_parent_map_19,
932 .clkr = {
933 .hw.init = &(const struct clk_init_data) {
934 .name = "gcc_ufs_phy_rx_symbol_1_clk_src",
935 .parent_data = gcc_parent_data_19,
936 .num_parents = ARRAY_SIZE(gcc_parent_data_19),
937 .ops = &clk_regmap_mux_closest_ops,
938 },
939 },
940 };
941
942 static struct clk_regmap_mux gcc_ufs_phy_tx_symbol_0_clk_src = {
943 .reg = 0x7705c,
944 .shift = 0,
945 .width = 2,
946 .parent_map = gcc_parent_map_20,
947 .clkr = {
948 .hw.init = &(const struct clk_init_data) {
949 .name = "gcc_ufs_phy_tx_symbol_0_clk_src",
950 .parent_data = gcc_parent_data_20,
951 .num_parents = ARRAY_SIZE(gcc_parent_data_20),
952 .ops = &clk_regmap_mux_closest_ops,
953 },
954 },
955 };
956
957 static struct clk_regmap_mux gcc_usb34_prim_phy_pipe_clk_src = {
958 .reg = 0x2b0b8,
959 .shift = 0,
960 .width = 2,
961 .parent_map = gcc_parent_map_21,
962 .clkr = {
963 .hw.init = &(const struct clk_init_data) {
964 .name = "gcc_usb34_prim_phy_pipe_clk_src",
965 .parent_data = gcc_parent_data_21,
966 .num_parents = ARRAY_SIZE(gcc_parent_data_21),
967 .ops = &clk_regmap_mux_closest_ops,
968 },
969 },
970 };
971
972 static struct clk_regmap_mux gcc_usb34_sec_phy_pipe_clk_src = {
973 .reg = 0x2d0c4,
974 .shift = 0,
975 .width = 2,
976 .parent_map = gcc_parent_map_22,
977 .clkr = {
978 .hw.init = &(const struct clk_init_data) {
979 .name = "gcc_usb34_sec_phy_pipe_clk_src",
980 .parent_data = gcc_parent_data_22,
981 .num_parents = ARRAY_SIZE(gcc_parent_data_22),
982 .ops = &clk_regmap_mux_closest_ops,
983 },
984 },
985 };
986
987 static struct clk_regmap_mux gcc_usb34_tert_phy_pipe_clk_src = {
988 .reg = 0xe00bc,
989 .shift = 0,
990 .width = 2,
991 .parent_map = gcc_parent_map_23,
992 .clkr = {
993 .hw.init = &(const struct clk_init_data) {
994 .name = "gcc_usb34_tert_phy_pipe_clk_src",
995 .parent_data = gcc_parent_data_23,
996 .num_parents = ARRAY_SIZE(gcc_parent_data_23),
997 .ops = &clk_regmap_mux_closest_ops,
998 },
999 },
1000 };
1001
1002 static struct clk_regmap_mux gcc_usb3_mp_phy_pipe_0_clk_src = {
1003 .reg = 0x9a07c,
1004 .shift = 0,
1005 .width = 2,
1006 .parent_map = gcc_parent_map_24,
1007 .clkr = {
1008 .hw.init = &(const struct clk_init_data) {
1009 .name = "gcc_usb3_mp_phy_pipe_0_clk_src",
1010 .parent_data = gcc_parent_data_24,
1011 .num_parents = ARRAY_SIZE(gcc_parent_data_24),
1012 .ops = &clk_regmap_mux_closest_ops,
1013 },
1014 },
1015 };
1016
1017 static struct clk_regmap_mux gcc_usb3_mp_phy_pipe_1_clk_src = {
1018 .reg = 0x9a084,
1019 .shift = 0,
1020 .width = 2,
1021 .parent_map = gcc_parent_map_25,
1022 .clkr = {
1023 .hw.init = &(const struct clk_init_data) {
1024 .name = "gcc_usb3_mp_phy_pipe_1_clk_src",
1025 .parent_data = gcc_parent_data_25,
1026 .num_parents = ARRAY_SIZE(gcc_parent_data_25),
1027 .ops = &clk_regmap_mux_closest_ops,
1028 },
1029 },
1030 };
1031
1032 static struct clk_regmap_mux gcc_usb3_prim_phy_pipe_clk_src = {
1033 .reg = 0x3f08c,
1034 .shift = 0,
1035 .width = 2,
1036 .parent_map = gcc_parent_map_26,
1037 .clkr = {
1038 .hw.init = &(const struct clk_init_data) {
1039 .name = "gcc_usb3_prim_phy_pipe_clk_src",
1040 .parent_data = gcc_parent_data_26,
1041 .num_parents = ARRAY_SIZE(gcc_parent_data_26),
1042 .ops = &clk_regmap_mux_closest_ops,
1043 },
1044 },
1045 };
1046
1047 static struct clk_regmap_mux gcc_usb3_sec_phy_pipe_clk_src = {
1048 .reg = 0xe207c,
1049 .shift = 0,
1050 .width = 2,
1051 .parent_map = gcc_parent_map_27,
1052 .clkr = {
1053 .hw.init = &(const struct clk_init_data) {
1054 .name = "gcc_usb3_sec_phy_pipe_clk_src",
1055 .parent_data = gcc_parent_data_27,
1056 .num_parents = ARRAY_SIZE(gcc_parent_data_27),
1057 .ops = &clk_regmap_mux_closest_ops,
1058 },
1059 },
1060 };
1061
1062 static struct clk_regmap_mux gcc_usb3_tert_phy_pipe_clk_src = {
1063 .reg = 0xe107c,
1064 .shift = 0,
1065 .width = 2,
1066 .parent_map = gcc_parent_map_28,
1067 .clkr = {
1068 .hw.init = &(const struct clk_init_data) {
1069 .name = "gcc_usb3_tert_phy_pipe_clk_src",
1070 .parent_data = gcc_parent_data_28,
1071 .num_parents = ARRAY_SIZE(gcc_parent_data_28),
1072 .ops = &clk_regmap_mux_closest_ops,
1073 },
1074 },
1075 };
1076
1077 static struct clk_regmap_mux gcc_usb4_0_phy_dp0_clk_src = {
1078 .reg = 0x2b080,
1079 .shift = 0,
1080 .width = 2,
1081 .parent_map = gcc_parent_map_29,
1082 .clkr = {
1083 .hw.init = &(const struct clk_init_data) {
1084 .name = "gcc_usb4_0_phy_dp0_clk_src",
1085 .parent_data = gcc_parent_data_29,
1086 .num_parents = ARRAY_SIZE(gcc_parent_data_29),
1087 .ops = &clk_regmap_mux_closest_ops,
1088 },
1089 },
1090 };
1091
1092 static struct clk_regmap_mux gcc_usb4_0_phy_dp1_clk_src = {
1093 .reg = 0x2b134,
1094 .shift = 0,
1095 .width = 2,
1096 .parent_map = gcc_parent_map_30,
1097 .clkr = {
1098 .hw.init = &(const struct clk_init_data) {
1099 .name = "gcc_usb4_0_phy_dp1_clk_src",
1100 .parent_data = gcc_parent_data_30,
1101 .num_parents = ARRAY_SIZE(gcc_parent_data_30),
1102 .ops = &clk_regmap_mux_closest_ops,
1103 },
1104 },
1105 };
1106
1107 static struct clk_regmap_mux gcc_usb4_0_phy_p2rr2p_pipe_clk_src = {
1108 .reg = 0x2b0f0,
1109 .shift = 0,
1110 .width = 2,
1111 .parent_map = gcc_parent_map_31,
1112 .clkr = {
1113 .hw.init = &(const struct clk_init_data) {
1114 .name = "gcc_usb4_0_phy_p2rr2p_pipe_clk_src",
1115 .parent_data = gcc_parent_data_31,
1116 .num_parents = ARRAY_SIZE(gcc_parent_data_31),
1117 .ops = &clk_regmap_mux_closest_ops,
1118 },
1119 },
1120 };
1121
1122 static struct clk_regmap_mux gcc_usb4_0_phy_pcie_pipe_mux_clk_src = {
1123 .reg = 0x2b120,
1124 .shift = 0,
1125 .width = 1,
1126 .parent_map = gcc_parent_map_33,
1127 .clkr = {
1128 .hw.init = &(const struct clk_init_data) {
1129 .name = "gcc_usb4_0_phy_pcie_pipe_mux_clk_src",
1130 .parent_data = gcc_parent_data_33,
1131 .num_parents = ARRAY_SIZE(gcc_parent_data_33),
1132 .ops = &clk_regmap_mux_closest_ops,
1133 },
1134 },
1135 };
1136
1137 static struct clk_regmap_mux gcc_usb4_0_phy_rx0_clk_src = {
1138 .reg = 0x2b0c0,
1139 .shift = 0,
1140 .width = 2,
1141 .parent_map = gcc_parent_map_34,
1142 .clkr = {
1143 .hw.init = &(const struct clk_init_data) {
1144 .name = "gcc_usb4_0_phy_rx0_clk_src",
1145 .parent_data = gcc_parent_data_34,
1146 .num_parents = ARRAY_SIZE(gcc_parent_data_34),
1147 .ops = &clk_regmap_mux_closest_ops,
1148 },
1149 },
1150 };
1151
1152 static struct clk_regmap_mux gcc_usb4_0_phy_rx1_clk_src = {
1153 .reg = 0x2b0d4,
1154 .shift = 0,
1155 .width = 2,
1156 .parent_map = gcc_parent_map_35,
1157 .clkr = {
1158 .hw.init = &(const struct clk_init_data) {
1159 .name = "gcc_usb4_0_phy_rx1_clk_src",
1160 .parent_data = gcc_parent_data_35,
1161 .num_parents = ARRAY_SIZE(gcc_parent_data_35),
1162 .ops = &clk_regmap_mux_closest_ops,
1163 },
1164 },
1165 };
1166
1167 static struct clk_regmap_mux gcc_usb4_0_phy_sys_clk_src = {
1168 .reg = 0x2b100,
1169 .shift = 0,
1170 .width = 2,
1171 .parent_map = gcc_parent_map_36,
1172 .clkr = {
1173 .hw.init = &(const struct clk_init_data) {
1174 .name = "gcc_usb4_0_phy_sys_clk_src",
1175 .parent_data = gcc_parent_data_36,
1176 .num_parents = ARRAY_SIZE(gcc_parent_data_36),
1177 .ops = &clk_regmap_mux_closest_ops,
1178 },
1179 },
1180 };
1181
1182 static struct clk_regmap_mux gcc_usb4_1_phy_dp0_clk_src = {
1183 .reg = 0x2d08c,
1184 .shift = 0,
1185 .width = 2,
1186 .parent_map = gcc_parent_map_37,
1187 .clkr = {
1188 .hw.init = &(const struct clk_init_data) {
1189 .name = "gcc_usb4_1_phy_dp0_clk_src",
1190 .parent_data = gcc_parent_data_37,
1191 .num_parents = ARRAY_SIZE(gcc_parent_data_37),
1192 .ops = &clk_regmap_mux_closest_ops,
1193 },
1194 },
1195 };
1196
1197 static struct clk_regmap_mux gcc_usb4_1_phy_dp1_clk_src = {
1198 .reg = 0x2d154,
1199 .shift = 0,
1200 .width = 2,
1201 .parent_map = gcc_parent_map_38,
1202 .clkr = {
1203 .hw.init = &(const struct clk_init_data) {
1204 .name = "gcc_usb4_1_phy_dp1_clk_src",
1205 .parent_data = gcc_parent_data_38,
1206 .num_parents = ARRAY_SIZE(gcc_parent_data_38),
1207 .ops = &clk_regmap_mux_closest_ops,
1208 },
1209 },
1210 };
1211
1212 static struct clk_regmap_mux gcc_usb4_1_phy_p2rr2p_pipe_clk_src = {
1213 .reg = 0x2d114,
1214 .shift = 0,
1215 .width = 2,
1216 .parent_map = gcc_parent_map_39,
1217 .clkr = {
1218 .hw.init = &(const struct clk_init_data) {
1219 .name = "gcc_usb4_1_phy_p2rr2p_pipe_clk_src",
1220 .parent_data = gcc_parent_data_39,
1221 .num_parents = ARRAY_SIZE(gcc_parent_data_39),
1222 .ops = &clk_regmap_mux_closest_ops,
1223 },
1224 },
1225 };
1226
1227 static struct clk_regmap_mux gcc_usb4_1_phy_pcie_pipe_mux_clk_src = {
1228 .reg = 0x2d140,
1229 .shift = 0,
1230 .width = 1,
1231 .parent_map = gcc_parent_map_40,
1232 .clkr = {
1233 .hw.init = &(const struct clk_init_data) {
1234 .name = "gcc_usb4_1_phy_pcie_pipe_mux_clk_src",
1235 .parent_data = gcc_parent_data_40,
1236 .num_parents = ARRAY_SIZE(gcc_parent_data_40),
1237 .ops = &clk_regmap_mux_closest_ops,
1238 },
1239 },
1240 };
1241
1242 static struct clk_regmap_mux gcc_usb4_1_phy_rx0_clk_src = {
1243 .reg = 0x2d0e4,
1244 .shift = 0,
1245 .width = 2,
1246 .parent_map = gcc_parent_map_42,
1247 .clkr = {
1248 .hw.init = &(const struct clk_init_data) {
1249 .name = "gcc_usb4_1_phy_rx0_clk_src",
1250 .parent_data = gcc_parent_data_42,
1251 .num_parents = ARRAY_SIZE(gcc_parent_data_42),
1252 .ops = &clk_regmap_mux_closest_ops,
1253 },
1254 },
1255 };
1256
1257 static struct clk_regmap_mux gcc_usb4_1_phy_rx1_clk_src = {
1258 .reg = 0x2d0f8,
1259 .shift = 0,
1260 .width = 2,
1261 .parent_map = gcc_parent_map_43,
1262 .clkr = {
1263 .hw.init = &(const struct clk_init_data) {
1264 .name = "gcc_usb4_1_phy_rx1_clk_src",
1265 .parent_data = gcc_parent_data_43,
1266 .num_parents = ARRAY_SIZE(gcc_parent_data_43),
1267 .ops = &clk_regmap_mux_closest_ops,
1268 },
1269 },
1270 };
1271
1272 static struct clk_regmap_mux gcc_usb4_1_phy_sys_clk_src = {
1273 .reg = 0x2d124,
1274 .shift = 0,
1275 .width = 2,
1276 .parent_map = gcc_parent_map_44,
1277 .clkr = {
1278 .hw.init = &(const struct clk_init_data) {
1279 .name = "gcc_usb4_1_phy_sys_clk_src",
1280 .parent_data = gcc_parent_data_44,
1281 .num_parents = ARRAY_SIZE(gcc_parent_data_44),
1282 .ops = &clk_regmap_mux_closest_ops,
1283 },
1284 },
1285 };
1286
1287 static struct clk_regmap_mux gcc_usb4_2_phy_dp0_clk_src = {
1288 .reg = 0xe0084,
1289 .shift = 0,
1290 .width = 2,
1291 .parent_map = gcc_parent_map_45,
1292 .clkr = {
1293 .hw.init = &(const struct clk_init_data) {
1294 .name = "gcc_usb4_2_phy_dp0_clk_src",
1295 .parent_data = gcc_parent_data_45,
1296 .num_parents = ARRAY_SIZE(gcc_parent_data_45),
1297 .ops = &clk_regmap_mux_closest_ops,
1298 },
1299 },
1300 };
1301
1302 static struct clk_regmap_mux gcc_usb4_2_phy_dp1_clk_src = {
1303 .reg = 0xe013c,
1304 .shift = 0,
1305 .width = 2,
1306 .parent_map = gcc_parent_map_46,
1307 .clkr = {
1308 .hw.init = &(const struct clk_init_data) {
1309 .name = "gcc_usb4_2_phy_dp1_clk_src",
1310 .parent_data = gcc_parent_data_46,
1311 .num_parents = ARRAY_SIZE(gcc_parent_data_46),
1312 .ops = &clk_regmap_mux_closest_ops,
1313 },
1314 },
1315 };
1316
1317 static struct clk_regmap_mux gcc_usb4_2_phy_p2rr2p_pipe_clk_src = {
1318 .reg = 0xe00f4,
1319 .shift = 0,
1320 .width = 2,
1321 .parent_map = gcc_parent_map_47,
1322 .clkr = {
1323 .hw.init = &(const struct clk_init_data) {
1324 .name = "gcc_usb4_2_phy_p2rr2p_pipe_clk_src",
1325 .parent_data = gcc_parent_data_47,
1326 .num_parents = ARRAY_SIZE(gcc_parent_data_47),
1327 .ops = &clk_regmap_mux_closest_ops,
1328 },
1329 },
1330 };
1331
1332 static struct clk_regmap_mux gcc_usb4_2_phy_pcie_pipe_mux_clk_src = {
1333 .reg = 0xe0124,
1334 .shift = 0,
1335 .width = 1,
1336 .parent_map = gcc_parent_map_48,
1337 .clkr = {
1338 .hw.init = &(const struct clk_init_data) {
1339 .name = "gcc_usb4_2_phy_pcie_pipe_mux_clk_src",
1340 .parent_data = gcc_parent_data_48,
1341 .num_parents = ARRAY_SIZE(gcc_parent_data_48),
1342 .ops = &clk_regmap_mux_closest_ops,
1343 },
1344 },
1345 };
1346
1347 static struct clk_regmap_mux gcc_usb4_2_phy_rx0_clk_src = {
1348 .reg = 0xe00c4,
1349 .shift = 0,
1350 .width = 2,
1351 .parent_map = gcc_parent_map_49,
1352 .clkr = {
1353 .hw.init = &(const struct clk_init_data) {
1354 .name = "gcc_usb4_2_phy_rx0_clk_src",
1355 .parent_data = gcc_parent_data_49,
1356 .num_parents = ARRAY_SIZE(gcc_parent_data_49),
1357 .ops = &clk_regmap_mux_closest_ops,
1358 },
1359 },
1360 };
1361
1362 static struct clk_regmap_mux gcc_usb4_2_phy_rx1_clk_src = {
1363 .reg = 0xe00d8,
1364 .shift = 0,
1365 .width = 2,
1366 .parent_map = gcc_parent_map_50,
1367 .clkr = {
1368 .hw.init = &(const struct clk_init_data) {
1369 .name = "gcc_usb4_2_phy_rx1_clk_src",
1370 .parent_data = gcc_parent_data_50,
1371 .num_parents = ARRAY_SIZE(gcc_parent_data_50),
1372 .ops = &clk_regmap_mux_closest_ops,
1373 },
1374 },
1375 };
1376
1377 static struct clk_regmap_mux gcc_usb4_2_phy_sys_clk_src = {
1378 .reg = 0xe0104,
1379 .shift = 0,
1380 .width = 2,
1381 .parent_map = gcc_parent_map_51,
1382 .clkr = {
1383 .hw.init = &(const struct clk_init_data) {
1384 .name = "gcc_usb4_2_phy_sys_clk_src",
1385 .parent_data = gcc_parent_data_51,
1386 .num_parents = ARRAY_SIZE(gcc_parent_data_51),
1387 .ops = &clk_regmap_mux_closest_ops,
1388 },
1389 },
1390 };
1391
1392 static const struct freq_tbl ftbl_gcc_gp1_clk_src[] = {
1393 F(50000000, P_GCC_GPLL0_OUT_EVEN, 6, 0, 0),
1394 F(100000000, P_GCC_GPLL0_OUT_MAIN, 6, 0, 0),
1395 F(200000000, P_GCC_GPLL0_OUT_MAIN, 3, 0, 0),
1396 { }
1397 };
1398
1399 static struct clk_rcg2 gcc_gp1_clk_src = {
1400 .cmd_rcgr = 0x64004,
1401 .mnd_width = 16,
1402 .hid_width = 5,
1403 .parent_map = gcc_parent_map_4,
1404 .freq_tbl = ftbl_gcc_gp1_clk_src,
1405 .clkr.hw.init = &(const struct clk_init_data) {
1406 .name = "gcc_gp1_clk_src",
1407 .parent_data = gcc_parent_data_4,
1408 .num_parents = ARRAY_SIZE(gcc_parent_data_4),
1409 .flags = CLK_SET_RATE_PARENT,
1410 .ops = &clk_rcg2_shared_no_init_park_ops,
1411 },
1412 };
1413
1414 static struct clk_rcg2 gcc_gp2_clk_src = {
1415 .cmd_rcgr = 0x92004,
1416 .mnd_width = 16,
1417 .hid_width = 5,
1418 .parent_map = gcc_parent_map_4,
1419 .freq_tbl = ftbl_gcc_gp1_clk_src,
1420 .clkr.hw.init = &(const struct clk_init_data) {
1421 .name = "gcc_gp2_clk_src",
1422 .parent_data = gcc_parent_data_4,
1423 .num_parents = ARRAY_SIZE(gcc_parent_data_4),
1424 .flags = CLK_SET_RATE_PARENT,
1425 .ops = &clk_rcg2_shared_no_init_park_ops,
1426 },
1427 };
1428
1429 static struct clk_rcg2 gcc_gp3_clk_src = {
1430 .cmd_rcgr = 0x93004,
1431 .mnd_width = 16,
1432 .hid_width = 5,
1433 .parent_map = gcc_parent_map_4,
1434 .freq_tbl = ftbl_gcc_gp1_clk_src,
1435 .clkr.hw.init = &(const struct clk_init_data) {
1436 .name = "gcc_gp3_clk_src",
1437 .parent_data = gcc_parent_data_4,
1438 .num_parents = ARRAY_SIZE(gcc_parent_data_4),
1439 .flags = CLK_SET_RATE_PARENT,
1440 .ops = &clk_rcg2_shared_no_init_park_ops,
1441 },
1442 };
1443
1444 static const struct freq_tbl ftbl_gcc_pcie_0_aux_clk_src[] = {
1445 F(19200000, P_BI_TCXO, 1, 0, 0),
1446 { }
1447 };
1448
1449 static struct clk_rcg2 gcc_pcie_0_aux_clk_src = {
1450 .cmd_rcgr = 0xc8168,
1451 .mnd_width = 16,
1452 .hid_width = 5,
1453 .parent_map = gcc_parent_map_2,
1454 .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
1455 .clkr.hw.init = &(const struct clk_init_data) {
1456 .name = "gcc_pcie_0_aux_clk_src",
1457 .parent_data = gcc_parent_data_2,
1458 .num_parents = ARRAY_SIZE(gcc_parent_data_2),
1459 .flags = CLK_SET_RATE_PARENT,
1460 .ops = &clk_rcg2_shared_no_init_park_ops,
1461 },
1462 };
1463
1464 static const struct freq_tbl ftbl_gcc_pcie_0_phy_rchng_clk_src[] = {
1465 F(19200000, P_BI_TCXO, 1, 0, 0),
1466 F(100000000, P_GCC_GPLL0_OUT_EVEN, 3, 0, 0),
1467 { }
1468 };
1469
1470 static struct clk_rcg2 gcc_pcie_0_phy_rchng_clk_src = {
1471 .cmd_rcgr = 0xc803c,
1472 .mnd_width = 0,
1473 .hid_width = 5,
1474 .parent_map = gcc_parent_map_0,
1475 .freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src,
1476 .clkr.hw.init = &(const struct clk_init_data) {
1477 .name = "gcc_pcie_0_phy_rchng_clk_src",
1478 .parent_data = gcc_parent_data_0,
1479 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1480 .flags = CLK_SET_RATE_PARENT,
1481 .ops = &clk_rcg2_shared_no_init_park_ops,
1482 },
1483 };
1484
1485 static struct clk_rcg2 gcc_pcie_1_aux_clk_src = {
1486 .cmd_rcgr = 0x2e168,
1487 .mnd_width = 16,
1488 .hid_width = 5,
1489 .parent_map = gcc_parent_map_2,
1490 .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
1491 .clkr.hw.init = &(const struct clk_init_data) {
1492 .name = "gcc_pcie_1_aux_clk_src",
1493 .parent_data = gcc_parent_data_2,
1494 .num_parents = ARRAY_SIZE(gcc_parent_data_2),
1495 .flags = CLK_SET_RATE_PARENT,
1496 .ops = &clk_rcg2_shared_no_init_park_ops,
1497 },
1498 };
1499
1500 static struct clk_rcg2 gcc_pcie_1_phy_rchng_clk_src = {
1501 .cmd_rcgr = 0x2e03c,
1502 .mnd_width = 0,
1503 .hid_width = 5,
1504 .parent_map = gcc_parent_map_0,
1505 .freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src,
1506 .clkr.hw.init = &(const struct clk_init_data) {
1507 .name = "gcc_pcie_1_phy_rchng_clk_src",
1508 .parent_data = gcc_parent_data_0,
1509 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1510 .flags = CLK_SET_RATE_PARENT,
1511 .ops = &clk_rcg2_shared_no_init_park_ops,
1512 },
1513 };
1514
1515 static struct clk_rcg2 gcc_pcie_2_aux_clk_src = {
1516 .cmd_rcgr = 0xc0168,
1517 .mnd_width = 16,
1518 .hid_width = 5,
1519 .parent_map = gcc_parent_map_2,
1520 .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
1521 .clkr.hw.init = &(const struct clk_init_data) {
1522 .name = "gcc_pcie_2_aux_clk_src",
1523 .parent_data = gcc_parent_data_2,
1524 .num_parents = ARRAY_SIZE(gcc_parent_data_2),
1525 .flags = CLK_SET_RATE_PARENT,
1526 .ops = &clk_rcg2_shared_no_init_park_ops,
1527 },
1528 };
1529
1530 static struct clk_rcg2 gcc_pcie_2_phy_rchng_clk_src = {
1531 .cmd_rcgr = 0xc003c,
1532 .mnd_width = 0,
1533 .hid_width = 5,
1534 .parent_map = gcc_parent_map_0,
1535 .freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src,
1536 .clkr.hw.init = &(const struct clk_init_data) {
1537 .name = "gcc_pcie_2_phy_rchng_clk_src",
1538 .parent_data = gcc_parent_data_0,
1539 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1540 .flags = CLK_SET_RATE_PARENT,
1541 .ops = &clk_rcg2_shared_no_init_park_ops,
1542 },
1543 };
1544
1545 static struct clk_rcg2 gcc_pcie_3a_aux_clk_src = {
1546 .cmd_rcgr = 0xdc08c,
1547 .mnd_width = 16,
1548 .hid_width = 5,
1549 .parent_map = gcc_parent_map_2,
1550 .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
1551 .clkr.hw.init = &(const struct clk_init_data) {
1552 .name = "gcc_pcie_3a_aux_clk_src",
1553 .parent_data = gcc_parent_data_2,
1554 .num_parents = ARRAY_SIZE(gcc_parent_data_2),
1555 .flags = CLK_SET_RATE_PARENT,
1556 .ops = &clk_rcg2_shared_no_init_park_ops,
1557 },
1558 };
1559
1560 static struct clk_rcg2 gcc_pcie_3a_phy_rchng_clk_src = {
1561 .cmd_rcgr = 0xdc070,
1562 .mnd_width = 0,
1563 .hid_width = 5,
1564 .parent_map = gcc_parent_map_0,
1565 .freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src,
1566 .clkr.hw.init = &(const struct clk_init_data) {
1567 .name = "gcc_pcie_3a_phy_rchng_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_shared_no_init_park_ops,
1572 },
1573 };
1574
1575 static struct clk_rcg2 gcc_pcie_3b_aux_clk_src = {
1576 .cmd_rcgr = 0x941b8,
1577 .mnd_width = 16,
1578 .hid_width = 5,
1579 .parent_map = gcc_parent_map_2,
1580 .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
1581 .clkr.hw.init = &(const struct clk_init_data) {
1582 .name = "gcc_pcie_3b_aux_clk_src",
1583 .parent_data = gcc_parent_data_2,
1584 .num_parents = ARRAY_SIZE(gcc_parent_data_2),
1585 .flags = CLK_SET_RATE_PARENT,
1586 .ops = &clk_rcg2_shared_no_init_park_ops,
1587 },
1588 };
1589
1590 static struct clk_rcg2 gcc_pcie_3b_phy_rchng_clk_src = {
1591 .cmd_rcgr = 0x94088,
1592 .mnd_width = 0,
1593 .hid_width = 5,
1594 .parent_map = gcc_parent_map_0,
1595 .freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src,
1596 .clkr.hw.init = &(const struct clk_init_data) {
1597 .name = "gcc_pcie_3b_phy_rchng_clk_src",
1598 .parent_data = gcc_parent_data_0,
1599 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1600 .flags = CLK_SET_RATE_PARENT,
1601 .ops = &clk_rcg2_shared_no_init_park_ops,
1602 },
1603 };
1604
1605 static struct clk_rcg2 gcc_pcie_4_aux_clk_src = {
1606 .cmd_rcgr = 0x881a8,
1607 .mnd_width = 16,
1608 .hid_width = 5,
1609 .parent_map = gcc_parent_map_2,
1610 .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
1611 .clkr.hw.init = &(const struct clk_init_data) {
1612 .name = "gcc_pcie_4_aux_clk_src",
1613 .parent_data = gcc_parent_data_2,
1614 .num_parents = ARRAY_SIZE(gcc_parent_data_2),
1615 .flags = CLK_SET_RATE_PARENT,
1616 .ops = &clk_rcg2_shared_no_init_park_ops,
1617 },
1618 };
1619
1620 static struct clk_rcg2 gcc_pcie_4_phy_rchng_clk_src = {
1621 .cmd_rcgr = 0x88078,
1622 .mnd_width = 0,
1623 .hid_width = 5,
1624 .parent_map = gcc_parent_map_0,
1625 .freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src,
1626 .clkr.hw.init = &(const struct clk_init_data) {
1627 .name = "gcc_pcie_4_phy_rchng_clk_src",
1628 .parent_data = gcc_parent_data_0,
1629 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1630 .flags = CLK_SET_RATE_PARENT,
1631 .ops = &clk_rcg2_shared_no_init_park_ops,
1632 },
1633 };
1634
1635 static struct clk_rcg2 gcc_pcie_5_aux_clk_src = {
1636 .cmd_rcgr = 0xc30a0,
1637 .mnd_width = 16,
1638 .hid_width = 5,
1639 .parent_map = gcc_parent_map_2,
1640 .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
1641 .clkr.hw.init = &(const struct clk_init_data) {
1642 .name = "gcc_pcie_5_aux_clk_src",
1643 .parent_data = gcc_parent_data_2,
1644 .num_parents = ARRAY_SIZE(gcc_parent_data_2),
1645 .flags = CLK_SET_RATE_PARENT,
1646 .ops = &clk_rcg2_shared_no_init_park_ops,
1647 },
1648 };
1649
1650 static struct clk_rcg2 gcc_pcie_5_phy_rchng_clk_src = {
1651 .cmd_rcgr = 0xc3084,
1652 .mnd_width = 0,
1653 .hid_width = 5,
1654 .parent_map = gcc_parent_map_0,
1655 .freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src,
1656 .clkr.hw.init = &(const struct clk_init_data) {
1657 .name = "gcc_pcie_5_phy_rchng_clk_src",
1658 .parent_data = gcc_parent_data_0,
1659 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1660 .flags = CLK_SET_RATE_PARENT,
1661 .ops = &clk_rcg2_shared_no_init_park_ops,
1662 },
1663 };
1664
1665 static struct clk_rcg2 gcc_pcie_6_aux_clk_src = {
1666 .cmd_rcgr = 0x8a1a8,
1667 .mnd_width = 16,
1668 .hid_width = 5,
1669 .parent_map = gcc_parent_map_2,
1670 .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
1671 .clkr.hw.init = &(const struct clk_init_data) {
1672 .name = "gcc_pcie_6_aux_clk_src",
1673 .parent_data = gcc_parent_data_2,
1674 .num_parents = ARRAY_SIZE(gcc_parent_data_2),
1675 .flags = CLK_SET_RATE_PARENT,
1676 .ops = &clk_rcg2_shared_no_init_park_ops,
1677 },
1678 };
1679
1680 static struct clk_rcg2 gcc_pcie_6_phy_rchng_clk_src = {
1681 .cmd_rcgr = 0x8a078,
1682 .mnd_width = 0,
1683 .hid_width = 5,
1684 .parent_map = gcc_parent_map_0,
1685 .freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src,
1686 .clkr.hw.init = &(const struct clk_init_data) {
1687 .name = "gcc_pcie_6_phy_rchng_clk_src",
1688 .parent_data = gcc_parent_data_0,
1689 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1690 .flags = CLK_SET_RATE_PARENT,
1691 .ops = &clk_rcg2_shared_no_init_park_ops,
1692 },
1693 };
1694
1695 static struct clk_rcg2 gcc_pcie_phy_3a_aux_clk_src = {
1696 .cmd_rcgr = 0x6c01c,
1697 .mnd_width = 16,
1698 .hid_width = 5,
1699 .parent_map = gcc_parent_map_2,
1700 .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
1701 .clkr.hw.init = &(const struct clk_init_data) {
1702 .name = "gcc_pcie_phy_3a_aux_clk_src",
1703 .parent_data = gcc_parent_data_2,
1704 .num_parents = ARRAY_SIZE(gcc_parent_data_2),
1705 .flags = CLK_SET_RATE_PARENT,
1706 .ops = &clk_rcg2_shared_no_init_park_ops,
1707 },
1708 };
1709
1710 static struct clk_rcg2 gcc_pcie_phy_3b_aux_clk_src = {
1711 .cmd_rcgr = 0x7501c,
1712 .mnd_width = 16,
1713 .hid_width = 5,
1714 .parent_map = gcc_parent_map_2,
1715 .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
1716 .clkr.hw.init = &(const struct clk_init_data) {
1717 .name = "gcc_pcie_phy_3b_aux_clk_src",
1718 .parent_data = gcc_parent_data_2,
1719 .num_parents = ARRAY_SIZE(gcc_parent_data_2),
1720 .flags = CLK_SET_RATE_PARENT,
1721 .ops = &clk_rcg2_shared_no_init_park_ops,
1722 },
1723 };
1724
1725 static struct clk_rcg2 gcc_pcie_phy_4_aux_clk_src = {
1726 .cmd_rcgr = 0xd3018,
1727 .mnd_width = 16,
1728 .hid_width = 5,
1729 .parent_map = gcc_parent_map_2,
1730 .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
1731 .clkr.hw.init = &(const struct clk_init_data) {
1732 .name = "gcc_pcie_phy_4_aux_clk_src",
1733 .parent_data = gcc_parent_data_2,
1734 .num_parents = ARRAY_SIZE(gcc_parent_data_2),
1735 .flags = CLK_SET_RATE_PARENT,
1736 .ops = &clk_rcg2_shared_no_init_park_ops,
1737 },
1738 };
1739
1740 static struct clk_rcg2 gcc_pcie_phy_5_aux_clk_src = {
1741 .cmd_rcgr = 0xd2018,
1742 .mnd_width = 16,
1743 .hid_width = 5,
1744 .parent_map = gcc_parent_map_2,
1745 .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
1746 .clkr.hw.init = &(const struct clk_init_data) {
1747 .name = "gcc_pcie_phy_5_aux_clk_src",
1748 .parent_data = gcc_parent_data_2,
1749 .num_parents = ARRAY_SIZE(gcc_parent_data_2),
1750 .flags = CLK_SET_RATE_PARENT,
1751 .ops = &clk_rcg2_shared_no_init_park_ops,
1752 },
1753 };
1754
1755 static struct clk_rcg2 gcc_pcie_phy_6_aux_clk_src = {
1756 .cmd_rcgr = 0xd4018,
1757 .mnd_width = 16,
1758 .hid_width = 5,
1759 .parent_map = gcc_parent_map_2,
1760 .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
1761 .clkr.hw.init = &(const struct clk_init_data) {
1762 .name = "gcc_pcie_phy_6_aux_clk_src",
1763 .parent_data = gcc_parent_data_2,
1764 .num_parents = ARRAY_SIZE(gcc_parent_data_2),
1765 .flags = CLK_SET_RATE_PARENT,
1766 .ops = &clk_rcg2_shared_no_init_park_ops,
1767 },
1768 };
1769
1770 static const struct freq_tbl ftbl_gcc_pdm2_clk_src[] = {
1771 F(60000000, P_GCC_GPLL0_OUT_MAIN, 10, 0, 0),
1772 { }
1773 };
1774
1775 static struct clk_rcg2 gcc_pdm2_clk_src = {
1776 .cmd_rcgr = 0x33010,
1777 .mnd_width = 0,
1778 .hid_width = 5,
1779 .parent_map = gcc_parent_map_0,
1780 .freq_tbl = ftbl_gcc_pdm2_clk_src,
1781 .clkr.hw.init = &(const struct clk_init_data) {
1782 .name = "gcc_pdm2_clk_src",
1783 .parent_data = gcc_parent_data_0,
1784 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1785 .flags = CLK_SET_RATE_PARENT,
1786 .ops = &clk_rcg2_shared_no_init_park_ops,
1787 },
1788 };
1789
1790 static const struct freq_tbl ftbl_gcc_qupv3_oob_qspi_s0_clk_src[] = {
1791 F(7372800, P_GCC_GPLL0_OUT_EVEN, 1, 384, 15625),
1792 F(14745600, P_GCC_GPLL0_OUT_EVEN, 1, 768, 15625),
1793 F(19200000, P_BI_TCXO, 1, 0, 0),
1794 F(29491200, P_GCC_GPLL0_OUT_EVEN, 1, 1536, 15625),
1795 F(32000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 75),
1796 F(48000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 25),
1797 F(64000000, P_GCC_GPLL0_OUT_EVEN, 1, 16, 75),
1798 F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0),
1799 F(80000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 15),
1800 F(96000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 25),
1801 F(100000000, P_GCC_GPLL0_OUT_MAIN, 6, 0, 0),
1802 F(120000000, P_GCC_GPLL0_OUT_MAIN, 5, 0, 0),
1803 F(150000000, P_GCC_GPLL0_OUT_EVEN, 2, 0, 0),
1804 F(200000000, P_GCC_GPLL0_OUT_MAIN, 3, 0, 0),
1805 F(403000000, P_GCC_GPLL4_OUT_MAIN, 2, 0, 0),
1806 { }
1807 };
1808
1809 static struct clk_init_data gcc_qupv3_oob_qspi_s0_clk_src_init = {
1810 .name = "gcc_qupv3_oob_qspi_s0_clk_src",
1811 .parent_data = gcc_parent_data_3,
1812 .num_parents = ARRAY_SIZE(gcc_parent_data_3),
1813 .flags = CLK_SET_RATE_PARENT,
1814 .ops = &clk_rcg2_shared_no_init_park_ops,
1815 };
1816
1817 static struct clk_rcg2 gcc_qupv3_oob_qspi_s0_clk_src = {
1818 .cmd_rcgr = 0xe7044,
1819 .mnd_width = 16,
1820 .hid_width = 5,
1821 .parent_map = gcc_parent_map_3,
1822 .freq_tbl = ftbl_gcc_qupv3_oob_qspi_s0_clk_src,
1823 .clkr.hw.init = &gcc_qupv3_oob_qspi_s0_clk_src_init,
1824 };
1825
1826 static const struct freq_tbl ftbl_gcc_qupv3_oob_qspi_s1_clk_src[] = {
1827 F(7372800, P_GCC_GPLL0_OUT_EVEN, 1, 384, 15625),
1828 F(14745600, P_GCC_GPLL0_OUT_EVEN, 1, 768, 15625),
1829 F(19200000, P_BI_TCXO, 1, 0, 0),
1830 F(29491200, P_GCC_GPLL0_OUT_EVEN, 1, 1536, 15625),
1831 F(32000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 75),
1832 F(48000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 25),
1833 F(64000000, P_GCC_GPLL0_OUT_EVEN, 1, 16, 75),
1834 F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0),
1835 F(80000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 15),
1836 F(96000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 25),
1837 F(100000000, P_GCC_GPLL0_OUT_MAIN, 6, 0, 0),
1838 F(120000000, P_GCC_GPLL0_OUT_MAIN, 5, 0, 0),
1839 F(150000000, P_GCC_GPLL0_OUT_EVEN, 2, 0, 0),
1840 F(200000000, P_GCC_GPLL0_OUT_MAIN, 3, 0, 0),
1841 { }
1842 };
1843
1844 static struct clk_init_data gcc_qupv3_oob_qspi_s1_clk_src_init = {
1845 .name = "gcc_qupv3_oob_qspi_s1_clk_src",
1846 .parent_data = gcc_parent_data_1,
1847 .num_parents = ARRAY_SIZE(gcc_parent_data_1),
1848 .flags = CLK_SET_RATE_PARENT,
1849 .ops = &clk_rcg2_shared_no_init_park_ops,
1850 };
1851
1852 static struct clk_rcg2 gcc_qupv3_oob_qspi_s1_clk_src = {
1853 .cmd_rcgr = 0xe7170,
1854 .mnd_width = 16,
1855 .hid_width = 5,
1856 .parent_map = gcc_parent_map_1,
1857 .freq_tbl = ftbl_gcc_qupv3_oob_qspi_s1_clk_src,
1858 .clkr.hw.init = &gcc_qupv3_oob_qspi_s1_clk_src_init,
1859 };
1860
1861 static struct clk_init_data gcc_qupv3_wrap0_qspi_s2_clk_src_init = {
1862 .name = "gcc_qupv3_wrap0_qspi_s2_clk_src",
1863 .parent_data = gcc_parent_data_1,
1864 .num_parents = ARRAY_SIZE(gcc_parent_data_1),
1865 .flags = CLK_SET_RATE_PARENT,
1866 .ops = &clk_rcg2_shared_no_init_park_ops,
1867 };
1868
1869 static struct clk_rcg2 gcc_qupv3_wrap0_qspi_s2_clk_src = {
1870 .cmd_rcgr = 0x287a0,
1871 .mnd_width = 16,
1872 .hid_width = 5,
1873 .parent_map = gcc_parent_map_1,
1874 .freq_tbl = ftbl_gcc_qupv3_oob_qspi_s1_clk_src,
1875 .clkr.hw.init = &gcc_qupv3_wrap0_qspi_s2_clk_src_init,
1876 };
1877
1878 static struct clk_init_data gcc_qupv3_wrap0_qspi_s3_clk_src_init = {
1879 .name = "gcc_qupv3_wrap0_qspi_s3_clk_src",
1880 .parent_data = gcc_parent_data_1,
1881 .num_parents = ARRAY_SIZE(gcc_parent_data_1),
1882 .flags = CLK_SET_RATE_PARENT,
1883 .ops = &clk_rcg2_shared_no_init_park_ops,
1884 };
1885
1886 static struct clk_rcg2 gcc_qupv3_wrap0_qspi_s3_clk_src = {
1887 .cmd_rcgr = 0x288d0,
1888 .mnd_width = 16,
1889 .hid_width = 5,
1890 .parent_map = gcc_parent_map_1,
1891 .freq_tbl = ftbl_gcc_qupv3_oob_qspi_s1_clk_src,
1892 .clkr.hw.init = &gcc_qupv3_wrap0_qspi_s3_clk_src_init,
1893 };
1894
1895 static struct clk_init_data gcc_qupv3_wrap0_qspi_s6_clk_src_init = {
1896 .name = "gcc_qupv3_wrap0_qspi_s6_clk_src",
1897 .parent_data = gcc_parent_data_1,
1898 .num_parents = ARRAY_SIZE(gcc_parent_data_1),
1899 .flags = CLK_SET_RATE_PARENT,
1900 .ops = &clk_rcg2_shared_no_init_park_ops,
1901 };
1902
1903 static struct clk_rcg2 gcc_qupv3_wrap0_qspi_s6_clk_src = {
1904 .cmd_rcgr = 0x2866c,
1905 .mnd_width = 16,
1906 .hid_width = 5,
1907 .parent_map = gcc_parent_map_1,
1908 .freq_tbl = ftbl_gcc_qupv3_oob_qspi_s1_clk_src,
1909 .clkr.hw.init = &gcc_qupv3_wrap0_qspi_s6_clk_src_init,
1910 };
1911
1912 static const struct freq_tbl ftbl_gcc_qupv3_wrap0_s0_clk_src[] = {
1913 F(7372800, P_GCC_GPLL0_OUT_EVEN, 1, 384, 15625),
1914 F(14745600, P_GCC_GPLL0_OUT_EVEN, 1, 768, 15625),
1915 F(19200000, P_BI_TCXO, 1, 0, 0),
1916 F(29491200, P_GCC_GPLL0_OUT_EVEN, 1, 1536, 15625),
1917 F(32000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 75),
1918 F(48000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 25),
1919 F(64000000, P_GCC_GPLL0_OUT_EVEN, 1, 16, 75),
1920 F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0),
1921 F(80000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 15),
1922 F(96000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 25),
1923 F(100000000, P_GCC_GPLL0_OUT_MAIN, 6, 0, 0),
1924 F(120000000, P_GCC_GPLL0_OUT_MAIN, 5, 0, 0),
1925 { }
1926 };
1927
1928 static struct clk_init_data gcc_qupv3_wrap0_s0_clk_src_init = {
1929 .name = "gcc_qupv3_wrap0_s0_clk_src",
1930 .parent_data = gcc_parent_data_1,
1931 .num_parents = ARRAY_SIZE(gcc_parent_data_1),
1932 .flags = CLK_SET_RATE_PARENT,
1933 .ops = &clk_rcg2_shared_no_init_park_ops,
1934 };
1935
1936 static struct clk_rcg2 gcc_qupv3_wrap0_s0_clk_src = {
1937 .cmd_rcgr = 0x28014,
1938 .mnd_width = 16,
1939 .hid_width = 5,
1940 .parent_map = gcc_parent_map_1,
1941 .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1942 .clkr.hw.init = &gcc_qupv3_wrap0_s0_clk_src_init,
1943 };
1944
1945 static struct clk_init_data gcc_qupv3_wrap0_s1_clk_src_init = {
1946 .name = "gcc_qupv3_wrap0_s1_clk_src",
1947 .parent_data = gcc_parent_data_1,
1948 .num_parents = ARRAY_SIZE(gcc_parent_data_1),
1949 .flags = CLK_SET_RATE_PARENT,
1950 .ops = &clk_rcg2_shared_no_init_park_ops,
1951 };
1952
1953 static struct clk_rcg2 gcc_qupv3_wrap0_s1_clk_src = {
1954 .cmd_rcgr = 0x28150,
1955 .mnd_width = 16,
1956 .hid_width = 5,
1957 .parent_map = gcc_parent_map_1,
1958 .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1959 .clkr.hw.init = &gcc_qupv3_wrap0_s1_clk_src_init,
1960 };
1961
1962 static const struct freq_tbl ftbl_gcc_qupv3_wrap0_s4_clk_src[] = {
1963 F(7372800, P_GCC_GPLL0_OUT_EVEN, 1, 384, 15625),
1964 F(14745600, P_GCC_GPLL0_OUT_EVEN, 1, 768, 15625),
1965 F(19200000, P_BI_TCXO, 1, 0, 0),
1966 F(29491200, P_GCC_GPLL0_OUT_EVEN, 1, 1536, 15625),
1967 F(32000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 75),
1968 F(48000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 25),
1969 F(64000000, P_GCC_GPLL0_OUT_EVEN, 1, 16, 75),
1970 F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0),
1971 F(80000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 15),
1972 F(96000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 25),
1973 F(100000000, P_GCC_GPLL0_OUT_MAIN, 6, 0, 0),
1974 { }
1975 };
1976
1977 static struct clk_init_data gcc_qupv3_wrap0_s4_clk_src_init = {
1978 .name = "gcc_qupv3_wrap0_s4_clk_src",
1979 .parent_data = gcc_parent_data_1,
1980 .num_parents = ARRAY_SIZE(gcc_parent_data_1),
1981 .flags = CLK_SET_RATE_PARENT,
1982 .ops = &clk_rcg2_shared_no_init_park_ops,
1983 };
1984
1985 static struct clk_rcg2 gcc_qupv3_wrap0_s4_clk_src = {
1986 .cmd_rcgr = 0x282b4,
1987 .mnd_width = 16,
1988 .hid_width = 5,
1989 .parent_map = gcc_parent_map_1,
1990 .freq_tbl = ftbl_gcc_qupv3_wrap0_s4_clk_src,
1991 .clkr.hw.init = &gcc_qupv3_wrap0_s4_clk_src_init,
1992 };
1993
1994 static struct clk_init_data gcc_qupv3_wrap0_s5_clk_src_init = {
1995 .name = "gcc_qupv3_wrap0_s5_clk_src",
1996 .parent_data = gcc_parent_data_1,
1997 .num_parents = ARRAY_SIZE(gcc_parent_data_1),
1998 .flags = CLK_SET_RATE_PARENT,
1999 .ops = &clk_rcg2_shared_no_init_park_ops,
2000 };
2001
2002 static struct clk_rcg2 gcc_qupv3_wrap0_s5_clk_src = {
2003 .cmd_rcgr = 0x283f0,
2004 .mnd_width = 16,
2005 .hid_width = 5,
2006 .parent_map = gcc_parent_map_1,
2007 .freq_tbl = ftbl_gcc_qupv3_wrap0_s4_clk_src,
2008 .clkr.hw.init = &gcc_qupv3_wrap0_s5_clk_src_init,
2009 };
2010
2011 static struct clk_init_data gcc_qupv3_wrap0_s7_clk_src_init = {
2012 .name = "gcc_qupv3_wrap0_s7_clk_src",
2013 .parent_data = gcc_parent_data_1,
2014 .num_parents = ARRAY_SIZE(gcc_parent_data_1),
2015 .flags = CLK_SET_RATE_PARENT,
2016 .ops = &clk_rcg2_shared_no_init_park_ops,
2017 };
2018
2019 static struct clk_rcg2 gcc_qupv3_wrap0_s7_clk_src = {
2020 .cmd_rcgr = 0x28540,
2021 .mnd_width = 16,
2022 .hid_width = 5,
2023 .parent_map = gcc_parent_map_1,
2024 .freq_tbl = ftbl_gcc_qupv3_wrap0_s4_clk_src,
2025 .clkr.hw.init = &gcc_qupv3_wrap0_s7_clk_src_init,
2026 };
2027
2028 static struct clk_init_data gcc_qupv3_wrap1_qspi_s2_clk_src_init = {
2029 .name = "gcc_qupv3_wrap1_qspi_s2_clk_src",
2030 .parent_data = gcc_parent_data_1,
2031 .num_parents = ARRAY_SIZE(gcc_parent_data_1),
2032 .flags = CLK_SET_RATE_PARENT,
2033 .ops = &clk_rcg2_shared_no_init_park_ops,
2034 };
2035
2036 static struct clk_rcg2 gcc_qupv3_wrap1_qspi_s2_clk_src = {
2037 .cmd_rcgr = 0xb37a0,
2038 .mnd_width = 16,
2039 .hid_width = 5,
2040 .parent_map = gcc_parent_map_1,
2041 .freq_tbl = ftbl_gcc_qupv3_oob_qspi_s1_clk_src,
2042 .clkr.hw.init = &gcc_qupv3_wrap1_qspi_s2_clk_src_init,
2043 };
2044
2045 static struct clk_init_data gcc_qupv3_wrap1_qspi_s3_clk_src_init = {
2046 .name = "gcc_qupv3_wrap1_qspi_s3_clk_src",
2047 .parent_data = gcc_parent_data_1,
2048 .num_parents = ARRAY_SIZE(gcc_parent_data_1),
2049 .flags = CLK_SET_RATE_PARENT,
2050 .ops = &clk_rcg2_shared_no_init_park_ops,
2051 };
2052
2053 static struct clk_rcg2 gcc_qupv3_wrap1_qspi_s3_clk_src = {
2054 .cmd_rcgr = 0xb38d0,
2055 .mnd_width = 16,
2056 .hid_width = 5,
2057 .parent_map = gcc_parent_map_1,
2058 .freq_tbl = ftbl_gcc_qupv3_oob_qspi_s1_clk_src,
2059 .clkr.hw.init = &gcc_qupv3_wrap1_qspi_s3_clk_src_init,
2060 };
2061
2062 static struct clk_init_data gcc_qupv3_wrap1_qspi_s6_clk_src_init = {
2063 .name = "gcc_qupv3_wrap1_qspi_s6_clk_src",
2064 .parent_data = gcc_parent_data_1,
2065 .num_parents = ARRAY_SIZE(gcc_parent_data_1),
2066 .flags = CLK_SET_RATE_PARENT,
2067 .ops = &clk_rcg2_shared_no_init_park_ops,
2068 };
2069
2070 static struct clk_rcg2 gcc_qupv3_wrap1_qspi_s6_clk_src = {
2071 .cmd_rcgr = 0xb366c,
2072 .mnd_width = 16,
2073 .hid_width = 5,
2074 .parent_map = gcc_parent_map_1,
2075 .freq_tbl = ftbl_gcc_qupv3_oob_qspi_s1_clk_src,
2076 .clkr.hw.init = &gcc_qupv3_wrap1_qspi_s6_clk_src_init,
2077 };
2078
2079 static struct clk_init_data gcc_qupv3_wrap1_s0_clk_src_init = {
2080 .name = "gcc_qupv3_wrap1_s0_clk_src",
2081 .parent_data = gcc_parent_data_1,
2082 .num_parents = ARRAY_SIZE(gcc_parent_data_1),
2083 .flags = CLK_SET_RATE_PARENT,
2084 .ops = &clk_rcg2_shared_no_init_park_ops,
2085 };
2086
2087 static struct clk_rcg2 gcc_qupv3_wrap1_s0_clk_src = {
2088 .cmd_rcgr = 0xb3014,
2089 .mnd_width = 16,
2090 .hid_width = 5,
2091 .parent_map = gcc_parent_map_1,
2092 .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
2093 .clkr.hw.init = &gcc_qupv3_wrap1_s0_clk_src_init,
2094 };
2095
2096 static struct clk_init_data gcc_qupv3_wrap1_s1_clk_src_init = {
2097 .name = "gcc_qupv3_wrap1_s1_clk_src",
2098 .parent_data = gcc_parent_data_1,
2099 .num_parents = ARRAY_SIZE(gcc_parent_data_1),
2100 .flags = CLK_SET_RATE_PARENT,
2101 .ops = &clk_rcg2_shared_no_init_park_ops,
2102 };
2103
2104 static struct clk_rcg2 gcc_qupv3_wrap1_s1_clk_src = {
2105 .cmd_rcgr = 0xb3150,
2106 .mnd_width = 16,
2107 .hid_width = 5,
2108 .parent_map = gcc_parent_map_1,
2109 .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
2110 .clkr.hw.init = &gcc_qupv3_wrap1_s1_clk_src_init,
2111 };
2112
2113 static struct clk_init_data gcc_qupv3_wrap1_s4_clk_src_init = {
2114 .name = "gcc_qupv3_wrap1_s4_clk_src",
2115 .parent_data = gcc_parent_data_1,
2116 .num_parents = ARRAY_SIZE(gcc_parent_data_1),
2117 .flags = CLK_SET_RATE_PARENT,
2118 .ops = &clk_rcg2_shared_no_init_park_ops,
2119 };
2120
2121 static struct clk_rcg2 gcc_qupv3_wrap1_s4_clk_src = {
2122 .cmd_rcgr = 0xb32b4,
2123 .mnd_width = 16,
2124 .hid_width = 5,
2125 .parent_map = gcc_parent_map_1,
2126 .freq_tbl = ftbl_gcc_qupv3_wrap0_s4_clk_src,
2127 .clkr.hw.init = &gcc_qupv3_wrap1_s4_clk_src_init,
2128 };
2129
2130 static struct clk_init_data gcc_qupv3_wrap1_s5_clk_src_init = {
2131 .name = "gcc_qupv3_wrap1_s5_clk_src",
2132 .parent_data = gcc_parent_data_1,
2133 .num_parents = ARRAY_SIZE(gcc_parent_data_1),
2134 .flags = CLK_SET_RATE_PARENT,
2135 .ops = &clk_rcg2_shared_no_init_park_ops,
2136 };
2137
2138 static struct clk_rcg2 gcc_qupv3_wrap1_s5_clk_src = {
2139 .cmd_rcgr = 0xb33f0,
2140 .mnd_width = 16,
2141 .hid_width = 5,
2142 .parent_map = gcc_parent_map_1,
2143 .freq_tbl = ftbl_gcc_qupv3_wrap0_s4_clk_src,
2144 .clkr.hw.init = &gcc_qupv3_wrap1_s5_clk_src_init,
2145 };
2146
2147 static struct clk_init_data gcc_qupv3_wrap1_s7_clk_src_init = {
2148 .name = "gcc_qupv3_wrap1_s7_clk_src",
2149 .parent_data = gcc_parent_data_1,
2150 .num_parents = ARRAY_SIZE(gcc_parent_data_1),
2151 .flags = CLK_SET_RATE_PARENT,
2152 .ops = &clk_rcg2_shared_no_init_park_ops,
2153 };
2154
2155 static struct clk_rcg2 gcc_qupv3_wrap1_s7_clk_src = {
2156 .cmd_rcgr = 0xb3540,
2157 .mnd_width = 16,
2158 .hid_width = 5,
2159 .parent_map = gcc_parent_map_1,
2160 .freq_tbl = ftbl_gcc_qupv3_wrap0_s4_clk_src,
2161 .clkr.hw.init = &gcc_qupv3_wrap1_s7_clk_src_init,
2162 };
2163
2164 static struct clk_init_data gcc_qupv3_wrap2_qspi_s2_clk_src_init = {
2165 .name = "gcc_qupv3_wrap2_qspi_s2_clk_src",
2166 .parent_data = gcc_parent_data_1,
2167 .num_parents = ARRAY_SIZE(gcc_parent_data_1),
2168 .flags = CLK_SET_RATE_PARENT,
2169 .ops = &clk_rcg2_shared_no_init_park_ops,
2170 };
2171
2172 static struct clk_rcg2 gcc_qupv3_wrap2_qspi_s2_clk_src = {
2173 .cmd_rcgr = 0xb47a0,
2174 .mnd_width = 16,
2175 .hid_width = 5,
2176 .parent_map = gcc_parent_map_1,
2177 .freq_tbl = ftbl_gcc_qupv3_oob_qspi_s1_clk_src,
2178 .clkr.hw.init = &gcc_qupv3_wrap2_qspi_s2_clk_src_init,
2179 };
2180
2181 static struct clk_init_data gcc_qupv3_wrap2_qspi_s3_clk_src_init = {
2182 .name = "gcc_qupv3_wrap2_qspi_s3_clk_src",
2183 .parent_data = gcc_parent_data_1,
2184 .num_parents = ARRAY_SIZE(gcc_parent_data_1),
2185 .flags = CLK_SET_RATE_PARENT,
2186 .ops = &clk_rcg2_shared_no_init_park_ops,
2187 };
2188
2189 static struct clk_rcg2 gcc_qupv3_wrap2_qspi_s3_clk_src = {
2190 .cmd_rcgr = 0xb48d0,
2191 .mnd_width = 16,
2192 .hid_width = 5,
2193 .parent_map = gcc_parent_map_1,
2194 .freq_tbl = ftbl_gcc_qupv3_oob_qspi_s1_clk_src,
2195 .clkr.hw.init = &gcc_qupv3_wrap2_qspi_s3_clk_src_init,
2196 };
2197
2198 static struct clk_init_data gcc_qupv3_wrap2_qspi_s6_clk_src_init = {
2199 .name = "gcc_qupv3_wrap2_qspi_s6_clk_src",
2200 .parent_data = gcc_parent_data_1,
2201 .num_parents = ARRAY_SIZE(gcc_parent_data_1),
2202 .flags = CLK_SET_RATE_PARENT,
2203 .ops = &clk_rcg2_shared_no_init_park_ops,
2204 };
2205
2206 static struct clk_rcg2 gcc_qupv3_wrap2_qspi_s6_clk_src = {
2207 .cmd_rcgr = 0xb466c,
2208 .mnd_width = 16,
2209 .hid_width = 5,
2210 .parent_map = gcc_parent_map_1,
2211 .freq_tbl = ftbl_gcc_qupv3_oob_qspi_s1_clk_src,
2212 .clkr.hw.init = &gcc_qupv3_wrap2_qspi_s6_clk_src_init,
2213 };
2214
2215 static struct clk_init_data gcc_qupv3_wrap2_s0_clk_src_init = {
2216 .name = "gcc_qupv3_wrap2_s0_clk_src",
2217 .parent_data = gcc_parent_data_1,
2218 .num_parents = ARRAY_SIZE(gcc_parent_data_1),
2219 .flags = CLK_SET_RATE_PARENT,
2220 .ops = &clk_rcg2_shared_no_init_park_ops,
2221 };
2222
2223 static struct clk_rcg2 gcc_qupv3_wrap2_s0_clk_src = {
2224 .cmd_rcgr = 0xb4014,
2225 .mnd_width = 16,
2226 .hid_width = 5,
2227 .parent_map = gcc_parent_map_1,
2228 .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
2229 .clkr.hw.init = &gcc_qupv3_wrap2_s0_clk_src_init,
2230 };
2231
2232 static struct clk_init_data gcc_qupv3_wrap2_s1_clk_src_init = {
2233 .name = "gcc_qupv3_wrap2_s1_clk_src",
2234 .parent_data = gcc_parent_data_1,
2235 .num_parents = ARRAY_SIZE(gcc_parent_data_1),
2236 .flags = CLK_SET_RATE_PARENT,
2237 .ops = &clk_rcg2_shared_no_init_park_ops,
2238 };
2239
2240 static struct clk_rcg2 gcc_qupv3_wrap2_s1_clk_src = {
2241 .cmd_rcgr = 0xb4150,
2242 .mnd_width = 16,
2243 .hid_width = 5,
2244 .parent_map = gcc_parent_map_1,
2245 .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
2246 .clkr.hw.init = &gcc_qupv3_wrap2_s1_clk_src_init,
2247 };
2248
2249 static struct clk_init_data gcc_qupv3_wrap2_s4_clk_src_init = {
2250 .name = "gcc_qupv3_wrap2_s4_clk_src",
2251 .parent_data = gcc_parent_data_1,
2252 .num_parents = ARRAY_SIZE(gcc_parent_data_1),
2253 .flags = CLK_SET_RATE_PARENT,
2254 .ops = &clk_rcg2_shared_no_init_park_ops,
2255 };
2256
2257 static struct clk_rcg2 gcc_qupv3_wrap2_s4_clk_src = {
2258 .cmd_rcgr = 0xb42b4,
2259 .mnd_width = 16,
2260 .hid_width = 5,
2261 .parent_map = gcc_parent_map_1,
2262 .freq_tbl = ftbl_gcc_qupv3_wrap0_s4_clk_src,
2263 .clkr.hw.init = &gcc_qupv3_wrap2_s4_clk_src_init,
2264 };
2265
2266 static struct clk_init_data gcc_qupv3_wrap2_s5_clk_src_init = {
2267 .name = "gcc_qupv3_wrap2_s5_clk_src",
2268 .parent_data = gcc_parent_data_1,
2269 .num_parents = ARRAY_SIZE(gcc_parent_data_1),
2270 .flags = CLK_SET_RATE_PARENT,
2271 .ops = &clk_rcg2_shared_no_init_park_ops,
2272 };
2273
2274 static struct clk_rcg2 gcc_qupv3_wrap2_s5_clk_src = {
2275 .cmd_rcgr = 0xb43f0,
2276 .mnd_width = 16,
2277 .hid_width = 5,
2278 .parent_map = gcc_parent_map_1,
2279 .freq_tbl = ftbl_gcc_qupv3_wrap0_s4_clk_src,
2280 .clkr.hw.init = &gcc_qupv3_wrap2_s5_clk_src_init,
2281 };
2282
2283 static struct clk_init_data gcc_qupv3_wrap2_s7_clk_src_init = {
2284 .name = "gcc_qupv3_wrap2_s7_clk_src",
2285 .parent_data = gcc_parent_data_1,
2286 .num_parents = ARRAY_SIZE(gcc_parent_data_1),
2287 .flags = CLK_SET_RATE_PARENT,
2288 .ops = &clk_rcg2_shared_no_init_park_ops,
2289 };
2290
2291 static struct clk_rcg2 gcc_qupv3_wrap2_s7_clk_src = {
2292 .cmd_rcgr = 0xb4540,
2293 .mnd_width = 16,
2294 .hid_width = 5,
2295 .parent_map = gcc_parent_map_1,
2296 .freq_tbl = ftbl_gcc_qupv3_wrap0_s4_clk_src,
2297 .clkr.hw.init = &gcc_qupv3_wrap2_s7_clk_src_init,
2298 };
2299
2300 static const struct freq_tbl ftbl_gcc_sdcc2_apps_clk_src[] = {
2301 F(400000, P_BI_TCXO, 12, 1, 4),
2302 F(25000000, P_GCC_GPLL0_OUT_EVEN, 12, 0, 0),
2303 F(50000000, P_GCC_GPLL0_OUT_EVEN, 6, 0, 0),
2304 F(100000000, P_GCC_GPLL0_OUT_EVEN, 3, 0, 0),
2305 F(202000000, P_GCC_GPLL9_OUT_MAIN, 4, 0, 0),
2306 { }
2307 };
2308
2309 static struct clk_rcg2 gcc_sdcc2_apps_clk_src = {
2310 .cmd_rcgr = 0xb001c,
2311 .mnd_width = 8,
2312 .hid_width = 5,
2313 .parent_map = gcc_parent_map_17,
2314 .freq_tbl = ftbl_gcc_sdcc2_apps_clk_src,
2315 .clkr.hw.init = &(const struct clk_init_data) {
2316 .name = "gcc_sdcc2_apps_clk_src",
2317 .parent_data = gcc_parent_data_17,
2318 .num_parents = ARRAY_SIZE(gcc_parent_data_17),
2319 .flags = CLK_SET_RATE_PARENT,
2320 .ops = &clk_rcg2_floor_ops,
2321 },
2322 };
2323
2324 static const struct freq_tbl ftbl_gcc_sdcc4_apps_clk_src[] = {
2325 F(400000, P_BI_TCXO, 12, 1, 4),
2326 F(25000000, P_GCC_GPLL0_OUT_EVEN, 12, 0, 0),
2327 F(75000000, P_GCC_GPLL0_OUT_MAIN, 8, 0, 0),
2328 { }
2329 };
2330
2331 static struct clk_rcg2 gcc_sdcc4_apps_clk_src = {
2332 .cmd_rcgr = 0xdf01c,
2333 .mnd_width = 8,
2334 .hid_width = 5,
2335 .parent_map = gcc_parent_map_3,
2336 .freq_tbl = ftbl_gcc_sdcc4_apps_clk_src,
2337 .clkr.hw.init = &(const struct clk_init_data) {
2338 .name = "gcc_sdcc4_apps_clk_src",
2339 .parent_data = gcc_parent_data_3,
2340 .num_parents = ARRAY_SIZE(gcc_parent_data_3),
2341 .flags = CLK_SET_RATE_PARENT,
2342 .ops = &clk_rcg2_floor_ops,
2343 },
2344 };
2345
2346 static const struct freq_tbl ftbl_gcc_ufs_phy_axi_clk_src[] = {
2347 F(25000000, P_GCC_GPLL0_OUT_EVEN, 12, 0, 0),
2348 F(100000000, P_GCC_GPLL0_OUT_EVEN, 3, 0, 0),
2349 F(201500000, P_GCC_GPLL4_OUT_MAIN, 4, 0, 0),
2350 F(403000000, P_GCC_GPLL4_OUT_MAIN, 2, 0, 0),
2351 { }
2352 };
2353
2354 static struct clk_rcg2 gcc_ufs_phy_axi_clk_src = {
2355 .cmd_rcgr = 0x77038,
2356 .mnd_width = 8,
2357 .hid_width = 5,
2358 .parent_map = gcc_parent_map_6,
2359 .freq_tbl = ftbl_gcc_ufs_phy_axi_clk_src,
2360 .clkr.hw.init = &(const struct clk_init_data) {
2361 .name = "gcc_ufs_phy_axi_clk_src",
2362 .parent_data = gcc_parent_data_6,
2363 .num_parents = ARRAY_SIZE(gcc_parent_data_6),
2364 .flags = CLK_SET_RATE_PARENT,
2365 .ops = &clk_rcg2_shared_no_init_park_ops,
2366 },
2367 };
2368
2369 static const struct freq_tbl ftbl_gcc_ufs_phy_ice_core_clk_src[] = {
2370 F(100000000, P_GCC_GPLL0_OUT_EVEN, 3, 0, 0),
2371 F(201500000, P_GCC_GPLL4_OUT_MAIN, 4, 0, 0),
2372 F(403000000, P_GCC_GPLL4_OUT_MAIN, 2, 0, 0),
2373 { }
2374 };
2375
2376 static struct clk_rcg2 gcc_ufs_phy_ice_core_clk_src = {
2377 .cmd_rcgr = 0x77090,
2378 .mnd_width = 0,
2379 .hid_width = 5,
2380 .parent_map = gcc_parent_map_6,
2381 .freq_tbl = ftbl_gcc_ufs_phy_ice_core_clk_src,
2382 .clkr.hw.init = &(const struct clk_init_data) {
2383 .name = "gcc_ufs_phy_ice_core_clk_src",
2384 .parent_data = gcc_parent_data_6,
2385 .num_parents = ARRAY_SIZE(gcc_parent_data_6),
2386 .flags = CLK_SET_RATE_PARENT,
2387 .ops = &clk_rcg2_shared_no_init_park_ops,
2388 },
2389 };
2390
2391 static struct clk_rcg2 gcc_ufs_phy_phy_aux_clk_src = {
2392 .cmd_rcgr = 0x770c4,
2393 .mnd_width = 0,
2394 .hid_width = 5,
2395 .parent_map = gcc_parent_map_5,
2396 .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
2397 .clkr.hw.init = &(const struct clk_init_data) {
2398 .name = "gcc_ufs_phy_phy_aux_clk_src",
2399 .parent_data = gcc_parent_data_5,
2400 .num_parents = ARRAY_SIZE(gcc_parent_data_5),
2401 .flags = CLK_SET_RATE_PARENT,
2402 .ops = &clk_rcg2_shared_no_init_park_ops,
2403 },
2404 };
2405
2406 static struct clk_rcg2 gcc_ufs_phy_unipro_core_clk_src = {
2407 .cmd_rcgr = 0x770a8,
2408 .mnd_width = 0,
2409 .hid_width = 5,
2410 .parent_map = gcc_parent_map_6,
2411 .freq_tbl = ftbl_gcc_ufs_phy_ice_core_clk_src,
2412 .clkr.hw.init = &(const struct clk_init_data) {
2413 .name = "gcc_ufs_phy_unipro_core_clk_src",
2414 .parent_data = gcc_parent_data_6,
2415 .num_parents = ARRAY_SIZE(gcc_parent_data_6),
2416 .flags = CLK_SET_RATE_PARENT,
2417 .ops = &clk_rcg2_shared_no_init_park_ops,
2418 },
2419 };
2420
2421 static const struct freq_tbl ftbl_gcc_usb20_master_clk_src[] = {
2422 F(60000000, P_GCC_GPLL14_OUT_MAIN, 10, 0, 0),
2423 F(120000000, P_GCC_GPLL14_OUT_MAIN, 5, 0, 0),
2424 { }
2425 };
2426
2427 static struct clk_rcg2 gcc_usb20_master_clk_src = {
2428 .cmd_rcgr = 0xbc030,
2429 .mnd_width = 8,
2430 .hid_width = 5,
2431 .parent_map = gcc_parent_map_7,
2432 .freq_tbl = ftbl_gcc_usb20_master_clk_src,
2433 .clkr.hw.init = &(const struct clk_init_data) {
2434 .name = "gcc_usb20_master_clk_src",
2435 .parent_data = gcc_parent_data_7,
2436 .num_parents = ARRAY_SIZE(gcc_parent_data_7),
2437 .flags = CLK_SET_RATE_PARENT,
2438 .ops = &clk_rcg2_shared_no_init_park_ops,
2439 },
2440 };
2441
2442 static struct clk_rcg2 gcc_usb20_mock_utmi_clk_src = {
2443 .cmd_rcgr = 0xbc048,
2444 .mnd_width = 0,
2445 .hid_width = 5,
2446 .parent_map = gcc_parent_map_7,
2447 .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
2448 .clkr.hw.init = &(const struct clk_init_data) {
2449 .name = "gcc_usb20_mock_utmi_clk_src",
2450 .parent_data = gcc_parent_data_7,
2451 .num_parents = ARRAY_SIZE(gcc_parent_data_7),
2452 .flags = CLK_SET_RATE_PARENT,
2453 .ops = &clk_rcg2_shared_no_init_park_ops,
2454 },
2455 };
2456
2457 static const struct freq_tbl ftbl_gcc_usb30_mp_master_clk_src[] = {
2458 F(66666667, P_GCC_GPLL0_OUT_EVEN, 4.5, 0, 0),
2459 F(133333333, P_GCC_GPLL0_OUT_MAIN, 4.5, 0, 0),
2460 F(200000000, P_GCC_GPLL0_OUT_MAIN, 3, 0, 0),
2461 F(240000000, P_GCC_GPLL0_OUT_MAIN, 2.5, 0, 0),
2462 { }
2463 };
2464
2465 static struct clk_rcg2 gcc_usb30_mp_master_clk_src = {
2466 .cmd_rcgr = 0x9a03c,
2467 .mnd_width = 8,
2468 .hid_width = 5,
2469 .parent_map = gcc_parent_map_0,
2470 .freq_tbl = ftbl_gcc_usb30_mp_master_clk_src,
2471 .clkr.hw.init = &(const struct clk_init_data) {
2472 .name = "gcc_usb30_mp_master_clk_src",
2473 .parent_data = gcc_parent_data_0,
2474 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
2475 .flags = CLK_SET_RATE_PARENT,
2476 .ops = &clk_rcg2_shared_no_init_park_ops,
2477 },
2478 };
2479
2480 static struct clk_rcg2 gcc_usb30_mp_mock_utmi_clk_src = {
2481 .cmd_rcgr = 0x9a054,
2482 .mnd_width = 0,
2483 .hid_width = 5,
2484 .parent_map = gcc_parent_map_0,
2485 .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
2486 .clkr.hw.init = &(const struct clk_init_data) {
2487 .name = "gcc_usb30_mp_mock_utmi_clk_src",
2488 .parent_data = gcc_parent_data_0,
2489 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
2490 .flags = CLK_SET_RATE_PARENT,
2491 .ops = &clk_rcg2_shared_no_init_park_ops,
2492 },
2493 };
2494
2495 static struct clk_rcg2 gcc_usb30_prim_master_clk_src = {
2496 .cmd_rcgr = 0x3f04c,
2497 .mnd_width = 8,
2498 .hid_width = 5,
2499 .parent_map = gcc_parent_map_0,
2500 .freq_tbl = ftbl_gcc_usb30_mp_master_clk_src,
2501 .clkr.hw.init = &(const struct clk_init_data) {
2502 .name = "gcc_usb30_prim_master_clk_src",
2503 .parent_data = gcc_parent_data_0,
2504 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
2505 .flags = CLK_SET_RATE_PARENT,
2506 .ops = &clk_rcg2_shared_no_init_park_ops,
2507 },
2508 };
2509
2510 static struct clk_rcg2 gcc_usb30_prim_mock_utmi_clk_src = {
2511 .cmd_rcgr = 0x3f064,
2512 .mnd_width = 0,
2513 .hid_width = 5,
2514 .parent_map = gcc_parent_map_0,
2515 .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
2516 .clkr.hw.init = &(const struct clk_init_data) {
2517 .name = "gcc_usb30_prim_mock_utmi_clk_src",
2518 .parent_data = gcc_parent_data_0,
2519 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
2520 .flags = CLK_SET_RATE_PARENT,
2521 .ops = &clk_rcg2_shared_no_init_park_ops,
2522 },
2523 };
2524
2525 static struct clk_rcg2 gcc_usb30_sec_master_clk_src = {
2526 .cmd_rcgr = 0xe203c,
2527 .mnd_width = 8,
2528 .hid_width = 5,
2529 .parent_map = gcc_parent_map_0,
2530 .freq_tbl = ftbl_gcc_usb30_mp_master_clk_src,
2531 .clkr.hw.init = &(const struct clk_init_data) {
2532 .name = "gcc_usb30_sec_master_clk_src",
2533 .parent_data = gcc_parent_data_0,
2534 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
2535 .flags = CLK_SET_RATE_PARENT,
2536 .ops = &clk_rcg2_shared_no_init_park_ops,
2537 },
2538 };
2539
2540 static struct clk_rcg2 gcc_usb30_sec_mock_utmi_clk_src = {
2541 .cmd_rcgr = 0xe2054,
2542 .mnd_width = 0,
2543 .hid_width = 5,
2544 .parent_map = gcc_parent_map_0,
2545 .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
2546 .clkr.hw.init = &(const struct clk_init_data) {
2547 .name = "gcc_usb30_sec_mock_utmi_clk_src",
2548 .parent_data = gcc_parent_data_0,
2549 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
2550 .flags = CLK_SET_RATE_PARENT,
2551 .ops = &clk_rcg2_shared_no_init_park_ops,
2552 },
2553 };
2554
2555 static struct clk_rcg2 gcc_usb30_tert_master_clk_src = {
2556 .cmd_rcgr = 0xe103c,
2557 .mnd_width = 8,
2558 .hid_width = 5,
2559 .parent_map = gcc_parent_map_0,
2560 .freq_tbl = ftbl_gcc_usb30_mp_master_clk_src,
2561 .clkr.hw.init = &(const struct clk_init_data) {
2562 .name = "gcc_usb30_tert_master_clk_src",
2563 .parent_data = gcc_parent_data_0,
2564 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
2565 .flags = CLK_SET_RATE_PARENT,
2566 .ops = &clk_rcg2_shared_no_init_park_ops,
2567 },
2568 };
2569
2570 static struct clk_rcg2 gcc_usb30_tert_mock_utmi_clk_src = {
2571 .cmd_rcgr = 0xe1054,
2572 .mnd_width = 0,
2573 .hid_width = 5,
2574 .parent_map = gcc_parent_map_0,
2575 .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
2576 .clkr.hw.init = &(const struct clk_init_data) {
2577 .name = "gcc_usb30_tert_mock_utmi_clk_src",
2578 .parent_data = gcc_parent_data_0,
2579 .num_parents = ARRAY_SIZE(gcc_parent_data_0),
2580 .flags = CLK_SET_RATE_PARENT,
2581 .ops = &clk_rcg2_shared_no_init_park_ops,
2582 },
2583 };
2584
2585 static struct clk_rcg2 gcc_usb3_mp_phy_aux_clk_src = {
2586 .cmd_rcgr = 0x9a088,
2587 .mnd_width = 0,
2588 .hid_width = 5,
2589 .parent_map = gcc_parent_map_8,
2590 .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
2591 .clkr.hw.init = &(const struct clk_init_data) {
2592 .name = "gcc_usb3_mp_phy_aux_clk_src",
2593 .parent_data = gcc_parent_data_8,
2594 .num_parents = ARRAY_SIZE(gcc_parent_data_8),
2595 .flags = CLK_SET_RATE_PARENT,
2596 .ops = &clk_rcg2_shared_no_init_park_ops,
2597 },
2598 };
2599
2600 static struct clk_rcg2 gcc_usb3_prim_phy_aux_clk_src = {
2601 .cmd_rcgr = 0x3f090,
2602 .mnd_width = 0,
2603 .hid_width = 5,
2604 .parent_map = gcc_parent_map_8,
2605 .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
2606 .clkr.hw.init = &(const struct clk_init_data) {
2607 .name = "gcc_usb3_prim_phy_aux_clk_src",
2608 .parent_data = gcc_parent_data_8,
2609 .num_parents = ARRAY_SIZE(gcc_parent_data_8),
2610 .flags = CLK_SET_RATE_PARENT,
2611 .ops = &clk_rcg2_shared_no_init_park_ops,
2612 },
2613 };
2614
2615 static struct clk_rcg2 gcc_usb3_sec_phy_aux_clk_src = {
2616 .cmd_rcgr = 0xe2080,
2617 .mnd_width = 0,
2618 .hid_width = 5,
2619 .parent_map = gcc_parent_map_8,
2620 .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
2621 .clkr.hw.init = &(const struct clk_init_data) {
2622 .name = "gcc_usb3_sec_phy_aux_clk_src",
2623 .parent_data = gcc_parent_data_8,
2624 .num_parents = ARRAY_SIZE(gcc_parent_data_8),
2625 .flags = CLK_SET_RATE_PARENT,
2626 .ops = &clk_rcg2_shared_no_init_park_ops,
2627 },
2628 };
2629
2630 static struct clk_rcg2 gcc_usb3_tert_phy_aux_clk_src = {
2631 .cmd_rcgr = 0xe1080,
2632 .mnd_width = 0,
2633 .hid_width = 5,
2634 .parent_map = gcc_parent_map_8,
2635 .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
2636 .clkr.hw.init = &(const struct clk_init_data) {
2637 .name = "gcc_usb3_tert_phy_aux_clk_src",
2638 .parent_data = gcc_parent_data_8,
2639 .num_parents = ARRAY_SIZE(gcc_parent_data_8),
2640 .flags = CLK_SET_RATE_PARENT,
2641 .ops = &clk_rcg2_shared_no_init_park_ops,
2642 },
2643 };
2644
2645 static const struct freq_tbl ftbl_gcc_usb4_0_master_clk_src[] = {
2646 F(177666750, P_GCC_GPLL8_OUT_MAIN, 4, 0, 0),
2647 F(355333500, P_GCC_GPLL8_OUT_MAIN, 2, 0, 0),
2648 { }
2649 };
2650
2651 static struct clk_rcg2 gcc_usb4_0_master_clk_src = {
2652 .cmd_rcgr = 0x2b02c,
2653 .mnd_width = 8,
2654 .hid_width = 5,
2655 .parent_map = gcc_parent_map_9,
2656 .freq_tbl = ftbl_gcc_usb4_0_master_clk_src,
2657 .clkr.hw.init = &(const struct clk_init_data) {
2658 .name = "gcc_usb4_0_master_clk_src",
2659 .parent_data = gcc_parent_data_9,
2660 .num_parents = ARRAY_SIZE(gcc_parent_data_9),
2661 .flags = CLK_SET_RATE_PARENT,
2662 .ops = &clk_rcg2_shared_no_init_park_ops,
2663 },
2664 };
2665
2666 static const struct freq_tbl ftbl_gcc_usb4_0_phy_pcie_pipe_clk_src[] = {
2667 F(19200000, P_BI_TCXO, 1, 0, 0),
2668 F(125000000, P_GCC_GPLL7_OUT_MAIN, 4, 0, 0),
2669 F(250000000, P_GCC_GPLL7_OUT_MAIN, 2, 0, 0),
2670 { }
2671 };
2672
2673 static struct clk_rcg2 gcc_usb4_0_phy_pcie_pipe_clk_src = {
2674 .cmd_rcgr = 0x2b104,
2675 .mnd_width = 0,
2676 .hid_width = 5,
2677 .parent_map = gcc_parent_map_32,
2678 .freq_tbl = ftbl_gcc_usb4_0_phy_pcie_pipe_clk_src,
2679 .clkr.hw.init = &(const struct clk_init_data) {
2680 .name = "gcc_usb4_0_phy_pcie_pipe_clk_src",
2681 .parent_data = gcc_parent_data_32,
2682 .num_parents = ARRAY_SIZE(gcc_parent_data_32),
2683 .flags = CLK_SET_RATE_PARENT,
2684 .ops = &clk_rcg2_shared_no_init_park_ops,
2685 },
2686 };
2687
2688 static struct clk_rcg2 gcc_usb4_0_sb_if_clk_src = {
2689 .cmd_rcgr = 0x2b0a0,
2690 .mnd_width = 0,
2691 .hid_width = 5,
2692 .parent_map = gcc_parent_map_5,
2693 .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
2694 .clkr.hw.init = &(const struct clk_init_data) {
2695 .name = "gcc_usb4_0_sb_if_clk_src",
2696 .parent_data = gcc_parent_data_5,
2697 .num_parents = ARRAY_SIZE(gcc_parent_data_5),
2698 .flags = CLK_SET_RATE_PARENT,
2699 .ops = &clk_rcg2_shared_no_init_park_ops,
2700 },
2701 };
2702
2703 static struct clk_rcg2 gcc_usb4_0_tmu_clk_src = {
2704 .cmd_rcgr = 0x2b084,
2705 .mnd_width = 0,
2706 .hid_width = 5,
2707 .parent_map = gcc_parent_map_10,
2708 .freq_tbl = ftbl_gcc_usb4_0_phy_pcie_pipe_clk_src,
2709 .clkr.hw.init = &(const struct clk_init_data) {
2710 .name = "gcc_usb4_0_tmu_clk_src",
2711 .parent_data = gcc_parent_data_10,
2712 .num_parents = ARRAY_SIZE(gcc_parent_data_10),
2713 .flags = CLK_SET_RATE_PARENT,
2714 .ops = &clk_rcg2_shared_no_init_park_ops,
2715 },
2716 };
2717
2718 static struct clk_rcg2 gcc_usb4_1_master_clk_src = {
2719 .cmd_rcgr = 0x2d02c,
2720 .mnd_width = 8,
2721 .hid_width = 5,
2722 .parent_map = gcc_parent_map_9,
2723 .freq_tbl = ftbl_gcc_usb4_0_master_clk_src,
2724 .clkr.hw.init = &(const struct clk_init_data) {
2725 .name = "gcc_usb4_1_master_clk_src",
2726 .parent_data = gcc_parent_data_9,
2727 .num_parents = ARRAY_SIZE(gcc_parent_data_9),
2728 .flags = CLK_SET_RATE_PARENT,
2729 .ops = &clk_rcg2_shared_no_init_park_ops,
2730 },
2731 };
2732
2733 static const struct freq_tbl ftbl_gcc_usb4_1_phy_pcie_pipe_clk_src[] = {
2734 F(19200000, P_BI_TCXO, 1, 0, 0),
2735 F(177666750, P_GCC_GPLL8_OUT_MAIN, 4, 0, 0),
2736 F(355333500, P_GCC_GPLL8_OUT_MAIN, 2, 0, 0),
2737 { }
2738 };
2739
2740 static struct clk_rcg2 gcc_usb4_1_phy_pcie_pipe_clk_src = {
2741 .cmd_rcgr = 0x2d128,
2742 .mnd_width = 0,
2743 .hid_width = 5,
2744 .parent_map = gcc_parent_map_11,
2745 .freq_tbl = ftbl_gcc_usb4_1_phy_pcie_pipe_clk_src,
2746 .clkr.hw.init = &(const struct clk_init_data) {
2747 .name = "gcc_usb4_1_phy_pcie_pipe_clk_src",
2748 .parent_data = gcc_parent_data_11,
2749 .num_parents = ARRAY_SIZE(gcc_parent_data_11),
2750 .flags = CLK_SET_RATE_PARENT,
2751 .ops = &clk_rcg2_shared_no_init_park_ops,
2752 },
2753 };
2754
2755 static const struct freq_tbl ftbl_gcc_usb4_1_phy_pll_pipe_clk_src[] = {
2756 F(100000000, P_GCC_GPLL0_OUT_EVEN, 3, 0, 0),
2757 F(311000000, P_GCC_GPLL5_OUT_MAIN, 3, 0, 0),
2758 { }
2759 };
2760
2761 static struct clk_rcg2 gcc_usb4_1_phy_pll_pipe_clk_src = {
2762 .cmd_rcgr = 0x2d0c8,
2763 .mnd_width = 0,
2764 .hid_width = 5,
2765 .parent_map = gcc_parent_map_41,
2766 .freq_tbl = ftbl_gcc_usb4_1_phy_pll_pipe_clk_src,
2767 .clkr.hw.init = &(const struct clk_init_data) {
2768 .name = "gcc_usb4_1_phy_pll_pipe_clk_src",
2769 .parent_data = gcc_parent_data_41,
2770 .num_parents = ARRAY_SIZE(gcc_parent_data_41),
2771 .flags = CLK_SET_RATE_PARENT,
2772 .ops = &clk_rcg2_shared_no_init_park_ops,
2773 },
2774 };
2775
2776 static struct clk_rcg2 gcc_usb4_1_sb_if_clk_src = {
2777 .cmd_rcgr = 0x2d0ac,
2778 .mnd_width = 0,
2779 .hid_width = 5,
2780 .parent_map = gcc_parent_map_5,
2781 .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
2782 .clkr.hw.init = &(const struct clk_init_data) {
2783 .name = "gcc_usb4_1_sb_if_clk_src",
2784 .parent_data = gcc_parent_data_5,
2785 .num_parents = ARRAY_SIZE(gcc_parent_data_5),
2786 .flags = CLK_SET_RATE_PARENT,
2787 .ops = &clk_rcg2_shared_no_init_park_ops,
2788 },
2789 };
2790
2791 static struct clk_rcg2 gcc_usb4_1_tmu_clk_src = {
2792 .cmd_rcgr = 0x2d090,
2793 .mnd_width = 0,
2794 .hid_width = 5,
2795 .parent_map = gcc_parent_map_10,
2796 .freq_tbl = ftbl_gcc_usb4_0_phy_pcie_pipe_clk_src,
2797 .clkr.hw.init = &(const struct clk_init_data) {
2798 .name = "gcc_usb4_1_tmu_clk_src",
2799 .parent_data = gcc_parent_data_10,
2800 .num_parents = ARRAY_SIZE(gcc_parent_data_10),
2801 .flags = CLK_SET_RATE_PARENT,
2802 .ops = &clk_rcg2_shared_no_init_park_ops,
2803 },
2804 };
2805
2806 static struct clk_rcg2 gcc_usb4_2_master_clk_src = {
2807 .cmd_rcgr = 0xe002c,
2808 .mnd_width = 8,
2809 .hid_width = 5,
2810 .parent_map = gcc_parent_map_9,
2811 .freq_tbl = ftbl_gcc_usb4_0_master_clk_src,
2812 .clkr.hw.init = &(const struct clk_init_data) {
2813 .name = "gcc_usb4_2_master_clk_src",
2814 .parent_data = gcc_parent_data_9,
2815 .num_parents = ARRAY_SIZE(gcc_parent_data_9),
2816 .flags = CLK_SET_RATE_PARENT,
2817 .ops = &clk_rcg2_shared_no_init_park_ops,
2818 },
2819 };
2820
2821 static struct clk_rcg2 gcc_usb4_2_phy_pcie_pipe_clk_src = {
2822 .cmd_rcgr = 0xe0108,
2823 .mnd_width = 0,
2824 .hid_width = 5,
2825 .parent_map = gcc_parent_map_11,
2826 .freq_tbl = ftbl_gcc_usb4_0_phy_pcie_pipe_clk_src,
2827 .clkr.hw.init = &(const struct clk_init_data) {
2828 .name = "gcc_usb4_2_phy_pcie_pipe_clk_src",
2829 .parent_data = gcc_parent_data_11,
2830 .num_parents = ARRAY_SIZE(gcc_parent_data_11),
2831 .flags = CLK_SET_RATE_PARENT,
2832 .ops = &clk_rcg2_shared_no_init_park_ops,
2833 },
2834 };
2835
2836 static struct clk_rcg2 gcc_usb4_2_sb_if_clk_src = {
2837 .cmd_rcgr = 0xe00a4,
2838 .mnd_width = 0,
2839 .hid_width = 5,
2840 .parent_map = gcc_parent_map_5,
2841 .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
2842 .clkr.hw.init = &(const struct clk_init_data) {
2843 .name = "gcc_usb4_2_sb_if_clk_src",
2844 .parent_data = gcc_parent_data_5,
2845 .num_parents = ARRAY_SIZE(gcc_parent_data_5),
2846 .flags = CLK_SET_RATE_PARENT,
2847 .ops = &clk_rcg2_shared_no_init_park_ops,
2848 },
2849 };
2850
2851 static struct clk_rcg2 gcc_usb4_2_tmu_clk_src = {
2852 .cmd_rcgr = 0xe0088,
2853 .mnd_width = 0,
2854 .hid_width = 5,
2855 .parent_map = gcc_parent_map_10,
2856 .freq_tbl = ftbl_gcc_usb4_0_phy_pcie_pipe_clk_src,
2857 .clkr.hw.init = &(const struct clk_init_data) {
2858 .name = "gcc_usb4_2_tmu_clk_src",
2859 .parent_data = gcc_parent_data_10,
2860 .num_parents = ARRAY_SIZE(gcc_parent_data_10),
2861 .flags = CLK_SET_RATE_PARENT,
2862 .ops = &clk_rcg2_shared_no_init_park_ops,
2863 },
2864 };
2865
2866 static struct clk_regmap_div gcc_pcie_3b_pipe_div_clk_src = {
2867 .reg = 0x94070,
2868 .shift = 0,
2869 .width = 4,
2870 .clkr.hw.init = &(const struct clk_init_data) {
2871 .name = "gcc_pcie_3b_pipe_div_clk_src",
2872 .parent_hws = (const struct clk_hw*[]) {
2873 &gcc_pcie_3b_pipe_clk_src.clkr.hw,
2874 },
2875 .num_parents = 1,
2876 .flags = CLK_SET_RATE_PARENT,
2877 .ops = &clk_regmap_div_ro_ops,
2878 },
2879 };
2880
2881 static struct clk_regmap_div gcc_pcie_4_pipe_div_clk_src = {
2882 .reg = 0x88060,
2883 .shift = 0,
2884 .width = 4,
2885 .clkr.hw.init = &(const struct clk_init_data) {
2886 .name = "gcc_pcie_4_pipe_div_clk_src",
2887 .parent_hws = (const struct clk_hw*[]) {
2888 &gcc_pcie_4_pipe_clk_src.clkr.hw,
2889 },
2890 .num_parents = 1,
2891 .flags = CLK_SET_RATE_PARENT,
2892 .ops = &clk_regmap_div_ro_ops,
2893 },
2894 };
2895
2896 static struct clk_regmap_div gcc_pcie_5_pipe_div_clk_src = {
2897 .reg = 0xc306c,
2898 .shift = 0,
2899 .width = 4,
2900 .clkr.hw.init = &(const struct clk_init_data) {
2901 .name = "gcc_pcie_5_pipe_div_clk_src",
2902 .parent_hws = (const struct clk_hw*[]) {
2903 &gcc_pcie_5_pipe_clk_src.clkr.hw,
2904 },
2905 .num_parents = 1,
2906 .flags = CLK_SET_RATE_PARENT,
2907 .ops = &clk_regmap_div_ro_ops,
2908 },
2909 };
2910
2911 static struct clk_regmap_div gcc_pcie_6_pipe_div_clk_src = {
2912 .reg = 0x8a060,
2913 .shift = 0,
2914 .width = 4,
2915 .clkr.hw.init = &(const struct clk_init_data) {
2916 .name = "gcc_pcie_6_pipe_div_clk_src",
2917 .parent_hws = (const struct clk_hw*[]) {
2918 &gcc_pcie_6_pipe_clk_src.clkr.hw,
2919 },
2920 .num_parents = 1,
2921 .flags = CLK_SET_RATE_PARENT,
2922 .ops = &clk_regmap_div_ro_ops,
2923 },
2924 };
2925
2926 static struct clk_regmap_div gcc_qupv3_oob_s0_clk_src = {
2927 .reg = 0xe7024,
2928 .shift = 0,
2929 .width = 4,
2930 .clkr.hw.init = &(const struct clk_init_data) {
2931 .name = "gcc_qupv3_oob_s0_clk_src",
2932 .parent_hws = (const struct clk_hw*[]) {
2933 &gcc_qupv3_oob_qspi_s0_clk_src.clkr.hw,
2934 },
2935 .num_parents = 1,
2936 .flags = CLK_SET_RATE_PARENT,
2937 .ops = &clk_regmap_div_ro_ops,
2938 },
2939 };
2940
2941 static struct clk_regmap_div gcc_qupv3_oob_s1_clk_src = {
2942 .reg = 0xe7038,
2943 .shift = 0,
2944 .width = 4,
2945 .clkr.hw.init = &(const struct clk_init_data) {
2946 .name = "gcc_qupv3_oob_s1_clk_src",
2947 .parent_hws = (const struct clk_hw*[]) {
2948 &gcc_qupv3_oob_qspi_s1_clk_src.clkr.hw,
2949 },
2950 .num_parents = 1,
2951 .flags = CLK_SET_RATE_PARENT,
2952 .ops = &clk_regmap_div_ro_ops,
2953 },
2954 };
2955
2956 static struct clk_regmap_div gcc_qupv3_wrap0_s2_clk_src = {
2957 .reg = 0x2828c,
2958 .shift = 0,
2959 .width = 4,
2960 .clkr.hw.init = &(const struct clk_init_data) {
2961 .name = "gcc_qupv3_wrap0_s2_clk_src",
2962 .parent_hws = (const struct clk_hw*[]) {
2963 &gcc_qupv3_wrap0_qspi_s2_clk_src.clkr.hw,
2964 },
2965 .num_parents = 1,
2966 .flags = CLK_SET_RATE_PARENT,
2967 .ops = &clk_regmap_div_ro_ops,
2968 },
2969 };
2970
2971 static struct clk_regmap_div gcc_qupv3_wrap0_s3_clk_src = {
2972 .reg = 0x282a0,
2973 .shift = 0,
2974 .width = 4,
2975 .clkr.hw.init = &(const struct clk_init_data) {
2976 .name = "gcc_qupv3_wrap0_s3_clk_src",
2977 .parent_hws = (const struct clk_hw*[]) {
2978 &gcc_qupv3_wrap0_qspi_s3_clk_src.clkr.hw,
2979 },
2980 .num_parents = 1,
2981 .flags = CLK_SET_RATE_PARENT,
2982 .ops = &clk_regmap_div_ro_ops,
2983 },
2984 };
2985
2986 static struct clk_regmap_div gcc_qupv3_wrap0_s6_clk_src = {
2987 .reg = 0x2852c,
2988 .shift = 0,
2989 .width = 4,
2990 .clkr.hw.init = &(const struct clk_init_data) {
2991 .name = "gcc_qupv3_wrap0_s6_clk_src",
2992 .parent_hws = (const struct clk_hw*[]) {
2993 &gcc_qupv3_wrap0_qspi_s6_clk_src.clkr.hw,
2994 },
2995 .num_parents = 1,
2996 .flags = CLK_SET_RATE_PARENT,
2997 .ops = &clk_regmap_div_ro_ops,
2998 },
2999 };
3000
3001 static struct clk_regmap_div gcc_qupv3_wrap1_s2_clk_src = {
3002 .reg = 0xb328c,
3003 .shift = 0,
3004 .width = 4,
3005 .clkr.hw.init = &(const struct clk_init_data) {
3006 .name = "gcc_qupv3_wrap1_s2_clk_src",
3007 .parent_hws = (const struct clk_hw*[]) {
3008 &gcc_qupv3_wrap1_qspi_s2_clk_src.clkr.hw,
3009 },
3010 .num_parents = 1,
3011 .flags = CLK_SET_RATE_PARENT,
3012 .ops = &clk_regmap_div_ro_ops,
3013 },
3014 };
3015
3016 static struct clk_regmap_div gcc_qupv3_wrap1_s3_clk_src = {
3017 .reg = 0xb32a0,
3018 .shift = 0,
3019 .width = 4,
3020 .clkr.hw.init = &(const struct clk_init_data) {
3021 .name = "gcc_qupv3_wrap1_s3_clk_src",
3022 .parent_hws = (const struct clk_hw*[]) {
3023 &gcc_qupv3_wrap1_qspi_s3_clk_src.clkr.hw,
3024 },
3025 .num_parents = 1,
3026 .flags = CLK_SET_RATE_PARENT,
3027 .ops = &clk_regmap_div_ro_ops,
3028 },
3029 };
3030
3031 static struct clk_regmap_div gcc_qupv3_wrap1_s6_clk_src = {
3032 .reg = 0xb352c,
3033 .shift = 0,
3034 .width = 4,
3035 .clkr.hw.init = &(const struct clk_init_data) {
3036 .name = "gcc_qupv3_wrap1_s6_clk_src",
3037 .parent_hws = (const struct clk_hw*[]) {
3038 &gcc_qupv3_wrap1_qspi_s6_clk_src.clkr.hw,
3039 },
3040 .num_parents = 1,
3041 .flags = CLK_SET_RATE_PARENT,
3042 .ops = &clk_regmap_div_ro_ops,
3043 },
3044 };
3045
3046 static struct clk_regmap_div gcc_qupv3_wrap2_s2_clk_src = {
3047 .reg = 0xb428c,
3048 .shift = 0,
3049 .width = 4,
3050 .clkr.hw.init = &(const struct clk_init_data) {
3051 .name = "gcc_qupv3_wrap2_s2_clk_src",
3052 .parent_hws = (const struct clk_hw*[]) {
3053 &gcc_qupv3_wrap2_qspi_s2_clk_src.clkr.hw,
3054 },
3055 .num_parents = 1,
3056 .flags = CLK_SET_RATE_PARENT,
3057 .ops = &clk_regmap_div_ro_ops,
3058 },
3059 };
3060
3061 static struct clk_regmap_div gcc_qupv3_wrap2_s3_clk_src = {
3062 .reg = 0xb42a0,
3063 .shift = 0,
3064 .width = 4,
3065 .clkr.hw.init = &(const struct clk_init_data) {
3066 .name = "gcc_qupv3_wrap2_s3_clk_src",
3067 .parent_hws = (const struct clk_hw*[]) {
3068 &gcc_qupv3_wrap2_qspi_s3_clk_src.clkr.hw,
3069 },
3070 .num_parents = 1,
3071 .flags = CLK_SET_RATE_PARENT,
3072 .ops = &clk_regmap_div_ro_ops,
3073 },
3074 };
3075
3076 static struct clk_regmap_div gcc_qupv3_wrap2_s6_clk_src = {
3077 .reg = 0xb452c,
3078 .shift = 0,
3079 .width = 4,
3080 .clkr.hw.init = &(const struct clk_init_data) {
3081 .name = "gcc_qupv3_wrap2_s6_clk_src",
3082 .parent_hws = (const struct clk_hw*[]) {
3083 &gcc_qupv3_wrap2_qspi_s6_clk_src.clkr.hw,
3084 },
3085 .num_parents = 1,
3086 .flags = CLK_SET_RATE_PARENT,
3087 .ops = &clk_regmap_div_ro_ops,
3088 },
3089 };
3090
3091 static struct clk_regmap_div gcc_usb20_mock_utmi_postdiv_clk_src = {
3092 .reg = 0xbc174,
3093 .shift = 0,
3094 .width = 4,
3095 .clkr.hw.init = &(const struct clk_init_data) {
3096 .name = "gcc_usb20_mock_utmi_postdiv_clk_src",
3097 .parent_hws = (const struct clk_hw*[]) {
3098 &gcc_usb20_mock_utmi_clk_src.clkr.hw,
3099 },
3100 .num_parents = 1,
3101 .flags = CLK_SET_RATE_PARENT,
3102 .ops = &clk_regmap_div_ro_ops,
3103 },
3104 };
3105
3106 static struct clk_regmap_div gcc_usb30_mp_mock_utmi_postdiv_clk_src = {
3107 .reg = 0x9a06c,
3108 .shift = 0,
3109 .width = 4,
3110 .clkr.hw.init = &(const struct clk_init_data) {
3111 .name = "gcc_usb30_mp_mock_utmi_postdiv_clk_src",
3112 .parent_hws = (const struct clk_hw*[]) {
3113 &gcc_usb30_mp_mock_utmi_clk_src.clkr.hw,
3114 },
3115 .num_parents = 1,
3116 .flags = CLK_SET_RATE_PARENT,
3117 .ops = &clk_regmap_div_ro_ops,
3118 },
3119 };
3120
3121 static struct clk_regmap_div gcc_usb30_prim_mock_utmi_postdiv_clk_src = {
3122 .reg = 0x3f07c,
3123 .shift = 0,
3124 .width = 4,
3125 .clkr.hw.init = &(const struct clk_init_data) {
3126 .name = "gcc_usb30_prim_mock_utmi_postdiv_clk_src",
3127 .parent_hws = (const struct clk_hw*[]) {
3128 &gcc_usb30_prim_mock_utmi_clk_src.clkr.hw,
3129 },
3130 .num_parents = 1,
3131 .flags = CLK_SET_RATE_PARENT,
3132 .ops = &clk_regmap_div_ro_ops,
3133 },
3134 };
3135
3136 static struct clk_regmap_div gcc_usb30_sec_mock_utmi_postdiv_clk_src = {
3137 .reg = 0xe206c,
3138 .shift = 0,
3139 .width = 4,
3140 .clkr.hw.init = &(const struct clk_init_data) {
3141 .name = "gcc_usb30_sec_mock_utmi_postdiv_clk_src",
3142 .parent_hws = (const struct clk_hw*[]) {
3143 &gcc_usb30_sec_mock_utmi_clk_src.clkr.hw,
3144 },
3145 .num_parents = 1,
3146 .flags = CLK_SET_RATE_PARENT,
3147 .ops = &clk_regmap_div_ro_ops,
3148 },
3149 };
3150
3151 static struct clk_regmap_div gcc_usb30_tert_mock_utmi_postdiv_clk_src = {
3152 .reg = 0xe106c,
3153 .shift = 0,
3154 .width = 4,
3155 .clkr.hw.init = &(const struct clk_init_data) {
3156 .name = "gcc_usb30_tert_mock_utmi_postdiv_clk_src",
3157 .parent_hws = (const struct clk_hw*[]) {
3158 &gcc_usb30_tert_mock_utmi_clk_src.clkr.hw,
3159 },
3160 .num_parents = 1,
3161 .flags = CLK_SET_RATE_PARENT,
3162 .ops = &clk_regmap_div_ro_ops,
3163 },
3164 };
3165
3166 static struct clk_branch gcc_aggre_noc_pcie_3a_west_sf_axi_clk = {
3167 .halt_reg = 0xdc0bc,
3168 .halt_check = BRANCH_HALT_VOTED,
3169 .clkr = {
3170 .enable_reg = 0x62008,
3171 .enable_mask = BIT(27),
3172 .hw.init = &(const struct clk_init_data) {
3173 .name = "gcc_aggre_noc_pcie_3a_west_sf_axi_clk",
3174 .ops = &clk_branch2_ops,
3175 },
3176 },
3177 };
3178
3179 static struct clk_branch gcc_aggre_noc_pcie_3b_west_sf_axi_clk = {
3180 .halt_reg = 0x941ec,
3181 .halt_check = BRANCH_HALT_VOTED,
3182 .clkr = {
3183 .enable_reg = 0x62008,
3184 .enable_mask = BIT(28),
3185 .hw.init = &(const struct clk_init_data) {
3186 .name = "gcc_aggre_noc_pcie_3b_west_sf_axi_clk",
3187 .ops = &clk_branch2_ops,
3188 },
3189 },
3190 };
3191
3192 static struct clk_branch gcc_aggre_noc_pcie_4_west_sf_axi_clk = {
3193 .halt_reg = 0x881d0,
3194 .halt_check = BRANCH_HALT_VOTED,
3195 .clkr = {
3196 .enable_reg = 0x62008,
3197 .enable_mask = BIT(29),
3198 .hw.init = &(const struct clk_init_data) {
3199 .name = "gcc_aggre_noc_pcie_4_west_sf_axi_clk",
3200 .ops = &clk_branch2_ops,
3201 },
3202 },
3203 };
3204
3205 static struct clk_branch gcc_aggre_noc_pcie_5_east_sf_axi_clk = {
3206 .halt_reg = 0xc30d0,
3207 .halt_check = BRANCH_HALT_VOTED,
3208 .clkr = {
3209 .enable_reg = 0x62008,
3210 .enable_mask = BIT(30),
3211 .hw.init = &(const struct clk_init_data) {
3212 .name = "gcc_aggre_noc_pcie_5_east_sf_axi_clk",
3213 .ops = &clk_branch2_ops,
3214 },
3215 },
3216 };
3217
3218 static struct clk_branch gcc_aggre_noc_pcie_6_west_sf_axi_clk = {
3219 .halt_reg = 0x8a1d0,
3220 .halt_check = BRANCH_HALT_VOTED,
3221 .clkr = {
3222 .enable_reg = 0x62008,
3223 .enable_mask = BIT(31),
3224 .hw.init = &(const struct clk_init_data) {
3225 .name = "gcc_aggre_noc_pcie_6_west_sf_axi_clk",
3226 .ops = &clk_branch2_ops,
3227 },
3228 },
3229 };
3230
3231 static struct clk_branch gcc_aggre_ufs_phy_axi_clk = {
3232 .halt_reg = 0x77000,
3233 .halt_check = BRANCH_HALT_VOTED,
3234 .hwcg_reg = 0x77000,
3235 .hwcg_bit = 1,
3236 .clkr = {
3237 .enable_reg = 0x77000,
3238 .enable_mask = BIT(0),
3239 .hw.init = &(const struct clk_init_data) {
3240 .name = "gcc_aggre_ufs_phy_axi_clk",
3241 .parent_hws = (const struct clk_hw*[]) {
3242 &gcc_ufs_phy_axi_clk_src.clkr.hw,
3243 },
3244 .num_parents = 1,
3245 .flags = CLK_SET_RATE_PARENT,
3246 .ops = &clk_branch2_ops,
3247 },
3248 },
3249 };
3250
3251 static struct clk_branch gcc_aggre_usb2_prim_axi_clk = {
3252 .halt_reg = 0xbc17c,
3253 .halt_check = BRANCH_HALT_VOTED,
3254 .hwcg_reg = 0xbc17c,
3255 .hwcg_bit = 1,
3256 .clkr = {
3257 .enable_reg = 0xbc17c,
3258 .enable_mask = BIT(0),
3259 .hw.init = &(const struct clk_init_data) {
3260 .name = "gcc_aggre_usb2_prim_axi_clk",
3261 .parent_hws = (const struct clk_hw*[]) {
3262 &gcc_usb20_master_clk_src.clkr.hw,
3263 },
3264 .num_parents = 1,
3265 .flags = CLK_SET_RATE_PARENT,
3266 .ops = &clk_branch2_ops,
3267 },
3268 },
3269 };
3270
3271 static struct clk_branch gcc_aggre_usb3_mp_axi_clk = {
3272 .halt_reg = 0x9a004,
3273 .halt_check = BRANCH_HALT_VOTED,
3274 .hwcg_reg = 0x9a004,
3275 .hwcg_bit = 1,
3276 .clkr = {
3277 .enable_reg = 0x9a004,
3278 .enable_mask = BIT(0),
3279 .hw.init = &(const struct clk_init_data) {
3280 .name = "gcc_aggre_usb3_mp_axi_clk",
3281 .parent_hws = (const struct clk_hw*[]) {
3282 &gcc_usb30_mp_master_clk_src.clkr.hw,
3283 },
3284 .num_parents = 1,
3285 .flags = CLK_SET_RATE_PARENT,
3286 .ops = &clk_branch2_ops,
3287 },
3288 },
3289 };
3290
3291 static struct clk_branch gcc_aggre_usb3_prim_axi_clk = {
3292 .halt_reg = 0x3f00c,
3293 .halt_check = BRANCH_HALT_VOTED,
3294 .hwcg_reg = 0x3f00c,
3295 .hwcg_bit = 1,
3296 .clkr = {
3297 .enable_reg = 0x3f00c,
3298 .enable_mask = BIT(0),
3299 .hw.init = &(const struct clk_init_data) {
3300 .name = "gcc_aggre_usb3_prim_axi_clk",
3301 .parent_hws = (const struct clk_hw*[]) {
3302 &gcc_usb30_prim_master_clk_src.clkr.hw,
3303 },
3304 .num_parents = 1,
3305 .flags = CLK_SET_RATE_PARENT,
3306 .ops = &clk_branch2_ops,
3307 },
3308 },
3309 };
3310
3311 static struct clk_branch gcc_aggre_usb3_sec_axi_clk = {
3312 .halt_reg = 0xe2004,
3313 .halt_check = BRANCH_HALT_VOTED,
3314 .hwcg_reg = 0xe2004,
3315 .hwcg_bit = 1,
3316 .clkr = {
3317 .enable_reg = 0xe2004,
3318 .enable_mask = BIT(0),
3319 .hw.init = &(const struct clk_init_data) {
3320 .name = "gcc_aggre_usb3_sec_axi_clk",
3321 .parent_hws = (const struct clk_hw*[]) {
3322 &gcc_usb30_sec_master_clk_src.clkr.hw,
3323 },
3324 .num_parents = 1,
3325 .flags = CLK_SET_RATE_PARENT,
3326 .ops = &clk_branch2_ops,
3327 },
3328 },
3329 };
3330
3331 static struct clk_branch gcc_aggre_usb3_tert_axi_clk = {
3332 .halt_reg = 0xe1004,
3333 .halt_check = BRANCH_HALT_VOTED,
3334 .hwcg_reg = 0xe1004,
3335 .hwcg_bit = 1,
3336 .clkr = {
3337 .enable_reg = 0xe1004,
3338 .enable_mask = BIT(0),
3339 .hw.init = &(const struct clk_init_data) {
3340 .name = "gcc_aggre_usb3_tert_axi_clk",
3341 .parent_hws = (const struct clk_hw*[]) {
3342 &gcc_usb30_tert_master_clk_src.clkr.hw,
3343 },
3344 .num_parents = 1,
3345 .flags = CLK_SET_RATE_PARENT,
3346 .ops = &clk_branch2_ops,
3347 },
3348 },
3349 };
3350
3351 static struct clk_branch gcc_aggre_usb4_0_axi_clk = {
3352 .halt_reg = 0x2b000,
3353 .halt_check = BRANCH_HALT_VOTED,
3354 .hwcg_reg = 0x2b000,
3355 .hwcg_bit = 1,
3356 .clkr = {
3357 .enable_reg = 0x2b000,
3358 .enable_mask = BIT(0),
3359 .hw.init = &(const struct clk_init_data) {
3360 .name = "gcc_aggre_usb4_0_axi_clk",
3361 .parent_hws = (const struct clk_hw*[]) {
3362 &gcc_usb4_0_master_clk_src.clkr.hw,
3363 },
3364 .num_parents = 1,
3365 .flags = CLK_SET_RATE_PARENT,
3366 .ops = &clk_branch2_ops,
3367 },
3368 },
3369 };
3370
3371 static struct clk_branch gcc_aggre_usb4_1_axi_clk = {
3372 .halt_reg = 0x2d000,
3373 .halt_check = BRANCH_HALT_VOTED,
3374 .hwcg_reg = 0x2d000,
3375 .hwcg_bit = 1,
3376 .clkr = {
3377 .enable_reg = 0x2d000,
3378 .enable_mask = BIT(0),
3379 .hw.init = &(const struct clk_init_data) {
3380 .name = "gcc_aggre_usb4_1_axi_clk",
3381 .parent_hws = (const struct clk_hw*[]) {
3382 &gcc_usb4_1_master_clk_src.clkr.hw,
3383 },
3384 .num_parents = 1,
3385 .flags = CLK_SET_RATE_PARENT,
3386 .ops = &clk_branch2_ops,
3387 },
3388 },
3389 };
3390
3391 static struct clk_branch gcc_aggre_usb4_2_axi_clk = {
3392 .halt_reg = 0xe0000,
3393 .halt_check = BRANCH_HALT_VOTED,
3394 .hwcg_reg = 0xe0000,
3395 .hwcg_bit = 1,
3396 .clkr = {
3397 .enable_reg = 0xe0000,
3398 .enable_mask = BIT(0),
3399 .hw.init = &(const struct clk_init_data) {
3400 .name = "gcc_aggre_usb4_2_axi_clk",
3401 .parent_hws = (const struct clk_hw*[]) {
3402 &gcc_usb4_2_master_clk_src.clkr.hw,
3403 },
3404 .num_parents = 1,
3405 .flags = CLK_SET_RATE_PARENT,
3406 .ops = &clk_branch2_ops,
3407 },
3408 },
3409 };
3410
3411 static struct clk_branch gcc_av1e_ahb_clk = {
3412 .halt_reg = 0x9b02c,
3413 .halt_check = BRANCH_HALT_VOTED,
3414 .hwcg_reg = 0x9b02c,
3415 .hwcg_bit = 1,
3416 .clkr = {
3417 .enable_reg = 0x9b02c,
3418 .enable_mask = BIT(0),
3419 .hw.init = &(const struct clk_init_data) {
3420 .name = "gcc_av1e_ahb_clk",
3421 .ops = &clk_branch2_ops,
3422 },
3423 },
3424 };
3425
3426 static struct clk_branch gcc_av1e_axi_clk = {
3427 .halt_reg = 0x9b030,
3428 .halt_check = BRANCH_HALT_SKIP,
3429 .hwcg_reg = 0x9b030,
3430 .hwcg_bit = 1,
3431 .clkr = {
3432 .enable_reg = 0x9b030,
3433 .enable_mask = BIT(0),
3434 .hw.init = &(const struct clk_init_data) {
3435 .name = "gcc_av1e_axi_clk",
3436 .ops = &clk_branch2_ops,
3437 },
3438 },
3439 };
3440
3441 static struct clk_branch gcc_av1e_xo_clk = {
3442 .halt_reg = 0x9b044,
3443 .halt_check = BRANCH_HALT,
3444 .clkr = {
3445 .enable_reg = 0x9b044,
3446 .enable_mask = BIT(0),
3447 .hw.init = &(const struct clk_init_data) {
3448 .name = "gcc_av1e_xo_clk",
3449 .ops = &clk_branch2_ops,
3450 },
3451 },
3452 };
3453
3454 static struct clk_branch gcc_boot_rom_ahb_clk = {
3455 .halt_reg = 0x34038,
3456 .halt_check = BRANCH_HALT_VOTED,
3457 .hwcg_reg = 0x34038,
3458 .hwcg_bit = 1,
3459 .clkr = {
3460 .enable_reg = 0x62020,
3461 .enable_mask = BIT(27),
3462 .hw.init = &(const struct clk_init_data) {
3463 .name = "gcc_boot_rom_ahb_clk",
3464 .ops = &clk_branch2_ops,
3465 },
3466 },
3467 };
3468
3469 static struct clk_branch gcc_camera_hf_axi_clk = {
3470 .halt_reg = 0x26014,
3471 .halt_check = BRANCH_HALT_SKIP,
3472 .hwcg_reg = 0x26014,
3473 .hwcg_bit = 1,
3474 .clkr = {
3475 .enable_reg = 0x26014,
3476 .enable_mask = BIT(0),
3477 .hw.init = &(const struct clk_init_data) {
3478 .name = "gcc_camera_hf_axi_clk",
3479 .ops = &clk_branch2_ops,
3480 },
3481 },
3482 };
3483
3484 static struct clk_branch gcc_camera_sf_axi_clk = {
3485 .halt_reg = 0x26028,
3486 .halt_check = BRANCH_HALT_SKIP,
3487 .hwcg_reg = 0x26028,
3488 .hwcg_bit = 1,
3489 .clkr = {
3490 .enable_reg = 0x26028,
3491 .enable_mask = BIT(0),
3492 .hw.init = &(const struct clk_init_data) {
3493 .name = "gcc_camera_sf_axi_clk",
3494 .ops = &clk_branch2_ops,
3495 },
3496 },
3497 };
3498
3499 static struct clk_branch gcc_cfg_noc_pcie_anoc_ahb_clk = {
3500 .halt_reg = 0x82004,
3501 .halt_check = BRANCH_HALT_VOTED,
3502 .hwcg_reg = 0x82004,
3503 .hwcg_bit = 1,
3504 .clkr = {
3505 .enable_reg = 0x62008,
3506 .enable_mask = BIT(19),
3507 .hw.init = &(const struct clk_init_data) {
3508 .name = "gcc_cfg_noc_pcie_anoc_ahb_clk",
3509 .ops = &clk_branch2_ops,
3510 },
3511 },
3512 };
3513
3514 static struct clk_branch gcc_cfg_noc_pcie_anoc_south_ahb_clk = {
3515 .halt_reg = 0xba2ec,
3516 .halt_check = BRANCH_HALT_VOTED,
3517 .hwcg_reg = 0xba2ec,
3518 .hwcg_bit = 1,
3519 .clkr = {
3520 .enable_reg = 0x62008,
3521 .enable_mask = BIT(16),
3522 .hw.init = &(const struct clk_init_data) {
3523 .name = "gcc_cfg_noc_pcie_anoc_south_ahb_clk",
3524 .ops = &clk_branch2_ops,
3525 },
3526 },
3527 };
3528
3529 static struct clk_branch gcc_cfg_noc_usb2_prim_axi_clk = {
3530 .halt_reg = 0xbc178,
3531 .halt_check = BRANCH_HALT_VOTED,
3532 .hwcg_reg = 0xbc178,
3533 .hwcg_bit = 1,
3534 .clkr = {
3535 .enable_reg = 0xbc178,
3536 .enable_mask = BIT(0),
3537 .hw.init = &(const struct clk_init_data) {
3538 .name = "gcc_cfg_noc_usb2_prim_axi_clk",
3539 .parent_hws = (const struct clk_hw*[]) {
3540 &gcc_usb20_master_clk_src.clkr.hw,
3541 },
3542 .num_parents = 1,
3543 .flags = CLK_SET_RATE_PARENT,
3544 .ops = &clk_branch2_ops,
3545 },
3546 },
3547 };
3548
3549 static struct clk_branch gcc_cfg_noc_usb3_mp_axi_clk = {
3550 .halt_reg = 0x9a000,
3551 .halt_check = BRANCH_HALT_VOTED,
3552 .hwcg_reg = 0x9a000,
3553 .hwcg_bit = 1,
3554 .clkr = {
3555 .enable_reg = 0x9a000,
3556 .enable_mask = BIT(0),
3557 .hw.init = &(const struct clk_init_data) {
3558 .name = "gcc_cfg_noc_usb3_mp_axi_clk",
3559 .parent_hws = (const struct clk_hw*[]) {
3560 &gcc_usb30_mp_master_clk_src.clkr.hw,
3561 },
3562 .num_parents = 1,
3563 .flags = CLK_SET_RATE_PARENT,
3564 .ops = &clk_branch2_ops,
3565 },
3566 },
3567 };
3568
3569 static struct clk_branch gcc_cfg_noc_usb3_prim_axi_clk = {
3570 .halt_reg = 0x3f000,
3571 .halt_check = BRANCH_HALT_VOTED,
3572 .hwcg_reg = 0x3f000,
3573 .hwcg_bit = 1,
3574 .clkr = {
3575 .enable_reg = 0x3f000,
3576 .enable_mask = BIT(0),
3577 .hw.init = &(const struct clk_init_data) {
3578 .name = "gcc_cfg_noc_usb3_prim_axi_clk",
3579 .parent_hws = (const struct clk_hw*[]) {
3580 &gcc_usb30_prim_master_clk_src.clkr.hw,
3581 },
3582 .num_parents = 1,
3583 .flags = CLK_SET_RATE_PARENT,
3584 .ops = &clk_branch2_ops,
3585 },
3586 },
3587 };
3588
3589 static struct clk_branch gcc_cfg_noc_usb3_sec_axi_clk = {
3590 .halt_reg = 0xe2000,
3591 .halt_check = BRANCH_HALT_VOTED,
3592 .hwcg_reg = 0xe2000,
3593 .hwcg_bit = 1,
3594 .clkr = {
3595 .enable_reg = 0xe2000,
3596 .enable_mask = BIT(0),
3597 .hw.init = &(const struct clk_init_data) {
3598 .name = "gcc_cfg_noc_usb3_sec_axi_clk",
3599 .parent_hws = (const struct clk_hw*[]) {
3600 &gcc_usb30_sec_master_clk_src.clkr.hw,
3601 },
3602 .num_parents = 1,
3603 .flags = CLK_SET_RATE_PARENT,
3604 .ops = &clk_branch2_ops,
3605 },
3606 },
3607 };
3608
3609 static struct clk_branch gcc_cfg_noc_usb3_tert_axi_clk = {
3610 .halt_reg = 0xe1000,
3611 .halt_check = BRANCH_HALT_VOTED,
3612 .hwcg_reg = 0xe1000,
3613 .hwcg_bit = 1,
3614 .clkr = {
3615 .enable_reg = 0xe1000,
3616 .enable_mask = BIT(0),
3617 .hw.init = &(const struct clk_init_data) {
3618 .name = "gcc_cfg_noc_usb3_tert_axi_clk",
3619 .parent_hws = (const struct clk_hw*[]) {
3620 &gcc_usb30_tert_master_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_cfg_noc_usb_anoc_ahb_clk = {
3630 .halt_reg = 0x3f004,
3631 .halt_check = BRANCH_HALT_VOTED,
3632 .hwcg_reg = 0x3f004,
3633 .hwcg_bit = 1,
3634 .clkr = {
3635 .enable_reg = 0x62008,
3636 .enable_mask = BIT(17),
3637 .hw.init = &(const struct clk_init_data) {
3638 .name = "gcc_cfg_noc_usb_anoc_ahb_clk",
3639 .ops = &clk_branch2_ops,
3640 },
3641 },
3642 };
3643
3644 static struct clk_branch gcc_cfg_noc_usb_anoc_south_ahb_clk = {
3645 .halt_reg = 0x3f008,
3646 .halt_check = BRANCH_HALT_VOTED,
3647 .hwcg_reg = 0x3f008,
3648 .hwcg_bit = 1,
3649 .clkr = {
3650 .enable_reg = 0x62008,
3651 .enable_mask = BIT(18),
3652 .hw.init = &(const struct clk_init_data) {
3653 .name = "gcc_cfg_noc_usb_anoc_south_ahb_clk",
3654 .ops = &clk_branch2_ops,
3655 },
3656 },
3657 };
3658
3659 static struct clk_branch gcc_disp_hf_axi_clk = {
3660 .halt_reg = 0x27008,
3661 .halt_check = BRANCH_HALT_SKIP,
3662 .clkr = {
3663 .enable_reg = 0x27008,
3664 .enable_mask = BIT(0),
3665 .hw.init = &(const struct clk_init_data) {
3666 .name = "gcc_disp_hf_axi_clk",
3667 .ops = &clk_branch2_ops,
3668 .flags = CLK_IS_CRITICAL,
3669 },
3670 },
3671 };
3672
3673 static struct clk_branch gcc_eva_ahb_clk = {
3674 .halt_reg = 0x9b004,
3675 .halt_check = BRANCH_HALT_VOTED,
3676 .hwcg_reg = 0x9b004,
3677 .hwcg_bit = 1,
3678 .clkr = {
3679 .enable_reg = 0x9b004,
3680 .enable_mask = BIT(0),
3681 .hw.init = &(const struct clk_init_data) {
3682 .name = "gcc_eva_ahb_clk",
3683 .ops = &clk_branch2_ops,
3684 },
3685 },
3686 };
3687
3688 static struct clk_branch gcc_eva_axi0_clk = {
3689 .halt_reg = 0x9b008,
3690 .halt_check = BRANCH_HALT_SKIP,
3691 .hwcg_reg = 0x9b008,
3692 .hwcg_bit = 1,
3693 .clkr = {
3694 .enable_reg = 0x9b008,
3695 .enable_mask = BIT(0),
3696 .hw.init = &(const struct clk_init_data) {
3697 .name = "gcc_eva_axi0_clk",
3698 .ops = &clk_branch2_ops,
3699 },
3700 },
3701 };
3702
3703 static struct clk_branch gcc_eva_axi0c_clk = {
3704 .halt_reg = 0x9b01c,
3705 .halt_check = BRANCH_HALT_VOTED,
3706 .hwcg_reg = 0x9b01c,
3707 .hwcg_bit = 1,
3708 .clkr = {
3709 .enable_reg = 0x9b01c,
3710 .enable_mask = BIT(0),
3711 .hw.init = &(const struct clk_init_data) {
3712 .name = "gcc_eva_axi0c_clk",
3713 .ops = &clk_branch2_ops,
3714 },
3715 },
3716 };
3717
3718 static struct clk_branch gcc_eva_xo_clk = {
3719 .halt_reg = 0x9b024,
3720 .halt_check = BRANCH_HALT,
3721 .clkr = {
3722 .enable_reg = 0x9b024,
3723 .enable_mask = BIT(0),
3724 .hw.init = &(const struct clk_init_data) {
3725 .name = "gcc_eva_xo_clk",
3726 .ops = &clk_branch2_ops,
3727 },
3728 },
3729 };
3730
3731 static struct clk_branch gcc_gp1_clk = {
3732 .halt_reg = 0x64000,
3733 .halt_check = BRANCH_HALT,
3734 .clkr = {
3735 .enable_reg = 0x64000,
3736 .enable_mask = BIT(0),
3737 .hw.init = &(const struct clk_init_data) {
3738 .name = "gcc_gp1_clk",
3739 .parent_hws = (const struct clk_hw*[]) {
3740 &gcc_gp1_clk_src.clkr.hw,
3741 },
3742 .num_parents = 1,
3743 .flags = CLK_SET_RATE_PARENT,
3744 .ops = &clk_branch2_ops,
3745 },
3746 },
3747 };
3748
3749 static struct clk_branch gcc_gp2_clk = {
3750 .halt_reg = 0x92000,
3751 .halt_check = BRANCH_HALT,
3752 .clkr = {
3753 .enable_reg = 0x92000,
3754 .enable_mask = BIT(0),
3755 .hw.init = &(const struct clk_init_data) {
3756 .name = "gcc_gp2_clk",
3757 .parent_hws = (const struct clk_hw*[]) {
3758 &gcc_gp2_clk_src.clkr.hw,
3759 },
3760 .num_parents = 1,
3761 .flags = CLK_SET_RATE_PARENT,
3762 .ops = &clk_branch2_ops,
3763 },
3764 },
3765 };
3766
3767 static struct clk_branch gcc_gp3_clk = {
3768 .halt_reg = 0x93000,
3769 .halt_check = BRANCH_HALT,
3770 .clkr = {
3771 .enable_reg = 0x93000,
3772 .enable_mask = BIT(0),
3773 .hw.init = &(const struct clk_init_data) {
3774 .name = "gcc_gp3_clk",
3775 .parent_hws = (const struct clk_hw*[]) {
3776 &gcc_gp3_clk_src.clkr.hw,
3777 },
3778 .num_parents = 1,
3779 .flags = CLK_SET_RATE_PARENT,
3780 .ops = &clk_branch2_ops,
3781 },
3782 },
3783 };
3784
3785 static struct clk_branch gcc_gpu_gemnoc_gfx_clk = {
3786 .halt_reg = 0x71010,
3787 .halt_check = BRANCH_HALT_VOTED,
3788 .hwcg_reg = 0x71010,
3789 .hwcg_bit = 1,
3790 .clkr = {
3791 .enable_reg = 0x71010,
3792 .enable_mask = BIT(0),
3793 .hw.init = &(const struct clk_init_data) {
3794 .name = "gcc_gpu_gemnoc_gfx_clk",
3795 .ops = &clk_branch2_ops,
3796 },
3797 },
3798 };
3799
3800 static struct clk_branch gcc_gpu_gpll0_clk_src = {
3801 .halt_reg = 0x71024,
3802 .halt_check = BRANCH_HALT_VOTED,
3803 .hwcg_reg = 0x71024,
3804 .hwcg_bit = 1,
3805 .clkr = {
3806 .enable_reg = 0x62038,
3807 .enable_mask = BIT(0),
3808 .hw.init = &(const struct clk_init_data) {
3809 .name = "gcc_gpu_gpll0_clk_src",
3810 .parent_hws = (const struct clk_hw*[]) {
3811 &gcc_gpll0.clkr.hw,
3812 },
3813 .num_parents = 1,
3814 .flags = CLK_SET_RATE_PARENT,
3815 .ops = &clk_branch2_ops,
3816 },
3817 },
3818 };
3819
3820 static struct clk_branch gcc_gpu_gpll0_div_clk_src = {
3821 .halt_reg = 0x7102c,
3822 .halt_check = BRANCH_HALT_VOTED,
3823 .hwcg_reg = 0x7102c,
3824 .hwcg_bit = 1,
3825 .clkr = {
3826 .enable_reg = 0x62038,
3827 .enable_mask = BIT(1),
3828 .hw.init = &(const struct clk_init_data) {
3829 .name = "gcc_gpu_gpll0_div_clk_src",
3830 .parent_hws = (const struct clk_hw*[]) {
3831 &gcc_gpll0_out_even.clkr.hw,
3832 },
3833 .num_parents = 1,
3834 .flags = CLK_SET_RATE_PARENT,
3835 .ops = &clk_branch2_ops,
3836 },
3837 },
3838 };
3839
3840 static struct clk_branch gcc_pcie_0_aux_clk = {
3841 .halt_reg = 0xc8018,
3842 .halt_check = BRANCH_HALT_VOTED,
3843 .clkr = {
3844 .enable_reg = 0x62010,
3845 .enable_mask = BIT(25),
3846 .hw.init = &(const struct clk_init_data) {
3847 .name = "gcc_pcie_0_aux_clk",
3848 .parent_hws = (const struct clk_hw*[]) {
3849 &gcc_pcie_0_aux_clk_src.clkr.hw,
3850 },
3851 .num_parents = 1,
3852 .flags = CLK_SET_RATE_PARENT,
3853 .ops = &clk_branch2_ops,
3854 },
3855 },
3856 };
3857
3858 static struct clk_branch gcc_pcie_0_cfg_ahb_clk = {
3859 .halt_reg = 0xba4a8,
3860 .halt_check = BRANCH_HALT_VOTED,
3861 .hwcg_reg = 0xba4a8,
3862 .hwcg_bit = 1,
3863 .clkr = {
3864 .enable_reg = 0x62010,
3865 .enable_mask = BIT(24),
3866 .hw.init = &(const struct clk_init_data) {
3867 .name = "gcc_pcie_0_cfg_ahb_clk",
3868 .ops = &clk_branch2_ops,
3869 },
3870 },
3871 };
3872
3873 static struct clk_branch gcc_pcie_0_mstr_axi_clk = {
3874 .halt_reg = 0xba498,
3875 .halt_check = BRANCH_HALT_SKIP,
3876 .hwcg_reg = 0xba498,
3877 .hwcg_bit = 1,
3878 .clkr = {
3879 .enable_reg = 0x62010,
3880 .enable_mask = BIT(23),
3881 .hw.init = &(const struct clk_init_data) {
3882 .name = "gcc_pcie_0_mstr_axi_clk",
3883 .ops = &clk_branch2_ops,
3884 },
3885 },
3886 };
3887
3888 static struct clk_branch gcc_pcie_0_phy_rchng_clk = {
3889 .halt_reg = 0xc8038,
3890 .halt_check = BRANCH_HALT_VOTED,
3891 .clkr = {
3892 .enable_reg = 0x62010,
3893 .enable_mask = BIT(27),
3894 .hw.init = &(const struct clk_init_data) {
3895 .name = "gcc_pcie_0_phy_rchng_clk",
3896 .parent_hws = (const struct clk_hw*[]) {
3897 &gcc_pcie_0_phy_rchng_clk_src.clkr.hw,
3898 },
3899 .num_parents = 1,
3900 .flags = CLK_SET_RATE_PARENT,
3901 .ops = &clk_branch2_ops,
3902 },
3903 },
3904 };
3905
3906 static struct clk_branch gcc_pcie_0_pipe_clk = {
3907 .halt_reg = 0xc8028,
3908 .halt_check = BRANCH_HALT_SKIP,
3909 .clkr = {
3910 .enable_reg = 0x62010,
3911 .enable_mask = BIT(26),
3912 .hw.init = &(const struct clk_init_data) {
3913 .name = "gcc_pcie_0_pipe_clk",
3914 .parent_hws = (const struct clk_hw*[]) {
3915 &gcc_usb4_0_phy_pcie_pipe_mux_clk_src.clkr.hw,
3916 },
3917 .num_parents = 1,
3918 .flags = CLK_SET_RATE_PARENT,
3919 .ops = &clk_branch2_ops,
3920 },
3921 },
3922 };
3923
3924 static struct clk_branch gcc_pcie_0_slv_axi_clk = {
3925 .halt_reg = 0xba488,
3926 .halt_check = BRANCH_HALT_VOTED,
3927 .hwcg_reg = 0xba488,
3928 .hwcg_bit = 1,
3929 .clkr = {
3930 .enable_reg = 0x62010,
3931 .enable_mask = BIT(22),
3932 .hw.init = &(const struct clk_init_data) {
3933 .name = "gcc_pcie_0_slv_axi_clk",
3934 .ops = &clk_branch2_ops,
3935 },
3936 },
3937 };
3938
3939 static struct clk_branch gcc_pcie_0_slv_q2a_axi_clk = {
3940 .halt_reg = 0xba484,
3941 .halt_check = BRANCH_HALT_VOTED,
3942 .clkr = {
3943 .enable_reg = 0x62010,
3944 .enable_mask = BIT(21),
3945 .hw.init = &(const struct clk_init_data) {
3946 .name = "gcc_pcie_0_slv_q2a_axi_clk",
3947 .ops = &clk_branch2_ops,
3948 },
3949 },
3950 };
3951
3952 static struct clk_branch gcc_pcie_1_aux_clk = {
3953 .halt_reg = 0x2e018,
3954 .halt_check = BRANCH_HALT_VOTED,
3955 .clkr = {
3956 .enable_reg = 0x62010,
3957 .enable_mask = BIT(18),
3958 .hw.init = &(const struct clk_init_data) {
3959 .name = "gcc_pcie_1_aux_clk",
3960 .parent_hws = (const struct clk_hw*[]) {
3961 &gcc_pcie_1_aux_clk_src.clkr.hw,
3962 },
3963 .num_parents = 1,
3964 .flags = CLK_SET_RATE_PARENT,
3965 .ops = &clk_branch2_ops,
3966 },
3967 },
3968 };
3969
3970 static struct clk_branch gcc_pcie_1_cfg_ahb_clk = {
3971 .halt_reg = 0xba480,
3972 .halt_check = BRANCH_HALT_VOTED,
3973 .hwcg_reg = 0xba480,
3974 .hwcg_bit = 1,
3975 .clkr = {
3976 .enable_reg = 0x62010,
3977 .enable_mask = BIT(17),
3978 .hw.init = &(const struct clk_init_data) {
3979 .name = "gcc_pcie_1_cfg_ahb_clk",
3980 .ops = &clk_branch2_ops,
3981 },
3982 },
3983 };
3984
3985 static struct clk_branch gcc_pcie_1_mstr_axi_clk = {
3986 .halt_reg = 0xba470,
3987 .halt_check = BRANCH_HALT_SKIP,
3988 .hwcg_reg = 0xba470,
3989 .hwcg_bit = 1,
3990 .clkr = {
3991 .enable_reg = 0x62010,
3992 .enable_mask = BIT(16),
3993 .hw.init = &(const struct clk_init_data) {
3994 .name = "gcc_pcie_1_mstr_axi_clk",
3995 .ops = &clk_branch2_ops,
3996 },
3997 },
3998 };
3999
4000 static struct clk_branch gcc_pcie_1_phy_rchng_clk = {
4001 .halt_reg = 0x2e038,
4002 .halt_check = BRANCH_HALT_VOTED,
4003 .clkr = {
4004 .enable_reg = 0x62010,
4005 .enable_mask = BIT(20),
4006 .hw.init = &(const struct clk_init_data) {
4007 .name = "gcc_pcie_1_phy_rchng_clk",
4008 .parent_hws = (const struct clk_hw*[]) {
4009 &gcc_pcie_1_phy_rchng_clk_src.clkr.hw,
4010 },
4011 .num_parents = 1,
4012 .flags = CLK_SET_RATE_PARENT,
4013 .ops = &clk_branch2_ops,
4014 },
4015 },
4016 };
4017
4018 static struct clk_branch gcc_pcie_1_pipe_clk = {
4019 .halt_reg = 0x2e028,
4020 .halt_check = BRANCH_HALT_SKIP,
4021 .clkr = {
4022 .enable_reg = 0x62010,
4023 .enable_mask = BIT(19),
4024 .hw.init = &(const struct clk_init_data) {
4025 .name = "gcc_pcie_1_pipe_clk",
4026 .parent_hws = (const struct clk_hw*[]) {
4027 &gcc_usb4_1_phy_pcie_pipe_mux_clk_src.clkr.hw,
4028 },
4029 .num_parents = 1,
4030 .flags = CLK_SET_RATE_PARENT,
4031 .ops = &clk_branch2_ops,
4032 },
4033 },
4034 };
4035
4036 static struct clk_branch gcc_pcie_1_slv_axi_clk = {
4037 .halt_reg = 0xba460,
4038 .halt_check = BRANCH_HALT_VOTED,
4039 .hwcg_reg = 0xba460,
4040 .hwcg_bit = 1,
4041 .clkr = {
4042 .enable_reg = 0x62010,
4043 .enable_mask = BIT(15),
4044 .hw.init = &(const struct clk_init_data) {
4045 .name = "gcc_pcie_1_slv_axi_clk",
4046 .ops = &clk_branch2_ops,
4047 },
4048 },
4049 };
4050
4051 static struct clk_branch gcc_pcie_1_slv_q2a_axi_clk = {
4052 .halt_reg = 0xba45c,
4053 .halt_check = BRANCH_HALT_VOTED,
4054 .clkr = {
4055 .enable_reg = 0x62010,
4056 .enable_mask = BIT(14),
4057 .hw.init = &(const struct clk_init_data) {
4058 .name = "gcc_pcie_1_slv_q2a_axi_clk",
4059 .ops = &clk_branch2_ops,
4060 },
4061 },
4062 };
4063
4064 static struct clk_branch gcc_pcie_2_aux_clk = {
4065 .halt_reg = 0xc0018,
4066 .halt_check = BRANCH_HALT_VOTED,
4067 .clkr = {
4068 .enable_reg = 0x62018,
4069 .enable_mask = BIT(0),
4070 .hw.init = &(const struct clk_init_data) {
4071 .name = "gcc_pcie_2_aux_clk",
4072 .parent_hws = (const struct clk_hw*[]) {
4073 &gcc_pcie_2_aux_clk_src.clkr.hw,
4074 },
4075 .num_parents = 1,
4076 .flags = CLK_SET_RATE_PARENT,
4077 .ops = &clk_branch2_ops,
4078 },
4079 },
4080 };
4081
4082 static struct clk_branch gcc_pcie_2_cfg_ahb_clk = {
4083 .halt_reg = 0xba4d0,
4084 .halt_check = BRANCH_HALT_VOTED,
4085 .hwcg_reg = 0xba4d0,
4086 .hwcg_bit = 1,
4087 .clkr = {
4088 .enable_reg = 0x62010,
4089 .enable_mask = BIT(31),
4090 .hw.init = &(const struct clk_init_data) {
4091 .name = "gcc_pcie_2_cfg_ahb_clk",
4092 .ops = &clk_branch2_ops,
4093 },
4094 },
4095 };
4096
4097 static struct clk_branch gcc_pcie_2_mstr_axi_clk = {
4098 .halt_reg = 0xba4c0,
4099 .halt_check = BRANCH_HALT_SKIP,
4100 .hwcg_reg = 0xba4c0,
4101 .hwcg_bit = 1,
4102 .clkr = {
4103 .enable_reg = 0x62010,
4104 .enable_mask = BIT(30),
4105 .hw.init = &(const struct clk_init_data) {
4106 .name = "gcc_pcie_2_mstr_axi_clk",
4107 .ops = &clk_branch2_ops,
4108 },
4109 },
4110 };
4111
4112 static struct clk_branch gcc_pcie_2_phy_rchng_clk = {
4113 .halt_reg = 0xc0038,
4114 .halt_check = BRANCH_HALT_VOTED,
4115 .clkr = {
4116 .enable_reg = 0x62018,
4117 .enable_mask = BIT(2),
4118 .hw.init = &(const struct clk_init_data) {
4119 .name = "gcc_pcie_2_phy_rchng_clk",
4120 .parent_hws = (const struct clk_hw*[]) {
4121 &gcc_pcie_2_phy_rchng_clk_src.clkr.hw,
4122 },
4123 .num_parents = 1,
4124 .flags = CLK_SET_RATE_PARENT,
4125 .ops = &clk_branch2_ops,
4126 },
4127 },
4128 };
4129
4130 static struct clk_branch gcc_pcie_2_pipe_clk = {
4131 .halt_reg = 0xc0028,
4132 .halt_check = BRANCH_HALT_SKIP,
4133 .clkr = {
4134 .enable_reg = 0x62018,
4135 .enable_mask = BIT(1),
4136 .hw.init = &(const struct clk_init_data) {
4137 .name = "gcc_pcie_2_pipe_clk",
4138 .parent_hws = (const struct clk_hw*[]) {
4139 &gcc_usb4_2_phy_pcie_pipe_mux_clk_src.clkr.hw,
4140 },
4141 .num_parents = 1,
4142 .flags = CLK_SET_RATE_PARENT,
4143 .ops = &clk_branch2_ops,
4144 },
4145 },
4146 };
4147
4148 static struct clk_branch gcc_pcie_2_slv_axi_clk = {
4149 .halt_reg = 0xba4b0,
4150 .halt_check = BRANCH_HALT_VOTED,
4151 .hwcg_reg = 0xba4b0,
4152 .hwcg_bit = 1,
4153 .clkr = {
4154 .enable_reg = 0x62010,
4155 .enable_mask = BIT(29),
4156 .hw.init = &(const struct clk_init_data) {
4157 .name = "gcc_pcie_2_slv_axi_clk",
4158 .ops = &clk_branch2_ops,
4159 },
4160 },
4161 };
4162
4163 static struct clk_branch gcc_pcie_2_slv_q2a_axi_clk = {
4164 .halt_reg = 0xba4ac,
4165 .halt_check = BRANCH_HALT_VOTED,
4166 .clkr = {
4167 .enable_reg = 0x62010,
4168 .enable_mask = BIT(28),
4169 .hw.init = &(const struct clk_init_data) {
4170 .name = "gcc_pcie_2_slv_q2a_axi_clk",
4171 .ops = &clk_branch2_ops,
4172 },
4173 },
4174 };
4175
4176 static struct clk_branch gcc_pcie_3a_aux_clk = {
4177 .halt_reg = 0xdc04c,
4178 .halt_check = BRANCH_HALT_VOTED,
4179 .hwcg_reg = 0xdc04c,
4180 .hwcg_bit = 1,
4181 .clkr = {
4182 .enable_reg = 0x62028,
4183 .enable_mask = BIT(16),
4184 .hw.init = &(const struct clk_init_data) {
4185 .name = "gcc_pcie_3a_aux_clk",
4186 .parent_hws = (const struct clk_hw*[]) {
4187 &gcc_pcie_3a_aux_clk_src.clkr.hw,
4188 },
4189 .num_parents = 1,
4190 .flags = CLK_SET_RATE_PARENT,
4191 .ops = &clk_branch2_ops,
4192 },
4193 },
4194 };
4195
4196 static struct clk_branch gcc_pcie_3a_cfg_ahb_clk = {
4197 .halt_reg = 0xba4f0,
4198 .halt_check = BRANCH_HALT_VOTED,
4199 .hwcg_reg = 0xba4f0,
4200 .hwcg_bit = 1,
4201 .clkr = {
4202 .enable_reg = 0x62028,
4203 .enable_mask = BIT(15),
4204 .hw.init = &(const struct clk_init_data) {
4205 .name = "gcc_pcie_3a_cfg_ahb_clk",
4206 .ops = &clk_branch2_ops,
4207 },
4208 },
4209 };
4210
4211 static struct clk_branch gcc_pcie_3a_mstr_axi_clk = {
4212 .halt_reg = 0xdc038,
4213 .halt_check = BRANCH_HALT_SKIP,
4214 .hwcg_reg = 0xdc038,
4215 .hwcg_bit = 1,
4216 .clkr = {
4217 .enable_reg = 0x62028,
4218 .enable_mask = BIT(14),
4219 .hw.init = &(const struct clk_init_data) {
4220 .name = "gcc_pcie_3a_mstr_axi_clk",
4221 .ops = &clk_branch2_ops,
4222 },
4223 },
4224 };
4225
4226 static struct clk_branch gcc_pcie_3a_phy_rchng_clk = {
4227 .halt_reg = 0xdc06c,
4228 .halt_check = BRANCH_HALT_VOTED,
4229 .hwcg_reg = 0xdc06c,
4230 .hwcg_bit = 1,
4231 .clkr = {
4232 .enable_reg = 0x62028,
4233 .enable_mask = BIT(18),
4234 .hw.init = &(const struct clk_init_data) {
4235 .name = "gcc_pcie_3a_phy_rchng_clk",
4236 .parent_hws = (const struct clk_hw*[]) {
4237 &gcc_pcie_3a_phy_rchng_clk_src.clkr.hw,
4238 },
4239 .num_parents = 1,
4240 .flags = CLK_SET_RATE_PARENT,
4241 .ops = &clk_branch2_ops,
4242 },
4243 },
4244 };
4245
4246 static struct clk_branch gcc_pcie_3a_pipe_clk = {
4247 .halt_reg = 0xdc05c,
4248 .halt_check = BRANCH_HALT_SKIP,
4249 .hwcg_reg = 0xdc05c,
4250 .hwcg_bit = 1,
4251 .clkr = {
4252 .enable_reg = 0x62028,
4253 .enable_mask = BIT(17),
4254 .hw.init = &(const struct clk_init_data) {
4255 .name = "gcc_pcie_3a_pipe_clk",
4256 .parent_hws = (const struct clk_hw*[]) {
4257 &gcc_pcie_3a_pipe_clk_src.clkr.hw,
4258 },
4259 .num_parents = 1,
4260 .flags = CLK_SET_RATE_PARENT,
4261 .ops = &clk_branch2_ops,
4262 },
4263 },
4264 };
4265
4266 static struct clk_branch gcc_pcie_3a_slv_axi_clk = {
4267 .halt_reg = 0xdc024,
4268 .halt_check = BRANCH_HALT_VOTED,
4269 .hwcg_reg = 0xdc024,
4270 .hwcg_bit = 1,
4271 .clkr = {
4272 .enable_reg = 0x62028,
4273 .enable_mask = BIT(13),
4274 .hw.init = &(const struct clk_init_data) {
4275 .name = "gcc_pcie_3a_slv_axi_clk",
4276 .ops = &clk_branch2_ops,
4277 },
4278 },
4279 };
4280
4281 static struct clk_branch gcc_pcie_3a_slv_q2a_axi_clk = {
4282 .halt_reg = 0xdc01c,
4283 .halt_check = BRANCH_HALT_VOTED,
4284 .hwcg_reg = 0xdc01c,
4285 .hwcg_bit = 1,
4286 .clkr = {
4287 .enable_reg = 0x62028,
4288 .enable_mask = BIT(12),
4289 .hw.init = &(const struct clk_init_data) {
4290 .name = "gcc_pcie_3a_slv_q2a_axi_clk",
4291 .ops = &clk_branch2_ops,
4292 },
4293 },
4294 };
4295
4296 static struct clk_branch gcc_pcie_3b_aux_clk = {
4297 .halt_reg = 0x94050,
4298 .halt_check = BRANCH_HALT_VOTED,
4299 .clkr = {
4300 .enable_reg = 0x62028,
4301 .enable_mask = BIT(25),
4302 .hw.init = &(const struct clk_init_data) {
4303 .name = "gcc_pcie_3b_aux_clk",
4304 .parent_hws = (const struct clk_hw*[]) {
4305 &gcc_pcie_3b_aux_clk_src.clkr.hw,
4306 },
4307 .num_parents = 1,
4308 .flags = CLK_SET_RATE_PARENT,
4309 .ops = &clk_branch2_ops,
4310 },
4311 },
4312 };
4313
4314 static struct clk_branch gcc_pcie_3b_cfg_ahb_clk = {
4315 .halt_reg = 0xba4f4,
4316 .halt_check = BRANCH_HALT_VOTED,
4317 .hwcg_reg = 0xba4f4,
4318 .hwcg_bit = 1,
4319 .clkr = {
4320 .enable_reg = 0x62028,
4321 .enable_mask = BIT(24),
4322 .hw.init = &(const struct clk_init_data) {
4323 .name = "gcc_pcie_3b_cfg_ahb_clk",
4324 .ops = &clk_branch2_ops,
4325 },
4326 },
4327 };
4328
4329 static struct clk_branch gcc_pcie_3b_mstr_axi_clk = {
4330 .halt_reg = 0x94038,
4331 .halt_check = BRANCH_HALT_SKIP,
4332 .hwcg_reg = 0x94038,
4333 .hwcg_bit = 1,
4334 .clkr = {
4335 .enable_reg = 0x62028,
4336 .enable_mask = BIT(23),
4337 .hw.init = &(const struct clk_init_data) {
4338 .name = "gcc_pcie_3b_mstr_axi_clk",
4339 .ops = &clk_branch2_ops,
4340 },
4341 },
4342 };
4343
4344 static struct clk_branch gcc_pcie_3b_phy_rchng_clk = {
4345 .halt_reg = 0x94084,
4346 .halt_check = BRANCH_HALT_VOTED,
4347 .clkr = {
4348 .enable_reg = 0x62028,
4349 .enable_mask = BIT(28),
4350 .hw.init = &(const struct clk_init_data) {
4351 .name = "gcc_pcie_3b_phy_rchng_clk",
4352 .parent_hws = (const struct clk_hw*[]) {
4353 &gcc_pcie_3b_phy_rchng_clk_src.clkr.hw,
4354 },
4355 .num_parents = 1,
4356 .flags = CLK_SET_RATE_PARENT,
4357 .ops = &clk_branch2_ops,
4358 },
4359 },
4360 };
4361
4362 static struct clk_branch gcc_pcie_3b_pipe_clk = {
4363 .halt_reg = 0x94060,
4364 .halt_check = BRANCH_HALT_SKIP,
4365 .clkr = {
4366 .enable_reg = 0x62028,
4367 .enable_mask = BIT(26),
4368 .hw.init = &(const struct clk_init_data) {
4369 .name = "gcc_pcie_3b_pipe_clk",
4370 .parent_hws = (const struct clk_hw*[]) {
4371 &gcc_pcie_3b_pipe_clk_src.clkr.hw,
4372 },
4373 .num_parents = 1,
4374 .flags = CLK_SET_RATE_PARENT,
4375 .ops = &clk_branch2_ops,
4376 },
4377 },
4378 };
4379
4380 static struct clk_branch gcc_pcie_3b_pipe_div2_clk = {
4381 .halt_reg = 0x94074,
4382 .halt_check = BRANCH_HALT_SKIP,
4383 .clkr = {
4384 .enable_reg = 0x62028,
4385 .enable_mask = BIT(27),
4386 .hw.init = &(const struct clk_init_data) {
4387 .name = "gcc_pcie_3b_pipe_div2_clk",
4388 .parent_hws = (const struct clk_hw*[]) {
4389 &gcc_pcie_3b_pipe_div_clk_src.clkr.hw,
4390 },
4391 .num_parents = 1,
4392 .flags = CLK_SET_RATE_PARENT,
4393 .ops = &clk_branch2_ops,
4394 },
4395 },
4396 };
4397
4398 static struct clk_branch gcc_pcie_3b_slv_axi_clk = {
4399 .halt_reg = 0x94024,
4400 .halt_check = BRANCH_HALT_VOTED,
4401 .hwcg_reg = 0x94024,
4402 .hwcg_bit = 1,
4403 .clkr = {
4404 .enable_reg = 0x62028,
4405 .enable_mask = BIT(22),
4406 .hw.init = &(const struct clk_init_data) {
4407 .name = "gcc_pcie_3b_slv_axi_clk",
4408 .ops = &clk_branch2_ops,
4409 },
4410 },
4411 };
4412
4413 static struct clk_branch gcc_pcie_3b_slv_q2a_axi_clk = {
4414 .halt_reg = 0x9401c,
4415 .halt_check = BRANCH_HALT_VOTED,
4416 .clkr = {
4417 .enable_reg = 0x62028,
4418 .enable_mask = BIT(21),
4419 .hw.init = &(const struct clk_init_data) {
4420 .name = "gcc_pcie_3b_slv_q2a_axi_clk",
4421 .ops = &clk_branch2_ops,
4422 },
4423 },
4424 };
4425
4426 static struct clk_branch gcc_pcie_4_aux_clk = {
4427 .halt_reg = 0x88040,
4428 .halt_check = BRANCH_HALT_VOTED,
4429 .clkr = {
4430 .enable_reg = 0x62030,
4431 .enable_mask = BIT(17),
4432 .hw.init = &(const struct clk_init_data) {
4433 .name = "gcc_pcie_4_aux_clk",
4434 .parent_hws = (const struct clk_hw*[]) {
4435 &gcc_pcie_4_aux_clk_src.clkr.hw,
4436 },
4437 .num_parents = 1,
4438 .flags = CLK_SET_RATE_PARENT,
4439 .ops = &clk_branch2_ops,
4440 },
4441 },
4442 };
4443
4444 static struct clk_branch gcc_pcie_4_cfg_ahb_clk = {
4445 .halt_reg = 0xba4fc,
4446 .halt_check = BRANCH_HALT_VOTED,
4447 .hwcg_reg = 0xba4fc,
4448 .hwcg_bit = 1,
4449 .clkr = {
4450 .enable_reg = 0x62030,
4451 .enable_mask = BIT(16),
4452 .hw.init = &(const struct clk_init_data) {
4453 .name = "gcc_pcie_4_cfg_ahb_clk",
4454 .ops = &clk_branch2_ops,
4455 },
4456 },
4457 };
4458
4459 static struct clk_branch gcc_pcie_4_mstr_axi_clk = {
4460 .halt_reg = 0x88030,
4461 .halt_check = BRANCH_HALT_SKIP,
4462 .hwcg_reg = 0x88030,
4463 .hwcg_bit = 1,
4464 .clkr = {
4465 .enable_reg = 0x62030,
4466 .enable_mask = BIT(15),
4467 .hw.init = &(const struct clk_init_data) {
4468 .name = "gcc_pcie_4_mstr_axi_clk",
4469 .ops = &clk_branch2_ops,
4470 },
4471 },
4472 };
4473
4474 static struct clk_branch gcc_pcie_4_phy_rchng_clk = {
4475 .halt_reg = 0x88074,
4476 .halt_check = BRANCH_HALT_VOTED,
4477 .clkr = {
4478 .enable_reg = 0x62030,
4479 .enable_mask = BIT(20),
4480 .hw.init = &(const struct clk_init_data) {
4481 .name = "gcc_pcie_4_phy_rchng_clk",
4482 .parent_hws = (const struct clk_hw*[]) {
4483 &gcc_pcie_4_phy_rchng_clk_src.clkr.hw,
4484 },
4485 .num_parents = 1,
4486 .flags = CLK_SET_RATE_PARENT,
4487 .ops = &clk_branch2_ops,
4488 },
4489 },
4490 };
4491
4492 static struct clk_branch gcc_pcie_4_pipe_clk = {
4493 .halt_reg = 0x88050,
4494 .halt_check = BRANCH_HALT_SKIP,
4495 .clkr = {
4496 .enable_reg = 0x62030,
4497 .enable_mask = BIT(18),
4498 .hw.init = &(const struct clk_init_data) {
4499 .name = "gcc_pcie_4_pipe_clk",
4500 .parent_hws = (const struct clk_hw*[]) {
4501 &gcc_pcie_4_pipe_clk_src.clkr.hw,
4502 },
4503 .num_parents = 1,
4504 .flags = CLK_SET_RATE_PARENT,
4505 .ops = &clk_branch2_ops,
4506 },
4507 },
4508 };
4509
4510 static struct clk_branch gcc_pcie_4_pipe_div2_clk = {
4511 .halt_reg = 0x88064,
4512 .halt_check = BRANCH_HALT_SKIP,
4513 .clkr = {
4514 .enable_reg = 0x62030,
4515 .enable_mask = BIT(19),
4516 .hw.init = &(const struct clk_init_data) {
4517 .name = "gcc_pcie_4_pipe_div2_clk",
4518 .parent_hws = (const struct clk_hw*[]) {
4519 &gcc_pcie_4_pipe_div_clk_src.clkr.hw,
4520 },
4521 .num_parents = 1,
4522 .flags = CLK_SET_RATE_PARENT,
4523 .ops = &clk_branch2_ops,
4524 },
4525 },
4526 };
4527
4528 static struct clk_branch gcc_pcie_4_slv_axi_clk = {
4529 .halt_reg = 0x88020,
4530 .halt_check = BRANCH_HALT_VOTED,
4531 .hwcg_reg = 0x88020,
4532 .hwcg_bit = 1,
4533 .clkr = {
4534 .enable_reg = 0x62030,
4535 .enable_mask = BIT(14),
4536 .hw.init = &(const struct clk_init_data) {
4537 .name = "gcc_pcie_4_slv_axi_clk",
4538 .ops = &clk_branch2_ops,
4539 },
4540 },
4541 };
4542
4543 static struct clk_branch gcc_pcie_4_slv_q2a_axi_clk = {
4544 .halt_reg = 0x8801c,
4545 .halt_check = BRANCH_HALT_VOTED,
4546 .clkr = {
4547 .enable_reg = 0x62030,
4548 .enable_mask = BIT(13),
4549 .hw.init = &(const struct clk_init_data) {
4550 .name = "gcc_pcie_4_slv_q2a_axi_clk",
4551 .ops = &clk_branch2_ops,
4552 },
4553 },
4554 };
4555
4556 static struct clk_branch gcc_pcie_5_aux_clk = {
4557 .halt_reg = 0xc304c,
4558 .halt_check = BRANCH_HALT_VOTED,
4559 .clkr = {
4560 .enable_reg = 0x62030,
4561 .enable_mask = BIT(5),
4562 .hw.init = &(const struct clk_init_data) {
4563 .name = "gcc_pcie_5_aux_clk",
4564 .parent_hws = (const struct clk_hw*[]) {
4565 &gcc_pcie_5_aux_clk_src.clkr.hw,
4566 },
4567 .num_parents = 1,
4568 .flags = CLK_SET_RATE_PARENT,
4569 .ops = &clk_branch2_ops,
4570 },
4571 },
4572 };
4573
4574 static struct clk_branch gcc_pcie_5_cfg_ahb_clk = {
4575 .halt_reg = 0xba4f8,
4576 .halt_check = BRANCH_HALT_VOTED,
4577 .hwcg_reg = 0xba4f8,
4578 .hwcg_bit = 1,
4579 .clkr = {
4580 .enable_reg = 0x62030,
4581 .enable_mask = BIT(4),
4582 .hw.init = &(const struct clk_init_data) {
4583 .name = "gcc_pcie_5_cfg_ahb_clk",
4584 .ops = &clk_branch2_ops,
4585 },
4586 },
4587 };
4588
4589 static struct clk_branch gcc_pcie_5_mstr_axi_clk = {
4590 .halt_reg = 0xc3038,
4591 .halt_check = BRANCH_HALT_SKIP,
4592 .hwcg_reg = 0xc3038,
4593 .hwcg_bit = 1,
4594 .clkr = {
4595 .enable_reg = 0x62030,
4596 .enable_mask = BIT(3),
4597 .hw.init = &(const struct clk_init_data) {
4598 .name = "gcc_pcie_5_mstr_axi_clk",
4599 .ops = &clk_branch2_ops,
4600 },
4601 },
4602 };
4603
4604 static struct clk_branch gcc_pcie_5_phy_rchng_clk = {
4605 .halt_reg = 0xc3080,
4606 .halt_check = BRANCH_HALT_VOTED,
4607 .clkr = {
4608 .enable_reg = 0x62030,
4609 .enable_mask = BIT(8),
4610 .hw.init = &(const struct clk_init_data) {
4611 .name = "gcc_pcie_5_phy_rchng_clk",
4612 .parent_hws = (const struct clk_hw*[]) {
4613 &gcc_pcie_5_phy_rchng_clk_src.clkr.hw,
4614 },
4615 .num_parents = 1,
4616 .flags = CLK_SET_RATE_PARENT,
4617 .ops = &clk_branch2_ops,
4618 },
4619 },
4620 };
4621
4622 static struct clk_branch gcc_pcie_5_pipe_clk = {
4623 .halt_reg = 0xc305c,
4624 .halt_check = BRANCH_HALT_SKIP,
4625 .clkr = {
4626 .enable_reg = 0x62030,
4627 .enable_mask = BIT(6),
4628 .hw.init = &(const struct clk_init_data) {
4629 .name = "gcc_pcie_5_pipe_clk",
4630 .parent_hws = (const struct clk_hw*[]) {
4631 &gcc_pcie_5_pipe_clk_src.clkr.hw,
4632 },
4633 .num_parents = 1,
4634 .flags = CLK_SET_RATE_PARENT,
4635 .ops = &clk_branch2_ops,
4636 },
4637 },
4638 };
4639
4640 static struct clk_branch gcc_pcie_5_pipe_div2_clk = {
4641 .halt_reg = 0xc3070,
4642 .halt_check = BRANCH_HALT_SKIP,
4643 .clkr = {
4644 .enable_reg = 0x62030,
4645 .enable_mask = BIT(7),
4646 .hw.init = &(const struct clk_init_data) {
4647 .name = "gcc_pcie_5_pipe_div2_clk",
4648 .parent_hws = (const struct clk_hw*[]) {
4649 &gcc_pcie_5_pipe_div_clk_src.clkr.hw,
4650 },
4651 .num_parents = 1,
4652 .flags = CLK_SET_RATE_PARENT,
4653 .ops = &clk_branch2_ops,
4654 },
4655 },
4656 };
4657
4658 static struct clk_branch gcc_pcie_5_slv_axi_clk = {
4659 .halt_reg = 0xc3024,
4660 .halt_check = BRANCH_HALT_VOTED,
4661 .hwcg_reg = 0xc3024,
4662 .hwcg_bit = 1,
4663 .clkr = {
4664 .enable_reg = 0x62030,
4665 .enable_mask = BIT(2),
4666 .hw.init = &(const struct clk_init_data) {
4667 .name = "gcc_pcie_5_slv_axi_clk",
4668 .ops = &clk_branch2_ops,
4669 },
4670 },
4671 };
4672
4673 static struct clk_branch gcc_pcie_5_slv_q2a_axi_clk = {
4674 .halt_reg = 0xc301c,
4675 .halt_check = BRANCH_HALT_VOTED,
4676 .clkr = {
4677 .enable_reg = 0x62030,
4678 .enable_mask = BIT(1),
4679 .hw.init = &(const struct clk_init_data) {
4680 .name = "gcc_pcie_5_slv_q2a_axi_clk",
4681 .ops = &clk_branch2_ops,
4682 },
4683 },
4684 };
4685
4686 static struct clk_branch gcc_pcie_6_aux_clk = {
4687 .halt_reg = 0x8a040,
4688 .halt_check = BRANCH_HALT_VOTED,
4689 .clkr = {
4690 .enable_reg = 0x62030,
4691 .enable_mask = BIT(27),
4692 .hw.init = &(const struct clk_init_data) {
4693 .name = "gcc_pcie_6_aux_clk",
4694 .parent_hws = (const struct clk_hw*[]) {
4695 &gcc_pcie_6_aux_clk_src.clkr.hw,
4696 },
4697 .num_parents = 1,
4698 .flags = CLK_SET_RATE_PARENT,
4699 .ops = &clk_branch2_ops,
4700 },
4701 },
4702 };
4703
4704 static struct clk_branch gcc_pcie_6_cfg_ahb_clk = {
4705 .halt_reg = 0xba500,
4706 .halt_check = BRANCH_HALT_VOTED,
4707 .hwcg_reg = 0xba500,
4708 .hwcg_bit = 1,
4709 .clkr = {
4710 .enable_reg = 0x62030,
4711 .enable_mask = BIT(26),
4712 .hw.init = &(const struct clk_init_data) {
4713 .name = "gcc_pcie_6_cfg_ahb_clk",
4714 .ops = &clk_branch2_ops,
4715 },
4716 },
4717 };
4718
4719 static struct clk_branch gcc_pcie_6_mstr_axi_clk = {
4720 .halt_reg = 0x8a030,
4721 .halt_check = BRANCH_HALT_SKIP,
4722 .hwcg_reg = 0x8a030,
4723 .hwcg_bit = 1,
4724 .clkr = {
4725 .enable_reg = 0x62030,
4726 .enable_mask = BIT(25),
4727 .hw.init = &(const struct clk_init_data) {
4728 .name = "gcc_pcie_6_mstr_axi_clk",
4729 .ops = &clk_branch2_ops,
4730 },
4731 },
4732 };
4733
4734 static struct clk_branch gcc_pcie_6_phy_rchng_clk = {
4735 .halt_reg = 0x8a074,
4736 .halt_check = BRANCH_HALT_VOTED,
4737 .clkr = {
4738 .enable_reg = 0x62030,
4739 .enable_mask = BIT(30),
4740 .hw.init = &(const struct clk_init_data) {
4741 .name = "gcc_pcie_6_phy_rchng_clk",
4742 .parent_hws = (const struct clk_hw*[]) {
4743 &gcc_pcie_6_phy_rchng_clk_src.clkr.hw,
4744 },
4745 .num_parents = 1,
4746 .flags = CLK_SET_RATE_PARENT,
4747 .ops = &clk_branch2_ops,
4748 },
4749 },
4750 };
4751
4752 static struct clk_branch gcc_pcie_6_pipe_clk = {
4753 .halt_reg = 0x8a050,
4754 .halt_check = BRANCH_HALT_SKIP,
4755 .clkr = {
4756 .enable_reg = 0x62030,
4757 .enable_mask = BIT(28),
4758 .hw.init = &(const struct clk_init_data) {
4759 .name = "gcc_pcie_6_pipe_clk",
4760 .parent_hws = (const struct clk_hw*[]) {
4761 &gcc_pcie_6_pipe_clk_src.clkr.hw,
4762 },
4763 .num_parents = 1,
4764 .flags = CLK_SET_RATE_PARENT,
4765 .ops = &clk_branch2_ops,
4766 },
4767 },
4768 };
4769
4770 static struct clk_branch gcc_pcie_6_pipe_div2_clk = {
4771 .halt_reg = 0x8a064,
4772 .halt_check = BRANCH_HALT_SKIP,
4773 .clkr = {
4774 .enable_reg = 0x62030,
4775 .enable_mask = BIT(29),
4776 .hw.init = &(const struct clk_init_data) {
4777 .name = "gcc_pcie_6_pipe_div2_clk",
4778 .parent_hws = (const struct clk_hw*[]) {
4779 &gcc_pcie_6_pipe_div_clk_src.clkr.hw,
4780 },
4781 .num_parents = 1,
4782 .flags = CLK_SET_RATE_PARENT,
4783 .ops = &clk_branch2_ops,
4784 },
4785 },
4786 };
4787
4788 static struct clk_branch gcc_pcie_6_slv_axi_clk = {
4789 .halt_reg = 0x8a020,
4790 .halt_check = BRANCH_HALT_VOTED,
4791 .hwcg_reg = 0x8a020,
4792 .hwcg_bit = 1,
4793 .clkr = {
4794 .enable_reg = 0x62030,
4795 .enable_mask = BIT(24),
4796 .hw.init = &(const struct clk_init_data) {
4797 .name = "gcc_pcie_6_slv_axi_clk",
4798 .ops = &clk_branch2_ops,
4799 },
4800 },
4801 };
4802
4803 static struct clk_branch gcc_pcie_6_slv_q2a_axi_clk = {
4804 .halt_reg = 0x8a01c,
4805 .halt_check = BRANCH_HALT_VOTED,
4806 .clkr = {
4807 .enable_reg = 0x62030,
4808 .enable_mask = BIT(23),
4809 .hw.init = &(const struct clk_init_data) {
4810 .name = "gcc_pcie_6_slv_q2a_axi_clk",
4811 .ops = &clk_branch2_ops,
4812 },
4813 },
4814 };
4815
4816 static struct clk_branch gcc_pcie_noc_pwrctl_clk = {
4817 .halt_reg = 0xba2ac,
4818 .halt_check = BRANCH_HALT_VOTED,
4819 .clkr = {
4820 .enable_reg = 0x62008,
4821 .enable_mask = BIT(7),
4822 .hw.init = &(const struct clk_init_data) {
4823 .name = "gcc_pcie_noc_pwrctl_clk",
4824 .ops = &clk_branch2_ops,
4825 },
4826 },
4827 };
4828
4829 static struct clk_branch gcc_pcie_noc_qosgen_extref_clk = {
4830 .halt_reg = 0xba2a8,
4831 .halt_check = BRANCH_HALT_VOTED,
4832 .clkr = {
4833 .enable_reg = 0x62008,
4834 .enable_mask = BIT(6),
4835 .hw.init = &(const struct clk_init_data) {
4836 .name = "gcc_pcie_noc_qosgen_extref_clk",
4837 .ops = &clk_branch2_ops,
4838 },
4839 },
4840 };
4841
4842 static struct clk_branch gcc_pcie_noc_sf_center_clk = {
4843 .halt_reg = 0xba2b0,
4844 .halt_check = BRANCH_HALT_VOTED,
4845 .hwcg_reg = 0xba2b0,
4846 .hwcg_bit = 1,
4847 .clkr = {
4848 .enable_reg = 0x62008,
4849 .enable_mask = BIT(8),
4850 .hw.init = &(const struct clk_init_data) {
4851 .name = "gcc_pcie_noc_sf_center_clk",
4852 .ops = &clk_branch2_ops,
4853 },
4854 },
4855 };
4856
4857 static struct clk_branch gcc_pcie_noc_slave_sf_east_clk = {
4858 .halt_reg = 0xba2b8,
4859 .halt_check = BRANCH_HALT_VOTED,
4860 .hwcg_reg = 0xba2b8,
4861 .hwcg_bit = 1,
4862 .clkr = {
4863 .enable_reg = 0x62008,
4864 .enable_mask = BIT(9),
4865 .hw.init = &(const struct clk_init_data) {
4866 .name = "gcc_pcie_noc_slave_sf_east_clk",
4867 .ops = &clk_branch2_ops,
4868 },
4869 },
4870 };
4871
4872 static struct clk_branch gcc_pcie_noc_slave_sf_west_clk = {
4873 .halt_reg = 0xba2c0,
4874 .halt_check = BRANCH_HALT_VOTED,
4875 .hwcg_reg = 0xba2c0,
4876 .hwcg_bit = 1,
4877 .clkr = {
4878 .enable_reg = 0x62008,
4879 .enable_mask = BIT(10),
4880 .hw.init = &(const struct clk_init_data) {
4881 .name = "gcc_pcie_noc_slave_sf_west_clk",
4882 .ops = &clk_branch2_ops,
4883 },
4884 },
4885 };
4886
4887 static struct clk_branch gcc_pcie_noc_tsctr_clk = {
4888 .halt_reg = 0xba2a4,
4889 .halt_check = BRANCH_HALT_VOTED,
4890 .hwcg_reg = 0xba2a4,
4891 .hwcg_bit = 1,
4892 .clkr = {
4893 .enable_reg = 0x62008,
4894 .enable_mask = BIT(5),
4895 .hw.init = &(const struct clk_init_data) {
4896 .name = "gcc_pcie_noc_tsctr_clk",
4897 .ops = &clk_branch2_ops,
4898 },
4899 },
4900 };
4901
4902 static struct clk_branch gcc_pcie_phy_3a_aux_clk = {
4903 .halt_reg = 0x6c038,
4904 .halt_check = BRANCH_HALT_VOTED,
4905 .hwcg_reg = 0x6c038,
4906 .hwcg_bit = 1,
4907 .clkr = {
4908 .enable_reg = 0x62028,
4909 .enable_mask = BIT(19),
4910 .hw.init = &(const struct clk_init_data) {
4911 .name = "gcc_pcie_phy_3a_aux_clk",
4912 .parent_hws = (const struct clk_hw*[]) {
4913 &gcc_pcie_phy_3a_aux_clk_src.clkr.hw,
4914 },
4915 .num_parents = 1,
4916 .flags = CLK_SET_RATE_PARENT,
4917 .ops = &clk_branch2_ops,
4918 },
4919 },
4920 };
4921
4922 static struct clk_branch gcc_pcie_phy_3b_aux_clk = {
4923 .halt_reg = 0x75034,
4924 .halt_check = BRANCH_HALT_VOTED,
4925 .clkr = {
4926 .enable_reg = 0x62028,
4927 .enable_mask = BIT(31),
4928 .hw.init = &(const struct clk_init_data) {
4929 .name = "gcc_pcie_phy_3b_aux_clk",
4930 .parent_hws = (const struct clk_hw*[]) {
4931 &gcc_pcie_phy_3b_aux_clk_src.clkr.hw,
4932 },
4933 .num_parents = 1,
4934 .flags = CLK_SET_RATE_PARENT,
4935 .ops = &clk_branch2_ops,
4936 },
4937 },
4938 };
4939
4940 static struct clk_branch gcc_pcie_phy_4_aux_clk = {
4941 .halt_reg = 0xd3030,
4942 .halt_check = BRANCH_HALT_VOTED,
4943 .clkr = {
4944 .enable_reg = 0x62030,
4945 .enable_mask = BIT(21),
4946 .hw.init = &(const struct clk_init_data) {
4947 .name = "gcc_pcie_phy_4_aux_clk",
4948 .parent_hws = (const struct clk_hw*[]) {
4949 &gcc_pcie_phy_4_aux_clk_src.clkr.hw,
4950 },
4951 .num_parents = 1,
4952 .flags = CLK_SET_RATE_PARENT,
4953 .ops = &clk_branch2_ops,
4954 },
4955 },
4956 };
4957
4958 static struct clk_branch gcc_pcie_phy_5_aux_clk = {
4959 .halt_reg = 0xd2030,
4960 .halt_check = BRANCH_HALT_VOTED,
4961 .clkr = {
4962 .enable_reg = 0x62030,
4963 .enable_mask = BIT(11),
4964 .hw.init = &(const struct clk_init_data) {
4965 .name = "gcc_pcie_phy_5_aux_clk",
4966 .parent_hws = (const struct clk_hw*[]) {
4967 &gcc_pcie_phy_5_aux_clk_src.clkr.hw,
4968 },
4969 .num_parents = 1,
4970 .flags = CLK_SET_RATE_PARENT,
4971 .ops = &clk_branch2_ops,
4972 },
4973 },
4974 };
4975
4976 static struct clk_branch gcc_pcie_phy_6_aux_clk = {
4977 .halt_reg = 0xd4030,
4978 .halt_check = BRANCH_HALT_VOTED,
4979 .clkr = {
4980 .enable_reg = 0x62030,
4981 .enable_mask = BIT(31),
4982 .hw.init = &(const struct clk_init_data) {
4983 .name = "gcc_pcie_phy_6_aux_clk",
4984 .parent_hws = (const struct clk_hw*[]) {
4985 &gcc_pcie_phy_6_aux_clk_src.clkr.hw,
4986 },
4987 .num_parents = 1,
4988 .flags = CLK_SET_RATE_PARENT,
4989 .ops = &clk_branch2_ops,
4990 },
4991 },
4992 };
4993
4994 static struct clk_branch gcc_pcie_rscc_cfg_ahb_clk = {
4995 .halt_reg = 0xb8004,
4996 .halt_check = BRANCH_HALT_VOTED,
4997 .hwcg_reg = 0xb8004,
4998 .hwcg_bit = 1,
4999 .clkr = {
5000 .enable_reg = 0x62038,
5001 .enable_mask = BIT(2),
5002 .hw.init = &(const struct clk_init_data) {
5003 .name = "gcc_pcie_rscc_cfg_ahb_clk",
5004 .ops = &clk_branch2_ops,
5005 },
5006 },
5007 };
5008
5009 static struct clk_branch gcc_pcie_rscc_xo_clk = {
5010 .halt_reg = 0xb8008,
5011 .halt_check = BRANCH_HALT_VOTED,
5012 .clkr = {
5013 .enable_reg = 0x62038,
5014 .enable_mask = BIT(3),
5015 .hw.init = &(const struct clk_init_data) {
5016 .name = "gcc_pcie_rscc_xo_clk",
5017 .ops = &clk_branch2_ops,
5018 },
5019 },
5020 };
5021
5022 static struct clk_branch gcc_pdm2_clk = {
5023 .halt_reg = 0x3300c,
5024 .halt_check = BRANCH_HALT,
5025 .clkr = {
5026 .enable_reg = 0x3300c,
5027 .enable_mask = BIT(0),
5028 .hw.init = &(const struct clk_init_data) {
5029 .name = "gcc_pdm2_clk",
5030 .parent_hws = (const struct clk_hw*[]) {
5031 &gcc_pdm2_clk_src.clkr.hw,
5032 },
5033 .num_parents = 1,
5034 .flags = CLK_SET_RATE_PARENT,
5035 .ops = &clk_branch2_ops,
5036 },
5037 },
5038 };
5039
5040 static struct clk_branch gcc_pdm_ahb_clk = {
5041 .halt_reg = 0x33004,
5042 .halt_check = BRANCH_HALT_VOTED,
5043 .hwcg_reg = 0x33004,
5044 .hwcg_bit = 1,
5045 .clkr = {
5046 .enable_reg = 0x33004,
5047 .enable_mask = BIT(0),
5048 .hw.init = &(const struct clk_init_data) {
5049 .name = "gcc_pdm_ahb_clk",
5050 .ops = &clk_branch2_ops,
5051 },
5052 },
5053 };
5054
5055 static struct clk_branch gcc_pdm_xo4_clk = {
5056 .halt_reg = 0x33008,
5057 .halt_check = BRANCH_HALT,
5058 .clkr = {
5059 .enable_reg = 0x33008,
5060 .enable_mask = BIT(0),
5061 .hw.init = &(const struct clk_init_data) {
5062 .name = "gcc_pdm_xo4_clk",
5063 .ops = &clk_branch2_ops,
5064 },
5065 },
5066 };
5067
5068 static struct clk_branch gcc_qmip_av1e_ahb_clk = {
5069 .halt_reg = 0x9b048,
5070 .halt_check = BRANCH_HALT_VOTED,
5071 .hwcg_reg = 0x9b048,
5072 .hwcg_bit = 1,
5073 .clkr = {
5074 .enable_reg = 0x9b048,
5075 .enable_mask = BIT(0),
5076 .hw.init = &(const struct clk_init_data) {
5077 .name = "gcc_qmip_av1e_ahb_clk",
5078 .ops = &clk_branch2_ops,
5079 },
5080 },
5081 };
5082
5083 static struct clk_branch gcc_qmip_camera_cmd_ahb_clk = {
5084 .halt_reg = 0x26010,
5085 .halt_check = BRANCH_HALT_VOTED,
5086 .hwcg_reg = 0x26010,
5087 .hwcg_bit = 1,
5088 .clkr = {
5089 .enable_reg = 0x26010,
5090 .enable_mask = BIT(0),
5091 .hw.init = &(const struct clk_init_data) {
5092 .name = "gcc_qmip_camera_cmd_ahb_clk",
5093 .ops = &clk_branch2_ops,
5094 },
5095 },
5096 };
5097
5098 static struct clk_branch gcc_qmip_camera_nrt_ahb_clk = {
5099 .halt_reg = 0x26008,
5100 .halt_check = BRANCH_HALT_VOTED,
5101 .hwcg_reg = 0x26008,
5102 .hwcg_bit = 1,
5103 .clkr = {
5104 .enable_reg = 0x26008,
5105 .enable_mask = BIT(0),
5106 .hw.init = &(const struct clk_init_data) {
5107 .name = "gcc_qmip_camera_nrt_ahb_clk",
5108 .ops = &clk_branch2_ops,
5109 },
5110 },
5111 };
5112
5113 static struct clk_branch gcc_qmip_camera_rt_ahb_clk = {
5114 .halt_reg = 0x2600c,
5115 .halt_check = BRANCH_HALT_VOTED,
5116 .hwcg_reg = 0x2600c,
5117 .hwcg_bit = 1,
5118 .clkr = {
5119 .enable_reg = 0x2600c,
5120 .enable_mask = BIT(0),
5121 .hw.init = &(const struct clk_init_data) {
5122 .name = "gcc_qmip_camera_rt_ahb_clk",
5123 .ops = &clk_branch2_ops,
5124 },
5125 },
5126 };
5127
5128 static struct clk_branch gcc_qmip_gpu_ahb_clk = {
5129 .halt_reg = 0x71008,
5130 .halt_check = BRANCH_HALT_VOTED,
5131 .hwcg_reg = 0x71008,
5132 .hwcg_bit = 1,
5133 .clkr = {
5134 .enable_reg = 0x71008,
5135 .enable_mask = BIT(0),
5136 .hw.init = &(const struct clk_init_data) {
5137 .name = "gcc_qmip_gpu_ahb_clk",
5138 .ops = &clk_branch2_ops,
5139 },
5140 },
5141 };
5142
5143 static struct clk_branch gcc_qmip_pcie_3a_ahb_clk = {
5144 .halt_reg = 0xdc018,
5145 .halt_check = BRANCH_HALT_VOTED,
5146 .hwcg_reg = 0xdc018,
5147 .hwcg_bit = 1,
5148 .clkr = {
5149 .enable_reg = 0x62028,
5150 .enable_mask = BIT(11),
5151 .hw.init = &(const struct clk_init_data) {
5152 .name = "gcc_qmip_pcie_3a_ahb_clk",
5153 .ops = &clk_branch2_ops,
5154 },
5155 },
5156 };
5157
5158 static struct clk_branch gcc_qmip_pcie_3b_ahb_clk = {
5159 .halt_reg = 0x94018,
5160 .halt_check = BRANCH_HALT_VOTED,
5161 .hwcg_reg = 0x94018,
5162 .hwcg_bit = 1,
5163 .clkr = {
5164 .enable_reg = 0x62028,
5165 .enable_mask = BIT(20),
5166 .hw.init = &(const struct clk_init_data) {
5167 .name = "gcc_qmip_pcie_3b_ahb_clk",
5168 .ops = &clk_branch2_ops,
5169 },
5170 },
5171 };
5172
5173 static struct clk_branch gcc_qmip_pcie_4_ahb_clk = {
5174 .halt_reg = 0x88018,
5175 .halt_check = BRANCH_HALT_VOTED,
5176 .hwcg_reg = 0x88018,
5177 .hwcg_bit = 1,
5178 .clkr = {
5179 .enable_reg = 0x62030,
5180 .enable_mask = BIT(12),
5181 .hw.init = &(const struct clk_init_data) {
5182 .name = "gcc_qmip_pcie_4_ahb_clk",
5183 .ops = &clk_branch2_ops,
5184 },
5185 },
5186 };
5187
5188 static struct clk_branch gcc_qmip_pcie_5_ahb_clk = {
5189 .halt_reg = 0xc3018,
5190 .halt_check = BRANCH_HALT_VOTED,
5191 .hwcg_reg = 0xc3018,
5192 .hwcg_bit = 1,
5193 .clkr = {
5194 .enable_reg = 0x62030,
5195 .enable_mask = BIT(0),
5196 .hw.init = &(const struct clk_init_data) {
5197 .name = "gcc_qmip_pcie_5_ahb_clk",
5198 .ops = &clk_branch2_ops,
5199 },
5200 },
5201 };
5202
5203 static struct clk_branch gcc_qmip_pcie_6_ahb_clk = {
5204 .halt_reg = 0x8a018,
5205 .halt_check = BRANCH_HALT_VOTED,
5206 .hwcg_reg = 0x8a018,
5207 .hwcg_bit = 1,
5208 .clkr = {
5209 .enable_reg = 0x62030,
5210 .enable_mask = BIT(22),
5211 .hw.init = &(const struct clk_init_data) {
5212 .name = "gcc_qmip_pcie_6_ahb_clk",
5213 .ops = &clk_branch2_ops,
5214 },
5215 },
5216 };
5217
5218 static struct clk_branch gcc_qmip_video_cv_cpu_ahb_clk = {
5219 .halt_reg = 0x32018,
5220 .halt_check = BRANCH_HALT_VOTED,
5221 .hwcg_reg = 0x32018,
5222 .hwcg_bit = 1,
5223 .clkr = {
5224 .enable_reg = 0x32018,
5225 .enable_mask = BIT(0),
5226 .hw.init = &(const struct clk_init_data) {
5227 .name = "gcc_qmip_video_cv_cpu_ahb_clk",
5228 .ops = &clk_branch2_ops,
5229 },
5230 },
5231 };
5232
5233 static struct clk_branch gcc_qmip_video_cvp_ahb_clk = {
5234 .halt_reg = 0x32008,
5235 .halt_check = BRANCH_HALT_VOTED,
5236 .hwcg_reg = 0x32008,
5237 .hwcg_bit = 1,
5238 .clkr = {
5239 .enable_reg = 0x32008,
5240 .enable_mask = BIT(0),
5241 .hw.init = &(const struct clk_init_data) {
5242 .name = "gcc_qmip_video_cvp_ahb_clk",
5243 .ops = &clk_branch2_ops,
5244 },
5245 },
5246 };
5247
5248 static struct clk_branch gcc_qmip_video_v_cpu_ahb_clk = {
5249 .halt_reg = 0x32014,
5250 .halt_check = BRANCH_HALT_VOTED,
5251 .hwcg_reg = 0x32014,
5252 .hwcg_bit = 1,
5253 .clkr = {
5254 .enable_reg = 0x32014,
5255 .enable_mask = BIT(0),
5256 .hw.init = &(const struct clk_init_data) {
5257 .name = "gcc_qmip_video_v_cpu_ahb_clk",
5258 .ops = &clk_branch2_ops,
5259 },
5260 },
5261 };
5262
5263 static struct clk_branch gcc_qmip_video_vcodec1_ahb_clk = {
5264 .halt_reg = 0x32010,
5265 .halt_check = BRANCH_HALT_VOTED,
5266 .hwcg_reg = 0x32010,
5267 .hwcg_bit = 1,
5268 .clkr = {
5269 .enable_reg = 0x32010,
5270 .enable_mask = BIT(0),
5271 .hw.init = &(const struct clk_init_data) {
5272 .name = "gcc_qmip_video_vcodec1_ahb_clk",
5273 .ops = &clk_branch2_ops,
5274 },
5275 },
5276 };
5277
5278 static struct clk_branch gcc_qmip_video_vcodec_ahb_clk = {
5279 .halt_reg = 0x3200c,
5280 .halt_check = BRANCH_HALT_VOTED,
5281 .hwcg_reg = 0x3200c,
5282 .hwcg_bit = 1,
5283 .clkr = {
5284 .enable_reg = 0x3200c,
5285 .enable_mask = BIT(0),
5286 .hw.init = &(const struct clk_init_data) {
5287 .name = "gcc_qmip_video_vcodec_ahb_clk",
5288 .ops = &clk_branch2_ops,
5289 },
5290 },
5291 };
5292
5293 static struct clk_branch gcc_qupv3_oob_core_2x_clk = {
5294 .halt_reg = 0xc5040,
5295 .halt_check = BRANCH_HALT_VOTED,
5296 .clkr = {
5297 .enable_reg = 0x62018,
5298 .enable_mask = BIT(5),
5299 .hw.init = &(const struct clk_init_data) {
5300 .name = "gcc_qupv3_oob_core_2x_clk",
5301 .ops = &clk_branch2_ops,
5302 },
5303 },
5304 };
5305
5306 static struct clk_branch gcc_qupv3_oob_core_clk = {
5307 .halt_reg = 0xc502c,
5308 .halt_check = BRANCH_HALT_VOTED,
5309 .clkr = {
5310 .enable_reg = 0x62018,
5311 .enable_mask = BIT(4),
5312 .hw.init = &(const struct clk_init_data) {
5313 .name = "gcc_qupv3_oob_core_clk",
5314 .ops = &clk_branch2_ops,
5315 },
5316 },
5317 };
5318
5319 static struct clk_branch gcc_qupv3_oob_m_ahb_clk = {
5320 .halt_reg = 0xe7004,
5321 .halt_check = BRANCH_HALT_VOTED,
5322 .hwcg_reg = 0xe7004,
5323 .hwcg_bit = 1,
5324 .clkr = {
5325 .enable_reg = 0xe7004,
5326 .enable_mask = BIT(0),
5327 .hw.init = &(const struct clk_init_data) {
5328 .name = "gcc_qupv3_oob_m_ahb_clk",
5329 .ops = &clk_branch2_ops,
5330 },
5331 },
5332 };
5333
5334 static struct clk_branch gcc_qupv3_oob_qspi_s0_clk = {
5335 .halt_reg = 0xe7040,
5336 .halt_check = BRANCH_HALT_VOTED,
5337 .clkr = {
5338 .enable_reg = 0x62018,
5339 .enable_mask = BIT(9),
5340 .hw.init = &(const struct clk_init_data) {
5341 .name = "gcc_qupv3_oob_qspi_s0_clk",
5342 .parent_hws = (const struct clk_hw*[]) {
5343 &gcc_qupv3_oob_qspi_s0_clk_src.clkr.hw,
5344 },
5345 .num_parents = 1,
5346 .flags = CLK_SET_RATE_PARENT,
5347 .ops = &clk_branch2_ops,
5348 },
5349 },
5350 };
5351
5352 static struct clk_branch gcc_qupv3_oob_qspi_s1_clk = {
5353 .halt_reg = 0xe729c,
5354 .halt_check = BRANCH_HALT_VOTED,
5355 .clkr = {
5356 .enable_reg = 0x62018,
5357 .enable_mask = BIT(10),
5358 .hw.init = &(const struct clk_init_data) {
5359 .name = "gcc_qupv3_oob_qspi_s1_clk",
5360 .parent_hws = (const struct clk_hw*[]) {
5361 &gcc_qupv3_oob_qspi_s1_clk_src.clkr.hw,
5362 },
5363 .num_parents = 1,
5364 .flags = CLK_SET_RATE_PARENT,
5365 .ops = &clk_branch2_ops,
5366 },
5367 },
5368 };
5369
5370 static struct clk_branch gcc_qupv3_oob_s0_clk = {
5371 .halt_reg = 0xe7014,
5372 .halt_check = BRANCH_HALT_VOTED,
5373 .clkr = {
5374 .enable_reg = 0x62018,
5375 .enable_mask = BIT(6),
5376 .hw.init = &(const struct clk_init_data) {
5377 .name = "gcc_qupv3_oob_s0_clk",
5378 .parent_hws = (const struct clk_hw*[]) {
5379 &gcc_qupv3_oob_s0_clk_src.clkr.hw,
5380 },
5381 .num_parents = 1,
5382 .flags = CLK_SET_RATE_PARENT,
5383 .ops = &clk_branch2_ops,
5384 },
5385 },
5386 };
5387
5388 static struct clk_branch gcc_qupv3_oob_s1_clk = {
5389 .halt_reg = 0xe7028,
5390 .halt_check = BRANCH_HALT_VOTED,
5391 .clkr = {
5392 .enable_reg = 0x62018,
5393 .enable_mask = BIT(7),
5394 .hw.init = &(const struct clk_init_data) {
5395 .name = "gcc_qupv3_oob_s1_clk",
5396 .parent_hws = (const struct clk_hw*[]) {
5397 &gcc_qupv3_oob_s1_clk_src.clkr.hw,
5398 },
5399 .num_parents = 1,
5400 .flags = CLK_SET_RATE_PARENT,
5401 .ops = &clk_branch2_ops,
5402 },
5403 },
5404 };
5405
5406 static struct clk_branch gcc_qupv3_oob_s_ahb_clk = {
5407 .halt_reg = 0xc5028,
5408 .halt_check = BRANCH_HALT_VOTED,
5409 .hwcg_reg = 0xc5028,
5410 .hwcg_bit = 1,
5411 .clkr = {
5412 .enable_reg = 0x62018,
5413 .enable_mask = BIT(3),
5414 .hw.init = &(const struct clk_init_data) {
5415 .name = "gcc_qupv3_oob_s_ahb_clk",
5416 .ops = &clk_branch2_ops,
5417 },
5418 },
5419 };
5420
5421 static struct clk_branch gcc_qupv3_oob_tcxo_clk = {
5422 .halt_reg = 0xe703c,
5423 .halt_check = BRANCH_HALT_VOTED,
5424 .clkr = {
5425 .enable_reg = 0x62018,
5426 .enable_mask = BIT(8),
5427 .hw.init = &(const struct clk_init_data) {
5428 .name = "gcc_qupv3_oob_tcxo_clk",
5429 .ops = &clk_branch2_ops,
5430 },
5431 },
5432 };
5433
5434 static struct clk_branch gcc_qupv3_wrap0_core_2x_clk = {
5435 .halt_reg = 0xc5448,
5436 .halt_check = BRANCH_HALT_VOTED,
5437 .clkr = {
5438 .enable_reg = 0x62020,
5439 .enable_mask = BIT(12),
5440 .hw.init = &(const struct clk_init_data) {
5441 .name = "gcc_qupv3_wrap0_core_2x_clk",
5442 .ops = &clk_branch2_ops,
5443 },
5444 },
5445 };
5446
5447 static struct clk_branch gcc_qupv3_wrap0_core_clk = {
5448 .halt_reg = 0xc5434,
5449 .halt_check = BRANCH_HALT_VOTED,
5450 .clkr = {
5451 .enable_reg = 0x62020,
5452 .enable_mask = BIT(11),
5453 .hw.init = &(const struct clk_init_data) {
5454 .name = "gcc_qupv3_wrap0_core_clk",
5455 .ops = &clk_branch2_ops,
5456 },
5457 },
5458 };
5459
5460 static struct clk_branch gcc_qupv3_wrap0_qspi_s2_clk = {
5461 .halt_reg = 0x2879c,
5462 .halt_check = BRANCH_HALT_VOTED,
5463 .clkr = {
5464 .enable_reg = 0x62020,
5465 .enable_mask = BIT(22),
5466 .hw.init = &(const struct clk_init_data) {
5467 .name = "gcc_qupv3_wrap0_qspi_s2_clk",
5468 .parent_hws = (const struct clk_hw*[]) {
5469 &gcc_qupv3_wrap0_qspi_s2_clk_src.clkr.hw,
5470 },
5471 .num_parents = 1,
5472 .flags = CLK_SET_RATE_PARENT,
5473 .ops = &clk_branch2_ops,
5474 },
5475 },
5476 };
5477
5478 static struct clk_branch gcc_qupv3_wrap0_qspi_s3_clk = {
5479 .halt_reg = 0x288cc,
5480 .halt_check = BRANCH_HALT_VOTED,
5481 .clkr = {
5482 .enable_reg = 0x62020,
5483 .enable_mask = BIT(23),
5484 .hw.init = &(const struct clk_init_data) {
5485 .name = "gcc_qupv3_wrap0_qspi_s3_clk",
5486 .parent_hws = (const struct clk_hw*[]) {
5487 &gcc_qupv3_wrap0_qspi_s3_clk_src.clkr.hw,
5488 },
5489 .num_parents = 1,
5490 .flags = CLK_SET_RATE_PARENT,
5491 .ops = &clk_branch2_ops,
5492 },
5493 },
5494 };
5495
5496 static struct clk_branch gcc_qupv3_wrap0_qspi_s6_clk = {
5497 .halt_reg = 0x28798,
5498 .halt_check = BRANCH_HALT_VOTED,
5499 .clkr = {
5500 .enable_reg = 0x62020,
5501 .enable_mask = BIT(21),
5502 .hw.init = &(const struct clk_init_data) {
5503 .name = "gcc_qupv3_wrap0_qspi_s6_clk",
5504 .parent_hws = (const struct clk_hw*[]) {
5505 &gcc_qupv3_wrap0_qspi_s6_clk_src.clkr.hw,
5506 },
5507 .num_parents = 1,
5508 .flags = CLK_SET_RATE_PARENT,
5509 .ops = &clk_branch2_ops,
5510 },
5511 },
5512 };
5513
5514 static struct clk_branch gcc_qupv3_wrap0_s0_clk = {
5515 .halt_reg = 0x28004,
5516 .halt_check = BRANCH_HALT_VOTED,
5517 .clkr = {
5518 .enable_reg = 0x62020,
5519 .enable_mask = BIT(13),
5520 .hw.init = &(const struct clk_init_data) {
5521 .name = "gcc_qupv3_wrap0_s0_clk",
5522 .parent_hws = (const struct clk_hw*[]) {
5523 &gcc_qupv3_wrap0_s0_clk_src.clkr.hw,
5524 },
5525 .num_parents = 1,
5526 .flags = CLK_SET_RATE_PARENT,
5527 .ops = &clk_branch2_ops,
5528 },
5529 },
5530 };
5531
5532 static struct clk_branch gcc_qupv3_wrap0_s1_clk = {
5533 .halt_reg = 0x28140,
5534 .halt_check = BRANCH_HALT_VOTED,
5535 .clkr = {
5536 .enable_reg = 0x62020,
5537 .enable_mask = BIT(14),
5538 .hw.init = &(const struct clk_init_data) {
5539 .name = "gcc_qupv3_wrap0_s1_clk",
5540 .parent_hws = (const struct clk_hw*[]) {
5541 &gcc_qupv3_wrap0_s1_clk_src.clkr.hw,
5542 },
5543 .num_parents = 1,
5544 .flags = CLK_SET_RATE_PARENT,
5545 .ops = &clk_branch2_ops,
5546 },
5547 },
5548 };
5549
5550 static struct clk_branch gcc_qupv3_wrap0_s2_clk = {
5551 .halt_reg = 0x2827c,
5552 .halt_check = BRANCH_HALT_VOTED,
5553 .clkr = {
5554 .enable_reg = 0x62020,
5555 .enable_mask = BIT(15),
5556 .hw.init = &(const struct clk_init_data) {
5557 .name = "gcc_qupv3_wrap0_s2_clk",
5558 .parent_hws = (const struct clk_hw*[]) {
5559 &gcc_qupv3_wrap0_s2_clk_src.clkr.hw,
5560 },
5561 .num_parents = 1,
5562 .flags = CLK_SET_RATE_PARENT,
5563 .ops = &clk_branch2_ops,
5564 },
5565 },
5566 };
5567
5568 static struct clk_branch gcc_qupv3_wrap0_s3_clk = {
5569 .halt_reg = 0x28290,
5570 .halt_check = BRANCH_HALT_VOTED,
5571 .clkr = {
5572 .enable_reg = 0x62020,
5573 .enable_mask = BIT(16),
5574 .hw.init = &(const struct clk_init_data) {
5575 .name = "gcc_qupv3_wrap0_s3_clk",
5576 .parent_hws = (const struct clk_hw*[]) {
5577 &gcc_qupv3_wrap0_s3_clk_src.clkr.hw,
5578 },
5579 .num_parents = 1,
5580 .flags = CLK_SET_RATE_PARENT,
5581 .ops = &clk_branch2_ops,
5582 },
5583 },
5584 };
5585
5586 static struct clk_branch gcc_qupv3_wrap0_s4_clk = {
5587 .halt_reg = 0x282a4,
5588 .halt_check = BRANCH_HALT_VOTED,
5589 .clkr = {
5590 .enable_reg = 0x62020,
5591 .enable_mask = BIT(17),
5592 .hw.init = &(const struct clk_init_data) {
5593 .name = "gcc_qupv3_wrap0_s4_clk",
5594 .parent_hws = (const struct clk_hw*[]) {
5595 &gcc_qupv3_wrap0_s4_clk_src.clkr.hw,
5596 },
5597 .num_parents = 1,
5598 .flags = CLK_SET_RATE_PARENT,
5599 .ops = &clk_branch2_ops,
5600 },
5601 },
5602 };
5603
5604 static struct clk_branch gcc_qupv3_wrap0_s5_clk = {
5605 .halt_reg = 0x283e0,
5606 .halt_check = BRANCH_HALT_VOTED,
5607 .clkr = {
5608 .enable_reg = 0x62020,
5609 .enable_mask = BIT(18),
5610 .hw.init = &(const struct clk_init_data) {
5611 .name = "gcc_qupv3_wrap0_s5_clk",
5612 .parent_hws = (const struct clk_hw*[]) {
5613 &gcc_qupv3_wrap0_s5_clk_src.clkr.hw,
5614 },
5615 .num_parents = 1,
5616 .flags = CLK_SET_RATE_PARENT,
5617 .ops = &clk_branch2_ops,
5618 },
5619 },
5620 };
5621
5622 static struct clk_branch gcc_qupv3_wrap0_s6_clk = {
5623 .halt_reg = 0x2851c,
5624 .halt_check = BRANCH_HALT_VOTED,
5625 .clkr = {
5626 .enable_reg = 0x62020,
5627 .enable_mask = BIT(19),
5628 .hw.init = &(const struct clk_init_data) {
5629 .name = "gcc_qupv3_wrap0_s6_clk",
5630 .parent_hws = (const struct clk_hw*[]) {
5631 &gcc_qupv3_wrap0_s6_clk_src.clkr.hw,
5632 },
5633 .num_parents = 1,
5634 .flags = CLK_SET_RATE_PARENT,
5635 .ops = &clk_branch2_ops,
5636 },
5637 },
5638 };
5639
5640 static struct clk_branch gcc_qupv3_wrap0_s7_clk = {
5641 .halt_reg = 0x28530,
5642 .halt_check = BRANCH_HALT_VOTED,
5643 .clkr = {
5644 .enable_reg = 0x62020,
5645 .enable_mask = BIT(20),
5646 .hw.init = &(const struct clk_init_data) {
5647 .name = "gcc_qupv3_wrap0_s7_clk",
5648 .parent_hws = (const struct clk_hw*[]) {
5649 &gcc_qupv3_wrap0_s7_clk_src.clkr.hw,
5650 },
5651 .num_parents = 1,
5652 .flags = CLK_SET_RATE_PARENT,
5653 .ops = &clk_branch2_ops,
5654 },
5655 },
5656 };
5657
5658 static struct clk_branch gcc_qupv3_wrap1_core_2x_clk = {
5659 .halt_reg = 0xc5198,
5660 .halt_check = BRANCH_HALT_VOTED,
5661 .clkr = {
5662 .enable_reg = 0x62018,
5663 .enable_mask = BIT(14),
5664 .hw.init = &(const struct clk_init_data) {
5665 .name = "gcc_qupv3_wrap1_core_2x_clk",
5666 .ops = &clk_branch2_ops,
5667 },
5668 },
5669 };
5670
5671 static struct clk_branch gcc_qupv3_wrap1_core_clk = {
5672 .halt_reg = 0xc5184,
5673 .halt_check = BRANCH_HALT_VOTED,
5674 .clkr = {
5675 .enable_reg = 0x62018,
5676 .enable_mask = BIT(13),
5677 .hw.init = &(const struct clk_init_data) {
5678 .name = "gcc_qupv3_wrap1_core_clk",
5679 .ops = &clk_branch2_ops,
5680 },
5681 },
5682 };
5683
5684 static struct clk_branch gcc_qupv3_wrap1_qspi_s2_clk = {
5685 .halt_reg = 0xb379c,
5686 .halt_check = BRANCH_HALT_VOTED,
5687 .clkr = {
5688 .enable_reg = 0x62018,
5689 .enable_mask = BIT(24),
5690 .hw.init = &(const struct clk_init_data) {
5691 .name = "gcc_qupv3_wrap1_qspi_s2_clk",
5692 .parent_hws = (const struct clk_hw*[]) {
5693 &gcc_qupv3_wrap1_qspi_s2_clk_src.clkr.hw,
5694 },
5695 .num_parents = 1,
5696 .flags = CLK_SET_RATE_PARENT,
5697 .ops = &clk_branch2_ops,
5698 },
5699 },
5700 };
5701
5702 static struct clk_branch gcc_qupv3_wrap1_qspi_s3_clk = {
5703 .halt_reg = 0xb38cc,
5704 .halt_check = BRANCH_HALT_VOTED,
5705 .clkr = {
5706 .enable_reg = 0x62018,
5707 .enable_mask = BIT(25),
5708 .hw.init = &(const struct clk_init_data) {
5709 .name = "gcc_qupv3_wrap1_qspi_s3_clk",
5710 .parent_hws = (const struct clk_hw*[]) {
5711 &gcc_qupv3_wrap1_qspi_s3_clk_src.clkr.hw,
5712 },
5713 .num_parents = 1,
5714 .flags = CLK_SET_RATE_PARENT,
5715 .ops = &clk_branch2_ops,
5716 },
5717 },
5718 };
5719
5720 static struct clk_branch gcc_qupv3_wrap1_qspi_s6_clk = {
5721 .halt_reg = 0xb3798,
5722 .halt_check = BRANCH_HALT_VOTED,
5723 .clkr = {
5724 .enable_reg = 0x62018,
5725 .enable_mask = BIT(23),
5726 .hw.init = &(const struct clk_init_data) {
5727 .name = "gcc_qupv3_wrap1_qspi_s6_clk",
5728 .parent_hws = (const struct clk_hw*[]) {
5729 &gcc_qupv3_wrap1_qspi_s6_clk_src.clkr.hw,
5730 },
5731 .num_parents = 1,
5732 .flags = CLK_SET_RATE_PARENT,
5733 .ops = &clk_branch2_ops,
5734 },
5735 },
5736 };
5737
5738 static struct clk_branch gcc_qupv3_wrap1_s0_clk = {
5739 .halt_reg = 0xb3004,
5740 .halt_check = BRANCH_HALT_VOTED,
5741 .clkr = {
5742 .enable_reg = 0x62018,
5743 .enable_mask = BIT(15),
5744 .hw.init = &(const struct clk_init_data) {
5745 .name = "gcc_qupv3_wrap1_s0_clk",
5746 .parent_hws = (const struct clk_hw*[]) {
5747 &gcc_qupv3_wrap1_s0_clk_src.clkr.hw,
5748 },
5749 .num_parents = 1,
5750 .flags = CLK_SET_RATE_PARENT,
5751 .ops = &clk_branch2_ops,
5752 },
5753 },
5754 };
5755
5756 static struct clk_branch gcc_qupv3_wrap1_s1_clk = {
5757 .halt_reg = 0xb3140,
5758 .halt_check = BRANCH_HALT_VOTED,
5759 .clkr = {
5760 .enable_reg = 0x62018,
5761 .enable_mask = BIT(16),
5762 .hw.init = &(const struct clk_init_data) {
5763 .name = "gcc_qupv3_wrap1_s1_clk",
5764 .parent_hws = (const struct clk_hw*[]) {
5765 &gcc_qupv3_wrap1_s1_clk_src.clkr.hw,
5766 },
5767 .num_parents = 1,
5768 .flags = CLK_SET_RATE_PARENT,
5769 .ops = &clk_branch2_ops,
5770 },
5771 },
5772 };
5773
5774 static struct clk_branch gcc_qupv3_wrap1_s2_clk = {
5775 .halt_reg = 0xb327c,
5776 .halt_check = BRANCH_HALT_VOTED,
5777 .clkr = {
5778 .enable_reg = 0x62018,
5779 .enable_mask = BIT(17),
5780 .hw.init = &(const struct clk_init_data) {
5781 .name = "gcc_qupv3_wrap1_s2_clk",
5782 .parent_hws = (const struct clk_hw*[]) {
5783 &gcc_qupv3_wrap1_s2_clk_src.clkr.hw,
5784 },
5785 .num_parents = 1,
5786 .flags = CLK_SET_RATE_PARENT,
5787 .ops = &clk_branch2_ops,
5788 },
5789 },
5790 };
5791
5792 static struct clk_branch gcc_qupv3_wrap1_s3_clk = {
5793 .halt_reg = 0xb3290,
5794 .halt_check = BRANCH_HALT_VOTED,
5795 .clkr = {
5796 .enable_reg = 0x62018,
5797 .enable_mask = BIT(18),
5798 .hw.init = &(const struct clk_init_data) {
5799 .name = "gcc_qupv3_wrap1_s3_clk",
5800 .parent_hws = (const struct clk_hw*[]) {
5801 &gcc_qupv3_wrap1_s3_clk_src.clkr.hw,
5802 },
5803 .num_parents = 1,
5804 .flags = CLK_SET_RATE_PARENT,
5805 .ops = &clk_branch2_ops,
5806 },
5807 },
5808 };
5809
5810 static struct clk_branch gcc_qupv3_wrap1_s4_clk = {
5811 .halt_reg = 0xb32a4,
5812 .halt_check = BRANCH_HALT_VOTED,
5813 .clkr = {
5814 .enable_reg = 0x62018,
5815 .enable_mask = BIT(19),
5816 .hw.init = &(const struct clk_init_data) {
5817 .name = "gcc_qupv3_wrap1_s4_clk",
5818 .parent_hws = (const struct clk_hw*[]) {
5819 &gcc_qupv3_wrap1_s4_clk_src.clkr.hw,
5820 },
5821 .num_parents = 1,
5822 .flags = CLK_SET_RATE_PARENT,
5823 .ops = &clk_branch2_ops,
5824 },
5825 },
5826 };
5827
5828 static struct clk_branch gcc_qupv3_wrap1_s5_clk = {
5829 .halt_reg = 0xb33e0,
5830 .halt_check = BRANCH_HALT_VOTED,
5831 .clkr = {
5832 .enable_reg = 0x62018,
5833 .enable_mask = BIT(20),
5834 .hw.init = &(const struct clk_init_data) {
5835 .name = "gcc_qupv3_wrap1_s5_clk",
5836 .parent_hws = (const struct clk_hw*[]) {
5837 &gcc_qupv3_wrap1_s5_clk_src.clkr.hw,
5838 },
5839 .num_parents = 1,
5840 .flags = CLK_SET_RATE_PARENT,
5841 .ops = &clk_branch2_ops,
5842 },
5843 },
5844 };
5845
5846 static struct clk_branch gcc_qupv3_wrap1_s6_clk = {
5847 .halt_reg = 0xb351c,
5848 .halt_check = BRANCH_HALT_VOTED,
5849 .clkr = {
5850 .enable_reg = 0x62018,
5851 .enable_mask = BIT(21),
5852 .hw.init = &(const struct clk_init_data) {
5853 .name = "gcc_qupv3_wrap1_s6_clk",
5854 .parent_hws = (const struct clk_hw*[]) {
5855 &gcc_qupv3_wrap1_s6_clk_src.clkr.hw,
5856 },
5857 .num_parents = 1,
5858 .flags = CLK_SET_RATE_PARENT,
5859 .ops = &clk_branch2_ops,
5860 },
5861 },
5862 };
5863
5864 static struct clk_branch gcc_qupv3_wrap1_s7_clk = {
5865 .halt_reg = 0xb3530,
5866 .halt_check = BRANCH_HALT_VOTED,
5867 .clkr = {
5868 .enable_reg = 0x62018,
5869 .enable_mask = BIT(22),
5870 .hw.init = &(const struct clk_init_data) {
5871 .name = "gcc_qupv3_wrap1_s7_clk",
5872 .parent_hws = (const struct clk_hw*[]) {
5873 &gcc_qupv3_wrap1_s7_clk_src.clkr.hw,
5874 },
5875 .num_parents = 1,
5876 .flags = CLK_SET_RATE_PARENT,
5877 .ops = &clk_branch2_ops,
5878 },
5879 },
5880 };
5881
5882 static struct clk_branch gcc_qupv3_wrap2_core_2x_clk = {
5883 .halt_reg = 0xc52f0,
5884 .halt_check = BRANCH_HALT_VOTED,
5885 .clkr = {
5886 .enable_reg = 0x62018,
5887 .enable_mask = BIT(29),
5888 .hw.init = &(const struct clk_init_data) {
5889 .name = "gcc_qupv3_wrap2_core_2x_clk",
5890 .ops = &clk_branch2_ops,
5891 },
5892 },
5893 };
5894
5895 static struct clk_branch gcc_qupv3_wrap2_core_clk = {
5896 .halt_reg = 0xc52dc,
5897 .halt_check = BRANCH_HALT_VOTED,
5898 .clkr = {
5899 .enable_reg = 0x62018,
5900 .enable_mask = BIT(28),
5901 .hw.init = &(const struct clk_init_data) {
5902 .name = "gcc_qupv3_wrap2_core_clk",
5903 .ops = &clk_branch2_ops,
5904 },
5905 },
5906 };
5907
5908 static struct clk_branch gcc_qupv3_wrap2_qspi_s2_clk = {
5909 .halt_reg = 0xb479c,
5910 .halt_check = BRANCH_HALT_VOTED,
5911 .clkr = {
5912 .enable_reg = 0x62020,
5913 .enable_mask = BIT(7),
5914 .hw.init = &(const struct clk_init_data) {
5915 .name = "gcc_qupv3_wrap2_qspi_s2_clk",
5916 .parent_hws = (const struct clk_hw*[]) {
5917 &gcc_qupv3_wrap2_qspi_s2_clk_src.clkr.hw,
5918 },
5919 .num_parents = 1,
5920 .flags = CLK_SET_RATE_PARENT,
5921 .ops = &clk_branch2_ops,
5922 },
5923 },
5924 };
5925
5926 static struct clk_branch gcc_qupv3_wrap2_qspi_s3_clk = {
5927 .halt_reg = 0xb48cc,
5928 .halt_check = BRANCH_HALT_VOTED,
5929 .clkr = {
5930 .enable_reg = 0x62020,
5931 .enable_mask = BIT(8),
5932 .hw.init = &(const struct clk_init_data) {
5933 .name = "gcc_qupv3_wrap2_qspi_s3_clk",
5934 .parent_hws = (const struct clk_hw*[]) {
5935 &gcc_qupv3_wrap2_qspi_s3_clk_src.clkr.hw,
5936 },
5937 .num_parents = 1,
5938 .flags = CLK_SET_RATE_PARENT,
5939 .ops = &clk_branch2_ops,
5940 },
5941 },
5942 };
5943
5944 static struct clk_branch gcc_qupv3_wrap2_qspi_s6_clk = {
5945 .halt_reg = 0xb4798,
5946 .halt_check = BRANCH_HALT_VOTED,
5947 .clkr = {
5948 .enable_reg = 0x62020,
5949 .enable_mask = BIT(6),
5950 .hw.init = &(const struct clk_init_data) {
5951 .name = "gcc_qupv3_wrap2_qspi_s6_clk",
5952 .parent_hws = (const struct clk_hw*[]) {
5953 &gcc_qupv3_wrap2_qspi_s6_clk_src.clkr.hw,
5954 },
5955 .num_parents = 1,
5956 .flags = CLK_SET_RATE_PARENT,
5957 .ops = &clk_branch2_ops,
5958 },
5959 },
5960 };
5961
5962 static struct clk_branch gcc_qupv3_wrap2_s0_clk = {
5963 .halt_reg = 0xb4004,
5964 .halt_check = BRANCH_HALT_VOTED,
5965 .clkr = {
5966 .enable_reg = 0x62018,
5967 .enable_mask = BIT(30),
5968 .hw.init = &(const struct clk_init_data) {
5969 .name = "gcc_qupv3_wrap2_s0_clk",
5970 .parent_hws = (const struct clk_hw*[]) {
5971 &gcc_qupv3_wrap2_s0_clk_src.clkr.hw,
5972 },
5973 .num_parents = 1,
5974 .flags = CLK_SET_RATE_PARENT,
5975 .ops = &clk_branch2_ops,
5976 },
5977 },
5978 };
5979
5980 static struct clk_branch gcc_qupv3_wrap2_s1_clk = {
5981 .halt_reg = 0xb4140,
5982 .halt_check = BRANCH_HALT_VOTED,
5983 .clkr = {
5984 .enable_reg = 0x62018,
5985 .enable_mask = BIT(31),
5986 .hw.init = &(const struct clk_init_data) {
5987 .name = "gcc_qupv3_wrap2_s1_clk",
5988 .parent_hws = (const struct clk_hw*[]) {
5989 &gcc_qupv3_wrap2_s1_clk_src.clkr.hw,
5990 },
5991 .num_parents = 1,
5992 .flags = CLK_SET_RATE_PARENT,
5993 .ops = &clk_branch2_ops,
5994 },
5995 },
5996 };
5997
5998 static struct clk_branch gcc_qupv3_wrap2_s2_clk = {
5999 .halt_reg = 0xb427c,
6000 .halt_check = BRANCH_HALT_VOTED,
6001 .clkr = {
6002 .enable_reg = 0x62020,
6003 .enable_mask = BIT(0),
6004 .hw.init = &(const struct clk_init_data) {
6005 .name = "gcc_qupv3_wrap2_s2_clk",
6006 .parent_hws = (const struct clk_hw*[]) {
6007 &gcc_qupv3_wrap2_s2_clk_src.clkr.hw,
6008 },
6009 .num_parents = 1,
6010 .flags = CLK_SET_RATE_PARENT,
6011 .ops = &clk_branch2_ops,
6012 },
6013 },
6014 };
6015
6016 static struct clk_branch gcc_qupv3_wrap2_s3_clk = {
6017 .halt_reg = 0xb4290,
6018 .halt_check = BRANCH_HALT_VOTED,
6019 .clkr = {
6020 .enable_reg = 0x62020,
6021 .enable_mask = BIT(1),
6022 .hw.init = &(const struct clk_init_data) {
6023 .name = "gcc_qupv3_wrap2_s3_clk",
6024 .parent_hws = (const struct clk_hw*[]) {
6025 &gcc_qupv3_wrap2_s3_clk_src.clkr.hw,
6026 },
6027 .num_parents = 1,
6028 .flags = CLK_SET_RATE_PARENT,
6029 .ops = &clk_branch2_ops,
6030 },
6031 },
6032 };
6033
6034 static struct clk_branch gcc_qupv3_wrap2_s4_clk = {
6035 .halt_reg = 0xb42a4,
6036 .halt_check = BRANCH_HALT_VOTED,
6037 .clkr = {
6038 .enable_reg = 0x62020,
6039 .enable_mask = BIT(2),
6040 .hw.init = &(const struct clk_init_data) {
6041 .name = "gcc_qupv3_wrap2_s4_clk",
6042 .parent_hws = (const struct clk_hw*[]) {
6043 &gcc_qupv3_wrap2_s4_clk_src.clkr.hw,
6044 },
6045 .num_parents = 1,
6046 .flags = CLK_SET_RATE_PARENT,
6047 .ops = &clk_branch2_ops,
6048 },
6049 },
6050 };
6051
6052 static struct clk_branch gcc_qupv3_wrap2_s5_clk = {
6053 .halt_reg = 0xb43e0,
6054 .halt_check = BRANCH_HALT_VOTED,
6055 .clkr = {
6056 .enable_reg = 0x62020,
6057 .enable_mask = BIT(3),
6058 .hw.init = &(const struct clk_init_data) {
6059 .name = "gcc_qupv3_wrap2_s5_clk",
6060 .parent_hws = (const struct clk_hw*[]) {
6061 &gcc_qupv3_wrap2_s5_clk_src.clkr.hw,
6062 },
6063 .num_parents = 1,
6064 .flags = CLK_SET_RATE_PARENT,
6065 .ops = &clk_branch2_ops,
6066 },
6067 },
6068 };
6069
6070 static struct clk_branch gcc_qupv3_wrap2_s6_clk = {
6071 .halt_reg = 0xb451c,
6072 .halt_check = BRANCH_HALT_VOTED,
6073 .clkr = {
6074 .enable_reg = 0x62020,
6075 .enable_mask = BIT(4),
6076 .hw.init = &(const struct clk_init_data) {
6077 .name = "gcc_qupv3_wrap2_s6_clk",
6078 .parent_hws = (const struct clk_hw*[]) {
6079 &gcc_qupv3_wrap2_s6_clk_src.clkr.hw,
6080 },
6081 .num_parents = 1,
6082 .flags = CLK_SET_RATE_PARENT,
6083 .ops = &clk_branch2_ops,
6084 },
6085 },
6086 };
6087
6088 static struct clk_branch gcc_qupv3_wrap2_s7_clk = {
6089 .halt_reg = 0xb4530,
6090 .halt_check = BRANCH_HALT_VOTED,
6091 .clkr = {
6092 .enable_reg = 0x62020,
6093 .enable_mask = BIT(5),
6094 .hw.init = &(const struct clk_init_data) {
6095 .name = "gcc_qupv3_wrap2_s7_clk",
6096 .parent_hws = (const struct clk_hw*[]) {
6097 &gcc_qupv3_wrap2_s7_clk_src.clkr.hw,
6098 },
6099 .num_parents = 1,
6100 .flags = CLK_SET_RATE_PARENT,
6101 .ops = &clk_branch2_ops,
6102 },
6103 },
6104 };
6105
6106 static struct clk_branch gcc_qupv3_wrap_0_m_ahb_clk = {
6107 .halt_reg = 0xc542c,
6108 .halt_check = BRANCH_HALT_VOTED,
6109 .hwcg_reg = 0xc542c,
6110 .hwcg_bit = 1,
6111 .clkr = {
6112 .enable_reg = 0x62020,
6113 .enable_mask = BIT(9),
6114 .hw.init = &(const struct clk_init_data) {
6115 .name = "gcc_qupv3_wrap_0_m_ahb_clk",
6116 .ops = &clk_branch2_ops,
6117 },
6118 },
6119 };
6120
6121 static struct clk_branch gcc_qupv3_wrap_0_s_ahb_clk = {
6122 .halt_reg = 0xc5430,
6123 .halt_check = BRANCH_HALT_VOTED,
6124 .hwcg_reg = 0xc5430,
6125 .hwcg_bit = 1,
6126 .clkr = {
6127 .enable_reg = 0x62020,
6128 .enable_mask = BIT(10),
6129 .hw.init = &(const struct clk_init_data) {
6130 .name = "gcc_qupv3_wrap_0_s_ahb_clk",
6131 .ops = &clk_branch2_ops,
6132 },
6133 },
6134 };
6135
6136 static struct clk_branch gcc_qupv3_wrap_1_m_ahb_clk = {
6137 .halt_reg = 0xc517c,
6138 .halt_check = BRANCH_HALT_VOTED,
6139 .hwcg_reg = 0xc517c,
6140 .hwcg_bit = 1,
6141 .clkr = {
6142 .enable_reg = 0x62018,
6143 .enable_mask = BIT(11),
6144 .hw.init = &(const struct clk_init_data) {
6145 .name = "gcc_qupv3_wrap_1_m_ahb_clk",
6146 .ops = &clk_branch2_ops,
6147 },
6148 },
6149 };
6150
6151 static struct clk_branch gcc_qupv3_wrap_1_s_ahb_clk = {
6152 .halt_reg = 0xc5180,
6153 .halt_check = BRANCH_HALT_VOTED,
6154 .hwcg_reg = 0xc5180,
6155 .hwcg_bit = 1,
6156 .clkr = {
6157 .enable_reg = 0x62018,
6158 .enable_mask = BIT(12),
6159 .hw.init = &(const struct clk_init_data) {
6160 .name = "gcc_qupv3_wrap_1_s_ahb_clk",
6161 .ops = &clk_branch2_ops,
6162 },
6163 },
6164 };
6165
6166 static struct clk_branch gcc_qupv3_wrap_2_m_ahb_clk = {
6167 .halt_reg = 0xc52d4,
6168 .halt_check = BRANCH_HALT_VOTED,
6169 .hwcg_reg = 0xc52d4,
6170 .hwcg_bit = 1,
6171 .clkr = {
6172 .enable_reg = 0x62018,
6173 .enable_mask = BIT(26),
6174 .hw.init = &(const struct clk_init_data) {
6175 .name = "gcc_qupv3_wrap_2_m_ahb_clk",
6176 .ops = &clk_branch2_ops,
6177 },
6178 },
6179 };
6180
6181 static struct clk_branch gcc_qupv3_wrap_2_s_ahb_clk = {
6182 .halt_reg = 0xc52d8,
6183 .halt_check = BRANCH_HALT_VOTED,
6184 .hwcg_reg = 0xc52d8,
6185 .hwcg_bit = 1,
6186 .clkr = {
6187 .enable_reg = 0x62018,
6188 .enable_mask = BIT(27),
6189 .hw.init = &(const struct clk_init_data) {
6190 .name = "gcc_qupv3_wrap_2_s_ahb_clk",
6191 .ops = &clk_branch2_ops,
6192 },
6193 },
6194 };
6195
6196 static struct clk_branch gcc_sdcc2_ahb_clk = {
6197 .halt_reg = 0xb0014,
6198 .halt_check = BRANCH_HALT,
6199 .clkr = {
6200 .enable_reg = 0xb0014,
6201 .enable_mask = BIT(0),
6202 .hw.init = &(const struct clk_init_data) {
6203 .name = "gcc_sdcc2_ahb_clk",
6204 .ops = &clk_branch2_ops,
6205 },
6206 },
6207 };
6208
6209 static struct clk_branch gcc_sdcc2_apps_clk = {
6210 .halt_reg = 0xb0004,
6211 .halt_check = BRANCH_HALT,
6212 .clkr = {
6213 .enable_reg = 0xb0004,
6214 .enable_mask = BIT(0),
6215 .hw.init = &(const struct clk_init_data) {
6216 .name = "gcc_sdcc2_apps_clk",
6217 .parent_hws = (const struct clk_hw*[]) {
6218 &gcc_sdcc2_apps_clk_src.clkr.hw,
6219 },
6220 .num_parents = 1,
6221 .flags = CLK_SET_RATE_PARENT,
6222 .ops = &clk_branch2_ops,
6223 },
6224 },
6225 };
6226
6227 static struct clk_branch gcc_sdcc4_ahb_clk = {
6228 .halt_reg = 0xdf014,
6229 .halt_check = BRANCH_HALT,
6230 .clkr = {
6231 .enable_reg = 0xdf014,
6232 .enable_mask = BIT(0),
6233 .hw.init = &(const struct clk_init_data) {
6234 .name = "gcc_sdcc4_ahb_clk",
6235 .ops = &clk_branch2_ops,
6236 },
6237 },
6238 };
6239
6240 static struct clk_branch gcc_sdcc4_apps_clk = {
6241 .halt_reg = 0xdf004,
6242 .halt_check = BRANCH_HALT,
6243 .clkr = {
6244 .enable_reg = 0xdf004,
6245 .enable_mask = BIT(0),
6246 .hw.init = &(const struct clk_init_data) {
6247 .name = "gcc_sdcc4_apps_clk",
6248 .parent_hws = (const struct clk_hw*[]) {
6249 &gcc_sdcc4_apps_clk_src.clkr.hw,
6250 },
6251 .num_parents = 1,
6252 .flags = CLK_SET_RATE_PARENT,
6253 .ops = &clk_branch2_ops,
6254 },
6255 },
6256 };
6257
6258 static struct clk_branch gcc_ufs_phy_ahb_clk = {
6259 .halt_reg = 0xba504,
6260 .halt_check = BRANCH_HALT_VOTED,
6261 .hwcg_reg = 0xba504,
6262 .hwcg_bit = 1,
6263 .clkr = {
6264 .enable_reg = 0xba504,
6265 .enable_mask = BIT(0),
6266 .hw.init = &(const struct clk_init_data) {
6267 .name = "gcc_ufs_phy_ahb_clk",
6268 .ops = &clk_branch2_ops,
6269 },
6270 },
6271 };
6272
6273 static struct clk_branch gcc_ufs_phy_axi_clk = {
6274 .halt_reg = 0x7701c,
6275 .halt_check = BRANCH_HALT_VOTED,
6276 .hwcg_reg = 0x7701c,
6277 .hwcg_bit = 1,
6278 .clkr = {
6279 .enable_reg = 0x7701c,
6280 .enable_mask = BIT(0),
6281 .hw.init = &(const struct clk_init_data) {
6282 .name = "gcc_ufs_phy_axi_clk",
6283 .parent_hws = (const struct clk_hw*[]) {
6284 &gcc_ufs_phy_axi_clk_src.clkr.hw,
6285 },
6286 .num_parents = 1,
6287 .flags = CLK_SET_RATE_PARENT,
6288 .ops = &clk_branch2_ops,
6289 },
6290 },
6291 };
6292
6293 static struct clk_branch gcc_ufs_phy_ice_core_clk = {
6294 .halt_reg = 0x77080,
6295 .halt_check = BRANCH_HALT_VOTED,
6296 .hwcg_reg = 0x77080,
6297 .hwcg_bit = 1,
6298 .clkr = {
6299 .enable_reg = 0x77080,
6300 .enable_mask = BIT(0),
6301 .hw.init = &(const struct clk_init_data) {
6302 .name = "gcc_ufs_phy_ice_core_clk",
6303 .parent_hws = (const struct clk_hw*[]) {
6304 &gcc_ufs_phy_ice_core_clk_src.clkr.hw,
6305 },
6306 .num_parents = 1,
6307 .flags = CLK_SET_RATE_PARENT,
6308 .ops = &clk_branch2_ops,
6309 },
6310 },
6311 };
6312
6313 static struct clk_branch gcc_ufs_phy_phy_aux_clk = {
6314 .halt_reg = 0x770c0,
6315 .halt_check = BRANCH_HALT_VOTED,
6316 .hwcg_reg = 0x770c0,
6317 .hwcg_bit = 1,
6318 .clkr = {
6319 .enable_reg = 0x770c0,
6320 .enable_mask = BIT(0),
6321 .hw.init = &(const struct clk_init_data) {
6322 .name = "gcc_ufs_phy_phy_aux_clk",
6323 .parent_hws = (const struct clk_hw*[]) {
6324 &gcc_ufs_phy_phy_aux_clk_src.clkr.hw,
6325 },
6326 .num_parents = 1,
6327 .flags = CLK_SET_RATE_PARENT,
6328 .ops = &clk_branch2_ops,
6329 },
6330 },
6331 };
6332
6333 static struct clk_branch gcc_ufs_phy_rx_symbol_0_clk = {
6334 .halt_reg = 0x77034,
6335 .halt_check = BRANCH_HALT_DELAY,
6336 .clkr = {
6337 .enable_reg = 0x77034,
6338 .enable_mask = BIT(0),
6339 .hw.init = &(const struct clk_init_data) {
6340 .name = "gcc_ufs_phy_rx_symbol_0_clk",
6341 .parent_hws = (const struct clk_hw*[]) {
6342 &gcc_ufs_phy_rx_symbol_0_clk_src.clkr.hw,
6343 },
6344 .num_parents = 1,
6345 .flags = CLK_SET_RATE_PARENT,
6346 .ops = &clk_branch2_ops,
6347 },
6348 },
6349 };
6350
6351 static struct clk_branch gcc_ufs_phy_rx_symbol_1_clk = {
6352 .halt_reg = 0x770dc,
6353 .halt_check = BRANCH_HALT_DELAY,
6354 .clkr = {
6355 .enable_reg = 0x770dc,
6356 .enable_mask = BIT(0),
6357 .hw.init = &(const struct clk_init_data) {
6358 .name = "gcc_ufs_phy_rx_symbol_1_clk",
6359 .parent_hws = (const struct clk_hw*[]) {
6360 &gcc_ufs_phy_rx_symbol_1_clk_src.clkr.hw,
6361 },
6362 .num_parents = 1,
6363 .flags = CLK_SET_RATE_PARENT,
6364 .ops = &clk_branch2_ops,
6365 },
6366 },
6367 };
6368
6369 static struct clk_branch gcc_ufs_phy_tx_symbol_0_clk = {
6370 .halt_reg = 0x77030,
6371 .halt_check = BRANCH_HALT_DELAY,
6372 .clkr = {
6373 .enable_reg = 0x77030,
6374 .enable_mask = BIT(0),
6375 .hw.init = &(const struct clk_init_data) {
6376 .name = "gcc_ufs_phy_tx_symbol_0_clk",
6377 .parent_hws = (const struct clk_hw*[]) {
6378 &gcc_ufs_phy_tx_symbol_0_clk_src.clkr.hw,
6379 },
6380 .num_parents = 1,
6381 .flags = CLK_SET_RATE_PARENT,
6382 .ops = &clk_branch2_ops,
6383 },
6384 },
6385 };
6386
6387 static struct clk_branch gcc_ufs_phy_unipro_core_clk = {
6388 .halt_reg = 0x77070,
6389 .halt_check = BRANCH_HALT_VOTED,
6390 .hwcg_reg = 0x77070,
6391 .hwcg_bit = 1,
6392 .clkr = {
6393 .enable_reg = 0x77070,
6394 .enable_mask = BIT(0),
6395 .hw.init = &(const struct clk_init_data) {
6396 .name = "gcc_ufs_phy_unipro_core_clk",
6397 .parent_hws = (const struct clk_hw*[]) {
6398 &gcc_ufs_phy_unipro_core_clk_src.clkr.hw,
6399 },
6400 .num_parents = 1,
6401 .flags = CLK_SET_RATE_PARENT,
6402 .ops = &clk_branch2_ops,
6403 },
6404 },
6405 };
6406
6407 static struct clk_branch gcc_usb20_master_clk = {
6408 .halt_reg = 0xbc018,
6409 .halt_check = BRANCH_HALT,
6410 .clkr = {
6411 .enable_reg = 0xbc018,
6412 .enable_mask = BIT(0),
6413 .hw.init = &(const struct clk_init_data) {
6414 .name = "gcc_usb20_master_clk",
6415 .parent_hws = (const struct clk_hw*[]) {
6416 &gcc_usb20_master_clk_src.clkr.hw,
6417 },
6418 .num_parents = 1,
6419 .flags = CLK_SET_RATE_PARENT,
6420 .ops = &clk_branch2_ops,
6421 },
6422 },
6423 };
6424
6425 static struct clk_branch gcc_usb20_mock_utmi_clk = {
6426 .halt_reg = 0xbc02c,
6427 .halt_check = BRANCH_HALT,
6428 .clkr = {
6429 .enable_reg = 0xbc02c,
6430 .enable_mask = BIT(0),
6431 .hw.init = &(const struct clk_init_data) {
6432 .name = "gcc_usb20_mock_utmi_clk",
6433 .parent_hws = (const struct clk_hw*[]) {
6434 &gcc_usb20_mock_utmi_postdiv_clk_src.clkr.hw,
6435 },
6436 .num_parents = 1,
6437 .flags = CLK_SET_RATE_PARENT,
6438 .ops = &clk_branch2_ops,
6439 },
6440 },
6441 };
6442
6443 static struct clk_branch gcc_usb20_sleep_clk = {
6444 .halt_reg = 0xbc028,
6445 .halt_check = BRANCH_HALT,
6446 .clkr = {
6447 .enable_reg = 0xbc028,
6448 .enable_mask = BIT(0),
6449 .hw.init = &(const struct clk_init_data) {
6450 .name = "gcc_usb20_sleep_clk",
6451 .ops = &clk_branch2_ops,
6452 },
6453 },
6454 };
6455
6456 static struct clk_branch gcc_usb30_mp_master_clk = {
6457 .halt_reg = 0x9a024,
6458 .halt_check = BRANCH_HALT,
6459 .clkr = {
6460 .enable_reg = 0x9a024,
6461 .enable_mask = BIT(0),
6462 .hw.init = &(const struct clk_init_data) {
6463 .name = "gcc_usb30_mp_master_clk",
6464 .parent_hws = (const struct clk_hw*[]) {
6465 &gcc_usb30_mp_master_clk_src.clkr.hw,
6466 },
6467 .num_parents = 1,
6468 .flags = CLK_SET_RATE_PARENT,
6469 .ops = &clk_branch2_ops,
6470 },
6471 },
6472 };
6473
6474 static struct clk_branch gcc_usb30_mp_mock_utmi_clk = {
6475 .halt_reg = 0x9a038,
6476 .halt_check = BRANCH_HALT,
6477 .clkr = {
6478 .enable_reg = 0x9a038,
6479 .enable_mask = BIT(0),
6480 .hw.init = &(const struct clk_init_data) {
6481 .name = "gcc_usb30_mp_mock_utmi_clk",
6482 .parent_hws = (const struct clk_hw*[]) {
6483 &gcc_usb30_mp_mock_utmi_postdiv_clk_src.clkr.hw,
6484 },
6485 .num_parents = 1,
6486 .flags = CLK_SET_RATE_PARENT,
6487 .ops = &clk_branch2_ops,
6488 },
6489 },
6490 };
6491
6492 static struct clk_branch gcc_usb30_mp_sleep_clk = {
6493 .halt_reg = 0x9a034,
6494 .halt_check = BRANCH_HALT,
6495 .clkr = {
6496 .enable_reg = 0x9a034,
6497 .enable_mask = BIT(0),
6498 .hw.init = &(const struct clk_init_data) {
6499 .name = "gcc_usb30_mp_sleep_clk",
6500 .ops = &clk_branch2_ops,
6501 },
6502 },
6503 };
6504
6505 static struct clk_branch gcc_usb30_prim_master_clk = {
6506 .halt_reg = 0x3f030,
6507 .halt_check = BRANCH_HALT,
6508 .clkr = {
6509 .enable_reg = 0x3f030,
6510 .enable_mask = BIT(0),
6511 .hw.init = &(const struct clk_init_data) {
6512 .name = "gcc_usb30_prim_master_clk",
6513 .parent_hws = (const struct clk_hw*[]) {
6514 &gcc_usb30_prim_master_clk_src.clkr.hw,
6515 },
6516 .num_parents = 1,
6517 .flags = CLK_SET_RATE_PARENT,
6518 .ops = &clk_branch2_ops,
6519 },
6520 },
6521 };
6522
6523 static struct clk_branch gcc_usb30_prim_mock_utmi_clk = {
6524 .halt_reg = 0x3f048,
6525 .halt_check = BRANCH_HALT,
6526 .clkr = {
6527 .enable_reg = 0x3f048,
6528 .enable_mask = BIT(0),
6529 .hw.init = &(const struct clk_init_data) {
6530 .name = "gcc_usb30_prim_mock_utmi_clk",
6531 .parent_hws = (const struct clk_hw*[]) {
6532 &gcc_usb30_prim_mock_utmi_postdiv_clk_src.clkr.hw,
6533 },
6534 .num_parents = 1,
6535 .flags = CLK_SET_RATE_PARENT,
6536 .ops = &clk_branch2_ops,
6537 },
6538 },
6539 };
6540
6541 static struct clk_branch gcc_usb30_prim_sleep_clk = {
6542 .halt_reg = 0x3f044,
6543 .halt_check = BRANCH_HALT,
6544 .clkr = {
6545 .enable_reg = 0x3f044,
6546 .enable_mask = BIT(0),
6547 .hw.init = &(const struct clk_init_data) {
6548 .name = "gcc_usb30_prim_sleep_clk",
6549 .ops = &clk_branch2_ops,
6550 },
6551 },
6552 };
6553
6554 static struct clk_branch gcc_usb30_sec_master_clk = {
6555 .halt_reg = 0xe2024,
6556 .halt_check = BRANCH_HALT,
6557 .clkr = {
6558 .enable_reg = 0xe2024,
6559 .enable_mask = BIT(0),
6560 .hw.init = &(const struct clk_init_data) {
6561 .name = "gcc_usb30_sec_master_clk",
6562 .parent_hws = (const struct clk_hw*[]) {
6563 &gcc_usb30_sec_master_clk_src.clkr.hw,
6564 },
6565 .num_parents = 1,
6566 .flags = CLK_SET_RATE_PARENT,
6567 .ops = &clk_branch2_ops,
6568 },
6569 },
6570 };
6571
6572 static struct clk_branch gcc_usb30_sec_mock_utmi_clk = {
6573 .halt_reg = 0xe2038,
6574 .halt_check = BRANCH_HALT,
6575 .clkr = {
6576 .enable_reg = 0xe2038,
6577 .enable_mask = BIT(0),
6578 .hw.init = &(const struct clk_init_data) {
6579 .name = "gcc_usb30_sec_mock_utmi_clk",
6580 .parent_hws = (const struct clk_hw*[]) {
6581 &gcc_usb30_sec_mock_utmi_postdiv_clk_src.clkr.hw,
6582 },
6583 .num_parents = 1,
6584 .flags = CLK_SET_RATE_PARENT,
6585 .ops = &clk_branch2_ops,
6586 },
6587 },
6588 };
6589
6590 static struct clk_branch gcc_usb30_sec_sleep_clk = {
6591 .halt_reg = 0xe2034,
6592 .halt_check = BRANCH_HALT,
6593 .clkr = {
6594 .enable_reg = 0xe2034,
6595 .enable_mask = BIT(0),
6596 .hw.init = &(const struct clk_init_data) {
6597 .name = "gcc_usb30_sec_sleep_clk",
6598 .ops = &clk_branch2_ops,
6599 },
6600 },
6601 };
6602
6603 static struct clk_branch gcc_usb30_tert_master_clk = {
6604 .halt_reg = 0xe1024,
6605 .halt_check = BRANCH_HALT,
6606 .clkr = {
6607 .enable_reg = 0xe1024,
6608 .enable_mask = BIT(0),
6609 .hw.init = &(const struct clk_init_data) {
6610 .name = "gcc_usb30_tert_master_clk",
6611 .parent_hws = (const struct clk_hw*[]) {
6612 &gcc_usb30_tert_master_clk_src.clkr.hw,
6613 },
6614 .num_parents = 1,
6615 .flags = CLK_SET_RATE_PARENT,
6616 .ops = &clk_branch2_ops,
6617 },
6618 },
6619 };
6620
6621 static struct clk_branch gcc_usb30_tert_mock_utmi_clk = {
6622 .halt_reg = 0xe1038,
6623 .halt_check = BRANCH_HALT,
6624 .clkr = {
6625 .enable_reg = 0xe1038,
6626 .enable_mask = BIT(0),
6627 .hw.init = &(const struct clk_init_data) {
6628 .name = "gcc_usb30_tert_mock_utmi_clk",
6629 .parent_hws = (const struct clk_hw*[]) {
6630 &gcc_usb30_tert_mock_utmi_postdiv_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_usb30_tert_sleep_clk = {
6640 .halt_reg = 0xe1034,
6641 .halt_check = BRANCH_HALT,
6642 .clkr = {
6643 .enable_reg = 0xe1034,
6644 .enable_mask = BIT(0),
6645 .hw.init = &(const struct clk_init_data) {
6646 .name = "gcc_usb30_tert_sleep_clk",
6647 .ops = &clk_branch2_ops,
6648 },
6649 },
6650 };
6651
6652 static struct clk_branch gcc_usb3_mp_phy_aux_clk = {
6653 .halt_reg = 0x9a070,
6654 .halt_check = BRANCH_HALT,
6655 .clkr = {
6656 .enable_reg = 0x9a070,
6657 .enable_mask = BIT(0),
6658 .hw.init = &(const struct clk_init_data) {
6659 .name = "gcc_usb3_mp_phy_aux_clk",
6660 .parent_hws = (const struct clk_hw*[]) {
6661 &gcc_usb3_mp_phy_aux_clk_src.clkr.hw,
6662 },
6663 .num_parents = 1,
6664 .flags = CLK_SET_RATE_PARENT,
6665 .ops = &clk_branch2_ops,
6666 },
6667 },
6668 };
6669
6670 static struct clk_branch gcc_usb3_mp_phy_com_aux_clk = {
6671 .halt_reg = 0x9a074,
6672 .halt_check = BRANCH_HALT,
6673 .clkr = {
6674 .enable_reg = 0x9a074,
6675 .enable_mask = BIT(0),
6676 .hw.init = &(const struct clk_init_data) {
6677 .name = "gcc_usb3_mp_phy_com_aux_clk",
6678 .parent_hws = (const struct clk_hw*[]) {
6679 &gcc_usb3_mp_phy_aux_clk_src.clkr.hw,
6680 },
6681 .num_parents = 1,
6682 .flags = CLK_SET_RATE_PARENT,
6683 .ops = &clk_branch2_ops,
6684 },
6685 },
6686 };
6687
6688 static struct clk_branch gcc_usb3_mp_phy_pipe_0_clk = {
6689 .halt_reg = 0x9a078,
6690 .halt_check = BRANCH_HALT_SKIP,
6691 .clkr = {
6692 .enable_reg = 0x9a078,
6693 .enable_mask = BIT(0),
6694 .hw.init = &(const struct clk_init_data) {
6695 .name = "gcc_usb3_mp_phy_pipe_0_clk",
6696 .parent_hws = (const struct clk_hw*[]) {
6697 &gcc_usb3_mp_phy_pipe_0_clk_src.clkr.hw,
6698 },
6699 .num_parents = 1,
6700 .flags = CLK_SET_RATE_PARENT,
6701 .ops = &clk_branch2_ops,
6702 },
6703 },
6704 };
6705
6706 static struct clk_branch gcc_usb3_mp_phy_pipe_1_clk = {
6707 .halt_reg = 0x9a080,
6708 .halt_check = BRANCH_HALT_SKIP,
6709 .clkr = {
6710 .enable_reg = 0x9a080,
6711 .enable_mask = BIT(0),
6712 .hw.init = &(const struct clk_init_data) {
6713 .name = "gcc_usb3_mp_phy_pipe_1_clk",
6714 .parent_hws = (const struct clk_hw*[]) {
6715 &gcc_usb3_mp_phy_pipe_1_clk_src.clkr.hw,
6716 },
6717 .num_parents = 1,
6718 .flags = CLK_SET_RATE_PARENT,
6719 .ops = &clk_branch2_ops,
6720 },
6721 },
6722 };
6723
6724 static struct clk_branch gcc_usb3_prim_phy_aux_clk = {
6725 .halt_reg = 0x3f080,
6726 .halt_check = BRANCH_HALT,
6727 .clkr = {
6728 .enable_reg = 0x3f080,
6729 .enable_mask = BIT(0),
6730 .hw.init = &(const struct clk_init_data) {
6731 .name = "gcc_usb3_prim_phy_aux_clk",
6732 .parent_hws = (const struct clk_hw*[]) {
6733 &gcc_usb3_prim_phy_aux_clk_src.clkr.hw,
6734 },
6735 .num_parents = 1,
6736 .flags = CLK_SET_RATE_PARENT,
6737 .ops = &clk_branch2_ops,
6738 },
6739 },
6740 };
6741
6742 static struct clk_branch gcc_usb3_prim_phy_com_aux_clk = {
6743 .halt_reg = 0x3f084,
6744 .halt_check = BRANCH_HALT,
6745 .clkr = {
6746 .enable_reg = 0x3f084,
6747 .enable_mask = BIT(0),
6748 .hw.init = &(const struct clk_init_data) {
6749 .name = "gcc_usb3_prim_phy_com_aux_clk",
6750 .parent_hws = (const struct clk_hw*[]) {
6751 &gcc_usb3_prim_phy_aux_clk_src.clkr.hw,
6752 },
6753 .num_parents = 1,
6754 .flags = CLK_SET_RATE_PARENT,
6755 .ops = &clk_branch2_ops,
6756 },
6757 },
6758 };
6759
6760 static struct clk_branch gcc_usb3_prim_phy_pipe_clk = {
6761 .halt_reg = 0x3f088,
6762 .halt_check = BRANCH_HALT_SKIP,
6763 .hwcg_reg = 0x3f088,
6764 .hwcg_bit = 1,
6765 .clkr = {
6766 .enable_reg = 0x3f088,
6767 .enable_mask = BIT(0),
6768 .hw.init = &(const struct clk_init_data) {
6769 .name = "gcc_usb3_prim_phy_pipe_clk",
6770 .parent_hws = (const struct clk_hw*[]) {
6771 &gcc_usb34_prim_phy_pipe_clk_src.clkr.hw,
6772 },
6773 .num_parents = 1,
6774 .flags = CLK_SET_RATE_PARENT,
6775 .ops = &clk_branch2_ops,
6776 },
6777 },
6778 };
6779
6780 static struct clk_branch gcc_usb3_sec_phy_aux_clk = {
6781 .halt_reg = 0xe2070,
6782 .halt_check = BRANCH_HALT,
6783 .clkr = {
6784 .enable_reg = 0xe2070,
6785 .enable_mask = BIT(0),
6786 .hw.init = &(const struct clk_init_data) {
6787 .name = "gcc_usb3_sec_phy_aux_clk",
6788 .parent_hws = (const struct clk_hw*[]) {
6789 &gcc_usb3_sec_phy_aux_clk_src.clkr.hw,
6790 },
6791 .num_parents = 1,
6792 .flags = CLK_SET_RATE_PARENT,
6793 .ops = &clk_branch2_ops,
6794 },
6795 },
6796 };
6797
6798 static struct clk_branch gcc_usb3_sec_phy_com_aux_clk = {
6799 .halt_reg = 0xe2074,
6800 .halt_check = BRANCH_HALT,
6801 .clkr = {
6802 .enable_reg = 0xe2074,
6803 .enable_mask = BIT(0),
6804 .hw.init = &(const struct clk_init_data) {
6805 .name = "gcc_usb3_sec_phy_com_aux_clk",
6806 .parent_hws = (const struct clk_hw*[]) {
6807 &gcc_usb3_sec_phy_aux_clk_src.clkr.hw,
6808 },
6809 .num_parents = 1,
6810 .flags = CLK_SET_RATE_PARENT,
6811 .ops = &clk_branch2_ops,
6812 },
6813 },
6814 };
6815
6816 static struct clk_branch gcc_usb3_sec_phy_pipe_clk = {
6817 .halt_reg = 0xe2078,
6818 .halt_check = BRANCH_HALT_SKIP,
6819 .hwcg_reg = 0xe2078,
6820 .hwcg_bit = 1,
6821 .clkr = {
6822 .enable_reg = 0xe2078,
6823 .enable_mask = BIT(0),
6824 .hw.init = &(const struct clk_init_data) {
6825 .name = "gcc_usb3_sec_phy_pipe_clk",
6826 .parent_hws = (const struct clk_hw*[]) {
6827 &gcc_usb34_sec_phy_pipe_clk_src.clkr.hw,
6828 },
6829 .num_parents = 1,
6830 .flags = CLK_SET_RATE_PARENT,
6831 .ops = &clk_branch2_ops,
6832 },
6833 },
6834 };
6835
6836 static struct clk_branch gcc_usb3_tert_phy_aux_clk = {
6837 .halt_reg = 0xe1070,
6838 .halt_check = BRANCH_HALT,
6839 .clkr = {
6840 .enable_reg = 0xe1070,
6841 .enable_mask = BIT(0),
6842 .hw.init = &(const struct clk_init_data) {
6843 .name = "gcc_usb3_tert_phy_aux_clk",
6844 .parent_hws = (const struct clk_hw*[]) {
6845 &gcc_usb3_tert_phy_aux_clk_src.clkr.hw,
6846 },
6847 .num_parents = 1,
6848 .flags = CLK_SET_RATE_PARENT,
6849 .ops = &clk_branch2_ops,
6850 },
6851 },
6852 };
6853
6854 static struct clk_branch gcc_usb3_tert_phy_com_aux_clk = {
6855 .halt_reg = 0xe1074,
6856 .halt_check = BRANCH_HALT,
6857 .clkr = {
6858 .enable_reg = 0xe1074,
6859 .enable_mask = BIT(0),
6860 .hw.init = &(const struct clk_init_data) {
6861 .name = "gcc_usb3_tert_phy_com_aux_clk",
6862 .parent_hws = (const struct clk_hw*[]) {
6863 &gcc_usb3_tert_phy_aux_clk_src.clkr.hw,
6864 },
6865 .num_parents = 1,
6866 .flags = CLK_SET_RATE_PARENT,
6867 .ops = &clk_branch2_ops,
6868 },
6869 },
6870 };
6871
6872 static struct clk_branch gcc_usb3_tert_phy_pipe_clk = {
6873 .halt_reg = 0xe1078,
6874 .halt_check = BRANCH_HALT_SKIP,
6875 .hwcg_reg = 0xe1078,
6876 .hwcg_bit = 1,
6877 .clkr = {
6878 .enable_reg = 0xe1078,
6879 .enable_mask = BIT(0),
6880 .hw.init = &(const struct clk_init_data) {
6881 .name = "gcc_usb3_tert_phy_pipe_clk",
6882 .parent_hws = (const struct clk_hw*[]) {
6883 &gcc_usb34_tert_phy_pipe_clk_src.clkr.hw,
6884 },
6885 .num_parents = 1,
6886 .flags = CLK_SET_RATE_PARENT,
6887 .ops = &clk_branch2_ops,
6888 },
6889 },
6890 };
6891
6892 static struct clk_branch gcc_usb4_0_cfg_ahb_clk = {
6893 .halt_reg = 0xba450,
6894 .halt_check = BRANCH_HALT_VOTED,
6895 .hwcg_reg = 0xba450,
6896 .hwcg_bit = 1,
6897 .clkr = {
6898 .enable_reg = 0xba450,
6899 .enable_mask = BIT(0),
6900 .hw.init = &(const struct clk_init_data) {
6901 .name = "gcc_usb4_0_cfg_ahb_clk",
6902 .ops = &clk_branch2_ops,
6903 },
6904 },
6905 };
6906
6907 static struct clk_branch gcc_usb4_0_dp0_clk = {
6908 .halt_reg = 0x2b070,
6909 .halt_check = BRANCH_HALT,
6910 .clkr = {
6911 .enable_reg = 0x2b070,
6912 .enable_mask = BIT(0),
6913 .hw.init = &(const struct clk_init_data) {
6914 .name = "gcc_usb4_0_dp0_clk",
6915 .parent_hws = (const struct clk_hw*[]) {
6916 &gcc_usb4_0_phy_dp0_clk_src.clkr.hw,
6917 },
6918 .num_parents = 1,
6919 .flags = CLK_SET_RATE_PARENT,
6920 .ops = &clk_branch2_ops,
6921 },
6922 },
6923 };
6924
6925 static struct clk_branch gcc_usb4_0_dp1_clk = {
6926 .halt_reg = 0x2b124,
6927 .halt_check = BRANCH_HALT,
6928 .clkr = {
6929 .enable_reg = 0x2b124,
6930 .enable_mask = BIT(0),
6931 .hw.init = &(const struct clk_init_data) {
6932 .name = "gcc_usb4_0_dp1_clk",
6933 .parent_hws = (const struct clk_hw*[]) {
6934 &gcc_usb4_0_phy_dp1_clk_src.clkr.hw,
6935 },
6936 .num_parents = 1,
6937 .flags = CLK_SET_RATE_PARENT,
6938 .ops = &clk_branch2_ops,
6939 },
6940 },
6941 };
6942
6943 static struct clk_branch gcc_usb4_0_master_clk = {
6944 .halt_reg = 0x2b01c,
6945 .halt_check = BRANCH_HALT,
6946 .clkr = {
6947 .enable_reg = 0x2b01c,
6948 .enable_mask = BIT(0),
6949 .hw.init = &(const struct clk_init_data) {
6950 .name = "gcc_usb4_0_master_clk",
6951 .parent_hws = (const struct clk_hw*[]) {
6952 &gcc_usb4_0_master_clk_src.clkr.hw,
6953 },
6954 .num_parents = 1,
6955 .flags = CLK_SET_RATE_PARENT,
6956 .ops = &clk_branch2_ops,
6957 },
6958 },
6959 };
6960
6961 static struct clk_branch gcc_usb4_0_phy_p2rr2p_pipe_clk = {
6962 .halt_reg = 0x2b0f4,
6963 .halt_check = BRANCH_HALT_SKIP,
6964 .clkr = {
6965 .enable_reg = 0x2b0f4,
6966 .enable_mask = BIT(0),
6967 .hw.init = &(const struct clk_init_data) {
6968 .name = "gcc_usb4_0_phy_p2rr2p_pipe_clk",
6969 .parent_hws = (const struct clk_hw*[]) {
6970 &gcc_usb4_0_phy_p2rr2p_pipe_clk_src.clkr.hw,
6971 },
6972 .num_parents = 1,
6973 .flags = CLK_SET_RATE_PARENT,
6974 .ops = &clk_branch2_ops,
6975 },
6976 },
6977 };
6978
6979 static struct clk_branch gcc_usb4_0_phy_pcie_pipe_clk = {
6980 .halt_reg = 0x2b04c,
6981 .halt_check = BRANCH_HALT_SKIP,
6982 .clkr = {
6983 .enable_reg = 0x62010,
6984 .enable_mask = BIT(11),
6985 .hw.init = &(const struct clk_init_data) {
6986 .name = "gcc_usb4_0_phy_pcie_pipe_clk",
6987 .parent_hws = (const struct clk_hw*[]) {
6988 &gcc_usb4_0_phy_pcie_pipe_mux_clk_src.clkr.hw,
6989 },
6990 .num_parents = 1,
6991 .flags = CLK_SET_RATE_PARENT,
6992 .ops = &clk_branch2_ops,
6993 },
6994 },
6995 };
6996
6997 static struct clk_branch gcc_usb4_0_phy_rx0_clk = {
6998 .halt_reg = 0x2b0c4,
6999 .halt_check = BRANCH_HALT,
7000 .clkr = {
7001 .enable_reg = 0x2b0c4,
7002 .enable_mask = BIT(0),
7003 .hw.init = &(const struct clk_init_data) {
7004 .name = "gcc_usb4_0_phy_rx0_clk",
7005 .parent_hws = (const struct clk_hw*[]) {
7006 &gcc_usb4_0_phy_rx0_clk_src.clkr.hw,
7007 },
7008 .num_parents = 1,
7009 .flags = CLK_SET_RATE_PARENT,
7010 .ops = &clk_branch2_ops,
7011 },
7012 },
7013 };
7014
7015 static struct clk_branch gcc_usb4_0_phy_rx1_clk = {
7016 .halt_reg = 0x2b0d8,
7017 .halt_check = BRANCH_HALT,
7018 .clkr = {
7019 .enable_reg = 0x2b0d8,
7020 .enable_mask = BIT(0),
7021 .hw.init = &(const struct clk_init_data) {
7022 .name = "gcc_usb4_0_phy_rx1_clk",
7023 .parent_hws = (const struct clk_hw*[]) {
7024 &gcc_usb4_0_phy_rx1_clk_src.clkr.hw,
7025 },
7026 .num_parents = 1,
7027 .flags = CLK_SET_RATE_PARENT,
7028 .ops = &clk_branch2_ops,
7029 },
7030 },
7031 };
7032
7033 static struct clk_branch gcc_usb4_0_phy_usb_pipe_clk = {
7034 .halt_reg = 0x2b0bc,
7035 .halt_check = BRANCH_HALT_SKIP,
7036 .hwcg_reg = 0x2b0bc,
7037 .hwcg_bit = 1,
7038 .clkr = {
7039 .enable_reg = 0x2b0bc,
7040 .enable_mask = BIT(0),
7041 .hw.init = &(const struct clk_init_data) {
7042 .name = "gcc_usb4_0_phy_usb_pipe_clk",
7043 .parent_hws = (const struct clk_hw*[]) {
7044 &gcc_usb34_prim_phy_pipe_clk_src.clkr.hw,
7045 },
7046 .num_parents = 1,
7047 .flags = CLK_SET_RATE_PARENT,
7048 .ops = &clk_branch2_ops,
7049 },
7050 },
7051 };
7052
7053 static struct clk_branch gcc_usb4_0_sb_if_clk = {
7054 .halt_reg = 0x2b048,
7055 .halt_check = BRANCH_HALT,
7056 .clkr = {
7057 .enable_reg = 0x2b048,
7058 .enable_mask = BIT(0),
7059 .hw.init = &(const struct clk_init_data) {
7060 .name = "gcc_usb4_0_sb_if_clk",
7061 .parent_hws = (const struct clk_hw*[]) {
7062 &gcc_usb4_0_sb_if_clk_src.clkr.hw,
7063 },
7064 .num_parents = 1,
7065 .flags = CLK_SET_RATE_PARENT,
7066 .ops = &clk_branch2_ops,
7067 },
7068 },
7069 };
7070
7071 static struct clk_branch gcc_usb4_0_sys_clk = {
7072 .halt_reg = 0x2b05c,
7073 .halt_check = BRANCH_HALT,
7074 .clkr = {
7075 .enable_reg = 0x2b05c,
7076 .enable_mask = BIT(0),
7077 .hw.init = &(const struct clk_init_data) {
7078 .name = "gcc_usb4_0_sys_clk",
7079 .parent_hws = (const struct clk_hw*[]) {
7080 &gcc_usb4_0_phy_sys_clk_src.clkr.hw,
7081 },
7082 .num_parents = 1,
7083 .flags = CLK_SET_RATE_PARENT,
7084 .ops = &clk_branch2_ops,
7085 },
7086 },
7087 };
7088
7089 static struct clk_branch gcc_usb4_0_tmu_clk = {
7090 .halt_reg = 0x2b09c,
7091 .halt_check = BRANCH_HALT_VOTED,
7092 .hwcg_reg = 0x2b09c,
7093 .hwcg_bit = 1,
7094 .clkr = {
7095 .enable_reg = 0x2b09c,
7096 .enable_mask = BIT(0),
7097 .hw.init = &(const struct clk_init_data) {
7098 .name = "gcc_usb4_0_tmu_clk",
7099 .parent_hws = (const struct clk_hw*[]) {
7100 &gcc_usb4_0_tmu_clk_src.clkr.hw,
7101 },
7102 .num_parents = 1,
7103 .flags = CLK_SET_RATE_PARENT,
7104 .ops = &clk_branch2_ops,
7105 },
7106 },
7107 };
7108
7109 static struct clk_branch gcc_usb4_0_uc_hrr_clk = {
7110 .halt_reg = 0x2b06c,
7111 .halt_check = BRANCH_HALT,
7112 .clkr = {
7113 .enable_reg = 0x2b06c,
7114 .enable_mask = BIT(0),
7115 .hw.init = &(const struct clk_init_data) {
7116 .name = "gcc_usb4_0_uc_hrr_clk",
7117 .parent_hws = (const struct clk_hw*[]) {
7118 &gcc_usb4_0_phy_sys_clk_src.clkr.hw,
7119 },
7120 .num_parents = 1,
7121 .flags = CLK_SET_RATE_PARENT,
7122 .ops = &clk_branch2_ops,
7123 },
7124 },
7125 };
7126
7127 static struct clk_branch gcc_usb4_1_cfg_ahb_clk = {
7128 .halt_reg = 0xba454,
7129 .halt_check = BRANCH_HALT_VOTED,
7130 .hwcg_reg = 0xba454,
7131 .hwcg_bit = 1,
7132 .clkr = {
7133 .enable_reg = 0xba454,
7134 .enable_mask = BIT(0),
7135 .hw.init = &(const struct clk_init_data) {
7136 .name = "gcc_usb4_1_cfg_ahb_clk",
7137 .ops = &clk_branch2_ops,
7138 },
7139 },
7140 };
7141
7142 static struct clk_branch gcc_usb4_1_dp0_clk = {
7143 .halt_reg = 0x2d07c,
7144 .halt_check = BRANCH_HALT,
7145 .clkr = {
7146 .enable_reg = 0x2d07c,
7147 .enable_mask = BIT(0),
7148 .hw.init = &(const struct clk_init_data) {
7149 .name = "gcc_usb4_1_dp0_clk",
7150 .parent_hws = (const struct clk_hw*[]) {
7151 &gcc_usb4_1_phy_dp0_clk_src.clkr.hw,
7152 },
7153 .num_parents = 1,
7154 .flags = CLK_SET_RATE_PARENT,
7155 .ops = &clk_branch2_ops,
7156 },
7157 },
7158 };
7159
7160 static struct clk_branch gcc_usb4_1_dp1_clk = {
7161 .halt_reg = 0x2d144,
7162 .halt_check = BRANCH_HALT,
7163 .clkr = {
7164 .enable_reg = 0x2d144,
7165 .enable_mask = BIT(0),
7166 .hw.init = &(const struct clk_init_data) {
7167 .name = "gcc_usb4_1_dp1_clk",
7168 .parent_hws = (const struct clk_hw*[]) {
7169 &gcc_usb4_1_phy_dp1_clk_src.clkr.hw,
7170 },
7171 .num_parents = 1,
7172 .flags = CLK_SET_RATE_PARENT,
7173 .ops = &clk_branch2_ops,
7174 },
7175 },
7176 };
7177
7178 static struct clk_branch gcc_usb4_1_master_clk = {
7179 .halt_reg = 0x2d01c,
7180 .halt_check = BRANCH_HALT,
7181 .clkr = {
7182 .enable_reg = 0x2d01c,
7183 .enable_mask = BIT(0),
7184 .hw.init = &(const struct clk_init_data) {
7185 .name = "gcc_usb4_1_master_clk",
7186 .parent_hws = (const struct clk_hw*[]) {
7187 &gcc_usb4_1_master_clk_src.clkr.hw,
7188 },
7189 .num_parents = 1,
7190 .flags = CLK_SET_RATE_PARENT,
7191 .ops = &clk_branch2_ops,
7192 },
7193 },
7194 };
7195
7196 static struct clk_branch gcc_usb4_1_phy_p2rr2p_pipe_clk = {
7197 .halt_reg = 0x2d118,
7198 .halt_check = BRANCH_HALT_SKIP,
7199 .clkr = {
7200 .enable_reg = 0x2d118,
7201 .enable_mask = BIT(0),
7202 .hw.init = &(const struct clk_init_data) {
7203 .name = "gcc_usb4_1_phy_p2rr2p_pipe_clk",
7204 .parent_hws = (const struct clk_hw*[]) {
7205 &gcc_usb4_1_phy_p2rr2p_pipe_clk_src.clkr.hw,
7206 },
7207 .num_parents = 1,
7208 .flags = CLK_SET_RATE_PARENT,
7209 .ops = &clk_branch2_ops,
7210 },
7211 },
7212 };
7213
7214 static struct clk_branch gcc_usb4_1_phy_pcie_pipe_clk = {
7215 .halt_reg = 0x2d04c,
7216 .halt_check = BRANCH_HALT_SKIP,
7217 .clkr = {
7218 .enable_reg = 0x62010,
7219 .enable_mask = BIT(12),
7220 .hw.init = &(const struct clk_init_data) {
7221 .name = "gcc_usb4_1_phy_pcie_pipe_clk",
7222 .parent_hws = (const struct clk_hw*[]) {
7223 &gcc_usb4_1_phy_pcie_pipe_mux_clk_src.clkr.hw,
7224 },
7225 .num_parents = 1,
7226 .flags = CLK_SET_RATE_PARENT,
7227 .ops = &clk_branch2_ops,
7228 },
7229 },
7230 };
7231
7232 static struct clk_branch gcc_usb4_1_phy_rx0_clk = {
7233 .halt_reg = 0x2d0e8,
7234 .halt_check = BRANCH_HALT,
7235 .clkr = {
7236 .enable_reg = 0x2d0e8,
7237 .enable_mask = BIT(0),
7238 .hw.init = &(const struct clk_init_data) {
7239 .name = "gcc_usb4_1_phy_rx0_clk",
7240 .parent_hws = (const struct clk_hw*[]) {
7241 &gcc_usb4_1_phy_rx0_clk_src.clkr.hw,
7242 },
7243 .num_parents = 1,
7244 .flags = CLK_SET_RATE_PARENT,
7245 .ops = &clk_branch2_ops,
7246 },
7247 },
7248 };
7249
7250 static struct clk_branch gcc_usb4_1_phy_rx1_clk = {
7251 .halt_reg = 0x2d0fc,
7252 .halt_check = BRANCH_HALT,
7253 .clkr = {
7254 .enable_reg = 0x2d0fc,
7255 .enable_mask = BIT(0),
7256 .hw.init = &(const struct clk_init_data) {
7257 .name = "gcc_usb4_1_phy_rx1_clk",
7258 .parent_hws = (const struct clk_hw*[]) {
7259 &gcc_usb4_1_phy_rx1_clk_src.clkr.hw,
7260 },
7261 .num_parents = 1,
7262 .flags = CLK_SET_RATE_PARENT,
7263 .ops = &clk_branch2_ops,
7264 },
7265 },
7266 };
7267
7268 static struct clk_branch gcc_usb4_1_phy_usb_pipe_clk = {
7269 .halt_reg = 0x2d0e0,
7270 .halt_check = BRANCH_HALT_SKIP,
7271 .hwcg_reg = 0x2d0e0,
7272 .hwcg_bit = 1,
7273 .clkr = {
7274 .enable_reg = 0x2d0e0,
7275 .enable_mask = BIT(0),
7276 .hw.init = &(const struct clk_init_data) {
7277 .name = "gcc_usb4_1_phy_usb_pipe_clk",
7278 .parent_hws = (const struct clk_hw*[]) {
7279 &gcc_usb34_sec_phy_pipe_clk_src.clkr.hw,
7280 },
7281 .num_parents = 1,
7282 .flags = CLK_SET_RATE_PARENT,
7283 .ops = &clk_branch2_ops,
7284 },
7285 },
7286 };
7287
7288 static struct clk_branch gcc_usb4_1_sb_if_clk = {
7289 .halt_reg = 0x2d048,
7290 .halt_check = BRANCH_HALT,
7291 .clkr = {
7292 .enable_reg = 0x2d048,
7293 .enable_mask = BIT(0),
7294 .hw.init = &(const struct clk_init_data) {
7295 .name = "gcc_usb4_1_sb_if_clk",
7296 .parent_hws = (const struct clk_hw*[]) {
7297 &gcc_usb4_1_sb_if_clk_src.clkr.hw,
7298 },
7299 .num_parents = 1,
7300 .flags = CLK_SET_RATE_PARENT,
7301 .ops = &clk_branch2_ops,
7302 },
7303 },
7304 };
7305
7306 static struct clk_branch gcc_usb4_1_sys_clk = {
7307 .halt_reg = 0x2d05c,
7308 .halt_check = BRANCH_HALT,
7309 .clkr = {
7310 .enable_reg = 0x2d05c,
7311 .enable_mask = BIT(0),
7312 .hw.init = &(const struct clk_init_data) {
7313 .name = "gcc_usb4_1_sys_clk",
7314 .parent_hws = (const struct clk_hw*[]) {
7315 &gcc_usb4_1_phy_sys_clk_src.clkr.hw,
7316 },
7317 .num_parents = 1,
7318 .flags = CLK_SET_RATE_PARENT,
7319 .ops = &clk_branch2_ops,
7320 },
7321 },
7322 };
7323
7324 static struct clk_branch gcc_usb4_1_tmu_clk = {
7325 .halt_reg = 0x2d0a8,
7326 .halt_check = BRANCH_HALT_VOTED,
7327 .hwcg_reg = 0x2d0a8,
7328 .hwcg_bit = 1,
7329 .clkr = {
7330 .enable_reg = 0x2d0a8,
7331 .enable_mask = BIT(0),
7332 .hw.init = &(const struct clk_init_data) {
7333 .name = "gcc_usb4_1_tmu_clk",
7334 .parent_hws = (const struct clk_hw*[]) {
7335 &gcc_usb4_1_tmu_clk_src.clkr.hw,
7336 },
7337 .num_parents = 1,
7338 .flags = CLK_SET_RATE_PARENT,
7339 .ops = &clk_branch2_ops,
7340 },
7341 },
7342 };
7343
7344 static struct clk_branch gcc_usb4_1_uc_hrr_clk = {
7345 .halt_reg = 0x2d06c,
7346 .halt_check = BRANCH_HALT,
7347 .clkr = {
7348 .enable_reg = 0x2d06c,
7349 .enable_mask = BIT(0),
7350 .hw.init = &(const struct clk_init_data) {
7351 .name = "gcc_usb4_1_uc_hrr_clk",
7352 .parent_hws = (const struct clk_hw*[]) {
7353 &gcc_usb4_1_phy_sys_clk_src.clkr.hw,
7354 },
7355 .num_parents = 1,
7356 .flags = CLK_SET_RATE_PARENT,
7357 .ops = &clk_branch2_ops,
7358 },
7359 },
7360 };
7361
7362 static struct clk_branch gcc_usb4_2_cfg_ahb_clk = {
7363 .halt_reg = 0xba458,
7364 .halt_check = BRANCH_HALT_VOTED,
7365 .hwcg_reg = 0xba458,
7366 .hwcg_bit = 1,
7367 .clkr = {
7368 .enable_reg = 0xba458,
7369 .enable_mask = BIT(0),
7370 .hw.init = &(const struct clk_init_data) {
7371 .name = "gcc_usb4_2_cfg_ahb_clk",
7372 .ops = &clk_branch2_ops,
7373 },
7374 },
7375 };
7376
7377 static struct clk_branch gcc_usb4_2_dp0_clk = {
7378 .halt_reg = 0xe0070,
7379 .halt_check = BRANCH_HALT,
7380 .clkr = {
7381 .enable_reg = 0xe0070,
7382 .enable_mask = BIT(0),
7383 .hw.init = &(const struct clk_init_data) {
7384 .name = "gcc_usb4_2_dp0_clk",
7385 .parent_hws = (const struct clk_hw*[]) {
7386 &gcc_usb4_2_phy_dp0_clk_src.clkr.hw,
7387 },
7388 .num_parents = 1,
7389 .flags = CLK_SET_RATE_PARENT,
7390 .ops = &clk_branch2_ops,
7391 },
7392 },
7393 };
7394
7395 static struct clk_branch gcc_usb4_2_dp1_clk = {
7396 .halt_reg = 0xe0128,
7397 .halt_check = BRANCH_HALT,
7398 .clkr = {
7399 .enable_reg = 0xe0128,
7400 .enable_mask = BIT(0),
7401 .hw.init = &(const struct clk_init_data) {
7402 .name = "gcc_usb4_2_dp1_clk",
7403 .parent_hws = (const struct clk_hw*[]) {
7404 &gcc_usb4_2_phy_dp1_clk_src.clkr.hw,
7405 },
7406 .num_parents = 1,
7407 .flags = CLK_SET_RATE_PARENT,
7408 .ops = &clk_branch2_ops,
7409 },
7410 },
7411 };
7412
7413 static struct clk_branch gcc_usb4_2_master_clk = {
7414 .halt_reg = 0xe001c,
7415 .halt_check = BRANCH_HALT,
7416 .clkr = {
7417 .enable_reg = 0xe001c,
7418 .enable_mask = BIT(0),
7419 .hw.init = &(const struct clk_init_data) {
7420 .name = "gcc_usb4_2_master_clk",
7421 .parent_hws = (const struct clk_hw*[]) {
7422 &gcc_usb4_2_master_clk_src.clkr.hw,
7423 },
7424 .num_parents = 1,
7425 .flags = CLK_SET_RATE_PARENT,
7426 .ops = &clk_branch2_ops,
7427 },
7428 },
7429 };
7430
7431 static struct clk_branch gcc_usb4_2_phy_p2rr2p_pipe_clk = {
7432 .halt_reg = 0xe00f8,
7433 .halt_check = BRANCH_HALT_SKIP,
7434 .clkr = {
7435 .enable_reg = 0xe00f8,
7436 .enable_mask = BIT(0),
7437 .hw.init = &(const struct clk_init_data) {
7438 .name = "gcc_usb4_2_phy_p2rr2p_pipe_clk",
7439 .parent_hws = (const struct clk_hw*[]) {
7440 &gcc_usb4_2_phy_p2rr2p_pipe_clk_src.clkr.hw,
7441 },
7442 .num_parents = 1,
7443 .flags = CLK_SET_RATE_PARENT,
7444 .ops = &clk_branch2_ops,
7445 },
7446 },
7447 };
7448
7449 static struct clk_branch gcc_usb4_2_phy_pcie_pipe_clk = {
7450 .halt_reg = 0xe004c,
7451 .halt_check = BRANCH_HALT_SKIP,
7452 .clkr = {
7453 .enable_reg = 0x62010,
7454 .enable_mask = BIT(13),
7455 .hw.init = &(const struct clk_init_data) {
7456 .name = "gcc_usb4_2_phy_pcie_pipe_clk",
7457 .parent_hws = (const struct clk_hw*[]) {
7458 &gcc_usb4_2_phy_pcie_pipe_mux_clk_src.clkr.hw,
7459 },
7460 .num_parents = 1,
7461 .flags = CLK_SET_RATE_PARENT,
7462 .ops = &clk_branch2_ops,
7463 },
7464 },
7465 };
7466
7467 static struct clk_branch gcc_usb4_2_phy_rx0_clk = {
7468 .halt_reg = 0xe00c8,
7469 .halt_check = BRANCH_HALT,
7470 .clkr = {
7471 .enable_reg = 0xe00c8,
7472 .enable_mask = BIT(0),
7473 .hw.init = &(const struct clk_init_data) {
7474 .name = "gcc_usb4_2_phy_rx0_clk",
7475 .parent_hws = (const struct clk_hw*[]) {
7476 &gcc_usb4_2_phy_rx0_clk_src.clkr.hw,
7477 },
7478 .num_parents = 1,
7479 .flags = CLK_SET_RATE_PARENT,
7480 .ops = &clk_branch2_ops,
7481 },
7482 },
7483 };
7484
7485 static struct clk_branch gcc_usb4_2_phy_rx1_clk = {
7486 .halt_reg = 0xe00dc,
7487 .halt_check = BRANCH_HALT,
7488 .clkr = {
7489 .enable_reg = 0xe00dc,
7490 .enable_mask = BIT(0),
7491 .hw.init = &(const struct clk_init_data) {
7492 .name = "gcc_usb4_2_phy_rx1_clk",
7493 .parent_hws = (const struct clk_hw*[]) {
7494 &gcc_usb4_2_phy_rx1_clk_src.clkr.hw,
7495 },
7496 .num_parents = 1,
7497 .flags = CLK_SET_RATE_PARENT,
7498 .ops = &clk_branch2_ops,
7499 },
7500 },
7501 };
7502
7503 static struct clk_branch gcc_usb4_2_phy_usb_pipe_clk = {
7504 .halt_reg = 0xe00c0,
7505 .halt_check = BRANCH_HALT_SKIP,
7506 .hwcg_reg = 0xe00c0,
7507 .hwcg_bit = 1,
7508 .clkr = {
7509 .enable_reg = 0xe00c0,
7510 .enable_mask = BIT(0),
7511 .hw.init = &(const struct clk_init_data) {
7512 .name = "gcc_usb4_2_phy_usb_pipe_clk",
7513 .parent_hws = (const struct clk_hw*[]) {
7514 &gcc_usb34_tert_phy_pipe_clk_src.clkr.hw,
7515 },
7516 .num_parents = 1,
7517 .flags = CLK_SET_RATE_PARENT,
7518 .ops = &clk_branch2_ops,
7519 },
7520 },
7521 };
7522
7523 static struct clk_branch gcc_usb4_2_sb_if_clk = {
7524 .halt_reg = 0xe0048,
7525 .halt_check = BRANCH_HALT,
7526 .clkr = {
7527 .enable_reg = 0xe0048,
7528 .enable_mask = BIT(0),
7529 .hw.init = &(const struct clk_init_data) {
7530 .name = "gcc_usb4_2_sb_if_clk",
7531 .parent_hws = (const struct clk_hw*[]) {
7532 &gcc_usb4_2_sb_if_clk_src.clkr.hw,
7533 },
7534 .num_parents = 1,
7535 .flags = CLK_SET_RATE_PARENT,
7536 .ops = &clk_branch2_ops,
7537 },
7538 },
7539 };
7540
7541 static struct clk_branch gcc_usb4_2_sys_clk = {
7542 .halt_reg = 0xe005c,
7543 .halt_check = BRANCH_HALT,
7544 .clkr = {
7545 .enable_reg = 0xe005c,
7546 .enable_mask = BIT(0),
7547 .hw.init = &(const struct clk_init_data) {
7548 .name = "gcc_usb4_2_sys_clk",
7549 .parent_hws = (const struct clk_hw*[]) {
7550 &gcc_usb4_2_phy_sys_clk_src.clkr.hw,
7551 },
7552 .num_parents = 1,
7553 .flags = CLK_SET_RATE_PARENT,
7554 .ops = &clk_branch2_ops,
7555 },
7556 },
7557 };
7558
7559 static struct clk_branch gcc_usb4_2_tmu_clk = {
7560 .halt_reg = 0xe00a0,
7561 .halt_check = BRANCH_HALT_VOTED,
7562 .hwcg_reg = 0xe00a0,
7563 .hwcg_bit = 1,
7564 .clkr = {
7565 .enable_reg = 0xe00a0,
7566 .enable_mask = BIT(0),
7567 .hw.init = &(const struct clk_init_data) {
7568 .name = "gcc_usb4_2_tmu_clk",
7569 .parent_hws = (const struct clk_hw*[]) {
7570 &gcc_usb4_2_tmu_clk_src.clkr.hw,
7571 },
7572 .num_parents = 1,
7573 .flags = CLK_SET_RATE_PARENT,
7574 .ops = &clk_branch2_ops,
7575 },
7576 },
7577 };
7578
7579 static struct clk_branch gcc_usb4_2_uc_hrr_clk = {
7580 .halt_reg = 0xe006c,
7581 .halt_check = BRANCH_HALT,
7582 .clkr = {
7583 .enable_reg = 0xe006c,
7584 .enable_mask = BIT(0),
7585 .hw.init = &(const struct clk_init_data) {
7586 .name = "gcc_usb4_2_uc_hrr_clk",
7587 .parent_hws = (const struct clk_hw*[]) {
7588 &gcc_usb4_2_phy_sys_clk_src.clkr.hw,
7589 },
7590 .num_parents = 1,
7591 .flags = CLK_SET_RATE_PARENT,
7592 .ops = &clk_branch2_ops,
7593 },
7594 },
7595 };
7596
7597 static struct clk_branch gcc_video_axi0_clk = {
7598 .halt_reg = 0x3201c,
7599 .halt_check = BRANCH_HALT_SKIP,
7600 .hwcg_reg = 0x3201c,
7601 .hwcg_bit = 1,
7602 .clkr = {
7603 .enable_reg = 0x3201c,
7604 .enable_mask = BIT(0),
7605 .hw.init = &(const struct clk_init_data) {
7606 .name = "gcc_video_axi0_clk",
7607 .ops = &clk_branch2_ops,
7608 },
7609 },
7610 };
7611
7612 static struct clk_branch gcc_video_axi0c_clk = {
7613 .halt_reg = 0x32030,
7614 .halt_check = BRANCH_HALT_SKIP,
7615 .hwcg_reg = 0x32030,
7616 .hwcg_bit = 1,
7617 .clkr = {
7618 .enable_reg = 0x32030,
7619 .enable_mask = BIT(0),
7620 .hw.init = &(const struct clk_init_data) {
7621 .name = "gcc_video_axi0c_clk",
7622 .ops = &clk_branch2_ops,
7623 },
7624 },
7625 };
7626
7627 static struct clk_branch gcc_video_axi1_clk = {
7628 .halt_reg = 0x32044,
7629 .halt_check = BRANCH_HALT_SKIP,
7630 .hwcg_reg = 0x32044,
7631 .hwcg_bit = 1,
7632 .clkr = {
7633 .enable_reg = 0x32044,
7634 .enable_mask = BIT(0),
7635 .hw.init = &(const struct clk_init_data) {
7636 .name = "gcc_video_axi1_clk",
7637 .ops = &clk_branch2_ops,
7638 },
7639 },
7640 };
7641
7642 static struct gdsc gcc_pcie_0_tunnel_gdsc = {
7643 .gdscr = 0xc8004,
7644 .en_rest_wait_val = 0x2,
7645 .en_few_wait_val = 0x2,
7646 .clk_dis_wait_val = 0xf,
7647 .pd = {
7648 .name = "gcc_pcie_0_tunnel_gdsc",
7649 },
7650 .pwrsts = PWRSTS_OFF_ON,
7651 .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
7652 };
7653
7654 static struct gdsc gcc_pcie_1_tunnel_gdsc = {
7655 .gdscr = 0x2e004,
7656 .en_rest_wait_val = 0x2,
7657 .en_few_wait_val = 0x2,
7658 .clk_dis_wait_val = 0xf,
7659 .pd = {
7660 .name = "gcc_pcie_1_tunnel_gdsc",
7661 },
7662 .pwrsts = PWRSTS_OFF_ON,
7663 .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
7664 };
7665
7666 static struct gdsc gcc_pcie_2_tunnel_gdsc = {
7667 .gdscr = 0xc0004,
7668 .en_rest_wait_val = 0x2,
7669 .en_few_wait_val = 0x2,
7670 .clk_dis_wait_val = 0xf,
7671 .pd = {
7672 .name = "gcc_pcie_2_tunnel_gdsc",
7673 },
7674 .pwrsts = PWRSTS_OFF_ON,
7675 .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
7676 };
7677
7678 static struct gdsc gcc_pcie_3a_gdsc = {
7679 .gdscr = 0xdc004,
7680 .en_rest_wait_val = 0x2,
7681 .en_few_wait_val = 0x2,
7682 .clk_dis_wait_val = 0xf,
7683 .pd = {
7684 .name = "gcc_pcie_3a_gdsc",
7685 },
7686 .pwrsts = PWRSTS_OFF_ON,
7687 .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
7688 };
7689
7690 static struct gdsc gcc_pcie_3a_phy_gdsc = {
7691 .gdscr = 0x6c004,
7692 .en_rest_wait_val = 0x2,
7693 .en_few_wait_val = 0x2,
7694 .clk_dis_wait_val = 0x2,
7695 .pd = {
7696 .name = "gcc_pcie_3a_phy_gdsc",
7697 },
7698 .pwrsts = PWRSTS_OFF_ON,
7699 .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
7700 };
7701
7702 static struct gdsc gcc_pcie_3b_gdsc = {
7703 .gdscr = 0x94004,
7704 .en_rest_wait_val = 0x2,
7705 .en_few_wait_val = 0x2,
7706 .clk_dis_wait_val = 0xf,
7707 .pd = {
7708 .name = "gcc_pcie_3b_gdsc",
7709 },
7710 .pwrsts = PWRSTS_OFF_ON,
7711 .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
7712 };
7713
7714 static struct gdsc gcc_pcie_3b_phy_gdsc = {
7715 .gdscr = 0x75004,
7716 .en_rest_wait_val = 0x2,
7717 .en_few_wait_val = 0x2,
7718 .clk_dis_wait_val = 0x2,
7719 .pd = {
7720 .name = "gcc_pcie_3b_phy_gdsc",
7721 },
7722 .pwrsts = PWRSTS_OFF_ON,
7723 .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
7724 };
7725
7726 static struct gdsc gcc_pcie_4_gdsc = {
7727 .gdscr = 0x88004,
7728 .en_rest_wait_val = 0x2,
7729 .en_few_wait_val = 0x2,
7730 .clk_dis_wait_val = 0xf,
7731 .pd = {
7732 .name = "gcc_pcie_4_gdsc",
7733 },
7734 .pwrsts = PWRSTS_OFF_ON,
7735 .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
7736 };
7737
7738 static struct gdsc gcc_pcie_4_phy_gdsc = {
7739 .gdscr = 0xd3004,
7740 .en_rest_wait_val = 0x2,
7741 .en_few_wait_val = 0x2,
7742 .clk_dis_wait_val = 0x2,
7743 .pd = {
7744 .name = "gcc_pcie_4_phy_gdsc",
7745 },
7746 .pwrsts = PWRSTS_OFF_ON,
7747 .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
7748 };
7749
7750 static struct gdsc gcc_pcie_5_gdsc = {
7751 .gdscr = 0xc3004,
7752 .en_rest_wait_val = 0x2,
7753 .en_few_wait_val = 0x2,
7754 .clk_dis_wait_val = 0xf,
7755 .pd = {
7756 .name = "gcc_pcie_5_gdsc",
7757 },
7758 .pwrsts = PWRSTS_OFF_ON,
7759 .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
7760 };
7761
7762 static struct gdsc gcc_pcie_5_phy_gdsc = {
7763 .gdscr = 0xd2004,
7764 .en_rest_wait_val = 0x2,
7765 .en_few_wait_val = 0x2,
7766 .clk_dis_wait_val = 0x2,
7767 .pd = {
7768 .name = "gcc_pcie_5_phy_gdsc",
7769 },
7770 .pwrsts = PWRSTS_OFF_ON,
7771 .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
7772 };
7773
7774 static struct gdsc gcc_pcie_6_gdsc = {
7775 .gdscr = 0x8a004,
7776 .en_rest_wait_val = 0x2,
7777 .en_few_wait_val = 0x2,
7778 .clk_dis_wait_val = 0xf,
7779 .pd = {
7780 .name = "gcc_pcie_6_gdsc",
7781 },
7782 .pwrsts = PWRSTS_OFF_ON,
7783 .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
7784 };
7785
7786 static struct gdsc gcc_pcie_6_phy_gdsc = {
7787 .gdscr = 0xd4004,
7788 .en_rest_wait_val = 0x2,
7789 .en_few_wait_val = 0x2,
7790 .clk_dis_wait_val = 0x2,
7791 .pd = {
7792 .name = "gcc_pcie_6_phy_gdsc",
7793 },
7794 .pwrsts = PWRSTS_OFF_ON,
7795 .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
7796 };
7797
7798 static struct gdsc gcc_ufs_phy_gdsc = {
7799 .gdscr = 0x77008,
7800 .en_rest_wait_val = 0x2,
7801 .en_few_wait_val = 0x2,
7802 .clk_dis_wait_val = 0xf,
7803 .pd = {
7804 .name = "gcc_ufs_phy_gdsc",
7805 },
7806 .pwrsts = PWRSTS_OFF_ON,
7807 .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
7808 };
7809
7810 static struct gdsc gcc_usb20_prim_gdsc = {
7811 .gdscr = 0xbc004,
7812 .en_rest_wait_val = 0x2,
7813 .en_few_wait_val = 0x2,
7814 .clk_dis_wait_val = 0xf,
7815 .pd = {
7816 .name = "gcc_usb20_prim_gdsc",
7817 },
7818 .pwrsts = PWRSTS_OFF_ON,
7819 .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
7820 };
7821
7822 static struct gdsc gcc_usb30_mp_gdsc = {
7823 .gdscr = 0x9a010,
7824 .en_rest_wait_val = 0x2,
7825 .en_few_wait_val = 0x2,
7826 .clk_dis_wait_val = 0xf,
7827 .pd = {
7828 .name = "gcc_usb30_mp_gdsc",
7829 },
7830 .pwrsts = PWRSTS_OFF_ON,
7831 .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
7832 };
7833
7834 static struct gdsc gcc_usb30_prim_gdsc = {
7835 .gdscr = 0x3f01c,
7836 .en_rest_wait_val = 0x2,
7837 .en_few_wait_val = 0x2,
7838 .clk_dis_wait_val = 0xf,
7839 .pd = {
7840 .name = "gcc_usb30_prim_gdsc",
7841 },
7842 .pwrsts = PWRSTS_OFF_ON,
7843 .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
7844 };
7845
7846 static struct gdsc gcc_usb30_sec_gdsc = {
7847 .gdscr = 0xe2010,
7848 .en_rest_wait_val = 0x2,
7849 .en_few_wait_val = 0x2,
7850 .clk_dis_wait_val = 0xf,
7851 .pd = {
7852 .name = "gcc_usb30_sec_gdsc",
7853 },
7854 .pwrsts = PWRSTS_OFF_ON,
7855 .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
7856 };
7857
7858 static struct gdsc gcc_usb30_tert_gdsc = {
7859 .gdscr = 0xe1010,
7860 .en_rest_wait_val = 0x2,
7861 .en_few_wait_val = 0x2,
7862 .clk_dis_wait_val = 0xf,
7863 .pd = {
7864 .name = "gcc_usb30_tert_gdsc",
7865 },
7866 .pwrsts = PWRSTS_OFF_ON,
7867 .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
7868 };
7869
7870 static struct gdsc gcc_usb3_mp_ss0_phy_gdsc = {
7871 .gdscr = 0x5400c,
7872 .en_rest_wait_val = 0x2,
7873 .en_few_wait_val = 0x2,
7874 .clk_dis_wait_val = 0x2,
7875 .pd = {
7876 .name = "gcc_usb3_mp_ss0_phy_gdsc",
7877 },
7878 .pwrsts = PWRSTS_OFF_ON,
7879 .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
7880 };
7881
7882 static struct gdsc gcc_usb3_mp_ss1_phy_gdsc = {
7883 .gdscr = 0x5402c,
7884 .en_rest_wait_val = 0x2,
7885 .en_few_wait_val = 0x2,
7886 .clk_dis_wait_val = 0x2,
7887 .pd = {
7888 .name = "gcc_usb3_mp_ss1_phy_gdsc",
7889 },
7890 .pwrsts = PWRSTS_OFF_ON,
7891 .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
7892 };
7893
7894 static struct gdsc gcc_usb4_0_gdsc = {
7895 .gdscr = 0x2b008,
7896 .en_rest_wait_val = 0x2,
7897 .en_few_wait_val = 0x2,
7898 .clk_dis_wait_val = 0xf,
7899 .pd = {
7900 .name = "gcc_usb4_0_gdsc",
7901 },
7902 .pwrsts = PWRSTS_OFF_ON,
7903 .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
7904 };
7905
7906 static struct gdsc gcc_usb4_1_gdsc = {
7907 .gdscr = 0x2d008,
7908 .en_rest_wait_val = 0x2,
7909 .en_few_wait_val = 0x2,
7910 .clk_dis_wait_val = 0xf,
7911 .pd = {
7912 .name = "gcc_usb4_1_gdsc",
7913 },
7914 .pwrsts = PWRSTS_OFF_ON,
7915 .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
7916 };
7917
7918 static struct gdsc gcc_usb4_2_gdsc = {
7919 .gdscr = 0xe0008,
7920 .en_rest_wait_val = 0x2,
7921 .en_few_wait_val = 0x2,
7922 .clk_dis_wait_val = 0xf,
7923 .pd = {
7924 .name = "gcc_usb4_2_gdsc",
7925 },
7926 .pwrsts = PWRSTS_OFF_ON,
7927 .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
7928 };
7929
7930 static struct gdsc gcc_usb_0_phy_gdsc = {
7931 .gdscr = 0xdb024,
7932 .en_rest_wait_val = 0x2,
7933 .en_few_wait_val = 0x2,
7934 .clk_dis_wait_val = 0x2,
7935 .pd = {
7936 .name = "gcc_usb_0_phy_gdsc",
7937 },
7938 .pwrsts = PWRSTS_OFF_ON,
7939 .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
7940 };
7941
7942 static struct gdsc gcc_usb_1_phy_gdsc = {
7943 .gdscr = 0x2c024,
7944 .en_rest_wait_val = 0x2,
7945 .en_few_wait_val = 0x2,
7946 .clk_dis_wait_val = 0x2,
7947 .pd = {
7948 .name = "gcc_usb_1_phy_gdsc",
7949 },
7950 .pwrsts = PWRSTS_OFF_ON,
7951 .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
7952 };
7953
7954 static struct gdsc gcc_usb_2_phy_gdsc = {
7955 .gdscr = 0xbe024,
7956 .en_rest_wait_val = 0x2,
7957 .en_few_wait_val = 0x2,
7958 .clk_dis_wait_val = 0x2,
7959 .pd = {
7960 .name = "gcc_usb_2_phy_gdsc",
7961 },
7962 .pwrsts = PWRSTS_OFF_ON,
7963 .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
7964 };
7965
7966 static struct clk_regmap *gcc_glymur_clocks[] = {
7967 [GCC_AGGRE_NOC_PCIE_3A_WEST_SF_AXI_CLK] = &gcc_aggre_noc_pcie_3a_west_sf_axi_clk.clkr,
7968 [GCC_AGGRE_NOC_PCIE_3B_WEST_SF_AXI_CLK] = &gcc_aggre_noc_pcie_3b_west_sf_axi_clk.clkr,
7969 [GCC_AGGRE_NOC_PCIE_4_WEST_SF_AXI_CLK] = &gcc_aggre_noc_pcie_4_west_sf_axi_clk.clkr,
7970 [GCC_AGGRE_NOC_PCIE_5_EAST_SF_AXI_CLK] = &gcc_aggre_noc_pcie_5_east_sf_axi_clk.clkr,
7971 [GCC_AGGRE_NOC_PCIE_6_WEST_SF_AXI_CLK] = &gcc_aggre_noc_pcie_6_west_sf_axi_clk.clkr,
7972 [GCC_AGGRE_UFS_PHY_AXI_CLK] = &gcc_aggre_ufs_phy_axi_clk.clkr,
7973 [GCC_AGGRE_USB2_PRIM_AXI_CLK] = &gcc_aggre_usb2_prim_axi_clk.clkr,
7974 [GCC_AGGRE_USB3_MP_AXI_CLK] = &gcc_aggre_usb3_mp_axi_clk.clkr,
7975 [GCC_AGGRE_USB3_PRIM_AXI_CLK] = &gcc_aggre_usb3_prim_axi_clk.clkr,
7976 [GCC_AGGRE_USB3_SEC_AXI_CLK] = &gcc_aggre_usb3_sec_axi_clk.clkr,
7977 [GCC_AGGRE_USB3_TERT_AXI_CLK] = &gcc_aggre_usb3_tert_axi_clk.clkr,
7978 [GCC_AGGRE_USB4_0_AXI_CLK] = &gcc_aggre_usb4_0_axi_clk.clkr,
7979 [GCC_AGGRE_USB4_1_AXI_CLK] = &gcc_aggre_usb4_1_axi_clk.clkr,
7980 [GCC_AGGRE_USB4_2_AXI_CLK] = &gcc_aggre_usb4_2_axi_clk.clkr,
7981 [GCC_AV1E_AHB_CLK] = &gcc_av1e_ahb_clk.clkr,
7982 [GCC_AV1E_AXI_CLK] = &gcc_av1e_axi_clk.clkr,
7983 [GCC_AV1E_XO_CLK] = &gcc_av1e_xo_clk.clkr,
7984 [GCC_BOOT_ROM_AHB_CLK] = &gcc_boot_rom_ahb_clk.clkr,
7985 [GCC_CAMERA_HF_AXI_CLK] = &gcc_camera_hf_axi_clk.clkr,
7986 [GCC_CAMERA_SF_AXI_CLK] = &gcc_camera_sf_axi_clk.clkr,
7987 [GCC_CFG_NOC_PCIE_ANOC_AHB_CLK] = &gcc_cfg_noc_pcie_anoc_ahb_clk.clkr,
7988 [GCC_CFG_NOC_PCIE_ANOC_SOUTH_AHB_CLK] = &gcc_cfg_noc_pcie_anoc_south_ahb_clk.clkr,
7989 [GCC_CFG_NOC_USB2_PRIM_AXI_CLK] = &gcc_cfg_noc_usb2_prim_axi_clk.clkr,
7990 [GCC_CFG_NOC_USB3_MP_AXI_CLK] = &gcc_cfg_noc_usb3_mp_axi_clk.clkr,
7991 [GCC_CFG_NOC_USB3_PRIM_AXI_CLK] = &gcc_cfg_noc_usb3_prim_axi_clk.clkr,
7992 [GCC_CFG_NOC_USB3_SEC_AXI_CLK] = &gcc_cfg_noc_usb3_sec_axi_clk.clkr,
7993 [GCC_CFG_NOC_USB3_TERT_AXI_CLK] = &gcc_cfg_noc_usb3_tert_axi_clk.clkr,
7994 [GCC_CFG_NOC_USB_ANOC_AHB_CLK] = &gcc_cfg_noc_usb_anoc_ahb_clk.clkr,
7995 [GCC_CFG_NOC_USB_ANOC_SOUTH_AHB_CLK] = &gcc_cfg_noc_usb_anoc_south_ahb_clk.clkr,
7996 [GCC_DISP_HF_AXI_CLK] = &gcc_disp_hf_axi_clk.clkr,
7997 [GCC_EVA_AHB_CLK] = &gcc_eva_ahb_clk.clkr,
7998 [GCC_EVA_AXI0_CLK] = &gcc_eva_axi0_clk.clkr,
7999 [GCC_EVA_AXI0C_CLK] = &gcc_eva_axi0c_clk.clkr,
8000 [GCC_EVA_XO_CLK] = &gcc_eva_xo_clk.clkr,
8001 [GCC_GP1_CLK] = &gcc_gp1_clk.clkr,
8002 [GCC_GP1_CLK_SRC] = &gcc_gp1_clk_src.clkr,
8003 [GCC_GP2_CLK] = &gcc_gp2_clk.clkr,
8004 [GCC_GP2_CLK_SRC] = &gcc_gp2_clk_src.clkr,
8005 [GCC_GP3_CLK] = &gcc_gp3_clk.clkr,
8006 [GCC_GP3_CLK_SRC] = &gcc_gp3_clk_src.clkr,
8007 [GCC_GPLL0] = &gcc_gpll0.clkr,
8008 [GCC_GPLL0_OUT_EVEN] = &gcc_gpll0_out_even.clkr,
8009 [GCC_GPLL1] = &gcc_gpll1.clkr,
8010 [GCC_GPLL14] = &gcc_gpll14.clkr,
8011 [GCC_GPLL14_OUT_EVEN] = &gcc_gpll14_out_even.clkr,
8012 [GCC_GPLL4] = &gcc_gpll4.clkr,
8013 [GCC_GPLL5] = &gcc_gpll5.clkr,
8014 [GCC_GPLL7] = &gcc_gpll7.clkr,
8015 [GCC_GPLL8] = &gcc_gpll8.clkr,
8016 [GCC_GPLL9] = &gcc_gpll9.clkr,
8017 [GCC_GPU_GEMNOC_GFX_CLK] = &gcc_gpu_gemnoc_gfx_clk.clkr,
8018 [GCC_GPU_GPLL0_CLK_SRC] = &gcc_gpu_gpll0_clk_src.clkr,
8019 [GCC_GPU_GPLL0_DIV_CLK_SRC] = &gcc_gpu_gpll0_div_clk_src.clkr,
8020 [GCC_PCIE_0_AUX_CLK] = &gcc_pcie_0_aux_clk.clkr,
8021 [GCC_PCIE_0_AUX_CLK_SRC] = &gcc_pcie_0_aux_clk_src.clkr,
8022 [GCC_PCIE_0_CFG_AHB_CLK] = &gcc_pcie_0_cfg_ahb_clk.clkr,
8023 [GCC_PCIE_0_MSTR_AXI_CLK] = &gcc_pcie_0_mstr_axi_clk.clkr,
8024 [GCC_PCIE_0_PHY_RCHNG_CLK] = &gcc_pcie_0_phy_rchng_clk.clkr,
8025 [GCC_PCIE_0_PHY_RCHNG_CLK_SRC] = &gcc_pcie_0_phy_rchng_clk_src.clkr,
8026 [GCC_PCIE_0_PIPE_CLK] = &gcc_pcie_0_pipe_clk.clkr,
8027 [GCC_PCIE_0_SLV_AXI_CLK] = &gcc_pcie_0_slv_axi_clk.clkr,
8028 [GCC_PCIE_0_SLV_Q2A_AXI_CLK] = &gcc_pcie_0_slv_q2a_axi_clk.clkr,
8029 [GCC_PCIE_1_AUX_CLK] = &gcc_pcie_1_aux_clk.clkr,
8030 [GCC_PCIE_1_AUX_CLK_SRC] = &gcc_pcie_1_aux_clk_src.clkr,
8031 [GCC_PCIE_1_CFG_AHB_CLK] = &gcc_pcie_1_cfg_ahb_clk.clkr,
8032 [GCC_PCIE_1_MSTR_AXI_CLK] = &gcc_pcie_1_mstr_axi_clk.clkr,
8033 [GCC_PCIE_1_PHY_RCHNG_CLK] = &gcc_pcie_1_phy_rchng_clk.clkr,
8034 [GCC_PCIE_1_PHY_RCHNG_CLK_SRC] = &gcc_pcie_1_phy_rchng_clk_src.clkr,
8035 [GCC_PCIE_1_PIPE_CLK] = &gcc_pcie_1_pipe_clk.clkr,
8036 [GCC_PCIE_1_SLV_AXI_CLK] = &gcc_pcie_1_slv_axi_clk.clkr,
8037 [GCC_PCIE_1_SLV_Q2A_AXI_CLK] = &gcc_pcie_1_slv_q2a_axi_clk.clkr,
8038 [GCC_PCIE_2_AUX_CLK] = &gcc_pcie_2_aux_clk.clkr,
8039 [GCC_PCIE_2_AUX_CLK_SRC] = &gcc_pcie_2_aux_clk_src.clkr,
8040 [GCC_PCIE_2_CFG_AHB_CLK] = &gcc_pcie_2_cfg_ahb_clk.clkr,
8041 [GCC_PCIE_2_MSTR_AXI_CLK] = &gcc_pcie_2_mstr_axi_clk.clkr,
8042 [GCC_PCIE_2_PHY_RCHNG_CLK] = &gcc_pcie_2_phy_rchng_clk.clkr,
8043 [GCC_PCIE_2_PHY_RCHNG_CLK_SRC] = &gcc_pcie_2_phy_rchng_clk_src.clkr,
8044 [GCC_PCIE_2_PIPE_CLK] = &gcc_pcie_2_pipe_clk.clkr,
8045 [GCC_PCIE_2_SLV_AXI_CLK] = &gcc_pcie_2_slv_axi_clk.clkr,
8046 [GCC_PCIE_2_SLV_Q2A_AXI_CLK] = &gcc_pcie_2_slv_q2a_axi_clk.clkr,
8047 [GCC_PCIE_3A_AUX_CLK] = &gcc_pcie_3a_aux_clk.clkr,
8048 [GCC_PCIE_3A_AUX_CLK_SRC] = &gcc_pcie_3a_aux_clk_src.clkr,
8049 [GCC_PCIE_3A_CFG_AHB_CLK] = &gcc_pcie_3a_cfg_ahb_clk.clkr,
8050 [GCC_PCIE_3A_MSTR_AXI_CLK] = &gcc_pcie_3a_mstr_axi_clk.clkr,
8051 [GCC_PCIE_3A_PHY_RCHNG_CLK] = &gcc_pcie_3a_phy_rchng_clk.clkr,
8052 [GCC_PCIE_3A_PHY_RCHNG_CLK_SRC] = &gcc_pcie_3a_phy_rchng_clk_src.clkr,
8053 [GCC_PCIE_3A_PIPE_CLK] = &gcc_pcie_3a_pipe_clk.clkr,
8054 [GCC_PCIE_3A_PIPE_CLK_SRC] = &gcc_pcie_3a_pipe_clk_src.clkr,
8055 [GCC_PCIE_3A_SLV_AXI_CLK] = &gcc_pcie_3a_slv_axi_clk.clkr,
8056 [GCC_PCIE_3A_SLV_Q2A_AXI_CLK] = &gcc_pcie_3a_slv_q2a_axi_clk.clkr,
8057 [GCC_PCIE_3B_AUX_CLK] = &gcc_pcie_3b_aux_clk.clkr,
8058 [GCC_PCIE_3B_AUX_CLK_SRC] = &gcc_pcie_3b_aux_clk_src.clkr,
8059 [GCC_PCIE_3B_CFG_AHB_CLK] = &gcc_pcie_3b_cfg_ahb_clk.clkr,
8060 [GCC_PCIE_3B_MSTR_AXI_CLK] = &gcc_pcie_3b_mstr_axi_clk.clkr,
8061 [GCC_PCIE_3B_PHY_RCHNG_CLK] = &gcc_pcie_3b_phy_rchng_clk.clkr,
8062 [GCC_PCIE_3B_PHY_RCHNG_CLK_SRC] = &gcc_pcie_3b_phy_rchng_clk_src.clkr,
8063 [GCC_PCIE_3B_PIPE_CLK] = &gcc_pcie_3b_pipe_clk.clkr,
8064 [GCC_PCIE_3B_PIPE_CLK_SRC] = &gcc_pcie_3b_pipe_clk_src.clkr,
8065 [GCC_PCIE_3B_PIPE_DIV2_CLK] = &gcc_pcie_3b_pipe_div2_clk.clkr,
8066 [GCC_PCIE_3B_PIPE_DIV_CLK_SRC] = &gcc_pcie_3b_pipe_div_clk_src.clkr,
8067 [GCC_PCIE_3B_SLV_AXI_CLK] = &gcc_pcie_3b_slv_axi_clk.clkr,
8068 [GCC_PCIE_3B_SLV_Q2A_AXI_CLK] = &gcc_pcie_3b_slv_q2a_axi_clk.clkr,
8069 [GCC_PCIE_4_AUX_CLK] = &gcc_pcie_4_aux_clk.clkr,
8070 [GCC_PCIE_4_AUX_CLK_SRC] = &gcc_pcie_4_aux_clk_src.clkr,
8071 [GCC_PCIE_4_CFG_AHB_CLK] = &gcc_pcie_4_cfg_ahb_clk.clkr,
8072 [GCC_PCIE_4_MSTR_AXI_CLK] = &gcc_pcie_4_mstr_axi_clk.clkr,
8073 [GCC_PCIE_4_PHY_RCHNG_CLK] = &gcc_pcie_4_phy_rchng_clk.clkr,
8074 [GCC_PCIE_4_PHY_RCHNG_CLK_SRC] = &gcc_pcie_4_phy_rchng_clk_src.clkr,
8075 [GCC_PCIE_4_PIPE_CLK] = &gcc_pcie_4_pipe_clk.clkr,
8076 [GCC_PCIE_4_PIPE_CLK_SRC] = &gcc_pcie_4_pipe_clk_src.clkr,
8077 [GCC_PCIE_4_PIPE_DIV2_CLK] = &gcc_pcie_4_pipe_div2_clk.clkr,
8078 [GCC_PCIE_4_PIPE_DIV_CLK_SRC] = &gcc_pcie_4_pipe_div_clk_src.clkr,
8079 [GCC_PCIE_4_SLV_AXI_CLK] = &gcc_pcie_4_slv_axi_clk.clkr,
8080 [GCC_PCIE_4_SLV_Q2A_AXI_CLK] = &gcc_pcie_4_slv_q2a_axi_clk.clkr,
8081 [GCC_PCIE_5_AUX_CLK] = &gcc_pcie_5_aux_clk.clkr,
8082 [GCC_PCIE_5_AUX_CLK_SRC] = &gcc_pcie_5_aux_clk_src.clkr,
8083 [GCC_PCIE_5_CFG_AHB_CLK] = &gcc_pcie_5_cfg_ahb_clk.clkr,
8084 [GCC_PCIE_5_MSTR_AXI_CLK] = &gcc_pcie_5_mstr_axi_clk.clkr,
8085 [GCC_PCIE_5_PHY_RCHNG_CLK] = &gcc_pcie_5_phy_rchng_clk.clkr,
8086 [GCC_PCIE_5_PHY_RCHNG_CLK_SRC] = &gcc_pcie_5_phy_rchng_clk_src.clkr,
8087 [GCC_PCIE_5_PIPE_CLK] = &gcc_pcie_5_pipe_clk.clkr,
8088 [GCC_PCIE_5_PIPE_CLK_SRC] = &gcc_pcie_5_pipe_clk_src.clkr,
8089 [GCC_PCIE_5_PIPE_DIV2_CLK] = &gcc_pcie_5_pipe_div2_clk.clkr,
8090 [GCC_PCIE_5_PIPE_DIV_CLK_SRC] = &gcc_pcie_5_pipe_div_clk_src.clkr,
8091 [GCC_PCIE_5_SLV_AXI_CLK] = &gcc_pcie_5_slv_axi_clk.clkr,
8092 [GCC_PCIE_5_SLV_Q2A_AXI_CLK] = &gcc_pcie_5_slv_q2a_axi_clk.clkr,
8093 [GCC_PCIE_6_AUX_CLK] = &gcc_pcie_6_aux_clk.clkr,
8094 [GCC_PCIE_6_AUX_CLK_SRC] = &gcc_pcie_6_aux_clk_src.clkr,
8095 [GCC_PCIE_6_CFG_AHB_CLK] = &gcc_pcie_6_cfg_ahb_clk.clkr,
8096 [GCC_PCIE_6_MSTR_AXI_CLK] = &gcc_pcie_6_mstr_axi_clk.clkr,
8097 [GCC_PCIE_6_PHY_RCHNG_CLK] = &gcc_pcie_6_phy_rchng_clk.clkr,
8098 [GCC_PCIE_6_PHY_RCHNG_CLK_SRC] = &gcc_pcie_6_phy_rchng_clk_src.clkr,
8099 [GCC_PCIE_6_PIPE_CLK] = &gcc_pcie_6_pipe_clk.clkr,
8100 [GCC_PCIE_6_PIPE_CLK_SRC] = &gcc_pcie_6_pipe_clk_src.clkr,
8101 [GCC_PCIE_6_PIPE_DIV2_CLK] = &gcc_pcie_6_pipe_div2_clk.clkr,
8102 [GCC_PCIE_6_PIPE_DIV_CLK_SRC] = &gcc_pcie_6_pipe_div_clk_src.clkr,
8103 [GCC_PCIE_6_SLV_AXI_CLK] = &gcc_pcie_6_slv_axi_clk.clkr,
8104 [GCC_PCIE_6_SLV_Q2A_AXI_CLK] = &gcc_pcie_6_slv_q2a_axi_clk.clkr,
8105 [GCC_PCIE_NOC_PWRCTL_CLK] = &gcc_pcie_noc_pwrctl_clk.clkr,
8106 [GCC_PCIE_NOC_QOSGEN_EXTREF_CLK] = &gcc_pcie_noc_qosgen_extref_clk.clkr,
8107 [GCC_PCIE_NOC_SF_CENTER_CLK] = &gcc_pcie_noc_sf_center_clk.clkr,
8108 [GCC_PCIE_NOC_SLAVE_SF_EAST_CLK] = &gcc_pcie_noc_slave_sf_east_clk.clkr,
8109 [GCC_PCIE_NOC_SLAVE_SF_WEST_CLK] = &gcc_pcie_noc_slave_sf_west_clk.clkr,
8110 [GCC_PCIE_NOC_TSCTR_CLK] = &gcc_pcie_noc_tsctr_clk.clkr,
8111 [GCC_PCIE_PHY_3A_AUX_CLK] = &gcc_pcie_phy_3a_aux_clk.clkr,
8112 [GCC_PCIE_PHY_3A_AUX_CLK_SRC] = &gcc_pcie_phy_3a_aux_clk_src.clkr,
8113 [GCC_PCIE_PHY_3B_AUX_CLK] = &gcc_pcie_phy_3b_aux_clk.clkr,
8114 [GCC_PCIE_PHY_3B_AUX_CLK_SRC] = &gcc_pcie_phy_3b_aux_clk_src.clkr,
8115 [GCC_PCIE_PHY_4_AUX_CLK] = &gcc_pcie_phy_4_aux_clk.clkr,
8116 [GCC_PCIE_PHY_4_AUX_CLK_SRC] = &gcc_pcie_phy_4_aux_clk_src.clkr,
8117 [GCC_PCIE_PHY_5_AUX_CLK] = &gcc_pcie_phy_5_aux_clk.clkr,
8118 [GCC_PCIE_PHY_5_AUX_CLK_SRC] = &gcc_pcie_phy_5_aux_clk_src.clkr,
8119 [GCC_PCIE_PHY_6_AUX_CLK] = &gcc_pcie_phy_6_aux_clk.clkr,
8120 [GCC_PCIE_PHY_6_AUX_CLK_SRC] = &gcc_pcie_phy_6_aux_clk_src.clkr,
8121 [GCC_PCIE_RSCC_CFG_AHB_CLK] = &gcc_pcie_rscc_cfg_ahb_clk.clkr,
8122 [GCC_PCIE_RSCC_XO_CLK] = &gcc_pcie_rscc_xo_clk.clkr,
8123 [GCC_PDM2_CLK] = &gcc_pdm2_clk.clkr,
8124 [GCC_PDM2_CLK_SRC] = &gcc_pdm2_clk_src.clkr,
8125 [GCC_PDM_AHB_CLK] = &gcc_pdm_ahb_clk.clkr,
8126 [GCC_PDM_XO4_CLK] = &gcc_pdm_xo4_clk.clkr,
8127 [GCC_QMIP_AV1E_AHB_CLK] = &gcc_qmip_av1e_ahb_clk.clkr,
8128 [GCC_QMIP_CAMERA_CMD_AHB_CLK] = &gcc_qmip_camera_cmd_ahb_clk.clkr,
8129 [GCC_QMIP_CAMERA_NRT_AHB_CLK] = &gcc_qmip_camera_nrt_ahb_clk.clkr,
8130 [GCC_QMIP_CAMERA_RT_AHB_CLK] = &gcc_qmip_camera_rt_ahb_clk.clkr,
8131 [GCC_QMIP_GPU_AHB_CLK] = &gcc_qmip_gpu_ahb_clk.clkr,
8132 [GCC_QMIP_PCIE_3A_AHB_CLK] = &gcc_qmip_pcie_3a_ahb_clk.clkr,
8133 [GCC_QMIP_PCIE_3B_AHB_CLK] = &gcc_qmip_pcie_3b_ahb_clk.clkr,
8134 [GCC_QMIP_PCIE_4_AHB_CLK] = &gcc_qmip_pcie_4_ahb_clk.clkr,
8135 [GCC_QMIP_PCIE_5_AHB_CLK] = &gcc_qmip_pcie_5_ahb_clk.clkr,
8136 [GCC_QMIP_PCIE_6_AHB_CLK] = &gcc_qmip_pcie_6_ahb_clk.clkr,
8137 [GCC_QMIP_VIDEO_CV_CPU_AHB_CLK] = &gcc_qmip_video_cv_cpu_ahb_clk.clkr,
8138 [GCC_QMIP_VIDEO_CVP_AHB_CLK] = &gcc_qmip_video_cvp_ahb_clk.clkr,
8139 [GCC_QMIP_VIDEO_V_CPU_AHB_CLK] = &gcc_qmip_video_v_cpu_ahb_clk.clkr,
8140 [GCC_QMIP_VIDEO_VCODEC1_AHB_CLK] = &gcc_qmip_video_vcodec1_ahb_clk.clkr,
8141 [GCC_QMIP_VIDEO_VCODEC_AHB_CLK] = &gcc_qmip_video_vcodec_ahb_clk.clkr,
8142 [GCC_QUPV3_OOB_CORE_2X_CLK] = &gcc_qupv3_oob_core_2x_clk.clkr,
8143 [GCC_QUPV3_OOB_CORE_CLK] = &gcc_qupv3_oob_core_clk.clkr,
8144 [GCC_QUPV3_OOB_M_AHB_CLK] = &gcc_qupv3_oob_m_ahb_clk.clkr,
8145 [GCC_QUPV3_OOB_QSPI_S0_CLK] = &gcc_qupv3_oob_qspi_s0_clk.clkr,
8146 [GCC_QUPV3_OOB_QSPI_S0_CLK_SRC] = &gcc_qupv3_oob_qspi_s0_clk_src.clkr,
8147 [GCC_QUPV3_OOB_QSPI_S1_CLK] = &gcc_qupv3_oob_qspi_s1_clk.clkr,
8148 [GCC_QUPV3_OOB_QSPI_S1_CLK_SRC] = &gcc_qupv3_oob_qspi_s1_clk_src.clkr,
8149 [GCC_QUPV3_OOB_S0_CLK] = &gcc_qupv3_oob_s0_clk.clkr,
8150 [GCC_QUPV3_OOB_S0_CLK_SRC] = &gcc_qupv3_oob_s0_clk_src.clkr,
8151 [GCC_QUPV3_OOB_S1_CLK] = &gcc_qupv3_oob_s1_clk.clkr,
8152 [GCC_QUPV3_OOB_S1_CLK_SRC] = &gcc_qupv3_oob_s1_clk_src.clkr,
8153 [GCC_QUPV3_OOB_S_AHB_CLK] = &gcc_qupv3_oob_s_ahb_clk.clkr,
8154 [GCC_QUPV3_OOB_TCXO_CLK] = &gcc_qupv3_oob_tcxo_clk.clkr,
8155 [GCC_QUPV3_WRAP0_CORE_2X_CLK] = &gcc_qupv3_wrap0_core_2x_clk.clkr,
8156 [GCC_QUPV3_WRAP0_CORE_CLK] = &gcc_qupv3_wrap0_core_clk.clkr,
8157 [GCC_QUPV3_WRAP0_QSPI_S2_CLK] = &gcc_qupv3_wrap0_qspi_s2_clk.clkr,
8158 [GCC_QUPV3_WRAP0_QSPI_S2_CLK_SRC] = &gcc_qupv3_wrap0_qspi_s2_clk_src.clkr,
8159 [GCC_QUPV3_WRAP0_QSPI_S3_CLK] = &gcc_qupv3_wrap0_qspi_s3_clk.clkr,
8160 [GCC_QUPV3_WRAP0_QSPI_S3_CLK_SRC] = &gcc_qupv3_wrap0_qspi_s3_clk_src.clkr,
8161 [GCC_QUPV3_WRAP0_QSPI_S6_CLK] = &gcc_qupv3_wrap0_qspi_s6_clk.clkr,
8162 [GCC_QUPV3_WRAP0_QSPI_S6_CLK_SRC] = &gcc_qupv3_wrap0_qspi_s6_clk_src.clkr,
8163 [GCC_QUPV3_WRAP0_S0_CLK] = &gcc_qupv3_wrap0_s0_clk.clkr,
8164 [GCC_QUPV3_WRAP0_S0_CLK_SRC] = &gcc_qupv3_wrap0_s0_clk_src.clkr,
8165 [GCC_QUPV3_WRAP0_S1_CLK] = &gcc_qupv3_wrap0_s1_clk.clkr,
8166 [GCC_QUPV3_WRAP0_S1_CLK_SRC] = &gcc_qupv3_wrap0_s1_clk_src.clkr,
8167 [GCC_QUPV3_WRAP0_S2_CLK] = &gcc_qupv3_wrap0_s2_clk.clkr,
8168 [GCC_QUPV3_WRAP0_S2_CLK_SRC] = &gcc_qupv3_wrap0_s2_clk_src.clkr,
8169 [GCC_QUPV3_WRAP0_S3_CLK] = &gcc_qupv3_wrap0_s3_clk.clkr,
8170 [GCC_QUPV3_WRAP0_S3_CLK_SRC] = &gcc_qupv3_wrap0_s3_clk_src.clkr,
8171 [GCC_QUPV3_WRAP0_S4_CLK] = &gcc_qupv3_wrap0_s4_clk.clkr,
8172 [GCC_QUPV3_WRAP0_S4_CLK_SRC] = &gcc_qupv3_wrap0_s4_clk_src.clkr,
8173 [GCC_QUPV3_WRAP0_S5_CLK] = &gcc_qupv3_wrap0_s5_clk.clkr,
8174 [GCC_QUPV3_WRAP0_S5_CLK_SRC] = &gcc_qupv3_wrap0_s5_clk_src.clkr,
8175 [GCC_QUPV3_WRAP0_S6_CLK] = &gcc_qupv3_wrap0_s6_clk.clkr,
8176 [GCC_QUPV3_WRAP0_S6_CLK_SRC] = &gcc_qupv3_wrap0_s6_clk_src.clkr,
8177 [GCC_QUPV3_WRAP0_S7_CLK] = &gcc_qupv3_wrap0_s7_clk.clkr,
8178 [GCC_QUPV3_WRAP0_S7_CLK_SRC] = &gcc_qupv3_wrap0_s7_clk_src.clkr,
8179 [GCC_QUPV3_WRAP1_CORE_2X_CLK] = &gcc_qupv3_wrap1_core_2x_clk.clkr,
8180 [GCC_QUPV3_WRAP1_CORE_CLK] = &gcc_qupv3_wrap1_core_clk.clkr,
8181 [GCC_QUPV3_WRAP1_QSPI_S2_CLK] = &gcc_qupv3_wrap1_qspi_s2_clk.clkr,
8182 [GCC_QUPV3_WRAP1_QSPI_S2_CLK_SRC] = &gcc_qupv3_wrap1_qspi_s2_clk_src.clkr,
8183 [GCC_QUPV3_WRAP1_QSPI_S3_CLK] = &gcc_qupv3_wrap1_qspi_s3_clk.clkr,
8184 [GCC_QUPV3_WRAP1_QSPI_S3_CLK_SRC] = &gcc_qupv3_wrap1_qspi_s3_clk_src.clkr,
8185 [GCC_QUPV3_WRAP1_QSPI_S6_CLK] = &gcc_qupv3_wrap1_qspi_s6_clk.clkr,
8186 [GCC_QUPV3_WRAP1_QSPI_S6_CLK_SRC] = &gcc_qupv3_wrap1_qspi_s6_clk_src.clkr,
8187 [GCC_QUPV3_WRAP1_S0_CLK] = &gcc_qupv3_wrap1_s0_clk.clkr,
8188 [GCC_QUPV3_WRAP1_S0_CLK_SRC] = &gcc_qupv3_wrap1_s0_clk_src.clkr,
8189 [GCC_QUPV3_WRAP1_S1_CLK] = &gcc_qupv3_wrap1_s1_clk.clkr,
8190 [GCC_QUPV3_WRAP1_S1_CLK_SRC] = &gcc_qupv3_wrap1_s1_clk_src.clkr,
8191 [GCC_QUPV3_WRAP1_S2_CLK] = &gcc_qupv3_wrap1_s2_clk.clkr,
8192 [GCC_QUPV3_WRAP1_S2_CLK_SRC] = &gcc_qupv3_wrap1_s2_clk_src.clkr,
8193 [GCC_QUPV3_WRAP1_S3_CLK] = &gcc_qupv3_wrap1_s3_clk.clkr,
8194 [GCC_QUPV3_WRAP1_S3_CLK_SRC] = &gcc_qupv3_wrap1_s3_clk_src.clkr,
8195 [GCC_QUPV3_WRAP1_S4_CLK] = &gcc_qupv3_wrap1_s4_clk.clkr,
8196 [GCC_QUPV3_WRAP1_S4_CLK_SRC] = &gcc_qupv3_wrap1_s4_clk_src.clkr,
8197 [GCC_QUPV3_WRAP1_S5_CLK] = &gcc_qupv3_wrap1_s5_clk.clkr,
8198 [GCC_QUPV3_WRAP1_S5_CLK_SRC] = &gcc_qupv3_wrap1_s5_clk_src.clkr,
8199 [GCC_QUPV3_WRAP1_S6_CLK] = &gcc_qupv3_wrap1_s6_clk.clkr,
8200 [GCC_QUPV3_WRAP1_S6_CLK_SRC] = &gcc_qupv3_wrap1_s6_clk_src.clkr,
8201 [GCC_QUPV3_WRAP1_S7_CLK] = &gcc_qupv3_wrap1_s7_clk.clkr,
8202 [GCC_QUPV3_WRAP1_S7_CLK_SRC] = &gcc_qupv3_wrap1_s7_clk_src.clkr,
8203 [GCC_QUPV3_WRAP2_CORE_2X_CLK] = &gcc_qupv3_wrap2_core_2x_clk.clkr,
8204 [GCC_QUPV3_WRAP2_CORE_CLK] = &gcc_qupv3_wrap2_core_clk.clkr,
8205 [GCC_QUPV3_WRAP2_QSPI_S2_CLK] = &gcc_qupv3_wrap2_qspi_s2_clk.clkr,
8206 [GCC_QUPV3_WRAP2_QSPI_S2_CLK_SRC] = &gcc_qupv3_wrap2_qspi_s2_clk_src.clkr,
8207 [GCC_QUPV3_WRAP2_QSPI_S3_CLK] = &gcc_qupv3_wrap2_qspi_s3_clk.clkr,
8208 [GCC_QUPV3_WRAP2_QSPI_S3_CLK_SRC] = &gcc_qupv3_wrap2_qspi_s3_clk_src.clkr,
8209 [GCC_QUPV3_WRAP2_QSPI_S6_CLK] = &gcc_qupv3_wrap2_qspi_s6_clk.clkr,
8210 [GCC_QUPV3_WRAP2_QSPI_S6_CLK_SRC] = &gcc_qupv3_wrap2_qspi_s6_clk_src.clkr,
8211 [GCC_QUPV3_WRAP2_S0_CLK] = &gcc_qupv3_wrap2_s0_clk.clkr,
8212 [GCC_QUPV3_WRAP2_S0_CLK_SRC] = &gcc_qupv3_wrap2_s0_clk_src.clkr,
8213 [GCC_QUPV3_WRAP2_S1_CLK] = &gcc_qupv3_wrap2_s1_clk.clkr,
8214 [GCC_QUPV3_WRAP2_S1_CLK_SRC] = &gcc_qupv3_wrap2_s1_clk_src.clkr,
8215 [GCC_QUPV3_WRAP2_S2_CLK] = &gcc_qupv3_wrap2_s2_clk.clkr,
8216 [GCC_QUPV3_WRAP2_S2_CLK_SRC] = &gcc_qupv3_wrap2_s2_clk_src.clkr,
8217 [GCC_QUPV3_WRAP2_S3_CLK] = &gcc_qupv3_wrap2_s3_clk.clkr,
8218 [GCC_QUPV3_WRAP2_S3_CLK_SRC] = &gcc_qupv3_wrap2_s3_clk_src.clkr,
8219 [GCC_QUPV3_WRAP2_S4_CLK] = &gcc_qupv3_wrap2_s4_clk.clkr,
8220 [GCC_QUPV3_WRAP2_S4_CLK_SRC] = &gcc_qupv3_wrap2_s4_clk_src.clkr,
8221 [GCC_QUPV3_WRAP2_S5_CLK] = &gcc_qupv3_wrap2_s5_clk.clkr,
8222 [GCC_QUPV3_WRAP2_S5_CLK_SRC] = &gcc_qupv3_wrap2_s5_clk_src.clkr,
8223 [GCC_QUPV3_WRAP2_S6_CLK] = &gcc_qupv3_wrap2_s6_clk.clkr,
8224 [GCC_QUPV3_WRAP2_S6_CLK_SRC] = &gcc_qupv3_wrap2_s6_clk_src.clkr,
8225 [GCC_QUPV3_WRAP2_S7_CLK] = &gcc_qupv3_wrap2_s7_clk.clkr,
8226 [GCC_QUPV3_WRAP2_S7_CLK_SRC] = &gcc_qupv3_wrap2_s7_clk_src.clkr,
8227 [GCC_QUPV3_WRAP_0_M_AHB_CLK] = &gcc_qupv3_wrap_0_m_ahb_clk.clkr,
8228 [GCC_QUPV3_WRAP_0_S_AHB_CLK] = &gcc_qupv3_wrap_0_s_ahb_clk.clkr,
8229 [GCC_QUPV3_WRAP_1_M_AHB_CLK] = &gcc_qupv3_wrap_1_m_ahb_clk.clkr,
8230 [GCC_QUPV3_WRAP_1_S_AHB_CLK] = &gcc_qupv3_wrap_1_s_ahb_clk.clkr,
8231 [GCC_QUPV3_WRAP_2_M_AHB_CLK] = &gcc_qupv3_wrap_2_m_ahb_clk.clkr,
8232 [GCC_QUPV3_WRAP_2_S_AHB_CLK] = &gcc_qupv3_wrap_2_s_ahb_clk.clkr,
8233 [GCC_SDCC2_AHB_CLK] = &gcc_sdcc2_ahb_clk.clkr,
8234 [GCC_SDCC2_APPS_CLK] = &gcc_sdcc2_apps_clk.clkr,
8235 [GCC_SDCC2_APPS_CLK_SRC] = &gcc_sdcc2_apps_clk_src.clkr,
8236 [GCC_SDCC4_AHB_CLK] = &gcc_sdcc4_ahb_clk.clkr,
8237 [GCC_SDCC4_APPS_CLK] = &gcc_sdcc4_apps_clk.clkr,
8238 [GCC_SDCC4_APPS_CLK_SRC] = &gcc_sdcc4_apps_clk_src.clkr,
8239 [GCC_UFS_PHY_AHB_CLK] = &gcc_ufs_phy_ahb_clk.clkr,
8240 [GCC_UFS_PHY_AXI_CLK] = &gcc_ufs_phy_axi_clk.clkr,
8241 [GCC_UFS_PHY_AXI_CLK_SRC] = &gcc_ufs_phy_axi_clk_src.clkr,
8242 [GCC_UFS_PHY_ICE_CORE_CLK] = &gcc_ufs_phy_ice_core_clk.clkr,
8243 [GCC_UFS_PHY_ICE_CORE_CLK_SRC] = &gcc_ufs_phy_ice_core_clk_src.clkr,
8244 [GCC_UFS_PHY_PHY_AUX_CLK] = &gcc_ufs_phy_phy_aux_clk.clkr,
8245 [GCC_UFS_PHY_PHY_AUX_CLK_SRC] = &gcc_ufs_phy_phy_aux_clk_src.clkr,
8246 [GCC_UFS_PHY_RX_SYMBOL_0_CLK] = &gcc_ufs_phy_rx_symbol_0_clk.clkr,
8247 [GCC_UFS_PHY_RX_SYMBOL_0_CLK_SRC] = &gcc_ufs_phy_rx_symbol_0_clk_src.clkr,
8248 [GCC_UFS_PHY_RX_SYMBOL_1_CLK] = &gcc_ufs_phy_rx_symbol_1_clk.clkr,
8249 [GCC_UFS_PHY_RX_SYMBOL_1_CLK_SRC] = &gcc_ufs_phy_rx_symbol_1_clk_src.clkr,
8250 [GCC_UFS_PHY_TX_SYMBOL_0_CLK] = &gcc_ufs_phy_tx_symbol_0_clk.clkr,
8251 [GCC_UFS_PHY_TX_SYMBOL_0_CLK_SRC] = &gcc_ufs_phy_tx_symbol_0_clk_src.clkr,
8252 [GCC_UFS_PHY_UNIPRO_CORE_CLK] = &gcc_ufs_phy_unipro_core_clk.clkr,
8253 [GCC_UFS_PHY_UNIPRO_CORE_CLK_SRC] = &gcc_ufs_phy_unipro_core_clk_src.clkr,
8254 [GCC_USB20_MASTER_CLK] = &gcc_usb20_master_clk.clkr,
8255 [GCC_USB20_MASTER_CLK_SRC] = &gcc_usb20_master_clk_src.clkr,
8256 [GCC_USB20_MOCK_UTMI_CLK] = &gcc_usb20_mock_utmi_clk.clkr,
8257 [GCC_USB20_MOCK_UTMI_CLK_SRC] = &gcc_usb20_mock_utmi_clk_src.clkr,
8258 [GCC_USB20_MOCK_UTMI_POSTDIV_CLK_SRC] = &gcc_usb20_mock_utmi_postdiv_clk_src.clkr,
8259 [GCC_USB20_SLEEP_CLK] = &gcc_usb20_sleep_clk.clkr,
8260 [GCC_USB30_MP_MASTER_CLK] = &gcc_usb30_mp_master_clk.clkr,
8261 [GCC_USB30_MP_MASTER_CLK_SRC] = &gcc_usb30_mp_master_clk_src.clkr,
8262 [GCC_USB30_MP_MOCK_UTMI_CLK] = &gcc_usb30_mp_mock_utmi_clk.clkr,
8263 [GCC_USB30_MP_MOCK_UTMI_CLK_SRC] = &gcc_usb30_mp_mock_utmi_clk_src.clkr,
8264 [GCC_USB30_MP_MOCK_UTMI_POSTDIV_CLK_SRC] = &gcc_usb30_mp_mock_utmi_postdiv_clk_src.clkr,
8265 [GCC_USB30_MP_SLEEP_CLK] = &gcc_usb30_mp_sleep_clk.clkr,
8266 [GCC_USB30_PRIM_MASTER_CLK] = &gcc_usb30_prim_master_clk.clkr,
8267 [GCC_USB30_PRIM_MASTER_CLK_SRC] = &gcc_usb30_prim_master_clk_src.clkr,
8268 [GCC_USB30_PRIM_MOCK_UTMI_CLK] = &gcc_usb30_prim_mock_utmi_clk.clkr,
8269 [GCC_USB30_PRIM_MOCK_UTMI_CLK_SRC] = &gcc_usb30_prim_mock_utmi_clk_src.clkr,
8270 [GCC_USB30_PRIM_MOCK_UTMI_POSTDIV_CLK_SRC] = &gcc_usb30_prim_mock_utmi_postdiv_clk_src.clkr,
8271 [GCC_USB30_PRIM_SLEEP_CLK] = &gcc_usb30_prim_sleep_clk.clkr,
8272 [GCC_USB30_SEC_MASTER_CLK] = &gcc_usb30_sec_master_clk.clkr,
8273 [GCC_USB30_SEC_MASTER_CLK_SRC] = &gcc_usb30_sec_master_clk_src.clkr,
8274 [GCC_USB30_SEC_MOCK_UTMI_CLK] = &gcc_usb30_sec_mock_utmi_clk.clkr,
8275 [GCC_USB30_SEC_MOCK_UTMI_CLK_SRC] = &gcc_usb30_sec_mock_utmi_clk_src.clkr,
8276 [GCC_USB30_SEC_MOCK_UTMI_POSTDIV_CLK_SRC] = &gcc_usb30_sec_mock_utmi_postdiv_clk_src.clkr,
8277 [GCC_USB30_SEC_SLEEP_CLK] = &gcc_usb30_sec_sleep_clk.clkr,
8278 [GCC_USB30_TERT_MASTER_CLK] = &gcc_usb30_tert_master_clk.clkr,
8279 [GCC_USB30_TERT_MASTER_CLK_SRC] = &gcc_usb30_tert_master_clk_src.clkr,
8280 [GCC_USB30_TERT_MOCK_UTMI_CLK] = &gcc_usb30_tert_mock_utmi_clk.clkr,
8281 [GCC_USB30_TERT_MOCK_UTMI_CLK_SRC] = &gcc_usb30_tert_mock_utmi_clk_src.clkr,
8282 [GCC_USB30_TERT_MOCK_UTMI_POSTDIV_CLK_SRC] = &gcc_usb30_tert_mock_utmi_postdiv_clk_src.clkr,
8283 [GCC_USB30_TERT_SLEEP_CLK] = &gcc_usb30_tert_sleep_clk.clkr,
8284 [GCC_USB34_PRIM_PHY_PIPE_CLK_SRC] = &gcc_usb34_prim_phy_pipe_clk_src.clkr,
8285 [GCC_USB34_SEC_PHY_PIPE_CLK_SRC] = &gcc_usb34_sec_phy_pipe_clk_src.clkr,
8286 [GCC_USB34_TERT_PHY_PIPE_CLK_SRC] = &gcc_usb34_tert_phy_pipe_clk_src.clkr,
8287 [GCC_USB3_MP_PHY_AUX_CLK] = &gcc_usb3_mp_phy_aux_clk.clkr,
8288 [GCC_USB3_MP_PHY_AUX_CLK_SRC] = &gcc_usb3_mp_phy_aux_clk_src.clkr,
8289 [GCC_USB3_MP_PHY_COM_AUX_CLK] = &gcc_usb3_mp_phy_com_aux_clk.clkr,
8290 [GCC_USB3_MP_PHY_PIPE_0_CLK] = &gcc_usb3_mp_phy_pipe_0_clk.clkr,
8291 [GCC_USB3_MP_PHY_PIPE_0_CLK_SRC] = &gcc_usb3_mp_phy_pipe_0_clk_src.clkr,
8292 [GCC_USB3_MP_PHY_PIPE_1_CLK] = &gcc_usb3_mp_phy_pipe_1_clk.clkr,
8293 [GCC_USB3_MP_PHY_PIPE_1_CLK_SRC] = &gcc_usb3_mp_phy_pipe_1_clk_src.clkr,
8294 [GCC_USB3_PRIM_PHY_AUX_CLK] = &gcc_usb3_prim_phy_aux_clk.clkr,
8295 [GCC_USB3_PRIM_PHY_AUX_CLK_SRC] = &gcc_usb3_prim_phy_aux_clk_src.clkr,
8296 [GCC_USB3_PRIM_PHY_COM_AUX_CLK] = &gcc_usb3_prim_phy_com_aux_clk.clkr,
8297 [GCC_USB3_PRIM_PHY_PIPE_CLK] = &gcc_usb3_prim_phy_pipe_clk.clkr,
8298 [GCC_USB3_PRIM_PHY_PIPE_CLK_SRC] = &gcc_usb3_prim_phy_pipe_clk_src.clkr,
8299 [GCC_USB3_SEC_PHY_AUX_CLK] = &gcc_usb3_sec_phy_aux_clk.clkr,
8300 [GCC_USB3_SEC_PHY_AUX_CLK_SRC] = &gcc_usb3_sec_phy_aux_clk_src.clkr,
8301 [GCC_USB3_SEC_PHY_COM_AUX_CLK] = &gcc_usb3_sec_phy_com_aux_clk.clkr,
8302 [GCC_USB3_SEC_PHY_PIPE_CLK] = &gcc_usb3_sec_phy_pipe_clk.clkr,
8303 [GCC_USB3_SEC_PHY_PIPE_CLK_SRC] = &gcc_usb3_sec_phy_pipe_clk_src.clkr,
8304 [GCC_USB3_TERT_PHY_AUX_CLK] = &gcc_usb3_tert_phy_aux_clk.clkr,
8305 [GCC_USB3_TERT_PHY_AUX_CLK_SRC] = &gcc_usb3_tert_phy_aux_clk_src.clkr,
8306 [GCC_USB3_TERT_PHY_COM_AUX_CLK] = &gcc_usb3_tert_phy_com_aux_clk.clkr,
8307 [GCC_USB3_TERT_PHY_PIPE_CLK] = &gcc_usb3_tert_phy_pipe_clk.clkr,
8308 [GCC_USB3_TERT_PHY_PIPE_CLK_SRC] = &gcc_usb3_tert_phy_pipe_clk_src.clkr,
8309 [GCC_USB4_0_CFG_AHB_CLK] = &gcc_usb4_0_cfg_ahb_clk.clkr,
8310 [GCC_USB4_0_DP0_CLK] = &gcc_usb4_0_dp0_clk.clkr,
8311 [GCC_USB4_0_DP1_CLK] = &gcc_usb4_0_dp1_clk.clkr,
8312 [GCC_USB4_0_MASTER_CLK] = &gcc_usb4_0_master_clk.clkr,
8313 [GCC_USB4_0_MASTER_CLK_SRC] = &gcc_usb4_0_master_clk_src.clkr,
8314 [GCC_USB4_0_PHY_DP0_CLK_SRC] = &gcc_usb4_0_phy_dp0_clk_src.clkr,
8315 [GCC_USB4_0_PHY_DP1_CLK_SRC] = &gcc_usb4_0_phy_dp1_clk_src.clkr,
8316 [GCC_USB4_0_PHY_P2RR2P_PIPE_CLK] = &gcc_usb4_0_phy_p2rr2p_pipe_clk.clkr,
8317 [GCC_USB4_0_PHY_P2RR2P_PIPE_CLK_SRC] = &gcc_usb4_0_phy_p2rr2p_pipe_clk_src.clkr,
8318 [GCC_USB4_0_PHY_PCIE_PIPE_CLK] = &gcc_usb4_0_phy_pcie_pipe_clk.clkr,
8319 [GCC_USB4_0_PHY_PCIE_PIPE_CLK_SRC] = &gcc_usb4_0_phy_pcie_pipe_clk_src.clkr,
8320 [GCC_USB4_0_PHY_PCIE_PIPE_MUX_CLK_SRC] = &gcc_usb4_0_phy_pcie_pipe_mux_clk_src.clkr,
8321 [GCC_USB4_0_PHY_RX0_CLK] = &gcc_usb4_0_phy_rx0_clk.clkr,
8322 [GCC_USB4_0_PHY_RX0_CLK_SRC] = &gcc_usb4_0_phy_rx0_clk_src.clkr,
8323 [GCC_USB4_0_PHY_RX1_CLK] = &gcc_usb4_0_phy_rx1_clk.clkr,
8324 [GCC_USB4_0_PHY_RX1_CLK_SRC] = &gcc_usb4_0_phy_rx1_clk_src.clkr,
8325 [GCC_USB4_0_PHY_SYS_CLK_SRC] = &gcc_usb4_0_phy_sys_clk_src.clkr,
8326 [GCC_USB4_0_PHY_USB_PIPE_CLK] = &gcc_usb4_0_phy_usb_pipe_clk.clkr,
8327 [GCC_USB4_0_SB_IF_CLK] = &gcc_usb4_0_sb_if_clk.clkr,
8328 [GCC_USB4_0_SB_IF_CLK_SRC] = &gcc_usb4_0_sb_if_clk_src.clkr,
8329 [GCC_USB4_0_SYS_CLK] = &gcc_usb4_0_sys_clk.clkr,
8330 [GCC_USB4_0_TMU_CLK] = &gcc_usb4_0_tmu_clk.clkr,
8331 [GCC_USB4_0_TMU_CLK_SRC] = &gcc_usb4_0_tmu_clk_src.clkr,
8332 [GCC_USB4_0_UC_HRR_CLK] = &gcc_usb4_0_uc_hrr_clk.clkr,
8333 [GCC_USB4_1_CFG_AHB_CLK] = &gcc_usb4_1_cfg_ahb_clk.clkr,
8334 [GCC_USB4_1_DP0_CLK] = &gcc_usb4_1_dp0_clk.clkr,
8335 [GCC_USB4_1_DP1_CLK] = &gcc_usb4_1_dp1_clk.clkr,
8336 [GCC_USB4_1_MASTER_CLK] = &gcc_usb4_1_master_clk.clkr,
8337 [GCC_USB4_1_MASTER_CLK_SRC] = &gcc_usb4_1_master_clk_src.clkr,
8338 [GCC_USB4_1_PHY_DP0_CLK_SRC] = &gcc_usb4_1_phy_dp0_clk_src.clkr,
8339 [GCC_USB4_1_PHY_DP1_CLK_SRC] = &gcc_usb4_1_phy_dp1_clk_src.clkr,
8340 [GCC_USB4_1_PHY_P2RR2P_PIPE_CLK] = &gcc_usb4_1_phy_p2rr2p_pipe_clk.clkr,
8341 [GCC_USB4_1_PHY_P2RR2P_PIPE_CLK_SRC] = &gcc_usb4_1_phy_p2rr2p_pipe_clk_src.clkr,
8342 [GCC_USB4_1_PHY_PCIE_PIPE_CLK] = &gcc_usb4_1_phy_pcie_pipe_clk.clkr,
8343 [GCC_USB4_1_PHY_PCIE_PIPE_CLK_SRC] = &gcc_usb4_1_phy_pcie_pipe_clk_src.clkr,
8344 [GCC_USB4_1_PHY_PCIE_PIPE_MUX_CLK_SRC] = &gcc_usb4_1_phy_pcie_pipe_mux_clk_src.clkr,
8345 [GCC_USB4_1_PHY_PLL_PIPE_CLK_SRC] = &gcc_usb4_1_phy_pll_pipe_clk_src.clkr,
8346 [GCC_USB4_1_PHY_RX0_CLK] = &gcc_usb4_1_phy_rx0_clk.clkr,
8347 [GCC_USB4_1_PHY_RX0_CLK_SRC] = &gcc_usb4_1_phy_rx0_clk_src.clkr,
8348 [GCC_USB4_1_PHY_RX1_CLK] = &gcc_usb4_1_phy_rx1_clk.clkr,
8349 [GCC_USB4_1_PHY_RX1_CLK_SRC] = &gcc_usb4_1_phy_rx1_clk_src.clkr,
8350 [GCC_USB4_1_PHY_SYS_CLK_SRC] = &gcc_usb4_1_phy_sys_clk_src.clkr,
8351 [GCC_USB4_1_PHY_USB_PIPE_CLK] = &gcc_usb4_1_phy_usb_pipe_clk.clkr,
8352 [GCC_USB4_1_SB_IF_CLK] = &gcc_usb4_1_sb_if_clk.clkr,
8353 [GCC_USB4_1_SB_IF_CLK_SRC] = &gcc_usb4_1_sb_if_clk_src.clkr,
8354 [GCC_USB4_1_SYS_CLK] = &gcc_usb4_1_sys_clk.clkr,
8355 [GCC_USB4_1_TMU_CLK] = &gcc_usb4_1_tmu_clk.clkr,
8356 [GCC_USB4_1_TMU_CLK_SRC] = &gcc_usb4_1_tmu_clk_src.clkr,
8357 [GCC_USB4_1_UC_HRR_CLK] = &gcc_usb4_1_uc_hrr_clk.clkr,
8358 [GCC_USB4_2_CFG_AHB_CLK] = &gcc_usb4_2_cfg_ahb_clk.clkr,
8359 [GCC_USB4_2_DP0_CLK] = &gcc_usb4_2_dp0_clk.clkr,
8360 [GCC_USB4_2_DP1_CLK] = &gcc_usb4_2_dp1_clk.clkr,
8361 [GCC_USB4_2_MASTER_CLK] = &gcc_usb4_2_master_clk.clkr,
8362 [GCC_USB4_2_MASTER_CLK_SRC] = &gcc_usb4_2_master_clk_src.clkr,
8363 [GCC_USB4_2_PHY_DP0_CLK_SRC] = &gcc_usb4_2_phy_dp0_clk_src.clkr,
8364 [GCC_USB4_2_PHY_DP1_CLK_SRC] = &gcc_usb4_2_phy_dp1_clk_src.clkr,
8365 [GCC_USB4_2_PHY_P2RR2P_PIPE_CLK] = &gcc_usb4_2_phy_p2rr2p_pipe_clk.clkr,
8366 [GCC_USB4_2_PHY_P2RR2P_PIPE_CLK_SRC] = &gcc_usb4_2_phy_p2rr2p_pipe_clk_src.clkr,
8367 [GCC_USB4_2_PHY_PCIE_PIPE_CLK] = &gcc_usb4_2_phy_pcie_pipe_clk.clkr,
8368 [GCC_USB4_2_PHY_PCIE_PIPE_CLK_SRC] = &gcc_usb4_2_phy_pcie_pipe_clk_src.clkr,
8369 [GCC_USB4_2_PHY_PCIE_PIPE_MUX_CLK_SRC] = &gcc_usb4_2_phy_pcie_pipe_mux_clk_src.clkr,
8370 [GCC_USB4_2_PHY_RX0_CLK] = &gcc_usb4_2_phy_rx0_clk.clkr,
8371 [GCC_USB4_2_PHY_RX0_CLK_SRC] = &gcc_usb4_2_phy_rx0_clk_src.clkr,
8372 [GCC_USB4_2_PHY_RX1_CLK] = &gcc_usb4_2_phy_rx1_clk.clkr,
8373 [GCC_USB4_2_PHY_RX1_CLK_SRC] = &gcc_usb4_2_phy_rx1_clk_src.clkr,
8374 [GCC_USB4_2_PHY_SYS_CLK_SRC] = &gcc_usb4_2_phy_sys_clk_src.clkr,
8375 [GCC_USB4_2_PHY_USB_PIPE_CLK] = &gcc_usb4_2_phy_usb_pipe_clk.clkr,
8376 [GCC_USB4_2_SB_IF_CLK] = &gcc_usb4_2_sb_if_clk.clkr,
8377 [GCC_USB4_2_SB_IF_CLK_SRC] = &gcc_usb4_2_sb_if_clk_src.clkr,
8378 [GCC_USB4_2_SYS_CLK] = &gcc_usb4_2_sys_clk.clkr,
8379 [GCC_USB4_2_TMU_CLK] = &gcc_usb4_2_tmu_clk.clkr,
8380 [GCC_USB4_2_TMU_CLK_SRC] = &gcc_usb4_2_tmu_clk_src.clkr,
8381 [GCC_USB4_2_UC_HRR_CLK] = &gcc_usb4_2_uc_hrr_clk.clkr,
8382 [GCC_VIDEO_AXI0_CLK] = &gcc_video_axi0_clk.clkr,
8383 [GCC_VIDEO_AXI0C_CLK] = &gcc_video_axi0c_clk.clkr,
8384 [GCC_VIDEO_AXI1_CLK] = &gcc_video_axi1_clk.clkr,
8385 };
8386
8387 static struct gdsc *gcc_glymur_gdscs[] = {
8388 [GCC_PCIE_0_TUNNEL_GDSC] = &gcc_pcie_0_tunnel_gdsc,
8389 [GCC_PCIE_1_TUNNEL_GDSC] = &gcc_pcie_1_tunnel_gdsc,
8390 [GCC_PCIE_2_TUNNEL_GDSC] = &gcc_pcie_2_tunnel_gdsc,
8391 [GCC_PCIE_3A_GDSC] = &gcc_pcie_3a_gdsc,
8392 [GCC_PCIE_3A_PHY_GDSC] = &gcc_pcie_3a_phy_gdsc,
8393 [GCC_PCIE_3B_GDSC] = &gcc_pcie_3b_gdsc,
8394 [GCC_PCIE_3B_PHY_GDSC] = &gcc_pcie_3b_phy_gdsc,
8395 [GCC_PCIE_4_GDSC] = &gcc_pcie_4_gdsc,
8396 [GCC_PCIE_4_PHY_GDSC] = &gcc_pcie_4_phy_gdsc,
8397 [GCC_PCIE_5_GDSC] = &gcc_pcie_5_gdsc,
8398 [GCC_PCIE_5_PHY_GDSC] = &gcc_pcie_5_phy_gdsc,
8399 [GCC_PCIE_6_GDSC] = &gcc_pcie_6_gdsc,
8400 [GCC_PCIE_6_PHY_GDSC] = &gcc_pcie_6_phy_gdsc,
8401 [GCC_UFS_PHY_GDSC] = &gcc_ufs_phy_gdsc,
8402 [GCC_USB20_PRIM_GDSC] = &gcc_usb20_prim_gdsc,
8403 [GCC_USB30_MP_GDSC] = &gcc_usb30_mp_gdsc,
8404 [GCC_USB30_PRIM_GDSC] = &gcc_usb30_prim_gdsc,
8405 [GCC_USB30_SEC_GDSC] = &gcc_usb30_sec_gdsc,
8406 [GCC_USB30_TERT_GDSC] = &gcc_usb30_tert_gdsc,
8407 [GCC_USB3_MP_SS0_PHY_GDSC] = &gcc_usb3_mp_ss0_phy_gdsc,
8408 [GCC_USB3_MP_SS1_PHY_GDSC] = &gcc_usb3_mp_ss1_phy_gdsc,
8409 [GCC_USB4_0_GDSC] = &gcc_usb4_0_gdsc,
8410 [GCC_USB4_1_GDSC] = &gcc_usb4_1_gdsc,
8411 [GCC_USB4_2_GDSC] = &gcc_usb4_2_gdsc,
8412 [GCC_USB_0_PHY_GDSC] = &gcc_usb_0_phy_gdsc,
8413 [GCC_USB_1_PHY_GDSC] = &gcc_usb_1_phy_gdsc,
8414 [GCC_USB_2_PHY_GDSC] = &gcc_usb_2_phy_gdsc,
8415 };
8416
8417 static const struct qcom_reset_map gcc_glymur_resets[] = {
8418 [GCC_AV1E_BCR] = { 0x9b028 },
8419 [GCC_CAMERA_BCR] = { 0x26000 },
8420 [GCC_DISPLAY_BCR] = { 0x27000 },
8421 [GCC_EVA_BCR] = { 0x9b000 },
8422 [GCC_GPU_BCR] = { 0x71000 },
8423 [GCC_PCIE_0_LINK_DOWN_BCR] = { 0xbc2d0 },
8424 [GCC_PCIE_0_NOCSR_COM_PHY_BCR] = { 0xbc2dc },
8425 [GCC_PCIE_0_PHY_BCR] = { 0xbc2d8 },
8426 [GCC_PCIE_0_PHY_NOCSR_COM_PHY_BCR] = { 0xbc2e0 },
8427 [GCC_PCIE_0_TUNNEL_BCR] = { 0xc8000 },
8428 [GCC_PCIE_1_LINK_DOWN_BCR] = { 0x7f018 },
8429 [GCC_PCIE_1_NOCSR_COM_PHY_BCR] = { 0x7f024 },
8430 [GCC_PCIE_1_PHY_BCR] = { 0x7f020 },
8431 [GCC_PCIE_1_PHY_NOCSR_COM_PHY_BCR] = { 0x7f028 },
8432 [GCC_PCIE_1_TUNNEL_BCR] = { 0x2e000 },
8433 [GCC_PCIE_2_LINK_DOWN_BCR] = { 0x281d0 },
8434 [GCC_PCIE_2_NOCSR_COM_PHY_BCR] = { 0x281dc },
8435 [GCC_PCIE_2_PHY_BCR] = { 0x281d8 },
8436 [GCC_PCIE_2_PHY_NOCSR_COM_PHY_BCR] = { 0x281e0 },
8437 [GCC_PCIE_2_TUNNEL_BCR] = { 0xc0000 },
8438 [GCC_PCIE_3A_BCR] = { 0xdc000 },
8439 [GCC_PCIE_3A_LINK_DOWN_BCR] = { 0x7b0a0 },
8440 [GCC_PCIE_3A_NOCSR_COM_PHY_BCR] = { 0x7b0ac },
8441 [GCC_PCIE_3A_PHY_BCR] = { 0x6c000 },
8442 [GCC_PCIE_3A_PHY_NOCSR_COM_PHY_BCR] = { 0x7b0b0 },
8443 [GCC_PCIE_3B_BCR] = { 0x94000 },
8444 [GCC_PCIE_3B_LINK_DOWN_BCR] = { 0x7a0c0 },
8445 [GCC_PCIE_3B_NOCSR_COM_PHY_BCR] = { 0x7a0cc },
8446 [GCC_PCIE_3B_PHY_BCR] = { 0x75000 },
8447 [GCC_PCIE_3B_PHY_NOCSR_COM_PHY_BCR] = { 0x7a0c8 },
8448 [GCC_PCIE_4_BCR] = { 0x88000 },
8449 [GCC_PCIE_4_LINK_DOWN_BCR] = { 0x980c0 },
8450 [GCC_PCIE_4_NOCSR_COM_PHY_BCR] = { 0x980cc },
8451 [GCC_PCIE_4_PHY_BCR] = { 0xd3000 },
8452 [GCC_PCIE_4_PHY_NOCSR_COM_PHY_BCR] = { 0x980d0 },
8453 [GCC_PCIE_5_BCR] = { 0xc3000 },
8454 [GCC_PCIE_5_LINK_DOWN_BCR] = { 0x850c0 },
8455 [GCC_PCIE_5_NOCSR_COM_PHY_BCR] = { 0x850cc },
8456 [GCC_PCIE_5_PHY_BCR] = { 0xd2000 },
8457 [GCC_PCIE_5_PHY_NOCSR_COM_PHY_BCR] = { 0x850d0 },
8458 [GCC_PCIE_6_BCR] = { 0x8a000 },
8459 [GCC_PCIE_6_LINK_DOWN_BCR] = { 0x3a0b0 },
8460 [GCC_PCIE_6_NOCSR_COM_PHY_BCR] = { 0x3a0bc },
8461 [GCC_PCIE_6_PHY_BCR] = { 0xd4000 },
8462 [GCC_PCIE_6_PHY_NOCSR_COM_PHY_BCR] = { 0x3a0c0 },
8463 [GCC_PCIE_NOC_BCR] = { 0xba294 },
8464 [GCC_PCIE_PHY_BCR] = { 0x6f000 },
8465 [GCC_PCIE_PHY_CFG_AHB_BCR] = { 0x7f00c },
8466 [GCC_PCIE_PHY_COM_BCR] = { 0x7f010 },
8467 [GCC_PCIE_RSCC_BCR] = { 0xb8000 },
8468 [GCC_PDM_BCR] = { 0x33000 },
8469 [GCC_QUPV3_WRAPPER_0_BCR] = { 0x28000 },
8470 [GCC_QUPV3_WRAPPER_1_BCR] = { 0xb3000 },
8471 [GCC_QUPV3_WRAPPER_2_BCR] = { 0xb4000 },
8472 [GCC_QUPV3_WRAPPER_OOB_BCR] = { 0xe7000 },
8473 [GCC_QUSB2PHY_HS0_MP_BCR] = { 0xca000 },
8474 [GCC_QUSB2PHY_HS1_MP_BCR] = { 0xe6000 },
8475 [GCC_QUSB2PHY_PRIM_BCR] = { 0xad024 },
8476 [GCC_QUSB2PHY_SEC_BCR] = { 0xae000 },
8477 [GCC_QUSB2PHY_TERT_BCR] = { 0xc9000 },
8478 [GCC_QUSB2PHY_USB20_HS_BCR] = { 0xe9000 },
8479 [GCC_SDCC2_BCR] = { 0xb0000 },
8480 [GCC_SDCC4_BCR] = { 0xdf000 },
8481 [GCC_TCSR_PCIE_BCR] = { 0x281e4 },
8482 [GCC_UFS_PHY_BCR] = { 0x77004 },
8483 [GCC_USB20_PRIM_BCR] = { 0xbc000 },
8484 [GCC_USB30_MP_BCR] = { 0x9a00c },
8485 [GCC_USB30_PRIM_BCR] = { 0x3f018 },
8486 [GCC_USB30_SEC_BCR] = { 0xe200c },
8487 [GCC_USB30_TERT_BCR] = { 0xe100c },
8488 [GCC_USB3_MP_SS0_PHY_BCR] = { 0x54008 },
8489 [GCC_USB3_MP_SS1_PHY_BCR] = { 0x54028 },
8490 [GCC_USB3_PHY_PRIM_BCR] = { 0xdb000 },
8491 [GCC_USB3_PHY_SEC_BCR] = { 0x2c000 },
8492 [GCC_USB3_PHY_TERT_BCR] = { 0xbe000 },
8493 [GCC_USB3_UNIPHY_MP0_BCR] = { 0x54000 },
8494 [GCC_USB3_UNIPHY_MP1_BCR] = { 0x54020 },
8495 [GCC_USB3PHY_PHY_PRIM_BCR] = { 0xdb004 },
8496 [GCC_USB3PHY_PHY_SEC_BCR] = { 0x2c004 },
8497 [GCC_USB3PHY_PHY_TERT_BCR] = { 0xbe004 },
8498 [GCC_USB3UNIPHY_PHY_MP0_BCR] = { 0x54004 },
8499 [GCC_USB3UNIPHY_PHY_MP1_BCR] = { 0x54024 },
8500 [GCC_USB4_0_BCR] = { 0x2b004 },
8501 [GCC_USB4_0_DP0_PHY_PRIM_BCR] = { 0xdb010 },
8502 [GCC_USB4_1_BCR] = { 0x2d004 },
8503 [GCC_USB4_2_BCR] = { 0xe0004 },
8504 [GCC_USB_0_PHY_BCR] = { 0xdb020 },
8505 [GCC_USB_1_PHY_BCR] = { 0x2c020 },
8506 [GCC_USB_2_PHY_BCR] = { 0xbe020 },
8507 [GCC_VIDEO_AXI0_CLK_ARES] = { 0x3201c, 2 },
8508 [GCC_VIDEO_AXI1_CLK_ARES] = { 0x32044, 2 },
8509 [GCC_VIDEO_BCR] = { 0x32000 },
8510 };
8511
8512 static const struct clk_rcg_dfs_data gcc_dfs_clocks[] = {
8513 DEFINE_RCG_DFS(gcc_qupv3_oob_qspi_s0_clk_src),
8514 DEFINE_RCG_DFS(gcc_qupv3_oob_qspi_s1_clk_src),
8515 DEFINE_RCG_DFS(gcc_qupv3_wrap0_qspi_s2_clk_src),
8516 DEFINE_RCG_DFS(gcc_qupv3_wrap0_qspi_s3_clk_src),
8517 DEFINE_RCG_DFS(gcc_qupv3_wrap0_qspi_s6_clk_src),
8518 DEFINE_RCG_DFS(gcc_qupv3_wrap0_s0_clk_src),
8519 DEFINE_RCG_DFS(gcc_qupv3_wrap0_s1_clk_src),
8520 DEFINE_RCG_DFS(gcc_qupv3_wrap0_s4_clk_src),
8521 DEFINE_RCG_DFS(gcc_qupv3_wrap0_s5_clk_src),
8522 DEFINE_RCG_DFS(gcc_qupv3_wrap0_s7_clk_src),
8523 DEFINE_RCG_DFS(gcc_qupv3_wrap1_qspi_s2_clk_src),
8524 DEFINE_RCG_DFS(gcc_qupv3_wrap1_qspi_s3_clk_src),
8525 DEFINE_RCG_DFS(gcc_qupv3_wrap1_qspi_s6_clk_src),
8526 DEFINE_RCG_DFS(gcc_qupv3_wrap1_s0_clk_src),
8527 DEFINE_RCG_DFS(gcc_qupv3_wrap1_s1_clk_src),
8528 DEFINE_RCG_DFS(gcc_qupv3_wrap1_s4_clk_src),
8529 DEFINE_RCG_DFS(gcc_qupv3_wrap1_s5_clk_src),
8530 DEFINE_RCG_DFS(gcc_qupv3_wrap1_s7_clk_src),
8531 DEFINE_RCG_DFS(gcc_qupv3_wrap2_qspi_s2_clk_src),
8532 DEFINE_RCG_DFS(gcc_qupv3_wrap2_qspi_s3_clk_src),
8533 DEFINE_RCG_DFS(gcc_qupv3_wrap2_qspi_s6_clk_src),
8534 DEFINE_RCG_DFS(gcc_qupv3_wrap2_s0_clk_src),
8535 DEFINE_RCG_DFS(gcc_qupv3_wrap2_s1_clk_src),
8536 DEFINE_RCG_DFS(gcc_qupv3_wrap2_s4_clk_src),
8537 DEFINE_RCG_DFS(gcc_qupv3_wrap2_s5_clk_src),
8538 DEFINE_RCG_DFS(gcc_qupv3_wrap2_s7_clk_src),
8539 };
8540
8541 static u32 gcc_glymur_critical_cbcrs[] = {
8542 0x26004, /* GCC_CAMERA_AHB_CLK */
8543 0x26040, /* GCC_CAMERA_XO_CLK */
8544 0x27004, /* GCC_DISP_AHB_CLK */
8545 0x71004, /* GCC_GPU_CFG_AHB_CLK */
8546 0x32004, /* GCC_VIDEO_AHB_CLK */
8547 0x32058, /* GCC_VIDEO_XO_CLK */
8548 };
8549
8550 static const struct regmap_config gcc_glymur_regmap_config = {
8551 .reg_bits = 32,
8552 .reg_stride = 4,
8553 .val_bits = 32,
8554 .max_register = 0x1f8ff0,
8555 .fast_io = true,
8556 };
8557
clk_glymur_regs_configure(struct device * dev,struct regmap * regmap)8558 static void clk_glymur_regs_configure(struct device *dev, struct regmap *regmap)
8559 {
8560 /* FORCE_MEM_CORE_ON for ufs phy ice core clocks */
8561 qcom_branch_set_force_mem_core(regmap, gcc_ufs_phy_ice_core_clk, true);
8562 }
8563
8564 static struct qcom_cc_driver_data gcc_glymur_driver_data = {
8565 .clk_cbcrs = gcc_glymur_critical_cbcrs,
8566 .num_clk_cbcrs = ARRAY_SIZE(gcc_glymur_critical_cbcrs),
8567 .dfs_rcgs = gcc_dfs_clocks,
8568 .num_dfs_rcgs = ARRAY_SIZE(gcc_dfs_clocks),
8569 .clk_regs_configure = clk_glymur_regs_configure,
8570 };
8571
8572 static const struct qcom_cc_desc gcc_glymur_desc = {
8573 .config = &gcc_glymur_regmap_config,
8574 .clks = gcc_glymur_clocks,
8575 .num_clks = ARRAY_SIZE(gcc_glymur_clocks),
8576 .resets = gcc_glymur_resets,
8577 .num_resets = ARRAY_SIZE(gcc_glymur_resets),
8578 .gdscs = gcc_glymur_gdscs,
8579 .num_gdscs = ARRAY_SIZE(gcc_glymur_gdscs),
8580 .driver_data = &gcc_glymur_driver_data,
8581 };
8582
8583 static const struct of_device_id gcc_glymur_match_table[] = {
8584 { .compatible = "qcom,glymur-gcc" },
8585 { }
8586 };
8587 MODULE_DEVICE_TABLE(of, gcc_glymur_match_table);
8588
gcc_glymur_probe(struct platform_device * pdev)8589 static int gcc_glymur_probe(struct platform_device *pdev)
8590 {
8591 return qcom_cc_probe(pdev, &gcc_glymur_desc);
8592 }
8593
8594 static struct platform_driver gcc_glymur_driver = {
8595 .probe = gcc_glymur_probe,
8596 .driver = {
8597 .name = "gcc-glymur",
8598 .of_match_table = gcc_glymur_match_table,
8599 },
8600 };
8601
gcc_glymur_init(void)8602 static int __init gcc_glymur_init(void)
8603 {
8604 return platform_driver_register(&gcc_glymur_driver);
8605 }
8606 subsys_initcall(gcc_glymur_init);
8607
gcc_glymur_exit(void)8608 static void __exit gcc_glymur_exit(void)
8609 {
8610 platform_driver_unregister(&gcc_glymur_driver);
8611 }
8612 module_exit(gcc_glymur_exit);
8613
8614 MODULE_DESCRIPTION("QTI GCC GLYMUR Driver");
8615 MODULE_LICENSE("GPL");
8616