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