xref: /linux/drivers/clk/qcom/gcc-x1e80100.c (revision ba65a4e7120a616d9c592750d9147f6dcafedffa)
1 // SPDX-License-Identifier: GPL-2.0-only
2 /*
3  * Copyright (c) 2023, Qualcomm Innovation Center, Inc. All rights reserved.
4  */
5 
6 #include <linux/clk-provider.h>
7 #include <linux/mod_devicetable.h>
8 #include <linux/module.h>
9 #include <linux/platform_device.h>
10 #include <linux/regmap.h>
11 
12 #include <dt-bindings/clock/qcom,x1e80100-gcc.h>
13 
14 #include "clk-alpha-pll.h"
15 #include "clk-branch.h"
16 #include "clk-rcg.h"
17 #include "clk-regmap.h"
18 #include "clk-regmap-divider.h"
19 #include "clk-regmap-mux.h"
20 #include "clk-regmap-phy-mux.h"
21 #include "gdsc.h"
22 #include "reset.h"
23 
24 enum {
25 	DT_BI_TCXO,
26 	DT_SLEEP_CLK,
27 	DT_PCIE_3_PIPE,
28 	DT_PCIE_4_PIPE,
29 	DT_PCIE_5_PIPE,
30 	DT_PCIE_6A_PIPE,
31 	DT_PCIE_6B_PIPE,
32 	DT_USB3_PHY_0_WRAPPER_GCC_USB30_PIPE,
33 	DT_USB3_PHY_1_WRAPPER_GCC_USB30_PIPE,
34 	DT_USB3_PHY_2_WRAPPER_GCC_USB30_PIPE,
35 	DT_GCC_USB4_0_PHY_DP0_GMUX_CLK_SRC,
36 	DT_GCC_USB4_0_PHY_DP1_GMUX_CLK_SRC,
37 	DT_GCC_USB4_0_PHY_PCIE_PIPEGMUX_CLK_SRC,
38 	DT_GCC_USB4_0_PHY_PIPEGMUX_CLK_SRC,
39 	DT_GCC_USB4_0_PHY_SYS_PIPEGMUX_CLK_SRC,
40 	DT_GCC_USB4_1_PHY_DP0_GMUX_CLK_SRC,
41 	DT_GCC_USB4_1_PHY_DP1_GMUX_CLK_SRC,
42 	DT_GCC_USB4_1_PHY_PCIE_PIPEGMUX_CLK_SRC,
43 	DT_GCC_USB4_1_PHY_PIPEGMUX_CLK_SRC,
44 	DT_GCC_USB4_1_PHY_SYS_PIPEGMUX_CLK_SRC,
45 	DT_GCC_USB4_2_PHY_DP0_GMUX_CLK_SRC,
46 	DT_GCC_USB4_2_PHY_DP1_GMUX_CLK_SRC,
47 	DT_GCC_USB4_2_PHY_PCIE_PIPEGMUX_CLK_SRC,
48 	DT_GCC_USB4_2_PHY_PIPEGMUX_CLK_SRC,
49 	DT_GCC_USB4_2_PHY_SYS_PIPEGMUX_CLK_SRC,
50 	DT_QUSB4PHY_0_GCC_USB4_RX0_CLK,
51 	DT_QUSB4PHY_0_GCC_USB4_RX1_CLK,
52 	DT_QUSB4PHY_1_GCC_USB4_RX0_CLK,
53 	DT_QUSB4PHY_1_GCC_USB4_RX1_CLK,
54 	DT_QUSB4PHY_2_GCC_USB4_RX0_CLK,
55 	DT_QUSB4PHY_2_GCC_USB4_RX1_CLK,
56 	DT_USB4_0_PHY_GCC_USB4_PCIE_PIPE_CLK,
57 	DT_USB4_0_PHY_GCC_USB4RTR_MAX_PIPE_CLK,
58 	DT_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK,
59 	DT_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK,
60 	DT_USB4_2_PHY_GCC_USB4_PCIE_PIPE_CLK,
61 	DT_USB4_2_PHY_GCC_USB4RTR_MAX_PIPE_CLK,
62 };
63 
64 enum {
65 	P_BI_TCXO,
66 	P_GCC_GPLL0_OUT_EVEN,
67 	P_GCC_GPLL0_OUT_MAIN,
68 	P_GCC_GPLL4_OUT_MAIN,
69 	P_GCC_GPLL7_OUT_MAIN,
70 	P_GCC_GPLL8_OUT_MAIN,
71 	P_GCC_GPLL9_OUT_MAIN,
72 	P_GCC_USB3_PRIM_PHY_PIPE_CLK_SRC,
73 	P_GCC_USB3_SEC_PHY_PIPE_CLK_SRC,
74 	P_GCC_USB3_TERT_PHY_PIPE_CLK_SRC,
75 	P_GCC_USB4_0_PHY_DP0_GMUX_CLK_SRC,
76 	P_GCC_USB4_0_PHY_DP1_GMUX_CLK_SRC,
77 	P_GCC_USB4_0_PHY_PCIE_PIPEGMUX_CLK_SRC,
78 	P_GCC_USB4_0_PHY_PIPEGMUX_CLK_SRC,
79 	P_GCC_USB4_0_PHY_SYS_PIPEGMUX_CLK_SRC,
80 	P_GCC_USB4_1_PHY_DP0_GMUX_CLK_SRC,
81 	P_GCC_USB4_1_PHY_DP1_GMUX_CLK_SRC,
82 	P_GCC_USB4_1_PHY_PCIE_PIPEGMUX_CLK_SRC,
83 	P_GCC_USB4_1_PHY_PIPEGMUX_CLK_SRC,
84 	P_GCC_USB4_1_PHY_SYS_PIPEGMUX_CLK_SRC,
85 	P_GCC_USB4_2_PHY_DP0_GMUX_CLK_SRC,
86 	P_GCC_USB4_2_PHY_DP1_GMUX_CLK_SRC,
87 	P_GCC_USB4_2_PHY_PCIE_PIPEGMUX_CLK_SRC,
88 	P_GCC_USB4_2_PHY_PIPEGMUX_CLK_SRC,
89 	P_GCC_USB4_2_PHY_SYS_PIPEGMUX_CLK_SRC,
90 	P_QUSB4PHY_0_GCC_USB4_RX0_CLK,
91 	P_QUSB4PHY_0_GCC_USB4_RX1_CLK,
92 	P_QUSB4PHY_1_GCC_USB4_RX0_CLK,
93 	P_QUSB4PHY_1_GCC_USB4_RX1_CLK,
94 	P_QUSB4PHY_2_GCC_USB4_RX0_CLK,
95 	P_QUSB4PHY_2_GCC_USB4_RX1_CLK,
96 	P_SLEEP_CLK,
97 	P_USB3_PHY_0_WRAPPER_GCC_USB30_PIPE_CLK,
98 	P_USB3_PHY_1_WRAPPER_GCC_USB30_PIPE_CLK,
99 	P_USB3_PHY_2_WRAPPER_GCC_USB30_PIPE_CLK,
100 	P_USB4_0_PHY_GCC_USB4_PCIE_PIPE_CLK,
101 	P_USB4_0_PHY_GCC_USB4RTR_MAX_PIPE_CLK,
102 	P_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK,
103 	P_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK,
104 	P_USB4_2_PHY_GCC_USB4_PCIE_PIPE_CLK,
105 	P_USB4_2_PHY_GCC_USB4RTR_MAX_PIPE_CLK,
106 };
107 
108 static struct clk_alpha_pll gcc_gpll0 = {
109 	.offset = 0x0,
110 	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_OLE],
111 	.clkr = {
112 		.enable_reg = 0x52030,
113 		.enable_mask = BIT(0),
114 		.hw.init = &(const struct clk_init_data) {
115 			.name = "gcc_gpll0",
116 			.parent_data = &(const struct clk_parent_data) {
117 				.index = DT_BI_TCXO,
118 			},
119 			.num_parents = 1,
120 			.ops = &clk_alpha_pll_fixed_lucid_ole_ops,
121 		},
122 	},
123 };
124 
125 static const struct clk_div_table post_div_table_gcc_gpll0_out_even[] = {
126 	{ 0x1, 2 },
127 	{ }
128 };
129 
130 static struct clk_alpha_pll_postdiv gcc_gpll0_out_even = {
131 	.offset = 0x0,
132 	.post_div_shift = 10,
133 	.post_div_table = post_div_table_gcc_gpll0_out_even,
134 	.num_post_div = ARRAY_SIZE(post_div_table_gcc_gpll0_out_even),
135 	.width = 4,
136 	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_OLE],
137 	.clkr.hw.init = &(const struct clk_init_data) {
138 		.name = "gcc_gpll0_out_even",
139 		.parent_hws = (const struct clk_hw*[]) {
140 			&gcc_gpll0.clkr.hw,
141 		},
142 		.num_parents = 1,
143 		.ops = &clk_alpha_pll_postdiv_lucid_ole_ops,
144 	},
145 };
146 
147 static struct clk_alpha_pll gcc_gpll4 = {
148 	.offset = 0x4000,
149 	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_OLE],
150 	.clkr = {
151 		.enable_reg = 0x52030,
152 		.enable_mask = BIT(4),
153 		.hw.init = &(const struct clk_init_data) {
154 			.name = "gcc_gpll4",
155 			.parent_data = &(const struct clk_parent_data) {
156 				.index = DT_BI_TCXO,
157 			},
158 			.num_parents = 1,
159 			.ops = &clk_alpha_pll_fixed_lucid_ole_ops,
160 		},
161 	},
162 };
163 
164 static struct clk_alpha_pll gcc_gpll7 = {
165 	.offset = 0x7000,
166 	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_OLE],
167 	.clkr = {
168 		.enable_reg = 0x52030,
169 		.enable_mask = BIT(7),
170 		.hw.init = &(const struct clk_init_data) {
171 			.name = "gcc_gpll7",
172 			.parent_data = &(const struct clk_parent_data) {
173 				.index = DT_BI_TCXO,
174 			},
175 			.num_parents = 1,
176 			.ops = &clk_alpha_pll_fixed_lucid_ole_ops,
177 		},
178 	},
179 };
180 
181 static struct clk_alpha_pll gcc_gpll8 = {
182 	.offset = 0x8000,
183 	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_OLE],
184 	.clkr = {
185 		.enable_reg = 0x52030,
186 		.enable_mask = BIT(8),
187 		.hw.init = &(const struct clk_init_data) {
188 			.name = "gcc_gpll8",
189 			.parent_data = &(const struct clk_parent_data) {
190 				.index = DT_BI_TCXO,
191 			},
192 			.num_parents = 1,
193 			.ops = &clk_alpha_pll_fixed_lucid_ole_ops,
194 		},
195 	},
196 };
197 
198 static struct clk_alpha_pll gcc_gpll9 = {
199 	.offset = 0x9000,
200 	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_OLE],
201 	.clkr = {
202 		.enable_reg = 0x52030,
203 		.enable_mask = BIT(9),
204 		.hw.init = &(const struct clk_init_data) {
205 			.name = "gcc_gpll9",
206 			.parent_data = &(const struct clk_parent_data) {
207 				.index = DT_BI_TCXO,
208 			},
209 			.num_parents = 1,
210 			.ops = &clk_alpha_pll_fixed_lucid_ole_ops,
211 		},
212 	},
213 };
214 
215 static const struct parent_map gcc_parent_map_0[] = {
216 	{ P_BI_TCXO, 0 },
217 	{ P_GCC_GPLL0_OUT_MAIN, 1 },
218 	{ P_GCC_GPLL0_OUT_EVEN, 6 },
219 };
220 
221 static const struct clk_parent_data gcc_parent_data_0[] = {
222 	{ .index = DT_BI_TCXO },
223 	{ .hw = &gcc_gpll0.clkr.hw },
224 	{ .hw = &gcc_gpll0_out_even.clkr.hw },
225 };
226 
227 static const struct parent_map gcc_parent_map_1[] = {
228 	{ P_BI_TCXO, 0 },
229 	{ P_SLEEP_CLK, 5 },
230 };
231 
232 static const struct clk_parent_data gcc_parent_data_1[] = {
233 	{ .index = DT_BI_TCXO },
234 	{ .index = DT_SLEEP_CLK },
235 };
236 
237 static const struct parent_map gcc_parent_map_2[] = {
238 	{ P_BI_TCXO, 0 },
239 	{ P_GCC_GPLL0_OUT_MAIN, 1 },
240 	{ P_SLEEP_CLK, 5 },
241 	{ P_GCC_GPLL0_OUT_EVEN, 6 },
242 };
243 
244 static const struct clk_parent_data gcc_parent_data_2[] = {
245 	{ .index = DT_BI_TCXO },
246 	{ .hw = &gcc_gpll0.clkr.hw },
247 	{ .index = DT_SLEEP_CLK },
248 	{ .hw = &gcc_gpll0_out_even.clkr.hw },
249 };
250 
251 static const struct parent_map gcc_parent_map_3[] = {
252 	{ P_BI_TCXO, 0 },
253 };
254 
255 static const struct clk_parent_data gcc_parent_data_3[] = {
256 	{ .index = DT_BI_TCXO },
257 };
258 
259 static const struct parent_map gcc_parent_map_4[] = {
260 	{ P_BI_TCXO, 0 },
261 	{ P_GCC_GPLL0_OUT_MAIN, 1 },
262 	{ P_GCC_GPLL8_OUT_MAIN, 2 },
263 	{ P_GCC_GPLL0_OUT_EVEN, 6 },
264 };
265 
266 static const struct clk_parent_data gcc_parent_data_4[] = {
267 	{ .index = DT_BI_TCXO },
268 	{ .hw = &gcc_gpll0.clkr.hw },
269 	{ .hw = &gcc_gpll8.clkr.hw },
270 	{ .hw = &gcc_gpll0_out_even.clkr.hw },
271 };
272 
273 static const struct parent_map gcc_parent_map_5[] = {
274 	{ P_BI_TCXO, 0 },
275 	{ P_GCC_GPLL0_OUT_MAIN, 1 },
276 	{ P_GCC_GPLL7_OUT_MAIN, 2 },
277 	{ P_SLEEP_CLK, 5 },
278 };
279 
280 static const struct clk_parent_data gcc_parent_data_5[] = {
281 	{ .index = DT_BI_TCXO },
282 	{ .hw = &gcc_gpll0.clkr.hw },
283 	{ .hw = &gcc_gpll7.clkr.hw },
284 	{ .index = DT_SLEEP_CLK },
285 };
286 
287 static const struct parent_map gcc_parent_map_6[] = {
288 	{ P_BI_TCXO, 0 },
289 	{ P_GCC_GPLL0_OUT_MAIN, 1 },
290 	{ P_GCC_GPLL7_OUT_MAIN, 2 },
291 };
292 
293 static const struct clk_parent_data gcc_parent_data_6[] = {
294 	{ .index = DT_BI_TCXO },
295 	{ .hw = &gcc_gpll0.clkr.hw },
296 	{ .hw = &gcc_gpll7.clkr.hw },
297 };
298 
299 static const struct parent_map gcc_parent_map_7[] = {
300 	{ P_BI_TCXO, 0 },
301 	{ P_GCC_GPLL0_OUT_MAIN, 1 },
302 	{ P_GCC_GPLL4_OUT_MAIN, 5 },
303 	{ P_GCC_GPLL0_OUT_EVEN, 6 },
304 };
305 
306 static const struct clk_parent_data gcc_parent_data_7[] = {
307 	{ .index = DT_BI_TCXO },
308 	{ .hw = &gcc_gpll0.clkr.hw },
309 	{ .hw = &gcc_gpll4.clkr.hw },
310 	{ .hw = &gcc_gpll0_out_even.clkr.hw },
311 };
312 
313 static const struct parent_map gcc_parent_map_8[] = {
314 	{ P_BI_TCXO, 0 },
315 	{ P_GCC_GPLL0_OUT_MAIN, 1 },
316 	{ P_GCC_GPLL7_OUT_MAIN, 2 },
317 	{ P_GCC_GPLL0_OUT_EVEN, 6 },
318 };
319 
320 static const struct clk_parent_data gcc_parent_data_8[] = {
321 	{ .index = DT_BI_TCXO },
322 	{ .hw = &gcc_gpll0.clkr.hw },
323 	{ .hw = &gcc_gpll7.clkr.hw },
324 	{ .hw = &gcc_gpll0_out_even.clkr.hw },
325 };
326 
327 static const struct parent_map gcc_parent_map_9[] = {
328 	{ P_BI_TCXO, 0 },
329 	{ P_GCC_GPLL0_OUT_MAIN, 1 },
330 	{ P_GCC_GPLL9_OUT_MAIN, 2 },
331 	{ P_GCC_GPLL4_OUT_MAIN, 5 },
332 	{ P_GCC_GPLL0_OUT_EVEN, 6 },
333 };
334 
335 static const struct clk_parent_data gcc_parent_data_10[] = {
336 	{ .index = DT_USB3_PHY_0_WRAPPER_GCC_USB30_PIPE },
337 	{ .index = DT_BI_TCXO },
338 };
339 
340 static const struct parent_map gcc_parent_map_10[] = {
341 	{ P_USB3_PHY_0_WRAPPER_GCC_USB30_PIPE_CLK, 0 },
342 	{ P_BI_TCXO, 2 },
343 };
344 
345 static const struct clk_parent_data gcc_parent_data_11[] = {
346 	{ .index = DT_USB3_PHY_1_WRAPPER_GCC_USB30_PIPE },
347 	{ .index = DT_BI_TCXO },
348 };
349 
350 static const struct parent_map gcc_parent_map_11[] = {
351 	{ P_USB3_PHY_1_WRAPPER_GCC_USB30_PIPE_CLK, 0 },
352 	{ P_BI_TCXO, 2 },
353 };
354 
355 static const struct clk_parent_data gcc_parent_data_12[] = {
356 	{ .index = DT_USB3_PHY_2_WRAPPER_GCC_USB30_PIPE },
357 	{ .index = DT_BI_TCXO },
358 };
359 
360 static const struct parent_map gcc_parent_map_12[] = {
361 	{ P_USB3_PHY_2_WRAPPER_GCC_USB30_PIPE_CLK, 0 },
362 	{ P_BI_TCXO, 2 },
363 };
364 
365 static const struct clk_parent_data gcc_parent_data_9[] = {
366 	{ .index = DT_BI_TCXO },
367 	{ .hw = &gcc_gpll0.clkr.hw },
368 	{ .hw = &gcc_gpll9.clkr.hw },
369 	{ .hw = &gcc_gpll4.clkr.hw },
370 	{ .hw = &gcc_gpll0_out_even.clkr.hw },
371 };
372 
373 static const struct freq_tbl ftbl_gcc_gp1_clk_src[] = {
374 	F(50000000, P_GCC_GPLL0_OUT_EVEN, 6, 0, 0),
375 	F(100000000, P_GCC_GPLL0_OUT_MAIN, 6, 0, 0),
376 	F(200000000, P_GCC_GPLL0_OUT_MAIN, 3, 0, 0),
377 	{ }
378 };
379 
380 static const struct clk_parent_data gcc_parent_data_13[] = {
381 	{ .index = DT_GCC_USB4_0_PHY_DP0_GMUX_CLK_SRC },
382 	{ .index = DT_USB4_0_PHY_GCC_USB4RTR_MAX_PIPE_CLK },
383 };
384 
385 static const struct clk_parent_data gcc_parent_data_14[] = {
386 	{ .index = DT_GCC_USB4_0_PHY_DP1_GMUX_CLK_SRC },
387 	{ .index = DT_USB4_0_PHY_GCC_USB4RTR_MAX_PIPE_CLK },
388 };
389 
390 static const struct clk_parent_data gcc_parent_data_15[] = {
391 	{ .index = DT_USB4_0_PHY_GCC_USB4_PCIE_PIPE_CLK },
392 	{ .index = DT_BI_TCXO },
393 };
394 
395 static const struct clk_parent_data gcc_parent_data_16[] = {
396 	{ .index = DT_GCC_USB4_0_PHY_PCIE_PIPEGMUX_CLK_SRC },
397 	{ .index = DT_USB4_0_PHY_GCC_USB4_PCIE_PIPE_CLK },
398 };
399 
400 static const struct clk_parent_data gcc_parent_data_17[] = {
401 	{ .index = DT_QUSB4PHY_0_GCC_USB4_RX0_CLK },
402 	{ .index = DT_BI_TCXO },
403 };
404 
405 static const struct clk_parent_data gcc_parent_data_18[] = {
406 	{ .index = DT_QUSB4PHY_0_GCC_USB4_RX1_CLK },
407 	{ .index = DT_BI_TCXO },
408 };
409 
410 static const struct clk_parent_data gcc_parent_data_19[] = {
411 	{ .index = DT_GCC_USB4_0_PHY_SYS_PIPEGMUX_CLK_SRC },
412 	{ .index = DT_USB4_0_PHY_GCC_USB4_PCIE_PIPE_CLK },
413 };
414 
415 static const struct clk_parent_data gcc_parent_data_20[] = {
416 	{ .index = DT_GCC_USB4_1_PHY_DP0_GMUX_CLK_SRC },
417 	{ .index = DT_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK },
418 };
419 
420 static const struct clk_parent_data gcc_parent_data_21[] = {
421 	{ .index = DT_GCC_USB4_1_PHY_DP1_GMUX_CLK_SRC },
422 	{ .index = DT_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK },
423 };
424 
425 static const struct clk_parent_data gcc_parent_data_22[] = {
426 	{ .index = DT_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK },
427 	{ .index = DT_BI_TCXO },
428 };
429 
430 static const struct clk_parent_data gcc_parent_data_23[] = {
431 	{ .index = DT_GCC_USB4_1_PHY_PCIE_PIPEGMUX_CLK_SRC },
432 	{ .index = DT_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK },
433 };
434 
435 static const struct clk_parent_data gcc_parent_data_24[] = {
436 	{ .index = DT_QUSB4PHY_1_GCC_USB4_RX0_CLK },
437 	{ .index = DT_BI_TCXO },
438 };
439 
440 static const struct clk_parent_data gcc_parent_data_25[] = {
441 	{ .index = DT_QUSB4PHY_1_GCC_USB4_RX1_CLK },
442 	{ .index = DT_BI_TCXO },
443 };
444 
445 static const struct clk_parent_data gcc_parent_data_26[] = {
446 	{ .index = DT_GCC_USB4_1_PHY_SYS_PIPEGMUX_CLK_SRC },
447 	{ .index = DT_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK },
448 };
449 
450 static const struct clk_parent_data gcc_parent_data_27[] = {
451 	{ .index = DT_GCC_USB4_2_PHY_DP0_GMUX_CLK_SRC },
452 	{ .index = DT_USB4_2_PHY_GCC_USB4RTR_MAX_PIPE_CLK },
453 };
454 
455 static const struct clk_parent_data gcc_parent_data_28[] = {
456 	{ .index = DT_GCC_USB4_2_PHY_DP1_GMUX_CLK_SRC },
457 	{ .index = DT_USB4_2_PHY_GCC_USB4RTR_MAX_PIPE_CLK },
458 };
459 
460 static const struct clk_parent_data gcc_parent_data_29[] = {
461 	{ .index = DT_USB4_2_PHY_GCC_USB4_PCIE_PIPE_CLK },
462 	{ .index = DT_BI_TCXO },
463 };
464 
465 static const struct clk_parent_data gcc_parent_data_30[] = {
466 	{ .index = DT_GCC_USB4_2_PHY_PCIE_PIPEGMUX_CLK_SRC },
467 	{ .index = DT_USB4_2_PHY_GCC_USB4_PCIE_PIPE_CLK },
468 };
469 
470 static const struct clk_parent_data gcc_parent_data_31[] = {
471 	{ .index = DT_QUSB4PHY_2_GCC_USB4_RX0_CLK },
472 	{ .index = DT_BI_TCXO },
473 };
474 
475 static const struct clk_parent_data gcc_parent_data_32[] = {
476 	{ .index = DT_QUSB4PHY_2_GCC_USB4_RX1_CLK },
477 	{ .index = DT_BI_TCXO },
478 };
479 
480 static const struct clk_parent_data gcc_parent_data_33[] = {
481 	{ .index = DT_GCC_USB4_2_PHY_SYS_PIPEGMUX_CLK_SRC },
482 	{ .index = DT_USB4_2_PHY_GCC_USB4_PCIE_PIPE_CLK },
483 };
484 
485 static struct clk_regmap_phy_mux gcc_usb4_0_phy_dp0_clk_src = {
486 	.reg = 0x9f06c,
487 	.clkr = {
488 		.hw.init = &(const struct clk_init_data) {
489 			.name = "gcc_usb4_0_phy_dp0_clk_src",
490 			.parent_data = gcc_parent_data_13,
491 			.ops = &clk_regmap_phy_mux_ops,
492 		},
493 	},
494 };
495 
496 static struct clk_regmap_phy_mux gcc_usb4_0_phy_dp1_clk_src = {
497 	.reg = 0x9f114,
498 	.clkr = {
499 		.hw.init = &(const struct clk_init_data) {
500 			.name = "gcc_usb4_0_phy_dp1_clk_src",
501 			.parent_data = gcc_parent_data_14,
502 			.ops = &clk_regmap_phy_mux_ops,
503 		},
504 	},
505 };
506 
507 static struct clk_regmap_phy_mux gcc_usb4_0_phy_p2rr2p_pipe_clk_src = {
508 	.reg = 0x9f0d4,
509 	.clkr = {
510 		.hw.init = &(const struct clk_init_data) {
511 			.name = "gcc_usb4_0_phy_p2rr2p_pipe_clk_src",
512 			.parent_data = gcc_parent_data_15,
513 			.ops = &clk_regmap_phy_mux_ops,
514 		},
515 	},
516 };
517 
518 static struct clk_regmap_phy_mux gcc_usb4_0_phy_pcie_pipe_mux_clk_src = {
519 	.reg = 0x9f104,
520 	.clkr = {
521 		.hw.init = &(const struct clk_init_data) {
522 			.name = "gcc_usb4_0_phy_pcie_pipe_mux_clk_src",
523 			.parent_data = gcc_parent_data_16,
524 			.ops = &clk_regmap_phy_mux_ops,
525 		},
526 	},
527 };
528 
529 static struct clk_regmap_phy_mux gcc_usb4_0_phy_rx0_clk_src = {
530 	.reg = 0x9f0ac,
531 	.clkr = {
532 		.hw.init = &(const struct clk_init_data) {
533 			.name = "gcc_usb4_0_phy_rx0_clk_src",
534 			.parent_data = gcc_parent_data_17,
535 			.ops = &clk_regmap_phy_mux_ops,
536 		},
537 	},
538 };
539 
540 static struct clk_regmap_phy_mux gcc_usb4_0_phy_rx1_clk_src = {
541 	.reg = 0x9f0bc,
542 	.clkr = {
543 		.hw.init = &(const struct clk_init_data) {
544 			.name = "gcc_usb4_0_phy_rx1_clk_src",
545 			.parent_data = gcc_parent_data_18,
546 			.ops = &clk_regmap_phy_mux_ops,
547 		},
548 	},
549 };
550 
551 static struct clk_regmap_phy_mux gcc_usb4_0_phy_sys_clk_src = {
552 	.reg = 0x9f0e4,
553 	.clkr = {
554 		.hw.init = &(const struct clk_init_data) {
555 			.name = "gcc_usb4_0_phy_sys_clk_src",
556 			.parent_data = gcc_parent_data_19,
557 			.ops = &clk_regmap_phy_mux_ops,
558 		},
559 	},
560 };
561 
562 static struct clk_regmap_phy_mux gcc_usb4_1_phy_dp0_clk_src = {
563 	.reg = 0x2b06c,
564 	.clkr = {
565 		.hw.init = &(const struct clk_init_data) {
566 			.name = "gcc_usb4_1_phy_dp0_clk_src",
567 			.parent_data = gcc_parent_data_20,
568 			.ops = &clk_regmap_phy_mux_ops,
569 		},
570 	},
571 };
572 
573 static struct clk_regmap_phy_mux gcc_usb4_1_phy_dp1_clk_src = {
574 	.reg = 0x2b114,
575 	.clkr = {
576 		.hw.init = &(const struct clk_init_data) {
577 			.name = "gcc_usb4_1_phy_dp1_clk_src",
578 			.parent_data = gcc_parent_data_21,
579 			.ops = &clk_regmap_phy_mux_ops,
580 		},
581 	},
582 };
583 
584 static struct clk_regmap_phy_mux gcc_usb4_1_phy_p2rr2p_pipe_clk_src = {
585 	.reg = 0x2b0d4,
586 	.clkr = {
587 		.hw.init = &(const struct clk_init_data) {
588 			.name = "gcc_usb4_1_phy_p2rr2p_pipe_clk_src",
589 			.parent_data = gcc_parent_data_22,
590 			.ops = &clk_regmap_phy_mux_ops,
591 		},
592 	},
593 };
594 
595 static struct clk_regmap_phy_mux gcc_usb4_1_phy_pcie_pipe_mux_clk_src = {
596 	.reg = 0x2b104,
597 	.clkr = {
598 		.hw.init = &(const struct clk_init_data) {
599 			.name = "gcc_usb4_1_phy_pcie_pipe_mux_clk_src",
600 			.parent_data = gcc_parent_data_23,
601 			.ops = &clk_regmap_phy_mux_ops,
602 		},
603 	},
604 };
605 
606 static struct clk_regmap_phy_mux gcc_usb4_1_phy_rx0_clk_src = {
607 	.reg = 0x2b0ac,
608 	.clkr = {
609 		.hw.init = &(const struct clk_init_data) {
610 			.name = "gcc_usb4_1_phy_rx0_clk_src",
611 			.parent_data = gcc_parent_data_24,
612 			.ops = &clk_regmap_phy_mux_ops,
613 		},
614 	},
615 };
616 
617 static struct clk_regmap_phy_mux gcc_usb4_1_phy_rx1_clk_src = {
618 	.reg = 0x2b0bc,
619 	.clkr = {
620 		.hw.init = &(const struct clk_init_data) {
621 			.name = "gcc_usb4_1_phy_rx1_clk_src",
622 			.parent_data = gcc_parent_data_25,
623 			.ops = &clk_regmap_phy_mux_ops,
624 		},
625 	},
626 };
627 
628 static struct clk_regmap_phy_mux gcc_usb4_1_phy_sys_clk_src = {
629 	.reg = 0x2b0e4,
630 	.clkr = {
631 		.hw.init = &(const struct clk_init_data) {
632 			.name = "gcc_usb4_1_phy_sys_clk_src",
633 			.parent_data = gcc_parent_data_26,
634 			.ops = &clk_regmap_phy_mux_ops,
635 		},
636 	},
637 };
638 
639 static struct clk_regmap_phy_mux gcc_usb4_2_phy_dp0_clk_src = {
640 	.reg = 0x1106c,
641 	.clkr = {
642 		.hw.init = &(const struct clk_init_data) {
643 			.name = "gcc_usb4_2_phy_dp0_clk_src",
644 			.parent_data = gcc_parent_data_27,
645 			.ops = &clk_regmap_phy_mux_ops,
646 		},
647 	},
648 };
649 
650 static struct clk_regmap_phy_mux gcc_usb4_2_phy_dp1_clk_src = {
651 	.reg = 0x11114,
652 	.clkr = {
653 		.hw.init = &(const struct clk_init_data) {
654 			.name = "gcc_usb4_2_phy_dp1_clk_src",
655 			.parent_data = gcc_parent_data_28,
656 			.ops = &clk_regmap_phy_mux_ops,
657 		},
658 	},
659 };
660 
661 static struct clk_regmap_phy_mux gcc_usb4_2_phy_p2rr2p_pipe_clk_src = {
662 	.reg = 0x110d4,
663 	.clkr = {
664 		.hw.init = &(const struct clk_init_data) {
665 			.name = "gcc_usb4_2_phy_p2rr2p_pipe_clk_src",
666 			.parent_data = gcc_parent_data_29,
667 			.ops = &clk_regmap_phy_mux_ops,
668 		},
669 	},
670 };
671 
672 static struct clk_regmap_phy_mux gcc_usb4_2_phy_pcie_pipe_mux_clk_src = {
673 	.reg = 0x11104,
674 	.clkr = {
675 		.hw.init = &(const struct clk_init_data) {
676 			.name = "gcc_usb4_2_phy_pcie_pipe_mux_clk_src",
677 			.parent_data = gcc_parent_data_30,
678 			.ops = &clk_regmap_phy_mux_ops,
679 		},
680 	},
681 };
682 
683 static struct clk_regmap_phy_mux gcc_usb4_2_phy_rx0_clk_src = {
684 	.reg = 0x110ac,
685 	.clkr = {
686 		.hw.init = &(const struct clk_init_data) {
687 			.name = "gcc_usb4_2_phy_rx0_clk_src",
688 			.parent_data = gcc_parent_data_31,
689 			.ops = &clk_regmap_phy_mux_ops,
690 		},
691 	},
692 };
693 
694 static struct clk_regmap_phy_mux gcc_usb4_2_phy_rx1_clk_src = {
695 	.reg = 0x110bc,
696 	.clkr = {
697 		.hw.init = &(const struct clk_init_data) {
698 			.name = "gcc_usb4_2_phy_rx1_clk_src",
699 			.parent_data = gcc_parent_data_32,
700 			.ops = &clk_regmap_phy_mux_ops,
701 		},
702 	},
703 };
704 
705 static struct clk_regmap_phy_mux gcc_usb4_2_phy_sys_clk_src = {
706 	.reg = 0x110e4,
707 	.clkr = {
708 		.hw.init = &(const struct clk_init_data) {
709 			.name = "gcc_usb4_2_phy_sys_clk_src",
710 			.parent_data = gcc_parent_data_33,
711 			.ops = &clk_regmap_phy_mux_ops,
712 		},
713 	},
714 };
715 
716 static struct clk_rcg2 gcc_gp1_clk_src = {
717 	.cmd_rcgr = 0x64004,
718 	.mnd_width = 16,
719 	.hid_width = 5,
720 	.parent_map = gcc_parent_map_2,
721 	.freq_tbl = ftbl_gcc_gp1_clk_src,
722 	.clkr.hw.init = &(const struct clk_init_data) {
723 		.name = "gcc_gp1_clk_src",
724 		.parent_data = gcc_parent_data_2,
725 		.num_parents = ARRAY_SIZE(gcc_parent_data_2),
726 		.flags = CLK_SET_RATE_PARENT,
727 		.ops = &clk_rcg2_shared_ops,
728 	},
729 };
730 
731 static struct clk_rcg2 gcc_gp2_clk_src = {
732 	.cmd_rcgr = 0x65004,
733 	.mnd_width = 16,
734 	.hid_width = 5,
735 	.parent_map = gcc_parent_map_2,
736 	.freq_tbl = ftbl_gcc_gp1_clk_src,
737 	.clkr.hw.init = &(const struct clk_init_data) {
738 		.name = "gcc_gp2_clk_src",
739 		.parent_data = gcc_parent_data_2,
740 		.num_parents = ARRAY_SIZE(gcc_parent_data_2),
741 		.flags = CLK_SET_RATE_PARENT,
742 		.ops = &clk_rcg2_shared_ops,
743 	},
744 };
745 
746 static struct clk_rcg2 gcc_gp3_clk_src = {
747 	.cmd_rcgr = 0x66004,
748 	.mnd_width = 16,
749 	.hid_width = 5,
750 	.parent_map = gcc_parent_map_2,
751 	.freq_tbl = ftbl_gcc_gp1_clk_src,
752 	.clkr.hw.init = &(const struct clk_init_data) {
753 		.name = "gcc_gp3_clk_src",
754 		.parent_data = gcc_parent_data_2,
755 		.num_parents = ARRAY_SIZE(gcc_parent_data_2),
756 		.flags = CLK_SET_RATE_PARENT,
757 		.ops = &clk_rcg2_shared_ops,
758 	},
759 };
760 
761 static const struct freq_tbl ftbl_gcc_pcie_0_aux_clk_src[] = {
762 	F(19200000, P_BI_TCXO, 1, 0, 0),
763 	{ }
764 };
765 
766 static struct clk_rcg2 gcc_pcie_0_aux_clk_src = {
767 	.cmd_rcgr = 0xa0180,
768 	.mnd_width = 16,
769 	.hid_width = 5,
770 	.parent_map = gcc_parent_map_1,
771 	.freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
772 	.clkr.hw.init = &(const struct clk_init_data) {
773 		.name = "gcc_pcie_0_aux_clk_src",
774 		.parent_data = gcc_parent_data_1,
775 		.num_parents = ARRAY_SIZE(gcc_parent_data_1),
776 		.flags = CLK_SET_RATE_PARENT,
777 		.ops = &clk_rcg2_shared_ops,
778 	},
779 };
780 
781 static const struct freq_tbl ftbl_gcc_pcie_0_phy_rchng_clk_src[] = {
782 	F(100000000, P_GCC_GPLL0_OUT_EVEN, 3, 0, 0),
783 	{ }
784 };
785 
786 static struct clk_rcg2 gcc_pcie_0_phy_rchng_clk_src = {
787 	.cmd_rcgr = 0xa0054,
788 	.mnd_width = 0,
789 	.hid_width = 5,
790 	.parent_map = gcc_parent_map_0,
791 	.freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src,
792 	.clkr.hw.init = &(const struct clk_init_data) {
793 		.name = "gcc_pcie_0_phy_rchng_clk_src",
794 		.parent_data = gcc_parent_data_0,
795 		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
796 		.flags = CLK_SET_RATE_PARENT,
797 		.ops = &clk_rcg2_shared_ops,
798 	},
799 };
800 
801 static struct clk_rcg2 gcc_pcie_1_aux_clk_src = {
802 	.cmd_rcgr = 0x2c180,
803 	.mnd_width = 16,
804 	.hid_width = 5,
805 	.parent_map = gcc_parent_map_1,
806 	.freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
807 	.clkr.hw.init = &(const struct clk_init_data) {
808 		.name = "gcc_pcie_1_aux_clk_src",
809 		.parent_data = gcc_parent_data_1,
810 		.num_parents = ARRAY_SIZE(gcc_parent_data_1),
811 		.flags = CLK_SET_RATE_PARENT,
812 		.ops = &clk_rcg2_shared_ops,
813 	},
814 };
815 
816 static struct clk_rcg2 gcc_pcie_1_phy_rchng_clk_src = {
817 	.cmd_rcgr = 0x2c054,
818 	.mnd_width = 0,
819 	.hid_width = 5,
820 	.parent_map = gcc_parent_map_0,
821 	.freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src,
822 	.clkr.hw.init = &(const struct clk_init_data) {
823 		.name = "gcc_pcie_1_phy_rchng_clk_src",
824 		.parent_data = gcc_parent_data_0,
825 		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
826 		.flags = CLK_SET_RATE_PARENT,
827 		.ops = &clk_rcg2_shared_ops,
828 	},
829 };
830 
831 static struct clk_rcg2 gcc_pcie_2_aux_clk_src = {
832 	.cmd_rcgr = 0x13180,
833 	.mnd_width = 16,
834 	.hid_width = 5,
835 	.parent_map = gcc_parent_map_1,
836 	.freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
837 	.clkr.hw.init = &(const struct clk_init_data) {
838 		.name = "gcc_pcie_2_aux_clk_src",
839 		.parent_data = gcc_parent_data_1,
840 		.num_parents = ARRAY_SIZE(gcc_parent_data_1),
841 		.flags = CLK_SET_RATE_PARENT,
842 		.ops = &clk_rcg2_shared_ops,
843 	},
844 };
845 
846 static struct clk_rcg2 gcc_pcie_2_phy_rchng_clk_src = {
847 	.cmd_rcgr = 0x13054,
848 	.mnd_width = 0,
849 	.hid_width = 5,
850 	.parent_map = gcc_parent_map_0,
851 	.freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src,
852 	.clkr.hw.init = &(const struct clk_init_data) {
853 		.name = "gcc_pcie_2_phy_rchng_clk_src",
854 		.parent_data = gcc_parent_data_0,
855 		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
856 		.flags = CLK_SET_RATE_PARENT,
857 		.ops = &clk_rcg2_shared_ops,
858 	},
859 };
860 
861 static struct clk_rcg2 gcc_pcie_3_aux_clk_src = {
862 	.cmd_rcgr = 0x5808c,
863 	.mnd_width = 16,
864 	.hid_width = 5,
865 	.parent_map = gcc_parent_map_1,
866 	.freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
867 	.clkr.hw.init = &(const struct clk_init_data) {
868 		.name = "gcc_pcie_3_aux_clk_src",
869 		.parent_data = gcc_parent_data_1,
870 		.num_parents = ARRAY_SIZE(gcc_parent_data_1),
871 		.flags = CLK_SET_RATE_PARENT,
872 		.ops = &clk_rcg2_shared_ops,
873 	},
874 };
875 
876 static struct clk_rcg2 gcc_pcie_3_phy_rchng_clk_src = {
877 	.cmd_rcgr = 0x58070,
878 	.mnd_width = 0,
879 	.hid_width = 5,
880 	.parent_map = gcc_parent_map_0,
881 	.freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src,
882 	.clkr.hw.init = &(const struct clk_init_data) {
883 		.name = "gcc_pcie_3_phy_rchng_clk_src",
884 		.parent_data = gcc_parent_data_0,
885 		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
886 		.flags = CLK_SET_RATE_PARENT,
887 		.ops = &clk_rcg2_shared_ops,
888 	},
889 };
890 
891 static struct clk_rcg2 gcc_pcie_4_aux_clk_src = {
892 	.cmd_rcgr = 0x6b080,
893 	.mnd_width = 16,
894 	.hid_width = 5,
895 	.parent_map = gcc_parent_map_1,
896 	.freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
897 	.clkr.hw.init = &(const struct clk_init_data) {
898 		.name = "gcc_pcie_4_aux_clk_src",
899 		.parent_data = gcc_parent_data_1,
900 		.num_parents = ARRAY_SIZE(gcc_parent_data_1),
901 		.flags = CLK_SET_RATE_PARENT,
902 		.ops = &clk_rcg2_shared_ops,
903 	},
904 };
905 
906 static struct clk_rcg2 gcc_pcie_4_phy_rchng_clk_src = {
907 	.cmd_rcgr = 0x6b064,
908 	.mnd_width = 0,
909 	.hid_width = 5,
910 	.parent_map = gcc_parent_map_0,
911 	.freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src,
912 	.clkr.hw.init = &(const struct clk_init_data) {
913 		.name = "gcc_pcie_4_phy_rchng_clk_src",
914 		.parent_data = gcc_parent_data_0,
915 		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
916 		.flags = CLK_SET_RATE_PARENT,
917 		.ops = &clk_rcg2_shared_ops,
918 	},
919 };
920 
921 static struct clk_rcg2 gcc_pcie_5_aux_clk_src = {
922 	.cmd_rcgr = 0x2f080,
923 	.mnd_width = 16,
924 	.hid_width = 5,
925 	.parent_map = gcc_parent_map_1,
926 	.freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
927 	.clkr.hw.init = &(const struct clk_init_data) {
928 		.name = "gcc_pcie_5_aux_clk_src",
929 		.parent_data = gcc_parent_data_1,
930 		.num_parents = ARRAY_SIZE(gcc_parent_data_1),
931 		.flags = CLK_SET_RATE_PARENT,
932 		.ops = &clk_rcg2_shared_ops,
933 	},
934 };
935 
936 static struct clk_rcg2 gcc_pcie_5_phy_rchng_clk_src = {
937 	.cmd_rcgr = 0x2f064,
938 	.mnd_width = 0,
939 	.hid_width = 5,
940 	.parent_map = gcc_parent_map_0,
941 	.freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src,
942 	.clkr.hw.init = &(const struct clk_init_data) {
943 		.name = "gcc_pcie_5_phy_rchng_clk_src",
944 		.parent_data = gcc_parent_data_0,
945 		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
946 		.flags = CLK_SET_RATE_PARENT,
947 		.ops = &clk_rcg2_shared_ops,
948 	},
949 };
950 
951 static struct clk_rcg2 gcc_pcie_6a_aux_clk_src = {
952 	.cmd_rcgr = 0x3108c,
953 	.mnd_width = 16,
954 	.hid_width = 5,
955 	.parent_map = gcc_parent_map_1,
956 	.freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
957 	.clkr.hw.init = &(const struct clk_init_data) {
958 		.name = "gcc_pcie_6a_aux_clk_src",
959 		.parent_data = gcc_parent_data_1,
960 		.num_parents = ARRAY_SIZE(gcc_parent_data_1),
961 		.flags = CLK_SET_RATE_PARENT,
962 		.ops = &clk_rcg2_shared_ops,
963 	},
964 };
965 
966 static struct clk_rcg2 gcc_pcie_6a_phy_rchng_clk_src = {
967 	.cmd_rcgr = 0x31070,
968 	.mnd_width = 0,
969 	.hid_width = 5,
970 	.parent_map = gcc_parent_map_0,
971 	.freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src,
972 	.clkr.hw.init = &(const struct clk_init_data) {
973 		.name = "gcc_pcie_6a_phy_rchng_clk_src",
974 		.parent_data = gcc_parent_data_0,
975 		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
976 		.flags = CLK_SET_RATE_PARENT,
977 		.ops = &clk_rcg2_shared_ops,
978 	},
979 };
980 
981 static struct clk_rcg2 gcc_pcie_6b_aux_clk_src = {
982 	.cmd_rcgr = 0x8d08c,
983 	.mnd_width = 16,
984 	.hid_width = 5,
985 	.parent_map = gcc_parent_map_1,
986 	.freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
987 	.clkr.hw.init = &(const struct clk_init_data) {
988 		.name = "gcc_pcie_6b_aux_clk_src",
989 		.parent_data = gcc_parent_data_1,
990 		.num_parents = ARRAY_SIZE(gcc_parent_data_1),
991 		.flags = CLK_SET_RATE_PARENT,
992 		.ops = &clk_rcg2_shared_ops,
993 	},
994 };
995 
996 static struct clk_rcg2 gcc_pcie_6b_phy_rchng_clk_src = {
997 	.cmd_rcgr = 0x8d070,
998 	.mnd_width = 0,
999 	.hid_width = 5,
1000 	.parent_map = gcc_parent_map_0,
1001 	.freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src,
1002 	.clkr.hw.init = &(const struct clk_init_data) {
1003 		.name = "gcc_pcie_6b_phy_rchng_clk_src",
1004 		.parent_data = gcc_parent_data_0,
1005 		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1006 		.flags = CLK_SET_RATE_PARENT,
1007 		.ops = &clk_rcg2_shared_ops,
1008 	},
1009 };
1010 
1011 static struct clk_rcg2 gcc_pcie_rscc_xo_clk_src = {
1012 	.cmd_rcgr = 0xa400c,
1013 	.mnd_width = 0,
1014 	.hid_width = 5,
1015 	.parent_map = gcc_parent_map_3,
1016 	.freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
1017 	.clkr.hw.init = &(const struct clk_init_data) {
1018 		.name = "gcc_pcie_rscc_xo_clk_src",
1019 		.parent_data = gcc_parent_data_3,
1020 		.num_parents = ARRAY_SIZE(gcc_parent_data_3),
1021 		.flags = CLK_SET_RATE_PARENT,
1022 		.ops = &clk_rcg2_shared_ops,
1023 	},
1024 };
1025 
1026 static const struct freq_tbl ftbl_gcc_pdm2_clk_src[] = {
1027 	F(60000000, P_GCC_GPLL0_OUT_MAIN, 10, 0, 0),
1028 	{ }
1029 };
1030 
1031 static struct clk_rcg2 gcc_pdm2_clk_src = {
1032 	.cmd_rcgr = 0x33010,
1033 	.mnd_width = 0,
1034 	.hid_width = 5,
1035 	.parent_map = gcc_parent_map_0,
1036 	.freq_tbl = ftbl_gcc_pdm2_clk_src,
1037 	.clkr.hw.init = &(const struct clk_init_data) {
1038 		.name = "gcc_pdm2_clk_src",
1039 		.parent_data = gcc_parent_data_0,
1040 		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1041 		.flags = CLK_SET_RATE_PARENT,
1042 		.ops = &clk_rcg2_shared_ops,
1043 	},
1044 };
1045 
1046 static const struct freq_tbl ftbl_gcc_qupv3_wrap0_s0_clk_src[] = {
1047 	F(7372800, P_GCC_GPLL0_OUT_EVEN, 1, 384, 15625),
1048 	F(14745600, P_GCC_GPLL0_OUT_EVEN, 1, 768, 15625),
1049 	F(19200000, P_BI_TCXO, 1, 0, 0),
1050 	F(29491200, P_GCC_GPLL0_OUT_EVEN, 1, 1536, 15625),
1051 	F(32000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 75),
1052 	F(48000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 25),
1053 	F(64000000, P_GCC_GPLL0_OUT_EVEN, 1, 16, 75),
1054 	F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0),
1055 	F(80000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 15),
1056 	F(96000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 25),
1057 	F(120000000, P_GCC_GPLL0_OUT_MAIN, 5, 0, 0),
1058 	{ }
1059 };
1060 
1061 static struct clk_init_data gcc_qupv3_wrap0_s0_clk_src_init = {
1062 	.name = "gcc_qupv3_wrap0_s0_clk_src",
1063 	.parent_data = gcc_parent_data_0,
1064 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1065 	.flags = CLK_SET_RATE_PARENT,
1066 	.ops = &clk_rcg2_ops,
1067 };
1068 
1069 static struct clk_rcg2 gcc_qupv3_wrap0_s0_clk_src = {
1070 	.cmd_rcgr = 0x42010,
1071 	.mnd_width = 16,
1072 	.hid_width = 5,
1073 	.parent_map = gcc_parent_map_0,
1074 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1075 	.clkr.hw.init = &gcc_qupv3_wrap0_s0_clk_src_init,
1076 };
1077 
1078 static struct clk_init_data gcc_qupv3_wrap0_s1_clk_src_init = {
1079 	.name = "gcc_qupv3_wrap0_s1_clk_src",
1080 	.parent_data = gcc_parent_data_0,
1081 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1082 	.flags = CLK_SET_RATE_PARENT,
1083 	.ops = &clk_rcg2_ops,
1084 };
1085 
1086 static struct clk_rcg2 gcc_qupv3_wrap0_s1_clk_src = {
1087 	.cmd_rcgr = 0x42148,
1088 	.mnd_width = 16,
1089 	.hid_width = 5,
1090 	.parent_map = gcc_parent_map_0,
1091 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1092 	.clkr.hw.init = &gcc_qupv3_wrap0_s1_clk_src_init,
1093 };
1094 
1095 static const struct freq_tbl ftbl_gcc_qupv3_wrap0_s2_clk_src[] = {
1096 	F(7372800, P_GCC_GPLL0_OUT_EVEN, 1, 384, 15625),
1097 	F(14745600, P_GCC_GPLL0_OUT_EVEN, 1, 768, 15625),
1098 	F(19200000, P_BI_TCXO, 1, 0, 0),
1099 	F(29491200, P_GCC_GPLL0_OUT_EVEN, 1, 1536, 15625),
1100 	F(32000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 75),
1101 	F(48000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 25),
1102 	F(64000000, P_GCC_GPLL0_OUT_EVEN, 1, 16, 75),
1103 	F(80000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 15),
1104 	F(96000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 25),
1105 	F(150000000, P_GCC_GPLL0_OUT_EVEN, 2, 0, 0),
1106 	F(200000000, P_GCC_GPLL0_OUT_MAIN, 3, 0, 0),
1107 	{ }
1108 };
1109 
1110 static struct clk_init_data gcc_qupv3_wrap0_s2_clk_src_init = {
1111 	.name = "gcc_qupv3_wrap0_s2_clk_src",
1112 	.parent_data = gcc_parent_data_0,
1113 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1114 	.flags = CLK_SET_RATE_PARENT,
1115 	.ops = &clk_rcg2_ops,
1116 };
1117 
1118 static struct clk_rcg2 gcc_qupv3_wrap0_s2_clk_src = {
1119 	.cmd_rcgr = 0x42288,
1120 	.mnd_width = 16,
1121 	.hid_width = 5,
1122 	.parent_map = gcc_parent_map_0,
1123 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s2_clk_src,
1124 	.clkr.hw.init = &gcc_qupv3_wrap0_s2_clk_src_init,
1125 };
1126 
1127 static struct clk_init_data gcc_qupv3_wrap0_s3_clk_src_init = {
1128 	.name = "gcc_qupv3_wrap0_s3_clk_src",
1129 	.parent_data = gcc_parent_data_0,
1130 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1131 	.flags = CLK_SET_RATE_PARENT,
1132 	.ops = &clk_rcg2_ops,
1133 };
1134 
1135 static struct clk_rcg2 gcc_qupv3_wrap0_s3_clk_src = {
1136 	.cmd_rcgr = 0x423c8,
1137 	.mnd_width = 16,
1138 	.hid_width = 5,
1139 	.parent_map = gcc_parent_map_0,
1140 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s2_clk_src,
1141 	.clkr.hw.init = &gcc_qupv3_wrap0_s3_clk_src_init,
1142 };
1143 
1144 static const struct freq_tbl ftbl_gcc_qupv3_wrap0_s4_clk_src[] = {
1145 	F(7372800, P_GCC_GPLL0_OUT_EVEN, 1, 384, 15625),
1146 	F(14745600, P_GCC_GPLL0_OUT_EVEN, 1, 768, 15625),
1147 	F(19200000, P_BI_TCXO, 1, 0, 0),
1148 	F(29491200, P_GCC_GPLL0_OUT_EVEN, 1, 1536, 15625),
1149 	F(32000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 75),
1150 	F(48000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 25),
1151 	F(64000000, P_GCC_GPLL0_OUT_EVEN, 1, 16, 75),
1152 	F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0),
1153 	F(80000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 15),
1154 	F(96000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 25),
1155 	F(100000000, P_GCC_GPLL0_OUT_MAIN, 6, 0, 0),
1156 	{ }
1157 };
1158 
1159 static struct clk_init_data gcc_qupv3_wrap0_s4_clk_src_init = {
1160 	.name = "gcc_qupv3_wrap0_s4_clk_src",
1161 	.parent_data = gcc_parent_data_0,
1162 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1163 	.flags = CLK_SET_RATE_PARENT,
1164 	.ops = &clk_rcg2_ops,
1165 };
1166 
1167 static struct clk_rcg2 gcc_qupv3_wrap0_s4_clk_src = {
1168 	.cmd_rcgr = 0x42500,
1169 	.mnd_width = 16,
1170 	.hid_width = 5,
1171 	.parent_map = gcc_parent_map_0,
1172 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s4_clk_src,
1173 	.clkr.hw.init = &gcc_qupv3_wrap0_s4_clk_src_init,
1174 };
1175 
1176 static struct clk_init_data gcc_qupv3_wrap0_s5_clk_src_init = {
1177 	.name = "gcc_qupv3_wrap0_s5_clk_src",
1178 	.parent_data = gcc_parent_data_0,
1179 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1180 	.flags = CLK_SET_RATE_PARENT,
1181 	.ops = &clk_rcg2_ops,
1182 };
1183 
1184 static struct clk_rcg2 gcc_qupv3_wrap0_s5_clk_src = {
1185 	.cmd_rcgr = 0x42638,
1186 	.mnd_width = 16,
1187 	.hid_width = 5,
1188 	.parent_map = gcc_parent_map_0,
1189 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s4_clk_src,
1190 	.clkr.hw.init = &gcc_qupv3_wrap0_s5_clk_src_init,
1191 };
1192 
1193 static struct clk_init_data gcc_qupv3_wrap0_s6_clk_src_init = {
1194 	.name = "gcc_qupv3_wrap0_s6_clk_src",
1195 	.parent_data = gcc_parent_data_0,
1196 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1197 	.flags = CLK_SET_RATE_PARENT,
1198 	.ops = &clk_rcg2_ops,
1199 };
1200 
1201 static struct clk_rcg2 gcc_qupv3_wrap0_s6_clk_src = {
1202 	.cmd_rcgr = 0x42770,
1203 	.mnd_width = 16,
1204 	.hid_width = 5,
1205 	.parent_map = gcc_parent_map_0,
1206 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s4_clk_src,
1207 	.clkr.hw.init = &gcc_qupv3_wrap0_s6_clk_src_init,
1208 };
1209 
1210 static struct clk_init_data gcc_qupv3_wrap0_s7_clk_src_init = {
1211 	.name = "gcc_qupv3_wrap0_s7_clk_src",
1212 	.parent_data = gcc_parent_data_0,
1213 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1214 	.flags = CLK_SET_RATE_PARENT,
1215 	.ops = &clk_rcg2_ops,
1216 };
1217 
1218 static struct clk_rcg2 gcc_qupv3_wrap0_s7_clk_src = {
1219 	.cmd_rcgr = 0x428a8,
1220 	.mnd_width = 16,
1221 	.hid_width = 5,
1222 	.parent_map = gcc_parent_map_0,
1223 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s4_clk_src,
1224 	.clkr.hw.init = &gcc_qupv3_wrap0_s7_clk_src_init,
1225 };
1226 
1227 static struct clk_init_data gcc_qupv3_wrap1_s0_clk_src_init = {
1228 	.name = "gcc_qupv3_wrap1_s0_clk_src",
1229 	.parent_data = gcc_parent_data_0,
1230 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1231 	.flags = CLK_SET_RATE_PARENT,
1232 	.ops = &clk_rcg2_ops,
1233 };
1234 
1235 static struct clk_rcg2 gcc_qupv3_wrap1_s0_clk_src = {
1236 	.cmd_rcgr = 0x18010,
1237 	.mnd_width = 16,
1238 	.hid_width = 5,
1239 	.parent_map = gcc_parent_map_0,
1240 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1241 	.clkr.hw.init = &gcc_qupv3_wrap1_s0_clk_src_init,
1242 };
1243 
1244 static struct clk_init_data gcc_qupv3_wrap1_s1_clk_src_init = {
1245 	.name = "gcc_qupv3_wrap1_s1_clk_src",
1246 	.parent_data = gcc_parent_data_0,
1247 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1248 	.flags = CLK_SET_RATE_PARENT,
1249 	.ops = &clk_rcg2_ops,
1250 };
1251 
1252 static struct clk_rcg2 gcc_qupv3_wrap1_s1_clk_src = {
1253 	.cmd_rcgr = 0x18148,
1254 	.mnd_width = 16,
1255 	.hid_width = 5,
1256 	.parent_map = gcc_parent_map_0,
1257 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1258 	.clkr.hw.init = &gcc_qupv3_wrap1_s1_clk_src_init,
1259 };
1260 
1261 static struct clk_init_data gcc_qupv3_wrap1_s2_clk_src_init = {
1262 	.name = "gcc_qupv3_wrap1_s2_clk_src",
1263 	.parent_data = gcc_parent_data_0,
1264 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1265 	.flags = CLK_SET_RATE_PARENT,
1266 	.ops = &clk_rcg2_ops,
1267 };
1268 
1269 static struct clk_rcg2 gcc_qupv3_wrap1_s2_clk_src = {
1270 	.cmd_rcgr = 0x18288,
1271 	.mnd_width = 16,
1272 	.hid_width = 5,
1273 	.parent_map = gcc_parent_map_0,
1274 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s2_clk_src,
1275 	.clkr.hw.init = &gcc_qupv3_wrap1_s2_clk_src_init,
1276 };
1277 
1278 static struct clk_init_data gcc_qupv3_wrap1_s3_clk_src_init = {
1279 	.name = "gcc_qupv3_wrap1_s3_clk_src",
1280 	.parent_data = gcc_parent_data_0,
1281 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1282 	.flags = CLK_SET_RATE_PARENT,
1283 	.ops = &clk_rcg2_ops,
1284 };
1285 
1286 static struct clk_rcg2 gcc_qupv3_wrap1_s3_clk_src = {
1287 	.cmd_rcgr = 0x183c8,
1288 	.mnd_width = 16,
1289 	.hid_width = 5,
1290 	.parent_map = gcc_parent_map_0,
1291 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s2_clk_src,
1292 	.clkr.hw.init = &gcc_qupv3_wrap1_s3_clk_src_init,
1293 };
1294 
1295 static struct clk_init_data gcc_qupv3_wrap1_s4_clk_src_init = {
1296 	.name = "gcc_qupv3_wrap1_s4_clk_src",
1297 	.parent_data = gcc_parent_data_0,
1298 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1299 	.flags = CLK_SET_RATE_PARENT,
1300 	.ops = &clk_rcg2_ops,
1301 };
1302 
1303 static struct clk_rcg2 gcc_qupv3_wrap1_s4_clk_src = {
1304 	.cmd_rcgr = 0x18500,
1305 	.mnd_width = 16,
1306 	.hid_width = 5,
1307 	.parent_map = gcc_parent_map_0,
1308 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s4_clk_src,
1309 	.clkr.hw.init = &gcc_qupv3_wrap1_s4_clk_src_init,
1310 };
1311 
1312 static struct clk_init_data gcc_qupv3_wrap1_s5_clk_src_init = {
1313 	.name = "gcc_qupv3_wrap1_s5_clk_src",
1314 	.parent_data = gcc_parent_data_0,
1315 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1316 	.flags = CLK_SET_RATE_PARENT,
1317 	.ops = &clk_rcg2_ops,
1318 };
1319 
1320 static struct clk_rcg2 gcc_qupv3_wrap1_s5_clk_src = {
1321 	.cmd_rcgr = 0x18638,
1322 	.mnd_width = 16,
1323 	.hid_width = 5,
1324 	.parent_map = gcc_parent_map_0,
1325 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s4_clk_src,
1326 	.clkr.hw.init = &gcc_qupv3_wrap1_s5_clk_src_init,
1327 };
1328 
1329 static struct clk_init_data gcc_qupv3_wrap1_s6_clk_src_init = {
1330 	.name = "gcc_qupv3_wrap1_s6_clk_src",
1331 	.parent_data = gcc_parent_data_0,
1332 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1333 	.flags = CLK_SET_RATE_PARENT,
1334 	.ops = &clk_rcg2_ops,
1335 };
1336 
1337 static struct clk_rcg2 gcc_qupv3_wrap1_s6_clk_src = {
1338 	.cmd_rcgr = 0x18770,
1339 	.mnd_width = 16,
1340 	.hid_width = 5,
1341 	.parent_map = gcc_parent_map_0,
1342 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s4_clk_src,
1343 	.clkr.hw.init = &gcc_qupv3_wrap1_s6_clk_src_init,
1344 };
1345 
1346 static struct clk_init_data gcc_qupv3_wrap1_s7_clk_src_init = {
1347 	.name = "gcc_qupv3_wrap1_s7_clk_src",
1348 	.parent_data = gcc_parent_data_0,
1349 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1350 	.flags = CLK_SET_RATE_PARENT,
1351 	.ops = &clk_rcg2_ops,
1352 };
1353 
1354 static struct clk_rcg2 gcc_qupv3_wrap1_s7_clk_src = {
1355 	.cmd_rcgr = 0x188a8,
1356 	.mnd_width = 16,
1357 	.hid_width = 5,
1358 	.parent_map = gcc_parent_map_0,
1359 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s4_clk_src,
1360 	.clkr.hw.init = &gcc_qupv3_wrap1_s7_clk_src_init,
1361 };
1362 
1363 static struct clk_init_data gcc_qupv3_wrap2_s0_clk_src_init = {
1364 	.name = "gcc_qupv3_wrap2_s0_clk_src",
1365 	.parent_data = gcc_parent_data_0,
1366 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1367 	.flags = CLK_SET_RATE_PARENT,
1368 	.ops = &clk_rcg2_ops,
1369 };
1370 
1371 static struct clk_rcg2 gcc_qupv3_wrap2_s0_clk_src = {
1372 	.cmd_rcgr = 0x1e010,
1373 	.mnd_width = 16,
1374 	.hid_width = 5,
1375 	.parent_map = gcc_parent_map_0,
1376 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1377 	.clkr.hw.init = &gcc_qupv3_wrap2_s0_clk_src_init,
1378 };
1379 
1380 static struct clk_init_data gcc_qupv3_wrap2_s1_clk_src_init = {
1381 	.name = "gcc_qupv3_wrap2_s1_clk_src",
1382 	.parent_data = gcc_parent_data_0,
1383 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1384 	.flags = CLK_SET_RATE_PARENT,
1385 	.ops = &clk_rcg2_ops,
1386 };
1387 
1388 static struct clk_rcg2 gcc_qupv3_wrap2_s1_clk_src = {
1389 	.cmd_rcgr = 0x1e148,
1390 	.mnd_width = 16,
1391 	.hid_width = 5,
1392 	.parent_map = gcc_parent_map_0,
1393 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1394 	.clkr.hw.init = &gcc_qupv3_wrap2_s1_clk_src_init,
1395 };
1396 
1397 static struct clk_init_data gcc_qupv3_wrap2_s2_clk_src_init = {
1398 	.name = "gcc_qupv3_wrap2_s2_clk_src",
1399 	.parent_data = gcc_parent_data_0,
1400 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1401 	.flags = CLK_SET_RATE_PARENT,
1402 	.ops = &clk_rcg2_ops,
1403 };
1404 
1405 static struct clk_rcg2 gcc_qupv3_wrap2_s2_clk_src = {
1406 	.cmd_rcgr = 0x1e288,
1407 	.mnd_width = 16,
1408 	.hid_width = 5,
1409 	.parent_map = gcc_parent_map_0,
1410 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s2_clk_src,
1411 	.clkr.hw.init = &gcc_qupv3_wrap2_s2_clk_src_init,
1412 };
1413 
1414 static struct clk_init_data gcc_qupv3_wrap2_s3_clk_src_init = {
1415 	.name = "gcc_qupv3_wrap2_s3_clk_src",
1416 	.parent_data = gcc_parent_data_0,
1417 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1418 	.flags = CLK_SET_RATE_PARENT,
1419 	.ops = &clk_rcg2_ops,
1420 };
1421 
1422 static struct clk_rcg2 gcc_qupv3_wrap2_s3_clk_src = {
1423 	.cmd_rcgr = 0x1e3c8,
1424 	.mnd_width = 16,
1425 	.hid_width = 5,
1426 	.parent_map = gcc_parent_map_0,
1427 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s2_clk_src,
1428 	.clkr.hw.init = &gcc_qupv3_wrap2_s3_clk_src_init,
1429 };
1430 
1431 static struct clk_init_data gcc_qupv3_wrap2_s4_clk_src_init = {
1432 	.name = "gcc_qupv3_wrap2_s4_clk_src",
1433 	.parent_data = gcc_parent_data_0,
1434 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1435 	.flags = CLK_SET_RATE_PARENT,
1436 	.ops = &clk_rcg2_ops,
1437 };
1438 
1439 static struct clk_rcg2 gcc_qupv3_wrap2_s4_clk_src = {
1440 	.cmd_rcgr = 0x1e500,
1441 	.mnd_width = 16,
1442 	.hid_width = 5,
1443 	.parent_map = gcc_parent_map_0,
1444 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s4_clk_src,
1445 	.clkr.hw.init = &gcc_qupv3_wrap2_s4_clk_src_init,
1446 };
1447 
1448 static struct clk_init_data gcc_qupv3_wrap2_s5_clk_src_init = {
1449 	.name = "gcc_qupv3_wrap2_s5_clk_src",
1450 	.parent_data = gcc_parent_data_0,
1451 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1452 	.flags = CLK_SET_RATE_PARENT,
1453 	.ops = &clk_rcg2_ops,
1454 };
1455 
1456 static struct clk_rcg2 gcc_qupv3_wrap2_s5_clk_src = {
1457 	.cmd_rcgr = 0x1e638,
1458 	.mnd_width = 16,
1459 	.hid_width = 5,
1460 	.parent_map = gcc_parent_map_0,
1461 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s4_clk_src,
1462 	.clkr.hw.init = &gcc_qupv3_wrap2_s5_clk_src_init,
1463 };
1464 
1465 static struct clk_init_data gcc_qupv3_wrap2_s6_clk_src_init = {
1466 	.name = "gcc_qupv3_wrap2_s6_clk_src",
1467 	.parent_data = gcc_parent_data_8,
1468 	.num_parents = ARRAY_SIZE(gcc_parent_data_8),
1469 	.flags = CLK_SET_RATE_PARENT,
1470 	.ops = &clk_rcg2_ops,
1471 };
1472 
1473 static struct clk_rcg2 gcc_qupv3_wrap2_s6_clk_src = {
1474 	.cmd_rcgr = 0x1e770,
1475 	.mnd_width = 16,
1476 	.hid_width = 5,
1477 	.parent_map = gcc_parent_map_8,
1478 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s4_clk_src,
1479 	.clkr.hw.init = &gcc_qupv3_wrap2_s6_clk_src_init,
1480 };
1481 
1482 static struct clk_init_data gcc_qupv3_wrap2_s7_clk_src_init = {
1483 	.name = "gcc_qupv3_wrap2_s7_clk_src",
1484 	.parent_data = gcc_parent_data_0,
1485 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1486 	.flags = CLK_SET_RATE_PARENT,
1487 	.ops = &clk_rcg2_ops,
1488 };
1489 
1490 static struct clk_rcg2 gcc_qupv3_wrap2_s7_clk_src = {
1491 	.cmd_rcgr = 0x1e8a8,
1492 	.mnd_width = 16,
1493 	.hid_width = 5,
1494 	.parent_map = gcc_parent_map_0,
1495 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s4_clk_src,
1496 	.clkr.hw.init = &gcc_qupv3_wrap2_s7_clk_src_init,
1497 };
1498 
1499 static const struct freq_tbl ftbl_gcc_sdcc2_apps_clk_src[] = {
1500 	F(400000, P_BI_TCXO, 12, 1, 4),
1501 	F(25000000, P_GCC_GPLL0_OUT_EVEN, 12, 0, 0),
1502 	F(50000000, P_GCC_GPLL0_OUT_EVEN, 6, 0, 0),
1503 	F(100000000, P_GCC_GPLL0_OUT_EVEN, 3, 0, 0),
1504 	F(202000000, P_GCC_GPLL9_OUT_MAIN, 4, 0, 0),
1505 	{ }
1506 };
1507 
1508 static struct clk_rcg2 gcc_sdcc2_apps_clk_src = {
1509 	.cmd_rcgr = 0x14018,
1510 	.mnd_width = 8,
1511 	.hid_width = 5,
1512 	.parent_map = gcc_parent_map_9,
1513 	.freq_tbl = ftbl_gcc_sdcc2_apps_clk_src,
1514 	.clkr.hw.init = &(const struct clk_init_data) {
1515 		.name = "gcc_sdcc2_apps_clk_src",
1516 		.parent_data = gcc_parent_data_9,
1517 		.num_parents = ARRAY_SIZE(gcc_parent_data_9),
1518 		.flags = CLK_SET_RATE_PARENT,
1519 		.ops = &clk_rcg2_floor_ops,
1520 	},
1521 };
1522 
1523 static const struct freq_tbl ftbl_gcc_sdcc4_apps_clk_src[] = {
1524 	F(400000, P_BI_TCXO, 12, 1, 4),
1525 	F(25000000, P_GCC_GPLL0_OUT_EVEN, 12, 0, 0),
1526 	F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0),
1527 	{ }
1528 };
1529 
1530 static struct clk_rcg2 gcc_sdcc4_apps_clk_src = {
1531 	.cmd_rcgr = 0x16018,
1532 	.mnd_width = 8,
1533 	.hid_width = 5,
1534 	.parent_map = gcc_parent_map_0,
1535 	.freq_tbl = ftbl_gcc_sdcc4_apps_clk_src,
1536 	.clkr.hw.init = &(const struct clk_init_data) {
1537 		.name = "gcc_sdcc4_apps_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_floor_ops,
1542 	},
1543 };
1544 
1545 static const struct freq_tbl ftbl_gcc_ufs_phy_axi_clk_src[] = {
1546 	F(25000000, P_GCC_GPLL0_OUT_EVEN, 12, 0, 0),
1547 	F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0),
1548 	F(150000000, P_GCC_GPLL0_OUT_MAIN, 4, 0, 0),
1549 	F(300000000, P_GCC_GPLL0_OUT_MAIN, 2, 0, 0),
1550 	{ }
1551 };
1552 
1553 static struct clk_rcg2 gcc_ufs_phy_axi_clk_src = {
1554 	.cmd_rcgr = 0x77030,
1555 	.mnd_width = 8,
1556 	.hid_width = 5,
1557 	.parent_map = gcc_parent_map_0,
1558 	.freq_tbl = ftbl_gcc_ufs_phy_axi_clk_src,
1559 	.clkr.hw.init = &(const struct clk_init_data) {
1560 		.name = "gcc_ufs_phy_axi_clk_src",
1561 		.parent_data = gcc_parent_data_0,
1562 		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1563 		.flags = CLK_SET_RATE_PARENT,
1564 		.ops = &clk_rcg2_shared_ops,
1565 	},
1566 };
1567 
1568 static const struct freq_tbl ftbl_gcc_ufs_phy_ice_core_clk_src[] = {
1569 	F(100000000, P_GCC_GPLL0_OUT_EVEN, 3, 0, 0),
1570 	F(201500000, P_GCC_GPLL4_OUT_MAIN, 4, 0, 0),
1571 	F(403000000, P_GCC_GPLL4_OUT_MAIN, 2, 0, 0),
1572 	{ }
1573 };
1574 
1575 static struct clk_rcg2 gcc_ufs_phy_ice_core_clk_src = {
1576 	.cmd_rcgr = 0x77080,
1577 	.mnd_width = 0,
1578 	.hid_width = 5,
1579 	.parent_map = gcc_parent_map_7,
1580 	.freq_tbl = ftbl_gcc_ufs_phy_ice_core_clk_src,
1581 	.clkr.hw.init = &(const struct clk_init_data) {
1582 		.name = "gcc_ufs_phy_ice_core_clk_src",
1583 		.parent_data = gcc_parent_data_7,
1584 		.num_parents = ARRAY_SIZE(gcc_parent_data_7),
1585 		.flags = CLK_SET_RATE_PARENT,
1586 		.ops = &clk_rcg2_shared_ops,
1587 	},
1588 };
1589 
1590 static struct clk_rcg2 gcc_ufs_phy_phy_aux_clk_src = {
1591 	.cmd_rcgr = 0x770b4,
1592 	.mnd_width = 0,
1593 	.hid_width = 5,
1594 	.parent_map = gcc_parent_map_3,
1595 	.freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
1596 	.clkr.hw.init = &(const struct clk_init_data) {
1597 		.name = "gcc_ufs_phy_phy_aux_clk_src",
1598 		.parent_data = gcc_parent_data_3,
1599 		.num_parents = ARRAY_SIZE(gcc_parent_data_3),
1600 		.flags = CLK_SET_RATE_PARENT,
1601 		.ops = &clk_rcg2_shared_ops,
1602 	},
1603 };
1604 
1605 static const struct freq_tbl ftbl_gcc_ufs_phy_unipro_core_clk_src[] = {
1606 	F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0),
1607 	F(150000000, P_GCC_GPLL0_OUT_MAIN, 4, 0, 0),
1608 	F(300000000, P_GCC_GPLL0_OUT_MAIN, 2, 0, 0),
1609 	{ }
1610 };
1611 
1612 static struct clk_rcg2 gcc_ufs_phy_unipro_core_clk_src = {
1613 	.cmd_rcgr = 0x77098,
1614 	.mnd_width = 0,
1615 	.hid_width = 5,
1616 	.parent_map = gcc_parent_map_0,
1617 	.freq_tbl = ftbl_gcc_ufs_phy_unipro_core_clk_src,
1618 	.clkr.hw.init = &(const struct clk_init_data) {
1619 		.name = "gcc_ufs_phy_unipro_core_clk_src",
1620 		.parent_data = gcc_parent_data_0,
1621 		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1622 		.flags = CLK_SET_RATE_PARENT,
1623 		.ops = &clk_rcg2_shared_ops,
1624 	},
1625 };
1626 
1627 static const struct freq_tbl ftbl_gcc_usb20_master_clk_src[] = {
1628 	F(60000000, P_GCC_GPLL0_OUT_MAIN, 10, 0, 0),
1629 	F(120000000, P_GCC_GPLL0_OUT_MAIN, 5, 0, 0),
1630 	{ }
1631 };
1632 
1633 static struct clk_rcg2 gcc_usb20_master_clk_src = {
1634 	.cmd_rcgr = 0x2902c,
1635 	.mnd_width = 8,
1636 	.hid_width = 5,
1637 	.parent_map = gcc_parent_map_0,
1638 	.freq_tbl = ftbl_gcc_usb20_master_clk_src,
1639 	.clkr.hw.init = &(const struct clk_init_data) {
1640 		.name = "gcc_usb20_master_clk_src",
1641 		.parent_data = gcc_parent_data_0,
1642 		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1643 		.flags = CLK_SET_RATE_PARENT,
1644 		.ops = &clk_rcg2_shared_ops,
1645 	},
1646 };
1647 
1648 static struct clk_rcg2 gcc_usb20_mock_utmi_clk_src = {
1649 	.cmd_rcgr = 0x29158,
1650 	.mnd_width = 0,
1651 	.hid_width = 5,
1652 	.parent_map = gcc_parent_map_0,
1653 	.freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
1654 	.clkr.hw.init = &(const struct clk_init_data) {
1655 		.name = "gcc_usb20_mock_utmi_clk_src",
1656 		.parent_data = gcc_parent_data_0,
1657 		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1658 		.flags = CLK_SET_RATE_PARENT,
1659 		.ops = &clk_rcg2_shared_ops,
1660 	},
1661 };
1662 
1663 static const struct freq_tbl ftbl_gcc_usb30_mp_master_clk_src[] = {
1664 	F(66666667, P_GCC_GPLL0_OUT_EVEN, 4.5, 0, 0),
1665 	F(133333333, P_GCC_GPLL0_OUT_MAIN, 4.5, 0, 0),
1666 	F(200000000, P_GCC_GPLL0_OUT_MAIN, 3, 0, 0),
1667 	F(240000000, P_GCC_GPLL0_OUT_MAIN, 2.5, 0, 0),
1668 	{ }
1669 };
1670 
1671 static struct clk_rcg2 gcc_usb30_mp_master_clk_src = {
1672 	.cmd_rcgr = 0x1702c,
1673 	.mnd_width = 8,
1674 	.hid_width = 5,
1675 	.parent_map = gcc_parent_map_0,
1676 	.freq_tbl = ftbl_gcc_usb30_mp_master_clk_src,
1677 	.clkr.hw.init = &(const struct clk_init_data) {
1678 		.name = "gcc_usb30_mp_master_clk_src",
1679 		.parent_data = gcc_parent_data_0,
1680 		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1681 		.flags = CLK_SET_RATE_PARENT,
1682 		.ops = &clk_rcg2_shared_ops,
1683 	},
1684 };
1685 
1686 static struct clk_rcg2 gcc_usb30_mp_mock_utmi_clk_src = {
1687 	.cmd_rcgr = 0x17158,
1688 	.mnd_width = 0,
1689 	.hid_width = 5,
1690 	.parent_map = gcc_parent_map_0,
1691 	.freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
1692 	.clkr.hw.init = &(const struct clk_init_data) {
1693 		.name = "gcc_usb30_mp_mock_utmi_clk_src",
1694 		.parent_data = gcc_parent_data_0,
1695 		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1696 		.flags = CLK_SET_RATE_PARENT,
1697 		.ops = &clk_rcg2_shared_ops,
1698 	},
1699 };
1700 
1701 static struct clk_rcg2 gcc_usb30_prim_master_clk_src = {
1702 	.cmd_rcgr = 0x3902c,
1703 	.mnd_width = 8,
1704 	.hid_width = 5,
1705 	.parent_map = gcc_parent_map_0,
1706 	.freq_tbl = ftbl_gcc_usb30_mp_master_clk_src,
1707 	.clkr.hw.init = &(const struct clk_init_data) {
1708 		.name = "gcc_usb30_prim_master_clk_src",
1709 		.parent_data = gcc_parent_data_0,
1710 		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1711 		.flags = CLK_SET_RATE_PARENT,
1712 		.ops = &clk_rcg2_shared_ops,
1713 	},
1714 };
1715 
1716 static struct clk_rcg2 gcc_usb30_prim_mock_utmi_clk_src = {
1717 	.cmd_rcgr = 0x39044,
1718 	.mnd_width = 0,
1719 	.hid_width = 5,
1720 	.parent_map = gcc_parent_map_0,
1721 	.freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
1722 	.clkr.hw.init = &(const struct clk_init_data) {
1723 		.name = "gcc_usb30_prim_mock_utmi_clk_src",
1724 		.parent_data = gcc_parent_data_0,
1725 		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1726 		.flags = CLK_SET_RATE_PARENT,
1727 		.ops = &clk_rcg2_shared_ops,
1728 	},
1729 };
1730 
1731 static struct clk_rcg2 gcc_usb30_sec_master_clk_src = {
1732 	.cmd_rcgr = 0xa102c,
1733 	.mnd_width = 8,
1734 	.hid_width = 5,
1735 	.parent_map = gcc_parent_map_0,
1736 	.freq_tbl = ftbl_gcc_usb30_mp_master_clk_src,
1737 	.clkr.hw.init = &(const struct clk_init_data) {
1738 		.name = "gcc_usb30_sec_master_clk_src",
1739 		.parent_data = gcc_parent_data_0,
1740 		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1741 		.flags = CLK_SET_RATE_PARENT,
1742 		.ops = &clk_rcg2_shared_ops,
1743 	},
1744 };
1745 
1746 static struct clk_rcg2 gcc_usb30_sec_mock_utmi_clk_src = {
1747 	.cmd_rcgr = 0xa1044,
1748 	.mnd_width = 0,
1749 	.hid_width = 5,
1750 	.parent_map = gcc_parent_map_0,
1751 	.freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
1752 	.clkr.hw.init = &(const struct clk_init_data) {
1753 		.name = "gcc_usb30_sec_mock_utmi_clk_src",
1754 		.parent_data = gcc_parent_data_0,
1755 		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1756 		.flags = CLK_SET_RATE_PARENT,
1757 		.ops = &clk_rcg2_shared_ops,
1758 	},
1759 };
1760 
1761 static struct clk_rcg2 gcc_usb30_tert_master_clk_src = {
1762 	.cmd_rcgr = 0xa202c,
1763 	.mnd_width = 8,
1764 	.hid_width = 5,
1765 	.parent_map = gcc_parent_map_0,
1766 	.freq_tbl = ftbl_gcc_usb30_mp_master_clk_src,
1767 	.clkr.hw.init = &(const struct clk_init_data) {
1768 		.name = "gcc_usb30_tert_master_clk_src",
1769 		.parent_data = gcc_parent_data_0,
1770 		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1771 		.flags = CLK_SET_RATE_PARENT,
1772 		.ops = &clk_rcg2_shared_ops,
1773 	},
1774 };
1775 
1776 static struct clk_rcg2 gcc_usb30_tert_mock_utmi_clk_src = {
1777 	.cmd_rcgr = 0xa2044,
1778 	.mnd_width = 0,
1779 	.hid_width = 5,
1780 	.parent_map = gcc_parent_map_0,
1781 	.freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
1782 	.clkr.hw.init = &(const struct clk_init_data) {
1783 		.name = "gcc_usb30_tert_mock_utmi_clk_src",
1784 		.parent_data = gcc_parent_data_0,
1785 		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1786 		.flags = CLK_SET_RATE_PARENT,
1787 		.ops = &clk_rcg2_shared_ops,
1788 	},
1789 };
1790 
1791 static struct clk_rcg2 gcc_usb3_mp_phy_aux_clk_src = {
1792 	.cmd_rcgr = 0x172a0,
1793 	.mnd_width = 0,
1794 	.hid_width = 5,
1795 	.parent_map = gcc_parent_map_1,
1796 	.freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
1797 	.clkr.hw.init = &(const struct clk_init_data) {
1798 		.name = "gcc_usb3_mp_phy_aux_clk_src",
1799 		.parent_data = gcc_parent_data_1,
1800 		.num_parents = ARRAY_SIZE(gcc_parent_data_1),
1801 		.flags = CLK_SET_RATE_PARENT,
1802 		.ops = &clk_rcg2_shared_ops,
1803 	},
1804 };
1805 
1806 static struct clk_rcg2 gcc_usb3_prim_phy_aux_clk_src = {
1807 	.cmd_rcgr = 0x39074,
1808 	.mnd_width = 0,
1809 	.hid_width = 5,
1810 	.parent_map = gcc_parent_map_1,
1811 	.freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
1812 	.clkr.hw.init = &(const struct clk_init_data) {
1813 		.name = "gcc_usb3_prim_phy_aux_clk_src",
1814 		.parent_data = gcc_parent_data_1,
1815 		.num_parents = ARRAY_SIZE(gcc_parent_data_1),
1816 		.flags = CLK_SET_RATE_PARENT,
1817 		.ops = &clk_rcg2_shared_ops,
1818 	},
1819 };
1820 
1821 static struct clk_rcg2 gcc_usb3_sec_phy_aux_clk_src = {
1822 	.cmd_rcgr = 0xa1074,
1823 	.mnd_width = 0,
1824 	.hid_width = 5,
1825 	.parent_map = gcc_parent_map_1,
1826 	.freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
1827 	.clkr.hw.init = &(const struct clk_init_data) {
1828 		.name = "gcc_usb3_sec_phy_aux_clk_src",
1829 		.parent_data = gcc_parent_data_1,
1830 		.num_parents = ARRAY_SIZE(gcc_parent_data_1),
1831 		.flags = CLK_SET_RATE_PARENT,
1832 		.ops = &clk_rcg2_shared_ops,
1833 	},
1834 };
1835 
1836 static struct clk_rcg2 gcc_usb3_tert_phy_aux_clk_src = {
1837 	.cmd_rcgr = 0xa2074,
1838 	.mnd_width = 0,
1839 	.hid_width = 5,
1840 	.parent_map = gcc_parent_map_1,
1841 	.freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
1842 	.clkr.hw.init = &(const struct clk_init_data) {
1843 		.name = "gcc_usb3_tert_phy_aux_clk_src",
1844 		.parent_data = gcc_parent_data_1,
1845 		.num_parents = ARRAY_SIZE(gcc_parent_data_1),
1846 		.flags = CLK_SET_RATE_PARENT,
1847 		.ops = &clk_rcg2_shared_ops,
1848 	},
1849 };
1850 
1851 static const struct freq_tbl ftbl_gcc_usb4_0_master_clk_src[] = {
1852 	F(175000000, P_GCC_GPLL8_OUT_MAIN, 4, 0, 0),
1853 	F(350000000, P_GCC_GPLL8_OUT_MAIN, 2, 0, 0),
1854 	{ }
1855 };
1856 
1857 static struct clk_rcg2 gcc_usb4_0_master_clk_src = {
1858 	.cmd_rcgr = 0x9f024,
1859 	.mnd_width = 8,
1860 	.hid_width = 5,
1861 	.parent_map = gcc_parent_map_4,
1862 	.freq_tbl = ftbl_gcc_usb4_0_master_clk_src,
1863 	.clkr.hw.init = &(const struct clk_init_data) {
1864 		.name = "gcc_usb4_0_master_clk_src",
1865 		.parent_data = gcc_parent_data_4,
1866 		.num_parents = ARRAY_SIZE(gcc_parent_data_4),
1867 		.flags = CLK_SET_RATE_PARENT,
1868 		.ops = &clk_rcg2_shared_ops,
1869 	},
1870 };
1871 
1872 static const struct freq_tbl ftbl_gcc_usb4_0_phy_pcie_pipe_clk_src[] = {
1873 	F(19200000, P_BI_TCXO, 1, 0, 0),
1874 	F(125000000, P_GCC_GPLL7_OUT_MAIN, 8, 0, 0),
1875 	F(250000000, P_GCC_GPLL7_OUT_MAIN, 4, 0, 0),
1876 	{ }
1877 };
1878 
1879 static struct clk_rcg2 gcc_usb4_0_phy_pcie_pipe_clk_src = {
1880 	.cmd_rcgr = 0x9f0e8,
1881 	.mnd_width = 0,
1882 	.hid_width = 5,
1883 	.parent_map = gcc_parent_map_5,
1884 	.freq_tbl = ftbl_gcc_usb4_0_phy_pcie_pipe_clk_src,
1885 	.clkr.hw.init = &(const struct clk_init_data) {
1886 		.name = "gcc_usb4_0_phy_pcie_pipe_clk_src",
1887 		.parent_data = gcc_parent_data_5,
1888 		.num_parents = ARRAY_SIZE(gcc_parent_data_5),
1889 		.flags = CLK_SET_RATE_PARENT,
1890 		.ops = &clk_rcg2_shared_ops,
1891 	},
1892 };
1893 
1894 static struct clk_rcg2 gcc_usb4_0_sb_if_clk_src = {
1895 	.cmd_rcgr = 0x9f08c,
1896 	.mnd_width = 0,
1897 	.hid_width = 5,
1898 	.parent_map = gcc_parent_map_3,
1899 	.freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
1900 	.clkr.hw.init = &(const struct clk_init_data) {
1901 		.name = "gcc_usb4_0_sb_if_clk_src",
1902 		.parent_data = gcc_parent_data_3,
1903 		.num_parents = ARRAY_SIZE(gcc_parent_data_3),
1904 		.flags = CLK_SET_RATE_PARENT,
1905 		.ops = &clk_rcg2_shared_ops,
1906 	},
1907 };
1908 
1909 static const struct freq_tbl ftbl_gcc_usb4_0_tmu_clk_src[] = {
1910 	F(19200000, P_BI_TCXO, 1, 0, 0),
1911 	F(250000000, P_GCC_GPLL7_OUT_MAIN, 4, 0, 0),
1912 	{ }
1913 };
1914 
1915 static struct clk_rcg2 gcc_usb4_0_tmu_clk_src = {
1916 	.cmd_rcgr = 0x9f070,
1917 	.mnd_width = 0,
1918 	.hid_width = 5,
1919 	.parent_map = gcc_parent_map_6,
1920 	.freq_tbl = ftbl_gcc_usb4_0_tmu_clk_src,
1921 	.clkr.hw.init = &(const struct clk_init_data) {
1922 		.name = "gcc_usb4_0_tmu_clk_src",
1923 		.parent_data = gcc_parent_data_6,
1924 		.num_parents = ARRAY_SIZE(gcc_parent_data_6),
1925 		.flags = CLK_SET_RATE_PARENT,
1926 		.ops = &clk_rcg2_shared_ops,
1927 	},
1928 };
1929 
1930 static struct clk_rcg2 gcc_usb4_1_master_clk_src = {
1931 	.cmd_rcgr = 0x2b024,
1932 	.mnd_width = 8,
1933 	.hid_width = 5,
1934 	.parent_map = gcc_parent_map_4,
1935 	.freq_tbl = ftbl_gcc_usb4_0_master_clk_src,
1936 	.clkr.hw.init = &(const struct clk_init_data) {
1937 		.name = "gcc_usb4_1_master_clk_src",
1938 		.parent_data = gcc_parent_data_4,
1939 		.num_parents = ARRAY_SIZE(gcc_parent_data_4),
1940 		.flags = CLK_SET_RATE_PARENT,
1941 		.ops = &clk_rcg2_shared_ops,
1942 	},
1943 };
1944 
1945 static struct clk_rcg2 gcc_usb4_1_phy_pcie_pipe_clk_src = {
1946 	.cmd_rcgr = 0x2b0e8,
1947 	.mnd_width = 0,
1948 	.hid_width = 5,
1949 	.parent_map = gcc_parent_map_5,
1950 	.freq_tbl = ftbl_gcc_usb4_0_phy_pcie_pipe_clk_src,
1951 	.clkr.hw.init = &(const struct clk_init_data) {
1952 		.name = "gcc_usb4_1_phy_pcie_pipe_clk_src",
1953 		.parent_data = gcc_parent_data_5,
1954 		.num_parents = ARRAY_SIZE(gcc_parent_data_5),
1955 		.flags = CLK_SET_RATE_PARENT,
1956 		.ops = &clk_rcg2_shared_ops,
1957 	},
1958 };
1959 
1960 static struct clk_rcg2 gcc_usb4_1_sb_if_clk_src = {
1961 	.cmd_rcgr = 0x2b08c,
1962 	.mnd_width = 0,
1963 	.hid_width = 5,
1964 	.parent_map = gcc_parent_map_3,
1965 	.freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
1966 	.clkr.hw.init = &(const struct clk_init_data) {
1967 		.name = "gcc_usb4_1_sb_if_clk_src",
1968 		.parent_data = gcc_parent_data_3,
1969 		.num_parents = ARRAY_SIZE(gcc_parent_data_3),
1970 		.flags = CLK_SET_RATE_PARENT,
1971 		.ops = &clk_rcg2_shared_ops,
1972 	},
1973 };
1974 
1975 static struct clk_rcg2 gcc_usb4_1_tmu_clk_src = {
1976 	.cmd_rcgr = 0x2b070,
1977 	.mnd_width = 0,
1978 	.hid_width = 5,
1979 	.parent_map = gcc_parent_map_6,
1980 	.freq_tbl = ftbl_gcc_usb4_0_tmu_clk_src,
1981 	.clkr.hw.init = &(const struct clk_init_data) {
1982 		.name = "gcc_usb4_1_tmu_clk_src",
1983 		.parent_data = gcc_parent_data_6,
1984 		.num_parents = ARRAY_SIZE(gcc_parent_data_6),
1985 		.flags = CLK_SET_RATE_PARENT,
1986 		.ops = &clk_rcg2_shared_ops,
1987 	},
1988 };
1989 
1990 static struct clk_rcg2 gcc_usb4_2_master_clk_src = {
1991 	.cmd_rcgr = 0x11024,
1992 	.mnd_width = 8,
1993 	.hid_width = 5,
1994 	.parent_map = gcc_parent_map_4,
1995 	.freq_tbl = ftbl_gcc_usb4_0_master_clk_src,
1996 	.clkr.hw.init = &(const struct clk_init_data) {
1997 		.name = "gcc_usb4_2_master_clk_src",
1998 		.parent_data = gcc_parent_data_4,
1999 		.num_parents = ARRAY_SIZE(gcc_parent_data_4),
2000 		.flags = CLK_SET_RATE_PARENT,
2001 		.ops = &clk_rcg2_shared_ops,
2002 	},
2003 };
2004 
2005 static struct clk_rcg2 gcc_usb4_2_phy_pcie_pipe_clk_src = {
2006 	.cmd_rcgr = 0x110e8,
2007 	.mnd_width = 0,
2008 	.hid_width = 5,
2009 	.parent_map = gcc_parent_map_5,
2010 	.freq_tbl = ftbl_gcc_usb4_0_phy_pcie_pipe_clk_src,
2011 	.clkr.hw.init = &(const struct clk_init_data) {
2012 		.name = "gcc_usb4_2_phy_pcie_pipe_clk_src",
2013 		.parent_data = gcc_parent_data_5,
2014 		.num_parents = ARRAY_SIZE(gcc_parent_data_5),
2015 		.flags = CLK_SET_RATE_PARENT,
2016 		.ops = &clk_rcg2_shared_ops,
2017 	},
2018 };
2019 
2020 static struct clk_rcg2 gcc_usb4_2_sb_if_clk_src = {
2021 	.cmd_rcgr = 0x1108c,
2022 	.mnd_width = 0,
2023 	.hid_width = 5,
2024 	.parent_map = gcc_parent_map_3,
2025 	.freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
2026 	.clkr.hw.init = &(const struct clk_init_data) {
2027 		.name = "gcc_usb4_2_sb_if_clk_src",
2028 		.parent_data = gcc_parent_data_3,
2029 		.num_parents = ARRAY_SIZE(gcc_parent_data_3),
2030 		.flags = CLK_SET_RATE_PARENT,
2031 		.ops = &clk_rcg2_shared_ops,
2032 	},
2033 };
2034 
2035 static struct clk_rcg2 gcc_usb4_2_tmu_clk_src = {
2036 	.cmd_rcgr = 0x11070,
2037 	.mnd_width = 0,
2038 	.hid_width = 5,
2039 	.parent_map = gcc_parent_map_6,
2040 	.freq_tbl = ftbl_gcc_usb4_0_tmu_clk_src,
2041 	.clkr.hw.init = &(const struct clk_init_data) {
2042 		.name = "gcc_usb4_2_tmu_clk_src",
2043 		.parent_data = gcc_parent_data_6,
2044 		.num_parents = ARRAY_SIZE(gcc_parent_data_6),
2045 		.flags = CLK_SET_RATE_PARENT,
2046 		.ops = &clk_rcg2_shared_ops,
2047 	},
2048 };
2049 
2050 static struct clk_regmap_phy_mux gcc_pcie_3_pipe_clk_src = {
2051 	.reg = 0x58088,
2052 	.clkr = {
2053 		.hw.init = &(struct clk_init_data){
2054 			.name = "gcc_pcie_3_pipe_clk_src",
2055 			.parent_data = &(const struct clk_parent_data){
2056 				.index = DT_PCIE_3_PIPE,
2057 			},
2058 			.num_parents = 1,
2059 			.ops = &clk_regmap_phy_mux_ops,
2060 		},
2061 	},
2062 };
2063 
2064 static struct clk_regmap_div gcc_pcie_3_pipe_div_clk_src = {
2065 	.reg = 0x5806c,
2066 	.shift = 0,
2067 	.width = 4,
2068 	.clkr.hw.init = &(const struct clk_init_data) {
2069 		.name = "gcc_pcie_3_pipe_div_clk_src",
2070 		.parent_hws = (const struct clk_hw*[]) {
2071 			&gcc_pcie_3_pipe_clk_src.clkr.hw,
2072 		},
2073 		.num_parents = 1,
2074 		.ops = &clk_regmap_div_ro_ops,
2075 	},
2076 };
2077 
2078 static struct clk_regmap_phy_mux gcc_pcie_4_pipe_clk_src = {
2079 	.reg = 0x6b07c,
2080 	.clkr = {
2081 		.hw.init = &(struct clk_init_data){
2082 			.name = "gcc_pcie_4_pipe_clk_src",
2083 			.parent_data = &(const struct clk_parent_data){
2084 				.index = DT_PCIE_4_PIPE,
2085 			},
2086 			.num_parents = 1,
2087 			.ops = &clk_regmap_phy_mux_ops,
2088 		},
2089 	},
2090 };
2091 
2092 static struct clk_regmap_div gcc_pcie_4_pipe_div_clk_src = {
2093 	.reg = 0x6b060,
2094 	.shift = 0,
2095 	.width = 4,
2096 	.clkr.hw.init = &(const struct clk_init_data) {
2097 		.name = "gcc_pcie_4_pipe_div_clk_src",
2098 		.parent_hws = (const struct clk_hw*[]) {
2099 			&gcc_pcie_4_pipe_clk_src.clkr.hw,
2100 		},
2101 		.num_parents = 1,
2102 		.ops = &clk_regmap_div_ro_ops,
2103 	},
2104 };
2105 
2106 static struct clk_regmap_phy_mux gcc_pcie_5_pipe_clk_src = {
2107 	.reg = 0x2f07c,
2108 	.clkr = {
2109 		.hw.init = &(struct clk_init_data){
2110 			.name = "gcc_pcie_5_pipe_clk_src",
2111 			.parent_data = &(const struct clk_parent_data){
2112 				.index = DT_PCIE_5_PIPE,
2113 			},
2114 			.num_parents = 1,
2115 			.ops = &clk_regmap_phy_mux_ops,
2116 		},
2117 	},
2118 };
2119 
2120 static struct clk_regmap_div gcc_pcie_5_pipe_div_clk_src = {
2121 	.reg = 0x2f060,
2122 	.shift = 0,
2123 	.width = 4,
2124 	.clkr.hw.init = &(const struct clk_init_data) {
2125 		.name = "gcc_pcie_5_pipe_div_clk_src",
2126 		.parent_hws = (const struct clk_hw*[]) {
2127 			&gcc_pcie_5_pipe_clk_src.clkr.hw,
2128 		},
2129 		.num_parents = 1,
2130 		.ops = &clk_regmap_div_ro_ops,
2131 	},
2132 };
2133 
2134 static struct clk_regmap_phy_mux gcc_pcie_6a_pipe_clk_src = {
2135 	.reg = 0x31088,
2136 	.clkr = {
2137 		.hw.init = &(struct clk_init_data){
2138 			.name = "gcc_pcie_6a_pipe_clk_src",
2139 			.parent_data = &(const struct clk_parent_data){
2140 				.index = DT_PCIE_6A_PIPE,
2141 			},
2142 			.num_parents = 1,
2143 			.ops = &clk_regmap_phy_mux_ops,
2144 		},
2145 	},
2146 };
2147 
2148 static struct clk_regmap_div gcc_pcie_6a_pipe_div_clk_src = {
2149 	.reg = 0x3106c,
2150 	.shift = 0,
2151 	.width = 4,
2152 	.clkr.hw.init = &(const struct clk_init_data) {
2153 		.name = "gcc_pcie_6a_pipe_div_clk_src",
2154 		.parent_hws = (const struct clk_hw*[]) {
2155 			&gcc_pcie_6a_pipe_clk_src.clkr.hw,
2156 		},
2157 		.num_parents = 1,
2158 		.ops = &clk_regmap_div_ro_ops,
2159 	},
2160 };
2161 
2162 static struct clk_regmap_phy_mux gcc_pcie_6b_pipe_clk_src = {
2163 	.reg = 0x8d088,
2164 	.clkr = {
2165 		.hw.init = &(struct clk_init_data){
2166 			.name = "gcc_pcie_6b_pipe_clk_src",
2167 			.parent_data = &(const struct clk_parent_data){
2168 				.index = DT_PCIE_6B_PIPE,
2169 			},
2170 			.num_parents = 1,
2171 			.ops = &clk_regmap_phy_mux_ops,
2172 		},
2173 	},
2174 };
2175 
2176 static struct clk_regmap_div gcc_pcie_6b_pipe_div_clk_src = {
2177 	.reg = 0x8d06c,
2178 	.shift = 0,
2179 	.width = 4,
2180 	.clkr.hw.init = &(const struct clk_init_data) {
2181 		.name = "gcc_pcie_6b_pipe_div_clk_src",
2182 		.parent_hws = (const struct clk_hw*[]) {
2183 			&gcc_pcie_6b_pipe_clk_src.clkr.hw,
2184 		},
2185 		.num_parents = 1,
2186 		.ops = &clk_regmap_div_ro_ops,
2187 	},
2188 };
2189 
2190 static struct clk_regmap_div gcc_qupv3_wrap0_s2_div_clk_src = {
2191 	.reg = 0x42284,
2192 	.shift = 0,
2193 	.width = 4,
2194 	.clkr.hw.init = &(const struct clk_init_data) {
2195 		.name = "gcc_qupv3_wrap0_s2_div_clk_src",
2196 		.parent_hws = (const struct clk_hw*[]) {
2197 			&gcc_qupv3_wrap0_s2_clk_src.clkr.hw,
2198 		},
2199 		.num_parents = 1,
2200 		.flags = CLK_SET_RATE_PARENT,
2201 		.ops = &clk_regmap_div_ro_ops,
2202 	},
2203 };
2204 
2205 static struct clk_regmap_div gcc_qupv3_wrap0_s3_div_clk_src = {
2206 	.reg = 0x423c4,
2207 	.shift = 0,
2208 	.width = 4,
2209 	.clkr.hw.init = &(const struct clk_init_data) {
2210 		.name = "gcc_qupv3_wrap0_s3_div_clk_src",
2211 		.parent_hws = (const struct clk_hw*[]) {
2212 			&gcc_qupv3_wrap0_s3_clk_src.clkr.hw,
2213 		},
2214 		.num_parents = 1,
2215 		.flags = CLK_SET_RATE_PARENT,
2216 		.ops = &clk_regmap_div_ro_ops,
2217 	},
2218 };
2219 
2220 static struct clk_regmap_div gcc_qupv3_wrap1_s2_div_clk_src = {
2221 	.reg = 0x18284,
2222 	.shift = 0,
2223 	.width = 4,
2224 	.clkr.hw.init = &(const struct clk_init_data) {
2225 		.name = "gcc_qupv3_wrap1_s2_div_clk_src",
2226 		.parent_hws = (const struct clk_hw*[]) {
2227 			&gcc_qupv3_wrap1_s2_clk_src.clkr.hw,
2228 		},
2229 		.num_parents = 1,
2230 		.flags = CLK_SET_RATE_PARENT,
2231 		.ops = &clk_regmap_div_ro_ops,
2232 	},
2233 };
2234 
2235 static struct clk_regmap_div gcc_qupv3_wrap1_s3_div_clk_src = {
2236 	.reg = 0x183c4,
2237 	.shift = 0,
2238 	.width = 4,
2239 	.clkr.hw.init = &(const struct clk_init_data) {
2240 		.name = "gcc_qupv3_wrap1_s3_div_clk_src",
2241 		.parent_hws = (const struct clk_hw*[]) {
2242 			&gcc_qupv3_wrap1_s3_clk_src.clkr.hw,
2243 		},
2244 		.num_parents = 1,
2245 		.flags = CLK_SET_RATE_PARENT,
2246 		.ops = &clk_regmap_div_ro_ops,
2247 	},
2248 };
2249 
2250 static struct clk_regmap_div gcc_qupv3_wrap2_s2_div_clk_src = {
2251 	.reg = 0x1e284,
2252 	.shift = 0,
2253 	.width = 4,
2254 	.clkr.hw.init = &(const struct clk_init_data) {
2255 		.name = "gcc_qupv3_wrap2_s2_div_clk_src",
2256 		.parent_hws = (const struct clk_hw*[]) {
2257 			&gcc_qupv3_wrap2_s2_clk_src.clkr.hw,
2258 		},
2259 		.num_parents = 1,
2260 		.flags = CLK_SET_RATE_PARENT,
2261 		.ops = &clk_regmap_div_ro_ops,
2262 	},
2263 };
2264 
2265 static struct clk_regmap_div gcc_qupv3_wrap2_s3_div_clk_src = {
2266 	.reg = 0x1e3c4,
2267 	.shift = 0,
2268 	.width = 4,
2269 	.clkr.hw.init = &(const struct clk_init_data) {
2270 		.name = "gcc_qupv3_wrap2_s3_div_clk_src",
2271 		.parent_hws = (const struct clk_hw*[]) {
2272 			&gcc_qupv3_wrap2_s3_clk_src.clkr.hw,
2273 		},
2274 		.num_parents = 1,
2275 		.flags = CLK_SET_RATE_PARENT,
2276 		.ops = &clk_regmap_div_ro_ops,
2277 	},
2278 };
2279 
2280 static struct clk_regmap_div gcc_usb20_mock_utmi_postdiv_clk_src = {
2281 	.reg = 0x29284,
2282 	.shift = 0,
2283 	.width = 4,
2284 	.clkr.hw.init = &(const struct clk_init_data) {
2285 		.name = "gcc_usb20_mock_utmi_postdiv_clk_src",
2286 		.parent_hws = (const struct clk_hw*[]) {
2287 			&gcc_usb20_mock_utmi_clk_src.clkr.hw,
2288 		},
2289 		.num_parents = 1,
2290 		.flags = CLK_SET_RATE_PARENT,
2291 		.ops = &clk_regmap_div_ro_ops,
2292 	},
2293 };
2294 
2295 static struct clk_regmap_div gcc_usb30_mp_mock_utmi_postdiv_clk_src = {
2296 	.reg = 0x17284,
2297 	.shift = 0,
2298 	.width = 4,
2299 	.clkr.hw.init = &(const struct clk_init_data) {
2300 		.name = "gcc_usb30_mp_mock_utmi_postdiv_clk_src",
2301 		.parent_hws = (const struct clk_hw*[]) {
2302 			&gcc_usb30_mp_mock_utmi_clk_src.clkr.hw,
2303 		},
2304 		.num_parents = 1,
2305 		.flags = CLK_SET_RATE_PARENT,
2306 		.ops = &clk_regmap_div_ro_ops,
2307 	},
2308 };
2309 
2310 static struct clk_regmap_div gcc_usb30_prim_mock_utmi_postdiv_clk_src = {
2311 	.reg = 0x3905c,
2312 	.shift = 0,
2313 	.width = 4,
2314 	.clkr.hw.init = &(const struct clk_init_data) {
2315 		.name = "gcc_usb30_prim_mock_utmi_postdiv_clk_src",
2316 		.parent_hws = (const struct clk_hw*[]) {
2317 			&gcc_usb30_prim_mock_utmi_clk_src.clkr.hw,
2318 		},
2319 		.num_parents = 1,
2320 		.flags = CLK_SET_RATE_PARENT,
2321 		.ops = &clk_regmap_div_ro_ops,
2322 	},
2323 };
2324 
2325 static struct clk_regmap_div gcc_usb30_sec_mock_utmi_postdiv_clk_src = {
2326 	.reg = 0xa105c,
2327 	.shift = 0,
2328 	.width = 4,
2329 	.clkr.hw.init = &(const struct clk_init_data) {
2330 		.name = "gcc_usb30_sec_mock_utmi_postdiv_clk_src",
2331 		.parent_hws = (const struct clk_hw*[]) {
2332 			&gcc_usb30_sec_mock_utmi_clk_src.clkr.hw,
2333 		},
2334 		.num_parents = 1,
2335 		.flags = CLK_SET_RATE_PARENT,
2336 		.ops = &clk_regmap_div_ro_ops,
2337 	},
2338 };
2339 
2340 static struct clk_regmap_div gcc_usb30_tert_mock_utmi_postdiv_clk_src = {
2341 	.reg = 0xa205c,
2342 	.shift = 0,
2343 	.width = 4,
2344 	.clkr.hw.init = &(const struct clk_init_data) {
2345 		.name = "gcc_usb30_tert_mock_utmi_postdiv_clk_src",
2346 		.parent_hws = (const struct clk_hw*[]) {
2347 			&gcc_usb30_tert_mock_utmi_clk_src.clkr.hw,
2348 		},
2349 		.num_parents = 1,
2350 		.flags = CLK_SET_RATE_PARENT,
2351 		.ops = &clk_regmap_div_ro_ops,
2352 	},
2353 };
2354 
2355 static struct clk_branch gcc_aggre_noc_usb_north_axi_clk = {
2356 	.halt_reg = 0x2d17c,
2357 	.halt_check = BRANCH_HALT_VOTED,
2358 	.hwcg_reg = 0x2d17c,
2359 	.hwcg_bit = 1,
2360 	.clkr = {
2361 		.enable_reg = 0x2d17c,
2362 		.enable_mask = BIT(0),
2363 		.hw.init = &(const struct clk_init_data) {
2364 			.name = "gcc_aggre_noc_usb_north_axi_clk",
2365 			.ops = &clk_branch2_ops,
2366 		},
2367 	},
2368 };
2369 
2370 static struct clk_branch gcc_aggre_noc_usb_south_axi_clk = {
2371 	.halt_reg = 0x2d174,
2372 	.halt_check = BRANCH_HALT_VOTED,
2373 	.hwcg_reg = 0x2d174,
2374 	.hwcg_bit = 1,
2375 	.clkr = {
2376 		.enable_reg = 0x2d174,
2377 		.enable_mask = BIT(0),
2378 		.hw.init = &(const struct clk_init_data) {
2379 			.name = "gcc_aggre_noc_usb_south_axi_clk",
2380 			.ops = &clk_branch2_ops,
2381 		},
2382 	},
2383 };
2384 
2385 static struct clk_branch gcc_aggre_ufs_phy_axi_clk = {
2386 	.halt_reg = 0x770e4,
2387 	.halt_check = BRANCH_HALT_VOTED,
2388 	.hwcg_reg = 0x770e4,
2389 	.hwcg_bit = 1,
2390 	.clkr = {
2391 		.enable_reg = 0x770e4,
2392 		.enable_mask = BIT(0),
2393 		.hw.init = &(const struct clk_init_data) {
2394 			.name = "gcc_aggre_ufs_phy_axi_clk",
2395 			.parent_hws = (const struct clk_hw*[]) {
2396 				&gcc_ufs_phy_axi_clk_src.clkr.hw,
2397 			},
2398 			.num_parents = 1,
2399 			.flags = CLK_SET_RATE_PARENT,
2400 			.ops = &clk_branch2_ops,
2401 		},
2402 	},
2403 };
2404 
2405 static struct clk_branch gcc_aggre_usb2_prim_axi_clk = {
2406 	.halt_reg = 0x2928c,
2407 	.halt_check = BRANCH_HALT_VOTED,
2408 	.hwcg_reg = 0x2928c,
2409 	.hwcg_bit = 1,
2410 	.clkr = {
2411 		.enable_reg = 0x2928c,
2412 		.enable_mask = BIT(0),
2413 		.hw.init = &(const struct clk_init_data) {
2414 			.name = "gcc_aggre_usb2_prim_axi_clk",
2415 			.parent_hws = (const struct clk_hw*[]) {
2416 				&gcc_usb20_master_clk_src.clkr.hw,
2417 			},
2418 			.num_parents = 1,
2419 			.flags = CLK_SET_RATE_PARENT,
2420 			.ops = &clk_branch2_ops,
2421 		},
2422 	},
2423 };
2424 
2425 static struct clk_branch gcc_aggre_usb3_mp_axi_clk = {
2426 	.halt_reg = 0x173d0,
2427 	.halt_check = BRANCH_HALT_VOTED,
2428 	.hwcg_reg = 0x173d0,
2429 	.hwcg_bit = 1,
2430 	.clkr = {
2431 		.enable_reg = 0x173d0,
2432 		.enable_mask = BIT(0),
2433 		.hw.init = &(const struct clk_init_data) {
2434 			.name = "gcc_aggre_usb3_mp_axi_clk",
2435 			.parent_hws = (const struct clk_hw*[]) {
2436 				&gcc_usb30_mp_master_clk_src.clkr.hw,
2437 			},
2438 			.num_parents = 1,
2439 			.flags = CLK_SET_RATE_PARENT,
2440 			.ops = &clk_branch2_ops,
2441 		},
2442 	},
2443 };
2444 
2445 static struct clk_branch gcc_aggre_usb3_prim_axi_clk = {
2446 	.halt_reg = 0x39090,
2447 	.halt_check = BRANCH_HALT_VOTED,
2448 	.hwcg_reg = 0x39090,
2449 	.hwcg_bit = 1,
2450 	.clkr = {
2451 		.enable_reg = 0x39090,
2452 		.enable_mask = BIT(0),
2453 		.hw.init = &(const struct clk_init_data) {
2454 			.name = "gcc_aggre_usb3_prim_axi_clk",
2455 			.parent_hws = (const struct clk_hw*[]) {
2456 				&gcc_usb30_prim_master_clk_src.clkr.hw,
2457 			},
2458 			.num_parents = 1,
2459 			.flags = CLK_SET_RATE_PARENT,
2460 			.ops = &clk_branch2_ops,
2461 		},
2462 	},
2463 };
2464 
2465 static struct clk_branch gcc_aggre_usb3_sec_axi_clk = {
2466 	.halt_reg = 0xa1090,
2467 	.halt_check = BRANCH_HALT_VOTED,
2468 	.hwcg_reg = 0xa1090,
2469 	.hwcg_bit = 1,
2470 	.clkr = {
2471 		.enable_reg = 0xa1090,
2472 		.enable_mask = BIT(0),
2473 		.hw.init = &(const struct clk_init_data) {
2474 			.name = "gcc_aggre_usb3_sec_axi_clk",
2475 			.parent_hws = (const struct clk_hw*[]) {
2476 				&gcc_usb30_sec_master_clk_src.clkr.hw,
2477 			},
2478 			.num_parents = 1,
2479 			.flags = CLK_SET_RATE_PARENT,
2480 			.ops = &clk_branch2_ops,
2481 		},
2482 	},
2483 };
2484 
2485 static struct clk_branch gcc_aggre_usb3_tert_axi_clk = {
2486 	.halt_reg = 0xa2090,
2487 	.halt_check = BRANCH_HALT_VOTED,
2488 	.hwcg_reg = 0xa2090,
2489 	.hwcg_bit = 1,
2490 	.clkr = {
2491 		.enable_reg = 0xa2090,
2492 		.enable_mask = BIT(0),
2493 		.hw.init = &(const struct clk_init_data) {
2494 			.name = "gcc_aggre_usb3_tert_axi_clk",
2495 			.parent_hws = (const struct clk_hw*[]) {
2496 				&gcc_usb30_tert_master_clk_src.clkr.hw,
2497 			},
2498 			.num_parents = 1,
2499 			.flags = CLK_SET_RATE_PARENT,
2500 			.ops = &clk_branch2_ops,
2501 		},
2502 	},
2503 };
2504 
2505 static struct clk_branch gcc_aggre_usb4_0_axi_clk = {
2506 	.halt_reg = 0x9f118,
2507 	.halt_check = BRANCH_HALT_VOTED,
2508 	.hwcg_reg = 0x9f118,
2509 	.hwcg_bit = 1,
2510 	.clkr = {
2511 		.enable_reg = 0x9f118,
2512 		.enable_mask = BIT(0),
2513 		.hw.init = &(const struct clk_init_data) {
2514 			.name = "gcc_aggre_usb4_0_axi_clk",
2515 			.parent_hws = (const struct clk_hw*[]) {
2516 				&gcc_usb4_0_master_clk_src.clkr.hw,
2517 			},
2518 			.num_parents = 1,
2519 			.flags = CLK_SET_RATE_PARENT,
2520 			.ops = &clk_branch2_ops,
2521 		},
2522 	},
2523 };
2524 
2525 static struct clk_branch gcc_aggre_usb4_1_axi_clk = {
2526 	.halt_reg = 0x2b118,
2527 	.halt_check = BRANCH_HALT_VOTED,
2528 	.hwcg_reg = 0x2b118,
2529 	.hwcg_bit = 1,
2530 	.clkr = {
2531 		.enable_reg = 0x2b118,
2532 		.enable_mask = BIT(0),
2533 		.hw.init = &(const struct clk_init_data) {
2534 			.name = "gcc_aggre_usb4_1_axi_clk",
2535 			.parent_hws = (const struct clk_hw*[]) {
2536 				&gcc_usb4_1_master_clk_src.clkr.hw,
2537 			},
2538 			.num_parents = 1,
2539 			.flags = CLK_SET_RATE_PARENT,
2540 			.ops = &clk_branch2_ops,
2541 		},
2542 	},
2543 };
2544 
2545 static struct clk_branch gcc_aggre_usb4_2_axi_clk = {
2546 	.halt_reg = 0x11118,
2547 	.halt_check = BRANCH_HALT_VOTED,
2548 	.hwcg_reg = 0x11118,
2549 	.hwcg_bit = 1,
2550 	.clkr = {
2551 		.enable_reg = 0x11118,
2552 		.enable_mask = BIT(0),
2553 		.hw.init = &(const struct clk_init_data) {
2554 			.name = "gcc_aggre_usb4_2_axi_clk",
2555 			.parent_hws = (const struct clk_hw*[]) {
2556 				&gcc_usb4_2_master_clk_src.clkr.hw,
2557 			},
2558 			.num_parents = 1,
2559 			.flags = CLK_SET_RATE_PARENT,
2560 			.ops = &clk_branch2_ops,
2561 		},
2562 	},
2563 };
2564 
2565 static struct clk_branch gcc_aggre_usb_noc_axi_clk = {
2566 	.halt_reg = 0x2d034,
2567 	.halt_check = BRANCH_HALT_VOTED,
2568 	.hwcg_reg = 0x2d034,
2569 	.hwcg_bit = 1,
2570 	.clkr = {
2571 		.enable_reg = 0x2d034,
2572 		.enable_mask = BIT(0),
2573 		.hw.init = &(const struct clk_init_data) {
2574 			.name = "gcc_aggre_usb_noc_axi_clk",
2575 			.ops = &clk_branch2_ops,
2576 		},
2577 	},
2578 };
2579 
2580 static struct clk_branch gcc_av1e_ahb_clk = {
2581 	.halt_reg = 0x4a004,
2582 	.halt_check = BRANCH_HALT_VOTED,
2583 	.hwcg_reg = 0x4a004,
2584 	.hwcg_bit = 1,
2585 	.clkr = {
2586 		.enable_reg = 0x4a004,
2587 		.enable_mask = BIT(0),
2588 		.hw.init = &(const struct clk_init_data) {
2589 			.name = "gcc_av1e_ahb_clk",
2590 			.ops = &clk_branch2_ops,
2591 		},
2592 	},
2593 };
2594 
2595 static struct clk_branch gcc_av1e_axi_clk = {
2596 	.halt_reg = 0x4a008,
2597 	.halt_check = BRANCH_HALT_SKIP,
2598 	.hwcg_reg = 0x4a008,
2599 	.hwcg_bit = 1,
2600 	.clkr = {
2601 		.enable_reg = 0x4a008,
2602 		.enable_mask = BIT(0),
2603 		.hw.init = &(const struct clk_init_data) {
2604 			.name = "gcc_av1e_axi_clk",
2605 			.ops = &clk_branch2_ops,
2606 		},
2607 	},
2608 };
2609 
2610 static struct clk_branch gcc_av1e_xo_clk = {
2611 	.halt_reg = 0x4a014,
2612 	.halt_check = BRANCH_HALT,
2613 	.clkr = {
2614 		.enable_reg = 0x4a014,
2615 		.enable_mask = BIT(0),
2616 		.hw.init = &(const struct clk_init_data) {
2617 			.name = "gcc_av1e_xo_clk",
2618 			.ops = &clk_branch2_ops,
2619 		},
2620 	},
2621 };
2622 
2623 static struct clk_branch gcc_boot_rom_ahb_clk = {
2624 	.halt_reg = 0x38004,
2625 	.halt_check = BRANCH_HALT_VOTED,
2626 	.hwcg_reg = 0x38004,
2627 	.hwcg_bit = 1,
2628 	.clkr = {
2629 		.enable_reg = 0x52000,
2630 		.enable_mask = BIT(10),
2631 		.hw.init = &(const struct clk_init_data) {
2632 			.name = "gcc_boot_rom_ahb_clk",
2633 			.ops = &clk_branch2_ops,
2634 		},
2635 	},
2636 };
2637 
2638 static struct clk_branch gcc_camera_hf_axi_clk = {
2639 	.halt_reg = 0x26010,
2640 	.halt_check = BRANCH_HALT_SKIP,
2641 	.hwcg_reg = 0x26010,
2642 	.hwcg_bit = 1,
2643 	.clkr = {
2644 		.enable_reg = 0x26010,
2645 		.enable_mask = BIT(0),
2646 		.hw.init = &(const struct clk_init_data) {
2647 			.name = "gcc_camera_hf_axi_clk",
2648 			.ops = &clk_branch2_ops,
2649 		},
2650 	},
2651 };
2652 
2653 static struct clk_branch gcc_camera_sf_axi_clk = {
2654 	.halt_reg = 0x2601c,
2655 	.halt_check = BRANCH_HALT_SKIP,
2656 	.hwcg_reg = 0x2601c,
2657 	.hwcg_bit = 1,
2658 	.clkr = {
2659 		.enable_reg = 0x2601c,
2660 		.enable_mask = BIT(0),
2661 		.hw.init = &(const struct clk_init_data) {
2662 			.name = "gcc_camera_sf_axi_clk",
2663 			.ops = &clk_branch2_ops,
2664 		},
2665 	},
2666 };
2667 
2668 static struct clk_branch gcc_cfg_noc_pcie_anoc_ahb_clk = {
2669 	.halt_reg = 0x10028,
2670 	.halt_check = BRANCH_HALT_VOTED,
2671 	.hwcg_reg = 0x10028,
2672 	.hwcg_bit = 1,
2673 	.clkr = {
2674 		.enable_reg = 0x52028,
2675 		.enable_mask = BIT(20),
2676 		.hw.init = &(const struct clk_init_data) {
2677 			.name = "gcc_cfg_noc_pcie_anoc_ahb_clk",
2678 			.ops = &clk_branch2_ops,
2679 		},
2680 	},
2681 };
2682 
2683 static struct clk_branch gcc_cfg_noc_pcie_anoc_north_ahb_clk = {
2684 	.halt_reg = 0x1002c,
2685 	.halt_check = BRANCH_HALT_VOTED,
2686 	.hwcg_reg = 0x1002c,
2687 	.hwcg_bit = 1,
2688 	.clkr = {
2689 		.enable_reg = 0x52028,
2690 		.enable_mask = BIT(22),
2691 		.hw.init = &(const struct clk_init_data) {
2692 			.name = "gcc_cfg_noc_pcie_anoc_north_ahb_clk",
2693 			.ops = &clk_branch2_ops,
2694 		},
2695 	},
2696 };
2697 
2698 static struct clk_branch gcc_cfg_noc_pcie_anoc_south_ahb_clk = {
2699 	.halt_reg = 0x10030,
2700 	.halt_check = BRANCH_HALT_VOTED,
2701 	.hwcg_reg = 0x10030,
2702 	.hwcg_bit = 1,
2703 	.clkr = {
2704 		.enable_reg = 0x52000,
2705 		.enable_mask = BIT(20),
2706 		.hw.init = &(const struct clk_init_data) {
2707 			.name = "gcc_cfg_noc_pcie_anoc_south_ahb_clk",
2708 			.ops = &clk_branch2_ops,
2709 		},
2710 	},
2711 };
2712 
2713 static struct clk_branch gcc_cfg_noc_usb2_prim_axi_clk = {
2714 	.halt_reg = 0x29288,
2715 	.halt_check = BRANCH_HALT_VOTED,
2716 	.hwcg_reg = 0x29288,
2717 	.hwcg_bit = 1,
2718 	.clkr = {
2719 		.enable_reg = 0x29288,
2720 		.enable_mask = BIT(0),
2721 		.hw.init = &(const struct clk_init_data) {
2722 			.name = "gcc_cfg_noc_usb2_prim_axi_clk",
2723 			.parent_hws = (const struct clk_hw*[]) {
2724 				&gcc_usb20_master_clk_src.clkr.hw,
2725 			},
2726 			.num_parents = 1,
2727 			.flags = CLK_SET_RATE_PARENT,
2728 			.ops = &clk_branch2_ops,
2729 		},
2730 	},
2731 };
2732 
2733 static struct clk_branch gcc_cfg_noc_usb3_mp_axi_clk = {
2734 	.halt_reg = 0x173cc,
2735 	.halt_check = BRANCH_HALT_VOTED,
2736 	.hwcg_reg = 0x173cc,
2737 	.hwcg_bit = 1,
2738 	.clkr = {
2739 		.enable_reg = 0x173cc,
2740 		.enable_mask = BIT(0),
2741 		.hw.init = &(const struct clk_init_data) {
2742 			.name = "gcc_cfg_noc_usb3_mp_axi_clk",
2743 			.parent_hws = (const struct clk_hw*[]) {
2744 				&gcc_usb30_mp_master_clk_src.clkr.hw,
2745 			},
2746 			.num_parents = 1,
2747 			.flags = CLK_SET_RATE_PARENT,
2748 			.ops = &clk_branch2_ops,
2749 		},
2750 	},
2751 };
2752 
2753 static struct clk_branch gcc_cfg_noc_usb3_prim_axi_clk = {
2754 	.halt_reg = 0x3908c,
2755 	.halt_check = BRANCH_HALT_VOTED,
2756 	.hwcg_reg = 0x3908c,
2757 	.hwcg_bit = 1,
2758 	.clkr = {
2759 		.enable_reg = 0x3908c,
2760 		.enable_mask = BIT(0),
2761 		.hw.init = &(const struct clk_init_data) {
2762 			.name = "gcc_cfg_noc_usb3_prim_axi_clk",
2763 			.parent_hws = (const struct clk_hw*[]) {
2764 				&gcc_usb30_prim_master_clk_src.clkr.hw,
2765 			},
2766 			.num_parents = 1,
2767 			.flags = CLK_SET_RATE_PARENT,
2768 			.ops = &clk_branch2_ops,
2769 		},
2770 	},
2771 };
2772 
2773 static struct clk_branch gcc_cfg_noc_usb3_sec_axi_clk = {
2774 	.halt_reg = 0xa108c,
2775 	.halt_check = BRANCH_HALT_VOTED,
2776 	.hwcg_reg = 0xa108c,
2777 	.hwcg_bit = 1,
2778 	.clkr = {
2779 		.enable_reg = 0xa108c,
2780 		.enable_mask = BIT(0),
2781 		.hw.init = &(const struct clk_init_data) {
2782 			.name = "gcc_cfg_noc_usb3_sec_axi_clk",
2783 			.parent_hws = (const struct clk_hw*[]) {
2784 				&gcc_usb30_sec_master_clk_src.clkr.hw,
2785 			},
2786 			.num_parents = 1,
2787 			.flags = CLK_SET_RATE_PARENT,
2788 			.ops = &clk_branch2_ops,
2789 		},
2790 	},
2791 };
2792 
2793 static struct clk_branch gcc_cfg_noc_usb3_tert_axi_clk = {
2794 	.halt_reg = 0xa208c,
2795 	.halt_check = BRANCH_HALT_VOTED,
2796 	.hwcg_reg = 0xa208c,
2797 	.hwcg_bit = 1,
2798 	.clkr = {
2799 		.enable_reg = 0xa208c,
2800 		.enable_mask = BIT(0),
2801 		.hw.init = &(const struct clk_init_data) {
2802 			.name = "gcc_cfg_noc_usb3_tert_axi_clk",
2803 			.parent_hws = (const struct clk_hw*[]) {
2804 				&gcc_usb30_tert_master_clk_src.clkr.hw,
2805 			},
2806 			.num_parents = 1,
2807 			.flags = CLK_SET_RATE_PARENT,
2808 			.ops = &clk_branch2_ops,
2809 		},
2810 	},
2811 };
2812 
2813 static struct clk_branch gcc_cfg_noc_usb_anoc_ahb_clk = {
2814 	.halt_reg = 0x2d024,
2815 	.halt_check = BRANCH_HALT_VOTED,
2816 	.hwcg_reg = 0x2d024,
2817 	.hwcg_bit = 1,
2818 	.clkr = {
2819 		.enable_reg = 0x52028,
2820 		.enable_mask = BIT(21),
2821 		.hw.init = &(const struct clk_init_data) {
2822 			.name = "gcc_cfg_noc_usb_anoc_ahb_clk",
2823 			.ops = &clk_branch2_ops,
2824 		},
2825 	},
2826 };
2827 
2828 static struct clk_branch gcc_cfg_noc_usb_anoc_north_ahb_clk = {
2829 	.halt_reg = 0x2d028,
2830 	.halt_check = BRANCH_HALT_VOTED,
2831 	.hwcg_reg = 0x2d028,
2832 	.hwcg_bit = 1,
2833 	.clkr = {
2834 		.enable_reg = 0x52028,
2835 		.enable_mask = BIT(23),
2836 		.hw.init = &(const struct clk_init_data) {
2837 			.name = "gcc_cfg_noc_usb_anoc_north_ahb_clk",
2838 			.ops = &clk_branch2_ops,
2839 		},
2840 	},
2841 };
2842 
2843 static struct clk_branch gcc_cfg_noc_usb_anoc_south_ahb_clk = {
2844 	.halt_reg = 0x2d02c,
2845 	.halt_check = BRANCH_HALT_VOTED,
2846 	.hwcg_reg = 0x2d02c,
2847 	.hwcg_bit = 1,
2848 	.clkr = {
2849 		.enable_reg = 0x52018,
2850 		.enable_mask = BIT(7),
2851 		.hw.init = &(const struct clk_init_data) {
2852 			.name = "gcc_cfg_noc_usb_anoc_south_ahb_clk",
2853 			.ops = &clk_branch2_ops,
2854 		},
2855 	},
2856 };
2857 
2858 static struct clk_branch gcc_cnoc_pcie1_tunnel_clk = {
2859 	.halt_reg = 0x2c2b4,
2860 	.halt_check = BRANCH_HALT_VOTED,
2861 	.clkr = {
2862 		.enable_reg = 0x52010,
2863 		.enable_mask = BIT(30),
2864 		.hw.init = &(const struct clk_init_data) {
2865 			.name = "gcc_cnoc_pcie1_tunnel_clk",
2866 			.ops = &clk_branch2_ops,
2867 		},
2868 	},
2869 };
2870 
2871 static struct clk_branch gcc_cnoc_pcie2_tunnel_clk = {
2872 	.halt_reg = 0x132b4,
2873 	.halt_check = BRANCH_HALT_VOTED,
2874 	.clkr = {
2875 		.enable_reg = 0x52010,
2876 		.enable_mask = BIT(31),
2877 		.hw.init = &(const struct clk_init_data) {
2878 			.name = "gcc_cnoc_pcie2_tunnel_clk",
2879 			.ops = &clk_branch2_ops,
2880 		},
2881 	},
2882 };
2883 
2884 static struct clk_branch gcc_cnoc_pcie_north_sf_axi_clk = {
2885 	.halt_reg = 0x10014,
2886 	.halt_check = BRANCH_HALT_VOTED,
2887 	.hwcg_reg = 0x10014,
2888 	.hwcg_bit = 1,
2889 	.clkr = {
2890 		.enable_reg = 0x52008,
2891 		.enable_mask = BIT(6),
2892 		.hw.init = &(const struct clk_init_data) {
2893 			.name = "gcc_cnoc_pcie_north_sf_axi_clk",
2894 			.ops = &clk_branch2_ops,
2895 		},
2896 	},
2897 };
2898 
2899 static struct clk_branch gcc_cnoc_pcie_south_sf_axi_clk = {
2900 	.halt_reg = 0x10018,
2901 	.halt_check = BRANCH_HALT_VOTED,
2902 	.hwcg_reg = 0x10018,
2903 	.hwcg_bit = 1,
2904 	.clkr = {
2905 		.enable_reg = 0x52028,
2906 		.enable_mask = BIT(12),
2907 		.hw.init = &(const struct clk_init_data) {
2908 			.name = "gcc_cnoc_pcie_south_sf_axi_clk",
2909 			.ops = &clk_branch2_ops,
2910 		},
2911 	},
2912 };
2913 
2914 static struct clk_branch gcc_cnoc_pcie_tunnel_clk = {
2915 	.halt_reg = 0xa02b4,
2916 	.halt_check = BRANCH_HALT_VOTED,
2917 	.hwcg_reg = 0xa02b4,
2918 	.hwcg_bit = 1,
2919 	.clkr = {
2920 		.enable_reg = 0x52010,
2921 		.enable_mask = BIT(29),
2922 		.hw.init = &(const struct clk_init_data) {
2923 			.name = "gcc_cnoc_pcie_tunnel_clk",
2924 			.ops = &clk_branch2_ops,
2925 		},
2926 	},
2927 };
2928 
2929 static struct clk_branch gcc_ddrss_gpu_axi_clk = {
2930 	.halt_reg = 0x7115c,
2931 	.halt_check = BRANCH_HALT_SKIP,
2932 	.hwcg_reg = 0x7115c,
2933 	.hwcg_bit = 1,
2934 	.clkr = {
2935 		.enable_reg = 0x7115c,
2936 		.enable_mask = BIT(0),
2937 		.hw.init = &(const struct clk_init_data) {
2938 			.name = "gcc_ddrss_gpu_axi_clk",
2939 			.ops = &clk_branch2_ops,
2940 		},
2941 	},
2942 };
2943 
2944 static struct clk_branch gcc_disp_hf_axi_clk = {
2945 	.halt_reg = 0x2700c,
2946 	.halt_check = BRANCH_HALT_SKIP,
2947 	.hwcg_reg = 0x2700c,
2948 	.hwcg_bit = 1,
2949 	.clkr = {
2950 		.enable_reg = 0x2700c,
2951 		.enable_mask = BIT(0),
2952 		.hw.init = &(const struct clk_init_data) {
2953 			.name = "gcc_disp_hf_axi_clk",
2954 			.ops = &clk_branch2_ops,
2955 		},
2956 	},
2957 };
2958 
2959 static struct clk_branch gcc_gp1_clk = {
2960 	.halt_reg = 0x64000,
2961 	.halt_check = BRANCH_HALT,
2962 	.clkr = {
2963 		.enable_reg = 0x64000,
2964 		.enable_mask = BIT(0),
2965 		.hw.init = &(const struct clk_init_data) {
2966 			.name = "gcc_gp1_clk",
2967 			.parent_hws = (const struct clk_hw*[]) {
2968 				&gcc_gp1_clk_src.clkr.hw,
2969 			},
2970 			.num_parents = 1,
2971 			.flags = CLK_SET_RATE_PARENT,
2972 			.ops = &clk_branch2_ops,
2973 		},
2974 	},
2975 };
2976 
2977 static struct clk_branch gcc_gp2_clk = {
2978 	.halt_reg = 0x65000,
2979 	.halt_check = BRANCH_HALT,
2980 	.clkr = {
2981 		.enable_reg = 0x65000,
2982 		.enable_mask = BIT(0),
2983 		.hw.init = &(const struct clk_init_data) {
2984 			.name = "gcc_gp2_clk",
2985 			.parent_hws = (const struct clk_hw*[]) {
2986 				&gcc_gp2_clk_src.clkr.hw,
2987 			},
2988 			.num_parents = 1,
2989 			.flags = CLK_SET_RATE_PARENT,
2990 			.ops = &clk_branch2_ops,
2991 		},
2992 	},
2993 };
2994 
2995 static struct clk_branch gcc_gp3_clk = {
2996 	.halt_reg = 0x66000,
2997 	.halt_check = BRANCH_HALT,
2998 	.clkr = {
2999 		.enable_reg = 0x66000,
3000 		.enable_mask = BIT(0),
3001 		.hw.init = &(const struct clk_init_data) {
3002 			.name = "gcc_gp3_clk",
3003 			.parent_hws = (const struct clk_hw*[]) {
3004 				&gcc_gp3_clk_src.clkr.hw,
3005 			},
3006 			.num_parents = 1,
3007 			.flags = CLK_SET_RATE_PARENT,
3008 			.ops = &clk_branch2_ops,
3009 		},
3010 	},
3011 };
3012 
3013 static struct clk_branch gcc_gpu_gpll0_cph_clk_src = {
3014 	.halt_check = BRANCH_HALT_DELAY,
3015 	.clkr = {
3016 		.enable_reg = 0x52000,
3017 		.enable_mask = BIT(15),
3018 		.hw.init = &(const struct clk_init_data) {
3019 			.name = "gcc_gpu_gpll0_cph_clk_src",
3020 			.parent_hws = (const struct clk_hw*[]) {
3021 				&gcc_gpll0.clkr.hw,
3022 			},
3023 			.num_parents = 1,
3024 			.flags = CLK_SET_RATE_PARENT,
3025 			.ops = &clk_branch2_ops,
3026 		},
3027 	},
3028 };
3029 
3030 static struct clk_branch gcc_gpu_gpll0_div_cph_clk_src = {
3031 	.halt_check = BRANCH_HALT_DELAY,
3032 	.clkr = {
3033 		.enable_reg = 0x52000,
3034 		.enable_mask = BIT(16),
3035 		.hw.init = &(const struct clk_init_data) {
3036 			.name = "gcc_gpu_gpll0_div_cph_clk_src",
3037 			.parent_hws = (const struct clk_hw*[]) {
3038 				&gcc_gpll0_out_even.clkr.hw,
3039 			},
3040 			.num_parents = 1,
3041 			.flags = CLK_SET_RATE_PARENT,
3042 			.ops = &clk_branch2_ops,
3043 		},
3044 	},
3045 };
3046 
3047 static struct clk_branch gcc_gpu_memnoc_gfx_clk = {
3048 	.halt_reg = 0x71010,
3049 	.halt_check = BRANCH_HALT_VOTED,
3050 	.hwcg_reg = 0x71010,
3051 	.hwcg_bit = 1,
3052 	.clkr = {
3053 		.enable_reg = 0x71010,
3054 		.enable_mask = BIT(0),
3055 		.hw.init = &(const struct clk_init_data) {
3056 			.name = "gcc_gpu_memnoc_gfx_clk",
3057 			.ops = &clk_branch2_ops,
3058 		},
3059 	},
3060 };
3061 
3062 static struct clk_branch gcc_gpu_snoc_dvm_gfx_clk = {
3063 	.halt_reg = 0x71018,
3064 	.halt_check = BRANCH_HALT,
3065 	.clkr = {
3066 		.enable_reg = 0x71018,
3067 		.enable_mask = BIT(0),
3068 		.hw.init = &(const struct clk_init_data) {
3069 			.name = "gcc_gpu_snoc_dvm_gfx_clk",
3070 			.ops = &clk_branch2_ops,
3071 		},
3072 	},
3073 };
3074 
3075 static struct clk_branch gcc_pcie0_phy_rchng_clk = {
3076 	.halt_reg = 0xa0050,
3077 	.halt_check = BRANCH_HALT_VOTED,
3078 	.clkr = {
3079 		.enable_reg = 0x52010,
3080 		.enable_mask = BIT(26),
3081 		.hw.init = &(const struct clk_init_data) {
3082 			.name = "gcc_pcie0_phy_rchng_clk",
3083 			.parent_hws = (const struct clk_hw*[]) {
3084 				&gcc_pcie_0_phy_rchng_clk_src.clkr.hw,
3085 			},
3086 			.num_parents = 1,
3087 			.flags = CLK_SET_RATE_PARENT,
3088 			.ops = &clk_branch2_ops,
3089 		},
3090 	},
3091 };
3092 
3093 static struct clk_branch gcc_pcie1_phy_rchng_clk = {
3094 	.halt_reg = 0x2c050,
3095 	.halt_check = BRANCH_HALT_VOTED,
3096 	.clkr = {
3097 		.enable_reg = 0x52020,
3098 		.enable_mask = BIT(31),
3099 		.hw.init = &(const struct clk_init_data) {
3100 			.name = "gcc_pcie1_phy_rchng_clk",
3101 			.parent_hws = (const struct clk_hw*[]) {
3102 				&gcc_pcie_1_phy_rchng_clk_src.clkr.hw,
3103 			},
3104 			.num_parents = 1,
3105 			.flags = CLK_SET_RATE_PARENT,
3106 			.ops = &clk_branch2_ops,
3107 		},
3108 	},
3109 };
3110 
3111 static struct clk_branch gcc_pcie2_phy_rchng_clk = {
3112 	.halt_reg = 0x13050,
3113 	.halt_check = BRANCH_HALT_VOTED,
3114 	.clkr = {
3115 		.enable_reg = 0x52020,
3116 		.enable_mask = BIT(24),
3117 		.hw.init = &(const struct clk_init_data) {
3118 			.name = "gcc_pcie2_phy_rchng_clk",
3119 			.parent_hws = (const struct clk_hw*[]) {
3120 				&gcc_pcie_2_phy_rchng_clk_src.clkr.hw,
3121 			},
3122 			.num_parents = 1,
3123 			.flags = CLK_SET_RATE_PARENT,
3124 			.ops = &clk_branch2_ops,
3125 		},
3126 	},
3127 };
3128 
3129 static struct clk_branch gcc_pcie_0_aux_clk = {
3130 	.halt_reg = 0xa0038,
3131 	.halt_check = BRANCH_HALT_VOTED,
3132 	.clkr = {
3133 		.enable_reg = 0x52010,
3134 		.enable_mask = BIT(24),
3135 		.hw.init = &(const struct clk_init_data) {
3136 			.name = "gcc_pcie_0_aux_clk",
3137 			.parent_hws = (const struct clk_hw*[]) {
3138 				&gcc_pcie_0_aux_clk_src.clkr.hw,
3139 			},
3140 			.num_parents = 1,
3141 			.flags = CLK_SET_RATE_PARENT,
3142 			.ops = &clk_branch2_ops,
3143 		},
3144 	},
3145 };
3146 
3147 static struct clk_branch gcc_pcie_0_cfg_ahb_clk = {
3148 	.halt_reg = 0xa0034,
3149 	.halt_check = BRANCH_HALT_VOTED,
3150 	.hwcg_reg = 0xa0034,
3151 	.hwcg_bit = 1,
3152 	.clkr = {
3153 		.enable_reg = 0x52010,
3154 		.enable_mask = BIT(23),
3155 		.hw.init = &(const struct clk_init_data) {
3156 			.name = "gcc_pcie_0_cfg_ahb_clk",
3157 			.ops = &clk_branch2_ops,
3158 		},
3159 	},
3160 };
3161 
3162 static struct clk_branch gcc_pcie_0_mstr_axi_clk = {
3163 	.halt_reg = 0xa0028,
3164 	.halt_check = BRANCH_HALT_SKIP,
3165 	.hwcg_reg = 0xa0028,
3166 	.hwcg_bit = 1,
3167 	.clkr = {
3168 		.enable_reg = 0x52010,
3169 		.enable_mask = BIT(22),
3170 		.hw.init = &(const struct clk_init_data) {
3171 			.name = "gcc_pcie_0_mstr_axi_clk",
3172 			.ops = &clk_branch2_ops,
3173 		},
3174 	},
3175 };
3176 
3177 static struct clk_branch gcc_pcie_0_pipe_clk = {
3178 	.halt_reg = 0xa0044,
3179 	.halt_check = BRANCH_HALT_SKIP,
3180 	.clkr = {
3181 		.enable_reg = 0x52010,
3182 		.enable_mask = BIT(25),
3183 		.hw.init = &(const struct clk_init_data) {
3184 			.name = "gcc_pcie_0_pipe_clk",
3185 			.parent_hws = (const struct clk_hw*[]) {
3186 				&gcc_usb4_0_phy_pcie_pipe_mux_clk_src.clkr.hw,
3187 			},
3188 			.num_parents = 1,
3189 			.flags = CLK_SET_RATE_PARENT,
3190 			.ops = &clk_branch2_ops,
3191 		},
3192 	},
3193 };
3194 
3195 static struct clk_branch gcc_pcie_0_slv_axi_clk = {
3196 	.halt_reg = 0xa001c,
3197 	.halt_check = BRANCH_HALT_VOTED,
3198 	.hwcg_reg = 0xa001c,
3199 	.hwcg_bit = 1,
3200 	.clkr = {
3201 		.enable_reg = 0x52010,
3202 		.enable_mask = BIT(21),
3203 		.hw.init = &(const struct clk_init_data) {
3204 			.name = "gcc_pcie_0_slv_axi_clk",
3205 			.ops = &clk_branch2_ops,
3206 		},
3207 	},
3208 };
3209 
3210 static struct clk_branch gcc_pcie_0_slv_q2a_axi_clk = {
3211 	.halt_reg = 0xa0018,
3212 	.halt_check = BRANCH_HALT_VOTED,
3213 	.clkr = {
3214 		.enable_reg = 0x52010,
3215 		.enable_mask = BIT(20),
3216 		.hw.init = &(const struct clk_init_data) {
3217 			.name = "gcc_pcie_0_slv_q2a_axi_clk",
3218 			.ops = &clk_branch2_ops,
3219 		},
3220 	},
3221 };
3222 
3223 static struct clk_branch gcc_pcie_1_aux_clk = {
3224 	.halt_reg = 0x2c038,
3225 	.halt_check = BRANCH_HALT_VOTED,
3226 	.clkr = {
3227 		.enable_reg = 0x52020,
3228 		.enable_mask = BIT(29),
3229 		.hw.init = &(const struct clk_init_data) {
3230 			.name = "gcc_pcie_1_aux_clk",
3231 			.parent_hws = (const struct clk_hw*[]) {
3232 				&gcc_pcie_1_aux_clk_src.clkr.hw,
3233 			},
3234 			.num_parents = 1,
3235 			.flags = CLK_SET_RATE_PARENT,
3236 			.ops = &clk_branch2_ops,
3237 		},
3238 	},
3239 };
3240 
3241 static struct clk_branch gcc_pcie_1_cfg_ahb_clk = {
3242 	.halt_reg = 0x2c034,
3243 	.halt_check = BRANCH_HALT_VOTED,
3244 	.hwcg_reg = 0x2c034,
3245 	.hwcg_bit = 1,
3246 	.clkr = {
3247 		.enable_reg = 0x52020,
3248 		.enable_mask = BIT(28),
3249 		.hw.init = &(const struct clk_init_data) {
3250 			.name = "gcc_pcie_1_cfg_ahb_clk",
3251 			.ops = &clk_branch2_ops,
3252 		},
3253 	},
3254 };
3255 
3256 static struct clk_branch gcc_pcie_1_mstr_axi_clk = {
3257 	.halt_reg = 0x2c028,
3258 	.halt_check = BRANCH_HALT_SKIP,
3259 	.hwcg_reg = 0x2c028,
3260 	.hwcg_bit = 1,
3261 	.clkr = {
3262 		.enable_reg = 0x52020,
3263 		.enable_mask = BIT(27),
3264 		.hw.init = &(const struct clk_init_data) {
3265 			.name = "gcc_pcie_1_mstr_axi_clk",
3266 			.ops = &clk_branch2_ops,
3267 		},
3268 	},
3269 };
3270 
3271 static struct clk_branch gcc_pcie_1_pipe_clk = {
3272 	.halt_reg = 0x2c044,
3273 	.halt_check = BRANCH_HALT_SKIP,
3274 	.clkr = {
3275 		.enable_reg = 0x52020,
3276 		.enable_mask = BIT(30),
3277 		.hw.init = &(const struct clk_init_data) {
3278 			.name = "gcc_pcie_1_pipe_clk",
3279 			.parent_hws = (const struct clk_hw*[]) {
3280 				&gcc_usb4_1_phy_pcie_pipe_mux_clk_src.clkr.hw,
3281 			},
3282 			.num_parents = 1,
3283 			.flags = CLK_SET_RATE_PARENT,
3284 			.ops = &clk_branch2_ops,
3285 		},
3286 	},
3287 };
3288 
3289 static struct clk_branch gcc_pcie_1_slv_axi_clk = {
3290 	.halt_reg = 0x2c01c,
3291 	.halt_check = BRANCH_HALT_VOTED,
3292 	.hwcg_reg = 0x2c01c,
3293 	.hwcg_bit = 1,
3294 	.clkr = {
3295 		.enable_reg = 0x52020,
3296 		.enable_mask = BIT(26),
3297 		.hw.init = &(const struct clk_init_data) {
3298 			.name = "gcc_pcie_1_slv_axi_clk",
3299 			.ops = &clk_branch2_ops,
3300 		},
3301 	},
3302 };
3303 
3304 static struct clk_branch gcc_pcie_1_slv_q2a_axi_clk = {
3305 	.halt_reg = 0x2c018,
3306 	.halt_check = BRANCH_HALT_VOTED,
3307 	.clkr = {
3308 		.enable_reg = 0x52020,
3309 		.enable_mask = BIT(25),
3310 		.hw.init = &(const struct clk_init_data) {
3311 			.name = "gcc_pcie_1_slv_q2a_axi_clk",
3312 			.ops = &clk_branch2_ops,
3313 		},
3314 	},
3315 };
3316 
3317 static struct clk_branch gcc_pcie_2_aux_clk = {
3318 	.halt_reg = 0x13038,
3319 	.halt_check = BRANCH_HALT_VOTED,
3320 	.clkr = {
3321 		.enable_reg = 0x52020,
3322 		.enable_mask = BIT(22),
3323 		.hw.init = &(const struct clk_init_data) {
3324 			.name = "gcc_pcie_2_aux_clk",
3325 			.parent_hws = (const struct clk_hw*[]) {
3326 				&gcc_pcie_2_aux_clk_src.clkr.hw,
3327 			},
3328 			.num_parents = 1,
3329 			.flags = CLK_SET_RATE_PARENT,
3330 			.ops = &clk_branch2_ops,
3331 		},
3332 	},
3333 };
3334 
3335 static struct clk_branch gcc_pcie_2_cfg_ahb_clk = {
3336 	.halt_reg = 0x13034,
3337 	.halt_check = BRANCH_HALT_VOTED,
3338 	.hwcg_reg = 0x13034,
3339 	.hwcg_bit = 1,
3340 	.clkr = {
3341 		.enable_reg = 0x52020,
3342 		.enable_mask = BIT(21),
3343 		.hw.init = &(const struct clk_init_data) {
3344 			.name = "gcc_pcie_2_cfg_ahb_clk",
3345 			.ops = &clk_branch2_ops,
3346 		},
3347 	},
3348 };
3349 
3350 static struct clk_branch gcc_pcie_2_mstr_axi_clk = {
3351 	.halt_reg = 0x13028,
3352 	.halt_check = BRANCH_HALT_SKIP,
3353 	.hwcg_reg = 0x13028,
3354 	.hwcg_bit = 1,
3355 	.clkr = {
3356 		.enable_reg = 0x52020,
3357 		.enable_mask = BIT(20),
3358 		.hw.init = &(const struct clk_init_data) {
3359 			.name = "gcc_pcie_2_mstr_axi_clk",
3360 			.ops = &clk_branch2_ops,
3361 		},
3362 	},
3363 };
3364 
3365 static struct clk_branch gcc_pcie_2_pipe_clk = {
3366 	.halt_reg = 0x13044,
3367 	.halt_check = BRANCH_HALT_SKIP,
3368 	.clkr = {
3369 		.enable_reg = 0x52020,
3370 		.enable_mask = BIT(23),
3371 		.hw.init = &(const struct clk_init_data) {
3372 			.name = "gcc_pcie_2_pipe_clk",
3373 			.parent_hws = (const struct clk_hw*[]) {
3374 				&gcc_usb4_2_phy_pcie_pipe_mux_clk_src.clkr.hw,
3375 			},
3376 			.num_parents = 1,
3377 			.flags = CLK_SET_RATE_PARENT,
3378 			.ops = &clk_branch2_ops,
3379 		},
3380 	},
3381 };
3382 
3383 static struct clk_branch gcc_pcie_2_slv_axi_clk = {
3384 	.halt_reg = 0x1301c,
3385 	.halt_check = BRANCH_HALT_VOTED,
3386 	.hwcg_reg = 0x1301c,
3387 	.hwcg_bit = 1,
3388 	.clkr = {
3389 		.enable_reg = 0x52020,
3390 		.enable_mask = BIT(19),
3391 		.hw.init = &(const struct clk_init_data) {
3392 			.name = "gcc_pcie_2_slv_axi_clk",
3393 			.ops = &clk_branch2_ops,
3394 		},
3395 	},
3396 };
3397 
3398 static struct clk_branch gcc_pcie_2_slv_q2a_axi_clk = {
3399 	.halt_reg = 0x13018,
3400 	.halt_check = BRANCH_HALT_VOTED,
3401 	.clkr = {
3402 		.enable_reg = 0x52020,
3403 		.enable_mask = BIT(18),
3404 		.hw.init = &(const struct clk_init_data) {
3405 			.name = "gcc_pcie_2_slv_q2a_axi_clk",
3406 			.ops = &clk_branch2_ops,
3407 		},
3408 	},
3409 };
3410 
3411 static struct clk_branch gcc_pcie_3_aux_clk = {
3412 	.halt_reg = 0x58038,
3413 	.halt_check = BRANCH_HALT_VOTED,
3414 	.clkr = {
3415 		.enable_reg = 0x52020,
3416 		.enable_mask = BIT(1),
3417 		.hw.init = &(const struct clk_init_data) {
3418 			.name = "gcc_pcie_3_aux_clk",
3419 			.parent_hws = (const struct clk_hw*[]) {
3420 				&gcc_pcie_3_aux_clk_src.clkr.hw,
3421 			},
3422 			.num_parents = 1,
3423 			.flags = CLK_SET_RATE_PARENT,
3424 			.ops = &clk_branch2_ops,
3425 		},
3426 	},
3427 };
3428 
3429 static struct clk_branch gcc_pcie_3_cfg_ahb_clk = {
3430 	.halt_reg = 0x58034,
3431 	.halt_check = BRANCH_HALT_VOTED,
3432 	.hwcg_reg = 0x58034,
3433 	.hwcg_bit = 1,
3434 	.clkr = {
3435 		.enable_reg = 0x52020,
3436 		.enable_mask = BIT(0),
3437 		.hw.init = &(const struct clk_init_data) {
3438 			.name = "gcc_pcie_3_cfg_ahb_clk",
3439 			.ops = &clk_branch2_ops,
3440 		},
3441 	},
3442 };
3443 
3444 static struct clk_branch gcc_pcie_3_mstr_axi_clk = {
3445 	.halt_reg = 0x58028,
3446 	.halt_check = BRANCH_HALT_SKIP,
3447 	.hwcg_reg = 0x58028,
3448 	.hwcg_bit = 1,
3449 	.clkr = {
3450 		.enable_reg = 0x52018,
3451 		.enable_mask = BIT(31),
3452 		.hw.init = &(const struct clk_init_data) {
3453 			.name = "gcc_pcie_3_mstr_axi_clk",
3454 			.ops = &clk_branch2_ops,
3455 		},
3456 	},
3457 };
3458 
3459 static struct clk_branch gcc_pcie_3_phy_aux_clk = {
3460 	.halt_reg = 0x58044,
3461 	.halt_check = BRANCH_HALT_VOTED,
3462 	.clkr = {
3463 		.enable_reg = 0x52020,
3464 		.enable_mask = BIT(2),
3465 		.hw.init = &(const struct clk_init_data) {
3466 			.name = "gcc_pcie_3_phy_aux_clk",
3467 			.ops = &clk_branch2_ops,
3468 		},
3469 	},
3470 };
3471 
3472 static struct clk_branch gcc_pcie_3_phy_rchng_clk = {
3473 	.halt_reg = 0x5805c,
3474 	.halt_check = BRANCH_HALT_VOTED,
3475 	.clkr = {
3476 		.enable_reg = 0x52020,
3477 		.enable_mask = BIT(4),
3478 		.hw.init = &(const struct clk_init_data) {
3479 			.name = "gcc_pcie_3_phy_rchng_clk",
3480 			.parent_hws = (const struct clk_hw*[]) {
3481 				&gcc_pcie_3_phy_rchng_clk_src.clkr.hw,
3482 			},
3483 			.num_parents = 1,
3484 			.flags = CLK_SET_RATE_PARENT,
3485 			.ops = &clk_branch2_ops,
3486 		},
3487 	},
3488 };
3489 
3490 static struct clk_branch gcc_pcie_3_pipe_clk = {
3491 	.halt_reg = 0x58050,
3492 	.halt_check = BRANCH_HALT_SKIP,
3493 	.clkr = {
3494 		.enable_reg = 0x52020,
3495 		.enable_mask = BIT(3),
3496 		.hw.init = &(const struct clk_init_data) {
3497 			.name = "gcc_pcie_3_pipe_clk",
3498 			.ops = &clk_branch2_ops,
3499 		},
3500 	},
3501 };
3502 
3503 static struct clk_branch gcc_pcie_3_pipediv2_clk = {
3504 	.halt_reg = 0x58060,
3505 	.halt_check = BRANCH_HALT_SKIP,
3506 	.clkr = {
3507 		.enable_reg = 0x52020,
3508 		.enable_mask = BIT(5),
3509 		.hw.init = &(const struct clk_init_data) {
3510 			.name = "gcc_pcie_3_pipediv2_clk",
3511 			.parent_hws = (const struct clk_hw*[]) {
3512 				&gcc_pcie_3_pipe_div_clk_src.clkr.hw,
3513 			},
3514 			.num_parents = 1,
3515 			.flags = CLK_SET_RATE_PARENT,
3516 			.ops = &clk_branch2_ops,
3517 		},
3518 	},
3519 };
3520 
3521 static struct clk_branch gcc_pcie_3_slv_axi_clk = {
3522 	.halt_reg = 0x5801c,
3523 	.halt_check = BRANCH_HALT_VOTED,
3524 	.hwcg_reg = 0x5801c,
3525 	.hwcg_bit = 1,
3526 	.clkr = {
3527 		.enable_reg = 0x52018,
3528 		.enable_mask = BIT(30),
3529 		.hw.init = &(const struct clk_init_data) {
3530 			.name = "gcc_pcie_3_slv_axi_clk",
3531 			.ops = &clk_branch2_ops,
3532 		},
3533 	},
3534 };
3535 
3536 static struct clk_branch gcc_pcie_3_slv_q2a_axi_clk = {
3537 	.halt_reg = 0x58018,
3538 	.halt_check = BRANCH_HALT_VOTED,
3539 	.clkr = {
3540 		.enable_reg = 0x52018,
3541 		.enable_mask = BIT(29),
3542 		.hw.init = &(const struct clk_init_data) {
3543 			.name = "gcc_pcie_3_slv_q2a_axi_clk",
3544 			.ops = &clk_branch2_ops,
3545 		},
3546 	},
3547 };
3548 
3549 static struct clk_branch gcc_pcie_4_aux_clk = {
3550 	.halt_reg = 0x6b038,
3551 	.halt_check = BRANCH_HALT_VOTED,
3552 	.clkr = {
3553 		.enable_reg = 0x52008,
3554 		.enable_mask = BIT(3),
3555 		.hw.init = &(const struct clk_init_data) {
3556 			.name = "gcc_pcie_4_aux_clk",
3557 			.parent_hws = (const struct clk_hw*[]) {
3558 				&gcc_pcie_4_aux_clk_src.clkr.hw,
3559 			},
3560 			.num_parents = 1,
3561 			.flags = CLK_SET_RATE_PARENT,
3562 			.ops = &clk_branch2_ops,
3563 		},
3564 	},
3565 };
3566 
3567 static struct clk_branch gcc_pcie_4_cfg_ahb_clk = {
3568 	.halt_reg = 0x6b034,
3569 	.halt_check = BRANCH_HALT_VOTED,
3570 	.hwcg_reg = 0x6b034,
3571 	.hwcg_bit = 1,
3572 	.clkr = {
3573 		.enable_reg = 0x52008,
3574 		.enable_mask = BIT(2),
3575 		.hw.init = &(const struct clk_init_data) {
3576 			.name = "gcc_pcie_4_cfg_ahb_clk",
3577 			.ops = &clk_branch2_ops,
3578 		},
3579 	},
3580 };
3581 
3582 static struct clk_branch gcc_pcie_4_mstr_axi_clk = {
3583 	.halt_reg = 0x6b028,
3584 	.halt_check = BRANCH_HALT_SKIP,
3585 	.hwcg_reg = 0x6b028,
3586 	.hwcg_bit = 1,
3587 	.clkr = {
3588 		.enable_reg = 0x52008,
3589 		.enable_mask = BIT(1),
3590 		.hw.init = &(const struct clk_init_data) {
3591 			.name = "gcc_pcie_4_mstr_axi_clk",
3592 			.ops = &clk_branch2_ops,
3593 		},
3594 	},
3595 };
3596 
3597 static struct clk_branch gcc_pcie_4_phy_rchng_clk = {
3598 	.halt_reg = 0x6b050,
3599 	.halt_check = BRANCH_HALT_VOTED,
3600 	.clkr = {
3601 		.enable_reg = 0x52000,
3602 		.enable_mask = BIT(22),
3603 		.hw.init = &(const struct clk_init_data) {
3604 			.name = "gcc_pcie_4_phy_rchng_clk",
3605 			.parent_hws = (const struct clk_hw*[]) {
3606 				&gcc_pcie_4_phy_rchng_clk_src.clkr.hw,
3607 			},
3608 			.num_parents = 1,
3609 			.flags = CLK_SET_RATE_PARENT,
3610 			.ops = &clk_branch2_ops,
3611 		},
3612 	},
3613 };
3614 
3615 static struct clk_branch gcc_pcie_4_pipe_clk = {
3616 	.halt_reg = 0x6b044,
3617 	.halt_check = BRANCH_HALT_SKIP,
3618 	.clkr = {
3619 		.enable_reg = 0x52008,
3620 		.enable_mask = BIT(4),
3621 		.hw.init = &(const struct clk_init_data) {
3622 			.name = "gcc_pcie_4_pipe_clk",
3623 			.ops = &clk_branch2_ops,
3624 		},
3625 	},
3626 };
3627 
3628 static struct clk_branch gcc_pcie_4_pipediv2_clk = {
3629 	.halt_reg = 0x6b054,
3630 	.halt_check = BRANCH_HALT_SKIP,
3631 	.clkr = {
3632 		.enable_reg = 0x52010,
3633 		.enable_mask = BIT(27),
3634 		.hw.init = &(const struct clk_init_data) {
3635 			.name = "gcc_pcie_4_pipediv2_clk",
3636 			.parent_hws = (const struct clk_hw*[]) {
3637 				&gcc_pcie_4_pipe_div_clk_src.clkr.hw,
3638 			},
3639 			.num_parents = 1,
3640 			.flags = CLK_SET_RATE_PARENT,
3641 			.ops = &clk_branch2_ops,
3642 		},
3643 	},
3644 };
3645 
3646 static struct clk_branch gcc_pcie_4_slv_axi_clk = {
3647 	.halt_reg = 0x6b01c,
3648 	.halt_check = BRANCH_HALT_VOTED,
3649 	.hwcg_reg = 0x6b01c,
3650 	.hwcg_bit = 1,
3651 	.clkr = {
3652 		.enable_reg = 0x52008,
3653 		.enable_mask = BIT(0),
3654 		.hw.init = &(const struct clk_init_data) {
3655 			.name = "gcc_pcie_4_slv_axi_clk",
3656 			.ops = &clk_branch2_ops,
3657 		},
3658 	},
3659 };
3660 
3661 static struct clk_branch gcc_pcie_4_slv_q2a_axi_clk = {
3662 	.halt_reg = 0x6b018,
3663 	.halt_check = BRANCH_HALT_VOTED,
3664 	.clkr = {
3665 		.enable_reg = 0x52008,
3666 		.enable_mask = BIT(5),
3667 		.hw.init = &(const struct clk_init_data) {
3668 			.name = "gcc_pcie_4_slv_q2a_axi_clk",
3669 			.ops = &clk_branch2_ops,
3670 		},
3671 	},
3672 };
3673 
3674 static struct clk_branch gcc_pcie_5_aux_clk = {
3675 	.halt_reg = 0x2f038,
3676 	.halt_check = BRANCH_HALT_VOTED,
3677 	.clkr = {
3678 		.enable_reg = 0x52018,
3679 		.enable_mask = BIT(16),
3680 		.hw.init = &(const struct clk_init_data) {
3681 			.name = "gcc_pcie_5_aux_clk",
3682 			.parent_hws = (const struct clk_hw*[]) {
3683 				&gcc_pcie_5_aux_clk_src.clkr.hw,
3684 			},
3685 			.num_parents = 1,
3686 			.flags = CLK_SET_RATE_PARENT,
3687 			.ops = &clk_branch2_ops,
3688 		},
3689 	},
3690 };
3691 
3692 static struct clk_branch gcc_pcie_5_cfg_ahb_clk = {
3693 	.halt_reg = 0x2f034,
3694 	.halt_check = BRANCH_HALT_VOTED,
3695 	.hwcg_reg = 0x2f034,
3696 	.hwcg_bit = 1,
3697 	.clkr = {
3698 		.enable_reg = 0x52018,
3699 		.enable_mask = BIT(15),
3700 		.hw.init = &(const struct clk_init_data) {
3701 			.name = "gcc_pcie_5_cfg_ahb_clk",
3702 			.ops = &clk_branch2_ops,
3703 		},
3704 	},
3705 };
3706 
3707 static struct clk_branch gcc_pcie_5_mstr_axi_clk = {
3708 	.halt_reg = 0x2f028,
3709 	.halt_check = BRANCH_HALT_SKIP,
3710 	.hwcg_reg = 0x2f028,
3711 	.hwcg_bit = 1,
3712 	.clkr = {
3713 		.enable_reg = 0x52018,
3714 		.enable_mask = BIT(14),
3715 		.hw.init = &(const struct clk_init_data) {
3716 			.name = "gcc_pcie_5_mstr_axi_clk",
3717 			.ops = &clk_branch2_ops,
3718 		},
3719 	},
3720 };
3721 
3722 static struct clk_branch gcc_pcie_5_phy_rchng_clk = {
3723 	.halt_reg = 0x2f050,
3724 	.halt_check = BRANCH_HALT_VOTED,
3725 	.clkr = {
3726 		.enable_reg = 0x52018,
3727 		.enable_mask = BIT(18),
3728 		.hw.init = &(const struct clk_init_data) {
3729 			.name = "gcc_pcie_5_phy_rchng_clk",
3730 			.parent_hws = (const struct clk_hw*[]) {
3731 				&gcc_pcie_5_phy_rchng_clk_src.clkr.hw,
3732 			},
3733 			.num_parents = 1,
3734 			.flags = CLK_SET_RATE_PARENT,
3735 			.ops = &clk_branch2_ops,
3736 		},
3737 	},
3738 };
3739 
3740 static struct clk_branch gcc_pcie_5_pipe_clk = {
3741 	.halt_reg = 0x2f044,
3742 	.halt_check = BRANCH_HALT_SKIP,
3743 	.clkr = {
3744 		.enable_reg = 0x52018,
3745 		.enable_mask = BIT(17),
3746 		.hw.init = &(const struct clk_init_data) {
3747 			.name = "gcc_pcie_5_pipe_clk",
3748 			.ops = &clk_branch2_ops,
3749 		},
3750 	},
3751 };
3752 
3753 static struct clk_branch gcc_pcie_5_pipediv2_clk = {
3754 	.halt_reg = 0x2f054,
3755 	.halt_check = BRANCH_HALT_SKIP,
3756 	.clkr = {
3757 		.enable_reg = 0x52018,
3758 		.enable_mask = BIT(19),
3759 		.hw.init = &(const struct clk_init_data) {
3760 			.name = "gcc_pcie_5_pipediv2_clk",
3761 			.parent_hws = (const struct clk_hw*[]) {
3762 				&gcc_pcie_5_pipe_div_clk_src.clkr.hw,
3763 			},
3764 			.num_parents = 1,
3765 			.flags = CLK_SET_RATE_PARENT,
3766 			.ops = &clk_branch2_ops,
3767 		},
3768 	},
3769 };
3770 
3771 static struct clk_branch gcc_pcie_5_slv_axi_clk = {
3772 	.halt_reg = 0x2f01c,
3773 	.halt_check = BRANCH_HALT_VOTED,
3774 	.hwcg_reg = 0x2f01c,
3775 	.hwcg_bit = 1,
3776 	.clkr = {
3777 		.enable_reg = 0x52018,
3778 		.enable_mask = BIT(13),
3779 		.hw.init = &(const struct clk_init_data) {
3780 			.name = "gcc_pcie_5_slv_axi_clk",
3781 			.ops = &clk_branch2_ops,
3782 		},
3783 	},
3784 };
3785 
3786 static struct clk_branch gcc_pcie_5_slv_q2a_axi_clk = {
3787 	.halt_reg = 0x2f018,
3788 	.halt_check = BRANCH_HALT_VOTED,
3789 	.clkr = {
3790 		.enable_reg = 0x52018,
3791 		.enable_mask = BIT(12),
3792 		.hw.init = &(const struct clk_init_data) {
3793 			.name = "gcc_pcie_5_slv_q2a_axi_clk",
3794 			.ops = &clk_branch2_ops,
3795 		},
3796 	},
3797 };
3798 
3799 static struct clk_branch gcc_pcie_6a_aux_clk = {
3800 	.halt_reg = 0x31038,
3801 	.halt_check = BRANCH_HALT_VOTED,
3802 	.clkr = {
3803 		.enable_reg = 0x52018,
3804 		.enable_mask = BIT(24),
3805 		.hw.init = &(const struct clk_init_data) {
3806 			.name = "gcc_pcie_6a_aux_clk",
3807 			.parent_hws = (const struct clk_hw*[]) {
3808 				&gcc_pcie_6a_aux_clk_src.clkr.hw,
3809 			},
3810 			.num_parents = 1,
3811 			.flags = CLK_SET_RATE_PARENT,
3812 			.ops = &clk_branch2_ops,
3813 		},
3814 	},
3815 };
3816 
3817 static struct clk_branch gcc_pcie_6a_cfg_ahb_clk = {
3818 	.halt_reg = 0x31034,
3819 	.halt_check = BRANCH_HALT_VOTED,
3820 	.hwcg_reg = 0x31034,
3821 	.hwcg_bit = 1,
3822 	.clkr = {
3823 		.enable_reg = 0x52018,
3824 		.enable_mask = BIT(23),
3825 		.hw.init = &(const struct clk_init_data) {
3826 			.name = "gcc_pcie_6a_cfg_ahb_clk",
3827 			.ops = &clk_branch2_ops,
3828 		},
3829 	},
3830 };
3831 
3832 static struct clk_branch gcc_pcie_6a_mstr_axi_clk = {
3833 	.halt_reg = 0x31028,
3834 	.halt_check = BRANCH_HALT_SKIP,
3835 	.hwcg_reg = 0x31028,
3836 	.hwcg_bit = 1,
3837 	.clkr = {
3838 		.enable_reg = 0x52018,
3839 		.enable_mask = BIT(22),
3840 		.hw.init = &(const struct clk_init_data) {
3841 			.name = "gcc_pcie_6a_mstr_axi_clk",
3842 			.ops = &clk_branch2_ops,
3843 		},
3844 	},
3845 };
3846 
3847 static struct clk_branch gcc_pcie_6a_phy_aux_clk = {
3848 	.halt_reg = 0x31044,
3849 	.halt_check = BRANCH_HALT_VOTED,
3850 	.clkr = {
3851 		.enable_reg = 0x52018,
3852 		.enable_mask = BIT(25),
3853 		.hw.init = &(const struct clk_init_data) {
3854 			.name = "gcc_pcie_6a_phy_aux_clk",
3855 			.ops = &clk_branch2_ops,
3856 		},
3857 	},
3858 };
3859 
3860 static struct clk_branch gcc_pcie_6a_phy_rchng_clk = {
3861 	.halt_reg = 0x3105c,
3862 	.halt_check = BRANCH_HALT_VOTED,
3863 	.clkr = {
3864 		.enable_reg = 0x52018,
3865 		.enable_mask = BIT(27),
3866 		.hw.init = &(const struct clk_init_data) {
3867 			.name = "gcc_pcie_6a_phy_rchng_clk",
3868 			.parent_hws = (const struct clk_hw*[]) {
3869 				&gcc_pcie_6a_phy_rchng_clk_src.clkr.hw,
3870 			},
3871 			.num_parents = 1,
3872 			.flags = CLK_SET_RATE_PARENT,
3873 			.ops = &clk_branch2_ops,
3874 		},
3875 	},
3876 };
3877 
3878 static struct clk_branch gcc_pcie_6a_pipe_clk = {
3879 	.halt_reg = 0x31050,
3880 	.halt_check = BRANCH_HALT_SKIP,
3881 	.clkr = {
3882 		.enable_reg = 0x52018,
3883 		.enable_mask = BIT(26),
3884 		.hw.init = &(const struct clk_init_data) {
3885 			.name = "gcc_pcie_6a_pipe_clk",
3886 			.ops = &clk_branch2_ops,
3887 		},
3888 	},
3889 };
3890 
3891 static struct clk_branch gcc_pcie_6a_pipediv2_clk = {
3892 	.halt_reg = 0x31060,
3893 	.halt_check = BRANCH_HALT_SKIP,
3894 	.clkr = {
3895 		.enable_reg = 0x52018,
3896 		.enable_mask = BIT(28),
3897 		.hw.init = &(const struct clk_init_data) {
3898 			.name = "gcc_pcie_6a_pipediv2_clk",
3899 			.parent_hws = (const struct clk_hw*[]) {
3900 				&gcc_pcie_6a_pipe_div_clk_src.clkr.hw,
3901 			},
3902 			.num_parents = 1,
3903 			.flags = CLK_SET_RATE_PARENT,
3904 			.ops = &clk_branch2_ops,
3905 		},
3906 	},
3907 };
3908 
3909 static struct clk_branch gcc_pcie_6a_slv_axi_clk = {
3910 	.halt_reg = 0x3101c,
3911 	.halt_check = BRANCH_HALT_VOTED,
3912 	.hwcg_reg = 0x3101c,
3913 	.hwcg_bit = 1,
3914 	.clkr = {
3915 		.enable_reg = 0x52018,
3916 		.enable_mask = BIT(21),
3917 		.hw.init = &(const struct clk_init_data) {
3918 			.name = "gcc_pcie_6a_slv_axi_clk",
3919 			.ops = &clk_branch2_ops,
3920 		},
3921 	},
3922 };
3923 
3924 static struct clk_branch gcc_pcie_6a_slv_q2a_axi_clk = {
3925 	.halt_reg = 0x31018,
3926 	.halt_check = BRANCH_HALT_VOTED,
3927 	.clkr = {
3928 		.enable_reg = 0x52018,
3929 		.enable_mask = BIT(20),
3930 		.hw.init = &(const struct clk_init_data) {
3931 			.name = "gcc_pcie_6a_slv_q2a_axi_clk",
3932 			.ops = &clk_branch2_ops,
3933 		},
3934 	},
3935 };
3936 
3937 static struct clk_branch gcc_pcie_6b_aux_clk = {
3938 	.halt_reg = 0x8d038,
3939 	.halt_check = BRANCH_HALT_VOTED,
3940 	.clkr = {
3941 		.enable_reg = 0x52000,
3942 		.enable_mask = BIT(29),
3943 		.hw.init = &(const struct clk_init_data) {
3944 			.name = "gcc_pcie_6b_aux_clk",
3945 			.parent_hws = (const struct clk_hw*[]) {
3946 				&gcc_pcie_6b_aux_clk_src.clkr.hw,
3947 			},
3948 			.num_parents = 1,
3949 			.flags = CLK_SET_RATE_PARENT,
3950 			.ops = &clk_branch2_ops,
3951 		},
3952 	},
3953 };
3954 
3955 static struct clk_branch gcc_pcie_6b_cfg_ahb_clk = {
3956 	.halt_reg = 0x8d034,
3957 	.halt_check = BRANCH_HALT_VOTED,
3958 	.hwcg_reg = 0x8d034,
3959 	.hwcg_bit = 1,
3960 	.clkr = {
3961 		.enable_reg = 0x52000,
3962 		.enable_mask = BIT(28),
3963 		.hw.init = &(const struct clk_init_data) {
3964 			.name = "gcc_pcie_6b_cfg_ahb_clk",
3965 			.ops = &clk_branch2_ops,
3966 		},
3967 	},
3968 };
3969 
3970 static struct clk_branch gcc_pcie_6b_mstr_axi_clk = {
3971 	.halt_reg = 0x8d028,
3972 	.halt_check = BRANCH_HALT_SKIP,
3973 	.hwcg_reg = 0x8d028,
3974 	.hwcg_bit = 1,
3975 	.clkr = {
3976 		.enable_reg = 0x52000,
3977 		.enable_mask = BIT(27),
3978 		.hw.init = &(const struct clk_init_data) {
3979 			.name = "gcc_pcie_6b_mstr_axi_clk",
3980 			.ops = &clk_branch2_ops,
3981 		},
3982 	},
3983 };
3984 
3985 static struct clk_branch gcc_pcie_6b_phy_aux_clk = {
3986 	.halt_reg = 0x8d044,
3987 	.halt_check = BRANCH_HALT_VOTED,
3988 	.clkr = {
3989 		.enable_reg = 0x52000,
3990 		.enable_mask = BIT(24),
3991 		.hw.init = &(const struct clk_init_data) {
3992 			.name = "gcc_pcie_6b_phy_aux_clk",
3993 			.ops = &clk_branch2_ops,
3994 		},
3995 	},
3996 };
3997 
3998 static struct clk_branch gcc_pcie_6b_phy_rchng_clk = {
3999 	.halt_reg = 0x8d05c,
4000 	.halt_check = BRANCH_HALT_VOTED,
4001 	.clkr = {
4002 		.enable_reg = 0x52000,
4003 		.enable_mask = BIT(23),
4004 		.hw.init = &(const struct clk_init_data) {
4005 			.name = "gcc_pcie_6b_phy_rchng_clk",
4006 			.parent_hws = (const struct clk_hw*[]) {
4007 				&gcc_pcie_6b_phy_rchng_clk_src.clkr.hw,
4008 			},
4009 			.num_parents = 1,
4010 			.flags = CLK_SET_RATE_PARENT,
4011 			.ops = &clk_branch2_ops,
4012 		},
4013 	},
4014 };
4015 
4016 static struct clk_branch gcc_pcie_6b_pipe_clk = {
4017 	.halt_reg = 0x8d050,
4018 	.halt_check = BRANCH_HALT_SKIP,
4019 	.clkr = {
4020 		.enable_reg = 0x52000,
4021 		.enable_mask = BIT(30),
4022 		.hw.init = &(const struct clk_init_data) {
4023 			.name = "gcc_pcie_6b_pipe_clk",
4024 			.ops = &clk_branch2_ops,
4025 		},
4026 	},
4027 };
4028 
4029 static struct clk_branch gcc_pcie_6b_pipediv2_clk = {
4030 	.halt_reg = 0x8d060,
4031 	.halt_check = BRANCH_HALT_SKIP,
4032 	.clkr = {
4033 		.enable_reg = 0x52010,
4034 		.enable_mask = BIT(28),
4035 		.hw.init = &(const struct clk_init_data) {
4036 			.name = "gcc_pcie_6b_pipediv2_clk",
4037 			.parent_hws = (const struct clk_hw*[]) {
4038 				&gcc_pcie_6b_pipe_div_clk_src.clkr.hw,
4039 			},
4040 			.num_parents = 1,
4041 			.flags = CLK_SET_RATE_PARENT,
4042 			.ops = &clk_branch2_ops,
4043 		},
4044 	},
4045 };
4046 
4047 static struct clk_branch gcc_pcie_6b_slv_axi_clk = {
4048 	.halt_reg = 0x8d01c,
4049 	.halt_check = BRANCH_HALT_VOTED,
4050 	.hwcg_reg = 0x8d01c,
4051 	.hwcg_bit = 1,
4052 	.clkr = {
4053 		.enable_reg = 0x52000,
4054 		.enable_mask = BIT(26),
4055 		.hw.init = &(const struct clk_init_data) {
4056 			.name = "gcc_pcie_6b_slv_axi_clk",
4057 			.ops = &clk_branch2_ops,
4058 		},
4059 	},
4060 };
4061 
4062 static struct clk_branch gcc_pcie_6b_slv_q2a_axi_clk = {
4063 	.halt_reg = 0x8d018,
4064 	.halt_check = BRANCH_HALT_VOTED,
4065 	.clkr = {
4066 		.enable_reg = 0x52000,
4067 		.enable_mask = BIT(25),
4068 		.hw.init = &(const struct clk_init_data) {
4069 			.name = "gcc_pcie_6b_slv_q2a_axi_clk",
4070 			.ops = &clk_branch2_ops,
4071 		},
4072 	},
4073 };
4074 
4075 static struct clk_branch gcc_pcie_rscc_ahb_clk = {
4076 	.halt_reg = 0xa4008,
4077 	.halt_check = BRANCH_HALT_VOTED,
4078 	.hwcg_reg = 0xa4008,
4079 	.hwcg_bit = 1,
4080 	.clkr = {
4081 		.enable_reg = 0x52028,
4082 		.enable_mask = BIT(18),
4083 		.hw.init = &(const struct clk_init_data) {
4084 			.name = "gcc_pcie_rscc_ahb_clk",
4085 			.ops = &clk_branch2_ops,
4086 		},
4087 	},
4088 };
4089 
4090 static struct clk_branch gcc_pcie_rscc_xo_clk = {
4091 	.halt_reg = 0xa4004,
4092 	.halt_check = BRANCH_HALT_VOTED,
4093 	.clkr = {
4094 		.enable_reg = 0x52028,
4095 		.enable_mask = BIT(17),
4096 		.hw.init = &(const struct clk_init_data) {
4097 			.name = "gcc_pcie_rscc_xo_clk",
4098 			.parent_hws = (const struct clk_hw*[]) {
4099 				&gcc_pcie_rscc_xo_clk_src.clkr.hw,
4100 			},
4101 			.num_parents = 1,
4102 			.flags = CLK_SET_RATE_PARENT,
4103 			.ops = &clk_branch2_ops,
4104 		},
4105 	},
4106 };
4107 
4108 static struct clk_branch gcc_pdm2_clk = {
4109 	.halt_reg = 0x3300c,
4110 	.halt_check = BRANCH_HALT,
4111 	.clkr = {
4112 		.enable_reg = 0x3300c,
4113 		.enable_mask = BIT(0),
4114 		.hw.init = &(const struct clk_init_data) {
4115 			.name = "gcc_pdm2_clk",
4116 			.parent_hws = (const struct clk_hw*[]) {
4117 				&gcc_pdm2_clk_src.clkr.hw,
4118 			},
4119 			.num_parents = 1,
4120 			.flags = CLK_SET_RATE_PARENT,
4121 			.ops = &clk_branch2_ops,
4122 		},
4123 	},
4124 };
4125 
4126 static struct clk_branch gcc_pdm_ahb_clk = {
4127 	.halt_reg = 0x33004,
4128 	.halt_check = BRANCH_HALT_VOTED,
4129 	.hwcg_reg = 0x33004,
4130 	.hwcg_bit = 1,
4131 	.clkr = {
4132 		.enable_reg = 0x33004,
4133 		.enable_mask = BIT(0),
4134 		.hw.init = &(const struct clk_init_data) {
4135 			.name = "gcc_pdm_ahb_clk",
4136 			.ops = &clk_branch2_ops,
4137 		},
4138 	},
4139 };
4140 
4141 static struct clk_branch gcc_pdm_xo4_clk = {
4142 	.halt_reg = 0x33008,
4143 	.halt_check = BRANCH_HALT,
4144 	.clkr = {
4145 		.enable_reg = 0x33008,
4146 		.enable_mask = BIT(0),
4147 		.hw.init = &(const struct clk_init_data) {
4148 			.name = "gcc_pdm_xo4_clk",
4149 			.ops = &clk_branch2_ops,
4150 		},
4151 	},
4152 };
4153 
4154 static struct clk_branch gcc_qmip_av1e_ahb_clk = {
4155 	.halt_reg = 0x4a018,
4156 	.halt_check = BRANCH_HALT_VOTED,
4157 	.hwcg_reg = 0x4a018,
4158 	.hwcg_bit = 1,
4159 	.clkr = {
4160 		.enable_reg = 0x4a018,
4161 		.enable_mask = BIT(0),
4162 		.hw.init = &(const struct clk_init_data) {
4163 			.name = "gcc_qmip_av1e_ahb_clk",
4164 			.ops = &clk_branch2_ops,
4165 		},
4166 	},
4167 };
4168 
4169 static struct clk_branch gcc_qmip_camera_nrt_ahb_clk = {
4170 	.halt_reg = 0x26008,
4171 	.halt_check = BRANCH_HALT_VOTED,
4172 	.hwcg_reg = 0x26008,
4173 	.hwcg_bit = 1,
4174 	.clkr = {
4175 		.enable_reg = 0x26008,
4176 		.enable_mask = BIT(0),
4177 		.hw.init = &(const struct clk_init_data) {
4178 			.name = "gcc_qmip_camera_nrt_ahb_clk",
4179 			.ops = &clk_branch2_ops,
4180 		},
4181 	},
4182 };
4183 
4184 static struct clk_branch gcc_qmip_camera_rt_ahb_clk = {
4185 	.halt_reg = 0x2600c,
4186 	.halt_check = BRANCH_HALT_VOTED,
4187 	.hwcg_reg = 0x2600c,
4188 	.hwcg_bit = 1,
4189 	.clkr = {
4190 		.enable_reg = 0x2600c,
4191 		.enable_mask = BIT(0),
4192 		.hw.init = &(const struct clk_init_data) {
4193 			.name = "gcc_qmip_camera_rt_ahb_clk",
4194 			.ops = &clk_branch2_ops,
4195 		},
4196 	},
4197 };
4198 
4199 static struct clk_branch gcc_qmip_disp_ahb_clk = {
4200 	.halt_reg = 0x27008,
4201 	.halt_check = BRANCH_HALT_VOTED,
4202 	.hwcg_reg = 0x27008,
4203 	.hwcg_bit = 1,
4204 	.clkr = {
4205 		.enable_reg = 0x27008,
4206 		.enable_mask = BIT(0),
4207 		.hw.init = &(const struct clk_init_data) {
4208 			.name = "gcc_qmip_disp_ahb_clk",
4209 			.ops = &clk_branch2_ops,
4210 		},
4211 	},
4212 };
4213 
4214 static struct clk_branch gcc_qmip_gpu_ahb_clk = {
4215 	.halt_reg = 0x71008,
4216 	.halt_check = BRANCH_HALT_VOTED,
4217 	.hwcg_reg = 0x71008,
4218 	.hwcg_bit = 1,
4219 	.clkr = {
4220 		.enable_reg = 0x71008,
4221 		.enable_mask = BIT(0),
4222 		.hw.init = &(const struct clk_init_data) {
4223 			.name = "gcc_qmip_gpu_ahb_clk",
4224 			.ops = &clk_branch2_ops,
4225 		},
4226 	},
4227 };
4228 
4229 static struct clk_branch gcc_qmip_video_cv_cpu_ahb_clk = {
4230 	.halt_reg = 0x32014,
4231 	.halt_check = BRANCH_HALT_VOTED,
4232 	.hwcg_reg = 0x32014,
4233 	.hwcg_bit = 1,
4234 	.clkr = {
4235 		.enable_reg = 0x32014,
4236 		.enable_mask = BIT(0),
4237 		.hw.init = &(const struct clk_init_data) {
4238 			.name = "gcc_qmip_video_cv_cpu_ahb_clk",
4239 			.ops = &clk_branch2_ops,
4240 		},
4241 	},
4242 };
4243 
4244 static struct clk_branch gcc_qmip_video_cvp_ahb_clk = {
4245 	.halt_reg = 0x32008,
4246 	.halt_check = BRANCH_HALT_VOTED,
4247 	.hwcg_reg = 0x32008,
4248 	.hwcg_bit = 1,
4249 	.clkr = {
4250 		.enable_reg = 0x32008,
4251 		.enable_mask = BIT(0),
4252 		.hw.init = &(const struct clk_init_data) {
4253 			.name = "gcc_qmip_video_cvp_ahb_clk",
4254 			.ops = &clk_branch2_ops,
4255 		},
4256 	},
4257 };
4258 
4259 static struct clk_branch gcc_qmip_video_v_cpu_ahb_clk = {
4260 	.halt_reg = 0x32010,
4261 	.halt_check = BRANCH_HALT_VOTED,
4262 	.hwcg_reg = 0x32010,
4263 	.hwcg_bit = 1,
4264 	.clkr = {
4265 		.enable_reg = 0x32010,
4266 		.enable_mask = BIT(0),
4267 		.hw.init = &(const struct clk_init_data) {
4268 			.name = "gcc_qmip_video_v_cpu_ahb_clk",
4269 			.ops = &clk_branch2_ops,
4270 		},
4271 	},
4272 };
4273 
4274 static struct clk_branch gcc_qmip_video_vcodec_ahb_clk = {
4275 	.halt_reg = 0x3200c,
4276 	.halt_check = BRANCH_HALT_VOTED,
4277 	.hwcg_reg = 0x3200c,
4278 	.hwcg_bit = 1,
4279 	.clkr = {
4280 		.enable_reg = 0x3200c,
4281 		.enable_mask = BIT(0),
4282 		.hw.init = &(const struct clk_init_data) {
4283 			.name = "gcc_qmip_video_vcodec_ahb_clk",
4284 			.ops = &clk_branch2_ops,
4285 		},
4286 	},
4287 };
4288 
4289 static struct clk_branch gcc_qupv3_wrap0_core_2x_clk = {
4290 	.halt_reg = 0x23018,
4291 	.halt_check = BRANCH_HALT_VOTED,
4292 	.clkr = {
4293 		.enable_reg = 0x52020,
4294 		.enable_mask = BIT(9),
4295 		.hw.init = &(const struct clk_init_data) {
4296 			.name = "gcc_qupv3_wrap0_core_2x_clk",
4297 			.ops = &clk_branch2_ops,
4298 		},
4299 	},
4300 };
4301 
4302 static struct clk_branch gcc_qupv3_wrap0_core_clk = {
4303 	.halt_reg = 0x23008,
4304 	.halt_check = BRANCH_HALT_VOTED,
4305 	.clkr = {
4306 		.enable_reg = 0x52020,
4307 		.enable_mask = BIT(8),
4308 		.hw.init = &(const struct clk_init_data) {
4309 			.name = "gcc_qupv3_wrap0_core_clk",
4310 			.ops = &clk_branch2_ops,
4311 		},
4312 	},
4313 };
4314 
4315 static struct clk_branch gcc_qupv3_wrap0_qspi_s2_clk = {
4316 	.halt_reg = 0x42280,
4317 	.halt_check = BRANCH_HALT_VOTED,
4318 	.clkr = {
4319 		.enable_reg = 0x52028,
4320 		.enable_mask = BIT(2),
4321 		.hw.init = &(const struct clk_init_data) {
4322 			.name = "gcc_qupv3_wrap0_qspi_s2_clk",
4323 			.parent_hws = (const struct clk_hw*[]) {
4324 				&gcc_qupv3_wrap0_s2_clk_src.clkr.hw,
4325 			},
4326 			.num_parents = 1,
4327 			.flags = CLK_SET_RATE_PARENT,
4328 			.ops = &clk_branch2_ops,
4329 		},
4330 	},
4331 };
4332 
4333 static struct clk_branch gcc_qupv3_wrap0_qspi_s3_clk = {
4334 	.halt_reg = 0x423c0,
4335 	.halt_check = BRANCH_HALT_VOTED,
4336 	.clkr = {
4337 		.enable_reg = 0x52028,
4338 		.enable_mask = BIT(3),
4339 		.hw.init = &(const struct clk_init_data) {
4340 			.name = "gcc_qupv3_wrap0_qspi_s3_clk",
4341 			.parent_hws = (const struct clk_hw*[]) {
4342 				&gcc_qupv3_wrap0_s3_clk_src.clkr.hw,
4343 			},
4344 			.num_parents = 1,
4345 			.flags = CLK_SET_RATE_PARENT,
4346 			.ops = &clk_branch2_ops,
4347 		},
4348 	},
4349 };
4350 
4351 static struct clk_branch gcc_qupv3_wrap0_s0_clk = {
4352 	.halt_reg = 0x42004,
4353 	.halt_check = BRANCH_HALT_VOTED,
4354 	.clkr = {
4355 		.enable_reg = 0x52020,
4356 		.enable_mask = BIT(10),
4357 		.hw.init = &(const struct clk_init_data) {
4358 			.name = "gcc_qupv3_wrap0_s0_clk",
4359 			.parent_hws = (const struct clk_hw*[]) {
4360 				&gcc_qupv3_wrap0_s0_clk_src.clkr.hw,
4361 			},
4362 			.num_parents = 1,
4363 			.flags = CLK_SET_RATE_PARENT,
4364 			.ops = &clk_branch2_ops,
4365 		},
4366 	},
4367 };
4368 
4369 static struct clk_branch gcc_qupv3_wrap0_s1_clk = {
4370 	.halt_reg = 0x4213c,
4371 	.halt_check = BRANCH_HALT_VOTED,
4372 	.clkr = {
4373 		.enable_reg = 0x52020,
4374 		.enable_mask = BIT(11),
4375 		.hw.init = &(const struct clk_init_data) {
4376 			.name = "gcc_qupv3_wrap0_s1_clk",
4377 			.parent_hws = (const struct clk_hw*[]) {
4378 				&gcc_qupv3_wrap0_s1_clk_src.clkr.hw,
4379 			},
4380 			.num_parents = 1,
4381 			.flags = CLK_SET_RATE_PARENT,
4382 			.ops = &clk_branch2_ops,
4383 		},
4384 	},
4385 };
4386 
4387 static struct clk_branch gcc_qupv3_wrap0_s2_clk = {
4388 	.halt_reg = 0x42274,
4389 	.halt_check = BRANCH_HALT_VOTED,
4390 	.clkr = {
4391 		.enable_reg = 0x52020,
4392 		.enable_mask = BIT(12),
4393 		.hw.init = &(const struct clk_init_data) {
4394 			.name = "gcc_qupv3_wrap0_s2_clk",
4395 			.parent_hws = (const struct clk_hw*[]) {
4396 				&gcc_qupv3_wrap0_s2_div_clk_src.clkr.hw,
4397 			},
4398 			.num_parents = 1,
4399 			.flags = CLK_SET_RATE_PARENT,
4400 			.ops = &clk_branch2_ops,
4401 		},
4402 	},
4403 };
4404 
4405 static struct clk_branch gcc_qupv3_wrap0_s3_clk = {
4406 	.halt_reg = 0x423b4,
4407 	.halt_check = BRANCH_HALT_VOTED,
4408 	.clkr = {
4409 		.enable_reg = 0x52020,
4410 		.enable_mask = BIT(13),
4411 		.hw.init = &(const struct clk_init_data) {
4412 			.name = "gcc_qupv3_wrap0_s3_clk",
4413 			.parent_hws = (const struct clk_hw*[]) {
4414 				&gcc_qupv3_wrap0_s3_div_clk_src.clkr.hw,
4415 			},
4416 			.num_parents = 1,
4417 			.flags = CLK_SET_RATE_PARENT,
4418 			.ops = &clk_branch2_ops,
4419 		},
4420 	},
4421 };
4422 
4423 static struct clk_branch gcc_qupv3_wrap0_s4_clk = {
4424 	.halt_reg = 0x424f4,
4425 	.halt_check = BRANCH_HALT_VOTED,
4426 	.clkr = {
4427 		.enable_reg = 0x52020,
4428 		.enable_mask = BIT(14),
4429 		.hw.init = &(const struct clk_init_data) {
4430 			.name = "gcc_qupv3_wrap0_s4_clk",
4431 			.parent_hws = (const struct clk_hw*[]) {
4432 				&gcc_qupv3_wrap0_s4_clk_src.clkr.hw,
4433 			},
4434 			.num_parents = 1,
4435 			.flags = CLK_SET_RATE_PARENT,
4436 			.ops = &clk_branch2_ops,
4437 		},
4438 	},
4439 };
4440 
4441 static struct clk_branch gcc_qupv3_wrap0_s5_clk = {
4442 	.halt_reg = 0x4262c,
4443 	.halt_check = BRANCH_HALT_VOTED,
4444 	.clkr = {
4445 		.enable_reg = 0x52020,
4446 		.enable_mask = BIT(15),
4447 		.hw.init = &(const struct clk_init_data) {
4448 			.name = "gcc_qupv3_wrap0_s5_clk",
4449 			.parent_hws = (const struct clk_hw*[]) {
4450 				&gcc_qupv3_wrap0_s5_clk_src.clkr.hw,
4451 			},
4452 			.num_parents = 1,
4453 			.flags = CLK_SET_RATE_PARENT,
4454 			.ops = &clk_branch2_ops,
4455 		},
4456 	},
4457 };
4458 
4459 static struct clk_branch gcc_qupv3_wrap0_s6_clk = {
4460 	.halt_reg = 0x42764,
4461 	.halt_check = BRANCH_HALT_VOTED,
4462 	.clkr = {
4463 		.enable_reg = 0x52020,
4464 		.enable_mask = BIT(16),
4465 		.hw.init = &(const struct clk_init_data) {
4466 			.name = "gcc_qupv3_wrap0_s6_clk",
4467 			.parent_hws = (const struct clk_hw*[]) {
4468 				&gcc_qupv3_wrap0_s6_clk_src.clkr.hw,
4469 			},
4470 			.num_parents = 1,
4471 			.flags = CLK_SET_RATE_PARENT,
4472 			.ops = &clk_branch2_ops,
4473 		},
4474 	},
4475 };
4476 
4477 static struct clk_branch gcc_qupv3_wrap0_s7_clk = {
4478 	.halt_reg = 0x4289c,
4479 	.halt_check = BRANCH_HALT_VOTED,
4480 	.clkr = {
4481 		.enable_reg = 0x52020,
4482 		.enable_mask = BIT(17),
4483 		.hw.init = &(const struct clk_init_data) {
4484 			.name = "gcc_qupv3_wrap0_s7_clk",
4485 			.parent_hws = (const struct clk_hw*[]) {
4486 				&gcc_qupv3_wrap0_s7_clk_src.clkr.hw,
4487 			},
4488 			.num_parents = 1,
4489 			.flags = CLK_SET_RATE_PARENT,
4490 			.ops = &clk_branch2_ops,
4491 		},
4492 	},
4493 };
4494 
4495 static struct clk_branch gcc_qupv3_wrap1_core_2x_clk = {
4496 	.halt_reg = 0x23168,
4497 	.halt_check = BRANCH_HALT_VOTED,
4498 	.clkr = {
4499 		.enable_reg = 0x52008,
4500 		.enable_mask = BIT(18),
4501 		.hw.init = &(const struct clk_init_data) {
4502 			.name = "gcc_qupv3_wrap1_core_2x_clk",
4503 			.ops = &clk_branch2_ops,
4504 		},
4505 	},
4506 };
4507 
4508 static struct clk_branch gcc_qupv3_wrap1_core_clk = {
4509 	.halt_reg = 0x23158,
4510 	.halt_check = BRANCH_HALT_VOTED,
4511 	.clkr = {
4512 		.enable_reg = 0x52008,
4513 		.enable_mask = BIT(19),
4514 		.hw.init = &(const struct clk_init_data) {
4515 			.name = "gcc_qupv3_wrap1_core_clk",
4516 			.ops = &clk_branch2_ops,
4517 		},
4518 	},
4519 };
4520 
4521 static struct clk_branch gcc_qupv3_wrap1_qspi_s2_clk = {
4522 	.halt_reg = 0x18280,
4523 	.halt_check = BRANCH_HALT_VOTED,
4524 	.clkr = {
4525 		.enable_reg = 0x52028,
4526 		.enable_mask = BIT(4),
4527 		.hw.init = &(const struct clk_init_data) {
4528 			.name = "gcc_qupv3_wrap1_qspi_s2_clk",
4529 			.parent_hws = (const struct clk_hw*[]) {
4530 				&gcc_qupv3_wrap1_s2_clk_src.clkr.hw,
4531 			},
4532 			.num_parents = 1,
4533 			.flags = CLK_SET_RATE_PARENT,
4534 			.ops = &clk_branch2_ops,
4535 		},
4536 	},
4537 };
4538 
4539 static struct clk_branch gcc_qupv3_wrap1_qspi_s3_clk = {
4540 	.halt_reg = 0x183c0,
4541 	.halt_check = BRANCH_HALT_VOTED,
4542 	.clkr = {
4543 		.enable_reg = 0x52028,
4544 		.enable_mask = BIT(5),
4545 		.hw.init = &(const struct clk_init_data) {
4546 			.name = "gcc_qupv3_wrap1_qspi_s3_clk",
4547 			.parent_hws = (const struct clk_hw*[]) {
4548 				&gcc_qupv3_wrap1_s3_clk_src.clkr.hw,
4549 			},
4550 			.num_parents = 1,
4551 			.flags = CLK_SET_RATE_PARENT,
4552 			.ops = &clk_branch2_ops,
4553 		},
4554 	},
4555 };
4556 
4557 static struct clk_branch gcc_qupv3_wrap1_s0_clk = {
4558 	.halt_reg = 0x18004,
4559 	.halt_check = BRANCH_HALT_VOTED,
4560 	.clkr = {
4561 		.enable_reg = 0x52008,
4562 		.enable_mask = BIT(22),
4563 		.hw.init = &(const struct clk_init_data) {
4564 			.name = "gcc_qupv3_wrap1_s0_clk",
4565 			.parent_hws = (const struct clk_hw*[]) {
4566 				&gcc_qupv3_wrap1_s0_clk_src.clkr.hw,
4567 			},
4568 			.num_parents = 1,
4569 			.flags = CLK_SET_RATE_PARENT,
4570 			.ops = &clk_branch2_ops,
4571 		},
4572 	},
4573 };
4574 
4575 static struct clk_branch gcc_qupv3_wrap1_s1_clk = {
4576 	.halt_reg = 0x1813c,
4577 	.halt_check = BRANCH_HALT_VOTED,
4578 	.clkr = {
4579 		.enable_reg = 0x52008,
4580 		.enable_mask = BIT(23),
4581 		.hw.init = &(const struct clk_init_data) {
4582 			.name = "gcc_qupv3_wrap1_s1_clk",
4583 			.parent_hws = (const struct clk_hw*[]) {
4584 				&gcc_qupv3_wrap1_s1_clk_src.clkr.hw,
4585 			},
4586 			.num_parents = 1,
4587 			.flags = CLK_SET_RATE_PARENT,
4588 			.ops = &clk_branch2_ops,
4589 		},
4590 	},
4591 };
4592 
4593 static struct clk_branch gcc_qupv3_wrap1_s2_clk = {
4594 	.halt_reg = 0x18274,
4595 	.halt_check = BRANCH_HALT_VOTED,
4596 	.clkr = {
4597 		.enable_reg = 0x52008,
4598 		.enable_mask = BIT(24),
4599 		.hw.init = &(const struct clk_init_data) {
4600 			.name = "gcc_qupv3_wrap1_s2_clk",
4601 			.parent_hws = (const struct clk_hw*[]) {
4602 				&gcc_qupv3_wrap1_s2_div_clk_src.clkr.hw,
4603 			},
4604 			.num_parents = 1,
4605 			.flags = CLK_SET_RATE_PARENT,
4606 			.ops = &clk_branch2_ops,
4607 		},
4608 	},
4609 };
4610 
4611 static struct clk_branch gcc_qupv3_wrap1_s3_clk = {
4612 	.halt_reg = 0x183b4,
4613 	.halt_check = BRANCH_HALT_VOTED,
4614 	.clkr = {
4615 		.enable_reg = 0x52008,
4616 		.enable_mask = BIT(25),
4617 		.hw.init = &(const struct clk_init_data) {
4618 			.name = "gcc_qupv3_wrap1_s3_clk",
4619 			.parent_hws = (const struct clk_hw*[]) {
4620 				&gcc_qupv3_wrap1_s3_div_clk_src.clkr.hw,
4621 			},
4622 			.num_parents = 1,
4623 			.flags = CLK_SET_RATE_PARENT,
4624 			.ops = &clk_branch2_ops,
4625 		},
4626 	},
4627 };
4628 
4629 static struct clk_branch gcc_qupv3_wrap1_s4_clk = {
4630 	.halt_reg = 0x184f4,
4631 	.halt_check = BRANCH_HALT_VOTED,
4632 	.clkr = {
4633 		.enable_reg = 0x52008,
4634 		.enable_mask = BIT(26),
4635 		.hw.init = &(const struct clk_init_data) {
4636 			.name = "gcc_qupv3_wrap1_s4_clk",
4637 			.parent_hws = (const struct clk_hw*[]) {
4638 				&gcc_qupv3_wrap1_s4_clk_src.clkr.hw,
4639 			},
4640 			.num_parents = 1,
4641 			.flags = CLK_SET_RATE_PARENT,
4642 			.ops = &clk_branch2_ops,
4643 		},
4644 	},
4645 };
4646 
4647 static struct clk_branch gcc_qupv3_wrap1_s5_clk = {
4648 	.halt_reg = 0x1862c,
4649 	.halt_check = BRANCH_HALT_VOTED,
4650 	.clkr = {
4651 		.enable_reg = 0x52008,
4652 		.enable_mask = BIT(27),
4653 		.hw.init = &(const struct clk_init_data) {
4654 			.name = "gcc_qupv3_wrap1_s5_clk",
4655 			.parent_hws = (const struct clk_hw*[]) {
4656 				&gcc_qupv3_wrap1_s5_clk_src.clkr.hw,
4657 			},
4658 			.num_parents = 1,
4659 			.flags = CLK_SET_RATE_PARENT,
4660 			.ops = &clk_branch2_ops,
4661 		},
4662 	},
4663 };
4664 
4665 static struct clk_branch gcc_qupv3_wrap1_s6_clk = {
4666 	.halt_reg = 0x18764,
4667 	.halt_check = BRANCH_HALT_VOTED,
4668 	.clkr = {
4669 		.enable_reg = 0x52008,
4670 		.enable_mask = BIT(28),
4671 		.hw.init = &(const struct clk_init_data) {
4672 			.name = "gcc_qupv3_wrap1_s6_clk",
4673 			.parent_hws = (const struct clk_hw*[]) {
4674 				&gcc_qupv3_wrap1_s6_clk_src.clkr.hw,
4675 			},
4676 			.num_parents = 1,
4677 			.flags = CLK_SET_RATE_PARENT,
4678 			.ops = &clk_branch2_ops,
4679 		},
4680 	},
4681 };
4682 
4683 static struct clk_branch gcc_qupv3_wrap1_s7_clk = {
4684 	.halt_reg = 0x1889c,
4685 	.halt_check = BRANCH_HALT_VOTED,
4686 	.clkr = {
4687 		.enable_reg = 0x52010,
4688 		.enable_mask = BIT(16),
4689 		.hw.init = &(const struct clk_init_data) {
4690 			.name = "gcc_qupv3_wrap1_s7_clk",
4691 			.parent_hws = (const struct clk_hw*[]) {
4692 				&gcc_qupv3_wrap1_s7_clk_src.clkr.hw,
4693 			},
4694 			.num_parents = 1,
4695 			.flags = CLK_SET_RATE_PARENT,
4696 			.ops = &clk_branch2_ops,
4697 		},
4698 	},
4699 };
4700 
4701 static struct clk_branch gcc_qupv3_wrap2_core_2x_clk = {
4702 	.halt_reg = 0x232b8,
4703 	.halt_check = BRANCH_HALT_VOTED,
4704 	.clkr = {
4705 		.enable_reg = 0x52010,
4706 		.enable_mask = BIT(3),
4707 		.hw.init = &(const struct clk_init_data) {
4708 			.name = "gcc_qupv3_wrap2_core_2x_clk",
4709 			.ops = &clk_branch2_ops,
4710 		},
4711 	},
4712 };
4713 
4714 static struct clk_branch gcc_qupv3_wrap2_core_clk = {
4715 	.halt_reg = 0x232a8,
4716 	.halt_check = BRANCH_HALT_VOTED,
4717 	.clkr = {
4718 		.enable_reg = 0x52010,
4719 		.enable_mask = BIT(0),
4720 		.hw.init = &(const struct clk_init_data) {
4721 			.name = "gcc_qupv3_wrap2_core_clk",
4722 			.ops = &clk_branch2_ops,
4723 		},
4724 	},
4725 };
4726 
4727 static struct clk_branch gcc_qupv3_wrap2_qspi_s2_clk = {
4728 	.halt_reg = 0x1e280,
4729 	.halt_check = BRANCH_HALT_VOTED,
4730 	.clkr = {
4731 		.enable_reg = 0x52028,
4732 		.enable_mask = BIT(6),
4733 		.hw.init = &(const struct clk_init_data) {
4734 			.name = "gcc_qupv3_wrap2_qspi_s2_clk",
4735 			.parent_hws = (const struct clk_hw*[]) {
4736 				&gcc_qupv3_wrap2_s2_clk_src.clkr.hw,
4737 			},
4738 			.num_parents = 1,
4739 			.flags = CLK_SET_RATE_PARENT,
4740 			.ops = &clk_branch2_ops,
4741 		},
4742 	},
4743 };
4744 
4745 static struct clk_branch gcc_qupv3_wrap2_qspi_s3_clk = {
4746 	.halt_reg = 0x1e3c0,
4747 	.halt_check = BRANCH_HALT_VOTED,
4748 	.clkr = {
4749 		.enable_reg = 0x52028,
4750 		.enable_mask = BIT(7),
4751 		.hw.init = &(const struct clk_init_data) {
4752 			.name = "gcc_qupv3_wrap2_qspi_s3_clk",
4753 			.parent_hws = (const struct clk_hw*[]) {
4754 				&gcc_qupv3_wrap2_s3_clk_src.clkr.hw,
4755 			},
4756 			.num_parents = 1,
4757 			.flags = CLK_SET_RATE_PARENT,
4758 			.ops = &clk_branch2_ops,
4759 		},
4760 	},
4761 };
4762 
4763 static struct clk_branch gcc_qupv3_wrap2_s0_clk = {
4764 	.halt_reg = 0x1e004,
4765 	.halt_check = BRANCH_HALT_VOTED,
4766 	.clkr = {
4767 		.enable_reg = 0x52010,
4768 		.enable_mask = BIT(4),
4769 		.hw.init = &(const struct clk_init_data) {
4770 			.name = "gcc_qupv3_wrap2_s0_clk",
4771 			.parent_hws = (const struct clk_hw*[]) {
4772 				&gcc_qupv3_wrap2_s0_clk_src.clkr.hw,
4773 			},
4774 			.num_parents = 1,
4775 			.flags = CLK_SET_RATE_PARENT,
4776 			.ops = &clk_branch2_ops,
4777 		},
4778 	},
4779 };
4780 
4781 static struct clk_branch gcc_qupv3_wrap2_s1_clk = {
4782 	.halt_reg = 0x1e13c,
4783 	.halt_check = BRANCH_HALT_VOTED,
4784 	.clkr = {
4785 		.enable_reg = 0x52010,
4786 		.enable_mask = BIT(5),
4787 		.hw.init = &(const struct clk_init_data) {
4788 			.name = "gcc_qupv3_wrap2_s1_clk",
4789 			.parent_hws = (const struct clk_hw*[]) {
4790 				&gcc_qupv3_wrap2_s1_clk_src.clkr.hw,
4791 			},
4792 			.num_parents = 1,
4793 			.flags = CLK_SET_RATE_PARENT,
4794 			.ops = &clk_branch2_ops,
4795 		},
4796 	},
4797 };
4798 
4799 static struct clk_branch gcc_qupv3_wrap2_s2_clk = {
4800 	.halt_reg = 0x1e274,
4801 	.halt_check = BRANCH_HALT_VOTED,
4802 	.clkr = {
4803 		.enable_reg = 0x52010,
4804 		.enable_mask = BIT(6),
4805 		.hw.init = &(const struct clk_init_data) {
4806 			.name = "gcc_qupv3_wrap2_s2_clk",
4807 			.parent_hws = (const struct clk_hw*[]) {
4808 				&gcc_qupv3_wrap2_s2_div_clk_src.clkr.hw,
4809 			},
4810 			.num_parents = 1,
4811 			.flags = CLK_SET_RATE_PARENT,
4812 			.ops = &clk_branch2_ops,
4813 		},
4814 	},
4815 };
4816 
4817 static struct clk_branch gcc_qupv3_wrap2_s3_clk = {
4818 	.halt_reg = 0x1e3b4,
4819 	.halt_check = BRANCH_HALT_VOTED,
4820 	.clkr = {
4821 		.enable_reg = 0x52010,
4822 		.enable_mask = BIT(7),
4823 		.hw.init = &(const struct clk_init_data) {
4824 			.name = "gcc_qupv3_wrap2_s3_clk",
4825 			.parent_hws = (const struct clk_hw*[]) {
4826 				&gcc_qupv3_wrap2_s3_div_clk_src.clkr.hw,
4827 			},
4828 			.num_parents = 1,
4829 			.flags = CLK_SET_RATE_PARENT,
4830 			.ops = &clk_branch2_ops,
4831 		},
4832 	},
4833 };
4834 
4835 static struct clk_branch gcc_qupv3_wrap2_s4_clk = {
4836 	.halt_reg = 0x1e4f4,
4837 	.halt_check = BRANCH_HALT_VOTED,
4838 	.clkr = {
4839 		.enable_reg = 0x52010,
4840 		.enable_mask = BIT(8),
4841 		.hw.init = &(const struct clk_init_data) {
4842 			.name = "gcc_qupv3_wrap2_s4_clk",
4843 			.parent_hws = (const struct clk_hw*[]) {
4844 				&gcc_qupv3_wrap2_s4_clk_src.clkr.hw,
4845 			},
4846 			.num_parents = 1,
4847 			.flags = CLK_SET_RATE_PARENT,
4848 			.ops = &clk_branch2_ops,
4849 		},
4850 	},
4851 };
4852 
4853 static struct clk_branch gcc_qupv3_wrap2_s5_clk = {
4854 	.halt_reg = 0x1e62c,
4855 	.halt_check = BRANCH_HALT_VOTED,
4856 	.clkr = {
4857 		.enable_reg = 0x52010,
4858 		.enable_mask = BIT(9),
4859 		.hw.init = &(const struct clk_init_data) {
4860 			.name = "gcc_qupv3_wrap2_s5_clk",
4861 			.parent_hws = (const struct clk_hw*[]) {
4862 				&gcc_qupv3_wrap2_s5_clk_src.clkr.hw,
4863 			},
4864 			.num_parents = 1,
4865 			.flags = CLK_SET_RATE_PARENT,
4866 			.ops = &clk_branch2_ops,
4867 		},
4868 	},
4869 };
4870 
4871 static struct clk_branch gcc_qupv3_wrap2_s6_clk = {
4872 	.halt_reg = 0x1e764,
4873 	.halt_check = BRANCH_HALT_VOTED,
4874 	.clkr = {
4875 		.enable_reg = 0x52010,
4876 		.enable_mask = BIT(10),
4877 		.hw.init = &(const struct clk_init_data) {
4878 			.name = "gcc_qupv3_wrap2_s6_clk",
4879 			.parent_hws = (const struct clk_hw*[]) {
4880 				&gcc_qupv3_wrap2_s6_clk_src.clkr.hw,
4881 			},
4882 			.num_parents = 1,
4883 			.flags = CLK_SET_RATE_PARENT,
4884 			.ops = &clk_branch2_ops,
4885 		},
4886 	},
4887 };
4888 
4889 static struct clk_branch gcc_qupv3_wrap2_s7_clk = {
4890 	.halt_reg = 0x1e89c,
4891 	.halt_check = BRANCH_HALT_VOTED,
4892 	.clkr = {
4893 		.enable_reg = 0x52010,
4894 		.enable_mask = BIT(17),
4895 		.hw.init = &(const struct clk_init_data) {
4896 			.name = "gcc_qupv3_wrap2_s7_clk",
4897 			.parent_hws = (const struct clk_hw*[]) {
4898 				&gcc_qupv3_wrap2_s7_clk_src.clkr.hw,
4899 			},
4900 			.num_parents = 1,
4901 			.flags = CLK_SET_RATE_PARENT,
4902 			.ops = &clk_branch2_ops,
4903 		},
4904 	},
4905 };
4906 
4907 static struct clk_branch gcc_qupv3_wrap_0_m_ahb_clk = {
4908 	.halt_reg = 0x23000,
4909 	.halt_check = BRANCH_HALT_VOTED,
4910 	.hwcg_reg = 0x23000,
4911 	.hwcg_bit = 1,
4912 	.clkr = {
4913 		.enable_reg = 0x52020,
4914 		.enable_mask = BIT(6),
4915 		.hw.init = &(const struct clk_init_data) {
4916 			.name = "gcc_qupv3_wrap_0_m_ahb_clk",
4917 			.ops = &clk_branch2_ops,
4918 		},
4919 	},
4920 };
4921 
4922 static struct clk_branch gcc_qupv3_wrap_0_s_ahb_clk = {
4923 	.halt_reg = 0x23004,
4924 	.halt_check = BRANCH_HALT_VOTED,
4925 	.hwcg_reg = 0x23004,
4926 	.hwcg_bit = 1,
4927 	.clkr = {
4928 		.enable_reg = 0x52020,
4929 		.enable_mask = BIT(7),
4930 		.hw.init = &(const struct clk_init_data) {
4931 			.name = "gcc_qupv3_wrap_0_s_ahb_clk",
4932 			.ops = &clk_branch2_ops,
4933 		},
4934 	},
4935 };
4936 
4937 static struct clk_branch gcc_qupv3_wrap_1_m_ahb_clk = {
4938 	.halt_reg = 0x23150,
4939 	.halt_check = BRANCH_HALT_VOTED,
4940 	.hwcg_reg = 0x23150,
4941 	.hwcg_bit = 1,
4942 	.clkr = {
4943 		.enable_reg = 0x52008,
4944 		.enable_mask = BIT(20),
4945 		.hw.init = &(const struct clk_init_data) {
4946 			.name = "gcc_qupv3_wrap_1_m_ahb_clk",
4947 			.ops = &clk_branch2_ops,
4948 		},
4949 	},
4950 };
4951 
4952 static struct clk_branch gcc_qupv3_wrap_1_s_ahb_clk = {
4953 	.halt_reg = 0x23154,
4954 	.halt_check = BRANCH_HALT_VOTED,
4955 	.hwcg_reg = 0x23154,
4956 	.hwcg_bit = 1,
4957 	.clkr = {
4958 		.enable_reg = 0x52008,
4959 		.enable_mask = BIT(21),
4960 		.hw.init = &(const struct clk_init_data) {
4961 			.name = "gcc_qupv3_wrap_1_s_ahb_clk",
4962 			.ops = &clk_branch2_ops,
4963 		},
4964 	},
4965 };
4966 
4967 static struct clk_branch gcc_qupv3_wrap_2_m_ahb_clk = {
4968 	.halt_reg = 0x232a0,
4969 	.halt_check = BRANCH_HALT_VOTED,
4970 	.hwcg_reg = 0x232a0,
4971 	.hwcg_bit = 1,
4972 	.clkr = {
4973 		.enable_reg = 0x52010,
4974 		.enable_mask = BIT(2),
4975 		.hw.init = &(const struct clk_init_data) {
4976 			.name = "gcc_qupv3_wrap_2_m_ahb_clk",
4977 			.ops = &clk_branch2_ops,
4978 		},
4979 	},
4980 };
4981 
4982 static struct clk_branch gcc_qupv3_wrap_2_s_ahb_clk = {
4983 	.halt_reg = 0x232a4,
4984 	.halt_check = BRANCH_HALT_VOTED,
4985 	.hwcg_reg = 0x232a4,
4986 	.hwcg_bit = 1,
4987 	.clkr = {
4988 		.enable_reg = 0x52010,
4989 		.enable_mask = BIT(1),
4990 		.hw.init = &(const struct clk_init_data) {
4991 			.name = "gcc_qupv3_wrap_2_s_ahb_clk",
4992 			.ops = &clk_branch2_ops,
4993 		},
4994 	},
4995 };
4996 
4997 static struct clk_branch gcc_sdcc2_ahb_clk = {
4998 	.halt_reg = 0x14010,
4999 	.halt_check = BRANCH_HALT,
5000 	.clkr = {
5001 		.enable_reg = 0x14010,
5002 		.enable_mask = BIT(0),
5003 		.hw.init = &(const struct clk_init_data) {
5004 			.name = "gcc_sdcc2_ahb_clk",
5005 			.ops = &clk_branch2_ops,
5006 		},
5007 	},
5008 };
5009 
5010 static struct clk_branch gcc_sdcc2_apps_clk = {
5011 	.halt_reg = 0x14004,
5012 	.halt_check = BRANCH_HALT,
5013 	.clkr = {
5014 		.enable_reg = 0x14004,
5015 		.enable_mask = BIT(0),
5016 		.hw.init = &(const struct clk_init_data) {
5017 			.name = "gcc_sdcc2_apps_clk",
5018 			.parent_hws = (const struct clk_hw*[]) {
5019 				&gcc_sdcc2_apps_clk_src.clkr.hw,
5020 			},
5021 			.num_parents = 1,
5022 			.flags = CLK_SET_RATE_PARENT,
5023 			.ops = &clk_branch2_ops,
5024 		},
5025 	},
5026 };
5027 
5028 static struct clk_branch gcc_sdcc4_ahb_clk = {
5029 	.halt_reg = 0x16010,
5030 	.halt_check = BRANCH_HALT,
5031 	.clkr = {
5032 		.enable_reg = 0x16010,
5033 		.enable_mask = BIT(0),
5034 		.hw.init = &(const struct clk_init_data) {
5035 			.name = "gcc_sdcc4_ahb_clk",
5036 			.ops = &clk_branch2_ops,
5037 		},
5038 	},
5039 };
5040 
5041 static struct clk_branch gcc_sdcc4_apps_clk = {
5042 	.halt_reg = 0x16004,
5043 	.halt_check = BRANCH_HALT,
5044 	.clkr = {
5045 		.enable_reg = 0x16004,
5046 		.enable_mask = BIT(0),
5047 		.hw.init = &(const struct clk_init_data) {
5048 			.name = "gcc_sdcc4_apps_clk",
5049 			.parent_hws = (const struct clk_hw*[]) {
5050 				&gcc_sdcc4_apps_clk_src.clkr.hw,
5051 			},
5052 			.num_parents = 1,
5053 			.flags = CLK_SET_RATE_PARENT,
5054 			.ops = &clk_branch2_ops,
5055 		},
5056 	},
5057 };
5058 
5059 static struct clk_branch gcc_sys_noc_usb_axi_clk = {
5060 	.halt_reg = 0x2d014,
5061 	.halt_check = BRANCH_HALT_VOTED,
5062 	.hwcg_reg = 0x2d014,
5063 	.hwcg_bit = 1,
5064 	.clkr = {
5065 		.enable_reg = 0x2d014,
5066 		.enable_mask = BIT(0),
5067 		.hw.init = &(const struct clk_init_data) {
5068 			.name = "gcc_sys_noc_usb_axi_clk",
5069 			.ops = &clk_branch2_ops,
5070 		},
5071 	},
5072 };
5073 
5074 static struct clk_branch gcc_ufs_phy_ahb_clk = {
5075 	.halt_reg = 0x77024,
5076 	.halt_check = BRANCH_HALT_VOTED,
5077 	.hwcg_reg = 0x77024,
5078 	.hwcg_bit = 1,
5079 	.clkr = {
5080 		.enable_reg = 0x77024,
5081 		.enable_mask = BIT(0),
5082 		.hw.init = &(const struct clk_init_data) {
5083 			.name = "gcc_ufs_phy_ahb_clk",
5084 			.ops = &clk_branch2_ops,
5085 		},
5086 	},
5087 };
5088 
5089 static struct clk_branch gcc_ufs_phy_axi_clk = {
5090 	.halt_reg = 0x77018,
5091 	.halt_check = BRANCH_HALT_VOTED,
5092 	.hwcg_reg = 0x77018,
5093 	.hwcg_bit = 1,
5094 	.clkr = {
5095 		.enable_reg = 0x77018,
5096 		.enable_mask = BIT(0),
5097 		.hw.init = &(const struct clk_init_data) {
5098 			.name = "gcc_ufs_phy_axi_clk",
5099 			.parent_hws = (const struct clk_hw*[]) {
5100 				&gcc_ufs_phy_axi_clk_src.clkr.hw,
5101 			},
5102 			.num_parents = 1,
5103 			.flags = CLK_SET_RATE_PARENT,
5104 			.ops = &clk_branch2_ops,
5105 		},
5106 	},
5107 };
5108 
5109 static struct clk_branch gcc_ufs_phy_ice_core_clk = {
5110 	.halt_reg = 0x77074,
5111 	.halt_check = BRANCH_HALT_VOTED,
5112 	.hwcg_reg = 0x77074,
5113 	.hwcg_bit = 1,
5114 	.clkr = {
5115 		.enable_reg = 0x77074,
5116 		.enable_mask = BIT(0),
5117 		.hw.init = &(const struct clk_init_data) {
5118 			.name = "gcc_ufs_phy_ice_core_clk",
5119 			.parent_hws = (const struct clk_hw*[]) {
5120 				&gcc_ufs_phy_ice_core_clk_src.clkr.hw,
5121 			},
5122 			.num_parents = 1,
5123 			.flags = CLK_SET_RATE_PARENT,
5124 			.ops = &clk_branch2_ops,
5125 		},
5126 	},
5127 };
5128 
5129 static struct clk_branch gcc_ufs_phy_phy_aux_clk = {
5130 	.halt_reg = 0x770b0,
5131 	.halt_check = BRANCH_HALT_VOTED,
5132 	.hwcg_reg = 0x770b0,
5133 	.hwcg_bit = 1,
5134 	.clkr = {
5135 		.enable_reg = 0x770b0,
5136 		.enable_mask = BIT(0),
5137 		.hw.init = &(const struct clk_init_data) {
5138 			.name = "gcc_ufs_phy_phy_aux_clk",
5139 			.parent_hws = (const struct clk_hw*[]) {
5140 				&gcc_ufs_phy_phy_aux_clk_src.clkr.hw,
5141 			},
5142 			.num_parents = 1,
5143 			.flags = CLK_SET_RATE_PARENT,
5144 			.ops = &clk_branch2_ops,
5145 		},
5146 	},
5147 };
5148 
5149 static struct clk_branch gcc_ufs_phy_rx_symbol_0_clk = {
5150 	.halt_reg = 0x7702c,
5151 	.halt_check = BRANCH_HALT,
5152 	.clkr = {
5153 		.enable_reg = 0x7702c,
5154 		.enable_mask = BIT(0),
5155 		.hw.init = &(const struct clk_init_data) {
5156 			.name = "gcc_ufs_phy_rx_symbol_0_clk",
5157 			.ops = &clk_branch2_ops,
5158 		},
5159 	},
5160 };
5161 
5162 static struct clk_branch gcc_ufs_phy_rx_symbol_1_clk = {
5163 	.halt_reg = 0x770cc,
5164 	.halt_check = BRANCH_HALT,
5165 	.clkr = {
5166 		.enable_reg = 0x770cc,
5167 		.enable_mask = BIT(0),
5168 		.hw.init = &(const struct clk_init_data) {
5169 			.name = "gcc_ufs_phy_rx_symbol_1_clk",
5170 			.ops = &clk_branch2_ops,
5171 		},
5172 	},
5173 };
5174 
5175 static struct clk_branch gcc_ufs_phy_tx_symbol_0_clk = {
5176 	.halt_reg = 0x77028,
5177 	.halt_check = BRANCH_HALT,
5178 	.clkr = {
5179 		.enable_reg = 0x77028,
5180 		.enable_mask = BIT(0),
5181 		.hw.init = &(const struct clk_init_data) {
5182 			.name = "gcc_ufs_phy_tx_symbol_0_clk",
5183 			.ops = &clk_branch2_ops,
5184 		},
5185 	},
5186 };
5187 
5188 static struct clk_branch gcc_ufs_phy_unipro_core_clk = {
5189 	.halt_reg = 0x77068,
5190 	.halt_check = BRANCH_HALT_VOTED,
5191 	.hwcg_reg = 0x77068,
5192 	.hwcg_bit = 1,
5193 	.clkr = {
5194 		.enable_reg = 0x77068,
5195 		.enable_mask = BIT(0),
5196 		.hw.init = &(const struct clk_init_data) {
5197 			.name = "gcc_ufs_phy_unipro_core_clk",
5198 			.parent_hws = (const struct clk_hw*[]) {
5199 				&gcc_ufs_phy_unipro_core_clk_src.clkr.hw,
5200 			},
5201 			.num_parents = 1,
5202 			.flags = CLK_SET_RATE_PARENT,
5203 			.ops = &clk_branch2_ops,
5204 		},
5205 	},
5206 };
5207 
5208 static struct clk_branch gcc_usb20_master_clk = {
5209 	.halt_reg = 0x29018,
5210 	.halt_check = BRANCH_HALT,
5211 	.clkr = {
5212 		.enable_reg = 0x29018,
5213 		.enable_mask = BIT(0),
5214 		.hw.init = &(const struct clk_init_data) {
5215 			.name = "gcc_usb20_master_clk",
5216 			.parent_hws = (const struct clk_hw*[]) {
5217 				&gcc_usb20_master_clk_src.clkr.hw,
5218 			},
5219 			.num_parents = 1,
5220 			.flags = CLK_SET_RATE_PARENT,
5221 			.ops = &clk_branch2_ops,
5222 		},
5223 	},
5224 };
5225 
5226 static struct clk_branch gcc_usb20_mock_utmi_clk = {
5227 	.halt_reg = 0x29028,
5228 	.halt_check = BRANCH_HALT,
5229 	.clkr = {
5230 		.enable_reg = 0x29028,
5231 		.enable_mask = BIT(0),
5232 		.hw.init = &(const struct clk_init_data) {
5233 			.name = "gcc_usb20_mock_utmi_clk",
5234 			.parent_hws = (const struct clk_hw*[]) {
5235 				&gcc_usb20_mock_utmi_postdiv_clk_src.clkr.hw,
5236 			},
5237 			.num_parents = 1,
5238 			.flags = CLK_SET_RATE_PARENT,
5239 			.ops = &clk_branch2_ops,
5240 		},
5241 	},
5242 };
5243 
5244 static struct clk_branch gcc_usb20_sleep_clk = {
5245 	.halt_reg = 0x29024,
5246 	.halt_check = BRANCH_HALT,
5247 	.clkr = {
5248 		.enable_reg = 0x29024,
5249 		.enable_mask = BIT(0),
5250 		.hw.init = &(const struct clk_init_data) {
5251 			.name = "gcc_usb20_sleep_clk",
5252 			.ops = &clk_branch2_ops,
5253 		},
5254 	},
5255 };
5256 
5257 static struct clk_branch gcc_usb30_mp_master_clk = {
5258 	.halt_reg = 0x17018,
5259 	.halt_check = BRANCH_HALT,
5260 	.clkr = {
5261 		.enable_reg = 0x17018,
5262 		.enable_mask = BIT(0),
5263 		.hw.init = &(const struct clk_init_data) {
5264 			.name = "gcc_usb30_mp_master_clk",
5265 			.parent_hws = (const struct clk_hw*[]) {
5266 				&gcc_usb30_mp_master_clk_src.clkr.hw,
5267 			},
5268 			.num_parents = 1,
5269 			.flags = CLK_SET_RATE_PARENT,
5270 			.ops = &clk_branch2_ops,
5271 		},
5272 	},
5273 };
5274 
5275 static struct clk_branch gcc_usb30_mp_mock_utmi_clk = {
5276 	.halt_reg = 0x17028,
5277 	.halt_check = BRANCH_HALT,
5278 	.clkr = {
5279 		.enable_reg = 0x17028,
5280 		.enable_mask = BIT(0),
5281 		.hw.init = &(const struct clk_init_data) {
5282 			.name = "gcc_usb30_mp_mock_utmi_clk",
5283 			.parent_hws = (const struct clk_hw*[]) {
5284 				&gcc_usb30_mp_mock_utmi_postdiv_clk_src.clkr.hw,
5285 			},
5286 			.num_parents = 1,
5287 			.flags = CLK_SET_RATE_PARENT,
5288 			.ops = &clk_branch2_ops,
5289 		},
5290 	},
5291 };
5292 
5293 static struct clk_branch gcc_usb30_mp_sleep_clk = {
5294 	.halt_reg = 0x17024,
5295 	.halt_check = BRANCH_HALT,
5296 	.clkr = {
5297 		.enable_reg = 0x17024,
5298 		.enable_mask = BIT(0),
5299 		.hw.init = &(const struct clk_init_data) {
5300 			.name = "gcc_usb30_mp_sleep_clk",
5301 			.ops = &clk_branch2_ops,
5302 		},
5303 	},
5304 };
5305 
5306 static struct clk_branch gcc_usb30_prim_master_clk = {
5307 	.halt_reg = 0x39018,
5308 	.halt_check = BRANCH_HALT,
5309 	.clkr = {
5310 		.enable_reg = 0x39018,
5311 		.enable_mask = BIT(0),
5312 		.hw.init = &(const struct clk_init_data) {
5313 			.name = "gcc_usb30_prim_master_clk",
5314 			.parent_hws = (const struct clk_hw*[]) {
5315 				&gcc_usb30_prim_master_clk_src.clkr.hw,
5316 			},
5317 			.num_parents = 1,
5318 			.flags = CLK_SET_RATE_PARENT,
5319 			.ops = &clk_branch2_ops,
5320 		},
5321 	},
5322 };
5323 
5324 static struct clk_branch gcc_usb30_prim_mock_utmi_clk = {
5325 	.halt_reg = 0x39028,
5326 	.halt_check = BRANCH_HALT,
5327 	.clkr = {
5328 		.enable_reg = 0x39028,
5329 		.enable_mask = BIT(0),
5330 		.hw.init = &(const struct clk_init_data) {
5331 			.name = "gcc_usb30_prim_mock_utmi_clk",
5332 			.parent_hws = (const struct clk_hw*[]) {
5333 				&gcc_usb30_prim_mock_utmi_postdiv_clk_src.clkr.hw,
5334 			},
5335 			.num_parents = 1,
5336 			.flags = CLK_SET_RATE_PARENT,
5337 			.ops = &clk_branch2_ops,
5338 		},
5339 	},
5340 };
5341 
5342 static struct clk_branch gcc_usb30_prim_sleep_clk = {
5343 	.halt_reg = 0x39024,
5344 	.halt_check = BRANCH_HALT,
5345 	.clkr = {
5346 		.enable_reg = 0x39024,
5347 		.enable_mask = BIT(0),
5348 		.hw.init = &(const struct clk_init_data) {
5349 			.name = "gcc_usb30_prim_sleep_clk",
5350 			.ops = &clk_branch2_ops,
5351 		},
5352 	},
5353 };
5354 
5355 static struct clk_branch gcc_usb30_sec_master_clk = {
5356 	.halt_reg = 0xa1018,
5357 	.halt_check = BRANCH_HALT,
5358 	.clkr = {
5359 		.enable_reg = 0xa1018,
5360 		.enable_mask = BIT(0),
5361 		.hw.init = &(const struct clk_init_data) {
5362 			.name = "gcc_usb30_sec_master_clk",
5363 			.parent_hws = (const struct clk_hw*[]) {
5364 				&gcc_usb30_sec_master_clk_src.clkr.hw,
5365 			},
5366 			.num_parents = 1,
5367 			.flags = CLK_SET_RATE_PARENT,
5368 			.ops = &clk_branch2_ops,
5369 		},
5370 	},
5371 };
5372 
5373 static struct clk_branch gcc_usb30_sec_mock_utmi_clk = {
5374 	.halt_reg = 0xa1028,
5375 	.halt_check = BRANCH_HALT,
5376 	.clkr = {
5377 		.enable_reg = 0xa1028,
5378 		.enable_mask = BIT(0),
5379 		.hw.init = &(const struct clk_init_data) {
5380 			.name = "gcc_usb30_sec_mock_utmi_clk",
5381 			.parent_hws = (const struct clk_hw*[]) {
5382 				&gcc_usb30_sec_mock_utmi_postdiv_clk_src.clkr.hw,
5383 			},
5384 			.num_parents = 1,
5385 			.flags = CLK_SET_RATE_PARENT,
5386 			.ops = &clk_branch2_ops,
5387 		},
5388 	},
5389 };
5390 
5391 static struct clk_branch gcc_usb30_sec_sleep_clk = {
5392 	.halt_reg = 0xa1024,
5393 	.halt_check = BRANCH_HALT,
5394 	.clkr = {
5395 		.enable_reg = 0xa1024,
5396 		.enable_mask = BIT(0),
5397 		.hw.init = &(const struct clk_init_data) {
5398 			.name = "gcc_usb30_sec_sleep_clk",
5399 			.ops = &clk_branch2_ops,
5400 		},
5401 	},
5402 };
5403 
5404 static struct clk_branch gcc_usb30_tert_master_clk = {
5405 	.halt_reg = 0xa2018,
5406 	.halt_check = BRANCH_HALT,
5407 	.clkr = {
5408 		.enable_reg = 0xa2018,
5409 		.enable_mask = BIT(0),
5410 		.hw.init = &(const struct clk_init_data) {
5411 			.name = "gcc_usb30_tert_master_clk",
5412 			.parent_hws = (const struct clk_hw*[]) {
5413 				&gcc_usb30_tert_master_clk_src.clkr.hw,
5414 			},
5415 			.num_parents = 1,
5416 			.flags = CLK_SET_RATE_PARENT,
5417 			.ops = &clk_branch2_ops,
5418 		},
5419 	},
5420 };
5421 
5422 static struct clk_branch gcc_usb30_tert_mock_utmi_clk = {
5423 	.halt_reg = 0xa2028,
5424 	.halt_check = BRANCH_HALT,
5425 	.clkr = {
5426 		.enable_reg = 0xa2028,
5427 		.enable_mask = BIT(0),
5428 		.hw.init = &(const struct clk_init_data) {
5429 			.name = "gcc_usb30_tert_mock_utmi_clk",
5430 			.parent_hws = (const struct clk_hw*[]) {
5431 				&gcc_usb30_tert_mock_utmi_postdiv_clk_src.clkr.hw,
5432 			},
5433 			.num_parents = 1,
5434 			.flags = CLK_SET_RATE_PARENT,
5435 			.ops = &clk_branch2_ops,
5436 		},
5437 	},
5438 };
5439 
5440 static struct clk_branch gcc_usb30_tert_sleep_clk = {
5441 	.halt_reg = 0xa2024,
5442 	.halt_check = BRANCH_HALT,
5443 	.clkr = {
5444 		.enable_reg = 0xa2024,
5445 		.enable_mask = BIT(0),
5446 		.hw.init = &(const struct clk_init_data) {
5447 			.name = "gcc_usb30_tert_sleep_clk",
5448 			.ops = &clk_branch2_ops,
5449 		},
5450 	},
5451 };
5452 
5453 static struct clk_branch gcc_usb3_mp_phy_aux_clk = {
5454 	.halt_reg = 0x17288,
5455 	.halt_check = BRANCH_HALT,
5456 	.clkr = {
5457 		.enable_reg = 0x17288,
5458 		.enable_mask = BIT(0),
5459 		.hw.init = &(const struct clk_init_data) {
5460 			.name = "gcc_usb3_mp_phy_aux_clk",
5461 			.parent_hws = (const struct clk_hw*[]) {
5462 				&gcc_usb3_mp_phy_aux_clk_src.clkr.hw,
5463 			},
5464 			.num_parents = 1,
5465 			.flags = CLK_SET_RATE_PARENT,
5466 			.ops = &clk_branch2_ops,
5467 		},
5468 	},
5469 };
5470 
5471 static struct clk_branch gcc_usb3_mp_phy_com_aux_clk = {
5472 	.halt_reg = 0x1728c,
5473 	.halt_check = BRANCH_HALT,
5474 	.clkr = {
5475 		.enable_reg = 0x1728c,
5476 		.enable_mask = BIT(0),
5477 		.hw.init = &(const struct clk_init_data) {
5478 			.name = "gcc_usb3_mp_phy_com_aux_clk",
5479 			.parent_hws = (const struct clk_hw*[]) {
5480 				&gcc_usb3_mp_phy_aux_clk_src.clkr.hw,
5481 			},
5482 			.num_parents = 1,
5483 			.flags = CLK_SET_RATE_PARENT,
5484 			.ops = &clk_branch2_ops,
5485 		},
5486 	},
5487 };
5488 
5489 static struct clk_branch gcc_usb3_mp_phy_pipe_0_clk = {
5490 	.halt_reg = 0x17290,
5491 	.halt_check = BRANCH_HALT_SKIP,
5492 	.clkr = {
5493 		.enable_reg = 0x17290,
5494 		.enable_mask = BIT(0),
5495 		.hw.init = &(const struct clk_init_data) {
5496 			.name = "gcc_usb3_mp_phy_pipe_0_clk",
5497 			.ops = &clk_branch2_ops,
5498 		},
5499 	},
5500 };
5501 
5502 static struct clk_branch gcc_usb3_mp_phy_pipe_1_clk = {
5503 	.halt_reg = 0x17298,
5504 	.halt_check = BRANCH_HALT_SKIP,
5505 	.clkr = {
5506 		.enable_reg = 0x17298,
5507 		.enable_mask = BIT(0),
5508 		.hw.init = &(const struct clk_init_data) {
5509 			.name = "gcc_usb3_mp_phy_pipe_1_clk",
5510 			.ops = &clk_branch2_ops,
5511 		},
5512 	},
5513 };
5514 
5515 static struct clk_branch gcc_usb3_prim_phy_aux_clk = {
5516 	.halt_reg = 0x39060,
5517 	.halt_check = BRANCH_HALT,
5518 	.clkr = {
5519 		.enable_reg = 0x39060,
5520 		.enable_mask = BIT(0),
5521 		.hw.init = &(const struct clk_init_data) {
5522 			.name = "gcc_usb3_prim_phy_aux_clk",
5523 			.parent_hws = (const struct clk_hw*[]) {
5524 				&gcc_usb3_prim_phy_aux_clk_src.clkr.hw,
5525 			},
5526 			.num_parents = 1,
5527 			.flags = CLK_SET_RATE_PARENT,
5528 			.ops = &clk_branch2_ops,
5529 		},
5530 	},
5531 };
5532 
5533 static struct clk_branch gcc_usb3_prim_phy_com_aux_clk = {
5534 	.halt_reg = 0x39064,
5535 	.halt_check = BRANCH_HALT,
5536 	.clkr = {
5537 		.enable_reg = 0x39064,
5538 		.enable_mask = BIT(0),
5539 		.hw.init = &(const struct clk_init_data) {
5540 			.name = "gcc_usb3_prim_phy_com_aux_clk",
5541 			.parent_hws = (const struct clk_hw*[]) {
5542 				&gcc_usb3_prim_phy_aux_clk_src.clkr.hw,
5543 			},
5544 			.num_parents = 1,
5545 			.flags = CLK_SET_RATE_PARENT,
5546 			.ops = &clk_branch2_ops,
5547 		},
5548 	},
5549 };
5550 
5551 static struct clk_regmap_mux gcc_usb3_prim_phy_pipe_clk_src = {
5552 	.reg = 0x3906c,
5553 	.shift = 0,
5554 	.width = 2,
5555 	.parent_map = gcc_parent_map_10,
5556 	.clkr = {
5557 		.hw.init = &(struct clk_init_data){
5558 			.name = "gcc_usb3_prim_phy_pipe_clk_src",
5559 			.parent_data = gcc_parent_data_10,
5560 			.num_parents = ARRAY_SIZE(gcc_parent_data_10),
5561 			.ops = &clk_regmap_mux_closest_ops,
5562 		},
5563 	},
5564 };
5565 
5566 static const struct parent_map gcc_parent_map_34[] = {
5567 	{ P_GCC_USB3_PRIM_PHY_PIPE_CLK_SRC, 0 },
5568 	{ P_USB4_0_PHY_GCC_USB4RTR_MAX_PIPE_CLK, 1 },
5569 	{ P_GCC_USB4_0_PHY_PIPEGMUX_CLK_SRC, 3 },
5570 };
5571 
5572 static const struct clk_parent_data gcc_parent_data_34[] = {
5573 	{ .hw = &gcc_usb3_prim_phy_pipe_clk_src.clkr.hw },
5574 	{ .index = DT_USB4_0_PHY_GCC_USB4RTR_MAX_PIPE_CLK },
5575 	{ .index = DT_GCC_USB4_0_PHY_PIPEGMUX_CLK_SRC },
5576 };
5577 
5578 static struct clk_regmap_mux gcc_usb34_prim_phy_pipe_clk_src = {
5579 	.reg = 0x39070,
5580 	.shift = 0,
5581 	.width = 2,
5582 	.parent_map = gcc_parent_map_34,
5583 	.clkr = {
5584 		.hw.init = &(const struct clk_init_data) {
5585 			.name = "gcc_usb34_prim_phy_pipe_clk_src",
5586 			.parent_data = gcc_parent_data_34,
5587 			.num_parents = ARRAY_SIZE(gcc_parent_data_34),
5588 			.ops = &clk_regmap_mux_closest_ops,
5589 		},
5590 	},
5591 };
5592 
5593 static struct clk_branch gcc_usb3_prim_phy_pipe_clk = {
5594 	.halt_reg = 0x39068,
5595 	.halt_check = BRANCH_HALT_SKIP,
5596 	.hwcg_reg = 0x39068,
5597 	.hwcg_bit = 1,
5598 	.clkr = {
5599 		.enable_reg = 0x39068,
5600 		.enable_mask = BIT(0),
5601 		.hw.init = &(const struct clk_init_data) {
5602 			.name = "gcc_usb3_prim_phy_pipe_clk",
5603 			.parent_hws = (const struct clk_hw*[]) {
5604 				&gcc_usb34_prim_phy_pipe_clk_src.clkr.hw,
5605 			},
5606 			.num_parents = 1,
5607 			.flags = CLK_SET_RATE_PARENT,
5608 			.ops = &clk_branch2_ops,
5609 		},
5610 	},
5611 };
5612 
5613 static struct clk_branch gcc_usb3_sec_phy_aux_clk = {
5614 	.halt_reg = 0xa1060,
5615 	.halt_check = BRANCH_HALT,
5616 	.clkr = {
5617 		.enable_reg = 0xa1060,
5618 		.enable_mask = BIT(0),
5619 		.hw.init = &(const struct clk_init_data) {
5620 			.name = "gcc_usb3_sec_phy_aux_clk",
5621 			.parent_hws = (const struct clk_hw*[]) {
5622 				&gcc_usb3_sec_phy_aux_clk_src.clkr.hw,
5623 			},
5624 			.num_parents = 1,
5625 			.flags = CLK_SET_RATE_PARENT,
5626 			.ops = &clk_branch2_ops,
5627 		},
5628 	},
5629 };
5630 
5631 static struct clk_branch gcc_usb3_sec_phy_com_aux_clk = {
5632 	.halt_reg = 0xa1064,
5633 	.halt_check = BRANCH_HALT,
5634 	.clkr = {
5635 		.enable_reg = 0xa1064,
5636 		.enable_mask = BIT(0),
5637 		.hw.init = &(const struct clk_init_data) {
5638 			.name = "gcc_usb3_sec_phy_com_aux_clk",
5639 			.parent_hws = (const struct clk_hw*[]) {
5640 				&gcc_usb3_sec_phy_aux_clk_src.clkr.hw,
5641 			},
5642 			.num_parents = 1,
5643 			.flags = CLK_SET_RATE_PARENT,
5644 			.ops = &clk_branch2_ops,
5645 		},
5646 	},
5647 };
5648 
5649 static struct clk_regmap_mux gcc_usb3_sec_phy_pipe_clk_src = {
5650 	.reg = 0xa106c,
5651 	.shift = 0,
5652 	.width = 2,
5653 	.parent_map = gcc_parent_map_11,
5654 	.clkr = {
5655 		.hw.init = &(struct clk_init_data){
5656 			.name = "gcc_usb3_sec_phy_pipe_clk_src",
5657 			.parent_data = gcc_parent_data_11,
5658 			.num_parents = ARRAY_SIZE(gcc_parent_data_11),
5659 			.ops = &clk_regmap_mux_closest_ops,
5660 		},
5661 	},
5662 };
5663 
5664 static const struct parent_map gcc_parent_map_35[] = {
5665 	{ P_GCC_USB3_SEC_PHY_PIPE_CLK_SRC, 0 },
5666 	{ P_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK, 1 },
5667 	{ P_GCC_USB4_1_PHY_PIPEGMUX_CLK_SRC, 3 },
5668 };
5669 
5670 static const struct clk_parent_data gcc_parent_data_35[] = {
5671 	{ .hw = &gcc_usb3_sec_phy_pipe_clk_src.clkr.hw },
5672 	{ .index = DT_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK },
5673 	{ .index = DT_GCC_USB4_1_PHY_PIPEGMUX_CLK_SRC },
5674 };
5675 
5676 static struct clk_regmap_mux gcc_usb34_sec_phy_pipe_clk_src = {
5677 	.reg = 0xa1070,
5678 	.shift = 0,
5679 	.width = 2,
5680 	.parent_map = gcc_parent_map_35,
5681 	.clkr = {
5682 		.hw.init = &(const struct clk_init_data) {
5683 			.name = "gcc_usb34_sec_phy_pipe_clk_src",
5684 			.parent_data = gcc_parent_data_35,
5685 			.num_parents = ARRAY_SIZE(gcc_parent_data_35),
5686 			.ops = &clk_regmap_mux_closest_ops,
5687 		},
5688 	},
5689 };
5690 
5691 static struct clk_branch gcc_usb3_sec_phy_pipe_clk = {
5692 	.halt_reg = 0xa1068,
5693 	.halt_check = BRANCH_HALT_SKIP,
5694 	.hwcg_reg = 0xa1068,
5695 	.hwcg_bit = 1,
5696 	.clkr = {
5697 		.enable_reg = 0xa1068,
5698 		.enable_mask = BIT(0),
5699 		.hw.init = &(const struct clk_init_data) {
5700 			.name = "gcc_usb3_sec_phy_pipe_clk",
5701 			.parent_hws = (const struct clk_hw*[]) {
5702 				&gcc_usb34_sec_phy_pipe_clk_src.clkr.hw,
5703 			},
5704 			.num_parents = 1,
5705 			.flags = CLK_SET_RATE_PARENT,
5706 			.ops = &clk_branch2_ops,
5707 		},
5708 	},
5709 };
5710 
5711 static struct clk_branch gcc_usb3_tert_phy_aux_clk = {
5712 	.halt_reg = 0xa2060,
5713 	.halt_check = BRANCH_HALT,
5714 	.clkr = {
5715 		.enable_reg = 0xa2060,
5716 		.enable_mask = BIT(0),
5717 		.hw.init = &(const struct clk_init_data) {
5718 			.name = "gcc_usb3_tert_phy_aux_clk",
5719 			.parent_hws = (const struct clk_hw*[]) {
5720 				&gcc_usb3_tert_phy_aux_clk_src.clkr.hw,
5721 			},
5722 			.num_parents = 1,
5723 			.flags = CLK_SET_RATE_PARENT,
5724 			.ops = &clk_branch2_ops,
5725 		},
5726 	},
5727 };
5728 
5729 static struct clk_branch gcc_usb3_tert_phy_com_aux_clk = {
5730 	.halt_reg = 0xa2064,
5731 	.halt_check = BRANCH_HALT,
5732 	.clkr = {
5733 		.enable_reg = 0xa2064,
5734 		.enable_mask = BIT(0),
5735 		.hw.init = &(const struct clk_init_data) {
5736 			.name = "gcc_usb3_tert_phy_com_aux_clk",
5737 			.parent_hws = (const struct clk_hw*[]) {
5738 				&gcc_usb3_tert_phy_aux_clk_src.clkr.hw,
5739 			},
5740 			.num_parents = 1,
5741 			.flags = CLK_SET_RATE_PARENT,
5742 			.ops = &clk_branch2_ops,
5743 		},
5744 	},
5745 };
5746 
5747 static struct clk_regmap_mux gcc_usb3_tert_phy_pipe_clk_src = {
5748 	.reg = 0xa206c,
5749 	.shift = 0,
5750 	.width = 2,
5751 	.parent_map = gcc_parent_map_12,
5752 	.clkr = {
5753 		.hw.init = &(struct clk_init_data){
5754 			.name = "gcc_usb3_tert_phy_pipe_clk_src",
5755 			.parent_data = gcc_parent_data_12,
5756 			.num_parents = ARRAY_SIZE(gcc_parent_data_12),
5757 			.ops = &clk_regmap_mux_closest_ops,
5758 		},
5759 	},
5760 };
5761 
5762 static const struct parent_map gcc_parent_map_36[] = {
5763 	{ P_GCC_USB3_TERT_PHY_PIPE_CLK_SRC, 0 },
5764 	{ P_USB4_2_PHY_GCC_USB4RTR_MAX_PIPE_CLK, 1 },
5765 	{ P_GCC_USB4_2_PHY_PIPEGMUX_CLK_SRC, 3 },
5766 };
5767 
5768 static const struct clk_parent_data gcc_parent_data_36[] = {
5769 	{ .hw = &gcc_usb3_tert_phy_pipe_clk_src.clkr.hw },
5770 	{ .index = DT_USB4_2_PHY_GCC_USB4RTR_MAX_PIPE_CLK },
5771 	{ .index = DT_GCC_USB4_2_PHY_PIPEGMUX_CLK_SRC },
5772 };
5773 
5774 static struct clk_regmap_mux gcc_usb34_tert_phy_pipe_clk_src = {
5775 	.reg = 0xa2070,
5776 	.shift = 0,
5777 	.width = 2,
5778 	.parent_map = gcc_parent_map_36,
5779 	.clkr = {
5780 		.hw.init = &(const struct clk_init_data) {
5781 			.name = "gcc_usb34_tert_phy_pipe_clk_src",
5782 			.parent_data = gcc_parent_data_36,
5783 			.num_parents = ARRAY_SIZE(gcc_parent_data_36),
5784 			.ops = &clk_regmap_mux_closest_ops,
5785 		},
5786 	},
5787 };
5788 
5789 static struct clk_branch gcc_usb3_tert_phy_pipe_clk = {
5790 	.halt_reg = 0xa2068,
5791 	.halt_check = BRANCH_HALT_SKIP,
5792 	.hwcg_reg = 0xa2068,
5793 	.hwcg_bit = 1,
5794 	.clkr = {
5795 		.enable_reg = 0xa2068,
5796 		.enable_mask = BIT(0),
5797 		.hw.init = &(const struct clk_init_data) {
5798 			.name = "gcc_usb3_tert_phy_pipe_clk",
5799 			.parent_hws = (const struct clk_hw*[]) {
5800 				&gcc_usb34_tert_phy_pipe_clk_src.clkr.hw,
5801 			},
5802 			.num_parents = 1,
5803 			.flags = CLK_SET_RATE_PARENT,
5804 			.ops = &clk_branch2_ops,
5805 		},
5806 	},
5807 };
5808 
5809 static struct clk_branch gcc_usb4_0_cfg_ahb_clk = {
5810 	.halt_reg = 0x9f0a8,
5811 	.halt_check = BRANCH_HALT_VOTED,
5812 	.hwcg_reg = 0x9f0a8,
5813 	.hwcg_bit = 1,
5814 	.clkr = {
5815 		.enable_reg = 0x9f0a8,
5816 		.enable_mask = BIT(0),
5817 		.hw.init = &(const struct clk_init_data) {
5818 			.name = "gcc_usb4_0_cfg_ahb_clk",
5819 			.ops = &clk_branch2_ops,
5820 		},
5821 	},
5822 };
5823 
5824 static struct clk_branch gcc_usb4_0_dp0_clk = {
5825 	.halt_reg = 0x9f060,
5826 	.halt_check = BRANCH_HALT_SKIP,
5827 	.clkr = {
5828 		.enable_reg = 0x9f060,
5829 		.enable_mask = BIT(0),
5830 		.hw.init = &(const struct clk_init_data) {
5831 			.name = "gcc_usb4_0_dp0_clk",
5832 			.parent_hws = (const struct clk_hw*[]) {
5833 				&gcc_usb4_0_phy_dp0_clk_src.clkr.hw,
5834 			},
5835 			.num_parents = 1,
5836 			.flags = CLK_SET_RATE_PARENT,
5837 			.ops = &clk_branch2_ops,
5838 		},
5839 	},
5840 };
5841 
5842 static struct clk_branch gcc_usb4_0_dp1_clk = {
5843 	.halt_reg = 0x9f108,
5844 	.halt_check = BRANCH_HALT_SKIP,
5845 	.clkr = {
5846 		.enable_reg = 0x9f108,
5847 		.enable_mask = BIT(0),
5848 		.hw.init = &(const struct clk_init_data) {
5849 			.name = "gcc_usb4_0_dp1_clk",
5850 			.parent_hws = (const struct clk_hw*[]) {
5851 				&gcc_usb4_0_phy_dp1_clk_src.clkr.hw,
5852 			},
5853 			.num_parents = 1,
5854 			.flags = CLK_SET_RATE_PARENT,
5855 			.ops = &clk_branch2_ops,
5856 		},
5857 	},
5858 };
5859 
5860 static struct clk_branch gcc_usb4_0_master_clk = {
5861 	.halt_reg = 0x9f018,
5862 	.halt_check = BRANCH_HALT,
5863 	.clkr = {
5864 		.enable_reg = 0x9f018,
5865 		.enable_mask = BIT(0),
5866 		.hw.init = &(const struct clk_init_data) {
5867 			.name = "gcc_usb4_0_master_clk",
5868 			.parent_hws = (const struct clk_hw*[]) {
5869 				&gcc_usb4_0_master_clk_src.clkr.hw,
5870 			},
5871 			.num_parents = 1,
5872 			.flags = CLK_SET_RATE_PARENT,
5873 			.ops = &clk_branch2_ops,
5874 		},
5875 	},
5876 };
5877 
5878 static struct clk_branch gcc_usb4_0_phy_p2rr2p_pipe_clk = {
5879 	.halt_reg = 0x9f0d8,
5880 	.halt_check = BRANCH_HALT_SKIP,
5881 	.clkr = {
5882 		.enable_reg = 0x9f0d8,
5883 		.enable_mask = BIT(0),
5884 		.hw.init = &(const struct clk_init_data) {
5885 			.name = "gcc_usb4_0_phy_p2rr2p_pipe_clk",
5886 			.parent_hws = (const struct clk_hw*[]) {
5887 				&gcc_usb4_0_phy_p2rr2p_pipe_clk_src.clkr.hw,
5888 			},
5889 			.num_parents = 1,
5890 			.flags = CLK_SET_RATE_PARENT,
5891 			.ops = &clk_branch2_ops,
5892 		},
5893 	},
5894 };
5895 
5896 static struct clk_branch gcc_usb4_0_phy_pcie_pipe_clk = {
5897 	.halt_reg = 0x9f048,
5898 	.halt_check = BRANCH_HALT_SKIP,
5899 	.clkr = {
5900 		.enable_reg = 0x52010,
5901 		.enable_mask = BIT(19),
5902 		.hw.init = &(const struct clk_init_data) {
5903 			.name = "gcc_usb4_0_phy_pcie_pipe_clk",
5904 			.parent_hws = (const struct clk_hw*[]) {
5905 				&gcc_usb4_0_phy_pcie_pipe_mux_clk_src.clkr.hw,
5906 			},
5907 			.num_parents = 1,
5908 			.flags = CLK_SET_RATE_PARENT,
5909 			.ops = &clk_branch2_ops,
5910 		},
5911 	},
5912 };
5913 
5914 static struct clk_branch gcc_usb4_0_phy_rx0_clk = {
5915 	.halt_reg = 0x9f0b0,
5916 	.halt_check = BRANCH_HALT_SKIP,
5917 	.clkr = {
5918 		.enable_reg = 0x9f0b0,
5919 		.enable_mask = BIT(0),
5920 		.hw.init = &(const struct clk_init_data) {
5921 			.name = "gcc_usb4_0_phy_rx0_clk",
5922 			.parent_hws = (const struct clk_hw*[]) {
5923 				&gcc_usb4_0_phy_rx0_clk_src.clkr.hw,
5924 			},
5925 			.num_parents = 1,
5926 			.flags = CLK_SET_RATE_PARENT,
5927 			.ops = &clk_branch2_ops,
5928 		},
5929 	},
5930 };
5931 
5932 static struct clk_branch gcc_usb4_0_phy_rx1_clk = {
5933 	.halt_reg = 0x9f0c0,
5934 	.halt_check = BRANCH_HALT_SKIP,
5935 	.clkr = {
5936 		.enable_reg = 0x9f0c0,
5937 		.enable_mask = BIT(0),
5938 		.hw.init = &(const struct clk_init_data) {
5939 			.name = "gcc_usb4_0_phy_rx1_clk",
5940 			.parent_hws = (const struct clk_hw*[]) {
5941 				&gcc_usb4_0_phy_rx1_clk_src.clkr.hw,
5942 			},
5943 			.num_parents = 1,
5944 			.flags = CLK_SET_RATE_PARENT,
5945 			.ops = &clk_branch2_ops,
5946 		},
5947 	},
5948 };
5949 
5950 static struct clk_branch gcc_usb4_0_phy_usb_pipe_clk = {
5951 	.halt_reg = 0x9f0a4,
5952 	.halt_check = BRANCH_HALT_SKIP,
5953 	.hwcg_reg = 0x9f0a4,
5954 	.hwcg_bit = 1,
5955 	.clkr = {
5956 		.enable_reg = 0x9f0a4,
5957 		.enable_mask = BIT(0),
5958 		.hw.init = &(const struct clk_init_data) {
5959 			.name = "gcc_usb4_0_phy_usb_pipe_clk",
5960 			.parent_hws = (const struct clk_hw*[]) {
5961 				&gcc_usb34_prim_phy_pipe_clk_src.clkr.hw,
5962 			},
5963 			.num_parents = 1,
5964 			.flags = CLK_SET_RATE_PARENT,
5965 			.ops = &clk_branch2_ops,
5966 		},
5967 	},
5968 };
5969 
5970 static struct clk_branch gcc_usb4_0_sb_if_clk = {
5971 	.halt_reg = 0x9f044,
5972 	.halt_check = BRANCH_HALT,
5973 	.clkr = {
5974 		.enable_reg = 0x9f044,
5975 		.enable_mask = BIT(0),
5976 		.hw.init = &(const struct clk_init_data) {
5977 			.name = "gcc_usb4_0_sb_if_clk",
5978 			.parent_hws = (const struct clk_hw*[]) {
5979 				&gcc_usb4_0_sb_if_clk_src.clkr.hw,
5980 			},
5981 			.num_parents = 1,
5982 			.flags = CLK_SET_RATE_PARENT,
5983 			.ops = &clk_branch2_ops,
5984 		},
5985 	},
5986 };
5987 
5988 static struct clk_branch gcc_usb4_0_sys_clk = {
5989 	.halt_reg = 0x9f054,
5990 	.halt_check = BRANCH_HALT,
5991 	.clkr = {
5992 		.enable_reg = 0x9f054,
5993 		.enable_mask = BIT(0),
5994 		.hw.init = &(const struct clk_init_data) {
5995 			.name = "gcc_usb4_0_sys_clk",
5996 			.parent_hws = (const struct clk_hw*[]) {
5997 				&gcc_usb4_0_phy_sys_clk_src.clkr.hw,
5998 			},
5999 			.num_parents = 1,
6000 			.flags = CLK_SET_RATE_PARENT,
6001 			.ops = &clk_branch2_ops,
6002 		},
6003 	},
6004 };
6005 
6006 static struct clk_branch gcc_usb4_0_tmu_clk = {
6007 	.halt_reg = 0x9f088,
6008 	.halt_check = BRANCH_HALT_VOTED,
6009 	.hwcg_reg = 0x9f088,
6010 	.hwcg_bit = 1,
6011 	.clkr = {
6012 		.enable_reg = 0x9f088,
6013 		.enable_mask = BIT(0),
6014 		.hw.init = &(const struct clk_init_data) {
6015 			.name = "gcc_usb4_0_tmu_clk",
6016 			.parent_hws = (const struct clk_hw*[]) {
6017 				&gcc_usb4_0_tmu_clk_src.clkr.hw,
6018 			},
6019 			.num_parents = 1,
6020 			.flags = CLK_SET_RATE_PARENT,
6021 			.ops = &clk_branch2_ops,
6022 		},
6023 	},
6024 };
6025 
6026 static struct clk_branch gcc_usb4_1_cfg_ahb_clk = {
6027 	.halt_reg = 0x2b0a8,
6028 	.halt_check = BRANCH_HALT_VOTED,
6029 	.hwcg_reg = 0x2b0a8,
6030 	.hwcg_bit = 1,
6031 	.clkr = {
6032 		.enable_reg = 0x2b0a8,
6033 		.enable_mask = BIT(0),
6034 		.hw.init = &(const struct clk_init_data) {
6035 			.name = "gcc_usb4_1_cfg_ahb_clk",
6036 			.ops = &clk_branch2_ops,
6037 		},
6038 	},
6039 };
6040 
6041 static struct clk_branch gcc_usb4_1_dp0_clk = {
6042 	.halt_reg = 0x2b060,
6043 	.halt_check = BRANCH_HALT_SKIP,
6044 	.clkr = {
6045 		.enable_reg = 0x2b060,
6046 		.enable_mask = BIT(0),
6047 		.hw.init = &(const struct clk_init_data) {
6048 			.name = "gcc_usb4_1_dp0_clk",
6049 			.parent_hws = (const struct clk_hw*[]) {
6050 				&gcc_usb4_1_phy_dp0_clk_src.clkr.hw,
6051 			},
6052 			.num_parents = 1,
6053 			.flags = CLK_SET_RATE_PARENT,
6054 			.ops = &clk_branch2_ops,
6055 		},
6056 	},
6057 };
6058 
6059 static struct clk_branch gcc_usb4_1_dp1_clk = {
6060 	.halt_reg = 0x2b108,
6061 	.halt_check = BRANCH_HALT_SKIP,
6062 	.clkr = {
6063 		.enable_reg = 0x2b108,
6064 		.enable_mask = BIT(0),
6065 		.hw.init = &(const struct clk_init_data) {
6066 			.name = "gcc_usb4_1_dp1_clk",
6067 			.parent_hws = (const struct clk_hw*[]) {
6068 				&gcc_usb4_1_phy_dp1_clk_src.clkr.hw,
6069 			},
6070 			.num_parents = 1,
6071 			.flags = CLK_SET_RATE_PARENT,
6072 			.ops = &clk_branch2_ops,
6073 		},
6074 	},
6075 };
6076 
6077 static struct clk_branch gcc_usb4_1_master_clk = {
6078 	.halt_reg = 0x2b018,
6079 	.halt_check = BRANCH_HALT,
6080 	.clkr = {
6081 		.enable_reg = 0x2b018,
6082 		.enable_mask = BIT(0),
6083 		.hw.init = &(const struct clk_init_data) {
6084 			.name = "gcc_usb4_1_master_clk",
6085 			.parent_hws = (const struct clk_hw*[]) {
6086 				&gcc_usb4_1_master_clk_src.clkr.hw,
6087 			},
6088 			.num_parents = 1,
6089 			.flags = CLK_SET_RATE_PARENT,
6090 			.ops = &clk_branch2_ops,
6091 		},
6092 	},
6093 };
6094 
6095 static struct clk_branch gcc_usb4_1_phy_p2rr2p_pipe_clk = {
6096 	.halt_reg = 0x2b0d8,
6097 	.halt_check = BRANCH_HALT_SKIP,
6098 	.clkr = {
6099 		.enable_reg = 0x2b0d8,
6100 		.enable_mask = BIT(0),
6101 		.hw.init = &(const struct clk_init_data) {
6102 			.name = "gcc_usb4_1_phy_p2rr2p_pipe_clk",
6103 			.parent_hws = (const struct clk_hw*[]) {
6104 				&gcc_usb4_1_phy_p2rr2p_pipe_clk_src.clkr.hw,
6105 			},
6106 			.num_parents = 1,
6107 			.flags = CLK_SET_RATE_PARENT,
6108 			.ops = &clk_branch2_ops,
6109 		},
6110 	},
6111 };
6112 
6113 static struct clk_branch gcc_usb4_1_phy_pcie_pipe_clk = {
6114 	.halt_reg = 0x2b048,
6115 	.halt_check = BRANCH_HALT_SKIP,
6116 	.clkr = {
6117 		.enable_reg = 0x52028,
6118 		.enable_mask = BIT(0),
6119 		.hw.init = &(const struct clk_init_data) {
6120 			.name = "gcc_usb4_1_phy_pcie_pipe_clk",
6121 			.parent_hws = (const struct clk_hw*[]) {
6122 				&gcc_usb4_1_phy_pcie_pipe_mux_clk_src.clkr.hw,
6123 			},
6124 			.num_parents = 1,
6125 			.flags = CLK_SET_RATE_PARENT,
6126 			.ops = &clk_branch2_ops,
6127 		},
6128 	},
6129 };
6130 
6131 static struct clk_branch gcc_usb4_1_phy_rx0_clk = {
6132 	.halt_reg = 0x2b0b0,
6133 	.halt_check = BRANCH_HALT_SKIP,
6134 	.clkr = {
6135 		.enable_reg = 0x2b0b0,
6136 		.enable_mask = BIT(0),
6137 		.hw.init = &(const struct clk_init_data) {
6138 			.name = "gcc_usb4_1_phy_rx0_clk",
6139 			.parent_hws = (const struct clk_hw*[]) {
6140 				&gcc_usb4_1_phy_rx0_clk_src.clkr.hw,
6141 			},
6142 			.num_parents = 1,
6143 			.flags = CLK_SET_RATE_PARENT,
6144 			.ops = &clk_branch2_ops,
6145 		},
6146 	},
6147 };
6148 
6149 static struct clk_branch gcc_usb4_1_phy_rx1_clk = {
6150 	.halt_reg = 0x2b0c0,
6151 	.halt_check = BRANCH_HALT_SKIP,
6152 	.clkr = {
6153 		.enable_reg = 0x2b0c0,
6154 		.enable_mask = BIT(0),
6155 		.hw.init = &(const struct clk_init_data) {
6156 			.name = "gcc_usb4_1_phy_rx1_clk",
6157 			.parent_hws = (const struct clk_hw*[]) {
6158 				&gcc_usb4_1_phy_rx1_clk_src.clkr.hw,
6159 			},
6160 			.num_parents = 1,
6161 			.flags = CLK_SET_RATE_PARENT,
6162 			.ops = &clk_branch2_ops,
6163 		},
6164 	},
6165 };
6166 
6167 static struct clk_branch gcc_usb4_1_phy_usb_pipe_clk = {
6168 	.halt_reg = 0x2b0a4,
6169 	.halt_check = BRANCH_HALT_SKIP,
6170 	.hwcg_reg = 0x2b0a4,
6171 	.hwcg_bit = 1,
6172 	.clkr = {
6173 		.enable_reg = 0x2b0a4,
6174 		.enable_mask = BIT(0),
6175 		.hw.init = &(const struct clk_init_data) {
6176 			.name = "gcc_usb4_1_phy_usb_pipe_clk",
6177 			.parent_hws = (const struct clk_hw*[]) {
6178 				&gcc_usb34_sec_phy_pipe_clk_src.clkr.hw,
6179 			},
6180 			.num_parents = 1,
6181 			.flags = CLK_SET_RATE_PARENT,
6182 			.ops = &clk_branch2_ops,
6183 		},
6184 	},
6185 };
6186 
6187 static struct clk_branch gcc_usb4_1_sb_if_clk = {
6188 	.halt_reg = 0x2b044,
6189 	.halt_check = BRANCH_HALT,
6190 	.clkr = {
6191 		.enable_reg = 0x2b044,
6192 		.enable_mask = BIT(0),
6193 		.hw.init = &(const struct clk_init_data) {
6194 			.name = "gcc_usb4_1_sb_if_clk",
6195 			.parent_hws = (const struct clk_hw*[]) {
6196 				&gcc_usb4_1_sb_if_clk_src.clkr.hw,
6197 			},
6198 			.num_parents = 1,
6199 			.flags = CLK_SET_RATE_PARENT,
6200 			.ops = &clk_branch2_ops,
6201 		},
6202 	},
6203 };
6204 
6205 static struct clk_branch gcc_usb4_1_sys_clk = {
6206 	.halt_reg = 0x2b054,
6207 	.halt_check = BRANCH_HALT,
6208 	.clkr = {
6209 		.enable_reg = 0x2b054,
6210 		.enable_mask = BIT(0),
6211 		.hw.init = &(const struct clk_init_data) {
6212 			.name = "gcc_usb4_1_sys_clk",
6213 			.parent_hws = (const struct clk_hw*[]) {
6214 				&gcc_usb4_1_phy_sys_clk_src.clkr.hw,
6215 			},
6216 			.num_parents = 1,
6217 			.flags = CLK_SET_RATE_PARENT,
6218 			.ops = &clk_branch2_ops,
6219 		},
6220 	},
6221 };
6222 
6223 static struct clk_branch gcc_usb4_1_tmu_clk = {
6224 	.halt_reg = 0x2b088,
6225 	.halt_check = BRANCH_HALT_VOTED,
6226 	.hwcg_reg = 0x2b088,
6227 	.hwcg_bit = 1,
6228 	.clkr = {
6229 		.enable_reg = 0x2b088,
6230 		.enable_mask = BIT(0),
6231 		.hw.init = &(const struct clk_init_data) {
6232 			.name = "gcc_usb4_1_tmu_clk",
6233 			.parent_hws = (const struct clk_hw*[]) {
6234 				&gcc_usb4_1_tmu_clk_src.clkr.hw,
6235 			},
6236 			.num_parents = 1,
6237 			.flags = CLK_SET_RATE_PARENT,
6238 			.ops = &clk_branch2_ops,
6239 		},
6240 	},
6241 };
6242 
6243 static struct clk_branch gcc_usb4_2_cfg_ahb_clk = {
6244 	.halt_reg = 0x110a8,
6245 	.halt_check = BRANCH_HALT_VOTED,
6246 	.hwcg_reg = 0x110a8,
6247 	.hwcg_bit = 1,
6248 	.clkr = {
6249 		.enable_reg = 0x110a8,
6250 		.enable_mask = BIT(0),
6251 		.hw.init = &(const struct clk_init_data) {
6252 			.name = "gcc_usb4_2_cfg_ahb_clk",
6253 			.ops = &clk_branch2_ops,
6254 		},
6255 	},
6256 };
6257 
6258 static struct clk_branch gcc_usb4_2_dp0_clk = {
6259 	.halt_reg = 0x11060,
6260 	.halt_check = BRANCH_HALT_SKIP,
6261 	.clkr = {
6262 		.enable_reg = 0x11060,
6263 		.enable_mask = BIT(0),
6264 		.hw.init = &(const struct clk_init_data) {
6265 			.name = "gcc_usb4_2_dp0_clk",
6266 			.parent_hws = (const struct clk_hw*[]) {
6267 				&gcc_usb4_2_phy_dp0_clk_src.clkr.hw,
6268 			},
6269 			.num_parents = 1,
6270 			.flags = CLK_SET_RATE_PARENT,
6271 			.ops = &clk_branch2_ops,
6272 		},
6273 	},
6274 };
6275 
6276 static struct clk_branch gcc_usb4_2_dp1_clk = {
6277 	.halt_reg = 0x11108,
6278 	.halt_check = BRANCH_HALT_SKIP,
6279 	.clkr = {
6280 		.enable_reg = 0x11108,
6281 		.enable_mask = BIT(0),
6282 		.hw.init = &(const struct clk_init_data) {
6283 			.name = "gcc_usb4_2_dp1_clk",
6284 			.parent_hws = (const struct clk_hw*[]) {
6285 				&gcc_usb4_2_phy_dp1_clk_src.clkr.hw,
6286 			},
6287 			.num_parents = 1,
6288 			.flags = CLK_SET_RATE_PARENT,
6289 			.ops = &clk_branch2_ops,
6290 		},
6291 	},
6292 };
6293 
6294 static struct clk_branch gcc_usb4_2_master_clk = {
6295 	.halt_reg = 0x11018,
6296 	.halt_check = BRANCH_HALT,
6297 	.clkr = {
6298 		.enable_reg = 0x11018,
6299 		.enable_mask = BIT(0),
6300 		.hw.init = &(const struct clk_init_data) {
6301 			.name = "gcc_usb4_2_master_clk",
6302 			.parent_hws = (const struct clk_hw*[]) {
6303 				&gcc_usb4_2_master_clk_src.clkr.hw,
6304 			},
6305 			.num_parents = 1,
6306 			.flags = CLK_SET_RATE_PARENT,
6307 			.ops = &clk_branch2_ops,
6308 		},
6309 	},
6310 };
6311 
6312 static struct clk_branch gcc_usb4_2_phy_p2rr2p_pipe_clk = {
6313 	.halt_reg = 0x110d8,
6314 	.halt_check = BRANCH_HALT_SKIP,
6315 	.clkr = {
6316 		.enable_reg = 0x110d8,
6317 		.enable_mask = BIT(0),
6318 		.hw.init = &(const struct clk_init_data) {
6319 			.name = "gcc_usb4_2_phy_p2rr2p_pipe_clk",
6320 			.parent_hws = (const struct clk_hw*[]) {
6321 				&gcc_usb4_2_phy_p2rr2p_pipe_clk_src.clkr.hw,
6322 			},
6323 			.num_parents = 1,
6324 			.flags = CLK_SET_RATE_PARENT,
6325 			.ops = &clk_branch2_ops,
6326 		},
6327 	},
6328 };
6329 
6330 static struct clk_branch gcc_usb4_2_phy_pcie_pipe_clk = {
6331 	.halt_reg = 0x11048,
6332 	.halt_check = BRANCH_HALT_SKIP,
6333 	.clkr = {
6334 		.enable_reg = 0x52028,
6335 		.enable_mask = BIT(1),
6336 		.hw.init = &(const struct clk_init_data) {
6337 			.name = "gcc_usb4_2_phy_pcie_pipe_clk",
6338 			.parent_hws = (const struct clk_hw*[]) {
6339 				&gcc_usb4_2_phy_pcie_pipe_mux_clk_src.clkr.hw,
6340 			},
6341 			.num_parents = 1,
6342 			.flags = CLK_SET_RATE_PARENT,
6343 			.ops = &clk_branch2_ops,
6344 		},
6345 	},
6346 };
6347 
6348 static struct clk_branch gcc_usb4_2_phy_rx0_clk = {
6349 	.halt_reg = 0x110b0,
6350 	.halt_check = BRANCH_HALT_SKIP,
6351 	.clkr = {
6352 		.enable_reg = 0x110b0,
6353 		.enable_mask = BIT(0),
6354 		.hw.init = &(const struct clk_init_data) {
6355 			.name = "gcc_usb4_2_phy_rx0_clk",
6356 			.parent_hws = (const struct clk_hw*[]) {
6357 				&gcc_usb4_2_phy_rx0_clk_src.clkr.hw,
6358 			},
6359 			.num_parents = 1,
6360 			.flags = CLK_SET_RATE_PARENT,
6361 			.ops = &clk_branch2_ops,
6362 		},
6363 	},
6364 };
6365 
6366 static struct clk_branch gcc_usb4_2_phy_rx1_clk = {
6367 	.halt_reg = 0x110c0,
6368 	.halt_check = BRANCH_HALT_SKIP,
6369 	.clkr = {
6370 		.enable_reg = 0x110c0,
6371 		.enable_mask = BIT(0),
6372 		.hw.init = &(const struct clk_init_data) {
6373 			.name = "gcc_usb4_2_phy_rx1_clk",
6374 			.parent_hws = (const struct clk_hw*[]) {
6375 				&gcc_usb4_2_phy_rx1_clk_src.clkr.hw,
6376 			},
6377 			.num_parents = 1,
6378 			.flags = CLK_SET_RATE_PARENT,
6379 			.ops = &clk_branch2_ops,
6380 		},
6381 	},
6382 };
6383 
6384 static struct clk_branch gcc_usb4_2_phy_usb_pipe_clk = {
6385 	.halt_reg = 0x110a4,
6386 	.halt_check = BRANCH_HALT_SKIP,
6387 	.hwcg_reg = 0x110a4,
6388 	.hwcg_bit = 1,
6389 	.clkr = {
6390 		.enable_reg = 0x110a4,
6391 		.enable_mask = BIT(0),
6392 		.hw.init = &(const struct clk_init_data) {
6393 			.name = "gcc_usb4_2_phy_usb_pipe_clk",
6394 			.parent_hws = (const struct clk_hw*[]) {
6395 				&gcc_usb34_tert_phy_pipe_clk_src.clkr.hw,
6396 			},
6397 			.num_parents = 1,
6398 			.flags = CLK_SET_RATE_PARENT,
6399 			.ops = &clk_branch2_ops,
6400 		},
6401 	},
6402 };
6403 
6404 static struct clk_branch gcc_usb4_2_sb_if_clk = {
6405 	.halt_reg = 0x11044,
6406 	.halt_check = BRANCH_HALT,
6407 	.clkr = {
6408 		.enable_reg = 0x11044,
6409 		.enable_mask = BIT(0),
6410 		.hw.init = &(const struct clk_init_data) {
6411 			.name = "gcc_usb4_2_sb_if_clk",
6412 			.parent_hws = (const struct clk_hw*[]) {
6413 				&gcc_usb4_2_sb_if_clk_src.clkr.hw,
6414 			},
6415 			.num_parents = 1,
6416 			.flags = CLK_SET_RATE_PARENT,
6417 			.ops = &clk_branch2_ops,
6418 		},
6419 	},
6420 };
6421 
6422 static struct clk_branch gcc_usb4_2_sys_clk = {
6423 	.halt_reg = 0x11054,
6424 	.halt_check = BRANCH_HALT,
6425 	.clkr = {
6426 		.enable_reg = 0x11054,
6427 		.enable_mask = BIT(0),
6428 		.hw.init = &(const struct clk_init_data) {
6429 			.name = "gcc_usb4_2_sys_clk",
6430 			.ops = &clk_branch2_ops,
6431 		},
6432 	},
6433 };
6434 
6435 static struct clk_branch gcc_usb4_2_tmu_clk = {
6436 	.halt_reg = 0x11088,
6437 	.halt_check = BRANCH_HALT_VOTED,
6438 	.hwcg_reg = 0x11088,
6439 	.hwcg_bit = 1,
6440 	.clkr = {
6441 		.enable_reg = 0x11088,
6442 		.enable_mask = BIT(0),
6443 		.hw.init = &(const struct clk_init_data) {
6444 			.name = "gcc_usb4_2_tmu_clk",
6445 			.parent_hws = (const struct clk_hw*[]) {
6446 				&gcc_usb4_2_tmu_clk_src.clkr.hw,
6447 			},
6448 			.num_parents = 1,
6449 			.flags = CLK_SET_RATE_PARENT,
6450 			.ops = &clk_branch2_ops,
6451 		},
6452 	},
6453 };
6454 
6455 static struct clk_branch gcc_video_axi0_clk = {
6456 	.halt_reg = 0x32018,
6457 	.halt_check = BRANCH_HALT_SKIP,
6458 	.hwcg_reg = 0x32018,
6459 	.hwcg_bit = 1,
6460 	.clkr = {
6461 		.enable_reg = 0x32018,
6462 		.enable_mask = BIT(0),
6463 		.hw.init = &(const struct clk_init_data) {
6464 			.name = "gcc_video_axi0_clk",
6465 			.ops = &clk_branch2_ops,
6466 		},
6467 	},
6468 };
6469 
6470 static struct clk_branch gcc_video_axi1_clk = {
6471 	.halt_reg = 0x32024,
6472 	.halt_check = BRANCH_HALT_SKIP,
6473 	.hwcg_reg = 0x32024,
6474 	.hwcg_bit = 1,
6475 	.clkr = {
6476 		.enable_reg = 0x32024,
6477 		.enable_mask = BIT(0),
6478 		.hw.init = &(const struct clk_init_data) {
6479 			.name = "gcc_video_axi1_clk",
6480 			.ops = &clk_branch2_ops,
6481 		},
6482 	},
6483 };
6484 
6485 static struct gdsc gcc_pcie_0_tunnel_gdsc = {
6486 	.gdscr = 0xa0004,
6487 	.en_rest_wait_val = 0x2,
6488 	.en_few_wait_val = 0x2,
6489 	.clk_dis_wait_val = 0xf,
6490 	.pd = {
6491 		.name = "gcc_pcie_0_tunnel_gdsc",
6492 	},
6493 	.pwrsts = PWRSTS_OFF_ON,
6494 	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
6495 };
6496 
6497 static struct gdsc gcc_pcie_1_tunnel_gdsc = {
6498 	.gdscr = 0x2c004,
6499 	.en_rest_wait_val = 0x2,
6500 	.en_few_wait_val = 0x2,
6501 	.clk_dis_wait_val = 0xf,
6502 	.pd = {
6503 		.name = "gcc_pcie_1_tunnel_gdsc",
6504 	},
6505 	.pwrsts = PWRSTS_OFF_ON,
6506 	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
6507 };
6508 
6509 static struct gdsc gcc_pcie_2_tunnel_gdsc = {
6510 	.gdscr = 0x13004,
6511 	.en_rest_wait_val = 0x2,
6512 	.en_few_wait_val = 0x2,
6513 	.clk_dis_wait_val = 0xf,
6514 	.pd = {
6515 		.name = "gcc_pcie_2_tunnel_gdsc",
6516 	},
6517 	.pwrsts = PWRSTS_OFF_ON,
6518 	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
6519 };
6520 
6521 static struct gdsc gcc_pcie_3_gdsc = {
6522 	.gdscr = 0x58004,
6523 	.en_rest_wait_val = 0x2,
6524 	.en_few_wait_val = 0x2,
6525 	.clk_dis_wait_val = 0xf,
6526 	.pd = {
6527 		.name = "gcc_pcie_3_gdsc",
6528 	},
6529 	.pwrsts = PWRSTS_OFF_ON,
6530 	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
6531 };
6532 
6533 static struct gdsc gcc_pcie_3_phy_gdsc = {
6534 	.gdscr = 0x3e000,
6535 	.en_rest_wait_val = 0x2,
6536 	.en_few_wait_val = 0x2,
6537 	.clk_dis_wait_val = 0x2,
6538 	.pd = {
6539 		.name = "gcc_pcie_3_phy_gdsc",
6540 	},
6541 	.pwrsts = PWRSTS_OFF_ON,
6542 	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
6543 };
6544 
6545 static struct gdsc gcc_pcie_4_gdsc = {
6546 	.gdscr = 0x6b004,
6547 	.en_rest_wait_val = 0x2,
6548 	.en_few_wait_val = 0x2,
6549 	.clk_dis_wait_val = 0xf,
6550 	.pd = {
6551 		.name = "gcc_pcie_4_gdsc",
6552 	},
6553 	.pwrsts = PWRSTS_OFF_ON,
6554 	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
6555 };
6556 
6557 static struct gdsc gcc_pcie_4_phy_gdsc = {
6558 	.gdscr = 0x6c000,
6559 	.en_rest_wait_val = 0x2,
6560 	.en_few_wait_val = 0x2,
6561 	.clk_dis_wait_val = 0x2,
6562 	.pd = {
6563 		.name = "gcc_pcie_4_phy_gdsc",
6564 	},
6565 	.pwrsts = PWRSTS_OFF_ON,
6566 	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
6567 };
6568 
6569 static struct gdsc gcc_pcie_5_gdsc = {
6570 	.gdscr = 0x2f004,
6571 	.en_rest_wait_val = 0x2,
6572 	.en_few_wait_val = 0x2,
6573 	.clk_dis_wait_val = 0xf,
6574 	.pd = {
6575 		.name = "gcc_pcie_5_gdsc",
6576 	},
6577 	.pwrsts = PWRSTS_OFF_ON,
6578 	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
6579 };
6580 
6581 static struct gdsc gcc_pcie_5_phy_gdsc = {
6582 	.gdscr = 0x30000,
6583 	.en_rest_wait_val = 0x2,
6584 	.en_few_wait_val = 0x2,
6585 	.clk_dis_wait_val = 0x2,
6586 	.pd = {
6587 		.name = "gcc_pcie_5_phy_gdsc",
6588 	},
6589 	.pwrsts = PWRSTS_OFF_ON,
6590 	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
6591 };
6592 
6593 static struct gdsc gcc_pcie_6_phy_gdsc = {
6594 	.gdscr = 0x8e000,
6595 	.en_rest_wait_val = 0x2,
6596 	.en_few_wait_val = 0x2,
6597 	.clk_dis_wait_val = 0x2,
6598 	.pd = {
6599 		.name = "gcc_pcie_6_phy_gdsc",
6600 	},
6601 	.pwrsts = PWRSTS_OFF_ON,
6602 	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
6603 };
6604 
6605 static struct gdsc gcc_pcie_6a_gdsc = {
6606 	.gdscr = 0x31004,
6607 	.en_rest_wait_val = 0x2,
6608 	.en_few_wait_val = 0x2,
6609 	.clk_dis_wait_val = 0xf,
6610 	.pd = {
6611 		.name = "gcc_pcie_6a_gdsc",
6612 	},
6613 	.pwrsts = PWRSTS_OFF_ON,
6614 	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
6615 };
6616 
6617 static struct gdsc gcc_pcie_6b_gdsc = {
6618 	.gdscr = 0x8d004,
6619 	.en_rest_wait_val = 0x2,
6620 	.en_few_wait_val = 0x2,
6621 	.clk_dis_wait_val = 0xf,
6622 	.pd = {
6623 		.name = "gcc_pcie_6b_gdsc",
6624 	},
6625 	.pwrsts = PWRSTS_OFF_ON,
6626 	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
6627 };
6628 
6629 static struct gdsc gcc_ufs_mem_phy_gdsc = {
6630 	.gdscr = 0x9e000,
6631 	.en_rest_wait_val = 0x2,
6632 	.en_few_wait_val = 0x2,
6633 	.clk_dis_wait_val = 0x2,
6634 	.pd = {
6635 		.name = "gcc_ufs_mem_phy_gdsc",
6636 	},
6637 	.pwrsts = PWRSTS_OFF_ON,
6638 	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
6639 };
6640 
6641 static struct gdsc gcc_ufs_phy_gdsc = {
6642 	.gdscr = 0x77004,
6643 	.en_rest_wait_val = 0x2,
6644 	.en_few_wait_val = 0x2,
6645 	.clk_dis_wait_val = 0xf,
6646 	.pd = {
6647 		.name = "gcc_ufs_phy_gdsc",
6648 	},
6649 	.pwrsts = PWRSTS_OFF_ON,
6650 	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
6651 };
6652 
6653 static struct gdsc gcc_usb20_prim_gdsc = {
6654 	.gdscr = 0x29004,
6655 	.en_rest_wait_val = 0x2,
6656 	.en_few_wait_val = 0x2,
6657 	.clk_dis_wait_val = 0xf,
6658 	.pd = {
6659 		.name = "gcc_usb20_prim_gdsc",
6660 	},
6661 	.pwrsts = PWRSTS_RET_ON,
6662 	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
6663 };
6664 
6665 static struct gdsc gcc_usb30_mp_gdsc = {
6666 	.gdscr = 0x17004,
6667 	.en_rest_wait_val = 0x2,
6668 	.en_few_wait_val = 0x2,
6669 	.clk_dis_wait_val = 0xf,
6670 	.pd = {
6671 		.name = "gcc_usb30_mp_gdsc",
6672 	},
6673 	.pwrsts = PWRSTS_RET_ON,
6674 	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
6675 };
6676 
6677 static struct gdsc gcc_usb30_prim_gdsc = {
6678 	.gdscr = 0x39004,
6679 	.en_rest_wait_val = 0x2,
6680 	.en_few_wait_val = 0x2,
6681 	.clk_dis_wait_val = 0xf,
6682 	.pd = {
6683 		.name = "gcc_usb30_prim_gdsc",
6684 	},
6685 	.pwrsts = PWRSTS_RET_ON,
6686 	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
6687 };
6688 
6689 static struct gdsc gcc_usb30_sec_gdsc = {
6690 	.gdscr = 0xa1004,
6691 	.en_rest_wait_val = 0x2,
6692 	.en_few_wait_val = 0x2,
6693 	.clk_dis_wait_val = 0xf,
6694 	.pd = {
6695 		.name = "gcc_usb30_sec_gdsc",
6696 	},
6697 	.pwrsts = PWRSTS_RET_ON,
6698 	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
6699 };
6700 
6701 static struct gdsc gcc_usb30_tert_gdsc = {
6702 	.gdscr = 0xa2004,
6703 	.en_rest_wait_val = 0x2,
6704 	.en_few_wait_val = 0x2,
6705 	.clk_dis_wait_val = 0xf,
6706 	.pd = {
6707 		.name = "gcc_usb30_tert_gdsc",
6708 	},
6709 	.pwrsts = PWRSTS_RET_ON,
6710 	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
6711 };
6712 
6713 static struct gdsc gcc_usb3_mp_ss0_phy_gdsc = {
6714 	.gdscr = 0x1900c,
6715 	.en_rest_wait_val = 0x2,
6716 	.en_few_wait_val = 0x2,
6717 	.clk_dis_wait_val = 0x2,
6718 	.pd = {
6719 		.name = "gcc_usb3_mp_ss0_phy_gdsc",
6720 	},
6721 	.pwrsts = PWRSTS_RET_ON,
6722 	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
6723 };
6724 
6725 static struct gdsc gcc_usb3_mp_ss1_phy_gdsc = {
6726 	.gdscr = 0x5400c,
6727 	.en_rest_wait_val = 0x2,
6728 	.en_few_wait_val = 0x2,
6729 	.clk_dis_wait_val = 0x2,
6730 	.pd = {
6731 		.name = "gcc_usb3_mp_ss1_phy_gdsc",
6732 	},
6733 	.pwrsts = PWRSTS_RET_ON,
6734 	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
6735 };
6736 
6737 static struct gdsc gcc_usb4_0_gdsc = {
6738 	.gdscr = 0x9f004,
6739 	.en_rest_wait_val = 0x2,
6740 	.en_few_wait_val = 0x2,
6741 	.clk_dis_wait_val = 0xf,
6742 	.pd = {
6743 		.name = "gcc_usb4_0_gdsc",
6744 	},
6745 	.pwrsts = PWRSTS_OFF_ON,
6746 	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
6747 };
6748 
6749 static struct gdsc gcc_usb4_1_gdsc = {
6750 	.gdscr = 0x2b004,
6751 	.en_rest_wait_val = 0x2,
6752 	.en_few_wait_val = 0x2,
6753 	.clk_dis_wait_val = 0xf,
6754 	.pd = {
6755 		.name = "gcc_usb4_1_gdsc",
6756 	},
6757 	.pwrsts = PWRSTS_OFF_ON,
6758 	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
6759 };
6760 
6761 static struct gdsc gcc_usb4_2_gdsc = {
6762 	.gdscr = 0x11004,
6763 	.en_rest_wait_val = 0x2,
6764 	.en_few_wait_val = 0x2,
6765 	.clk_dis_wait_val = 0xf,
6766 	.pd = {
6767 		.name = "gcc_usb4_2_gdsc",
6768 	},
6769 	.pwrsts = PWRSTS_OFF_ON,
6770 	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
6771 };
6772 
6773 static struct gdsc gcc_usb_0_phy_gdsc = {
6774 	.gdscr = 0x50024,
6775 	.en_rest_wait_val = 0x2,
6776 	.en_few_wait_val = 0x2,
6777 	.clk_dis_wait_val = 0x2,
6778 	.pd = {
6779 		.name = "gcc_usb_0_phy_gdsc",
6780 	},
6781 	.pwrsts = PWRSTS_RET_ON,
6782 	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
6783 };
6784 
6785 static struct gdsc gcc_usb_1_phy_gdsc = {
6786 	.gdscr = 0x2a024,
6787 	.en_rest_wait_val = 0x2,
6788 	.en_few_wait_val = 0x2,
6789 	.clk_dis_wait_val = 0x2,
6790 	.pd = {
6791 		.name = "gcc_usb_1_phy_gdsc",
6792 	},
6793 	.pwrsts = PWRSTS_RET_ON,
6794 	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
6795 };
6796 
6797 static struct gdsc gcc_usb_2_phy_gdsc = {
6798 	.gdscr = 0xa3024,
6799 	.en_rest_wait_val = 0x2,
6800 	.en_few_wait_val = 0x2,
6801 	.clk_dis_wait_val = 0x2,
6802 	.pd = {
6803 		.name = "gcc_usb_2_phy_gdsc",
6804 	},
6805 	.pwrsts = PWRSTS_RET_ON,
6806 	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
6807 };
6808 
6809 static struct clk_regmap *gcc_x1e80100_clocks[] = {
6810 	[GCC_AGGRE_NOC_USB_NORTH_AXI_CLK] = &gcc_aggre_noc_usb_north_axi_clk.clkr,
6811 	[GCC_AGGRE_NOC_USB_SOUTH_AXI_CLK] = &gcc_aggre_noc_usb_south_axi_clk.clkr,
6812 	[GCC_AGGRE_UFS_PHY_AXI_CLK] = &gcc_aggre_ufs_phy_axi_clk.clkr,
6813 	[GCC_AGGRE_USB2_PRIM_AXI_CLK] = &gcc_aggre_usb2_prim_axi_clk.clkr,
6814 	[GCC_AGGRE_USB3_MP_AXI_CLK] = &gcc_aggre_usb3_mp_axi_clk.clkr,
6815 	[GCC_AGGRE_USB3_PRIM_AXI_CLK] = &gcc_aggre_usb3_prim_axi_clk.clkr,
6816 	[GCC_AGGRE_USB3_SEC_AXI_CLK] = &gcc_aggre_usb3_sec_axi_clk.clkr,
6817 	[GCC_AGGRE_USB3_TERT_AXI_CLK] = &gcc_aggre_usb3_tert_axi_clk.clkr,
6818 	[GCC_AGGRE_USB4_0_AXI_CLK] = &gcc_aggre_usb4_0_axi_clk.clkr,
6819 	[GCC_AGGRE_USB4_1_AXI_CLK] = &gcc_aggre_usb4_1_axi_clk.clkr,
6820 	[GCC_AGGRE_USB4_2_AXI_CLK] = &gcc_aggre_usb4_2_axi_clk.clkr,
6821 	[GCC_AGGRE_USB_NOC_AXI_CLK] = &gcc_aggre_usb_noc_axi_clk.clkr,
6822 	[GCC_AV1E_AHB_CLK] = &gcc_av1e_ahb_clk.clkr,
6823 	[GCC_AV1E_AXI_CLK] = &gcc_av1e_axi_clk.clkr,
6824 	[GCC_AV1E_XO_CLK] = &gcc_av1e_xo_clk.clkr,
6825 	[GCC_BOOT_ROM_AHB_CLK] = &gcc_boot_rom_ahb_clk.clkr,
6826 	[GCC_CAMERA_HF_AXI_CLK] = &gcc_camera_hf_axi_clk.clkr,
6827 	[GCC_CAMERA_SF_AXI_CLK] = &gcc_camera_sf_axi_clk.clkr,
6828 	[GCC_CFG_NOC_PCIE_ANOC_AHB_CLK] = &gcc_cfg_noc_pcie_anoc_ahb_clk.clkr,
6829 	[GCC_CFG_NOC_PCIE_ANOC_NORTH_AHB_CLK] = &gcc_cfg_noc_pcie_anoc_north_ahb_clk.clkr,
6830 	[GCC_CFG_NOC_PCIE_ANOC_SOUTH_AHB_CLK] = &gcc_cfg_noc_pcie_anoc_south_ahb_clk.clkr,
6831 	[GCC_CFG_NOC_USB2_PRIM_AXI_CLK] = &gcc_cfg_noc_usb2_prim_axi_clk.clkr,
6832 	[GCC_CFG_NOC_USB3_MP_AXI_CLK] = &gcc_cfg_noc_usb3_mp_axi_clk.clkr,
6833 	[GCC_CFG_NOC_USB3_PRIM_AXI_CLK] = &gcc_cfg_noc_usb3_prim_axi_clk.clkr,
6834 	[GCC_CFG_NOC_USB3_SEC_AXI_CLK] = &gcc_cfg_noc_usb3_sec_axi_clk.clkr,
6835 	[GCC_CFG_NOC_USB3_TERT_AXI_CLK] = &gcc_cfg_noc_usb3_tert_axi_clk.clkr,
6836 	[GCC_CFG_NOC_USB_ANOC_AHB_CLK] = &gcc_cfg_noc_usb_anoc_ahb_clk.clkr,
6837 	[GCC_CFG_NOC_USB_ANOC_NORTH_AHB_CLK] = &gcc_cfg_noc_usb_anoc_north_ahb_clk.clkr,
6838 	[GCC_CFG_NOC_USB_ANOC_SOUTH_AHB_CLK] = &gcc_cfg_noc_usb_anoc_south_ahb_clk.clkr,
6839 	[GCC_CNOC_PCIE1_TUNNEL_CLK] = &gcc_cnoc_pcie1_tunnel_clk.clkr,
6840 	[GCC_CNOC_PCIE2_TUNNEL_CLK] = &gcc_cnoc_pcie2_tunnel_clk.clkr,
6841 	[GCC_CNOC_PCIE_NORTH_SF_AXI_CLK] = &gcc_cnoc_pcie_north_sf_axi_clk.clkr,
6842 	[GCC_CNOC_PCIE_SOUTH_SF_AXI_CLK] = &gcc_cnoc_pcie_south_sf_axi_clk.clkr,
6843 	[GCC_CNOC_PCIE_TUNNEL_CLK] = &gcc_cnoc_pcie_tunnel_clk.clkr,
6844 	[GCC_DDRSS_GPU_AXI_CLK] = &gcc_ddrss_gpu_axi_clk.clkr,
6845 	[GCC_DISP_HF_AXI_CLK] = &gcc_disp_hf_axi_clk.clkr,
6846 	[GCC_GP1_CLK] = &gcc_gp1_clk.clkr,
6847 	[GCC_GP1_CLK_SRC] = &gcc_gp1_clk_src.clkr,
6848 	[GCC_GP2_CLK] = &gcc_gp2_clk.clkr,
6849 	[GCC_GP2_CLK_SRC] = &gcc_gp2_clk_src.clkr,
6850 	[GCC_GP3_CLK] = &gcc_gp3_clk.clkr,
6851 	[GCC_GP3_CLK_SRC] = &gcc_gp3_clk_src.clkr,
6852 	[GCC_GPLL0] = &gcc_gpll0.clkr,
6853 	[GCC_GPLL0_OUT_EVEN] = &gcc_gpll0_out_even.clkr,
6854 	[GCC_GPLL4] = &gcc_gpll4.clkr,
6855 	[GCC_GPLL7] = &gcc_gpll7.clkr,
6856 	[GCC_GPLL8] = &gcc_gpll8.clkr,
6857 	[GCC_GPLL9] = &gcc_gpll9.clkr,
6858 	[GCC_GPU_GPLL0_CPH_CLK_SRC] = &gcc_gpu_gpll0_cph_clk_src.clkr,
6859 	[GCC_GPU_GPLL0_DIV_CPH_CLK_SRC] = &gcc_gpu_gpll0_div_cph_clk_src.clkr,
6860 	[GCC_GPU_MEMNOC_GFX_CLK] = &gcc_gpu_memnoc_gfx_clk.clkr,
6861 	[GCC_GPU_SNOC_DVM_GFX_CLK] = &gcc_gpu_snoc_dvm_gfx_clk.clkr,
6862 	[GCC_PCIE0_PHY_RCHNG_CLK] = &gcc_pcie0_phy_rchng_clk.clkr,
6863 	[GCC_PCIE1_PHY_RCHNG_CLK] = &gcc_pcie1_phy_rchng_clk.clkr,
6864 	[GCC_PCIE2_PHY_RCHNG_CLK] = &gcc_pcie2_phy_rchng_clk.clkr,
6865 	[GCC_PCIE_0_AUX_CLK] = &gcc_pcie_0_aux_clk.clkr,
6866 	[GCC_PCIE_0_AUX_CLK_SRC] = &gcc_pcie_0_aux_clk_src.clkr,
6867 	[GCC_PCIE_0_CFG_AHB_CLK] = &gcc_pcie_0_cfg_ahb_clk.clkr,
6868 	[GCC_PCIE_0_MSTR_AXI_CLK] = &gcc_pcie_0_mstr_axi_clk.clkr,
6869 	[GCC_PCIE_0_PHY_RCHNG_CLK_SRC] = &gcc_pcie_0_phy_rchng_clk_src.clkr,
6870 	[GCC_PCIE_0_PIPE_CLK] = &gcc_pcie_0_pipe_clk.clkr,
6871 	[GCC_PCIE_0_SLV_AXI_CLK] = &gcc_pcie_0_slv_axi_clk.clkr,
6872 	[GCC_PCIE_0_SLV_Q2A_AXI_CLK] = &gcc_pcie_0_slv_q2a_axi_clk.clkr,
6873 	[GCC_PCIE_1_AUX_CLK] = &gcc_pcie_1_aux_clk.clkr,
6874 	[GCC_PCIE_1_AUX_CLK_SRC] = &gcc_pcie_1_aux_clk_src.clkr,
6875 	[GCC_PCIE_1_CFG_AHB_CLK] = &gcc_pcie_1_cfg_ahb_clk.clkr,
6876 	[GCC_PCIE_1_MSTR_AXI_CLK] = &gcc_pcie_1_mstr_axi_clk.clkr,
6877 	[GCC_PCIE_1_PHY_RCHNG_CLK_SRC] = &gcc_pcie_1_phy_rchng_clk_src.clkr,
6878 	[GCC_PCIE_1_PIPE_CLK] = &gcc_pcie_1_pipe_clk.clkr,
6879 	[GCC_PCIE_1_SLV_AXI_CLK] = &gcc_pcie_1_slv_axi_clk.clkr,
6880 	[GCC_PCIE_1_SLV_Q2A_AXI_CLK] = &gcc_pcie_1_slv_q2a_axi_clk.clkr,
6881 	[GCC_PCIE_2_AUX_CLK] = &gcc_pcie_2_aux_clk.clkr,
6882 	[GCC_PCIE_2_AUX_CLK_SRC] = &gcc_pcie_2_aux_clk_src.clkr,
6883 	[GCC_PCIE_2_CFG_AHB_CLK] = &gcc_pcie_2_cfg_ahb_clk.clkr,
6884 	[GCC_PCIE_2_MSTR_AXI_CLK] = &gcc_pcie_2_mstr_axi_clk.clkr,
6885 	[GCC_PCIE_2_PHY_RCHNG_CLK_SRC] = &gcc_pcie_2_phy_rchng_clk_src.clkr,
6886 	[GCC_PCIE_2_PIPE_CLK] = &gcc_pcie_2_pipe_clk.clkr,
6887 	[GCC_PCIE_2_SLV_AXI_CLK] = &gcc_pcie_2_slv_axi_clk.clkr,
6888 	[GCC_PCIE_2_SLV_Q2A_AXI_CLK] = &gcc_pcie_2_slv_q2a_axi_clk.clkr,
6889 	[GCC_PCIE_3_AUX_CLK] = &gcc_pcie_3_aux_clk.clkr,
6890 	[GCC_PCIE_3_AUX_CLK_SRC] = &gcc_pcie_3_aux_clk_src.clkr,
6891 	[GCC_PCIE_3_CFG_AHB_CLK] = &gcc_pcie_3_cfg_ahb_clk.clkr,
6892 	[GCC_PCIE_3_MSTR_AXI_CLK] = &gcc_pcie_3_mstr_axi_clk.clkr,
6893 	[GCC_PCIE_3_PHY_AUX_CLK] = &gcc_pcie_3_phy_aux_clk.clkr,
6894 	[GCC_PCIE_3_PHY_RCHNG_CLK] = &gcc_pcie_3_phy_rchng_clk.clkr,
6895 	[GCC_PCIE_3_PHY_RCHNG_CLK_SRC] = &gcc_pcie_3_phy_rchng_clk_src.clkr,
6896 	[GCC_PCIE_3_PIPE_CLK] = &gcc_pcie_3_pipe_clk.clkr,
6897 	[GCC_PCIE_3_PIPE_CLK_SRC] = &gcc_pcie_3_pipe_clk_src.clkr,
6898 	[GCC_PCIE_3_PIPE_DIV_CLK_SRC] = &gcc_pcie_3_pipe_div_clk_src.clkr,
6899 	[GCC_PCIE_3_PIPEDIV2_CLK] = &gcc_pcie_3_pipediv2_clk.clkr,
6900 	[GCC_PCIE_3_SLV_AXI_CLK] = &gcc_pcie_3_slv_axi_clk.clkr,
6901 	[GCC_PCIE_3_SLV_Q2A_AXI_CLK] = &gcc_pcie_3_slv_q2a_axi_clk.clkr,
6902 	[GCC_PCIE_4_AUX_CLK] = &gcc_pcie_4_aux_clk.clkr,
6903 	[GCC_PCIE_4_AUX_CLK_SRC] = &gcc_pcie_4_aux_clk_src.clkr,
6904 	[GCC_PCIE_4_CFG_AHB_CLK] = &gcc_pcie_4_cfg_ahb_clk.clkr,
6905 	[GCC_PCIE_4_MSTR_AXI_CLK] = &gcc_pcie_4_mstr_axi_clk.clkr,
6906 	[GCC_PCIE_4_PHY_RCHNG_CLK] = &gcc_pcie_4_phy_rchng_clk.clkr,
6907 	[GCC_PCIE_4_PHY_RCHNG_CLK_SRC] = &gcc_pcie_4_phy_rchng_clk_src.clkr,
6908 	[GCC_PCIE_4_PIPE_CLK] = &gcc_pcie_4_pipe_clk.clkr,
6909 	[GCC_PCIE_4_PIPE_CLK_SRC] = &gcc_pcie_4_pipe_clk_src.clkr,
6910 	[GCC_PCIE_4_PIPE_DIV_CLK_SRC] = &gcc_pcie_4_pipe_div_clk_src.clkr,
6911 	[GCC_PCIE_4_PIPEDIV2_CLK] = &gcc_pcie_4_pipediv2_clk.clkr,
6912 	[GCC_PCIE_4_SLV_AXI_CLK] = &gcc_pcie_4_slv_axi_clk.clkr,
6913 	[GCC_PCIE_4_SLV_Q2A_AXI_CLK] = &gcc_pcie_4_slv_q2a_axi_clk.clkr,
6914 	[GCC_PCIE_5_AUX_CLK] = &gcc_pcie_5_aux_clk.clkr,
6915 	[GCC_PCIE_5_AUX_CLK_SRC] = &gcc_pcie_5_aux_clk_src.clkr,
6916 	[GCC_PCIE_5_CFG_AHB_CLK] = &gcc_pcie_5_cfg_ahb_clk.clkr,
6917 	[GCC_PCIE_5_MSTR_AXI_CLK] = &gcc_pcie_5_mstr_axi_clk.clkr,
6918 	[GCC_PCIE_5_PHY_RCHNG_CLK] = &gcc_pcie_5_phy_rchng_clk.clkr,
6919 	[GCC_PCIE_5_PHY_RCHNG_CLK_SRC] = &gcc_pcie_5_phy_rchng_clk_src.clkr,
6920 	[GCC_PCIE_5_PIPE_CLK] = &gcc_pcie_5_pipe_clk.clkr,
6921 	[GCC_PCIE_5_PIPE_CLK_SRC] = &gcc_pcie_5_pipe_clk_src.clkr,
6922 	[GCC_PCIE_5_PIPE_DIV_CLK_SRC] = &gcc_pcie_5_pipe_div_clk_src.clkr,
6923 	[GCC_PCIE_5_PIPEDIV2_CLK] = &gcc_pcie_5_pipediv2_clk.clkr,
6924 	[GCC_PCIE_5_SLV_AXI_CLK] = &gcc_pcie_5_slv_axi_clk.clkr,
6925 	[GCC_PCIE_5_SLV_Q2A_AXI_CLK] = &gcc_pcie_5_slv_q2a_axi_clk.clkr,
6926 	[GCC_PCIE_6A_AUX_CLK] = &gcc_pcie_6a_aux_clk.clkr,
6927 	[GCC_PCIE_6A_AUX_CLK_SRC] = &gcc_pcie_6a_aux_clk_src.clkr,
6928 	[GCC_PCIE_6A_CFG_AHB_CLK] = &gcc_pcie_6a_cfg_ahb_clk.clkr,
6929 	[GCC_PCIE_6A_MSTR_AXI_CLK] = &gcc_pcie_6a_mstr_axi_clk.clkr,
6930 	[GCC_PCIE_6A_PHY_AUX_CLK] = &gcc_pcie_6a_phy_aux_clk.clkr,
6931 	[GCC_PCIE_6A_PHY_RCHNG_CLK] = &gcc_pcie_6a_phy_rchng_clk.clkr,
6932 	[GCC_PCIE_6A_PHY_RCHNG_CLK_SRC] = &gcc_pcie_6a_phy_rchng_clk_src.clkr,
6933 	[GCC_PCIE_6A_PIPE_CLK] = &gcc_pcie_6a_pipe_clk.clkr,
6934 	[GCC_PCIE_6A_PIPE_CLK_SRC] = &gcc_pcie_6a_pipe_clk_src.clkr,
6935 	[GCC_PCIE_6A_PIPE_DIV_CLK_SRC] = &gcc_pcie_6a_pipe_div_clk_src.clkr,
6936 	[GCC_PCIE_6A_PIPEDIV2_CLK] = &gcc_pcie_6a_pipediv2_clk.clkr,
6937 	[GCC_PCIE_6A_SLV_AXI_CLK] = &gcc_pcie_6a_slv_axi_clk.clkr,
6938 	[GCC_PCIE_6A_SLV_Q2A_AXI_CLK] = &gcc_pcie_6a_slv_q2a_axi_clk.clkr,
6939 	[GCC_PCIE_6B_AUX_CLK] = &gcc_pcie_6b_aux_clk.clkr,
6940 	[GCC_PCIE_6B_AUX_CLK_SRC] = &gcc_pcie_6b_aux_clk_src.clkr,
6941 	[GCC_PCIE_6B_CFG_AHB_CLK] = &gcc_pcie_6b_cfg_ahb_clk.clkr,
6942 	[GCC_PCIE_6B_MSTR_AXI_CLK] = &gcc_pcie_6b_mstr_axi_clk.clkr,
6943 	[GCC_PCIE_6B_PHY_AUX_CLK] = &gcc_pcie_6b_phy_aux_clk.clkr,
6944 	[GCC_PCIE_6B_PHY_RCHNG_CLK] = &gcc_pcie_6b_phy_rchng_clk.clkr,
6945 	[GCC_PCIE_6B_PHY_RCHNG_CLK_SRC] = &gcc_pcie_6b_phy_rchng_clk_src.clkr,
6946 	[GCC_PCIE_6B_PIPE_CLK] = &gcc_pcie_6b_pipe_clk.clkr,
6947 	[GCC_PCIE_6B_PIPE_CLK_SRC] = &gcc_pcie_6b_pipe_clk_src.clkr,
6948 	[GCC_PCIE_6B_PIPE_DIV_CLK_SRC] = &gcc_pcie_6b_pipe_div_clk_src.clkr,
6949 	[GCC_PCIE_6B_PIPEDIV2_CLK] = &gcc_pcie_6b_pipediv2_clk.clkr,
6950 	[GCC_PCIE_6B_SLV_AXI_CLK] = &gcc_pcie_6b_slv_axi_clk.clkr,
6951 	[GCC_PCIE_6B_SLV_Q2A_AXI_CLK] = &gcc_pcie_6b_slv_q2a_axi_clk.clkr,
6952 	[GCC_PCIE_RSCC_AHB_CLK] = &gcc_pcie_rscc_ahb_clk.clkr,
6953 	[GCC_PCIE_RSCC_XO_CLK] = &gcc_pcie_rscc_xo_clk.clkr,
6954 	[GCC_PCIE_RSCC_XO_CLK_SRC] = &gcc_pcie_rscc_xo_clk_src.clkr,
6955 	[GCC_PDM2_CLK] = &gcc_pdm2_clk.clkr,
6956 	[GCC_PDM2_CLK_SRC] = &gcc_pdm2_clk_src.clkr,
6957 	[GCC_PDM_AHB_CLK] = &gcc_pdm_ahb_clk.clkr,
6958 	[GCC_PDM_XO4_CLK] = &gcc_pdm_xo4_clk.clkr,
6959 	[GCC_QMIP_AV1E_AHB_CLK] = &gcc_qmip_av1e_ahb_clk.clkr,
6960 	[GCC_QMIP_CAMERA_NRT_AHB_CLK] = &gcc_qmip_camera_nrt_ahb_clk.clkr,
6961 	[GCC_QMIP_CAMERA_RT_AHB_CLK] = &gcc_qmip_camera_rt_ahb_clk.clkr,
6962 	[GCC_QMIP_DISP_AHB_CLK] = &gcc_qmip_disp_ahb_clk.clkr,
6963 	[GCC_QMIP_GPU_AHB_CLK] = &gcc_qmip_gpu_ahb_clk.clkr,
6964 	[GCC_QMIP_VIDEO_CV_CPU_AHB_CLK] = &gcc_qmip_video_cv_cpu_ahb_clk.clkr,
6965 	[GCC_QMIP_VIDEO_CVP_AHB_CLK] = &gcc_qmip_video_cvp_ahb_clk.clkr,
6966 	[GCC_QMIP_VIDEO_V_CPU_AHB_CLK] = &gcc_qmip_video_v_cpu_ahb_clk.clkr,
6967 	[GCC_QMIP_VIDEO_VCODEC_AHB_CLK] = &gcc_qmip_video_vcodec_ahb_clk.clkr,
6968 	[GCC_QUPV3_WRAP0_CORE_2X_CLK] = &gcc_qupv3_wrap0_core_2x_clk.clkr,
6969 	[GCC_QUPV3_WRAP0_CORE_CLK] = &gcc_qupv3_wrap0_core_clk.clkr,
6970 	[GCC_QUPV3_WRAP0_QSPI_S2_CLK] = &gcc_qupv3_wrap0_qspi_s2_clk.clkr,
6971 	[GCC_QUPV3_WRAP0_QSPI_S3_CLK] = &gcc_qupv3_wrap0_qspi_s3_clk.clkr,
6972 	[GCC_QUPV3_WRAP0_S0_CLK] = &gcc_qupv3_wrap0_s0_clk.clkr,
6973 	[GCC_QUPV3_WRAP0_S0_CLK_SRC] = &gcc_qupv3_wrap0_s0_clk_src.clkr,
6974 	[GCC_QUPV3_WRAP0_S1_CLK] = &gcc_qupv3_wrap0_s1_clk.clkr,
6975 	[GCC_QUPV3_WRAP0_S1_CLK_SRC] = &gcc_qupv3_wrap0_s1_clk_src.clkr,
6976 	[GCC_QUPV3_WRAP0_S2_CLK] = &gcc_qupv3_wrap0_s2_clk.clkr,
6977 	[GCC_QUPV3_WRAP0_S2_CLK_SRC] = &gcc_qupv3_wrap0_s2_clk_src.clkr,
6978 	[GCC_QUPV3_WRAP0_S2_DIV_CLK_SRC] = &gcc_qupv3_wrap0_s2_div_clk_src.clkr,
6979 	[GCC_QUPV3_WRAP0_S3_CLK] = &gcc_qupv3_wrap0_s3_clk.clkr,
6980 	[GCC_QUPV3_WRAP0_S3_CLK_SRC] = &gcc_qupv3_wrap0_s3_clk_src.clkr,
6981 	[GCC_QUPV3_WRAP0_S3_DIV_CLK_SRC] = &gcc_qupv3_wrap0_s3_div_clk_src.clkr,
6982 	[GCC_QUPV3_WRAP0_S4_CLK] = &gcc_qupv3_wrap0_s4_clk.clkr,
6983 	[GCC_QUPV3_WRAP0_S4_CLK_SRC] = &gcc_qupv3_wrap0_s4_clk_src.clkr,
6984 	[GCC_QUPV3_WRAP0_S5_CLK] = &gcc_qupv3_wrap0_s5_clk.clkr,
6985 	[GCC_QUPV3_WRAP0_S5_CLK_SRC] = &gcc_qupv3_wrap0_s5_clk_src.clkr,
6986 	[GCC_QUPV3_WRAP0_S6_CLK] = &gcc_qupv3_wrap0_s6_clk.clkr,
6987 	[GCC_QUPV3_WRAP0_S6_CLK_SRC] = &gcc_qupv3_wrap0_s6_clk_src.clkr,
6988 	[GCC_QUPV3_WRAP0_S7_CLK] = &gcc_qupv3_wrap0_s7_clk.clkr,
6989 	[GCC_QUPV3_WRAP0_S7_CLK_SRC] = &gcc_qupv3_wrap0_s7_clk_src.clkr,
6990 	[GCC_QUPV3_WRAP1_CORE_2X_CLK] = &gcc_qupv3_wrap1_core_2x_clk.clkr,
6991 	[GCC_QUPV3_WRAP1_CORE_CLK] = &gcc_qupv3_wrap1_core_clk.clkr,
6992 	[GCC_QUPV3_WRAP1_QSPI_S2_CLK] = &gcc_qupv3_wrap1_qspi_s2_clk.clkr,
6993 	[GCC_QUPV3_WRAP1_QSPI_S3_CLK] = &gcc_qupv3_wrap1_qspi_s3_clk.clkr,
6994 	[GCC_QUPV3_WRAP1_S0_CLK] = &gcc_qupv3_wrap1_s0_clk.clkr,
6995 	[GCC_QUPV3_WRAP1_S0_CLK_SRC] = &gcc_qupv3_wrap1_s0_clk_src.clkr,
6996 	[GCC_QUPV3_WRAP1_S1_CLK] = &gcc_qupv3_wrap1_s1_clk.clkr,
6997 	[GCC_QUPV3_WRAP1_S1_CLK_SRC] = &gcc_qupv3_wrap1_s1_clk_src.clkr,
6998 	[GCC_QUPV3_WRAP1_S2_CLK] = &gcc_qupv3_wrap1_s2_clk.clkr,
6999 	[GCC_QUPV3_WRAP1_S2_CLK_SRC] = &gcc_qupv3_wrap1_s2_clk_src.clkr,
7000 	[GCC_QUPV3_WRAP1_S2_DIV_CLK_SRC] = &gcc_qupv3_wrap1_s2_div_clk_src.clkr,
7001 	[GCC_QUPV3_WRAP1_S3_CLK] = &gcc_qupv3_wrap1_s3_clk.clkr,
7002 	[GCC_QUPV3_WRAP1_S3_CLK_SRC] = &gcc_qupv3_wrap1_s3_clk_src.clkr,
7003 	[GCC_QUPV3_WRAP1_S3_DIV_CLK_SRC] = &gcc_qupv3_wrap1_s3_div_clk_src.clkr,
7004 	[GCC_QUPV3_WRAP1_S4_CLK] = &gcc_qupv3_wrap1_s4_clk.clkr,
7005 	[GCC_QUPV3_WRAP1_S4_CLK_SRC] = &gcc_qupv3_wrap1_s4_clk_src.clkr,
7006 	[GCC_QUPV3_WRAP1_S5_CLK] = &gcc_qupv3_wrap1_s5_clk.clkr,
7007 	[GCC_QUPV3_WRAP1_S5_CLK_SRC] = &gcc_qupv3_wrap1_s5_clk_src.clkr,
7008 	[GCC_QUPV3_WRAP1_S6_CLK] = &gcc_qupv3_wrap1_s6_clk.clkr,
7009 	[GCC_QUPV3_WRAP1_S6_CLK_SRC] = &gcc_qupv3_wrap1_s6_clk_src.clkr,
7010 	[GCC_QUPV3_WRAP1_S7_CLK] = &gcc_qupv3_wrap1_s7_clk.clkr,
7011 	[GCC_QUPV3_WRAP1_S7_CLK_SRC] = &gcc_qupv3_wrap1_s7_clk_src.clkr,
7012 	[GCC_QUPV3_WRAP2_CORE_2X_CLK] = &gcc_qupv3_wrap2_core_2x_clk.clkr,
7013 	[GCC_QUPV3_WRAP2_CORE_CLK] = &gcc_qupv3_wrap2_core_clk.clkr,
7014 	[GCC_QUPV3_WRAP2_QSPI_S2_CLK] = &gcc_qupv3_wrap2_qspi_s2_clk.clkr,
7015 	[GCC_QUPV3_WRAP2_QSPI_S3_CLK] = &gcc_qupv3_wrap2_qspi_s3_clk.clkr,
7016 	[GCC_QUPV3_WRAP2_S0_CLK] = &gcc_qupv3_wrap2_s0_clk.clkr,
7017 	[GCC_QUPV3_WRAP2_S0_CLK_SRC] = &gcc_qupv3_wrap2_s0_clk_src.clkr,
7018 	[GCC_QUPV3_WRAP2_S1_CLK] = &gcc_qupv3_wrap2_s1_clk.clkr,
7019 	[GCC_QUPV3_WRAP2_S1_CLK_SRC] = &gcc_qupv3_wrap2_s1_clk_src.clkr,
7020 	[GCC_QUPV3_WRAP2_S2_CLK] = &gcc_qupv3_wrap2_s2_clk.clkr,
7021 	[GCC_QUPV3_WRAP2_S2_CLK_SRC] = &gcc_qupv3_wrap2_s2_clk_src.clkr,
7022 	[GCC_QUPV3_WRAP2_S2_DIV_CLK_SRC] = &gcc_qupv3_wrap2_s2_div_clk_src.clkr,
7023 	[GCC_QUPV3_WRAP2_S3_CLK] = &gcc_qupv3_wrap2_s3_clk.clkr,
7024 	[GCC_QUPV3_WRAP2_S3_CLK_SRC] = &gcc_qupv3_wrap2_s3_clk_src.clkr,
7025 	[GCC_QUPV3_WRAP2_S3_DIV_CLK_SRC] = &gcc_qupv3_wrap2_s3_div_clk_src.clkr,
7026 	[GCC_QUPV3_WRAP2_S4_CLK] = &gcc_qupv3_wrap2_s4_clk.clkr,
7027 	[GCC_QUPV3_WRAP2_S4_CLK_SRC] = &gcc_qupv3_wrap2_s4_clk_src.clkr,
7028 	[GCC_QUPV3_WRAP2_S5_CLK] = &gcc_qupv3_wrap2_s5_clk.clkr,
7029 	[GCC_QUPV3_WRAP2_S5_CLK_SRC] = &gcc_qupv3_wrap2_s5_clk_src.clkr,
7030 	[GCC_QUPV3_WRAP2_S6_CLK] = &gcc_qupv3_wrap2_s6_clk.clkr,
7031 	[GCC_QUPV3_WRAP2_S6_CLK_SRC] = &gcc_qupv3_wrap2_s6_clk_src.clkr,
7032 	[GCC_QUPV3_WRAP2_S7_CLK] = &gcc_qupv3_wrap2_s7_clk.clkr,
7033 	[GCC_QUPV3_WRAP2_S7_CLK_SRC] = &gcc_qupv3_wrap2_s7_clk_src.clkr,
7034 	[GCC_QUPV3_WRAP_0_M_AHB_CLK] = &gcc_qupv3_wrap_0_m_ahb_clk.clkr,
7035 	[GCC_QUPV3_WRAP_0_S_AHB_CLK] = &gcc_qupv3_wrap_0_s_ahb_clk.clkr,
7036 	[GCC_QUPV3_WRAP_1_M_AHB_CLK] = &gcc_qupv3_wrap_1_m_ahb_clk.clkr,
7037 	[GCC_QUPV3_WRAP_1_S_AHB_CLK] = &gcc_qupv3_wrap_1_s_ahb_clk.clkr,
7038 	[GCC_QUPV3_WRAP_2_M_AHB_CLK] = &gcc_qupv3_wrap_2_m_ahb_clk.clkr,
7039 	[GCC_QUPV3_WRAP_2_S_AHB_CLK] = &gcc_qupv3_wrap_2_s_ahb_clk.clkr,
7040 	[GCC_SDCC2_AHB_CLK] = &gcc_sdcc2_ahb_clk.clkr,
7041 	[GCC_SDCC2_APPS_CLK] = &gcc_sdcc2_apps_clk.clkr,
7042 	[GCC_SDCC2_APPS_CLK_SRC] = &gcc_sdcc2_apps_clk_src.clkr,
7043 	[GCC_SDCC4_AHB_CLK] = &gcc_sdcc4_ahb_clk.clkr,
7044 	[GCC_SDCC4_APPS_CLK] = &gcc_sdcc4_apps_clk.clkr,
7045 	[GCC_SDCC4_APPS_CLK_SRC] = &gcc_sdcc4_apps_clk_src.clkr,
7046 	[GCC_SYS_NOC_USB_AXI_CLK] = &gcc_sys_noc_usb_axi_clk.clkr,
7047 	[GCC_UFS_PHY_AHB_CLK] = &gcc_ufs_phy_ahb_clk.clkr,
7048 	[GCC_UFS_PHY_AXI_CLK] = &gcc_ufs_phy_axi_clk.clkr,
7049 	[GCC_UFS_PHY_AXI_CLK_SRC] = &gcc_ufs_phy_axi_clk_src.clkr,
7050 	[GCC_UFS_PHY_ICE_CORE_CLK] = &gcc_ufs_phy_ice_core_clk.clkr,
7051 	[GCC_UFS_PHY_ICE_CORE_CLK_SRC] = &gcc_ufs_phy_ice_core_clk_src.clkr,
7052 	[GCC_UFS_PHY_PHY_AUX_CLK] = &gcc_ufs_phy_phy_aux_clk.clkr,
7053 	[GCC_UFS_PHY_PHY_AUX_CLK_SRC] = &gcc_ufs_phy_phy_aux_clk_src.clkr,
7054 	[GCC_UFS_PHY_RX_SYMBOL_0_CLK] = &gcc_ufs_phy_rx_symbol_0_clk.clkr,
7055 	[GCC_UFS_PHY_RX_SYMBOL_1_CLK] = &gcc_ufs_phy_rx_symbol_1_clk.clkr,
7056 	[GCC_UFS_PHY_TX_SYMBOL_0_CLK] = &gcc_ufs_phy_tx_symbol_0_clk.clkr,
7057 	[GCC_UFS_PHY_UNIPRO_CORE_CLK] = &gcc_ufs_phy_unipro_core_clk.clkr,
7058 	[GCC_UFS_PHY_UNIPRO_CORE_CLK_SRC] = &gcc_ufs_phy_unipro_core_clk_src.clkr,
7059 	[GCC_USB20_MASTER_CLK] = &gcc_usb20_master_clk.clkr,
7060 	[GCC_USB20_MASTER_CLK_SRC] = &gcc_usb20_master_clk_src.clkr,
7061 	[GCC_USB20_MOCK_UTMI_CLK] = &gcc_usb20_mock_utmi_clk.clkr,
7062 	[GCC_USB20_MOCK_UTMI_CLK_SRC] = &gcc_usb20_mock_utmi_clk_src.clkr,
7063 	[GCC_USB20_MOCK_UTMI_POSTDIV_CLK_SRC] = &gcc_usb20_mock_utmi_postdiv_clk_src.clkr,
7064 	[GCC_USB20_SLEEP_CLK] = &gcc_usb20_sleep_clk.clkr,
7065 	[GCC_USB30_MP_MASTER_CLK] = &gcc_usb30_mp_master_clk.clkr,
7066 	[GCC_USB30_MP_MASTER_CLK_SRC] = &gcc_usb30_mp_master_clk_src.clkr,
7067 	[GCC_USB30_MP_MOCK_UTMI_CLK] = &gcc_usb30_mp_mock_utmi_clk.clkr,
7068 	[GCC_USB30_MP_MOCK_UTMI_CLK_SRC] = &gcc_usb30_mp_mock_utmi_clk_src.clkr,
7069 	[GCC_USB30_MP_MOCK_UTMI_POSTDIV_CLK_SRC] = &gcc_usb30_mp_mock_utmi_postdiv_clk_src.clkr,
7070 	[GCC_USB30_MP_SLEEP_CLK] = &gcc_usb30_mp_sleep_clk.clkr,
7071 	[GCC_USB30_PRIM_MASTER_CLK] = &gcc_usb30_prim_master_clk.clkr,
7072 	[GCC_USB30_PRIM_MASTER_CLK_SRC] = &gcc_usb30_prim_master_clk_src.clkr,
7073 	[GCC_USB30_PRIM_MOCK_UTMI_CLK] = &gcc_usb30_prim_mock_utmi_clk.clkr,
7074 	[GCC_USB30_PRIM_MOCK_UTMI_CLK_SRC] = &gcc_usb30_prim_mock_utmi_clk_src.clkr,
7075 	[GCC_USB30_PRIM_MOCK_UTMI_POSTDIV_CLK_SRC] = &gcc_usb30_prim_mock_utmi_postdiv_clk_src.clkr,
7076 	[GCC_USB30_PRIM_SLEEP_CLK] = &gcc_usb30_prim_sleep_clk.clkr,
7077 	[GCC_USB30_SEC_MASTER_CLK] = &gcc_usb30_sec_master_clk.clkr,
7078 	[GCC_USB30_SEC_MASTER_CLK_SRC] = &gcc_usb30_sec_master_clk_src.clkr,
7079 	[GCC_USB30_SEC_MOCK_UTMI_CLK] = &gcc_usb30_sec_mock_utmi_clk.clkr,
7080 	[GCC_USB30_SEC_MOCK_UTMI_CLK_SRC] = &gcc_usb30_sec_mock_utmi_clk_src.clkr,
7081 	[GCC_USB30_SEC_MOCK_UTMI_POSTDIV_CLK_SRC] = &gcc_usb30_sec_mock_utmi_postdiv_clk_src.clkr,
7082 	[GCC_USB30_SEC_SLEEP_CLK] = &gcc_usb30_sec_sleep_clk.clkr,
7083 	[GCC_USB30_TERT_MASTER_CLK] = &gcc_usb30_tert_master_clk.clkr,
7084 	[GCC_USB30_TERT_MASTER_CLK_SRC] = &gcc_usb30_tert_master_clk_src.clkr,
7085 	[GCC_USB30_TERT_MOCK_UTMI_CLK] = &gcc_usb30_tert_mock_utmi_clk.clkr,
7086 	[GCC_USB30_TERT_MOCK_UTMI_CLK_SRC] = &gcc_usb30_tert_mock_utmi_clk_src.clkr,
7087 	[GCC_USB30_TERT_MOCK_UTMI_POSTDIV_CLK_SRC] = &gcc_usb30_tert_mock_utmi_postdiv_clk_src.clkr,
7088 	[GCC_USB30_TERT_SLEEP_CLK] = &gcc_usb30_tert_sleep_clk.clkr,
7089 	[GCC_USB34_PRIM_PHY_PIPE_CLK_SRC] = &gcc_usb34_prim_phy_pipe_clk_src.clkr,
7090 	[GCC_USB34_SEC_PHY_PIPE_CLK_SRC] = &gcc_usb34_sec_phy_pipe_clk_src.clkr,
7091 	[GCC_USB34_TERT_PHY_PIPE_CLK_SRC] = &gcc_usb34_tert_phy_pipe_clk_src.clkr,
7092 	[GCC_USB3_MP_PHY_AUX_CLK] = &gcc_usb3_mp_phy_aux_clk.clkr,
7093 	[GCC_USB3_MP_PHY_AUX_CLK_SRC] = &gcc_usb3_mp_phy_aux_clk_src.clkr,
7094 	[GCC_USB3_MP_PHY_COM_AUX_CLK] = &gcc_usb3_mp_phy_com_aux_clk.clkr,
7095 	[GCC_USB3_MP_PHY_PIPE_0_CLK] = &gcc_usb3_mp_phy_pipe_0_clk.clkr,
7096 	[GCC_USB3_MP_PHY_PIPE_1_CLK] = &gcc_usb3_mp_phy_pipe_1_clk.clkr,
7097 	[GCC_USB3_PRIM_PHY_AUX_CLK] = &gcc_usb3_prim_phy_aux_clk.clkr,
7098 	[GCC_USB3_PRIM_PHY_AUX_CLK_SRC] = &gcc_usb3_prim_phy_aux_clk_src.clkr,
7099 	[GCC_USB3_PRIM_PHY_COM_AUX_CLK] = &gcc_usb3_prim_phy_com_aux_clk.clkr,
7100 	[GCC_USB3_PRIM_PHY_PIPE_CLK] = &gcc_usb3_prim_phy_pipe_clk.clkr,
7101 	[GCC_USB3_PRIM_PHY_PIPE_CLK_SRC] = &gcc_usb3_prim_phy_pipe_clk_src.clkr,
7102 	[GCC_USB3_SEC_PHY_AUX_CLK] = &gcc_usb3_sec_phy_aux_clk.clkr,
7103 	[GCC_USB3_SEC_PHY_AUX_CLK_SRC] = &gcc_usb3_sec_phy_aux_clk_src.clkr,
7104 	[GCC_USB3_SEC_PHY_COM_AUX_CLK] = &gcc_usb3_sec_phy_com_aux_clk.clkr,
7105 	[GCC_USB3_SEC_PHY_PIPE_CLK] = &gcc_usb3_sec_phy_pipe_clk.clkr,
7106 	[GCC_USB3_SEC_PHY_PIPE_CLK_SRC] = &gcc_usb3_sec_phy_pipe_clk_src.clkr,
7107 	[GCC_USB3_TERT_PHY_AUX_CLK] = &gcc_usb3_tert_phy_aux_clk.clkr,
7108 	[GCC_USB3_TERT_PHY_AUX_CLK_SRC] = &gcc_usb3_tert_phy_aux_clk_src.clkr,
7109 	[GCC_USB3_TERT_PHY_COM_AUX_CLK] = &gcc_usb3_tert_phy_com_aux_clk.clkr,
7110 	[GCC_USB3_TERT_PHY_PIPE_CLK] = &gcc_usb3_tert_phy_pipe_clk.clkr,
7111 	[GCC_USB3_TERT_PHY_PIPE_CLK_SRC] = &gcc_usb3_tert_phy_pipe_clk_src.clkr,
7112 	[GCC_USB4_0_CFG_AHB_CLK] = &gcc_usb4_0_cfg_ahb_clk.clkr,
7113 	[GCC_USB4_0_DP0_CLK] = &gcc_usb4_0_dp0_clk.clkr,
7114 	[GCC_USB4_0_DP1_CLK] = &gcc_usb4_0_dp1_clk.clkr,
7115 	[GCC_USB4_0_MASTER_CLK] = &gcc_usb4_0_master_clk.clkr,
7116 	[GCC_USB4_0_MASTER_CLK_SRC] = &gcc_usb4_0_master_clk_src.clkr,
7117 	[GCC_USB4_0_PHY_DP0_CLK_SRC] = &gcc_usb4_0_phy_dp0_clk_src.clkr,
7118 	[GCC_USB4_0_PHY_DP1_CLK_SRC] = &gcc_usb4_0_phy_dp1_clk_src.clkr,
7119 	[GCC_USB4_0_PHY_P2RR2P_PIPE_CLK] = &gcc_usb4_0_phy_p2rr2p_pipe_clk.clkr,
7120 	[GCC_USB4_0_PHY_P2RR2P_PIPE_CLK_SRC] = &gcc_usb4_0_phy_p2rr2p_pipe_clk_src.clkr,
7121 	[GCC_USB4_0_PHY_PCIE_PIPE_CLK] = &gcc_usb4_0_phy_pcie_pipe_clk.clkr,
7122 	[GCC_USB4_0_PHY_PCIE_PIPE_CLK_SRC] = &gcc_usb4_0_phy_pcie_pipe_clk_src.clkr,
7123 	[GCC_USB4_0_PHY_PCIE_PIPE_MUX_CLK_SRC] = &gcc_usb4_0_phy_pcie_pipe_mux_clk_src.clkr,
7124 	[GCC_USB4_0_PHY_RX0_CLK] = &gcc_usb4_0_phy_rx0_clk.clkr,
7125 	[GCC_USB4_0_PHY_RX0_CLK_SRC] = &gcc_usb4_0_phy_rx0_clk_src.clkr,
7126 	[GCC_USB4_0_PHY_RX1_CLK] = &gcc_usb4_0_phy_rx1_clk.clkr,
7127 	[GCC_USB4_0_PHY_RX1_CLK_SRC] = &gcc_usb4_0_phy_rx1_clk_src.clkr,
7128 	[GCC_USB4_0_PHY_SYS_CLK_SRC] = &gcc_usb4_0_phy_sys_clk_src.clkr,
7129 	[GCC_USB4_0_PHY_USB_PIPE_CLK] = &gcc_usb4_0_phy_usb_pipe_clk.clkr,
7130 	[GCC_USB4_0_SB_IF_CLK] = &gcc_usb4_0_sb_if_clk.clkr,
7131 	[GCC_USB4_0_SB_IF_CLK_SRC] = &gcc_usb4_0_sb_if_clk_src.clkr,
7132 	[GCC_USB4_0_SYS_CLK] = &gcc_usb4_0_sys_clk.clkr,
7133 	[GCC_USB4_0_TMU_CLK] = &gcc_usb4_0_tmu_clk.clkr,
7134 	[GCC_USB4_0_TMU_CLK_SRC] = &gcc_usb4_0_tmu_clk_src.clkr,
7135 	[GCC_USB4_1_CFG_AHB_CLK] = &gcc_usb4_1_cfg_ahb_clk.clkr,
7136 	[GCC_USB4_1_DP0_CLK] = &gcc_usb4_1_dp0_clk.clkr,
7137 	[GCC_USB4_1_DP1_CLK] = &gcc_usb4_1_dp1_clk.clkr,
7138 	[GCC_USB4_1_MASTER_CLK] = &gcc_usb4_1_master_clk.clkr,
7139 	[GCC_USB4_1_MASTER_CLK_SRC] = &gcc_usb4_1_master_clk_src.clkr,
7140 	[GCC_USB4_1_PHY_DP0_CLK_SRC] = &gcc_usb4_1_phy_dp0_clk_src.clkr,
7141 	[GCC_USB4_1_PHY_DP1_CLK_SRC] = &gcc_usb4_1_phy_dp1_clk_src.clkr,
7142 	[GCC_USB4_1_PHY_P2RR2P_PIPE_CLK] = &gcc_usb4_1_phy_p2rr2p_pipe_clk.clkr,
7143 	[GCC_USB4_1_PHY_P2RR2P_PIPE_CLK_SRC] = &gcc_usb4_1_phy_p2rr2p_pipe_clk_src.clkr,
7144 	[GCC_USB4_1_PHY_PCIE_PIPE_CLK] = &gcc_usb4_1_phy_pcie_pipe_clk.clkr,
7145 	[GCC_USB4_1_PHY_PCIE_PIPE_CLK_SRC] = &gcc_usb4_1_phy_pcie_pipe_clk_src.clkr,
7146 	[GCC_USB4_1_PHY_PCIE_PIPE_MUX_CLK_SRC] = &gcc_usb4_1_phy_pcie_pipe_mux_clk_src.clkr,
7147 	[GCC_USB4_1_PHY_RX0_CLK] = &gcc_usb4_1_phy_rx0_clk.clkr,
7148 	[GCC_USB4_1_PHY_RX0_CLK_SRC] = &gcc_usb4_1_phy_rx0_clk_src.clkr,
7149 	[GCC_USB4_1_PHY_RX1_CLK] = &gcc_usb4_1_phy_rx1_clk.clkr,
7150 	[GCC_USB4_1_PHY_RX1_CLK_SRC] = &gcc_usb4_1_phy_rx1_clk_src.clkr,
7151 	[GCC_USB4_1_PHY_SYS_CLK_SRC] = &gcc_usb4_1_phy_sys_clk_src.clkr,
7152 	[GCC_USB4_1_PHY_USB_PIPE_CLK] = &gcc_usb4_1_phy_usb_pipe_clk.clkr,
7153 	[GCC_USB4_1_SB_IF_CLK] = &gcc_usb4_1_sb_if_clk.clkr,
7154 	[GCC_USB4_1_SB_IF_CLK_SRC] = &gcc_usb4_1_sb_if_clk_src.clkr,
7155 	[GCC_USB4_1_SYS_CLK] = &gcc_usb4_1_sys_clk.clkr,
7156 	[GCC_USB4_1_TMU_CLK] = &gcc_usb4_1_tmu_clk.clkr,
7157 	[GCC_USB4_1_TMU_CLK_SRC] = &gcc_usb4_1_tmu_clk_src.clkr,
7158 	[GCC_USB4_2_CFG_AHB_CLK] = &gcc_usb4_2_cfg_ahb_clk.clkr,
7159 	[GCC_USB4_2_DP0_CLK] = &gcc_usb4_2_dp0_clk.clkr,
7160 	[GCC_USB4_2_DP1_CLK] = &gcc_usb4_2_dp1_clk.clkr,
7161 	[GCC_USB4_2_MASTER_CLK] = &gcc_usb4_2_master_clk.clkr,
7162 	[GCC_USB4_2_MASTER_CLK_SRC] = &gcc_usb4_2_master_clk_src.clkr,
7163 	[GCC_USB4_2_PHY_DP0_CLK_SRC] = &gcc_usb4_2_phy_dp0_clk_src.clkr,
7164 	[GCC_USB4_2_PHY_DP1_CLK_SRC] = &gcc_usb4_2_phy_dp1_clk_src.clkr,
7165 	[GCC_USB4_2_PHY_P2RR2P_PIPE_CLK] = &gcc_usb4_2_phy_p2rr2p_pipe_clk.clkr,
7166 	[GCC_USB4_2_PHY_P2RR2P_PIPE_CLK_SRC] = &gcc_usb4_2_phy_p2rr2p_pipe_clk_src.clkr,
7167 	[GCC_USB4_2_PHY_PCIE_PIPE_CLK] = &gcc_usb4_2_phy_pcie_pipe_clk.clkr,
7168 	[GCC_USB4_2_PHY_PCIE_PIPE_CLK_SRC] = &gcc_usb4_2_phy_pcie_pipe_clk_src.clkr,
7169 	[GCC_USB4_2_PHY_PCIE_PIPE_MUX_CLK_SRC] = &gcc_usb4_2_phy_pcie_pipe_mux_clk_src.clkr,
7170 	[GCC_USB4_2_PHY_RX0_CLK] = &gcc_usb4_2_phy_rx0_clk.clkr,
7171 	[GCC_USB4_2_PHY_RX0_CLK_SRC] = &gcc_usb4_2_phy_rx0_clk_src.clkr,
7172 	[GCC_USB4_2_PHY_RX1_CLK] = &gcc_usb4_2_phy_rx1_clk.clkr,
7173 	[GCC_USB4_2_PHY_RX1_CLK_SRC] = &gcc_usb4_2_phy_rx1_clk_src.clkr,
7174 	[GCC_USB4_2_PHY_SYS_CLK_SRC] = &gcc_usb4_2_phy_sys_clk_src.clkr,
7175 	[GCC_USB4_2_PHY_USB_PIPE_CLK] = &gcc_usb4_2_phy_usb_pipe_clk.clkr,
7176 	[GCC_USB4_2_SB_IF_CLK] = &gcc_usb4_2_sb_if_clk.clkr,
7177 	[GCC_USB4_2_SB_IF_CLK_SRC] = &gcc_usb4_2_sb_if_clk_src.clkr,
7178 	[GCC_USB4_2_SYS_CLK] = &gcc_usb4_2_sys_clk.clkr,
7179 	[GCC_USB4_2_TMU_CLK] = &gcc_usb4_2_tmu_clk.clkr,
7180 	[GCC_USB4_2_TMU_CLK_SRC] = &gcc_usb4_2_tmu_clk_src.clkr,
7181 	[GCC_VIDEO_AXI0_CLK] = &gcc_video_axi0_clk.clkr,
7182 	[GCC_VIDEO_AXI1_CLK] = &gcc_video_axi1_clk.clkr,
7183 };
7184 
7185 static struct gdsc *gcc_x1e80100_gdscs[] = {
7186 	[GCC_PCIE_0_TUNNEL_GDSC] = &gcc_pcie_0_tunnel_gdsc,
7187 	[GCC_PCIE_1_TUNNEL_GDSC] = &gcc_pcie_1_tunnel_gdsc,
7188 	[GCC_PCIE_2_TUNNEL_GDSC] = &gcc_pcie_2_tunnel_gdsc,
7189 	[GCC_PCIE_3_GDSC] = &gcc_pcie_3_gdsc,
7190 	[GCC_PCIE_3_PHY_GDSC] = &gcc_pcie_3_phy_gdsc,
7191 	[GCC_PCIE_4_GDSC] = &gcc_pcie_4_gdsc,
7192 	[GCC_PCIE_4_PHY_GDSC] = &gcc_pcie_4_phy_gdsc,
7193 	[GCC_PCIE_5_GDSC] = &gcc_pcie_5_gdsc,
7194 	[GCC_PCIE_5_PHY_GDSC] = &gcc_pcie_5_phy_gdsc,
7195 	[GCC_PCIE_6_PHY_GDSC] = &gcc_pcie_6_phy_gdsc,
7196 	[GCC_PCIE_6A_GDSC] = &gcc_pcie_6a_gdsc,
7197 	[GCC_PCIE_6B_GDSC] = &gcc_pcie_6b_gdsc,
7198 	[GCC_UFS_MEM_PHY_GDSC] = &gcc_ufs_mem_phy_gdsc,
7199 	[GCC_UFS_PHY_GDSC] = &gcc_ufs_phy_gdsc,
7200 	[GCC_USB20_PRIM_GDSC] = &gcc_usb20_prim_gdsc,
7201 	[GCC_USB30_MP_GDSC] = &gcc_usb30_mp_gdsc,
7202 	[GCC_USB30_PRIM_GDSC] = &gcc_usb30_prim_gdsc,
7203 	[GCC_USB30_SEC_GDSC] = &gcc_usb30_sec_gdsc,
7204 	[GCC_USB30_TERT_GDSC] = &gcc_usb30_tert_gdsc,
7205 	[GCC_USB3_MP_SS0_PHY_GDSC] = &gcc_usb3_mp_ss0_phy_gdsc,
7206 	[GCC_USB3_MP_SS1_PHY_GDSC] = &gcc_usb3_mp_ss1_phy_gdsc,
7207 	[GCC_USB4_0_GDSC] = &gcc_usb4_0_gdsc,
7208 	[GCC_USB4_1_GDSC] = &gcc_usb4_1_gdsc,
7209 	[GCC_USB4_2_GDSC] = &gcc_usb4_2_gdsc,
7210 	[GCC_USB_0_PHY_GDSC] = &gcc_usb_0_phy_gdsc,
7211 	[GCC_USB_1_PHY_GDSC] = &gcc_usb_1_phy_gdsc,
7212 	[GCC_USB_2_PHY_GDSC] = &gcc_usb_2_phy_gdsc,
7213 };
7214 
7215 static const struct qcom_reset_map gcc_x1e80100_resets[] = {
7216 	[GCC_AV1E_BCR] = { 0x4a000 },
7217 	[GCC_CAMERA_BCR] = { 0x26000 },
7218 	[GCC_DISPLAY_BCR] = { 0x27000 },
7219 	[GCC_GPU_BCR] = { 0x71000 },
7220 	[GCC_PCIE_0_LINK_DOWN_BCR] = { 0x6c014 },
7221 	[GCC_PCIE_0_NOCSR_COM_PHY_BCR] = { 0x6c020 },
7222 	[GCC_PCIE_0_PHY_BCR] = { 0x6c01c },
7223 	[GCC_PCIE_0_PHY_NOCSR_COM_PHY_BCR] = { 0x6c028 },
7224 	[GCC_PCIE_0_TUNNEL_BCR] = { 0xa0000 },
7225 	[GCC_PCIE_1_LINK_DOWN_BCR] = { 0x8e014 },
7226 	[GCC_PCIE_1_NOCSR_COM_PHY_BCR] = { 0x8e020 },
7227 	[GCC_PCIE_1_PHY_BCR] = { 0x8e01c },
7228 	[GCC_PCIE_1_PHY_NOCSR_COM_PHY_BCR] = { 0x8e024 },
7229 	[GCC_PCIE_1_TUNNEL_BCR] = { 0x2c000 },
7230 	[GCC_PCIE_2_LINK_DOWN_BCR] = { 0xa5014 },
7231 	[GCC_PCIE_2_NOCSR_COM_PHY_BCR] = { 0xa5020 },
7232 	[GCC_PCIE_2_PHY_BCR] = { 0xa501c },
7233 	[GCC_PCIE_2_PHY_NOCSR_COM_PHY_BCR] = { 0xa5028 },
7234 	[GCC_PCIE_2_TUNNEL_BCR] = { 0x13000 },
7235 	[GCC_PCIE_3_BCR] = { 0x58000 },
7236 	[GCC_PCIE_3_LINK_DOWN_BCR] = { 0xab014 },
7237 	[GCC_PCIE_3_NOCSR_COM_PHY_BCR] = { 0xab020 },
7238 	[GCC_PCIE_3_PHY_BCR] = { 0xab01c },
7239 	[GCC_PCIE_3_PHY_NOCSR_COM_PHY_BCR] = { 0xab024 },
7240 	[GCC_PCIE_4_BCR] = { 0x6b000 },
7241 	[GCC_PCIE_4_LINK_DOWN_BCR] = { 0xb3014 },
7242 	[GCC_PCIE_4_NOCSR_COM_PHY_BCR] = { 0xb3020 },
7243 	[GCC_PCIE_4_PHY_BCR] = { 0xb301c },
7244 	[GCC_PCIE_4_PHY_NOCSR_COM_PHY_BCR] = { 0xb3028 },
7245 	[GCC_PCIE_5_BCR] = { 0x2f000 },
7246 	[GCC_PCIE_5_LINK_DOWN_BCR] = { 0xaa014 },
7247 	[GCC_PCIE_5_NOCSR_COM_PHY_BCR] = { 0xaa020 },
7248 	[GCC_PCIE_5_PHY_BCR] = { 0xaa01c },
7249 	[GCC_PCIE_5_PHY_NOCSR_COM_PHY_BCR] = { 0xaa028 },
7250 	[GCC_PCIE_6A_BCR] = { 0x31000 },
7251 	[GCC_PCIE_6A_LINK_DOWN_BCR] = { 0xac014 },
7252 	[GCC_PCIE_6A_NOCSR_COM_PHY_BCR] = { 0xac020 },
7253 	[GCC_PCIE_6A_PHY_BCR] = { 0xac01c },
7254 	[GCC_PCIE_6A_PHY_NOCSR_COM_PHY_BCR] = { 0xac024 },
7255 	[GCC_PCIE_6B_BCR] = { 0x8d000 },
7256 	[GCC_PCIE_6B_LINK_DOWN_BCR] = { 0xb5014 },
7257 	[GCC_PCIE_6B_NOCSR_COM_PHY_BCR] = { 0xb5020 },
7258 	[GCC_PCIE_6B_PHY_BCR] = { 0xb501c },
7259 	[GCC_PCIE_6B_PHY_NOCSR_COM_PHY_BCR] = { 0xb5024 },
7260 	[GCC_PCIE_PHY_BCR] = { 0x6f000 },
7261 	[GCC_PCIE_PHY_CFG_AHB_BCR] = { 0x6f00c },
7262 	[GCC_PCIE_PHY_COM_BCR] = { 0x6f010 },
7263 	[GCC_PCIE_RSCC_BCR] = { 0xa4000 },
7264 	[GCC_PDM_BCR] = { 0x33000 },
7265 	[GCC_QUPV3_WRAPPER_0_BCR] = { 0x42000 },
7266 	[GCC_QUPV3_WRAPPER_1_BCR] = { 0x18000 },
7267 	[GCC_QUPV3_WRAPPER_2_BCR] = { 0x1e000 },
7268 	[GCC_QUSB2PHY_HS0_MP_BCR] = { 0x1200c },
7269 	[GCC_QUSB2PHY_HS1_MP_BCR] = { 0x12010 },
7270 	[GCC_QUSB2PHY_PRIM_BCR] = { 0x12000 },
7271 	[GCC_QUSB2PHY_SEC_BCR] = { 0x12004 },
7272 	[GCC_QUSB2PHY_TERT_BCR] = { 0x12008 },
7273 	[GCC_QUSB2PHY_USB20_HS_BCR] = { 0x12014 },
7274 	[GCC_SDCC2_BCR] = { 0x14000 },
7275 	[GCC_SDCC4_BCR] = { 0x16000 },
7276 	[GCC_UFS_PHY_BCR] = { 0x77000 },
7277 	[GCC_USB20_PRIM_BCR] = { 0x29000 },
7278 	[GCC_USB30_MP_BCR] = { 0x17000 },
7279 	[GCC_USB30_PRIM_BCR] = { 0x39000 },
7280 	[GCC_USB30_SEC_BCR] = { 0xa1000 },
7281 	[GCC_USB30_TERT_BCR] = { 0xa2000 },
7282 	[GCC_USB3_MP_SS0_PHY_BCR] = { 0x19008 },
7283 	[GCC_USB3_MP_SS1_PHY_BCR] = { 0x54008 },
7284 	[GCC_USB3_PHY_PRIM_BCR] = { 0x50000 },
7285 	[GCC_USB3_PHY_SEC_BCR] = { 0x2a000 },
7286 	[GCC_USB3_PHY_TERT_BCR] = { 0xa3000 },
7287 	[GCC_USB3_UNIPHY_MP0_BCR] = { 0x19000 },
7288 	[GCC_USB3_UNIPHY_MP1_BCR] = { 0x54000 },
7289 	[GCC_USB3PHY_PHY_PRIM_BCR] = { 0x50004 },
7290 	[GCC_USB4PHY_PHY_PRIM_BCR] = { 0x5000c },
7291 	[GCC_USB3PHY_PHY_SEC_BCR] = { 0x2a004 },
7292 	[GCC_USB4PHY_PHY_SEC_BCR] = { 0x2a00c },
7293 	[GCC_USB3PHY_PHY_TERT_BCR] = { 0xa3004 },
7294 	[GCC_USB4PHY_PHY_TERT_BCR] = { 0xa300c },
7295 	[GCC_USB3UNIPHY_PHY_MP0_BCR] = { 0x19004 },
7296 	[GCC_USB3UNIPHY_PHY_MP1_BCR] = { 0x54004 },
7297 	[GCC_USB4_0_BCR] = { 0x9f000 },
7298 	[GCC_USB4_0_DP0_PHY_PRIM_BCR] = { 0x50010 },
7299 	[GCC_USB4_0_MISC_USB4_SYS_BCR] = { .reg = 0xad0f8, .bit = 0 },
7300 	[GCC_USB4_0_MISC_RX_CLK_0_BCR] = { .reg = 0xad0f8, .bit = 1 },
7301 	[GCC_USB4_0_MISC_RX_CLK_1_BCR] = { .reg = 0xad0f8, .bit = 2 },
7302 	[GCC_USB4_0_MISC_USB_PIPE_BCR] = { .reg = 0xad0f8, .bit = 3 },
7303 	[GCC_USB4_0_MISC_PCIE_PIPE_BCR] = { .reg = 0xad0f8, .bit = 4 },
7304 	[GCC_USB4_0_MISC_TMU_BCR] = { .reg = 0xad0f8, .bit = 5 },
7305 	[GCC_USB4_0_MISC_SB_IF_BCR] = { .reg = 0xad0f8, .bit = 6 },
7306 	[GCC_USB4_0_MISC_HIA_MSTR_BCR] = { .reg = 0xad0f8, .bit = 7 },
7307 	[GCC_USB4_0_MISC_AHB_BCR] = { .reg = 0xad0f8, .bit = 8 },
7308 	[GCC_USB4_0_MISC_DP0_MAX_PCLK_BCR] = { .reg = 0xad0f8, .bit = 9 },
7309 	[GCC_USB4_0_MISC_DP1_MAX_PCLK_BCR] = { .reg = 0xad0f8, .bit = 10 },
7310 	[GCC_USB4_1_BCR] = { 0x2b000 },
7311 	[GCC_USB4_1_DP0_PHY_SEC_BCR] = { 0x2a010 },
7312 	[GCC_USB4_1_MISC_USB4_SYS_BCR] = { .reg = 0xae0f8, .bit = 0 },
7313 	[GCC_USB4_1_MISC_RX_CLK_0_BCR] = { .reg = 0xae0f8, .bit = 1 },
7314 	[GCC_USB4_1_MISC_RX_CLK_1_BCR] = { .reg = 0xae0f8, .bit = 2 },
7315 	[GCC_USB4_1_MISC_USB_PIPE_BCR] = { .reg = 0xae0f8, .bit = 3 },
7316 	[GCC_USB4_1_MISC_PCIE_PIPE_BCR] = { .reg = 0xae0f8, .bit = 4 },
7317 	[GCC_USB4_1_MISC_TMU_BCR] = { .reg = 0xae0f8, .bit = 5 },
7318 	[GCC_USB4_1_MISC_SB_IF_BCR] = { .reg = 0xae0f8, .bit = 6 },
7319 	[GCC_USB4_1_MISC_HIA_MSTR_BCR] = { .reg = 0xae0f8, .bit = 7 },
7320 	[GCC_USB4_1_MISC_AHB_BCR] = { .reg = 0xae0f8, .bit = 8 },
7321 	[GCC_USB4_1_MISC_DP0_MAX_PCLK_BCR] = { .reg = 0xae0f8, .bit = 9 },
7322 	[GCC_USB4_1_MISC_DP1_MAX_PCLK_BCR] = { .reg = 0xae0f8, .bit = 10 },
7323 	[GCC_USB4_2_BCR] = { 0x11000 },
7324 	[GCC_USB4_2_DP0_PHY_TERT_BCR] = { 0xa3010 },
7325 	[GCC_USB4_2_MISC_USB4_SYS_BCR] = { .reg = 0xaf0f8, .bit = 0 },
7326 	[GCC_USB4_2_MISC_RX_CLK_0_BCR] = { .reg = 0xaf0f8, .bit = 1 },
7327 	[GCC_USB4_2_MISC_RX_CLK_1_BCR] = { .reg = 0xaf0f8, .bit = 2 },
7328 	[GCC_USB4_2_MISC_USB_PIPE_BCR] = { .reg = 0xaf0f8, .bit = 3 },
7329 	[GCC_USB4_2_MISC_PCIE_PIPE_BCR] = { .reg = 0xaf0f8, .bit = 4 },
7330 	[GCC_USB4_2_MISC_TMU_BCR] = { .reg = 0xaf0f8, .bit = 5 },
7331 	[GCC_USB4_2_MISC_SB_IF_BCR] = { .reg = 0xaf0f8, .bit = 6 },
7332 	[GCC_USB4_2_MISC_HIA_MSTR_BCR] = { .reg = 0xaf0f8, .bit = 7 },
7333 	[GCC_USB4_2_MISC_AHB_BCR] = { .reg = 0xaf0f8, .bit = 8 },
7334 	[GCC_USB4_2_MISC_DP0_MAX_PCLK_BCR] = { .reg = 0xaf0f8, .bit = 9 },
7335 	[GCC_USB4_2_MISC_DP1_MAX_PCLK_BCR] = { .reg = 0xaf0f8, .bit = 10 },
7336 	[GCC_USB_0_PHY_BCR] = { 0x50020 },
7337 	[GCC_USB_1_PHY_BCR] = { 0x2a020 },
7338 	[GCC_USB_2_PHY_BCR] = { 0xa3020 },
7339 	[GCC_VIDEO_BCR] = { 0x32000 },
7340 	[GCC_VIDEO_AXI0_CLK_ARES] = { .reg = 0x32018, .bit = 2, .udelay = 1000 },
7341 	[GCC_VIDEO_AXI1_CLK_ARES] = { .reg = 0x32024, .bit = 2, .udelay = 1000 },
7342 };
7343 
7344 static const struct clk_rcg_dfs_data gcc_dfs_clocks[] = {
7345 	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s0_clk_src),
7346 	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s1_clk_src),
7347 	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s2_clk_src),
7348 	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s3_clk_src),
7349 	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s4_clk_src),
7350 	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s5_clk_src),
7351 	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s6_clk_src),
7352 	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s7_clk_src),
7353 	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s0_clk_src),
7354 	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s1_clk_src),
7355 	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s2_clk_src),
7356 	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s3_clk_src),
7357 	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s4_clk_src),
7358 	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s5_clk_src),
7359 	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s6_clk_src),
7360 	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s7_clk_src),
7361 	DEFINE_RCG_DFS(gcc_qupv3_wrap2_s0_clk_src),
7362 	DEFINE_RCG_DFS(gcc_qupv3_wrap2_s1_clk_src),
7363 	DEFINE_RCG_DFS(gcc_qupv3_wrap2_s2_clk_src),
7364 	DEFINE_RCG_DFS(gcc_qupv3_wrap2_s3_clk_src),
7365 	DEFINE_RCG_DFS(gcc_qupv3_wrap2_s4_clk_src),
7366 	DEFINE_RCG_DFS(gcc_qupv3_wrap2_s5_clk_src),
7367 	DEFINE_RCG_DFS(gcc_qupv3_wrap2_s6_clk_src),
7368 	DEFINE_RCG_DFS(gcc_qupv3_wrap2_s7_clk_src),
7369 };
7370 
7371 static const struct regmap_config gcc_x1e80100_regmap_config = {
7372 	.reg_bits = 32,
7373 	.reg_stride = 4,
7374 	.val_bits = 32,
7375 	.max_register = 0x1f41f0,
7376 	.fast_io = true,
7377 };
7378 
7379 static const struct qcom_cc_desc gcc_x1e80100_desc = {
7380 	.config = &gcc_x1e80100_regmap_config,
7381 	.clks = gcc_x1e80100_clocks,
7382 	.num_clks = ARRAY_SIZE(gcc_x1e80100_clocks),
7383 	.resets = gcc_x1e80100_resets,
7384 	.num_resets = ARRAY_SIZE(gcc_x1e80100_resets),
7385 	.gdscs = gcc_x1e80100_gdscs,
7386 	.num_gdscs = ARRAY_SIZE(gcc_x1e80100_gdscs),
7387 };
7388 
7389 static const struct of_device_id gcc_x1e80100_match_table[] = {
7390 	{ .compatible = "qcom,x1e80100-gcc" },
7391 	{ }
7392 };
7393 MODULE_DEVICE_TABLE(of, gcc_x1e80100_match_table);
7394 
gcc_x1e80100_probe(struct platform_device * pdev)7395 static int gcc_x1e80100_probe(struct platform_device *pdev)
7396 {
7397 	struct regmap *regmap;
7398 	int ret;
7399 
7400 	regmap = qcom_cc_map(pdev, &gcc_x1e80100_desc);
7401 	if (IS_ERR(regmap))
7402 		return PTR_ERR(regmap);
7403 
7404 	ret = qcom_cc_register_rcg_dfs(regmap, gcc_dfs_clocks,
7405 				       ARRAY_SIZE(gcc_dfs_clocks));
7406 	if (ret)
7407 		return ret;
7408 
7409 	/* Keep some clocks always-on */
7410 	qcom_branch_set_clk_en(regmap, 0x26004); /* GCC_CAMERA_AHB_CLK */
7411 	qcom_branch_set_clk_en(regmap, 0x26028); /* GCC_CAMERA_XO_CLK */
7412 	qcom_branch_set_clk_en(regmap, 0x27004); /* GCC_DISP_AHB_CLK */
7413 	qcom_branch_set_clk_en(regmap, 0x27018); /* GCC_DISP_XO_CLK */
7414 	qcom_branch_set_clk_en(regmap, 0x32004); /* GCC_VIDEO_AHB_CLK */
7415 	qcom_branch_set_clk_en(regmap, 0x32030); /* GCC_VIDEO_XO_CLK */
7416 	qcom_branch_set_clk_en(regmap, 0x71004); /* GCC_GPU_CFG_AHB_CLK */
7417 
7418 	/* Clear GDSC_SLEEP_ENA_VOTE to stop votes being auto-removed in sleep. */
7419 	regmap_write(regmap, 0x52224, 0x0);
7420 
7421 	/* FORCE_MEM_CORE_ON for ufs phy ice core and gcc ufs phy axi clocks  */
7422 	qcom_branch_set_force_mem_core(regmap, gcc_ufs_phy_ice_core_clk, true);
7423 	qcom_branch_set_force_mem_core(regmap, gcc_ufs_phy_axi_clk, true);
7424 
7425 	return qcom_cc_really_probe(&pdev->dev, &gcc_x1e80100_desc, regmap);
7426 }
7427 
7428 static struct platform_driver gcc_x1e80100_driver = {
7429 	.probe = gcc_x1e80100_probe,
7430 	.driver = {
7431 		.name = "gcc-x1e80100",
7432 		.of_match_table = gcc_x1e80100_match_table,
7433 	},
7434 };
7435 
gcc_x1e80100_init(void)7436 static int __init gcc_x1e80100_init(void)
7437 {
7438 	return platform_driver_register(&gcc_x1e80100_driver);
7439 }
7440 subsys_initcall(gcc_x1e80100_init);
7441 
gcc_x1e80100_exit(void)7442 static void __exit gcc_x1e80100_exit(void)
7443 {
7444 	platform_driver_unregister(&gcc_x1e80100_driver);
7445 }
7446 module_exit(gcc_x1e80100_exit);
7447 
7448 MODULE_DESCRIPTION("QTI GCC X1E80100 Driver");
7449 MODULE_LICENSE("GPL");
7450