xref: /openbmc/linux/drivers/clk/qcom/gcc-sc7180.c (revision 17269568f72670e97b19b14897137a8f5c21c09b)
1*17269568STaniya Das // SPDX-License-Identifier: GPL-2.0-only
2*17269568STaniya Das /*
3*17269568STaniya Das  * Copyright (c) 2019, The Linux Foundation. All rights reserved.
4*17269568STaniya Das  */
5*17269568STaniya Das 
6*17269568STaniya Das #include <linux/clk-provider.h>
7*17269568STaniya Das #include <linux/err.h>
8*17269568STaniya Das #include <linux/kernel.h>
9*17269568STaniya Das #include <linux/module.h>
10*17269568STaniya Das #include <linux/of.h>
11*17269568STaniya Das #include <linux/of_device.h>
12*17269568STaniya Das #include <linux/regmap.h>
13*17269568STaniya Das 
14*17269568STaniya Das #include <dt-bindings/clock/qcom,gcc-sc7180.h>
15*17269568STaniya Das 
16*17269568STaniya Das #include "clk-alpha-pll.h"
17*17269568STaniya Das #include "clk-branch.h"
18*17269568STaniya Das #include "clk-rcg.h"
19*17269568STaniya Das #include "clk-regmap.h"
20*17269568STaniya Das #include "common.h"
21*17269568STaniya Das #include "gdsc.h"
22*17269568STaniya Das #include "reset.h"
23*17269568STaniya Das 
24*17269568STaniya Das enum {
25*17269568STaniya Das 	P_BI_TCXO,
26*17269568STaniya Das 	P_CORE_BI_PLL_TEST_SE,
27*17269568STaniya Das 	P_GPLL0_OUT_EVEN,
28*17269568STaniya Das 	P_GPLL0_OUT_MAIN,
29*17269568STaniya Das 	P_GPLL1_OUT_MAIN,
30*17269568STaniya Das 	P_GPLL4_OUT_MAIN,
31*17269568STaniya Das 	P_GPLL6_OUT_MAIN,
32*17269568STaniya Das 	P_GPLL7_OUT_MAIN,
33*17269568STaniya Das 	P_SLEEP_CLK,
34*17269568STaniya Das };
35*17269568STaniya Das 
36*17269568STaniya Das static struct clk_alpha_pll gpll0 = {
37*17269568STaniya Das 	.offset = 0x0,
38*17269568STaniya Das 	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
39*17269568STaniya Das 	.clkr = {
40*17269568STaniya Das 		.enable_reg = 0x52010,
41*17269568STaniya Das 		.enable_mask = BIT(0),
42*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
43*17269568STaniya Das 			.name = "gpll0",
44*17269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
45*17269568STaniya Das 				.fw_name = "bi_tcxo",
46*17269568STaniya Das 				.name = "bi_tcxo",
47*17269568STaniya Das 			},
48*17269568STaniya Das 			.num_parents = 1,
49*17269568STaniya Das 			.ops = &clk_alpha_pll_fixed_fabia_ops,
50*17269568STaniya Das 		},
51*17269568STaniya Das 	},
52*17269568STaniya Das };
53*17269568STaniya Das 
54*17269568STaniya Das static const struct clk_div_table post_div_table_gpll0_out_even[] = {
55*17269568STaniya Das 	{ 0x1, 2 },
56*17269568STaniya Das 	{ }
57*17269568STaniya Das };
58*17269568STaniya Das 
59*17269568STaniya Das static struct clk_alpha_pll_postdiv gpll0_out_even = {
60*17269568STaniya Das 	.offset = 0x0,
61*17269568STaniya Das 	.post_div_shift = 8,
62*17269568STaniya Das 	.post_div_table = post_div_table_gpll0_out_even,
63*17269568STaniya Das 	.num_post_div = ARRAY_SIZE(post_div_table_gpll0_out_even),
64*17269568STaniya Das 	.width = 4,
65*17269568STaniya Das 	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
66*17269568STaniya Das 	.clkr.hw.init = &(struct clk_init_data){
67*17269568STaniya Das 		.name = "gpll0_out_even",
68*17269568STaniya Das 		.parent_data = &(const struct clk_parent_data){
69*17269568STaniya Das 			.hw = &gpll0.clkr.hw,
70*17269568STaniya Das 		},
71*17269568STaniya Das 		.num_parents = 1,
72*17269568STaniya Das 		.ops = &clk_alpha_pll_postdiv_fabia_ops,
73*17269568STaniya Das 	},
74*17269568STaniya Das };
75*17269568STaniya Das 
76*17269568STaniya Das static struct clk_fixed_factor gcc_pll0_main_div_cdiv = {
77*17269568STaniya Das 	.mult = 1,
78*17269568STaniya Das 	.div = 2,
79*17269568STaniya Das 	.hw.init = &(struct clk_init_data){
80*17269568STaniya Das 		.name = "gcc_pll0_main_div_cdiv",
81*17269568STaniya Das 		.parent_data = &(const struct clk_parent_data){
82*17269568STaniya Das 			.hw = &gpll0.clkr.hw,
83*17269568STaniya Das 		},
84*17269568STaniya Das 		.num_parents = 1,
85*17269568STaniya Das 		.ops = &clk_fixed_factor_ops,
86*17269568STaniya Das 	},
87*17269568STaniya Das };
88*17269568STaniya Das 
89*17269568STaniya Das static struct clk_alpha_pll gpll1 = {
90*17269568STaniya Das 	.offset = 0x01000,
91*17269568STaniya Das 	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
92*17269568STaniya Das 	.clkr = {
93*17269568STaniya Das 		.enable_reg = 0x52010,
94*17269568STaniya Das 		.enable_mask = BIT(1),
95*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
96*17269568STaniya Das 			.name = "gpll1",
97*17269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
98*17269568STaniya Das 				.fw_name = "bi_tcxo",
99*17269568STaniya Das 				.name = "bi_tcxo",
100*17269568STaniya Das 			},
101*17269568STaniya Das 			.num_parents = 1,
102*17269568STaniya Das 			.ops = &clk_alpha_pll_fixed_fabia_ops,
103*17269568STaniya Das 		},
104*17269568STaniya Das 	},
105*17269568STaniya Das };
106*17269568STaniya Das 
107*17269568STaniya Das static struct clk_alpha_pll gpll4 = {
108*17269568STaniya Das 	.offset = 0x76000,
109*17269568STaniya Das 	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
110*17269568STaniya Das 	.clkr = {
111*17269568STaniya Das 		.enable_reg = 0x52010,
112*17269568STaniya Das 		.enable_mask = BIT(4),
113*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
114*17269568STaniya Das 			.name = "gpll4",
115*17269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
116*17269568STaniya Das 				.fw_name = "bi_tcxo",
117*17269568STaniya Das 				.name = "bi_tcxo",
118*17269568STaniya Das 			},
119*17269568STaniya Das 			.num_parents = 1,
120*17269568STaniya Das 			.ops = &clk_alpha_pll_fixed_fabia_ops,
121*17269568STaniya Das 		},
122*17269568STaniya Das 	},
123*17269568STaniya Das };
124*17269568STaniya Das 
125*17269568STaniya Das static struct clk_alpha_pll gpll6 = {
126*17269568STaniya Das 	.offset = 0x13000,
127*17269568STaniya Das 	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
128*17269568STaniya Das 	.clkr = {
129*17269568STaniya Das 		.enable_reg = 0x52010,
130*17269568STaniya Das 		.enable_mask = BIT(6),
131*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
132*17269568STaniya Das 			.name = "gpll6",
133*17269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
134*17269568STaniya Das 				.fw_name = "bi_tcxo",
135*17269568STaniya Das 				.name = "bi_tcxo",
136*17269568STaniya Das 			},
137*17269568STaniya Das 			.num_parents = 1,
138*17269568STaniya Das 			.ops = &clk_alpha_pll_fixed_fabia_ops,
139*17269568STaniya Das 		},
140*17269568STaniya Das 	},
141*17269568STaniya Das };
142*17269568STaniya Das 
143*17269568STaniya Das static struct clk_alpha_pll gpll7 = {
144*17269568STaniya Das 	.offset = 0x27000,
145*17269568STaniya Das 	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
146*17269568STaniya Das 	.clkr = {
147*17269568STaniya Das 		.enable_reg = 0x52010,
148*17269568STaniya Das 		.enable_mask = BIT(7),
149*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
150*17269568STaniya Das 			.name = "gpll7",
151*17269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
152*17269568STaniya Das 				.fw_name = "bi_tcxo",
153*17269568STaniya Das 				.name = "bi_tcxo",
154*17269568STaniya Das 			},
155*17269568STaniya Das 			.num_parents = 1,
156*17269568STaniya Das 			.ops = &clk_alpha_pll_fixed_fabia_ops,
157*17269568STaniya Das 		},
158*17269568STaniya Das 	},
159*17269568STaniya Das };
160*17269568STaniya Das 
161*17269568STaniya Das static const struct parent_map gcc_parent_map_0[] = {
162*17269568STaniya Das 	{ P_BI_TCXO, 0 },
163*17269568STaniya Das 	{ P_GPLL0_OUT_MAIN, 1 },
164*17269568STaniya Das 	{ P_GPLL0_OUT_EVEN, 6 },
165*17269568STaniya Das 	{ P_CORE_BI_PLL_TEST_SE, 7 },
166*17269568STaniya Das };
167*17269568STaniya Das 
168*17269568STaniya Das static const struct clk_parent_data gcc_parent_data_0[] = {
169*17269568STaniya Das 	{ .fw_name = "bi_tcxo", .name = "bi_tcxo" },
170*17269568STaniya Das 	{ .hw = &gpll0.clkr.hw },
171*17269568STaniya Das 	{ .hw = &gpll0_out_even.clkr.hw },
172*17269568STaniya Das 	{ .fw_name = "core_bi_pll_test_se", .name = "core_bi_pll_test_se" },
173*17269568STaniya Das };
174*17269568STaniya Das 
175*17269568STaniya Das static const struct clk_parent_data gcc_parent_data_0_ao[] = {
176*17269568STaniya Das 	{ .fw_name = "bi_tcxo_ao", .name = "bi_tcxo_ao" },
177*17269568STaniya Das 	{ .hw = &gpll0.clkr.hw },
178*17269568STaniya Das 	{ .hw = &gpll0_out_even.clkr.hw },
179*17269568STaniya Das 	{ .fw_name = "core_bi_pll_test_se", .name = "core_bi_pll_test_se" },
180*17269568STaniya Das };
181*17269568STaniya Das 
182*17269568STaniya Das static const struct parent_map gcc_parent_map_1[] = {
183*17269568STaniya Das 	{ P_BI_TCXO, 0 },
184*17269568STaniya Das 	{ P_GPLL0_OUT_MAIN, 1 },
185*17269568STaniya Das 	{ P_GPLL6_OUT_MAIN, 2 },
186*17269568STaniya Das 	{ P_GPLL0_OUT_EVEN, 6 },
187*17269568STaniya Das 	{ P_CORE_BI_PLL_TEST_SE, 7 },
188*17269568STaniya Das };
189*17269568STaniya Das 
190*17269568STaniya Das static const struct clk_parent_data gcc_parent_data_1[] = {
191*17269568STaniya Das 	{ .fw_name = "bi_tcxo", .name = "bi_tcxo" },
192*17269568STaniya Das 	{ .hw = &gpll0.clkr.hw },
193*17269568STaniya Das 	{ .hw = &gpll6.clkr.hw },
194*17269568STaniya Das 	{ .hw = &gpll0_out_even.clkr.hw },
195*17269568STaniya Das 	{ .fw_name = "core_bi_pll_test_se", .name = "core_bi_pll_test_se" },
196*17269568STaniya Das };
197*17269568STaniya Das 
198*17269568STaniya Das static const struct parent_map gcc_parent_map_2[] = {
199*17269568STaniya Das 	{ P_BI_TCXO, 0 },
200*17269568STaniya Das 	{ P_GPLL0_OUT_MAIN, 1 },
201*17269568STaniya Das 	{ P_GPLL1_OUT_MAIN, 4 },
202*17269568STaniya Das 	{ P_GPLL4_OUT_MAIN, 5 },
203*17269568STaniya Das 	{ P_GPLL0_OUT_EVEN, 6 },
204*17269568STaniya Das 	{ P_CORE_BI_PLL_TEST_SE, 7 },
205*17269568STaniya Das };
206*17269568STaniya Das 
207*17269568STaniya Das static const struct clk_parent_data gcc_parent_data_2[] = {
208*17269568STaniya Das 	{ .fw_name = "bi_tcxo", .name = "bi_tcxo" },
209*17269568STaniya Das 	{ .hw = &gpll0.clkr.hw },
210*17269568STaniya Das 	{ .hw = &gpll1.clkr.hw },
211*17269568STaniya Das 	{ .hw = &gpll4.clkr.hw },
212*17269568STaniya Das 	{ .hw = &gpll0_out_even.clkr.hw },
213*17269568STaniya Das 	{ .fw_name = "core_bi_pll_test_se", .name = "core_bi_pll_test_se" },
214*17269568STaniya Das };
215*17269568STaniya Das 
216*17269568STaniya Das static const struct parent_map gcc_parent_map_3[] = {
217*17269568STaniya Das 	{ P_BI_TCXO, 0 },
218*17269568STaniya Das 	{ P_GPLL0_OUT_MAIN, 1 },
219*17269568STaniya Das 	{ P_CORE_BI_PLL_TEST_SE, 7 },
220*17269568STaniya Das };
221*17269568STaniya Das 
222*17269568STaniya Das static const struct clk_parent_data gcc_parent_data_3[] = {
223*17269568STaniya Das 	{ .fw_name = "bi_tcxo", .name = "bi_tcxo" },
224*17269568STaniya Das 	{ .hw = &gpll0.clkr.hw },
225*17269568STaniya Das 	{ .fw_name = "core_bi_pll_test_se", .name = "core_bi_pll_test_se" },
226*17269568STaniya Das };
227*17269568STaniya Das 
228*17269568STaniya Das static const struct parent_map gcc_parent_map_4[] = {
229*17269568STaniya Das 	{ P_BI_TCXO, 0 },
230*17269568STaniya Das 	{ P_GPLL0_OUT_MAIN, 1 },
231*17269568STaniya Das 	{ P_SLEEP_CLK, 5 },
232*17269568STaniya Das 	{ P_GPLL0_OUT_EVEN, 6 },
233*17269568STaniya Das 	{ P_CORE_BI_PLL_TEST_SE, 7 },
234*17269568STaniya Das };
235*17269568STaniya Das 
236*17269568STaniya Das static const struct clk_parent_data gcc_parent_data_4[] = {
237*17269568STaniya Das 	{ .fw_name = "bi_tcxo", .name = "bi_tcxo" },
238*17269568STaniya Das 	{ .hw = &gpll0.clkr.hw },
239*17269568STaniya Das 	{ .fw_name = "sleep_clk", .name = "sleep_clk" },
240*17269568STaniya Das 	{ .hw = &gpll0_out_even.clkr.hw },
241*17269568STaniya Das 	{ .fw_name = "core_bi_pll_test_se", .name = "core_bi_pll_test_se" },
242*17269568STaniya Das };
243*17269568STaniya Das 
244*17269568STaniya Das static const struct parent_map gcc_parent_map_5[] = {
245*17269568STaniya Das 	{ P_BI_TCXO, 0 },
246*17269568STaniya Das 	{ P_GPLL0_OUT_MAIN, 1 },
247*17269568STaniya Das 	{ P_GPLL7_OUT_MAIN, 3 },
248*17269568STaniya Das 	{ P_GPLL0_OUT_EVEN, 6 },
249*17269568STaniya Das 	{ P_CORE_BI_PLL_TEST_SE, 7 },
250*17269568STaniya Das };
251*17269568STaniya Das 
252*17269568STaniya Das static const struct clk_parent_data gcc_parent_data_5[] = {
253*17269568STaniya Das 	{ .fw_name = "bi_tcxo", .name = "bi_tcxo" },
254*17269568STaniya Das 	{ .hw = &gpll0.clkr.hw },
255*17269568STaniya Das 	{ .hw = &gpll7.clkr.hw },
256*17269568STaniya Das 	{ .hw = &gpll0_out_even.clkr.hw },
257*17269568STaniya Das 	{ .fw_name = "core_bi_pll_test_se", .name = "core_bi_pll_test_se" },
258*17269568STaniya Das };
259*17269568STaniya Das 
260*17269568STaniya Das static const struct parent_map gcc_parent_map_6[] = {
261*17269568STaniya Das 	{ P_BI_TCXO, 0 },
262*17269568STaniya Das 	{ P_GPLL0_OUT_MAIN, 1 },
263*17269568STaniya Das 	{ P_SLEEP_CLK, 5 },
264*17269568STaniya Das 	{ P_CORE_BI_PLL_TEST_SE, 7 },
265*17269568STaniya Das };
266*17269568STaniya Das 
267*17269568STaniya Das static const struct clk_parent_data gcc_parent_data_6[] = {
268*17269568STaniya Das 	{ .fw_name = "bi_tcxo", .name = "bi_tcxo" },
269*17269568STaniya Das 	{ .hw = &gpll0.clkr.hw },
270*17269568STaniya Das 	{ .fw_name = "sleep_clk", .name = "sleep_clk" },
271*17269568STaniya Das 	{ .fw_name = "core_bi_pll_test_se", .name = "core_bi_pll_test_se" },
272*17269568STaniya Das };
273*17269568STaniya Das 
274*17269568STaniya Das static const struct freq_tbl ftbl_gcc_cpuss_ahb_clk_src[] = {
275*17269568STaniya Das 	F(19200000, P_BI_TCXO, 1, 0, 0),
276*17269568STaniya Das 	{ }
277*17269568STaniya Das };
278*17269568STaniya Das 
279*17269568STaniya Das static struct clk_rcg2 gcc_cpuss_ahb_clk_src = {
280*17269568STaniya Das 	.cmd_rcgr = 0x48014,
281*17269568STaniya Das 	.mnd_width = 0,
282*17269568STaniya Das 	.hid_width = 5,
283*17269568STaniya Das 	.parent_map = gcc_parent_map_0,
284*17269568STaniya Das 	.freq_tbl = ftbl_gcc_cpuss_ahb_clk_src,
285*17269568STaniya Das 	.clkr.hw.init = &(struct clk_init_data){
286*17269568STaniya Das 		.name = "gcc_cpuss_ahb_clk_src",
287*17269568STaniya Das 		.parent_data = gcc_parent_data_0_ao,
288*17269568STaniya Das 		.num_parents = 4,
289*17269568STaniya Das 		.flags = CLK_SET_RATE_PARENT,
290*17269568STaniya Das 		.ops = &clk_rcg2_ops,
291*17269568STaniya Das 		},
292*17269568STaniya Das };
293*17269568STaniya Das 
294*17269568STaniya Das static const struct freq_tbl ftbl_gcc_gp1_clk_src[] = {
295*17269568STaniya Das 	F(19200000, P_BI_TCXO, 1, 0, 0),
296*17269568STaniya Das 	F(25000000, P_GPLL0_OUT_EVEN, 12, 0, 0),
297*17269568STaniya Das 	F(50000000, P_GPLL0_OUT_EVEN, 6, 0, 0),
298*17269568STaniya Das 	F(100000000, P_GPLL0_OUT_EVEN, 3, 0, 0),
299*17269568STaniya Das 	F(200000000, P_GPLL0_OUT_EVEN, 1.5, 0, 0),
300*17269568STaniya Das 	{ }
301*17269568STaniya Das };
302*17269568STaniya Das 
303*17269568STaniya Das static struct clk_rcg2 gcc_gp1_clk_src = {
304*17269568STaniya Das 	.cmd_rcgr = 0x64004,
305*17269568STaniya Das 	.mnd_width = 8,
306*17269568STaniya Das 	.hid_width = 5,
307*17269568STaniya Das 	.parent_map = gcc_parent_map_4,
308*17269568STaniya Das 	.freq_tbl = ftbl_gcc_gp1_clk_src,
309*17269568STaniya Das 	.clkr.hw.init = &(struct clk_init_data){
310*17269568STaniya Das 		.name = "gcc_gp1_clk_src",
311*17269568STaniya Das 		.parent_data = gcc_parent_data_4,
312*17269568STaniya Das 		.num_parents = 5,
313*17269568STaniya Das 		.ops = &clk_rcg2_ops,
314*17269568STaniya Das 	},
315*17269568STaniya Das };
316*17269568STaniya Das 
317*17269568STaniya Das static struct clk_rcg2 gcc_gp2_clk_src = {
318*17269568STaniya Das 	.cmd_rcgr = 0x65004,
319*17269568STaniya Das 	.mnd_width = 8,
320*17269568STaniya Das 	.hid_width = 5,
321*17269568STaniya Das 	.parent_map = gcc_parent_map_4,
322*17269568STaniya Das 	.freq_tbl = ftbl_gcc_gp1_clk_src,
323*17269568STaniya Das 	.clkr.hw.init = &(struct clk_init_data){
324*17269568STaniya Das 		.name = "gcc_gp2_clk_src",
325*17269568STaniya Das 		.parent_data = gcc_parent_data_4,
326*17269568STaniya Das 		.num_parents = 5,
327*17269568STaniya Das 		.ops = &clk_rcg2_ops,
328*17269568STaniya Das 	},
329*17269568STaniya Das };
330*17269568STaniya Das 
331*17269568STaniya Das static struct clk_rcg2 gcc_gp3_clk_src = {
332*17269568STaniya Das 	.cmd_rcgr = 0x66004,
333*17269568STaniya Das 	.mnd_width = 8,
334*17269568STaniya Das 	.hid_width = 5,
335*17269568STaniya Das 	.parent_map = gcc_parent_map_4,
336*17269568STaniya Das 	.freq_tbl = ftbl_gcc_gp1_clk_src,
337*17269568STaniya Das 	.clkr.hw.init = &(struct clk_init_data){
338*17269568STaniya Das 		.name = "gcc_gp3_clk_src",
339*17269568STaniya Das 		.parent_data = gcc_parent_data_4,
340*17269568STaniya Das 		.num_parents = 5,
341*17269568STaniya Das 		.ops = &clk_rcg2_ops,
342*17269568STaniya Das 	},
343*17269568STaniya Das };
344*17269568STaniya Das 
345*17269568STaniya Das static const struct freq_tbl ftbl_gcc_pdm2_clk_src[] = {
346*17269568STaniya Das 	F(19200000, P_BI_TCXO, 1, 0, 0),
347*17269568STaniya Das 	F(60000000, P_GPLL0_OUT_EVEN, 5, 0, 0),
348*17269568STaniya Das 	{ }
349*17269568STaniya Das };
350*17269568STaniya Das 
351*17269568STaniya Das static struct clk_rcg2 gcc_pdm2_clk_src = {
352*17269568STaniya Das 	.cmd_rcgr = 0x33010,
353*17269568STaniya Das 	.mnd_width = 0,
354*17269568STaniya Das 	.hid_width = 5,
355*17269568STaniya Das 	.parent_map = gcc_parent_map_0,
356*17269568STaniya Das 	.freq_tbl = ftbl_gcc_pdm2_clk_src,
357*17269568STaniya Das 	.clkr.hw.init = &(struct clk_init_data){
358*17269568STaniya Das 		.name = "gcc_pdm2_clk_src",
359*17269568STaniya Das 		.parent_data = gcc_parent_data_0,
360*17269568STaniya Das 		.num_parents = 4,
361*17269568STaniya Das 		.ops = &clk_rcg2_ops,
362*17269568STaniya Das 	},
363*17269568STaniya Das };
364*17269568STaniya Das 
365*17269568STaniya Das static const struct freq_tbl ftbl_gcc_qspi_core_clk_src[] = {
366*17269568STaniya Das 	F(75000000, P_GPLL0_OUT_EVEN, 4, 0, 0),
367*17269568STaniya Das 	F(150000000, P_GPLL0_OUT_EVEN, 2, 0, 0),
368*17269568STaniya Das 	F(300000000, P_GPLL0_OUT_EVEN, 1, 0, 0),
369*17269568STaniya Das 	{ }
370*17269568STaniya Das };
371*17269568STaniya Das 
372*17269568STaniya Das static struct clk_rcg2 gcc_qspi_core_clk_src = {
373*17269568STaniya Das 	.cmd_rcgr = 0x4b00c,
374*17269568STaniya Das 	.mnd_width = 0,
375*17269568STaniya Das 	.hid_width = 5,
376*17269568STaniya Das 	.parent_map = gcc_parent_map_2,
377*17269568STaniya Das 	.freq_tbl = ftbl_gcc_qspi_core_clk_src,
378*17269568STaniya Das 	.clkr.hw.init = &(struct clk_init_data){
379*17269568STaniya Das 		.name = "gcc_qspi_core_clk_src",
380*17269568STaniya Das 		.parent_data = gcc_parent_data_2,
381*17269568STaniya Das 		.num_parents = 6,
382*17269568STaniya Das 		.ops = &clk_rcg2_ops,
383*17269568STaniya Das 	},
384*17269568STaniya Das };
385*17269568STaniya Das 
386*17269568STaniya Das static const struct freq_tbl ftbl_gcc_qupv3_wrap0_s0_clk_src[] = {
387*17269568STaniya Das 	F(7372800, P_GPLL0_OUT_EVEN, 1, 384, 15625),
388*17269568STaniya Das 	F(14745600, P_GPLL0_OUT_EVEN, 1, 768, 15625),
389*17269568STaniya Das 	F(19200000, P_BI_TCXO, 1, 0, 0),
390*17269568STaniya Das 	F(29491200, P_GPLL0_OUT_EVEN, 1, 1536, 15625),
391*17269568STaniya Das 	F(32000000, P_GPLL0_OUT_EVEN, 1, 8, 75),
392*17269568STaniya Das 	F(48000000, P_GPLL0_OUT_EVEN, 1, 4, 25),
393*17269568STaniya Das 	F(64000000, P_GPLL0_OUT_EVEN, 1, 16, 75),
394*17269568STaniya Das 	F(75000000, P_GPLL0_OUT_EVEN, 4, 0, 0),
395*17269568STaniya Das 	F(80000000, P_GPLL0_OUT_EVEN, 1, 4, 15),
396*17269568STaniya Das 	F(96000000, P_GPLL0_OUT_EVEN, 1, 8, 25),
397*17269568STaniya Das 	F(100000000, P_GPLL0_OUT_EVEN, 3, 0, 0),
398*17269568STaniya Das 	F(102400000, P_GPLL0_OUT_EVEN, 1, 128, 375),
399*17269568STaniya Das 	F(112000000, P_GPLL0_OUT_EVEN, 1, 28, 75),
400*17269568STaniya Das 	F(117964800, P_GPLL0_OUT_EVEN, 1, 6144, 15625),
401*17269568STaniya Das 	F(120000000, P_GPLL0_OUT_EVEN, 2.5, 0, 0),
402*17269568STaniya Das 	F(128000000, P_GPLL6_OUT_MAIN, 3, 0, 0),
403*17269568STaniya Das 	{ }
404*17269568STaniya Das };
405*17269568STaniya Das 
406*17269568STaniya Das static struct clk_init_data gcc_qupv3_wrap0_s0_clk_src_init = {
407*17269568STaniya Das 	.name = "gcc_qupv3_wrap0_s0_clk_src",
408*17269568STaniya Das 	.parent_data = gcc_parent_data_0,
409*17269568STaniya Das 	.num_parents = 4,
410*17269568STaniya Das 	.ops = &clk_rcg2_ops,
411*17269568STaniya Das };
412*17269568STaniya Das 
413*17269568STaniya Das static struct clk_rcg2 gcc_qupv3_wrap0_s0_clk_src = {
414*17269568STaniya Das 	.cmd_rcgr = 0x17034,
415*17269568STaniya Das 	.mnd_width = 16,
416*17269568STaniya Das 	.hid_width = 5,
417*17269568STaniya Das 	.parent_map = gcc_parent_map_0,
418*17269568STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
419*17269568STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap0_s0_clk_src_init,
420*17269568STaniya Das };
421*17269568STaniya Das 
422*17269568STaniya Das static struct clk_init_data gcc_qupv3_wrap0_s1_clk_src_init = {
423*17269568STaniya Das 	.name = "gcc_qupv3_wrap0_s1_clk_src",
424*17269568STaniya Das 	.parent_data = gcc_parent_data_0,
425*17269568STaniya Das 	.num_parents = 4,
426*17269568STaniya Das 	.ops = &clk_rcg2_ops,
427*17269568STaniya Das };
428*17269568STaniya Das 
429*17269568STaniya Das static struct clk_rcg2 gcc_qupv3_wrap0_s1_clk_src = {
430*17269568STaniya Das 	.cmd_rcgr = 0x17164,
431*17269568STaniya Das 	.mnd_width = 16,
432*17269568STaniya Das 	.hid_width = 5,
433*17269568STaniya Das 	.parent_map = gcc_parent_map_0,
434*17269568STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
435*17269568STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap0_s1_clk_src_init,
436*17269568STaniya Das };
437*17269568STaniya Das 
438*17269568STaniya Das static struct clk_init_data gcc_qupv3_wrap0_s2_clk_src_init = {
439*17269568STaniya Das 	.name = "gcc_qupv3_wrap0_s2_clk_src",
440*17269568STaniya Das 	.parent_data = gcc_parent_data_0,
441*17269568STaniya Das 	.num_parents = 4,
442*17269568STaniya Das 	.ops = &clk_rcg2_ops,
443*17269568STaniya Das };
444*17269568STaniya Das 
445*17269568STaniya Das static struct clk_rcg2 gcc_qupv3_wrap0_s2_clk_src = {
446*17269568STaniya Das 	.cmd_rcgr = 0x17294,
447*17269568STaniya Das 	.mnd_width = 16,
448*17269568STaniya Das 	.hid_width = 5,
449*17269568STaniya Das 	.parent_map = gcc_parent_map_0,
450*17269568STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
451*17269568STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap0_s2_clk_src_init,
452*17269568STaniya Das };
453*17269568STaniya Das 
454*17269568STaniya Das static struct clk_init_data gcc_qupv3_wrap0_s3_clk_src_init = {
455*17269568STaniya Das 	.name = "gcc_qupv3_wrap0_s3_clk_src",
456*17269568STaniya Das 	.parent_data = gcc_parent_data_0,
457*17269568STaniya Das 	.num_parents = 4,
458*17269568STaniya Das 	.ops = &clk_rcg2_ops,
459*17269568STaniya Das };
460*17269568STaniya Das 
461*17269568STaniya Das static struct clk_rcg2 gcc_qupv3_wrap0_s3_clk_src = {
462*17269568STaniya Das 	.cmd_rcgr = 0x173c4,
463*17269568STaniya Das 	.mnd_width = 16,
464*17269568STaniya Das 	.hid_width = 5,
465*17269568STaniya Das 	.parent_map = gcc_parent_map_0,
466*17269568STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
467*17269568STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap0_s3_clk_src_init,
468*17269568STaniya Das };
469*17269568STaniya Das 
470*17269568STaniya Das static struct clk_init_data gcc_qupv3_wrap0_s4_clk_src_init = {
471*17269568STaniya Das 	.name = "gcc_qupv3_wrap0_s4_clk_src",
472*17269568STaniya Das 	.parent_data = gcc_parent_data_0,
473*17269568STaniya Das 	.num_parents = 4,
474*17269568STaniya Das 	.ops = &clk_rcg2_ops,
475*17269568STaniya Das };
476*17269568STaniya Das 
477*17269568STaniya Das static struct clk_rcg2 gcc_qupv3_wrap0_s4_clk_src = {
478*17269568STaniya Das 	.cmd_rcgr = 0x174f4,
479*17269568STaniya Das 	.mnd_width = 16,
480*17269568STaniya Das 	.hid_width = 5,
481*17269568STaniya Das 	.parent_map = gcc_parent_map_0,
482*17269568STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
483*17269568STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap0_s4_clk_src_init,
484*17269568STaniya Das };
485*17269568STaniya Das 
486*17269568STaniya Das static struct clk_init_data gcc_qupv3_wrap0_s5_clk_src_init = {
487*17269568STaniya Das 	.name = "gcc_qupv3_wrap0_s5_clk_src",
488*17269568STaniya Das 	.parent_data = gcc_parent_data_0,
489*17269568STaniya Das 	.num_parents = 4,
490*17269568STaniya Das 	.ops = &clk_rcg2_ops,
491*17269568STaniya Das };
492*17269568STaniya Das 
493*17269568STaniya Das static struct clk_rcg2 gcc_qupv3_wrap0_s5_clk_src = {
494*17269568STaniya Das 	.cmd_rcgr = 0x17624,
495*17269568STaniya Das 	.mnd_width = 16,
496*17269568STaniya Das 	.hid_width = 5,
497*17269568STaniya Das 	.parent_map = gcc_parent_map_0,
498*17269568STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
499*17269568STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap0_s5_clk_src_init,
500*17269568STaniya Das };
501*17269568STaniya Das 
502*17269568STaniya Das static struct clk_init_data gcc_qupv3_wrap1_s0_clk_src_init = {
503*17269568STaniya Das 	.name = "gcc_qupv3_wrap1_s0_clk_src",
504*17269568STaniya Das 	.parent_data = gcc_parent_data_0,
505*17269568STaniya Das 	.num_parents = 4,
506*17269568STaniya Das 	.ops = &clk_rcg2_ops,
507*17269568STaniya Das };
508*17269568STaniya Das 
509*17269568STaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s0_clk_src = {
510*17269568STaniya Das 	.cmd_rcgr = 0x18018,
511*17269568STaniya Das 	.mnd_width = 16,
512*17269568STaniya Das 	.hid_width = 5,
513*17269568STaniya Das 	.parent_map = gcc_parent_map_0,
514*17269568STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
515*17269568STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap1_s0_clk_src_init,
516*17269568STaniya Das };
517*17269568STaniya Das 
518*17269568STaniya Das static struct clk_init_data gcc_qupv3_wrap1_s1_clk_src_init = {
519*17269568STaniya Das 	.name = "gcc_qupv3_wrap1_s1_clk_src",
520*17269568STaniya Das 	.parent_data = gcc_parent_data_0,
521*17269568STaniya Das 	.num_parents = 4,
522*17269568STaniya Das 	.ops = &clk_rcg2_ops,
523*17269568STaniya Das };
524*17269568STaniya Das 
525*17269568STaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s1_clk_src = {
526*17269568STaniya Das 	.cmd_rcgr = 0x18148,
527*17269568STaniya Das 	.mnd_width = 16,
528*17269568STaniya Das 	.hid_width = 5,
529*17269568STaniya Das 	.parent_map = gcc_parent_map_0,
530*17269568STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
531*17269568STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap1_s1_clk_src_init,
532*17269568STaniya Das };
533*17269568STaniya Das 
534*17269568STaniya Das static struct clk_init_data gcc_qupv3_wrap1_s2_clk_src_init = {
535*17269568STaniya Das 	.name = "gcc_qupv3_wrap1_s2_clk_src",
536*17269568STaniya Das 	.parent_data = gcc_parent_data_0,
537*17269568STaniya Das 	.num_parents = 4,
538*17269568STaniya Das 	.ops = &clk_rcg2_ops,
539*17269568STaniya Das };
540*17269568STaniya Das 
541*17269568STaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s2_clk_src = {
542*17269568STaniya Das 	.cmd_rcgr = 0x18278,
543*17269568STaniya Das 	.mnd_width = 16,
544*17269568STaniya Das 	.hid_width = 5,
545*17269568STaniya Das 	.parent_map = gcc_parent_map_0,
546*17269568STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
547*17269568STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap1_s2_clk_src_init,
548*17269568STaniya Das };
549*17269568STaniya Das 
550*17269568STaniya Das static struct clk_init_data gcc_qupv3_wrap1_s3_clk_src_init = {
551*17269568STaniya Das 	.name = "gcc_qupv3_wrap1_s3_clk_src",
552*17269568STaniya Das 	.parent_data = gcc_parent_data_0,
553*17269568STaniya Das 	.num_parents = 4,
554*17269568STaniya Das 	.ops = &clk_rcg2_ops,
555*17269568STaniya Das };
556*17269568STaniya Das 
557*17269568STaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s3_clk_src = {
558*17269568STaniya Das 	.cmd_rcgr = 0x183a8,
559*17269568STaniya Das 	.mnd_width = 16,
560*17269568STaniya Das 	.hid_width = 5,
561*17269568STaniya Das 	.parent_map = gcc_parent_map_0,
562*17269568STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
563*17269568STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap1_s3_clk_src_init,
564*17269568STaniya Das };
565*17269568STaniya Das 
566*17269568STaniya Das static struct clk_init_data gcc_qupv3_wrap1_s4_clk_src_init = {
567*17269568STaniya Das 	.name = "gcc_qupv3_wrap1_s4_clk_src",
568*17269568STaniya Das 	.parent_data = gcc_parent_data_0,
569*17269568STaniya Das 	.num_parents = 4,
570*17269568STaniya Das 	.ops = &clk_rcg2_ops,
571*17269568STaniya Das };
572*17269568STaniya Das 
573*17269568STaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s4_clk_src = {
574*17269568STaniya Das 	.cmd_rcgr = 0x184d8,
575*17269568STaniya Das 	.mnd_width = 16,
576*17269568STaniya Das 	.hid_width = 5,
577*17269568STaniya Das 	.parent_map = gcc_parent_map_0,
578*17269568STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
579*17269568STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap1_s4_clk_src_init,
580*17269568STaniya Das };
581*17269568STaniya Das 
582*17269568STaniya Das static struct clk_init_data gcc_qupv3_wrap1_s5_clk_src_init = {
583*17269568STaniya Das 	.name = "gcc_qupv3_wrap1_s5_clk_src",
584*17269568STaniya Das 	.parent_data = gcc_parent_data_0,
585*17269568STaniya Das 	.num_parents = 4,
586*17269568STaniya Das 	.ops = &clk_rcg2_ops,
587*17269568STaniya Das };
588*17269568STaniya Das 
589*17269568STaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s5_clk_src = {
590*17269568STaniya Das 	.cmd_rcgr = 0x18608,
591*17269568STaniya Das 	.mnd_width = 16,
592*17269568STaniya Das 	.hid_width = 5,
593*17269568STaniya Das 	.parent_map = gcc_parent_map_0,
594*17269568STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
595*17269568STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap1_s5_clk_src_init,
596*17269568STaniya Das };
597*17269568STaniya Das 
598*17269568STaniya Das 
599*17269568STaniya Das static const struct freq_tbl ftbl_gcc_sdcc1_apps_clk_src[] = {
600*17269568STaniya Das 	F(144000, P_BI_TCXO, 16, 3, 25),
601*17269568STaniya Das 	F(400000, P_BI_TCXO, 12, 1, 4),
602*17269568STaniya Das 	F(19200000, P_BI_TCXO, 1, 0, 0),
603*17269568STaniya Das 	F(20000000, P_GPLL0_OUT_EVEN, 5, 1, 3),
604*17269568STaniya Das 	F(25000000, P_GPLL0_OUT_EVEN, 6, 1, 2),
605*17269568STaniya Das 	F(50000000, P_GPLL0_OUT_EVEN, 6, 0, 0),
606*17269568STaniya Das 	F(100000000, P_GPLL0_OUT_EVEN, 3, 0, 0),
607*17269568STaniya Das 	F(192000000, P_GPLL6_OUT_MAIN, 2, 0, 0),
608*17269568STaniya Das 	F(384000000, P_GPLL6_OUT_MAIN, 1, 0, 0),
609*17269568STaniya Das 	{ }
610*17269568STaniya Das };
611*17269568STaniya Das 
612*17269568STaniya Das static struct clk_rcg2 gcc_sdcc1_apps_clk_src = {
613*17269568STaniya Das 	.cmd_rcgr = 0x12028,
614*17269568STaniya Das 	.mnd_width = 8,
615*17269568STaniya Das 	.hid_width = 5,
616*17269568STaniya Das 	.parent_map = gcc_parent_map_1,
617*17269568STaniya Das 	.freq_tbl = ftbl_gcc_sdcc1_apps_clk_src,
618*17269568STaniya Das 	.clkr.hw.init = &(struct clk_init_data){
619*17269568STaniya Das 		.name = "gcc_sdcc1_apps_clk_src",
620*17269568STaniya Das 		.parent_data = gcc_parent_data_1,
621*17269568STaniya Das 		.num_parents = 5,
622*17269568STaniya Das 		.ops = &clk_rcg2_ops,
623*17269568STaniya Das 	},
624*17269568STaniya Das };
625*17269568STaniya Das 
626*17269568STaniya Das static const struct freq_tbl ftbl_gcc_sdcc1_ice_core_clk_src[] = {
627*17269568STaniya Das 	F(100000000, P_GPLL0_OUT_EVEN, 3, 0, 0),
628*17269568STaniya Das 	F(150000000, P_GPLL0_OUT_EVEN, 2, 0, 0),
629*17269568STaniya Das 	F(200000000, P_GPLL0_OUT_MAIN, 3, 0, 0),
630*17269568STaniya Das 	F(300000000, P_GPLL0_OUT_EVEN, 1, 0, 0),
631*17269568STaniya Das 	{ }
632*17269568STaniya Das };
633*17269568STaniya Das 
634*17269568STaniya Das static struct clk_rcg2 gcc_sdcc1_ice_core_clk_src = {
635*17269568STaniya Das 	.cmd_rcgr = 0x12010,
636*17269568STaniya Das 	.mnd_width = 0,
637*17269568STaniya Das 	.hid_width = 5,
638*17269568STaniya Das 	.parent_map = gcc_parent_map_0,
639*17269568STaniya Das 	.freq_tbl = ftbl_gcc_sdcc1_ice_core_clk_src,
640*17269568STaniya Das 	.clkr.hw.init = &(struct clk_init_data){
641*17269568STaniya Das 		.name = "gcc_sdcc1_ice_core_clk_src",
642*17269568STaniya Das 		.parent_data = gcc_parent_data_0,
643*17269568STaniya Das 		.num_parents = 4,
644*17269568STaniya Das 		.ops = &clk_rcg2_ops,
645*17269568STaniya Das 	},
646*17269568STaniya Das };
647*17269568STaniya Das 
648*17269568STaniya Das static const struct freq_tbl ftbl_gcc_sdcc2_apps_clk_src[] = {
649*17269568STaniya Das 	F(400000, P_BI_TCXO, 12, 1, 4),
650*17269568STaniya Das 	F(9600000, P_BI_TCXO, 2, 0, 0),
651*17269568STaniya Das 	F(19200000, P_BI_TCXO, 1, 0, 0),
652*17269568STaniya Das 	F(25000000, P_GPLL0_OUT_EVEN, 12, 0, 0),
653*17269568STaniya Das 	F(100000000, P_GPLL0_OUT_EVEN, 3, 0, 0),
654*17269568STaniya Das 	F(202000000, P_GPLL7_OUT_MAIN, 4, 0, 0),
655*17269568STaniya Das 	{ }
656*17269568STaniya Das };
657*17269568STaniya Das 
658*17269568STaniya Das static struct clk_rcg2 gcc_sdcc2_apps_clk_src = {
659*17269568STaniya Das 	.cmd_rcgr = 0x1400c,
660*17269568STaniya Das 	.mnd_width = 8,
661*17269568STaniya Das 	.hid_width = 5,
662*17269568STaniya Das 	.parent_map = gcc_parent_map_5,
663*17269568STaniya Das 	.freq_tbl = ftbl_gcc_sdcc2_apps_clk_src,
664*17269568STaniya Das 	.clkr.hw.init = &(struct clk_init_data){
665*17269568STaniya Das 		.name = "gcc_sdcc2_apps_clk_src",
666*17269568STaniya Das 		.parent_data = gcc_parent_data_5,
667*17269568STaniya Das 		.num_parents = 5,
668*17269568STaniya Das 		.ops = &clk_rcg2_ops,
669*17269568STaniya Das 	},
670*17269568STaniya Das };
671*17269568STaniya Das 
672*17269568STaniya Das static const struct freq_tbl ftbl_gcc_ufs_phy_axi_clk_src[] = {
673*17269568STaniya Das 	F(25000000, P_GPLL0_OUT_EVEN, 12, 0, 0),
674*17269568STaniya Das 	F(50000000, P_GPLL0_OUT_EVEN, 6, 0, 0),
675*17269568STaniya Das 	F(100000000, P_GPLL0_OUT_EVEN, 3, 0, 0),
676*17269568STaniya Das 	F(200000000, P_GPLL0_OUT_MAIN, 3, 0, 0),
677*17269568STaniya Das 	F(240000000, P_GPLL0_OUT_MAIN, 2.5, 0, 0),
678*17269568STaniya Das 	{ }
679*17269568STaniya Das };
680*17269568STaniya Das 
681*17269568STaniya Das static struct clk_rcg2 gcc_ufs_phy_axi_clk_src = {
682*17269568STaniya Das 	.cmd_rcgr = 0x77020,
683*17269568STaniya Das 	.mnd_width = 8,
684*17269568STaniya Das 	.hid_width = 5,
685*17269568STaniya Das 	.parent_map = gcc_parent_map_0,
686*17269568STaniya Das 	.freq_tbl = ftbl_gcc_ufs_phy_axi_clk_src,
687*17269568STaniya Das 	.clkr.hw.init = &(struct clk_init_data){
688*17269568STaniya Das 		.name = "gcc_ufs_phy_axi_clk_src",
689*17269568STaniya Das 		.parent_data = gcc_parent_data_0,
690*17269568STaniya Das 		.num_parents = 4,
691*17269568STaniya Das 		.ops = &clk_rcg2_ops,
692*17269568STaniya Das 	},
693*17269568STaniya Das };
694*17269568STaniya Das 
695*17269568STaniya Das static const struct freq_tbl ftbl_gcc_ufs_phy_ice_core_clk_src[] = {
696*17269568STaniya Das 	F(37500000, P_GPLL0_OUT_EVEN, 8, 0, 0),
697*17269568STaniya Das 	F(75000000, P_GPLL0_OUT_EVEN, 4, 0, 0),
698*17269568STaniya Das 	F(150000000, P_GPLL0_OUT_EVEN, 2, 0, 0),
699*17269568STaniya Das 	F(300000000, P_GPLL0_OUT_EVEN, 1, 0, 0),
700*17269568STaniya Das 	{ }
701*17269568STaniya Das };
702*17269568STaniya Das 
703*17269568STaniya Das static struct clk_rcg2 gcc_ufs_phy_ice_core_clk_src = {
704*17269568STaniya Das 	.cmd_rcgr = 0x77048,
705*17269568STaniya Das 	.mnd_width = 0,
706*17269568STaniya Das 	.hid_width = 5,
707*17269568STaniya Das 	.parent_map = gcc_parent_map_0,
708*17269568STaniya Das 	.freq_tbl = ftbl_gcc_ufs_phy_ice_core_clk_src,
709*17269568STaniya Das 	.clkr.hw.init = &(struct clk_init_data){
710*17269568STaniya Das 		.name = "gcc_ufs_phy_ice_core_clk_src",
711*17269568STaniya Das 		.parent_data = gcc_parent_data_0,
712*17269568STaniya Das 		.num_parents = 4,
713*17269568STaniya Das 		.ops = &clk_rcg2_ops,
714*17269568STaniya Das 	},
715*17269568STaniya Das };
716*17269568STaniya Das 
717*17269568STaniya Das static const struct freq_tbl ftbl_gcc_ufs_phy_phy_aux_clk_src[] = {
718*17269568STaniya Das 	F(9600000, P_BI_TCXO, 2, 0, 0),
719*17269568STaniya Das 	F(19200000, P_BI_TCXO, 1, 0, 0),
720*17269568STaniya Das 	{ }
721*17269568STaniya Das };
722*17269568STaniya Das 
723*17269568STaniya Das static struct clk_rcg2 gcc_ufs_phy_phy_aux_clk_src = {
724*17269568STaniya Das 	.cmd_rcgr = 0x77098,
725*17269568STaniya Das 	.mnd_width = 0,
726*17269568STaniya Das 	.hid_width = 5,
727*17269568STaniya Das 	.parent_map = gcc_parent_map_3,
728*17269568STaniya Das 	.freq_tbl = ftbl_gcc_ufs_phy_phy_aux_clk_src,
729*17269568STaniya Das 	.clkr.hw.init = &(struct clk_init_data){
730*17269568STaniya Das 		.name = "gcc_ufs_phy_phy_aux_clk_src",
731*17269568STaniya Das 		.parent_data = gcc_parent_data_3,
732*17269568STaniya Das 		.num_parents = 3,
733*17269568STaniya Das 		.ops = &clk_rcg2_ops,
734*17269568STaniya Das 	},
735*17269568STaniya Das };
736*17269568STaniya Das 
737*17269568STaniya Das static const struct freq_tbl ftbl_gcc_ufs_phy_unipro_core_clk_src[] = {
738*17269568STaniya Das 	F(37500000, P_GPLL0_OUT_EVEN, 8, 0, 0),
739*17269568STaniya Das 	F(75000000, P_GPLL0_OUT_EVEN, 4, 0, 0),
740*17269568STaniya Das 	F(150000000, P_GPLL0_OUT_EVEN, 2, 0, 0),
741*17269568STaniya Das 	{ }
742*17269568STaniya Das };
743*17269568STaniya Das 
744*17269568STaniya Das static struct clk_rcg2 gcc_ufs_phy_unipro_core_clk_src = {
745*17269568STaniya Das 	.cmd_rcgr = 0x77060,
746*17269568STaniya Das 	.mnd_width = 0,
747*17269568STaniya Das 	.hid_width = 5,
748*17269568STaniya Das 	.parent_map = gcc_parent_map_0,
749*17269568STaniya Das 	.freq_tbl = ftbl_gcc_ufs_phy_unipro_core_clk_src,
750*17269568STaniya Das 	.clkr.hw.init = &(struct clk_init_data){
751*17269568STaniya Das 		.name = "gcc_ufs_phy_unipro_core_clk_src",
752*17269568STaniya Das 		.parent_data = gcc_parent_data_0,
753*17269568STaniya Das 		.num_parents = 4,
754*17269568STaniya Das 		.ops = &clk_rcg2_ops,
755*17269568STaniya Das 	},
756*17269568STaniya Das };
757*17269568STaniya Das 
758*17269568STaniya Das static const struct freq_tbl ftbl_gcc_usb30_prim_master_clk_src[] = {
759*17269568STaniya Das 	F(66666667, P_GPLL0_OUT_EVEN, 4.5, 0, 0),
760*17269568STaniya Das 	F(133333333, P_GPLL0_OUT_MAIN, 4.5, 0, 0),
761*17269568STaniya Das 	F(200000000, P_GPLL0_OUT_MAIN, 3, 0, 0),
762*17269568STaniya Das 	F(240000000, P_GPLL0_OUT_MAIN, 2.5, 0, 0),
763*17269568STaniya Das 	{ }
764*17269568STaniya Das };
765*17269568STaniya Das 
766*17269568STaniya Das static struct clk_rcg2 gcc_usb30_prim_master_clk_src = {
767*17269568STaniya Das 	.cmd_rcgr = 0xf01c,
768*17269568STaniya Das 	.mnd_width = 8,
769*17269568STaniya Das 	.hid_width = 5,
770*17269568STaniya Das 	.parent_map = gcc_parent_map_0,
771*17269568STaniya Das 	.freq_tbl = ftbl_gcc_usb30_prim_master_clk_src,
772*17269568STaniya Das 	.clkr.hw.init = &(struct clk_init_data){
773*17269568STaniya Das 		.name = "gcc_usb30_prim_master_clk_src",
774*17269568STaniya Das 		.parent_data = gcc_parent_data_0,
775*17269568STaniya Das 		.num_parents = 4,
776*17269568STaniya Das 		.ops = &clk_rcg2_ops,
777*17269568STaniya Das 	},
778*17269568STaniya Das };
779*17269568STaniya Das 
780*17269568STaniya Das static const struct freq_tbl ftbl_gcc_usb30_prim_mock_utmi_clk_src[] = {
781*17269568STaniya Das 	F(19200000, P_BI_TCXO, 1, 0, 0),
782*17269568STaniya Das 	F(20000000, P_GPLL0_OUT_EVEN, 15, 0, 0),
783*17269568STaniya Das 	{ }
784*17269568STaniya Das };
785*17269568STaniya Das 
786*17269568STaniya Das static struct clk_rcg2 gcc_usb30_prim_mock_utmi_clk_src = {
787*17269568STaniya Das 	.cmd_rcgr = 0xf034,
788*17269568STaniya Das 	.mnd_width = 0,
789*17269568STaniya Das 	.hid_width = 5,
790*17269568STaniya Das 	.parent_map = gcc_parent_map_0,
791*17269568STaniya Das 	.freq_tbl = ftbl_gcc_usb30_prim_mock_utmi_clk_src,
792*17269568STaniya Das 	.clkr.hw.init = &(struct clk_init_data){
793*17269568STaniya Das 		.name = "gcc_usb30_prim_mock_utmi_clk_src",
794*17269568STaniya Das 		.parent_data = gcc_parent_data_0,
795*17269568STaniya Das 		.num_parents = 4,
796*17269568STaniya Das 		.ops = &clk_rcg2_ops,
797*17269568STaniya Das 	},
798*17269568STaniya Das };
799*17269568STaniya Das 
800*17269568STaniya Das static const struct freq_tbl ftbl_gcc_usb3_prim_phy_aux_clk_src[] = {
801*17269568STaniya Das 	F(19200000, P_BI_TCXO, 1, 0, 0),
802*17269568STaniya Das 	{ }
803*17269568STaniya Das };
804*17269568STaniya Das 
805*17269568STaniya Das static struct clk_rcg2 gcc_usb3_prim_phy_aux_clk_src = {
806*17269568STaniya Das 	.cmd_rcgr = 0xf060,
807*17269568STaniya Das 	.mnd_width = 0,
808*17269568STaniya Das 	.hid_width = 5,
809*17269568STaniya Das 	.parent_map = gcc_parent_map_6,
810*17269568STaniya Das 	.freq_tbl = ftbl_gcc_usb3_prim_phy_aux_clk_src,
811*17269568STaniya Das 	.clkr.hw.init = &(struct clk_init_data){
812*17269568STaniya Das 		.name = "gcc_usb3_prim_phy_aux_clk_src",
813*17269568STaniya Das 		.parent_data = gcc_parent_data_6,
814*17269568STaniya Das 		.num_parents = 4,
815*17269568STaniya Das 		.ops = &clk_rcg2_ops,
816*17269568STaniya Das 	},
817*17269568STaniya Das };
818*17269568STaniya Das 
819*17269568STaniya Das static struct clk_branch gcc_aggre_ufs_phy_axi_clk = {
820*17269568STaniya Das 	.halt_reg = 0x82024,
821*17269568STaniya Das 	.halt_check = BRANCH_HALT_DELAY,
822*17269568STaniya Das 	.hwcg_reg = 0x82024,
823*17269568STaniya Das 	.hwcg_bit = 1,
824*17269568STaniya Das 	.clkr = {
825*17269568STaniya Das 		.enable_reg = 0x82024,
826*17269568STaniya Das 		.enable_mask = BIT(0),
827*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
828*17269568STaniya Das 			.name = "gcc_aggre_ufs_phy_axi_clk",
829*17269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
830*17269568STaniya Das 				.hw = &gcc_ufs_phy_axi_clk_src.clkr.hw,
831*17269568STaniya Das 			},
832*17269568STaniya Das 			.num_parents = 1,
833*17269568STaniya Das 			.flags = CLK_SET_RATE_PARENT,
834*17269568STaniya Das 			.ops = &clk_branch2_ops,
835*17269568STaniya Das 		},
836*17269568STaniya Das 	},
837*17269568STaniya Das };
838*17269568STaniya Das 
839*17269568STaniya Das static struct clk_branch gcc_aggre_usb3_prim_axi_clk = {
840*17269568STaniya Das 	.halt_reg = 0x8201c,
841*17269568STaniya Das 	.halt_check = BRANCH_HALT,
842*17269568STaniya Das 	.clkr = {
843*17269568STaniya Das 		.enable_reg = 0x8201c,
844*17269568STaniya Das 		.enable_mask = BIT(0),
845*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
846*17269568STaniya Das 			.name = "gcc_aggre_usb3_prim_axi_clk",
847*17269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
848*17269568STaniya Das 				.hw = &gcc_usb30_prim_master_clk_src.clkr.hw,
849*17269568STaniya Das 			},
850*17269568STaniya Das 			.num_parents = 1,
851*17269568STaniya Das 			.flags = CLK_SET_RATE_PARENT,
852*17269568STaniya Das 			.ops = &clk_branch2_ops,
853*17269568STaniya Das 		},
854*17269568STaniya Das 	},
855*17269568STaniya Das };
856*17269568STaniya Das 
857*17269568STaniya Das static struct clk_branch gcc_boot_rom_ahb_clk = {
858*17269568STaniya Das 	.halt_reg = 0x38004,
859*17269568STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
860*17269568STaniya Das 	.hwcg_reg = 0x38004,
861*17269568STaniya Das 	.hwcg_bit = 1,
862*17269568STaniya Das 	.clkr = {
863*17269568STaniya Das 		.enable_reg = 0x52000,
864*17269568STaniya Das 		.enable_mask = BIT(10),
865*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
866*17269568STaniya Das 			.name = "gcc_boot_rom_ahb_clk",
867*17269568STaniya Das 			.ops = &clk_branch2_ops,
868*17269568STaniya Das 		},
869*17269568STaniya Das 	},
870*17269568STaniya Das };
871*17269568STaniya Das 
872*17269568STaniya Das static struct clk_branch gcc_camera_ahb_clk = {
873*17269568STaniya Das 	.halt_reg = 0xb008,
874*17269568STaniya Das 	.halt_check = BRANCH_HALT,
875*17269568STaniya Das 	.hwcg_reg = 0xb008,
876*17269568STaniya Das 	.hwcg_bit = 1,
877*17269568STaniya Das 	.clkr = {
878*17269568STaniya Das 		.enable_reg = 0xb008,
879*17269568STaniya Das 		.enable_mask = BIT(0),
880*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
881*17269568STaniya Das 			.name = "gcc_camera_ahb_clk",
882*17269568STaniya Das 			.ops = &clk_branch2_ops,
883*17269568STaniya Das 		},
884*17269568STaniya Das 	},
885*17269568STaniya Das };
886*17269568STaniya Das 
887*17269568STaniya Das static struct clk_branch gcc_camera_hf_axi_clk = {
888*17269568STaniya Das 	.halt_reg = 0xb020,
889*17269568STaniya Das 	.halt_check = BRANCH_HALT,
890*17269568STaniya Das 	.clkr = {
891*17269568STaniya Das 		.enable_reg = 0xb020,
892*17269568STaniya Das 		.enable_mask = BIT(0),
893*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
894*17269568STaniya Das 			.name = "gcc_camera_hf_axi_clk",
895*17269568STaniya Das 			.ops = &clk_branch2_ops,
896*17269568STaniya Das 		},
897*17269568STaniya Das 	},
898*17269568STaniya Das };
899*17269568STaniya Das 
900*17269568STaniya Das static struct clk_branch gcc_camera_throttle_hf_axi_clk = {
901*17269568STaniya Das 	.halt_reg = 0xb080,
902*17269568STaniya Das 	.halt_check = BRANCH_HALT,
903*17269568STaniya Das 	.hwcg_reg = 0xb080,
904*17269568STaniya Das 	.hwcg_bit = 1,
905*17269568STaniya Das 	.clkr = {
906*17269568STaniya Das 		.enable_reg = 0xb080,
907*17269568STaniya Das 		.enable_mask = BIT(0),
908*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
909*17269568STaniya Das 			.name = "gcc_camera_throttle_hf_axi_clk",
910*17269568STaniya Das 			.ops = &clk_branch2_ops,
911*17269568STaniya Das 		},
912*17269568STaniya Das 	},
913*17269568STaniya Das };
914*17269568STaniya Das 
915*17269568STaniya Das static struct clk_branch gcc_camera_xo_clk = {
916*17269568STaniya Das 	.halt_reg = 0xb02c,
917*17269568STaniya Das 	.halt_check = BRANCH_HALT,
918*17269568STaniya Das 	.clkr = {
919*17269568STaniya Das 		.enable_reg = 0xb02c,
920*17269568STaniya Das 		.enable_mask = BIT(0),
921*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
922*17269568STaniya Das 			.name = "gcc_camera_xo_clk",
923*17269568STaniya Das 			.ops = &clk_branch2_ops,
924*17269568STaniya Das 		},
925*17269568STaniya Das 	},
926*17269568STaniya Das };
927*17269568STaniya Das 
928*17269568STaniya Das static struct clk_branch gcc_ce1_ahb_clk = {
929*17269568STaniya Das 	.halt_reg = 0x4100c,
930*17269568STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
931*17269568STaniya Das 	.hwcg_reg = 0x4100c,
932*17269568STaniya Das 	.hwcg_bit = 1,
933*17269568STaniya Das 	.clkr = {
934*17269568STaniya Das 		.enable_reg = 0x52000,
935*17269568STaniya Das 		.enable_mask = BIT(3),
936*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
937*17269568STaniya Das 			.name = "gcc_ce1_ahb_clk",
938*17269568STaniya Das 			.ops = &clk_branch2_ops,
939*17269568STaniya Das 		},
940*17269568STaniya Das 	},
941*17269568STaniya Das };
942*17269568STaniya Das 
943*17269568STaniya Das static struct clk_branch gcc_ce1_axi_clk = {
944*17269568STaniya Das 	.halt_reg = 0x41008,
945*17269568STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
946*17269568STaniya Das 	.clkr = {
947*17269568STaniya Das 		.enable_reg = 0x52000,
948*17269568STaniya Das 		.enable_mask = BIT(4),
949*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
950*17269568STaniya Das 			.name = "gcc_ce1_axi_clk",
951*17269568STaniya Das 			.ops = &clk_branch2_ops,
952*17269568STaniya Das 		},
953*17269568STaniya Das 	},
954*17269568STaniya Das };
955*17269568STaniya Das 
956*17269568STaniya Das static struct clk_branch gcc_ce1_clk = {
957*17269568STaniya Das 	.halt_reg = 0x41004,
958*17269568STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
959*17269568STaniya Das 	.clkr = {
960*17269568STaniya Das 		.enable_reg = 0x52000,
961*17269568STaniya Das 		.enable_mask = BIT(5),
962*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
963*17269568STaniya Das 			.name = "gcc_ce1_clk",
964*17269568STaniya Das 			.ops = &clk_branch2_ops,
965*17269568STaniya Das 		},
966*17269568STaniya Das 	},
967*17269568STaniya Das };
968*17269568STaniya Das 
969*17269568STaniya Das static struct clk_branch gcc_cfg_noc_usb3_prim_axi_clk = {
970*17269568STaniya Das 	.halt_reg = 0x502c,
971*17269568STaniya Das 	.halt_check = BRANCH_HALT,
972*17269568STaniya Das 	.clkr = {
973*17269568STaniya Das 		.enable_reg = 0x502c,
974*17269568STaniya Das 		.enable_mask = BIT(0),
975*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
976*17269568STaniya Das 			.name = "gcc_cfg_noc_usb3_prim_axi_clk",
977*17269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
978*17269568STaniya Das 				.hw = &gcc_usb30_prim_master_clk_src.clkr.hw,
979*17269568STaniya Das 			},
980*17269568STaniya Das 			.num_parents = 1,
981*17269568STaniya Das 			.flags = CLK_SET_RATE_PARENT,
982*17269568STaniya Das 			.ops = &clk_branch2_ops,
983*17269568STaniya Das 		},
984*17269568STaniya Das 	},
985*17269568STaniya Das };
986*17269568STaniya Das 
987*17269568STaniya Das /* For CPUSS functionality the AHB clock needs to be left enabled */
988*17269568STaniya Das static struct clk_branch gcc_cpuss_ahb_clk = {
989*17269568STaniya Das 	.halt_reg = 0x48000,
990*17269568STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
991*17269568STaniya Das 	.clkr = {
992*17269568STaniya Das 		.enable_reg = 0x52000,
993*17269568STaniya Das 		.enable_mask = BIT(21),
994*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
995*17269568STaniya Das 			.name = "gcc_cpuss_ahb_clk",
996*17269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
997*17269568STaniya Das 				.hw = &gcc_cpuss_ahb_clk_src.clkr.hw,
998*17269568STaniya Das 			},
999*17269568STaniya Das 			.num_parents = 1,
1000*17269568STaniya Das 			.flags = CLK_IS_CRITICAL | CLK_SET_RATE_PARENT,
1001*17269568STaniya Das 			.ops = &clk_branch2_ops,
1002*17269568STaniya Das 		},
1003*17269568STaniya Das 	},
1004*17269568STaniya Das };
1005*17269568STaniya Das 
1006*17269568STaniya Das static struct clk_branch gcc_cpuss_rbcpr_clk = {
1007*17269568STaniya Das 	.halt_reg = 0x48008,
1008*17269568STaniya Das 	.halt_check = BRANCH_HALT,
1009*17269568STaniya Das 	.clkr = {
1010*17269568STaniya Das 		.enable_reg = 0x48008,
1011*17269568STaniya Das 		.enable_mask = BIT(0),
1012*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
1013*17269568STaniya Das 			.name = "gcc_cpuss_rbcpr_clk",
1014*17269568STaniya Das 			.ops = &clk_branch2_ops,
1015*17269568STaniya Das 		},
1016*17269568STaniya Das 	},
1017*17269568STaniya Das };
1018*17269568STaniya Das 
1019*17269568STaniya Das static struct clk_branch gcc_ddrss_gpu_axi_clk = {
1020*17269568STaniya Das 	.halt_reg = 0x4452c,
1021*17269568STaniya Das 	.halt_check = BRANCH_VOTED,
1022*17269568STaniya Das 	.clkr = {
1023*17269568STaniya Das 		.enable_reg = 0x4452c,
1024*17269568STaniya Das 		.enable_mask = BIT(0),
1025*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
1026*17269568STaniya Das 			.name = "gcc_ddrss_gpu_axi_clk",
1027*17269568STaniya Das 			.ops = &clk_branch2_ops,
1028*17269568STaniya Das 		},
1029*17269568STaniya Das 	},
1030*17269568STaniya Das };
1031*17269568STaniya Das 
1032*17269568STaniya Das static struct clk_branch gcc_disp_gpll0_clk_src = {
1033*17269568STaniya Das 	.halt_check = BRANCH_HALT_DELAY,
1034*17269568STaniya Das 	.clkr = {
1035*17269568STaniya Das 		.enable_reg = 0x52000,
1036*17269568STaniya Das 		.enable_mask = BIT(18),
1037*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
1038*17269568STaniya Das 			.name = "gcc_disp_gpll0_clk_src",
1039*17269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
1040*17269568STaniya Das 				.hw = &gpll0.clkr.hw,
1041*17269568STaniya Das 			},
1042*17269568STaniya Das 			.num_parents = 1,
1043*17269568STaniya Das 			.ops = &clk_branch2_ops,
1044*17269568STaniya Das 		},
1045*17269568STaniya Das 	},
1046*17269568STaniya Das };
1047*17269568STaniya Das 
1048*17269568STaniya Das static struct clk_branch gcc_disp_gpll0_div_clk_src = {
1049*17269568STaniya Das 	.halt_check = BRANCH_HALT_DELAY,
1050*17269568STaniya Das 	.clkr = {
1051*17269568STaniya Das 		.enable_reg = 0x52000,
1052*17269568STaniya Das 		.enable_mask = BIT(19),
1053*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
1054*17269568STaniya Das 			.name = "gcc_disp_gpll0_div_clk_src",
1055*17269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
1056*17269568STaniya Das 				.hw = &gcc_pll0_main_div_cdiv.hw,
1057*17269568STaniya Das 			},
1058*17269568STaniya Das 			.num_parents = 1,
1059*17269568STaniya Das 			.ops = &clk_branch2_ops,
1060*17269568STaniya Das 		},
1061*17269568STaniya Das 	},
1062*17269568STaniya Das };
1063*17269568STaniya Das 
1064*17269568STaniya Das static struct clk_branch gcc_disp_hf_axi_clk = {
1065*17269568STaniya Das 	.halt_reg = 0xb024,
1066*17269568STaniya Das 	.halt_check = BRANCH_HALT,
1067*17269568STaniya Das 	.clkr = {
1068*17269568STaniya Das 		.enable_reg = 0xb024,
1069*17269568STaniya Das 		.enable_mask = BIT(0),
1070*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
1071*17269568STaniya Das 			.name = "gcc_disp_hf_axi_clk",
1072*17269568STaniya Das 			.ops = &clk_branch2_ops,
1073*17269568STaniya Das 		},
1074*17269568STaniya Das 	},
1075*17269568STaniya Das };
1076*17269568STaniya Das 
1077*17269568STaniya Das static struct clk_branch gcc_disp_throttle_hf_axi_clk = {
1078*17269568STaniya Das 	.halt_reg = 0xb084,
1079*17269568STaniya Das 	.halt_check = BRANCH_HALT,
1080*17269568STaniya Das 	.hwcg_reg = 0xb084,
1081*17269568STaniya Das 	.hwcg_bit = 1,
1082*17269568STaniya Das 	.clkr = {
1083*17269568STaniya Das 		.enable_reg = 0xb084,
1084*17269568STaniya Das 		.enable_mask = BIT(0),
1085*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
1086*17269568STaniya Das 			.name = "gcc_disp_throttle_hf_axi_clk",
1087*17269568STaniya Das 			.ops = &clk_branch2_ops,
1088*17269568STaniya Das 		},
1089*17269568STaniya Das 	},
1090*17269568STaniya Das };
1091*17269568STaniya Das 
1092*17269568STaniya Das static struct clk_branch gcc_disp_xo_clk = {
1093*17269568STaniya Das 	.halt_reg = 0xb030,
1094*17269568STaniya Das 	.halt_check = BRANCH_HALT,
1095*17269568STaniya Das 	.clkr = {
1096*17269568STaniya Das 		.enable_reg = 0xb030,
1097*17269568STaniya Das 		.enable_mask = BIT(0),
1098*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
1099*17269568STaniya Das 			.name = "gcc_disp_xo_clk",
1100*17269568STaniya Das 			.ops = &clk_branch2_ops,
1101*17269568STaniya Das 		},
1102*17269568STaniya Das 	},
1103*17269568STaniya Das };
1104*17269568STaniya Das 
1105*17269568STaniya Das static struct clk_branch gcc_gp1_clk = {
1106*17269568STaniya Das 	.halt_reg = 0x64000,
1107*17269568STaniya Das 	.halt_check = BRANCH_HALT,
1108*17269568STaniya Das 	.clkr = {
1109*17269568STaniya Das 		.enable_reg = 0x64000,
1110*17269568STaniya Das 		.enable_mask = BIT(0),
1111*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
1112*17269568STaniya Das 			.name = "gcc_gp1_clk",
1113*17269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
1114*17269568STaniya Das 				.hw = &gcc_gp1_clk_src.clkr.hw,
1115*17269568STaniya Das 			},
1116*17269568STaniya Das 			.num_parents = 1,
1117*17269568STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1118*17269568STaniya Das 			.ops = &clk_branch2_ops,
1119*17269568STaniya Das 		},
1120*17269568STaniya Das 	},
1121*17269568STaniya Das };
1122*17269568STaniya Das 
1123*17269568STaniya Das static struct clk_branch gcc_gp2_clk = {
1124*17269568STaniya Das 	.halt_reg = 0x65000,
1125*17269568STaniya Das 	.halt_check = BRANCH_HALT,
1126*17269568STaniya Das 	.clkr = {
1127*17269568STaniya Das 		.enable_reg = 0x65000,
1128*17269568STaniya Das 		.enable_mask = BIT(0),
1129*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
1130*17269568STaniya Das 			.name = "gcc_gp2_clk",
1131*17269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
1132*17269568STaniya Das 				.hw = &gcc_gp2_clk_src.clkr.hw,
1133*17269568STaniya Das 			},
1134*17269568STaniya Das 			.num_parents = 1,
1135*17269568STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1136*17269568STaniya Das 			.ops = &clk_branch2_ops,
1137*17269568STaniya Das 		},
1138*17269568STaniya Das 	},
1139*17269568STaniya Das };
1140*17269568STaniya Das 
1141*17269568STaniya Das static struct clk_branch gcc_gp3_clk = {
1142*17269568STaniya Das 	.halt_reg = 0x66000,
1143*17269568STaniya Das 	.halt_check = BRANCH_HALT,
1144*17269568STaniya Das 	.clkr = {
1145*17269568STaniya Das 		.enable_reg = 0x66000,
1146*17269568STaniya Das 		.enable_mask = BIT(0),
1147*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
1148*17269568STaniya Das 			.name = "gcc_gp3_clk",
1149*17269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
1150*17269568STaniya Das 				.hw = &gcc_gp3_clk_src.clkr.hw,
1151*17269568STaniya Das 			},
1152*17269568STaniya Das 			.num_parents = 1,
1153*17269568STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1154*17269568STaniya Das 			.ops = &clk_branch2_ops,
1155*17269568STaniya Das 		},
1156*17269568STaniya Das 	},
1157*17269568STaniya Das };
1158*17269568STaniya Das 
1159*17269568STaniya Das static struct clk_branch gcc_gpu_gpll0_clk_src = {
1160*17269568STaniya Das 	.halt_check = BRANCH_HALT_DELAY,
1161*17269568STaniya Das 	.clkr = {
1162*17269568STaniya Das 		.enable_reg = 0x52000,
1163*17269568STaniya Das 		.enable_mask = BIT(15),
1164*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
1165*17269568STaniya Das 			.name = "gcc_gpu_gpll0_clk_src",
1166*17269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
1167*17269568STaniya Das 				.hw = &gpll0.clkr.hw,
1168*17269568STaniya Das 			},
1169*17269568STaniya Das 			.num_parents = 1,
1170*17269568STaniya Das 			.ops = &clk_branch2_ops,
1171*17269568STaniya Das 		},
1172*17269568STaniya Das 	},
1173*17269568STaniya Das };
1174*17269568STaniya Das 
1175*17269568STaniya Das static struct clk_branch gcc_gpu_gpll0_div_clk_src = {
1176*17269568STaniya Das 	.halt_check = BRANCH_HALT_DELAY,
1177*17269568STaniya Das 	.clkr = {
1178*17269568STaniya Das 		.enable_reg = 0x52000,
1179*17269568STaniya Das 		.enable_mask = BIT(16),
1180*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
1181*17269568STaniya Das 			.name = "gcc_gpu_gpll0_div_clk_src",
1182*17269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
1183*17269568STaniya Das 				.hw = &gcc_pll0_main_div_cdiv.hw,
1184*17269568STaniya Das 			},
1185*17269568STaniya Das 			.num_parents = 1,
1186*17269568STaniya Das 			.ops = &clk_branch2_ops,
1187*17269568STaniya Das 		},
1188*17269568STaniya Das 	},
1189*17269568STaniya Das };
1190*17269568STaniya Das 
1191*17269568STaniya Das static struct clk_branch gcc_gpu_memnoc_gfx_clk = {
1192*17269568STaniya Das 	.halt_reg = 0x7100c,
1193*17269568STaniya Das 	.halt_check = BRANCH_VOTED,
1194*17269568STaniya Das 	.clkr = {
1195*17269568STaniya Das 		.enable_reg = 0x7100c,
1196*17269568STaniya Das 		.enable_mask = BIT(0),
1197*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
1198*17269568STaniya Das 			.name = "gcc_gpu_memnoc_gfx_clk",
1199*17269568STaniya Das 			.ops = &clk_branch2_ops,
1200*17269568STaniya Das 		},
1201*17269568STaniya Das 	},
1202*17269568STaniya Das };
1203*17269568STaniya Das 
1204*17269568STaniya Das static struct clk_branch gcc_gpu_snoc_dvm_gfx_clk = {
1205*17269568STaniya Das 	.halt_reg = 0x71018,
1206*17269568STaniya Das 	.halt_check = BRANCH_HALT,
1207*17269568STaniya Das 	.clkr = {
1208*17269568STaniya Das 		.enable_reg = 0x71018,
1209*17269568STaniya Das 		.enable_mask = BIT(0),
1210*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
1211*17269568STaniya Das 			.name = "gcc_gpu_snoc_dvm_gfx_clk",
1212*17269568STaniya Das 			.ops = &clk_branch2_ops,
1213*17269568STaniya Das 		},
1214*17269568STaniya Das 	},
1215*17269568STaniya Das };
1216*17269568STaniya Das 
1217*17269568STaniya Das static struct clk_branch gcc_npu_axi_clk = {
1218*17269568STaniya Das 	.halt_reg = 0x4d008,
1219*17269568STaniya Das 	.halt_check = BRANCH_HALT,
1220*17269568STaniya Das 	.clkr = {
1221*17269568STaniya Das 		.enable_reg = 0x4d008,
1222*17269568STaniya Das 		.enable_mask = BIT(0),
1223*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
1224*17269568STaniya Das 			.name = "gcc_npu_axi_clk",
1225*17269568STaniya Das 			.ops = &clk_branch2_ops,
1226*17269568STaniya Das 		},
1227*17269568STaniya Das 	},
1228*17269568STaniya Das };
1229*17269568STaniya Das 
1230*17269568STaniya Das static struct clk_branch gcc_npu_bwmon_axi_clk = {
1231*17269568STaniya Das 	.halt_reg = 0x73008,
1232*17269568STaniya Das 	.halt_check = BRANCH_HALT,
1233*17269568STaniya Das 	.clkr = {
1234*17269568STaniya Das 		.enable_reg = 0x73008,
1235*17269568STaniya Das 		.enable_mask = BIT(0),
1236*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
1237*17269568STaniya Das 			.name = "gcc_npu_bwmon_axi_clk",
1238*17269568STaniya Das 			.ops = &clk_branch2_ops,
1239*17269568STaniya Das 		},
1240*17269568STaniya Das 	},
1241*17269568STaniya Das };
1242*17269568STaniya Das 
1243*17269568STaniya Das static struct clk_branch gcc_npu_bwmon_dma_cfg_ahb_clk = {
1244*17269568STaniya Das 	.halt_reg = 0x73018,
1245*17269568STaniya Das 	.halt_check = BRANCH_HALT,
1246*17269568STaniya Das 	.clkr = {
1247*17269568STaniya Das 		.enable_reg = 0x73018,
1248*17269568STaniya Das 		.enable_mask = BIT(0),
1249*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
1250*17269568STaniya Das 			.name = "gcc_npu_bwmon_dma_cfg_ahb_clk",
1251*17269568STaniya Das 			.ops = &clk_branch2_ops,
1252*17269568STaniya Das 		},
1253*17269568STaniya Das 	},
1254*17269568STaniya Das };
1255*17269568STaniya Das 
1256*17269568STaniya Das static struct clk_branch gcc_npu_bwmon_dsp_cfg_ahb_clk = {
1257*17269568STaniya Das 	.halt_reg = 0x7301c,
1258*17269568STaniya Das 	.halt_check = BRANCH_HALT,
1259*17269568STaniya Das 	.clkr = {
1260*17269568STaniya Das 		.enable_reg = 0x7301c,
1261*17269568STaniya Das 		.enable_mask = BIT(0),
1262*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
1263*17269568STaniya Das 			.name = "gcc_npu_bwmon_dsp_cfg_ahb_clk",
1264*17269568STaniya Das 			.ops = &clk_branch2_ops,
1265*17269568STaniya Das 		},
1266*17269568STaniya Das 	},
1267*17269568STaniya Das };
1268*17269568STaniya Das 
1269*17269568STaniya Das static struct clk_branch gcc_npu_cfg_ahb_clk = {
1270*17269568STaniya Das 	.halt_reg = 0x4d004,
1271*17269568STaniya Das 	.halt_check = BRANCH_HALT,
1272*17269568STaniya Das 	.hwcg_reg = 0x4d004,
1273*17269568STaniya Das 	.hwcg_bit = 1,
1274*17269568STaniya Das 	.clkr = {
1275*17269568STaniya Das 		.enable_reg = 0x4d004,
1276*17269568STaniya Das 		.enable_mask = BIT(0),
1277*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
1278*17269568STaniya Das 			.name = "gcc_npu_cfg_ahb_clk",
1279*17269568STaniya Das 			.ops = &clk_branch2_ops,
1280*17269568STaniya Das 		},
1281*17269568STaniya Das 	},
1282*17269568STaniya Das };
1283*17269568STaniya Das 
1284*17269568STaniya Das static struct clk_branch gcc_npu_dma_clk = {
1285*17269568STaniya Das 	.halt_reg = 0x4d1a0,
1286*17269568STaniya Das 	.halt_check = BRANCH_HALT,
1287*17269568STaniya Das 	.hwcg_reg = 0x4d1a0,
1288*17269568STaniya Das 	.hwcg_bit = 1,
1289*17269568STaniya Das 	.clkr = {
1290*17269568STaniya Das 		.enable_reg = 0x4d1a0,
1291*17269568STaniya Das 		.enable_mask = BIT(0),
1292*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
1293*17269568STaniya Das 			.name = "gcc_npu_dma_clk",
1294*17269568STaniya Das 			.ops = &clk_branch2_ops,
1295*17269568STaniya Das 		},
1296*17269568STaniya Das 	},
1297*17269568STaniya Das };
1298*17269568STaniya Das 
1299*17269568STaniya Das static struct clk_branch gcc_npu_gpll0_clk_src = {
1300*17269568STaniya Das 	.halt_check = BRANCH_HALT_DELAY,
1301*17269568STaniya Das 	.clkr = {
1302*17269568STaniya Das 		.enable_reg = 0x52000,
1303*17269568STaniya Das 		.enable_mask = BIT(25),
1304*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
1305*17269568STaniya Das 			.name = "gcc_npu_gpll0_clk_src",
1306*17269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
1307*17269568STaniya Das 				.hw = &gpll0.clkr.hw,
1308*17269568STaniya Das 			},
1309*17269568STaniya Das 			.num_parents = 1,
1310*17269568STaniya Das 			.ops = &clk_branch2_ops,
1311*17269568STaniya Das 		},
1312*17269568STaniya Das 	},
1313*17269568STaniya Das };
1314*17269568STaniya Das 
1315*17269568STaniya Das static struct clk_branch gcc_npu_gpll0_div_clk_src = {
1316*17269568STaniya Das 	.halt_check = BRANCH_HALT_DELAY,
1317*17269568STaniya Das 	.clkr = {
1318*17269568STaniya Das 		.enable_reg = 0x52000,
1319*17269568STaniya Das 		.enable_mask = BIT(26),
1320*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
1321*17269568STaniya Das 			.name = "gcc_npu_gpll0_div_clk_src",
1322*17269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
1323*17269568STaniya Das 				.hw = &gcc_pll0_main_div_cdiv.hw,
1324*17269568STaniya Das 			},
1325*17269568STaniya Das 			.num_parents = 1,
1326*17269568STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1327*17269568STaniya Das 			.ops = &clk_branch2_ops,
1328*17269568STaniya Das 		},
1329*17269568STaniya Das 	},
1330*17269568STaniya Das };
1331*17269568STaniya Das 
1332*17269568STaniya Das static struct clk_branch gcc_pdm2_clk = {
1333*17269568STaniya Das 	.halt_reg = 0x3300c,
1334*17269568STaniya Das 	.halt_check = BRANCH_HALT,
1335*17269568STaniya Das 	.clkr = {
1336*17269568STaniya Das 		.enable_reg = 0x3300c,
1337*17269568STaniya Das 		.enable_mask = BIT(0),
1338*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
1339*17269568STaniya Das 			.name = "gcc_pdm2_clk",
1340*17269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
1341*17269568STaniya Das 				.hw = &gcc_pdm2_clk_src.clkr.hw,
1342*17269568STaniya Das 			},
1343*17269568STaniya Das 			.num_parents = 1,
1344*17269568STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1345*17269568STaniya Das 			.ops = &clk_branch2_ops,
1346*17269568STaniya Das 		},
1347*17269568STaniya Das 	},
1348*17269568STaniya Das };
1349*17269568STaniya Das 
1350*17269568STaniya Das static struct clk_branch gcc_pdm_ahb_clk = {
1351*17269568STaniya Das 	.halt_reg = 0x33004,
1352*17269568STaniya Das 	.halt_check = BRANCH_HALT,
1353*17269568STaniya Das 	.hwcg_reg = 0x33004,
1354*17269568STaniya Das 	.hwcg_bit = 1,
1355*17269568STaniya Das 	.clkr = {
1356*17269568STaniya Das 		.enable_reg = 0x33004,
1357*17269568STaniya Das 		.enable_mask = BIT(0),
1358*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
1359*17269568STaniya Das 			.name = "gcc_pdm_ahb_clk",
1360*17269568STaniya Das 			.ops = &clk_branch2_ops,
1361*17269568STaniya Das 		},
1362*17269568STaniya Das 	},
1363*17269568STaniya Das };
1364*17269568STaniya Das 
1365*17269568STaniya Das static struct clk_branch gcc_pdm_xo4_clk = {
1366*17269568STaniya Das 	.halt_reg = 0x33008,
1367*17269568STaniya Das 	.halt_check = BRANCH_HALT,
1368*17269568STaniya Das 	.clkr = {
1369*17269568STaniya Das 		.enable_reg = 0x33008,
1370*17269568STaniya Das 		.enable_mask = BIT(0),
1371*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
1372*17269568STaniya Das 			.name = "gcc_pdm_xo4_clk",
1373*17269568STaniya Das 			.ops = &clk_branch2_ops,
1374*17269568STaniya Das 		},
1375*17269568STaniya Das 	},
1376*17269568STaniya Das };
1377*17269568STaniya Das 
1378*17269568STaniya Das static struct clk_branch gcc_prng_ahb_clk = {
1379*17269568STaniya Das 	.halt_reg = 0x34004,
1380*17269568STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1381*17269568STaniya Das 	.hwcg_reg = 0x34004,
1382*17269568STaniya Das 	.hwcg_bit = 1,
1383*17269568STaniya Das 	.clkr = {
1384*17269568STaniya Das 		.enable_reg = 0x52000,
1385*17269568STaniya Das 		.enable_mask = BIT(13),
1386*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
1387*17269568STaniya Das 			.name = "gcc_prng_ahb_clk",
1388*17269568STaniya Das 			.ops = &clk_branch2_ops,
1389*17269568STaniya Das 		},
1390*17269568STaniya Das 	},
1391*17269568STaniya Das };
1392*17269568STaniya Das 
1393*17269568STaniya Das static struct clk_branch gcc_qspi_cnoc_periph_ahb_clk = {
1394*17269568STaniya Das 	.halt_reg = 0x4b004,
1395*17269568STaniya Das 	.halt_check = BRANCH_HALT,
1396*17269568STaniya Das 	.hwcg_reg = 0x4b004,
1397*17269568STaniya Das 	.hwcg_bit = 1,
1398*17269568STaniya Das 	.clkr = {
1399*17269568STaniya Das 		.enable_reg = 0x4b004,
1400*17269568STaniya Das 		.enable_mask = BIT(0),
1401*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
1402*17269568STaniya Das 			.name = "gcc_qspi_cnoc_periph_ahb_clk",
1403*17269568STaniya Das 			.ops = &clk_branch2_ops,
1404*17269568STaniya Das 		},
1405*17269568STaniya Das 	},
1406*17269568STaniya Das };
1407*17269568STaniya Das 
1408*17269568STaniya Das static struct clk_branch gcc_qspi_core_clk = {
1409*17269568STaniya Das 	.halt_reg = 0x4b008,
1410*17269568STaniya Das 	.halt_check = BRANCH_HALT,
1411*17269568STaniya Das 	.clkr = {
1412*17269568STaniya Das 		.enable_reg = 0x4b008,
1413*17269568STaniya Das 		.enable_mask = BIT(0),
1414*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
1415*17269568STaniya Das 			.name = "gcc_qspi_core_clk",
1416*17269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
1417*17269568STaniya Das 				.hw = &gcc_qspi_core_clk_src.clkr.hw,
1418*17269568STaniya Das 			},
1419*17269568STaniya Das 			.num_parents = 1,
1420*17269568STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1421*17269568STaniya Das 			.ops = &clk_branch2_ops,
1422*17269568STaniya Das 		},
1423*17269568STaniya Das 	},
1424*17269568STaniya Das };
1425*17269568STaniya Das 
1426*17269568STaniya Das static struct clk_branch gcc_qupv3_wrap0_core_2x_clk = {
1427*17269568STaniya Das 	.halt_reg = 0x17014,
1428*17269568STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1429*17269568STaniya Das 	.clkr = {
1430*17269568STaniya Das 		.enable_reg = 0x52008,
1431*17269568STaniya Das 		.enable_mask = BIT(9),
1432*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
1433*17269568STaniya Das 			.name = "gcc_qupv3_wrap0_core_2x_clk",
1434*17269568STaniya Das 			.ops = &clk_branch2_ops,
1435*17269568STaniya Das 		},
1436*17269568STaniya Das 	},
1437*17269568STaniya Das };
1438*17269568STaniya Das 
1439*17269568STaniya Das static struct clk_branch gcc_qupv3_wrap0_core_clk = {
1440*17269568STaniya Das 	.halt_reg = 0x1700c,
1441*17269568STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1442*17269568STaniya Das 	.clkr = {
1443*17269568STaniya Das 		.enable_reg = 0x52008,
1444*17269568STaniya Das 		.enable_mask = BIT(8),
1445*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
1446*17269568STaniya Das 			.name = "gcc_qupv3_wrap0_core_clk",
1447*17269568STaniya Das 			.ops = &clk_branch2_ops,
1448*17269568STaniya Das 		},
1449*17269568STaniya Das 	},
1450*17269568STaniya Das };
1451*17269568STaniya Das 
1452*17269568STaniya Das static struct clk_branch gcc_qupv3_wrap0_s0_clk = {
1453*17269568STaniya Das 	.halt_reg = 0x17030,
1454*17269568STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1455*17269568STaniya Das 	.clkr = {
1456*17269568STaniya Das 		.enable_reg = 0x52008,
1457*17269568STaniya Das 		.enable_mask = BIT(10),
1458*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
1459*17269568STaniya Das 			.name = "gcc_qupv3_wrap0_s0_clk",
1460*17269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
1461*17269568STaniya Das 				.hw = &gcc_qupv3_wrap0_s0_clk_src.clkr.hw,
1462*17269568STaniya Das 			},
1463*17269568STaniya Das 			.num_parents = 1,
1464*17269568STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1465*17269568STaniya Das 			.ops = &clk_branch2_ops,
1466*17269568STaniya Das 		},
1467*17269568STaniya Das 	},
1468*17269568STaniya Das };
1469*17269568STaniya Das 
1470*17269568STaniya Das static struct clk_branch gcc_qupv3_wrap0_s1_clk = {
1471*17269568STaniya Das 	.halt_reg = 0x17160,
1472*17269568STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1473*17269568STaniya Das 	.clkr = {
1474*17269568STaniya Das 		.enable_reg = 0x52008,
1475*17269568STaniya Das 		.enable_mask = BIT(11),
1476*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
1477*17269568STaniya Das 			.name = "gcc_qupv3_wrap0_s1_clk",
1478*17269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
1479*17269568STaniya Das 				.hw = &gcc_qupv3_wrap0_s1_clk_src.clkr.hw,
1480*17269568STaniya Das 			},
1481*17269568STaniya Das 			.num_parents = 1,
1482*17269568STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1483*17269568STaniya Das 			.ops = &clk_branch2_ops,
1484*17269568STaniya Das 		},
1485*17269568STaniya Das 	},
1486*17269568STaniya Das };
1487*17269568STaniya Das 
1488*17269568STaniya Das static struct clk_branch gcc_qupv3_wrap0_s2_clk = {
1489*17269568STaniya Das 	.halt_reg = 0x17290,
1490*17269568STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1491*17269568STaniya Das 	.clkr = {
1492*17269568STaniya Das 		.enable_reg = 0x52008,
1493*17269568STaniya Das 		.enable_mask = BIT(12),
1494*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
1495*17269568STaniya Das 			.name = "gcc_qupv3_wrap0_s2_clk",
1496*17269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
1497*17269568STaniya Das 				.hw = &gcc_qupv3_wrap0_s2_clk_src.clkr.hw,
1498*17269568STaniya Das 			},
1499*17269568STaniya Das 			.num_parents = 1,
1500*17269568STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1501*17269568STaniya Das 			.ops = &clk_branch2_ops,
1502*17269568STaniya Das 		},
1503*17269568STaniya Das 	},
1504*17269568STaniya Das };
1505*17269568STaniya Das 
1506*17269568STaniya Das static struct clk_branch gcc_qupv3_wrap0_s3_clk = {
1507*17269568STaniya Das 	.halt_reg = 0x173c0,
1508*17269568STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1509*17269568STaniya Das 	.clkr = {
1510*17269568STaniya Das 		.enable_reg = 0x52008,
1511*17269568STaniya Das 		.enable_mask = BIT(13),
1512*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
1513*17269568STaniya Das 			.name = "gcc_qupv3_wrap0_s3_clk",
1514*17269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
1515*17269568STaniya Das 				.hw = &gcc_qupv3_wrap0_s3_clk_src.clkr.hw,
1516*17269568STaniya Das 			},
1517*17269568STaniya Das 			.num_parents = 1,
1518*17269568STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1519*17269568STaniya Das 			.ops = &clk_branch2_ops,
1520*17269568STaniya Das 		},
1521*17269568STaniya Das 	},
1522*17269568STaniya Das };
1523*17269568STaniya Das 
1524*17269568STaniya Das static struct clk_branch gcc_qupv3_wrap0_s4_clk = {
1525*17269568STaniya Das 	.halt_reg = 0x174f0,
1526*17269568STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1527*17269568STaniya Das 	.clkr = {
1528*17269568STaniya Das 		.enable_reg = 0x52008,
1529*17269568STaniya Das 		.enable_mask = BIT(14),
1530*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
1531*17269568STaniya Das 			.name = "gcc_qupv3_wrap0_s4_clk",
1532*17269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
1533*17269568STaniya Das 				.hw = &gcc_qupv3_wrap0_s4_clk_src.clkr.hw,
1534*17269568STaniya Das 			},
1535*17269568STaniya Das 			.num_parents = 1,
1536*17269568STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1537*17269568STaniya Das 			.ops = &clk_branch2_ops,
1538*17269568STaniya Das 		},
1539*17269568STaniya Das 	},
1540*17269568STaniya Das };
1541*17269568STaniya Das 
1542*17269568STaniya Das static struct clk_branch gcc_qupv3_wrap0_s5_clk = {
1543*17269568STaniya Das 	.halt_reg = 0x17620,
1544*17269568STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1545*17269568STaniya Das 	.clkr = {
1546*17269568STaniya Das 		.enable_reg = 0x52008,
1547*17269568STaniya Das 		.enable_mask = BIT(15),
1548*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
1549*17269568STaniya Das 			.name = "gcc_qupv3_wrap0_s5_clk",
1550*17269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
1551*17269568STaniya Das 				.hw = &gcc_qupv3_wrap0_s5_clk_src.clkr.hw,
1552*17269568STaniya Das 			},
1553*17269568STaniya Das 			.num_parents = 1,
1554*17269568STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1555*17269568STaniya Das 			.ops = &clk_branch2_ops,
1556*17269568STaniya Das 		},
1557*17269568STaniya Das 	},
1558*17269568STaniya Das };
1559*17269568STaniya Das 
1560*17269568STaniya Das static struct clk_branch gcc_qupv3_wrap1_core_2x_clk = {
1561*17269568STaniya Das 	.halt_reg = 0x18004,
1562*17269568STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1563*17269568STaniya Das 	.clkr = {
1564*17269568STaniya Das 		.enable_reg = 0x52008,
1565*17269568STaniya Das 		.enable_mask = BIT(18),
1566*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
1567*17269568STaniya Das 			.name = "gcc_qupv3_wrap1_core_2x_clk",
1568*17269568STaniya Das 			.ops = &clk_branch2_ops,
1569*17269568STaniya Das 		},
1570*17269568STaniya Das 	},
1571*17269568STaniya Das };
1572*17269568STaniya Das 
1573*17269568STaniya Das static struct clk_branch gcc_qupv3_wrap1_core_clk = {
1574*17269568STaniya Das 	.halt_reg = 0x18008,
1575*17269568STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1576*17269568STaniya Das 	.clkr = {
1577*17269568STaniya Das 		.enable_reg = 0x52008,
1578*17269568STaniya Das 		.enable_mask = BIT(19),
1579*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
1580*17269568STaniya Das 			.name = "gcc_qupv3_wrap1_core_clk",
1581*17269568STaniya Das 			.ops = &clk_branch2_ops,
1582*17269568STaniya Das 		},
1583*17269568STaniya Das 	},
1584*17269568STaniya Das };
1585*17269568STaniya Das 
1586*17269568STaniya Das static struct clk_branch gcc_qupv3_wrap1_s0_clk = {
1587*17269568STaniya Das 	.halt_reg = 0x18014,
1588*17269568STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1589*17269568STaniya Das 	.clkr = {
1590*17269568STaniya Das 		.enable_reg = 0x52008,
1591*17269568STaniya Das 		.enable_mask = BIT(22),
1592*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
1593*17269568STaniya Das 			.name = "gcc_qupv3_wrap1_s0_clk",
1594*17269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
1595*17269568STaniya Das 				.hw = &gcc_qupv3_wrap1_s0_clk_src.clkr.hw,
1596*17269568STaniya Das 			},
1597*17269568STaniya Das 			.num_parents = 1,
1598*17269568STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1599*17269568STaniya Das 			.ops = &clk_branch2_ops,
1600*17269568STaniya Das 		},
1601*17269568STaniya Das 	},
1602*17269568STaniya Das };
1603*17269568STaniya Das 
1604*17269568STaniya Das static struct clk_branch gcc_qupv3_wrap1_s1_clk = {
1605*17269568STaniya Das 	.halt_reg = 0x18144,
1606*17269568STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1607*17269568STaniya Das 	.clkr = {
1608*17269568STaniya Das 		.enable_reg = 0x52008,
1609*17269568STaniya Das 		.enable_mask = BIT(23),
1610*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
1611*17269568STaniya Das 			.name = "gcc_qupv3_wrap1_s1_clk",
1612*17269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
1613*17269568STaniya Das 				.hw = &gcc_qupv3_wrap1_s1_clk_src.clkr.hw,
1614*17269568STaniya Das 			},
1615*17269568STaniya Das 			.num_parents = 1,
1616*17269568STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1617*17269568STaniya Das 			.ops = &clk_branch2_ops,
1618*17269568STaniya Das 		},
1619*17269568STaniya Das 	},
1620*17269568STaniya Das };
1621*17269568STaniya Das 
1622*17269568STaniya Das static struct clk_branch gcc_qupv3_wrap1_s2_clk = {
1623*17269568STaniya Das 	.halt_reg = 0x18274,
1624*17269568STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1625*17269568STaniya Das 	.clkr = {
1626*17269568STaniya Das 		.enable_reg = 0x52008,
1627*17269568STaniya Das 		.enable_mask = BIT(24),
1628*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
1629*17269568STaniya Das 			.name = "gcc_qupv3_wrap1_s2_clk",
1630*17269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
1631*17269568STaniya Das 				.hw = &gcc_qupv3_wrap1_s2_clk_src.clkr.hw,
1632*17269568STaniya Das 			},
1633*17269568STaniya Das 			.num_parents = 1,
1634*17269568STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1635*17269568STaniya Das 			.ops = &clk_branch2_ops,
1636*17269568STaniya Das 		},
1637*17269568STaniya Das 	},
1638*17269568STaniya Das };
1639*17269568STaniya Das 
1640*17269568STaniya Das static struct clk_branch gcc_qupv3_wrap1_s3_clk = {
1641*17269568STaniya Das 	.halt_reg = 0x183a4,
1642*17269568STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1643*17269568STaniya Das 	.clkr = {
1644*17269568STaniya Das 		.enable_reg = 0x52008,
1645*17269568STaniya Das 		.enable_mask = BIT(25),
1646*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
1647*17269568STaniya Das 			.name = "gcc_qupv3_wrap1_s3_clk",
1648*17269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
1649*17269568STaniya Das 				.hw = &gcc_qupv3_wrap1_s3_clk_src.clkr.hw,
1650*17269568STaniya Das 			},
1651*17269568STaniya Das 			.num_parents = 1,
1652*17269568STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1653*17269568STaniya Das 			.ops = &clk_branch2_ops,
1654*17269568STaniya Das 		},
1655*17269568STaniya Das 	},
1656*17269568STaniya Das };
1657*17269568STaniya Das 
1658*17269568STaniya Das static struct clk_branch gcc_qupv3_wrap1_s4_clk = {
1659*17269568STaniya Das 	.halt_reg = 0x184d4,
1660*17269568STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1661*17269568STaniya Das 	.clkr = {
1662*17269568STaniya Das 		.enable_reg = 0x52008,
1663*17269568STaniya Das 		.enable_mask = BIT(26),
1664*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
1665*17269568STaniya Das 			.name = "gcc_qupv3_wrap1_s4_clk",
1666*17269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
1667*17269568STaniya Das 				.hw = &gcc_qupv3_wrap1_s4_clk_src.clkr.hw,
1668*17269568STaniya Das 			},
1669*17269568STaniya Das 			.num_parents = 1,
1670*17269568STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1671*17269568STaniya Das 			.ops = &clk_branch2_ops,
1672*17269568STaniya Das 		},
1673*17269568STaniya Das 	},
1674*17269568STaniya Das };
1675*17269568STaniya Das 
1676*17269568STaniya Das static struct clk_branch gcc_qupv3_wrap1_s5_clk = {
1677*17269568STaniya Das 	.halt_reg = 0x18604,
1678*17269568STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1679*17269568STaniya Das 	.clkr = {
1680*17269568STaniya Das 		.enable_reg = 0x52008,
1681*17269568STaniya Das 		.enable_mask = BIT(27),
1682*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
1683*17269568STaniya Das 			.name = "gcc_qupv3_wrap1_s5_clk",
1684*17269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
1685*17269568STaniya Das 				.hw = &gcc_qupv3_wrap1_s5_clk_src.clkr.hw,
1686*17269568STaniya Das 			},
1687*17269568STaniya Das 			.num_parents = 1,
1688*17269568STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1689*17269568STaniya Das 			.ops = &clk_branch2_ops,
1690*17269568STaniya Das 		},
1691*17269568STaniya Das 	},
1692*17269568STaniya Das };
1693*17269568STaniya Das 
1694*17269568STaniya Das static struct clk_branch gcc_qupv3_wrap_0_m_ahb_clk = {
1695*17269568STaniya Das 	.halt_reg = 0x17004,
1696*17269568STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1697*17269568STaniya Das 	.clkr = {
1698*17269568STaniya Das 		.enable_reg = 0x52008,
1699*17269568STaniya Das 		.enable_mask = BIT(6),
1700*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
1701*17269568STaniya Das 			.name = "gcc_qupv3_wrap_0_m_ahb_clk",
1702*17269568STaniya Das 			.ops = &clk_branch2_ops,
1703*17269568STaniya Das 		},
1704*17269568STaniya Das 	},
1705*17269568STaniya Das };
1706*17269568STaniya Das 
1707*17269568STaniya Das static struct clk_branch gcc_qupv3_wrap_0_s_ahb_clk = {
1708*17269568STaniya Das 	.halt_reg = 0x17008,
1709*17269568STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1710*17269568STaniya Das 	.hwcg_reg = 0x17008,
1711*17269568STaniya Das 	.hwcg_bit = 1,
1712*17269568STaniya Das 	.clkr = {
1713*17269568STaniya Das 		.enable_reg = 0x52008,
1714*17269568STaniya Das 		.enable_mask = BIT(7),
1715*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
1716*17269568STaniya Das 			.name = "gcc_qupv3_wrap_0_s_ahb_clk",
1717*17269568STaniya Das 			.ops = &clk_branch2_ops,
1718*17269568STaniya Das 		},
1719*17269568STaniya Das 	},
1720*17269568STaniya Das };
1721*17269568STaniya Das 
1722*17269568STaniya Das static struct clk_branch gcc_qupv3_wrap_1_m_ahb_clk = {
1723*17269568STaniya Das 	.halt_reg = 0x1800c,
1724*17269568STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1725*17269568STaniya Das 	.clkr = {
1726*17269568STaniya Das 		.enable_reg = 0x52008,
1727*17269568STaniya Das 		.enable_mask = BIT(20),
1728*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
1729*17269568STaniya Das 			.name = "gcc_qupv3_wrap_1_m_ahb_clk",
1730*17269568STaniya Das 			.ops = &clk_branch2_ops,
1731*17269568STaniya Das 		},
1732*17269568STaniya Das 	},
1733*17269568STaniya Das };
1734*17269568STaniya Das 
1735*17269568STaniya Das static struct clk_branch gcc_qupv3_wrap_1_s_ahb_clk = {
1736*17269568STaniya Das 	.halt_reg = 0x18010,
1737*17269568STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1738*17269568STaniya Das 	.hwcg_reg = 0x18010,
1739*17269568STaniya Das 	.hwcg_bit = 1,
1740*17269568STaniya Das 	.clkr = {
1741*17269568STaniya Das 		.enable_reg = 0x52008,
1742*17269568STaniya Das 		.enable_mask = BIT(21),
1743*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
1744*17269568STaniya Das 			.name = "gcc_qupv3_wrap_1_s_ahb_clk",
1745*17269568STaniya Das 			.ops = &clk_branch2_ops,
1746*17269568STaniya Das 		},
1747*17269568STaniya Das 	},
1748*17269568STaniya Das };
1749*17269568STaniya Das 
1750*17269568STaniya Das static struct clk_branch gcc_sdcc1_ahb_clk = {
1751*17269568STaniya Das 	.halt_reg = 0x12008,
1752*17269568STaniya Das 	.halt_check = BRANCH_HALT,
1753*17269568STaniya Das 	.clkr = {
1754*17269568STaniya Das 		.enable_reg = 0x12008,
1755*17269568STaniya Das 		.enable_mask = BIT(0),
1756*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
1757*17269568STaniya Das 			.name = "gcc_sdcc1_ahb_clk",
1758*17269568STaniya Das 			.ops = &clk_branch2_ops,
1759*17269568STaniya Das 		},
1760*17269568STaniya Das 	},
1761*17269568STaniya Das };
1762*17269568STaniya Das 
1763*17269568STaniya Das static struct clk_branch gcc_sdcc1_apps_clk = {
1764*17269568STaniya Das 	.halt_reg = 0x1200c,
1765*17269568STaniya Das 	.halt_check = BRANCH_HALT,
1766*17269568STaniya Das 	.clkr = {
1767*17269568STaniya Das 		.enable_reg = 0x1200c,
1768*17269568STaniya Das 		.enable_mask = BIT(0),
1769*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
1770*17269568STaniya Das 			.name = "gcc_sdcc1_apps_clk",
1771*17269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
1772*17269568STaniya Das 				.hw = &gcc_sdcc1_apps_clk_src.clkr.hw,
1773*17269568STaniya Das 			},
1774*17269568STaniya Das 			.num_parents = 1,
1775*17269568STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1776*17269568STaniya Das 			.ops = &clk_branch2_ops,
1777*17269568STaniya Das 		},
1778*17269568STaniya Das 	},
1779*17269568STaniya Das };
1780*17269568STaniya Das 
1781*17269568STaniya Das static struct clk_branch gcc_sdcc1_ice_core_clk = {
1782*17269568STaniya Das 	.halt_reg = 0x12040,
1783*17269568STaniya Das 	.halt_check = BRANCH_HALT,
1784*17269568STaniya Das 	.clkr = {
1785*17269568STaniya Das 		.enable_reg = 0x12040,
1786*17269568STaniya Das 		.enable_mask = BIT(0),
1787*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
1788*17269568STaniya Das 			.name = "gcc_sdcc1_ice_core_clk",
1789*17269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
1790*17269568STaniya Das 				.hw = &gcc_sdcc1_ice_core_clk_src.clkr.hw,
1791*17269568STaniya Das 			},
1792*17269568STaniya Das 			.num_parents = 1,
1793*17269568STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1794*17269568STaniya Das 			.ops = &clk_branch2_ops,
1795*17269568STaniya Das 		},
1796*17269568STaniya Das 	},
1797*17269568STaniya Das };
1798*17269568STaniya Das 
1799*17269568STaniya Das static struct clk_branch gcc_sdcc2_ahb_clk = {
1800*17269568STaniya Das 	.halt_reg = 0x14008,
1801*17269568STaniya Das 	.halt_check = BRANCH_HALT,
1802*17269568STaniya Das 	.clkr = {
1803*17269568STaniya Das 		.enable_reg = 0x14008,
1804*17269568STaniya Das 		.enable_mask = BIT(0),
1805*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
1806*17269568STaniya Das 			.name = "gcc_sdcc2_ahb_clk",
1807*17269568STaniya Das 			.ops = &clk_branch2_ops,
1808*17269568STaniya Das 		},
1809*17269568STaniya Das 	},
1810*17269568STaniya Das };
1811*17269568STaniya Das 
1812*17269568STaniya Das static struct clk_branch gcc_sdcc2_apps_clk = {
1813*17269568STaniya Das 	.halt_reg = 0x14004,
1814*17269568STaniya Das 	.halt_check = BRANCH_HALT,
1815*17269568STaniya Das 	.clkr = {
1816*17269568STaniya Das 		.enable_reg = 0x14004,
1817*17269568STaniya Das 		.enable_mask = BIT(0),
1818*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
1819*17269568STaniya Das 			.name = "gcc_sdcc2_apps_clk",
1820*17269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
1821*17269568STaniya Das 				.hw = &gcc_sdcc2_apps_clk_src.clkr.hw,
1822*17269568STaniya Das 			},
1823*17269568STaniya Das 			.num_parents = 1,
1824*17269568STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1825*17269568STaniya Das 			.ops = &clk_branch2_ops,
1826*17269568STaniya Das 		},
1827*17269568STaniya Das 	},
1828*17269568STaniya Das };
1829*17269568STaniya Das 
1830*17269568STaniya Das /* For CPUSS functionality the SYS NOC clock needs to be left enabled */
1831*17269568STaniya Das static struct clk_branch gcc_sys_noc_cpuss_ahb_clk = {
1832*17269568STaniya Das 	.halt_reg = 0x4144,
1833*17269568STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1834*17269568STaniya Das 	.clkr = {
1835*17269568STaniya Das 		.enable_reg = 0x52000,
1836*17269568STaniya Das 		.enable_mask = BIT(0),
1837*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
1838*17269568STaniya Das 			.name = "gcc_sys_noc_cpuss_ahb_clk",
1839*17269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
1840*17269568STaniya Das 				.hw = &gcc_cpuss_ahb_clk_src.clkr.hw,
1841*17269568STaniya Das 			},
1842*17269568STaniya Das 			.num_parents = 1,
1843*17269568STaniya Das 			.flags = CLK_IS_CRITICAL | CLK_SET_RATE_PARENT,
1844*17269568STaniya Das 			.ops = &clk_branch2_ops,
1845*17269568STaniya Das 		},
1846*17269568STaniya Das 	},
1847*17269568STaniya Das };
1848*17269568STaniya Das 
1849*17269568STaniya Das static struct clk_branch gcc_ufs_mem_clkref_clk = {
1850*17269568STaniya Das 	.halt_reg = 0x8c000,
1851*17269568STaniya Das 	.halt_check = BRANCH_HALT,
1852*17269568STaniya Das 	.clkr = {
1853*17269568STaniya Das 		.enable_reg = 0x8c000,
1854*17269568STaniya Das 		.enable_mask = BIT(0),
1855*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
1856*17269568STaniya Das 			.name = "gcc_ufs_mem_clkref_clk",
1857*17269568STaniya Das 			.ops = &clk_branch2_ops,
1858*17269568STaniya Das 		},
1859*17269568STaniya Das 	},
1860*17269568STaniya Das };
1861*17269568STaniya Das 
1862*17269568STaniya Das static struct clk_branch gcc_ufs_phy_ahb_clk = {
1863*17269568STaniya Das 	.halt_reg = 0x77014,
1864*17269568STaniya Das 	.halt_check = BRANCH_HALT,
1865*17269568STaniya Das 	.hwcg_reg = 0x77014,
1866*17269568STaniya Das 	.hwcg_bit = 1,
1867*17269568STaniya Das 	.clkr = {
1868*17269568STaniya Das 		.enable_reg = 0x77014,
1869*17269568STaniya Das 		.enable_mask = BIT(0),
1870*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
1871*17269568STaniya Das 			.name = "gcc_ufs_phy_ahb_clk",
1872*17269568STaniya Das 			.ops = &clk_branch2_ops,
1873*17269568STaniya Das 		},
1874*17269568STaniya Das 	},
1875*17269568STaniya Das };
1876*17269568STaniya Das 
1877*17269568STaniya Das static struct clk_branch gcc_ufs_phy_axi_clk = {
1878*17269568STaniya Das 	.halt_reg = 0x77038,
1879*17269568STaniya Das 	.halt_check = BRANCH_HALT,
1880*17269568STaniya Das 	.hwcg_reg = 0x77038,
1881*17269568STaniya Das 	.hwcg_bit = 1,
1882*17269568STaniya Das 	.clkr = {
1883*17269568STaniya Das 		.enable_reg = 0x77038,
1884*17269568STaniya Das 		.enable_mask = BIT(0),
1885*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
1886*17269568STaniya Das 			.name = "gcc_ufs_phy_axi_clk",
1887*17269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
1888*17269568STaniya Das 				.hw = &gcc_ufs_phy_axi_clk_src.clkr.hw,
1889*17269568STaniya Das 			},
1890*17269568STaniya Das 			.num_parents = 1,
1891*17269568STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1892*17269568STaniya Das 			.ops = &clk_branch2_ops,
1893*17269568STaniya Das 		},
1894*17269568STaniya Das 	},
1895*17269568STaniya Das };
1896*17269568STaniya Das 
1897*17269568STaniya Das static struct clk_branch gcc_ufs_phy_ice_core_clk = {
1898*17269568STaniya Das 	.halt_reg = 0x77090,
1899*17269568STaniya Das 	.halt_check = BRANCH_HALT,
1900*17269568STaniya Das 	.hwcg_reg = 0x77090,
1901*17269568STaniya Das 	.hwcg_bit = 1,
1902*17269568STaniya Das 	.clkr = {
1903*17269568STaniya Das 		.enable_reg = 0x77090,
1904*17269568STaniya Das 		.enable_mask = BIT(0),
1905*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
1906*17269568STaniya Das 			.name = "gcc_ufs_phy_ice_core_clk",
1907*17269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
1908*17269568STaniya Das 				.hw = &gcc_ufs_phy_ice_core_clk_src.clkr.hw,
1909*17269568STaniya Das 			},
1910*17269568STaniya Das 			.num_parents = 1,
1911*17269568STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1912*17269568STaniya Das 			.ops = &clk_branch2_ops,
1913*17269568STaniya Das 		},
1914*17269568STaniya Das 	},
1915*17269568STaniya Das };
1916*17269568STaniya Das 
1917*17269568STaniya Das static struct clk_branch gcc_ufs_phy_phy_aux_clk = {
1918*17269568STaniya Das 	.halt_reg = 0x77094,
1919*17269568STaniya Das 	.halt_check = BRANCH_HALT,
1920*17269568STaniya Das 	.hwcg_reg = 0x77094,
1921*17269568STaniya Das 	.hwcg_bit = 1,
1922*17269568STaniya Das 	.clkr = {
1923*17269568STaniya Das 		.enable_reg = 0x77094,
1924*17269568STaniya Das 		.enable_mask = BIT(0),
1925*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
1926*17269568STaniya Das 			.name = "gcc_ufs_phy_phy_aux_clk",
1927*17269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
1928*17269568STaniya Das 				.hw = &gcc_ufs_phy_phy_aux_clk_src.clkr.hw,
1929*17269568STaniya Das 			},
1930*17269568STaniya Das 			.num_parents = 1,
1931*17269568STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1932*17269568STaniya Das 			.ops = &clk_branch2_ops,
1933*17269568STaniya Das 		},
1934*17269568STaniya Das 	},
1935*17269568STaniya Das };
1936*17269568STaniya Das 
1937*17269568STaniya Das static struct clk_branch gcc_ufs_phy_rx_symbol_0_clk = {
1938*17269568STaniya Das 	.halt_reg = 0x7701c,
1939*17269568STaniya Das 	.halt_check = BRANCH_HALT_SKIP,
1940*17269568STaniya Das 	.clkr = {
1941*17269568STaniya Das 		.enable_reg = 0x7701c,
1942*17269568STaniya Das 		.enable_mask = BIT(0),
1943*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
1944*17269568STaniya Das 			.name = "gcc_ufs_phy_rx_symbol_0_clk",
1945*17269568STaniya Das 			.ops = &clk_branch2_ops,
1946*17269568STaniya Das 		},
1947*17269568STaniya Das 	},
1948*17269568STaniya Das };
1949*17269568STaniya Das 
1950*17269568STaniya Das static struct clk_branch gcc_ufs_phy_tx_symbol_0_clk = {
1951*17269568STaniya Das 	.halt_reg = 0x77018,
1952*17269568STaniya Das 	.halt_check = BRANCH_HALT_SKIP,
1953*17269568STaniya Das 	.clkr = {
1954*17269568STaniya Das 		.enable_reg = 0x77018,
1955*17269568STaniya Das 		.enable_mask = BIT(0),
1956*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
1957*17269568STaniya Das 			.name = "gcc_ufs_phy_tx_symbol_0_clk",
1958*17269568STaniya Das 			.ops = &clk_branch2_ops,
1959*17269568STaniya Das 		},
1960*17269568STaniya Das 	},
1961*17269568STaniya Das };
1962*17269568STaniya Das 
1963*17269568STaniya Das static struct clk_branch gcc_ufs_phy_unipro_core_clk = {
1964*17269568STaniya Das 	.halt_reg = 0x7708c,
1965*17269568STaniya Das 	.halt_check = BRANCH_HALT,
1966*17269568STaniya Das 	.hwcg_reg = 0x7708c,
1967*17269568STaniya Das 	.hwcg_bit = 1,
1968*17269568STaniya Das 	.clkr = {
1969*17269568STaniya Das 		.enable_reg = 0x7708c,
1970*17269568STaniya Das 		.enable_mask = BIT(0),
1971*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
1972*17269568STaniya Das 			.name = "gcc_ufs_phy_unipro_core_clk",
1973*17269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
1974*17269568STaniya Das 				.hw = &gcc_ufs_phy_unipro_core_clk_src.clkr.hw,
1975*17269568STaniya Das 			},
1976*17269568STaniya Das 			.num_parents = 1,
1977*17269568STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1978*17269568STaniya Das 			.ops = &clk_branch2_ops,
1979*17269568STaniya Das 		},
1980*17269568STaniya Das 	},
1981*17269568STaniya Das };
1982*17269568STaniya Das 
1983*17269568STaniya Das static struct clk_branch gcc_usb30_prim_master_clk = {
1984*17269568STaniya Das 	.halt_reg = 0xf010,
1985*17269568STaniya Das 	.halt_check = BRANCH_HALT,
1986*17269568STaniya Das 	.clkr = {
1987*17269568STaniya Das 		.enable_reg = 0xf010,
1988*17269568STaniya Das 		.enable_mask = BIT(0),
1989*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
1990*17269568STaniya Das 			.name = "gcc_usb30_prim_master_clk",
1991*17269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
1992*17269568STaniya Das 				.hw = &gcc_usb30_prim_master_clk_src.clkr.hw,
1993*17269568STaniya Das 			},
1994*17269568STaniya Das 			.num_parents = 1,
1995*17269568STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1996*17269568STaniya Das 			.ops = &clk_branch2_ops,
1997*17269568STaniya Das 		},
1998*17269568STaniya Das 	},
1999*17269568STaniya Das };
2000*17269568STaniya Das 
2001*17269568STaniya Das static struct clk_branch gcc_usb30_prim_mock_utmi_clk = {
2002*17269568STaniya Das 	.halt_reg = 0xf018,
2003*17269568STaniya Das 	.halt_check = BRANCH_HALT,
2004*17269568STaniya Das 	.clkr = {
2005*17269568STaniya Das 		.enable_reg = 0xf018,
2006*17269568STaniya Das 		.enable_mask = BIT(0),
2007*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
2008*17269568STaniya Das 			.name = "gcc_usb30_prim_mock_utmi_clk",
2009*17269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
2010*17269568STaniya Das 				.hw =
2011*17269568STaniya Das 				&gcc_usb30_prim_mock_utmi_clk_src.clkr.hw,
2012*17269568STaniya Das 			},
2013*17269568STaniya Das 			.num_parents = 1,
2014*17269568STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2015*17269568STaniya Das 			.ops = &clk_branch2_ops,
2016*17269568STaniya Das 		},
2017*17269568STaniya Das 	},
2018*17269568STaniya Das };
2019*17269568STaniya Das 
2020*17269568STaniya Das static struct clk_branch gcc_usb30_prim_sleep_clk = {
2021*17269568STaniya Das 	.halt_reg = 0xf014,
2022*17269568STaniya Das 	.halt_check = BRANCH_HALT,
2023*17269568STaniya Das 	.clkr = {
2024*17269568STaniya Das 		.enable_reg = 0xf014,
2025*17269568STaniya Das 		.enable_mask = BIT(0),
2026*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
2027*17269568STaniya Das 			.name = "gcc_usb30_prim_sleep_clk",
2028*17269568STaniya Das 			.ops = &clk_branch2_ops,
2029*17269568STaniya Das 		},
2030*17269568STaniya Das 	},
2031*17269568STaniya Das };
2032*17269568STaniya Das 
2033*17269568STaniya Das static struct clk_branch gcc_usb3_prim_clkref_clk = {
2034*17269568STaniya Das 	.halt_reg = 0x8c010,
2035*17269568STaniya Das 	.halt_check = BRANCH_HALT,
2036*17269568STaniya Das 	.clkr = {
2037*17269568STaniya Das 		.enable_reg = 0x8c010,
2038*17269568STaniya Das 		.enable_mask = BIT(0),
2039*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
2040*17269568STaniya Das 			.name = "gcc_usb3_prim_clkref_clk",
2041*17269568STaniya Das 			.ops = &clk_branch2_ops,
2042*17269568STaniya Das 		},
2043*17269568STaniya Das 	},
2044*17269568STaniya Das };
2045*17269568STaniya Das 
2046*17269568STaniya Das static struct clk_branch gcc_usb3_prim_phy_aux_clk = {
2047*17269568STaniya Das 	.halt_reg = 0xf050,
2048*17269568STaniya Das 	.halt_check = BRANCH_HALT,
2049*17269568STaniya Das 	.clkr = {
2050*17269568STaniya Das 		.enable_reg = 0xf050,
2051*17269568STaniya Das 		.enable_mask = BIT(0),
2052*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
2053*17269568STaniya Das 			.name = "gcc_usb3_prim_phy_aux_clk",
2054*17269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
2055*17269568STaniya Das 				.hw = &gcc_usb3_prim_phy_aux_clk_src.clkr.hw,
2056*17269568STaniya Das 			},
2057*17269568STaniya Das 			.num_parents = 1,
2058*17269568STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2059*17269568STaniya Das 			.ops = &clk_branch2_ops,
2060*17269568STaniya Das 		},
2061*17269568STaniya Das 	},
2062*17269568STaniya Das };
2063*17269568STaniya Das 
2064*17269568STaniya Das static struct clk_branch gcc_usb3_prim_phy_com_aux_clk = {
2065*17269568STaniya Das 	.halt_reg = 0xf054,
2066*17269568STaniya Das 	.halt_check = BRANCH_HALT,
2067*17269568STaniya Das 	.clkr = {
2068*17269568STaniya Das 		.enable_reg = 0xf054,
2069*17269568STaniya Das 		.enable_mask = BIT(0),
2070*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
2071*17269568STaniya Das 			.name = "gcc_usb3_prim_phy_com_aux_clk",
2072*17269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
2073*17269568STaniya Das 				.hw = &gcc_usb3_prim_phy_aux_clk_src.clkr.hw,
2074*17269568STaniya Das 			},
2075*17269568STaniya Das 			.num_parents = 1,
2076*17269568STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2077*17269568STaniya Das 			.ops = &clk_branch2_ops,
2078*17269568STaniya Das 		},
2079*17269568STaniya Das 	},
2080*17269568STaniya Das };
2081*17269568STaniya Das 
2082*17269568STaniya Das static struct clk_branch gcc_usb3_prim_phy_pipe_clk = {
2083*17269568STaniya Das 	.halt_reg = 0xf058,
2084*17269568STaniya Das 	.halt_check = BRANCH_HALT_SKIP,
2085*17269568STaniya Das 	.clkr = {
2086*17269568STaniya Das 		.enable_reg = 0xf058,
2087*17269568STaniya Das 		.enable_mask = BIT(0),
2088*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
2089*17269568STaniya Das 			.name = "gcc_usb3_prim_phy_pipe_clk",
2090*17269568STaniya Das 			.ops = &clk_branch2_ops,
2091*17269568STaniya Das 		},
2092*17269568STaniya Das 	},
2093*17269568STaniya Das };
2094*17269568STaniya Das 
2095*17269568STaniya Das static struct clk_branch gcc_usb_phy_cfg_ahb2phy_clk = {
2096*17269568STaniya Das 	.halt_reg = 0x6a004,
2097*17269568STaniya Das 	.halt_check = BRANCH_HALT,
2098*17269568STaniya Das 	.hwcg_reg = 0x6a004,
2099*17269568STaniya Das 	.hwcg_bit = 1,
2100*17269568STaniya Das 	.clkr = {
2101*17269568STaniya Das 		.enable_reg = 0x6a004,
2102*17269568STaniya Das 		.enable_mask = BIT(0),
2103*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
2104*17269568STaniya Das 			.name = "gcc_usb_phy_cfg_ahb2phy_clk",
2105*17269568STaniya Das 			.ops = &clk_branch2_ops,
2106*17269568STaniya Das 		},
2107*17269568STaniya Das 	},
2108*17269568STaniya Das };
2109*17269568STaniya Das 
2110*17269568STaniya Das static struct clk_branch gcc_video_axi_clk = {
2111*17269568STaniya Das 	.halt_reg = 0xb01c,
2112*17269568STaniya Das 	.halt_check = BRANCH_HALT,
2113*17269568STaniya Das 	.clkr = {
2114*17269568STaniya Das 		.enable_reg = 0xb01c,
2115*17269568STaniya Das 		.enable_mask = BIT(0),
2116*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
2117*17269568STaniya Das 			.name = "gcc_video_axi_clk",
2118*17269568STaniya Das 			.ops = &clk_branch2_ops,
2119*17269568STaniya Das 		},
2120*17269568STaniya Das 	},
2121*17269568STaniya Das };
2122*17269568STaniya Das 
2123*17269568STaniya Das static struct clk_branch gcc_video_gpll0_div_clk_src = {
2124*17269568STaniya Das 	.halt_check = BRANCH_HALT_DELAY,
2125*17269568STaniya Das 	.clkr = {
2126*17269568STaniya Das 		.enable_reg = 0x52000,
2127*17269568STaniya Das 		.enable_mask = BIT(20),
2128*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
2129*17269568STaniya Das 			.name = "gcc_video_gpll0_div_clk_src",
2130*17269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
2131*17269568STaniya Das 				.hw = &gcc_pll0_main_div_cdiv.hw,
2132*17269568STaniya Das 			},
2133*17269568STaniya Das 			.num_parents = 1,
2134*17269568STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2135*17269568STaniya Das 			.ops = &clk_branch2_ops,
2136*17269568STaniya Das 		},
2137*17269568STaniya Das 	},
2138*17269568STaniya Das };
2139*17269568STaniya Das 
2140*17269568STaniya Das static struct clk_branch gcc_video_throttle_axi_clk = {
2141*17269568STaniya Das 	.halt_reg = 0xb07c,
2142*17269568STaniya Das 	.halt_check = BRANCH_HALT,
2143*17269568STaniya Das 	.hwcg_reg = 0xb07c,
2144*17269568STaniya Das 	.hwcg_bit = 1,
2145*17269568STaniya Das 	.clkr = {
2146*17269568STaniya Das 		.enable_reg = 0xb07c,
2147*17269568STaniya Das 		.enable_mask = BIT(0),
2148*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
2149*17269568STaniya Das 			.name = "gcc_video_throttle_axi_clk",
2150*17269568STaniya Das 			.ops = &clk_branch2_ops,
2151*17269568STaniya Das 		},
2152*17269568STaniya Das 	},
2153*17269568STaniya Das };
2154*17269568STaniya Das 
2155*17269568STaniya Das static struct clk_branch gcc_video_xo_clk = {
2156*17269568STaniya Das 	.halt_reg = 0xb028,
2157*17269568STaniya Das 	.halt_check = BRANCH_HALT,
2158*17269568STaniya Das 	.clkr = {
2159*17269568STaniya Das 		.enable_reg = 0xb028,
2160*17269568STaniya Das 		.enable_mask = BIT(0),
2161*17269568STaniya Das 		.hw.init = &(struct clk_init_data){
2162*17269568STaniya Das 			.name = "gcc_video_xo_clk",
2163*17269568STaniya Das 			.ops = &clk_branch2_ops,
2164*17269568STaniya Das 		},
2165*17269568STaniya Das 	},
2166*17269568STaniya Das };
2167*17269568STaniya Das 
2168*17269568STaniya Das static struct gdsc ufs_phy_gdsc = {
2169*17269568STaniya Das 	.gdscr = 0x77004,
2170*17269568STaniya Das 	.pd = {
2171*17269568STaniya Das 		.name = "ufs_phy_gdsc",
2172*17269568STaniya Das 	},
2173*17269568STaniya Das 	.pwrsts = PWRSTS_OFF_ON,
2174*17269568STaniya Das };
2175*17269568STaniya Das 
2176*17269568STaniya Das static struct gdsc usb30_prim_gdsc = {
2177*17269568STaniya Das 	.gdscr = 0x0f004,
2178*17269568STaniya Das 	.pd = {
2179*17269568STaniya Das 		.name = "usb30_prim_gdsc",
2180*17269568STaniya Das 	},
2181*17269568STaniya Das 	.pwrsts = PWRSTS_OFF_ON,
2182*17269568STaniya Das };
2183*17269568STaniya Das 
2184*17269568STaniya Das static struct gdsc hlos1_vote_mmnoc_mmu_tbu_hf0_gdsc = {
2185*17269568STaniya Das 	.gdscr = 0x7d040,
2186*17269568STaniya Das 	.pd = {
2187*17269568STaniya Das 		.name = "hlos1_vote_mmnoc_mmu_tbu_hf0_gdsc",
2188*17269568STaniya Das 	},
2189*17269568STaniya Das 	.pwrsts = PWRSTS_OFF_ON | VOTABLE,
2190*17269568STaniya Das };
2191*17269568STaniya Das 
2192*17269568STaniya Das static struct gdsc hlos1_vote_mmnoc_mmu_tbu_sf_gdsc = {
2193*17269568STaniya Das 	.gdscr = 0x7d044,
2194*17269568STaniya Das 	.pd = {
2195*17269568STaniya Das 		.name = "hlos1_vote_mmnoc_mmu_tbu_sf_gdsc",
2196*17269568STaniya Das 	},
2197*17269568STaniya Das 	.pwrsts = PWRSTS_OFF_ON | VOTABLE,
2198*17269568STaniya Das };
2199*17269568STaniya Das 
2200*17269568STaniya Das static struct gdsc *gcc_sc7180_gdscs[] = {
2201*17269568STaniya Das 	[UFS_PHY_GDSC] = &ufs_phy_gdsc,
2202*17269568STaniya Das 	[USB30_PRIM_GDSC] = &usb30_prim_gdsc,
2203*17269568STaniya Das 	[HLOS1_VOTE_MMNOC_MMU_TBU_HF0_GDSC] =
2204*17269568STaniya Das 					&hlos1_vote_mmnoc_mmu_tbu_hf0_gdsc,
2205*17269568STaniya Das 	[HLOS1_VOTE_MMNOC_MMU_TBU_SF_GDSC] =
2206*17269568STaniya Das 					&hlos1_vote_mmnoc_mmu_tbu_sf_gdsc,
2207*17269568STaniya Das };
2208*17269568STaniya Das 
2209*17269568STaniya Das 
2210*17269568STaniya Das static struct clk_hw *gcc_sc7180_hws[] = {
2211*17269568STaniya Das 	[GCC_GPLL0_MAIN_DIV_CDIV] = &gcc_pll0_main_div_cdiv.hw,
2212*17269568STaniya Das };
2213*17269568STaniya Das 
2214*17269568STaniya Das static struct clk_regmap *gcc_sc7180_clocks[] = {
2215*17269568STaniya Das 	[GCC_AGGRE_UFS_PHY_AXI_CLK] = &gcc_aggre_ufs_phy_axi_clk.clkr,
2216*17269568STaniya Das 	[GCC_AGGRE_USB3_PRIM_AXI_CLK] = &gcc_aggre_usb3_prim_axi_clk.clkr,
2217*17269568STaniya Das 	[GCC_BOOT_ROM_AHB_CLK] = &gcc_boot_rom_ahb_clk.clkr,
2218*17269568STaniya Das 	[GCC_CAMERA_AHB_CLK] = &gcc_camera_ahb_clk.clkr,
2219*17269568STaniya Das 	[GCC_CAMERA_HF_AXI_CLK] = &gcc_camera_hf_axi_clk.clkr,
2220*17269568STaniya Das 	[GCC_CAMERA_THROTTLE_HF_AXI_CLK] = &gcc_camera_throttle_hf_axi_clk.clkr,
2221*17269568STaniya Das 	[GCC_CAMERA_XO_CLK] = &gcc_camera_xo_clk.clkr,
2222*17269568STaniya Das 	[GCC_CE1_AHB_CLK] = &gcc_ce1_ahb_clk.clkr,
2223*17269568STaniya Das 	[GCC_CE1_AXI_CLK] = &gcc_ce1_axi_clk.clkr,
2224*17269568STaniya Das 	[GCC_CE1_CLK] = &gcc_ce1_clk.clkr,
2225*17269568STaniya Das 	[GCC_CFG_NOC_USB3_PRIM_AXI_CLK] = &gcc_cfg_noc_usb3_prim_axi_clk.clkr,
2226*17269568STaniya Das 	[GCC_CPUSS_AHB_CLK] = &gcc_cpuss_ahb_clk.clkr,
2227*17269568STaniya Das 	[GCC_CPUSS_AHB_CLK_SRC] = &gcc_cpuss_ahb_clk_src.clkr,
2228*17269568STaniya Das 	[GCC_CPUSS_RBCPR_CLK] = &gcc_cpuss_rbcpr_clk.clkr,
2229*17269568STaniya Das 	[GCC_DDRSS_GPU_AXI_CLK] = &gcc_ddrss_gpu_axi_clk.clkr,
2230*17269568STaniya Das 	[GCC_DISP_GPLL0_CLK_SRC] = &gcc_disp_gpll0_clk_src.clkr,
2231*17269568STaniya Das 	[GCC_DISP_GPLL0_DIV_CLK_SRC] = &gcc_disp_gpll0_div_clk_src.clkr,
2232*17269568STaniya Das 	[GCC_DISP_HF_AXI_CLK] = &gcc_disp_hf_axi_clk.clkr,
2233*17269568STaniya Das 	[GCC_DISP_THROTTLE_HF_AXI_CLK] = &gcc_disp_throttle_hf_axi_clk.clkr,
2234*17269568STaniya Das 	[GCC_DISP_XO_CLK] = &gcc_disp_xo_clk.clkr,
2235*17269568STaniya Das 	[GCC_GP1_CLK] = &gcc_gp1_clk.clkr,
2236*17269568STaniya Das 	[GCC_GP1_CLK_SRC] = &gcc_gp1_clk_src.clkr,
2237*17269568STaniya Das 	[GCC_GP2_CLK] = &gcc_gp2_clk.clkr,
2238*17269568STaniya Das 	[GCC_GP2_CLK_SRC] = &gcc_gp2_clk_src.clkr,
2239*17269568STaniya Das 	[GCC_GP3_CLK] = &gcc_gp3_clk.clkr,
2240*17269568STaniya Das 	[GCC_GP3_CLK_SRC] = &gcc_gp3_clk_src.clkr,
2241*17269568STaniya Das 	[GCC_GPU_GPLL0_CLK_SRC] = &gcc_gpu_gpll0_clk_src.clkr,
2242*17269568STaniya Das 	[GCC_GPU_GPLL0_DIV_CLK_SRC] = &gcc_gpu_gpll0_div_clk_src.clkr,
2243*17269568STaniya Das 	[GCC_GPU_MEMNOC_GFX_CLK] = &gcc_gpu_memnoc_gfx_clk.clkr,
2244*17269568STaniya Das 	[GCC_GPU_SNOC_DVM_GFX_CLK] = &gcc_gpu_snoc_dvm_gfx_clk.clkr,
2245*17269568STaniya Das 	[GCC_NPU_AXI_CLK] = &gcc_npu_axi_clk.clkr,
2246*17269568STaniya Das 	[GCC_NPU_BWMON_AXI_CLK] = &gcc_npu_bwmon_axi_clk.clkr,
2247*17269568STaniya Das 	[GCC_NPU_BWMON_DMA_CFG_AHB_CLK] = &gcc_npu_bwmon_dma_cfg_ahb_clk.clkr,
2248*17269568STaniya Das 	[GCC_NPU_BWMON_DSP_CFG_AHB_CLK] = &gcc_npu_bwmon_dsp_cfg_ahb_clk.clkr,
2249*17269568STaniya Das 	[GCC_NPU_CFG_AHB_CLK] = &gcc_npu_cfg_ahb_clk.clkr,
2250*17269568STaniya Das 	[GCC_NPU_DMA_CLK] = &gcc_npu_dma_clk.clkr,
2251*17269568STaniya Das 	[GCC_NPU_GPLL0_CLK_SRC] = &gcc_npu_gpll0_clk_src.clkr,
2252*17269568STaniya Das 	[GCC_NPU_GPLL0_DIV_CLK_SRC] = &gcc_npu_gpll0_div_clk_src.clkr,
2253*17269568STaniya Das 	[GCC_PDM2_CLK] = &gcc_pdm2_clk.clkr,
2254*17269568STaniya Das 	[GCC_PDM2_CLK_SRC] = &gcc_pdm2_clk_src.clkr,
2255*17269568STaniya Das 	[GCC_PDM_AHB_CLK] = &gcc_pdm_ahb_clk.clkr,
2256*17269568STaniya Das 	[GCC_PDM_XO4_CLK] = &gcc_pdm_xo4_clk.clkr,
2257*17269568STaniya Das 	[GCC_PRNG_AHB_CLK] = &gcc_prng_ahb_clk.clkr,
2258*17269568STaniya Das 	[GCC_QSPI_CNOC_PERIPH_AHB_CLK] = &gcc_qspi_cnoc_periph_ahb_clk.clkr,
2259*17269568STaniya Das 	[GCC_QSPI_CORE_CLK] = &gcc_qspi_core_clk.clkr,
2260*17269568STaniya Das 	[GCC_QSPI_CORE_CLK_SRC] = &gcc_qspi_core_clk_src.clkr,
2261*17269568STaniya Das 	[GCC_QUPV3_WRAP0_CORE_2X_CLK] = &gcc_qupv3_wrap0_core_2x_clk.clkr,
2262*17269568STaniya Das 	[GCC_QUPV3_WRAP0_CORE_CLK] = &gcc_qupv3_wrap0_core_clk.clkr,
2263*17269568STaniya Das 	[GCC_QUPV3_WRAP0_S0_CLK] = &gcc_qupv3_wrap0_s0_clk.clkr,
2264*17269568STaniya Das 	[GCC_QUPV3_WRAP0_S0_CLK_SRC] = &gcc_qupv3_wrap0_s0_clk_src.clkr,
2265*17269568STaniya Das 	[GCC_QUPV3_WRAP0_S1_CLK] = &gcc_qupv3_wrap0_s1_clk.clkr,
2266*17269568STaniya Das 	[GCC_QUPV3_WRAP0_S1_CLK_SRC] = &gcc_qupv3_wrap0_s1_clk_src.clkr,
2267*17269568STaniya Das 	[GCC_QUPV3_WRAP0_S2_CLK] = &gcc_qupv3_wrap0_s2_clk.clkr,
2268*17269568STaniya Das 	[GCC_QUPV3_WRAP0_S2_CLK_SRC] = &gcc_qupv3_wrap0_s2_clk_src.clkr,
2269*17269568STaniya Das 	[GCC_QUPV3_WRAP0_S3_CLK] = &gcc_qupv3_wrap0_s3_clk.clkr,
2270*17269568STaniya Das 	[GCC_QUPV3_WRAP0_S3_CLK_SRC] = &gcc_qupv3_wrap0_s3_clk_src.clkr,
2271*17269568STaniya Das 	[GCC_QUPV3_WRAP0_S4_CLK] = &gcc_qupv3_wrap0_s4_clk.clkr,
2272*17269568STaniya Das 	[GCC_QUPV3_WRAP0_S4_CLK_SRC] = &gcc_qupv3_wrap0_s4_clk_src.clkr,
2273*17269568STaniya Das 	[GCC_QUPV3_WRAP0_S5_CLK] = &gcc_qupv3_wrap0_s5_clk.clkr,
2274*17269568STaniya Das 	[GCC_QUPV3_WRAP0_S5_CLK_SRC] = &gcc_qupv3_wrap0_s5_clk_src.clkr,
2275*17269568STaniya Das 	[GCC_QUPV3_WRAP1_CORE_2X_CLK] = &gcc_qupv3_wrap1_core_2x_clk.clkr,
2276*17269568STaniya Das 	[GCC_QUPV3_WRAP1_CORE_CLK] = &gcc_qupv3_wrap1_core_clk.clkr,
2277*17269568STaniya Das 	[GCC_QUPV3_WRAP1_S0_CLK] = &gcc_qupv3_wrap1_s0_clk.clkr,
2278*17269568STaniya Das 	[GCC_QUPV3_WRAP1_S0_CLK_SRC] = &gcc_qupv3_wrap1_s0_clk_src.clkr,
2279*17269568STaniya Das 	[GCC_QUPV3_WRAP1_S1_CLK] = &gcc_qupv3_wrap1_s1_clk.clkr,
2280*17269568STaniya Das 	[GCC_QUPV3_WRAP1_S1_CLK_SRC] = &gcc_qupv3_wrap1_s1_clk_src.clkr,
2281*17269568STaniya Das 	[GCC_QUPV3_WRAP1_S2_CLK] = &gcc_qupv3_wrap1_s2_clk.clkr,
2282*17269568STaniya Das 	[GCC_QUPV3_WRAP1_S2_CLK_SRC] = &gcc_qupv3_wrap1_s2_clk_src.clkr,
2283*17269568STaniya Das 	[GCC_QUPV3_WRAP1_S3_CLK] = &gcc_qupv3_wrap1_s3_clk.clkr,
2284*17269568STaniya Das 	[GCC_QUPV3_WRAP1_S3_CLK_SRC] = &gcc_qupv3_wrap1_s3_clk_src.clkr,
2285*17269568STaniya Das 	[GCC_QUPV3_WRAP1_S4_CLK] = &gcc_qupv3_wrap1_s4_clk.clkr,
2286*17269568STaniya Das 	[GCC_QUPV3_WRAP1_S4_CLK_SRC] = &gcc_qupv3_wrap1_s4_clk_src.clkr,
2287*17269568STaniya Das 	[GCC_QUPV3_WRAP1_S5_CLK] = &gcc_qupv3_wrap1_s5_clk.clkr,
2288*17269568STaniya Das 	[GCC_QUPV3_WRAP1_S5_CLK_SRC] = &gcc_qupv3_wrap1_s5_clk_src.clkr,
2289*17269568STaniya Das 	[GCC_QUPV3_WRAP_0_M_AHB_CLK] = &gcc_qupv3_wrap_0_m_ahb_clk.clkr,
2290*17269568STaniya Das 	[GCC_QUPV3_WRAP_0_S_AHB_CLK] = &gcc_qupv3_wrap_0_s_ahb_clk.clkr,
2291*17269568STaniya Das 	[GCC_QUPV3_WRAP_1_M_AHB_CLK] = &gcc_qupv3_wrap_1_m_ahb_clk.clkr,
2292*17269568STaniya Das 	[GCC_QUPV3_WRAP_1_S_AHB_CLK] = &gcc_qupv3_wrap_1_s_ahb_clk.clkr,
2293*17269568STaniya Das 	[GCC_SDCC1_AHB_CLK] = &gcc_sdcc1_ahb_clk.clkr,
2294*17269568STaniya Das 	[GCC_SDCC1_APPS_CLK] = &gcc_sdcc1_apps_clk.clkr,
2295*17269568STaniya Das 	[GCC_SDCC1_APPS_CLK_SRC] = &gcc_sdcc1_apps_clk_src.clkr,
2296*17269568STaniya Das 	[GCC_SDCC1_ICE_CORE_CLK] = &gcc_sdcc1_ice_core_clk.clkr,
2297*17269568STaniya Das 	[GCC_SDCC1_ICE_CORE_CLK_SRC] = &gcc_sdcc1_ice_core_clk_src.clkr,
2298*17269568STaniya Das 	[GCC_SDCC2_AHB_CLK] = &gcc_sdcc2_ahb_clk.clkr,
2299*17269568STaniya Das 	[GCC_SDCC2_APPS_CLK] = &gcc_sdcc2_apps_clk.clkr,
2300*17269568STaniya Das 	[GCC_SDCC2_APPS_CLK_SRC] = &gcc_sdcc2_apps_clk_src.clkr,
2301*17269568STaniya Das 	[GCC_SYS_NOC_CPUSS_AHB_CLK] = &gcc_sys_noc_cpuss_ahb_clk.clkr,
2302*17269568STaniya Das 	[GCC_UFS_MEM_CLKREF_CLK] = &gcc_ufs_mem_clkref_clk.clkr,
2303*17269568STaniya Das 	[GCC_UFS_PHY_AHB_CLK] = &gcc_ufs_phy_ahb_clk.clkr,
2304*17269568STaniya Das 	[GCC_UFS_PHY_AXI_CLK] = &gcc_ufs_phy_axi_clk.clkr,
2305*17269568STaniya Das 	[GCC_UFS_PHY_AXI_CLK_SRC] = &gcc_ufs_phy_axi_clk_src.clkr,
2306*17269568STaniya Das 	[GCC_UFS_PHY_ICE_CORE_CLK] = &gcc_ufs_phy_ice_core_clk.clkr,
2307*17269568STaniya Das 	[GCC_UFS_PHY_ICE_CORE_CLK_SRC] = &gcc_ufs_phy_ice_core_clk_src.clkr,
2308*17269568STaniya Das 	[GCC_UFS_PHY_PHY_AUX_CLK] = &gcc_ufs_phy_phy_aux_clk.clkr,
2309*17269568STaniya Das 	[GCC_UFS_PHY_PHY_AUX_CLK_SRC] = &gcc_ufs_phy_phy_aux_clk_src.clkr,
2310*17269568STaniya Das 	[GCC_UFS_PHY_RX_SYMBOL_0_CLK] = &gcc_ufs_phy_rx_symbol_0_clk.clkr,
2311*17269568STaniya Das 	[GCC_UFS_PHY_TX_SYMBOL_0_CLK] = &gcc_ufs_phy_tx_symbol_0_clk.clkr,
2312*17269568STaniya Das 	[GCC_UFS_PHY_UNIPRO_CORE_CLK] = &gcc_ufs_phy_unipro_core_clk.clkr,
2313*17269568STaniya Das 	[GCC_UFS_PHY_UNIPRO_CORE_CLK_SRC] =
2314*17269568STaniya Das 		&gcc_ufs_phy_unipro_core_clk_src.clkr,
2315*17269568STaniya Das 	[GCC_USB30_PRIM_MASTER_CLK] = &gcc_usb30_prim_master_clk.clkr,
2316*17269568STaniya Das 	[GCC_USB30_PRIM_MASTER_CLK_SRC] = &gcc_usb30_prim_master_clk_src.clkr,
2317*17269568STaniya Das 	[GCC_USB30_PRIM_MOCK_UTMI_CLK] = &gcc_usb30_prim_mock_utmi_clk.clkr,
2318*17269568STaniya Das 	[GCC_USB30_PRIM_MOCK_UTMI_CLK_SRC] =
2319*17269568STaniya Das 		&gcc_usb30_prim_mock_utmi_clk_src.clkr,
2320*17269568STaniya Das 	[GCC_USB30_PRIM_SLEEP_CLK] = &gcc_usb30_prim_sleep_clk.clkr,
2321*17269568STaniya Das 	[GCC_USB3_PRIM_CLKREF_CLK] = &gcc_usb3_prim_clkref_clk.clkr,
2322*17269568STaniya Das 	[GCC_USB3_PRIM_PHY_AUX_CLK] = &gcc_usb3_prim_phy_aux_clk.clkr,
2323*17269568STaniya Das 	[GCC_USB3_PRIM_PHY_AUX_CLK_SRC] = &gcc_usb3_prim_phy_aux_clk_src.clkr,
2324*17269568STaniya Das 	[GCC_USB3_PRIM_PHY_COM_AUX_CLK] = &gcc_usb3_prim_phy_com_aux_clk.clkr,
2325*17269568STaniya Das 	[GCC_USB3_PRIM_PHY_PIPE_CLK] = &gcc_usb3_prim_phy_pipe_clk.clkr,
2326*17269568STaniya Das 	[GCC_USB_PHY_CFG_AHB2PHY_CLK] = &gcc_usb_phy_cfg_ahb2phy_clk.clkr,
2327*17269568STaniya Das 	[GCC_VIDEO_AXI_CLK] = &gcc_video_axi_clk.clkr,
2328*17269568STaniya Das 	[GCC_VIDEO_GPLL0_DIV_CLK_SRC] = &gcc_video_gpll0_div_clk_src.clkr,
2329*17269568STaniya Das 	[GCC_VIDEO_THROTTLE_AXI_CLK] = &gcc_video_throttle_axi_clk.clkr,
2330*17269568STaniya Das 	[GCC_VIDEO_XO_CLK] = &gcc_video_xo_clk.clkr,
2331*17269568STaniya Das 	[GPLL0] = &gpll0.clkr,
2332*17269568STaniya Das 	[GPLL0_OUT_EVEN] = &gpll0_out_even.clkr,
2333*17269568STaniya Das 	[GPLL6] = &gpll6.clkr,
2334*17269568STaniya Das 	[GPLL7] = &gpll7.clkr,
2335*17269568STaniya Das 	[GPLL4] = &gpll4.clkr,
2336*17269568STaniya Das 	[GPLL1] = &gpll1.clkr,
2337*17269568STaniya Das };
2338*17269568STaniya Das 
2339*17269568STaniya Das static const struct qcom_reset_map gcc_sc7180_resets[] = {
2340*17269568STaniya Das 	[GCC_QUSB2PHY_PRIM_BCR] = { 0x26000 },
2341*17269568STaniya Das 	[GCC_QUSB2PHY_SEC_BCR] = { 0x26004 },
2342*17269568STaniya Das 	[GCC_UFS_PHY_BCR] = { 0x77000 },
2343*17269568STaniya Das 	[GCC_USB30_PRIM_BCR] = { 0xf000 },
2344*17269568STaniya Das 	[GCC_USB3_PHY_PRIM_BCR] = { 0x50000 },
2345*17269568STaniya Das 	[GCC_USB3PHY_PHY_PRIM_BCR] = { 0x50004 },
2346*17269568STaniya Das 	[GCC_USB3_PHY_SEC_BCR] = { 0x5000c },
2347*17269568STaniya Das 	[GCC_USB3_DP_PHY_PRIM_BCR] = { 0x50008 },
2348*17269568STaniya Das 	[GCC_USB3PHY_PHY_SEC_BCR] = { 0x50010 },
2349*17269568STaniya Das 	[GCC_USB3_DP_PHY_SEC_BCR] = { 0x50014 },
2350*17269568STaniya Das 	[GCC_USB_PHY_CFG_AHB2PHY_BCR] = { 0x6a000 },
2351*17269568STaniya Das };
2352*17269568STaniya Das 
2353*17269568STaniya Das static struct clk_rcg_dfs_data gcc_dfs_clocks[] = {
2354*17269568STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s0_clk_src),
2355*17269568STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s1_clk_src),
2356*17269568STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s2_clk_src),
2357*17269568STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s3_clk_src),
2358*17269568STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s4_clk_src),
2359*17269568STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s5_clk_src),
2360*17269568STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s0_clk_src),
2361*17269568STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s1_clk_src),
2362*17269568STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s2_clk_src),
2363*17269568STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s3_clk_src),
2364*17269568STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s4_clk_src),
2365*17269568STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s5_clk_src),
2366*17269568STaniya Das };
2367*17269568STaniya Das 
2368*17269568STaniya Das static const struct regmap_config gcc_sc7180_regmap_config = {
2369*17269568STaniya Das 	.reg_bits = 32,
2370*17269568STaniya Das 	.reg_stride = 4,
2371*17269568STaniya Das 	.val_bits = 32,
2372*17269568STaniya Das 	.max_register = 0x18208c,
2373*17269568STaniya Das 	.fast_io = true,
2374*17269568STaniya Das };
2375*17269568STaniya Das 
2376*17269568STaniya Das static const struct qcom_cc_desc gcc_sc7180_desc = {
2377*17269568STaniya Das 	.config = &gcc_sc7180_regmap_config,
2378*17269568STaniya Das 	.clk_hws = gcc_sc7180_hws,
2379*17269568STaniya Das 	.num_clk_hws = ARRAY_SIZE(gcc_sc7180_hws),
2380*17269568STaniya Das 	.clks = gcc_sc7180_clocks,
2381*17269568STaniya Das 	.num_clks = ARRAY_SIZE(gcc_sc7180_clocks),
2382*17269568STaniya Das 	.resets = gcc_sc7180_resets,
2383*17269568STaniya Das 	.num_resets = ARRAY_SIZE(gcc_sc7180_resets),
2384*17269568STaniya Das 	.gdscs = gcc_sc7180_gdscs,
2385*17269568STaniya Das 	.num_gdscs = ARRAY_SIZE(gcc_sc7180_gdscs),
2386*17269568STaniya Das };
2387*17269568STaniya Das 
2388*17269568STaniya Das static const struct of_device_id gcc_sc7180_match_table[] = {
2389*17269568STaniya Das 	{ .compatible = "qcom,gcc-sc7180" },
2390*17269568STaniya Das 	{ }
2391*17269568STaniya Das };
2392*17269568STaniya Das MODULE_DEVICE_TABLE(of, gcc_sc7180_match_table);
2393*17269568STaniya Das 
2394*17269568STaniya Das static int gcc_sc7180_probe(struct platform_device *pdev)
2395*17269568STaniya Das {
2396*17269568STaniya Das 	struct regmap *regmap;
2397*17269568STaniya Das 	int ret;
2398*17269568STaniya Das 
2399*17269568STaniya Das 	regmap = qcom_cc_map(pdev, &gcc_sc7180_desc);
2400*17269568STaniya Das 	if (IS_ERR(regmap))
2401*17269568STaniya Das 		return PTR_ERR(regmap);
2402*17269568STaniya Das 
2403*17269568STaniya Das 	/*
2404*17269568STaniya Das 	 * Disable the GPLL0 active input to MM blocks, NPU
2405*17269568STaniya Das 	 * and GPU via MISC registers.
2406*17269568STaniya Das 	 */
2407*17269568STaniya Das 	regmap_update_bits(regmap, 0x09ffc, 0x3, 0x3);
2408*17269568STaniya Das 	regmap_update_bits(regmap, 0x4d110, 0x3, 0x3);
2409*17269568STaniya Das 	regmap_update_bits(regmap, 0x71028, 0x3, 0x3);
2410*17269568STaniya Das 
2411*17269568STaniya Das 	/*
2412*17269568STaniya Das 	 * Keep the clocks always-ON
2413*17269568STaniya Das 	 * GCC_CPUSS_GNOC_CLK, GCC_VIDEO_AHB_CLK, GCC_DISP_AHB_CLK
2414*17269568STaniya Das 	 * GCC_GPU_CFG_AHB_CLK
2415*17269568STaniya Das 	 */
2416*17269568STaniya Das 	regmap_update_bits(regmap, 0x48004, BIT(0), BIT(0));
2417*17269568STaniya Das 	regmap_update_bits(regmap, 0x0b004, BIT(0), BIT(0));
2418*17269568STaniya Das 	regmap_update_bits(regmap, 0x0b00c, BIT(0), BIT(0));
2419*17269568STaniya Das 	regmap_update_bits(regmap, 0x71004, BIT(0), BIT(0));
2420*17269568STaniya Das 
2421*17269568STaniya Das 	ret = qcom_cc_register_rcg_dfs(regmap, gcc_dfs_clocks,
2422*17269568STaniya Das 					ARRAY_SIZE(gcc_dfs_clocks));
2423*17269568STaniya Das 	if (ret)
2424*17269568STaniya Das 		return ret;
2425*17269568STaniya Das 
2426*17269568STaniya Das 	return qcom_cc_really_probe(pdev, &gcc_sc7180_desc, regmap);
2427*17269568STaniya Das }
2428*17269568STaniya Das 
2429*17269568STaniya Das static struct platform_driver gcc_sc7180_driver = {
2430*17269568STaniya Das 	.probe = gcc_sc7180_probe,
2431*17269568STaniya Das 	.driver = {
2432*17269568STaniya Das 		.name = "gcc-sc7180",
2433*17269568STaniya Das 		.of_match_table = gcc_sc7180_match_table,
2434*17269568STaniya Das 	},
2435*17269568STaniya Das };
2436*17269568STaniya Das 
2437*17269568STaniya Das static int __init gcc_sc7180_init(void)
2438*17269568STaniya Das {
2439*17269568STaniya Das 	return platform_driver_register(&gcc_sc7180_driver);
2440*17269568STaniya Das }
2441*17269568STaniya Das core_initcall(gcc_sc7180_init);
2442*17269568STaniya Das 
2443*17269568STaniya Das static void __exit gcc_sc7180_exit(void)
2444*17269568STaniya Das {
2445*17269568STaniya Das 	platform_driver_unregister(&gcc_sc7180_driver);
2446*17269568STaniya Das }
2447*17269568STaniya Das module_exit(gcc_sc7180_exit);
2448*17269568STaniya Das 
2449*17269568STaniya Das MODULE_DESCRIPTION("QTI GCC SC7180 Driver");
2450*17269568STaniya Das MODULE_LICENSE("GPL v2");
2451