xref: /linux/drivers/clk/qcom/gcc-nord.c (revision 0fc8f6200d2313278fbf4539bbab74677c685531)
1*a4f780cdSTaniya Das // SPDX-License-Identifier: GPL-2.0-only
2*a4f780cdSTaniya Das /*
3*a4f780cdSTaniya Das  * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
4*a4f780cdSTaniya Das  */
5*a4f780cdSTaniya Das 
6*a4f780cdSTaniya Das #include <linux/clk-provider.h>
7*a4f780cdSTaniya Das #include <linux/mod_devicetable.h>
8*a4f780cdSTaniya Das #include <linux/module.h>
9*a4f780cdSTaniya Das #include <linux/platform_device.h>
10*a4f780cdSTaniya Das #include <linux/regmap.h>
11*a4f780cdSTaniya Das 
12*a4f780cdSTaniya Das #include <dt-bindings/clock/qcom,nord-gcc.h>
13*a4f780cdSTaniya Das 
14*a4f780cdSTaniya Das #include "clk-alpha-pll.h"
15*a4f780cdSTaniya Das #include "clk-branch.h"
16*a4f780cdSTaniya Das #include "clk-pll.h"
17*a4f780cdSTaniya Das #include "clk-rcg.h"
18*a4f780cdSTaniya Das #include "clk-regmap.h"
19*a4f780cdSTaniya Das #include "clk-regmap-divider.h"
20*a4f780cdSTaniya Das #include "clk-regmap-mux.h"
21*a4f780cdSTaniya Das #include "clk-regmap-phy-mux.h"
22*a4f780cdSTaniya Das #include "common.h"
23*a4f780cdSTaniya Das #include "gdsc.h"
24*a4f780cdSTaniya Das #include "reset.h"
25*a4f780cdSTaniya Das 
26*a4f780cdSTaniya Das enum {
27*a4f780cdSTaniya Das 	DT_BI_TCXO,
28*a4f780cdSTaniya Das 	DT_SLEEP_CLK,
29*a4f780cdSTaniya Das 	DT_PCIE_A_PIPE_CLK,
30*a4f780cdSTaniya Das 	DT_PCIE_B_PIPE_CLK,
31*a4f780cdSTaniya Das 	DT_PCIE_C_PIPE_CLK,
32*a4f780cdSTaniya Das 	DT_PCIE_D_PIPE_CLK,
33*a4f780cdSTaniya Das };
34*a4f780cdSTaniya Das 
35*a4f780cdSTaniya Das enum {
36*a4f780cdSTaniya Das 	P_BI_TCXO,
37*a4f780cdSTaniya Das 	P_GCC_GPLL0_OUT_EVEN,
38*a4f780cdSTaniya Das 	P_GCC_GPLL0_OUT_MAIN,
39*a4f780cdSTaniya Das 	P_PCIE_A_PIPE_CLK,
40*a4f780cdSTaniya Das 	P_PCIE_B_PIPE_CLK,
41*a4f780cdSTaniya Das 	P_PCIE_C_PIPE_CLK,
42*a4f780cdSTaniya Das 	P_PCIE_D_PIPE_CLK,
43*a4f780cdSTaniya Das 	P_SLEEP_CLK,
44*a4f780cdSTaniya Das };
45*a4f780cdSTaniya Das 
46*a4f780cdSTaniya Das static struct clk_alpha_pll gcc_gpll0 = {
47*a4f780cdSTaniya Das 	.offset = 0x0,
48*a4f780cdSTaniya Das 	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_OLE],
49*a4f780cdSTaniya Das 	.clkr = {
50*a4f780cdSTaniya Das 		.enable_reg = 0x9d020,
51*a4f780cdSTaniya Das 		.enable_mask = BIT(0),
52*a4f780cdSTaniya Das 		.hw.init = &(const struct clk_init_data) {
53*a4f780cdSTaniya Das 			.name = "gcc_gpll0",
54*a4f780cdSTaniya Das 			.parent_data = &(const struct clk_parent_data) {
55*a4f780cdSTaniya Das 				.index = DT_BI_TCXO,
56*a4f780cdSTaniya Das 			},
57*a4f780cdSTaniya Das 			.num_parents = 1,
58*a4f780cdSTaniya Das 			.ops = &clk_alpha_pll_fixed_lucid_ole_ops,
59*a4f780cdSTaniya Das 		},
60*a4f780cdSTaniya Das 	},
61*a4f780cdSTaniya Das };
62*a4f780cdSTaniya Das 
63*a4f780cdSTaniya Das static const struct clk_div_table post_div_table_gcc_gpll0_out_even[] = {
64*a4f780cdSTaniya Das 	{ 0x1, 2 },
65*a4f780cdSTaniya Das 	{ }
66*a4f780cdSTaniya Das };
67*a4f780cdSTaniya Das 
68*a4f780cdSTaniya Das static struct clk_alpha_pll_postdiv gcc_gpll0_out_even = {
69*a4f780cdSTaniya Das 	.offset = 0x0,
70*a4f780cdSTaniya Das 	.post_div_shift = 10,
71*a4f780cdSTaniya Das 	.post_div_table = post_div_table_gcc_gpll0_out_even,
72*a4f780cdSTaniya Das 	.num_post_div = ARRAY_SIZE(post_div_table_gcc_gpll0_out_even),
73*a4f780cdSTaniya Das 	.width = 4,
74*a4f780cdSTaniya Das 	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_OLE],
75*a4f780cdSTaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
76*a4f780cdSTaniya Das 		.name = "gcc_gpll0_out_even",
77*a4f780cdSTaniya Das 		.parent_hws = (const struct clk_hw*[]) {
78*a4f780cdSTaniya Das 			&gcc_gpll0.clkr.hw,
79*a4f780cdSTaniya Das 		},
80*a4f780cdSTaniya Das 		.num_parents = 1,
81*a4f780cdSTaniya Das 		.ops = &clk_alpha_pll_postdiv_lucid_ole_ops,
82*a4f780cdSTaniya Das 	},
83*a4f780cdSTaniya Das };
84*a4f780cdSTaniya Das 
85*a4f780cdSTaniya Das static const struct parent_map gcc_parent_map_0[] = {
86*a4f780cdSTaniya Das 	{ P_BI_TCXO, 0 },
87*a4f780cdSTaniya Das 	{ P_GCC_GPLL0_OUT_MAIN, 1 },
88*a4f780cdSTaniya Das 	{ P_GCC_GPLL0_OUT_EVEN, 6 },
89*a4f780cdSTaniya Das };
90*a4f780cdSTaniya Das 
91*a4f780cdSTaniya Das static const struct clk_parent_data gcc_parent_data_0[] = {
92*a4f780cdSTaniya Das 	{ .index = DT_BI_TCXO },
93*a4f780cdSTaniya Das 	{ .hw = &gcc_gpll0.clkr.hw },
94*a4f780cdSTaniya Das 	{ .hw = &gcc_gpll0_out_even.clkr.hw },
95*a4f780cdSTaniya Das };
96*a4f780cdSTaniya Das 
97*a4f780cdSTaniya Das static const struct parent_map gcc_parent_map_1[] = {
98*a4f780cdSTaniya Das 	{ P_BI_TCXO, 0 },
99*a4f780cdSTaniya Das 	{ P_SLEEP_CLK, 5 },
100*a4f780cdSTaniya Das };
101*a4f780cdSTaniya Das 
102*a4f780cdSTaniya Das static const struct clk_parent_data gcc_parent_data_1[] = {
103*a4f780cdSTaniya Das 	{ .index = DT_BI_TCXO },
104*a4f780cdSTaniya Das 	{ .index = DT_SLEEP_CLK },
105*a4f780cdSTaniya Das };
106*a4f780cdSTaniya Das 
107*a4f780cdSTaniya Das static const struct parent_map gcc_parent_map_2[] = {
108*a4f780cdSTaniya Das 	{ P_BI_TCXO, 0 },
109*a4f780cdSTaniya Das 	{ P_GCC_GPLL0_OUT_MAIN, 1 },
110*a4f780cdSTaniya Das 	{ P_SLEEP_CLK, 5 },
111*a4f780cdSTaniya Das 	{ P_GCC_GPLL0_OUT_EVEN, 6 },
112*a4f780cdSTaniya Das };
113*a4f780cdSTaniya Das 
114*a4f780cdSTaniya Das static const struct clk_parent_data gcc_parent_data_2[] = {
115*a4f780cdSTaniya Das 	{ .index = DT_BI_TCXO },
116*a4f780cdSTaniya Das 	{ .hw = &gcc_gpll0.clkr.hw },
117*a4f780cdSTaniya Das 	{ .index = DT_SLEEP_CLK },
118*a4f780cdSTaniya Das 	{ .hw = &gcc_gpll0_out_even.clkr.hw },
119*a4f780cdSTaniya Das };
120*a4f780cdSTaniya Das 
121*a4f780cdSTaniya Das static const struct parent_map gcc_parent_map_3[] = {
122*a4f780cdSTaniya Das 	{ P_BI_TCXO, 0 },
123*a4f780cdSTaniya Das 	{ P_GCC_GPLL0_OUT_MAIN, 1 },
124*a4f780cdSTaniya Das };
125*a4f780cdSTaniya Das 
126*a4f780cdSTaniya Das static const struct clk_parent_data gcc_parent_data_3[] = {
127*a4f780cdSTaniya Das 	{ .index = DT_BI_TCXO },
128*a4f780cdSTaniya Das 	{ .hw = &gcc_gpll0.clkr.hw },
129*a4f780cdSTaniya Das };
130*a4f780cdSTaniya Das 
131*a4f780cdSTaniya Das static struct clk_regmap_phy_mux gcc_pcie_a_pipe_clk_src = {
132*a4f780cdSTaniya Das 	.reg = 0x49094,
133*a4f780cdSTaniya Das 	.clkr = {
134*a4f780cdSTaniya Das 		.hw.init = &(const struct clk_init_data) {
135*a4f780cdSTaniya Das 			.name = "gcc_pcie_a_pipe_clk_src",
136*a4f780cdSTaniya Das 			.parent_data = &(const struct clk_parent_data){
137*a4f780cdSTaniya Das 				.index = DT_PCIE_A_PIPE_CLK,
138*a4f780cdSTaniya Das 			},
139*a4f780cdSTaniya Das 			.num_parents = 1,
140*a4f780cdSTaniya Das 			.ops = &clk_regmap_phy_mux_ops,
141*a4f780cdSTaniya Das 		},
142*a4f780cdSTaniya Das 	},
143*a4f780cdSTaniya Das };
144*a4f780cdSTaniya Das 
145*a4f780cdSTaniya Das static struct clk_regmap_phy_mux gcc_pcie_b_pipe_clk_src = {
146*a4f780cdSTaniya Das 	.reg = 0x4a094,
147*a4f780cdSTaniya Das 	.clkr = {
148*a4f780cdSTaniya Das 		.hw.init = &(const struct clk_init_data) {
149*a4f780cdSTaniya Das 			.name = "gcc_pcie_b_pipe_clk_src",
150*a4f780cdSTaniya Das 			.parent_data = &(const struct clk_parent_data){
151*a4f780cdSTaniya Das 				.index = DT_PCIE_B_PIPE_CLK,
152*a4f780cdSTaniya Das 			},
153*a4f780cdSTaniya Das 			.num_parents = 1,
154*a4f780cdSTaniya Das 			.ops = &clk_regmap_phy_mux_ops,
155*a4f780cdSTaniya Das 		},
156*a4f780cdSTaniya Das 	},
157*a4f780cdSTaniya Das };
158*a4f780cdSTaniya Das 
159*a4f780cdSTaniya Das static struct clk_regmap_phy_mux gcc_pcie_c_pipe_clk_src = {
160*a4f780cdSTaniya Das 	.reg = 0x4b094,
161*a4f780cdSTaniya Das 	.clkr = {
162*a4f780cdSTaniya Das 		.hw.init = &(const struct clk_init_data) {
163*a4f780cdSTaniya Das 			.name = "gcc_pcie_c_pipe_clk_src",
164*a4f780cdSTaniya Das 			.parent_data = &(const struct clk_parent_data){
165*a4f780cdSTaniya Das 				.index = DT_PCIE_C_PIPE_CLK,
166*a4f780cdSTaniya Das 			},
167*a4f780cdSTaniya Das 			.num_parents = 1,
168*a4f780cdSTaniya Das 			.ops = &clk_regmap_phy_mux_ops,
169*a4f780cdSTaniya Das 		},
170*a4f780cdSTaniya Das 	},
171*a4f780cdSTaniya Das };
172*a4f780cdSTaniya Das 
173*a4f780cdSTaniya Das static struct clk_regmap_phy_mux gcc_pcie_d_pipe_clk_src = {
174*a4f780cdSTaniya Das 	.reg = 0x4c094,
175*a4f780cdSTaniya Das 	.clkr = {
176*a4f780cdSTaniya Das 		.hw.init = &(const struct clk_init_data) {
177*a4f780cdSTaniya Das 			.name = "gcc_pcie_d_pipe_clk_src",
178*a4f780cdSTaniya Das 			.parent_data = &(const struct clk_parent_data){
179*a4f780cdSTaniya Das 				.index = DT_PCIE_D_PIPE_CLK,
180*a4f780cdSTaniya Das 			},
181*a4f780cdSTaniya Das 			.num_parents = 1,
182*a4f780cdSTaniya Das 			.ops = &clk_regmap_phy_mux_ops,
183*a4f780cdSTaniya Das 		},
184*a4f780cdSTaniya Das 	},
185*a4f780cdSTaniya Das };
186*a4f780cdSTaniya Das 
187*a4f780cdSTaniya Das static const struct freq_tbl ftbl_gcc_gp1_clk_src[] = {
188*a4f780cdSTaniya Das 	F(66666667, P_GCC_GPLL0_OUT_MAIN, 9, 0, 0),
189*a4f780cdSTaniya Das 	F(100000000, P_GCC_GPLL0_OUT_MAIN, 6, 0, 0),
190*a4f780cdSTaniya Das 	F(200000000, P_GCC_GPLL0_OUT_MAIN, 3, 0, 0),
191*a4f780cdSTaniya Das 	{ }
192*a4f780cdSTaniya Das };
193*a4f780cdSTaniya Das 
194*a4f780cdSTaniya Das static struct clk_rcg2 gcc_gp1_clk_src = {
195*a4f780cdSTaniya Das 	.cmd_rcgr = 0x30004,
196*a4f780cdSTaniya Das 	.mnd_width = 16,
197*a4f780cdSTaniya Das 	.hid_width = 5,
198*a4f780cdSTaniya Das 	.parent_map = gcc_parent_map_2,
199*a4f780cdSTaniya Das 	.freq_tbl = ftbl_gcc_gp1_clk_src,
200*a4f780cdSTaniya Das 	.hw_clk_ctrl = true,
201*a4f780cdSTaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
202*a4f780cdSTaniya Das 		.name = "gcc_gp1_clk_src",
203*a4f780cdSTaniya Das 		.parent_data = gcc_parent_data_2,
204*a4f780cdSTaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_2),
205*a4f780cdSTaniya Das 		.flags = CLK_SET_RATE_PARENT,
206*a4f780cdSTaniya Das 		.ops = &clk_rcg2_shared_ops,
207*a4f780cdSTaniya Das 	},
208*a4f780cdSTaniya Das };
209*a4f780cdSTaniya Das 
210*a4f780cdSTaniya Das static struct clk_rcg2 gcc_gp2_clk_src = {
211*a4f780cdSTaniya Das 	.cmd_rcgr = 0x31004,
212*a4f780cdSTaniya Das 	.mnd_width = 16,
213*a4f780cdSTaniya Das 	.hid_width = 5,
214*a4f780cdSTaniya Das 	.parent_map = gcc_parent_map_2,
215*a4f780cdSTaniya Das 	.freq_tbl = ftbl_gcc_gp1_clk_src,
216*a4f780cdSTaniya Das 	.hw_clk_ctrl = true,
217*a4f780cdSTaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
218*a4f780cdSTaniya Das 		.name = "gcc_gp2_clk_src",
219*a4f780cdSTaniya Das 		.parent_data = gcc_parent_data_2,
220*a4f780cdSTaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_2),
221*a4f780cdSTaniya Das 		.flags = CLK_SET_RATE_PARENT,
222*a4f780cdSTaniya Das 		.ops = &clk_rcg2_shared_ops,
223*a4f780cdSTaniya Das 	},
224*a4f780cdSTaniya Das };
225*a4f780cdSTaniya Das 
226*a4f780cdSTaniya Das static const struct freq_tbl ftbl_gcc_pcie_a_aux_clk_src[] = {
227*a4f780cdSTaniya Das 	F(19200000, P_BI_TCXO, 1, 0, 0),
228*a4f780cdSTaniya Das 	{ }
229*a4f780cdSTaniya Das };
230*a4f780cdSTaniya Das 
231*a4f780cdSTaniya Das static struct clk_rcg2 gcc_pcie_a_aux_clk_src = {
232*a4f780cdSTaniya Das 	.cmd_rcgr = 0x49098,
233*a4f780cdSTaniya Das 	.mnd_width = 16,
234*a4f780cdSTaniya Das 	.hid_width = 5,
235*a4f780cdSTaniya Das 	.parent_map = gcc_parent_map_1,
236*a4f780cdSTaniya Das 	.freq_tbl = ftbl_gcc_pcie_a_aux_clk_src,
237*a4f780cdSTaniya Das 	.hw_clk_ctrl = true,
238*a4f780cdSTaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
239*a4f780cdSTaniya Das 		.name = "gcc_pcie_a_aux_clk_src",
240*a4f780cdSTaniya Das 		.parent_data = gcc_parent_data_1,
241*a4f780cdSTaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_1),
242*a4f780cdSTaniya Das 		.flags = CLK_SET_RATE_PARENT,
243*a4f780cdSTaniya Das 		.ops = &clk_rcg2_shared_ops,
244*a4f780cdSTaniya Das 	},
245*a4f780cdSTaniya Das };
246*a4f780cdSTaniya Das 
247*a4f780cdSTaniya Das static struct clk_rcg2 gcc_pcie_a_phy_aux_clk_src = {
248*a4f780cdSTaniya Das 	.cmd_rcgr = 0x4d020,
249*a4f780cdSTaniya Das 	.mnd_width = 16,
250*a4f780cdSTaniya Das 	.hid_width = 5,
251*a4f780cdSTaniya Das 	.parent_map = gcc_parent_map_1,
252*a4f780cdSTaniya Das 	.freq_tbl = ftbl_gcc_pcie_a_aux_clk_src,
253*a4f780cdSTaniya Das 	.hw_clk_ctrl = true,
254*a4f780cdSTaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
255*a4f780cdSTaniya Das 		.name = "gcc_pcie_a_phy_aux_clk_src",
256*a4f780cdSTaniya Das 		.parent_data = gcc_parent_data_1,
257*a4f780cdSTaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_1),
258*a4f780cdSTaniya Das 		.flags = CLK_SET_RATE_PARENT,
259*a4f780cdSTaniya Das 		.ops = &clk_rcg2_shared_ops,
260*a4f780cdSTaniya Das 	},
261*a4f780cdSTaniya Das };
262*a4f780cdSTaniya Das 
263*a4f780cdSTaniya Das static const struct freq_tbl ftbl_gcc_pcie_a_phy_rchng_clk_src[] = {
264*a4f780cdSTaniya Das 	F(66666667, P_GCC_GPLL0_OUT_MAIN, 9, 0, 0),
265*a4f780cdSTaniya Das 	F(100000000, P_GCC_GPLL0_OUT_MAIN, 6, 0, 0),
266*a4f780cdSTaniya Das 	{ }
267*a4f780cdSTaniya Das };
268*a4f780cdSTaniya Das 
269*a4f780cdSTaniya Das static struct clk_rcg2 gcc_pcie_a_phy_rchng_clk_src = {
270*a4f780cdSTaniya Das 	.cmd_rcgr = 0x4907c,
271*a4f780cdSTaniya Das 	.mnd_width = 0,
272*a4f780cdSTaniya Das 	.hid_width = 5,
273*a4f780cdSTaniya Das 	.parent_map = gcc_parent_map_0,
274*a4f780cdSTaniya Das 	.freq_tbl = ftbl_gcc_pcie_a_phy_rchng_clk_src,
275*a4f780cdSTaniya Das 	.hw_clk_ctrl = true,
276*a4f780cdSTaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
277*a4f780cdSTaniya Das 		.name = "gcc_pcie_a_phy_rchng_clk_src",
278*a4f780cdSTaniya Das 		.parent_data = gcc_parent_data_0,
279*a4f780cdSTaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
280*a4f780cdSTaniya Das 		.flags = CLK_SET_RATE_PARENT,
281*a4f780cdSTaniya Das 		.ops = &clk_rcg2_shared_ops,
282*a4f780cdSTaniya Das 	},
283*a4f780cdSTaniya Das };
284*a4f780cdSTaniya Das 
285*a4f780cdSTaniya Das static struct clk_rcg2 gcc_pcie_b_aux_clk_src = {
286*a4f780cdSTaniya Das 	.cmd_rcgr = 0x4a098,
287*a4f780cdSTaniya Das 	.mnd_width = 16,
288*a4f780cdSTaniya Das 	.hid_width = 5,
289*a4f780cdSTaniya Das 	.parent_map = gcc_parent_map_1,
290*a4f780cdSTaniya Das 	.freq_tbl = ftbl_gcc_pcie_a_aux_clk_src,
291*a4f780cdSTaniya Das 	.hw_clk_ctrl = true,
292*a4f780cdSTaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
293*a4f780cdSTaniya Das 		.name = "gcc_pcie_b_aux_clk_src",
294*a4f780cdSTaniya Das 		.parent_data = gcc_parent_data_1,
295*a4f780cdSTaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_1),
296*a4f780cdSTaniya Das 		.flags = CLK_SET_RATE_PARENT,
297*a4f780cdSTaniya Das 		.ops = &clk_rcg2_shared_ops,
298*a4f780cdSTaniya Das 	},
299*a4f780cdSTaniya Das };
300*a4f780cdSTaniya Das 
301*a4f780cdSTaniya Das static struct clk_rcg2 gcc_pcie_b_phy_aux_clk_src = {
302*a4f780cdSTaniya Das 	.cmd_rcgr = 0x4e020,
303*a4f780cdSTaniya Das 	.mnd_width = 16,
304*a4f780cdSTaniya Das 	.hid_width = 5,
305*a4f780cdSTaniya Das 	.parent_map = gcc_parent_map_1,
306*a4f780cdSTaniya Das 	.freq_tbl = ftbl_gcc_pcie_a_aux_clk_src,
307*a4f780cdSTaniya Das 	.hw_clk_ctrl = true,
308*a4f780cdSTaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
309*a4f780cdSTaniya Das 		.name = "gcc_pcie_b_phy_aux_clk_src",
310*a4f780cdSTaniya Das 		.parent_data = gcc_parent_data_1,
311*a4f780cdSTaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_1),
312*a4f780cdSTaniya Das 		.flags = CLK_SET_RATE_PARENT,
313*a4f780cdSTaniya Das 		.ops = &clk_rcg2_shared_ops,
314*a4f780cdSTaniya Das 	},
315*a4f780cdSTaniya Das };
316*a4f780cdSTaniya Das 
317*a4f780cdSTaniya Das static struct clk_rcg2 gcc_pcie_b_phy_rchng_clk_src = {
318*a4f780cdSTaniya Das 	.cmd_rcgr = 0x4a07c,
319*a4f780cdSTaniya Das 	.mnd_width = 0,
320*a4f780cdSTaniya Das 	.hid_width = 5,
321*a4f780cdSTaniya Das 	.parent_map = gcc_parent_map_0,
322*a4f780cdSTaniya Das 	.freq_tbl = ftbl_gcc_pcie_a_phy_rchng_clk_src,
323*a4f780cdSTaniya Das 	.hw_clk_ctrl = true,
324*a4f780cdSTaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
325*a4f780cdSTaniya Das 		.name = "gcc_pcie_b_phy_rchng_clk_src",
326*a4f780cdSTaniya Das 		.parent_data = gcc_parent_data_0,
327*a4f780cdSTaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
328*a4f780cdSTaniya Das 		.flags = CLK_SET_RATE_PARENT,
329*a4f780cdSTaniya Das 		.ops = &clk_rcg2_shared_ops,
330*a4f780cdSTaniya Das 	},
331*a4f780cdSTaniya Das };
332*a4f780cdSTaniya Das 
333*a4f780cdSTaniya Das static struct clk_rcg2 gcc_pcie_c_aux_clk_src = {
334*a4f780cdSTaniya Das 	.cmd_rcgr = 0x4b098,
335*a4f780cdSTaniya Das 	.mnd_width = 16,
336*a4f780cdSTaniya Das 	.hid_width = 5,
337*a4f780cdSTaniya Das 	.parent_map = gcc_parent_map_1,
338*a4f780cdSTaniya Das 	.freq_tbl = ftbl_gcc_pcie_a_aux_clk_src,
339*a4f780cdSTaniya Das 	.hw_clk_ctrl = true,
340*a4f780cdSTaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
341*a4f780cdSTaniya Das 		.name = "gcc_pcie_c_aux_clk_src",
342*a4f780cdSTaniya Das 		.parent_data = gcc_parent_data_1,
343*a4f780cdSTaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_1),
344*a4f780cdSTaniya Das 		.flags = CLK_SET_RATE_PARENT,
345*a4f780cdSTaniya Das 		.ops = &clk_rcg2_shared_ops,
346*a4f780cdSTaniya Das 	},
347*a4f780cdSTaniya Das };
348*a4f780cdSTaniya Das 
349*a4f780cdSTaniya Das static struct clk_rcg2 gcc_pcie_c_phy_aux_clk_src = {
350*a4f780cdSTaniya Das 	.cmd_rcgr = 0x4f020,
351*a4f780cdSTaniya Das 	.mnd_width = 16,
352*a4f780cdSTaniya Das 	.hid_width = 5,
353*a4f780cdSTaniya Das 	.parent_map = gcc_parent_map_1,
354*a4f780cdSTaniya Das 	.freq_tbl = ftbl_gcc_pcie_a_aux_clk_src,
355*a4f780cdSTaniya Das 	.hw_clk_ctrl = true,
356*a4f780cdSTaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
357*a4f780cdSTaniya Das 		.name = "gcc_pcie_c_phy_aux_clk_src",
358*a4f780cdSTaniya Das 		.parent_data = gcc_parent_data_1,
359*a4f780cdSTaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_1),
360*a4f780cdSTaniya Das 		.flags = CLK_SET_RATE_PARENT,
361*a4f780cdSTaniya Das 		.ops = &clk_rcg2_shared_ops,
362*a4f780cdSTaniya Das 	},
363*a4f780cdSTaniya Das };
364*a4f780cdSTaniya Das 
365*a4f780cdSTaniya Das static struct clk_rcg2 gcc_pcie_c_phy_rchng_clk_src = {
366*a4f780cdSTaniya Das 	.cmd_rcgr = 0x4b07c,
367*a4f780cdSTaniya Das 	.mnd_width = 0,
368*a4f780cdSTaniya Das 	.hid_width = 5,
369*a4f780cdSTaniya Das 	.parent_map = gcc_parent_map_3,
370*a4f780cdSTaniya Das 	.freq_tbl = ftbl_gcc_pcie_a_phy_rchng_clk_src,
371*a4f780cdSTaniya Das 	.hw_clk_ctrl = true,
372*a4f780cdSTaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
373*a4f780cdSTaniya Das 		.name = "gcc_pcie_c_phy_rchng_clk_src",
374*a4f780cdSTaniya Das 		.parent_data = gcc_parent_data_3,
375*a4f780cdSTaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_3),
376*a4f780cdSTaniya Das 		.flags = CLK_SET_RATE_PARENT,
377*a4f780cdSTaniya Das 		.ops = &clk_rcg2_shared_ops,
378*a4f780cdSTaniya Das 	},
379*a4f780cdSTaniya Das };
380*a4f780cdSTaniya Das 
381*a4f780cdSTaniya Das static struct clk_rcg2 gcc_pcie_d_aux_clk_src = {
382*a4f780cdSTaniya Das 	.cmd_rcgr = 0x4c098,
383*a4f780cdSTaniya Das 	.mnd_width = 16,
384*a4f780cdSTaniya Das 	.hid_width = 5,
385*a4f780cdSTaniya Das 	.parent_map = gcc_parent_map_1,
386*a4f780cdSTaniya Das 	.freq_tbl = ftbl_gcc_pcie_a_aux_clk_src,
387*a4f780cdSTaniya Das 	.hw_clk_ctrl = true,
388*a4f780cdSTaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
389*a4f780cdSTaniya Das 		.name = "gcc_pcie_d_aux_clk_src",
390*a4f780cdSTaniya Das 		.parent_data = gcc_parent_data_1,
391*a4f780cdSTaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_1),
392*a4f780cdSTaniya Das 		.flags = CLK_SET_RATE_PARENT,
393*a4f780cdSTaniya Das 		.ops = &clk_rcg2_shared_ops,
394*a4f780cdSTaniya Das 	},
395*a4f780cdSTaniya Das };
396*a4f780cdSTaniya Das 
397*a4f780cdSTaniya Das static struct clk_rcg2 gcc_pcie_d_phy_aux_clk_src = {
398*a4f780cdSTaniya Das 	.cmd_rcgr = 0x50020,
399*a4f780cdSTaniya Das 	.mnd_width = 16,
400*a4f780cdSTaniya Das 	.hid_width = 5,
401*a4f780cdSTaniya Das 	.parent_map = gcc_parent_map_1,
402*a4f780cdSTaniya Das 	.freq_tbl = ftbl_gcc_pcie_a_aux_clk_src,
403*a4f780cdSTaniya Das 	.hw_clk_ctrl = true,
404*a4f780cdSTaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
405*a4f780cdSTaniya Das 		.name = "gcc_pcie_d_phy_aux_clk_src",
406*a4f780cdSTaniya Das 		.parent_data = gcc_parent_data_1,
407*a4f780cdSTaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_1),
408*a4f780cdSTaniya Das 		.flags = CLK_SET_RATE_PARENT,
409*a4f780cdSTaniya Das 		.ops = &clk_rcg2_shared_ops,
410*a4f780cdSTaniya Das 	},
411*a4f780cdSTaniya Das };
412*a4f780cdSTaniya Das 
413*a4f780cdSTaniya Das static struct clk_rcg2 gcc_pcie_d_phy_rchng_clk_src = {
414*a4f780cdSTaniya Das 	.cmd_rcgr = 0x4c07c,
415*a4f780cdSTaniya Das 	.mnd_width = 0,
416*a4f780cdSTaniya Das 	.hid_width = 5,
417*a4f780cdSTaniya Das 	.parent_map = gcc_parent_map_3,
418*a4f780cdSTaniya Das 	.freq_tbl = ftbl_gcc_pcie_a_phy_rchng_clk_src,
419*a4f780cdSTaniya Das 	.hw_clk_ctrl = true,
420*a4f780cdSTaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
421*a4f780cdSTaniya Das 		.name = "gcc_pcie_d_phy_rchng_clk_src",
422*a4f780cdSTaniya Das 		.parent_data = gcc_parent_data_3,
423*a4f780cdSTaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_3),
424*a4f780cdSTaniya Das 		.flags = CLK_SET_RATE_PARENT,
425*a4f780cdSTaniya Das 		.ops = &clk_rcg2_shared_ops,
426*a4f780cdSTaniya Das 	},
427*a4f780cdSTaniya Das };
428*a4f780cdSTaniya Das 
429*a4f780cdSTaniya Das static struct clk_rcg2 gcc_pcie_noc_refgen_clk_src = {
430*a4f780cdSTaniya Das 	.cmd_rcgr = 0x52094,
431*a4f780cdSTaniya Das 	.mnd_width = 0,
432*a4f780cdSTaniya Das 	.hid_width = 5,
433*a4f780cdSTaniya Das 	.parent_map = gcc_parent_map_0,
434*a4f780cdSTaniya Das 	.freq_tbl = ftbl_gcc_pcie_a_aux_clk_src,
435*a4f780cdSTaniya Das 	.hw_clk_ctrl = true,
436*a4f780cdSTaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
437*a4f780cdSTaniya Das 		.name = "gcc_pcie_noc_refgen_clk_src",
438*a4f780cdSTaniya Das 		.parent_data = gcc_parent_data_0,
439*a4f780cdSTaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
440*a4f780cdSTaniya Das 		.flags = CLK_SET_RATE_PARENT,
441*a4f780cdSTaniya Das 		.ops = &clk_rcg2_shared_ops,
442*a4f780cdSTaniya Das 	},
443*a4f780cdSTaniya Das };
444*a4f780cdSTaniya Das 
445*a4f780cdSTaniya Das static struct clk_rcg2 gcc_pcie_noc_safety_clk_src = {
446*a4f780cdSTaniya Das 	.cmd_rcgr = 0x520ac,
447*a4f780cdSTaniya Das 	.mnd_width = 0,
448*a4f780cdSTaniya Das 	.hid_width = 5,
449*a4f780cdSTaniya Das 	.parent_map = gcc_parent_map_0,
450*a4f780cdSTaniya Das 	.freq_tbl = ftbl_gcc_pcie_a_aux_clk_src,
451*a4f780cdSTaniya Das 	.hw_clk_ctrl = true,
452*a4f780cdSTaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
453*a4f780cdSTaniya Das 		.name = "gcc_pcie_noc_safety_clk_src",
454*a4f780cdSTaniya Das 		.parent_data = gcc_parent_data_0,
455*a4f780cdSTaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
456*a4f780cdSTaniya Das 		.flags = CLK_SET_RATE_PARENT,
457*a4f780cdSTaniya Das 		.ops = &clk_rcg2_shared_ops,
458*a4f780cdSTaniya Das 	},
459*a4f780cdSTaniya Das };
460*a4f780cdSTaniya Das 
461*a4f780cdSTaniya Das static const struct freq_tbl ftbl_gcc_pdm2_clk_src[] = {
462*a4f780cdSTaniya Das 	F(40000000, P_GCC_GPLL0_OUT_MAIN, 15, 0, 0),
463*a4f780cdSTaniya Das 	F(60000000, P_GCC_GPLL0_OUT_MAIN, 10, 0, 0),
464*a4f780cdSTaniya Das 	{ }
465*a4f780cdSTaniya Das };
466*a4f780cdSTaniya Das 
467*a4f780cdSTaniya Das static struct clk_rcg2 gcc_pdm2_clk_src = {
468*a4f780cdSTaniya Das 	.cmd_rcgr = 0x1a010,
469*a4f780cdSTaniya Das 	.mnd_width = 0,
470*a4f780cdSTaniya Das 	.hid_width = 5,
471*a4f780cdSTaniya Das 	.parent_map = gcc_parent_map_0,
472*a4f780cdSTaniya Das 	.freq_tbl = ftbl_gcc_pdm2_clk_src,
473*a4f780cdSTaniya Das 	.hw_clk_ctrl = true,
474*a4f780cdSTaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
475*a4f780cdSTaniya Das 		.name = "gcc_pdm2_clk_src",
476*a4f780cdSTaniya Das 		.parent_data = gcc_parent_data_0,
477*a4f780cdSTaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
478*a4f780cdSTaniya Das 		.flags = CLK_SET_RATE_PARENT,
479*a4f780cdSTaniya Das 		.ops = &clk_rcg2_shared_ops,
480*a4f780cdSTaniya Das 	},
481*a4f780cdSTaniya Das };
482*a4f780cdSTaniya Das 
483*a4f780cdSTaniya Das static const struct freq_tbl ftbl_gcc_qupv3_wrap3_qspi_ref_clk_src[] = {
484*a4f780cdSTaniya Das 	F(7372800, P_GCC_GPLL0_OUT_EVEN, 1, 384, 15625),
485*a4f780cdSTaniya Das 	F(14745600, P_GCC_GPLL0_OUT_EVEN, 1, 768, 15625),
486*a4f780cdSTaniya Das 	F(19200000, P_BI_TCXO, 1, 0, 0),
487*a4f780cdSTaniya Das 	F(29491200, P_GCC_GPLL0_OUT_EVEN, 1, 1536, 15625),
488*a4f780cdSTaniya Das 	F(32000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 75),
489*a4f780cdSTaniya Das 	F(48000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 25),
490*a4f780cdSTaniya Das 	F(51200000, P_GCC_GPLL0_OUT_EVEN, 1, 64, 375),
491*a4f780cdSTaniya Das 	F(64000000, P_GCC_GPLL0_OUT_EVEN, 1, 16, 75),
492*a4f780cdSTaniya Das 	F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0),
493*a4f780cdSTaniya Das 	F(80000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 15),
494*a4f780cdSTaniya Das 	F(96000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 25),
495*a4f780cdSTaniya Das 	F(100000000, P_GCC_GPLL0_OUT_MAIN, 6, 0, 0),
496*a4f780cdSTaniya Das 	F(102400000, P_GCC_GPLL0_OUT_EVEN, 1, 128, 375),
497*a4f780cdSTaniya Das 	F(112000000, P_GCC_GPLL0_OUT_EVEN, 1, 28, 75),
498*a4f780cdSTaniya Das 	F(117964800, P_GCC_GPLL0_OUT_EVEN, 1, 6144, 15625),
499*a4f780cdSTaniya Das 	F(120000000, P_GCC_GPLL0_OUT_MAIN, 5, 0, 0),
500*a4f780cdSTaniya Das 	F(150000000, P_GCC_GPLL0_OUT_EVEN, 2, 0, 0),
501*a4f780cdSTaniya Das 	F(240000000, P_GCC_GPLL0_OUT_MAIN, 2.5, 0, 0),
502*a4f780cdSTaniya Das 	{ }
503*a4f780cdSTaniya Das };
504*a4f780cdSTaniya Das 
505*a4f780cdSTaniya Das static struct clk_init_data gcc_qupv3_wrap3_qspi_ref_clk_src_init = {
506*a4f780cdSTaniya Das 	.name = "gcc_qupv3_wrap3_qspi_ref_clk_src",
507*a4f780cdSTaniya Das 	.parent_data = gcc_parent_data_0,
508*a4f780cdSTaniya Das 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
509*a4f780cdSTaniya Das 	.flags = CLK_SET_RATE_PARENT,
510*a4f780cdSTaniya Das 	.ops = &clk_rcg2_shared_no_init_park_ops,
511*a4f780cdSTaniya Das };
512*a4f780cdSTaniya Das 
513*a4f780cdSTaniya Das static struct clk_rcg2 gcc_qupv3_wrap3_qspi_ref_clk_src = {
514*a4f780cdSTaniya Das 	.cmd_rcgr = 0x23174,
515*a4f780cdSTaniya Das 	.mnd_width = 16,
516*a4f780cdSTaniya Das 	.hid_width = 5,
517*a4f780cdSTaniya Das 	.parent_map = gcc_parent_map_0,
518*a4f780cdSTaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap3_qspi_ref_clk_src,
519*a4f780cdSTaniya Das 	.hw_clk_ctrl = true,
520*a4f780cdSTaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap3_qspi_ref_clk_src_init,
521*a4f780cdSTaniya Das };
522*a4f780cdSTaniya Das 
523*a4f780cdSTaniya Das static struct clk_regmap_div gcc_qupv3_wrap3_s0_clk_src = {
524*a4f780cdSTaniya Das 	.reg = 0x2316c,
525*a4f780cdSTaniya Das 	.shift = 0,
526*a4f780cdSTaniya Das 	.width = 4,
527*a4f780cdSTaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
528*a4f780cdSTaniya Das 		.name = "gcc_qupv3_wrap3_s0_clk_src",
529*a4f780cdSTaniya Das 		.parent_hws = (const struct clk_hw*[]) {
530*a4f780cdSTaniya Das 			&gcc_qupv3_wrap3_qspi_ref_clk_src.clkr.hw,
531*a4f780cdSTaniya Das 		},
532*a4f780cdSTaniya Das 		.num_parents = 1,
533*a4f780cdSTaniya Das 		.flags = CLK_SET_RATE_PARENT,
534*a4f780cdSTaniya Das 		.ops = &clk_regmap_div_ro_ops,
535*a4f780cdSTaniya Das 	},
536*a4f780cdSTaniya Das };
537*a4f780cdSTaniya Das 
538*a4f780cdSTaniya Das static struct clk_branch gcc_boot_rom_ahb_clk = {
539*a4f780cdSTaniya Das 	.halt_reg = 0x1f004,
540*a4f780cdSTaniya Das 	.halt_check = BRANCH_HALT,
541*a4f780cdSTaniya Das 	.clkr = {
542*a4f780cdSTaniya Das 		.enable_reg = 0x1f004,
543*a4f780cdSTaniya Das 		.enable_mask = BIT(0),
544*a4f780cdSTaniya Das 		.hw.init = &(const struct clk_init_data) {
545*a4f780cdSTaniya Das 			.name = "gcc_boot_rom_ahb_clk",
546*a4f780cdSTaniya Das 			.ops = &clk_branch2_ops,
547*a4f780cdSTaniya Das 		},
548*a4f780cdSTaniya Das 	},
549*a4f780cdSTaniya Das };
550*a4f780cdSTaniya Das 
551*a4f780cdSTaniya Das static struct clk_branch gcc_gp1_clk = {
552*a4f780cdSTaniya Das 	.halt_reg = 0x30000,
553*a4f780cdSTaniya Das 	.halt_check = BRANCH_HALT,
554*a4f780cdSTaniya Das 	.clkr = {
555*a4f780cdSTaniya Das 		.enable_reg = 0x30000,
556*a4f780cdSTaniya Das 		.enable_mask = BIT(0),
557*a4f780cdSTaniya Das 		.hw.init = &(const struct clk_init_data) {
558*a4f780cdSTaniya Das 			.name = "gcc_gp1_clk",
559*a4f780cdSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
560*a4f780cdSTaniya Das 				&gcc_gp1_clk_src.clkr.hw,
561*a4f780cdSTaniya Das 			},
562*a4f780cdSTaniya Das 			.num_parents = 1,
563*a4f780cdSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
564*a4f780cdSTaniya Das 			.ops = &clk_branch2_ops,
565*a4f780cdSTaniya Das 		},
566*a4f780cdSTaniya Das 	},
567*a4f780cdSTaniya Das };
568*a4f780cdSTaniya Das 
569*a4f780cdSTaniya Das static struct clk_branch gcc_gp2_clk = {
570*a4f780cdSTaniya Das 	.halt_reg = 0x31000,
571*a4f780cdSTaniya Das 	.halt_check = BRANCH_HALT,
572*a4f780cdSTaniya Das 	.clkr = {
573*a4f780cdSTaniya Das 		.enable_reg = 0x31000,
574*a4f780cdSTaniya Das 		.enable_mask = BIT(0),
575*a4f780cdSTaniya Das 		.hw.init = &(const struct clk_init_data) {
576*a4f780cdSTaniya Das 			.name = "gcc_gp2_clk",
577*a4f780cdSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
578*a4f780cdSTaniya Das 				&gcc_gp2_clk_src.clkr.hw,
579*a4f780cdSTaniya Das 			},
580*a4f780cdSTaniya Das 			.num_parents = 1,
581*a4f780cdSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
582*a4f780cdSTaniya Das 			.ops = &clk_branch2_ops,
583*a4f780cdSTaniya Das 		},
584*a4f780cdSTaniya Das 	},
585*a4f780cdSTaniya Das };
586*a4f780cdSTaniya Das 
587*a4f780cdSTaniya Das static struct clk_branch gcc_mmu_0_tcu_vote_clk = {
588*a4f780cdSTaniya Das 	.halt_reg = 0x7d094,
589*a4f780cdSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
590*a4f780cdSTaniya Das 	.clkr = {
591*a4f780cdSTaniya Das 		.enable_reg = 0x7d094,
592*a4f780cdSTaniya Das 		.enable_mask = BIT(0),
593*a4f780cdSTaniya Das 		.hw.init = &(const struct clk_init_data) {
594*a4f780cdSTaniya Das 			.name = "gcc_mmu_0_tcu_vote_clk",
595*a4f780cdSTaniya Das 			.ops = &clk_branch2_ops,
596*a4f780cdSTaniya Das 		},
597*a4f780cdSTaniya Das 	},
598*a4f780cdSTaniya Das };
599*a4f780cdSTaniya Das 
600*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_a_aux_clk = {
601*a4f780cdSTaniya Das 	.halt_reg = 0x49058,
602*a4f780cdSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
603*a4f780cdSTaniya Das 	.hwcg_reg = 0x49058,
604*a4f780cdSTaniya Das 	.hwcg_bit = 1,
605*a4f780cdSTaniya Das 	.clkr = {
606*a4f780cdSTaniya Das 		.enable_reg = 0x9d008,
607*a4f780cdSTaniya Das 		.enable_mask = BIT(14),
608*a4f780cdSTaniya Das 		.hw.init = &(const struct clk_init_data) {
609*a4f780cdSTaniya Das 			.name = "gcc_pcie_a_aux_clk",
610*a4f780cdSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
611*a4f780cdSTaniya Das 				&gcc_pcie_a_aux_clk_src.clkr.hw,
612*a4f780cdSTaniya Das 			},
613*a4f780cdSTaniya Das 			.num_parents = 1,
614*a4f780cdSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
615*a4f780cdSTaniya Das 			.ops = &clk_branch2_ops,
616*a4f780cdSTaniya Das 		},
617*a4f780cdSTaniya Das 	},
618*a4f780cdSTaniya Das };
619*a4f780cdSTaniya Das 
620*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_a_cfg_ahb_clk = {
621*a4f780cdSTaniya Das 	.halt_reg = 0x49054,
622*a4f780cdSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
623*a4f780cdSTaniya Das 	.hwcg_reg = 0x49054,
624*a4f780cdSTaniya Das 	.hwcg_bit = 1,
625*a4f780cdSTaniya Das 	.clkr = {
626*a4f780cdSTaniya Das 		.enable_reg = 0x9d008,
627*a4f780cdSTaniya Das 		.enable_mask = BIT(13),
628*a4f780cdSTaniya Das 		.hw.init = &(const struct clk_init_data) {
629*a4f780cdSTaniya Das 			.name = "gcc_pcie_a_cfg_ahb_clk",
630*a4f780cdSTaniya Das 			.ops = &clk_branch2_ops,
631*a4f780cdSTaniya Das 		},
632*a4f780cdSTaniya Das 	},
633*a4f780cdSTaniya Das };
634*a4f780cdSTaniya Das 
635*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_a_dti_qtc_clk = {
636*a4f780cdSTaniya Das 	.halt_reg = 0x49018,
637*a4f780cdSTaniya Das 	.halt_check = BRANCH_HALT_SKIP,
638*a4f780cdSTaniya Das 	.hwcg_reg = 0x49018,
639*a4f780cdSTaniya Das 	.hwcg_bit = 1,
640*a4f780cdSTaniya Das 	.clkr = {
641*a4f780cdSTaniya Das 		.enable_reg = 0x9d008,
642*a4f780cdSTaniya Das 		.enable_mask = BIT(8),
643*a4f780cdSTaniya Das 		.hw.init = &(const struct clk_init_data) {
644*a4f780cdSTaniya Das 			.name = "gcc_pcie_a_dti_qtc_clk",
645*a4f780cdSTaniya Das 			.ops = &clk_branch2_ops,
646*a4f780cdSTaniya Das 		},
647*a4f780cdSTaniya Das 	},
648*a4f780cdSTaniya Das };
649*a4f780cdSTaniya Das 
650*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_a_mstr_axi_clk = {
651*a4f780cdSTaniya Das 	.halt_reg = 0x49040,
652*a4f780cdSTaniya Das 	.halt_check = BRANCH_HALT_SKIP,
653*a4f780cdSTaniya Das 	.hwcg_reg = 0x49040,
654*a4f780cdSTaniya Das 	.hwcg_bit = 1,
655*a4f780cdSTaniya Das 	.clkr = {
656*a4f780cdSTaniya Das 		.enable_reg = 0x9d008,
657*a4f780cdSTaniya Das 		.enable_mask = BIT(12),
658*a4f780cdSTaniya Das 		.hw.init = &(const struct clk_init_data) {
659*a4f780cdSTaniya Das 			.name = "gcc_pcie_a_mstr_axi_clk",
660*a4f780cdSTaniya Das 			.ops = &clk_branch2_ops,
661*a4f780cdSTaniya Das 		},
662*a4f780cdSTaniya Das 	},
663*a4f780cdSTaniya Das };
664*a4f780cdSTaniya Das 
665*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_a_phy_aux_clk = {
666*a4f780cdSTaniya Das 	.halt_reg = 0x4d01c,
667*a4f780cdSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
668*a4f780cdSTaniya Das 	.clkr = {
669*a4f780cdSTaniya Das 		.enable_reg = 0x9d010,
670*a4f780cdSTaniya Das 		.enable_mask = BIT(12),
671*a4f780cdSTaniya Das 		.hw.init = &(const struct clk_init_data) {
672*a4f780cdSTaniya Das 			.name = "gcc_pcie_a_phy_aux_clk",
673*a4f780cdSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
674*a4f780cdSTaniya Das 				&gcc_pcie_a_phy_aux_clk_src.clkr.hw,
675*a4f780cdSTaniya Das 			},
676*a4f780cdSTaniya Das 			.num_parents = 1,
677*a4f780cdSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
678*a4f780cdSTaniya Das 			.ops = &clk_branch2_ops,
679*a4f780cdSTaniya Das 		},
680*a4f780cdSTaniya Das 	},
681*a4f780cdSTaniya Das };
682*a4f780cdSTaniya Das 
683*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_a_phy_rchng_clk = {
684*a4f780cdSTaniya Das 	.halt_reg = 0x49078,
685*a4f780cdSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
686*a4f780cdSTaniya Das 	.hwcg_reg = 0x49078,
687*a4f780cdSTaniya Das 	.hwcg_bit = 1,
688*a4f780cdSTaniya Das 	.clkr = {
689*a4f780cdSTaniya Das 		.enable_reg = 0x9d008,
690*a4f780cdSTaniya Das 		.enable_mask = BIT(16),
691*a4f780cdSTaniya Das 		.hw.init = &(const struct clk_init_data) {
692*a4f780cdSTaniya Das 			.name = "gcc_pcie_a_phy_rchng_clk",
693*a4f780cdSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
694*a4f780cdSTaniya Das 				&gcc_pcie_a_phy_rchng_clk_src.clkr.hw,
695*a4f780cdSTaniya Das 			},
696*a4f780cdSTaniya Das 			.num_parents = 1,
697*a4f780cdSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
698*a4f780cdSTaniya Das 			.ops = &clk_branch2_ops,
699*a4f780cdSTaniya Das 		},
700*a4f780cdSTaniya Das 	},
701*a4f780cdSTaniya Das };
702*a4f780cdSTaniya Das 
703*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_a_pipe_clk = {
704*a4f780cdSTaniya Das 	.halt_reg = 0x49068,
705*a4f780cdSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
706*a4f780cdSTaniya Das 	.hwcg_reg = 0x49068,
707*a4f780cdSTaniya Das 	.hwcg_bit = 1,
708*a4f780cdSTaniya Das 	.clkr = {
709*a4f780cdSTaniya Das 		.enable_reg = 0x9d008,
710*a4f780cdSTaniya Das 		.enable_mask = BIT(15),
711*a4f780cdSTaniya Das 		.hw.init = &(const struct clk_init_data) {
712*a4f780cdSTaniya Das 			.name = "gcc_pcie_a_pipe_clk",
713*a4f780cdSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
714*a4f780cdSTaniya Das 				&gcc_pcie_a_pipe_clk_src.clkr.hw,
715*a4f780cdSTaniya Das 			},
716*a4f780cdSTaniya Das 			.num_parents = 1,
717*a4f780cdSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
718*a4f780cdSTaniya Das 			.ops = &clk_branch2_ops,
719*a4f780cdSTaniya Das 		},
720*a4f780cdSTaniya Das 	},
721*a4f780cdSTaniya Das };
722*a4f780cdSTaniya Das 
723*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_a_slv_axi_clk = {
724*a4f780cdSTaniya Das 	.halt_reg = 0x4902c,
725*a4f780cdSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
726*a4f780cdSTaniya Das 	.hwcg_reg = 0x4902c,
727*a4f780cdSTaniya Das 	.hwcg_bit = 1,
728*a4f780cdSTaniya Das 	.clkr = {
729*a4f780cdSTaniya Das 		.enable_reg = 0x9d008,
730*a4f780cdSTaniya Das 		.enable_mask = BIT(11),
731*a4f780cdSTaniya Das 		.hw.init = &(const struct clk_init_data) {
732*a4f780cdSTaniya Das 			.name = "gcc_pcie_a_slv_axi_clk",
733*a4f780cdSTaniya Das 			.ops = &clk_branch2_ops,
734*a4f780cdSTaniya Das 		},
735*a4f780cdSTaniya Das 	},
736*a4f780cdSTaniya Das };
737*a4f780cdSTaniya Das 
738*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_a_slv_q2a_axi_clk = {
739*a4f780cdSTaniya Das 	.halt_reg = 0x49024,
740*a4f780cdSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
741*a4f780cdSTaniya Das 	.hwcg_reg = 0x49024,
742*a4f780cdSTaniya Das 	.hwcg_bit = 1,
743*a4f780cdSTaniya Das 	.clkr = {
744*a4f780cdSTaniya Das 		.enable_reg = 0x9d008,
745*a4f780cdSTaniya Das 		.enable_mask = BIT(10),
746*a4f780cdSTaniya Das 		.hw.init = &(const struct clk_init_data) {
747*a4f780cdSTaniya Das 			.name = "gcc_pcie_a_slv_q2a_axi_clk",
748*a4f780cdSTaniya Das 			.ops = &clk_branch2_ops,
749*a4f780cdSTaniya Das 		},
750*a4f780cdSTaniya Das 	},
751*a4f780cdSTaniya Das };
752*a4f780cdSTaniya Das 
753*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_b_aux_clk = {
754*a4f780cdSTaniya Das 	.halt_reg = 0x4a058,
755*a4f780cdSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
756*a4f780cdSTaniya Das 	.clkr = {
757*a4f780cdSTaniya Das 		.enable_reg = 0x9d008,
758*a4f780cdSTaniya Das 		.enable_mask = BIT(23),
759*a4f780cdSTaniya Das 		.hw.init = &(const struct clk_init_data) {
760*a4f780cdSTaniya Das 			.name = "gcc_pcie_b_aux_clk",
761*a4f780cdSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
762*a4f780cdSTaniya Das 				&gcc_pcie_b_aux_clk_src.clkr.hw,
763*a4f780cdSTaniya Das 			},
764*a4f780cdSTaniya Das 			.num_parents = 1,
765*a4f780cdSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
766*a4f780cdSTaniya Das 			.ops = &clk_branch2_ops,
767*a4f780cdSTaniya Das 		},
768*a4f780cdSTaniya Das 	},
769*a4f780cdSTaniya Das };
770*a4f780cdSTaniya Das 
771*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_b_cfg_ahb_clk = {
772*a4f780cdSTaniya Das 	.halt_reg = 0x4a054,
773*a4f780cdSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
774*a4f780cdSTaniya Das 	.hwcg_reg = 0x4a054,
775*a4f780cdSTaniya Das 	.hwcg_bit = 1,
776*a4f780cdSTaniya Das 	.clkr = {
777*a4f780cdSTaniya Das 		.enable_reg = 0x9d008,
778*a4f780cdSTaniya Das 		.enable_mask = BIT(22),
779*a4f780cdSTaniya Das 		.hw.init = &(const struct clk_init_data) {
780*a4f780cdSTaniya Das 			.name = "gcc_pcie_b_cfg_ahb_clk",
781*a4f780cdSTaniya Das 			.ops = &clk_branch2_ops,
782*a4f780cdSTaniya Das 		},
783*a4f780cdSTaniya Das 	},
784*a4f780cdSTaniya Das };
785*a4f780cdSTaniya Das 
786*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_b_dti_qtc_clk = {
787*a4f780cdSTaniya Das 	.halt_reg = 0x4a018,
788*a4f780cdSTaniya Das 	.halt_check = BRANCH_HALT_SKIP,
789*a4f780cdSTaniya Das 	.hwcg_reg = 0x4a018,
790*a4f780cdSTaniya Das 	.hwcg_bit = 1,
791*a4f780cdSTaniya Das 	.clkr = {
792*a4f780cdSTaniya Das 		.enable_reg = 0x9d008,
793*a4f780cdSTaniya Das 		.enable_mask = BIT(17),
794*a4f780cdSTaniya Das 		.hw.init = &(const struct clk_init_data) {
795*a4f780cdSTaniya Das 			.name = "gcc_pcie_b_dti_qtc_clk",
796*a4f780cdSTaniya Das 			.ops = &clk_branch2_ops,
797*a4f780cdSTaniya Das 		},
798*a4f780cdSTaniya Das 	},
799*a4f780cdSTaniya Das };
800*a4f780cdSTaniya Das 
801*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_b_mstr_axi_clk = {
802*a4f780cdSTaniya Das 	.halt_reg = 0x4a040,
803*a4f780cdSTaniya Das 	.halt_check = BRANCH_HALT_SKIP,
804*a4f780cdSTaniya Das 	.hwcg_reg = 0x4a040,
805*a4f780cdSTaniya Das 	.hwcg_bit = 1,
806*a4f780cdSTaniya Das 	.clkr = {
807*a4f780cdSTaniya Das 		.enable_reg = 0x9d008,
808*a4f780cdSTaniya Das 		.enable_mask = BIT(21),
809*a4f780cdSTaniya Das 		.hw.init = &(const struct clk_init_data) {
810*a4f780cdSTaniya Das 			.name = "gcc_pcie_b_mstr_axi_clk",
811*a4f780cdSTaniya Das 			.ops = &clk_branch2_ops,
812*a4f780cdSTaniya Das 		},
813*a4f780cdSTaniya Das 	},
814*a4f780cdSTaniya Das };
815*a4f780cdSTaniya Das 
816*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_b_phy_aux_clk = {
817*a4f780cdSTaniya Das 	.halt_reg = 0x4e01c,
818*a4f780cdSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
819*a4f780cdSTaniya Das 	.clkr = {
820*a4f780cdSTaniya Das 		.enable_reg = 0x9d010,
821*a4f780cdSTaniya Das 		.enable_mask = BIT(13),
822*a4f780cdSTaniya Das 		.hw.init = &(const struct clk_init_data) {
823*a4f780cdSTaniya Das 			.name = "gcc_pcie_b_phy_aux_clk",
824*a4f780cdSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
825*a4f780cdSTaniya Das 				&gcc_pcie_b_phy_aux_clk_src.clkr.hw,
826*a4f780cdSTaniya Das 			},
827*a4f780cdSTaniya Das 			.num_parents = 1,
828*a4f780cdSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
829*a4f780cdSTaniya Das 			.ops = &clk_branch2_ops,
830*a4f780cdSTaniya Das 		},
831*a4f780cdSTaniya Das 	},
832*a4f780cdSTaniya Das };
833*a4f780cdSTaniya Das 
834*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_b_phy_rchng_clk = {
835*a4f780cdSTaniya Das 	.halt_reg = 0x4a078,
836*a4f780cdSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
837*a4f780cdSTaniya Das 	.clkr = {
838*a4f780cdSTaniya Das 		.enable_reg = 0x9d008,
839*a4f780cdSTaniya Das 		.enable_mask = BIT(25),
840*a4f780cdSTaniya Das 		.hw.init = &(const struct clk_init_data) {
841*a4f780cdSTaniya Das 			.name = "gcc_pcie_b_phy_rchng_clk",
842*a4f780cdSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
843*a4f780cdSTaniya Das 				&gcc_pcie_b_phy_rchng_clk_src.clkr.hw,
844*a4f780cdSTaniya Das 			},
845*a4f780cdSTaniya Das 			.num_parents = 1,
846*a4f780cdSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
847*a4f780cdSTaniya Das 			.ops = &clk_branch2_ops,
848*a4f780cdSTaniya Das 		},
849*a4f780cdSTaniya Das 	},
850*a4f780cdSTaniya Das };
851*a4f780cdSTaniya Das 
852*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_b_pipe_clk = {
853*a4f780cdSTaniya Das 	.halt_reg = 0x4a068,
854*a4f780cdSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
855*a4f780cdSTaniya Das 	.clkr = {
856*a4f780cdSTaniya Das 		.enable_reg = 0x9d008,
857*a4f780cdSTaniya Das 		.enable_mask = BIT(24),
858*a4f780cdSTaniya Das 		.hw.init = &(const struct clk_init_data) {
859*a4f780cdSTaniya Das 			.name = "gcc_pcie_b_pipe_clk",
860*a4f780cdSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
861*a4f780cdSTaniya Das 				&gcc_pcie_b_pipe_clk_src.clkr.hw,
862*a4f780cdSTaniya Das 			},
863*a4f780cdSTaniya Das 			.num_parents = 1,
864*a4f780cdSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
865*a4f780cdSTaniya Das 			.ops = &clk_branch2_ops,
866*a4f780cdSTaniya Das 		},
867*a4f780cdSTaniya Das 	},
868*a4f780cdSTaniya Das };
869*a4f780cdSTaniya Das 
870*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_b_slv_axi_clk = {
871*a4f780cdSTaniya Das 	.halt_reg = 0x4a02c,
872*a4f780cdSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
873*a4f780cdSTaniya Das 	.hwcg_reg = 0x4a02c,
874*a4f780cdSTaniya Das 	.hwcg_bit = 1,
875*a4f780cdSTaniya Das 	.clkr = {
876*a4f780cdSTaniya Das 		.enable_reg = 0x9d008,
877*a4f780cdSTaniya Das 		.enable_mask = BIT(20),
878*a4f780cdSTaniya Das 		.hw.init = &(const struct clk_init_data) {
879*a4f780cdSTaniya Das 			.name = "gcc_pcie_b_slv_axi_clk",
880*a4f780cdSTaniya Das 			.ops = &clk_branch2_ops,
881*a4f780cdSTaniya Das 		},
882*a4f780cdSTaniya Das 	},
883*a4f780cdSTaniya Das };
884*a4f780cdSTaniya Das 
885*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_b_slv_q2a_axi_clk = {
886*a4f780cdSTaniya Das 	.halt_reg = 0x4a024,
887*a4f780cdSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
888*a4f780cdSTaniya Das 	.clkr = {
889*a4f780cdSTaniya Das 		.enable_reg = 0x9d008,
890*a4f780cdSTaniya Das 		.enable_mask = BIT(19),
891*a4f780cdSTaniya Das 		.hw.init = &(const struct clk_init_data) {
892*a4f780cdSTaniya Das 			.name = "gcc_pcie_b_slv_q2a_axi_clk",
893*a4f780cdSTaniya Das 			.ops = &clk_branch2_ops,
894*a4f780cdSTaniya Das 		},
895*a4f780cdSTaniya Das 	},
896*a4f780cdSTaniya Das };
897*a4f780cdSTaniya Das 
898*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_c_aux_clk = {
899*a4f780cdSTaniya Das 	.halt_reg = 0x4b058,
900*a4f780cdSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
901*a4f780cdSTaniya Das 	.clkr = {
902*a4f780cdSTaniya Das 		.enable_reg = 0x9d010,
903*a4f780cdSTaniya Das 		.enable_mask = BIT(0),
904*a4f780cdSTaniya Das 		.hw.init = &(const struct clk_init_data) {
905*a4f780cdSTaniya Das 			.name = "gcc_pcie_c_aux_clk",
906*a4f780cdSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
907*a4f780cdSTaniya Das 				&gcc_pcie_c_aux_clk_src.clkr.hw,
908*a4f780cdSTaniya Das 			},
909*a4f780cdSTaniya Das 			.num_parents = 1,
910*a4f780cdSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
911*a4f780cdSTaniya Das 			.ops = &clk_branch2_ops,
912*a4f780cdSTaniya Das 		},
913*a4f780cdSTaniya Das 	},
914*a4f780cdSTaniya Das };
915*a4f780cdSTaniya Das 
916*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_c_cfg_ahb_clk = {
917*a4f780cdSTaniya Das 	.halt_reg = 0x4b054,
918*a4f780cdSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
919*a4f780cdSTaniya Das 	.hwcg_reg = 0x4b054,
920*a4f780cdSTaniya Das 	.hwcg_bit = 1,
921*a4f780cdSTaniya Das 	.clkr = {
922*a4f780cdSTaniya Das 		.enable_reg = 0x9d008,
923*a4f780cdSTaniya Das 		.enable_mask = BIT(31),
924*a4f780cdSTaniya Das 		.hw.init = &(const struct clk_init_data) {
925*a4f780cdSTaniya Das 			.name = "gcc_pcie_c_cfg_ahb_clk",
926*a4f780cdSTaniya Das 			.ops = &clk_branch2_ops,
927*a4f780cdSTaniya Das 		},
928*a4f780cdSTaniya Das 	},
929*a4f780cdSTaniya Das };
930*a4f780cdSTaniya Das 
931*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_c_dti_qtc_clk = {
932*a4f780cdSTaniya Das 	.halt_reg = 0x4b018,
933*a4f780cdSTaniya Das 	.halt_check = BRANCH_HALT_SKIP,
934*a4f780cdSTaniya Das 	.hwcg_reg = 0x4b018,
935*a4f780cdSTaniya Das 	.hwcg_bit = 1,
936*a4f780cdSTaniya Das 	.clkr = {
937*a4f780cdSTaniya Das 		.enable_reg = 0x9d008,
938*a4f780cdSTaniya Das 		.enable_mask = BIT(26),
939*a4f780cdSTaniya Das 		.hw.init = &(const struct clk_init_data) {
940*a4f780cdSTaniya Das 			.name = "gcc_pcie_c_dti_qtc_clk",
941*a4f780cdSTaniya Das 			.ops = &clk_branch2_ops,
942*a4f780cdSTaniya Das 		},
943*a4f780cdSTaniya Das 	},
944*a4f780cdSTaniya Das };
945*a4f780cdSTaniya Das 
946*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_c_mstr_axi_clk = {
947*a4f780cdSTaniya Das 	.halt_reg = 0x4b040,
948*a4f780cdSTaniya Das 	.halt_check = BRANCH_HALT_SKIP,
949*a4f780cdSTaniya Das 	.hwcg_reg = 0x4b040,
950*a4f780cdSTaniya Das 	.hwcg_bit = 1,
951*a4f780cdSTaniya Das 	.clkr = {
952*a4f780cdSTaniya Das 		.enable_reg = 0x9d008,
953*a4f780cdSTaniya Das 		.enable_mask = BIT(30),
954*a4f780cdSTaniya Das 		.hw.init = &(const struct clk_init_data) {
955*a4f780cdSTaniya Das 			.name = "gcc_pcie_c_mstr_axi_clk",
956*a4f780cdSTaniya Das 			.ops = &clk_branch2_ops,
957*a4f780cdSTaniya Das 		},
958*a4f780cdSTaniya Das 	},
959*a4f780cdSTaniya Das };
960*a4f780cdSTaniya Das 
961*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_c_phy_aux_clk = {
962*a4f780cdSTaniya Das 	.halt_reg = 0x4f01c,
963*a4f780cdSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
964*a4f780cdSTaniya Das 	.clkr = {
965*a4f780cdSTaniya Das 		.enable_reg = 0x9d010,
966*a4f780cdSTaniya Das 		.enable_mask = BIT(14),
967*a4f780cdSTaniya Das 		.hw.init = &(const struct clk_init_data) {
968*a4f780cdSTaniya Das 			.name = "gcc_pcie_c_phy_aux_clk",
969*a4f780cdSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
970*a4f780cdSTaniya Das 				&gcc_pcie_c_phy_aux_clk_src.clkr.hw,
971*a4f780cdSTaniya Das 			},
972*a4f780cdSTaniya Das 			.num_parents = 1,
973*a4f780cdSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
974*a4f780cdSTaniya Das 			.ops = &clk_branch2_ops,
975*a4f780cdSTaniya Das 		},
976*a4f780cdSTaniya Das 	},
977*a4f780cdSTaniya Das };
978*a4f780cdSTaniya Das 
979*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_c_phy_rchng_clk = {
980*a4f780cdSTaniya Das 	.halt_reg = 0x4b078,
981*a4f780cdSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
982*a4f780cdSTaniya Das 	.clkr = {
983*a4f780cdSTaniya Das 		.enable_reg = 0x9d010,
984*a4f780cdSTaniya Das 		.enable_mask = BIT(2),
985*a4f780cdSTaniya Das 		.hw.init = &(const struct clk_init_data) {
986*a4f780cdSTaniya Das 			.name = "gcc_pcie_c_phy_rchng_clk",
987*a4f780cdSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
988*a4f780cdSTaniya Das 				&gcc_pcie_c_phy_rchng_clk_src.clkr.hw,
989*a4f780cdSTaniya Das 			},
990*a4f780cdSTaniya Das 			.num_parents = 1,
991*a4f780cdSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
992*a4f780cdSTaniya Das 			.ops = &clk_branch2_ops,
993*a4f780cdSTaniya Das 		},
994*a4f780cdSTaniya Das 	},
995*a4f780cdSTaniya Das };
996*a4f780cdSTaniya Das 
997*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_c_pipe_clk = {
998*a4f780cdSTaniya Das 	.halt_reg = 0x4b068,
999*a4f780cdSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1000*a4f780cdSTaniya Das 	.clkr = {
1001*a4f780cdSTaniya Das 		.enable_reg = 0x9d010,
1002*a4f780cdSTaniya Das 		.enable_mask = BIT(1),
1003*a4f780cdSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1004*a4f780cdSTaniya Das 			.name = "gcc_pcie_c_pipe_clk",
1005*a4f780cdSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1006*a4f780cdSTaniya Das 				&gcc_pcie_c_pipe_clk_src.clkr.hw,
1007*a4f780cdSTaniya Das 			},
1008*a4f780cdSTaniya Das 			.num_parents = 1,
1009*a4f780cdSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
1010*a4f780cdSTaniya Das 			.ops = &clk_branch2_ops,
1011*a4f780cdSTaniya Das 		},
1012*a4f780cdSTaniya Das 	},
1013*a4f780cdSTaniya Das };
1014*a4f780cdSTaniya Das 
1015*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_c_slv_axi_clk = {
1016*a4f780cdSTaniya Das 	.halt_reg = 0x4b02c,
1017*a4f780cdSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1018*a4f780cdSTaniya Das 	.hwcg_reg = 0x4b02c,
1019*a4f780cdSTaniya Das 	.hwcg_bit = 1,
1020*a4f780cdSTaniya Das 	.clkr = {
1021*a4f780cdSTaniya Das 		.enable_reg = 0x9d008,
1022*a4f780cdSTaniya Das 		.enable_mask = BIT(29),
1023*a4f780cdSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1024*a4f780cdSTaniya Das 			.name = "gcc_pcie_c_slv_axi_clk",
1025*a4f780cdSTaniya Das 			.ops = &clk_branch2_ops,
1026*a4f780cdSTaniya Das 		},
1027*a4f780cdSTaniya Das 	},
1028*a4f780cdSTaniya Das };
1029*a4f780cdSTaniya Das 
1030*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_c_slv_q2a_axi_clk = {
1031*a4f780cdSTaniya Das 	.halt_reg = 0x4b024,
1032*a4f780cdSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1033*a4f780cdSTaniya Das 	.clkr = {
1034*a4f780cdSTaniya Das 		.enable_reg = 0x9d008,
1035*a4f780cdSTaniya Das 		.enable_mask = BIT(28),
1036*a4f780cdSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1037*a4f780cdSTaniya Das 			.name = "gcc_pcie_c_slv_q2a_axi_clk",
1038*a4f780cdSTaniya Das 			.ops = &clk_branch2_ops,
1039*a4f780cdSTaniya Das 		},
1040*a4f780cdSTaniya Das 	},
1041*a4f780cdSTaniya Das };
1042*a4f780cdSTaniya Das 
1043*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_d_aux_clk = {
1044*a4f780cdSTaniya Das 	.halt_reg = 0x4c058,
1045*a4f780cdSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1046*a4f780cdSTaniya Das 	.clkr = {
1047*a4f780cdSTaniya Das 		.enable_reg = 0x9d010,
1048*a4f780cdSTaniya Das 		.enable_mask = BIT(9),
1049*a4f780cdSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1050*a4f780cdSTaniya Das 			.name = "gcc_pcie_d_aux_clk",
1051*a4f780cdSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1052*a4f780cdSTaniya Das 				&gcc_pcie_d_aux_clk_src.clkr.hw,
1053*a4f780cdSTaniya Das 			},
1054*a4f780cdSTaniya Das 			.num_parents = 1,
1055*a4f780cdSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
1056*a4f780cdSTaniya Das 			.ops = &clk_branch2_ops,
1057*a4f780cdSTaniya Das 		},
1058*a4f780cdSTaniya Das 	},
1059*a4f780cdSTaniya Das };
1060*a4f780cdSTaniya Das 
1061*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_d_cfg_ahb_clk = {
1062*a4f780cdSTaniya Das 	.halt_reg = 0x4c054,
1063*a4f780cdSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1064*a4f780cdSTaniya Das 	.hwcg_reg = 0x4c054,
1065*a4f780cdSTaniya Das 	.hwcg_bit = 1,
1066*a4f780cdSTaniya Das 	.clkr = {
1067*a4f780cdSTaniya Das 		.enable_reg = 0x9d010,
1068*a4f780cdSTaniya Das 		.enable_mask = BIT(8),
1069*a4f780cdSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1070*a4f780cdSTaniya Das 			.name = "gcc_pcie_d_cfg_ahb_clk",
1071*a4f780cdSTaniya Das 			.ops = &clk_branch2_ops,
1072*a4f780cdSTaniya Das 		},
1073*a4f780cdSTaniya Das 	},
1074*a4f780cdSTaniya Das };
1075*a4f780cdSTaniya Das 
1076*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_d_dti_qtc_clk = {
1077*a4f780cdSTaniya Das 	.halt_reg = 0x4c018,
1078*a4f780cdSTaniya Das 	.halt_check = BRANCH_HALT_SKIP,
1079*a4f780cdSTaniya Das 	.hwcg_reg = 0x4c018,
1080*a4f780cdSTaniya Das 	.hwcg_bit = 1,
1081*a4f780cdSTaniya Das 	.clkr = {
1082*a4f780cdSTaniya Das 		.enable_reg = 0x9d010,
1083*a4f780cdSTaniya Das 		.enable_mask = BIT(3),
1084*a4f780cdSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1085*a4f780cdSTaniya Das 			.name = "gcc_pcie_d_dti_qtc_clk",
1086*a4f780cdSTaniya Das 			.ops = &clk_branch2_ops,
1087*a4f780cdSTaniya Das 		},
1088*a4f780cdSTaniya Das 	},
1089*a4f780cdSTaniya Das };
1090*a4f780cdSTaniya Das 
1091*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_d_mstr_axi_clk = {
1092*a4f780cdSTaniya Das 	.halt_reg = 0x4c040,
1093*a4f780cdSTaniya Das 	.halt_check = BRANCH_HALT_SKIP,
1094*a4f780cdSTaniya Das 	.hwcg_reg = 0x4c040,
1095*a4f780cdSTaniya Das 	.hwcg_bit = 1,
1096*a4f780cdSTaniya Das 	.clkr = {
1097*a4f780cdSTaniya Das 		.enable_reg = 0x9d010,
1098*a4f780cdSTaniya Das 		.enable_mask = BIT(7),
1099*a4f780cdSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1100*a4f780cdSTaniya Das 			.name = "gcc_pcie_d_mstr_axi_clk",
1101*a4f780cdSTaniya Das 			.ops = &clk_branch2_ops,
1102*a4f780cdSTaniya Das 		},
1103*a4f780cdSTaniya Das 	},
1104*a4f780cdSTaniya Das };
1105*a4f780cdSTaniya Das 
1106*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_d_phy_aux_clk = {
1107*a4f780cdSTaniya Das 	.halt_reg = 0x5001c,
1108*a4f780cdSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1109*a4f780cdSTaniya Das 	.clkr = {
1110*a4f780cdSTaniya Das 		.enable_reg = 0x9d010,
1111*a4f780cdSTaniya Das 		.enable_mask = BIT(16),
1112*a4f780cdSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1113*a4f780cdSTaniya Das 			.name = "gcc_pcie_d_phy_aux_clk",
1114*a4f780cdSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1115*a4f780cdSTaniya Das 				&gcc_pcie_d_phy_aux_clk_src.clkr.hw,
1116*a4f780cdSTaniya Das 			},
1117*a4f780cdSTaniya Das 			.num_parents = 1,
1118*a4f780cdSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
1119*a4f780cdSTaniya Das 			.ops = &clk_branch2_ops,
1120*a4f780cdSTaniya Das 		},
1121*a4f780cdSTaniya Das 	},
1122*a4f780cdSTaniya Das };
1123*a4f780cdSTaniya Das 
1124*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_d_phy_rchng_clk = {
1125*a4f780cdSTaniya Das 	.halt_reg = 0x4c078,
1126*a4f780cdSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1127*a4f780cdSTaniya Das 	.clkr = {
1128*a4f780cdSTaniya Das 		.enable_reg = 0x9d010,
1129*a4f780cdSTaniya Das 		.enable_mask = BIT(11),
1130*a4f780cdSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1131*a4f780cdSTaniya Das 			.name = "gcc_pcie_d_phy_rchng_clk",
1132*a4f780cdSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1133*a4f780cdSTaniya Das 				&gcc_pcie_d_phy_rchng_clk_src.clkr.hw,
1134*a4f780cdSTaniya Das 			},
1135*a4f780cdSTaniya Das 			.num_parents = 1,
1136*a4f780cdSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
1137*a4f780cdSTaniya Das 			.ops = &clk_branch2_ops,
1138*a4f780cdSTaniya Das 		},
1139*a4f780cdSTaniya Das 	},
1140*a4f780cdSTaniya Das };
1141*a4f780cdSTaniya Das 
1142*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_d_pipe_clk = {
1143*a4f780cdSTaniya Das 	.halt_reg = 0x4c068,
1144*a4f780cdSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1145*a4f780cdSTaniya Das 	.clkr = {
1146*a4f780cdSTaniya Das 		.enable_reg = 0x9d010,
1147*a4f780cdSTaniya Das 		.enable_mask = BIT(10),
1148*a4f780cdSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1149*a4f780cdSTaniya Das 			.name = "gcc_pcie_d_pipe_clk",
1150*a4f780cdSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1151*a4f780cdSTaniya Das 				&gcc_pcie_d_pipe_clk_src.clkr.hw,
1152*a4f780cdSTaniya Das 			},
1153*a4f780cdSTaniya Das 			.num_parents = 1,
1154*a4f780cdSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
1155*a4f780cdSTaniya Das 			.ops = &clk_branch2_ops,
1156*a4f780cdSTaniya Das 		},
1157*a4f780cdSTaniya Das 	},
1158*a4f780cdSTaniya Das };
1159*a4f780cdSTaniya Das 
1160*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_d_slv_axi_clk = {
1161*a4f780cdSTaniya Das 	.halt_reg = 0x4c02c,
1162*a4f780cdSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1163*a4f780cdSTaniya Das 	.hwcg_reg = 0x4c02c,
1164*a4f780cdSTaniya Das 	.hwcg_bit = 1,
1165*a4f780cdSTaniya Das 	.clkr = {
1166*a4f780cdSTaniya Das 		.enable_reg = 0x9d010,
1167*a4f780cdSTaniya Das 		.enable_mask = BIT(6),
1168*a4f780cdSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1169*a4f780cdSTaniya Das 			.name = "gcc_pcie_d_slv_axi_clk",
1170*a4f780cdSTaniya Das 			.ops = &clk_branch2_ops,
1171*a4f780cdSTaniya Das 		},
1172*a4f780cdSTaniya Das 	},
1173*a4f780cdSTaniya Das };
1174*a4f780cdSTaniya Das 
1175*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_d_slv_q2a_axi_clk = {
1176*a4f780cdSTaniya Das 	.halt_reg = 0x4c024,
1177*a4f780cdSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1178*a4f780cdSTaniya Das 	.clkr = {
1179*a4f780cdSTaniya Das 		.enable_reg = 0x9d010,
1180*a4f780cdSTaniya Das 		.enable_mask = BIT(5),
1181*a4f780cdSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1182*a4f780cdSTaniya Das 			.name = "gcc_pcie_d_slv_q2a_axi_clk",
1183*a4f780cdSTaniya Das 			.ops = &clk_branch2_ops,
1184*a4f780cdSTaniya Das 		},
1185*a4f780cdSTaniya Das 	},
1186*a4f780cdSTaniya Das };
1187*a4f780cdSTaniya Das 
1188*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_link_ahb_clk = {
1189*a4f780cdSTaniya Das 	.halt_reg = 0x52464,
1190*a4f780cdSTaniya Das 	.halt_check = BRANCH_HALT,
1191*a4f780cdSTaniya Das 	.clkr = {
1192*a4f780cdSTaniya Das 		.enable_reg = 0x52464,
1193*a4f780cdSTaniya Das 		.enable_mask = BIT(0),
1194*a4f780cdSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1195*a4f780cdSTaniya Das 			.name = "gcc_pcie_link_ahb_clk",
1196*a4f780cdSTaniya Das 			.ops = &clk_branch2_ops,
1197*a4f780cdSTaniya Das 		},
1198*a4f780cdSTaniya Das 	},
1199*a4f780cdSTaniya Das };
1200*a4f780cdSTaniya Das 
1201*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_link_xo_clk = {
1202*a4f780cdSTaniya Das 	.halt_reg = 0x52468,
1203*a4f780cdSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1204*a4f780cdSTaniya Das 	.hwcg_reg = 0x52468,
1205*a4f780cdSTaniya Das 	.hwcg_bit = 1,
1206*a4f780cdSTaniya Das 	.clkr = {
1207*a4f780cdSTaniya Das 		.enable_reg = 0x52468,
1208*a4f780cdSTaniya Das 		.enable_mask = BIT(0),
1209*a4f780cdSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1210*a4f780cdSTaniya Das 			.name = "gcc_pcie_link_xo_clk",
1211*a4f780cdSTaniya Das 			.ops = &clk_branch2_ops,
1212*a4f780cdSTaniya Das 		},
1213*a4f780cdSTaniya Das 	},
1214*a4f780cdSTaniya Das };
1215*a4f780cdSTaniya Das 
1216*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_noc_async_bridge_clk = {
1217*a4f780cdSTaniya Das 	.halt_reg = 0x52048,
1218*a4f780cdSTaniya Das 	.halt_check = BRANCH_HALT_SKIP,
1219*a4f780cdSTaniya Das 	.hwcg_reg = 0x52048,
1220*a4f780cdSTaniya Das 	.hwcg_bit = 1,
1221*a4f780cdSTaniya Das 	.clkr = {
1222*a4f780cdSTaniya Das 		.enable_reg = 0x9d018,
1223*a4f780cdSTaniya Das 		.enable_mask = BIT(18),
1224*a4f780cdSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1225*a4f780cdSTaniya Das 			.name = "gcc_pcie_noc_async_bridge_clk",
1226*a4f780cdSTaniya Das 			.ops = &clk_branch2_ops,
1227*a4f780cdSTaniya Das 		},
1228*a4f780cdSTaniya Das 	},
1229*a4f780cdSTaniya Das };
1230*a4f780cdSTaniya Das 
1231*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_noc_cnoc_sf_qx_clk = {
1232*a4f780cdSTaniya Das 	.halt_reg = 0x52040,
1233*a4f780cdSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1234*a4f780cdSTaniya Das 	.hwcg_reg = 0x52040,
1235*a4f780cdSTaniya Das 	.hwcg_bit = 1,
1236*a4f780cdSTaniya Das 	.clkr = {
1237*a4f780cdSTaniya Das 		.enable_reg = 0x9d010,
1238*a4f780cdSTaniya Das 		.enable_mask = BIT(24),
1239*a4f780cdSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1240*a4f780cdSTaniya Das 			.name = "gcc_pcie_noc_cnoc_sf_qx_clk",
1241*a4f780cdSTaniya Das 			.ops = &clk_branch2_ops,
1242*a4f780cdSTaniya Das 		},
1243*a4f780cdSTaniya Das 	},
1244*a4f780cdSTaniya Das };
1245*a4f780cdSTaniya Das 
1246*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_noc_m_cfg_clk = {
1247*a4f780cdSTaniya Das 	.halt_reg = 0x52060,
1248*a4f780cdSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1249*a4f780cdSTaniya Das 	.hwcg_reg = 0x52060,
1250*a4f780cdSTaniya Das 	.hwcg_bit = 1,
1251*a4f780cdSTaniya Das 	.clkr = {
1252*a4f780cdSTaniya Das 		.enable_reg = 0x9d018,
1253*a4f780cdSTaniya Das 		.enable_mask = BIT(4),
1254*a4f780cdSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1255*a4f780cdSTaniya Das 			.name = "gcc_pcie_noc_m_cfg_clk",
1256*a4f780cdSTaniya Das 			.ops = &clk_branch2_ops,
1257*a4f780cdSTaniya Das 		},
1258*a4f780cdSTaniya Das 	},
1259*a4f780cdSTaniya Das };
1260*a4f780cdSTaniya Das 
1261*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_noc_m_pdb_clk = {
1262*a4f780cdSTaniya Das 	.halt_reg = 0x52084,
1263*a4f780cdSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1264*a4f780cdSTaniya Das 	.hwcg_reg = 0x52084,
1265*a4f780cdSTaniya Das 	.hwcg_bit = 1,
1266*a4f780cdSTaniya Das 	.clkr = {
1267*a4f780cdSTaniya Das 		.enable_reg = 0x9d018,
1268*a4f780cdSTaniya Das 		.enable_mask = BIT(8),
1269*a4f780cdSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1270*a4f780cdSTaniya Das 			.name = "gcc_pcie_noc_m_pdb_clk",
1271*a4f780cdSTaniya Das 			.ops = &clk_branch2_ops,
1272*a4f780cdSTaniya Das 		},
1273*a4f780cdSTaniya Das 	},
1274*a4f780cdSTaniya Das };
1275*a4f780cdSTaniya Das 
1276*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_noc_mstr_axi_clk = {
1277*a4f780cdSTaniya Das 	.halt_reg = 0x52050,
1278*a4f780cdSTaniya Das 	.halt_check = BRANCH_HALT_SKIP,
1279*a4f780cdSTaniya Das 	.hwcg_reg = 0x52050,
1280*a4f780cdSTaniya Das 	.hwcg_bit = 1,
1281*a4f780cdSTaniya Das 	.clkr = {
1282*a4f780cdSTaniya Das 		.enable_reg = 0x9d010,
1283*a4f780cdSTaniya Das 		.enable_mask = BIT(25),
1284*a4f780cdSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1285*a4f780cdSTaniya Das 			.name = "gcc_pcie_noc_mstr_axi_clk",
1286*a4f780cdSTaniya Das 			.ops = &clk_branch2_ops,
1287*a4f780cdSTaniya Das 		},
1288*a4f780cdSTaniya Das 	},
1289*a4f780cdSTaniya Das };
1290*a4f780cdSTaniya Das 
1291*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_noc_pwrctl_clk = {
1292*a4f780cdSTaniya Das 	.halt_reg = 0x52080,
1293*a4f780cdSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1294*a4f780cdSTaniya Das 	.clkr = {
1295*a4f780cdSTaniya Das 		.enable_reg = 0x9d018,
1296*a4f780cdSTaniya Das 		.enable_mask = BIT(7),
1297*a4f780cdSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1298*a4f780cdSTaniya Das 			.name = "gcc_pcie_noc_pwrctl_clk",
1299*a4f780cdSTaniya Das 			.ops = &clk_branch2_ops,
1300*a4f780cdSTaniya Das 		},
1301*a4f780cdSTaniya Das 	},
1302*a4f780cdSTaniya Das };
1303*a4f780cdSTaniya Das 
1304*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_noc_qosgen_extref_clk = {
1305*a4f780cdSTaniya Das 	.halt_reg = 0x52074,
1306*a4f780cdSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1307*a4f780cdSTaniya Das 	.clkr = {
1308*a4f780cdSTaniya Das 		.enable_reg = 0x9d010,
1309*a4f780cdSTaniya Das 		.enable_mask = BIT(19),
1310*a4f780cdSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1311*a4f780cdSTaniya Das 			.name = "gcc_pcie_noc_qosgen_extref_clk",
1312*a4f780cdSTaniya Das 			.ops = &clk_branch2_ops,
1313*a4f780cdSTaniya Das 		},
1314*a4f780cdSTaniya Das 	},
1315*a4f780cdSTaniya Das };
1316*a4f780cdSTaniya Das 
1317*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_noc_refgen_clk = {
1318*a4f780cdSTaniya Das 	.halt_reg = 0x52078,
1319*a4f780cdSTaniya Das 	.halt_check = BRANCH_HALT,
1320*a4f780cdSTaniya Das 	.clkr = {
1321*a4f780cdSTaniya Das 		.enable_reg = 0x52078,
1322*a4f780cdSTaniya Das 		.enable_mask = BIT(0),
1323*a4f780cdSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1324*a4f780cdSTaniya Das 			.name = "gcc_pcie_noc_refgen_clk",
1325*a4f780cdSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1326*a4f780cdSTaniya Das 				&gcc_pcie_noc_refgen_clk_src.clkr.hw,
1327*a4f780cdSTaniya Das 			},
1328*a4f780cdSTaniya Das 			.num_parents = 1,
1329*a4f780cdSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
1330*a4f780cdSTaniya Das 			.ops = &clk_branch2_ops,
1331*a4f780cdSTaniya Das 		},
1332*a4f780cdSTaniya Das 	},
1333*a4f780cdSTaniya Das };
1334*a4f780cdSTaniya Das 
1335*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_noc_s_cfg_clk = {
1336*a4f780cdSTaniya Das 	.halt_reg = 0x52064,
1337*a4f780cdSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1338*a4f780cdSTaniya Das 	.clkr = {
1339*a4f780cdSTaniya Das 		.enable_reg = 0x9d018,
1340*a4f780cdSTaniya Das 		.enable_mask = BIT(5),
1341*a4f780cdSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1342*a4f780cdSTaniya Das 			.name = "gcc_pcie_noc_s_cfg_clk",
1343*a4f780cdSTaniya Das 			.ops = &clk_branch2_ops,
1344*a4f780cdSTaniya Das 		},
1345*a4f780cdSTaniya Das 	},
1346*a4f780cdSTaniya Das };
1347*a4f780cdSTaniya Das 
1348*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_noc_s_pdb_clk = {
1349*a4f780cdSTaniya Das 	.halt_reg = 0x5208c,
1350*a4f780cdSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1351*a4f780cdSTaniya Das 	.hwcg_reg = 0x5208c,
1352*a4f780cdSTaniya Das 	.hwcg_bit = 1,
1353*a4f780cdSTaniya Das 	.clkr = {
1354*a4f780cdSTaniya Das 		.enable_reg = 0x9d018,
1355*a4f780cdSTaniya Das 		.enable_mask = BIT(9),
1356*a4f780cdSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1357*a4f780cdSTaniya Das 			.name = "gcc_pcie_noc_s_pdb_clk",
1358*a4f780cdSTaniya Das 			.ops = &clk_branch2_ops,
1359*a4f780cdSTaniya Das 		},
1360*a4f780cdSTaniya Das 	},
1361*a4f780cdSTaniya Das };
1362*a4f780cdSTaniya Das 
1363*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_noc_safety_clk = {
1364*a4f780cdSTaniya Das 	.halt_reg = 0x5207c,
1365*a4f780cdSTaniya Das 	.halt_check = BRANCH_HALT,
1366*a4f780cdSTaniya Das 	.clkr = {
1367*a4f780cdSTaniya Das 		.enable_reg = 0x5207c,
1368*a4f780cdSTaniya Das 		.enable_mask = BIT(0),
1369*a4f780cdSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1370*a4f780cdSTaniya Das 			.name = "gcc_pcie_noc_safety_clk",
1371*a4f780cdSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1372*a4f780cdSTaniya Das 				&gcc_pcie_noc_safety_clk_src.clkr.hw,
1373*a4f780cdSTaniya Das 			},
1374*a4f780cdSTaniya Das 			.num_parents = 1,
1375*a4f780cdSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
1376*a4f780cdSTaniya Das 			.ops = &clk_branch2_ops,
1377*a4f780cdSTaniya Das 		},
1378*a4f780cdSTaniya Das 	},
1379*a4f780cdSTaniya Das };
1380*a4f780cdSTaniya Das 
1381*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_noc_slave_axi_clk = {
1382*a4f780cdSTaniya Das 	.halt_reg = 0x52058,
1383*a4f780cdSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1384*a4f780cdSTaniya Das 	.hwcg_reg = 0x52058,
1385*a4f780cdSTaniya Das 	.hwcg_bit = 1,
1386*a4f780cdSTaniya Das 	.clkr = {
1387*a4f780cdSTaniya Das 		.enable_reg = 0x9d010,
1388*a4f780cdSTaniya Das 		.enable_mask = BIT(26),
1389*a4f780cdSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1390*a4f780cdSTaniya Das 			.name = "gcc_pcie_noc_slave_axi_clk",
1391*a4f780cdSTaniya Das 			.ops = &clk_branch2_ops,
1392*a4f780cdSTaniya Das 		},
1393*a4f780cdSTaniya Das 	},
1394*a4f780cdSTaniya Das };
1395*a4f780cdSTaniya Das 
1396*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_noc_tsctr_clk = {
1397*a4f780cdSTaniya Das 	.halt_reg = 0x52070,
1398*a4f780cdSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1399*a4f780cdSTaniya Das 	.clkr = {
1400*a4f780cdSTaniya Das 		.enable_reg = 0x9d010,
1401*a4f780cdSTaniya Das 		.enable_mask = BIT(18),
1402*a4f780cdSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1403*a4f780cdSTaniya Das 			.name = "gcc_pcie_noc_tsctr_clk",
1404*a4f780cdSTaniya Das 			.ops = &clk_branch2_ops,
1405*a4f780cdSTaniya Das 		},
1406*a4f780cdSTaniya Das 	},
1407*a4f780cdSTaniya Das };
1408*a4f780cdSTaniya Das 
1409*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_noc_xo_clk = {
1410*a4f780cdSTaniya Das 	.halt_reg = 0x52068,
1411*a4f780cdSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1412*a4f780cdSTaniya Das 	.clkr = {
1413*a4f780cdSTaniya Das 		.enable_reg = 0x9d018,
1414*a4f780cdSTaniya Das 		.enable_mask = BIT(6),
1415*a4f780cdSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1416*a4f780cdSTaniya Das 			.name = "gcc_pcie_noc_xo_clk",
1417*a4f780cdSTaniya Das 			.ops = &clk_branch2_ops,
1418*a4f780cdSTaniya Das 		},
1419*a4f780cdSTaniya Das 	},
1420*a4f780cdSTaniya Das };
1421*a4f780cdSTaniya Das 
1422*a4f780cdSTaniya Das static struct clk_branch gcc_pdm2_clk = {
1423*a4f780cdSTaniya Das 	.halt_reg = 0x1a00c,
1424*a4f780cdSTaniya Das 	.halt_check = BRANCH_HALT,
1425*a4f780cdSTaniya Das 	.clkr = {
1426*a4f780cdSTaniya Das 		.enable_reg = 0x1a00c,
1427*a4f780cdSTaniya Das 		.enable_mask = BIT(0),
1428*a4f780cdSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1429*a4f780cdSTaniya Das 			.name = "gcc_pdm2_clk",
1430*a4f780cdSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1431*a4f780cdSTaniya Das 				&gcc_pdm2_clk_src.clkr.hw,
1432*a4f780cdSTaniya Das 			},
1433*a4f780cdSTaniya Das 			.num_parents = 1,
1434*a4f780cdSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
1435*a4f780cdSTaniya Das 			.ops = &clk_branch2_ops,
1436*a4f780cdSTaniya Das 		},
1437*a4f780cdSTaniya Das 	},
1438*a4f780cdSTaniya Das };
1439*a4f780cdSTaniya Das 
1440*a4f780cdSTaniya Das static struct clk_branch gcc_pdm_ahb_clk = {
1441*a4f780cdSTaniya Das 	.halt_reg = 0x1a004,
1442*a4f780cdSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1443*a4f780cdSTaniya Das 	.hwcg_reg = 0x1a004,
1444*a4f780cdSTaniya Das 	.hwcg_bit = 1,
1445*a4f780cdSTaniya Das 	.clkr = {
1446*a4f780cdSTaniya Das 		.enable_reg = 0x1a004,
1447*a4f780cdSTaniya Das 		.enable_mask = BIT(0),
1448*a4f780cdSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1449*a4f780cdSTaniya Das 			.name = "gcc_pdm_ahb_clk",
1450*a4f780cdSTaniya Das 			.ops = &clk_branch2_ops,
1451*a4f780cdSTaniya Das 		},
1452*a4f780cdSTaniya Das 	},
1453*a4f780cdSTaniya Das };
1454*a4f780cdSTaniya Das 
1455*a4f780cdSTaniya Das static struct clk_branch gcc_pdm_xo4_clk = {
1456*a4f780cdSTaniya Das 	.halt_reg = 0x1a008,
1457*a4f780cdSTaniya Das 	.halt_check = BRANCH_HALT,
1458*a4f780cdSTaniya Das 	.clkr = {
1459*a4f780cdSTaniya Das 		.enable_reg = 0x1a008,
1460*a4f780cdSTaniya Das 		.enable_mask = BIT(0),
1461*a4f780cdSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1462*a4f780cdSTaniya Das 			.name = "gcc_pdm_xo4_clk",
1463*a4f780cdSTaniya Das 			.ops = &clk_branch2_ops,
1464*a4f780cdSTaniya Das 		},
1465*a4f780cdSTaniya Das 	},
1466*a4f780cdSTaniya Das };
1467*a4f780cdSTaniya Das 
1468*a4f780cdSTaniya Das static struct clk_branch gcc_qupv3_wrap3_core_2x_clk = {
1469*a4f780cdSTaniya Das 	.halt_reg = 0x23020,
1470*a4f780cdSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1471*a4f780cdSTaniya Das 	.clkr = {
1472*a4f780cdSTaniya Das 		.enable_reg = 0x9d000,
1473*a4f780cdSTaniya Das 		.enable_mask = BIT(24),
1474*a4f780cdSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1475*a4f780cdSTaniya Das 			.name = "gcc_qupv3_wrap3_core_2x_clk",
1476*a4f780cdSTaniya Das 			.ops = &clk_branch2_ops,
1477*a4f780cdSTaniya Das 		},
1478*a4f780cdSTaniya Das 	},
1479*a4f780cdSTaniya Das };
1480*a4f780cdSTaniya Das 
1481*a4f780cdSTaniya Das static struct clk_branch gcc_qupv3_wrap3_core_clk = {
1482*a4f780cdSTaniya Das 	.halt_reg = 0x2300c,
1483*a4f780cdSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1484*a4f780cdSTaniya Das 	.clkr = {
1485*a4f780cdSTaniya Das 		.enable_reg = 0x9d000,
1486*a4f780cdSTaniya Das 		.enable_mask = BIT(23),
1487*a4f780cdSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1488*a4f780cdSTaniya Das 			.name = "gcc_qupv3_wrap3_core_clk",
1489*a4f780cdSTaniya Das 			.ops = &clk_branch2_ops,
1490*a4f780cdSTaniya Das 		},
1491*a4f780cdSTaniya Das 	},
1492*a4f780cdSTaniya Das };
1493*a4f780cdSTaniya Das 
1494*a4f780cdSTaniya Das static struct clk_branch gcc_qupv3_wrap3_m_clk = {
1495*a4f780cdSTaniya Das 	.halt_reg = 0x23004,
1496*a4f780cdSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1497*a4f780cdSTaniya Das 	.hwcg_reg = 0x23004,
1498*a4f780cdSTaniya Das 	.hwcg_bit = 1,
1499*a4f780cdSTaniya Das 	.clkr = {
1500*a4f780cdSTaniya Das 		.enable_reg = 0x9d000,
1501*a4f780cdSTaniya Das 		.enable_mask = BIT(22),
1502*a4f780cdSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1503*a4f780cdSTaniya Das 			.name = "gcc_qupv3_wrap3_m_clk",
1504*a4f780cdSTaniya Das 			.ops = &clk_branch2_ops,
1505*a4f780cdSTaniya Das 		},
1506*a4f780cdSTaniya Das 	},
1507*a4f780cdSTaniya Das };
1508*a4f780cdSTaniya Das 
1509*a4f780cdSTaniya Das static struct clk_branch gcc_qupv3_wrap3_qspi_ref_clk = {
1510*a4f780cdSTaniya Das 	.halt_reg = 0x23170,
1511*a4f780cdSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1512*a4f780cdSTaniya Das 	.clkr = {
1513*a4f780cdSTaniya Das 		.enable_reg = 0x9d000,
1514*a4f780cdSTaniya Das 		.enable_mask = BIT(26),
1515*a4f780cdSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1516*a4f780cdSTaniya Das 			.name = "gcc_qupv3_wrap3_qspi_ref_clk",
1517*a4f780cdSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1518*a4f780cdSTaniya Das 				&gcc_qupv3_wrap3_qspi_ref_clk_src.clkr.hw,
1519*a4f780cdSTaniya Das 			},
1520*a4f780cdSTaniya Das 			.num_parents = 1,
1521*a4f780cdSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
1522*a4f780cdSTaniya Das 			.ops = &clk_branch2_ops,
1523*a4f780cdSTaniya Das 		},
1524*a4f780cdSTaniya Das 	},
1525*a4f780cdSTaniya Das };
1526*a4f780cdSTaniya Das 
1527*a4f780cdSTaniya Das static struct clk_branch gcc_qupv3_wrap3_s0_clk = {
1528*a4f780cdSTaniya Das 	.halt_reg = 0x2315c,
1529*a4f780cdSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1530*a4f780cdSTaniya Das 	.clkr = {
1531*a4f780cdSTaniya Das 		.enable_reg = 0x9d000,
1532*a4f780cdSTaniya Das 		.enable_mask = BIT(25),
1533*a4f780cdSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1534*a4f780cdSTaniya Das 			.name = "gcc_qupv3_wrap3_s0_clk",
1535*a4f780cdSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1536*a4f780cdSTaniya Das 				&gcc_qupv3_wrap3_s0_clk_src.clkr.hw,
1537*a4f780cdSTaniya Das 			},
1538*a4f780cdSTaniya Das 			.num_parents = 1,
1539*a4f780cdSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
1540*a4f780cdSTaniya Das 			.ops = &clk_branch2_ops,
1541*a4f780cdSTaniya Das 		},
1542*a4f780cdSTaniya Das 	},
1543*a4f780cdSTaniya Das };
1544*a4f780cdSTaniya Das 
1545*a4f780cdSTaniya Das static struct clk_branch gcc_qupv3_wrap3_s_ahb_clk = {
1546*a4f780cdSTaniya Das 	.halt_reg = 0x23008,
1547*a4f780cdSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1548*a4f780cdSTaniya Das 	.hwcg_reg = 0x23008,
1549*a4f780cdSTaniya Das 	.hwcg_bit = 1,
1550*a4f780cdSTaniya Das 	.clkr = {
1551*a4f780cdSTaniya Das 		.enable_reg = 0x9d010,
1552*a4f780cdSTaniya Das 		.enable_mask = BIT(15),
1553*a4f780cdSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1554*a4f780cdSTaniya Das 			.name = "gcc_qupv3_wrap3_s_ahb_clk",
1555*a4f780cdSTaniya Das 			.ops = &clk_branch2_ops,
1556*a4f780cdSTaniya Das 		},
1557*a4f780cdSTaniya Das 	},
1558*a4f780cdSTaniya Das };
1559*a4f780cdSTaniya Das 
1560*a4f780cdSTaniya Das static struct clk_branch gcc_smmu_pcie_qtc_vote_clk = {
1561*a4f780cdSTaniya Das 	.halt_reg = 0x7d0b8,
1562*a4f780cdSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1563*a4f780cdSTaniya Das 	.clkr = {
1564*a4f780cdSTaniya Das 		.enable_reg = 0x7d0b8,
1565*a4f780cdSTaniya Das 		.enable_mask = BIT(0),
1566*a4f780cdSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1567*a4f780cdSTaniya Das 			.name = "gcc_smmu_pcie_qtc_vote_clk",
1568*a4f780cdSTaniya Das 			.ops = &clk_branch2_ops,
1569*a4f780cdSTaniya Das 		},
1570*a4f780cdSTaniya Das 	},
1571*a4f780cdSTaniya Das };
1572*a4f780cdSTaniya Das 
1573*a4f780cdSTaniya Das static struct gdsc gcc_pcie_a_gdsc = {
1574*a4f780cdSTaniya Das 	.gdscr = 0x49004,
1575*a4f780cdSTaniya Das 	.en_rest_wait_val = 0x2,
1576*a4f780cdSTaniya Das 	.en_few_wait_val = 0x2,
1577*a4f780cdSTaniya Das 	.clk_dis_wait_val = 0xf,
1578*a4f780cdSTaniya Das 	.collapse_ctrl = 0x8d02c,
1579*a4f780cdSTaniya Das 	.collapse_mask = BIT(1),
1580*a4f780cdSTaniya Das 	.pd = {
1581*a4f780cdSTaniya Das 		.name = "gcc_pcie_a_gdsc",
1582*a4f780cdSTaniya Das 	},
1583*a4f780cdSTaniya Das 	.pwrsts = PWRSTS_OFF_ON,
1584*a4f780cdSTaniya Das 	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
1585*a4f780cdSTaniya Das };
1586*a4f780cdSTaniya Das 
1587*a4f780cdSTaniya Das static struct gdsc gcc_pcie_a_phy_gdsc = {
1588*a4f780cdSTaniya Das 	.gdscr = 0x4d004,
1589*a4f780cdSTaniya Das 	.en_rest_wait_val = 0x2,
1590*a4f780cdSTaniya Das 	.en_few_wait_val = 0x2,
1591*a4f780cdSTaniya Das 	.clk_dis_wait_val = 0x2,
1592*a4f780cdSTaniya Das 	.collapse_ctrl = 0x8d02c,
1593*a4f780cdSTaniya Das 	.collapse_mask = BIT(5),
1594*a4f780cdSTaniya Das 	.pd = {
1595*a4f780cdSTaniya Das 		.name = "gcc_pcie_a_phy_gdsc",
1596*a4f780cdSTaniya Das 	},
1597*a4f780cdSTaniya Das 	.pwrsts = PWRSTS_OFF_ON,
1598*a4f780cdSTaniya Das 	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
1599*a4f780cdSTaniya Das };
1600*a4f780cdSTaniya Das 
1601*a4f780cdSTaniya Das static struct gdsc gcc_pcie_b_gdsc = {
1602*a4f780cdSTaniya Das 	.gdscr = 0x4a004,
1603*a4f780cdSTaniya Das 	.en_rest_wait_val = 0x2,
1604*a4f780cdSTaniya Das 	.en_few_wait_val = 0x2,
1605*a4f780cdSTaniya Das 	.clk_dis_wait_val = 0xf,
1606*a4f780cdSTaniya Das 	.collapse_ctrl = 0x8d02c,
1607*a4f780cdSTaniya Das 	.collapse_mask = BIT(2),
1608*a4f780cdSTaniya Das 	.pd = {
1609*a4f780cdSTaniya Das 		.name = "gcc_pcie_b_gdsc",
1610*a4f780cdSTaniya Das 	},
1611*a4f780cdSTaniya Das 	.pwrsts = PWRSTS_OFF_ON,
1612*a4f780cdSTaniya Das 	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
1613*a4f780cdSTaniya Das };
1614*a4f780cdSTaniya Das 
1615*a4f780cdSTaniya Das static struct gdsc gcc_pcie_b_phy_gdsc = {
1616*a4f780cdSTaniya Das 	.gdscr = 0x4e004,
1617*a4f780cdSTaniya Das 	.en_rest_wait_val = 0x2,
1618*a4f780cdSTaniya Das 	.en_few_wait_val = 0x2,
1619*a4f780cdSTaniya Das 	.clk_dis_wait_val = 0x2,
1620*a4f780cdSTaniya Das 	.collapse_ctrl = 0x8d02c,
1621*a4f780cdSTaniya Das 	.collapse_mask = BIT(6),
1622*a4f780cdSTaniya Das 	.pd = {
1623*a4f780cdSTaniya Das 		.name = "gcc_pcie_b_phy_gdsc",
1624*a4f780cdSTaniya Das 	},
1625*a4f780cdSTaniya Das 	.pwrsts = PWRSTS_OFF_ON,
1626*a4f780cdSTaniya Das 	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
1627*a4f780cdSTaniya Das };
1628*a4f780cdSTaniya Das 
1629*a4f780cdSTaniya Das static struct gdsc gcc_pcie_c_gdsc = {
1630*a4f780cdSTaniya Das 	.gdscr = 0x4b004,
1631*a4f780cdSTaniya Das 	.en_rest_wait_val = 0x2,
1632*a4f780cdSTaniya Das 	.en_few_wait_val = 0x2,
1633*a4f780cdSTaniya Das 	.clk_dis_wait_val = 0xf,
1634*a4f780cdSTaniya Das 	.collapse_ctrl = 0x8d02c,
1635*a4f780cdSTaniya Das 	.collapse_mask = BIT(3),
1636*a4f780cdSTaniya Das 	.pd = {
1637*a4f780cdSTaniya Das 		.name = "gcc_pcie_c_gdsc",
1638*a4f780cdSTaniya Das 	},
1639*a4f780cdSTaniya Das 	.pwrsts = PWRSTS_OFF_ON,
1640*a4f780cdSTaniya Das 	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
1641*a4f780cdSTaniya Das };
1642*a4f780cdSTaniya Das 
1643*a4f780cdSTaniya Das static struct gdsc gcc_pcie_c_phy_gdsc = {
1644*a4f780cdSTaniya Das 	.gdscr = 0x4f004,
1645*a4f780cdSTaniya Das 	.en_rest_wait_val = 0x2,
1646*a4f780cdSTaniya Das 	.en_few_wait_val = 0x2,
1647*a4f780cdSTaniya Das 	.clk_dis_wait_val = 0x2,
1648*a4f780cdSTaniya Das 	.collapse_ctrl = 0x8d02c,
1649*a4f780cdSTaniya Das 	.collapse_mask = BIT(7),
1650*a4f780cdSTaniya Das 	.pd = {
1651*a4f780cdSTaniya Das 		.name = "gcc_pcie_c_phy_gdsc",
1652*a4f780cdSTaniya Das 	},
1653*a4f780cdSTaniya Das 	.pwrsts = PWRSTS_OFF_ON,
1654*a4f780cdSTaniya Das 	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
1655*a4f780cdSTaniya Das };
1656*a4f780cdSTaniya Das 
1657*a4f780cdSTaniya Das static struct gdsc gcc_pcie_d_gdsc = {
1658*a4f780cdSTaniya Das 	.gdscr = 0x4c004,
1659*a4f780cdSTaniya Das 	.en_rest_wait_val = 0x2,
1660*a4f780cdSTaniya Das 	.en_few_wait_val = 0x2,
1661*a4f780cdSTaniya Das 	.clk_dis_wait_val = 0xf,
1662*a4f780cdSTaniya Das 	.collapse_ctrl = 0x8d02c,
1663*a4f780cdSTaniya Das 	.collapse_mask = BIT(4),
1664*a4f780cdSTaniya Das 	.pd = {
1665*a4f780cdSTaniya Das 		.name = "gcc_pcie_d_gdsc",
1666*a4f780cdSTaniya Das 	},
1667*a4f780cdSTaniya Das 	.pwrsts = PWRSTS_OFF_ON,
1668*a4f780cdSTaniya Das 	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
1669*a4f780cdSTaniya Das };
1670*a4f780cdSTaniya Das 
1671*a4f780cdSTaniya Das static struct gdsc gcc_pcie_d_phy_gdsc = {
1672*a4f780cdSTaniya Das 	.gdscr = 0x50004,
1673*a4f780cdSTaniya Das 	.en_rest_wait_val = 0x2,
1674*a4f780cdSTaniya Das 	.en_few_wait_val = 0x2,
1675*a4f780cdSTaniya Das 	.clk_dis_wait_val = 0x2,
1676*a4f780cdSTaniya Das 	.collapse_ctrl = 0x8d02c,
1677*a4f780cdSTaniya Das 	.collapse_mask = BIT(8),
1678*a4f780cdSTaniya Das 	.pd = {
1679*a4f780cdSTaniya Das 		.name = "gcc_pcie_d_phy_gdsc",
1680*a4f780cdSTaniya Das 	},
1681*a4f780cdSTaniya Das 	.pwrsts = PWRSTS_OFF_ON,
1682*a4f780cdSTaniya Das 	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
1683*a4f780cdSTaniya Das };
1684*a4f780cdSTaniya Das 
1685*a4f780cdSTaniya Das static struct gdsc gcc_pcie_noc_gdsc = {
1686*a4f780cdSTaniya Das 	.gdscr = 0x52004,
1687*a4f780cdSTaniya Das 	.gds_hw_ctrl = 0x52018,
1688*a4f780cdSTaniya Das 	.en_rest_wait_val = 0x2,
1689*a4f780cdSTaniya Das 	.en_few_wait_val = 0x2,
1690*a4f780cdSTaniya Das 	.clk_dis_wait_val = 0xf,
1691*a4f780cdSTaniya Das 	.collapse_ctrl = 0x8d02c,
1692*a4f780cdSTaniya Das 	.collapse_mask = BIT(0),
1693*a4f780cdSTaniya Das 	.pd = {
1694*a4f780cdSTaniya Das 		.name = "gcc_pcie_noc_gdsc",
1695*a4f780cdSTaniya Das 	},
1696*a4f780cdSTaniya Das 	.pwrsts = PWRSTS_OFF_ON,
1697*a4f780cdSTaniya Das 	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
1698*a4f780cdSTaniya Das };
1699*a4f780cdSTaniya Das 
1700*a4f780cdSTaniya Das static struct clk_regmap *gcc_nord_clocks[] = {
1701*a4f780cdSTaniya Das 	[GCC_BOOT_ROM_AHB_CLK] = &gcc_boot_rom_ahb_clk.clkr,
1702*a4f780cdSTaniya Das 	[GCC_GP1_CLK] = &gcc_gp1_clk.clkr,
1703*a4f780cdSTaniya Das 	[GCC_GP1_CLK_SRC] = &gcc_gp1_clk_src.clkr,
1704*a4f780cdSTaniya Das 	[GCC_GP2_CLK] = &gcc_gp2_clk.clkr,
1705*a4f780cdSTaniya Das 	[GCC_GP2_CLK_SRC] = &gcc_gp2_clk_src.clkr,
1706*a4f780cdSTaniya Das 	[GCC_GPLL0] = &gcc_gpll0.clkr,
1707*a4f780cdSTaniya Das 	[GCC_GPLL0_OUT_EVEN] = &gcc_gpll0_out_even.clkr,
1708*a4f780cdSTaniya Das 	[GCC_MMU_0_TCU_VOTE_CLK] = &gcc_mmu_0_tcu_vote_clk.clkr,
1709*a4f780cdSTaniya Das 	[GCC_PCIE_A_AUX_CLK] = &gcc_pcie_a_aux_clk.clkr,
1710*a4f780cdSTaniya Das 	[GCC_PCIE_A_AUX_CLK_SRC] = &gcc_pcie_a_aux_clk_src.clkr,
1711*a4f780cdSTaniya Das 	[GCC_PCIE_A_CFG_AHB_CLK] = &gcc_pcie_a_cfg_ahb_clk.clkr,
1712*a4f780cdSTaniya Das 	[GCC_PCIE_A_DTI_QTC_CLK] = &gcc_pcie_a_dti_qtc_clk.clkr,
1713*a4f780cdSTaniya Das 	[GCC_PCIE_A_MSTR_AXI_CLK] = &gcc_pcie_a_mstr_axi_clk.clkr,
1714*a4f780cdSTaniya Das 	[GCC_PCIE_A_PHY_AUX_CLK] = &gcc_pcie_a_phy_aux_clk.clkr,
1715*a4f780cdSTaniya Das 	[GCC_PCIE_A_PHY_AUX_CLK_SRC] = &gcc_pcie_a_phy_aux_clk_src.clkr,
1716*a4f780cdSTaniya Das 	[GCC_PCIE_A_PHY_RCHNG_CLK] = &gcc_pcie_a_phy_rchng_clk.clkr,
1717*a4f780cdSTaniya Das 	[GCC_PCIE_A_PHY_RCHNG_CLK_SRC] = &gcc_pcie_a_phy_rchng_clk_src.clkr,
1718*a4f780cdSTaniya Das 	[GCC_PCIE_A_PIPE_CLK] = &gcc_pcie_a_pipe_clk.clkr,
1719*a4f780cdSTaniya Das 	[GCC_PCIE_A_PIPE_CLK_SRC] = &gcc_pcie_a_pipe_clk_src.clkr,
1720*a4f780cdSTaniya Das 	[GCC_PCIE_A_SLV_AXI_CLK] = &gcc_pcie_a_slv_axi_clk.clkr,
1721*a4f780cdSTaniya Das 	[GCC_PCIE_A_SLV_Q2A_AXI_CLK] = &gcc_pcie_a_slv_q2a_axi_clk.clkr,
1722*a4f780cdSTaniya Das 	[GCC_PCIE_B_AUX_CLK] = &gcc_pcie_b_aux_clk.clkr,
1723*a4f780cdSTaniya Das 	[GCC_PCIE_B_AUX_CLK_SRC] = &gcc_pcie_b_aux_clk_src.clkr,
1724*a4f780cdSTaniya Das 	[GCC_PCIE_B_CFG_AHB_CLK] = &gcc_pcie_b_cfg_ahb_clk.clkr,
1725*a4f780cdSTaniya Das 	[GCC_PCIE_B_DTI_QTC_CLK] = &gcc_pcie_b_dti_qtc_clk.clkr,
1726*a4f780cdSTaniya Das 	[GCC_PCIE_B_MSTR_AXI_CLK] = &gcc_pcie_b_mstr_axi_clk.clkr,
1727*a4f780cdSTaniya Das 	[GCC_PCIE_B_PHY_AUX_CLK] = &gcc_pcie_b_phy_aux_clk.clkr,
1728*a4f780cdSTaniya Das 	[GCC_PCIE_B_PHY_AUX_CLK_SRC] = &gcc_pcie_b_phy_aux_clk_src.clkr,
1729*a4f780cdSTaniya Das 	[GCC_PCIE_B_PHY_RCHNG_CLK] = &gcc_pcie_b_phy_rchng_clk.clkr,
1730*a4f780cdSTaniya Das 	[GCC_PCIE_B_PHY_RCHNG_CLK_SRC] = &gcc_pcie_b_phy_rchng_clk_src.clkr,
1731*a4f780cdSTaniya Das 	[GCC_PCIE_B_PIPE_CLK] = &gcc_pcie_b_pipe_clk.clkr,
1732*a4f780cdSTaniya Das 	[GCC_PCIE_B_PIPE_CLK_SRC] = &gcc_pcie_b_pipe_clk_src.clkr,
1733*a4f780cdSTaniya Das 	[GCC_PCIE_B_SLV_AXI_CLK] = &gcc_pcie_b_slv_axi_clk.clkr,
1734*a4f780cdSTaniya Das 	[GCC_PCIE_B_SLV_Q2A_AXI_CLK] = &gcc_pcie_b_slv_q2a_axi_clk.clkr,
1735*a4f780cdSTaniya Das 	[GCC_PCIE_C_AUX_CLK] = &gcc_pcie_c_aux_clk.clkr,
1736*a4f780cdSTaniya Das 	[GCC_PCIE_C_AUX_CLK_SRC] = &gcc_pcie_c_aux_clk_src.clkr,
1737*a4f780cdSTaniya Das 	[GCC_PCIE_C_CFG_AHB_CLK] = &gcc_pcie_c_cfg_ahb_clk.clkr,
1738*a4f780cdSTaniya Das 	[GCC_PCIE_C_DTI_QTC_CLK] = &gcc_pcie_c_dti_qtc_clk.clkr,
1739*a4f780cdSTaniya Das 	[GCC_PCIE_C_MSTR_AXI_CLK] = &gcc_pcie_c_mstr_axi_clk.clkr,
1740*a4f780cdSTaniya Das 	[GCC_PCIE_C_PHY_AUX_CLK] = &gcc_pcie_c_phy_aux_clk.clkr,
1741*a4f780cdSTaniya Das 	[GCC_PCIE_C_PHY_AUX_CLK_SRC] = &gcc_pcie_c_phy_aux_clk_src.clkr,
1742*a4f780cdSTaniya Das 	[GCC_PCIE_C_PHY_RCHNG_CLK] = &gcc_pcie_c_phy_rchng_clk.clkr,
1743*a4f780cdSTaniya Das 	[GCC_PCIE_C_PHY_RCHNG_CLK_SRC] = &gcc_pcie_c_phy_rchng_clk_src.clkr,
1744*a4f780cdSTaniya Das 	[GCC_PCIE_C_PIPE_CLK] = &gcc_pcie_c_pipe_clk.clkr,
1745*a4f780cdSTaniya Das 	[GCC_PCIE_C_PIPE_CLK_SRC] = &gcc_pcie_c_pipe_clk_src.clkr,
1746*a4f780cdSTaniya Das 	[GCC_PCIE_C_SLV_AXI_CLK] = &gcc_pcie_c_slv_axi_clk.clkr,
1747*a4f780cdSTaniya Das 	[GCC_PCIE_C_SLV_Q2A_AXI_CLK] = &gcc_pcie_c_slv_q2a_axi_clk.clkr,
1748*a4f780cdSTaniya Das 	[GCC_PCIE_D_AUX_CLK] = &gcc_pcie_d_aux_clk.clkr,
1749*a4f780cdSTaniya Das 	[GCC_PCIE_D_AUX_CLK_SRC] = &gcc_pcie_d_aux_clk_src.clkr,
1750*a4f780cdSTaniya Das 	[GCC_PCIE_D_CFG_AHB_CLK] = &gcc_pcie_d_cfg_ahb_clk.clkr,
1751*a4f780cdSTaniya Das 	[GCC_PCIE_D_DTI_QTC_CLK] = &gcc_pcie_d_dti_qtc_clk.clkr,
1752*a4f780cdSTaniya Das 	[GCC_PCIE_D_MSTR_AXI_CLK] = &gcc_pcie_d_mstr_axi_clk.clkr,
1753*a4f780cdSTaniya Das 	[GCC_PCIE_D_PHY_AUX_CLK] = &gcc_pcie_d_phy_aux_clk.clkr,
1754*a4f780cdSTaniya Das 	[GCC_PCIE_D_PHY_AUX_CLK_SRC] = &gcc_pcie_d_phy_aux_clk_src.clkr,
1755*a4f780cdSTaniya Das 	[GCC_PCIE_D_PHY_RCHNG_CLK] = &gcc_pcie_d_phy_rchng_clk.clkr,
1756*a4f780cdSTaniya Das 	[GCC_PCIE_D_PHY_RCHNG_CLK_SRC] = &gcc_pcie_d_phy_rchng_clk_src.clkr,
1757*a4f780cdSTaniya Das 	[GCC_PCIE_D_PIPE_CLK] = &gcc_pcie_d_pipe_clk.clkr,
1758*a4f780cdSTaniya Das 	[GCC_PCIE_D_PIPE_CLK_SRC] = &gcc_pcie_d_pipe_clk_src.clkr,
1759*a4f780cdSTaniya Das 	[GCC_PCIE_D_SLV_AXI_CLK] = &gcc_pcie_d_slv_axi_clk.clkr,
1760*a4f780cdSTaniya Das 	[GCC_PCIE_D_SLV_Q2A_AXI_CLK] = &gcc_pcie_d_slv_q2a_axi_clk.clkr,
1761*a4f780cdSTaniya Das 	[GCC_PCIE_LINK_AHB_CLK] = &gcc_pcie_link_ahb_clk.clkr,
1762*a4f780cdSTaniya Das 	[GCC_PCIE_LINK_XO_CLK] = &gcc_pcie_link_xo_clk.clkr,
1763*a4f780cdSTaniya Das 	[GCC_PCIE_NOC_ASYNC_BRIDGE_CLK] = &gcc_pcie_noc_async_bridge_clk.clkr,
1764*a4f780cdSTaniya Das 	[GCC_PCIE_NOC_CNOC_SF_QX_CLK] = &gcc_pcie_noc_cnoc_sf_qx_clk.clkr,
1765*a4f780cdSTaniya Das 	[GCC_PCIE_NOC_M_CFG_CLK] = &gcc_pcie_noc_m_cfg_clk.clkr,
1766*a4f780cdSTaniya Das 	[GCC_PCIE_NOC_M_PDB_CLK] = &gcc_pcie_noc_m_pdb_clk.clkr,
1767*a4f780cdSTaniya Das 	[GCC_PCIE_NOC_MSTR_AXI_CLK] = &gcc_pcie_noc_mstr_axi_clk.clkr,
1768*a4f780cdSTaniya Das 	[GCC_PCIE_NOC_PWRCTL_CLK] = &gcc_pcie_noc_pwrctl_clk.clkr,
1769*a4f780cdSTaniya Das 	[GCC_PCIE_NOC_QOSGEN_EXTREF_CLK] = &gcc_pcie_noc_qosgen_extref_clk.clkr,
1770*a4f780cdSTaniya Das 	[GCC_PCIE_NOC_REFGEN_CLK] = &gcc_pcie_noc_refgen_clk.clkr,
1771*a4f780cdSTaniya Das 	[GCC_PCIE_NOC_REFGEN_CLK_SRC] = &gcc_pcie_noc_refgen_clk_src.clkr,
1772*a4f780cdSTaniya Das 	[GCC_PCIE_NOC_S_CFG_CLK] = &gcc_pcie_noc_s_cfg_clk.clkr,
1773*a4f780cdSTaniya Das 	[GCC_PCIE_NOC_S_PDB_CLK] = &gcc_pcie_noc_s_pdb_clk.clkr,
1774*a4f780cdSTaniya Das 	[GCC_PCIE_NOC_SAFETY_CLK] = &gcc_pcie_noc_safety_clk.clkr,
1775*a4f780cdSTaniya Das 	[GCC_PCIE_NOC_SAFETY_CLK_SRC] = &gcc_pcie_noc_safety_clk_src.clkr,
1776*a4f780cdSTaniya Das 	[GCC_PCIE_NOC_SLAVE_AXI_CLK] = &gcc_pcie_noc_slave_axi_clk.clkr,
1777*a4f780cdSTaniya Das 	[GCC_PCIE_NOC_TSCTR_CLK] = &gcc_pcie_noc_tsctr_clk.clkr,
1778*a4f780cdSTaniya Das 	[GCC_PCIE_NOC_XO_CLK] = &gcc_pcie_noc_xo_clk.clkr,
1779*a4f780cdSTaniya Das 	[GCC_PDM2_CLK] = &gcc_pdm2_clk.clkr,
1780*a4f780cdSTaniya Das 	[GCC_PDM2_CLK_SRC] = &gcc_pdm2_clk_src.clkr,
1781*a4f780cdSTaniya Das 	[GCC_PDM_AHB_CLK] = &gcc_pdm_ahb_clk.clkr,
1782*a4f780cdSTaniya Das 	[GCC_PDM_XO4_CLK] = &gcc_pdm_xo4_clk.clkr,
1783*a4f780cdSTaniya Das 	[GCC_QUPV3_WRAP3_CORE_2X_CLK] = &gcc_qupv3_wrap3_core_2x_clk.clkr,
1784*a4f780cdSTaniya Das 	[GCC_QUPV3_WRAP3_CORE_CLK] = &gcc_qupv3_wrap3_core_clk.clkr,
1785*a4f780cdSTaniya Das 	[GCC_QUPV3_WRAP3_M_CLK] = &gcc_qupv3_wrap3_m_clk.clkr,
1786*a4f780cdSTaniya Das 	[GCC_QUPV3_WRAP3_QSPI_REF_CLK] = &gcc_qupv3_wrap3_qspi_ref_clk.clkr,
1787*a4f780cdSTaniya Das 	[GCC_QUPV3_WRAP3_QSPI_REF_CLK_SRC] = &gcc_qupv3_wrap3_qspi_ref_clk_src.clkr,
1788*a4f780cdSTaniya Das 	[GCC_QUPV3_WRAP3_S0_CLK] = &gcc_qupv3_wrap3_s0_clk.clkr,
1789*a4f780cdSTaniya Das 	[GCC_QUPV3_WRAP3_S0_CLK_SRC] = &gcc_qupv3_wrap3_s0_clk_src.clkr,
1790*a4f780cdSTaniya Das 	[GCC_QUPV3_WRAP3_S_AHB_CLK] = &gcc_qupv3_wrap3_s_ahb_clk.clkr,
1791*a4f780cdSTaniya Das 	[GCC_SMMU_PCIE_QTC_VOTE_CLK] = &gcc_smmu_pcie_qtc_vote_clk.clkr,
1792*a4f780cdSTaniya Das };
1793*a4f780cdSTaniya Das 
1794*a4f780cdSTaniya Das static struct gdsc *gcc_nord_gdscs[] = {
1795*a4f780cdSTaniya Das 	[GCC_PCIE_A_GDSC] = &gcc_pcie_a_gdsc,
1796*a4f780cdSTaniya Das 	[GCC_PCIE_A_PHY_GDSC] = &gcc_pcie_a_phy_gdsc,
1797*a4f780cdSTaniya Das 	[GCC_PCIE_B_GDSC] = &gcc_pcie_b_gdsc,
1798*a4f780cdSTaniya Das 	[GCC_PCIE_B_PHY_GDSC] = &gcc_pcie_b_phy_gdsc,
1799*a4f780cdSTaniya Das 	[GCC_PCIE_C_GDSC] = &gcc_pcie_c_gdsc,
1800*a4f780cdSTaniya Das 	[GCC_PCIE_C_PHY_GDSC] = &gcc_pcie_c_phy_gdsc,
1801*a4f780cdSTaniya Das 	[GCC_PCIE_D_GDSC] = &gcc_pcie_d_gdsc,
1802*a4f780cdSTaniya Das 	[GCC_PCIE_D_PHY_GDSC] = &gcc_pcie_d_phy_gdsc,
1803*a4f780cdSTaniya Das 	[GCC_PCIE_NOC_GDSC] = &gcc_pcie_noc_gdsc,
1804*a4f780cdSTaniya Das };
1805*a4f780cdSTaniya Das 
1806*a4f780cdSTaniya Das static const struct qcom_reset_map gcc_nord_resets[] = {
1807*a4f780cdSTaniya Das 	[GCC_PCIE_A_BCR] = { 0x49000 },
1808*a4f780cdSTaniya Das 	[GCC_PCIE_A_LINK_DOWN_BCR] = { 0xb9000 },
1809*a4f780cdSTaniya Das 	[GCC_PCIE_A_NOCSR_COM_PHY_BCR] = { 0xb900c },
1810*a4f780cdSTaniya Das 	[GCC_PCIE_A_PHY_BCR] = { 0x4d000 },
1811*a4f780cdSTaniya Das 	[GCC_PCIE_A_PHY_CFG_AHB_BCR] = { 0xb9014 },
1812*a4f780cdSTaniya Das 	[GCC_PCIE_A_PHY_COM_BCR] = { 0xb9018 },
1813*a4f780cdSTaniya Das 	[GCC_PCIE_A_PHY_NOCSR_COM_PHY_BCR] = { 0xb9010 },
1814*a4f780cdSTaniya Das 	[GCC_PCIE_B_BCR] = { 0x4a000 },
1815*a4f780cdSTaniya Das 	[GCC_PCIE_B_LINK_DOWN_BCR] = { 0xba000 },
1816*a4f780cdSTaniya Das 	[GCC_PCIE_B_NOCSR_COM_PHY_BCR] = { 0xba008 },
1817*a4f780cdSTaniya Das 	[GCC_PCIE_B_PHY_BCR] = { 0x4e000 },
1818*a4f780cdSTaniya Das 	[GCC_PCIE_B_PHY_CFG_AHB_BCR] = { 0xba010 },
1819*a4f780cdSTaniya Das 	[GCC_PCIE_B_PHY_COM_BCR] = { 0xba014 },
1820*a4f780cdSTaniya Das 	[GCC_PCIE_B_PHY_NOCSR_COM_PHY_BCR] = { 0xba00c },
1821*a4f780cdSTaniya Das 	[GCC_PCIE_C_BCR] = { 0x4b000 },
1822*a4f780cdSTaniya Das 	[GCC_PCIE_C_LINK_DOWN_BCR] = { 0xbb07c },
1823*a4f780cdSTaniya Das 	[GCC_PCIE_C_NOCSR_COM_PHY_BCR] = { 0xbb084 },
1824*a4f780cdSTaniya Das 	[GCC_PCIE_C_PHY_BCR] = { 0x4f000 },
1825*a4f780cdSTaniya Das 	[GCC_PCIE_C_PHY_CFG_AHB_BCR] = { 0xbb08c },
1826*a4f780cdSTaniya Das 	[GCC_PCIE_C_PHY_COM_BCR] = { 0xbb090 },
1827*a4f780cdSTaniya Das 	[GCC_PCIE_C_PHY_NOCSR_COM_PHY_BCR] = { 0xbb088 },
1828*a4f780cdSTaniya Das 	[GCC_PCIE_D_BCR] = { 0x4c000 },
1829*a4f780cdSTaniya Das 	[GCC_PCIE_D_LINK_DOWN_BCR] = { 0xbc000 },
1830*a4f780cdSTaniya Das 	[GCC_PCIE_D_NOCSR_COM_PHY_BCR] = { 0xbc008 },
1831*a4f780cdSTaniya Das 	[GCC_PCIE_D_PHY_BCR] = { 0x50000 },
1832*a4f780cdSTaniya Das 	[GCC_PCIE_D_PHY_CFG_AHB_BCR] = { 0xbc010 },
1833*a4f780cdSTaniya Das 	[GCC_PCIE_D_PHY_COM_BCR] = { 0xbc014 },
1834*a4f780cdSTaniya Das 	[GCC_PCIE_D_PHY_NOCSR_COM_PHY_BCR] = { 0xbc00c },
1835*a4f780cdSTaniya Das 	[GCC_PCIE_NOC_BCR] = { 0x52000 },
1836*a4f780cdSTaniya Das 	[GCC_PDM_BCR] = { 0x1a000 },
1837*a4f780cdSTaniya Das 	[GCC_QUPV3_WRAPPER_3_BCR] = { 0x23000 },
1838*a4f780cdSTaniya Das 	[GCC_TCSR_PCIE_BCR] = { 0xb901c },
1839*a4f780cdSTaniya Das };
1840*a4f780cdSTaniya Das 
1841*a4f780cdSTaniya Das static const struct clk_rcg_dfs_data gcc_nord_dfs_clocks[] = {
1842*a4f780cdSTaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap3_qspi_ref_clk_src),
1843*a4f780cdSTaniya Das };
1844*a4f780cdSTaniya Das 
1845*a4f780cdSTaniya Das static const struct regmap_config gcc_nord_regmap_config = {
1846*a4f780cdSTaniya Das 	.reg_bits = 32,
1847*a4f780cdSTaniya Das 	.reg_stride = 4,
1848*a4f780cdSTaniya Das 	.val_bits = 32,
1849*a4f780cdSTaniya Das 	.max_register = 0x1f41f0,
1850*a4f780cdSTaniya Das 	.fast_io = true,
1851*a4f780cdSTaniya Das };
1852*a4f780cdSTaniya Das 
1853*a4f780cdSTaniya Das static struct qcom_cc_driver_data gcc_nord_driver_data = {
1854*a4f780cdSTaniya Das 	.dfs_rcgs = gcc_nord_dfs_clocks,
1855*a4f780cdSTaniya Das 	.num_dfs_rcgs = ARRAY_SIZE(gcc_nord_dfs_clocks),
1856*a4f780cdSTaniya Das };
1857*a4f780cdSTaniya Das 
1858*a4f780cdSTaniya Das static const struct qcom_cc_desc gcc_nord_desc = {
1859*a4f780cdSTaniya Das 	.config = &gcc_nord_regmap_config,
1860*a4f780cdSTaniya Das 	.clks = gcc_nord_clocks,
1861*a4f780cdSTaniya Das 	.num_clks = ARRAY_SIZE(gcc_nord_clocks),
1862*a4f780cdSTaniya Das 	.resets = gcc_nord_resets,
1863*a4f780cdSTaniya Das 	.num_resets = ARRAY_SIZE(gcc_nord_resets),
1864*a4f780cdSTaniya Das 	.gdscs = gcc_nord_gdscs,
1865*a4f780cdSTaniya Das 	.num_gdscs = ARRAY_SIZE(gcc_nord_gdscs),
1866*a4f780cdSTaniya Das 	.use_rpm = true,
1867*a4f780cdSTaniya Das 	.driver_data = &gcc_nord_driver_data,
1868*a4f780cdSTaniya Das };
1869*a4f780cdSTaniya Das 
1870*a4f780cdSTaniya Das static const struct of_device_id gcc_nord_match_table[] = {
1871*a4f780cdSTaniya Das 	{ .compatible = "qcom,nord-gcc" },
1872*a4f780cdSTaniya Das 	{ }
1873*a4f780cdSTaniya Das };
1874*a4f780cdSTaniya Das MODULE_DEVICE_TABLE(of, gcc_nord_match_table);
1875*a4f780cdSTaniya Das 
1876*a4f780cdSTaniya Das static int gcc_nord_probe(struct platform_device *pdev)
1877*a4f780cdSTaniya Das {
1878*a4f780cdSTaniya Das 	return qcom_cc_probe(pdev, &gcc_nord_desc);
1879*a4f780cdSTaniya Das }
1880*a4f780cdSTaniya Das 
1881*a4f780cdSTaniya Das static struct platform_driver gcc_nord_driver = {
1882*a4f780cdSTaniya Das 	.probe = gcc_nord_probe,
1883*a4f780cdSTaniya Das 	.driver = {
1884*a4f780cdSTaniya Das 		.name = "gcc-nord",
1885*a4f780cdSTaniya Das 		.of_match_table = gcc_nord_match_table,
1886*a4f780cdSTaniya Das 	},
1887*a4f780cdSTaniya Das };
1888*a4f780cdSTaniya Das 
1889*a4f780cdSTaniya Das static int __init gcc_nord_init(void)
1890*a4f780cdSTaniya Das {
1891*a4f780cdSTaniya Das 	return platform_driver_register(&gcc_nord_driver);
1892*a4f780cdSTaniya Das }
1893*a4f780cdSTaniya Das subsys_initcall(gcc_nord_init);
1894*a4f780cdSTaniya Das 
1895*a4f780cdSTaniya Das static void __exit gcc_nord_exit(void)
1896*a4f780cdSTaniya Das {
1897*a4f780cdSTaniya Das 	platform_driver_unregister(&gcc_nord_driver);
1898*a4f780cdSTaniya Das }
1899*a4f780cdSTaniya Das module_exit(gcc_nord_exit);
1900*a4f780cdSTaniya Das 
1901*a4f780cdSTaniya Das MODULE_DESCRIPTION("QTI GCC NORD Driver");
1902*a4f780cdSTaniya Das MODULE_LICENSE("GPL");
1903