xref: /linux/drivers/clk/qcom/gcc-kaanapali.c (revision c17ee635fd3a482b2ad2bf5e269755c2eae5f25e)
1*d1919c37STaniya Das // SPDX-License-Identifier: GPL-2.0-only
2*d1919c37STaniya Das /*
3*d1919c37STaniya Das  * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
4*d1919c37STaniya Das  */
5*d1919c37STaniya Das 
6*d1919c37STaniya Das #include <linux/clk-provider.h>
7*d1919c37STaniya Das #include <linux/mod_devicetable.h>
8*d1919c37STaniya Das #include <linux/module.h>
9*d1919c37STaniya Das #include <linux/of.h>
10*d1919c37STaniya Das #include <linux/platform_device.h>
11*d1919c37STaniya Das #include <linux/regmap.h>
12*d1919c37STaniya Das 
13*d1919c37STaniya Das #include <dt-bindings/clock/qcom,kaanapali-gcc.h>
14*d1919c37STaniya Das 
15*d1919c37STaniya Das #include "clk-alpha-pll.h"
16*d1919c37STaniya Das #include "clk-branch.h"
17*d1919c37STaniya Das #include "clk-pll.h"
18*d1919c37STaniya Das #include "clk-rcg.h"
19*d1919c37STaniya Das #include "clk-regmap.h"
20*d1919c37STaniya Das #include "clk-regmap-divider.h"
21*d1919c37STaniya Das #include "clk-regmap-mux.h"
22*d1919c37STaniya Das #include "clk-regmap-phy-mux.h"
23*d1919c37STaniya Das #include "common.h"
24*d1919c37STaniya Das #include "gdsc.h"
25*d1919c37STaniya Das #include "reset.h"
26*d1919c37STaniya Das 
27*d1919c37STaniya Das enum {
28*d1919c37STaniya Das 	DT_BI_TCXO,
29*d1919c37STaniya Das 	DT_BI_TCXO_AO,
30*d1919c37STaniya Das 	DT_SLEEP_CLK,
31*d1919c37STaniya Das 	DT_PCIE_0_PIPE_CLK,
32*d1919c37STaniya Das 	DT_UFS_PHY_RX_SYMBOL_0_CLK,
33*d1919c37STaniya Das 	DT_UFS_PHY_RX_SYMBOL_1_CLK,
34*d1919c37STaniya Das 	DT_UFS_PHY_TX_SYMBOL_0_CLK,
35*d1919c37STaniya Das 	DT_USB3_PHY_WRAPPER_GCC_USB30_PIPE_CLK,
36*d1919c37STaniya Das };
37*d1919c37STaniya Das 
38*d1919c37STaniya Das enum {
39*d1919c37STaniya Das 	P_BI_TCXO,
40*d1919c37STaniya Das 	P_GCC_GPLL0_OUT_EVEN,
41*d1919c37STaniya Das 	P_GCC_GPLL0_OUT_MAIN,
42*d1919c37STaniya Das 	P_GCC_GPLL1_OUT_MAIN,
43*d1919c37STaniya Das 	P_GCC_GPLL4_OUT_MAIN,
44*d1919c37STaniya Das 	P_GCC_GPLL7_OUT_MAIN,
45*d1919c37STaniya Das 	P_GCC_GPLL9_OUT_MAIN,
46*d1919c37STaniya Das 	P_PCIE_0_PIPE_CLK,
47*d1919c37STaniya Das 	P_SLEEP_CLK,
48*d1919c37STaniya Das 	P_UFS_PHY_RX_SYMBOL_0_CLK,
49*d1919c37STaniya Das 	P_UFS_PHY_RX_SYMBOL_1_CLK,
50*d1919c37STaniya Das 	P_UFS_PHY_TX_SYMBOL_0_CLK,
51*d1919c37STaniya Das 	P_USB3_PHY_WRAPPER_GCC_USB30_PIPE_CLK,
52*d1919c37STaniya Das };
53*d1919c37STaniya Das 
54*d1919c37STaniya Das static struct clk_alpha_pll gcc_gpll0 = {
55*d1919c37STaniya Das 	.offset = 0x0,
56*d1919c37STaniya Das 	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_TAYCAN_EKO_T],
57*d1919c37STaniya Das 	.clkr = {
58*d1919c37STaniya Das 		.enable_reg = 0x52020,
59*d1919c37STaniya Das 		.enable_mask = BIT(0),
60*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
61*d1919c37STaniya Das 			.name = "gcc_gpll0",
62*d1919c37STaniya Das 			.parent_data = &(const struct clk_parent_data) {
63*d1919c37STaniya Das 				.index = DT_BI_TCXO,
64*d1919c37STaniya Das 			},
65*d1919c37STaniya Das 			.num_parents = 1,
66*d1919c37STaniya Das 			.ops = &clk_alpha_pll_fixed_taycan_eko_t_ops,
67*d1919c37STaniya Das 		},
68*d1919c37STaniya Das 	},
69*d1919c37STaniya Das };
70*d1919c37STaniya Das 
71*d1919c37STaniya Das static const struct clk_div_table post_div_table_gcc_gpll0_out_even[] = {
72*d1919c37STaniya Das 	{ 0x1, 2 },
73*d1919c37STaniya Das 	{ }
74*d1919c37STaniya Das };
75*d1919c37STaniya Das 
76*d1919c37STaniya Das static struct clk_alpha_pll_postdiv gcc_gpll0_out_even = {
77*d1919c37STaniya Das 	.offset = 0x0,
78*d1919c37STaniya Das 	.post_div_shift = 10,
79*d1919c37STaniya Das 	.post_div_table = post_div_table_gcc_gpll0_out_even,
80*d1919c37STaniya Das 	.num_post_div = ARRAY_SIZE(post_div_table_gcc_gpll0_out_even),
81*d1919c37STaniya Das 	.width = 4,
82*d1919c37STaniya Das 	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_TAYCAN_EKO_T],
83*d1919c37STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
84*d1919c37STaniya Das 		.name = "gcc_gpll0_out_even",
85*d1919c37STaniya Das 		.parent_hws = (const struct clk_hw*[]) {
86*d1919c37STaniya Das 			&gcc_gpll0.clkr.hw,
87*d1919c37STaniya Das 		},
88*d1919c37STaniya Das 		.num_parents = 1,
89*d1919c37STaniya Das 		.ops = &clk_alpha_pll_postdiv_taycan_eko_t_ops,
90*d1919c37STaniya Das 	},
91*d1919c37STaniya Das };
92*d1919c37STaniya Das 
93*d1919c37STaniya Das static struct clk_alpha_pll gcc_gpll1 = {
94*d1919c37STaniya Das 	.offset = 0x1000,
95*d1919c37STaniya Das 	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_TAYCAN_EKO_T],
96*d1919c37STaniya Das 	.clkr = {
97*d1919c37STaniya Das 		.enable_reg = 0x52020,
98*d1919c37STaniya Das 		.enable_mask = BIT(1),
99*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
100*d1919c37STaniya Das 			.name = "gcc_gpll1",
101*d1919c37STaniya Das 			.parent_data = &(const struct clk_parent_data) {
102*d1919c37STaniya Das 				.index = DT_BI_TCXO,
103*d1919c37STaniya Das 			},
104*d1919c37STaniya Das 			.num_parents = 1,
105*d1919c37STaniya Das 			.ops = &clk_alpha_pll_fixed_taycan_eko_t_ops,
106*d1919c37STaniya Das 		},
107*d1919c37STaniya Das 	},
108*d1919c37STaniya Das };
109*d1919c37STaniya Das 
110*d1919c37STaniya Das static struct clk_alpha_pll gcc_gpll4 = {
111*d1919c37STaniya Das 	.offset = 0x4000,
112*d1919c37STaniya Das 	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_TAYCAN_EKO_T],
113*d1919c37STaniya Das 	.clkr = {
114*d1919c37STaniya Das 		.enable_reg = 0x52020,
115*d1919c37STaniya Das 		.enable_mask = BIT(4),
116*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
117*d1919c37STaniya Das 			.name = "gcc_gpll4",
118*d1919c37STaniya Das 			.parent_data = &(const struct clk_parent_data) {
119*d1919c37STaniya Das 				.index = DT_BI_TCXO,
120*d1919c37STaniya Das 			},
121*d1919c37STaniya Das 			.num_parents = 1,
122*d1919c37STaniya Das 			.ops = &clk_alpha_pll_fixed_taycan_eko_t_ops,
123*d1919c37STaniya Das 		},
124*d1919c37STaniya Das 	},
125*d1919c37STaniya Das };
126*d1919c37STaniya Das 
127*d1919c37STaniya Das static struct clk_alpha_pll gcc_gpll7 = {
128*d1919c37STaniya Das 	.offset = 0x7000,
129*d1919c37STaniya Das 	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_TAYCAN_EKO_T],
130*d1919c37STaniya Das 	.clkr = {
131*d1919c37STaniya Das 		.enable_reg = 0x52020,
132*d1919c37STaniya Das 		.enable_mask = BIT(7),
133*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
134*d1919c37STaniya Das 			.name = "gcc_gpll7",
135*d1919c37STaniya Das 			.parent_data = &(const struct clk_parent_data) {
136*d1919c37STaniya Das 				.index = DT_BI_TCXO,
137*d1919c37STaniya Das 			},
138*d1919c37STaniya Das 			.num_parents = 1,
139*d1919c37STaniya Das 			.ops = &clk_alpha_pll_fixed_taycan_eko_t_ops,
140*d1919c37STaniya Das 		},
141*d1919c37STaniya Das 	},
142*d1919c37STaniya Das };
143*d1919c37STaniya Das 
144*d1919c37STaniya Das static struct clk_alpha_pll gcc_gpll9 = {
145*d1919c37STaniya Das 	.offset = 0x9000,
146*d1919c37STaniya Das 	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_TAYCAN_EKO_T],
147*d1919c37STaniya Das 	.clkr = {
148*d1919c37STaniya Das 		.enable_reg = 0x52020,
149*d1919c37STaniya Das 		.enable_mask = BIT(9),
150*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
151*d1919c37STaniya Das 			.name = "gcc_gpll9",
152*d1919c37STaniya Das 			.parent_data = &(const struct clk_parent_data) {
153*d1919c37STaniya Das 				.index = DT_BI_TCXO,
154*d1919c37STaniya Das 			},
155*d1919c37STaniya Das 			.num_parents = 1,
156*d1919c37STaniya Das 			.ops = &clk_alpha_pll_fixed_taycan_eko_t_ops,
157*d1919c37STaniya Das 		},
158*d1919c37STaniya Das 	},
159*d1919c37STaniya Das };
160*d1919c37STaniya Das 
161*d1919c37STaniya Das static const struct parent_map gcc_parent_map_0[] = {
162*d1919c37STaniya Das 	{ P_BI_TCXO, 0 },
163*d1919c37STaniya Das 	{ P_GCC_GPLL0_OUT_MAIN, 1 },
164*d1919c37STaniya Das 	{ P_GCC_GPLL0_OUT_EVEN, 6 },
165*d1919c37STaniya Das };
166*d1919c37STaniya Das 
167*d1919c37STaniya Das static const struct clk_parent_data gcc_parent_data_0[] = {
168*d1919c37STaniya Das 	{ .index = DT_BI_TCXO },
169*d1919c37STaniya Das 	{ .hw = &gcc_gpll0.clkr.hw },
170*d1919c37STaniya Das 	{ .hw = &gcc_gpll0_out_even.clkr.hw },
171*d1919c37STaniya Das };
172*d1919c37STaniya Das 
173*d1919c37STaniya Das static const struct parent_map gcc_parent_map_1[] = {
174*d1919c37STaniya Das 	{ P_BI_TCXO, 0 },
175*d1919c37STaniya Das 	{ P_GCC_GPLL0_OUT_MAIN, 1 },
176*d1919c37STaniya Das 	{ P_GCC_GPLL1_OUT_MAIN, 4 },
177*d1919c37STaniya Das 	{ P_GCC_GPLL4_OUT_MAIN, 5 },
178*d1919c37STaniya Das 	{ P_GCC_GPLL0_OUT_EVEN, 6 },
179*d1919c37STaniya Das };
180*d1919c37STaniya Das 
181*d1919c37STaniya Das static const struct clk_parent_data gcc_parent_data_1[] = {
182*d1919c37STaniya Das 	{ .index = DT_BI_TCXO },
183*d1919c37STaniya Das 	{ .hw = &gcc_gpll0.clkr.hw },
184*d1919c37STaniya Das 	{ .hw = &gcc_gpll1.clkr.hw },
185*d1919c37STaniya Das 	{ .hw = &gcc_gpll4.clkr.hw },
186*d1919c37STaniya Das 	{ .hw = &gcc_gpll0_out_even.clkr.hw },
187*d1919c37STaniya Das };
188*d1919c37STaniya Das 
189*d1919c37STaniya Das static const struct parent_map gcc_parent_map_2[] = {
190*d1919c37STaniya Das 	{ P_BI_TCXO, 0 },
191*d1919c37STaniya Das 	{ P_GCC_GPLL0_OUT_MAIN, 1 },
192*d1919c37STaniya Das 	{ P_SLEEP_CLK, 5 },
193*d1919c37STaniya Das 	{ P_GCC_GPLL0_OUT_EVEN, 6 },
194*d1919c37STaniya Das };
195*d1919c37STaniya Das 
196*d1919c37STaniya Das static const struct clk_parent_data gcc_parent_data_2[] = {
197*d1919c37STaniya Das 	{ .index = DT_BI_TCXO },
198*d1919c37STaniya Das 	{ .hw = &gcc_gpll0.clkr.hw },
199*d1919c37STaniya Das 	{ .index = DT_SLEEP_CLK },
200*d1919c37STaniya Das 	{ .hw = &gcc_gpll0_out_even.clkr.hw },
201*d1919c37STaniya Das };
202*d1919c37STaniya Das 
203*d1919c37STaniya Das static const struct parent_map gcc_parent_map_3[] = {
204*d1919c37STaniya Das 	{ P_BI_TCXO, 0 },
205*d1919c37STaniya Das 	{ P_GCC_GPLL0_OUT_MAIN, 1 },
206*d1919c37STaniya Das 	{ P_GCC_GPLL4_OUT_MAIN, 5 },
207*d1919c37STaniya Das 	{ P_GCC_GPLL0_OUT_EVEN, 6 },
208*d1919c37STaniya Das };
209*d1919c37STaniya Das 
210*d1919c37STaniya Das static const struct clk_parent_data gcc_parent_data_3[] = {
211*d1919c37STaniya Das 	{ .index = DT_BI_TCXO },
212*d1919c37STaniya Das 	{ .hw = &gcc_gpll0.clkr.hw },
213*d1919c37STaniya Das 	{ .hw = &gcc_gpll4.clkr.hw },
214*d1919c37STaniya Das 	{ .hw = &gcc_gpll0_out_even.clkr.hw },
215*d1919c37STaniya Das };
216*d1919c37STaniya Das 
217*d1919c37STaniya Das static const struct parent_map gcc_parent_map_4[] = {
218*d1919c37STaniya Das 	{ P_BI_TCXO, 0 },
219*d1919c37STaniya Das };
220*d1919c37STaniya Das 
221*d1919c37STaniya Das static const struct clk_parent_data gcc_parent_data_4[] = {
222*d1919c37STaniya Das 	{ .index = DT_BI_TCXO },
223*d1919c37STaniya Das };
224*d1919c37STaniya Das 
225*d1919c37STaniya Das static const struct parent_map gcc_parent_map_5[] = {
226*d1919c37STaniya Das 	{ P_BI_TCXO, 0 },
227*d1919c37STaniya Das 	{ P_GCC_GPLL0_OUT_MAIN, 1 },
228*d1919c37STaniya Das 	{ P_GCC_GPLL7_OUT_MAIN, 2 },
229*d1919c37STaniya Das 	{ P_GCC_GPLL0_OUT_EVEN, 6 },
230*d1919c37STaniya Das };
231*d1919c37STaniya Das 
232*d1919c37STaniya Das static const struct clk_parent_data gcc_parent_data_5[] = {
233*d1919c37STaniya Das 	{ .index = DT_BI_TCXO },
234*d1919c37STaniya Das 	{ .hw = &gcc_gpll0.clkr.hw },
235*d1919c37STaniya Das 	{ .hw = &gcc_gpll7.clkr.hw },
236*d1919c37STaniya Das 	{ .hw = &gcc_gpll0_out_even.clkr.hw },
237*d1919c37STaniya Das };
238*d1919c37STaniya Das 
239*d1919c37STaniya Das static const struct parent_map gcc_parent_map_6[] = {
240*d1919c37STaniya Das 	{ P_BI_TCXO, 0 },
241*d1919c37STaniya Das 	{ P_SLEEP_CLK, 5 },
242*d1919c37STaniya Das };
243*d1919c37STaniya Das 
244*d1919c37STaniya Das static const struct clk_parent_data gcc_parent_data_6[] = {
245*d1919c37STaniya Das 	{ .index = DT_BI_TCXO },
246*d1919c37STaniya Das 	{ .index = DT_SLEEP_CLK },
247*d1919c37STaniya Das };
248*d1919c37STaniya Das 
249*d1919c37STaniya Das static const struct parent_map gcc_parent_map_8[] = {
250*d1919c37STaniya Das 	{ P_BI_TCXO, 0 },
251*d1919c37STaniya Das 	{ P_GCC_GPLL0_OUT_MAIN, 1 },
252*d1919c37STaniya Das 	{ P_GCC_GPLL9_OUT_MAIN, 2 },
253*d1919c37STaniya Das 	{ P_GCC_GPLL4_OUT_MAIN, 5 },
254*d1919c37STaniya Das 	{ P_GCC_GPLL0_OUT_EVEN, 6 },
255*d1919c37STaniya Das };
256*d1919c37STaniya Das 
257*d1919c37STaniya Das static const struct clk_parent_data gcc_parent_data_8[] = {
258*d1919c37STaniya Das 	{ .index = DT_BI_TCXO },
259*d1919c37STaniya Das 	{ .hw = &gcc_gpll0.clkr.hw },
260*d1919c37STaniya Das 	{ .hw = &gcc_gpll9.clkr.hw },
261*d1919c37STaniya Das 	{ .hw = &gcc_gpll4.clkr.hw },
262*d1919c37STaniya Das 	{ .hw = &gcc_gpll0_out_even.clkr.hw },
263*d1919c37STaniya Das };
264*d1919c37STaniya Das 
265*d1919c37STaniya Das static const struct parent_map gcc_parent_map_12[] = {
266*d1919c37STaniya Das 	{ P_USB3_PHY_WRAPPER_GCC_USB30_PIPE_CLK, 0 },
267*d1919c37STaniya Das 	{ P_BI_TCXO, 2 },
268*d1919c37STaniya Das };
269*d1919c37STaniya Das 
270*d1919c37STaniya Das static const struct clk_parent_data gcc_parent_data_12[] = {
271*d1919c37STaniya Das 	{ .index = DT_USB3_PHY_WRAPPER_GCC_USB30_PIPE_CLK },
272*d1919c37STaniya Das 	{ .index = DT_BI_TCXO },
273*d1919c37STaniya Das };
274*d1919c37STaniya Das 
275*d1919c37STaniya Das static struct clk_regmap_phy_mux gcc_pcie_0_pipe_clk_src = {
276*d1919c37STaniya Das 	.reg = 0x6b090,
277*d1919c37STaniya Das 	.clkr = {
278*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
279*d1919c37STaniya Das 			.name = "gcc_pcie_0_pipe_clk_src",
280*d1919c37STaniya Das 			.parent_data = &(const struct clk_parent_data){
281*d1919c37STaniya Das 				.index = DT_PCIE_0_PIPE_CLK,
282*d1919c37STaniya Das 			},
283*d1919c37STaniya Das 			.num_parents = 1,
284*d1919c37STaniya Das 			.ops = &clk_regmap_phy_mux_ops,
285*d1919c37STaniya Das 		},
286*d1919c37STaniya Das 	},
287*d1919c37STaniya Das };
288*d1919c37STaniya Das 
289*d1919c37STaniya Das static struct clk_regmap_phy_mux gcc_ufs_phy_rx_symbol_0_clk_src = {
290*d1919c37STaniya Das 	.reg = 0x77068,
291*d1919c37STaniya Das 	.clkr = {
292*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
293*d1919c37STaniya Das 			.name = "gcc_ufs_phy_rx_symbol_0_clk_src",
294*d1919c37STaniya Das 			.parent_data = &(const struct clk_parent_data){
295*d1919c37STaniya Das 				.index = DT_UFS_PHY_RX_SYMBOL_0_CLK,
296*d1919c37STaniya Das 			},
297*d1919c37STaniya Das 			.num_parents = 1,
298*d1919c37STaniya Das 			.ops = &clk_regmap_phy_mux_ops,
299*d1919c37STaniya Das 		},
300*d1919c37STaniya Das 	},
301*d1919c37STaniya Das };
302*d1919c37STaniya Das 
303*d1919c37STaniya Das static struct clk_regmap_phy_mux gcc_ufs_phy_rx_symbol_1_clk_src = {
304*d1919c37STaniya Das 	.reg = 0x770ec,
305*d1919c37STaniya Das 	.clkr = {
306*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
307*d1919c37STaniya Das 			.name = "gcc_ufs_phy_rx_symbol_1_clk_src",
308*d1919c37STaniya Das 			.parent_data = &(const struct clk_parent_data){
309*d1919c37STaniya Das 				.index = DT_UFS_PHY_RX_SYMBOL_1_CLK,
310*d1919c37STaniya Das 			},
311*d1919c37STaniya Das 			.num_parents = 1,
312*d1919c37STaniya Das 			.ops = &clk_regmap_phy_mux_ops,
313*d1919c37STaniya Das 		},
314*d1919c37STaniya Das 	},
315*d1919c37STaniya Das };
316*d1919c37STaniya Das 
317*d1919c37STaniya Das static struct clk_regmap_phy_mux gcc_ufs_phy_tx_symbol_0_clk_src = {
318*d1919c37STaniya Das 	.reg = 0x77058,
319*d1919c37STaniya Das 	.clkr = {
320*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
321*d1919c37STaniya Das 			.name = "gcc_ufs_phy_tx_symbol_0_clk_src",
322*d1919c37STaniya Das 			.parent_data = &(const struct clk_parent_data){
323*d1919c37STaniya Das 				.index = DT_UFS_PHY_TX_SYMBOL_0_CLK,
324*d1919c37STaniya Das 			},
325*d1919c37STaniya Das 			.num_parents = 1,
326*d1919c37STaniya Das 			.ops = &clk_regmap_phy_mux_ops,
327*d1919c37STaniya Das 		},
328*d1919c37STaniya Das 	},
329*d1919c37STaniya Das };
330*d1919c37STaniya Das 
331*d1919c37STaniya Das static struct clk_regmap_mux gcc_usb3_prim_phy_pipe_clk_src = {
332*d1919c37STaniya Das 	.reg = 0x39074,
333*d1919c37STaniya Das 	.shift = 0,
334*d1919c37STaniya Das 	.width = 2,
335*d1919c37STaniya Das 	.parent_map = gcc_parent_map_12,
336*d1919c37STaniya Das 	.clkr = {
337*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
338*d1919c37STaniya Das 			.name = "gcc_usb3_prim_phy_pipe_clk_src",
339*d1919c37STaniya Das 			.parent_data = gcc_parent_data_12,
340*d1919c37STaniya Das 			.num_parents = ARRAY_SIZE(gcc_parent_data_12),
341*d1919c37STaniya Das 			.ops = &clk_regmap_mux_closest_ops,
342*d1919c37STaniya Das 		},
343*d1919c37STaniya Das 	},
344*d1919c37STaniya Das };
345*d1919c37STaniya Das 
346*d1919c37STaniya Das static const struct freq_tbl ftbl_gcc_gp1_clk_src[] = {
347*d1919c37STaniya Das 	F(50000000, P_GCC_GPLL0_OUT_EVEN, 6, 0, 0),
348*d1919c37STaniya Das 	F(100000000, P_GCC_GPLL0_OUT_MAIN, 6, 0, 0),
349*d1919c37STaniya Das 	F(200000000, P_GCC_GPLL0_OUT_MAIN, 3, 0, 0),
350*d1919c37STaniya Das 	{ }
351*d1919c37STaniya Das };
352*d1919c37STaniya Das 
353*d1919c37STaniya Das static struct clk_rcg2 gcc_gp1_clk_src = {
354*d1919c37STaniya Das 	.cmd_rcgr = 0x64004,
355*d1919c37STaniya Das 	.mnd_width = 16,
356*d1919c37STaniya Das 	.hid_width = 5,
357*d1919c37STaniya Das 	.parent_map = gcc_parent_map_2,
358*d1919c37STaniya Das 	.freq_tbl = ftbl_gcc_gp1_clk_src,
359*d1919c37STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
360*d1919c37STaniya Das 		.name = "gcc_gp1_clk_src",
361*d1919c37STaniya Das 		.parent_data = gcc_parent_data_2,
362*d1919c37STaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_2),
363*d1919c37STaniya Das 		.flags = CLK_SET_RATE_PARENT,
364*d1919c37STaniya Das 		.ops = &clk_rcg2_ops,
365*d1919c37STaniya Das 	},
366*d1919c37STaniya Das };
367*d1919c37STaniya Das 
368*d1919c37STaniya Das static struct clk_rcg2 gcc_gp2_clk_src = {
369*d1919c37STaniya Das 	.cmd_rcgr = 0x65004,
370*d1919c37STaniya Das 	.mnd_width = 16,
371*d1919c37STaniya Das 	.hid_width = 5,
372*d1919c37STaniya Das 	.parent_map = gcc_parent_map_2,
373*d1919c37STaniya Das 	.freq_tbl = ftbl_gcc_gp1_clk_src,
374*d1919c37STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
375*d1919c37STaniya Das 		.name = "gcc_gp2_clk_src",
376*d1919c37STaniya Das 		.parent_data = gcc_parent_data_2,
377*d1919c37STaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_2),
378*d1919c37STaniya Das 		.flags = CLK_SET_RATE_PARENT,
379*d1919c37STaniya Das 		.ops = &clk_rcg2_ops,
380*d1919c37STaniya Das 	},
381*d1919c37STaniya Das };
382*d1919c37STaniya Das 
383*d1919c37STaniya Das static struct clk_rcg2 gcc_gp3_clk_src = {
384*d1919c37STaniya Das 	.cmd_rcgr = 0x66004,
385*d1919c37STaniya Das 	.mnd_width = 16,
386*d1919c37STaniya Das 	.hid_width = 5,
387*d1919c37STaniya Das 	.parent_map = gcc_parent_map_2,
388*d1919c37STaniya Das 	.freq_tbl = ftbl_gcc_gp1_clk_src,
389*d1919c37STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
390*d1919c37STaniya Das 		.name = "gcc_gp3_clk_src",
391*d1919c37STaniya Das 		.parent_data = gcc_parent_data_2,
392*d1919c37STaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_2),
393*d1919c37STaniya Das 		.flags = CLK_SET_RATE_PARENT,
394*d1919c37STaniya Das 		.ops = &clk_rcg2_ops,
395*d1919c37STaniya Das 	},
396*d1919c37STaniya Das };
397*d1919c37STaniya Das 
398*d1919c37STaniya Das static const struct freq_tbl ftbl_gcc_pcie_0_aux_clk_src[] = {
399*d1919c37STaniya Das 	F(19200000, P_BI_TCXO, 1, 0, 0),
400*d1919c37STaniya Das 	{ }
401*d1919c37STaniya Das };
402*d1919c37STaniya Das 
403*d1919c37STaniya Das static struct clk_rcg2 gcc_pcie_0_aux_clk_src = {
404*d1919c37STaniya Das 	.cmd_rcgr = 0x6b094,
405*d1919c37STaniya Das 	.mnd_width = 16,
406*d1919c37STaniya Das 	.hid_width = 5,
407*d1919c37STaniya Das 	.parent_map = gcc_parent_map_6,
408*d1919c37STaniya Das 	.freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
409*d1919c37STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
410*d1919c37STaniya Das 		.name = "gcc_pcie_0_aux_clk_src",
411*d1919c37STaniya Das 		.parent_data = gcc_parent_data_6,
412*d1919c37STaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_6),
413*d1919c37STaniya Das 		.flags = CLK_SET_RATE_PARENT,
414*d1919c37STaniya Das 		.ops = &clk_rcg2_shared_no_init_park_ops,
415*d1919c37STaniya Das 	},
416*d1919c37STaniya Das };
417*d1919c37STaniya Das 
418*d1919c37STaniya Das static struct clk_rcg2 gcc_pcie_0_phy_aux_clk_src = {
419*d1919c37STaniya Das 	.cmd_rcgr = 0x6b0ac,
420*d1919c37STaniya Das 	.mnd_width = 0,
421*d1919c37STaniya Das 	.hid_width = 5,
422*d1919c37STaniya Das 	.parent_map = gcc_parent_map_0,
423*d1919c37STaniya Das 	.freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
424*d1919c37STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
425*d1919c37STaniya Das 		.name = "gcc_pcie_0_phy_aux_clk_src",
426*d1919c37STaniya Das 		.parent_data = gcc_parent_data_0,
427*d1919c37STaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
428*d1919c37STaniya Das 		.flags = CLK_SET_RATE_PARENT,
429*d1919c37STaniya Das 		.ops = &clk_rcg2_shared_no_init_park_ops,
430*d1919c37STaniya Das 	},
431*d1919c37STaniya Das };
432*d1919c37STaniya Das 
433*d1919c37STaniya Das static const struct freq_tbl ftbl_gcc_pcie_0_phy_rchng_clk_src[] = {
434*d1919c37STaniya Das 	F(19200000, P_BI_TCXO, 1, 0, 0),
435*d1919c37STaniya Das 	F(100000000, P_GCC_GPLL0_OUT_EVEN, 3, 0, 0),
436*d1919c37STaniya Das 	{ }
437*d1919c37STaniya Das };
438*d1919c37STaniya Das 
439*d1919c37STaniya Das static struct clk_rcg2 gcc_pcie_0_phy_rchng_clk_src = {
440*d1919c37STaniya Das 	.cmd_rcgr = 0x6b078,
441*d1919c37STaniya Das 	.mnd_width = 0,
442*d1919c37STaniya Das 	.hid_width = 5,
443*d1919c37STaniya Das 	.parent_map = gcc_parent_map_0,
444*d1919c37STaniya Das 	.freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src,
445*d1919c37STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
446*d1919c37STaniya Das 		.name = "gcc_pcie_0_phy_rchng_clk_src",
447*d1919c37STaniya Das 		.parent_data = gcc_parent_data_0,
448*d1919c37STaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
449*d1919c37STaniya Das 		.flags = CLK_SET_RATE_PARENT,
450*d1919c37STaniya Das 		.ops = &clk_rcg2_shared_no_init_park_ops,
451*d1919c37STaniya Das 	},
452*d1919c37STaniya Das };
453*d1919c37STaniya Das 
454*d1919c37STaniya Das static const struct freq_tbl ftbl_gcc_pdm2_clk_src[] = {
455*d1919c37STaniya Das 	F(60000000, P_GCC_GPLL0_OUT_MAIN, 10, 0, 0),
456*d1919c37STaniya Das 	{ }
457*d1919c37STaniya Das };
458*d1919c37STaniya Das 
459*d1919c37STaniya Das static struct clk_rcg2 gcc_pdm2_clk_src = {
460*d1919c37STaniya Das 	.cmd_rcgr = 0x33010,
461*d1919c37STaniya Das 	.mnd_width = 0,
462*d1919c37STaniya Das 	.hid_width = 5,
463*d1919c37STaniya Das 	.parent_map = gcc_parent_map_0,
464*d1919c37STaniya Das 	.freq_tbl = ftbl_gcc_pdm2_clk_src,
465*d1919c37STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
466*d1919c37STaniya Das 		.name = "gcc_pdm2_clk_src",
467*d1919c37STaniya Das 		.parent_data = gcc_parent_data_0,
468*d1919c37STaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
469*d1919c37STaniya Das 		.flags = CLK_SET_RATE_PARENT,
470*d1919c37STaniya Das 		.ops = &clk_rcg2_shared_no_init_park_ops,
471*d1919c37STaniya Das 	},
472*d1919c37STaniya Das };
473*d1919c37STaniya Das 
474*d1919c37STaniya Das static struct clk_rcg2 gcc_qupv3_i2c_s0_clk_src = {
475*d1919c37STaniya Das 	.cmd_rcgr = 0x17008,
476*d1919c37STaniya Das 	.mnd_width = 0,
477*d1919c37STaniya Das 	.hid_width = 5,
478*d1919c37STaniya Das 	.parent_map = gcc_parent_map_0,
479*d1919c37STaniya Das 	.freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
480*d1919c37STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
481*d1919c37STaniya Das 		.name = "gcc_qupv3_i2c_s0_clk_src",
482*d1919c37STaniya Das 		.parent_data = gcc_parent_data_0,
483*d1919c37STaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
484*d1919c37STaniya Das 		.flags = CLK_SET_RATE_PARENT,
485*d1919c37STaniya Das 		.ops = &clk_rcg2_shared_no_init_park_ops,
486*d1919c37STaniya Das 	},
487*d1919c37STaniya Das };
488*d1919c37STaniya Das 
489*d1919c37STaniya Das static struct clk_rcg2 gcc_qupv3_i2c_s1_clk_src = {
490*d1919c37STaniya Das 	.cmd_rcgr = 0x17024,
491*d1919c37STaniya Das 	.mnd_width = 0,
492*d1919c37STaniya Das 	.hid_width = 5,
493*d1919c37STaniya Das 	.parent_map = gcc_parent_map_0,
494*d1919c37STaniya Das 	.freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
495*d1919c37STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
496*d1919c37STaniya Das 		.name = "gcc_qupv3_i2c_s1_clk_src",
497*d1919c37STaniya Das 		.parent_data = gcc_parent_data_0,
498*d1919c37STaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
499*d1919c37STaniya Das 		.flags = CLK_SET_RATE_PARENT,
500*d1919c37STaniya Das 		.ops = &clk_rcg2_shared_no_init_park_ops,
501*d1919c37STaniya Das 	},
502*d1919c37STaniya Das };
503*d1919c37STaniya Das 
504*d1919c37STaniya Das static struct clk_rcg2 gcc_qupv3_i2c_s2_clk_src = {
505*d1919c37STaniya Das 	.cmd_rcgr = 0x17040,
506*d1919c37STaniya Das 	.mnd_width = 0,
507*d1919c37STaniya Das 	.hid_width = 5,
508*d1919c37STaniya Das 	.parent_map = gcc_parent_map_0,
509*d1919c37STaniya Das 	.freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
510*d1919c37STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
511*d1919c37STaniya Das 		.name = "gcc_qupv3_i2c_s2_clk_src",
512*d1919c37STaniya Das 		.parent_data = gcc_parent_data_0,
513*d1919c37STaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
514*d1919c37STaniya Das 		.flags = CLK_SET_RATE_PARENT,
515*d1919c37STaniya Das 		.ops = &clk_rcg2_shared_no_init_park_ops,
516*d1919c37STaniya Das 	},
517*d1919c37STaniya Das };
518*d1919c37STaniya Das 
519*d1919c37STaniya Das static struct clk_rcg2 gcc_qupv3_i2c_s3_clk_src = {
520*d1919c37STaniya Das 	.cmd_rcgr = 0x1705c,
521*d1919c37STaniya Das 	.mnd_width = 0,
522*d1919c37STaniya Das 	.hid_width = 5,
523*d1919c37STaniya Das 	.parent_map = gcc_parent_map_0,
524*d1919c37STaniya Das 	.freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
525*d1919c37STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
526*d1919c37STaniya Das 		.name = "gcc_qupv3_i2c_s3_clk_src",
527*d1919c37STaniya Das 		.parent_data = gcc_parent_data_0,
528*d1919c37STaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
529*d1919c37STaniya Das 		.flags = CLK_SET_RATE_PARENT,
530*d1919c37STaniya Das 		.ops = &clk_rcg2_shared_no_init_park_ops,
531*d1919c37STaniya Das 	},
532*d1919c37STaniya Das };
533*d1919c37STaniya Das 
534*d1919c37STaniya Das static struct clk_rcg2 gcc_qupv3_i2c_s4_clk_src = {
535*d1919c37STaniya Das 	.cmd_rcgr = 0x17078,
536*d1919c37STaniya Das 	.mnd_width = 0,
537*d1919c37STaniya Das 	.hid_width = 5,
538*d1919c37STaniya Das 	.parent_map = gcc_parent_map_0,
539*d1919c37STaniya Das 	.freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
540*d1919c37STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
541*d1919c37STaniya Das 		.name = "gcc_qupv3_i2c_s4_clk_src",
542*d1919c37STaniya Das 		.parent_data = gcc_parent_data_0,
543*d1919c37STaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
544*d1919c37STaniya Das 		.flags = CLK_SET_RATE_PARENT,
545*d1919c37STaniya Das 		.ops = &clk_rcg2_shared_no_init_park_ops,
546*d1919c37STaniya Das 	},
547*d1919c37STaniya Das };
548*d1919c37STaniya Das 
549*d1919c37STaniya Das static const struct freq_tbl ftbl_gcc_qupv3_wrap1_qspi_ref_clk_src[] = {
550*d1919c37STaniya Das 	F(7372800, P_GCC_GPLL0_OUT_EVEN, 1, 384, 15625),
551*d1919c37STaniya Das 	F(14745600, P_GCC_GPLL0_OUT_EVEN, 1, 768, 15625),
552*d1919c37STaniya Das 	F(19200000, P_BI_TCXO, 1, 0, 0),
553*d1919c37STaniya Das 	F(29491200, P_GCC_GPLL0_OUT_EVEN, 1, 1536, 15625),
554*d1919c37STaniya Das 	F(32000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 75),
555*d1919c37STaniya Das 	F(48000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 25),
556*d1919c37STaniya Das 	F(51200000, P_GCC_GPLL0_OUT_EVEN, 1, 64, 375),
557*d1919c37STaniya Das 	F(64000000, P_GCC_GPLL0_OUT_EVEN, 1, 16, 75),
558*d1919c37STaniya Das 	F(66666667, P_GCC_GPLL0_OUT_MAIN, 9, 0, 0),
559*d1919c37STaniya Das 	F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0),
560*d1919c37STaniya Das 	F(80000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 15),
561*d1919c37STaniya Das 	F(96000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 25),
562*d1919c37STaniya Das 	F(100000000, P_GCC_GPLL0_OUT_MAIN, 6, 0, 0),
563*d1919c37STaniya Das 	F(102400000, P_GCC_GPLL0_OUT_EVEN, 1, 128, 375),
564*d1919c37STaniya Das 	F(112000000, P_GCC_GPLL0_OUT_EVEN, 1, 28, 75),
565*d1919c37STaniya Das 	F(117964800, P_GCC_GPLL0_OUT_EVEN, 1, 6144, 15625),
566*d1919c37STaniya Das 	F(120000000, P_GCC_GPLL0_OUT_MAIN, 5, 0, 0),
567*d1919c37STaniya Das 	F(150000000, P_GCC_GPLL0_OUT_EVEN, 2, 0, 0),
568*d1919c37STaniya Das 	F(250000000, P_GCC_GPLL7_OUT_MAIN, 2, 0, 0),
569*d1919c37STaniya Das 	{ }
570*d1919c37STaniya Das };
571*d1919c37STaniya Das 
572*d1919c37STaniya Das static struct clk_init_data gcc_qupv3_wrap1_qspi_ref_clk_src_init = {
573*d1919c37STaniya Das 	.name = "gcc_qupv3_wrap1_qspi_ref_clk_src",
574*d1919c37STaniya Das 	.parent_data = gcc_parent_data_5,
575*d1919c37STaniya Das 	.num_parents = ARRAY_SIZE(gcc_parent_data_5),
576*d1919c37STaniya Das 	.flags = CLK_SET_RATE_PARENT,
577*d1919c37STaniya Das 	.ops = &clk_rcg2_shared_no_init_park_ops,
578*d1919c37STaniya Das };
579*d1919c37STaniya Das 
580*d1919c37STaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_qspi_ref_clk_src = {
581*d1919c37STaniya Das 	.cmd_rcgr = 0x188c0,
582*d1919c37STaniya Das 	.mnd_width = 16,
583*d1919c37STaniya Das 	.hid_width = 5,
584*d1919c37STaniya Das 	.parent_map = gcc_parent_map_5,
585*d1919c37STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap1_qspi_ref_clk_src,
586*d1919c37STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap1_qspi_ref_clk_src_init,
587*d1919c37STaniya Das };
588*d1919c37STaniya Das 
589*d1919c37STaniya Das static const struct freq_tbl ftbl_gcc_qupv3_wrap1_s0_clk_src[] = {
590*d1919c37STaniya Das 	F(7372800, P_GCC_GPLL0_OUT_EVEN, 1, 384, 15625),
591*d1919c37STaniya Das 	F(14745600, P_GCC_GPLL0_OUT_EVEN, 1, 768, 15625),
592*d1919c37STaniya Das 	F(19200000, P_BI_TCXO, 1, 0, 0),
593*d1919c37STaniya Das 	F(29491200, P_GCC_GPLL0_OUT_EVEN, 1, 1536, 15625),
594*d1919c37STaniya Das 	F(32000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 75),
595*d1919c37STaniya Das 	F(48000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 25),
596*d1919c37STaniya Das 	F(51200000, P_GCC_GPLL0_OUT_EVEN, 1, 64, 375),
597*d1919c37STaniya Das 	F(60000000, P_GCC_GPLL0_OUT_EVEN, 5, 0, 0),
598*d1919c37STaniya Das 	F(64000000, P_GCC_GPLL0_OUT_EVEN, 1, 16, 75),
599*d1919c37STaniya Das 	F(66666667, P_GCC_GPLL0_OUT_MAIN, 9, 0, 0),
600*d1919c37STaniya Das 	F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0),
601*d1919c37STaniya Das 	F(80000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 15),
602*d1919c37STaniya Das 	F(96000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 25),
603*d1919c37STaniya Das 	F(100000000, P_GCC_GPLL0_OUT_MAIN, 6, 0, 0),
604*d1919c37STaniya Das 	{ }
605*d1919c37STaniya Das };
606*d1919c37STaniya Das 
607*d1919c37STaniya Das static struct clk_init_data gcc_qupv3_wrap1_s0_clk_src_init = {
608*d1919c37STaniya Das 	.name = "gcc_qupv3_wrap1_s0_clk_src",
609*d1919c37STaniya Das 	.parent_data = gcc_parent_data_0,
610*d1919c37STaniya Das 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
611*d1919c37STaniya Das 	.flags = CLK_SET_RATE_PARENT,
612*d1919c37STaniya Das 	.ops = &clk_rcg2_shared_no_init_park_ops,
613*d1919c37STaniya Das };
614*d1919c37STaniya Das 
615*d1919c37STaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s0_clk_src = {
616*d1919c37STaniya Das 	.cmd_rcgr = 0x18014,
617*d1919c37STaniya Das 	.mnd_width = 16,
618*d1919c37STaniya Das 	.hid_width = 5,
619*d1919c37STaniya Das 	.parent_map = gcc_parent_map_0,
620*d1919c37STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap1_s0_clk_src,
621*d1919c37STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap1_s0_clk_src_init,
622*d1919c37STaniya Das };
623*d1919c37STaniya Das 
624*d1919c37STaniya Das static struct clk_init_data gcc_qupv3_wrap1_s1_clk_src_init = {
625*d1919c37STaniya Das 	.name = "gcc_qupv3_wrap1_s1_clk_src",
626*d1919c37STaniya Das 	.parent_data = gcc_parent_data_0,
627*d1919c37STaniya Das 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
628*d1919c37STaniya Das 	.flags = CLK_SET_RATE_PARENT,
629*d1919c37STaniya Das 	.ops = &clk_rcg2_shared_no_init_park_ops,
630*d1919c37STaniya Das };
631*d1919c37STaniya Das 
632*d1919c37STaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s1_clk_src = {
633*d1919c37STaniya Das 	.cmd_rcgr = 0x18150,
634*d1919c37STaniya Das 	.mnd_width = 16,
635*d1919c37STaniya Das 	.hid_width = 5,
636*d1919c37STaniya Das 	.parent_map = gcc_parent_map_0,
637*d1919c37STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap1_s0_clk_src,
638*d1919c37STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap1_s1_clk_src_init,
639*d1919c37STaniya Das };
640*d1919c37STaniya Das 
641*d1919c37STaniya Das static struct clk_init_data gcc_qupv3_wrap1_s3_clk_src_init = {
642*d1919c37STaniya Das 	.name = "gcc_qupv3_wrap1_s3_clk_src",
643*d1919c37STaniya Das 	.parent_data = gcc_parent_data_0,
644*d1919c37STaniya Das 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
645*d1919c37STaniya Das 	.flags = CLK_SET_RATE_PARENT,
646*d1919c37STaniya Das 	.ops = &clk_rcg2_shared_no_init_park_ops,
647*d1919c37STaniya Das };
648*d1919c37STaniya Das 
649*d1919c37STaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s3_clk_src = {
650*d1919c37STaniya Das 	.cmd_rcgr = 0x182a0,
651*d1919c37STaniya Das 	.mnd_width = 16,
652*d1919c37STaniya Das 	.hid_width = 5,
653*d1919c37STaniya Das 	.parent_map = gcc_parent_map_0,
654*d1919c37STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap1_s0_clk_src,
655*d1919c37STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap1_s3_clk_src_init,
656*d1919c37STaniya Das };
657*d1919c37STaniya Das 
658*d1919c37STaniya Das static const struct freq_tbl ftbl_gcc_qupv3_wrap1_s4_clk_src[] = {
659*d1919c37STaniya Das 	F(7372800, P_GCC_GPLL0_OUT_EVEN, 1, 384, 15625),
660*d1919c37STaniya Das 	F(14745600, P_GCC_GPLL0_OUT_EVEN, 1, 768, 15625),
661*d1919c37STaniya Das 	F(19200000, P_BI_TCXO, 1, 0, 0),
662*d1919c37STaniya Das 	F(29491200, P_GCC_GPLL0_OUT_EVEN, 1, 1536, 15625),
663*d1919c37STaniya Das 	F(32000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 75),
664*d1919c37STaniya Das 	F(48000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 25),
665*d1919c37STaniya Das 	F(51200000, P_GCC_GPLL0_OUT_EVEN, 1, 64, 375),
666*d1919c37STaniya Das 	F(60000000, P_GCC_GPLL0_OUT_EVEN, 5, 0, 0),
667*d1919c37STaniya Das 	F(64000000, P_GCC_GPLL0_OUT_EVEN, 1, 16, 75),
668*d1919c37STaniya Das 	F(66666667, P_GCC_GPLL0_OUT_MAIN, 9, 0, 0),
669*d1919c37STaniya Das 	F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0),
670*d1919c37STaniya Das 	F(80000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 15),
671*d1919c37STaniya Das 	F(96000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 25),
672*d1919c37STaniya Das 	F(100000000, P_GCC_GPLL0_OUT_MAIN, 6, 0, 0),
673*d1919c37STaniya Das 	F(102400000, P_GCC_GPLL0_OUT_EVEN, 1, 128, 375),
674*d1919c37STaniya Das 	F(112000000, P_GCC_GPLL0_OUT_EVEN, 1, 28, 75),
675*d1919c37STaniya Das 	F(117964800, P_GCC_GPLL0_OUT_EVEN, 1, 6144, 15625),
676*d1919c37STaniya Das 	F(120000000, P_GCC_GPLL0_OUT_MAIN, 5, 0, 0),
677*d1919c37STaniya Das 	{ }
678*d1919c37STaniya Das };
679*d1919c37STaniya Das 
680*d1919c37STaniya Das static struct clk_init_data gcc_qupv3_wrap1_s4_clk_src_init = {
681*d1919c37STaniya Das 	.name = "gcc_qupv3_wrap1_s4_clk_src",
682*d1919c37STaniya Das 	.parent_data = gcc_parent_data_0,
683*d1919c37STaniya Das 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
684*d1919c37STaniya Das 	.flags = CLK_SET_RATE_PARENT,
685*d1919c37STaniya Das 	.ops = &clk_rcg2_shared_no_init_park_ops,
686*d1919c37STaniya Das };
687*d1919c37STaniya Das 
688*d1919c37STaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s4_clk_src = {
689*d1919c37STaniya Das 	.cmd_rcgr = 0x183dc,
690*d1919c37STaniya Das 	.mnd_width = 16,
691*d1919c37STaniya Das 	.hid_width = 5,
692*d1919c37STaniya Das 	.parent_map = gcc_parent_map_0,
693*d1919c37STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap1_s4_clk_src,
694*d1919c37STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap1_s4_clk_src_init,
695*d1919c37STaniya Das };
696*d1919c37STaniya Das 
697*d1919c37STaniya Das static struct clk_init_data gcc_qupv3_wrap1_s5_clk_src_init = {
698*d1919c37STaniya Das 	.name = "gcc_qupv3_wrap1_s5_clk_src",
699*d1919c37STaniya Das 	.parent_data = gcc_parent_data_0,
700*d1919c37STaniya Das 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
701*d1919c37STaniya Das 	.flags = CLK_SET_RATE_PARENT,
702*d1919c37STaniya Das 	.ops = &clk_rcg2_shared_no_init_park_ops,
703*d1919c37STaniya Das };
704*d1919c37STaniya Das 
705*d1919c37STaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s5_clk_src = {
706*d1919c37STaniya Das 	.cmd_rcgr = 0x18518,
707*d1919c37STaniya Das 	.mnd_width = 16,
708*d1919c37STaniya Das 	.hid_width = 5,
709*d1919c37STaniya Das 	.parent_map = gcc_parent_map_0,
710*d1919c37STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap1_s0_clk_src,
711*d1919c37STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap1_s5_clk_src_init,
712*d1919c37STaniya Das };
713*d1919c37STaniya Das 
714*d1919c37STaniya Das static struct clk_init_data gcc_qupv3_wrap1_s6_clk_src_init = {
715*d1919c37STaniya Das 	.name = "gcc_qupv3_wrap1_s6_clk_src",
716*d1919c37STaniya Das 	.parent_data = gcc_parent_data_0,
717*d1919c37STaniya Das 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
718*d1919c37STaniya Das 	.flags = CLK_SET_RATE_PARENT,
719*d1919c37STaniya Das 	.ops = &clk_rcg2_shared_no_init_park_ops,
720*d1919c37STaniya Das };
721*d1919c37STaniya Das 
722*d1919c37STaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s6_clk_src = {
723*d1919c37STaniya Das 	.cmd_rcgr = 0x18654,
724*d1919c37STaniya Das 	.mnd_width = 16,
725*d1919c37STaniya Das 	.hid_width = 5,
726*d1919c37STaniya Das 	.parent_map = gcc_parent_map_0,
727*d1919c37STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap1_s0_clk_src,
728*d1919c37STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap1_s6_clk_src_init,
729*d1919c37STaniya Das };
730*d1919c37STaniya Das 
731*d1919c37STaniya Das static struct clk_init_data gcc_qupv3_wrap1_s7_clk_src_init = {
732*d1919c37STaniya Das 	.name = "gcc_qupv3_wrap1_s7_clk_src",
733*d1919c37STaniya Das 	.parent_data = gcc_parent_data_0,
734*d1919c37STaniya Das 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
735*d1919c37STaniya Das 	.flags = CLK_SET_RATE_PARENT,
736*d1919c37STaniya Das 	.ops = &clk_rcg2_shared_no_init_park_ops,
737*d1919c37STaniya Das };
738*d1919c37STaniya Das 
739*d1919c37STaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s7_clk_src = {
740*d1919c37STaniya Das 	.cmd_rcgr = 0x18790,
741*d1919c37STaniya Das 	.mnd_width = 16,
742*d1919c37STaniya Das 	.hid_width = 5,
743*d1919c37STaniya Das 	.parent_map = gcc_parent_map_0,
744*d1919c37STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap1_s4_clk_src,
745*d1919c37STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap1_s7_clk_src_init,
746*d1919c37STaniya Das };
747*d1919c37STaniya Das 
748*d1919c37STaniya Das static struct clk_init_data gcc_qupv3_wrap2_s0_clk_src_init = {
749*d1919c37STaniya Das 	.name = "gcc_qupv3_wrap2_s0_clk_src",
750*d1919c37STaniya Das 	.parent_data = gcc_parent_data_0,
751*d1919c37STaniya Das 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
752*d1919c37STaniya Das 	.flags = CLK_SET_RATE_PARENT,
753*d1919c37STaniya Das 	.ops = &clk_rcg2_shared_no_init_park_ops,
754*d1919c37STaniya Das };
755*d1919c37STaniya Das 
756*d1919c37STaniya Das static struct clk_rcg2 gcc_qupv3_wrap2_s0_clk_src = {
757*d1919c37STaniya Das 	.cmd_rcgr = 0x1e014,
758*d1919c37STaniya Das 	.mnd_width = 16,
759*d1919c37STaniya Das 	.hid_width = 5,
760*d1919c37STaniya Das 	.parent_map = gcc_parent_map_0,
761*d1919c37STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap1_s4_clk_src,
762*d1919c37STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap2_s0_clk_src_init,
763*d1919c37STaniya Das };
764*d1919c37STaniya Das 
765*d1919c37STaniya Das static struct clk_init_data gcc_qupv3_wrap2_s1_clk_src_init = {
766*d1919c37STaniya Das 	.name = "gcc_qupv3_wrap2_s1_clk_src",
767*d1919c37STaniya Das 	.parent_data = gcc_parent_data_0,
768*d1919c37STaniya Das 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
769*d1919c37STaniya Das 	.flags = CLK_SET_RATE_PARENT,
770*d1919c37STaniya Das 	.ops = &clk_rcg2_shared_no_init_park_ops,
771*d1919c37STaniya Das };
772*d1919c37STaniya Das 
773*d1919c37STaniya Das static struct clk_rcg2 gcc_qupv3_wrap2_s1_clk_src = {
774*d1919c37STaniya Das 	.cmd_rcgr = 0x1e150,
775*d1919c37STaniya Das 	.mnd_width = 16,
776*d1919c37STaniya Das 	.hid_width = 5,
777*d1919c37STaniya Das 	.parent_map = gcc_parent_map_0,
778*d1919c37STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap1_s4_clk_src,
779*d1919c37STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap2_s1_clk_src_init,
780*d1919c37STaniya Das };
781*d1919c37STaniya Das 
782*d1919c37STaniya Das static struct clk_init_data gcc_qupv3_wrap2_s2_clk_src_init = {
783*d1919c37STaniya Das 	.name = "gcc_qupv3_wrap2_s2_clk_src",
784*d1919c37STaniya Das 	.parent_data = gcc_parent_data_0,
785*d1919c37STaniya Das 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
786*d1919c37STaniya Das 	.flags = CLK_SET_RATE_PARENT,
787*d1919c37STaniya Das 	.ops = &clk_rcg2_shared_no_init_park_ops,
788*d1919c37STaniya Das };
789*d1919c37STaniya Das 
790*d1919c37STaniya Das static struct clk_rcg2 gcc_qupv3_wrap2_s2_clk_src = {
791*d1919c37STaniya Das 	.cmd_rcgr = 0x1e28c,
792*d1919c37STaniya Das 	.mnd_width = 16,
793*d1919c37STaniya Das 	.hid_width = 5,
794*d1919c37STaniya Das 	.parent_map = gcc_parent_map_0,
795*d1919c37STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap1_s4_clk_src,
796*d1919c37STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap2_s2_clk_src_init,
797*d1919c37STaniya Das };
798*d1919c37STaniya Das 
799*d1919c37STaniya Das static struct clk_init_data gcc_qupv3_wrap2_s3_clk_src_init = {
800*d1919c37STaniya Das 	.name = "gcc_qupv3_wrap2_s3_clk_src",
801*d1919c37STaniya Das 	.parent_data = gcc_parent_data_0,
802*d1919c37STaniya Das 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
803*d1919c37STaniya Das 	.flags = CLK_SET_RATE_PARENT,
804*d1919c37STaniya Das 	.ops = &clk_rcg2_shared_no_init_park_ops,
805*d1919c37STaniya Das };
806*d1919c37STaniya Das 
807*d1919c37STaniya Das static struct clk_rcg2 gcc_qupv3_wrap2_s3_clk_src = {
808*d1919c37STaniya Das 	.cmd_rcgr = 0x1e3c8,
809*d1919c37STaniya Das 	.mnd_width = 16,
810*d1919c37STaniya Das 	.hid_width = 5,
811*d1919c37STaniya Das 	.parent_map = gcc_parent_map_0,
812*d1919c37STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap1_s0_clk_src,
813*d1919c37STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap2_s3_clk_src_init,
814*d1919c37STaniya Das };
815*d1919c37STaniya Das 
816*d1919c37STaniya Das static struct clk_init_data gcc_qupv3_wrap2_s4_clk_src_init = {
817*d1919c37STaniya Das 	.name = "gcc_qupv3_wrap2_s4_clk_src",
818*d1919c37STaniya Das 	.parent_data = gcc_parent_data_0,
819*d1919c37STaniya Das 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
820*d1919c37STaniya Das 	.flags = CLK_SET_RATE_PARENT,
821*d1919c37STaniya Das 	.ops = &clk_rcg2_shared_no_init_park_ops,
822*d1919c37STaniya Das };
823*d1919c37STaniya Das 
824*d1919c37STaniya Das static struct clk_rcg2 gcc_qupv3_wrap2_s4_clk_src = {
825*d1919c37STaniya Das 	.cmd_rcgr = 0x1e504,
826*d1919c37STaniya Das 	.mnd_width = 16,
827*d1919c37STaniya Das 	.hid_width = 5,
828*d1919c37STaniya Das 	.parent_map = gcc_parent_map_0,
829*d1919c37STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap1_s0_clk_src,
830*d1919c37STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap2_s4_clk_src_init,
831*d1919c37STaniya Das };
832*d1919c37STaniya Das 
833*d1919c37STaniya Das static const struct freq_tbl ftbl_gcc_qupv3_wrap3_ibi_ctrl_0_clk_src[] = {
834*d1919c37STaniya Das 	F(37500000, P_GCC_GPLL0_OUT_EVEN, 8, 0, 0),
835*d1919c37STaniya Das 	{ }
836*d1919c37STaniya Das };
837*d1919c37STaniya Das 
838*d1919c37STaniya Das static struct clk_rcg2 gcc_qupv3_wrap3_ibi_ctrl_0_clk_src = {
839*d1919c37STaniya Das 	.cmd_rcgr = 0xa877c,
840*d1919c37STaniya Das 	.mnd_width = 0,
841*d1919c37STaniya Das 	.hid_width = 5,
842*d1919c37STaniya Das 	.parent_map = gcc_parent_map_1,
843*d1919c37STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap3_ibi_ctrl_0_clk_src,
844*d1919c37STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
845*d1919c37STaniya Das 		.name = "gcc_qupv3_wrap3_ibi_ctrl_0_clk_src",
846*d1919c37STaniya Das 		.parent_data = gcc_parent_data_1,
847*d1919c37STaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_1),
848*d1919c37STaniya Das 		.flags = CLK_SET_RATE_PARENT,
849*d1919c37STaniya Das 		.ops = &clk_rcg2_shared_no_init_park_ops,
850*d1919c37STaniya Das 	},
851*d1919c37STaniya Das };
852*d1919c37STaniya Das 
853*d1919c37STaniya Das static struct clk_init_data gcc_qupv3_wrap3_s0_clk_src_init = {
854*d1919c37STaniya Das 	.name = "gcc_qupv3_wrap3_s0_clk_src",
855*d1919c37STaniya Das 	.parent_data = gcc_parent_data_0,
856*d1919c37STaniya Das 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
857*d1919c37STaniya Das 	.flags = CLK_SET_RATE_PARENT,
858*d1919c37STaniya Das 	.ops = &clk_rcg2_shared_no_init_park_ops,
859*d1919c37STaniya Das };
860*d1919c37STaniya Das 
861*d1919c37STaniya Das static struct clk_rcg2 gcc_qupv3_wrap3_s0_clk_src = {
862*d1919c37STaniya Das 	.cmd_rcgr = 0xa8014,
863*d1919c37STaniya Das 	.mnd_width = 16,
864*d1919c37STaniya Das 	.hid_width = 5,
865*d1919c37STaniya Das 	.parent_map = gcc_parent_map_0,
866*d1919c37STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap1_s0_clk_src,
867*d1919c37STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap3_s0_clk_src_init,
868*d1919c37STaniya Das };
869*d1919c37STaniya Das 
870*d1919c37STaniya Das static struct clk_init_data gcc_qupv3_wrap3_s1_clk_src_init = {
871*d1919c37STaniya Das 	.name = "gcc_qupv3_wrap3_s1_clk_src",
872*d1919c37STaniya Das 	.parent_data = gcc_parent_data_0,
873*d1919c37STaniya Das 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
874*d1919c37STaniya Das 	.flags = CLK_SET_RATE_PARENT,
875*d1919c37STaniya Das 	.ops = &clk_rcg2_shared_no_init_park_ops,
876*d1919c37STaniya Das };
877*d1919c37STaniya Das 
878*d1919c37STaniya Das static struct clk_rcg2 gcc_qupv3_wrap3_s1_clk_src = {
879*d1919c37STaniya Das 	.cmd_rcgr = 0xa8150,
880*d1919c37STaniya Das 	.mnd_width = 16,
881*d1919c37STaniya Das 	.hid_width = 5,
882*d1919c37STaniya Das 	.parent_map = gcc_parent_map_0,
883*d1919c37STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap1_s4_clk_src,
884*d1919c37STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap3_s1_clk_src_init,
885*d1919c37STaniya Das };
886*d1919c37STaniya Das 
887*d1919c37STaniya Das static struct clk_init_data gcc_qupv3_wrap3_s2_clk_src_init = {
888*d1919c37STaniya Das 	.name = "gcc_qupv3_wrap3_s2_clk_src",
889*d1919c37STaniya Das 	.parent_data = gcc_parent_data_0,
890*d1919c37STaniya Das 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
891*d1919c37STaniya Das 	.flags = CLK_SET_RATE_PARENT,
892*d1919c37STaniya Das 	.ops = &clk_rcg2_shared_no_init_park_ops,
893*d1919c37STaniya Das };
894*d1919c37STaniya Das 
895*d1919c37STaniya Das static struct clk_rcg2 gcc_qupv3_wrap3_s2_clk_src = {
896*d1919c37STaniya Das 	.cmd_rcgr = 0xa828c,
897*d1919c37STaniya Das 	.mnd_width = 16,
898*d1919c37STaniya Das 	.hid_width = 5,
899*d1919c37STaniya Das 	.parent_map = gcc_parent_map_0,
900*d1919c37STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap1_s4_clk_src,
901*d1919c37STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap3_s2_clk_src_init,
902*d1919c37STaniya Das };
903*d1919c37STaniya Das 
904*d1919c37STaniya Das static struct clk_init_data gcc_qupv3_wrap3_s3_clk_src_init = {
905*d1919c37STaniya Das 	.name = "gcc_qupv3_wrap3_s3_clk_src",
906*d1919c37STaniya Das 	.parent_data = gcc_parent_data_0,
907*d1919c37STaniya Das 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
908*d1919c37STaniya Das 	.flags = CLK_SET_RATE_PARENT,
909*d1919c37STaniya Das 	.ops = &clk_rcg2_shared_no_init_park_ops,
910*d1919c37STaniya Das };
911*d1919c37STaniya Das 
912*d1919c37STaniya Das static struct clk_rcg2 gcc_qupv3_wrap3_s3_clk_src = {
913*d1919c37STaniya Das 	.cmd_rcgr = 0xa83c8,
914*d1919c37STaniya Das 	.mnd_width = 16,
915*d1919c37STaniya Das 	.hid_width = 5,
916*d1919c37STaniya Das 	.parent_map = gcc_parent_map_0,
917*d1919c37STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap1_s0_clk_src,
918*d1919c37STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap3_s3_clk_src_init,
919*d1919c37STaniya Das };
920*d1919c37STaniya Das 
921*d1919c37STaniya Das static struct clk_init_data gcc_qupv3_wrap3_s4_clk_src_init = {
922*d1919c37STaniya Das 	.name = "gcc_qupv3_wrap3_s4_clk_src",
923*d1919c37STaniya Das 	.parent_data = gcc_parent_data_0,
924*d1919c37STaniya Das 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
925*d1919c37STaniya Das 	.flags = CLK_SET_RATE_PARENT,
926*d1919c37STaniya Das 	.ops = &clk_rcg2_shared_no_init_park_ops,
927*d1919c37STaniya Das };
928*d1919c37STaniya Das 
929*d1919c37STaniya Das static struct clk_rcg2 gcc_qupv3_wrap3_s4_clk_src = {
930*d1919c37STaniya Das 	.cmd_rcgr = 0xa8504,
931*d1919c37STaniya Das 	.mnd_width = 16,
932*d1919c37STaniya Das 	.hid_width = 5,
933*d1919c37STaniya Das 	.parent_map = gcc_parent_map_0,
934*d1919c37STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap1_s0_clk_src,
935*d1919c37STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap3_s4_clk_src_init,
936*d1919c37STaniya Das };
937*d1919c37STaniya Das 
938*d1919c37STaniya Das static const struct freq_tbl ftbl_gcc_qupv3_wrap3_s5_clk_src[] = {
939*d1919c37STaniya Das 	F(7372800, P_GCC_GPLL0_OUT_EVEN, 1, 384, 15625),
940*d1919c37STaniya Das 	F(14745600, P_GCC_GPLL0_OUT_EVEN, 1, 768, 15625),
941*d1919c37STaniya Das 	F(19200000, P_BI_TCXO, 1, 0, 0),
942*d1919c37STaniya Das 	F(29491200, P_GCC_GPLL0_OUT_EVEN, 1, 1536, 15625),
943*d1919c37STaniya Das 	F(32000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 75),
944*d1919c37STaniya Das 	F(48000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 25),
945*d1919c37STaniya Das 	F(51200000, P_GCC_GPLL0_OUT_EVEN, 1, 64, 375),
946*d1919c37STaniya Das 	F(60000000, P_GCC_GPLL0_OUT_EVEN, 5, 0, 0),
947*d1919c37STaniya Das 	F(64000000, P_GCC_GPLL0_OUT_EVEN, 1, 16, 75),
948*d1919c37STaniya Das 	F(66666667, P_GCC_GPLL0_OUT_MAIN, 9, 0, 0),
949*d1919c37STaniya Das 	F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0),
950*d1919c37STaniya Das 	F(80000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 15),
951*d1919c37STaniya Das 	F(96000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 25),
952*d1919c37STaniya Das 	F(100000000, P_GCC_GPLL0_OUT_MAIN, 6, 0, 0),
953*d1919c37STaniya Das 	F(102400000, P_GCC_GPLL0_OUT_EVEN, 1, 128, 375),
954*d1919c37STaniya Das 	F(112000000, P_GCC_GPLL0_OUT_EVEN, 1, 28, 75),
955*d1919c37STaniya Das 	F(117964800, P_GCC_GPLL0_OUT_EVEN, 1, 6144, 15625),
956*d1919c37STaniya Das 	F(120000000, P_GCC_GPLL0_OUT_MAIN, 5, 0, 0),
957*d1919c37STaniya Das 	F(128000000, P_GCC_GPLL0_OUT_MAIN, 1, 16, 75),
958*d1919c37STaniya Das 	{ }
959*d1919c37STaniya Das };
960*d1919c37STaniya Das 
961*d1919c37STaniya Das static struct clk_init_data gcc_qupv3_wrap3_s5_clk_src_init = {
962*d1919c37STaniya Das 	.name = "gcc_qupv3_wrap3_s5_clk_src",
963*d1919c37STaniya Das 	.parent_data = gcc_parent_data_0,
964*d1919c37STaniya Das 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
965*d1919c37STaniya Das 	.flags = CLK_SET_RATE_PARENT,
966*d1919c37STaniya Das 	.ops = &clk_rcg2_shared_no_init_park_ops,
967*d1919c37STaniya Das };
968*d1919c37STaniya Das 
969*d1919c37STaniya Das static struct clk_rcg2 gcc_qupv3_wrap3_s5_clk_src = {
970*d1919c37STaniya Das 	.cmd_rcgr = 0xa8640,
971*d1919c37STaniya Das 	.mnd_width = 16,
972*d1919c37STaniya Das 	.hid_width = 5,
973*d1919c37STaniya Das 	.parent_map = gcc_parent_map_0,
974*d1919c37STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap3_s5_clk_src,
975*d1919c37STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap3_s5_clk_src_init,
976*d1919c37STaniya Das };
977*d1919c37STaniya Das 
978*d1919c37STaniya Das static struct clk_init_data gcc_qupv3_wrap4_s0_clk_src_init = {
979*d1919c37STaniya Das 	.name = "gcc_qupv3_wrap4_s0_clk_src",
980*d1919c37STaniya Das 	.parent_data = gcc_parent_data_0,
981*d1919c37STaniya Das 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
982*d1919c37STaniya Das 	.flags = CLK_SET_RATE_PARENT,
983*d1919c37STaniya Das 	.ops = &clk_rcg2_shared_no_init_park_ops,
984*d1919c37STaniya Das };
985*d1919c37STaniya Das 
986*d1919c37STaniya Das static struct clk_rcg2 gcc_qupv3_wrap4_s0_clk_src = {
987*d1919c37STaniya Das 	.cmd_rcgr = 0xa9014,
988*d1919c37STaniya Das 	.mnd_width = 16,
989*d1919c37STaniya Das 	.hid_width = 5,
990*d1919c37STaniya Das 	.parent_map = gcc_parent_map_0,
991*d1919c37STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap1_s4_clk_src,
992*d1919c37STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap4_s0_clk_src_init,
993*d1919c37STaniya Das };
994*d1919c37STaniya Das 
995*d1919c37STaniya Das static struct clk_init_data gcc_qupv3_wrap4_s1_clk_src_init = {
996*d1919c37STaniya Das 	.name = "gcc_qupv3_wrap4_s1_clk_src",
997*d1919c37STaniya Das 	.parent_data = gcc_parent_data_0,
998*d1919c37STaniya Das 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
999*d1919c37STaniya Das 	.flags = CLK_SET_RATE_PARENT,
1000*d1919c37STaniya Das 	.ops = &clk_rcg2_shared_no_init_park_ops,
1001*d1919c37STaniya Das };
1002*d1919c37STaniya Das 
1003*d1919c37STaniya Das static struct clk_rcg2 gcc_qupv3_wrap4_s1_clk_src = {
1004*d1919c37STaniya Das 	.cmd_rcgr = 0xa9150,
1005*d1919c37STaniya Das 	.mnd_width = 16,
1006*d1919c37STaniya Das 	.hid_width = 5,
1007*d1919c37STaniya Das 	.parent_map = gcc_parent_map_0,
1008*d1919c37STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap1_s4_clk_src,
1009*d1919c37STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap4_s1_clk_src_init,
1010*d1919c37STaniya Das };
1011*d1919c37STaniya Das 
1012*d1919c37STaniya Das static struct clk_init_data gcc_qupv3_wrap4_s2_clk_src_init = {
1013*d1919c37STaniya Das 	.name = "gcc_qupv3_wrap4_s2_clk_src",
1014*d1919c37STaniya Das 	.parent_data = gcc_parent_data_0,
1015*d1919c37STaniya Das 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1016*d1919c37STaniya Das 	.flags = CLK_SET_RATE_PARENT,
1017*d1919c37STaniya Das 	.ops = &clk_rcg2_shared_no_init_park_ops,
1018*d1919c37STaniya Das };
1019*d1919c37STaniya Das 
1020*d1919c37STaniya Das static struct clk_rcg2 gcc_qupv3_wrap4_s2_clk_src = {
1021*d1919c37STaniya Das 	.cmd_rcgr = 0xa928c,
1022*d1919c37STaniya Das 	.mnd_width = 16,
1023*d1919c37STaniya Das 	.hid_width = 5,
1024*d1919c37STaniya Das 	.parent_map = gcc_parent_map_0,
1025*d1919c37STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap1_s4_clk_src,
1026*d1919c37STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap4_s2_clk_src_init,
1027*d1919c37STaniya Das };
1028*d1919c37STaniya Das 
1029*d1919c37STaniya Das static struct clk_init_data gcc_qupv3_wrap4_s3_clk_src_init = {
1030*d1919c37STaniya Das 	.name = "gcc_qupv3_wrap4_s3_clk_src",
1031*d1919c37STaniya Das 	.parent_data = gcc_parent_data_0,
1032*d1919c37STaniya Das 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1033*d1919c37STaniya Das 	.flags = CLK_SET_RATE_PARENT,
1034*d1919c37STaniya Das 	.ops = &clk_rcg2_shared_no_init_park_ops,
1035*d1919c37STaniya Das };
1036*d1919c37STaniya Das 
1037*d1919c37STaniya Das static struct clk_rcg2 gcc_qupv3_wrap4_s3_clk_src = {
1038*d1919c37STaniya Das 	.cmd_rcgr = 0xa93c8,
1039*d1919c37STaniya Das 	.mnd_width = 16,
1040*d1919c37STaniya Das 	.hid_width = 5,
1041*d1919c37STaniya Das 	.parent_map = gcc_parent_map_0,
1042*d1919c37STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap1_s0_clk_src,
1043*d1919c37STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap4_s3_clk_src_init,
1044*d1919c37STaniya Das };
1045*d1919c37STaniya Das 
1046*d1919c37STaniya Das static struct clk_init_data gcc_qupv3_wrap4_s4_clk_src_init = {
1047*d1919c37STaniya Das 	.name = "gcc_qupv3_wrap4_s4_clk_src",
1048*d1919c37STaniya Das 	.parent_data = gcc_parent_data_0,
1049*d1919c37STaniya Das 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1050*d1919c37STaniya Das 	.flags = CLK_SET_RATE_PARENT,
1051*d1919c37STaniya Das 	.ops = &clk_rcg2_shared_no_init_park_ops,
1052*d1919c37STaniya Das };
1053*d1919c37STaniya Das 
1054*d1919c37STaniya Das static struct clk_rcg2 gcc_qupv3_wrap4_s4_clk_src = {
1055*d1919c37STaniya Das 	.cmd_rcgr = 0xa9504,
1056*d1919c37STaniya Das 	.mnd_width = 16,
1057*d1919c37STaniya Das 	.hid_width = 5,
1058*d1919c37STaniya Das 	.parent_map = gcc_parent_map_0,
1059*d1919c37STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap1_s0_clk_src,
1060*d1919c37STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap4_s4_clk_src_init,
1061*d1919c37STaniya Das };
1062*d1919c37STaniya Das 
1063*d1919c37STaniya Das static const struct freq_tbl ftbl_gcc_sdcc2_apps_clk_src[] = {
1064*d1919c37STaniya Das 	F(400000, P_BI_TCXO, 12, 1, 4),
1065*d1919c37STaniya Das 	F(25000000, P_GCC_GPLL0_OUT_EVEN, 12, 0, 0),
1066*d1919c37STaniya Das 	F(50000000, P_GCC_GPLL0_OUT_EVEN, 6, 0, 0),
1067*d1919c37STaniya Das 	F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0),
1068*d1919c37STaniya Das 	F(100000000, P_GCC_GPLL0_OUT_EVEN, 3, 0, 0),
1069*d1919c37STaniya Das 	F(202000000, P_GCC_GPLL9_OUT_MAIN, 4, 0, 0),
1070*d1919c37STaniya Das 	{ }
1071*d1919c37STaniya Das };
1072*d1919c37STaniya Das 
1073*d1919c37STaniya Das static struct clk_rcg2 gcc_sdcc2_apps_clk_src = {
1074*d1919c37STaniya Das 	.cmd_rcgr = 0x1401c,
1075*d1919c37STaniya Das 	.mnd_width = 8,
1076*d1919c37STaniya Das 	.hid_width = 5,
1077*d1919c37STaniya Das 	.parent_map = gcc_parent_map_8,
1078*d1919c37STaniya Das 	.freq_tbl = ftbl_gcc_sdcc2_apps_clk_src,
1079*d1919c37STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
1080*d1919c37STaniya Das 		.name = "gcc_sdcc2_apps_clk_src",
1081*d1919c37STaniya Das 		.parent_data = gcc_parent_data_8,
1082*d1919c37STaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_8),
1083*d1919c37STaniya Das 		.flags = CLK_SET_RATE_PARENT,
1084*d1919c37STaniya Das 		.ops = &clk_rcg2_shared_floor_ops,
1085*d1919c37STaniya Das 	},
1086*d1919c37STaniya Das };
1087*d1919c37STaniya Das 
1088*d1919c37STaniya Das static const struct freq_tbl ftbl_gcc_sdcc4_apps_clk_src[] = {
1089*d1919c37STaniya Das 	F(400000, P_BI_TCXO, 12, 1, 4),
1090*d1919c37STaniya Das 	F(25000000, P_GCC_GPLL0_OUT_EVEN, 12, 0, 0),
1091*d1919c37STaniya Das 	F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0),
1092*d1919c37STaniya Das 	{ }
1093*d1919c37STaniya Das };
1094*d1919c37STaniya Das 
1095*d1919c37STaniya Das static struct clk_rcg2 gcc_sdcc4_apps_clk_src = {
1096*d1919c37STaniya Das 	.cmd_rcgr = 0x1601c,
1097*d1919c37STaniya Das 	.mnd_width = 8,
1098*d1919c37STaniya Das 	.hid_width = 5,
1099*d1919c37STaniya Das 	.parent_map = gcc_parent_map_0,
1100*d1919c37STaniya Das 	.freq_tbl = ftbl_gcc_sdcc4_apps_clk_src,
1101*d1919c37STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
1102*d1919c37STaniya Das 		.name = "gcc_sdcc4_apps_clk_src",
1103*d1919c37STaniya Das 		.parent_data = gcc_parent_data_0,
1104*d1919c37STaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1105*d1919c37STaniya Das 		.flags = CLK_SET_RATE_PARENT,
1106*d1919c37STaniya Das 		.ops = &clk_rcg2_shared_floor_ops,
1107*d1919c37STaniya Das 	},
1108*d1919c37STaniya Das };
1109*d1919c37STaniya Das 
1110*d1919c37STaniya Das static const struct freq_tbl ftbl_gcc_ufs_phy_axi_clk_src[] = {
1111*d1919c37STaniya Das 	F(25000000, P_GCC_GPLL0_OUT_EVEN, 12, 0, 0),
1112*d1919c37STaniya Das 	F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0),
1113*d1919c37STaniya Das 	F(100000000, P_GCC_GPLL0_OUT_EVEN, 3, 0, 0),
1114*d1919c37STaniya Das 	F(201500000, P_GCC_GPLL4_OUT_MAIN, 4, 0, 0),
1115*d1919c37STaniya Das 	F(403000000, P_GCC_GPLL4_OUT_MAIN, 2, 0, 0),
1116*d1919c37STaniya Das 	{ }
1117*d1919c37STaniya Das };
1118*d1919c37STaniya Das 
1119*d1919c37STaniya Das static struct clk_rcg2 gcc_ufs_phy_axi_clk_src = {
1120*d1919c37STaniya Das 	.cmd_rcgr = 0x77034,
1121*d1919c37STaniya Das 	.mnd_width = 8,
1122*d1919c37STaniya Das 	.hid_width = 5,
1123*d1919c37STaniya Das 	.parent_map = gcc_parent_map_3,
1124*d1919c37STaniya Das 	.freq_tbl = ftbl_gcc_ufs_phy_axi_clk_src,
1125*d1919c37STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
1126*d1919c37STaniya Das 		.name = "gcc_ufs_phy_axi_clk_src",
1127*d1919c37STaniya Das 		.parent_data = gcc_parent_data_3,
1128*d1919c37STaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_3),
1129*d1919c37STaniya Das 		.flags = CLK_SET_RATE_PARENT,
1130*d1919c37STaniya Das 		.ops = &clk_rcg2_shared_no_init_park_ops,
1131*d1919c37STaniya Das 	},
1132*d1919c37STaniya Das };
1133*d1919c37STaniya Das 
1134*d1919c37STaniya Das static const struct freq_tbl ftbl_gcc_ufs_phy_ice_core_clk_src[] = {
1135*d1919c37STaniya Das 	F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0),
1136*d1919c37STaniya Das 	F(100000000, P_GCC_GPLL0_OUT_EVEN, 3, 0, 0),
1137*d1919c37STaniya Das 	F(201500000, P_GCC_GPLL4_OUT_MAIN, 4, 0, 0),
1138*d1919c37STaniya Das 	F(403000000, P_GCC_GPLL4_OUT_MAIN, 2, 0, 0),
1139*d1919c37STaniya Das 	{ }
1140*d1919c37STaniya Das };
1141*d1919c37STaniya Das 
1142*d1919c37STaniya Das static struct clk_rcg2 gcc_ufs_phy_ice_core_clk_src = {
1143*d1919c37STaniya Das 	.cmd_rcgr = 0x7708c,
1144*d1919c37STaniya Das 	.mnd_width = 0,
1145*d1919c37STaniya Das 	.hid_width = 5,
1146*d1919c37STaniya Das 	.parent_map = gcc_parent_map_3,
1147*d1919c37STaniya Das 	.freq_tbl = ftbl_gcc_ufs_phy_ice_core_clk_src,
1148*d1919c37STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
1149*d1919c37STaniya Das 		.name = "gcc_ufs_phy_ice_core_clk_src",
1150*d1919c37STaniya Das 		.parent_data = gcc_parent_data_3,
1151*d1919c37STaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_3),
1152*d1919c37STaniya Das 		.flags = CLK_SET_RATE_PARENT,
1153*d1919c37STaniya Das 		.ops = &clk_rcg2_shared_no_init_park_ops,
1154*d1919c37STaniya Das 	},
1155*d1919c37STaniya Das };
1156*d1919c37STaniya Das 
1157*d1919c37STaniya Das static const struct freq_tbl ftbl_gcc_ufs_phy_phy_aux_clk_src[] = {
1158*d1919c37STaniya Das 	F(9600000, P_BI_TCXO, 2, 0, 0),
1159*d1919c37STaniya Das 	F(19200000, P_BI_TCXO, 1, 0, 0),
1160*d1919c37STaniya Das 	{ }
1161*d1919c37STaniya Das };
1162*d1919c37STaniya Das 
1163*d1919c37STaniya Das static struct clk_rcg2 gcc_ufs_phy_phy_aux_clk_src = {
1164*d1919c37STaniya Das 	.cmd_rcgr = 0x770c0,
1165*d1919c37STaniya Das 	.mnd_width = 0,
1166*d1919c37STaniya Das 	.hid_width = 5,
1167*d1919c37STaniya Das 	.parent_map = gcc_parent_map_4,
1168*d1919c37STaniya Das 	.freq_tbl = ftbl_gcc_ufs_phy_phy_aux_clk_src,
1169*d1919c37STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
1170*d1919c37STaniya Das 		.name = "gcc_ufs_phy_phy_aux_clk_src",
1171*d1919c37STaniya Das 		.parent_data = gcc_parent_data_4,
1172*d1919c37STaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_4),
1173*d1919c37STaniya Das 		.flags = CLK_SET_RATE_PARENT,
1174*d1919c37STaniya Das 		.ops = &clk_rcg2_shared_no_init_park_ops,
1175*d1919c37STaniya Das 	},
1176*d1919c37STaniya Das };
1177*d1919c37STaniya Das 
1178*d1919c37STaniya Das static struct clk_rcg2 gcc_ufs_phy_unipro_core_clk_src = {
1179*d1919c37STaniya Das 	.cmd_rcgr = 0x770a4,
1180*d1919c37STaniya Das 	.mnd_width = 0,
1181*d1919c37STaniya Das 	.hid_width = 5,
1182*d1919c37STaniya Das 	.parent_map = gcc_parent_map_3,
1183*d1919c37STaniya Das 	.freq_tbl = ftbl_gcc_ufs_phy_ice_core_clk_src,
1184*d1919c37STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
1185*d1919c37STaniya Das 		.name = "gcc_ufs_phy_unipro_core_clk_src",
1186*d1919c37STaniya Das 		.parent_data = gcc_parent_data_3,
1187*d1919c37STaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_3),
1188*d1919c37STaniya Das 		.flags = CLK_SET_RATE_PARENT,
1189*d1919c37STaniya Das 		.ops = &clk_rcg2_shared_no_init_park_ops,
1190*d1919c37STaniya Das 	},
1191*d1919c37STaniya Das };
1192*d1919c37STaniya Das 
1193*d1919c37STaniya Das static const struct freq_tbl ftbl_gcc_usb30_prim_master_clk_src[] = {
1194*d1919c37STaniya Das 	F(66666667, P_GCC_GPLL0_OUT_EVEN, 4.5, 0, 0),
1195*d1919c37STaniya Das 	F(133333333, P_GCC_GPLL0_OUT_MAIN, 4.5, 0, 0),
1196*d1919c37STaniya Das 	F(200000000, P_GCC_GPLL0_OUT_MAIN, 3, 0, 0),
1197*d1919c37STaniya Das 	F(240000000, P_GCC_GPLL0_OUT_MAIN, 2.5, 0, 0),
1198*d1919c37STaniya Das 	{ }
1199*d1919c37STaniya Das };
1200*d1919c37STaniya Das 
1201*d1919c37STaniya Das static struct clk_rcg2 gcc_usb30_prim_master_clk_src = {
1202*d1919c37STaniya Das 	.cmd_rcgr = 0x39034,
1203*d1919c37STaniya Das 	.mnd_width = 8,
1204*d1919c37STaniya Das 	.hid_width = 5,
1205*d1919c37STaniya Das 	.parent_map = gcc_parent_map_0,
1206*d1919c37STaniya Das 	.freq_tbl = ftbl_gcc_usb30_prim_master_clk_src,
1207*d1919c37STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
1208*d1919c37STaniya Das 		.name = "gcc_usb30_prim_master_clk_src",
1209*d1919c37STaniya Das 		.parent_data = gcc_parent_data_0,
1210*d1919c37STaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1211*d1919c37STaniya Das 		.flags = CLK_SET_RATE_PARENT,
1212*d1919c37STaniya Das 		.ops = &clk_rcg2_shared_no_init_park_ops,
1213*d1919c37STaniya Das 	},
1214*d1919c37STaniya Das };
1215*d1919c37STaniya Das 
1216*d1919c37STaniya Das static struct clk_rcg2 gcc_usb30_prim_mock_utmi_clk_src = {
1217*d1919c37STaniya Das 	.cmd_rcgr = 0x3904c,
1218*d1919c37STaniya Das 	.mnd_width = 0,
1219*d1919c37STaniya Das 	.hid_width = 5,
1220*d1919c37STaniya Das 	.parent_map = gcc_parent_map_0,
1221*d1919c37STaniya Das 	.freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
1222*d1919c37STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
1223*d1919c37STaniya Das 		.name = "gcc_usb30_prim_mock_utmi_clk_src",
1224*d1919c37STaniya Das 		.parent_data = gcc_parent_data_0,
1225*d1919c37STaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1226*d1919c37STaniya Das 		.flags = CLK_SET_RATE_PARENT,
1227*d1919c37STaniya Das 		.ops = &clk_rcg2_shared_no_init_park_ops,
1228*d1919c37STaniya Das 	},
1229*d1919c37STaniya Das };
1230*d1919c37STaniya Das 
1231*d1919c37STaniya Das static struct clk_rcg2 gcc_usb3_prim_phy_aux_clk_src = {
1232*d1919c37STaniya Das 	.cmd_rcgr = 0x39078,
1233*d1919c37STaniya Das 	.mnd_width = 0,
1234*d1919c37STaniya Das 	.hid_width = 5,
1235*d1919c37STaniya Das 	.parent_map = gcc_parent_map_6,
1236*d1919c37STaniya Das 	.freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
1237*d1919c37STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
1238*d1919c37STaniya Das 		.name = "gcc_usb3_prim_phy_aux_clk_src",
1239*d1919c37STaniya Das 		.parent_data = gcc_parent_data_6,
1240*d1919c37STaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_6),
1241*d1919c37STaniya Das 		.flags = CLK_SET_RATE_PARENT,
1242*d1919c37STaniya Das 		.ops = &clk_rcg2_shared_no_init_park_ops,
1243*d1919c37STaniya Das 	},
1244*d1919c37STaniya Das };
1245*d1919c37STaniya Das 
1246*d1919c37STaniya Das static struct clk_regmap_div gcc_qupv3_wrap1_s2_clk_src = {
1247*d1919c37STaniya Das 	.reg = 0x1828c,
1248*d1919c37STaniya Das 	.shift = 0,
1249*d1919c37STaniya Das 	.width = 4,
1250*d1919c37STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
1251*d1919c37STaniya Das 		.name = "gcc_qupv3_wrap1_s2_clk_src",
1252*d1919c37STaniya Das 		.parent_hws = (const struct clk_hw*[]) {
1253*d1919c37STaniya Das 			&gcc_qupv3_wrap1_qspi_ref_clk_src.clkr.hw,
1254*d1919c37STaniya Das 		},
1255*d1919c37STaniya Das 		.num_parents = 1,
1256*d1919c37STaniya Das 		.flags = CLK_SET_RATE_PARENT,
1257*d1919c37STaniya Das 		.ops = &clk_regmap_div_ro_ops,
1258*d1919c37STaniya Das 	},
1259*d1919c37STaniya Das };
1260*d1919c37STaniya Das 
1261*d1919c37STaniya Das static struct clk_regmap_div gcc_usb30_prim_mock_utmi_postdiv_clk_src = {
1262*d1919c37STaniya Das 	.reg = 0x39064,
1263*d1919c37STaniya Das 	.shift = 0,
1264*d1919c37STaniya Das 	.width = 4,
1265*d1919c37STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
1266*d1919c37STaniya Das 		.name = "gcc_usb30_prim_mock_utmi_postdiv_clk_src",
1267*d1919c37STaniya Das 		.parent_hws = (const struct clk_hw*[]) {
1268*d1919c37STaniya Das 			&gcc_usb30_prim_mock_utmi_clk_src.clkr.hw,
1269*d1919c37STaniya Das 		},
1270*d1919c37STaniya Das 		.num_parents = 1,
1271*d1919c37STaniya Das 		.flags = CLK_SET_RATE_PARENT,
1272*d1919c37STaniya Das 		.ops = &clk_regmap_div_ro_ops,
1273*d1919c37STaniya Das 	},
1274*d1919c37STaniya Das };
1275*d1919c37STaniya Das 
1276*d1919c37STaniya Das static struct clk_branch gcc_aggre_noc_pcie_axi_clk = {
1277*d1919c37STaniya Das 	.halt_reg = 0x10068,
1278*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_SKIP,
1279*d1919c37STaniya Das 	.hwcg_reg = 0x10068,
1280*d1919c37STaniya Das 	.hwcg_bit = 1,
1281*d1919c37STaniya Das 	.clkr = {
1282*d1919c37STaniya Das 		.enable_reg = 0x52000,
1283*d1919c37STaniya Das 		.enable_mask = BIT(12),
1284*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
1285*d1919c37STaniya Das 			.name = "gcc_aggre_noc_pcie_axi_clk",
1286*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
1287*d1919c37STaniya Das 		},
1288*d1919c37STaniya Das 	},
1289*d1919c37STaniya Das };
1290*d1919c37STaniya Das 
1291*d1919c37STaniya Das static struct clk_branch gcc_aggre_ufs_phy_axi_clk = {
1292*d1919c37STaniya Das 	.halt_reg = 0x770f0,
1293*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1294*d1919c37STaniya Das 	.hwcg_reg = 0x770f0,
1295*d1919c37STaniya Das 	.hwcg_bit = 1,
1296*d1919c37STaniya Das 	.clkr = {
1297*d1919c37STaniya Das 		.enable_reg = 0x770f0,
1298*d1919c37STaniya Das 		.enable_mask = BIT(0),
1299*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
1300*d1919c37STaniya Das 			.name = "gcc_aggre_ufs_phy_axi_clk",
1301*d1919c37STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1302*d1919c37STaniya Das 				&gcc_ufs_phy_axi_clk_src.clkr.hw,
1303*d1919c37STaniya Das 			},
1304*d1919c37STaniya Das 			.num_parents = 1,
1305*d1919c37STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1306*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
1307*d1919c37STaniya Das 		},
1308*d1919c37STaniya Das 	},
1309*d1919c37STaniya Das };
1310*d1919c37STaniya Das 
1311*d1919c37STaniya Das static struct clk_branch gcc_aggre_usb3_prim_axi_clk = {
1312*d1919c37STaniya Das 	.halt_reg = 0x39094,
1313*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1314*d1919c37STaniya Das 	.hwcg_reg = 0x39094,
1315*d1919c37STaniya Das 	.hwcg_bit = 1,
1316*d1919c37STaniya Das 	.clkr = {
1317*d1919c37STaniya Das 		.enable_reg = 0x39094,
1318*d1919c37STaniya Das 		.enable_mask = BIT(0),
1319*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
1320*d1919c37STaniya Das 			.name = "gcc_aggre_usb3_prim_axi_clk",
1321*d1919c37STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1322*d1919c37STaniya Das 				&gcc_usb30_prim_master_clk_src.clkr.hw,
1323*d1919c37STaniya Das 			},
1324*d1919c37STaniya Das 			.num_parents = 1,
1325*d1919c37STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1326*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
1327*d1919c37STaniya Das 		},
1328*d1919c37STaniya Das 	},
1329*d1919c37STaniya Das };
1330*d1919c37STaniya Das 
1331*d1919c37STaniya Das static struct clk_branch gcc_boot_rom_ahb_clk = {
1332*d1919c37STaniya Das 	.halt_reg = 0x38004,
1333*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1334*d1919c37STaniya Das 	.hwcg_reg = 0x38004,
1335*d1919c37STaniya Das 	.hwcg_bit = 1,
1336*d1919c37STaniya Das 	.clkr = {
1337*d1919c37STaniya Das 		.enable_reg = 0x52010,
1338*d1919c37STaniya Das 		.enable_mask = BIT(18),
1339*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
1340*d1919c37STaniya Das 			.name = "gcc_boot_rom_ahb_clk",
1341*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
1342*d1919c37STaniya Das 		},
1343*d1919c37STaniya Das 	},
1344*d1919c37STaniya Das };
1345*d1919c37STaniya Das 
1346*d1919c37STaniya Das static struct clk_branch gcc_camera_hf_axi_clk = {
1347*d1919c37STaniya Das 	.halt_reg = 0x26014,
1348*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_SKIP,
1349*d1919c37STaniya Das 	.hwcg_reg = 0x26014,
1350*d1919c37STaniya Das 	.hwcg_bit = 1,
1351*d1919c37STaniya Das 	.clkr = {
1352*d1919c37STaniya Das 		.enable_reg = 0x26014,
1353*d1919c37STaniya Das 		.enable_mask = BIT(0),
1354*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
1355*d1919c37STaniya Das 			.name = "gcc_camera_hf_axi_clk",
1356*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
1357*d1919c37STaniya Das 		},
1358*d1919c37STaniya Das 	},
1359*d1919c37STaniya Das };
1360*d1919c37STaniya Das 
1361*d1919c37STaniya Das static struct clk_branch gcc_camera_sf_axi_clk = {
1362*d1919c37STaniya Das 	.halt_reg = 0x26028,
1363*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_SKIP,
1364*d1919c37STaniya Das 	.hwcg_reg = 0x26028,
1365*d1919c37STaniya Das 	.hwcg_bit = 1,
1366*d1919c37STaniya Das 	.clkr = {
1367*d1919c37STaniya Das 		.enable_reg = 0x26028,
1368*d1919c37STaniya Das 		.enable_mask = BIT(0),
1369*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
1370*d1919c37STaniya Das 			.name = "gcc_camera_sf_axi_clk",
1371*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
1372*d1919c37STaniya Das 		},
1373*d1919c37STaniya Das 	},
1374*d1919c37STaniya Das };
1375*d1919c37STaniya Das 
1376*d1919c37STaniya Das static struct clk_branch gcc_cfg_noc_pcie_anoc_ahb_clk = {
1377*d1919c37STaniya Das 	.halt_reg = 0x10050,
1378*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_SKIP,
1379*d1919c37STaniya Das 	.hwcg_reg = 0x10050,
1380*d1919c37STaniya Das 	.hwcg_bit = 1,
1381*d1919c37STaniya Das 	.clkr = {
1382*d1919c37STaniya Das 		.enable_reg = 0x52000,
1383*d1919c37STaniya Das 		.enable_mask = BIT(20),
1384*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
1385*d1919c37STaniya Das 			.name = "gcc_cfg_noc_pcie_anoc_ahb_clk",
1386*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
1387*d1919c37STaniya Das 		},
1388*d1919c37STaniya Das 	},
1389*d1919c37STaniya Das };
1390*d1919c37STaniya Das 
1391*d1919c37STaniya Das static struct clk_branch gcc_cfg_noc_usb3_prim_axi_clk = {
1392*d1919c37STaniya Das 	.halt_reg = 0x39090,
1393*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1394*d1919c37STaniya Das 	.hwcg_reg = 0x39090,
1395*d1919c37STaniya Das 	.hwcg_bit = 1,
1396*d1919c37STaniya Das 	.clkr = {
1397*d1919c37STaniya Das 		.enable_reg = 0x39090,
1398*d1919c37STaniya Das 		.enable_mask = BIT(0),
1399*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
1400*d1919c37STaniya Das 			.name = "gcc_cfg_noc_usb3_prim_axi_clk",
1401*d1919c37STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1402*d1919c37STaniya Das 				&gcc_usb30_prim_master_clk_src.clkr.hw,
1403*d1919c37STaniya Das 			},
1404*d1919c37STaniya Das 			.num_parents = 1,
1405*d1919c37STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1406*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
1407*d1919c37STaniya Das 		},
1408*d1919c37STaniya Das 	},
1409*d1919c37STaniya Das };
1410*d1919c37STaniya Das 
1411*d1919c37STaniya Das static struct clk_branch gcc_cnoc_pcie_sf_axi_clk = {
1412*d1919c37STaniya Das 	.halt_reg = 0x10058,
1413*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1414*d1919c37STaniya Das 	.clkr = {
1415*d1919c37STaniya Das 		.enable_reg = 0x52008,
1416*d1919c37STaniya Das 		.enable_mask = BIT(6),
1417*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
1418*d1919c37STaniya Das 			.name = "gcc_cnoc_pcie_sf_axi_clk",
1419*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
1420*d1919c37STaniya Das 		},
1421*d1919c37STaniya Das 	},
1422*d1919c37STaniya Das };
1423*d1919c37STaniya Das 
1424*d1919c37STaniya Das static struct clk_branch gcc_ddrss_pcie_sf_qtb_clk = {
1425*d1919c37STaniya Das 	.halt_reg = 0x1007c,
1426*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_SKIP,
1427*d1919c37STaniya Das 	.hwcg_reg = 0x1007c,
1428*d1919c37STaniya Das 	.hwcg_bit = 1,
1429*d1919c37STaniya Das 	.clkr = {
1430*d1919c37STaniya Das 		.enable_reg = 0x52000,
1431*d1919c37STaniya Das 		.enable_mask = BIT(19),
1432*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
1433*d1919c37STaniya Das 			.name = "gcc_ddrss_pcie_sf_qtb_clk",
1434*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
1435*d1919c37STaniya Das 		},
1436*d1919c37STaniya Das 	},
1437*d1919c37STaniya Das };
1438*d1919c37STaniya Das 
1439*d1919c37STaniya Das static struct clk_branch gcc_disp_hf_axi_clk = {
1440*d1919c37STaniya Das 	.halt_reg = 0x2701c,
1441*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_SKIP,
1442*d1919c37STaniya Das 	.clkr = {
1443*d1919c37STaniya Das 		.enable_reg = 0x2701c,
1444*d1919c37STaniya Das 		.enable_mask = BIT(0),
1445*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
1446*d1919c37STaniya Das 			.name = "gcc_disp_hf_axi_clk",
1447*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
1448*d1919c37STaniya Das 		},
1449*d1919c37STaniya Das 	},
1450*d1919c37STaniya Das };
1451*d1919c37STaniya Das 
1452*d1919c37STaniya Das static struct clk_branch gcc_disp_sf_axi_clk = {
1453*d1919c37STaniya Das 	.halt_reg = 0x27008,
1454*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_SKIP,
1455*d1919c37STaniya Das 	.hwcg_reg = 0x27008,
1456*d1919c37STaniya Das 	.hwcg_bit = 1,
1457*d1919c37STaniya Das 	.clkr = {
1458*d1919c37STaniya Das 		.enable_reg = 0x27008,
1459*d1919c37STaniya Das 		.enable_mask = BIT(0),
1460*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
1461*d1919c37STaniya Das 			.name = "gcc_disp_sf_axi_clk",
1462*d1919c37STaniya Das 			.ops = &clk_branch2_aon_ops,
1463*d1919c37STaniya Das 		},
1464*d1919c37STaniya Das 	},
1465*d1919c37STaniya Das };
1466*d1919c37STaniya Das 
1467*d1919c37STaniya Das static struct clk_branch gcc_eva_axi0_clk = {
1468*d1919c37STaniya Das 	.halt_reg = 0x9f008,
1469*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_SKIP,
1470*d1919c37STaniya Das 	.hwcg_reg = 0x9f008,
1471*d1919c37STaniya Das 	.hwcg_bit = 1,
1472*d1919c37STaniya Das 	.clkr = {
1473*d1919c37STaniya Das 		.enable_reg = 0x9f008,
1474*d1919c37STaniya Das 		.enable_mask = BIT(0),
1475*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
1476*d1919c37STaniya Das 			.name = "gcc_eva_axi0_clk",
1477*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
1478*d1919c37STaniya Das 		},
1479*d1919c37STaniya Das 	},
1480*d1919c37STaniya Das };
1481*d1919c37STaniya Das 
1482*d1919c37STaniya Das static struct clk_branch gcc_eva_axi0c_clk = {
1483*d1919c37STaniya Das 	.halt_reg = 0x9f01c,
1484*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_SKIP,
1485*d1919c37STaniya Das 	.hwcg_reg = 0x9f01c,
1486*d1919c37STaniya Das 	.hwcg_bit = 1,
1487*d1919c37STaniya Das 	.clkr = {
1488*d1919c37STaniya Das 		.enable_reg = 0x9f01c,
1489*d1919c37STaniya Das 		.enable_mask = BIT(0),
1490*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
1491*d1919c37STaniya Das 			.name = "gcc_eva_axi0c_clk",
1492*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
1493*d1919c37STaniya Das 		},
1494*d1919c37STaniya Das 	},
1495*d1919c37STaniya Das };
1496*d1919c37STaniya Das 
1497*d1919c37STaniya Das static struct clk_branch gcc_gp1_clk = {
1498*d1919c37STaniya Das 	.halt_reg = 0x64000,
1499*d1919c37STaniya Das 	.halt_check = BRANCH_HALT,
1500*d1919c37STaniya Das 	.clkr = {
1501*d1919c37STaniya Das 		.enable_reg = 0x64000,
1502*d1919c37STaniya Das 		.enable_mask = BIT(0),
1503*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
1504*d1919c37STaniya Das 			.name = "gcc_gp1_clk",
1505*d1919c37STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1506*d1919c37STaniya Das 				&gcc_gp1_clk_src.clkr.hw,
1507*d1919c37STaniya Das 			},
1508*d1919c37STaniya Das 			.num_parents = 1,
1509*d1919c37STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1510*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
1511*d1919c37STaniya Das 		},
1512*d1919c37STaniya Das 	},
1513*d1919c37STaniya Das };
1514*d1919c37STaniya Das 
1515*d1919c37STaniya Das static struct clk_branch gcc_gp2_clk = {
1516*d1919c37STaniya Das 	.halt_reg = 0x65000,
1517*d1919c37STaniya Das 	.halt_check = BRANCH_HALT,
1518*d1919c37STaniya Das 	.clkr = {
1519*d1919c37STaniya Das 		.enable_reg = 0x65000,
1520*d1919c37STaniya Das 		.enable_mask = BIT(0),
1521*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
1522*d1919c37STaniya Das 			.name = "gcc_gp2_clk",
1523*d1919c37STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1524*d1919c37STaniya Das 				&gcc_gp2_clk_src.clkr.hw,
1525*d1919c37STaniya Das 			},
1526*d1919c37STaniya Das 			.num_parents = 1,
1527*d1919c37STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1528*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
1529*d1919c37STaniya Das 		},
1530*d1919c37STaniya Das 	},
1531*d1919c37STaniya Das };
1532*d1919c37STaniya Das 
1533*d1919c37STaniya Das static struct clk_branch gcc_gp3_clk = {
1534*d1919c37STaniya Das 	.halt_reg = 0x66000,
1535*d1919c37STaniya Das 	.halt_check = BRANCH_HALT,
1536*d1919c37STaniya Das 	.clkr = {
1537*d1919c37STaniya Das 		.enable_reg = 0x66000,
1538*d1919c37STaniya Das 		.enable_mask = BIT(0),
1539*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
1540*d1919c37STaniya Das 			.name = "gcc_gp3_clk",
1541*d1919c37STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1542*d1919c37STaniya Das 				&gcc_gp3_clk_src.clkr.hw,
1543*d1919c37STaniya Das 			},
1544*d1919c37STaniya Das 			.num_parents = 1,
1545*d1919c37STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1546*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
1547*d1919c37STaniya Das 		},
1548*d1919c37STaniya Das 	},
1549*d1919c37STaniya Das };
1550*d1919c37STaniya Das 
1551*d1919c37STaniya Das static struct clk_branch gcc_gpu_gemnoc_gfx_clk = {
1552*d1919c37STaniya Das 	.halt_reg = 0x71010,
1553*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1554*d1919c37STaniya Das 	.hwcg_reg = 0x71010,
1555*d1919c37STaniya Das 	.hwcg_bit = 1,
1556*d1919c37STaniya Das 	.clkr = {
1557*d1919c37STaniya Das 		.enable_reg = 0x71010,
1558*d1919c37STaniya Das 		.enable_mask = BIT(0),
1559*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
1560*d1919c37STaniya Das 			.name = "gcc_gpu_gemnoc_gfx_clk",
1561*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
1562*d1919c37STaniya Das 		},
1563*d1919c37STaniya Das 	},
1564*d1919c37STaniya Das };
1565*d1919c37STaniya Das 
1566*d1919c37STaniya Das static struct clk_branch gcc_gpu_gpll0_clk_src = {
1567*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_DELAY,
1568*d1919c37STaniya Das 	.clkr = {
1569*d1919c37STaniya Das 		.enable_reg = 0x52000,
1570*d1919c37STaniya Das 		.enable_mask = BIT(15),
1571*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
1572*d1919c37STaniya Das 			.name = "gcc_gpu_gpll0_clk_src",
1573*d1919c37STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1574*d1919c37STaniya Das 				&gcc_gpll0.clkr.hw,
1575*d1919c37STaniya Das 			},
1576*d1919c37STaniya Das 			.num_parents = 1,
1577*d1919c37STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1578*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
1579*d1919c37STaniya Das 		},
1580*d1919c37STaniya Das 	},
1581*d1919c37STaniya Das };
1582*d1919c37STaniya Das 
1583*d1919c37STaniya Das static struct clk_branch gcc_gpu_gpll0_div_clk_src = {
1584*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_DELAY,
1585*d1919c37STaniya Das 	.clkr = {
1586*d1919c37STaniya Das 		.enable_reg = 0x52000,
1587*d1919c37STaniya Das 		.enable_mask = BIT(16),
1588*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
1589*d1919c37STaniya Das 			.name = "gcc_gpu_gpll0_div_clk_src",
1590*d1919c37STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1591*d1919c37STaniya Das 				&gcc_gpll0_out_even.clkr.hw,
1592*d1919c37STaniya Das 			},
1593*d1919c37STaniya Das 			.num_parents = 1,
1594*d1919c37STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1595*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
1596*d1919c37STaniya Das 		},
1597*d1919c37STaniya Das 	},
1598*d1919c37STaniya Das };
1599*d1919c37STaniya Das 
1600*d1919c37STaniya Das static struct clk_branch gcc_pcie_0_aux_clk = {
1601*d1919c37STaniya Das 	.halt_reg = 0x6b044,
1602*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1603*d1919c37STaniya Das 	.clkr = {
1604*d1919c37STaniya Das 		.enable_reg = 0x52008,
1605*d1919c37STaniya Das 		.enable_mask = BIT(3),
1606*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
1607*d1919c37STaniya Das 			.name = "gcc_pcie_0_aux_clk",
1608*d1919c37STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1609*d1919c37STaniya Das 				&gcc_pcie_0_aux_clk_src.clkr.hw,
1610*d1919c37STaniya Das 			},
1611*d1919c37STaniya Das 			.num_parents = 1,
1612*d1919c37STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1613*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
1614*d1919c37STaniya Das 		},
1615*d1919c37STaniya Das 	},
1616*d1919c37STaniya Das };
1617*d1919c37STaniya Das 
1618*d1919c37STaniya Das static struct clk_branch gcc_pcie_0_cfg_ahb_clk = {
1619*d1919c37STaniya Das 	.halt_reg = 0x6b040,
1620*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1621*d1919c37STaniya Das 	.hwcg_reg = 0x6b040,
1622*d1919c37STaniya Das 	.hwcg_bit = 1,
1623*d1919c37STaniya Das 	.clkr = {
1624*d1919c37STaniya Das 		.enable_reg = 0x52008,
1625*d1919c37STaniya Das 		.enable_mask = BIT(2),
1626*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
1627*d1919c37STaniya Das 			.name = "gcc_pcie_0_cfg_ahb_clk",
1628*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
1629*d1919c37STaniya Das 		},
1630*d1919c37STaniya Das 	},
1631*d1919c37STaniya Das };
1632*d1919c37STaniya Das 
1633*d1919c37STaniya Das static struct clk_branch gcc_pcie_0_mstr_axi_clk = {
1634*d1919c37STaniya Das 	.halt_reg = 0x6b030,
1635*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_SKIP,
1636*d1919c37STaniya Das 	.hwcg_reg = 0x6b030,
1637*d1919c37STaniya Das 	.hwcg_bit = 1,
1638*d1919c37STaniya Das 	.clkr = {
1639*d1919c37STaniya Das 		.enable_reg = 0x52008,
1640*d1919c37STaniya Das 		.enable_mask = BIT(1),
1641*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
1642*d1919c37STaniya Das 			.name = "gcc_pcie_0_mstr_axi_clk",
1643*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
1644*d1919c37STaniya Das 		},
1645*d1919c37STaniya Das 	},
1646*d1919c37STaniya Das };
1647*d1919c37STaniya Das 
1648*d1919c37STaniya Das static struct clk_branch gcc_pcie_0_phy_aux_clk = {
1649*d1919c37STaniya Das 	.halt_reg = 0x6b054,
1650*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1651*d1919c37STaniya Das 	.clkr = {
1652*d1919c37STaniya Das 		.enable_reg = 0x52018,
1653*d1919c37STaniya Das 		.enable_mask = BIT(31),
1654*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
1655*d1919c37STaniya Das 			.name = "gcc_pcie_0_phy_aux_clk",
1656*d1919c37STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1657*d1919c37STaniya Das 				&gcc_pcie_0_phy_aux_clk_src.clkr.hw,
1658*d1919c37STaniya Das 			},
1659*d1919c37STaniya Das 			.num_parents = 1,
1660*d1919c37STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1661*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
1662*d1919c37STaniya Das 		},
1663*d1919c37STaniya Das 	},
1664*d1919c37STaniya Das };
1665*d1919c37STaniya Das 
1666*d1919c37STaniya Das static struct clk_branch gcc_pcie_0_phy_rchng_clk = {
1667*d1919c37STaniya Das 	.halt_reg = 0x6b074,
1668*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1669*d1919c37STaniya Das 	.clkr = {
1670*d1919c37STaniya Das 		.enable_reg = 0x52000,
1671*d1919c37STaniya Das 		.enable_mask = BIT(22),
1672*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
1673*d1919c37STaniya Das 			.name = "gcc_pcie_0_phy_rchng_clk",
1674*d1919c37STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1675*d1919c37STaniya Das 				&gcc_pcie_0_phy_rchng_clk_src.clkr.hw,
1676*d1919c37STaniya Das 			},
1677*d1919c37STaniya Das 			.num_parents = 1,
1678*d1919c37STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1679*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
1680*d1919c37STaniya Das 		},
1681*d1919c37STaniya Das 	},
1682*d1919c37STaniya Das };
1683*d1919c37STaniya Das 
1684*d1919c37STaniya Das static struct clk_branch gcc_pcie_0_pipe_clk = {
1685*d1919c37STaniya Das 	.halt_reg = 0x6b064,
1686*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_SKIP,
1687*d1919c37STaniya Das 	.clkr = {
1688*d1919c37STaniya Das 		.enable_reg = 0x52008,
1689*d1919c37STaniya Das 		.enable_mask = BIT(4),
1690*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
1691*d1919c37STaniya Das 			.name = "gcc_pcie_0_pipe_clk",
1692*d1919c37STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1693*d1919c37STaniya Das 				&gcc_pcie_0_pipe_clk_src.clkr.hw,
1694*d1919c37STaniya Das 			},
1695*d1919c37STaniya Das 			.num_parents = 1,
1696*d1919c37STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1697*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
1698*d1919c37STaniya Das 		},
1699*d1919c37STaniya Das 	},
1700*d1919c37STaniya Das };
1701*d1919c37STaniya Das 
1702*d1919c37STaniya Das static struct clk_branch gcc_pcie_0_slv_axi_clk = {
1703*d1919c37STaniya Das 	.halt_reg = 0x6b020,
1704*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1705*d1919c37STaniya Das 	.hwcg_reg = 0x6b020,
1706*d1919c37STaniya Das 	.hwcg_bit = 1,
1707*d1919c37STaniya Das 	.clkr = {
1708*d1919c37STaniya Das 		.enable_reg = 0x52008,
1709*d1919c37STaniya Das 		.enable_mask = BIT(0),
1710*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
1711*d1919c37STaniya Das 			.name = "gcc_pcie_0_slv_axi_clk",
1712*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
1713*d1919c37STaniya Das 		},
1714*d1919c37STaniya Das 	},
1715*d1919c37STaniya Das };
1716*d1919c37STaniya Das 
1717*d1919c37STaniya Das static struct clk_branch gcc_pcie_0_slv_q2a_axi_clk = {
1718*d1919c37STaniya Das 	.halt_reg = 0x6b01c,
1719*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1720*d1919c37STaniya Das 	.clkr = {
1721*d1919c37STaniya Das 		.enable_reg = 0x52008,
1722*d1919c37STaniya Das 		.enable_mask = BIT(5),
1723*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
1724*d1919c37STaniya Das 			.name = "gcc_pcie_0_slv_q2a_axi_clk",
1725*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
1726*d1919c37STaniya Das 		},
1727*d1919c37STaniya Das 	},
1728*d1919c37STaniya Das };
1729*d1919c37STaniya Das 
1730*d1919c37STaniya Das static struct clk_branch gcc_pdm2_clk = {
1731*d1919c37STaniya Das 	.halt_reg = 0x3300c,
1732*d1919c37STaniya Das 	.halt_check = BRANCH_HALT,
1733*d1919c37STaniya Das 	.clkr = {
1734*d1919c37STaniya Das 		.enable_reg = 0x3300c,
1735*d1919c37STaniya Das 		.enable_mask = BIT(0),
1736*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
1737*d1919c37STaniya Das 			.name = "gcc_pdm2_clk",
1738*d1919c37STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1739*d1919c37STaniya Das 				&gcc_pdm2_clk_src.clkr.hw,
1740*d1919c37STaniya Das 			},
1741*d1919c37STaniya Das 			.num_parents = 1,
1742*d1919c37STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1743*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
1744*d1919c37STaniya Das 		},
1745*d1919c37STaniya Das 	},
1746*d1919c37STaniya Das };
1747*d1919c37STaniya Das 
1748*d1919c37STaniya Das static struct clk_branch gcc_pdm_ahb_clk = {
1749*d1919c37STaniya Das 	.halt_reg = 0x33004,
1750*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1751*d1919c37STaniya Das 	.hwcg_reg = 0x33004,
1752*d1919c37STaniya Das 	.hwcg_bit = 1,
1753*d1919c37STaniya Das 	.clkr = {
1754*d1919c37STaniya Das 		.enable_reg = 0x33004,
1755*d1919c37STaniya Das 		.enable_mask = BIT(0),
1756*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
1757*d1919c37STaniya Das 			.name = "gcc_pdm_ahb_clk",
1758*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
1759*d1919c37STaniya Das 		},
1760*d1919c37STaniya Das 	},
1761*d1919c37STaniya Das };
1762*d1919c37STaniya Das 
1763*d1919c37STaniya Das static struct clk_branch gcc_pdm_xo4_clk = {
1764*d1919c37STaniya Das 	.halt_reg = 0x33008,
1765*d1919c37STaniya Das 	.halt_check = BRANCH_HALT,
1766*d1919c37STaniya Das 	.clkr = {
1767*d1919c37STaniya Das 		.enable_reg = 0x33008,
1768*d1919c37STaniya Das 		.enable_mask = BIT(0),
1769*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
1770*d1919c37STaniya Das 			.name = "gcc_pdm_xo4_clk",
1771*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
1772*d1919c37STaniya Das 		},
1773*d1919c37STaniya Das 	},
1774*d1919c37STaniya Das };
1775*d1919c37STaniya Das 
1776*d1919c37STaniya Das static struct clk_branch gcc_qmip_camera_cmd_ahb_clk = {
1777*d1919c37STaniya Das 	.halt_reg = 0x26010,
1778*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1779*d1919c37STaniya Das 	.hwcg_reg = 0x26010,
1780*d1919c37STaniya Das 	.hwcg_bit = 1,
1781*d1919c37STaniya Das 	.clkr = {
1782*d1919c37STaniya Das 		.enable_reg = 0x26010,
1783*d1919c37STaniya Das 		.enable_mask = BIT(0),
1784*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
1785*d1919c37STaniya Das 			.name = "gcc_qmip_camera_cmd_ahb_clk",
1786*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
1787*d1919c37STaniya Das 		},
1788*d1919c37STaniya Das 	},
1789*d1919c37STaniya Das };
1790*d1919c37STaniya Das 
1791*d1919c37STaniya Das static struct clk_branch gcc_qmip_camera_nrt_ahb_clk = {
1792*d1919c37STaniya Das 	.halt_reg = 0x26008,
1793*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1794*d1919c37STaniya Das 	.hwcg_reg = 0x26008,
1795*d1919c37STaniya Das 	.hwcg_bit = 1,
1796*d1919c37STaniya Das 	.clkr = {
1797*d1919c37STaniya Das 		.enable_reg = 0x26008,
1798*d1919c37STaniya Das 		.enable_mask = BIT(0),
1799*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
1800*d1919c37STaniya Das 			.name = "gcc_qmip_camera_nrt_ahb_clk",
1801*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
1802*d1919c37STaniya Das 		},
1803*d1919c37STaniya Das 	},
1804*d1919c37STaniya Das };
1805*d1919c37STaniya Das 
1806*d1919c37STaniya Das static struct clk_branch gcc_qmip_camera_rt_ahb_clk = {
1807*d1919c37STaniya Das 	.halt_reg = 0x2600c,
1808*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1809*d1919c37STaniya Das 	.hwcg_reg = 0x2600c,
1810*d1919c37STaniya Das 	.hwcg_bit = 1,
1811*d1919c37STaniya Das 	.clkr = {
1812*d1919c37STaniya Das 		.enable_reg = 0x2600c,
1813*d1919c37STaniya Das 		.enable_mask = BIT(0),
1814*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
1815*d1919c37STaniya Das 			.name = "gcc_qmip_camera_rt_ahb_clk",
1816*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
1817*d1919c37STaniya Das 		},
1818*d1919c37STaniya Das 	},
1819*d1919c37STaniya Das };
1820*d1919c37STaniya Das 
1821*d1919c37STaniya Das static struct clk_branch gcc_qmip_disp_dcp_sf_ahb_clk = {
1822*d1919c37STaniya Das 	.halt_reg = 0x27030,
1823*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1824*d1919c37STaniya Das 	.hwcg_reg = 0x27030,
1825*d1919c37STaniya Das 	.hwcg_bit = 1,
1826*d1919c37STaniya Das 	.clkr = {
1827*d1919c37STaniya Das 		.enable_reg = 0x27030,
1828*d1919c37STaniya Das 		.enable_mask = BIT(0),
1829*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
1830*d1919c37STaniya Das 			.name = "gcc_qmip_disp_dcp_sf_ahb_clk",
1831*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
1832*d1919c37STaniya Das 		},
1833*d1919c37STaniya Das 	},
1834*d1919c37STaniya Das };
1835*d1919c37STaniya Das 
1836*d1919c37STaniya Das static struct clk_branch gcc_qmip_gpu_ahb_clk = {
1837*d1919c37STaniya Das 	.halt_reg = 0x71008,
1838*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1839*d1919c37STaniya Das 	.hwcg_reg = 0x71008,
1840*d1919c37STaniya Das 	.hwcg_bit = 1,
1841*d1919c37STaniya Das 	.clkr = {
1842*d1919c37STaniya Das 		.enable_reg = 0x71008,
1843*d1919c37STaniya Das 		.enable_mask = BIT(0),
1844*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
1845*d1919c37STaniya Das 			.name = "gcc_qmip_gpu_ahb_clk",
1846*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
1847*d1919c37STaniya Das 		},
1848*d1919c37STaniya Das 	},
1849*d1919c37STaniya Das };
1850*d1919c37STaniya Das 
1851*d1919c37STaniya Das static struct clk_branch gcc_qmip_pcie_ahb_clk = {
1852*d1919c37STaniya Das 	.halt_reg = 0x6b018,
1853*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1854*d1919c37STaniya Das 	.hwcg_reg = 0x6b018,
1855*d1919c37STaniya Das 	.hwcg_bit = 1,
1856*d1919c37STaniya Das 	.clkr = {
1857*d1919c37STaniya Das 		.enable_reg = 0x52010,
1858*d1919c37STaniya Das 		.enable_mask = BIT(19),
1859*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
1860*d1919c37STaniya Das 			.name = "gcc_qmip_pcie_ahb_clk",
1861*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
1862*d1919c37STaniya Das 		},
1863*d1919c37STaniya Das 	},
1864*d1919c37STaniya Das };
1865*d1919c37STaniya Das 
1866*d1919c37STaniya Das static struct clk_branch gcc_qmip_video_cv_cpu_ahb_clk = {
1867*d1919c37STaniya Das 	.halt_reg = 0x32014,
1868*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1869*d1919c37STaniya Das 	.hwcg_reg = 0x32014,
1870*d1919c37STaniya Das 	.hwcg_bit = 1,
1871*d1919c37STaniya Das 	.clkr = {
1872*d1919c37STaniya Das 		.enable_reg = 0x32014,
1873*d1919c37STaniya Das 		.enable_mask = BIT(0),
1874*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
1875*d1919c37STaniya Das 			.name = "gcc_qmip_video_cv_cpu_ahb_clk",
1876*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
1877*d1919c37STaniya Das 		},
1878*d1919c37STaniya Das 	},
1879*d1919c37STaniya Das };
1880*d1919c37STaniya Das 
1881*d1919c37STaniya Das static struct clk_branch gcc_qmip_video_cvp_ahb_clk = {
1882*d1919c37STaniya Das 	.halt_reg = 0x32008,
1883*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1884*d1919c37STaniya Das 	.hwcg_reg = 0x32008,
1885*d1919c37STaniya Das 	.hwcg_bit = 1,
1886*d1919c37STaniya Das 	.clkr = {
1887*d1919c37STaniya Das 		.enable_reg = 0x32008,
1888*d1919c37STaniya Das 		.enable_mask = BIT(0),
1889*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
1890*d1919c37STaniya Das 			.name = "gcc_qmip_video_cvp_ahb_clk",
1891*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
1892*d1919c37STaniya Das 		},
1893*d1919c37STaniya Das 	},
1894*d1919c37STaniya Das };
1895*d1919c37STaniya Das 
1896*d1919c37STaniya Das static struct clk_branch gcc_qmip_video_v_cpu_ahb_clk = {
1897*d1919c37STaniya Das 	.halt_reg = 0x32010,
1898*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1899*d1919c37STaniya Das 	.hwcg_reg = 0x32010,
1900*d1919c37STaniya Das 	.hwcg_bit = 1,
1901*d1919c37STaniya Das 	.clkr = {
1902*d1919c37STaniya Das 		.enable_reg = 0x32010,
1903*d1919c37STaniya Das 		.enable_mask = BIT(0),
1904*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
1905*d1919c37STaniya Das 			.name = "gcc_qmip_video_v_cpu_ahb_clk",
1906*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
1907*d1919c37STaniya Das 		},
1908*d1919c37STaniya Das 	},
1909*d1919c37STaniya Das };
1910*d1919c37STaniya Das 
1911*d1919c37STaniya Das static struct clk_branch gcc_qmip_video_vcodec_ahb_clk = {
1912*d1919c37STaniya Das 	.halt_reg = 0x3200c,
1913*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1914*d1919c37STaniya Das 	.hwcg_reg = 0x3200c,
1915*d1919c37STaniya Das 	.hwcg_bit = 1,
1916*d1919c37STaniya Das 	.clkr = {
1917*d1919c37STaniya Das 		.enable_reg = 0x3200c,
1918*d1919c37STaniya Das 		.enable_mask = BIT(0),
1919*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
1920*d1919c37STaniya Das 			.name = "gcc_qmip_video_vcodec_ahb_clk",
1921*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
1922*d1919c37STaniya Das 		},
1923*d1919c37STaniya Das 	},
1924*d1919c37STaniya Das };
1925*d1919c37STaniya Das 
1926*d1919c37STaniya Das static struct clk_branch gcc_qupv3_i2c_core_clk = {
1927*d1919c37STaniya Das 	.halt_reg = 0x23004,
1928*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1929*d1919c37STaniya Das 	.clkr = {
1930*d1919c37STaniya Das 		.enable_reg = 0x52008,
1931*d1919c37STaniya Das 		.enable_mask = BIT(8),
1932*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
1933*d1919c37STaniya Das 			.name = "gcc_qupv3_i2c_core_clk",
1934*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
1935*d1919c37STaniya Das 		},
1936*d1919c37STaniya Das 	},
1937*d1919c37STaniya Das };
1938*d1919c37STaniya Das 
1939*d1919c37STaniya Das static struct clk_branch gcc_qupv3_i2c_s0_clk = {
1940*d1919c37STaniya Das 	.halt_reg = 0x17004,
1941*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1942*d1919c37STaniya Das 	.clkr = {
1943*d1919c37STaniya Das 		.enable_reg = 0x52008,
1944*d1919c37STaniya Das 		.enable_mask = BIT(10),
1945*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
1946*d1919c37STaniya Das 			.name = "gcc_qupv3_i2c_s0_clk",
1947*d1919c37STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1948*d1919c37STaniya Das 				&gcc_qupv3_i2c_s0_clk_src.clkr.hw,
1949*d1919c37STaniya Das 			},
1950*d1919c37STaniya Das 			.num_parents = 1,
1951*d1919c37STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1952*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
1953*d1919c37STaniya Das 		},
1954*d1919c37STaniya Das 	},
1955*d1919c37STaniya Das };
1956*d1919c37STaniya Das 
1957*d1919c37STaniya Das static struct clk_branch gcc_qupv3_i2c_s1_clk = {
1958*d1919c37STaniya Das 	.halt_reg = 0x17020,
1959*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1960*d1919c37STaniya Das 	.clkr = {
1961*d1919c37STaniya Das 		.enable_reg = 0x52008,
1962*d1919c37STaniya Das 		.enable_mask = BIT(11),
1963*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
1964*d1919c37STaniya Das 			.name = "gcc_qupv3_i2c_s1_clk",
1965*d1919c37STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1966*d1919c37STaniya Das 				&gcc_qupv3_i2c_s1_clk_src.clkr.hw,
1967*d1919c37STaniya Das 			},
1968*d1919c37STaniya Das 			.num_parents = 1,
1969*d1919c37STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1970*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
1971*d1919c37STaniya Das 		},
1972*d1919c37STaniya Das 	},
1973*d1919c37STaniya Das };
1974*d1919c37STaniya Das 
1975*d1919c37STaniya Das static struct clk_branch gcc_qupv3_i2c_s2_clk = {
1976*d1919c37STaniya Das 	.halt_reg = 0x1703c,
1977*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1978*d1919c37STaniya Das 	.clkr = {
1979*d1919c37STaniya Das 		.enable_reg = 0x52008,
1980*d1919c37STaniya Das 		.enable_mask = BIT(12),
1981*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
1982*d1919c37STaniya Das 			.name = "gcc_qupv3_i2c_s2_clk",
1983*d1919c37STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1984*d1919c37STaniya Das 				&gcc_qupv3_i2c_s2_clk_src.clkr.hw,
1985*d1919c37STaniya Das 			},
1986*d1919c37STaniya Das 			.num_parents = 1,
1987*d1919c37STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1988*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
1989*d1919c37STaniya Das 		},
1990*d1919c37STaniya Das 	},
1991*d1919c37STaniya Das };
1992*d1919c37STaniya Das 
1993*d1919c37STaniya Das static struct clk_branch gcc_qupv3_i2c_s3_clk = {
1994*d1919c37STaniya Das 	.halt_reg = 0x17058,
1995*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1996*d1919c37STaniya Das 	.clkr = {
1997*d1919c37STaniya Das 		.enable_reg = 0x52008,
1998*d1919c37STaniya Das 		.enable_mask = BIT(13),
1999*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
2000*d1919c37STaniya Das 			.name = "gcc_qupv3_i2c_s3_clk",
2001*d1919c37STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
2002*d1919c37STaniya Das 				&gcc_qupv3_i2c_s3_clk_src.clkr.hw,
2003*d1919c37STaniya Das 			},
2004*d1919c37STaniya Das 			.num_parents = 1,
2005*d1919c37STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2006*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
2007*d1919c37STaniya Das 		},
2008*d1919c37STaniya Das 	},
2009*d1919c37STaniya Das };
2010*d1919c37STaniya Das 
2011*d1919c37STaniya Das static struct clk_branch gcc_qupv3_i2c_s4_clk = {
2012*d1919c37STaniya Das 	.halt_reg = 0x17074,
2013*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2014*d1919c37STaniya Das 	.clkr = {
2015*d1919c37STaniya Das 		.enable_reg = 0x52008,
2016*d1919c37STaniya Das 		.enable_mask = BIT(14),
2017*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
2018*d1919c37STaniya Das 			.name = "gcc_qupv3_i2c_s4_clk",
2019*d1919c37STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
2020*d1919c37STaniya Das 				&gcc_qupv3_i2c_s4_clk_src.clkr.hw,
2021*d1919c37STaniya Das 			},
2022*d1919c37STaniya Das 			.num_parents = 1,
2023*d1919c37STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2024*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
2025*d1919c37STaniya Das 		},
2026*d1919c37STaniya Das 	},
2027*d1919c37STaniya Das };
2028*d1919c37STaniya Das 
2029*d1919c37STaniya Das static struct clk_branch gcc_qupv3_i2c_s_ahb_clk = {
2030*d1919c37STaniya Das 	.halt_reg = 0x23000,
2031*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2032*d1919c37STaniya Das 	.hwcg_reg = 0x23000,
2033*d1919c37STaniya Das 	.hwcg_bit = 1,
2034*d1919c37STaniya Das 	.clkr = {
2035*d1919c37STaniya Das 		.enable_reg = 0x52008,
2036*d1919c37STaniya Das 		.enable_mask = BIT(7),
2037*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
2038*d1919c37STaniya Das 			.name = "gcc_qupv3_i2c_s_ahb_clk",
2039*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
2040*d1919c37STaniya Das 		},
2041*d1919c37STaniya Das 	},
2042*d1919c37STaniya Das };
2043*d1919c37STaniya Das 
2044*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap1_core_2x_clk = {
2045*d1919c37STaniya Das 	.halt_reg = 0x2315c,
2046*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2047*d1919c37STaniya Das 	.clkr = {
2048*d1919c37STaniya Das 		.enable_reg = 0x52008,
2049*d1919c37STaniya Das 		.enable_mask = BIT(18),
2050*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
2051*d1919c37STaniya Das 			.name = "gcc_qupv3_wrap1_core_2x_clk",
2052*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
2053*d1919c37STaniya Das 		},
2054*d1919c37STaniya Das 	},
2055*d1919c37STaniya Das };
2056*d1919c37STaniya Das 
2057*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap1_core_clk = {
2058*d1919c37STaniya Das 	.halt_reg = 0x23148,
2059*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2060*d1919c37STaniya Das 	.clkr = {
2061*d1919c37STaniya Das 		.enable_reg = 0x52008,
2062*d1919c37STaniya Das 		.enable_mask = BIT(19),
2063*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
2064*d1919c37STaniya Das 			.name = "gcc_qupv3_wrap1_core_clk",
2065*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
2066*d1919c37STaniya Das 		},
2067*d1919c37STaniya Das 	},
2068*d1919c37STaniya Das };
2069*d1919c37STaniya Das 
2070*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap1_qspi_ref_clk = {
2071*d1919c37STaniya Das 	.halt_reg = 0x188bc,
2072*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2073*d1919c37STaniya Das 	.clkr = {
2074*d1919c37STaniya Das 		.enable_reg = 0x52010,
2075*d1919c37STaniya Das 		.enable_mask = BIT(29),
2076*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
2077*d1919c37STaniya Das 			.name = "gcc_qupv3_wrap1_qspi_ref_clk",
2078*d1919c37STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
2079*d1919c37STaniya Das 				&gcc_qupv3_wrap1_qspi_ref_clk_src.clkr.hw,
2080*d1919c37STaniya Das 			},
2081*d1919c37STaniya Das 			.num_parents = 1,
2082*d1919c37STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2083*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
2084*d1919c37STaniya Das 		},
2085*d1919c37STaniya Das 	},
2086*d1919c37STaniya Das };
2087*d1919c37STaniya Das 
2088*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap1_s0_clk = {
2089*d1919c37STaniya Das 	.halt_reg = 0x18004,
2090*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2091*d1919c37STaniya Das 	.clkr = {
2092*d1919c37STaniya Das 		.enable_reg = 0x52008,
2093*d1919c37STaniya Das 		.enable_mask = BIT(22),
2094*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
2095*d1919c37STaniya Das 			.name = "gcc_qupv3_wrap1_s0_clk",
2096*d1919c37STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
2097*d1919c37STaniya Das 				&gcc_qupv3_wrap1_s0_clk_src.clkr.hw,
2098*d1919c37STaniya Das 			},
2099*d1919c37STaniya Das 			.num_parents = 1,
2100*d1919c37STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2101*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
2102*d1919c37STaniya Das 		},
2103*d1919c37STaniya Das 	},
2104*d1919c37STaniya Das };
2105*d1919c37STaniya Das 
2106*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap1_s1_clk = {
2107*d1919c37STaniya Das 	.halt_reg = 0x18140,
2108*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2109*d1919c37STaniya Das 	.clkr = {
2110*d1919c37STaniya Das 		.enable_reg = 0x52008,
2111*d1919c37STaniya Das 		.enable_mask = BIT(23),
2112*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
2113*d1919c37STaniya Das 			.name = "gcc_qupv3_wrap1_s1_clk",
2114*d1919c37STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
2115*d1919c37STaniya Das 				&gcc_qupv3_wrap1_s1_clk_src.clkr.hw,
2116*d1919c37STaniya Das 			},
2117*d1919c37STaniya Das 			.num_parents = 1,
2118*d1919c37STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2119*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
2120*d1919c37STaniya Das 		},
2121*d1919c37STaniya Das 	},
2122*d1919c37STaniya Das };
2123*d1919c37STaniya Das 
2124*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap1_s2_clk = {
2125*d1919c37STaniya Das 	.halt_reg = 0x1827c,
2126*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2127*d1919c37STaniya Das 	.clkr = {
2128*d1919c37STaniya Das 		.enable_reg = 0x52008,
2129*d1919c37STaniya Das 		.enable_mask = BIT(24),
2130*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
2131*d1919c37STaniya Das 			.name = "gcc_qupv3_wrap1_s2_clk",
2132*d1919c37STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
2133*d1919c37STaniya Das 				&gcc_qupv3_wrap1_s2_clk_src.clkr.hw,
2134*d1919c37STaniya Das 			},
2135*d1919c37STaniya Das 			.num_parents = 1,
2136*d1919c37STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2137*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
2138*d1919c37STaniya Das 		},
2139*d1919c37STaniya Das 	},
2140*d1919c37STaniya Das };
2141*d1919c37STaniya Das 
2142*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap1_s3_clk = {
2143*d1919c37STaniya Das 	.halt_reg = 0x18290,
2144*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2145*d1919c37STaniya Das 	.clkr = {
2146*d1919c37STaniya Das 		.enable_reg = 0x52008,
2147*d1919c37STaniya Das 		.enable_mask = BIT(25),
2148*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
2149*d1919c37STaniya Das 			.name = "gcc_qupv3_wrap1_s3_clk",
2150*d1919c37STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
2151*d1919c37STaniya Das 				&gcc_qupv3_wrap1_s3_clk_src.clkr.hw,
2152*d1919c37STaniya Das 			},
2153*d1919c37STaniya Das 			.num_parents = 1,
2154*d1919c37STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2155*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
2156*d1919c37STaniya Das 		},
2157*d1919c37STaniya Das 	},
2158*d1919c37STaniya Das };
2159*d1919c37STaniya Das 
2160*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap1_s4_clk = {
2161*d1919c37STaniya Das 	.halt_reg = 0x183cc,
2162*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2163*d1919c37STaniya Das 	.clkr = {
2164*d1919c37STaniya Das 		.enable_reg = 0x52008,
2165*d1919c37STaniya Das 		.enable_mask = BIT(26),
2166*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
2167*d1919c37STaniya Das 			.name = "gcc_qupv3_wrap1_s4_clk",
2168*d1919c37STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
2169*d1919c37STaniya Das 				&gcc_qupv3_wrap1_s4_clk_src.clkr.hw,
2170*d1919c37STaniya Das 			},
2171*d1919c37STaniya Das 			.num_parents = 1,
2172*d1919c37STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2173*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
2174*d1919c37STaniya Das 		},
2175*d1919c37STaniya Das 	},
2176*d1919c37STaniya Das };
2177*d1919c37STaniya Das 
2178*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap1_s5_clk = {
2179*d1919c37STaniya Das 	.halt_reg = 0x18508,
2180*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2181*d1919c37STaniya Das 	.clkr = {
2182*d1919c37STaniya Das 		.enable_reg = 0x52008,
2183*d1919c37STaniya Das 		.enable_mask = BIT(27),
2184*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
2185*d1919c37STaniya Das 			.name = "gcc_qupv3_wrap1_s5_clk",
2186*d1919c37STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
2187*d1919c37STaniya Das 				&gcc_qupv3_wrap1_s5_clk_src.clkr.hw,
2188*d1919c37STaniya Das 			},
2189*d1919c37STaniya Das 			.num_parents = 1,
2190*d1919c37STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2191*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
2192*d1919c37STaniya Das 		},
2193*d1919c37STaniya Das 	},
2194*d1919c37STaniya Das };
2195*d1919c37STaniya Das 
2196*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap1_s6_clk = {
2197*d1919c37STaniya Das 	.halt_reg = 0x18644,
2198*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2199*d1919c37STaniya Das 	.clkr = {
2200*d1919c37STaniya Das 		.enable_reg = 0x52008,
2201*d1919c37STaniya Das 		.enable_mask = BIT(28),
2202*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
2203*d1919c37STaniya Das 			.name = "gcc_qupv3_wrap1_s6_clk",
2204*d1919c37STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
2205*d1919c37STaniya Das 				&gcc_qupv3_wrap1_s6_clk_src.clkr.hw,
2206*d1919c37STaniya Das 			},
2207*d1919c37STaniya Das 			.num_parents = 1,
2208*d1919c37STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2209*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
2210*d1919c37STaniya Das 		},
2211*d1919c37STaniya Das 	},
2212*d1919c37STaniya Das };
2213*d1919c37STaniya Das 
2214*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap1_s7_clk = {
2215*d1919c37STaniya Das 	.halt_reg = 0x18780,
2216*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2217*d1919c37STaniya Das 	.clkr = {
2218*d1919c37STaniya Das 		.enable_reg = 0x52010,
2219*d1919c37STaniya Das 		.enable_mask = BIT(16),
2220*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
2221*d1919c37STaniya Das 			.name = "gcc_qupv3_wrap1_s7_clk",
2222*d1919c37STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
2223*d1919c37STaniya Das 				&gcc_qupv3_wrap1_s7_clk_src.clkr.hw,
2224*d1919c37STaniya Das 			},
2225*d1919c37STaniya Das 			.num_parents = 1,
2226*d1919c37STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2227*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
2228*d1919c37STaniya Das 		},
2229*d1919c37STaniya Das 	},
2230*d1919c37STaniya Das };
2231*d1919c37STaniya Das 
2232*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap2_core_2x_clk = {
2233*d1919c37STaniya Das 	.halt_reg = 0x232b4,
2234*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2235*d1919c37STaniya Das 	.clkr = {
2236*d1919c37STaniya Das 		.enable_reg = 0x52010,
2237*d1919c37STaniya Das 		.enable_mask = BIT(3),
2238*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
2239*d1919c37STaniya Das 			.name = "gcc_qupv3_wrap2_core_2x_clk",
2240*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
2241*d1919c37STaniya Das 		},
2242*d1919c37STaniya Das 	},
2243*d1919c37STaniya Das };
2244*d1919c37STaniya Das 
2245*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap2_core_clk = {
2246*d1919c37STaniya Das 	.halt_reg = 0x232a0,
2247*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2248*d1919c37STaniya Das 	.clkr = {
2249*d1919c37STaniya Das 		.enable_reg = 0x52010,
2250*d1919c37STaniya Das 		.enable_mask = BIT(0),
2251*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
2252*d1919c37STaniya Das 			.name = "gcc_qupv3_wrap2_core_clk",
2253*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
2254*d1919c37STaniya Das 		},
2255*d1919c37STaniya Das 	},
2256*d1919c37STaniya Das };
2257*d1919c37STaniya Das 
2258*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap2_s0_clk = {
2259*d1919c37STaniya Das 	.halt_reg = 0x1e004,
2260*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2261*d1919c37STaniya Das 	.clkr = {
2262*d1919c37STaniya Das 		.enable_reg = 0x52010,
2263*d1919c37STaniya Das 		.enable_mask = BIT(4),
2264*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
2265*d1919c37STaniya Das 			.name = "gcc_qupv3_wrap2_s0_clk",
2266*d1919c37STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
2267*d1919c37STaniya Das 				&gcc_qupv3_wrap2_s0_clk_src.clkr.hw,
2268*d1919c37STaniya Das 			},
2269*d1919c37STaniya Das 			.num_parents = 1,
2270*d1919c37STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2271*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
2272*d1919c37STaniya Das 		},
2273*d1919c37STaniya Das 	},
2274*d1919c37STaniya Das };
2275*d1919c37STaniya Das 
2276*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap2_s1_clk = {
2277*d1919c37STaniya Das 	.halt_reg = 0x1e140,
2278*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2279*d1919c37STaniya Das 	.clkr = {
2280*d1919c37STaniya Das 		.enable_reg = 0x52010,
2281*d1919c37STaniya Das 		.enable_mask = BIT(5),
2282*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
2283*d1919c37STaniya Das 			.name = "gcc_qupv3_wrap2_s1_clk",
2284*d1919c37STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
2285*d1919c37STaniya Das 				&gcc_qupv3_wrap2_s1_clk_src.clkr.hw,
2286*d1919c37STaniya Das 			},
2287*d1919c37STaniya Das 			.num_parents = 1,
2288*d1919c37STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2289*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
2290*d1919c37STaniya Das 		},
2291*d1919c37STaniya Das 	},
2292*d1919c37STaniya Das };
2293*d1919c37STaniya Das 
2294*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap2_s2_clk = {
2295*d1919c37STaniya Das 	.halt_reg = 0x1e27c,
2296*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2297*d1919c37STaniya Das 	.clkr = {
2298*d1919c37STaniya Das 		.enable_reg = 0x52010,
2299*d1919c37STaniya Das 		.enable_mask = BIT(6),
2300*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
2301*d1919c37STaniya Das 			.name = "gcc_qupv3_wrap2_s2_clk",
2302*d1919c37STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
2303*d1919c37STaniya Das 				&gcc_qupv3_wrap2_s2_clk_src.clkr.hw,
2304*d1919c37STaniya Das 			},
2305*d1919c37STaniya Das 			.num_parents = 1,
2306*d1919c37STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2307*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
2308*d1919c37STaniya Das 		},
2309*d1919c37STaniya Das 	},
2310*d1919c37STaniya Das };
2311*d1919c37STaniya Das 
2312*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap2_s3_clk = {
2313*d1919c37STaniya Das 	.halt_reg = 0x1e3b8,
2314*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2315*d1919c37STaniya Das 	.clkr = {
2316*d1919c37STaniya Das 		.enable_reg = 0x52010,
2317*d1919c37STaniya Das 		.enable_mask = BIT(7),
2318*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
2319*d1919c37STaniya Das 			.name = "gcc_qupv3_wrap2_s3_clk",
2320*d1919c37STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
2321*d1919c37STaniya Das 				&gcc_qupv3_wrap2_s3_clk_src.clkr.hw,
2322*d1919c37STaniya Das 			},
2323*d1919c37STaniya Das 			.num_parents = 1,
2324*d1919c37STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2325*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
2326*d1919c37STaniya Das 		},
2327*d1919c37STaniya Das 	},
2328*d1919c37STaniya Das };
2329*d1919c37STaniya Das 
2330*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap2_s4_clk = {
2331*d1919c37STaniya Das 	.halt_reg = 0x1e4f4,
2332*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2333*d1919c37STaniya Das 	.clkr = {
2334*d1919c37STaniya Das 		.enable_reg = 0x52010,
2335*d1919c37STaniya Das 		.enable_mask = BIT(8),
2336*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
2337*d1919c37STaniya Das 			.name = "gcc_qupv3_wrap2_s4_clk",
2338*d1919c37STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
2339*d1919c37STaniya Das 				&gcc_qupv3_wrap2_s4_clk_src.clkr.hw,
2340*d1919c37STaniya Das 			},
2341*d1919c37STaniya Das 			.num_parents = 1,
2342*d1919c37STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2343*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
2344*d1919c37STaniya Das 		},
2345*d1919c37STaniya Das 	},
2346*d1919c37STaniya Das };
2347*d1919c37STaniya Das 
2348*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap3_core_2x_clk = {
2349*d1919c37STaniya Das 	.halt_reg = 0x2340c,
2350*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2351*d1919c37STaniya Das 	.clkr = {
2352*d1919c37STaniya Das 		.enable_reg = 0x52018,
2353*d1919c37STaniya Das 		.enable_mask = BIT(11),
2354*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
2355*d1919c37STaniya Das 			.name = "gcc_qupv3_wrap3_core_2x_clk",
2356*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
2357*d1919c37STaniya Das 		},
2358*d1919c37STaniya Das 	},
2359*d1919c37STaniya Das };
2360*d1919c37STaniya Das 
2361*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap3_core_clk = {
2362*d1919c37STaniya Das 	.halt_reg = 0x233f8,
2363*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2364*d1919c37STaniya Das 	.clkr = {
2365*d1919c37STaniya Das 		.enable_reg = 0x52018,
2366*d1919c37STaniya Das 		.enable_mask = BIT(10),
2367*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
2368*d1919c37STaniya Das 			.name = "gcc_qupv3_wrap3_core_clk",
2369*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
2370*d1919c37STaniya Das 		},
2371*d1919c37STaniya Das 	},
2372*d1919c37STaniya Das };
2373*d1919c37STaniya Das 
2374*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap3_ibi_ctrl_1_clk = {
2375*d1919c37STaniya Das 	.halt_reg = 0xa8774,
2376*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2377*d1919c37STaniya Das 	.hwcg_reg = 0xa8774,
2378*d1919c37STaniya Das 	.hwcg_bit = 1,
2379*d1919c37STaniya Das 	.clkr = {
2380*d1919c37STaniya Das 		.enable_reg = 0x52018,
2381*d1919c37STaniya Das 		.enable_mask = BIT(20),
2382*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
2383*d1919c37STaniya Das 			.name = "gcc_qupv3_wrap3_ibi_ctrl_1_clk",
2384*d1919c37STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
2385*d1919c37STaniya Das 				&gcc_qupv3_wrap3_ibi_ctrl_0_clk_src.clkr.hw,
2386*d1919c37STaniya Das 			},
2387*d1919c37STaniya Das 			.num_parents = 1,
2388*d1919c37STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2389*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
2390*d1919c37STaniya Das 		},
2391*d1919c37STaniya Das 	},
2392*d1919c37STaniya Das };
2393*d1919c37STaniya Das 
2394*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap3_ibi_ctrl_2_clk = {
2395*d1919c37STaniya Das 	.halt_reg = 0xa8778,
2396*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2397*d1919c37STaniya Das 	.hwcg_reg = 0xa8778,
2398*d1919c37STaniya Das 	.hwcg_bit = 1,
2399*d1919c37STaniya Das 	.clkr = {
2400*d1919c37STaniya Das 		.enable_reg = 0x52018,
2401*d1919c37STaniya Das 		.enable_mask = BIT(21),
2402*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
2403*d1919c37STaniya Das 			.name = "gcc_qupv3_wrap3_ibi_ctrl_2_clk",
2404*d1919c37STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
2405*d1919c37STaniya Das 				&gcc_qupv3_wrap3_ibi_ctrl_0_clk_src.clkr.hw,
2406*d1919c37STaniya Das 			},
2407*d1919c37STaniya Das 			.num_parents = 1,
2408*d1919c37STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2409*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
2410*d1919c37STaniya Das 		},
2411*d1919c37STaniya Das 	},
2412*d1919c37STaniya Das };
2413*d1919c37STaniya Das 
2414*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap3_s0_clk = {
2415*d1919c37STaniya Das 	.halt_reg = 0xa8004,
2416*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2417*d1919c37STaniya Das 	.clkr = {
2418*d1919c37STaniya Das 		.enable_reg = 0x52018,
2419*d1919c37STaniya Das 		.enable_mask = BIT(12),
2420*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
2421*d1919c37STaniya Das 			.name = "gcc_qupv3_wrap3_s0_clk",
2422*d1919c37STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
2423*d1919c37STaniya Das 				&gcc_qupv3_wrap3_s0_clk_src.clkr.hw,
2424*d1919c37STaniya Das 			},
2425*d1919c37STaniya Das 			.num_parents = 1,
2426*d1919c37STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2427*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
2428*d1919c37STaniya Das 		},
2429*d1919c37STaniya Das 	},
2430*d1919c37STaniya Das };
2431*d1919c37STaniya Das 
2432*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap3_s1_clk = {
2433*d1919c37STaniya Das 	.halt_reg = 0xa8140,
2434*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2435*d1919c37STaniya Das 	.clkr = {
2436*d1919c37STaniya Das 		.enable_reg = 0x52018,
2437*d1919c37STaniya Das 		.enable_mask = BIT(13),
2438*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
2439*d1919c37STaniya Das 			.name = "gcc_qupv3_wrap3_s1_clk",
2440*d1919c37STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
2441*d1919c37STaniya Das 				&gcc_qupv3_wrap3_s1_clk_src.clkr.hw,
2442*d1919c37STaniya Das 			},
2443*d1919c37STaniya Das 			.num_parents = 1,
2444*d1919c37STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2445*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
2446*d1919c37STaniya Das 		},
2447*d1919c37STaniya Das 	},
2448*d1919c37STaniya Das };
2449*d1919c37STaniya Das 
2450*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap3_s2_clk = {
2451*d1919c37STaniya Das 	.halt_reg = 0xa827c,
2452*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2453*d1919c37STaniya Das 	.clkr = {
2454*d1919c37STaniya Das 		.enable_reg = 0x52018,
2455*d1919c37STaniya Das 		.enable_mask = BIT(14),
2456*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
2457*d1919c37STaniya Das 			.name = "gcc_qupv3_wrap3_s2_clk",
2458*d1919c37STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
2459*d1919c37STaniya Das 				&gcc_qupv3_wrap3_s2_clk_src.clkr.hw,
2460*d1919c37STaniya Das 			},
2461*d1919c37STaniya Das 			.num_parents = 1,
2462*d1919c37STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2463*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
2464*d1919c37STaniya Das 		},
2465*d1919c37STaniya Das 	},
2466*d1919c37STaniya Das };
2467*d1919c37STaniya Das 
2468*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap3_s3_clk = {
2469*d1919c37STaniya Das 	.halt_reg = 0xa83b8,
2470*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2471*d1919c37STaniya Das 	.clkr = {
2472*d1919c37STaniya Das 		.enable_reg = 0x52018,
2473*d1919c37STaniya Das 		.enable_mask = BIT(15),
2474*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
2475*d1919c37STaniya Das 			.name = "gcc_qupv3_wrap3_s3_clk",
2476*d1919c37STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
2477*d1919c37STaniya Das 				&gcc_qupv3_wrap3_s3_clk_src.clkr.hw,
2478*d1919c37STaniya Das 			},
2479*d1919c37STaniya Das 			.num_parents = 1,
2480*d1919c37STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2481*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
2482*d1919c37STaniya Das 		},
2483*d1919c37STaniya Das 	},
2484*d1919c37STaniya Das };
2485*d1919c37STaniya Das 
2486*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap3_s4_clk = {
2487*d1919c37STaniya Das 	.halt_reg = 0xa84f4,
2488*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2489*d1919c37STaniya Das 	.clkr = {
2490*d1919c37STaniya Das 		.enable_reg = 0x52018,
2491*d1919c37STaniya Das 		.enable_mask = BIT(16),
2492*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
2493*d1919c37STaniya Das 			.name = "gcc_qupv3_wrap3_s4_clk",
2494*d1919c37STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
2495*d1919c37STaniya Das 				&gcc_qupv3_wrap3_s4_clk_src.clkr.hw,
2496*d1919c37STaniya Das 			},
2497*d1919c37STaniya Das 			.num_parents = 1,
2498*d1919c37STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2499*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
2500*d1919c37STaniya Das 		},
2501*d1919c37STaniya Das 	},
2502*d1919c37STaniya Das };
2503*d1919c37STaniya Das 
2504*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap3_s5_clk = {
2505*d1919c37STaniya Das 	.halt_reg = 0xa8630,
2506*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2507*d1919c37STaniya Das 	.clkr = {
2508*d1919c37STaniya Das 		.enable_reg = 0x52018,
2509*d1919c37STaniya Das 		.enable_mask = BIT(17),
2510*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
2511*d1919c37STaniya Das 			.name = "gcc_qupv3_wrap3_s5_clk",
2512*d1919c37STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
2513*d1919c37STaniya Das 				&gcc_qupv3_wrap3_s5_clk_src.clkr.hw,
2514*d1919c37STaniya Das 			},
2515*d1919c37STaniya Das 			.num_parents = 1,
2516*d1919c37STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2517*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
2518*d1919c37STaniya Das 		},
2519*d1919c37STaniya Das 	},
2520*d1919c37STaniya Das };
2521*d1919c37STaniya Das 
2522*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap4_core_2x_clk = {
2523*d1919c37STaniya Das 	.halt_reg = 0x23564,
2524*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2525*d1919c37STaniya Das 	.clkr = {
2526*d1919c37STaniya Das 		.enable_reg = 0x52018,
2527*d1919c37STaniya Das 		.enable_mask = BIT(25),
2528*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
2529*d1919c37STaniya Das 			.name = "gcc_qupv3_wrap4_core_2x_clk",
2530*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
2531*d1919c37STaniya Das 		},
2532*d1919c37STaniya Das 	},
2533*d1919c37STaniya Das };
2534*d1919c37STaniya Das 
2535*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap4_core_clk = {
2536*d1919c37STaniya Das 	.halt_reg = 0x23550,
2537*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2538*d1919c37STaniya Das 	.clkr = {
2539*d1919c37STaniya Das 		.enable_reg = 0x52018,
2540*d1919c37STaniya Das 		.enable_mask = BIT(24),
2541*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
2542*d1919c37STaniya Das 			.name = "gcc_qupv3_wrap4_core_clk",
2543*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
2544*d1919c37STaniya Das 		},
2545*d1919c37STaniya Das 	},
2546*d1919c37STaniya Das };
2547*d1919c37STaniya Das 
2548*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap4_s0_clk = {
2549*d1919c37STaniya Das 	.halt_reg = 0xa9004,
2550*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2551*d1919c37STaniya Das 	.clkr = {
2552*d1919c37STaniya Das 		.enable_reg = 0x52018,
2553*d1919c37STaniya Das 		.enable_mask = BIT(26),
2554*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
2555*d1919c37STaniya Das 			.name = "gcc_qupv3_wrap4_s0_clk",
2556*d1919c37STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
2557*d1919c37STaniya Das 				&gcc_qupv3_wrap4_s0_clk_src.clkr.hw,
2558*d1919c37STaniya Das 			},
2559*d1919c37STaniya Das 			.num_parents = 1,
2560*d1919c37STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2561*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
2562*d1919c37STaniya Das 		},
2563*d1919c37STaniya Das 	},
2564*d1919c37STaniya Das };
2565*d1919c37STaniya Das 
2566*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap4_s1_clk = {
2567*d1919c37STaniya Das 	.halt_reg = 0xa9140,
2568*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2569*d1919c37STaniya Das 	.clkr = {
2570*d1919c37STaniya Das 		.enable_reg = 0x52018,
2571*d1919c37STaniya Das 		.enable_mask = BIT(27),
2572*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
2573*d1919c37STaniya Das 			.name = "gcc_qupv3_wrap4_s1_clk",
2574*d1919c37STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
2575*d1919c37STaniya Das 				&gcc_qupv3_wrap4_s1_clk_src.clkr.hw,
2576*d1919c37STaniya Das 			},
2577*d1919c37STaniya Das 			.num_parents = 1,
2578*d1919c37STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2579*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
2580*d1919c37STaniya Das 		},
2581*d1919c37STaniya Das 	},
2582*d1919c37STaniya Das };
2583*d1919c37STaniya Das 
2584*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap4_s2_clk = {
2585*d1919c37STaniya Das 	.halt_reg = 0xa927c,
2586*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2587*d1919c37STaniya Das 	.clkr = {
2588*d1919c37STaniya Das 		.enable_reg = 0x52018,
2589*d1919c37STaniya Das 		.enable_mask = BIT(28),
2590*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
2591*d1919c37STaniya Das 			.name = "gcc_qupv3_wrap4_s2_clk",
2592*d1919c37STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
2593*d1919c37STaniya Das 				&gcc_qupv3_wrap4_s2_clk_src.clkr.hw,
2594*d1919c37STaniya Das 			},
2595*d1919c37STaniya Das 			.num_parents = 1,
2596*d1919c37STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2597*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
2598*d1919c37STaniya Das 		},
2599*d1919c37STaniya Das 	},
2600*d1919c37STaniya Das };
2601*d1919c37STaniya Das 
2602*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap4_s3_clk = {
2603*d1919c37STaniya Das 	.halt_reg = 0xa93b8,
2604*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2605*d1919c37STaniya Das 	.clkr = {
2606*d1919c37STaniya Das 		.enable_reg = 0x52018,
2607*d1919c37STaniya Das 		.enable_mask = BIT(29),
2608*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
2609*d1919c37STaniya Das 			.name = "gcc_qupv3_wrap4_s3_clk",
2610*d1919c37STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
2611*d1919c37STaniya Das 				&gcc_qupv3_wrap4_s3_clk_src.clkr.hw,
2612*d1919c37STaniya Das 			},
2613*d1919c37STaniya Das 			.num_parents = 1,
2614*d1919c37STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2615*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
2616*d1919c37STaniya Das 		},
2617*d1919c37STaniya Das 	},
2618*d1919c37STaniya Das };
2619*d1919c37STaniya Das 
2620*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap4_s4_clk = {
2621*d1919c37STaniya Das 	.halt_reg = 0xa94f4,
2622*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2623*d1919c37STaniya Das 	.clkr = {
2624*d1919c37STaniya Das 		.enable_reg = 0x52018,
2625*d1919c37STaniya Das 		.enable_mask = BIT(30),
2626*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
2627*d1919c37STaniya Das 			.name = "gcc_qupv3_wrap4_s4_clk",
2628*d1919c37STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
2629*d1919c37STaniya Das 				&gcc_qupv3_wrap4_s4_clk_src.clkr.hw,
2630*d1919c37STaniya Das 			},
2631*d1919c37STaniya Das 			.num_parents = 1,
2632*d1919c37STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2633*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
2634*d1919c37STaniya Das 		},
2635*d1919c37STaniya Das 	},
2636*d1919c37STaniya Das };
2637*d1919c37STaniya Das 
2638*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap_1_m_axi_clk = {
2639*d1919c37STaniya Das 	.halt_reg = 0x23140,
2640*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2641*d1919c37STaniya Das 	.hwcg_reg = 0x23140,
2642*d1919c37STaniya Das 	.hwcg_bit = 1,
2643*d1919c37STaniya Das 	.clkr = {
2644*d1919c37STaniya Das 		.enable_reg = 0x52008,
2645*d1919c37STaniya Das 		.enable_mask = BIT(20),
2646*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
2647*d1919c37STaniya Das 			.name = "gcc_qupv3_wrap_1_m_axi_clk",
2648*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
2649*d1919c37STaniya Das 		},
2650*d1919c37STaniya Das 	},
2651*d1919c37STaniya Das };
2652*d1919c37STaniya Das 
2653*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap_1_s_ahb_clk = {
2654*d1919c37STaniya Das 	.halt_reg = 0x23144,
2655*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2656*d1919c37STaniya Das 	.hwcg_reg = 0x23144,
2657*d1919c37STaniya Das 	.hwcg_bit = 1,
2658*d1919c37STaniya Das 	.clkr = {
2659*d1919c37STaniya Das 		.enable_reg = 0x52008,
2660*d1919c37STaniya Das 		.enable_mask = BIT(21),
2661*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
2662*d1919c37STaniya Das 			.name = "gcc_qupv3_wrap_1_s_ahb_clk",
2663*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
2664*d1919c37STaniya Das 		},
2665*d1919c37STaniya Das 	},
2666*d1919c37STaniya Das };
2667*d1919c37STaniya Das 
2668*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap_2_m_ahb_clk = {
2669*d1919c37STaniya Das 	.halt_reg = 0x23298,
2670*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2671*d1919c37STaniya Das 	.hwcg_reg = 0x23298,
2672*d1919c37STaniya Das 	.hwcg_bit = 1,
2673*d1919c37STaniya Das 	.clkr = {
2674*d1919c37STaniya Das 		.enable_reg = 0x52010,
2675*d1919c37STaniya Das 		.enable_mask = BIT(2),
2676*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
2677*d1919c37STaniya Das 			.name = "gcc_qupv3_wrap_2_m_ahb_clk",
2678*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
2679*d1919c37STaniya Das 		},
2680*d1919c37STaniya Das 	},
2681*d1919c37STaniya Das };
2682*d1919c37STaniya Das 
2683*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap_2_s_ahb_clk = {
2684*d1919c37STaniya Das 	.halt_reg = 0x2329c,
2685*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2686*d1919c37STaniya Das 	.hwcg_reg = 0x2329c,
2687*d1919c37STaniya Das 	.hwcg_bit = 1,
2688*d1919c37STaniya Das 	.clkr = {
2689*d1919c37STaniya Das 		.enable_reg = 0x52010,
2690*d1919c37STaniya Das 		.enable_mask = BIT(1),
2691*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
2692*d1919c37STaniya Das 			.name = "gcc_qupv3_wrap_2_s_ahb_clk",
2693*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
2694*d1919c37STaniya Das 		},
2695*d1919c37STaniya Das 	},
2696*d1919c37STaniya Das };
2697*d1919c37STaniya Das 
2698*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap_3_ibi_1_ahb_clk = {
2699*d1919c37STaniya Das 	.halt_reg = 0xa876c,
2700*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2701*d1919c37STaniya Das 	.hwcg_reg = 0xa876c,
2702*d1919c37STaniya Das 	.hwcg_bit = 1,
2703*d1919c37STaniya Das 	.clkr = {
2704*d1919c37STaniya Das 		.enable_reg = 0x52018,
2705*d1919c37STaniya Das 		.enable_mask = BIT(18),
2706*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
2707*d1919c37STaniya Das 			.name = "gcc_qupv3_wrap_3_ibi_1_ahb_clk",
2708*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
2709*d1919c37STaniya Das 		},
2710*d1919c37STaniya Das 	},
2711*d1919c37STaniya Das };
2712*d1919c37STaniya Das 
2713*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap_3_ibi_2_ahb_clk = {
2714*d1919c37STaniya Das 	.halt_reg = 0xa8770,
2715*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2716*d1919c37STaniya Das 	.hwcg_reg = 0xa8770,
2717*d1919c37STaniya Das 	.hwcg_bit = 1,
2718*d1919c37STaniya Das 	.clkr = {
2719*d1919c37STaniya Das 		.enable_reg = 0x52018,
2720*d1919c37STaniya Das 		.enable_mask = BIT(19),
2721*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
2722*d1919c37STaniya Das 			.name = "gcc_qupv3_wrap_3_ibi_2_ahb_clk",
2723*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
2724*d1919c37STaniya Das 		},
2725*d1919c37STaniya Das 	},
2726*d1919c37STaniya Das };
2727*d1919c37STaniya Das 
2728*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap_3_m_ahb_clk = {
2729*d1919c37STaniya Das 	.halt_reg = 0x233f0,
2730*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2731*d1919c37STaniya Das 	.hwcg_reg = 0x233f0,
2732*d1919c37STaniya Das 	.hwcg_bit = 1,
2733*d1919c37STaniya Das 	.clkr = {
2734*d1919c37STaniya Das 		.enable_reg = 0x52018,
2735*d1919c37STaniya Das 		.enable_mask = BIT(8),
2736*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
2737*d1919c37STaniya Das 			.name = "gcc_qupv3_wrap_3_m_ahb_clk",
2738*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
2739*d1919c37STaniya Das 		},
2740*d1919c37STaniya Das 	},
2741*d1919c37STaniya Das };
2742*d1919c37STaniya Das 
2743*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap_3_s_ahb_clk = {
2744*d1919c37STaniya Das 	.halt_reg = 0x233f4,
2745*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2746*d1919c37STaniya Das 	.hwcg_reg = 0x233f4,
2747*d1919c37STaniya Das 	.hwcg_bit = 1,
2748*d1919c37STaniya Das 	.clkr = {
2749*d1919c37STaniya Das 		.enable_reg = 0x52018,
2750*d1919c37STaniya Das 		.enable_mask = BIT(9),
2751*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
2752*d1919c37STaniya Das 			.name = "gcc_qupv3_wrap_3_s_ahb_clk",
2753*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
2754*d1919c37STaniya Das 		},
2755*d1919c37STaniya Das 	},
2756*d1919c37STaniya Das };
2757*d1919c37STaniya Das 
2758*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap_4_m_ahb_clk = {
2759*d1919c37STaniya Das 	.halt_reg = 0x23548,
2760*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2761*d1919c37STaniya Das 	.hwcg_reg = 0x23548,
2762*d1919c37STaniya Das 	.hwcg_bit = 1,
2763*d1919c37STaniya Das 	.clkr = {
2764*d1919c37STaniya Das 		.enable_reg = 0x52018,
2765*d1919c37STaniya Das 		.enable_mask = BIT(22),
2766*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
2767*d1919c37STaniya Das 			.name = "gcc_qupv3_wrap_4_m_ahb_clk",
2768*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
2769*d1919c37STaniya Das 		},
2770*d1919c37STaniya Das 	},
2771*d1919c37STaniya Das };
2772*d1919c37STaniya Das 
2773*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap_4_s_ahb_clk = {
2774*d1919c37STaniya Das 	.halt_reg = 0x2354c,
2775*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2776*d1919c37STaniya Das 	.hwcg_reg = 0x2354c,
2777*d1919c37STaniya Das 	.hwcg_bit = 1,
2778*d1919c37STaniya Das 	.clkr = {
2779*d1919c37STaniya Das 		.enable_reg = 0x52018,
2780*d1919c37STaniya Das 		.enable_mask = BIT(23),
2781*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
2782*d1919c37STaniya Das 			.name = "gcc_qupv3_wrap_4_s_ahb_clk",
2783*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
2784*d1919c37STaniya Das 		},
2785*d1919c37STaniya Das 	},
2786*d1919c37STaniya Das };
2787*d1919c37STaniya Das 
2788*d1919c37STaniya Das static struct clk_branch gcc_sdcc2_ahb_clk = {
2789*d1919c37STaniya Das 	.halt_reg = 0x14014,
2790*d1919c37STaniya Das 	.halt_check = BRANCH_HALT,
2791*d1919c37STaniya Das 	.clkr = {
2792*d1919c37STaniya Das 		.enable_reg = 0x14014,
2793*d1919c37STaniya Das 		.enable_mask = BIT(0),
2794*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
2795*d1919c37STaniya Das 			.name = "gcc_sdcc2_ahb_clk",
2796*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
2797*d1919c37STaniya Das 		},
2798*d1919c37STaniya Das 	},
2799*d1919c37STaniya Das };
2800*d1919c37STaniya Das 
2801*d1919c37STaniya Das static struct clk_branch gcc_sdcc2_apps_clk = {
2802*d1919c37STaniya Das 	.halt_reg = 0x14004,
2803*d1919c37STaniya Das 	.halt_check = BRANCH_HALT,
2804*d1919c37STaniya Das 	.clkr = {
2805*d1919c37STaniya Das 		.enable_reg = 0x14004,
2806*d1919c37STaniya Das 		.enable_mask = BIT(0),
2807*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
2808*d1919c37STaniya Das 			.name = "gcc_sdcc2_apps_clk",
2809*d1919c37STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
2810*d1919c37STaniya Das 				&gcc_sdcc2_apps_clk_src.clkr.hw,
2811*d1919c37STaniya Das 			},
2812*d1919c37STaniya Das 			.num_parents = 1,
2813*d1919c37STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2814*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
2815*d1919c37STaniya Das 		},
2816*d1919c37STaniya Das 	},
2817*d1919c37STaniya Das };
2818*d1919c37STaniya Das 
2819*d1919c37STaniya Das static struct clk_branch gcc_sdcc4_ahb_clk = {
2820*d1919c37STaniya Das 	.halt_reg = 0x16014,
2821*d1919c37STaniya Das 	.halt_check = BRANCH_HALT,
2822*d1919c37STaniya Das 	.clkr = {
2823*d1919c37STaniya Das 		.enable_reg = 0x16014,
2824*d1919c37STaniya Das 		.enable_mask = BIT(0),
2825*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
2826*d1919c37STaniya Das 			.name = "gcc_sdcc4_ahb_clk",
2827*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
2828*d1919c37STaniya Das 		},
2829*d1919c37STaniya Das 	},
2830*d1919c37STaniya Das };
2831*d1919c37STaniya Das 
2832*d1919c37STaniya Das static struct clk_branch gcc_sdcc4_apps_clk = {
2833*d1919c37STaniya Das 	.halt_reg = 0x16004,
2834*d1919c37STaniya Das 	.halt_check = BRANCH_HALT,
2835*d1919c37STaniya Das 	.clkr = {
2836*d1919c37STaniya Das 		.enable_reg = 0x16004,
2837*d1919c37STaniya Das 		.enable_mask = BIT(0),
2838*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
2839*d1919c37STaniya Das 			.name = "gcc_sdcc4_apps_clk",
2840*d1919c37STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
2841*d1919c37STaniya Das 				&gcc_sdcc4_apps_clk_src.clkr.hw,
2842*d1919c37STaniya Das 			},
2843*d1919c37STaniya Das 			.num_parents = 1,
2844*d1919c37STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2845*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
2846*d1919c37STaniya Das 		},
2847*d1919c37STaniya Das 	},
2848*d1919c37STaniya Das };
2849*d1919c37STaniya Das 
2850*d1919c37STaniya Das static struct clk_branch gcc_ufs_phy_ahb_clk = {
2851*d1919c37STaniya Das 	.halt_reg = 0x77028,
2852*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2853*d1919c37STaniya Das 	.hwcg_reg = 0x77028,
2854*d1919c37STaniya Das 	.hwcg_bit = 1,
2855*d1919c37STaniya Das 	.clkr = {
2856*d1919c37STaniya Das 		.enable_reg = 0x77028,
2857*d1919c37STaniya Das 		.enable_mask = BIT(0),
2858*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
2859*d1919c37STaniya Das 			.name = "gcc_ufs_phy_ahb_clk",
2860*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
2861*d1919c37STaniya Das 		},
2862*d1919c37STaniya Das 	},
2863*d1919c37STaniya Das };
2864*d1919c37STaniya Das 
2865*d1919c37STaniya Das static struct clk_branch gcc_ufs_phy_axi_clk = {
2866*d1919c37STaniya Das 	.halt_reg = 0x77018,
2867*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2868*d1919c37STaniya Das 	.hwcg_reg = 0x77018,
2869*d1919c37STaniya Das 	.hwcg_bit = 1,
2870*d1919c37STaniya Das 	.clkr = {
2871*d1919c37STaniya Das 		.enable_reg = 0x77018,
2872*d1919c37STaniya Das 		.enable_mask = BIT(0),
2873*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
2874*d1919c37STaniya Das 			.name = "gcc_ufs_phy_axi_clk",
2875*d1919c37STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
2876*d1919c37STaniya Das 				&gcc_ufs_phy_axi_clk_src.clkr.hw,
2877*d1919c37STaniya Das 			},
2878*d1919c37STaniya Das 			.num_parents = 1,
2879*d1919c37STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2880*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
2881*d1919c37STaniya Das 		},
2882*d1919c37STaniya Das 	},
2883*d1919c37STaniya Das };
2884*d1919c37STaniya Das 
2885*d1919c37STaniya Das static struct clk_branch gcc_ufs_phy_ice_core_clk = {
2886*d1919c37STaniya Das 	.halt_reg = 0x7707c,
2887*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2888*d1919c37STaniya Das 	.hwcg_reg = 0x7707c,
2889*d1919c37STaniya Das 	.hwcg_bit = 1,
2890*d1919c37STaniya Das 	.clkr = {
2891*d1919c37STaniya Das 		.enable_reg = 0x7707c,
2892*d1919c37STaniya Das 		.enable_mask = BIT(0),
2893*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
2894*d1919c37STaniya Das 			.name = "gcc_ufs_phy_ice_core_clk",
2895*d1919c37STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
2896*d1919c37STaniya Das 				&gcc_ufs_phy_ice_core_clk_src.clkr.hw,
2897*d1919c37STaniya Das 			},
2898*d1919c37STaniya Das 			.num_parents = 1,
2899*d1919c37STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2900*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
2901*d1919c37STaniya Das 		},
2902*d1919c37STaniya Das 	},
2903*d1919c37STaniya Das };
2904*d1919c37STaniya Das 
2905*d1919c37STaniya Das static struct clk_branch gcc_ufs_phy_phy_aux_clk = {
2906*d1919c37STaniya Das 	.halt_reg = 0x770bc,
2907*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2908*d1919c37STaniya Das 	.hwcg_reg = 0x770bc,
2909*d1919c37STaniya Das 	.hwcg_bit = 1,
2910*d1919c37STaniya Das 	.clkr = {
2911*d1919c37STaniya Das 		.enable_reg = 0x770bc,
2912*d1919c37STaniya Das 		.enable_mask = BIT(0),
2913*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
2914*d1919c37STaniya Das 			.name = "gcc_ufs_phy_phy_aux_clk",
2915*d1919c37STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
2916*d1919c37STaniya Das 				&gcc_ufs_phy_phy_aux_clk_src.clkr.hw,
2917*d1919c37STaniya Das 			},
2918*d1919c37STaniya Das 			.num_parents = 1,
2919*d1919c37STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2920*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
2921*d1919c37STaniya Das 		},
2922*d1919c37STaniya Das 	},
2923*d1919c37STaniya Das };
2924*d1919c37STaniya Das 
2925*d1919c37STaniya Das static struct clk_branch gcc_ufs_phy_rx_symbol_0_clk = {
2926*d1919c37STaniya Das 	.halt_reg = 0x77030,
2927*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_DELAY,
2928*d1919c37STaniya Das 	.clkr = {
2929*d1919c37STaniya Das 		.enable_reg = 0x77030,
2930*d1919c37STaniya Das 		.enable_mask = BIT(0),
2931*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
2932*d1919c37STaniya Das 			.name = "gcc_ufs_phy_rx_symbol_0_clk",
2933*d1919c37STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
2934*d1919c37STaniya Das 				&gcc_ufs_phy_rx_symbol_0_clk_src.clkr.hw,
2935*d1919c37STaniya Das 			},
2936*d1919c37STaniya Das 			.num_parents = 1,
2937*d1919c37STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2938*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
2939*d1919c37STaniya Das 		},
2940*d1919c37STaniya Das 	},
2941*d1919c37STaniya Das };
2942*d1919c37STaniya Das 
2943*d1919c37STaniya Das static struct clk_branch gcc_ufs_phy_rx_symbol_1_clk = {
2944*d1919c37STaniya Das 	.halt_reg = 0x770d8,
2945*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_DELAY,
2946*d1919c37STaniya Das 	.clkr = {
2947*d1919c37STaniya Das 		.enable_reg = 0x770d8,
2948*d1919c37STaniya Das 		.enable_mask = BIT(0),
2949*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
2950*d1919c37STaniya Das 			.name = "gcc_ufs_phy_rx_symbol_1_clk",
2951*d1919c37STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
2952*d1919c37STaniya Das 				&gcc_ufs_phy_rx_symbol_1_clk_src.clkr.hw,
2953*d1919c37STaniya Das 			},
2954*d1919c37STaniya Das 			.num_parents = 1,
2955*d1919c37STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2956*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
2957*d1919c37STaniya Das 		},
2958*d1919c37STaniya Das 	},
2959*d1919c37STaniya Das };
2960*d1919c37STaniya Das 
2961*d1919c37STaniya Das static struct clk_branch gcc_ufs_phy_tx_symbol_0_clk = {
2962*d1919c37STaniya Das 	.halt_reg = 0x7702c,
2963*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_DELAY,
2964*d1919c37STaniya Das 	.clkr = {
2965*d1919c37STaniya Das 		.enable_reg = 0x7702c,
2966*d1919c37STaniya Das 		.enable_mask = BIT(0),
2967*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
2968*d1919c37STaniya Das 			.name = "gcc_ufs_phy_tx_symbol_0_clk",
2969*d1919c37STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
2970*d1919c37STaniya Das 				&gcc_ufs_phy_tx_symbol_0_clk_src.clkr.hw,
2971*d1919c37STaniya Das 			},
2972*d1919c37STaniya Das 			.num_parents = 1,
2973*d1919c37STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2974*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
2975*d1919c37STaniya Das 		},
2976*d1919c37STaniya Das 	},
2977*d1919c37STaniya Das };
2978*d1919c37STaniya Das 
2979*d1919c37STaniya Das static struct clk_branch gcc_ufs_phy_unipro_core_clk = {
2980*d1919c37STaniya Das 	.halt_reg = 0x7706c,
2981*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2982*d1919c37STaniya Das 	.hwcg_reg = 0x7706c,
2983*d1919c37STaniya Das 	.hwcg_bit = 1,
2984*d1919c37STaniya Das 	.clkr = {
2985*d1919c37STaniya Das 		.enable_reg = 0x7706c,
2986*d1919c37STaniya Das 		.enable_mask = BIT(0),
2987*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
2988*d1919c37STaniya Das 			.name = "gcc_ufs_phy_unipro_core_clk",
2989*d1919c37STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
2990*d1919c37STaniya Das 				&gcc_ufs_phy_unipro_core_clk_src.clkr.hw,
2991*d1919c37STaniya Das 			},
2992*d1919c37STaniya Das 			.num_parents = 1,
2993*d1919c37STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2994*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
2995*d1919c37STaniya Das 		},
2996*d1919c37STaniya Das 	},
2997*d1919c37STaniya Das };
2998*d1919c37STaniya Das 
2999*d1919c37STaniya Das static struct clk_branch gcc_usb30_prim_master_clk = {
3000*d1919c37STaniya Das 	.halt_reg = 0x39018,
3001*d1919c37STaniya Das 	.halt_check = BRANCH_HALT,
3002*d1919c37STaniya Das 	.clkr = {
3003*d1919c37STaniya Das 		.enable_reg = 0x39018,
3004*d1919c37STaniya Das 		.enable_mask = BIT(0),
3005*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
3006*d1919c37STaniya Das 			.name = "gcc_usb30_prim_master_clk",
3007*d1919c37STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
3008*d1919c37STaniya Das 				&gcc_usb30_prim_master_clk_src.clkr.hw,
3009*d1919c37STaniya Das 			},
3010*d1919c37STaniya Das 			.num_parents = 1,
3011*d1919c37STaniya Das 			.flags = CLK_SET_RATE_PARENT,
3012*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
3013*d1919c37STaniya Das 		},
3014*d1919c37STaniya Das 	},
3015*d1919c37STaniya Das };
3016*d1919c37STaniya Das 
3017*d1919c37STaniya Das static struct clk_branch gcc_usb30_prim_mock_utmi_clk = {
3018*d1919c37STaniya Das 	.halt_reg = 0x3902c,
3019*d1919c37STaniya Das 	.halt_check = BRANCH_HALT,
3020*d1919c37STaniya Das 	.clkr = {
3021*d1919c37STaniya Das 		.enable_reg = 0x3902c,
3022*d1919c37STaniya Das 		.enable_mask = BIT(0),
3023*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
3024*d1919c37STaniya Das 			.name = "gcc_usb30_prim_mock_utmi_clk",
3025*d1919c37STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
3026*d1919c37STaniya Das 				&gcc_usb30_prim_mock_utmi_postdiv_clk_src.clkr.hw,
3027*d1919c37STaniya Das 			},
3028*d1919c37STaniya Das 			.num_parents = 1,
3029*d1919c37STaniya Das 			.flags = CLK_SET_RATE_PARENT,
3030*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
3031*d1919c37STaniya Das 		},
3032*d1919c37STaniya Das 	},
3033*d1919c37STaniya Das };
3034*d1919c37STaniya Das 
3035*d1919c37STaniya Das static struct clk_branch gcc_usb30_prim_sleep_clk = {
3036*d1919c37STaniya Das 	.halt_reg = 0x39028,
3037*d1919c37STaniya Das 	.halt_check = BRANCH_HALT,
3038*d1919c37STaniya Das 	.clkr = {
3039*d1919c37STaniya Das 		.enable_reg = 0x39028,
3040*d1919c37STaniya Das 		.enable_mask = BIT(0),
3041*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
3042*d1919c37STaniya Das 			.name = "gcc_usb30_prim_sleep_clk",
3043*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
3044*d1919c37STaniya Das 		},
3045*d1919c37STaniya Das 	},
3046*d1919c37STaniya Das };
3047*d1919c37STaniya Das 
3048*d1919c37STaniya Das static struct clk_branch gcc_usb3_prim_phy_aux_clk = {
3049*d1919c37STaniya Das 	.halt_reg = 0x39068,
3050*d1919c37STaniya Das 	.halt_check = BRANCH_HALT,
3051*d1919c37STaniya Das 	.clkr = {
3052*d1919c37STaniya Das 		.enable_reg = 0x39068,
3053*d1919c37STaniya Das 		.enable_mask = BIT(0),
3054*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
3055*d1919c37STaniya Das 			.name = "gcc_usb3_prim_phy_aux_clk",
3056*d1919c37STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
3057*d1919c37STaniya Das 				&gcc_usb3_prim_phy_aux_clk_src.clkr.hw,
3058*d1919c37STaniya Das 			},
3059*d1919c37STaniya Das 			.num_parents = 1,
3060*d1919c37STaniya Das 			.flags = CLK_SET_RATE_PARENT,
3061*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
3062*d1919c37STaniya Das 		},
3063*d1919c37STaniya Das 	},
3064*d1919c37STaniya Das };
3065*d1919c37STaniya Das 
3066*d1919c37STaniya Das static struct clk_branch gcc_usb3_prim_phy_com_aux_clk = {
3067*d1919c37STaniya Das 	.halt_reg = 0x3906c,
3068*d1919c37STaniya Das 	.halt_check = BRANCH_HALT,
3069*d1919c37STaniya Das 	.clkr = {
3070*d1919c37STaniya Das 		.enable_reg = 0x3906c,
3071*d1919c37STaniya Das 		.enable_mask = BIT(0),
3072*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
3073*d1919c37STaniya Das 			.name = "gcc_usb3_prim_phy_com_aux_clk",
3074*d1919c37STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
3075*d1919c37STaniya Das 				&gcc_usb3_prim_phy_aux_clk_src.clkr.hw,
3076*d1919c37STaniya Das 			},
3077*d1919c37STaniya Das 			.num_parents = 1,
3078*d1919c37STaniya Das 			.flags = CLK_SET_RATE_PARENT,
3079*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
3080*d1919c37STaniya Das 		},
3081*d1919c37STaniya Das 	},
3082*d1919c37STaniya Das };
3083*d1919c37STaniya Das 
3084*d1919c37STaniya Das static struct clk_branch gcc_usb3_prim_phy_pipe_clk = {
3085*d1919c37STaniya Das 	.halt_reg = 0x39070,
3086*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_DELAY,
3087*d1919c37STaniya Das 	.hwcg_reg = 0x39070,
3088*d1919c37STaniya Das 	.hwcg_bit = 1,
3089*d1919c37STaniya Das 	.clkr = {
3090*d1919c37STaniya Das 		.enable_reg = 0x39070,
3091*d1919c37STaniya Das 		.enable_mask = BIT(0),
3092*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
3093*d1919c37STaniya Das 			.name = "gcc_usb3_prim_phy_pipe_clk",
3094*d1919c37STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
3095*d1919c37STaniya Das 				&gcc_usb3_prim_phy_pipe_clk_src.clkr.hw,
3096*d1919c37STaniya Das 			},
3097*d1919c37STaniya Das 			.num_parents = 1,
3098*d1919c37STaniya Das 			.flags = CLK_SET_RATE_PARENT,
3099*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
3100*d1919c37STaniya Das 		},
3101*d1919c37STaniya Das 	},
3102*d1919c37STaniya Das };
3103*d1919c37STaniya Das 
3104*d1919c37STaniya Das static struct clk_branch gcc_video_axi0_clk = {
3105*d1919c37STaniya Das 	.halt_reg = 0x32018,
3106*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_SKIP,
3107*d1919c37STaniya Das 	.hwcg_reg = 0x32018,
3108*d1919c37STaniya Das 	.hwcg_bit = 1,
3109*d1919c37STaniya Das 	.clkr = {
3110*d1919c37STaniya Das 		.enable_reg = 0x32018,
3111*d1919c37STaniya Das 		.enable_mask = BIT(0),
3112*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
3113*d1919c37STaniya Das 			.name = "gcc_video_axi0_clk",
3114*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
3115*d1919c37STaniya Das 		},
3116*d1919c37STaniya Das 	},
3117*d1919c37STaniya Das };
3118*d1919c37STaniya Das 
3119*d1919c37STaniya Das static struct clk_branch gcc_video_axi1_clk = {
3120*d1919c37STaniya Das 	.halt_reg = 0x3202c,
3121*d1919c37STaniya Das 	.halt_check = BRANCH_HALT_SKIP,
3122*d1919c37STaniya Das 	.hwcg_reg = 0x3202c,
3123*d1919c37STaniya Das 	.hwcg_bit = 1,
3124*d1919c37STaniya Das 	.clkr = {
3125*d1919c37STaniya Das 		.enable_reg = 0x3202c,
3126*d1919c37STaniya Das 		.enable_mask = BIT(0),
3127*d1919c37STaniya Das 		.hw.init = &(const struct clk_init_data) {
3128*d1919c37STaniya Das 			.name = "gcc_video_axi1_clk",
3129*d1919c37STaniya Das 			.ops = &clk_branch2_ops,
3130*d1919c37STaniya Das 		},
3131*d1919c37STaniya Das 	},
3132*d1919c37STaniya Das };
3133*d1919c37STaniya Das 
3134*d1919c37STaniya Das static struct gdsc gcc_pcie_0_gdsc = {
3135*d1919c37STaniya Das 	.gdscr = 0x6b004,
3136*d1919c37STaniya Das 	.en_rest_wait_val = 0x2,
3137*d1919c37STaniya Das 	.en_few_wait_val = 0x2,
3138*d1919c37STaniya Das 	.clk_dis_wait_val = 0xf,
3139*d1919c37STaniya Das 	.collapse_ctrl = 0x5214c,
3140*d1919c37STaniya Das 	.collapse_mask = BIT(0),
3141*d1919c37STaniya Das 	.pd = {
3142*d1919c37STaniya Das 		.name = "gcc_pcie_0_gdsc",
3143*d1919c37STaniya Das 	},
3144*d1919c37STaniya Das 	.pwrsts = PWRSTS_OFF_ON,
3145*d1919c37STaniya Das 	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
3146*d1919c37STaniya Das };
3147*d1919c37STaniya Das 
3148*d1919c37STaniya Das static struct gdsc gcc_pcie_0_phy_gdsc = {
3149*d1919c37STaniya Das 	.gdscr = 0x6c000,
3150*d1919c37STaniya Das 	.en_rest_wait_val = 0x2,
3151*d1919c37STaniya Das 	.en_few_wait_val = 0x2,
3152*d1919c37STaniya Das 	.clk_dis_wait_val = 0x2,
3153*d1919c37STaniya Das 	.collapse_ctrl = 0x5214c,
3154*d1919c37STaniya Das 	.collapse_mask = BIT(2),
3155*d1919c37STaniya Das 	.pd = {
3156*d1919c37STaniya Das 		.name = "gcc_pcie_0_phy_gdsc",
3157*d1919c37STaniya Das 	},
3158*d1919c37STaniya Das 	.pwrsts = PWRSTS_OFF_ON,
3159*d1919c37STaniya Das 	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
3160*d1919c37STaniya Das };
3161*d1919c37STaniya Das 
3162*d1919c37STaniya Das static struct gdsc gcc_ufs_mem_phy_gdsc = {
3163*d1919c37STaniya Das 	.gdscr = 0x9e000,
3164*d1919c37STaniya Das 	.en_rest_wait_val = 0x2,
3165*d1919c37STaniya Das 	.en_few_wait_val = 0x2,
3166*d1919c37STaniya Das 	.clk_dis_wait_val = 0x2,
3167*d1919c37STaniya Das 	.pd = {
3168*d1919c37STaniya Das 		.name = "gcc_ufs_mem_phy_gdsc",
3169*d1919c37STaniya Das 	},
3170*d1919c37STaniya Das 	.pwrsts = PWRSTS_OFF_ON,
3171*d1919c37STaniya Das 	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
3172*d1919c37STaniya Das };
3173*d1919c37STaniya Das 
3174*d1919c37STaniya Das static struct gdsc gcc_ufs_phy_gdsc = {
3175*d1919c37STaniya Das 	.gdscr = 0x77004,
3176*d1919c37STaniya Das 	.en_rest_wait_val = 0x2,
3177*d1919c37STaniya Das 	.en_few_wait_val = 0x2,
3178*d1919c37STaniya Das 	.clk_dis_wait_val = 0xf,
3179*d1919c37STaniya Das 	.pd = {
3180*d1919c37STaniya Das 		.name = "gcc_ufs_phy_gdsc",
3181*d1919c37STaniya Das 	},
3182*d1919c37STaniya Das 	.pwrsts = PWRSTS_OFF_ON,
3183*d1919c37STaniya Das 	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
3184*d1919c37STaniya Das };
3185*d1919c37STaniya Das 
3186*d1919c37STaniya Das static struct gdsc gcc_usb30_prim_gdsc = {
3187*d1919c37STaniya Das 	.gdscr = 0x39004,
3188*d1919c37STaniya Das 	.en_rest_wait_val = 0x2,
3189*d1919c37STaniya Das 	.en_few_wait_val = 0x2,
3190*d1919c37STaniya Das 	.clk_dis_wait_val = 0xf,
3191*d1919c37STaniya Das 	.pd = {
3192*d1919c37STaniya Das 		.name = "gcc_usb30_prim_gdsc",
3193*d1919c37STaniya Das 	},
3194*d1919c37STaniya Das 	.pwrsts = PWRSTS_OFF_ON,
3195*d1919c37STaniya Das 	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
3196*d1919c37STaniya Das };
3197*d1919c37STaniya Das 
3198*d1919c37STaniya Das static struct gdsc gcc_usb3_phy_gdsc = {
3199*d1919c37STaniya Das 	.gdscr = 0x50018,
3200*d1919c37STaniya Das 	.en_rest_wait_val = 0x2,
3201*d1919c37STaniya Das 	.en_few_wait_val = 0x2,
3202*d1919c37STaniya Das 	.clk_dis_wait_val = 0x2,
3203*d1919c37STaniya Das 	.pd = {
3204*d1919c37STaniya Das 		.name = "gcc_usb3_phy_gdsc",
3205*d1919c37STaniya Das 	},
3206*d1919c37STaniya Das 	.pwrsts = PWRSTS_OFF_ON,
3207*d1919c37STaniya Das 	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
3208*d1919c37STaniya Das };
3209*d1919c37STaniya Das 
3210*d1919c37STaniya Das static struct clk_regmap *gcc_kaanapali_clocks[] = {
3211*d1919c37STaniya Das 	[GCC_AGGRE_NOC_PCIE_AXI_CLK] = &gcc_aggre_noc_pcie_axi_clk.clkr,
3212*d1919c37STaniya Das 	[GCC_AGGRE_UFS_PHY_AXI_CLK] = &gcc_aggre_ufs_phy_axi_clk.clkr,
3213*d1919c37STaniya Das 	[GCC_AGGRE_USB3_PRIM_AXI_CLK] = &gcc_aggre_usb3_prim_axi_clk.clkr,
3214*d1919c37STaniya Das 	[GCC_BOOT_ROM_AHB_CLK] = &gcc_boot_rom_ahb_clk.clkr,
3215*d1919c37STaniya Das 	[GCC_CAMERA_HF_AXI_CLK] = &gcc_camera_hf_axi_clk.clkr,
3216*d1919c37STaniya Das 	[GCC_CAMERA_SF_AXI_CLK] = &gcc_camera_sf_axi_clk.clkr,
3217*d1919c37STaniya Das 	[GCC_CFG_NOC_PCIE_ANOC_AHB_CLK] = &gcc_cfg_noc_pcie_anoc_ahb_clk.clkr,
3218*d1919c37STaniya Das 	[GCC_CFG_NOC_USB3_PRIM_AXI_CLK] = &gcc_cfg_noc_usb3_prim_axi_clk.clkr,
3219*d1919c37STaniya Das 	[GCC_CNOC_PCIE_SF_AXI_CLK] = &gcc_cnoc_pcie_sf_axi_clk.clkr,
3220*d1919c37STaniya Das 	[GCC_DDRSS_PCIE_SF_QTB_CLK] = &gcc_ddrss_pcie_sf_qtb_clk.clkr,
3221*d1919c37STaniya Das 	[GCC_DISP_HF_AXI_CLK] = &gcc_disp_hf_axi_clk.clkr,
3222*d1919c37STaniya Das 	[GCC_DISP_SF_AXI_CLK] = &gcc_disp_sf_axi_clk.clkr,
3223*d1919c37STaniya Das 	[GCC_EVA_AXI0_CLK] = &gcc_eva_axi0_clk.clkr,
3224*d1919c37STaniya Das 	[GCC_EVA_AXI0C_CLK] = &gcc_eva_axi0c_clk.clkr,
3225*d1919c37STaniya Das 	[GCC_GP1_CLK] = &gcc_gp1_clk.clkr,
3226*d1919c37STaniya Das 	[GCC_GP1_CLK_SRC] = &gcc_gp1_clk_src.clkr,
3227*d1919c37STaniya Das 	[GCC_GP2_CLK] = &gcc_gp2_clk.clkr,
3228*d1919c37STaniya Das 	[GCC_GP2_CLK_SRC] = &gcc_gp2_clk_src.clkr,
3229*d1919c37STaniya Das 	[GCC_GP3_CLK] = &gcc_gp3_clk.clkr,
3230*d1919c37STaniya Das 	[GCC_GP3_CLK_SRC] = &gcc_gp3_clk_src.clkr,
3231*d1919c37STaniya Das 	[GCC_GPLL0] = &gcc_gpll0.clkr,
3232*d1919c37STaniya Das 	[GCC_GPLL0_OUT_EVEN] = &gcc_gpll0_out_even.clkr,
3233*d1919c37STaniya Das 	[GCC_GPLL1] = &gcc_gpll1.clkr,
3234*d1919c37STaniya Das 	[GCC_GPLL4] = &gcc_gpll4.clkr,
3235*d1919c37STaniya Das 	[GCC_GPLL7] = &gcc_gpll7.clkr,
3236*d1919c37STaniya Das 	[GCC_GPLL9] = &gcc_gpll9.clkr,
3237*d1919c37STaniya Das 	[GCC_GPU_GEMNOC_GFX_CLK] = &gcc_gpu_gemnoc_gfx_clk.clkr,
3238*d1919c37STaniya Das 	[GCC_GPU_GPLL0_CLK_SRC] = &gcc_gpu_gpll0_clk_src.clkr,
3239*d1919c37STaniya Das 	[GCC_GPU_GPLL0_DIV_CLK_SRC] = &gcc_gpu_gpll0_div_clk_src.clkr,
3240*d1919c37STaniya Das 	[GCC_PCIE_0_AUX_CLK] = &gcc_pcie_0_aux_clk.clkr,
3241*d1919c37STaniya Das 	[GCC_PCIE_0_AUX_CLK_SRC] = &gcc_pcie_0_aux_clk_src.clkr,
3242*d1919c37STaniya Das 	[GCC_PCIE_0_CFG_AHB_CLK] = &gcc_pcie_0_cfg_ahb_clk.clkr,
3243*d1919c37STaniya Das 	[GCC_PCIE_0_MSTR_AXI_CLK] = &gcc_pcie_0_mstr_axi_clk.clkr,
3244*d1919c37STaniya Das 	[GCC_PCIE_0_PHY_AUX_CLK] = &gcc_pcie_0_phy_aux_clk.clkr,
3245*d1919c37STaniya Das 	[GCC_PCIE_0_PHY_AUX_CLK_SRC] = &gcc_pcie_0_phy_aux_clk_src.clkr,
3246*d1919c37STaniya Das 	[GCC_PCIE_0_PHY_RCHNG_CLK] = &gcc_pcie_0_phy_rchng_clk.clkr,
3247*d1919c37STaniya Das 	[GCC_PCIE_0_PHY_RCHNG_CLK_SRC] = &gcc_pcie_0_phy_rchng_clk_src.clkr,
3248*d1919c37STaniya Das 	[GCC_PCIE_0_PIPE_CLK] = &gcc_pcie_0_pipe_clk.clkr,
3249*d1919c37STaniya Das 	[GCC_PCIE_0_PIPE_CLK_SRC] = &gcc_pcie_0_pipe_clk_src.clkr,
3250*d1919c37STaniya Das 	[GCC_PCIE_0_SLV_AXI_CLK] = &gcc_pcie_0_slv_axi_clk.clkr,
3251*d1919c37STaniya Das 	[GCC_PCIE_0_SLV_Q2A_AXI_CLK] = &gcc_pcie_0_slv_q2a_axi_clk.clkr,
3252*d1919c37STaniya Das 	[GCC_PDM2_CLK] = &gcc_pdm2_clk.clkr,
3253*d1919c37STaniya Das 	[GCC_PDM2_CLK_SRC] = &gcc_pdm2_clk_src.clkr,
3254*d1919c37STaniya Das 	[GCC_PDM_AHB_CLK] = &gcc_pdm_ahb_clk.clkr,
3255*d1919c37STaniya Das 	[GCC_PDM_XO4_CLK] = &gcc_pdm_xo4_clk.clkr,
3256*d1919c37STaniya Das 	[GCC_QUPV3_I2C_CORE_CLK] = &gcc_qupv3_i2c_core_clk.clkr,
3257*d1919c37STaniya Das 	[GCC_QUPV3_I2C_S0_CLK] = &gcc_qupv3_i2c_s0_clk.clkr,
3258*d1919c37STaniya Das 	[GCC_QUPV3_I2C_S0_CLK_SRC] = &gcc_qupv3_i2c_s0_clk_src.clkr,
3259*d1919c37STaniya Das 	[GCC_QUPV3_I2C_S1_CLK] = &gcc_qupv3_i2c_s1_clk.clkr,
3260*d1919c37STaniya Das 	[GCC_QUPV3_I2C_S1_CLK_SRC] = &gcc_qupv3_i2c_s1_clk_src.clkr,
3261*d1919c37STaniya Das 	[GCC_QUPV3_I2C_S2_CLK] = &gcc_qupv3_i2c_s2_clk.clkr,
3262*d1919c37STaniya Das 	[GCC_QUPV3_I2C_S2_CLK_SRC] = &gcc_qupv3_i2c_s2_clk_src.clkr,
3263*d1919c37STaniya Das 	[GCC_QUPV3_I2C_S3_CLK] = &gcc_qupv3_i2c_s3_clk.clkr,
3264*d1919c37STaniya Das 	[GCC_QUPV3_I2C_S3_CLK_SRC] = &gcc_qupv3_i2c_s3_clk_src.clkr,
3265*d1919c37STaniya Das 	[GCC_QUPV3_I2C_S4_CLK] = &gcc_qupv3_i2c_s4_clk.clkr,
3266*d1919c37STaniya Das 	[GCC_QUPV3_I2C_S4_CLK_SRC] = &gcc_qupv3_i2c_s4_clk_src.clkr,
3267*d1919c37STaniya Das 	[GCC_QUPV3_I2C_S_AHB_CLK] = &gcc_qupv3_i2c_s_ahb_clk.clkr,
3268*d1919c37STaniya Das 	[GCC_QUPV3_WRAP1_CORE_2X_CLK] = &gcc_qupv3_wrap1_core_2x_clk.clkr,
3269*d1919c37STaniya Das 	[GCC_QUPV3_WRAP1_CORE_CLK] = &gcc_qupv3_wrap1_core_clk.clkr,
3270*d1919c37STaniya Das 	[GCC_QUPV3_WRAP1_QSPI_REF_CLK] = &gcc_qupv3_wrap1_qspi_ref_clk.clkr,
3271*d1919c37STaniya Das 	[GCC_QUPV3_WRAP1_QSPI_REF_CLK_SRC] = &gcc_qupv3_wrap1_qspi_ref_clk_src.clkr,
3272*d1919c37STaniya Das 	[GCC_QUPV3_WRAP1_S0_CLK] = &gcc_qupv3_wrap1_s0_clk.clkr,
3273*d1919c37STaniya Das 	[GCC_QUPV3_WRAP1_S0_CLK_SRC] = &gcc_qupv3_wrap1_s0_clk_src.clkr,
3274*d1919c37STaniya Das 	[GCC_QUPV3_WRAP1_S1_CLK] = &gcc_qupv3_wrap1_s1_clk.clkr,
3275*d1919c37STaniya Das 	[GCC_QUPV3_WRAP1_S1_CLK_SRC] = &gcc_qupv3_wrap1_s1_clk_src.clkr,
3276*d1919c37STaniya Das 	[GCC_QUPV3_WRAP1_S2_CLK] = &gcc_qupv3_wrap1_s2_clk.clkr,
3277*d1919c37STaniya Das 	[GCC_QUPV3_WRAP1_S2_CLK_SRC] = &gcc_qupv3_wrap1_s2_clk_src.clkr,
3278*d1919c37STaniya Das 	[GCC_QUPV3_WRAP1_S3_CLK] = &gcc_qupv3_wrap1_s3_clk.clkr,
3279*d1919c37STaniya Das 	[GCC_QUPV3_WRAP1_S3_CLK_SRC] = &gcc_qupv3_wrap1_s3_clk_src.clkr,
3280*d1919c37STaniya Das 	[GCC_QUPV3_WRAP1_S4_CLK] = &gcc_qupv3_wrap1_s4_clk.clkr,
3281*d1919c37STaniya Das 	[GCC_QUPV3_WRAP1_S4_CLK_SRC] = &gcc_qupv3_wrap1_s4_clk_src.clkr,
3282*d1919c37STaniya Das 	[GCC_QUPV3_WRAP1_S5_CLK] = &gcc_qupv3_wrap1_s5_clk.clkr,
3283*d1919c37STaniya Das 	[GCC_QUPV3_WRAP1_S5_CLK_SRC] = &gcc_qupv3_wrap1_s5_clk_src.clkr,
3284*d1919c37STaniya Das 	[GCC_QUPV3_WRAP1_S6_CLK] = &gcc_qupv3_wrap1_s6_clk.clkr,
3285*d1919c37STaniya Das 	[GCC_QUPV3_WRAP1_S6_CLK_SRC] = &gcc_qupv3_wrap1_s6_clk_src.clkr,
3286*d1919c37STaniya Das 	[GCC_QUPV3_WRAP1_S7_CLK] = &gcc_qupv3_wrap1_s7_clk.clkr,
3287*d1919c37STaniya Das 	[GCC_QUPV3_WRAP1_S7_CLK_SRC] = &gcc_qupv3_wrap1_s7_clk_src.clkr,
3288*d1919c37STaniya Das 	[GCC_QUPV3_WRAP2_CORE_2X_CLK] = &gcc_qupv3_wrap2_core_2x_clk.clkr,
3289*d1919c37STaniya Das 	[GCC_QUPV3_WRAP2_CORE_CLK] = &gcc_qupv3_wrap2_core_clk.clkr,
3290*d1919c37STaniya Das 	[GCC_QUPV3_WRAP2_S0_CLK] = &gcc_qupv3_wrap2_s0_clk.clkr,
3291*d1919c37STaniya Das 	[GCC_QUPV3_WRAP2_S0_CLK_SRC] = &gcc_qupv3_wrap2_s0_clk_src.clkr,
3292*d1919c37STaniya Das 	[GCC_QUPV3_WRAP2_S1_CLK] = &gcc_qupv3_wrap2_s1_clk.clkr,
3293*d1919c37STaniya Das 	[GCC_QUPV3_WRAP2_S1_CLK_SRC] = &gcc_qupv3_wrap2_s1_clk_src.clkr,
3294*d1919c37STaniya Das 	[GCC_QUPV3_WRAP2_S2_CLK] = &gcc_qupv3_wrap2_s2_clk.clkr,
3295*d1919c37STaniya Das 	[GCC_QUPV3_WRAP2_S2_CLK_SRC] = &gcc_qupv3_wrap2_s2_clk_src.clkr,
3296*d1919c37STaniya Das 	[GCC_QUPV3_WRAP2_S3_CLK] = &gcc_qupv3_wrap2_s3_clk.clkr,
3297*d1919c37STaniya Das 	[GCC_QUPV3_WRAP2_S3_CLK_SRC] = &gcc_qupv3_wrap2_s3_clk_src.clkr,
3298*d1919c37STaniya Das 	[GCC_QUPV3_WRAP2_S4_CLK] = &gcc_qupv3_wrap2_s4_clk.clkr,
3299*d1919c37STaniya Das 	[GCC_QUPV3_WRAP2_S4_CLK_SRC] = &gcc_qupv3_wrap2_s4_clk_src.clkr,
3300*d1919c37STaniya Das 	[GCC_QUPV3_WRAP3_CORE_2X_CLK] = &gcc_qupv3_wrap3_core_2x_clk.clkr,
3301*d1919c37STaniya Das 	[GCC_QUPV3_WRAP3_CORE_CLK] = &gcc_qupv3_wrap3_core_clk.clkr,
3302*d1919c37STaniya Das 	[GCC_QUPV3_WRAP3_IBI_CTRL_0_CLK_SRC] = &gcc_qupv3_wrap3_ibi_ctrl_0_clk_src.clkr,
3303*d1919c37STaniya Das 	[GCC_QUPV3_WRAP3_IBI_CTRL_1_CLK] = &gcc_qupv3_wrap3_ibi_ctrl_1_clk.clkr,
3304*d1919c37STaniya Das 	[GCC_QUPV3_WRAP3_IBI_CTRL_2_CLK] = &gcc_qupv3_wrap3_ibi_ctrl_2_clk.clkr,
3305*d1919c37STaniya Das 	[GCC_QUPV3_WRAP3_S0_CLK] = &gcc_qupv3_wrap3_s0_clk.clkr,
3306*d1919c37STaniya Das 	[GCC_QUPV3_WRAP3_S0_CLK_SRC] = &gcc_qupv3_wrap3_s0_clk_src.clkr,
3307*d1919c37STaniya Das 	[GCC_QUPV3_WRAP3_S1_CLK] = &gcc_qupv3_wrap3_s1_clk.clkr,
3308*d1919c37STaniya Das 	[GCC_QUPV3_WRAP3_S1_CLK_SRC] = &gcc_qupv3_wrap3_s1_clk_src.clkr,
3309*d1919c37STaniya Das 	[GCC_QUPV3_WRAP3_S2_CLK] = &gcc_qupv3_wrap3_s2_clk.clkr,
3310*d1919c37STaniya Das 	[GCC_QUPV3_WRAP3_S2_CLK_SRC] = &gcc_qupv3_wrap3_s2_clk_src.clkr,
3311*d1919c37STaniya Das 	[GCC_QUPV3_WRAP3_S3_CLK] = &gcc_qupv3_wrap3_s3_clk.clkr,
3312*d1919c37STaniya Das 	[GCC_QUPV3_WRAP3_S3_CLK_SRC] = &gcc_qupv3_wrap3_s3_clk_src.clkr,
3313*d1919c37STaniya Das 	[GCC_QUPV3_WRAP3_S4_CLK] = &gcc_qupv3_wrap3_s4_clk.clkr,
3314*d1919c37STaniya Das 	[GCC_QUPV3_WRAP3_S4_CLK_SRC] = &gcc_qupv3_wrap3_s4_clk_src.clkr,
3315*d1919c37STaniya Das 	[GCC_QUPV3_WRAP3_S5_CLK] = &gcc_qupv3_wrap3_s5_clk.clkr,
3316*d1919c37STaniya Das 	[GCC_QUPV3_WRAP3_S5_CLK_SRC] = &gcc_qupv3_wrap3_s5_clk_src.clkr,
3317*d1919c37STaniya Das 	[GCC_QUPV3_WRAP4_CORE_2X_CLK] = &gcc_qupv3_wrap4_core_2x_clk.clkr,
3318*d1919c37STaniya Das 	[GCC_QUPV3_WRAP4_CORE_CLK] = &gcc_qupv3_wrap4_core_clk.clkr,
3319*d1919c37STaniya Das 	[GCC_QUPV3_WRAP4_S0_CLK] = &gcc_qupv3_wrap4_s0_clk.clkr,
3320*d1919c37STaniya Das 	[GCC_QUPV3_WRAP4_S0_CLK_SRC] = &gcc_qupv3_wrap4_s0_clk_src.clkr,
3321*d1919c37STaniya Das 	[GCC_QUPV3_WRAP4_S1_CLK] = &gcc_qupv3_wrap4_s1_clk.clkr,
3322*d1919c37STaniya Das 	[GCC_QUPV3_WRAP4_S1_CLK_SRC] = &gcc_qupv3_wrap4_s1_clk_src.clkr,
3323*d1919c37STaniya Das 	[GCC_QUPV3_WRAP4_S2_CLK] = &gcc_qupv3_wrap4_s2_clk.clkr,
3324*d1919c37STaniya Das 	[GCC_QUPV3_WRAP4_S2_CLK_SRC] = &gcc_qupv3_wrap4_s2_clk_src.clkr,
3325*d1919c37STaniya Das 	[GCC_QUPV3_WRAP4_S3_CLK] = &gcc_qupv3_wrap4_s3_clk.clkr,
3326*d1919c37STaniya Das 	[GCC_QUPV3_WRAP4_S3_CLK_SRC] = &gcc_qupv3_wrap4_s3_clk_src.clkr,
3327*d1919c37STaniya Das 	[GCC_QUPV3_WRAP4_S4_CLK] = &gcc_qupv3_wrap4_s4_clk.clkr,
3328*d1919c37STaniya Das 	[GCC_QUPV3_WRAP4_S4_CLK_SRC] = &gcc_qupv3_wrap4_s4_clk_src.clkr,
3329*d1919c37STaniya Das 	[GCC_QUPV3_WRAP_1_M_AXI_CLK] = &gcc_qupv3_wrap_1_m_axi_clk.clkr,
3330*d1919c37STaniya Das 	[GCC_QUPV3_WRAP_1_S_AHB_CLK] = &gcc_qupv3_wrap_1_s_ahb_clk.clkr,
3331*d1919c37STaniya Das 	[GCC_QUPV3_WRAP_2_M_AHB_CLK] = &gcc_qupv3_wrap_2_m_ahb_clk.clkr,
3332*d1919c37STaniya Das 	[GCC_QUPV3_WRAP_2_S_AHB_CLK] = &gcc_qupv3_wrap_2_s_ahb_clk.clkr,
3333*d1919c37STaniya Das 	[GCC_QUPV3_WRAP_3_IBI_1_AHB_CLK] = &gcc_qupv3_wrap_3_ibi_1_ahb_clk.clkr,
3334*d1919c37STaniya Das 	[GCC_QUPV3_WRAP_3_IBI_2_AHB_CLK] = &gcc_qupv3_wrap_3_ibi_2_ahb_clk.clkr,
3335*d1919c37STaniya Das 	[GCC_QUPV3_WRAP_3_M_AHB_CLK] = &gcc_qupv3_wrap_3_m_ahb_clk.clkr,
3336*d1919c37STaniya Das 	[GCC_QUPV3_WRAP_3_S_AHB_CLK] = &gcc_qupv3_wrap_3_s_ahb_clk.clkr,
3337*d1919c37STaniya Das 	[GCC_QUPV3_WRAP_4_M_AHB_CLK] = &gcc_qupv3_wrap_4_m_ahb_clk.clkr,
3338*d1919c37STaniya Das 	[GCC_QUPV3_WRAP_4_S_AHB_CLK] = &gcc_qupv3_wrap_4_s_ahb_clk.clkr,
3339*d1919c37STaniya Das 	[GCC_SDCC2_AHB_CLK] = &gcc_sdcc2_ahb_clk.clkr,
3340*d1919c37STaniya Das 	[GCC_SDCC2_APPS_CLK] = &gcc_sdcc2_apps_clk.clkr,
3341*d1919c37STaniya Das 	[GCC_SDCC2_APPS_CLK_SRC] = &gcc_sdcc2_apps_clk_src.clkr,
3342*d1919c37STaniya Das 	[GCC_SDCC4_AHB_CLK] = &gcc_sdcc4_ahb_clk.clkr,
3343*d1919c37STaniya Das 	[GCC_SDCC4_APPS_CLK] = &gcc_sdcc4_apps_clk.clkr,
3344*d1919c37STaniya Das 	[GCC_SDCC4_APPS_CLK_SRC] = &gcc_sdcc4_apps_clk_src.clkr,
3345*d1919c37STaniya Das 	[GCC_UFS_PHY_AHB_CLK] = &gcc_ufs_phy_ahb_clk.clkr,
3346*d1919c37STaniya Das 	[GCC_UFS_PHY_AXI_CLK] = &gcc_ufs_phy_axi_clk.clkr,
3347*d1919c37STaniya Das 	[GCC_UFS_PHY_AXI_CLK_SRC] = &gcc_ufs_phy_axi_clk_src.clkr,
3348*d1919c37STaniya Das 	[GCC_UFS_PHY_ICE_CORE_CLK] = &gcc_ufs_phy_ice_core_clk.clkr,
3349*d1919c37STaniya Das 	[GCC_UFS_PHY_ICE_CORE_CLK_SRC] = &gcc_ufs_phy_ice_core_clk_src.clkr,
3350*d1919c37STaniya Das 	[GCC_UFS_PHY_PHY_AUX_CLK] = &gcc_ufs_phy_phy_aux_clk.clkr,
3351*d1919c37STaniya Das 	[GCC_UFS_PHY_PHY_AUX_CLK_SRC] = &gcc_ufs_phy_phy_aux_clk_src.clkr,
3352*d1919c37STaniya Das 	[GCC_UFS_PHY_RX_SYMBOL_0_CLK] = &gcc_ufs_phy_rx_symbol_0_clk.clkr,
3353*d1919c37STaniya Das 	[GCC_UFS_PHY_RX_SYMBOL_0_CLK_SRC] = &gcc_ufs_phy_rx_symbol_0_clk_src.clkr,
3354*d1919c37STaniya Das 	[GCC_UFS_PHY_RX_SYMBOL_1_CLK] = &gcc_ufs_phy_rx_symbol_1_clk.clkr,
3355*d1919c37STaniya Das 	[GCC_UFS_PHY_RX_SYMBOL_1_CLK_SRC] = &gcc_ufs_phy_rx_symbol_1_clk_src.clkr,
3356*d1919c37STaniya Das 	[GCC_UFS_PHY_TX_SYMBOL_0_CLK] = &gcc_ufs_phy_tx_symbol_0_clk.clkr,
3357*d1919c37STaniya Das 	[GCC_UFS_PHY_TX_SYMBOL_0_CLK_SRC] = &gcc_ufs_phy_tx_symbol_0_clk_src.clkr,
3358*d1919c37STaniya Das 	[GCC_UFS_PHY_UNIPRO_CORE_CLK] = &gcc_ufs_phy_unipro_core_clk.clkr,
3359*d1919c37STaniya Das 	[GCC_UFS_PHY_UNIPRO_CORE_CLK_SRC] = &gcc_ufs_phy_unipro_core_clk_src.clkr,
3360*d1919c37STaniya Das 	[GCC_USB30_PRIM_MASTER_CLK] = &gcc_usb30_prim_master_clk.clkr,
3361*d1919c37STaniya Das 	[GCC_USB30_PRIM_MASTER_CLK_SRC] = &gcc_usb30_prim_master_clk_src.clkr,
3362*d1919c37STaniya Das 	[GCC_USB30_PRIM_MOCK_UTMI_CLK] = &gcc_usb30_prim_mock_utmi_clk.clkr,
3363*d1919c37STaniya Das 	[GCC_USB30_PRIM_MOCK_UTMI_CLK_SRC] = &gcc_usb30_prim_mock_utmi_clk_src.clkr,
3364*d1919c37STaniya Das 	[GCC_USB30_PRIM_MOCK_UTMI_POSTDIV_CLK_SRC] = &gcc_usb30_prim_mock_utmi_postdiv_clk_src.clkr,
3365*d1919c37STaniya Das 	[GCC_USB30_PRIM_SLEEP_CLK] = &gcc_usb30_prim_sleep_clk.clkr,
3366*d1919c37STaniya Das 	[GCC_USB3_PRIM_PHY_AUX_CLK] = &gcc_usb3_prim_phy_aux_clk.clkr,
3367*d1919c37STaniya Das 	[GCC_USB3_PRIM_PHY_AUX_CLK_SRC] = &gcc_usb3_prim_phy_aux_clk_src.clkr,
3368*d1919c37STaniya Das 	[GCC_USB3_PRIM_PHY_COM_AUX_CLK] = &gcc_usb3_prim_phy_com_aux_clk.clkr,
3369*d1919c37STaniya Das 	[GCC_USB3_PRIM_PHY_PIPE_CLK] = &gcc_usb3_prim_phy_pipe_clk.clkr,
3370*d1919c37STaniya Das 	[GCC_USB3_PRIM_PHY_PIPE_CLK_SRC] = &gcc_usb3_prim_phy_pipe_clk_src.clkr,
3371*d1919c37STaniya Das 	[GCC_VIDEO_AXI0_CLK] = &gcc_video_axi0_clk.clkr,
3372*d1919c37STaniya Das 	[GCC_VIDEO_AXI1_CLK] = &gcc_video_axi1_clk.clkr,
3373*d1919c37STaniya Das 	[GCC_QMIP_CAMERA_CMD_AHB_CLK] = &gcc_qmip_camera_cmd_ahb_clk.clkr,
3374*d1919c37STaniya Das 	[GCC_QMIP_VIDEO_VCODEC_AHB_CLK] = &gcc_qmip_video_vcodec_ahb_clk.clkr,
3375*d1919c37STaniya Das 	[GCC_QMIP_GPU_AHB_CLK] = &gcc_qmip_gpu_ahb_clk.clkr,
3376*d1919c37STaniya Das 	[GCC_QMIP_CAMERA_NRT_AHB_CLK] = &gcc_qmip_camera_nrt_ahb_clk.clkr,
3377*d1919c37STaniya Das 	[GCC_QMIP_CAMERA_RT_AHB_CLK] = &gcc_qmip_camera_rt_ahb_clk.clkr,
3378*d1919c37STaniya Das 	[GCC_QMIP_DISP_DCP_SF_AHB_CLK] = &gcc_qmip_disp_dcp_sf_ahb_clk.clkr,
3379*d1919c37STaniya Das 	[GCC_QMIP_PCIE_AHB_CLK] = &gcc_qmip_pcie_ahb_clk.clkr,
3380*d1919c37STaniya Das 	[GCC_QMIP_VIDEO_CV_CPU_AHB_CLK] = &gcc_qmip_video_cv_cpu_ahb_clk.clkr,
3381*d1919c37STaniya Das 	[GCC_QMIP_VIDEO_CVP_AHB_CLK] = &gcc_qmip_video_cvp_ahb_clk.clkr,
3382*d1919c37STaniya Das 	[GCC_QMIP_VIDEO_V_CPU_AHB_CLK] = &gcc_qmip_video_v_cpu_ahb_clk.clkr,
3383*d1919c37STaniya Das };
3384*d1919c37STaniya Das 
3385*d1919c37STaniya Das static struct gdsc *gcc_kaanapali_gdscs[] = {
3386*d1919c37STaniya Das 	[GCC_PCIE_0_GDSC] = &gcc_pcie_0_gdsc,
3387*d1919c37STaniya Das 	[GCC_PCIE_0_PHY_GDSC] = &gcc_pcie_0_phy_gdsc,
3388*d1919c37STaniya Das 	[GCC_UFS_MEM_PHY_GDSC] = &gcc_ufs_mem_phy_gdsc,
3389*d1919c37STaniya Das 	[GCC_UFS_PHY_GDSC] = &gcc_ufs_phy_gdsc,
3390*d1919c37STaniya Das 	[GCC_USB30_PRIM_GDSC] = &gcc_usb30_prim_gdsc,
3391*d1919c37STaniya Das 	[GCC_USB3_PHY_GDSC] = &gcc_usb3_phy_gdsc,
3392*d1919c37STaniya Das };
3393*d1919c37STaniya Das 
3394*d1919c37STaniya Das static const struct qcom_reset_map gcc_kaanapali_resets[] = {
3395*d1919c37STaniya Das 	[GCC_CAMERA_BCR] = { 0x26000 },
3396*d1919c37STaniya Das 	[GCC_DISPLAY_BCR] = { 0x27000 },
3397*d1919c37STaniya Das 	[GCC_EVA_AXI0_CLK_ARES] = { 0x9f008, 2 },
3398*d1919c37STaniya Das 	[GCC_EVA_AXI0C_CLK_ARES] = { 0x9f01c, 2 },
3399*d1919c37STaniya Das 	[GCC_EVA_BCR] = { 0x9f000 },
3400*d1919c37STaniya Das 	[GCC_GPU_BCR] = { 0x71000 },
3401*d1919c37STaniya Das 	[GCC_PCIE_0_BCR] = { 0x6b000 },
3402*d1919c37STaniya Das 	[GCC_PCIE_0_LINK_DOWN_BCR] = { 0x6c014 },
3403*d1919c37STaniya Das 	[GCC_PCIE_0_NOCSR_COM_PHY_BCR] = { 0x6c020 },
3404*d1919c37STaniya Das 	[GCC_PCIE_0_PHY_BCR] = { 0x6c01c },
3405*d1919c37STaniya Das 	[GCC_PCIE_0_PHY_NOCSR_COM_PHY_BCR] = { 0x6c028 },
3406*d1919c37STaniya Das 	[GCC_PCIE_PHY_BCR] = { 0x6f000 },
3407*d1919c37STaniya Das 	[GCC_PCIE_PHY_CFG_AHB_BCR] = { 0x6f00c },
3408*d1919c37STaniya Das 	[GCC_PCIE_PHY_COM_BCR] = { 0x6f010 },
3409*d1919c37STaniya Das 	[GCC_PCIE_RSCC_BCR] = { 0x11000 },
3410*d1919c37STaniya Das 	[GCC_PDM_BCR] = { 0x33000 },
3411*d1919c37STaniya Das 	[GCC_QUPV3_WRAPPER_1_BCR] = { 0x18000 },
3412*d1919c37STaniya Das 	[GCC_QUPV3_WRAPPER_2_BCR] = { 0x1e000 },
3413*d1919c37STaniya Das 	[GCC_QUPV3_WRAPPER_3_BCR] = { 0xa8000 },
3414*d1919c37STaniya Das 	[GCC_QUPV3_WRAPPER_4_BCR] = { 0xa9000 },
3415*d1919c37STaniya Das 	[GCC_QUPV3_WRAPPER_I2C_BCR] = { 0x17000 },
3416*d1919c37STaniya Das 	[GCC_QUSB2PHY_PRIM_BCR] = { 0x12000 },
3417*d1919c37STaniya Das 	[GCC_QUSB2PHY_SEC_BCR] = { 0x12004 },
3418*d1919c37STaniya Das 	[GCC_SDCC2_BCR] = { 0x14000 },
3419*d1919c37STaniya Das 	[GCC_SDCC4_BCR] = { 0x16000 },
3420*d1919c37STaniya Das 	[GCC_UFS_PHY_BCR] = { 0x77000 },
3421*d1919c37STaniya Das 	[GCC_USB30_PRIM_BCR] = { 0x39000 },
3422*d1919c37STaniya Das 	[GCC_USB3_DP_PHY_PRIM_BCR] = { 0x50008 },
3423*d1919c37STaniya Das 	[GCC_USB3_DP_PHY_SEC_BCR] = { 0x50014 },
3424*d1919c37STaniya Das 	[GCC_USB3_PHY_PRIM_BCR] = { 0x50000 },
3425*d1919c37STaniya Das 	[GCC_USB3_PHY_SEC_BCR] = { 0x5000c },
3426*d1919c37STaniya Das 	[GCC_USB3PHY_PHY_PRIM_BCR] = { 0x50004 },
3427*d1919c37STaniya Das 	[GCC_USB3PHY_PHY_SEC_BCR] = { 0x50010 },
3428*d1919c37STaniya Das 	[GCC_VIDEO_AXI0_CLK_ARES] = { 0x32018, 2 },
3429*d1919c37STaniya Das 	[GCC_VIDEO_AXI1_CLK_ARES] = { 0x3202c, 2 },
3430*d1919c37STaniya Das 	[GCC_VIDEO_BCR] = { 0x32000 },
3431*d1919c37STaniya Das 	[GCC_VIDEO_XO_CLK_ARES] = { 0x32040, 2 },
3432*d1919c37STaniya Das };
3433*d1919c37STaniya Das 
3434*d1919c37STaniya Das static const struct clk_rcg_dfs_data gcc_dfs_clocks[] = {
3435*d1919c37STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap1_qspi_ref_clk_src),
3436*d1919c37STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s0_clk_src),
3437*d1919c37STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s1_clk_src),
3438*d1919c37STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s3_clk_src),
3439*d1919c37STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s4_clk_src),
3440*d1919c37STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s5_clk_src),
3441*d1919c37STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s6_clk_src),
3442*d1919c37STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s7_clk_src),
3443*d1919c37STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap2_s0_clk_src),
3444*d1919c37STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap2_s1_clk_src),
3445*d1919c37STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap2_s2_clk_src),
3446*d1919c37STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap2_s3_clk_src),
3447*d1919c37STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap2_s4_clk_src),
3448*d1919c37STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap3_s0_clk_src),
3449*d1919c37STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap3_s1_clk_src),
3450*d1919c37STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap3_s2_clk_src),
3451*d1919c37STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap3_s3_clk_src),
3452*d1919c37STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap3_s4_clk_src),
3453*d1919c37STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap3_s5_clk_src),
3454*d1919c37STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap4_s0_clk_src),
3455*d1919c37STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap4_s1_clk_src),
3456*d1919c37STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap4_s2_clk_src),
3457*d1919c37STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap4_s3_clk_src),
3458*d1919c37STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap4_s4_clk_src),
3459*d1919c37STaniya Das };
3460*d1919c37STaniya Das 
3461*d1919c37STaniya Das static u32 gcc_kaanapali_critical_cbcrs[] = {
3462*d1919c37STaniya Das 	0xa0004, /* GCC_CAM_BIST_MCLK_AHB_CLK */
3463*d1919c37STaniya Das 	0x26004, /* GCC_CAMERA_AHB_CLK */
3464*d1919c37STaniya Das 	0x2603c, /* GCC_CAMERA_XO_CLK */
3465*d1919c37STaniya Das 	0x27004, /* GCC_DISP_AHB_CLK */
3466*d1919c37STaniya Das 	0x9f004, /* GCC_EVA_AHB_CLK */
3467*d1919c37STaniya Das 	0x9f024, /* GCC_EVA_XO_CLK */
3468*d1919c37STaniya Das 	0x71004, /* GCC_GPU_CFG_AHB_CLK */
3469*d1919c37STaniya Das 	0x52010, /* GCC_PCIE_RSCC_CFG_AHB_CLK */
3470*d1919c37STaniya Das 	0x52010, /* GCC_PCIE_RSCC_XO_CLK */
3471*d1919c37STaniya Das 	0x32004, /* GCC_VIDEO_AHB_CLK */
3472*d1919c37STaniya Das 	0x32040, /* GCC_VIDEO_XO_CLK */
3473*d1919c37STaniya Das };
3474*d1919c37STaniya Das 
3475*d1919c37STaniya Das static const struct regmap_config gcc_kaanapali_regmap_config = {
3476*d1919c37STaniya Das 	.reg_bits = 32,
3477*d1919c37STaniya Das 	.reg_stride = 4,
3478*d1919c37STaniya Das 	.val_bits = 32,
3479*d1919c37STaniya Das 	.max_register = 0x1f41f0,
3480*d1919c37STaniya Das 	.fast_io = true,
3481*d1919c37STaniya Das };
3482*d1919c37STaniya Das 
3483*d1919c37STaniya Das static void clk_kaanapali_regs_configure(struct device *dev, struct regmap *regmap)
3484*d1919c37STaniya Das {
3485*d1919c37STaniya Das 	/* FORCE_MEM_CORE_ON for ufs phy ice core clocks */
3486*d1919c37STaniya Das 	qcom_branch_set_force_mem_core(regmap, gcc_ufs_phy_ice_core_clk, true);
3487*d1919c37STaniya Das }
3488*d1919c37STaniya Das 
3489*d1919c37STaniya Das static struct qcom_cc_driver_data gcc_kaanapali_driver_data = {
3490*d1919c37STaniya Das 	.clk_cbcrs = gcc_kaanapali_critical_cbcrs,
3491*d1919c37STaniya Das 	.num_clk_cbcrs = ARRAY_SIZE(gcc_kaanapali_critical_cbcrs),
3492*d1919c37STaniya Das 	.dfs_rcgs = gcc_dfs_clocks,
3493*d1919c37STaniya Das 	.num_dfs_rcgs = ARRAY_SIZE(gcc_dfs_clocks),
3494*d1919c37STaniya Das 	.clk_regs_configure = clk_kaanapali_regs_configure,
3495*d1919c37STaniya Das };
3496*d1919c37STaniya Das 
3497*d1919c37STaniya Das static const struct qcom_cc_desc gcc_kaanapali_desc = {
3498*d1919c37STaniya Das 	.config = &gcc_kaanapali_regmap_config,
3499*d1919c37STaniya Das 	.clks = gcc_kaanapali_clocks,
3500*d1919c37STaniya Das 	.num_clks = ARRAY_SIZE(gcc_kaanapali_clocks),
3501*d1919c37STaniya Das 	.resets = gcc_kaanapali_resets,
3502*d1919c37STaniya Das 	.num_resets = ARRAY_SIZE(gcc_kaanapali_resets),
3503*d1919c37STaniya Das 	.gdscs = gcc_kaanapali_gdscs,
3504*d1919c37STaniya Das 	.num_gdscs = ARRAY_SIZE(gcc_kaanapali_gdscs),
3505*d1919c37STaniya Das 	.driver_data = &gcc_kaanapali_driver_data,
3506*d1919c37STaniya Das };
3507*d1919c37STaniya Das 
3508*d1919c37STaniya Das static const struct of_device_id gcc_kaanapali_match_table[] = {
3509*d1919c37STaniya Das 	{ .compatible = "qcom,kaanapali-gcc" },
3510*d1919c37STaniya Das 	{ }
3511*d1919c37STaniya Das };
3512*d1919c37STaniya Das MODULE_DEVICE_TABLE(of, gcc_kaanapali_match_table);
3513*d1919c37STaniya Das 
3514*d1919c37STaniya Das static int gcc_kaanapali_probe(struct platform_device *pdev)
3515*d1919c37STaniya Das {
3516*d1919c37STaniya Das 	return qcom_cc_probe(pdev, &gcc_kaanapali_desc);
3517*d1919c37STaniya Das }
3518*d1919c37STaniya Das 
3519*d1919c37STaniya Das static struct platform_driver gcc_kaanapali_driver = {
3520*d1919c37STaniya Das 	.probe = gcc_kaanapali_probe,
3521*d1919c37STaniya Das 	.driver = {
3522*d1919c37STaniya Das 		.name = "gcc-kaanapali",
3523*d1919c37STaniya Das 		.of_match_table = gcc_kaanapali_match_table,
3524*d1919c37STaniya Das 	},
3525*d1919c37STaniya Das };
3526*d1919c37STaniya Das 
3527*d1919c37STaniya Das static int __init gcc_kaanapali_init(void)
3528*d1919c37STaniya Das {
3529*d1919c37STaniya Das 	return platform_driver_register(&gcc_kaanapali_driver);
3530*d1919c37STaniya Das }
3531*d1919c37STaniya Das subsys_initcall(gcc_kaanapali_init);
3532*d1919c37STaniya Das 
3533*d1919c37STaniya Das static void __exit gcc_kaanapali_exit(void)
3534*d1919c37STaniya Das {
3535*d1919c37STaniya Das 	platform_driver_unregister(&gcc_kaanapali_driver);
3536*d1919c37STaniya Das }
3537*d1919c37STaniya Das module_exit(gcc_kaanapali_exit);
3538*d1919c37STaniya Das 
3539*d1919c37STaniya Das MODULE_DESCRIPTION("QTI GCC Kaanapali Driver");
3540*d1919c37STaniya Das MODULE_LICENSE("GPL");
3541