xref: /openbmc/linux/drivers/clk/qcom/gcc-sc7280.c (revision 698f3070)
1a3cc0921STaniya Das // SPDX-License-Identifier: GPL-2.0-only
2a3cc0921STaniya Das /*
3a3cc0921STaniya Das  * Copyright (c) 2020-2021, The Linux Foundation. All rights reserved.
4a3cc0921STaniya Das  */
5a3cc0921STaniya Das 
6a3cc0921STaniya Das #include <linux/clk-provider.h>
7a3cc0921STaniya Das #include <linux/kernel.h>
8a3cc0921STaniya Das #include <linux/module.h>
9a3cc0921STaniya Das #include <linux/of.h>
10a96cbb14SRob Herring #include <linux/platform_device.h>
11a3cc0921STaniya Das #include <linux/regmap.h>
12a3cc0921STaniya Das 
13a3cc0921STaniya Das #include <dt-bindings/clock/qcom,gcc-sc7280.h>
14a3cc0921STaniya Das 
15a3cc0921STaniya Das #include "clk-alpha-pll.h"
16a3cc0921STaniya Das #include "clk-branch.h"
17a3cc0921STaniya Das #include "clk-rcg.h"
18a3cc0921STaniya Das #include "clk-regmap-divider.h"
19a3cc0921STaniya Das #include "clk-regmap-mux.h"
20553d12b2SDmitry Baryshkov #include "clk-regmap-phy-mux.h"
21a3cc0921STaniya Das #include "common.h"
22a3cc0921STaniya Das #include "gdsc.h"
23a3cc0921STaniya Das #include "reset.h"
24a3cc0921STaniya Das 
25a3cc0921STaniya Das enum {
26a3cc0921STaniya Das 	P_BI_TCXO,
27a3cc0921STaniya Das 	P_GCC_GPLL0_OUT_EVEN,
28a3cc0921STaniya Das 	P_GCC_GPLL0_OUT_MAIN,
29a3cc0921STaniya Das 	P_GCC_GPLL0_OUT_ODD,
30a3cc0921STaniya Das 	P_GCC_GPLL10_OUT_MAIN,
31a3cc0921STaniya Das 	P_GCC_GPLL4_OUT_MAIN,
32a3cc0921STaniya Das 	P_GCC_GPLL9_OUT_MAIN,
33a3cc0921STaniya Das 	P_PCIE_0_PIPE_CLK,
34a3cc0921STaniya Das 	P_PCIE_1_PIPE_CLK,
35a3cc0921STaniya Das 	P_SLEEP_CLK,
36a3cc0921STaniya Das 	P_UFS_PHY_RX_SYMBOL_0_CLK,
37a3cc0921STaniya Das 	P_UFS_PHY_RX_SYMBOL_1_CLK,
38a3cc0921STaniya Das 	P_UFS_PHY_TX_SYMBOL_0_CLK,
39a3cc0921STaniya Das 	P_USB3_PHY_WRAPPER_GCC_USB30_PIPE_CLK,
40a3cc0921STaniya Das 	P_GCC_MSS_GPLL0_MAIN_DIV_CLK,
41a3cc0921STaniya Das };
42a3cc0921STaniya Das 
43a3cc0921STaniya Das static struct clk_alpha_pll gcc_gpll0 = {
44a3cc0921STaniya Das 	.offset = 0x0,
45a3cc0921STaniya Das 	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID],
46a3cc0921STaniya Das 	.clkr = {
47a3cc0921STaniya Das 		.enable_reg = 0x52010,
48a3cc0921STaniya Das 		.enable_mask = BIT(0),
49a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
50a3cc0921STaniya Das 			.name = "gcc_gpll0",
51a3cc0921STaniya Das 			.parent_data = &(const struct clk_parent_data){
52a3cc0921STaniya Das 				.fw_name = "bi_tcxo",
53a3cc0921STaniya Das 			},
54a3cc0921STaniya Das 			.num_parents = 1,
55a3cc0921STaniya Das 			.ops = &clk_alpha_pll_fixed_lucid_ops,
56a3cc0921STaniya Das 		},
57a3cc0921STaniya Das 	},
58a3cc0921STaniya Das };
59a3cc0921STaniya Das 
60a3cc0921STaniya Das static const struct clk_div_table post_div_table_gcc_gpll0_out_even[] = {
61a3cc0921STaniya Das 	{ 0x1, 2 },
62a3cc0921STaniya Das 	{ }
63a3cc0921STaniya Das };
64a3cc0921STaniya Das 
65a3cc0921STaniya Das static struct clk_alpha_pll_postdiv gcc_gpll0_out_even = {
66a3cc0921STaniya Das 	.offset = 0x0,
67a3cc0921STaniya Das 	.post_div_shift = 8,
68a3cc0921STaniya Das 	.post_div_table = post_div_table_gcc_gpll0_out_even,
69a3cc0921STaniya Das 	.num_post_div = ARRAY_SIZE(post_div_table_gcc_gpll0_out_even),
70a3cc0921STaniya Das 	.width = 4,
71a3cc0921STaniya Das 	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID],
72a3cc0921STaniya Das 	.clkr.hw.init = &(struct clk_init_data){
73a3cc0921STaniya Das 		.name = "gcc_gpll0_out_even",
7453ec3b32SDmitry Baryshkov 		.parent_hws = (const struct clk_hw*[]){
7553ec3b32SDmitry Baryshkov 			&gcc_gpll0.clkr.hw,
76a3cc0921STaniya Das 		},
77a3cc0921STaniya Das 		.num_parents = 1,
78a3cc0921STaniya Das 		.ops = &clk_alpha_pll_postdiv_lucid_ops,
79a3cc0921STaniya Das 	},
80a3cc0921STaniya Das };
81a3cc0921STaniya Das 
82a3cc0921STaniya Das static const struct clk_div_table post_div_table_gcc_gpll0_out_odd[] = {
83a3cc0921STaniya Das 	{ 0x3, 3 },
84a3cc0921STaniya Das 	{ }
85a3cc0921STaniya Das };
86a3cc0921STaniya Das 
87a3cc0921STaniya Das static struct clk_alpha_pll_postdiv gcc_gpll0_out_odd = {
88a3cc0921STaniya Das 	.offset = 0x0,
89a3cc0921STaniya Das 	.post_div_shift = 12,
90a3cc0921STaniya Das 	.post_div_table = post_div_table_gcc_gpll0_out_odd,
91a3cc0921STaniya Das 	.num_post_div = ARRAY_SIZE(post_div_table_gcc_gpll0_out_odd),
92a3cc0921STaniya Das 	.width = 4,
93a3cc0921STaniya Das 	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID],
94a3cc0921STaniya Das 	.clkr.hw.init = &(struct clk_init_data){
95a3cc0921STaniya Das 		.name = "gcc_gpll0_out_odd",
9653ec3b32SDmitry Baryshkov 		.parent_hws = (const struct clk_hw*[]){
9753ec3b32SDmitry Baryshkov 			&gcc_gpll0.clkr.hw,
98a3cc0921STaniya Das 		},
99a3cc0921STaniya Das 		.num_parents = 1,
100a3cc0921STaniya Das 		.ops = &clk_alpha_pll_postdiv_lucid_ops,
101a3cc0921STaniya Das 	},
102a3cc0921STaniya Das };
103a3cc0921STaniya Das 
104a3cc0921STaniya Das static struct clk_alpha_pll gcc_gpll1 = {
105a3cc0921STaniya Das 	.offset = 0x1000,
106a3cc0921STaniya Das 	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID],
107a3cc0921STaniya Das 	.clkr = {
108a3cc0921STaniya Das 		.enable_reg = 0x52010,
109a3cc0921STaniya Das 		.enable_mask = BIT(1),
110a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
111a3cc0921STaniya Das 			.name = "gcc_gpll1",
112a3cc0921STaniya Das 			.parent_data = &(const struct clk_parent_data){
113a3cc0921STaniya Das 				.fw_name = "bi_tcxo",
114a3cc0921STaniya Das 			},
115a3cc0921STaniya Das 			.num_parents = 1,
116a3cc0921STaniya Das 			.ops = &clk_alpha_pll_fixed_lucid_ops,
117a3cc0921STaniya Das 		},
118a3cc0921STaniya Das 	},
119a3cc0921STaniya Das };
120a3cc0921STaniya Das 
121a3cc0921STaniya Das static struct clk_alpha_pll gcc_gpll10 = {
122a3cc0921STaniya Das 	.offset = 0x1e000,
123a3cc0921STaniya Das 	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID],
124a3cc0921STaniya Das 	.clkr = {
125a3cc0921STaniya Das 		.enable_reg = 0x52010,
126a3cc0921STaniya Das 		.enable_mask = BIT(9),
127a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
128a3cc0921STaniya Das 			.name = "gcc_gpll10",
129a3cc0921STaniya Das 			.parent_data = &(const struct clk_parent_data){
130a3cc0921STaniya Das 				.fw_name = "bi_tcxo",
131a3cc0921STaniya Das 			},
132a3cc0921STaniya Das 			.num_parents = 1,
133a3cc0921STaniya Das 			.ops = &clk_alpha_pll_fixed_lucid_ops,
134a3cc0921STaniya Das 		},
135a3cc0921STaniya Das 	},
136a3cc0921STaniya Das };
137a3cc0921STaniya Das 
138a3cc0921STaniya Das static struct clk_alpha_pll gcc_gpll4 = {
139a3cc0921STaniya Das 	.offset = 0x76000,
140a3cc0921STaniya Das 	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID],
141a3cc0921STaniya Das 	.clkr = {
142a3cc0921STaniya Das 		.enable_reg = 0x52010,
143a3cc0921STaniya Das 		.enable_mask = BIT(4),
144a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
145a3cc0921STaniya Das 			.name = "gcc_gpll4",
146a3cc0921STaniya Das 			.parent_data = &(const struct clk_parent_data){
147a3cc0921STaniya Das 				.fw_name = "bi_tcxo",
148a3cc0921STaniya Das 			},
149a3cc0921STaniya Das 			.num_parents = 1,
150a3cc0921STaniya Das 			.ops = &clk_alpha_pll_fixed_lucid_ops,
151a3cc0921STaniya Das 		},
152a3cc0921STaniya Das 	},
153a3cc0921STaniya Das };
154a3cc0921STaniya Das 
155a3cc0921STaniya Das static struct clk_alpha_pll gcc_gpll9 = {
156a3cc0921STaniya Das 	.offset = 0x1c000,
157a3cc0921STaniya Das 	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID],
158a3cc0921STaniya Das 	.clkr = {
159a3cc0921STaniya Das 		.enable_reg = 0x52010,
160a3cc0921STaniya Das 		.enable_mask = BIT(8),
161a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
162a3cc0921STaniya Das 			.name = "gcc_gpll9",
163a3cc0921STaniya Das 			.parent_data = &(const struct clk_parent_data){
164a3cc0921STaniya Das 				.fw_name = "bi_tcxo",
165a3cc0921STaniya Das 			},
166a3cc0921STaniya Das 			.num_parents = 1,
167a3cc0921STaniya Das 			.ops = &clk_alpha_pll_fixed_lucid_ops,
168a3cc0921STaniya Das 		},
169a3cc0921STaniya Das 	},
170a3cc0921STaniya Das };
171a3cc0921STaniya Das 
172a3cc0921STaniya Das static struct clk_branch gcc_mss_gpll0_main_div_clk_src = {
173a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_DELAY,
174a3cc0921STaniya Das 	.clkr = {
175a3cc0921STaniya Das 		.enable_reg = 0x52000,
176a3cc0921STaniya Das 		.enable_mask = BIT(17),
177a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
178a3cc0921STaniya Das 			.name = "gcc_mss_gpll0_main_div_clk_src",
17953ec3b32SDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
18053ec3b32SDmitry Baryshkov 				&gcc_gpll0_out_even.clkr.hw,
181a3cc0921STaniya Das 			},
182a3cc0921STaniya Das 			.num_parents = 1,
183a3cc0921STaniya Das 			.flags = CLK_SET_RATE_PARENT,
184a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
185a3cc0921STaniya Das 		},
186a3cc0921STaniya Das 	},
187a3cc0921STaniya Das };
188a3cc0921STaniya Das 
189a3cc0921STaniya Das static const struct parent_map gcc_parent_map_0[] = {
190a3cc0921STaniya Das 	{ P_BI_TCXO, 0 },
191a3cc0921STaniya Das 	{ P_GCC_GPLL0_OUT_MAIN, 1 },
192a3cc0921STaniya Das 	{ P_GCC_GPLL0_OUT_EVEN, 6 },
193a3cc0921STaniya Das };
194a3cc0921STaniya Das 
195a3cc0921STaniya Das static const struct clk_parent_data gcc_parent_data_0[] = {
196a3cc0921STaniya Das 	{ .fw_name = "bi_tcxo" },
197a3cc0921STaniya Das 	{ .hw = &gcc_gpll0.clkr.hw },
198a3cc0921STaniya Das 	{ .hw = &gcc_gpll0_out_even.clkr.hw },
199a3cc0921STaniya Das };
200a3cc0921STaniya Das 
201a3cc0921STaniya Das static const struct parent_map gcc_parent_map_1[] = {
202a3cc0921STaniya Das 	{ P_BI_TCXO, 0 },
203a3cc0921STaniya Das 	{ P_GCC_GPLL0_OUT_MAIN, 1 },
204a3cc0921STaniya Das 	{ P_GCC_GPLL0_OUT_ODD, 3 },
205a3cc0921STaniya Das 	{ P_GCC_GPLL0_OUT_EVEN, 6 },
206a3cc0921STaniya Das };
207a3cc0921STaniya Das 
208a3cc0921STaniya Das static const struct clk_parent_data gcc_parent_data_1[] = {
209a3cc0921STaniya Das 	{ .fw_name = "bi_tcxo" },
210a3cc0921STaniya Das 	{ .hw = &gcc_gpll0.clkr.hw },
211a3cc0921STaniya Das 	{ .hw = &gcc_gpll0_out_odd.clkr.hw },
212a3cc0921STaniya Das 	{ .hw = &gcc_gpll0_out_even.clkr.hw },
213a3cc0921STaniya Das };
214a3cc0921STaniya Das 
215a3cc0921STaniya Das static const struct parent_map gcc_parent_map_2[] = {
216a3cc0921STaniya Das 	{ P_BI_TCXO, 0 },
217a3cc0921STaniya Das 	{ P_SLEEP_CLK, 5 },
218a3cc0921STaniya Das };
219a3cc0921STaniya Das 
220a3cc0921STaniya Das static const struct clk_parent_data gcc_parent_data_2[] = {
221a3cc0921STaniya Das 	{ .fw_name = "bi_tcxo" },
222a3cc0921STaniya Das 	{ .fw_name = "sleep_clk" },
223a3cc0921STaniya Das };
224a3cc0921STaniya Das 
225a3cc0921STaniya Das static const struct parent_map gcc_parent_map_3[] = {
226a3cc0921STaniya Das 	{ P_BI_TCXO, 0 },
227a3cc0921STaniya Das };
228a3cc0921STaniya Das 
229a3cc0921STaniya Das static const struct clk_parent_data gcc_parent_data_3[] = {
230a3cc0921STaniya Das 	{ .fw_name = "bi_tcxo" },
231a3cc0921STaniya Das };
232a3cc0921STaniya Das 
233a3cc0921STaniya Das static const struct parent_map gcc_parent_map_4[] = {
234a3cc0921STaniya Das 	{ P_BI_TCXO, 0 },
235a3cc0921STaniya Das 	{ P_GCC_GPLL0_OUT_MAIN, 1 },
236a3cc0921STaniya Das 	{ P_GCC_GPLL0_OUT_ODD, 3 },
237a3cc0921STaniya Das 	{ P_SLEEP_CLK, 5 },
238a3cc0921STaniya Das 	{ P_GCC_GPLL0_OUT_EVEN, 6 },
239a3cc0921STaniya Das };
240a3cc0921STaniya Das 
241a3cc0921STaniya Das static const struct clk_parent_data gcc_parent_data_4[] = {
242a3cc0921STaniya Das 	{ .fw_name = "bi_tcxo" },
243a3cc0921STaniya Das 	{ .hw = &gcc_gpll0.clkr.hw },
244a3cc0921STaniya Das 	{ .hw = &gcc_gpll0_out_odd.clkr.hw },
245a3cc0921STaniya Das 	{ .fw_name = "sleep_clk" },
246a3cc0921STaniya Das 	{ .hw = &gcc_gpll0_out_even.clkr.hw },
247a3cc0921STaniya Das };
248a3cc0921STaniya Das 
249a3cc0921STaniya Das static const struct parent_map gcc_parent_map_5[] = {
250a3cc0921STaniya Das 	{ P_BI_TCXO, 0 },
251a3cc0921STaniya Das 	{ P_GCC_GPLL0_OUT_EVEN, 6 },
252a3cc0921STaniya Das };
253a3cc0921STaniya Das 
254a3cc0921STaniya Das static const struct clk_parent_data gcc_parent_data_5[] = {
255a3cc0921STaniya Das 	{ .fw_name = "bi_tcxo" },
256a3cc0921STaniya Das 	{ .hw = &gcc_gpll0_out_even.clkr.hw },
257a3cc0921STaniya Das };
258a3cc0921STaniya Das 
259a3cc0921STaniya Das static const struct parent_map gcc_parent_map_8[] = {
260a3cc0921STaniya Das 	{ P_BI_TCXO, 0 },
261a3cc0921STaniya Das 	{ P_GCC_GPLL0_OUT_MAIN, 1 },
262a3cc0921STaniya Das 	{ P_GCC_GPLL0_OUT_ODD, 3 },
263a3cc0921STaniya Das 	{ P_GCC_GPLL10_OUT_MAIN, 5 },
264a3cc0921STaniya Das 	{ P_GCC_GPLL0_OUT_EVEN, 6 },
265a3cc0921STaniya Das };
266a3cc0921STaniya Das 
267a3cc0921STaniya Das static const struct clk_parent_data gcc_parent_data_8[] = {
268a3cc0921STaniya Das 	{ .fw_name = "bi_tcxo" },
269a3cc0921STaniya Das 	{ .hw = &gcc_gpll0.clkr.hw },
270a3cc0921STaniya Das 	{ .hw = &gcc_gpll0_out_odd.clkr.hw },
271a3cc0921STaniya Das 	{ .hw = &gcc_gpll10.clkr.hw },
272a3cc0921STaniya Das 	{ .hw = &gcc_gpll0_out_even.clkr.hw },
273a3cc0921STaniya Das };
274a3cc0921STaniya Das 
275a3cc0921STaniya Das static const struct parent_map gcc_parent_map_9[] = {
276a3cc0921STaniya Das 	{ P_BI_TCXO, 0 },
277a3cc0921STaniya Das 	{ P_GCC_GPLL0_OUT_MAIN, 1 },
278a3cc0921STaniya Das 	{ P_GCC_GPLL9_OUT_MAIN, 2 },
279a3cc0921STaniya Das 	{ P_GCC_GPLL0_OUT_ODD, 3 },
280a3cc0921STaniya Das 	{ P_GCC_GPLL4_OUT_MAIN, 5 },
281a3cc0921STaniya Das 	{ P_GCC_GPLL0_OUT_EVEN, 6 },
282a3cc0921STaniya Das };
283a3cc0921STaniya Das 
284a3cc0921STaniya Das static const struct clk_parent_data gcc_parent_data_9[] = {
285a3cc0921STaniya Das 	{ .fw_name = "bi_tcxo" },
286a3cc0921STaniya Das 	{ .hw = &gcc_gpll0.clkr.hw },
287a3cc0921STaniya Das 	{ .hw = &gcc_gpll9.clkr.hw },
288a3cc0921STaniya Das 	{ .hw = &gcc_gpll0_out_odd.clkr.hw },
289a3cc0921STaniya Das 	{ .hw = &gcc_gpll4.clkr.hw },
290a3cc0921STaniya Das 	{ .hw = &gcc_gpll0_out_even.clkr.hw },
291a3cc0921STaniya Das };
292a3cc0921STaniya Das 
293a3cc0921STaniya Das static const struct parent_map gcc_parent_map_10[] = {
294a3cc0921STaniya Das 	{ P_UFS_PHY_RX_SYMBOL_0_CLK, 0 },
295a3cc0921STaniya Das 	{ P_BI_TCXO, 2 },
296a3cc0921STaniya Das };
297a3cc0921STaniya Das 
298a3cc0921STaniya Das static const struct clk_parent_data gcc_parent_data_10[] = {
299a3cc0921STaniya Das 	{ .fw_name = "ufs_phy_rx_symbol_0_clk" },
300a3cc0921STaniya Das 	{ .fw_name = "bi_tcxo" },
301a3cc0921STaniya Das };
302a3cc0921STaniya Das 
303a3cc0921STaniya Das static const struct parent_map gcc_parent_map_11[] = {
304a3cc0921STaniya Das 	{ P_UFS_PHY_RX_SYMBOL_1_CLK, 0 },
305a3cc0921STaniya Das 	{ P_BI_TCXO, 2 },
306a3cc0921STaniya Das };
307a3cc0921STaniya Das 
308a3cc0921STaniya Das static const struct clk_parent_data gcc_parent_data_11[] = {
309a3cc0921STaniya Das 	{ .fw_name = "ufs_phy_rx_symbol_1_clk" },
310a3cc0921STaniya Das 	{ .fw_name = "bi_tcxo" },
311a3cc0921STaniya Das };
312a3cc0921STaniya Das 
313a3cc0921STaniya Das static const struct parent_map gcc_parent_map_12[] = {
314a3cc0921STaniya Das 	{ P_UFS_PHY_TX_SYMBOL_0_CLK, 0 },
315a3cc0921STaniya Das 	{ P_BI_TCXO, 2 },
316a3cc0921STaniya Das };
317a3cc0921STaniya Das 
318a3cc0921STaniya Das static const struct clk_parent_data gcc_parent_data_12[] = {
319a3cc0921STaniya Das 	{ .fw_name = "ufs_phy_tx_symbol_0_clk" },
320a3cc0921STaniya Das 	{ .fw_name = "bi_tcxo" },
321a3cc0921STaniya Das };
322a3cc0921STaniya Das 
323a3cc0921STaniya Das static const struct parent_map gcc_parent_map_13[] = {
324a3cc0921STaniya Das 	{ P_USB3_PHY_WRAPPER_GCC_USB30_PIPE_CLK, 0 },
325a3cc0921STaniya Das 	{ P_BI_TCXO, 2 },
326a3cc0921STaniya Das };
327a3cc0921STaniya Das 
328a3cc0921STaniya Das static const struct clk_parent_data gcc_parent_data_13[] = {
329a3cc0921STaniya Das 	{ .fw_name = "usb3_phy_wrapper_gcc_usb30_pipe_clk" },
330a3cc0921STaniya Das 	{ .fw_name = "bi_tcxo" },
331a3cc0921STaniya Das };
332a3cc0921STaniya Das 
333a3cc0921STaniya Das static const struct parent_map gcc_parent_map_14[] = {
334a3cc0921STaniya Das 	{ P_USB3_PHY_WRAPPER_GCC_USB30_PIPE_CLK, 0 },
335a3cc0921STaniya Das 	{ P_BI_TCXO, 2 },
336a3cc0921STaniya Das };
337a3cc0921STaniya Das 
338a3cc0921STaniya Das static const struct clk_parent_data gcc_parent_data_14[] = {
339a3cc0921STaniya Das 	{ .fw_name = "usb3_phy_wrapper_gcc_usb30_pipe_clk" },
340a3cc0921STaniya Das 	{ .fw_name = "bi_tcxo" },
341a3cc0921STaniya Das };
342a3cc0921STaniya Das 
343a3cc0921STaniya Das static const struct parent_map gcc_parent_map_15[] = {
344a3cc0921STaniya Das 	{ P_BI_TCXO, 0 },
345a3cc0921STaniya Das 	{ P_GCC_MSS_GPLL0_MAIN_DIV_CLK, 1 },
346a3cc0921STaniya Das };
347a3cc0921STaniya Das 
348a3cc0921STaniya Das static const struct clk_parent_data gcc_parent_data_15[] = {
349a3cc0921STaniya Das 	{ .fw_name = "bi_tcxo" },
350a3cc0921STaniya Das 	{ .hw = &gcc_mss_gpll0_main_div_clk_src.clkr.hw },
351a3cc0921STaniya Das };
352a3cc0921STaniya Das 
353553d12b2SDmitry Baryshkov static struct clk_regmap_phy_mux gcc_pcie_0_pipe_clk_src = {
354a3cc0921STaniya Das 	.reg = 0x6b054,
355a3cc0921STaniya Das 	.clkr = {
356a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
357a3cc0921STaniya Das 			.name = "gcc_pcie_0_pipe_clk_src",
358553d12b2SDmitry Baryshkov 			.parent_data = &(const struct clk_parent_data){
359553d12b2SDmitry Baryshkov 				.fw_name = "pcie_0_pipe_clk",
360553d12b2SDmitry Baryshkov 				.name = "pcie_0_pipe_clk",
361553d12b2SDmitry Baryshkov 			},
362553d12b2SDmitry Baryshkov 			.num_parents = 1,
363553d12b2SDmitry Baryshkov 			.ops = &clk_regmap_phy_mux_ops,
364a3cc0921STaniya Das 		},
365a3cc0921STaniya Das 	},
366a3cc0921STaniya Das };
367a3cc0921STaniya Das 
368553d12b2SDmitry Baryshkov static struct clk_regmap_phy_mux gcc_pcie_1_pipe_clk_src = {
369a3cc0921STaniya Das 	.reg = 0x8d054,
370a3cc0921STaniya Das 	.clkr = {
371a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
372a3cc0921STaniya Das 			.name = "gcc_pcie_1_pipe_clk_src",
373553d12b2SDmitry Baryshkov 			.parent_data = &(const struct clk_parent_data){
374553d12b2SDmitry Baryshkov 				.fw_name = "pcie_1_pipe_clk",
375553d12b2SDmitry Baryshkov 				.name = "pcie_1_pipe_clk",
376553d12b2SDmitry Baryshkov 			},
377553d12b2SDmitry Baryshkov 			.num_parents = 1,
378553d12b2SDmitry Baryshkov 			.ops = &clk_regmap_phy_mux_ops,
379a3cc0921STaniya Das 		},
380a3cc0921STaniya Das 	},
381a3cc0921STaniya Das };
382a3cc0921STaniya Das 
383a3cc0921STaniya Das static struct clk_regmap_mux gcc_ufs_phy_rx_symbol_0_clk_src = {
384a3cc0921STaniya Das 	.reg = 0x77058,
385a3cc0921STaniya Das 	.shift = 0,
386a3cc0921STaniya Das 	.width = 2,
387a3cc0921STaniya Das 	.parent_map = gcc_parent_map_10,
388a3cc0921STaniya Das 	.clkr = {
389a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
390a3cc0921STaniya Das 			.name = "gcc_ufs_phy_rx_symbol_0_clk_src",
391a3cc0921STaniya Das 			.parent_data = gcc_parent_data_10,
392a3cc0921STaniya Das 			.num_parents = ARRAY_SIZE(gcc_parent_data_10),
393a3cc0921STaniya Das 			.ops = &clk_regmap_mux_closest_ops,
394a3cc0921STaniya Das 		},
395a3cc0921STaniya Das 	},
396a3cc0921STaniya Das };
397a3cc0921STaniya Das 
398a3cc0921STaniya Das static struct clk_regmap_mux gcc_ufs_phy_rx_symbol_1_clk_src = {
399a3cc0921STaniya Das 	.reg = 0x770c8,
400a3cc0921STaniya Das 	.shift = 0,
401a3cc0921STaniya Das 	.width = 2,
402a3cc0921STaniya Das 	.parent_map = gcc_parent_map_11,
403a3cc0921STaniya Das 	.clkr = {
404a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
405a3cc0921STaniya Das 			.name = "gcc_ufs_phy_rx_symbol_1_clk_src",
406a3cc0921STaniya Das 			.parent_data = gcc_parent_data_11,
407a3cc0921STaniya Das 			.num_parents = ARRAY_SIZE(gcc_parent_data_11),
408a3cc0921STaniya Das 			.ops = &clk_regmap_mux_closest_ops,
409a3cc0921STaniya Das 		},
410a3cc0921STaniya Das 	},
411a3cc0921STaniya Das };
412a3cc0921STaniya Das 
413a3cc0921STaniya Das static struct clk_regmap_mux gcc_ufs_phy_tx_symbol_0_clk_src = {
414a3cc0921STaniya Das 	.reg = 0x77048,
415a3cc0921STaniya Das 	.shift = 0,
416a3cc0921STaniya Das 	.width = 2,
417a3cc0921STaniya Das 	.parent_map = gcc_parent_map_12,
418a3cc0921STaniya Das 	.clkr = {
419a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
420a3cc0921STaniya Das 			.name = "gcc_ufs_phy_tx_symbol_0_clk_src",
421a3cc0921STaniya Das 			.parent_data = gcc_parent_data_12,
422a3cc0921STaniya Das 			.num_parents = ARRAY_SIZE(gcc_parent_data_12),
423a3cc0921STaniya Das 			.ops = &clk_regmap_mux_closest_ops,
424a3cc0921STaniya Das 		},
425a3cc0921STaniya Das 	},
426a3cc0921STaniya Das };
427a3cc0921STaniya Das 
428a3cc0921STaniya Das static struct clk_regmap_mux gcc_usb3_prim_phy_pipe_clk_src = {
429a3cc0921STaniya Das 	.reg = 0xf060,
430a3cc0921STaniya Das 	.shift = 0,
431a3cc0921STaniya Das 	.width = 2,
432a3cc0921STaniya Das 	.parent_map = gcc_parent_map_13,
433a3cc0921STaniya Das 	.clkr = {
434a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
435a3cc0921STaniya Das 			.name = "gcc_usb3_prim_phy_pipe_clk_src",
436a3cc0921STaniya Das 			.parent_data = gcc_parent_data_13,
437a3cc0921STaniya Das 			.num_parents = ARRAY_SIZE(gcc_parent_data_13),
438a3cc0921STaniya Das 			.ops = &clk_regmap_mux_closest_ops,
439a3cc0921STaniya Das 		},
440a3cc0921STaniya Das 	},
441a3cc0921STaniya Das };
442a3cc0921STaniya Das 
443a3cc0921STaniya Das static struct clk_regmap_mux gcc_usb3_sec_phy_pipe_clk_src = {
444a3cc0921STaniya Das 	.reg = 0x9e060,
445a3cc0921STaniya Das 	.shift = 0,
446a3cc0921STaniya Das 	.width = 2,
447a3cc0921STaniya Das 	.parent_map = gcc_parent_map_14,
448a3cc0921STaniya Das 	.clkr = {
449a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
450a3cc0921STaniya Das 			.name = "gcc_usb3_sec_phy_pipe_clk_src",
451a3cc0921STaniya Das 			.parent_data = gcc_parent_data_14,
452a3cc0921STaniya Das 			.num_parents = ARRAY_SIZE(gcc_parent_data_14),
453a3cc0921STaniya Das 			.ops = &clk_regmap_mux_closest_ops,
454a3cc0921STaniya Das 		},
455a3cc0921STaniya Das 	},
456a3cc0921STaniya Das };
457a3cc0921STaniya Das 
458a3cc0921STaniya Das static const struct freq_tbl ftbl_gcc_gp1_clk_src[] = {
459a3cc0921STaniya Das 	F(50000000, P_GCC_GPLL0_OUT_EVEN, 6, 0, 0),
460a3cc0921STaniya Das 	F(100000000, P_GCC_GPLL0_OUT_EVEN, 3, 0, 0),
461a3cc0921STaniya Das 	F(200000000, P_GCC_GPLL0_OUT_ODD, 1, 0, 0),
462a3cc0921STaniya Das 	{ }
463a3cc0921STaniya Das };
464a3cc0921STaniya Das 
465a3cc0921STaniya Das static struct clk_rcg2 gcc_gp1_clk_src = {
466a3cc0921STaniya Das 	.cmd_rcgr = 0x64004,
467a3cc0921STaniya Das 	.mnd_width = 16,
468a3cc0921STaniya Das 	.hid_width = 5,
469a3cc0921STaniya Das 	.parent_map = gcc_parent_map_4,
470a3cc0921STaniya Das 	.freq_tbl = ftbl_gcc_gp1_clk_src,
471a3cc0921STaniya Das 	.clkr.hw.init = &(struct clk_init_data){
472a3cc0921STaniya Das 		.name = "gcc_gp1_clk_src",
473a3cc0921STaniya Das 		.parent_data = gcc_parent_data_4,
474a3cc0921STaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_4),
475a3cc0921STaniya Das 		.ops = &clk_rcg2_ops,
476a3cc0921STaniya Das 	},
477a3cc0921STaniya Das };
478a3cc0921STaniya Das 
479a3cc0921STaniya Das static struct clk_rcg2 gcc_gp2_clk_src = {
480a3cc0921STaniya Das 	.cmd_rcgr = 0x65004,
481a3cc0921STaniya Das 	.mnd_width = 16,
482a3cc0921STaniya Das 	.hid_width = 5,
483a3cc0921STaniya Das 	.parent_map = gcc_parent_map_4,
484a3cc0921STaniya Das 	.freq_tbl = ftbl_gcc_gp1_clk_src,
485a3cc0921STaniya Das 	.clkr.hw.init = &(struct clk_init_data){
486a3cc0921STaniya Das 		.name = "gcc_gp2_clk_src",
487a3cc0921STaniya Das 		.parent_data = gcc_parent_data_4,
488a3cc0921STaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_4),
489a3cc0921STaniya Das 		.ops = &clk_rcg2_ops,
490a3cc0921STaniya Das 	},
491a3cc0921STaniya Das };
492a3cc0921STaniya Das 
493a3cc0921STaniya Das static struct clk_rcg2 gcc_gp3_clk_src = {
494a3cc0921STaniya Das 	.cmd_rcgr = 0x66004,
495a3cc0921STaniya Das 	.mnd_width = 16,
496a3cc0921STaniya Das 	.hid_width = 5,
497a3cc0921STaniya Das 	.parent_map = gcc_parent_map_4,
498a3cc0921STaniya Das 	.freq_tbl = ftbl_gcc_gp1_clk_src,
499a3cc0921STaniya Das 	.clkr.hw.init = &(struct clk_init_data){
500a3cc0921STaniya Das 		.name = "gcc_gp3_clk_src",
501a3cc0921STaniya Das 		.parent_data = gcc_parent_data_4,
502a3cc0921STaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_4),
503a3cc0921STaniya Das 		.ops = &clk_rcg2_ops,
504a3cc0921STaniya Das 	},
505a3cc0921STaniya Das };
506a3cc0921STaniya Das 
507a3cc0921STaniya Das static const struct freq_tbl ftbl_gcc_pcie_0_aux_clk_src[] = {
508a3cc0921STaniya Das 	F(9600000, P_BI_TCXO, 2, 0, 0),
509a3cc0921STaniya Das 	F(19200000, P_BI_TCXO, 1, 0, 0),
510a3cc0921STaniya Das 	{ }
511a3cc0921STaniya Das };
512a3cc0921STaniya Das 
513a3cc0921STaniya Das static struct clk_rcg2 gcc_pcie_0_aux_clk_src = {
514a3cc0921STaniya Das 	.cmd_rcgr = 0x6b058,
515a3cc0921STaniya Das 	.mnd_width = 16,
516a3cc0921STaniya Das 	.hid_width = 5,
517a3cc0921STaniya Das 	.parent_map = gcc_parent_map_2,
518a3cc0921STaniya Das 	.freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
519a3cc0921STaniya Das 	.clkr.hw.init = &(struct clk_init_data){
520a3cc0921STaniya Das 		.name = "gcc_pcie_0_aux_clk_src",
521a3cc0921STaniya Das 		.parent_data = gcc_parent_data_2,
522a3cc0921STaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_2),
523a3cc0921STaniya Das 		.ops = &clk_rcg2_ops,
524a3cc0921STaniya Das 	},
525a3cc0921STaniya Das };
526a3cc0921STaniya Das 
527a3cc0921STaniya Das static const struct freq_tbl ftbl_gcc_pcie_0_phy_rchng_clk_src[] = {
528a3cc0921STaniya Das 	F(19200000, P_BI_TCXO, 1, 0, 0),
529a3cc0921STaniya Das 	F(100000000, P_GCC_GPLL0_OUT_EVEN, 3, 0, 0),
530a3cc0921STaniya Das 	{ }
531a3cc0921STaniya Das };
532a3cc0921STaniya Das 
533a3cc0921STaniya Das static struct clk_rcg2 gcc_pcie_0_phy_rchng_clk_src = {
534a3cc0921STaniya Das 	.cmd_rcgr = 0x6b03c,
535a3cc0921STaniya Das 	.mnd_width = 0,
536a3cc0921STaniya Das 	.hid_width = 5,
537a3cc0921STaniya Das 	.parent_map = gcc_parent_map_0,
538a3cc0921STaniya Das 	.freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src,
539a3cc0921STaniya Das 	.clkr.hw.init = &(struct clk_init_data){
540a3cc0921STaniya Das 		.name = "gcc_pcie_0_phy_rchng_clk_src",
541a3cc0921STaniya Das 		.parent_data = gcc_parent_data_0,
542a3cc0921STaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
543a3cc0921STaniya Das 		.ops = &clk_rcg2_ops,
544a3cc0921STaniya Das 	},
545a3cc0921STaniya Das };
546a3cc0921STaniya Das 
547a3cc0921STaniya Das static struct clk_rcg2 gcc_pcie_1_aux_clk_src = {
548a3cc0921STaniya Das 	.cmd_rcgr = 0x8d058,
549a3cc0921STaniya Das 	.mnd_width = 16,
550a3cc0921STaniya Das 	.hid_width = 5,
551a3cc0921STaniya Das 	.parent_map = gcc_parent_map_2,
552a3cc0921STaniya Das 	.freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
553a3cc0921STaniya Das 	.clkr.hw.init = &(struct clk_init_data){
554a3cc0921STaniya Das 		.name = "gcc_pcie_1_aux_clk_src",
555a3cc0921STaniya Das 		.parent_data = gcc_parent_data_2,
556a3cc0921STaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_2),
557a3cc0921STaniya Das 		.ops = &clk_rcg2_ops,
558a3cc0921STaniya Das 	},
559a3cc0921STaniya Das };
560a3cc0921STaniya Das 
561a3cc0921STaniya Das static struct clk_rcg2 gcc_pcie_1_phy_rchng_clk_src = {
562a3cc0921STaniya Das 	.cmd_rcgr = 0x8d03c,
563a3cc0921STaniya Das 	.mnd_width = 0,
564a3cc0921STaniya Das 	.hid_width = 5,
565a3cc0921STaniya Das 	.parent_map = gcc_parent_map_0,
566a3cc0921STaniya Das 	.freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src,
567a3cc0921STaniya Das 	.clkr.hw.init = &(struct clk_init_data){
568a3cc0921STaniya Das 		.name = "gcc_pcie_1_phy_rchng_clk_src",
569a3cc0921STaniya Das 		.parent_data = gcc_parent_data_0,
570a3cc0921STaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
571a3cc0921STaniya Das 		.flags = CLK_SET_RATE_PARENT,
572a3cc0921STaniya Das 		.ops = &clk_rcg2_ops,
573a3cc0921STaniya Das 	},
574a3cc0921STaniya Das };
575a3cc0921STaniya Das 
576a3cc0921STaniya Das static const struct freq_tbl ftbl_gcc_pdm2_clk_src[] = {
577a3cc0921STaniya Das 	F(60000000, P_GCC_GPLL0_OUT_EVEN, 5, 0, 0),
578a3cc0921STaniya Das 	{ }
579a3cc0921STaniya Das };
580a3cc0921STaniya Das 
581a3cc0921STaniya Das static struct clk_rcg2 gcc_pdm2_clk_src = {
582a3cc0921STaniya Das 	.cmd_rcgr = 0x33010,
583a3cc0921STaniya Das 	.mnd_width = 0,
584a3cc0921STaniya Das 	.hid_width = 5,
585a3cc0921STaniya Das 	.parent_map = gcc_parent_map_0,
586a3cc0921STaniya Das 	.freq_tbl = ftbl_gcc_pdm2_clk_src,
587a3cc0921STaniya Das 	.clkr.hw.init = &(struct clk_init_data){
588a3cc0921STaniya Das 		.name = "gcc_pdm2_clk_src",
589a3cc0921STaniya Das 		.parent_data = gcc_parent_data_0,
590a3cc0921STaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
591a3cc0921STaniya Das 		.flags = CLK_SET_RATE_PARENT,
592a3cc0921STaniya Das 		.ops = &clk_rcg2_ops,
593a3cc0921STaniya Das 	},
594a3cc0921STaniya Das };
595a3cc0921STaniya Das 
596a3cc0921STaniya Das static const struct freq_tbl ftbl_gcc_qspi_core_clk_src[] = {
597a3cc0921STaniya Das 	F(100000000, P_GCC_GPLL0_OUT_MAIN, 6, 0, 0),
598a3cc0921STaniya Das 	F(150000000, P_GCC_GPLL0_OUT_MAIN, 4, 0, 0),
599a3cc0921STaniya Das 	F(200000000, P_GCC_GPLL0_OUT_MAIN, 3, 0, 0),
600a3cc0921STaniya Das 	F(300000000, P_GCC_GPLL0_OUT_MAIN, 2, 0, 0),
601a3cc0921STaniya Das 	{ }
602a3cc0921STaniya Das };
603a3cc0921STaniya Das 
604a3cc0921STaniya Das static struct clk_rcg2 gcc_qspi_core_clk_src = {
605a3cc0921STaniya Das 	.cmd_rcgr = 0x4b00c,
606a3cc0921STaniya Das 	.mnd_width = 0,
607a3cc0921STaniya Das 	.hid_width = 5,
608a3cc0921STaniya Das 	.parent_map = gcc_parent_map_0,
609a3cc0921STaniya Das 	.freq_tbl = ftbl_gcc_qspi_core_clk_src,
610a3cc0921STaniya Das 	.clkr.hw.init = &(struct clk_init_data){
611a3cc0921STaniya Das 		.name = "gcc_qspi_core_clk_src",
612a3cc0921STaniya Das 		.parent_data = gcc_parent_data_0,
613a3cc0921STaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
614a3cc0921STaniya Das 		.ops = &clk_rcg2_floor_ops,
615a3cc0921STaniya Das 	},
616a3cc0921STaniya Das };
617a3cc0921STaniya Das 
618a3cc0921STaniya Das static const struct freq_tbl ftbl_gcc_qupv3_wrap0_s0_clk_src[] = {
619a3cc0921STaniya Das 	F(7372800, P_GCC_GPLL0_OUT_EVEN, 1, 384, 15625),
620a3cc0921STaniya Das 	F(14745600, P_GCC_GPLL0_OUT_EVEN, 1, 768, 15625),
621a3cc0921STaniya Das 	F(19200000, P_BI_TCXO, 1, 0, 0),
622a3cc0921STaniya Das 	F(29491200, P_GCC_GPLL0_OUT_EVEN, 1, 1536, 15625),
623a3cc0921STaniya Das 	F(32000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 75),
624a3cc0921STaniya Das 	F(48000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 25),
625a3cc0921STaniya Das 	F(64000000, P_GCC_GPLL0_OUT_EVEN, 1, 16, 75),
626a3cc0921STaniya Das 	F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0),
627a3cc0921STaniya Das 	F(80000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 15),
628a3cc0921STaniya Das 	F(96000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 25),
629a3cc0921STaniya Das 	F(100000000, P_GCC_GPLL0_OUT_MAIN, 6, 0, 0),
630a3cc0921STaniya Das 	F(102400000, P_GCC_GPLL0_OUT_EVEN, 1, 128, 375),
631a3cc0921STaniya Das 	F(112000000, P_GCC_GPLL0_OUT_EVEN, 1, 28, 75),
632a3cc0921STaniya Das 	F(117964800, P_GCC_GPLL0_OUT_EVEN, 1, 6144, 15625),
633a3cc0921STaniya Das 	F(120000000, P_GCC_GPLL0_OUT_EVEN, 2.5, 0, 0),
634a3cc0921STaniya Das 	{ }
635a3cc0921STaniya Das };
636a3cc0921STaniya Das 
637a3cc0921STaniya Das static struct clk_init_data gcc_qupv3_wrap0_s0_clk_src_init = {
638a3cc0921STaniya Das 	.name = "gcc_qupv3_wrap0_s0_clk_src",
639a3cc0921STaniya Das 	.parent_data = gcc_parent_data_0,
640a3cc0921STaniya Das 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
641a3cc0921STaniya Das 	.ops = &clk_rcg2_ops,
642a3cc0921STaniya Das };
643a3cc0921STaniya Das 
644a3cc0921STaniya Das static struct clk_rcg2 gcc_qupv3_wrap0_s0_clk_src = {
645a3cc0921STaniya Das 	.cmd_rcgr = 0x17010,
646a3cc0921STaniya Das 	.mnd_width = 16,
647a3cc0921STaniya Das 	.hid_width = 5,
648a3cc0921STaniya Das 	.parent_map = gcc_parent_map_0,
649a3cc0921STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
650a3cc0921STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap0_s0_clk_src_init,
651a3cc0921STaniya Das };
652a3cc0921STaniya Das 
653a3cc0921STaniya Das static struct clk_init_data gcc_qupv3_wrap0_s1_clk_src_init = {
654a3cc0921STaniya Das 	.name = "gcc_qupv3_wrap0_s1_clk_src",
655a3cc0921STaniya Das 	.parent_data = gcc_parent_data_0,
656a3cc0921STaniya Das 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
657a3cc0921STaniya Das 	.ops = &clk_rcg2_ops,
658a3cc0921STaniya Das };
659a3cc0921STaniya Das 
660a3cc0921STaniya Das static struct clk_rcg2 gcc_qupv3_wrap0_s1_clk_src = {
661a3cc0921STaniya Das 	.cmd_rcgr = 0x17140,
662a3cc0921STaniya Das 	.mnd_width = 16,
663a3cc0921STaniya Das 	.hid_width = 5,
664a3cc0921STaniya Das 	.parent_map = gcc_parent_map_0,
665a3cc0921STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
666a3cc0921STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap0_s1_clk_src_init,
667a3cc0921STaniya Das };
668a3cc0921STaniya Das 
669a3cc0921STaniya Das static const struct freq_tbl ftbl_gcc_qupv3_wrap0_s2_clk_src[] = {
670a3cc0921STaniya Das 	F(7372800, P_GCC_GPLL0_OUT_EVEN, 1, 384, 15625),
671a3cc0921STaniya Das 	F(14745600, P_GCC_GPLL0_OUT_EVEN, 1, 768, 15625),
672a3cc0921STaniya Das 	F(19200000, P_BI_TCXO, 1, 0, 0),
673a3cc0921STaniya Das 	F(29491200, P_GCC_GPLL0_OUT_EVEN, 1, 1536, 15625),
674a3cc0921STaniya Das 	F(32000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 75),
675a3cc0921STaniya Das 	F(48000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 25),
676ca1c667fSTaniya Das 	F(52174000, P_GCC_GPLL0_OUT_MAIN, 1, 2, 23),
677a3cc0921STaniya Das 	F(64000000, P_GCC_GPLL0_OUT_EVEN, 1, 16, 75),
678a3cc0921STaniya Das 	F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0),
679a3cc0921STaniya Das 	F(80000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 15),
680a3cc0921STaniya Das 	F(96000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 25),
681a3cc0921STaniya Das 	F(100000000, P_GCC_GPLL0_OUT_MAIN, 6, 0, 0),
682a3cc0921STaniya Das 	{ }
683a3cc0921STaniya Das };
684a3cc0921STaniya Das 
685a3cc0921STaniya Das static struct clk_init_data gcc_qupv3_wrap0_s2_clk_src_init = {
686a3cc0921STaniya Das 	.name = "gcc_qupv3_wrap0_s2_clk_src",
687a3cc0921STaniya Das 	.parent_data = gcc_parent_data_0,
688a3cc0921STaniya Das 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
689a3cc0921STaniya Das 	.ops = &clk_rcg2_ops,
690a3cc0921STaniya Das };
691a3cc0921STaniya Das 
692a3cc0921STaniya Das static struct clk_rcg2 gcc_qupv3_wrap0_s2_clk_src = {
693a3cc0921STaniya Das 	.cmd_rcgr = 0x17270,
694a3cc0921STaniya Das 	.mnd_width = 16,
695a3cc0921STaniya Das 	.hid_width = 5,
696a3cc0921STaniya Das 	.parent_map = gcc_parent_map_0,
697a3cc0921STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s2_clk_src,
698a3cc0921STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap0_s2_clk_src_init,
699a3cc0921STaniya Das };
700a3cc0921STaniya Das 
701a3cc0921STaniya Das static struct clk_init_data gcc_qupv3_wrap0_s3_clk_src_init = {
702a3cc0921STaniya Das 	.name = "gcc_qupv3_wrap0_s3_clk_src",
703a3cc0921STaniya Das 	.parent_data = gcc_parent_data_0,
704a3cc0921STaniya Das 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
705a3cc0921STaniya Das 	.ops = &clk_rcg2_ops,
706a3cc0921STaniya Das };
707a3cc0921STaniya Das 
708a3cc0921STaniya Das static struct clk_rcg2 gcc_qupv3_wrap0_s3_clk_src = {
709a3cc0921STaniya Das 	.cmd_rcgr = 0x173a0,
710a3cc0921STaniya Das 	.mnd_width = 16,
711a3cc0921STaniya Das 	.hid_width = 5,
712a3cc0921STaniya Das 	.parent_map = gcc_parent_map_0,
713a3cc0921STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s2_clk_src,
714a3cc0921STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap0_s3_clk_src_init,
715a3cc0921STaniya Das };
716a3cc0921STaniya Das 
717a3cc0921STaniya Das static struct clk_init_data gcc_qupv3_wrap0_s4_clk_src_init = {
718a3cc0921STaniya Das 	.name = "gcc_qupv3_wrap0_s4_clk_src",
719a3cc0921STaniya Das 	.parent_data = gcc_parent_data_0,
720a3cc0921STaniya Das 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
721a3cc0921STaniya Das 	.ops = &clk_rcg2_ops,
722a3cc0921STaniya Das };
723a3cc0921STaniya Das 
724a3cc0921STaniya Das static struct clk_rcg2 gcc_qupv3_wrap0_s4_clk_src = {
725a3cc0921STaniya Das 	.cmd_rcgr = 0x174d0,
726a3cc0921STaniya Das 	.mnd_width = 16,
727a3cc0921STaniya Das 	.hid_width = 5,
728a3cc0921STaniya Das 	.parent_map = gcc_parent_map_0,
729a3cc0921STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s2_clk_src,
730a3cc0921STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap0_s4_clk_src_init,
731a3cc0921STaniya Das };
732a3cc0921STaniya Das 
733a3cc0921STaniya Das static struct clk_init_data gcc_qupv3_wrap0_s5_clk_src_init = {
734a3cc0921STaniya Das 	.name = "gcc_qupv3_wrap0_s5_clk_src",
735a3cc0921STaniya Das 	.parent_data = gcc_parent_data_0,
736a3cc0921STaniya Das 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
737a3cc0921STaniya Das 	.ops = &clk_rcg2_ops,
738a3cc0921STaniya Das };
739a3cc0921STaniya Das 
740a3cc0921STaniya Das static struct clk_rcg2 gcc_qupv3_wrap0_s5_clk_src = {
741a3cc0921STaniya Das 	.cmd_rcgr = 0x17600,
742a3cc0921STaniya Das 	.mnd_width = 16,
743a3cc0921STaniya Das 	.hid_width = 5,
744a3cc0921STaniya Das 	.parent_map = gcc_parent_map_0,
745a3cc0921STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s2_clk_src,
746a3cc0921STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap0_s5_clk_src_init,
747a3cc0921STaniya Das };
748a3cc0921STaniya Das 
749a3cc0921STaniya Das static struct clk_init_data gcc_qupv3_wrap0_s6_clk_src_init = {
750a3cc0921STaniya Das 	.name = "gcc_qupv3_wrap0_s6_clk_src",
751a3cc0921STaniya Das 	.parent_data = gcc_parent_data_0,
752a3cc0921STaniya Das 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
753a3cc0921STaniya Das 	.ops = &clk_rcg2_ops,
754a3cc0921STaniya Das };
755a3cc0921STaniya Das 
756a3cc0921STaniya Das static struct clk_rcg2 gcc_qupv3_wrap0_s6_clk_src = {
757a3cc0921STaniya Das 	.cmd_rcgr = 0x17730,
758a3cc0921STaniya Das 	.mnd_width = 16,
759a3cc0921STaniya Das 	.hid_width = 5,
760a3cc0921STaniya Das 	.parent_map = gcc_parent_map_0,
761a3cc0921STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s2_clk_src,
762a3cc0921STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap0_s6_clk_src_init,
763a3cc0921STaniya Das };
764a3cc0921STaniya Das 
765a3cc0921STaniya Das static struct clk_init_data gcc_qupv3_wrap0_s7_clk_src_init = {
766a3cc0921STaniya Das 	.name = "gcc_qupv3_wrap0_s7_clk_src",
767a3cc0921STaniya Das 	.parent_data = gcc_parent_data_0,
768a3cc0921STaniya Das 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
769a3cc0921STaniya Das 	.ops = &clk_rcg2_ops,
770a3cc0921STaniya Das };
771a3cc0921STaniya Das 
772a3cc0921STaniya Das static struct clk_rcg2 gcc_qupv3_wrap0_s7_clk_src = {
773a3cc0921STaniya Das 	.cmd_rcgr = 0x17860,
774a3cc0921STaniya Das 	.mnd_width = 16,
775a3cc0921STaniya Das 	.hid_width = 5,
776a3cc0921STaniya Das 	.parent_map = gcc_parent_map_0,
777a3cc0921STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s2_clk_src,
778a3cc0921STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap0_s7_clk_src_init,
779a3cc0921STaniya Das };
780a3cc0921STaniya Das 
781a3cc0921STaniya Das static struct clk_init_data gcc_qupv3_wrap1_s0_clk_src_init = {
782a3cc0921STaniya Das 	.name = "gcc_qupv3_wrap1_s0_clk_src",
783a3cc0921STaniya Das 	.parent_data = gcc_parent_data_0,
784a3cc0921STaniya Das 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
785a3cc0921STaniya Das 	.ops = &clk_rcg2_ops,
786a3cc0921STaniya Das };
787a3cc0921STaniya Das 
788a3cc0921STaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s0_clk_src = {
789a3cc0921STaniya Das 	.cmd_rcgr = 0x18010,
790a3cc0921STaniya Das 	.mnd_width = 16,
791a3cc0921STaniya Das 	.hid_width = 5,
792a3cc0921STaniya Das 	.parent_map = gcc_parent_map_0,
793a3cc0921STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
794a3cc0921STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap1_s0_clk_src_init,
795a3cc0921STaniya Das };
796a3cc0921STaniya Das 
797a3cc0921STaniya Das static struct clk_init_data gcc_qupv3_wrap1_s1_clk_src_init = {
798a3cc0921STaniya Das 	.name = "gcc_qupv3_wrap1_s1_clk_src",
799a3cc0921STaniya Das 	.parent_data = gcc_parent_data_0,
800a3cc0921STaniya Das 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
801a3cc0921STaniya Das 	.ops = &clk_rcg2_ops,
802a3cc0921STaniya Das };
803a3cc0921STaniya Das 
804a3cc0921STaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s1_clk_src = {
805a3cc0921STaniya Das 	.cmd_rcgr = 0x18140,
806a3cc0921STaniya Das 	.mnd_width = 16,
807a3cc0921STaniya Das 	.hid_width = 5,
808a3cc0921STaniya Das 	.parent_map = gcc_parent_map_0,
809a3cc0921STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
810a3cc0921STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap1_s1_clk_src_init,
811a3cc0921STaniya Das };
812a3cc0921STaniya Das 
813a3cc0921STaniya Das static struct clk_init_data gcc_qupv3_wrap1_s2_clk_src_init = {
814a3cc0921STaniya Das 	.name = "gcc_qupv3_wrap1_s2_clk_src",
815a3cc0921STaniya Das 	.parent_data = gcc_parent_data_0,
816a3cc0921STaniya Das 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
817a3cc0921STaniya Das 	.ops = &clk_rcg2_ops,
818a3cc0921STaniya Das };
819a3cc0921STaniya Das 
820a3cc0921STaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s2_clk_src = {
821a3cc0921STaniya Das 	.cmd_rcgr = 0x18270,
822a3cc0921STaniya Das 	.mnd_width = 16,
823a3cc0921STaniya Das 	.hid_width = 5,
824a3cc0921STaniya Das 	.parent_map = gcc_parent_map_0,
825a3cc0921STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s2_clk_src,
826a3cc0921STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap1_s2_clk_src_init,
827a3cc0921STaniya Das };
828a3cc0921STaniya Das 
829a3cc0921STaniya Das static struct clk_init_data gcc_qupv3_wrap1_s3_clk_src_init = {
830a3cc0921STaniya Das 	.name = "gcc_qupv3_wrap1_s3_clk_src",
831a3cc0921STaniya Das 	.parent_data = gcc_parent_data_0,
832a3cc0921STaniya Das 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
833a3cc0921STaniya Das 	.ops = &clk_rcg2_ops,
834a3cc0921STaniya Das };
835a3cc0921STaniya Das 
836a3cc0921STaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s3_clk_src = {
837a3cc0921STaniya Das 	.cmd_rcgr = 0x183a0,
838a3cc0921STaniya Das 	.mnd_width = 16,
839a3cc0921STaniya Das 	.hid_width = 5,
840a3cc0921STaniya Das 	.parent_map = gcc_parent_map_0,
841a3cc0921STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s2_clk_src,
842a3cc0921STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap1_s3_clk_src_init,
843a3cc0921STaniya Das };
844a3cc0921STaniya Das 
845a3cc0921STaniya Das static struct clk_init_data gcc_qupv3_wrap1_s4_clk_src_init = {
846a3cc0921STaniya Das 	.name = "gcc_qupv3_wrap1_s4_clk_src",
847a3cc0921STaniya Das 	.parent_data = gcc_parent_data_0,
848a3cc0921STaniya Das 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
849a3cc0921STaniya Das 	.ops = &clk_rcg2_ops,
850a3cc0921STaniya Das };
851a3cc0921STaniya Das 
852a3cc0921STaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s4_clk_src = {
853a3cc0921STaniya Das 	.cmd_rcgr = 0x184d0,
854a3cc0921STaniya Das 	.mnd_width = 16,
855a3cc0921STaniya Das 	.hid_width = 5,
856a3cc0921STaniya Das 	.parent_map = gcc_parent_map_0,
857a3cc0921STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s2_clk_src,
858a3cc0921STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap1_s4_clk_src_init,
859a3cc0921STaniya Das };
860a3cc0921STaniya Das 
861a3cc0921STaniya Das static struct clk_init_data gcc_qupv3_wrap1_s5_clk_src_init = {
862a3cc0921STaniya Das 	.name = "gcc_qupv3_wrap1_s5_clk_src",
863a3cc0921STaniya Das 	.parent_data = gcc_parent_data_0,
864a3cc0921STaniya Das 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
865a3cc0921STaniya Das 	.ops = &clk_rcg2_ops,
866a3cc0921STaniya Das };
867a3cc0921STaniya Das 
868a3cc0921STaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s5_clk_src = {
869a3cc0921STaniya Das 	.cmd_rcgr = 0x18600,
870a3cc0921STaniya Das 	.mnd_width = 16,
871a3cc0921STaniya Das 	.hid_width = 5,
872a3cc0921STaniya Das 	.parent_map = gcc_parent_map_0,
873a3cc0921STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s2_clk_src,
874a3cc0921STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap1_s5_clk_src_init,
875a3cc0921STaniya Das };
876a3cc0921STaniya Das 
877a3cc0921STaniya Das static struct clk_init_data gcc_qupv3_wrap1_s6_clk_src_init = {
878a3cc0921STaniya Das 	.name = "gcc_qupv3_wrap1_s6_clk_src",
879a3cc0921STaniya Das 	.parent_data = gcc_parent_data_0,
880a3cc0921STaniya Das 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
881a3cc0921STaniya Das 	.ops = &clk_rcg2_ops,
882a3cc0921STaniya Das };
883a3cc0921STaniya Das 
884a3cc0921STaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s6_clk_src = {
885a3cc0921STaniya Das 	.cmd_rcgr = 0x18730,
886a3cc0921STaniya Das 	.mnd_width = 16,
887a3cc0921STaniya Das 	.hid_width = 5,
888a3cc0921STaniya Das 	.parent_map = gcc_parent_map_0,
889a3cc0921STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s2_clk_src,
890a3cc0921STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap1_s6_clk_src_init,
891a3cc0921STaniya Das };
892a3cc0921STaniya Das 
893a3cc0921STaniya Das static struct clk_init_data gcc_qupv3_wrap1_s7_clk_src_init = {
894a3cc0921STaniya Das 	.name = "gcc_qupv3_wrap1_s7_clk_src",
895a3cc0921STaniya Das 	.parent_data = gcc_parent_data_0,
896a3cc0921STaniya Das 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
897a3cc0921STaniya Das 	.ops = &clk_rcg2_ops,
898a3cc0921STaniya Das };
899a3cc0921STaniya Das 
900a3cc0921STaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s7_clk_src = {
901a3cc0921STaniya Das 	.cmd_rcgr = 0x18860,
902a3cc0921STaniya Das 	.mnd_width = 16,
903a3cc0921STaniya Das 	.hid_width = 5,
904a3cc0921STaniya Das 	.parent_map = gcc_parent_map_0,
905a3cc0921STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s2_clk_src,
906a3cc0921STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap1_s7_clk_src_init,
907a3cc0921STaniya Das };
908a3cc0921STaniya Das 
909a3cc0921STaniya Das static const struct freq_tbl ftbl_gcc_sdcc1_apps_clk_src[] = {
910a3cc0921STaniya Das 	F(144000, P_BI_TCXO, 16, 3, 25),
911a3cc0921STaniya Das 	F(400000, P_BI_TCXO, 12, 1, 4),
912a3cc0921STaniya Das 	F(19200000, P_BI_TCXO, 1, 0, 0),
913a3cc0921STaniya Das 	F(20000000, P_GCC_GPLL0_OUT_EVEN, 5, 1, 3),
914a3cc0921STaniya Das 	F(25000000, P_GCC_GPLL0_OUT_EVEN, 12, 0, 0),
915a3cc0921STaniya Das 	F(50000000, P_GCC_GPLL0_OUT_EVEN, 6, 0, 0),
916a3cc0921STaniya Das 	F(100000000, P_GCC_GPLL0_OUT_EVEN, 3, 0, 0),
917a3cc0921STaniya Das 	F(192000000, P_GCC_GPLL10_OUT_MAIN, 2, 0, 0),
918a3cc0921STaniya Das 	F(384000000, P_GCC_GPLL10_OUT_MAIN, 1, 0, 0),
919a3cc0921STaniya Das 	{ }
920a3cc0921STaniya Das };
921a3cc0921STaniya Das 
922a3cc0921STaniya Das static struct clk_rcg2 gcc_sdcc1_apps_clk_src = {
923a3cc0921STaniya Das 	.cmd_rcgr = 0x7500c,
924a3cc0921STaniya Das 	.mnd_width = 8,
925a3cc0921STaniya Das 	.hid_width = 5,
926a3cc0921STaniya Das 	.parent_map = gcc_parent_map_8,
927a3cc0921STaniya Das 	.freq_tbl = ftbl_gcc_sdcc1_apps_clk_src,
928a3cc0921STaniya Das 	.clkr.hw.init = &(struct clk_init_data){
929a3cc0921STaniya Das 		.name = "gcc_sdcc1_apps_clk_src",
930a3cc0921STaniya Das 		.parent_data = gcc_parent_data_8,
931a3cc0921STaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_8),
932a3cc0921STaniya Das 		.ops = &clk_rcg2_floor_ops,
933a3cc0921STaniya Das 	},
934a3cc0921STaniya Das };
935a3cc0921STaniya Das 
936a3cc0921STaniya Das static const struct freq_tbl ftbl_gcc_sdcc1_ice_core_clk_src[] = {
937a3cc0921STaniya Das 	F(100000000, P_GCC_GPLL0_OUT_EVEN, 3, 0, 0),
938a3cc0921STaniya Das 	F(150000000, P_GCC_GPLL0_OUT_EVEN, 2, 0, 0),
939a3cc0921STaniya Das 	F(300000000, P_GCC_GPLL0_OUT_EVEN, 1, 0, 0),
940a3cc0921STaniya Das 	{ }
941a3cc0921STaniya Das };
942a3cc0921STaniya Das 
943a3cc0921STaniya Das static struct clk_rcg2 gcc_sdcc1_ice_core_clk_src = {
944a3cc0921STaniya Das 	.cmd_rcgr = 0x7502c,
945a3cc0921STaniya Das 	.mnd_width = 0,
946a3cc0921STaniya Das 	.hid_width = 5,
947a3cc0921STaniya Das 	.parent_map = gcc_parent_map_1,
948a3cc0921STaniya Das 	.freq_tbl = ftbl_gcc_sdcc1_ice_core_clk_src,
949a3cc0921STaniya Das 	.clkr.hw.init = &(struct clk_init_data){
950a3cc0921STaniya Das 		.name = "gcc_sdcc1_ice_core_clk_src",
951a3cc0921STaniya Das 		.parent_data = gcc_parent_data_1,
952a3cc0921STaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_1),
953a3cc0921STaniya Das 		.ops = &clk_rcg2_floor_ops,
954a3cc0921STaniya Das 	},
955a3cc0921STaniya Das };
956a3cc0921STaniya Das 
957a3cc0921STaniya Das static const struct freq_tbl ftbl_gcc_sdcc2_apps_clk_src[] = {
958a3cc0921STaniya Das 	F(400000, P_BI_TCXO, 12, 1, 4),
959a3cc0921STaniya Das 	F(19200000, P_BI_TCXO, 1, 0, 0),
960a3cc0921STaniya Das 	F(25000000, P_GCC_GPLL0_OUT_EVEN, 12, 0, 0),
961a3cc0921STaniya Das 	F(50000000, P_GCC_GPLL0_OUT_EVEN, 6, 0, 0),
962a3cc0921STaniya Das 	F(100000000, P_GCC_GPLL0_OUT_EVEN, 3, 0, 0),
963a3cc0921STaniya Das 	F(202000000, P_GCC_GPLL9_OUT_MAIN, 4, 0, 0),
964a3cc0921STaniya Das 	{ }
965a3cc0921STaniya Das };
966a3cc0921STaniya Das 
967a3cc0921STaniya Das static struct clk_rcg2 gcc_sdcc2_apps_clk_src = {
968a3cc0921STaniya Das 	.cmd_rcgr = 0x1400c,
969a3cc0921STaniya Das 	.mnd_width = 8,
970a3cc0921STaniya Das 	.hid_width = 5,
971a3cc0921STaniya Das 	.parent_map = gcc_parent_map_9,
972a3cc0921STaniya Das 	.freq_tbl = ftbl_gcc_sdcc2_apps_clk_src,
973a3cc0921STaniya Das 	.clkr.hw.init = &(struct clk_init_data){
974a3cc0921STaniya Das 		.name = "gcc_sdcc2_apps_clk_src",
975a3cc0921STaniya Das 		.parent_data = gcc_parent_data_9,
976a3cc0921STaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_9),
977a3cc0921STaniya Das 		.flags = CLK_OPS_PARENT_ENABLE,
978a3cc0921STaniya Das 		.ops = &clk_rcg2_floor_ops,
979a3cc0921STaniya Das 	},
980a3cc0921STaniya Das };
981a3cc0921STaniya Das 
982a3cc0921STaniya Das static const struct freq_tbl ftbl_gcc_sdcc4_apps_clk_src[] = {
983a3cc0921STaniya Das 	F(400000, P_BI_TCXO, 12, 1, 4),
984a3cc0921STaniya Das 	F(19200000, P_BI_TCXO, 1, 0, 0),
985a3cc0921STaniya Das 	F(25000000, P_GCC_GPLL0_OUT_EVEN, 12, 0, 0),
986a3cc0921STaniya Das 	F(50000000, P_GCC_GPLL0_OUT_EVEN, 6, 0, 0),
987a3cc0921STaniya Das 	F(100000000, P_GCC_GPLL0_OUT_EVEN, 3, 0, 0),
988a3cc0921STaniya Das 	{ }
989a3cc0921STaniya Das };
990a3cc0921STaniya Das 
991a3cc0921STaniya Das static struct clk_rcg2 gcc_sdcc4_apps_clk_src = {
992a3cc0921STaniya Das 	.cmd_rcgr = 0x1600c,
993a3cc0921STaniya Das 	.mnd_width = 8,
994a3cc0921STaniya Das 	.hid_width = 5,
995a3cc0921STaniya Das 	.parent_map = gcc_parent_map_1,
996a3cc0921STaniya Das 	.freq_tbl = ftbl_gcc_sdcc4_apps_clk_src,
997a3cc0921STaniya Das 	.clkr.hw.init = &(struct clk_init_data){
998a3cc0921STaniya Das 		.name = "gcc_sdcc4_apps_clk_src",
999a3cc0921STaniya Das 		.parent_data = gcc_parent_data_1,
1000a3cc0921STaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_1),
1001a3cc0921STaniya Das 		.ops = &clk_rcg2_floor_ops,
1002a3cc0921STaniya Das 	},
1003a3cc0921STaniya Das };
1004a3cc0921STaniya Das 
1005a3cc0921STaniya Das static const struct freq_tbl ftbl_gcc_ufs_phy_axi_clk_src[] = {
1006a3cc0921STaniya Das 	F(25000000, P_GCC_GPLL0_OUT_EVEN, 12, 0, 0),
1007a3cc0921STaniya Das 	F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0),
1008a3cc0921STaniya Das 	F(150000000, P_GCC_GPLL0_OUT_EVEN, 2, 0, 0),
1009a3cc0921STaniya Das 	F(300000000, P_GCC_GPLL0_OUT_EVEN, 1, 0, 0),
1010a3cc0921STaniya Das 	{ }
1011a3cc0921STaniya Das };
1012a3cc0921STaniya Das 
1013a3cc0921STaniya Das static struct clk_rcg2 gcc_ufs_phy_axi_clk_src = {
1014a3cc0921STaniya Das 	.cmd_rcgr = 0x77024,
1015a3cc0921STaniya Das 	.mnd_width = 8,
1016a3cc0921STaniya Das 	.hid_width = 5,
1017a3cc0921STaniya Das 	.parent_map = gcc_parent_map_0,
1018a3cc0921STaniya Das 	.freq_tbl = ftbl_gcc_ufs_phy_axi_clk_src,
1019a3cc0921STaniya Das 	.clkr.hw.init = &(struct clk_init_data){
1020a3cc0921STaniya Das 		.name = "gcc_ufs_phy_axi_clk_src",
1021a3cc0921STaniya Das 		.parent_data = gcc_parent_data_0,
1022a3cc0921STaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1023a3cc0921STaniya Das 		.ops = &clk_rcg2_ops,
1024a3cc0921STaniya Das 	},
1025a3cc0921STaniya Das };
1026a3cc0921STaniya Das 
1027a3cc0921STaniya Das static const struct freq_tbl ftbl_gcc_ufs_phy_ice_core_clk_src[] = {
1028a3cc0921STaniya Das 	F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0),
1029a3cc0921STaniya Das 	F(150000000, P_GCC_GPLL0_OUT_EVEN, 2, 0, 0),
1030a3cc0921STaniya Das 	F(300000000, P_GCC_GPLL0_OUT_EVEN, 1, 0, 0),
1031a3cc0921STaniya Das 	{ }
1032a3cc0921STaniya Das };
1033a3cc0921STaniya Das 
1034a3cc0921STaniya Das static struct clk_rcg2 gcc_ufs_phy_ice_core_clk_src = {
1035a3cc0921STaniya Das 	.cmd_rcgr = 0x7706c,
1036a3cc0921STaniya Das 	.mnd_width = 0,
1037a3cc0921STaniya Das 	.hid_width = 5,
1038a3cc0921STaniya Das 	.parent_map = gcc_parent_map_0,
1039a3cc0921STaniya Das 	.freq_tbl = ftbl_gcc_ufs_phy_ice_core_clk_src,
1040a3cc0921STaniya Das 	.clkr.hw.init = &(struct clk_init_data){
1041a3cc0921STaniya Das 		.name = "gcc_ufs_phy_ice_core_clk_src",
1042a3cc0921STaniya Das 		.parent_data = gcc_parent_data_0,
1043a3cc0921STaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1044a3cc0921STaniya Das 		.ops = &clk_rcg2_ops,
1045a3cc0921STaniya Das 	},
1046a3cc0921STaniya Das };
1047a3cc0921STaniya Das 
1048a3cc0921STaniya Das static struct clk_rcg2 gcc_ufs_phy_phy_aux_clk_src = {
1049a3cc0921STaniya Das 	.cmd_rcgr = 0x770a0,
1050a3cc0921STaniya Das 	.mnd_width = 0,
1051a3cc0921STaniya Das 	.hid_width = 5,
1052a3cc0921STaniya Das 	.parent_map = gcc_parent_map_3,
1053a3cc0921STaniya Das 	.freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
1054a3cc0921STaniya Das 	.clkr.hw.init = &(struct clk_init_data){
1055a3cc0921STaniya Das 		.name = "gcc_ufs_phy_phy_aux_clk_src",
1056a3cc0921STaniya Das 		.parent_data = gcc_parent_data_3,
1057a3cc0921STaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_3),
1058a3cc0921STaniya Das 		.ops = &clk_rcg2_ops,
1059a3cc0921STaniya Das 	},
1060a3cc0921STaniya Das };
1061a3cc0921STaniya Das 
1062a3cc0921STaniya Das static struct clk_rcg2 gcc_ufs_phy_unipro_core_clk_src = {
1063a3cc0921STaniya Das 	.cmd_rcgr = 0x77084,
1064a3cc0921STaniya Das 	.mnd_width = 0,
1065a3cc0921STaniya Das 	.hid_width = 5,
1066a3cc0921STaniya Das 	.parent_map = gcc_parent_map_0,
1067a3cc0921STaniya Das 	.freq_tbl = ftbl_gcc_ufs_phy_ice_core_clk_src,
1068a3cc0921STaniya Das 	.clkr.hw.init = &(struct clk_init_data){
1069a3cc0921STaniya Das 		.name = "gcc_ufs_phy_unipro_core_clk_src",
1070a3cc0921STaniya Das 		.parent_data = gcc_parent_data_0,
1071a3cc0921STaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1072a3cc0921STaniya Das 		.ops = &clk_rcg2_ops,
1073a3cc0921STaniya Das 	},
1074a3cc0921STaniya Das };
1075a3cc0921STaniya Das 
1076a3cc0921STaniya Das static const struct freq_tbl ftbl_gcc_usb30_prim_master_clk_src[] = {
1077a3cc0921STaniya Das 	F(66666667, P_GCC_GPLL0_OUT_EVEN, 4.5, 0, 0),
1078a3cc0921STaniya Das 	F(133333333, P_GCC_GPLL0_OUT_MAIN, 4.5, 0, 0),
1079a3cc0921STaniya Das 	F(200000000, P_GCC_GPLL0_OUT_ODD, 1, 0, 0),
1080a3cc0921STaniya Das 	F(240000000, P_GCC_GPLL0_OUT_MAIN, 2.5, 0, 0),
1081a3cc0921STaniya Das 	{ }
1082a3cc0921STaniya Das };
1083a3cc0921STaniya Das 
1084a3cc0921STaniya Das static struct clk_rcg2 gcc_usb30_prim_master_clk_src = {
1085a3cc0921STaniya Das 	.cmd_rcgr = 0xf020,
1086a3cc0921STaniya Das 	.mnd_width = 8,
1087a3cc0921STaniya Das 	.hid_width = 5,
1088a3cc0921STaniya Das 	.parent_map = gcc_parent_map_1,
1089a3cc0921STaniya Das 	.freq_tbl = ftbl_gcc_usb30_prim_master_clk_src,
1090a3cc0921STaniya Das 	.clkr.hw.init = &(struct clk_init_data){
1091a3cc0921STaniya Das 		.name = "gcc_usb30_prim_master_clk_src",
1092a3cc0921STaniya Das 		.parent_data = gcc_parent_data_1,
1093a3cc0921STaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_1),
1094a3cc0921STaniya Das 		.ops = &clk_rcg2_ops,
1095a3cc0921STaniya Das 	},
1096a3cc0921STaniya Das };
1097a3cc0921STaniya Das 
1098a3cc0921STaniya Das static const struct freq_tbl ftbl_gcc_usb30_prim_mock_utmi_clk_src[] = {
1099a3cc0921STaniya Das 	F(19200000, P_BI_TCXO, 1, 0, 0),
1100a3cc0921STaniya Das 	{ }
1101a3cc0921STaniya Das };
1102a3cc0921STaniya Das 
1103a3cc0921STaniya Das static struct clk_rcg2 gcc_usb30_prim_mock_utmi_clk_src = {
1104a3cc0921STaniya Das 	.cmd_rcgr = 0xf038,
1105a3cc0921STaniya Das 	.mnd_width = 0,
1106a3cc0921STaniya Das 	.hid_width = 5,
1107a3cc0921STaniya Das 	.parent_map = gcc_parent_map_3,
1108a3cc0921STaniya Das 	.freq_tbl = ftbl_gcc_usb30_prim_mock_utmi_clk_src,
1109a3cc0921STaniya Das 	.clkr.hw.init = &(struct clk_init_data){
1110a3cc0921STaniya Das 		.name = "gcc_usb30_prim_mock_utmi_clk_src",
1111a3cc0921STaniya Das 		.parent_data = gcc_parent_data_3,
1112a3cc0921STaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_3),
1113a3cc0921STaniya Das 		.ops = &clk_rcg2_ops,
1114a3cc0921STaniya Das 	},
1115a3cc0921STaniya Das };
1116a3cc0921STaniya Das 
1117a3cc0921STaniya Das static const struct freq_tbl ftbl_gcc_usb30_sec_master_clk_src[] = {
1118a3cc0921STaniya Das 	F(60000000, P_GCC_GPLL0_OUT_EVEN, 5, 0, 0),
1119a3cc0921STaniya Das 	F(120000000, P_GCC_GPLL0_OUT_EVEN, 2.5, 0, 0),
1120a3cc0921STaniya Das 	{ }
1121a3cc0921STaniya Das };
1122a3cc0921STaniya Das 
1123a3cc0921STaniya Das static struct clk_rcg2 gcc_usb30_sec_master_clk_src = {
1124a3cc0921STaniya Das 	.cmd_rcgr = 0x9e020,
1125a3cc0921STaniya Das 	.mnd_width = 8,
1126a3cc0921STaniya Das 	.hid_width = 5,
1127a3cc0921STaniya Das 	.parent_map = gcc_parent_map_5,
1128a3cc0921STaniya Das 	.freq_tbl = ftbl_gcc_usb30_sec_master_clk_src,
1129a3cc0921STaniya Das 	.clkr.hw.init = &(struct clk_init_data){
1130a3cc0921STaniya Das 		.name = "gcc_usb30_sec_master_clk_src",
1131a3cc0921STaniya Das 		.parent_data = gcc_parent_data_5,
1132a3cc0921STaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_5),
1133a3cc0921STaniya Das 		.ops = &clk_rcg2_ops,
1134a3cc0921STaniya Das 	},
1135a3cc0921STaniya Das };
1136a3cc0921STaniya Das 
1137a3cc0921STaniya Das static struct clk_rcg2 gcc_usb30_sec_mock_utmi_clk_src = {
1138a3cc0921STaniya Das 	.cmd_rcgr = 0x9e038,
1139a3cc0921STaniya Das 	.mnd_width = 0,
1140a3cc0921STaniya Das 	.hid_width = 5,
1141a3cc0921STaniya Das 	.parent_map = gcc_parent_map_3,
1142a3cc0921STaniya Das 	.freq_tbl = ftbl_gcc_usb30_prim_mock_utmi_clk_src,
1143a3cc0921STaniya Das 	.clkr.hw.init = &(struct clk_init_data){
1144a3cc0921STaniya Das 		.name = "gcc_usb30_sec_mock_utmi_clk_src",
1145a3cc0921STaniya Das 		.parent_data = gcc_parent_data_3,
1146a3cc0921STaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_3),
1147a3cc0921STaniya Das 		.ops = &clk_rcg2_ops,
1148a3cc0921STaniya Das 	},
1149a3cc0921STaniya Das };
1150a3cc0921STaniya Das 
1151a3cc0921STaniya Das static struct clk_rcg2 gcc_usb3_prim_phy_aux_clk_src = {
1152a3cc0921STaniya Das 	.cmd_rcgr = 0xf064,
1153a3cc0921STaniya Das 	.mnd_width = 0,
1154a3cc0921STaniya Das 	.hid_width = 5,
1155a3cc0921STaniya Das 	.parent_map = gcc_parent_map_2,
1156a3cc0921STaniya Das 	.freq_tbl = ftbl_gcc_usb30_prim_mock_utmi_clk_src,
1157a3cc0921STaniya Das 	.clkr.hw.init = &(struct clk_init_data){
1158a3cc0921STaniya Das 		.name = "gcc_usb3_prim_phy_aux_clk_src",
1159a3cc0921STaniya Das 		.parent_data = gcc_parent_data_2,
1160a3cc0921STaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_2),
1161a3cc0921STaniya Das 		.ops = &clk_rcg2_ops,
1162a3cc0921STaniya Das 	},
1163a3cc0921STaniya Das };
1164a3cc0921STaniya Das 
1165a3cc0921STaniya Das static struct clk_rcg2 gcc_usb3_sec_phy_aux_clk_src = {
1166a3cc0921STaniya Das 	.cmd_rcgr = 0x9e064,
1167a3cc0921STaniya Das 	.mnd_width = 0,
1168a3cc0921STaniya Das 	.hid_width = 5,
1169a3cc0921STaniya Das 	.parent_map = gcc_parent_map_2,
1170a3cc0921STaniya Das 	.freq_tbl = ftbl_gcc_usb30_prim_mock_utmi_clk_src,
1171a3cc0921STaniya Das 	.clkr.hw.init = &(struct clk_init_data){
1172a3cc0921STaniya Das 		.name = "gcc_usb3_sec_phy_aux_clk_src",
1173a3cc0921STaniya Das 		.parent_data = gcc_parent_data_2,
1174a3cc0921STaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_2),
1175a3cc0921STaniya Das 		.ops = &clk_rcg2_ops,
1176a3cc0921STaniya Das 	},
1177a3cc0921STaniya Das };
1178a3cc0921STaniya Das 
1179a3cc0921STaniya Das static const struct freq_tbl ftbl_gcc_sec_ctrl_clk_src[] = {
1180a3cc0921STaniya Das 	F(4800000, P_BI_TCXO, 4, 0, 0),
1181a3cc0921STaniya Das 	F(19200000, P_BI_TCXO, 1, 0, 0),
1182a3cc0921STaniya Das 	{ }
1183a3cc0921STaniya Das };
1184a3cc0921STaniya Das 
1185a3cc0921STaniya Das static struct clk_rcg2 gcc_sec_ctrl_clk_src = {
1186a3cc0921STaniya Das 	.cmd_rcgr = 0x3d02c,
1187a3cc0921STaniya Das 	.mnd_width = 0,
1188a3cc0921STaniya Das 	.hid_width = 5,
1189a3cc0921STaniya Das 	.parent_map = gcc_parent_map_3,
1190a3cc0921STaniya Das 	.freq_tbl = ftbl_gcc_sec_ctrl_clk_src,
1191a3cc0921STaniya Das 	.clkr.hw.init = &(struct clk_init_data){
1192a3cc0921STaniya Das 		.name = "gcc_sec_ctrl_clk_src",
1193a3cc0921STaniya Das 		.parent_data = gcc_parent_data_3,
1194a3cc0921STaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_3),
1195a3cc0921STaniya Das 		.ops = &clk_rcg2_ops,
1196a3cc0921STaniya Das 	},
1197a3cc0921STaniya Das };
1198a3cc0921STaniya Das 
1199a3cc0921STaniya Das static struct clk_regmap_div gcc_usb30_prim_mock_utmi_postdiv_clk_src = {
1200a3cc0921STaniya Das 	.reg = 0xf050,
1201a3cc0921STaniya Das 	.shift = 0,
1202a3cc0921STaniya Das 	.width = 4,
1203a3cc0921STaniya Das 	.clkr.hw.init = &(struct clk_init_data) {
1204a3cc0921STaniya Das 		.name = "gcc_usb30_prim_mock_utmi_postdiv_clk_src",
120553ec3b32SDmitry Baryshkov 		.parent_hws = (const struct clk_hw*[]){
120653ec3b32SDmitry Baryshkov 			&gcc_usb30_prim_mock_utmi_clk_src.clkr.hw,
1207a3cc0921STaniya Das 		},
1208a3cc0921STaniya Das 		.num_parents = 1,
1209a3cc0921STaniya Das 		.flags = CLK_SET_RATE_PARENT,
1210a3cc0921STaniya Das 		.ops = &clk_regmap_div_ro_ops,
1211a3cc0921STaniya Das 	},
1212a3cc0921STaniya Das };
1213a3cc0921STaniya Das 
1214a3cc0921STaniya Das static struct clk_regmap_div gcc_usb30_sec_mock_utmi_postdiv_clk_src = {
1215a3cc0921STaniya Das 	.reg = 0x9e050,
1216a3cc0921STaniya Das 	.shift = 0,
1217a3cc0921STaniya Das 	.width = 4,
1218a3cc0921STaniya Das 	.clkr.hw.init = &(struct clk_init_data) {
1219a3cc0921STaniya Das 		.name = "gcc_usb30_sec_mock_utmi_postdiv_clk_src",
122053ec3b32SDmitry Baryshkov 		.parent_hws = (const struct clk_hw*[]){
122153ec3b32SDmitry Baryshkov 			&gcc_usb30_sec_mock_utmi_clk_src.clkr.hw,
1222a3cc0921STaniya Das 		},
1223a3cc0921STaniya Das 		.num_parents = 1,
1224a3cc0921STaniya Das 		.flags = CLK_SET_RATE_PARENT,
1225a3cc0921STaniya Das 		.ops = &clk_regmap_div_ro_ops,
1226a3cc0921STaniya Das 	},
1227a3cc0921STaniya Das };
1228a3cc0921STaniya Das 
1229a3cc0921STaniya Das static struct clk_branch gcc_pcie_clkref_en = {
1230a3cc0921STaniya Das 	.halt_reg = 0x8c004,
1231a3cc0921STaniya Das 	.halt_check = BRANCH_HALT,
1232a3cc0921STaniya Das 	.clkr = {
1233a3cc0921STaniya Das 		.enable_reg = 0x8c004,
1234a3cc0921STaniya Das 		.enable_mask = BIT(0),
1235a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
1236a3cc0921STaniya Das 			.name = "gcc_pcie_clkref_en",
1237a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
1238a3cc0921STaniya Das 		},
1239a3cc0921STaniya Das 	},
1240a3cc0921STaniya Das };
1241a3cc0921STaniya Das 
1242a3cc0921STaniya Das static struct clk_branch gcc_edp_clkref_en = {
1243a3cc0921STaniya Das 	.halt_reg = 0x8c008,
1244a3cc0921STaniya Das 	.halt_check = BRANCH_HALT,
1245a3cc0921STaniya Das 	.clkr = {
1246a3cc0921STaniya Das 		.enable_reg = 0x8c008,
1247a3cc0921STaniya Das 		.enable_mask = BIT(0),
1248a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
1249a3cc0921STaniya Das 			.name = "gcc_edp_clkref_en",
1250a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
1251a3cc0921STaniya Das 		},
1252a3cc0921STaniya Das 	},
1253a3cc0921STaniya Das };
1254a3cc0921STaniya Das 
1255a3cc0921STaniya Das static struct clk_branch gcc_aggre_noc_pcie_0_axi_clk = {
1256a3cc0921STaniya Das 	.halt_reg = 0x6b080,
1257a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_SKIP,
1258a3cc0921STaniya Das 	.hwcg_reg = 0x6b080,
1259a3cc0921STaniya Das 	.hwcg_bit = 1,
1260a3cc0921STaniya Das 	.clkr = {
1261a3cc0921STaniya Das 		.enable_reg = 0x52000,
1262a3cc0921STaniya Das 		.enable_mask = BIT(12),
1263a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
1264a3cc0921STaniya Das 			.name = "gcc_aggre_noc_pcie_0_axi_clk",
1265a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
1266a3cc0921STaniya Das 		},
1267a3cc0921STaniya Das 	},
1268a3cc0921STaniya Das };
1269a3cc0921STaniya Das 
1270a3cc0921STaniya Das static struct clk_branch gcc_aggre_noc_pcie_1_axi_clk = {
1271a3cc0921STaniya Das 	.halt_reg = 0x8d084,
1272a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_SKIP,
1273a3cc0921STaniya Das 	.hwcg_reg = 0x8d084,
1274a3cc0921STaniya Das 	.hwcg_bit = 1,
1275a3cc0921STaniya Das 	.clkr = {
1276a3cc0921STaniya Das 		.enable_reg = 0x52000,
1277a3cc0921STaniya Das 		.enable_mask = BIT(11),
1278a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
1279a3cc0921STaniya Das 			.name = "gcc_aggre_noc_pcie_1_axi_clk",
1280a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
1281a3cc0921STaniya Das 		},
1282a3cc0921STaniya Das 	},
1283a3cc0921STaniya Das };
1284a3cc0921STaniya Das 
1285a3cc0921STaniya Das static struct clk_branch gcc_aggre_noc_pcie_tbu_clk = {
1286a3cc0921STaniya Das 	.halt_reg = 0x90010,
1287a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1288a3cc0921STaniya Das 	.hwcg_reg = 0x90010,
1289a3cc0921STaniya Das 	.hwcg_bit = 1,
1290a3cc0921STaniya Das 	.clkr = {
1291a3cc0921STaniya Das 		.enable_reg = 0x52000,
1292a3cc0921STaniya Das 		.enable_mask = BIT(18),
1293a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
1294a3cc0921STaniya Das 			.name = "gcc_aggre_noc_pcie_tbu_clk",
1295a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
1296a3cc0921STaniya Das 		},
1297a3cc0921STaniya Das 	},
1298a3cc0921STaniya Das };
1299a3cc0921STaniya Das 
1300a3cc0921STaniya Das static struct clk_branch gcc_aggre_noc_pcie_center_sf_axi_clk = {
1301a3cc0921STaniya Das 	.halt_reg = 0x8d088,
1302a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1303a3cc0921STaniya Das 	.hwcg_reg = 0x8d088,
1304a3cc0921STaniya Das 	.hwcg_bit = 1,
1305a3cc0921STaniya Das 	.clkr = {
1306a3cc0921STaniya Das 		.enable_reg = 0x52008,
1307a3cc0921STaniya Das 		.enable_mask = BIT(28),
1308a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
1309a3cc0921STaniya Das 			.name = "gcc_aggre_noc_pcie_center_sf_axi_clk",
1310a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
1311a3cc0921STaniya Das 		},
1312a3cc0921STaniya Das 	},
1313a3cc0921STaniya Das };
1314a3cc0921STaniya Das 
1315a3cc0921STaniya Das static struct clk_branch gcc_aggre_ufs_phy_axi_clk = {
1316a3cc0921STaniya Das 	.halt_reg = 0x770cc,
1317a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1318a3cc0921STaniya Das 	.hwcg_reg = 0x770cc,
1319a3cc0921STaniya Das 	.hwcg_bit = 1,
1320a3cc0921STaniya Das 	.clkr = {
1321a3cc0921STaniya Das 		.enable_reg = 0x770cc,
1322a3cc0921STaniya Das 		.enable_mask = BIT(0),
1323a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
1324a3cc0921STaniya Das 			.name = "gcc_aggre_ufs_phy_axi_clk",
132553ec3b32SDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
132653ec3b32SDmitry Baryshkov 				&gcc_ufs_phy_axi_clk_src.clkr.hw,
1327a3cc0921STaniya Das 			},
1328a3cc0921STaniya Das 			.num_parents = 1,
1329a3cc0921STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1330a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
1331a3cc0921STaniya Das 		},
1332a3cc0921STaniya Das 	},
1333a3cc0921STaniya Das };
1334a3cc0921STaniya Das 
1335a3cc0921STaniya Das static struct clk_branch gcc_aggre_usb3_prim_axi_clk = {
1336a3cc0921STaniya Das 	.halt_reg = 0xf080,
1337a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1338a3cc0921STaniya Das 	.hwcg_reg = 0xf080,
1339a3cc0921STaniya Das 	.hwcg_bit = 1,
1340a3cc0921STaniya Das 	.clkr = {
1341a3cc0921STaniya Das 		.enable_reg = 0xf080,
1342a3cc0921STaniya Das 		.enable_mask = BIT(0),
1343a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
1344a3cc0921STaniya Das 			.name = "gcc_aggre_usb3_prim_axi_clk",
134553ec3b32SDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
134653ec3b32SDmitry Baryshkov 				&gcc_usb30_prim_master_clk_src.clkr.hw,
1347a3cc0921STaniya Das 			},
1348a3cc0921STaniya Das 			.num_parents = 1,
1349a3cc0921STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1350a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
1351a3cc0921STaniya Das 		},
1352a3cc0921STaniya Das 	},
1353a3cc0921STaniya Das };
1354a3cc0921STaniya Das 
1355a3cc0921STaniya Das static struct clk_branch gcc_aggre_usb3_sec_axi_clk = {
1356a3cc0921STaniya Das 	.halt_reg = 0x9e080,
1357a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1358a3cc0921STaniya Das 	.hwcg_reg = 0x9e080,
1359a3cc0921STaniya Das 	.hwcg_bit = 1,
1360a3cc0921STaniya Das 	.clkr = {
1361a3cc0921STaniya Das 		.enable_reg = 0x9e080,
1362a3cc0921STaniya Das 		.enable_mask = BIT(0),
1363a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
1364a3cc0921STaniya Das 			.name = "gcc_aggre_usb3_sec_axi_clk",
136553ec3b32SDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
136653ec3b32SDmitry Baryshkov 				&gcc_usb30_sec_master_clk_src.clkr.hw,
1367a3cc0921STaniya Das 			},
1368a3cc0921STaniya Das 			.num_parents = 1,
1369a3cc0921STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1370a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
1371a3cc0921STaniya Das 		},
1372a3cc0921STaniya Das 	},
1373a3cc0921STaniya Das };
1374a3cc0921STaniya Das 
1375a3cc0921STaniya Das static struct clk_branch gcc_camera_hf_axi_clk = {
1376a3cc0921STaniya Das 	.halt_reg = 0x26010,
1377a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_SKIP,
1378a3cc0921STaniya Das 	.hwcg_reg = 0x26010,
1379a3cc0921STaniya Das 	.hwcg_bit = 1,
1380a3cc0921STaniya Das 	.clkr = {
1381a3cc0921STaniya Das 		.enable_reg = 0x26010,
1382a3cc0921STaniya Das 		.enable_mask = BIT(0),
1383a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
1384a3cc0921STaniya Das 			.name = "gcc_camera_hf_axi_clk",
1385a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
1386a3cc0921STaniya Das 		},
1387a3cc0921STaniya Das 	},
1388a3cc0921STaniya Das };
1389a3cc0921STaniya Das 
1390a3cc0921STaniya Das static struct clk_branch gcc_camera_sf_axi_clk = {
1391a3cc0921STaniya Das 	.halt_reg = 0x2601c,
1392a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_SKIP,
1393a3cc0921STaniya Das 	.hwcg_reg = 0x2601c,
1394a3cc0921STaniya Das 	.hwcg_bit = 1,
1395a3cc0921STaniya Das 	.clkr = {
1396a3cc0921STaniya Das 		.enable_reg = 0x2601c,
1397a3cc0921STaniya Das 		.enable_mask = BIT(0),
1398a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
1399a3cc0921STaniya Das 			.name = "gcc_camera_sf_axi_clk",
1400a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
1401a3cc0921STaniya Das 		},
1402a3cc0921STaniya Das 	},
1403a3cc0921STaniya Das };
1404a3cc0921STaniya Das 
1405a3cc0921STaniya Das static struct clk_branch gcc_cfg_noc_usb3_prim_axi_clk = {
1406a3cc0921STaniya Das 	.halt_reg = 0xf07c,
1407a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1408a3cc0921STaniya Das 	.hwcg_reg = 0xf07c,
1409a3cc0921STaniya Das 	.hwcg_bit = 1,
1410a3cc0921STaniya Das 	.clkr = {
1411a3cc0921STaniya Das 		.enable_reg = 0xf07c,
1412a3cc0921STaniya Das 		.enable_mask = BIT(0),
1413a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
1414a3cc0921STaniya Das 			.name = "gcc_cfg_noc_usb3_prim_axi_clk",
141553ec3b32SDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
141653ec3b32SDmitry Baryshkov 				&gcc_usb30_prim_master_clk_src.clkr.hw,
1417a3cc0921STaniya Das 			},
1418a3cc0921STaniya Das 			.num_parents = 1,
1419a3cc0921STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1420a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
1421a3cc0921STaniya Das 		},
1422a3cc0921STaniya Das 	},
1423a3cc0921STaniya Das };
1424a3cc0921STaniya Das 
1425a3cc0921STaniya Das static struct clk_branch gcc_cfg_noc_usb3_sec_axi_clk = {
1426a3cc0921STaniya Das 	.halt_reg = 0x9e07c,
1427a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1428a3cc0921STaniya Das 	.hwcg_reg = 0x9e07c,
1429a3cc0921STaniya Das 	.hwcg_bit = 1,
1430a3cc0921STaniya Das 	.clkr = {
1431a3cc0921STaniya Das 		.enable_reg = 0x9e07c,
1432a3cc0921STaniya Das 		.enable_mask = BIT(0),
1433a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
1434a3cc0921STaniya Das 			.name = "gcc_cfg_noc_usb3_sec_axi_clk",
143553ec3b32SDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
143653ec3b32SDmitry Baryshkov 				&gcc_usb30_sec_master_clk_src.clkr.hw,
1437a3cc0921STaniya Das 			},
1438a3cc0921STaniya Das 			.num_parents = 1,
1439a3cc0921STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1440a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
1441a3cc0921STaniya Das 		},
1442a3cc0921STaniya Das 	},
1443a3cc0921STaniya Das };
1444a3cc0921STaniya Das 
1445a3cc0921STaniya Das static struct clk_branch gcc_ddrss_gpu_axi_clk = {
1446a3cc0921STaniya Das 	.halt_reg = 0x71154,
1447a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_SKIP,
1448a3cc0921STaniya Das 	.hwcg_reg = 0x71154,
1449a3cc0921STaniya Das 	.hwcg_bit = 1,
1450a3cc0921STaniya Das 	.clkr = {
1451a3cc0921STaniya Das 		.enable_reg = 0x71154,
1452a3cc0921STaniya Das 		.enable_mask = BIT(0),
1453a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
1454a3cc0921STaniya Das 			.name = "gcc_ddrss_gpu_axi_clk",
1455a3cc0921STaniya Das 			.ops = &clk_branch2_aon_ops,
1456a3cc0921STaniya Das 		},
1457a3cc0921STaniya Das 	},
1458a3cc0921STaniya Das };
1459a3cc0921STaniya Das 
1460a3cc0921STaniya Das static struct clk_branch gcc_ddrss_pcie_sf_clk = {
1461a3cc0921STaniya Das 	.halt_reg = 0x8d080,
1462a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_SKIP,
1463a3cc0921STaniya Das 	.hwcg_reg = 0x8d080,
1464a3cc0921STaniya Das 	.hwcg_bit = 1,
1465a3cc0921STaniya Das 	.clkr = {
1466a3cc0921STaniya Das 		.enable_reg = 0x52000,
1467a3cc0921STaniya Das 		.enable_mask = BIT(19),
1468a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
1469a3cc0921STaniya Das 			.name = "gcc_ddrss_pcie_sf_clk",
1470a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
1471a3cc0921STaniya Das 		},
1472a3cc0921STaniya Das 	},
1473a3cc0921STaniya Das };
1474a3cc0921STaniya Das 
1475a3cc0921STaniya Das static struct clk_branch gcc_disp_gpll0_clk_src = {
1476a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_DELAY,
1477a3cc0921STaniya Das 	.clkr = {
1478a3cc0921STaniya Das 		.enable_reg = 0x52000,
1479a3cc0921STaniya Das 		.enable_mask = BIT(7),
1480a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
1481a3cc0921STaniya Das 			.name = "gcc_disp_gpll0_clk_src",
148253ec3b32SDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
148353ec3b32SDmitry Baryshkov 				&gcc_gpll0.clkr.hw,
1484a3cc0921STaniya Das 			},
1485a3cc0921STaniya Das 			.num_parents = 1,
1486a3cc0921STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1487a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
1488a3cc0921STaniya Das 		},
1489a3cc0921STaniya Das 	},
1490a3cc0921STaniya Das };
1491a3cc0921STaniya Das 
1492a3cc0921STaniya Das static struct clk_branch gcc_disp_hf_axi_clk = {
1493a3cc0921STaniya Das 	.halt_reg = 0x2700c,
1494a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_SKIP,
1495a3cc0921STaniya Das 	.hwcg_reg = 0x2700c,
1496a3cc0921STaniya Das 	.hwcg_bit = 1,
1497a3cc0921STaniya Das 	.clkr = {
1498a3cc0921STaniya Das 		.enable_reg = 0x2700c,
1499a3cc0921STaniya Das 		.enable_mask = BIT(0),
1500a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
1501a3cc0921STaniya Das 			.name = "gcc_disp_hf_axi_clk",
1502a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
1503a3cc0921STaniya Das 		},
1504a3cc0921STaniya Das 	},
1505a3cc0921STaniya Das };
1506a3cc0921STaniya Das 
1507a3cc0921STaniya Das static struct clk_branch gcc_disp_sf_axi_clk = {
1508a3cc0921STaniya Das 	.halt_reg = 0x27014,
1509a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_SKIP,
1510a3cc0921STaniya Das 	.hwcg_reg = 0x27014,
1511a3cc0921STaniya Das 	.hwcg_bit = 1,
1512a3cc0921STaniya Das 	.clkr = {
1513a3cc0921STaniya Das 		.enable_reg = 0x27014,
1514a3cc0921STaniya Das 		.enable_mask = BIT(0),
1515a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
1516a3cc0921STaniya Das 			.name = "gcc_disp_sf_axi_clk",
1517a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
1518a3cc0921STaniya Das 		},
1519a3cc0921STaniya Das 	},
1520a3cc0921STaniya Das };
1521a3cc0921STaniya Das 
1522a3cc0921STaniya Das static struct clk_branch gcc_gp1_clk = {
1523a3cc0921STaniya Das 	.halt_reg = 0x64000,
1524a3cc0921STaniya Das 	.halt_check = BRANCH_HALT,
1525a3cc0921STaniya Das 	.clkr = {
1526a3cc0921STaniya Das 		.enable_reg = 0x64000,
1527a3cc0921STaniya Das 		.enable_mask = BIT(0),
1528a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
1529a3cc0921STaniya Das 			.name = "gcc_gp1_clk",
153053ec3b32SDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
153153ec3b32SDmitry Baryshkov 				&gcc_gp1_clk_src.clkr.hw,
1532a3cc0921STaniya Das 			},
1533a3cc0921STaniya Das 			.num_parents = 1,
1534a3cc0921STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1535a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
1536a3cc0921STaniya Das 		},
1537a3cc0921STaniya Das 	},
1538a3cc0921STaniya Das };
1539a3cc0921STaniya Das 
1540a3cc0921STaniya Das static struct clk_branch gcc_gp2_clk = {
1541a3cc0921STaniya Das 	.halt_reg = 0x65000,
1542a3cc0921STaniya Das 	.halt_check = BRANCH_HALT,
1543a3cc0921STaniya Das 	.clkr = {
1544a3cc0921STaniya Das 		.enable_reg = 0x65000,
1545a3cc0921STaniya Das 		.enable_mask = BIT(0),
1546a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
1547a3cc0921STaniya Das 			.name = "gcc_gp2_clk",
154853ec3b32SDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
154953ec3b32SDmitry Baryshkov 				&gcc_gp2_clk_src.clkr.hw,
1550a3cc0921STaniya Das 			},
1551a3cc0921STaniya Das 			.num_parents = 1,
1552a3cc0921STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1553a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
1554a3cc0921STaniya Das 		},
1555a3cc0921STaniya Das 	},
1556a3cc0921STaniya Das };
1557a3cc0921STaniya Das 
1558a3cc0921STaniya Das static struct clk_branch gcc_gp3_clk = {
1559a3cc0921STaniya Das 	.halt_reg = 0x66000,
1560a3cc0921STaniya Das 	.halt_check = BRANCH_HALT,
1561a3cc0921STaniya Das 	.clkr = {
1562a3cc0921STaniya Das 		.enable_reg = 0x66000,
1563a3cc0921STaniya Das 		.enable_mask = BIT(0),
1564a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
1565a3cc0921STaniya Das 			.name = "gcc_gp3_clk",
156653ec3b32SDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
156753ec3b32SDmitry Baryshkov 				&gcc_gp3_clk_src.clkr.hw,
1568a3cc0921STaniya Das 			},
1569a3cc0921STaniya Das 			.num_parents = 1,
1570a3cc0921STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1571a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
1572a3cc0921STaniya Das 		},
1573a3cc0921STaniya Das 	},
1574a3cc0921STaniya Das };
1575a3cc0921STaniya Das 
1576a3cc0921STaniya Das static struct clk_branch gcc_gpu_gpll0_clk_src = {
1577a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_DELAY,
1578a3cc0921STaniya Das 	.clkr = {
1579a3cc0921STaniya Das 		.enable_reg = 0x52000,
1580a3cc0921STaniya Das 		.enable_mask = BIT(15),
1581a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
1582a3cc0921STaniya Das 			.name = "gcc_gpu_gpll0_clk_src",
158353ec3b32SDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
158453ec3b32SDmitry Baryshkov 				&gcc_gpll0.clkr.hw,
1585a3cc0921STaniya Das 			},
1586a3cc0921STaniya Das 			.num_parents = 1,
1587a3cc0921STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1588a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
1589a3cc0921STaniya Das 		},
1590a3cc0921STaniya Das 	},
1591a3cc0921STaniya Das };
1592a3cc0921STaniya Das 
1593a3cc0921STaniya Das static struct clk_branch gcc_gpu_gpll0_div_clk_src = {
1594a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_DELAY,
1595a3cc0921STaniya Das 	.clkr = {
1596a3cc0921STaniya Das 		.enable_reg = 0x52000,
1597a3cc0921STaniya Das 		.enable_mask = BIT(16),
1598a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
1599a3cc0921STaniya Das 			.name = "gcc_gpu_gpll0_div_clk_src",
160053ec3b32SDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
160153ec3b32SDmitry Baryshkov 				&gcc_gpll0_out_even.clkr.hw,
1602a3cc0921STaniya Das 			},
1603a3cc0921STaniya Das 			.num_parents = 1,
1604a3cc0921STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1605a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
1606a3cc0921STaniya Das 		},
1607a3cc0921STaniya Das 	},
1608a3cc0921STaniya Das };
1609a3cc0921STaniya Das 
1610a3cc0921STaniya Das static struct clk_branch gcc_gpu_iref_en = {
1611a3cc0921STaniya Das 	.halt_reg = 0x8c014,
1612a3cc0921STaniya Das 	.halt_check = BRANCH_HALT,
1613a3cc0921STaniya Das 	.clkr = {
1614a3cc0921STaniya Das 		.enable_reg = 0x8c014,
1615a3cc0921STaniya Das 		.enable_mask = BIT(0),
1616a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
1617a3cc0921STaniya Das 			.name = "gcc_gpu_iref_en",
1618a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
1619a3cc0921STaniya Das 		},
1620a3cc0921STaniya Das 	},
1621a3cc0921STaniya Das };
1622a3cc0921STaniya Das 
1623a3cc0921STaniya Das static struct clk_branch gcc_gpu_memnoc_gfx_clk = {
1624a3cc0921STaniya Das 	.halt_reg = 0x7100c,
1625a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1626a3cc0921STaniya Das 	.hwcg_reg = 0x7100c,
1627a3cc0921STaniya Das 	.hwcg_bit = 1,
1628a3cc0921STaniya Das 	.clkr = {
1629a3cc0921STaniya Das 		.enable_reg = 0x7100c,
1630a3cc0921STaniya Das 		.enable_mask = BIT(0),
1631a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
1632a3cc0921STaniya Das 			.name = "gcc_gpu_memnoc_gfx_clk",
1633a3cc0921STaniya Das 			.ops = &clk_branch2_aon_ops,
1634a3cc0921STaniya Das 		},
1635a3cc0921STaniya Das 	},
1636a3cc0921STaniya Das };
1637a3cc0921STaniya Das 
1638a3cc0921STaniya Das static struct clk_branch gcc_gpu_snoc_dvm_gfx_clk = {
1639a3cc0921STaniya Das 	.halt_reg = 0x71018,
1640a3cc0921STaniya Das 	.halt_check = BRANCH_HALT,
1641a3cc0921STaniya Das 	.clkr = {
1642a3cc0921STaniya Das 		.enable_reg = 0x71018,
1643a3cc0921STaniya Das 		.enable_mask = BIT(0),
1644a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
1645a3cc0921STaniya Das 			.name = "gcc_gpu_snoc_dvm_gfx_clk",
1646a3cc0921STaniya Das 			.ops = &clk_branch2_aon_ops,
1647a3cc0921STaniya Das 		},
1648a3cc0921STaniya Das 	},
1649a3cc0921STaniya Das };
1650a3cc0921STaniya Das 
1651a3cc0921STaniya Das static struct clk_branch gcc_pcie0_phy_rchng_clk = {
1652a3cc0921STaniya Das 	.halt_reg = 0x6b038,
1653a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1654a3cc0921STaniya Das 	.clkr = {
1655a3cc0921STaniya Das 		.enable_reg = 0x52000,
1656a3cc0921STaniya Das 		.enable_mask = BIT(22),
1657a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
1658a3cc0921STaniya Das 			.name = "gcc_pcie0_phy_rchng_clk",
165953ec3b32SDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
166053ec3b32SDmitry Baryshkov 				&gcc_pcie_0_phy_rchng_clk_src.clkr.hw,
1661a3cc0921STaniya Das 			},
1662a3cc0921STaniya Das 			.num_parents = 1,
1663a3cc0921STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1664a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
1665a3cc0921STaniya Das 		},
1666a3cc0921STaniya Das 	},
1667a3cc0921STaniya Das };
1668a3cc0921STaniya Das 
1669a3cc0921STaniya Das static struct clk_branch gcc_pcie1_phy_rchng_clk = {
1670a3cc0921STaniya Das 	.halt_reg = 0x8d038,
1671a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1672a3cc0921STaniya Das 	.clkr = {
1673a3cc0921STaniya Das 		.enable_reg = 0x52000,
1674a3cc0921STaniya Das 		.enable_mask = BIT(23),
1675a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
1676a3cc0921STaniya Das 			.name = "gcc_pcie1_phy_rchng_clk",
167753ec3b32SDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
167853ec3b32SDmitry Baryshkov 				&gcc_pcie_1_phy_rchng_clk_src.clkr.hw,
1679a3cc0921STaniya Das 			},
1680a3cc0921STaniya Das 			.num_parents = 1,
1681a3cc0921STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1682a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
1683a3cc0921STaniya Das 		},
1684a3cc0921STaniya Das 	},
1685a3cc0921STaniya Das };
1686a3cc0921STaniya Das 
1687a3cc0921STaniya Das static struct clk_branch gcc_pcie_0_aux_clk = {
1688a3cc0921STaniya Das 	.halt_reg = 0x6b028,
1689a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1690a3cc0921STaniya Das 	.clkr = {
1691a3cc0921STaniya Das 		.enable_reg = 0x52008,
1692a3cc0921STaniya Das 		.enable_mask = BIT(3),
1693a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
1694a3cc0921STaniya Das 			.name = "gcc_pcie_0_aux_clk",
169553ec3b32SDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
169653ec3b32SDmitry Baryshkov 				&gcc_pcie_0_aux_clk_src.clkr.hw,
1697a3cc0921STaniya Das 			},
1698a3cc0921STaniya Das 			.num_parents = 1,
1699a3cc0921STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1700a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
1701a3cc0921STaniya Das 		},
1702a3cc0921STaniya Das 	},
1703a3cc0921STaniya Das };
1704a3cc0921STaniya Das 
1705a3cc0921STaniya Das static struct clk_branch gcc_pcie_0_cfg_ahb_clk = {
1706a3cc0921STaniya Das 	.halt_reg = 0x6b024,
1707a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1708a3cc0921STaniya Das 	.hwcg_reg = 0x6b024,
1709a3cc0921STaniya Das 	.hwcg_bit = 1,
1710a3cc0921STaniya Das 	.clkr = {
1711a3cc0921STaniya Das 		.enable_reg = 0x52008,
1712a3cc0921STaniya Das 		.enable_mask = BIT(2),
1713a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
1714a3cc0921STaniya Das 			.name = "gcc_pcie_0_cfg_ahb_clk",
1715a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
1716a3cc0921STaniya Das 		},
1717a3cc0921STaniya Das 	},
1718a3cc0921STaniya Das };
1719a3cc0921STaniya Das 
1720a3cc0921STaniya Das static struct clk_branch gcc_pcie_0_mstr_axi_clk = {
1721a3cc0921STaniya Das 	.halt_reg = 0x6b01c,
1722a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_SKIP,
1723a3cc0921STaniya Das 	.clkr = {
1724a3cc0921STaniya Das 		.enable_reg = 0x52008,
1725a3cc0921STaniya Das 		.enable_mask = BIT(1),
1726a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
1727a3cc0921STaniya Das 			.name = "gcc_pcie_0_mstr_axi_clk",
1728a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
1729a3cc0921STaniya Das 		},
1730a3cc0921STaniya Das 	},
1731a3cc0921STaniya Das };
1732a3cc0921STaniya Das 
1733a3cc0921STaniya Das static struct clk_branch gcc_pcie_0_pipe_clk = {
1734a3cc0921STaniya Das 	.halt_reg = 0x6b030,
1735a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_SKIP,
1736a3cc0921STaniya Das 	.clkr = {
1737a3cc0921STaniya Das 		.enable_reg = 0x52008,
1738a3cc0921STaniya Das 		.enable_mask = BIT(4),
1739a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
1740a3cc0921STaniya Das 			.name = "gcc_pcie_0_pipe_clk",
174153ec3b32SDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
174253ec3b32SDmitry Baryshkov 				&gcc_pcie_0_pipe_clk_src.clkr.hw,
1743a3cc0921STaniya Das 			},
1744a3cc0921STaniya Das 			.num_parents = 1,
1745a3cc0921STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1746a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
1747a3cc0921STaniya Das 		},
1748a3cc0921STaniya Das 	},
1749a3cc0921STaniya Das };
1750a3cc0921STaniya Das 
1751a3cc0921STaniya Das static struct clk_branch gcc_pcie_0_slv_axi_clk = {
1752a3cc0921STaniya Das 	.halt_reg = 0x6b014,
1753a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1754a3cc0921STaniya Das 	.clkr = {
1755a3cc0921STaniya Das 		.enable_reg = 0x52008,
1756a3cc0921STaniya Das 		.enable_mask = BIT(0),
1757a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
1758a3cc0921STaniya Das 			.name = "gcc_pcie_0_slv_axi_clk",
1759a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
1760a3cc0921STaniya Das 		},
1761a3cc0921STaniya Das 	},
1762a3cc0921STaniya Das };
1763a3cc0921STaniya Das 
1764a3cc0921STaniya Das static struct clk_branch gcc_pcie_0_slv_q2a_axi_clk = {
1765a3cc0921STaniya Das 	.halt_reg = 0x6b010,
1766a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1767a3cc0921STaniya Das 	.clkr = {
1768a3cc0921STaniya Das 		.enable_reg = 0x52008,
1769a3cc0921STaniya Das 		.enable_mask = BIT(5),
1770a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
1771a3cc0921STaniya Das 			.name = "gcc_pcie_0_slv_q2a_axi_clk",
1772a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
1773a3cc0921STaniya Das 		},
1774a3cc0921STaniya Das 	},
1775a3cc0921STaniya Das };
1776a3cc0921STaniya Das 
1777a3cc0921STaniya Das static struct clk_branch gcc_pcie_1_aux_clk = {
1778a3cc0921STaniya Das 	.halt_reg = 0x8d028,
1779a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1780a3cc0921STaniya Das 	.clkr = {
1781a3cc0921STaniya Das 		.enable_reg = 0x52000,
1782a3cc0921STaniya Das 		.enable_mask = BIT(29),
1783a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
1784a3cc0921STaniya Das 			.name = "gcc_pcie_1_aux_clk",
178553ec3b32SDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
178653ec3b32SDmitry Baryshkov 				&gcc_pcie_1_aux_clk_src.clkr.hw,
1787a3cc0921STaniya Das 			},
1788a3cc0921STaniya Das 			.num_parents = 1,
1789a3cc0921STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1790a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
1791a3cc0921STaniya Das 		},
1792a3cc0921STaniya Das 	},
1793a3cc0921STaniya Das };
1794a3cc0921STaniya Das 
1795a3cc0921STaniya Das static struct clk_branch gcc_pcie_1_cfg_ahb_clk = {
1796a3cc0921STaniya Das 	.halt_reg = 0x8d024,
1797a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1798a3cc0921STaniya Das 	.hwcg_reg = 0x8d024,
1799a3cc0921STaniya Das 	.hwcg_bit = 1,
1800a3cc0921STaniya Das 	.clkr = {
1801a3cc0921STaniya Das 		.enable_reg = 0x52000,
1802a3cc0921STaniya Das 		.enable_mask = BIT(28),
1803a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
1804a3cc0921STaniya Das 			.name = "gcc_pcie_1_cfg_ahb_clk",
1805a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
1806a3cc0921STaniya Das 		},
1807a3cc0921STaniya Das 	},
1808a3cc0921STaniya Das };
1809a3cc0921STaniya Das 
1810a3cc0921STaniya Das static struct clk_branch gcc_pcie_1_mstr_axi_clk = {
1811a3cc0921STaniya Das 	.halt_reg = 0x8d01c,
1812a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_SKIP,
1813a3cc0921STaniya Das 	.clkr = {
1814a3cc0921STaniya Das 		.enable_reg = 0x52000,
1815a3cc0921STaniya Das 		.enable_mask = BIT(27),
1816a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
1817a3cc0921STaniya Das 			.name = "gcc_pcie_1_mstr_axi_clk",
1818a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
1819a3cc0921STaniya Das 		},
1820a3cc0921STaniya Das 	},
1821a3cc0921STaniya Das };
1822a3cc0921STaniya Das 
1823a3cc0921STaniya Das static struct clk_branch gcc_pcie_1_pipe_clk = {
1824a3cc0921STaniya Das 	.halt_reg = 0x8d030,
1825a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_SKIP,
1826a3cc0921STaniya Das 	.clkr = {
1827a3cc0921STaniya Das 		.enable_reg = 0x52000,
1828a3cc0921STaniya Das 		.enable_mask = BIT(30),
1829a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
1830a3cc0921STaniya Das 			.name = "gcc_pcie_1_pipe_clk",
183153ec3b32SDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
183253ec3b32SDmitry Baryshkov 				&gcc_pcie_1_pipe_clk_src.clkr.hw,
1833a3cc0921STaniya Das 			},
1834a3cc0921STaniya Das 			.num_parents = 1,
1835a3cc0921STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1836a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
1837a3cc0921STaniya Das 		},
1838a3cc0921STaniya Das 	},
1839a3cc0921STaniya Das };
1840a3cc0921STaniya Das 
1841a3cc0921STaniya Das static struct clk_branch gcc_pcie_1_slv_axi_clk = {
1842a3cc0921STaniya Das 	.halt_reg = 0x8d014,
1843a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1844a3cc0921STaniya Das 	.clkr = {
1845a3cc0921STaniya Das 		.enable_reg = 0x52000,
1846a3cc0921STaniya Das 		.enable_mask = BIT(26),
1847a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
1848a3cc0921STaniya Das 			.name = "gcc_pcie_1_slv_axi_clk",
1849a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
1850a3cc0921STaniya Das 		},
1851a3cc0921STaniya Das 	},
1852a3cc0921STaniya Das };
1853a3cc0921STaniya Das 
1854a3cc0921STaniya Das static struct clk_branch gcc_pcie_1_slv_q2a_axi_clk = {
1855a3cc0921STaniya Das 	.halt_reg = 0x8d010,
1856a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1857a3cc0921STaniya Das 	.clkr = {
1858a3cc0921STaniya Das 		.enable_reg = 0x52000,
1859a3cc0921STaniya Das 		.enable_mask = BIT(25),
1860a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
1861a3cc0921STaniya Das 			.name = "gcc_pcie_1_slv_q2a_axi_clk",
1862a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
1863a3cc0921STaniya Das 		},
1864a3cc0921STaniya Das 	},
1865a3cc0921STaniya Das };
1866a3cc0921STaniya Das 
1867a3cc0921STaniya Das static struct clk_branch gcc_pcie_throttle_core_clk = {
1868a3cc0921STaniya Das 	.halt_reg = 0x90018,
1869a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_SKIP,
1870a3cc0921STaniya Das 	.hwcg_reg = 0x90018,
1871a3cc0921STaniya Das 	.hwcg_bit = 1,
1872a3cc0921STaniya Das 	.clkr = {
1873a3cc0921STaniya Das 		.enable_reg = 0x52000,
1874a3cc0921STaniya Das 		.enable_mask = BIT(20),
1875a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
1876a3cc0921STaniya Das 			.name = "gcc_pcie_throttle_core_clk",
1877a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
1878a3cc0921STaniya Das 		},
1879a3cc0921STaniya Das 	},
1880a3cc0921STaniya Das };
1881a3cc0921STaniya Das 
1882a3cc0921STaniya Das static struct clk_branch gcc_pdm2_clk = {
1883a3cc0921STaniya Das 	.halt_reg = 0x3300c,
1884a3cc0921STaniya Das 	.halt_check = BRANCH_HALT,
1885a3cc0921STaniya Das 	.clkr = {
1886a3cc0921STaniya Das 		.enable_reg = 0x3300c,
1887a3cc0921STaniya Das 		.enable_mask = BIT(0),
1888a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
1889a3cc0921STaniya Das 			.name = "gcc_pdm2_clk",
189053ec3b32SDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
189153ec3b32SDmitry Baryshkov 				&gcc_pdm2_clk_src.clkr.hw,
1892a3cc0921STaniya Das 			},
1893a3cc0921STaniya Das 			.num_parents = 1,
1894a3cc0921STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1895a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
1896a3cc0921STaniya Das 		},
1897a3cc0921STaniya Das 	},
1898a3cc0921STaniya Das };
1899a3cc0921STaniya Das 
1900a3cc0921STaniya Das static struct clk_branch gcc_pdm_ahb_clk = {
1901a3cc0921STaniya Das 	.halt_reg = 0x33004,
1902a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1903a3cc0921STaniya Das 	.hwcg_reg = 0x33004,
1904a3cc0921STaniya Das 	.hwcg_bit = 1,
1905a3cc0921STaniya Das 	.clkr = {
1906a3cc0921STaniya Das 		.enable_reg = 0x33004,
1907a3cc0921STaniya Das 		.enable_mask = BIT(0),
1908a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
1909a3cc0921STaniya Das 			.name = "gcc_pdm_ahb_clk",
1910a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
1911a3cc0921STaniya Das 		},
1912a3cc0921STaniya Das 	},
1913a3cc0921STaniya Das };
1914a3cc0921STaniya Das 
1915a3cc0921STaniya Das static struct clk_branch gcc_pdm_xo4_clk = {
1916a3cc0921STaniya Das 	.halt_reg = 0x33008,
1917a3cc0921STaniya Das 	.halt_check = BRANCH_HALT,
1918a3cc0921STaniya Das 	.clkr = {
1919a3cc0921STaniya Das 		.enable_reg = 0x33008,
1920a3cc0921STaniya Das 		.enable_mask = BIT(0),
1921a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
1922a3cc0921STaniya Das 			.name = "gcc_pdm_xo4_clk",
1923a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
1924a3cc0921STaniya Das 		},
1925a3cc0921STaniya Das 	},
1926a3cc0921STaniya Das };
1927a3cc0921STaniya Das 
1928a3cc0921STaniya Das static struct clk_branch gcc_qmip_camera_nrt_ahb_clk = {
1929a3cc0921STaniya Das 	.halt_reg = 0x26008,
1930a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1931a3cc0921STaniya Das 	.hwcg_reg = 0x26008,
1932a3cc0921STaniya Das 	.hwcg_bit = 1,
1933a3cc0921STaniya Das 	.clkr = {
1934a3cc0921STaniya Das 		.enable_reg = 0x26008,
1935a3cc0921STaniya Das 		.enable_mask = BIT(0),
1936a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
1937a3cc0921STaniya Das 			.name = "gcc_qmip_camera_nrt_ahb_clk",
1938a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
1939a3cc0921STaniya Das 		},
1940a3cc0921STaniya Das 	},
1941a3cc0921STaniya Das };
1942a3cc0921STaniya Das 
1943a3cc0921STaniya Das static struct clk_branch gcc_qmip_camera_rt_ahb_clk = {
1944a3cc0921STaniya Das 	.halt_reg = 0x2600c,
1945a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1946a3cc0921STaniya Das 	.hwcg_reg = 0x2600c,
1947a3cc0921STaniya Das 	.hwcg_bit = 1,
1948a3cc0921STaniya Das 	.clkr = {
1949a3cc0921STaniya Das 		.enable_reg = 0x2600c,
1950a3cc0921STaniya Das 		.enable_mask = BIT(0),
1951a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
1952a3cc0921STaniya Das 			.name = "gcc_qmip_camera_rt_ahb_clk",
1953a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
1954a3cc0921STaniya Das 		},
1955a3cc0921STaniya Das 	},
1956a3cc0921STaniya Das };
1957a3cc0921STaniya Das 
1958a3cc0921STaniya Das static struct clk_branch gcc_qmip_disp_ahb_clk = {
1959a3cc0921STaniya Das 	.halt_reg = 0x27008,
1960a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1961a3cc0921STaniya Das 	.clkr = {
1962a3cc0921STaniya Das 		.enable_reg = 0x27008,
1963a3cc0921STaniya Das 		.enable_mask = BIT(0),
1964a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
1965a3cc0921STaniya Das 			.name = "gcc_qmip_disp_ahb_clk",
1966a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
1967a3cc0921STaniya Das 		},
1968a3cc0921STaniya Das 	},
1969a3cc0921STaniya Das };
1970a3cc0921STaniya Das 
1971a3cc0921STaniya Das static struct clk_branch gcc_qmip_video_vcodec_ahb_clk = {
1972a3cc0921STaniya Das 	.halt_reg = 0x28008,
1973a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1974a3cc0921STaniya Das 	.hwcg_reg = 0x28008,
1975a3cc0921STaniya Das 	.hwcg_bit = 1,
1976a3cc0921STaniya Das 	.clkr = {
1977a3cc0921STaniya Das 		.enable_reg = 0x28008,
1978a3cc0921STaniya Das 		.enable_mask = BIT(0),
1979a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
1980a3cc0921STaniya Das 			.name = "gcc_qmip_video_vcodec_ahb_clk",
1981a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
1982a3cc0921STaniya Das 		},
1983a3cc0921STaniya Das 	},
1984a3cc0921STaniya Das };
1985a3cc0921STaniya Das 
1986a3cc0921STaniya Das static struct clk_branch gcc_qspi_cnoc_periph_ahb_clk = {
1987a3cc0921STaniya Das 	.halt_reg = 0x4b004,
1988a3cc0921STaniya Das 	.halt_check = BRANCH_HALT,
1989a3cc0921STaniya Das 	.hwcg_reg = 0x4b004,
1990a3cc0921STaniya Das 	.hwcg_bit = 1,
1991a3cc0921STaniya Das 	.clkr = {
1992a3cc0921STaniya Das 		.enable_reg = 0x4b004,
1993a3cc0921STaniya Das 		.enable_mask = BIT(0),
1994a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
1995a3cc0921STaniya Das 			.name = "gcc_qspi_cnoc_periph_ahb_clk",
1996a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
1997a3cc0921STaniya Das 		},
1998a3cc0921STaniya Das 	},
1999a3cc0921STaniya Das };
2000a3cc0921STaniya Das 
2001a3cc0921STaniya Das static struct clk_branch gcc_qspi_core_clk = {
2002a3cc0921STaniya Das 	.halt_reg = 0x4b008,
2003a3cc0921STaniya Das 	.halt_check = BRANCH_HALT,
2004a3cc0921STaniya Das 	.clkr = {
2005a3cc0921STaniya Das 		.enable_reg = 0x4b008,
2006a3cc0921STaniya Das 		.enable_mask = BIT(0),
2007a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
2008a3cc0921STaniya Das 			.name = "gcc_qspi_core_clk",
200953ec3b32SDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
201053ec3b32SDmitry Baryshkov 				&gcc_qspi_core_clk_src.clkr.hw,
2011a3cc0921STaniya Das 			},
2012a3cc0921STaniya Das 			.num_parents = 1,
2013a3cc0921STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2014a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
2015a3cc0921STaniya Das 		},
2016a3cc0921STaniya Das 	},
2017a3cc0921STaniya Das };
2018a3cc0921STaniya Das 
2019a3cc0921STaniya Das static struct clk_branch gcc_qupv3_wrap0_core_2x_clk = {
2020a3cc0921STaniya Das 	.halt_reg = 0x23008,
2021a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2022a3cc0921STaniya Das 	.clkr = {
2023a3cc0921STaniya Das 		.enable_reg = 0x52008,
2024a3cc0921STaniya Das 		.enable_mask = BIT(9),
2025a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
2026a3cc0921STaniya Das 			.name = "gcc_qupv3_wrap0_core_2x_clk",
2027a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
2028a3cc0921STaniya Das 		},
2029a3cc0921STaniya Das 	},
2030a3cc0921STaniya Das };
2031a3cc0921STaniya Das 
2032a3cc0921STaniya Das static struct clk_branch gcc_qupv3_wrap0_core_clk = {
2033a3cc0921STaniya Das 	.halt_reg = 0x23000,
2034a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2035a3cc0921STaniya Das 	.clkr = {
2036a3cc0921STaniya Das 		.enable_reg = 0x52008,
2037a3cc0921STaniya Das 		.enable_mask = BIT(8),
2038a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
2039a3cc0921STaniya Das 			.name = "gcc_qupv3_wrap0_core_clk",
2040a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
2041a3cc0921STaniya Das 		},
2042a3cc0921STaniya Das 	},
2043a3cc0921STaniya Das };
2044a3cc0921STaniya Das 
2045a3cc0921STaniya Das static struct clk_branch gcc_qupv3_wrap0_s0_clk = {
2046a3cc0921STaniya Das 	.halt_reg = 0x1700c,
2047a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2048a3cc0921STaniya Das 	.clkr = {
2049a3cc0921STaniya Das 		.enable_reg = 0x52008,
2050a3cc0921STaniya Das 		.enable_mask = BIT(10),
2051a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
2052a3cc0921STaniya Das 			.name = "gcc_qupv3_wrap0_s0_clk",
205353ec3b32SDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
205453ec3b32SDmitry Baryshkov 				&gcc_qupv3_wrap0_s0_clk_src.clkr.hw,
2055a3cc0921STaniya Das 			},
2056a3cc0921STaniya Das 			.num_parents = 1,
2057a3cc0921STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2058a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
2059a3cc0921STaniya Das 		},
2060a3cc0921STaniya Das 	},
2061a3cc0921STaniya Das };
2062a3cc0921STaniya Das 
2063a3cc0921STaniya Das static struct clk_branch gcc_qupv3_wrap0_s1_clk = {
2064a3cc0921STaniya Das 	.halt_reg = 0x1713c,
2065a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2066a3cc0921STaniya Das 	.clkr = {
2067a3cc0921STaniya Das 		.enable_reg = 0x52008,
2068a3cc0921STaniya Das 		.enable_mask = BIT(11),
2069a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
2070a3cc0921STaniya Das 			.name = "gcc_qupv3_wrap0_s1_clk",
207153ec3b32SDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
207253ec3b32SDmitry Baryshkov 				&gcc_qupv3_wrap0_s1_clk_src.clkr.hw,
2073a3cc0921STaniya Das 			},
2074a3cc0921STaniya Das 			.num_parents = 1,
2075a3cc0921STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2076a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
2077a3cc0921STaniya Das 		},
2078a3cc0921STaniya Das 	},
2079a3cc0921STaniya Das };
2080a3cc0921STaniya Das 
2081a3cc0921STaniya Das static struct clk_branch gcc_qupv3_wrap0_s2_clk = {
2082a3cc0921STaniya Das 	.halt_reg = 0x1726c,
2083a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2084a3cc0921STaniya Das 	.clkr = {
2085a3cc0921STaniya Das 		.enable_reg = 0x52008,
2086a3cc0921STaniya Das 		.enable_mask = BIT(12),
2087a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
2088a3cc0921STaniya Das 			.name = "gcc_qupv3_wrap0_s2_clk",
208953ec3b32SDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
209053ec3b32SDmitry Baryshkov 				&gcc_qupv3_wrap0_s2_clk_src.clkr.hw,
2091a3cc0921STaniya Das 			},
2092a3cc0921STaniya Das 			.num_parents = 1,
2093a3cc0921STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2094a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
2095a3cc0921STaniya Das 		},
2096a3cc0921STaniya Das 	},
2097a3cc0921STaniya Das };
2098a3cc0921STaniya Das 
2099a3cc0921STaniya Das static struct clk_branch gcc_qupv3_wrap0_s3_clk = {
2100a3cc0921STaniya Das 	.halt_reg = 0x1739c,
2101a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2102a3cc0921STaniya Das 	.clkr = {
2103a3cc0921STaniya Das 		.enable_reg = 0x52008,
2104a3cc0921STaniya Das 		.enable_mask = BIT(13),
2105a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
2106a3cc0921STaniya Das 			.name = "gcc_qupv3_wrap0_s3_clk",
210753ec3b32SDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
210853ec3b32SDmitry Baryshkov 				&gcc_qupv3_wrap0_s3_clk_src.clkr.hw,
2109a3cc0921STaniya Das 			},
2110a3cc0921STaniya Das 			.num_parents = 1,
2111a3cc0921STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2112a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
2113a3cc0921STaniya Das 		},
2114a3cc0921STaniya Das 	},
2115a3cc0921STaniya Das };
2116a3cc0921STaniya Das 
2117a3cc0921STaniya Das static struct clk_branch gcc_qupv3_wrap0_s4_clk = {
2118a3cc0921STaniya Das 	.halt_reg = 0x174cc,
2119a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2120a3cc0921STaniya Das 	.clkr = {
2121a3cc0921STaniya Das 		.enable_reg = 0x52008,
2122a3cc0921STaniya Das 		.enable_mask = BIT(14),
2123a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
2124a3cc0921STaniya Das 			.name = "gcc_qupv3_wrap0_s4_clk",
212553ec3b32SDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
212653ec3b32SDmitry Baryshkov 				&gcc_qupv3_wrap0_s4_clk_src.clkr.hw,
2127a3cc0921STaniya Das 			},
2128a3cc0921STaniya Das 			.num_parents = 1,
2129a3cc0921STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2130a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
2131a3cc0921STaniya Das 		},
2132a3cc0921STaniya Das 	},
2133a3cc0921STaniya Das };
2134a3cc0921STaniya Das 
2135a3cc0921STaniya Das static struct clk_branch gcc_qupv3_wrap0_s5_clk = {
2136a3cc0921STaniya Das 	.halt_reg = 0x175fc,
2137a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2138a3cc0921STaniya Das 	.clkr = {
2139a3cc0921STaniya Das 		.enable_reg = 0x52008,
2140a3cc0921STaniya Das 		.enable_mask = BIT(15),
2141a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
2142a3cc0921STaniya Das 			.name = "gcc_qupv3_wrap0_s5_clk",
214353ec3b32SDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
214453ec3b32SDmitry Baryshkov 				&gcc_qupv3_wrap0_s5_clk_src.clkr.hw,
2145a3cc0921STaniya Das 			},
2146a3cc0921STaniya Das 			.num_parents = 1,
2147a3cc0921STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2148a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
2149a3cc0921STaniya Das 		},
2150a3cc0921STaniya Das 	},
2151a3cc0921STaniya Das };
2152a3cc0921STaniya Das 
2153a3cc0921STaniya Das static struct clk_branch gcc_qupv3_wrap0_s6_clk = {
2154a3cc0921STaniya Das 	.halt_reg = 0x1772c,
2155a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2156a3cc0921STaniya Das 	.clkr = {
2157a3cc0921STaniya Das 		.enable_reg = 0x52008,
2158a3cc0921STaniya Das 		.enable_mask = BIT(16),
2159a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
2160a3cc0921STaniya Das 			.name = "gcc_qupv3_wrap0_s6_clk",
216153ec3b32SDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
216253ec3b32SDmitry Baryshkov 				&gcc_qupv3_wrap0_s6_clk_src.clkr.hw,
2163a3cc0921STaniya Das 			},
2164a3cc0921STaniya Das 			.num_parents = 1,
2165a3cc0921STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2166a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
2167a3cc0921STaniya Das 		},
2168a3cc0921STaniya Das 	},
2169a3cc0921STaniya Das };
2170a3cc0921STaniya Das 
2171a3cc0921STaniya Das static struct clk_branch gcc_qupv3_wrap0_s7_clk = {
2172a3cc0921STaniya Das 	.halt_reg = 0x1785c,
2173a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2174a3cc0921STaniya Das 	.clkr = {
2175a3cc0921STaniya Das 		.enable_reg = 0x52008,
2176a3cc0921STaniya Das 		.enable_mask = BIT(17),
2177a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
2178a3cc0921STaniya Das 			.name = "gcc_qupv3_wrap0_s7_clk",
217953ec3b32SDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
218053ec3b32SDmitry Baryshkov 				&gcc_qupv3_wrap0_s7_clk_src.clkr.hw,
2181a3cc0921STaniya Das 			},
2182a3cc0921STaniya Das 			.num_parents = 1,
2183a3cc0921STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2184a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
2185a3cc0921STaniya Das 		},
2186a3cc0921STaniya Das 	},
2187a3cc0921STaniya Das };
2188a3cc0921STaniya Das 
2189a3cc0921STaniya Das static struct clk_branch gcc_qupv3_wrap1_core_2x_clk = {
2190a3cc0921STaniya Das 	.halt_reg = 0x23140,
2191a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2192a3cc0921STaniya Das 	.clkr = {
2193a3cc0921STaniya Das 		.enable_reg = 0x52008,
2194a3cc0921STaniya Das 		.enable_mask = BIT(18),
2195a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
2196a3cc0921STaniya Das 			.name = "gcc_qupv3_wrap1_core_2x_clk",
2197a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
2198a3cc0921STaniya Das 		},
2199a3cc0921STaniya Das 	},
2200a3cc0921STaniya Das };
2201a3cc0921STaniya Das 
2202a3cc0921STaniya Das static struct clk_branch gcc_qupv3_wrap1_core_clk = {
2203a3cc0921STaniya Das 	.halt_reg = 0x23138,
2204a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2205a3cc0921STaniya Das 	.clkr = {
2206a3cc0921STaniya Das 		.enable_reg = 0x52008,
2207a3cc0921STaniya Das 		.enable_mask = BIT(19),
2208a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
2209a3cc0921STaniya Das 			.name = "gcc_qupv3_wrap1_core_clk",
2210a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
2211a3cc0921STaniya Das 		},
2212a3cc0921STaniya Das 	},
2213a3cc0921STaniya Das };
2214a3cc0921STaniya Das 
2215a3cc0921STaniya Das static struct clk_branch gcc_qupv3_wrap1_s0_clk = {
2216a3cc0921STaniya Das 	.halt_reg = 0x1800c,
2217a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2218a3cc0921STaniya Das 	.clkr = {
2219a3cc0921STaniya Das 		.enable_reg = 0x52008,
2220a3cc0921STaniya Das 		.enable_mask = BIT(22),
2221a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
2222a3cc0921STaniya Das 			.name = "gcc_qupv3_wrap1_s0_clk",
222353ec3b32SDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
222453ec3b32SDmitry Baryshkov 				&gcc_qupv3_wrap1_s0_clk_src.clkr.hw,
2225a3cc0921STaniya Das 			},
2226a3cc0921STaniya Das 			.num_parents = 1,
2227a3cc0921STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2228a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
2229a3cc0921STaniya Das 		},
2230a3cc0921STaniya Das 	},
2231a3cc0921STaniya Das };
2232a3cc0921STaniya Das 
2233a3cc0921STaniya Das static struct clk_branch gcc_qupv3_wrap1_s1_clk = {
2234a3cc0921STaniya Das 	.halt_reg = 0x1813c,
2235a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2236a3cc0921STaniya Das 	.clkr = {
2237a3cc0921STaniya Das 		.enable_reg = 0x52008,
2238a3cc0921STaniya Das 		.enable_mask = BIT(23),
2239a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
2240a3cc0921STaniya Das 			.name = "gcc_qupv3_wrap1_s1_clk",
224153ec3b32SDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
224253ec3b32SDmitry Baryshkov 				&gcc_qupv3_wrap1_s1_clk_src.clkr.hw,
2243a3cc0921STaniya Das 			},
2244a3cc0921STaniya Das 			.num_parents = 1,
2245a3cc0921STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2246a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
2247a3cc0921STaniya Das 		},
2248a3cc0921STaniya Das 	},
2249a3cc0921STaniya Das };
2250a3cc0921STaniya Das 
2251a3cc0921STaniya Das static struct clk_branch gcc_qupv3_wrap1_s2_clk = {
2252a3cc0921STaniya Das 	.halt_reg = 0x1826c,
2253a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2254a3cc0921STaniya Das 	.clkr = {
2255a3cc0921STaniya Das 		.enable_reg = 0x52008,
2256a3cc0921STaniya Das 		.enable_mask = BIT(24),
2257a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
2258a3cc0921STaniya Das 			.name = "gcc_qupv3_wrap1_s2_clk",
225953ec3b32SDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
226053ec3b32SDmitry Baryshkov 				&gcc_qupv3_wrap1_s2_clk_src.clkr.hw,
2261a3cc0921STaniya Das 			},
2262a3cc0921STaniya Das 			.num_parents = 1,
2263a3cc0921STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2264a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
2265a3cc0921STaniya Das 		},
2266a3cc0921STaniya Das 	},
2267a3cc0921STaniya Das };
2268a3cc0921STaniya Das 
2269a3cc0921STaniya Das static struct clk_branch gcc_qupv3_wrap1_s3_clk = {
2270a3cc0921STaniya Das 	.halt_reg = 0x1839c,
2271a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2272a3cc0921STaniya Das 	.clkr = {
2273a3cc0921STaniya Das 		.enable_reg = 0x52008,
2274a3cc0921STaniya Das 		.enable_mask = BIT(25),
2275a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
2276a3cc0921STaniya Das 			.name = "gcc_qupv3_wrap1_s3_clk",
227753ec3b32SDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
227853ec3b32SDmitry Baryshkov 				&gcc_qupv3_wrap1_s3_clk_src.clkr.hw,
2279a3cc0921STaniya Das 			},
2280a3cc0921STaniya Das 			.num_parents = 1,
2281a3cc0921STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2282a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
2283a3cc0921STaniya Das 		},
2284a3cc0921STaniya Das 	},
2285a3cc0921STaniya Das };
2286a3cc0921STaniya Das 
2287a3cc0921STaniya Das static struct clk_branch gcc_qupv3_wrap1_s4_clk = {
2288a3cc0921STaniya Das 	.halt_reg = 0x184cc,
2289a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2290a3cc0921STaniya Das 	.clkr = {
2291a3cc0921STaniya Das 		.enable_reg = 0x52008,
2292a3cc0921STaniya Das 		.enable_mask = BIT(26),
2293a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
2294a3cc0921STaniya Das 			.name = "gcc_qupv3_wrap1_s4_clk",
229553ec3b32SDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
229653ec3b32SDmitry Baryshkov 				&gcc_qupv3_wrap1_s4_clk_src.clkr.hw,
2297a3cc0921STaniya Das 			},
2298a3cc0921STaniya Das 			.num_parents = 1,
2299a3cc0921STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2300a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
2301a3cc0921STaniya Das 		},
2302a3cc0921STaniya Das 	},
2303a3cc0921STaniya Das };
2304a3cc0921STaniya Das 
2305a3cc0921STaniya Das static struct clk_branch gcc_qupv3_wrap1_s5_clk = {
2306a3cc0921STaniya Das 	.halt_reg = 0x185fc,
2307a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2308a3cc0921STaniya Das 	.clkr = {
2309a3cc0921STaniya Das 		.enable_reg = 0x52008,
2310a3cc0921STaniya Das 		.enable_mask = BIT(27),
2311a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
2312a3cc0921STaniya Das 			.name = "gcc_qupv3_wrap1_s5_clk",
231353ec3b32SDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
231453ec3b32SDmitry Baryshkov 				&gcc_qupv3_wrap1_s5_clk_src.clkr.hw,
2315a3cc0921STaniya Das 			},
2316a3cc0921STaniya Das 			.num_parents = 1,
2317a3cc0921STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2318a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
2319a3cc0921STaniya Das 		},
2320a3cc0921STaniya Das 	},
2321a3cc0921STaniya Das };
2322a3cc0921STaniya Das 
2323a3cc0921STaniya Das static struct clk_branch gcc_qupv3_wrap1_s6_clk = {
2324a3cc0921STaniya Das 	.halt_reg = 0x1872c,
2325a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2326a3cc0921STaniya Das 	.clkr = {
2327a3cc0921STaniya Das 		.enable_reg = 0x52000,
2328a3cc0921STaniya Das 		.enable_mask = BIT(13),
2329a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
2330a3cc0921STaniya Das 			.name = "gcc_qupv3_wrap1_s6_clk",
233153ec3b32SDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
233253ec3b32SDmitry Baryshkov 				&gcc_qupv3_wrap1_s6_clk_src.clkr.hw,
2333a3cc0921STaniya Das 			},
2334a3cc0921STaniya Das 			.num_parents = 1,
2335a3cc0921STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2336a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
2337a3cc0921STaniya Das 		},
2338a3cc0921STaniya Das 	},
2339a3cc0921STaniya Das };
2340a3cc0921STaniya Das 
2341a3cc0921STaniya Das static struct clk_branch gcc_qupv3_wrap1_s7_clk = {
2342a3cc0921STaniya Das 	.halt_reg = 0x1885c,
2343a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2344a3cc0921STaniya Das 	.clkr = {
2345a3cc0921STaniya Das 		.enable_reg = 0x52000,
2346a3cc0921STaniya Das 		.enable_mask = BIT(14),
2347a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
2348a3cc0921STaniya Das 			.name = "gcc_qupv3_wrap1_s7_clk",
234953ec3b32SDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
235053ec3b32SDmitry Baryshkov 				&gcc_qupv3_wrap1_s7_clk_src.clkr.hw,
2351a3cc0921STaniya Das 			},
2352a3cc0921STaniya Das 			.num_parents = 1,
2353a3cc0921STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2354a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
2355a3cc0921STaniya Das 		},
2356a3cc0921STaniya Das 	},
2357a3cc0921STaniya Das };
2358a3cc0921STaniya Das 
2359a3cc0921STaniya Das static struct clk_branch gcc_qupv3_wrap_0_m_ahb_clk = {
2360a3cc0921STaniya Das 	.halt_reg = 0x17004,
2361a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2362a3cc0921STaniya Das 	.hwcg_reg = 0x17004,
2363a3cc0921STaniya Das 	.hwcg_bit = 1,
2364a3cc0921STaniya Das 	.clkr = {
2365a3cc0921STaniya Das 		.enable_reg = 0x52008,
2366a3cc0921STaniya Das 		.enable_mask = BIT(6),
2367a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
2368a3cc0921STaniya Das 			.name = "gcc_qupv3_wrap_0_m_ahb_clk",
2369a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
2370a3cc0921STaniya Das 		},
2371a3cc0921STaniya Das 	},
2372a3cc0921STaniya Das };
2373a3cc0921STaniya Das 
2374a3cc0921STaniya Das static struct clk_branch gcc_qupv3_wrap_0_s_ahb_clk = {
2375a3cc0921STaniya Das 	.halt_reg = 0x17008,
2376a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2377a3cc0921STaniya Das 	.hwcg_reg = 0x17008,
2378a3cc0921STaniya Das 	.hwcg_bit = 1,
2379a3cc0921STaniya Das 	.clkr = {
2380a3cc0921STaniya Das 		.enable_reg = 0x52008,
2381a3cc0921STaniya Das 		.enable_mask = BIT(7),
2382a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
2383a3cc0921STaniya Das 			.name = "gcc_qupv3_wrap_0_s_ahb_clk",
2384a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
2385a3cc0921STaniya Das 		},
2386a3cc0921STaniya Das 	},
2387a3cc0921STaniya Das };
2388a3cc0921STaniya Das 
2389a3cc0921STaniya Das static struct clk_branch gcc_qupv3_wrap_1_m_ahb_clk = {
2390a3cc0921STaniya Das 	.halt_reg = 0x18004,
2391a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2392a3cc0921STaniya Das 	.hwcg_reg = 0x18004,
2393a3cc0921STaniya Das 	.hwcg_bit = 1,
2394a3cc0921STaniya Das 	.clkr = {
2395a3cc0921STaniya Das 		.enable_reg = 0x52008,
2396a3cc0921STaniya Das 		.enable_mask = BIT(20),
2397a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
2398a3cc0921STaniya Das 			.name = "gcc_qupv3_wrap_1_m_ahb_clk",
2399a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
2400a3cc0921STaniya Das 		},
2401a3cc0921STaniya Das 	},
2402a3cc0921STaniya Das };
2403a3cc0921STaniya Das 
2404a3cc0921STaniya Das static struct clk_branch gcc_qupv3_wrap_1_s_ahb_clk = {
2405a3cc0921STaniya Das 	.halt_reg = 0x18008,
2406a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2407a3cc0921STaniya Das 	.hwcg_reg = 0x18008,
2408a3cc0921STaniya Das 	.hwcg_bit = 1,
2409a3cc0921STaniya Das 	.clkr = {
2410a3cc0921STaniya Das 		.enable_reg = 0x52008,
2411a3cc0921STaniya Das 		.enable_mask = BIT(21),
2412a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
2413a3cc0921STaniya Das 			.name = "gcc_qupv3_wrap_1_s_ahb_clk",
2414a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
2415a3cc0921STaniya Das 		},
2416a3cc0921STaniya Das 	},
2417a3cc0921STaniya Das };
2418a3cc0921STaniya Das 
2419a3cc0921STaniya Das static struct clk_branch gcc_sdcc1_ahb_clk = {
2420a3cc0921STaniya Das 	.halt_reg = 0x75004,
2421a3cc0921STaniya Das 	.halt_check = BRANCH_HALT,
2422a3cc0921STaniya Das 	.clkr = {
2423a3cc0921STaniya Das 		.enable_reg = 0x75004,
2424a3cc0921STaniya Das 		.enable_mask = BIT(0),
2425a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
2426a3cc0921STaniya Das 			.name = "gcc_sdcc1_ahb_clk",
2427a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
2428a3cc0921STaniya Das 		},
2429a3cc0921STaniya Das 	},
2430a3cc0921STaniya Das };
2431a3cc0921STaniya Das 
2432a3cc0921STaniya Das static struct clk_branch gcc_sdcc1_apps_clk = {
2433a3cc0921STaniya Das 	.halt_reg = 0x75008,
2434a3cc0921STaniya Das 	.halt_check = BRANCH_HALT,
2435a3cc0921STaniya Das 	.clkr = {
2436a3cc0921STaniya Das 		.enable_reg = 0x75008,
2437a3cc0921STaniya Das 		.enable_mask = BIT(0),
2438a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
2439a3cc0921STaniya Das 			.name = "gcc_sdcc1_apps_clk",
244053ec3b32SDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
244153ec3b32SDmitry Baryshkov 				&gcc_sdcc1_apps_clk_src.clkr.hw,
2442a3cc0921STaniya Das 			},
2443a3cc0921STaniya Das 			.num_parents = 1,
2444a3cc0921STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2445a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
2446a3cc0921STaniya Das 		},
2447a3cc0921STaniya Das 	},
2448a3cc0921STaniya Das };
2449a3cc0921STaniya Das 
2450a3cc0921STaniya Das static struct clk_branch gcc_sdcc1_ice_core_clk = {
2451a3cc0921STaniya Das 	.halt_reg = 0x75024,
2452a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2453a3cc0921STaniya Das 	.hwcg_reg = 0x75024,
2454a3cc0921STaniya Das 	.hwcg_bit = 1,
2455a3cc0921STaniya Das 	.clkr = {
2456a3cc0921STaniya Das 		.enable_reg = 0x75024,
2457a3cc0921STaniya Das 		.enable_mask = BIT(0),
2458a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
2459a3cc0921STaniya Das 			.name = "gcc_sdcc1_ice_core_clk",
246053ec3b32SDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
246153ec3b32SDmitry Baryshkov 				&gcc_sdcc1_ice_core_clk_src.clkr.hw,
2462a3cc0921STaniya Das 			},
2463a3cc0921STaniya Das 			.num_parents = 1,
2464a3cc0921STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2465a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
2466a3cc0921STaniya Das 		},
2467a3cc0921STaniya Das 	},
2468a3cc0921STaniya Das };
2469a3cc0921STaniya Das 
2470a3cc0921STaniya Das static struct clk_branch gcc_sdcc2_ahb_clk = {
2471a3cc0921STaniya Das 	.halt_reg = 0x14008,
2472a3cc0921STaniya Das 	.halt_check = BRANCH_HALT,
2473a3cc0921STaniya Das 	.clkr = {
2474a3cc0921STaniya Das 		.enable_reg = 0x14008,
2475a3cc0921STaniya Das 		.enable_mask = BIT(0),
2476a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
2477a3cc0921STaniya Das 			.name = "gcc_sdcc2_ahb_clk",
2478a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
2479a3cc0921STaniya Das 		},
2480a3cc0921STaniya Das 	},
2481a3cc0921STaniya Das };
2482a3cc0921STaniya Das 
2483a3cc0921STaniya Das static struct clk_branch gcc_sdcc2_apps_clk = {
2484a3cc0921STaniya Das 	.halt_reg = 0x14004,
2485a3cc0921STaniya Das 	.halt_check = BRANCH_HALT,
2486a3cc0921STaniya Das 	.clkr = {
2487a3cc0921STaniya Das 		.enable_reg = 0x14004,
2488a3cc0921STaniya Das 		.enable_mask = BIT(0),
2489a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
2490a3cc0921STaniya Das 			.name = "gcc_sdcc2_apps_clk",
249153ec3b32SDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
249253ec3b32SDmitry Baryshkov 				&gcc_sdcc2_apps_clk_src.clkr.hw,
2493a3cc0921STaniya Das 			},
2494a3cc0921STaniya Das 			.num_parents = 1,
2495a3cc0921STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2496a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
2497a3cc0921STaniya Das 		},
2498a3cc0921STaniya Das 	},
2499a3cc0921STaniya Das };
2500a3cc0921STaniya Das 
2501a3cc0921STaniya Das static struct clk_branch gcc_sdcc4_ahb_clk = {
2502a3cc0921STaniya Das 	.halt_reg = 0x16008,
2503a3cc0921STaniya Das 	.halt_check = BRANCH_HALT,
2504a3cc0921STaniya Das 	.clkr = {
2505a3cc0921STaniya Das 		.enable_reg = 0x16008,
2506a3cc0921STaniya Das 		.enable_mask = BIT(0),
2507a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
2508a3cc0921STaniya Das 			.name = "gcc_sdcc4_ahb_clk",
2509a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
2510a3cc0921STaniya Das 		},
2511a3cc0921STaniya Das 	},
2512a3cc0921STaniya Das };
2513a3cc0921STaniya Das 
2514a3cc0921STaniya Das static struct clk_branch gcc_sdcc4_apps_clk = {
2515a3cc0921STaniya Das 	.halt_reg = 0x16004,
2516a3cc0921STaniya Das 	.halt_check = BRANCH_HALT,
2517a3cc0921STaniya Das 	.clkr = {
2518a3cc0921STaniya Das 		.enable_reg = 0x16004,
2519a3cc0921STaniya Das 		.enable_mask = BIT(0),
2520a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
2521a3cc0921STaniya Das 			.name = "gcc_sdcc4_apps_clk",
252253ec3b32SDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
252353ec3b32SDmitry Baryshkov 				&gcc_sdcc4_apps_clk_src.clkr.hw,
2524a3cc0921STaniya Das 			},
2525a3cc0921STaniya Das 			.num_parents = 1,
2526a3cc0921STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2527a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
2528a3cc0921STaniya Das 		},
2529a3cc0921STaniya Das 	},
2530a3cc0921STaniya Das };
2531a3cc0921STaniya Das 
2532a3cc0921STaniya Das static struct clk_branch gcc_throttle_pcie_ahb_clk = {
2533a3cc0921STaniya Das 	.halt_reg = 0x9001c,
2534a3cc0921STaniya Das 	.halt_check = BRANCH_HALT,
2535a3cc0921STaniya Das 	.clkr = {
2536a3cc0921STaniya Das 		.enable_reg = 0x9001c,
2537a3cc0921STaniya Das 		.enable_mask = BIT(0),
2538a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
2539a3cc0921STaniya Das 			.name = "gcc_throttle_pcie_ahb_clk",
2540a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
2541a3cc0921STaniya Das 		},
2542a3cc0921STaniya Das 	},
2543a3cc0921STaniya Das };
2544a3cc0921STaniya Das 
2545a3cc0921STaniya Das static struct clk_branch gcc_titan_nrt_throttle_core_clk = {
2546a3cc0921STaniya Das 	.halt_reg = 0x26024,
2547a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_SKIP,
2548a3cc0921STaniya Das 	.hwcg_reg = 0x26024,
2549a3cc0921STaniya Das 	.hwcg_bit = 1,
2550a3cc0921STaniya Das 	.clkr = {
2551a3cc0921STaniya Das 		.enable_reg = 0x26024,
2552a3cc0921STaniya Das 		.enable_mask = BIT(0),
2553a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
2554a3cc0921STaniya Das 			.name = "gcc_titan_nrt_throttle_core_clk",
2555a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
2556a3cc0921STaniya Das 		},
2557a3cc0921STaniya Das 	},
2558a3cc0921STaniya Das };
2559a3cc0921STaniya Das 
2560a3cc0921STaniya Das static struct clk_branch gcc_titan_rt_throttle_core_clk = {
2561a3cc0921STaniya Das 	.halt_reg = 0x26018,
2562a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_SKIP,
2563a3cc0921STaniya Das 	.hwcg_reg = 0x26018,
2564a3cc0921STaniya Das 	.hwcg_bit = 1,
2565a3cc0921STaniya Das 	.clkr = {
2566a3cc0921STaniya Das 		.enable_reg = 0x26018,
2567a3cc0921STaniya Das 		.enable_mask = BIT(0),
2568a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
2569a3cc0921STaniya Das 			.name = "gcc_titan_rt_throttle_core_clk",
2570a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
2571a3cc0921STaniya Das 		},
2572a3cc0921STaniya Das 	},
2573a3cc0921STaniya Das };
2574a3cc0921STaniya Das 
2575a3cc0921STaniya Das static struct clk_branch gcc_ufs_1_clkref_en = {
2576a3cc0921STaniya Das 	.halt_reg = 0x8c000,
2577a3cc0921STaniya Das 	.halt_check = BRANCH_HALT,
2578a3cc0921STaniya Das 	.clkr = {
2579a3cc0921STaniya Das 		.enable_reg = 0x8c000,
2580a3cc0921STaniya Das 		.enable_mask = BIT(0),
2581a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
2582a3cc0921STaniya Das 			.name = "gcc_ufs_1_clkref_en",
2583a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
2584a3cc0921STaniya Das 		},
2585a3cc0921STaniya Das 	},
2586a3cc0921STaniya Das };
2587a3cc0921STaniya Das 
2588a3cc0921STaniya Das static struct clk_branch gcc_ufs_phy_ahb_clk = {
2589a3cc0921STaniya Das 	.halt_reg = 0x77018,
2590a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2591a3cc0921STaniya Das 	.hwcg_reg = 0x77018,
2592a3cc0921STaniya Das 	.hwcg_bit = 1,
2593a3cc0921STaniya Das 	.clkr = {
2594a3cc0921STaniya Das 		.enable_reg = 0x77018,
2595a3cc0921STaniya Das 		.enable_mask = BIT(0),
2596a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
2597a3cc0921STaniya Das 			.name = "gcc_ufs_phy_ahb_clk",
2598a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
2599a3cc0921STaniya Das 		},
2600a3cc0921STaniya Das 	},
2601a3cc0921STaniya Das };
2602a3cc0921STaniya Das 
2603a3cc0921STaniya Das static struct clk_branch gcc_ufs_phy_axi_clk = {
2604a3cc0921STaniya Das 	.halt_reg = 0x77010,
2605a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2606a3cc0921STaniya Das 	.hwcg_reg = 0x77010,
2607a3cc0921STaniya Das 	.hwcg_bit = 1,
2608a3cc0921STaniya Das 	.clkr = {
2609a3cc0921STaniya Das 		.enable_reg = 0x77010,
2610a3cc0921STaniya Das 		.enable_mask = BIT(0),
2611a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
2612a3cc0921STaniya Das 			.name = "gcc_ufs_phy_axi_clk",
261353ec3b32SDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
261453ec3b32SDmitry Baryshkov 				&gcc_ufs_phy_axi_clk_src.clkr.hw,
2615a3cc0921STaniya Das 			},
2616a3cc0921STaniya Das 			.num_parents = 1,
2617a3cc0921STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2618a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
2619a3cc0921STaniya Das 		},
2620a3cc0921STaniya Das 	},
2621a3cc0921STaniya Das };
2622a3cc0921STaniya Das 
2623a3cc0921STaniya Das static struct clk_branch gcc_ufs_phy_ice_core_clk = {
2624a3cc0921STaniya Das 	.halt_reg = 0x77064,
2625a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2626a3cc0921STaniya Das 	.hwcg_reg = 0x77064,
2627a3cc0921STaniya Das 	.hwcg_bit = 1,
2628a3cc0921STaniya Das 	.clkr = {
2629a3cc0921STaniya Das 		.enable_reg = 0x77064,
2630a3cc0921STaniya Das 		.enable_mask = BIT(0),
2631a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
2632a3cc0921STaniya Das 			.name = "gcc_ufs_phy_ice_core_clk",
263353ec3b32SDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
263453ec3b32SDmitry Baryshkov 				&gcc_ufs_phy_ice_core_clk_src.clkr.hw,
2635a3cc0921STaniya Das 			},
2636a3cc0921STaniya Das 			.num_parents = 1,
2637a3cc0921STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2638a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
2639a3cc0921STaniya Das 		},
2640a3cc0921STaniya Das 	},
2641a3cc0921STaniya Das };
2642a3cc0921STaniya Das 
2643a3cc0921STaniya Das static struct clk_branch gcc_ufs_phy_phy_aux_clk = {
2644a3cc0921STaniya Das 	.halt_reg = 0x7709c,
2645a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2646a3cc0921STaniya Das 	.hwcg_reg = 0x7709c,
2647a3cc0921STaniya Das 	.hwcg_bit = 1,
2648a3cc0921STaniya Das 	.clkr = {
2649a3cc0921STaniya Das 		.enable_reg = 0x7709c,
2650a3cc0921STaniya Das 		.enable_mask = BIT(0),
2651a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
2652a3cc0921STaniya Das 			.name = "gcc_ufs_phy_phy_aux_clk",
265353ec3b32SDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
265453ec3b32SDmitry Baryshkov 				&gcc_ufs_phy_phy_aux_clk_src.clkr.hw,
2655a3cc0921STaniya Das 			},
2656a3cc0921STaniya Das 			.num_parents = 1,
2657a3cc0921STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2658a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
2659a3cc0921STaniya Das 		},
2660a3cc0921STaniya Das 	},
2661a3cc0921STaniya Das };
2662a3cc0921STaniya Das 
2663a3cc0921STaniya Das static struct clk_branch gcc_ufs_phy_rx_symbol_0_clk = {
2664a3cc0921STaniya Das 	.halt_reg = 0x77020,
2665a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_DELAY,
2666a3cc0921STaniya Das 	.clkr = {
2667a3cc0921STaniya Das 		.enable_reg = 0x77020,
2668a3cc0921STaniya Das 		.enable_mask = BIT(0),
2669a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
2670a3cc0921STaniya Das 			.name = "gcc_ufs_phy_rx_symbol_0_clk",
267153ec3b32SDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
267253ec3b32SDmitry Baryshkov 				&gcc_ufs_phy_rx_symbol_0_clk_src.clkr.hw,
2673a3cc0921STaniya Das 			},
2674a3cc0921STaniya Das 			.num_parents = 1,
2675a3cc0921STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2676a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
2677a3cc0921STaniya Das 		},
2678a3cc0921STaniya Das 	},
2679a3cc0921STaniya Das };
2680a3cc0921STaniya Das 
2681a3cc0921STaniya Das static struct clk_branch gcc_ufs_phy_rx_symbol_1_clk = {
2682a3cc0921STaniya Das 	.halt_reg = 0x770b8,
2683a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_DELAY,
2684a3cc0921STaniya Das 	.clkr = {
2685a3cc0921STaniya Das 		.enable_reg = 0x770b8,
2686a3cc0921STaniya Das 		.enable_mask = BIT(0),
2687a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
2688a3cc0921STaniya Das 			.name = "gcc_ufs_phy_rx_symbol_1_clk",
268953ec3b32SDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
269053ec3b32SDmitry Baryshkov 				&gcc_ufs_phy_rx_symbol_1_clk_src.clkr.hw,
2691a3cc0921STaniya Das 			},
2692a3cc0921STaniya Das 			.num_parents = 1,
2693a3cc0921STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2694a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
2695a3cc0921STaniya Das 		},
2696a3cc0921STaniya Das 	},
2697a3cc0921STaniya Das };
2698a3cc0921STaniya Das 
2699a3cc0921STaniya Das static struct clk_branch gcc_ufs_phy_tx_symbol_0_clk = {
2700a3cc0921STaniya Das 	.halt_reg = 0x7701c,
2701a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_DELAY,
2702a3cc0921STaniya Das 	.clkr = {
2703a3cc0921STaniya Das 		.enable_reg = 0x7701c,
2704a3cc0921STaniya Das 		.enable_mask = BIT(0),
2705a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
2706a3cc0921STaniya Das 			.name = "gcc_ufs_phy_tx_symbol_0_clk",
270753ec3b32SDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
270853ec3b32SDmitry Baryshkov 				&gcc_ufs_phy_tx_symbol_0_clk_src.clkr.hw,
2709a3cc0921STaniya Das 			},
2710a3cc0921STaniya Das 			.num_parents = 1,
2711a3cc0921STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2712a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
2713a3cc0921STaniya Das 		},
2714a3cc0921STaniya Das 	},
2715a3cc0921STaniya Das };
2716a3cc0921STaniya Das 
2717a3cc0921STaniya Das static struct clk_branch gcc_ufs_phy_unipro_core_clk = {
2718a3cc0921STaniya Das 	.halt_reg = 0x7705c,
2719a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2720a3cc0921STaniya Das 	.hwcg_reg = 0x7705c,
2721a3cc0921STaniya Das 	.hwcg_bit = 1,
2722a3cc0921STaniya Das 	.clkr = {
2723a3cc0921STaniya Das 		.enable_reg = 0x7705c,
2724a3cc0921STaniya Das 		.enable_mask = BIT(0),
2725a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
2726a3cc0921STaniya Das 			.name = "gcc_ufs_phy_unipro_core_clk",
272753ec3b32SDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
272853ec3b32SDmitry Baryshkov 				&gcc_ufs_phy_unipro_core_clk_src.clkr.hw,
2729a3cc0921STaniya Das 			},
2730a3cc0921STaniya Das 			.num_parents = 1,
2731a3cc0921STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2732a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
2733a3cc0921STaniya Das 		},
2734a3cc0921STaniya Das 	},
2735a3cc0921STaniya Das };
2736a3cc0921STaniya Das 
2737a3cc0921STaniya Das static struct clk_branch gcc_usb30_prim_master_clk = {
2738a3cc0921STaniya Das 	.halt_reg = 0xf010,
2739a3cc0921STaniya Das 	.halt_check = BRANCH_HALT,
2740a3cc0921STaniya Das 	.clkr = {
2741a3cc0921STaniya Das 		.enable_reg = 0xf010,
2742a3cc0921STaniya Das 		.enable_mask = BIT(0),
2743a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
2744a3cc0921STaniya Das 			.name = "gcc_usb30_prim_master_clk",
274553ec3b32SDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
274653ec3b32SDmitry Baryshkov 				&gcc_usb30_prim_master_clk_src.clkr.hw,
2747a3cc0921STaniya Das 			},
2748a3cc0921STaniya Das 			.num_parents = 1,
2749a3cc0921STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2750a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
2751a3cc0921STaniya Das 		},
2752a3cc0921STaniya Das 	},
2753a3cc0921STaniya Das };
2754a3cc0921STaniya Das 
2755a3cc0921STaniya Das static struct clk_branch gcc_usb30_prim_mock_utmi_clk = {
2756a3cc0921STaniya Das 	.halt_reg = 0xf01c,
2757a3cc0921STaniya Das 	.halt_check = BRANCH_HALT,
2758a3cc0921STaniya Das 	.clkr = {
2759a3cc0921STaniya Das 		.enable_reg = 0xf01c,
2760a3cc0921STaniya Das 		.enable_mask = BIT(0),
2761a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
2762a3cc0921STaniya Das 			.name = "gcc_usb30_prim_mock_utmi_clk",
2763a28c07fcSDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]) {
2764a3cc0921STaniya Das 				&gcc_usb30_prim_mock_utmi_postdiv_clk_src.clkr.hw,
2765a3cc0921STaniya Das 			},
2766a3cc0921STaniya Das 			.num_parents = 1,
2767a3cc0921STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2768a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
2769a3cc0921STaniya Das 		},
2770a3cc0921STaniya Das 	},
2771a3cc0921STaniya Das };
2772a3cc0921STaniya Das 
2773a3cc0921STaniya Das static struct clk_branch gcc_usb30_prim_sleep_clk = {
2774a3cc0921STaniya Das 	.halt_reg = 0xf018,
2775a3cc0921STaniya Das 	.halt_check = BRANCH_HALT,
2776a3cc0921STaniya Das 	.clkr = {
2777a3cc0921STaniya Das 		.enable_reg = 0xf018,
2778a3cc0921STaniya Das 		.enable_mask = BIT(0),
2779a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
2780a3cc0921STaniya Das 			.name = "gcc_usb30_prim_sleep_clk",
2781a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
2782a3cc0921STaniya Das 		},
2783a3cc0921STaniya Das 	},
2784a3cc0921STaniya Das };
2785a3cc0921STaniya Das 
2786a3cc0921STaniya Das static struct clk_branch gcc_usb30_sec_master_clk = {
2787a3cc0921STaniya Das 	.halt_reg = 0x9e010,
2788a3cc0921STaniya Das 	.halt_check = BRANCH_HALT,
2789a3cc0921STaniya Das 	.clkr = {
2790a3cc0921STaniya Das 		.enable_reg = 0x9e010,
2791a3cc0921STaniya Das 		.enable_mask = BIT(0),
2792a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
2793a3cc0921STaniya Das 			.name = "gcc_usb30_sec_master_clk",
279453ec3b32SDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
279553ec3b32SDmitry Baryshkov 				&gcc_usb30_sec_master_clk_src.clkr.hw,
2796a3cc0921STaniya Das 			},
2797a3cc0921STaniya Das 			.num_parents = 1,
2798a3cc0921STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2799a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
2800a3cc0921STaniya Das 		},
2801a3cc0921STaniya Das 	},
2802a3cc0921STaniya Das };
2803a3cc0921STaniya Das 
2804a3cc0921STaniya Das static struct clk_branch gcc_usb30_sec_mock_utmi_clk = {
2805a3cc0921STaniya Das 	.halt_reg = 0x9e01c,
2806a3cc0921STaniya Das 	.halt_check = BRANCH_HALT,
2807a3cc0921STaniya Das 	.clkr = {
2808a3cc0921STaniya Das 		.enable_reg = 0x9e01c,
2809a3cc0921STaniya Das 		.enable_mask = BIT(0),
2810a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
2811a3cc0921STaniya Das 			.name = "gcc_usb30_sec_mock_utmi_clk",
2812a28c07fcSDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]) {
2813a3cc0921STaniya Das 				&gcc_usb30_sec_mock_utmi_postdiv_clk_src.clkr.hw,
2814a3cc0921STaniya Das 			},
2815a3cc0921STaniya Das 			.num_parents = 1,
2816a3cc0921STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2817a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
2818a3cc0921STaniya Das 		},
2819a3cc0921STaniya Das 	},
2820a3cc0921STaniya Das };
2821a3cc0921STaniya Das 
2822a3cc0921STaniya Das static struct clk_branch gcc_usb30_sec_sleep_clk = {
2823a3cc0921STaniya Das 	.halt_reg = 0x9e018,
2824a3cc0921STaniya Das 	.halt_check = BRANCH_HALT,
2825a3cc0921STaniya Das 	.clkr = {
2826a3cc0921STaniya Das 		.enable_reg = 0x9e018,
2827a3cc0921STaniya Das 		.enable_mask = BIT(0),
2828a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
2829a3cc0921STaniya Das 			.name = "gcc_usb30_sec_sleep_clk",
2830a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
2831a3cc0921STaniya Das 		},
2832a3cc0921STaniya Das 	},
2833a3cc0921STaniya Das };
2834a3cc0921STaniya Das 
2835a3cc0921STaniya Das static struct clk_branch gcc_usb3_prim_phy_aux_clk = {
2836a3cc0921STaniya Das 	.halt_reg = 0xf054,
2837a3cc0921STaniya Das 	.halt_check = BRANCH_HALT,
2838a3cc0921STaniya Das 	.clkr = {
2839a3cc0921STaniya Das 		.enable_reg = 0xf054,
2840a3cc0921STaniya Das 		.enable_mask = BIT(0),
2841a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
2842a3cc0921STaniya Das 			.name = "gcc_usb3_prim_phy_aux_clk",
284353ec3b32SDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
284453ec3b32SDmitry Baryshkov 				&gcc_usb3_prim_phy_aux_clk_src.clkr.hw,
2845a3cc0921STaniya Das 			},
2846a3cc0921STaniya Das 			.num_parents = 1,
2847a3cc0921STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2848a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
2849a3cc0921STaniya Das 		},
2850a3cc0921STaniya Das 	},
2851a3cc0921STaniya Das };
2852a3cc0921STaniya Das 
2853a3cc0921STaniya Das static struct clk_branch gcc_usb3_prim_phy_com_aux_clk = {
2854a3cc0921STaniya Das 	.halt_reg = 0xf058,
2855a3cc0921STaniya Das 	.halt_check = BRANCH_HALT,
2856a3cc0921STaniya Das 	.clkr = {
2857a3cc0921STaniya Das 		.enable_reg = 0xf058,
2858a3cc0921STaniya Das 		.enable_mask = BIT(0),
2859a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
2860a3cc0921STaniya Das 			.name = "gcc_usb3_prim_phy_com_aux_clk",
286153ec3b32SDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
286253ec3b32SDmitry Baryshkov 				&gcc_usb3_prim_phy_aux_clk_src.clkr.hw,
2863a3cc0921STaniya Das 			},
2864a3cc0921STaniya Das 			.num_parents = 1,
2865a3cc0921STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2866a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
2867a3cc0921STaniya Das 		},
2868a3cc0921STaniya Das 	},
2869a3cc0921STaniya Das };
2870a3cc0921STaniya Das 
2871a3cc0921STaniya Das static struct clk_branch gcc_usb3_prim_phy_pipe_clk = {
2872a3cc0921STaniya Das 	.halt_reg = 0xf05c,
2873a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_DELAY,
2874a3cc0921STaniya Das 	.hwcg_reg = 0xf05c,
2875a3cc0921STaniya Das 	.hwcg_bit = 1,
2876a3cc0921STaniya Das 	.clkr = {
2877a3cc0921STaniya Das 		.enable_reg = 0xf05c,
2878a3cc0921STaniya Das 		.enable_mask = BIT(0),
2879a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
2880a3cc0921STaniya Das 			.name = "gcc_usb3_prim_phy_pipe_clk",
288153ec3b32SDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
288253ec3b32SDmitry Baryshkov 				&gcc_usb3_prim_phy_pipe_clk_src.clkr.hw,
2883a3cc0921STaniya Das 			},
2884a3cc0921STaniya Das 			.num_parents = 1,
2885a3cc0921STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2886a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
2887a3cc0921STaniya Das 		},
2888a3cc0921STaniya Das 	},
2889a3cc0921STaniya Das };
2890a3cc0921STaniya Das 
2891a3cc0921STaniya Das static struct clk_branch gcc_cfg_noc_lpass_clk = {
2892a3cc0921STaniya Das 	.halt_reg = 0x47020,
2893a3cc0921STaniya Das 	.halt_check = BRANCH_HALT,
2894a3cc0921STaniya Das 	.clkr = {
2895a3cc0921STaniya Das 		.enable_reg = 0x47020,
2896a3cc0921STaniya Das 		.enable_mask = BIT(0),
2897a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
2898a3cc0921STaniya Das 			.name = "gcc_cfg_noc_lpass_clk",
28999c337073STaniya Das 			.ops = &clk_branch2_aon_ops,
2900a3cc0921STaniya Das 		},
2901a3cc0921STaniya Das 	},
2902a3cc0921STaniya Das };
2903a3cc0921STaniya Das static struct clk_branch gcc_mss_cfg_ahb_clk = {
2904a3cc0921STaniya Das 	.halt_reg = 0x8a000,
2905a3cc0921STaniya Das 	.halt_check = BRANCH_HALT,
2906a3cc0921STaniya Das 	.clkr = {
2907a3cc0921STaniya Das 		.enable_reg = 0x8a000,
2908a3cc0921STaniya Das 		.enable_mask = BIT(0),
2909a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
2910a3cc0921STaniya Das 			.name = "gcc_mss_cfg_ahb_clk",
2911a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
2912a3cc0921STaniya Das 		},
2913a3cc0921STaniya Das 	},
2914a3cc0921STaniya Das };
2915a3cc0921STaniya Das 
2916a3cc0921STaniya Das static struct clk_branch gcc_mss_offline_axi_clk = {
2917a3cc0921STaniya Das 	.halt_reg = 0x8a004,
2918a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_DELAY,
2919a3cc0921STaniya Das 	.clkr = {
2920a3cc0921STaniya Das 		.enable_reg = 0x8a004,
2921a3cc0921STaniya Das 		.enable_mask = BIT(0),
2922a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
2923a3cc0921STaniya Das 			.name = "gcc_mss_offline_axi_clk",
2924a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
2925a3cc0921STaniya Das 		},
2926a3cc0921STaniya Das 	},
2927a3cc0921STaniya Das };
2928a3cc0921STaniya Das 
2929a3cc0921STaniya Das static struct clk_branch gcc_mss_snoc_axi_clk = {
2930a3cc0921STaniya Das 	.halt_reg = 0x8a154,
2931a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_DELAY,
2932a3cc0921STaniya Das 	.clkr = {
2933a3cc0921STaniya Das 		.enable_reg = 0x8a154,
2934a3cc0921STaniya Das 		.enable_mask = BIT(0),
2935a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
2936a3cc0921STaniya Das 			.name = "gcc_mss_snoc_axi_clk",
2937a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
2938a3cc0921STaniya Das 		},
2939a3cc0921STaniya Das 	},
2940a3cc0921STaniya Das };
2941a3cc0921STaniya Das 
2942a3cc0921STaniya Das static struct clk_branch gcc_mss_q6_memnoc_axi_clk = {
2943a3cc0921STaniya Das 	.halt_reg = 0x8a158,
2944a3cc0921STaniya Das 	.halt_check = BRANCH_HALT,
2945a3cc0921STaniya Das 	.clkr = {
2946a3cc0921STaniya Das 		.enable_reg = 0x8a158,
2947a3cc0921STaniya Das 		.enable_mask = BIT(0),
2948a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
2949a3cc0921STaniya Das 			.name = "gcc_mss_q6_memnoc_axi_clk",
2950a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
2951a3cc0921STaniya Das 		},
2952a3cc0921STaniya Das 	},
2953a3cc0921STaniya Das };
2954a3cc0921STaniya Das 
2955a3cc0921STaniya Das static struct clk_regmap_mux gcc_mss_q6ss_boot_clk_src = {
2956a3cc0921STaniya Das 	.reg = 0x8a2a4,
2957a3cc0921STaniya Das 	.shift = 0,
2958a3cc0921STaniya Das 	.width = 1,
2959a3cc0921STaniya Das 	.parent_map = gcc_parent_map_15,
2960a3cc0921STaniya Das 	.clkr = {
2961a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
2962a3cc0921STaniya Das 			.name = "gcc_mss_q6ss_boot_clk_src",
2963a3cc0921STaniya Das 			.parent_data = gcc_parent_data_15,
2964a3cc0921STaniya Das 			.num_parents = ARRAY_SIZE(gcc_parent_data_15),
2965a3cc0921STaniya Das 			.ops = &clk_regmap_mux_closest_ops,
2966a3cc0921STaniya Das 		},
2967a3cc0921STaniya Das 	},
2968a3cc0921STaniya Das };
2969a3cc0921STaniya Das 
2970a3cc0921STaniya Das static struct clk_branch gcc_usb3_sec_phy_aux_clk = {
2971a3cc0921STaniya Das 	.halt_reg = 0x9e054,
2972a3cc0921STaniya Das 	.halt_check = BRANCH_HALT,
2973a3cc0921STaniya Das 	.clkr = {
2974a3cc0921STaniya Das 		.enable_reg = 0x9e054,
2975a3cc0921STaniya Das 		.enable_mask = BIT(0),
2976a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
2977a3cc0921STaniya Das 			.name = "gcc_usb3_sec_phy_aux_clk",
297853ec3b32SDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
297953ec3b32SDmitry Baryshkov 				&gcc_usb3_sec_phy_aux_clk_src.clkr.hw,
2980a3cc0921STaniya Das 			},
2981a3cc0921STaniya Das 			.num_parents = 1,
2982a3cc0921STaniya Das 			.flags = CLK_SET_RATE_PARENT,
2983a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
2984a3cc0921STaniya Das 		},
2985a3cc0921STaniya Das 	},
2986a3cc0921STaniya Das };
2987a3cc0921STaniya Das 
2988a3cc0921STaniya Das static struct clk_branch gcc_usb3_sec_phy_com_aux_clk = {
2989a3cc0921STaniya Das 	.halt_reg = 0x9e058,
2990a3cc0921STaniya Das 	.halt_check = BRANCH_HALT,
2991a3cc0921STaniya Das 	.clkr = {
2992a3cc0921STaniya Das 		.enable_reg = 0x9e058,
2993a3cc0921STaniya Das 		.enable_mask = BIT(0),
2994a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
2995a3cc0921STaniya Das 			.name = "gcc_usb3_sec_phy_com_aux_clk",
299653ec3b32SDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
299753ec3b32SDmitry Baryshkov 				&gcc_usb3_sec_phy_aux_clk_src.clkr.hw,
2998a3cc0921STaniya Das 			},
2999a3cc0921STaniya Das 			.num_parents = 1,
3000a3cc0921STaniya Das 			.flags = CLK_SET_RATE_PARENT,
3001a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
3002a3cc0921STaniya Das 		},
3003a3cc0921STaniya Das 	},
3004a3cc0921STaniya Das };
3005a3cc0921STaniya Das 
3006a3cc0921STaniya Das static struct clk_branch gcc_usb3_sec_phy_pipe_clk = {
3007a3cc0921STaniya Das 	.halt_reg = 0x9e05c,
3008a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_SKIP,
3009a3cc0921STaniya Das 	.hwcg_reg = 0x9e05c,
3010a3cc0921STaniya Das 	.hwcg_bit = 1,
3011a3cc0921STaniya Das 	.clkr = {
3012a3cc0921STaniya Das 		.enable_reg = 0x9e05c,
3013a3cc0921STaniya Das 		.enable_mask = BIT(0),
3014a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
3015a3cc0921STaniya Das 			.name = "gcc_usb3_sec_phy_pipe_clk",
301653ec3b32SDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
301753ec3b32SDmitry Baryshkov 				&gcc_usb3_sec_phy_pipe_clk_src.clkr.hw,
3018a3cc0921STaniya Das 			},
3019a3cc0921STaniya Das 			.num_parents = 1,
3020a3cc0921STaniya Das 			.flags = CLK_SET_RATE_PARENT,
3021a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
3022a3cc0921STaniya Das 		},
3023a3cc0921STaniya Das 	},
3024a3cc0921STaniya Das };
3025a3cc0921STaniya Das 
3026a3cc0921STaniya Das static struct clk_branch gcc_video_axi0_clk = {
3027a3cc0921STaniya Das 	.halt_reg = 0x2800c,
3028a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_SKIP,
3029a3cc0921STaniya Das 	.hwcg_reg = 0x2800c,
3030a3cc0921STaniya Das 	.hwcg_bit = 1,
3031a3cc0921STaniya Das 	.clkr = {
3032a3cc0921STaniya Das 		.enable_reg = 0x2800c,
3033a3cc0921STaniya Das 		.enable_mask = BIT(0),
3034a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
3035a3cc0921STaniya Das 			.name = "gcc_video_axi0_clk",
3036a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
3037a3cc0921STaniya Das 		},
3038a3cc0921STaniya Das 	},
3039a3cc0921STaniya Das };
3040a3cc0921STaniya Das 
3041a3cc0921STaniya Das static struct clk_branch gcc_video_mvp_throttle_core_clk = {
3042a3cc0921STaniya Das 	.halt_reg = 0x28010,
3043a3cc0921STaniya Das 	.halt_check = BRANCH_HALT_SKIP,
3044a3cc0921STaniya Das 	.hwcg_reg = 0x28010,
3045a3cc0921STaniya Das 	.hwcg_bit = 1,
3046a3cc0921STaniya Das 	.clkr = {
3047a3cc0921STaniya Das 		.enable_reg = 0x28010,
3048a3cc0921STaniya Das 		.enable_mask = BIT(0),
3049a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
3050a3cc0921STaniya Das 			.name = "gcc_video_mvp_throttle_core_clk",
3051a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
3052a3cc0921STaniya Das 		},
3053a3cc0921STaniya Das 	},
3054a3cc0921STaniya Das };
3055a3cc0921STaniya Das 
3056a3cc0921STaniya Das static struct clk_branch gcc_wpss_ahb_clk = {
3057a3cc0921STaniya Das 	.halt_reg = 0x9d154,
3058a3cc0921STaniya Das 	.halt_check = BRANCH_HALT,
3059a3cc0921STaniya Das 	.clkr = {
3060a3cc0921STaniya Das 		.enable_reg = 0x9d154,
3061a3cc0921STaniya Das 		.enable_mask = BIT(0),
3062a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
3063a3cc0921STaniya Das 			.name = "gcc_wpss_ahb_clk",
3064a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
3065a3cc0921STaniya Das 		},
3066a3cc0921STaniya Das 	},
3067a3cc0921STaniya Das };
3068a3cc0921STaniya Das 
3069a3cc0921STaniya Das static struct clk_branch gcc_wpss_ahb_bdg_mst_clk = {
3070a3cc0921STaniya Das 	.halt_reg = 0x9d158,
3071a3cc0921STaniya Das 	.halt_check = BRANCH_HALT,
3072a3cc0921STaniya Das 	.clkr = {
3073a3cc0921STaniya Das 		.enable_reg = 0x9d158,
3074a3cc0921STaniya Das 		.enable_mask = BIT(0),
3075a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
3076a3cc0921STaniya Das 			.name = "gcc_wpss_ahb_bdg_mst_clk",
3077a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
3078a3cc0921STaniya Das 		},
3079a3cc0921STaniya Das 	},
3080a3cc0921STaniya Das };
3081a3cc0921STaniya Das 
3082a3cc0921STaniya Das static struct clk_branch gcc_wpss_rscp_clk = {
3083a3cc0921STaniya Das 	.halt_reg = 0x9d16c,
3084a3cc0921STaniya Das 	.halt_check = BRANCH_HALT,
3085a3cc0921STaniya Das 	.clkr = {
3086a3cc0921STaniya Das 		.enable_reg = 0x9d16c,
3087a3cc0921STaniya Das 		.enable_mask = BIT(0),
3088a3cc0921STaniya Das 		.hw.init = &(struct clk_init_data){
3089a3cc0921STaniya Das 			.name = "gcc_wpss_rscp_clk",
3090a3cc0921STaniya Das 			.ops = &clk_branch2_ops,
3091a3cc0921STaniya Das 		},
3092a3cc0921STaniya Das 	},
3093a3cc0921STaniya Das };
3094a3cc0921STaniya Das 
3095a3cc0921STaniya Das static struct gdsc gcc_pcie_0_gdsc = {
3096a3cc0921STaniya Das 	.gdscr = 0x6b004,
3097a3cc0921STaniya Das 	.pd = {
3098a3cc0921STaniya Das 		.name = "gcc_pcie_0_gdsc",
3099a3cc0921STaniya Das 	},
3100a3cc0921STaniya Das 	.pwrsts = PWRSTS_OFF_ON,
3101a3cc0921STaniya Das 	.flags = VOTABLE,
3102a3cc0921STaniya Das };
3103a3cc0921STaniya Das 
3104a3cc0921STaniya Das static struct gdsc gcc_pcie_1_gdsc = {
3105a3cc0921STaniya Das 	.gdscr = 0x8d004,
3106a3cc0921STaniya Das 	.pd = {
3107a3cc0921STaniya Das 		.name = "gcc_pcie_1_gdsc",
3108a3cc0921STaniya Das 	},
31091a58ee13SKrishna chaitanya chundru 	.pwrsts = PWRSTS_RET_ON,
3110a3cc0921STaniya Das 	.flags = VOTABLE,
3111a3cc0921STaniya Das };
3112a3cc0921STaniya Das 
3113a3cc0921STaniya Das static struct gdsc gcc_ufs_phy_gdsc = {
3114a3cc0921STaniya Das 	.gdscr = 0x77004,
3115a3cc0921STaniya Das 	.pd = {
3116a3cc0921STaniya Das 		.name = "gcc_ufs_phy_gdsc",
3117a3cc0921STaniya Das 	},
3118a3cc0921STaniya Das 	.pwrsts = PWRSTS_OFF_ON,
3119a3cc0921STaniya Das 	.flags = VOTABLE,
3120a3cc0921STaniya Das };
3121a3cc0921STaniya Das 
3122a3cc0921STaniya Das static struct gdsc gcc_usb30_prim_gdsc = {
3123a3cc0921STaniya Das 	.gdscr = 0xf004,
3124a3cc0921STaniya Das 	.pd = {
3125a3cc0921STaniya Das 		.name = "gcc_usb30_prim_gdsc",
3126a3cc0921STaniya Das 	},
3127e3ae3e89SRajendra Nayak 	.pwrsts = PWRSTS_RET_ON,
3128a3cc0921STaniya Das 	.flags = VOTABLE,
3129a3cc0921STaniya Das };
3130a3cc0921STaniya Das 
3131a3cc0921STaniya Das static struct gdsc gcc_usb30_sec_gdsc = {
3132a3cc0921STaniya Das 	.gdscr = 0x9e004,
3133a3cc0921STaniya Das 	.pd = {
3134a3cc0921STaniya Das 		.name = "gcc_usb30_sec_gdsc",
3135a3cc0921STaniya Das 	},
3136e3ae3e89SRajendra Nayak 	.pwrsts = PWRSTS_RET_ON,
3137a3cc0921STaniya Das 	.flags = VOTABLE,
3138a3cc0921STaniya Das };
3139a3cc0921STaniya Das 
3140a3cc0921STaniya Das static struct gdsc hlos1_vote_mmnoc_mmu_tbu_hf0_gdsc = {
3141a3cc0921STaniya Das 	.gdscr = 0x7d050,
3142a3cc0921STaniya Das 	.pd = {
3143a3cc0921STaniya Das 		.name = "hlos1_vote_mmnoc_mmu_tbu_hf0_gdsc",
3144a3cc0921STaniya Das 	},
3145a3cc0921STaniya Das 	.pwrsts = PWRSTS_OFF_ON,
3146a3cc0921STaniya Das 	.flags = VOTABLE,
3147a3cc0921STaniya Das };
3148a3cc0921STaniya Das 
3149a3cc0921STaniya Das static struct gdsc hlos1_vote_mmnoc_mmu_tbu_hf1_gdsc = {
3150a3cc0921STaniya Das 	.gdscr = 0x7d058,
3151a3cc0921STaniya Das 	.pd = {
3152a3cc0921STaniya Das 		.name = "hlos1_vote_mmnoc_mmu_tbu_hf1_gdsc",
3153a3cc0921STaniya Das 	},
3154a3cc0921STaniya Das 	.pwrsts = PWRSTS_OFF_ON,
3155a3cc0921STaniya Das 	.flags = VOTABLE,
3156a3cc0921STaniya Das };
3157a3cc0921STaniya Das 
3158a3cc0921STaniya Das static struct gdsc hlos1_vote_mmnoc_mmu_tbu_sf0_gdsc = {
3159a3cc0921STaniya Das 	.gdscr = 0x7d054,
3160a3cc0921STaniya Das 	.pd = {
3161a3cc0921STaniya Das 		.name = "hlos1_vote_mmnoc_mmu_tbu_sf0_gdsc",
3162a3cc0921STaniya Das 	},
3163a3cc0921STaniya Das 	.pwrsts = PWRSTS_OFF_ON,
3164a3cc0921STaniya Das 	.flags = VOTABLE,
3165a3cc0921STaniya Das };
3166a3cc0921STaniya Das 
3167a3cc0921STaniya Das static struct gdsc hlos1_vote_turing_mmu_tbu0_gdsc = {
3168a3cc0921STaniya Das 	.gdscr = 0x7d05c,
3169a3cc0921STaniya Das 	.pd = {
3170a3cc0921STaniya Das 		.name = "hlos1_vote_turing_mmu_tbu0_gdsc",
3171a3cc0921STaniya Das 	},
3172a3cc0921STaniya Das 	.pwrsts = PWRSTS_OFF_ON,
3173a3cc0921STaniya Das 	.flags = VOTABLE,
3174a3cc0921STaniya Das };
3175a3cc0921STaniya Das 
3176a3cc0921STaniya Das static struct gdsc hlos1_vote_turing_mmu_tbu1_gdsc = {
3177a3cc0921STaniya Das 	.gdscr = 0x7d060,
3178a3cc0921STaniya Das 	.pd = {
3179a3cc0921STaniya Das 		.name = "hlos1_vote_turing_mmu_tbu1_gdsc",
3180a3cc0921STaniya Das 	},
3181a3cc0921STaniya Das 	.pwrsts = PWRSTS_OFF_ON,
3182a3cc0921STaniya Das 	.flags = VOTABLE,
3183a3cc0921STaniya Das };
3184a3cc0921STaniya Das 
3185a3cc0921STaniya Das static struct clk_regmap *gcc_sc7280_clocks[] = {
3186a3cc0921STaniya Das 	[GCC_AGGRE_NOC_PCIE_0_AXI_CLK] = &gcc_aggre_noc_pcie_0_axi_clk.clkr,
3187a3cc0921STaniya Das 	[GCC_AGGRE_NOC_PCIE_1_AXI_CLK] = &gcc_aggre_noc_pcie_1_axi_clk.clkr,
3188a3cc0921STaniya Das 	[GCC_AGGRE_UFS_PHY_AXI_CLK] = &gcc_aggre_ufs_phy_axi_clk.clkr,
3189a3cc0921STaniya Das 	[GCC_AGGRE_USB3_PRIM_AXI_CLK] = &gcc_aggre_usb3_prim_axi_clk.clkr,
3190a3cc0921STaniya Das 	[GCC_AGGRE_USB3_SEC_AXI_CLK] = &gcc_aggre_usb3_sec_axi_clk.clkr,
3191a3cc0921STaniya Das 	[GCC_CAMERA_HF_AXI_CLK] = &gcc_camera_hf_axi_clk.clkr,
3192a3cc0921STaniya Das 	[GCC_CAMERA_SF_AXI_CLK] = &gcc_camera_sf_axi_clk.clkr,
3193a3cc0921STaniya Das 	[GCC_CFG_NOC_USB3_PRIM_AXI_CLK] = &gcc_cfg_noc_usb3_prim_axi_clk.clkr,
3194a3cc0921STaniya Das 	[GCC_CFG_NOC_USB3_SEC_AXI_CLK] = &gcc_cfg_noc_usb3_sec_axi_clk.clkr,
3195a3cc0921STaniya Das 	[GCC_DDRSS_GPU_AXI_CLK] = &gcc_ddrss_gpu_axi_clk.clkr,
3196a3cc0921STaniya Das 	[GCC_DDRSS_PCIE_SF_CLK] = &gcc_ddrss_pcie_sf_clk.clkr,
3197a3cc0921STaniya Das 	[GCC_DISP_GPLL0_CLK_SRC] = &gcc_disp_gpll0_clk_src.clkr,
3198a3cc0921STaniya Das 	[GCC_DISP_HF_AXI_CLK] = &gcc_disp_hf_axi_clk.clkr,
3199a3cc0921STaniya Das 	[GCC_DISP_SF_AXI_CLK] = &gcc_disp_sf_axi_clk.clkr,
3200a3cc0921STaniya Das 	[GCC_GP1_CLK] = &gcc_gp1_clk.clkr,
3201a3cc0921STaniya Das 	[GCC_GP1_CLK_SRC] = &gcc_gp1_clk_src.clkr,
3202a3cc0921STaniya Das 	[GCC_GP2_CLK] = &gcc_gp2_clk.clkr,
3203a3cc0921STaniya Das 	[GCC_GP2_CLK_SRC] = &gcc_gp2_clk_src.clkr,
3204a3cc0921STaniya Das 	[GCC_GP3_CLK] = &gcc_gp3_clk.clkr,
3205a3cc0921STaniya Das 	[GCC_GP3_CLK_SRC] = &gcc_gp3_clk_src.clkr,
3206a3cc0921STaniya Das 	[GCC_GPLL0] = &gcc_gpll0.clkr,
3207a3cc0921STaniya Das 	[GCC_GPLL0_OUT_EVEN] = &gcc_gpll0_out_even.clkr,
3208a3cc0921STaniya Das 	[GCC_GPLL0_OUT_ODD] = &gcc_gpll0_out_odd.clkr,
3209a3cc0921STaniya Das 	[GCC_GPLL1] = &gcc_gpll1.clkr,
3210a3cc0921STaniya Das 	[GCC_GPLL10] = &gcc_gpll10.clkr,
3211a3cc0921STaniya Das 	[GCC_GPLL4] = &gcc_gpll4.clkr,
3212a3cc0921STaniya Das 	[GCC_GPLL9] = &gcc_gpll9.clkr,
3213a3cc0921STaniya Das 	[GCC_GPU_GPLL0_CLK_SRC] = &gcc_gpu_gpll0_clk_src.clkr,
3214a3cc0921STaniya Das 	[GCC_GPU_GPLL0_DIV_CLK_SRC] = &gcc_gpu_gpll0_div_clk_src.clkr,
3215a3cc0921STaniya Das 	[GCC_GPU_IREF_EN] = &gcc_gpu_iref_en.clkr,
3216a3cc0921STaniya Das 	[GCC_GPU_MEMNOC_GFX_CLK] = &gcc_gpu_memnoc_gfx_clk.clkr,
3217a3cc0921STaniya Das 	[GCC_GPU_SNOC_DVM_GFX_CLK] = &gcc_gpu_snoc_dvm_gfx_clk.clkr,
3218a3cc0921STaniya Das 	[GCC_PCIE0_PHY_RCHNG_CLK] = &gcc_pcie0_phy_rchng_clk.clkr,
3219a3cc0921STaniya Das 	[GCC_PCIE1_PHY_RCHNG_CLK] = &gcc_pcie1_phy_rchng_clk.clkr,
3220a3cc0921STaniya Das 	[GCC_PCIE_0_AUX_CLK] = &gcc_pcie_0_aux_clk.clkr,
3221a3cc0921STaniya Das 	[GCC_PCIE_0_AUX_CLK_SRC] = &gcc_pcie_0_aux_clk_src.clkr,
3222a3cc0921STaniya Das 	[GCC_PCIE_0_CFG_AHB_CLK] = &gcc_pcie_0_cfg_ahb_clk.clkr,
3223a3cc0921STaniya Das 	[GCC_PCIE_0_MSTR_AXI_CLK] = &gcc_pcie_0_mstr_axi_clk.clkr,
3224a3cc0921STaniya Das 	[GCC_PCIE_0_PHY_RCHNG_CLK_SRC] = &gcc_pcie_0_phy_rchng_clk_src.clkr,
3225a3cc0921STaniya Das 	[GCC_PCIE_0_PIPE_CLK] = &gcc_pcie_0_pipe_clk.clkr,
3226a3cc0921STaniya Das 	[GCC_PCIE_0_PIPE_CLK_SRC] = &gcc_pcie_0_pipe_clk_src.clkr,
3227a3cc0921STaniya Das 	[GCC_PCIE_0_SLV_AXI_CLK] = &gcc_pcie_0_slv_axi_clk.clkr,
3228a3cc0921STaniya Das 	[GCC_PCIE_0_SLV_Q2A_AXI_CLK] = &gcc_pcie_0_slv_q2a_axi_clk.clkr,
3229a3cc0921STaniya Das 	[GCC_PCIE_1_AUX_CLK] = &gcc_pcie_1_aux_clk.clkr,
3230a3cc0921STaniya Das 	[GCC_PCIE_1_AUX_CLK_SRC] = &gcc_pcie_1_aux_clk_src.clkr,
3231a3cc0921STaniya Das 	[GCC_PCIE_1_CFG_AHB_CLK] = &gcc_pcie_1_cfg_ahb_clk.clkr,
3232a3cc0921STaniya Das 	[GCC_PCIE_1_MSTR_AXI_CLK] = &gcc_pcie_1_mstr_axi_clk.clkr,
3233a3cc0921STaniya Das 	[GCC_PCIE_1_PHY_RCHNG_CLK_SRC] = &gcc_pcie_1_phy_rchng_clk_src.clkr,
3234a3cc0921STaniya Das 	[GCC_PCIE_1_PIPE_CLK] = &gcc_pcie_1_pipe_clk.clkr,
3235a3cc0921STaniya Das 	[GCC_PCIE_1_PIPE_CLK_SRC] = &gcc_pcie_1_pipe_clk_src.clkr,
3236a3cc0921STaniya Das 	[GCC_PCIE_1_SLV_AXI_CLK] = &gcc_pcie_1_slv_axi_clk.clkr,
3237a3cc0921STaniya Das 	[GCC_PCIE_1_SLV_Q2A_AXI_CLK] = &gcc_pcie_1_slv_q2a_axi_clk.clkr,
3238a3cc0921STaniya Das 	[GCC_PCIE_THROTTLE_CORE_CLK] = &gcc_pcie_throttle_core_clk.clkr,
3239a3cc0921STaniya Das 	[GCC_PDM2_CLK] = &gcc_pdm2_clk.clkr,
3240a3cc0921STaniya Das 	[GCC_PDM2_CLK_SRC] = &gcc_pdm2_clk_src.clkr,
3241a3cc0921STaniya Das 	[GCC_PDM_AHB_CLK] = &gcc_pdm_ahb_clk.clkr,
3242a3cc0921STaniya Das 	[GCC_PDM_XO4_CLK] = &gcc_pdm_xo4_clk.clkr,
3243a3cc0921STaniya Das 	[GCC_QMIP_CAMERA_NRT_AHB_CLK] = &gcc_qmip_camera_nrt_ahb_clk.clkr,
3244a3cc0921STaniya Das 	[GCC_QMIP_CAMERA_RT_AHB_CLK] = &gcc_qmip_camera_rt_ahb_clk.clkr,
3245a3cc0921STaniya Das 	[GCC_QMIP_DISP_AHB_CLK] = &gcc_qmip_disp_ahb_clk.clkr,
3246a3cc0921STaniya Das 	[GCC_QMIP_VIDEO_VCODEC_AHB_CLK] = &gcc_qmip_video_vcodec_ahb_clk.clkr,
3247a3cc0921STaniya Das 	[GCC_QSPI_CNOC_PERIPH_AHB_CLK] = &gcc_qspi_cnoc_periph_ahb_clk.clkr,
3248a3cc0921STaniya Das 	[GCC_QSPI_CORE_CLK] = &gcc_qspi_core_clk.clkr,
3249a3cc0921STaniya Das 	[GCC_QSPI_CORE_CLK_SRC] = &gcc_qspi_core_clk_src.clkr,
3250a3cc0921STaniya Das 	[GCC_QUPV3_WRAP0_CORE_2X_CLK] = &gcc_qupv3_wrap0_core_2x_clk.clkr,
3251a3cc0921STaniya Das 	[GCC_QUPV3_WRAP0_CORE_CLK] = &gcc_qupv3_wrap0_core_clk.clkr,
3252a3cc0921STaniya Das 	[GCC_QUPV3_WRAP0_S0_CLK] = &gcc_qupv3_wrap0_s0_clk.clkr,
3253a3cc0921STaniya Das 	[GCC_QUPV3_WRAP0_S0_CLK_SRC] = &gcc_qupv3_wrap0_s0_clk_src.clkr,
3254a3cc0921STaniya Das 	[GCC_QUPV3_WRAP0_S1_CLK] = &gcc_qupv3_wrap0_s1_clk.clkr,
3255a3cc0921STaniya Das 	[GCC_QUPV3_WRAP0_S1_CLK_SRC] = &gcc_qupv3_wrap0_s1_clk_src.clkr,
3256a3cc0921STaniya Das 	[GCC_QUPV3_WRAP0_S2_CLK] = &gcc_qupv3_wrap0_s2_clk.clkr,
3257a3cc0921STaniya Das 	[GCC_QUPV3_WRAP0_S2_CLK_SRC] = &gcc_qupv3_wrap0_s2_clk_src.clkr,
3258a3cc0921STaniya Das 	[GCC_QUPV3_WRAP0_S3_CLK] = &gcc_qupv3_wrap0_s3_clk.clkr,
3259a3cc0921STaniya Das 	[GCC_QUPV3_WRAP0_S3_CLK_SRC] = &gcc_qupv3_wrap0_s3_clk_src.clkr,
3260a3cc0921STaniya Das 	[GCC_QUPV3_WRAP0_S4_CLK] = &gcc_qupv3_wrap0_s4_clk.clkr,
3261a3cc0921STaniya Das 	[GCC_QUPV3_WRAP0_S4_CLK_SRC] = &gcc_qupv3_wrap0_s4_clk_src.clkr,
3262a3cc0921STaniya Das 	[GCC_QUPV3_WRAP0_S5_CLK] = &gcc_qupv3_wrap0_s5_clk.clkr,
3263a3cc0921STaniya Das 	[GCC_QUPV3_WRAP0_S5_CLK_SRC] = &gcc_qupv3_wrap0_s5_clk_src.clkr,
3264a3cc0921STaniya Das 	[GCC_QUPV3_WRAP0_S6_CLK] = &gcc_qupv3_wrap0_s6_clk.clkr,
3265a3cc0921STaniya Das 	[GCC_QUPV3_WRAP0_S6_CLK_SRC] = &gcc_qupv3_wrap0_s6_clk_src.clkr,
3266a3cc0921STaniya Das 	[GCC_QUPV3_WRAP0_S7_CLK] = &gcc_qupv3_wrap0_s7_clk.clkr,
3267a3cc0921STaniya Das 	[GCC_QUPV3_WRAP0_S7_CLK_SRC] = &gcc_qupv3_wrap0_s7_clk_src.clkr,
3268a3cc0921STaniya Das 	[GCC_QUPV3_WRAP1_CORE_2X_CLK] = &gcc_qupv3_wrap1_core_2x_clk.clkr,
3269a3cc0921STaniya Das 	[GCC_QUPV3_WRAP1_CORE_CLK] = &gcc_qupv3_wrap1_core_clk.clkr,
3270a3cc0921STaniya Das 	[GCC_QUPV3_WRAP1_S0_CLK] = &gcc_qupv3_wrap1_s0_clk.clkr,
3271a3cc0921STaniya Das 	[GCC_QUPV3_WRAP1_S0_CLK_SRC] = &gcc_qupv3_wrap1_s0_clk_src.clkr,
3272a3cc0921STaniya Das 	[GCC_QUPV3_WRAP1_S1_CLK] = &gcc_qupv3_wrap1_s1_clk.clkr,
3273a3cc0921STaniya Das 	[GCC_QUPV3_WRAP1_S1_CLK_SRC] = &gcc_qupv3_wrap1_s1_clk_src.clkr,
3274a3cc0921STaniya Das 	[GCC_QUPV3_WRAP1_S2_CLK] = &gcc_qupv3_wrap1_s2_clk.clkr,
3275a3cc0921STaniya Das 	[GCC_QUPV3_WRAP1_S2_CLK_SRC] = &gcc_qupv3_wrap1_s2_clk_src.clkr,
3276a3cc0921STaniya Das 	[GCC_QUPV3_WRAP1_S3_CLK] = &gcc_qupv3_wrap1_s3_clk.clkr,
3277a3cc0921STaniya Das 	[GCC_QUPV3_WRAP1_S3_CLK_SRC] = &gcc_qupv3_wrap1_s3_clk_src.clkr,
3278a3cc0921STaniya Das 	[GCC_QUPV3_WRAP1_S4_CLK] = &gcc_qupv3_wrap1_s4_clk.clkr,
3279a3cc0921STaniya Das 	[GCC_QUPV3_WRAP1_S4_CLK_SRC] = &gcc_qupv3_wrap1_s4_clk_src.clkr,
3280a3cc0921STaniya Das 	[GCC_QUPV3_WRAP1_S5_CLK] = &gcc_qupv3_wrap1_s5_clk.clkr,
3281a3cc0921STaniya Das 	[GCC_QUPV3_WRAP1_S5_CLK_SRC] = &gcc_qupv3_wrap1_s5_clk_src.clkr,
3282a3cc0921STaniya Das 	[GCC_QUPV3_WRAP1_S6_CLK] = &gcc_qupv3_wrap1_s6_clk.clkr,
3283a3cc0921STaniya Das 	[GCC_QUPV3_WRAP1_S6_CLK_SRC] = &gcc_qupv3_wrap1_s6_clk_src.clkr,
3284a3cc0921STaniya Das 	[GCC_QUPV3_WRAP1_S7_CLK] = &gcc_qupv3_wrap1_s7_clk.clkr,
3285a3cc0921STaniya Das 	[GCC_QUPV3_WRAP1_S7_CLK_SRC] = &gcc_qupv3_wrap1_s7_clk_src.clkr,
3286a3cc0921STaniya Das 	[GCC_QUPV3_WRAP_0_M_AHB_CLK] = &gcc_qupv3_wrap_0_m_ahb_clk.clkr,
3287a3cc0921STaniya Das 	[GCC_QUPV3_WRAP_0_S_AHB_CLK] = &gcc_qupv3_wrap_0_s_ahb_clk.clkr,
3288a3cc0921STaniya Das 	[GCC_QUPV3_WRAP_1_M_AHB_CLK] = &gcc_qupv3_wrap_1_m_ahb_clk.clkr,
3289a3cc0921STaniya Das 	[GCC_QUPV3_WRAP_1_S_AHB_CLK] = &gcc_qupv3_wrap_1_s_ahb_clk.clkr,
3290a3cc0921STaniya Das 	[GCC_SDCC1_AHB_CLK] = &gcc_sdcc1_ahb_clk.clkr,
3291a3cc0921STaniya Das 	[GCC_SDCC1_APPS_CLK] = &gcc_sdcc1_apps_clk.clkr,
3292a3cc0921STaniya Das 	[GCC_SDCC1_APPS_CLK_SRC] = &gcc_sdcc1_apps_clk_src.clkr,
3293a3cc0921STaniya Das 	[GCC_SDCC1_ICE_CORE_CLK] = &gcc_sdcc1_ice_core_clk.clkr,
3294a3cc0921STaniya Das 	[GCC_SDCC1_ICE_CORE_CLK_SRC] = &gcc_sdcc1_ice_core_clk_src.clkr,
3295a3cc0921STaniya Das 	[GCC_SDCC2_AHB_CLK] = &gcc_sdcc2_ahb_clk.clkr,
3296a3cc0921STaniya Das 	[GCC_SDCC2_APPS_CLK] = &gcc_sdcc2_apps_clk.clkr,
3297a3cc0921STaniya Das 	[GCC_SDCC2_APPS_CLK_SRC] = &gcc_sdcc2_apps_clk_src.clkr,
3298a3cc0921STaniya Das 	[GCC_SDCC4_AHB_CLK] = &gcc_sdcc4_ahb_clk.clkr,
3299a3cc0921STaniya Das 	[GCC_SDCC4_APPS_CLK] = &gcc_sdcc4_apps_clk.clkr,
3300a3cc0921STaniya Das 	[GCC_SDCC4_APPS_CLK_SRC] = &gcc_sdcc4_apps_clk_src.clkr,
3301a3cc0921STaniya Das 	[GCC_THROTTLE_PCIE_AHB_CLK] = &gcc_throttle_pcie_ahb_clk.clkr,
3302a3cc0921STaniya Das 	[GCC_TITAN_NRT_THROTTLE_CORE_CLK] =
3303a3cc0921STaniya Das 		&gcc_titan_nrt_throttle_core_clk.clkr,
3304a3cc0921STaniya Das 	[GCC_TITAN_RT_THROTTLE_CORE_CLK] = &gcc_titan_rt_throttle_core_clk.clkr,
3305a3cc0921STaniya Das 	[GCC_UFS_1_CLKREF_EN] = &gcc_ufs_1_clkref_en.clkr,
3306a3cc0921STaniya Das 	[GCC_UFS_PHY_AHB_CLK] = &gcc_ufs_phy_ahb_clk.clkr,
3307a3cc0921STaniya Das 	[GCC_UFS_PHY_AXI_CLK] = &gcc_ufs_phy_axi_clk.clkr,
3308a3cc0921STaniya Das 	[GCC_UFS_PHY_AXI_CLK_SRC] = &gcc_ufs_phy_axi_clk_src.clkr,
3309a3cc0921STaniya Das 	[GCC_UFS_PHY_ICE_CORE_CLK] = &gcc_ufs_phy_ice_core_clk.clkr,
3310a3cc0921STaniya Das 	[GCC_UFS_PHY_ICE_CORE_CLK_SRC] = &gcc_ufs_phy_ice_core_clk_src.clkr,
3311a3cc0921STaniya Das 	[GCC_UFS_PHY_PHY_AUX_CLK] = &gcc_ufs_phy_phy_aux_clk.clkr,
3312a3cc0921STaniya Das 	[GCC_UFS_PHY_PHY_AUX_CLK_SRC] = &gcc_ufs_phy_phy_aux_clk_src.clkr,
3313a3cc0921STaniya Das 	[GCC_UFS_PHY_RX_SYMBOL_0_CLK] = &gcc_ufs_phy_rx_symbol_0_clk.clkr,
3314a3cc0921STaniya Das 	[GCC_UFS_PHY_RX_SYMBOL_0_CLK_SRC] =
3315a3cc0921STaniya Das 		&gcc_ufs_phy_rx_symbol_0_clk_src.clkr,
3316a3cc0921STaniya Das 	[GCC_UFS_PHY_RX_SYMBOL_1_CLK] = &gcc_ufs_phy_rx_symbol_1_clk.clkr,
3317a3cc0921STaniya Das 	[GCC_UFS_PHY_RX_SYMBOL_1_CLK_SRC] =
3318a3cc0921STaniya Das 		&gcc_ufs_phy_rx_symbol_1_clk_src.clkr,
3319a3cc0921STaniya Das 	[GCC_UFS_PHY_TX_SYMBOL_0_CLK] = &gcc_ufs_phy_tx_symbol_0_clk.clkr,
3320a3cc0921STaniya Das 	[GCC_UFS_PHY_TX_SYMBOL_0_CLK_SRC] =
3321a3cc0921STaniya Das 		&gcc_ufs_phy_tx_symbol_0_clk_src.clkr,
3322a3cc0921STaniya Das 	[GCC_UFS_PHY_UNIPRO_CORE_CLK] = &gcc_ufs_phy_unipro_core_clk.clkr,
3323a3cc0921STaniya Das 	[GCC_UFS_PHY_UNIPRO_CORE_CLK_SRC] =
3324a3cc0921STaniya Das 		&gcc_ufs_phy_unipro_core_clk_src.clkr,
3325a3cc0921STaniya Das 	[GCC_USB30_PRIM_MASTER_CLK] = &gcc_usb30_prim_master_clk.clkr,
3326a3cc0921STaniya Das 	[GCC_USB30_PRIM_MASTER_CLK_SRC] = &gcc_usb30_prim_master_clk_src.clkr,
3327a3cc0921STaniya Das 	[GCC_USB30_PRIM_MOCK_UTMI_CLK] = &gcc_usb30_prim_mock_utmi_clk.clkr,
3328a3cc0921STaniya Das 	[GCC_USB30_PRIM_MOCK_UTMI_CLK_SRC] =
3329a3cc0921STaniya Das 		&gcc_usb30_prim_mock_utmi_clk_src.clkr,
3330a3cc0921STaniya Das 	[GCC_USB30_PRIM_MOCK_UTMI_POSTDIV_CLK_SRC] =
3331a3cc0921STaniya Das 		&gcc_usb30_prim_mock_utmi_postdiv_clk_src.clkr,
3332a3cc0921STaniya Das 	[GCC_USB30_PRIM_SLEEP_CLK] = &gcc_usb30_prim_sleep_clk.clkr,
3333a3cc0921STaniya Das 	[GCC_USB30_SEC_MASTER_CLK] = &gcc_usb30_sec_master_clk.clkr,
3334a3cc0921STaniya Das 	[GCC_USB30_SEC_MASTER_CLK_SRC] = &gcc_usb30_sec_master_clk_src.clkr,
3335a3cc0921STaniya Das 	[GCC_USB30_SEC_MOCK_UTMI_CLK] = &gcc_usb30_sec_mock_utmi_clk.clkr,
3336a3cc0921STaniya Das 	[GCC_USB30_SEC_MOCK_UTMI_CLK_SRC] =
3337a3cc0921STaniya Das 			&gcc_usb30_sec_mock_utmi_clk_src.clkr,
3338a3cc0921STaniya Das 	[GCC_USB30_SEC_MOCK_UTMI_POSTDIV_CLK_SRC] =
3339a3cc0921STaniya Das 			&gcc_usb30_sec_mock_utmi_postdiv_clk_src.clkr,
3340a3cc0921STaniya Das 	[GCC_USB30_SEC_SLEEP_CLK] = &gcc_usb30_sec_sleep_clk.clkr,
3341a3cc0921STaniya Das 	[GCC_USB3_PRIM_PHY_AUX_CLK] = &gcc_usb3_prim_phy_aux_clk.clkr,
3342a3cc0921STaniya Das 	[GCC_USB3_PRIM_PHY_AUX_CLK_SRC] = &gcc_usb3_prim_phy_aux_clk_src.clkr,
3343a3cc0921STaniya Das 	[GCC_USB3_PRIM_PHY_COM_AUX_CLK] = &gcc_usb3_prim_phy_com_aux_clk.clkr,
3344a3cc0921STaniya Das 	[GCC_USB3_PRIM_PHY_PIPE_CLK] = &gcc_usb3_prim_phy_pipe_clk.clkr,
3345a3cc0921STaniya Das 	[GCC_USB3_PRIM_PHY_PIPE_CLK_SRC] = &gcc_usb3_prim_phy_pipe_clk_src.clkr,
3346a3cc0921STaniya Das 	[GCC_USB3_SEC_PHY_AUX_CLK] = &gcc_usb3_sec_phy_aux_clk.clkr,
3347a3cc0921STaniya Das 	[GCC_USB3_SEC_PHY_AUX_CLK_SRC] = &gcc_usb3_sec_phy_aux_clk_src.clkr,
3348a3cc0921STaniya Das 	[GCC_USB3_SEC_PHY_COM_AUX_CLK] = &gcc_usb3_sec_phy_com_aux_clk.clkr,
3349a3cc0921STaniya Das 	[GCC_USB3_SEC_PHY_PIPE_CLK] = &gcc_usb3_sec_phy_pipe_clk.clkr,
3350a3cc0921STaniya Das 	[GCC_USB3_SEC_PHY_PIPE_CLK_SRC] = &gcc_usb3_sec_phy_pipe_clk_src.clkr,
3351a3cc0921STaniya Das 	[GCC_VIDEO_AXI0_CLK] = &gcc_video_axi0_clk.clkr,
3352a3cc0921STaniya Das 	[GCC_VIDEO_MVP_THROTTLE_CORE_CLK] =
3353a3cc0921STaniya Das 			&gcc_video_mvp_throttle_core_clk.clkr,
3354a3cc0921STaniya Das 	[GCC_CFG_NOC_LPASS_CLK] = &gcc_cfg_noc_lpass_clk.clkr,
3355a3cc0921STaniya Das 	[GCC_MSS_GPLL0_MAIN_DIV_CLK_SRC] = &gcc_mss_gpll0_main_div_clk_src.clkr,
3356a3cc0921STaniya Das 	[GCC_MSS_CFG_AHB_CLK] = &gcc_mss_cfg_ahb_clk.clkr,
3357a3cc0921STaniya Das 	[GCC_MSS_OFFLINE_AXI_CLK] = &gcc_mss_offline_axi_clk.clkr,
3358a3cc0921STaniya Das 	[GCC_MSS_SNOC_AXI_CLK] = &gcc_mss_snoc_axi_clk.clkr,
3359a3cc0921STaniya Das 	[GCC_MSS_Q6_MEMNOC_AXI_CLK] = &gcc_mss_q6_memnoc_axi_clk.clkr,
3360a3cc0921STaniya Das 	[GCC_MSS_Q6SS_BOOT_CLK_SRC] = &gcc_mss_q6ss_boot_clk_src.clkr,
3361a3cc0921STaniya Das 	[GCC_AGGRE_NOC_PCIE_TBU_CLK] = &gcc_aggre_noc_pcie_tbu_clk.clkr,
3362a3cc0921STaniya Das 	[GCC_AGGRE_NOC_PCIE_CENTER_SF_AXI_CLK] =
3363a3cc0921STaniya Das 				&gcc_aggre_noc_pcie_center_sf_axi_clk.clkr,
3364a3cc0921STaniya Das 	[GCC_PCIE_CLKREF_EN] = &gcc_pcie_clkref_en.clkr,
3365a3cc0921STaniya Das 	[GCC_EDP_CLKREF_EN] = &gcc_edp_clkref_en.clkr,
3366a3cc0921STaniya Das 	[GCC_SEC_CTRL_CLK_SRC] = &gcc_sec_ctrl_clk_src.clkr,
3367a3cc0921STaniya Das 	[GCC_WPSS_AHB_CLK] = &gcc_wpss_ahb_clk.clkr,
3368a3cc0921STaniya Das 	[GCC_WPSS_AHB_BDG_MST_CLK] = &gcc_wpss_ahb_bdg_mst_clk.clkr,
3369a3cc0921STaniya Das 	[GCC_WPSS_RSCP_CLK] = &gcc_wpss_rscp_clk.clkr,
3370a3cc0921STaniya Das };
3371a3cc0921STaniya Das 
3372a3cc0921STaniya Das static struct gdsc *gcc_sc7280_gdscs[] = {
3373a3cc0921STaniya Das 	[GCC_PCIE_0_GDSC] = &gcc_pcie_0_gdsc,
3374a3cc0921STaniya Das 	[GCC_PCIE_1_GDSC] = &gcc_pcie_1_gdsc,
3375a3cc0921STaniya Das 	[GCC_UFS_PHY_GDSC] = &gcc_ufs_phy_gdsc,
3376a3cc0921STaniya Das 	[GCC_USB30_PRIM_GDSC] = &gcc_usb30_prim_gdsc,
3377a3cc0921STaniya Das 	[GCC_USB30_SEC_GDSC] = &gcc_usb30_sec_gdsc,
3378a3cc0921STaniya Das 	[HLOS1_VOTE_MMNOC_MMU_TBU_HF0_GDSC] = &hlos1_vote_mmnoc_mmu_tbu_hf0_gdsc,
3379a3cc0921STaniya Das 	[HLOS1_VOTE_MMNOC_MMU_TBU_HF1_GDSC] = &hlos1_vote_mmnoc_mmu_tbu_hf1_gdsc,
3380a3cc0921STaniya Das 	[HLOS1_VOTE_MMNOC_MMU_TBU_SF0_GDSC] = &hlos1_vote_mmnoc_mmu_tbu_sf0_gdsc,
3381a3cc0921STaniya Das 	[HLOS1_VOTE_TURING_MMU_TBU0_GDSC] = &hlos1_vote_turing_mmu_tbu0_gdsc,
3382a3cc0921STaniya Das 	[HLOS1_VOTE_TURING_MMU_TBU1_GDSC] = &hlos1_vote_turing_mmu_tbu1_gdsc,
3383a3cc0921STaniya Das };
3384a3cc0921STaniya Das 
3385a3cc0921STaniya Das static const struct qcom_reset_map gcc_sc7280_resets[] = {
3386a3cc0921STaniya Das 	[GCC_PCIE_0_BCR] = { 0x6b000 },
3387a3cc0921STaniya Das 	[GCC_PCIE_0_PHY_BCR] = { 0x6c01c },
3388a3cc0921STaniya Das 	[GCC_PCIE_1_BCR] = { 0x8d000 },
3389a3cc0921STaniya Das 	[GCC_PCIE_1_PHY_BCR] = { 0x8e01c },
3390a3cc0921STaniya Das 	[GCC_QUSB2PHY_PRIM_BCR] = { 0x12000 },
3391a3cc0921STaniya Das 	[GCC_QUSB2PHY_SEC_BCR] = { 0x12004 },
3392a3cc0921STaniya Das 	[GCC_SDCC1_BCR] = { 0x75000 },
3393a3cc0921STaniya Das 	[GCC_SDCC2_BCR] = { 0x14000 },
3394a3cc0921STaniya Das 	[GCC_SDCC4_BCR] = { 0x16000 },
3395a3cc0921STaniya Das 	[GCC_UFS_PHY_BCR] = { 0x77000 },
3396a3cc0921STaniya Das 	[GCC_USB30_PRIM_BCR] = { 0xf000 },
3397a3cc0921STaniya Das 	[GCC_USB30_SEC_BCR] = { 0x9e000 },
3398a3cc0921STaniya Das 	[GCC_USB3_DP_PHY_PRIM_BCR] = { 0x50008 },
3399a3cc0921STaniya Das 	[GCC_USB3_PHY_PRIM_BCR] = { 0x50000 },
3400a3cc0921STaniya Das 	[GCC_USB3PHY_PHY_PRIM_BCR] = { 0x50004 },
3401a3cc0921STaniya Das 	[GCC_USB_PHY_CFG_AHB2PHY_BCR] = { 0x6a000 },
3402a3cc0921STaniya Das };
3403a3cc0921STaniya Das 
3404a3cc0921STaniya Das static const struct clk_rcg_dfs_data gcc_dfs_clocks[] = {
3405a3cc0921STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s0_clk_src),
3406a3cc0921STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s1_clk_src),
3407a3cc0921STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s2_clk_src),
3408a3cc0921STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s3_clk_src),
3409a3cc0921STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s4_clk_src),
3410a3cc0921STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s5_clk_src),
3411a3cc0921STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s6_clk_src),
3412a3cc0921STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s7_clk_src),
3413a3cc0921STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s0_clk_src),
3414a3cc0921STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s1_clk_src),
3415a3cc0921STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s2_clk_src),
3416a3cc0921STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s3_clk_src),
3417a3cc0921STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s4_clk_src),
3418a3cc0921STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s5_clk_src),
3419a3cc0921STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s6_clk_src),
3420a3cc0921STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s7_clk_src),
3421a3cc0921STaniya Das };
3422a3cc0921STaniya Das 
3423a3cc0921STaniya Das static const struct regmap_config gcc_sc7280_regmap_config = {
3424a3cc0921STaniya Das 	.reg_bits = 32,
3425a3cc0921STaniya Das 	.reg_stride = 4,
3426a3cc0921STaniya Das 	.val_bits = 32,
3427a3cc0921STaniya Das 	.max_register = 0x9f128,
3428a3cc0921STaniya Das 	.fast_io = true,
3429a3cc0921STaniya Das };
3430a3cc0921STaniya Das 
3431a3cc0921STaniya Das static const struct qcom_cc_desc gcc_sc7280_desc = {
3432a3cc0921STaniya Das 	.config = &gcc_sc7280_regmap_config,
3433a3cc0921STaniya Das 	.clks = gcc_sc7280_clocks,
3434a3cc0921STaniya Das 	.num_clks = ARRAY_SIZE(gcc_sc7280_clocks),
3435a3cc0921STaniya Das 	.resets = gcc_sc7280_resets,
3436a3cc0921STaniya Das 	.num_resets = ARRAY_SIZE(gcc_sc7280_resets),
3437a3cc0921STaniya Das 	.gdscs = gcc_sc7280_gdscs,
3438a3cc0921STaniya Das 	.num_gdscs = ARRAY_SIZE(gcc_sc7280_gdscs),
3439a3cc0921STaniya Das };
3440a3cc0921STaniya Das 
3441a3cc0921STaniya Das static const struct of_device_id gcc_sc7280_match_table[] = {
3442a3cc0921STaniya Das 	{ .compatible = "qcom,gcc-sc7280" },
3443a3cc0921STaniya Das 	{ }
3444a3cc0921STaniya Das };
3445a3cc0921STaniya Das MODULE_DEVICE_TABLE(of, gcc_sc7280_match_table);
3446a3cc0921STaniya Das 
gcc_sc7280_probe(struct platform_device * pdev)3447a3cc0921STaniya Das static int gcc_sc7280_probe(struct platform_device *pdev)
3448a3cc0921STaniya Das {
3449a3cc0921STaniya Das 	struct regmap *regmap;
3450a3cc0921STaniya Das 	int ret;
3451a3cc0921STaniya Das 
3452a3cc0921STaniya Das 	regmap = qcom_cc_map(pdev, &gcc_sc7280_desc);
3453a3cc0921STaniya Das 	if (IS_ERR(regmap))
3454a3cc0921STaniya Das 		return PTR_ERR(regmap);
3455a3cc0921STaniya Das 
3456a3cc0921STaniya Das 	/*
3457a3cc0921STaniya Das 	 * Keep the clocks always-ON
3458a3cc0921STaniya Das 	 * GCC_CAMERA_AHB_CLK/XO_CLK, GCC_DISP_AHB_CLK/XO_CLK
3459a3cc0921STaniya Das 	 * GCC_VIDEO_AHB_CLK/XO_CLK, GCC_GPU_CFG_AHB_CLK
3460a3cc0921STaniya Das 	 */
3461a3cc0921STaniya Das 	regmap_update_bits(regmap, 0x26004, BIT(0), BIT(0));
3462a3cc0921STaniya Das 	regmap_update_bits(regmap, 0x26028, BIT(0), BIT(0));
3463a3cc0921STaniya Das 	regmap_update_bits(regmap, 0x27004, BIT(0), BIT(0));
3464a3cc0921STaniya Das 	regmap_update_bits(regmap, 0x2701C, BIT(0), BIT(0));
3465a3cc0921STaniya Das 	regmap_update_bits(regmap, 0x28004, BIT(0), BIT(0));
3466a3cc0921STaniya Das 	regmap_update_bits(regmap, 0x28014, BIT(0), BIT(0));
3467a3cc0921STaniya Das 	regmap_update_bits(regmap, 0x71004, BIT(0), BIT(0));
3468ffa20aa5STaniya Das 	regmap_update_bits(regmap, 0x7100C, BIT(13), BIT(13));
3469a3cc0921STaniya Das 
3470*698f3070STaniya Das 	/* FORCE_MEM_CORE_ON for ufs phy ice core clocks */
3471*698f3070STaniya Das 	qcom_branch_set_force_mem_core(regmap, gcc_ufs_phy_ice_core_clk, true);
3472*698f3070STaniya Das 
3473a3cc0921STaniya Das 	ret = qcom_cc_register_rcg_dfs(regmap, gcc_dfs_clocks,
3474a3cc0921STaniya Das 			ARRAY_SIZE(gcc_dfs_clocks));
3475a3cc0921STaniya Das 	if (ret)
3476a3cc0921STaniya Das 		return ret;
3477a3cc0921STaniya Das 
3478a3cc0921STaniya Das 	return qcom_cc_really_probe(pdev, &gcc_sc7280_desc, regmap);
3479a3cc0921STaniya Das }
3480a3cc0921STaniya Das 
3481a3cc0921STaniya Das static struct platform_driver gcc_sc7280_driver = {
3482a3cc0921STaniya Das 	.probe = gcc_sc7280_probe,
3483a3cc0921STaniya Das 	.driver = {
3484a3cc0921STaniya Das 		.name = "gcc-sc7280",
3485a3cc0921STaniya Das 		.of_match_table = gcc_sc7280_match_table,
3486a3cc0921STaniya Das 	},
3487a3cc0921STaniya Das };
3488a3cc0921STaniya Das 
gcc_sc7280_init(void)3489a3cc0921STaniya Das static int __init gcc_sc7280_init(void)
3490a3cc0921STaniya Das {
3491a3cc0921STaniya Das 	return platform_driver_register(&gcc_sc7280_driver);
3492a3cc0921STaniya Das }
3493a3cc0921STaniya Das subsys_initcall(gcc_sc7280_init);
3494a3cc0921STaniya Das 
gcc_sc7280_exit(void)3495a3cc0921STaniya Das static void __exit gcc_sc7280_exit(void)
3496a3cc0921STaniya Das {
3497a3cc0921STaniya Das 	platform_driver_unregister(&gcc_sc7280_driver);
3498a3cc0921STaniya Das }
3499a3cc0921STaniya Das module_exit(gcc_sc7280_exit);
3500a3cc0921STaniya Das 
3501a3cc0921STaniya Das MODULE_DESCRIPTION("QTI GCC SC7280 Driver");
3502a3cc0921STaniya Das MODULE_LICENSE("GPL v2");
3503