xref: /linux/drivers/clk/qcom/gcc-sdm845.c (revision 1260ed77798502de9c98020040d2995008de10cc)
106391eddSTaniya Das // SPDX-License-Identifier: GPL-2.0
206391eddSTaniya Das /*
39c3df2b1STaniya Das  * Copyright (c) 2018, 2020, The Linux Foundation. All rights reserved.
406391eddSTaniya Das  */
506391eddSTaniya Das 
606391eddSTaniya Das #include <linux/kernel.h>
706391eddSTaniya Das #include <linux/bitops.h>
806391eddSTaniya Das #include <linux/err.h>
906391eddSTaniya Das #include <linux/platform_device.h>
1006391eddSTaniya Das #include <linux/module.h>
1106391eddSTaniya Das #include <linux/of.h>
1206391eddSTaniya Das #include <linux/clk-provider.h>
1306391eddSTaniya Das #include <linux/regmap.h>
1406391eddSTaniya Das #include <linux/reset-controller.h>
1506391eddSTaniya Das 
1606391eddSTaniya Das #include <dt-bindings/clock/qcom,gcc-sdm845.h>
1706391eddSTaniya Das 
1806391eddSTaniya Das #include "common.h"
1906391eddSTaniya Das #include "clk-regmap.h"
2006391eddSTaniya Das #include "clk-pll.h"
2106391eddSTaniya Das #include "clk-rcg.h"
2206391eddSTaniya Das #include "clk-branch.h"
2306391eddSTaniya Das #include "clk-alpha-pll.h"
2406391eddSTaniya Das #include "gdsc.h"
2506391eddSTaniya Das #include "reset.h"
2606391eddSTaniya Das 
2706391eddSTaniya Das enum {
2806391eddSTaniya Das 	P_BI_TCXO,
2906391eddSTaniya Das 	P_AUD_REF_CLK,
3006391eddSTaniya Das 	P_GPLL0_OUT_EVEN,
3106391eddSTaniya Das 	P_GPLL0_OUT_MAIN,
3206391eddSTaniya Das 	P_GPLL4_OUT_MAIN,
33ae66b1feSRichard Acayan 	P_GPLL6_OUT_MAIN,
3406391eddSTaniya Das 	P_SLEEP_CLK,
3506391eddSTaniya Das };
3606391eddSTaniya Das 
3706391eddSTaniya Das static struct clk_alpha_pll gpll0 = {
3806391eddSTaniya Das 	.offset = 0x0,
3906391eddSTaniya Das 	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
4006391eddSTaniya Das 	.clkr = {
4106391eddSTaniya Das 		.enable_reg = 0x52000,
4206391eddSTaniya Das 		.enable_mask = BIT(0),
4306391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
4406391eddSTaniya Das 			.name = "gpll0",
45ea434d7aSDmitry Baryshkov 			.parent_data = &(const struct clk_parent_data){
46ea434d7aSDmitry Baryshkov 				.fw_name = "bi_tcxo", .name = "bi_tcxo",
47ea434d7aSDmitry Baryshkov 			},
4806391eddSTaniya Das 			.num_parents = 1,
4906391eddSTaniya Das 			.ops = &clk_alpha_pll_fixed_fabia_ops,
5006391eddSTaniya Das 		},
5106391eddSTaniya Das 	},
5206391eddSTaniya Das };
5306391eddSTaniya Das 
5406391eddSTaniya Das static struct clk_alpha_pll gpll4 = {
5506391eddSTaniya Das 	.offset = 0x76000,
5606391eddSTaniya Das 	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
5706391eddSTaniya Das 	.clkr = {
5806391eddSTaniya Das 		.enable_reg = 0x52000,
5906391eddSTaniya Das 		.enable_mask = BIT(4),
6006391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
6106391eddSTaniya Das 			.name = "gpll4",
62ea434d7aSDmitry Baryshkov 			.parent_data = &(const struct clk_parent_data){
63ea434d7aSDmitry Baryshkov 				.fw_name = "bi_tcxo", .name = "bi_tcxo",
64ea434d7aSDmitry Baryshkov 			},
6506391eddSTaniya Das 			.num_parents = 1,
6606391eddSTaniya Das 			.ops = &clk_alpha_pll_fixed_fabia_ops,
6706391eddSTaniya Das 		},
6806391eddSTaniya Das 	},
6906391eddSTaniya Das };
7006391eddSTaniya Das 
71ae66b1feSRichard Acayan static struct clk_alpha_pll gpll6 = {
72ae66b1feSRichard Acayan 	.offset = 0x13000,
73ae66b1feSRichard Acayan 	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
74ae66b1feSRichard Acayan 	.clkr = {
75ae66b1feSRichard Acayan 		.enable_reg = 0x52000,
76ae66b1feSRichard Acayan 		.enable_mask = BIT(6),
77ae66b1feSRichard Acayan 		.hw.init = &(struct clk_init_data){
78ae66b1feSRichard Acayan 			.name = "gpll6",
79ae66b1feSRichard Acayan 			.parent_data = &(const struct clk_parent_data){
80ae66b1feSRichard Acayan 				.fw_name = "bi_tcxo", .name = "bi_tcxo",
81ae66b1feSRichard Acayan 			},
82ae66b1feSRichard Acayan 			.num_parents = 1,
83ae66b1feSRichard Acayan 			.ops = &clk_alpha_pll_fixed_fabia_ops,
84ae66b1feSRichard Acayan 		},
85ae66b1feSRichard Acayan 	},
86ae66b1feSRichard Acayan };
87ae66b1feSRichard Acayan 
8806391eddSTaniya Das static const struct clk_div_table post_div_table_fabia_even[] = {
8906391eddSTaniya Das 	{ 0x0, 1 },
9006391eddSTaniya Das 	{ 0x1, 2 },
9106391eddSTaniya Das 	{ 0x3, 4 },
9206391eddSTaniya Das 	{ 0x7, 8 },
9306391eddSTaniya Das 	{ }
9406391eddSTaniya Das };
9506391eddSTaniya Das 
9606391eddSTaniya Das static struct clk_alpha_pll_postdiv gpll0_out_even = {
9706391eddSTaniya Das 	.offset = 0x0,
9806391eddSTaniya Das 	.post_div_shift = 8,
9906391eddSTaniya Das 	.post_div_table = post_div_table_fabia_even,
10006391eddSTaniya Das 	.num_post_div = ARRAY_SIZE(post_div_table_fabia_even),
10106391eddSTaniya Das 	.width = 4,
10206391eddSTaniya Das 	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
10306391eddSTaniya Das 	.clkr.hw.init = &(struct clk_init_data){
10406391eddSTaniya Das 		.name = "gpll0_out_even",
105ea434d7aSDmitry Baryshkov 		.parent_hws = (const struct clk_hw*[]){
106ea434d7aSDmitry Baryshkov 			&gpll0.clkr.hw,
107ea434d7aSDmitry Baryshkov 		},
10806391eddSTaniya Das 		.num_parents = 1,
10906391eddSTaniya Das 		.ops = &clk_alpha_pll_postdiv_fabia_ops,
11006391eddSTaniya Das 	},
11106391eddSTaniya Das };
11206391eddSTaniya Das 
113ea434d7aSDmitry Baryshkov static const struct parent_map gcc_parent_map_0[] = {
114ea434d7aSDmitry Baryshkov 	{ P_BI_TCXO, 0 },
115ea434d7aSDmitry Baryshkov 	{ P_GPLL0_OUT_MAIN, 1 },
116ea434d7aSDmitry Baryshkov 	{ P_GPLL0_OUT_EVEN, 6 },
117ea434d7aSDmitry Baryshkov };
118ea434d7aSDmitry Baryshkov 
119ea434d7aSDmitry Baryshkov static const struct clk_parent_data gcc_parent_data_0[] = {
120ea434d7aSDmitry Baryshkov 	{ .fw_name = "bi_tcxo", .name = "bi_tcxo" },
121ea434d7aSDmitry Baryshkov 	{ .hw = &gpll0.clkr.hw },
122ea434d7aSDmitry Baryshkov 	{ .hw = &gpll0_out_even.clkr.hw },
123ea434d7aSDmitry Baryshkov };
124ea434d7aSDmitry Baryshkov 
125ea434d7aSDmitry Baryshkov static const struct parent_map gcc_parent_map_1[] = {
126ea434d7aSDmitry Baryshkov 	{ P_BI_TCXO, 0 },
127ea434d7aSDmitry Baryshkov 	{ P_GPLL0_OUT_MAIN, 1 },
128ea434d7aSDmitry Baryshkov 	{ P_SLEEP_CLK, 5 },
129ea434d7aSDmitry Baryshkov 	{ P_GPLL0_OUT_EVEN, 6 },
130ea434d7aSDmitry Baryshkov };
131ea434d7aSDmitry Baryshkov 
132ea434d7aSDmitry Baryshkov static const struct clk_parent_data gcc_parent_data_1[] = {
133ea434d7aSDmitry Baryshkov 	{ .fw_name = "bi_tcxo", .name = "bi_tcxo" },
134ea434d7aSDmitry Baryshkov 	{ .hw = &gpll0.clkr.hw },
135ea434d7aSDmitry Baryshkov 	{ .fw_name = "sleep_clk", .name = "core_pi_sleep_clk" },
136ea434d7aSDmitry Baryshkov 	{ .hw = &gpll0_out_even.clkr.hw },
137ea434d7aSDmitry Baryshkov };
138ea434d7aSDmitry Baryshkov 
139ea434d7aSDmitry Baryshkov static const struct parent_map gcc_parent_map_2[] = {
140ea434d7aSDmitry Baryshkov 	{ P_BI_TCXO, 0 },
141ea434d7aSDmitry Baryshkov 	{ P_SLEEP_CLK, 5 },
142ea434d7aSDmitry Baryshkov };
143ea434d7aSDmitry Baryshkov 
144ea434d7aSDmitry Baryshkov static const struct clk_parent_data gcc_parent_data_2[] = {
145ea434d7aSDmitry Baryshkov 	{ .fw_name = "bi_tcxo", .name = "bi_tcxo" },
146ea434d7aSDmitry Baryshkov 	{ .fw_name = "sleep_clk", .name = "core_pi_sleep_clk" },
147ea434d7aSDmitry Baryshkov };
148ea434d7aSDmitry Baryshkov 
149ea434d7aSDmitry Baryshkov static const struct parent_map gcc_parent_map_3[] = {
150ea434d7aSDmitry Baryshkov 	{ P_BI_TCXO, 0 },
151ea434d7aSDmitry Baryshkov 	{ P_GPLL0_OUT_MAIN, 1 },
152ea434d7aSDmitry Baryshkov };
153ea434d7aSDmitry Baryshkov 
154ea434d7aSDmitry Baryshkov static const struct clk_parent_data gcc_parent_data_3[] = {
155ea434d7aSDmitry Baryshkov 	{ .fw_name = "bi_tcxo", .name = "bi_tcxo" },
156ea434d7aSDmitry Baryshkov 	{ .hw = &gpll0.clkr.hw },
157ea434d7aSDmitry Baryshkov };
158ea434d7aSDmitry Baryshkov 
159ea434d7aSDmitry Baryshkov static const struct parent_map gcc_parent_map_4[] = {
160ea434d7aSDmitry Baryshkov 	{ P_BI_TCXO, 0 },
161ea434d7aSDmitry Baryshkov };
162ea434d7aSDmitry Baryshkov 
163ea434d7aSDmitry Baryshkov static const struct clk_parent_data gcc_parent_data_4[] = {
164ea434d7aSDmitry Baryshkov 	{ .fw_name = "bi_tcxo", .name = "bi_tcxo" },
165ea434d7aSDmitry Baryshkov };
166ea434d7aSDmitry Baryshkov 
167ea434d7aSDmitry Baryshkov static const struct parent_map gcc_parent_map_6[] = {
168ea434d7aSDmitry Baryshkov 	{ P_BI_TCXO, 0 },
169ea434d7aSDmitry Baryshkov 	{ P_GPLL0_OUT_MAIN, 1 },
170ea434d7aSDmitry Baryshkov 	{ P_AUD_REF_CLK, 2 },
171ea434d7aSDmitry Baryshkov 	{ P_GPLL0_OUT_EVEN, 6 },
172ea434d7aSDmitry Baryshkov };
173ea434d7aSDmitry Baryshkov 
174ea434d7aSDmitry Baryshkov static const struct clk_parent_data gcc_parent_data_6[] = {
175ea434d7aSDmitry Baryshkov 	{ .fw_name = "bi_tcxo", .name = "bi_tcxo" },
176ea434d7aSDmitry Baryshkov 	{ .hw = &gpll0.clkr.hw },
177ea434d7aSDmitry Baryshkov 	{ .fw_name = "aud_ref_clk", .name = "aud_ref_clk" },
178ea434d7aSDmitry Baryshkov 	{ .hw = &gpll0_out_even.clkr.hw },
179ea434d7aSDmitry Baryshkov };
180ea434d7aSDmitry Baryshkov 
181ea434d7aSDmitry Baryshkov static const struct clk_parent_data gcc_parent_data_7_ao[] = {
182ea434d7aSDmitry Baryshkov 	{ .fw_name = "bi_tcxo_ao", .name = "bi_tcxo_ao" },
183ea434d7aSDmitry Baryshkov 	{ .hw = &gpll0.clkr.hw },
184ea434d7aSDmitry Baryshkov 	{ .hw = &gpll0_out_even.clkr.hw },
185ea434d7aSDmitry Baryshkov 	{ .fw_name = "core_bi_pll_test_se", .name = "core_bi_pll_test_se" },
186ea434d7aSDmitry Baryshkov };
187ea434d7aSDmitry Baryshkov 
188ea434d7aSDmitry Baryshkov static const struct clk_parent_data gcc_parent_data_8[] = {
189ea434d7aSDmitry Baryshkov 	{ .fw_name = "bi_tcxo", .name = "bi_tcxo" },
190ea434d7aSDmitry Baryshkov 	{ .hw = &gpll0.clkr.hw },
191ea434d7aSDmitry Baryshkov 	{ .fw_name = "core_bi_pll_test_se", .name = "core_bi_pll_test_se" },
192ea434d7aSDmitry Baryshkov };
193ea434d7aSDmitry Baryshkov 
194ea434d7aSDmitry Baryshkov static const struct clk_parent_data gcc_parent_data_8_ao[] = {
195ea434d7aSDmitry Baryshkov 	{ .fw_name = "bi_tcxo_ao", .name = "bi_tcxo_ao" },
196ea434d7aSDmitry Baryshkov 	{ .hw = &gpll0.clkr.hw },
197ea434d7aSDmitry Baryshkov 	{ .fw_name = "core_bi_pll_test_se", .name = "core_bi_pll_test_se" },
198ea434d7aSDmitry Baryshkov };
199ea434d7aSDmitry Baryshkov 
200ea434d7aSDmitry Baryshkov static const struct parent_map gcc_parent_map_10[] = {
201ea434d7aSDmitry Baryshkov 	{ P_BI_TCXO, 0 },
202ea434d7aSDmitry Baryshkov 	{ P_GPLL0_OUT_MAIN, 1 },
203ea434d7aSDmitry Baryshkov 	{ P_GPLL4_OUT_MAIN, 5 },
204ea434d7aSDmitry Baryshkov 	{ P_GPLL0_OUT_EVEN, 6 },
205ea434d7aSDmitry Baryshkov };
206ea434d7aSDmitry Baryshkov 
207ea434d7aSDmitry Baryshkov static const struct clk_parent_data gcc_parent_data_10[] = {
208ea434d7aSDmitry Baryshkov 	{ .fw_name = "bi_tcxo", .name = "bi_tcxo" },
209ea434d7aSDmitry Baryshkov 	{ .hw = &gpll0.clkr.hw },
210ea434d7aSDmitry Baryshkov 	{ .hw = &gpll4.clkr.hw },
211ea434d7aSDmitry Baryshkov 	{ .hw = &gpll0_out_even.clkr.hw },
212ea434d7aSDmitry Baryshkov };
213ea434d7aSDmitry Baryshkov 
214ae66b1feSRichard Acayan static const struct parent_map gcc_parent_map_11[] = {
215ae66b1feSRichard Acayan 	{ P_BI_TCXO, 0 },
216ae66b1feSRichard Acayan 	{ P_GPLL0_OUT_MAIN, 1 },
217ae66b1feSRichard Acayan 	{ P_GPLL6_OUT_MAIN, 2 },
218ae66b1feSRichard Acayan 	{ P_GPLL0_OUT_EVEN, 6 },
219ae66b1feSRichard Acayan };
220ae66b1feSRichard Acayan 
221ae66b1feSRichard Acayan static const struct clk_parent_data gcc_parent_data_11[] = {
222ae66b1feSRichard Acayan 	{ .fw_name = "bi_tcxo", .name = "bi_tcxo" },
223ae66b1feSRichard Acayan 	{ .hw = &gpll0.clkr.hw },
224ae66b1feSRichard Acayan 	{ .hw = &gpll6.clkr.hw },
225ae66b1feSRichard Acayan 	{ .hw = &gpll0_out_even.clkr.hw },
226ae66b1feSRichard Acayan };
227ea434d7aSDmitry Baryshkov 
22806391eddSTaniya Das static const struct freq_tbl ftbl_gcc_cpuss_ahb_clk_src[] = {
22906391eddSTaniya Das 	F(19200000, P_BI_TCXO, 1, 0, 0),
23006391eddSTaniya Das 	{ }
23106391eddSTaniya Das };
23206391eddSTaniya Das 
23306391eddSTaniya Das static struct clk_rcg2 gcc_cpuss_ahb_clk_src = {
23406391eddSTaniya Das 	.cmd_rcgr = 0x48014,
23506391eddSTaniya Das 	.mnd_width = 0,
23606391eddSTaniya Das 	.hid_width = 5,
23706391eddSTaniya Das 	.parent_map = gcc_parent_map_0,
23806391eddSTaniya Das 	.freq_tbl = ftbl_gcc_cpuss_ahb_clk_src,
23906391eddSTaniya Das 	.clkr.hw.init = &(struct clk_init_data){
24006391eddSTaniya Das 		.name = "gcc_cpuss_ahb_clk_src",
241ea434d7aSDmitry Baryshkov 		.parent_data = gcc_parent_data_7_ao,
242ea434d7aSDmitry Baryshkov 		.num_parents = ARRAY_SIZE(gcc_parent_data_7_ao),
24306391eddSTaniya Das 		.ops = &clk_rcg2_ops,
24406391eddSTaniya Das 	},
24506391eddSTaniya Das };
24606391eddSTaniya Das 
24706391eddSTaniya Das static const struct freq_tbl ftbl_gcc_cpuss_rbcpr_clk_src[] = {
24806391eddSTaniya Das 	F(19200000, P_BI_TCXO, 1, 0, 0),
24906391eddSTaniya Das 	{ }
25006391eddSTaniya Das };
25106391eddSTaniya Das 
25206391eddSTaniya Das static struct clk_rcg2 gcc_cpuss_rbcpr_clk_src = {
25306391eddSTaniya Das 	.cmd_rcgr = 0x4815c,
25406391eddSTaniya Das 	.mnd_width = 0,
25506391eddSTaniya Das 	.hid_width = 5,
25606391eddSTaniya Das 	.parent_map = gcc_parent_map_3,
25706391eddSTaniya Das 	.freq_tbl = ftbl_gcc_cpuss_rbcpr_clk_src,
25806391eddSTaniya Das 	.clkr.hw.init = &(struct clk_init_data){
25906391eddSTaniya Das 		.name = "gcc_cpuss_rbcpr_clk_src",
260ea434d7aSDmitry Baryshkov 		.parent_data = gcc_parent_data_8_ao,
261ea434d7aSDmitry Baryshkov 		.num_parents = ARRAY_SIZE(gcc_parent_data_8_ao),
26206391eddSTaniya Das 		.ops = &clk_rcg2_ops,
26306391eddSTaniya Das 	},
26406391eddSTaniya Das };
26506391eddSTaniya Das 
266ae66b1feSRichard Acayan static const struct freq_tbl ftbl_gcc_sdm670_cpuss_rbcpr_clk_src[] = {
267ae66b1feSRichard Acayan 	F(19200000, P_BI_TCXO, 1, 0, 0),
268ae66b1feSRichard Acayan 	F(50000000, P_GPLL0_OUT_MAIN, 12, 0, 0),
269ae66b1feSRichard Acayan 	{ }
270ae66b1feSRichard Acayan };
271ae66b1feSRichard Acayan 
272ae66b1feSRichard Acayan static struct clk_rcg2 gcc_sdm670_cpuss_rbcpr_clk_src = {
273ae66b1feSRichard Acayan 	.cmd_rcgr = 0x4815c,
274ae66b1feSRichard Acayan 	.mnd_width = 0,
275ae66b1feSRichard Acayan 	.hid_width = 5,
276ae66b1feSRichard Acayan 	.parent_map = gcc_parent_map_3,
277ae66b1feSRichard Acayan 	.freq_tbl = ftbl_gcc_sdm670_cpuss_rbcpr_clk_src,
278ae66b1feSRichard Acayan 	.clkr.hw.init = &(struct clk_init_data){
279ae66b1feSRichard Acayan 		.name = "gcc_cpuss_rbcpr_clk_src",
280ae66b1feSRichard Acayan 		.parent_data = gcc_parent_data_8_ao,
281ae66b1feSRichard Acayan 		.num_parents = ARRAY_SIZE(gcc_parent_data_8_ao),
282ae66b1feSRichard Acayan 		.ops = &clk_rcg2_ops,
283ae66b1feSRichard Acayan 	},
284ae66b1feSRichard Acayan };
285ae66b1feSRichard Acayan 
28606391eddSTaniya Das static const struct freq_tbl ftbl_gcc_gp1_clk_src[] = {
28706391eddSTaniya Das 	{ }
28806391eddSTaniya Das };
28906391eddSTaniya Das 
29006391eddSTaniya Das static struct clk_rcg2 gcc_gp1_clk_src = {
29106391eddSTaniya Das 	.cmd_rcgr = 0x64004,
29206391eddSTaniya Das 	.mnd_width = 8,
29306391eddSTaniya Das 	.hid_width = 5,
29406391eddSTaniya Das 	.parent_map = gcc_parent_map_1,
29506391eddSTaniya Das 	.freq_tbl = ftbl_gcc_gp1_clk_src,
29606391eddSTaniya Das 	.clkr.hw.init = &(struct clk_init_data){
29706391eddSTaniya Das 		.name = "gcc_gp1_clk_src",
298ea434d7aSDmitry Baryshkov 		.parent_data = gcc_parent_data_1,
299ea434d7aSDmitry Baryshkov 		.num_parents = ARRAY_SIZE(gcc_parent_data_1),
300898b72faSDzmitry Sankouski 		.ops = &clk_rcg2_gp_ops,
30106391eddSTaniya Das 	},
30206391eddSTaniya Das };
30306391eddSTaniya Das 
30406391eddSTaniya Das static struct clk_rcg2 gcc_gp2_clk_src = {
30506391eddSTaniya Das 	.cmd_rcgr = 0x65004,
30606391eddSTaniya Das 	.mnd_width = 8,
30706391eddSTaniya Das 	.hid_width = 5,
30806391eddSTaniya Das 	.parent_map = gcc_parent_map_1,
30906391eddSTaniya Das 	.freq_tbl = ftbl_gcc_gp1_clk_src,
31006391eddSTaniya Das 	.clkr.hw.init = &(struct clk_init_data){
31106391eddSTaniya Das 		.name = "gcc_gp2_clk_src",
312ea434d7aSDmitry Baryshkov 		.parent_data = gcc_parent_data_1,
313ea434d7aSDmitry Baryshkov 		.num_parents = ARRAY_SIZE(gcc_parent_data_1),
314898b72faSDzmitry Sankouski 		.ops = &clk_rcg2_gp_ops,
31506391eddSTaniya Das 	},
31606391eddSTaniya Das };
31706391eddSTaniya Das 
31806391eddSTaniya Das static struct clk_rcg2 gcc_gp3_clk_src = {
31906391eddSTaniya Das 	.cmd_rcgr = 0x66004,
32006391eddSTaniya Das 	.mnd_width = 8,
32106391eddSTaniya Das 	.hid_width = 5,
32206391eddSTaniya Das 	.parent_map = gcc_parent_map_1,
32306391eddSTaniya Das 	.freq_tbl = ftbl_gcc_gp1_clk_src,
32406391eddSTaniya Das 	.clkr.hw.init = &(struct clk_init_data){
32506391eddSTaniya Das 		.name = "gcc_gp3_clk_src",
326ea434d7aSDmitry Baryshkov 		.parent_data = gcc_parent_data_1,
327ea434d7aSDmitry Baryshkov 		.num_parents = ARRAY_SIZE(gcc_parent_data_1),
328898b72faSDzmitry Sankouski 		.ops = &clk_rcg2_gp_ops,
32906391eddSTaniya Das 	},
33006391eddSTaniya Das };
33106391eddSTaniya Das 
33206391eddSTaniya Das static const struct freq_tbl ftbl_gcc_pcie_0_aux_clk_src[] = {
33306391eddSTaniya Das 	F(9600000, P_BI_TCXO, 2, 0, 0),
33406391eddSTaniya Das 	F(19200000, P_BI_TCXO, 1, 0, 0),
33506391eddSTaniya Das 	{ }
33606391eddSTaniya Das };
33706391eddSTaniya Das 
33806391eddSTaniya Das static struct clk_rcg2 gcc_pcie_0_aux_clk_src = {
33906391eddSTaniya Das 	.cmd_rcgr = 0x6b028,
34006391eddSTaniya Das 	.mnd_width = 16,
34106391eddSTaniya Das 	.hid_width = 5,
34206391eddSTaniya Das 	.parent_map = gcc_parent_map_2,
34306391eddSTaniya Das 	.freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
34406391eddSTaniya Das 	.clkr.hw.init = &(struct clk_init_data){
34506391eddSTaniya Das 		.name = "gcc_pcie_0_aux_clk_src",
346ea434d7aSDmitry Baryshkov 		.parent_data = gcc_parent_data_2,
347ea434d7aSDmitry Baryshkov 		.num_parents = ARRAY_SIZE(gcc_parent_data_2),
34806391eddSTaniya Das 		.ops = &clk_rcg2_ops,
34906391eddSTaniya Das 	},
35006391eddSTaniya Das };
35106391eddSTaniya Das 
35206391eddSTaniya Das static struct clk_rcg2 gcc_pcie_1_aux_clk_src = {
35306391eddSTaniya Das 	.cmd_rcgr = 0x8d028,
35406391eddSTaniya Das 	.mnd_width = 16,
35506391eddSTaniya Das 	.hid_width = 5,
35606391eddSTaniya Das 	.parent_map = gcc_parent_map_2,
35706391eddSTaniya Das 	.freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
35806391eddSTaniya Das 	.clkr.hw.init = &(struct clk_init_data){
35906391eddSTaniya Das 		.name = "gcc_pcie_1_aux_clk_src",
360ea434d7aSDmitry Baryshkov 		.parent_data = gcc_parent_data_2,
361ea434d7aSDmitry Baryshkov 		.num_parents = ARRAY_SIZE(gcc_parent_data_2),
36206391eddSTaniya Das 		.ops = &clk_rcg2_ops,
36306391eddSTaniya Das 	},
36406391eddSTaniya Das };
36506391eddSTaniya Das 
36606391eddSTaniya Das static const struct freq_tbl ftbl_gcc_pcie_phy_refgen_clk_src[] = {
36706391eddSTaniya Das 	F(19200000, P_BI_TCXO, 1, 0, 0),
36806391eddSTaniya Das 	F(100000000, P_GPLL0_OUT_MAIN, 6, 0, 0),
36906391eddSTaniya Das 	{ }
37006391eddSTaniya Das };
37106391eddSTaniya Das 
37206391eddSTaniya Das static struct clk_rcg2 gcc_pcie_phy_refgen_clk_src = {
37306391eddSTaniya Das 	.cmd_rcgr = 0x6f014,
37406391eddSTaniya Das 	.mnd_width = 0,
37506391eddSTaniya Das 	.hid_width = 5,
37606391eddSTaniya Das 	.parent_map = gcc_parent_map_0,
37706391eddSTaniya Das 	.freq_tbl = ftbl_gcc_pcie_phy_refgen_clk_src,
37806391eddSTaniya Das 	.clkr.hw.init = &(struct clk_init_data){
37906391eddSTaniya Das 		.name = "gcc_pcie_phy_refgen_clk_src",
380ea434d7aSDmitry Baryshkov 		.parent_data = gcc_parent_data_0,
381ea434d7aSDmitry Baryshkov 		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
38206391eddSTaniya Das 		.ops = &clk_rcg2_ops,
38306391eddSTaniya Das 	},
38406391eddSTaniya Das };
38506391eddSTaniya Das 
3864f83d9b8SDouglas Anderson static const struct freq_tbl ftbl_gcc_qspi_core_clk_src[] = {
3874f83d9b8SDouglas Anderson 	F(19200000, P_BI_TCXO, 1, 0, 0),
3884f83d9b8SDouglas Anderson 	F(100000000, P_GPLL0_OUT_MAIN, 6, 0, 0),
3894f83d9b8SDouglas Anderson 	F(150000000, P_GPLL0_OUT_MAIN, 4, 0, 0),
3904f83d9b8SDouglas Anderson 	F(300000000, P_GPLL0_OUT_MAIN, 2, 0, 0),
3914f83d9b8SDouglas Anderson 	{ }
3924f83d9b8SDouglas Anderson };
3934f83d9b8SDouglas Anderson 
3944f83d9b8SDouglas Anderson static struct clk_rcg2 gcc_qspi_core_clk_src = {
3954f83d9b8SDouglas Anderson 	.cmd_rcgr = 0x4b008,
3964f83d9b8SDouglas Anderson 	.mnd_width = 0,
3974f83d9b8SDouglas Anderson 	.hid_width = 5,
3984f83d9b8SDouglas Anderson 	.parent_map = gcc_parent_map_0,
3994f83d9b8SDouglas Anderson 	.freq_tbl = ftbl_gcc_qspi_core_clk_src,
4004f83d9b8SDouglas Anderson 	.clkr.hw.init = &(struct clk_init_data){
4014f83d9b8SDouglas Anderson 		.name = "gcc_qspi_core_clk_src",
402ea434d7aSDmitry Baryshkov 		.parent_data = gcc_parent_data_0,
403ea434d7aSDmitry Baryshkov 		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
4044f83d9b8SDouglas Anderson 		.ops = &clk_rcg2_floor_ops,
4054f83d9b8SDouglas Anderson 	},
4064f83d9b8SDouglas Anderson };
4074f83d9b8SDouglas Anderson 
40806391eddSTaniya Das static const struct freq_tbl ftbl_gcc_pdm2_clk_src[] = {
40906391eddSTaniya Das 	F(9600000, P_BI_TCXO, 2, 0, 0),
41006391eddSTaniya Das 	F(19200000, P_BI_TCXO, 1, 0, 0),
41106391eddSTaniya Das 	F(60000000, P_GPLL0_OUT_MAIN, 10, 0, 0),
41206391eddSTaniya Das 	{ }
41306391eddSTaniya Das };
41406391eddSTaniya Das 
41506391eddSTaniya Das static struct clk_rcg2 gcc_pdm2_clk_src = {
41606391eddSTaniya Das 	.cmd_rcgr = 0x33010,
41706391eddSTaniya Das 	.mnd_width = 0,
41806391eddSTaniya Das 	.hid_width = 5,
41906391eddSTaniya Das 	.parent_map = gcc_parent_map_0,
42006391eddSTaniya Das 	.freq_tbl = ftbl_gcc_pdm2_clk_src,
42106391eddSTaniya Das 	.clkr.hw.init = &(struct clk_init_data){
42206391eddSTaniya Das 		.name = "gcc_pdm2_clk_src",
423ea434d7aSDmitry Baryshkov 		.parent_data = gcc_parent_data_0,
424ea434d7aSDmitry Baryshkov 		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
42506391eddSTaniya Das 		.ops = &clk_rcg2_ops,
42606391eddSTaniya Das 	},
42706391eddSTaniya Das };
42806391eddSTaniya Das 
42906391eddSTaniya Das static const struct freq_tbl ftbl_gcc_qupv3_wrap0_s0_clk_src[] = {
43006391eddSTaniya Das 	F(7372800, P_GPLL0_OUT_EVEN, 1, 384, 15625),
43106391eddSTaniya Das 	F(14745600, P_GPLL0_OUT_EVEN, 1, 768, 15625),
43206391eddSTaniya Das 	F(19200000, P_BI_TCXO, 1, 0, 0),
43306391eddSTaniya Das 	F(29491200, P_GPLL0_OUT_EVEN, 1, 1536, 15625),
43406391eddSTaniya Das 	F(32000000, P_GPLL0_OUT_EVEN, 1, 8, 75),
43506391eddSTaniya Das 	F(48000000, P_GPLL0_OUT_EVEN, 1, 4, 25),
43606391eddSTaniya Das 	F(64000000, P_GPLL0_OUT_EVEN, 1, 16, 75),
43706391eddSTaniya Das 	F(80000000, P_GPLL0_OUT_EVEN, 1, 4, 15),
43806391eddSTaniya Das 	F(96000000, P_GPLL0_OUT_EVEN, 1, 8, 25),
43906391eddSTaniya Das 	F(100000000, P_GPLL0_OUT_EVEN, 3, 0, 0),
44006391eddSTaniya Das 	F(102400000, P_GPLL0_OUT_EVEN, 1, 128, 375),
44106391eddSTaniya Das 	F(112000000, P_GPLL0_OUT_EVEN, 1, 28, 75),
44206391eddSTaniya Das 	F(117964800, P_GPLL0_OUT_EVEN, 1, 6144, 15625),
44306391eddSTaniya Das 	F(120000000, P_GPLL0_OUT_EVEN, 2.5, 0, 0),
44406391eddSTaniya Das 	F(128000000, P_GPLL0_OUT_MAIN, 1, 16, 75),
44506391eddSTaniya Das 	{ }
44606391eddSTaniya Das };
44706391eddSTaniya Das 
4481a1c7821STaniya Das static struct clk_init_data gcc_qupv3_wrap0_s0_clk_src_init = {
4498b69c6dbSTaniya Das 	.name = "gcc_qupv3_wrap0_s0_clk_src",
450ea434d7aSDmitry Baryshkov 	.parent_data = gcc_parent_data_0,
451ea434d7aSDmitry Baryshkov 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
452*f760a4bbSAmit Pundir 	.ops = &clk_rcg2_ops,
4538b69c6dbSTaniya Das };
4548b69c6dbSTaniya Das 
45506391eddSTaniya Das static struct clk_rcg2 gcc_qupv3_wrap0_s0_clk_src = {
45606391eddSTaniya Das 	.cmd_rcgr = 0x17034,
45706391eddSTaniya Das 	.mnd_width = 16,
45806391eddSTaniya Das 	.hid_width = 5,
45906391eddSTaniya Das 	.parent_map = gcc_parent_map_0,
46006391eddSTaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
4611a1c7821STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap0_s0_clk_src_init,
4628b69c6dbSTaniya Das };
4638b69c6dbSTaniya Das 
4641a1c7821STaniya Das static struct clk_init_data gcc_qupv3_wrap0_s1_clk_src_init = {
4658b69c6dbSTaniya Das 	.name = "gcc_qupv3_wrap0_s1_clk_src",
466ea434d7aSDmitry Baryshkov 	.parent_data = gcc_parent_data_0,
467ea434d7aSDmitry Baryshkov 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
468*f760a4bbSAmit Pundir 	.ops = &clk_rcg2_ops,
46906391eddSTaniya Das };
47006391eddSTaniya Das 
47106391eddSTaniya Das static struct clk_rcg2 gcc_qupv3_wrap0_s1_clk_src = {
47206391eddSTaniya Das 	.cmd_rcgr = 0x17164,
47306391eddSTaniya Das 	.mnd_width = 16,
47406391eddSTaniya Das 	.hid_width = 5,
47506391eddSTaniya Das 	.parent_map = gcc_parent_map_0,
47606391eddSTaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
4771a1c7821STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap0_s1_clk_src_init,
4788b69c6dbSTaniya Das };
4798b69c6dbSTaniya Das 
4801a1c7821STaniya Das static struct clk_init_data gcc_qupv3_wrap0_s2_clk_src_init = {
4818b69c6dbSTaniya Das 	.name = "gcc_qupv3_wrap0_s2_clk_src",
482ea434d7aSDmitry Baryshkov 	.parent_data = gcc_parent_data_0,
483ea434d7aSDmitry Baryshkov 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
484*f760a4bbSAmit Pundir 	.ops = &clk_rcg2_ops,
48506391eddSTaniya Das };
48606391eddSTaniya Das 
48706391eddSTaniya Das static struct clk_rcg2 gcc_qupv3_wrap0_s2_clk_src = {
48806391eddSTaniya Das 	.cmd_rcgr = 0x17294,
48906391eddSTaniya Das 	.mnd_width = 16,
49006391eddSTaniya Das 	.hid_width = 5,
49106391eddSTaniya Das 	.parent_map = gcc_parent_map_0,
49206391eddSTaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
4931a1c7821STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap0_s2_clk_src_init,
4948b69c6dbSTaniya Das };
4958b69c6dbSTaniya Das 
4961a1c7821STaniya Das static struct clk_init_data gcc_qupv3_wrap0_s3_clk_src_init = {
4978b69c6dbSTaniya Das 	.name = "gcc_qupv3_wrap0_s3_clk_src",
498ea434d7aSDmitry Baryshkov 	.parent_data = gcc_parent_data_0,
499ea434d7aSDmitry Baryshkov 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
500*f760a4bbSAmit Pundir 	.ops = &clk_rcg2_ops,
50106391eddSTaniya Das };
50206391eddSTaniya Das 
50306391eddSTaniya Das static struct clk_rcg2 gcc_qupv3_wrap0_s3_clk_src = {
50406391eddSTaniya Das 	.cmd_rcgr = 0x173c4,
50506391eddSTaniya Das 	.mnd_width = 16,
50606391eddSTaniya Das 	.hid_width = 5,
50706391eddSTaniya Das 	.parent_map = gcc_parent_map_0,
50806391eddSTaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
5091a1c7821STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap0_s3_clk_src_init,
5108b69c6dbSTaniya Das };
5118b69c6dbSTaniya Das 
5121a1c7821STaniya Das static struct clk_init_data gcc_qupv3_wrap0_s4_clk_src_init = {
5138b69c6dbSTaniya Das 	.name = "gcc_qupv3_wrap0_s4_clk_src",
514ea434d7aSDmitry Baryshkov 	.parent_data = gcc_parent_data_0,
515ea434d7aSDmitry Baryshkov 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
516*f760a4bbSAmit Pundir 	.ops = &clk_rcg2_ops,
51706391eddSTaniya Das };
51806391eddSTaniya Das 
51906391eddSTaniya Das static struct clk_rcg2 gcc_qupv3_wrap0_s4_clk_src = {
52006391eddSTaniya Das 	.cmd_rcgr = 0x174f4,
52106391eddSTaniya Das 	.mnd_width = 16,
52206391eddSTaniya Das 	.hid_width = 5,
52306391eddSTaniya Das 	.parent_map = gcc_parent_map_0,
52406391eddSTaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
5251a1c7821STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap0_s4_clk_src_init,
5268b69c6dbSTaniya Das };
5278b69c6dbSTaniya Das 
5281a1c7821STaniya Das static struct clk_init_data gcc_qupv3_wrap0_s5_clk_src_init = {
5298b69c6dbSTaniya Das 	.name = "gcc_qupv3_wrap0_s5_clk_src",
530ea434d7aSDmitry Baryshkov 	.parent_data = gcc_parent_data_0,
531ea434d7aSDmitry Baryshkov 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
532*f760a4bbSAmit Pundir 	.ops = &clk_rcg2_ops,
53306391eddSTaniya Das };
53406391eddSTaniya Das 
53506391eddSTaniya Das static struct clk_rcg2 gcc_qupv3_wrap0_s5_clk_src = {
53606391eddSTaniya Das 	.cmd_rcgr = 0x17624,
53706391eddSTaniya Das 	.mnd_width = 16,
53806391eddSTaniya Das 	.hid_width = 5,
53906391eddSTaniya Das 	.parent_map = gcc_parent_map_0,
54006391eddSTaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
5411a1c7821STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap0_s5_clk_src_init,
5428b69c6dbSTaniya Das };
5438b69c6dbSTaniya Das 
5441a1c7821STaniya Das static struct clk_init_data gcc_qupv3_wrap0_s6_clk_src_init = {
5458b69c6dbSTaniya Das 	.name = "gcc_qupv3_wrap0_s6_clk_src",
546ea434d7aSDmitry Baryshkov 	.parent_data = gcc_parent_data_0,
547ea434d7aSDmitry Baryshkov 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
548*f760a4bbSAmit Pundir 	.ops = &clk_rcg2_ops,
54906391eddSTaniya Das };
55006391eddSTaniya Das 
55106391eddSTaniya Das static struct clk_rcg2 gcc_qupv3_wrap0_s6_clk_src = {
55206391eddSTaniya Das 	.cmd_rcgr = 0x17754,
55306391eddSTaniya Das 	.mnd_width = 16,
55406391eddSTaniya Das 	.hid_width = 5,
55506391eddSTaniya Das 	.parent_map = gcc_parent_map_0,
55606391eddSTaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
5571a1c7821STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap0_s6_clk_src_init,
5588b69c6dbSTaniya Das };
5598b69c6dbSTaniya Das 
5601a1c7821STaniya Das static struct clk_init_data gcc_qupv3_wrap0_s7_clk_src_init = {
5618b69c6dbSTaniya Das 	.name = "gcc_qupv3_wrap0_s7_clk_src",
562ea434d7aSDmitry Baryshkov 	.parent_data = gcc_parent_data_0,
563ea434d7aSDmitry Baryshkov 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
564*f760a4bbSAmit Pundir 	.ops = &clk_rcg2_ops,
56506391eddSTaniya Das };
56606391eddSTaniya Das 
56706391eddSTaniya Das static struct clk_rcg2 gcc_qupv3_wrap0_s7_clk_src = {
56806391eddSTaniya Das 	.cmd_rcgr = 0x17884,
56906391eddSTaniya Das 	.mnd_width = 16,
57006391eddSTaniya Das 	.hid_width = 5,
57106391eddSTaniya Das 	.parent_map = gcc_parent_map_0,
57206391eddSTaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
5731a1c7821STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap0_s7_clk_src_init,
5748b69c6dbSTaniya Das };
5758b69c6dbSTaniya Das 
5761a1c7821STaniya Das static struct clk_init_data gcc_qupv3_wrap1_s0_clk_src_init = {
5778b69c6dbSTaniya Das 	.name = "gcc_qupv3_wrap1_s0_clk_src",
578ea434d7aSDmitry Baryshkov 	.parent_data = gcc_parent_data_0,
579ea434d7aSDmitry Baryshkov 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
580*f760a4bbSAmit Pundir 	.ops = &clk_rcg2_ops,
58106391eddSTaniya Das };
58206391eddSTaniya Das 
58306391eddSTaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s0_clk_src = {
58406391eddSTaniya Das 	.cmd_rcgr = 0x18018,
58506391eddSTaniya Das 	.mnd_width = 16,
58606391eddSTaniya Das 	.hid_width = 5,
58706391eddSTaniya Das 	.parent_map = gcc_parent_map_0,
58806391eddSTaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
5891a1c7821STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap1_s0_clk_src_init,
5908b69c6dbSTaniya Das };
5918b69c6dbSTaniya Das 
5921a1c7821STaniya Das static struct clk_init_data gcc_qupv3_wrap1_s1_clk_src_init = {
5938b69c6dbSTaniya Das 	.name = "gcc_qupv3_wrap1_s1_clk_src",
594ea434d7aSDmitry Baryshkov 	.parent_data = gcc_parent_data_0,
595ea434d7aSDmitry Baryshkov 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
596*f760a4bbSAmit Pundir 	.ops = &clk_rcg2_ops,
59706391eddSTaniya Das };
59806391eddSTaniya Das 
59906391eddSTaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s1_clk_src = {
60006391eddSTaniya Das 	.cmd_rcgr = 0x18148,
60106391eddSTaniya Das 	.mnd_width = 16,
60206391eddSTaniya Das 	.hid_width = 5,
60306391eddSTaniya Das 	.parent_map = gcc_parent_map_0,
60406391eddSTaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
6051a1c7821STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap1_s1_clk_src_init,
6068b69c6dbSTaniya Das };
6078b69c6dbSTaniya Das 
6081a1c7821STaniya Das static struct clk_init_data gcc_qupv3_wrap1_s2_clk_src_init = {
6098b69c6dbSTaniya Das 	.name = "gcc_qupv3_wrap1_s2_clk_src",
610ea434d7aSDmitry Baryshkov 	.parent_data = gcc_parent_data_0,
611ea434d7aSDmitry Baryshkov 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
612*f760a4bbSAmit Pundir 	.ops = &clk_rcg2_ops,
61306391eddSTaniya Das };
61406391eddSTaniya Das 
61506391eddSTaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s2_clk_src = {
61606391eddSTaniya Das 	.cmd_rcgr = 0x18278,
61706391eddSTaniya Das 	.mnd_width = 16,
61806391eddSTaniya Das 	.hid_width = 5,
61906391eddSTaniya Das 	.parent_map = gcc_parent_map_0,
62006391eddSTaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
6211a1c7821STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap1_s2_clk_src_init,
6228b69c6dbSTaniya Das };
6238b69c6dbSTaniya Das 
6241a1c7821STaniya Das static struct clk_init_data gcc_qupv3_wrap1_s3_clk_src_init = {
6258b69c6dbSTaniya Das 	.name = "gcc_qupv3_wrap1_s3_clk_src",
626ea434d7aSDmitry Baryshkov 	.parent_data = gcc_parent_data_0,
627ea434d7aSDmitry Baryshkov 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
628*f760a4bbSAmit Pundir 	.ops = &clk_rcg2_ops,
62906391eddSTaniya Das };
63006391eddSTaniya Das 
63106391eddSTaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s3_clk_src = {
63206391eddSTaniya Das 	.cmd_rcgr = 0x183a8,
63306391eddSTaniya Das 	.mnd_width = 16,
63406391eddSTaniya Das 	.hid_width = 5,
63506391eddSTaniya Das 	.parent_map = gcc_parent_map_0,
63606391eddSTaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
6371a1c7821STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap1_s3_clk_src_init,
6388b69c6dbSTaniya Das };
6398b69c6dbSTaniya Das 
6401a1c7821STaniya Das static struct clk_init_data gcc_qupv3_wrap1_s4_clk_src_init = {
6418b69c6dbSTaniya Das 	.name = "gcc_qupv3_wrap1_s4_clk_src",
642ea434d7aSDmitry Baryshkov 	.parent_data = gcc_parent_data_0,
643ea434d7aSDmitry Baryshkov 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
644*f760a4bbSAmit Pundir 	.ops = &clk_rcg2_ops,
64506391eddSTaniya Das };
64606391eddSTaniya Das 
64706391eddSTaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s4_clk_src = {
64806391eddSTaniya Das 	.cmd_rcgr = 0x184d8,
64906391eddSTaniya Das 	.mnd_width = 16,
65006391eddSTaniya Das 	.hid_width = 5,
65106391eddSTaniya Das 	.parent_map = gcc_parent_map_0,
65206391eddSTaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
6531a1c7821STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap1_s4_clk_src_init,
6548b69c6dbSTaniya Das };
6558b69c6dbSTaniya Das 
6561a1c7821STaniya Das static struct clk_init_data gcc_qupv3_wrap1_s5_clk_src_init = {
6578b69c6dbSTaniya Das 	.name = "gcc_qupv3_wrap1_s5_clk_src",
658ea434d7aSDmitry Baryshkov 	.parent_data = gcc_parent_data_0,
659ea434d7aSDmitry Baryshkov 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
660*f760a4bbSAmit Pundir 	.ops = &clk_rcg2_ops,
66106391eddSTaniya Das };
66206391eddSTaniya Das 
66306391eddSTaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s5_clk_src = {
66406391eddSTaniya Das 	.cmd_rcgr = 0x18608,
66506391eddSTaniya Das 	.mnd_width = 16,
66606391eddSTaniya Das 	.hid_width = 5,
66706391eddSTaniya Das 	.parent_map = gcc_parent_map_0,
66806391eddSTaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
6691a1c7821STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap1_s5_clk_src_init,
6708b69c6dbSTaniya Das };
6718b69c6dbSTaniya Das 
6721a1c7821STaniya Das static struct clk_init_data gcc_qupv3_wrap1_s6_clk_src_init = {
6738b69c6dbSTaniya Das 	.name = "gcc_qupv3_wrap1_s6_clk_src",
674ea434d7aSDmitry Baryshkov 	.parent_data = gcc_parent_data_0,
675ea434d7aSDmitry Baryshkov 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
676*f760a4bbSAmit Pundir 	.ops = &clk_rcg2_ops,
67706391eddSTaniya Das };
67806391eddSTaniya Das 
67906391eddSTaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s6_clk_src = {
68006391eddSTaniya Das 	.cmd_rcgr = 0x18738,
68106391eddSTaniya Das 	.mnd_width = 16,
68206391eddSTaniya Das 	.hid_width = 5,
68306391eddSTaniya Das 	.parent_map = gcc_parent_map_0,
68406391eddSTaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
6851a1c7821STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap1_s6_clk_src_init,
6868b69c6dbSTaniya Das };
6878b69c6dbSTaniya Das 
6881a1c7821STaniya Das static struct clk_init_data gcc_qupv3_wrap1_s7_clk_src_init = {
6898b69c6dbSTaniya Das 	.name = "gcc_qupv3_wrap1_s7_clk_src",
690ea434d7aSDmitry Baryshkov 	.parent_data = gcc_parent_data_0,
691ea434d7aSDmitry Baryshkov 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
692*f760a4bbSAmit Pundir 	.ops = &clk_rcg2_ops,
69306391eddSTaniya Das };
69406391eddSTaniya Das 
69506391eddSTaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s7_clk_src = {
69606391eddSTaniya Das 	.cmd_rcgr = 0x18868,
69706391eddSTaniya Das 	.mnd_width = 16,
69806391eddSTaniya Das 	.hid_width = 5,
69906391eddSTaniya Das 	.parent_map = gcc_parent_map_0,
70006391eddSTaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
7011a1c7821STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap1_s7_clk_src_init,
70206391eddSTaniya Das };
70306391eddSTaniya Das 
704ae66b1feSRichard Acayan static const struct freq_tbl ftbl_gcc_sdcc1_apps_clk_src[] = {
705ae66b1feSRichard Acayan 	F(144000, P_BI_TCXO, 16, 3, 25),
706ae66b1feSRichard Acayan 	F(400000, P_BI_TCXO, 12, 1, 4),
707ae66b1feSRichard Acayan 	F(20000000, P_GPLL0_OUT_EVEN, 5, 1, 3),
708ae66b1feSRichard Acayan 	F(25000000, P_GPLL0_OUT_EVEN, 6, 1, 2),
709ae66b1feSRichard Acayan 	F(50000000, P_GPLL0_OUT_EVEN, 6, 0, 0),
710ae66b1feSRichard Acayan 	F(100000000, P_GPLL0_OUT_MAIN, 6, 0, 0),
711ae66b1feSRichard Acayan 	F(192000000, P_GPLL6_OUT_MAIN, 2, 0, 0),
712ae66b1feSRichard Acayan 	F(384000000, P_GPLL6_OUT_MAIN, 1, 0, 0),
713ae66b1feSRichard Acayan 	{ }
714ae66b1feSRichard Acayan };
715ae66b1feSRichard Acayan 
716ae66b1feSRichard Acayan static struct clk_rcg2 gcc_sdcc1_apps_clk_src = {
717ae66b1feSRichard Acayan 	.cmd_rcgr = 0x26028,
718ae66b1feSRichard Acayan 	.mnd_width = 8,
719ae66b1feSRichard Acayan 	.hid_width = 5,
720ae66b1feSRichard Acayan 	.parent_map = gcc_parent_map_11,
721ae66b1feSRichard Acayan 	.freq_tbl = ftbl_gcc_sdcc1_apps_clk_src,
722ae66b1feSRichard Acayan 	.clkr.hw.init = &(struct clk_init_data){
723ae66b1feSRichard Acayan 		.name = "gcc_sdcc1_apps_clk_src",
724ae66b1feSRichard Acayan 		.parent_data = gcc_parent_data_11,
725ae66b1feSRichard Acayan 		.num_parents = ARRAY_SIZE(gcc_parent_data_11),
726ae66b1feSRichard Acayan 		.ops = &clk_rcg2_floor_ops,
727ae66b1feSRichard Acayan 	},
728ae66b1feSRichard Acayan };
729ae66b1feSRichard Acayan 
730ae66b1feSRichard Acayan static const struct freq_tbl ftbl_gcc_sdcc1_ice_core_clk_src[] = {
731ae66b1feSRichard Acayan 	F(75000000, P_GPLL0_OUT_EVEN, 4, 0, 0),
732ae66b1feSRichard Acayan 	F(150000000, P_GPLL0_OUT_MAIN, 4, 0, 0),
733ae66b1feSRichard Acayan 	F(200000000, P_GPLL0_OUT_MAIN, 3, 0, 0),
734ae66b1feSRichard Acayan 	F(300000000, P_GPLL0_OUT_MAIN, 2, 0, 0),
735ae66b1feSRichard Acayan 	{ }
736ae66b1feSRichard Acayan };
737ae66b1feSRichard Acayan 
738ae66b1feSRichard Acayan static struct clk_rcg2 gcc_sdcc1_ice_core_clk_src = {
739ae66b1feSRichard Acayan 	.cmd_rcgr = 0x26010,
740ae66b1feSRichard Acayan 	.mnd_width = 8,
741ae66b1feSRichard Acayan 	.hid_width = 5,
742ae66b1feSRichard Acayan 	.parent_map = gcc_parent_map_0,
743ae66b1feSRichard Acayan 	.freq_tbl = ftbl_gcc_sdcc1_ice_core_clk_src,
744ae66b1feSRichard Acayan 	.clkr.hw.init = &(struct clk_init_data){
745ae66b1feSRichard Acayan 		.name = "gcc_sdcc1_ice_core_clk_src",
746ae66b1feSRichard Acayan 		.parent_data = gcc_parent_data_0,
747ae66b1feSRichard Acayan 		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
748ae66b1feSRichard Acayan 		.ops = &clk_rcg2_ops,
749ae66b1feSRichard Acayan 	},
750ae66b1feSRichard Acayan };
751ae66b1feSRichard Acayan 
75206391eddSTaniya Das static const struct freq_tbl ftbl_gcc_sdcc2_apps_clk_src[] = {
75306391eddSTaniya Das 	F(400000, P_BI_TCXO, 12, 1, 4),
75406391eddSTaniya Das 	F(9600000, P_BI_TCXO, 2, 0, 0),
75506391eddSTaniya Das 	F(19200000, P_BI_TCXO, 1, 0, 0),
75606391eddSTaniya Das 	F(25000000, P_GPLL0_OUT_EVEN, 12, 0, 0),
75706391eddSTaniya Das 	F(50000000, P_GPLL0_OUT_EVEN, 6, 0, 0),
75806391eddSTaniya Das 	F(100000000, P_GPLL0_OUT_MAIN, 6, 0, 0),
75906391eddSTaniya Das 	F(201500000, P_GPLL4_OUT_MAIN, 4, 0, 0),
76006391eddSTaniya Das 	{ }
76106391eddSTaniya Das };
76206391eddSTaniya Das 
76306391eddSTaniya Das static struct clk_rcg2 gcc_sdcc2_apps_clk_src = {
76406391eddSTaniya Das 	.cmd_rcgr = 0x1400c,
76506391eddSTaniya Das 	.mnd_width = 8,
76606391eddSTaniya Das 	.hid_width = 5,
76706391eddSTaniya Das 	.parent_map = gcc_parent_map_10,
76806391eddSTaniya Das 	.freq_tbl = ftbl_gcc_sdcc2_apps_clk_src,
76906391eddSTaniya Das 	.clkr.hw.init = &(struct clk_init_data){
77006391eddSTaniya Das 		.name = "gcc_sdcc2_apps_clk_src",
771ea434d7aSDmitry Baryshkov 		.parent_data = gcc_parent_data_10,
772ea434d7aSDmitry Baryshkov 		.num_parents = ARRAY_SIZE(gcc_parent_data_10),
7735e4b7e82SStephen Boyd 		.ops = &clk_rcg2_floor_ops,
77406391eddSTaniya Das 	},
77506391eddSTaniya Das };
77606391eddSTaniya Das 
77706391eddSTaniya Das static const struct freq_tbl ftbl_gcc_sdcc4_apps_clk_src[] = {
77806391eddSTaniya Das 	F(400000, P_BI_TCXO, 12, 1, 4),
77906391eddSTaniya Das 	F(9600000, P_BI_TCXO, 2, 0, 0),
78006391eddSTaniya Das 	F(19200000, P_BI_TCXO, 1, 0, 0),
78106391eddSTaniya Das 	F(25000000, P_GPLL0_OUT_MAIN, 12, 1, 2),
78206391eddSTaniya Das 	F(50000000, P_GPLL0_OUT_MAIN, 12, 0, 0),
78306391eddSTaniya Das 	F(100000000, P_GPLL0_OUT_MAIN, 6, 0, 0),
78406391eddSTaniya Das 	{ }
78506391eddSTaniya Das };
78606391eddSTaniya Das 
78706391eddSTaniya Das static struct clk_rcg2 gcc_sdcc4_apps_clk_src = {
78806391eddSTaniya Das 	.cmd_rcgr = 0x1600c,
78906391eddSTaniya Das 	.mnd_width = 8,
79006391eddSTaniya Das 	.hid_width = 5,
79106391eddSTaniya Das 	.parent_map = gcc_parent_map_0,
79206391eddSTaniya Das 	.freq_tbl = ftbl_gcc_sdcc4_apps_clk_src,
79306391eddSTaniya Das 	.clkr.hw.init = &(struct clk_init_data){
79406391eddSTaniya Das 		.name = "gcc_sdcc4_apps_clk_src",
795ea434d7aSDmitry Baryshkov 		.parent_data = gcc_parent_data_0,
796ea434d7aSDmitry Baryshkov 		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
7975e4b7e82SStephen Boyd 		.ops = &clk_rcg2_floor_ops,
79806391eddSTaniya Das 	},
79906391eddSTaniya Das };
80006391eddSTaniya Das 
801ae66b1feSRichard Acayan static const struct freq_tbl ftbl_gcc_sdm670_sdcc4_apps_clk_src[] = {
802ae66b1feSRichard Acayan 	F(400000, P_BI_TCXO, 12, 1, 4),
803ae66b1feSRichard Acayan 	F(9600000, P_BI_TCXO, 2, 0, 0),
804ae66b1feSRichard Acayan 	F(19200000, P_BI_TCXO, 1, 0, 0),
805ae66b1feSRichard Acayan 	F(25000000, P_GPLL0_OUT_EVEN, 12, 0, 0),
806ae66b1feSRichard Acayan 	F(33333333, P_GPLL0_OUT_EVEN, 9, 0, 0),
807ae66b1feSRichard Acayan 	F(50000000, P_GPLL0_OUT_MAIN, 12, 0, 0),
808ae66b1feSRichard Acayan 	F(100000000, P_GPLL0_OUT_MAIN, 6, 0, 0),
809ae66b1feSRichard Acayan 	{ }
810ae66b1feSRichard Acayan };
811ae66b1feSRichard Acayan 
812ae66b1feSRichard Acayan static struct clk_rcg2 gcc_sdm670_sdcc4_apps_clk_src = {
813ae66b1feSRichard Acayan 	.cmd_rcgr = 0x1600c,
814ae66b1feSRichard Acayan 	.mnd_width = 8,
815ae66b1feSRichard Acayan 	.hid_width = 5,
816ae66b1feSRichard Acayan 	.parent_map = gcc_parent_map_0,
817ae66b1feSRichard Acayan 	.freq_tbl = ftbl_gcc_sdm670_sdcc4_apps_clk_src,
818ae66b1feSRichard Acayan 	.clkr.hw.init = &(struct clk_init_data){
819ae66b1feSRichard Acayan 		.name = "gcc_sdcc4_apps_clk_src",
820ae66b1feSRichard Acayan 		.parent_data = gcc_parent_data_0,
821ae66b1feSRichard Acayan 		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
822ae66b1feSRichard Acayan 		.ops = &clk_rcg2_floor_ops,
823ae66b1feSRichard Acayan 	},
824ae66b1feSRichard Acayan };
825ae66b1feSRichard Acayan 
82606391eddSTaniya Das static const struct freq_tbl ftbl_gcc_tsif_ref_clk_src[] = {
82706391eddSTaniya Das 	F(105495, P_BI_TCXO, 2, 1, 91),
82806391eddSTaniya Das 	{ }
82906391eddSTaniya Das };
83006391eddSTaniya Das 
83106391eddSTaniya Das static struct clk_rcg2 gcc_tsif_ref_clk_src = {
83206391eddSTaniya Das 	.cmd_rcgr = 0x36010,
83306391eddSTaniya Das 	.mnd_width = 8,
83406391eddSTaniya Das 	.hid_width = 5,
83506391eddSTaniya Das 	.parent_map = gcc_parent_map_6,
83606391eddSTaniya Das 	.freq_tbl = ftbl_gcc_tsif_ref_clk_src,
83706391eddSTaniya Das 	.clkr.hw.init = &(struct clk_init_data){
83806391eddSTaniya Das 		.name = "gcc_tsif_ref_clk_src",
839ea434d7aSDmitry Baryshkov 		.parent_data = gcc_parent_data_6,
840ea434d7aSDmitry Baryshkov 		.num_parents = ARRAY_SIZE(gcc_parent_data_6),
84106391eddSTaniya Das 		.ops = &clk_rcg2_ops,
84206391eddSTaniya Das 	},
84306391eddSTaniya Das };
84406391eddSTaniya Das 
84506391eddSTaniya Das static const struct freq_tbl ftbl_gcc_ufs_card_axi_clk_src[] = {
84606391eddSTaniya Das 	F(25000000, P_GPLL0_OUT_EVEN, 12, 0, 0),
84706391eddSTaniya Das 	F(50000000, P_GPLL0_OUT_EVEN, 6, 0, 0),
84806391eddSTaniya Das 	F(100000000, P_GPLL0_OUT_MAIN, 6, 0, 0),
84906391eddSTaniya Das 	F(200000000, P_GPLL0_OUT_MAIN, 3, 0, 0),
85006391eddSTaniya Das 	F(240000000, P_GPLL0_OUT_MAIN, 2.5, 0, 0),
85106391eddSTaniya Das 	{ }
85206391eddSTaniya Das };
85306391eddSTaniya Das 
85406391eddSTaniya Das static struct clk_rcg2 gcc_ufs_card_axi_clk_src = {
85506391eddSTaniya Das 	.cmd_rcgr = 0x7501c,
85606391eddSTaniya Das 	.mnd_width = 8,
85706391eddSTaniya Das 	.hid_width = 5,
85806391eddSTaniya Das 	.parent_map = gcc_parent_map_0,
85906391eddSTaniya Das 	.freq_tbl = ftbl_gcc_ufs_card_axi_clk_src,
86006391eddSTaniya Das 	.clkr.hw.init = &(struct clk_init_data){
86106391eddSTaniya Das 		.name = "gcc_ufs_card_axi_clk_src",
862ea434d7aSDmitry Baryshkov 		.parent_data = gcc_parent_data_0,
863ea434d7aSDmitry Baryshkov 		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
86406391eddSTaniya Das 		.ops = &clk_rcg2_shared_ops,
86506391eddSTaniya Das 	},
86606391eddSTaniya Das };
86706391eddSTaniya Das 
86806391eddSTaniya Das static const struct freq_tbl ftbl_gcc_ufs_card_ice_core_clk_src[] = {
86906391eddSTaniya Das 	F(37500000, P_GPLL0_OUT_EVEN, 8, 0, 0),
87006391eddSTaniya Das 	F(75000000, P_GPLL0_OUT_EVEN, 4, 0, 0),
87106391eddSTaniya Das 	F(150000000, P_GPLL0_OUT_MAIN, 4, 0, 0),
87206391eddSTaniya Das 	F(300000000, P_GPLL0_OUT_MAIN, 2, 0, 0),
87306391eddSTaniya Das 	{ }
87406391eddSTaniya Das };
87506391eddSTaniya Das 
87606391eddSTaniya Das static struct clk_rcg2 gcc_ufs_card_ice_core_clk_src = {
87706391eddSTaniya Das 	.cmd_rcgr = 0x7505c,
87806391eddSTaniya Das 	.mnd_width = 0,
87906391eddSTaniya Das 	.hid_width = 5,
88006391eddSTaniya Das 	.parent_map = gcc_parent_map_0,
88106391eddSTaniya Das 	.freq_tbl = ftbl_gcc_ufs_card_ice_core_clk_src,
88206391eddSTaniya Das 	.clkr.hw.init = &(struct clk_init_data){
88306391eddSTaniya Das 		.name = "gcc_ufs_card_ice_core_clk_src",
884ea434d7aSDmitry Baryshkov 		.parent_data = gcc_parent_data_0,
885ea434d7aSDmitry Baryshkov 		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
88606391eddSTaniya Das 		.ops = &clk_rcg2_shared_ops,
88706391eddSTaniya Das 	},
88806391eddSTaniya Das };
88906391eddSTaniya Das 
89006391eddSTaniya Das static struct clk_rcg2 gcc_ufs_card_phy_aux_clk_src = {
89106391eddSTaniya Das 	.cmd_rcgr = 0x75090,
89206391eddSTaniya Das 	.mnd_width = 0,
89306391eddSTaniya Das 	.hid_width = 5,
89406391eddSTaniya Das 	.parent_map = gcc_parent_map_4,
89506391eddSTaniya Das 	.freq_tbl = ftbl_gcc_cpuss_rbcpr_clk_src,
89606391eddSTaniya Das 	.clkr.hw.init = &(struct clk_init_data){
89706391eddSTaniya Das 		.name = "gcc_ufs_card_phy_aux_clk_src",
898ea434d7aSDmitry Baryshkov 		.parent_data = gcc_parent_data_4,
899ea434d7aSDmitry Baryshkov 		.num_parents = ARRAY_SIZE(gcc_parent_data_4),
90006391eddSTaniya Das 		.ops = &clk_rcg2_ops,
90106391eddSTaniya Das 	},
90206391eddSTaniya Das };
90306391eddSTaniya Das 
90406391eddSTaniya Das static const struct freq_tbl ftbl_gcc_ufs_card_unipro_core_clk_src[] = {
90506391eddSTaniya Das 	F(37500000, P_GPLL0_OUT_EVEN, 8, 0, 0),
90606391eddSTaniya Das 	F(75000000, P_GPLL0_OUT_MAIN, 8, 0, 0),
90706391eddSTaniya Das 	F(150000000, P_GPLL0_OUT_MAIN, 4, 0, 0),
90806391eddSTaniya Das 	{ }
90906391eddSTaniya Das };
91006391eddSTaniya Das 
91106391eddSTaniya Das static struct clk_rcg2 gcc_ufs_card_unipro_core_clk_src = {
91206391eddSTaniya Das 	.cmd_rcgr = 0x75074,
91306391eddSTaniya Das 	.mnd_width = 0,
91406391eddSTaniya Das 	.hid_width = 5,
91506391eddSTaniya Das 	.parent_map = gcc_parent_map_0,
91606391eddSTaniya Das 	.freq_tbl = ftbl_gcc_ufs_card_unipro_core_clk_src,
91706391eddSTaniya Das 	.clkr.hw.init = &(struct clk_init_data){
91806391eddSTaniya Das 		.name = "gcc_ufs_card_unipro_core_clk_src",
919ea434d7aSDmitry Baryshkov 		.parent_data = gcc_parent_data_0,
920ea434d7aSDmitry Baryshkov 		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
92106391eddSTaniya Das 		.ops = &clk_rcg2_shared_ops,
92206391eddSTaniya Das 	},
92306391eddSTaniya Das };
92406391eddSTaniya Das 
92506391eddSTaniya Das static const struct freq_tbl ftbl_gcc_ufs_phy_axi_clk_src[] = {
92606391eddSTaniya Das 	F(25000000, P_GPLL0_OUT_EVEN, 12, 0, 0),
92706391eddSTaniya Das 	F(50000000, P_GPLL0_OUT_EVEN, 6, 0, 0),
92806391eddSTaniya Das 	F(100000000, P_GPLL0_OUT_MAIN, 6, 0, 0),
92906391eddSTaniya Das 	F(200000000, P_GPLL0_OUT_MAIN, 3, 0, 0),
93006391eddSTaniya Das 	F(240000000, P_GPLL0_OUT_MAIN, 2.5, 0, 0),
93106391eddSTaniya Das 	{ }
93206391eddSTaniya Das };
93306391eddSTaniya Das 
93406391eddSTaniya Das static struct clk_rcg2 gcc_ufs_phy_axi_clk_src = {
93506391eddSTaniya Das 	.cmd_rcgr = 0x7701c,
93606391eddSTaniya Das 	.mnd_width = 8,
93706391eddSTaniya Das 	.hid_width = 5,
93806391eddSTaniya Das 	.parent_map = gcc_parent_map_0,
93906391eddSTaniya Das 	.freq_tbl = ftbl_gcc_ufs_phy_axi_clk_src,
94006391eddSTaniya Das 	.clkr.hw.init = &(struct clk_init_data){
94106391eddSTaniya Das 		.name = "gcc_ufs_phy_axi_clk_src",
942ea434d7aSDmitry Baryshkov 		.parent_data = gcc_parent_data_0,
943ea434d7aSDmitry Baryshkov 		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
94406391eddSTaniya Das 		.ops = &clk_rcg2_shared_ops,
94506391eddSTaniya Das 	},
94606391eddSTaniya Das };
94706391eddSTaniya Das 
94806391eddSTaniya Das static struct clk_rcg2 gcc_ufs_phy_ice_core_clk_src = {
94906391eddSTaniya Das 	.cmd_rcgr = 0x7705c,
95006391eddSTaniya Das 	.mnd_width = 0,
95106391eddSTaniya Das 	.hid_width = 5,
95206391eddSTaniya Das 	.parent_map = gcc_parent_map_0,
95306391eddSTaniya Das 	.freq_tbl = ftbl_gcc_ufs_card_ice_core_clk_src,
95406391eddSTaniya Das 	.clkr.hw.init = &(struct clk_init_data){
95506391eddSTaniya Das 		.name = "gcc_ufs_phy_ice_core_clk_src",
956ea434d7aSDmitry Baryshkov 		.parent_data = gcc_parent_data_0,
957ea434d7aSDmitry Baryshkov 		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
95806391eddSTaniya Das 		.ops = &clk_rcg2_shared_ops,
95906391eddSTaniya Das 	},
96006391eddSTaniya Das };
96106391eddSTaniya Das 
96206391eddSTaniya Das static struct clk_rcg2 gcc_ufs_phy_phy_aux_clk_src = {
96306391eddSTaniya Das 	.cmd_rcgr = 0x77090,
96406391eddSTaniya Das 	.mnd_width = 0,
96506391eddSTaniya Das 	.hid_width = 5,
96606391eddSTaniya Das 	.parent_map = gcc_parent_map_4,
96706391eddSTaniya Das 	.freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
96806391eddSTaniya Das 	.clkr.hw.init = &(struct clk_init_data){
96906391eddSTaniya Das 		.name = "gcc_ufs_phy_phy_aux_clk_src",
970ea434d7aSDmitry Baryshkov 		.parent_data = gcc_parent_data_4,
971ea434d7aSDmitry Baryshkov 		.num_parents = ARRAY_SIZE(gcc_parent_data_4),
97206391eddSTaniya Das 		.ops = &clk_rcg2_shared_ops,
97306391eddSTaniya Das 	},
97406391eddSTaniya Das };
97506391eddSTaniya Das 
97606391eddSTaniya Das static struct clk_rcg2 gcc_ufs_phy_unipro_core_clk_src = {
97706391eddSTaniya Das 	.cmd_rcgr = 0x77074,
97806391eddSTaniya Das 	.mnd_width = 0,
97906391eddSTaniya Das 	.hid_width = 5,
98006391eddSTaniya Das 	.parent_map = gcc_parent_map_0,
98106391eddSTaniya Das 	.freq_tbl = ftbl_gcc_ufs_card_unipro_core_clk_src,
98206391eddSTaniya Das 	.clkr.hw.init = &(struct clk_init_data){
98306391eddSTaniya Das 		.name = "gcc_ufs_phy_unipro_core_clk_src",
984ea434d7aSDmitry Baryshkov 		.parent_data = gcc_parent_data_0,
985ea434d7aSDmitry Baryshkov 		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
98606391eddSTaniya Das 		.ops = &clk_rcg2_shared_ops,
98706391eddSTaniya Das 	},
98806391eddSTaniya Das };
98906391eddSTaniya Das 
99006391eddSTaniya Das static const struct freq_tbl ftbl_gcc_usb30_prim_master_clk_src[] = {
99106391eddSTaniya Das 	F(33333333, P_GPLL0_OUT_EVEN, 9, 0, 0),
99206391eddSTaniya Das 	F(66666667, P_GPLL0_OUT_EVEN, 4.5, 0, 0),
99306391eddSTaniya Das 	F(133333333, P_GPLL0_OUT_MAIN, 4.5, 0, 0),
99406391eddSTaniya Das 	F(200000000, P_GPLL0_OUT_MAIN, 3, 0, 0),
99506391eddSTaniya Das 	F(240000000, P_GPLL0_OUT_MAIN, 2.5, 0, 0),
99606391eddSTaniya Das 	{ }
99706391eddSTaniya Das };
99806391eddSTaniya Das 
99906391eddSTaniya Das static struct clk_rcg2 gcc_usb30_prim_master_clk_src = {
100006391eddSTaniya Das 	.cmd_rcgr = 0xf018,
100106391eddSTaniya Das 	.mnd_width = 8,
100206391eddSTaniya Das 	.hid_width = 5,
100306391eddSTaniya Das 	.parent_map = gcc_parent_map_0,
100406391eddSTaniya Das 	.freq_tbl = ftbl_gcc_usb30_prim_master_clk_src,
100506391eddSTaniya Das 	.clkr.hw.init = &(struct clk_init_data){
100606391eddSTaniya Das 		.name = "gcc_usb30_prim_master_clk_src",
1007ea434d7aSDmitry Baryshkov 		.parent_data = gcc_parent_data_0,
1008ea434d7aSDmitry Baryshkov 		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
100906391eddSTaniya Das 		.ops = &clk_rcg2_shared_ops,
101006391eddSTaniya Das 	},
101106391eddSTaniya Das };
101206391eddSTaniya Das 
101306391eddSTaniya Das static const struct freq_tbl ftbl_gcc_usb30_prim_mock_utmi_clk_src[] = {
101406391eddSTaniya Das 	F(19200000, P_BI_TCXO, 1, 0, 0),
101506391eddSTaniya Das 	F(20000000, P_GPLL0_OUT_EVEN, 15, 0, 0),
101606391eddSTaniya Das 	F(40000000, P_GPLL0_OUT_EVEN, 7.5, 0, 0),
101706391eddSTaniya Das 	F(60000000, P_GPLL0_OUT_MAIN, 10, 0, 0),
101806391eddSTaniya Das 	{ }
101906391eddSTaniya Das };
102006391eddSTaniya Das 
102106391eddSTaniya Das static struct clk_rcg2 gcc_usb30_prim_mock_utmi_clk_src = {
102206391eddSTaniya Das 	.cmd_rcgr = 0xf030,
102306391eddSTaniya Das 	.mnd_width = 0,
102406391eddSTaniya Das 	.hid_width = 5,
102506391eddSTaniya Das 	.parent_map = gcc_parent_map_0,
102606391eddSTaniya Das 	.freq_tbl = ftbl_gcc_usb30_prim_mock_utmi_clk_src,
102706391eddSTaniya Das 	.clkr.hw.init = &(struct clk_init_data){
102806391eddSTaniya Das 		.name = "gcc_usb30_prim_mock_utmi_clk_src",
1029ea434d7aSDmitry Baryshkov 		.parent_data = gcc_parent_data_0,
1030ea434d7aSDmitry Baryshkov 		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
103106391eddSTaniya Das 		.ops = &clk_rcg2_shared_ops,
103206391eddSTaniya Das 	},
103306391eddSTaniya Das };
103406391eddSTaniya Das 
103506391eddSTaniya Das static struct clk_rcg2 gcc_usb30_sec_master_clk_src = {
103606391eddSTaniya Das 	.cmd_rcgr = 0x10018,
103706391eddSTaniya Das 	.mnd_width = 8,
103806391eddSTaniya Das 	.hid_width = 5,
103906391eddSTaniya Das 	.parent_map = gcc_parent_map_0,
104006391eddSTaniya Das 	.freq_tbl = ftbl_gcc_usb30_prim_master_clk_src,
104106391eddSTaniya Das 	.clkr.hw.init = &(struct clk_init_data){
104206391eddSTaniya Das 		.name = "gcc_usb30_sec_master_clk_src",
1043ea434d7aSDmitry Baryshkov 		.parent_data = gcc_parent_data_0,
1044ea434d7aSDmitry Baryshkov 		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
104506391eddSTaniya Das 		.ops = &clk_rcg2_ops,
104606391eddSTaniya Das 	},
104706391eddSTaniya Das };
104806391eddSTaniya Das 
104906391eddSTaniya Das static struct clk_rcg2 gcc_usb30_sec_mock_utmi_clk_src = {
105006391eddSTaniya Das 	.cmd_rcgr = 0x10030,
105106391eddSTaniya Das 	.mnd_width = 0,
105206391eddSTaniya Das 	.hid_width = 5,
105306391eddSTaniya Das 	.parent_map = gcc_parent_map_0,
105406391eddSTaniya Das 	.freq_tbl = ftbl_gcc_usb30_prim_mock_utmi_clk_src,
105506391eddSTaniya Das 	.clkr.hw.init = &(struct clk_init_data){
105606391eddSTaniya Das 		.name = "gcc_usb30_sec_mock_utmi_clk_src",
1057ea434d7aSDmitry Baryshkov 		.parent_data = gcc_parent_data_0,
1058ea434d7aSDmitry Baryshkov 		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
105906391eddSTaniya Das 		.ops = &clk_rcg2_ops,
106006391eddSTaniya Das 	},
106106391eddSTaniya Das };
106206391eddSTaniya Das 
106306391eddSTaniya Das static struct clk_rcg2 gcc_usb3_prim_phy_aux_clk_src = {
106406391eddSTaniya Das 	.cmd_rcgr = 0xf05c,
106506391eddSTaniya Das 	.mnd_width = 0,
106606391eddSTaniya Das 	.hid_width = 5,
106706391eddSTaniya Das 	.parent_map = gcc_parent_map_2,
106806391eddSTaniya Das 	.freq_tbl = ftbl_gcc_cpuss_rbcpr_clk_src,
106906391eddSTaniya Das 	.clkr.hw.init = &(struct clk_init_data){
107006391eddSTaniya Das 		.name = "gcc_usb3_prim_phy_aux_clk_src",
1071ea434d7aSDmitry Baryshkov 		.parent_data = gcc_parent_data_2,
1072ea434d7aSDmitry Baryshkov 		.num_parents = ARRAY_SIZE(gcc_parent_data_2),
107306391eddSTaniya Das 		.ops = &clk_rcg2_ops,
107406391eddSTaniya Das 	},
107506391eddSTaniya Das };
107606391eddSTaniya Das 
107706391eddSTaniya Das static struct clk_rcg2 gcc_usb3_sec_phy_aux_clk_src = {
107806391eddSTaniya Das 	.cmd_rcgr = 0x1005c,
107906391eddSTaniya Das 	.mnd_width = 0,
108006391eddSTaniya Das 	.hid_width = 5,
108106391eddSTaniya Das 	.parent_map = gcc_parent_map_2,
108206391eddSTaniya Das 	.freq_tbl = ftbl_gcc_cpuss_rbcpr_clk_src,
108306391eddSTaniya Das 	.clkr.hw.init = &(struct clk_init_data){
108406391eddSTaniya Das 		.name = "gcc_usb3_sec_phy_aux_clk_src",
1085ea434d7aSDmitry Baryshkov 		.parent_data = gcc_parent_data_2,
1086ea434d7aSDmitry Baryshkov 		.num_parents = ARRAY_SIZE(gcc_parent_data_2),
108706391eddSTaniya Das 		.ops = &clk_rcg2_shared_ops,
108806391eddSTaniya Das 	},
108906391eddSTaniya Das };
109006391eddSTaniya Das 
109106391eddSTaniya Das static struct clk_rcg2 gcc_vs_ctrl_clk_src = {
109206391eddSTaniya Das 	.cmd_rcgr = 0x7a030,
109306391eddSTaniya Das 	.mnd_width = 0,
109406391eddSTaniya Das 	.hid_width = 5,
109506391eddSTaniya Das 	.parent_map = gcc_parent_map_3,
109606391eddSTaniya Das 	.freq_tbl = ftbl_gcc_cpuss_rbcpr_clk_src,
109706391eddSTaniya Das 	.clkr.hw.init = &(struct clk_init_data){
109806391eddSTaniya Das 		.name = "gcc_vs_ctrl_clk_src",
1099ea434d7aSDmitry Baryshkov 		.parent_data = gcc_parent_data_3,
1100ea434d7aSDmitry Baryshkov 		.num_parents = ARRAY_SIZE(gcc_parent_data_3),
110106391eddSTaniya Das 		.ops = &clk_rcg2_ops,
110206391eddSTaniya Das 	},
110306391eddSTaniya Das };
110406391eddSTaniya Das 
110506391eddSTaniya Das static const struct freq_tbl ftbl_gcc_vsensor_clk_src[] = {
110606391eddSTaniya Das 	F(19200000, P_BI_TCXO, 1, 0, 0),
110706391eddSTaniya Das 	F(300000000, P_GPLL0_OUT_MAIN, 2, 0, 0),
110806391eddSTaniya Das 	F(600000000, P_GPLL0_OUT_MAIN, 1, 0, 0),
110906391eddSTaniya Das 	{ }
111006391eddSTaniya Das };
111106391eddSTaniya Das 
111206391eddSTaniya Das static struct clk_rcg2 gcc_vsensor_clk_src = {
111306391eddSTaniya Das 	.cmd_rcgr = 0x7a018,
111406391eddSTaniya Das 	.mnd_width = 0,
111506391eddSTaniya Das 	.hid_width = 5,
111606391eddSTaniya Das 	.parent_map = gcc_parent_map_3,
111706391eddSTaniya Das 	.freq_tbl = ftbl_gcc_vsensor_clk_src,
111806391eddSTaniya Das 	.clkr.hw.init = &(struct clk_init_data){
111906391eddSTaniya Das 		.name = "gcc_vsensor_clk_src",
1120ea434d7aSDmitry Baryshkov 		.parent_data = gcc_parent_data_8,
1121ea434d7aSDmitry Baryshkov 		.num_parents = ARRAY_SIZE(gcc_parent_data_8),
112206391eddSTaniya Das 		.ops = &clk_rcg2_ops,
112306391eddSTaniya Das 	},
112406391eddSTaniya Das };
112506391eddSTaniya Das 
112606391eddSTaniya Das static struct clk_branch gcc_aggre_noc_pcie_tbu_clk = {
112706391eddSTaniya Das 	.halt_reg = 0x90014,
112806391eddSTaniya Das 	.halt_check = BRANCH_HALT,
112906391eddSTaniya Das 	.clkr = {
113006391eddSTaniya Das 		.enable_reg = 0x90014,
113106391eddSTaniya Das 		.enable_mask = BIT(0),
113206391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
113306391eddSTaniya Das 			.name = "gcc_aggre_noc_pcie_tbu_clk",
113406391eddSTaniya Das 			.ops = &clk_branch2_ops,
113506391eddSTaniya Das 		},
113606391eddSTaniya Das 	},
113706391eddSTaniya Das };
113806391eddSTaniya Das 
113906391eddSTaniya Das static struct clk_branch gcc_aggre_ufs_card_axi_clk = {
114006391eddSTaniya Das 	.halt_reg = 0x82028,
114106391eddSTaniya Das 	.halt_check = BRANCH_HALT,
114206391eddSTaniya Das 	.hwcg_reg = 0x82028,
114306391eddSTaniya Das 	.hwcg_bit = 1,
114406391eddSTaniya Das 	.clkr = {
114506391eddSTaniya Das 		.enable_reg = 0x82028,
114606391eddSTaniya Das 		.enable_mask = BIT(0),
114706391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
114806391eddSTaniya Das 			.name = "gcc_aggre_ufs_card_axi_clk",
1149ea434d7aSDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
1150ea434d7aSDmitry Baryshkov 				&gcc_ufs_card_axi_clk_src.clkr.hw,
115106391eddSTaniya Das 			},
115206391eddSTaniya Das 			.num_parents = 1,
115306391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
115406391eddSTaniya Das 			.ops = &clk_branch2_ops,
115506391eddSTaniya Das 		},
115606391eddSTaniya Das 	},
115706391eddSTaniya Das };
115806391eddSTaniya Das 
115906391eddSTaniya Das static struct clk_branch gcc_aggre_ufs_phy_axi_clk = {
116006391eddSTaniya Das 	.halt_reg = 0x82024,
116106391eddSTaniya Das 	.halt_check = BRANCH_HALT,
116206391eddSTaniya Das 	.hwcg_reg = 0x82024,
116306391eddSTaniya Das 	.hwcg_bit = 1,
116406391eddSTaniya Das 	.clkr = {
116506391eddSTaniya Das 		.enable_reg = 0x82024,
116606391eddSTaniya Das 		.enable_mask = BIT(0),
116706391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
116806391eddSTaniya Das 			.name = "gcc_aggre_ufs_phy_axi_clk",
1169ea434d7aSDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
1170ea434d7aSDmitry Baryshkov 				&gcc_ufs_phy_axi_clk_src.clkr.hw,
117106391eddSTaniya Das 			},
117206391eddSTaniya Das 			.num_parents = 1,
117306391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
117406391eddSTaniya Das 			.ops = &clk_branch2_ops,
117506391eddSTaniya Das 		},
117606391eddSTaniya Das 	},
117706391eddSTaniya Das };
117806391eddSTaniya Das 
117906391eddSTaniya Das static struct clk_branch gcc_aggre_usb3_prim_axi_clk = {
118006391eddSTaniya Das 	.halt_reg = 0x8201c,
118106391eddSTaniya Das 	.halt_check = BRANCH_HALT,
118206391eddSTaniya Das 	.clkr = {
118306391eddSTaniya Das 		.enable_reg = 0x8201c,
118406391eddSTaniya Das 		.enable_mask = BIT(0),
118506391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
118606391eddSTaniya Das 			.name = "gcc_aggre_usb3_prim_axi_clk",
1187ea434d7aSDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
1188ea434d7aSDmitry Baryshkov 				&gcc_usb30_prim_master_clk_src.clkr.hw,
118906391eddSTaniya Das 			},
119006391eddSTaniya Das 			.num_parents = 1,
119106391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
119206391eddSTaniya Das 			.ops = &clk_branch2_ops,
119306391eddSTaniya Das 		},
119406391eddSTaniya Das 	},
119506391eddSTaniya Das };
119606391eddSTaniya Das 
119706391eddSTaniya Das static struct clk_branch gcc_aggre_usb3_sec_axi_clk = {
119806391eddSTaniya Das 	.halt_reg = 0x82020,
119906391eddSTaniya Das 	.halt_check = BRANCH_HALT,
120006391eddSTaniya Das 	.clkr = {
120106391eddSTaniya Das 		.enable_reg = 0x82020,
120206391eddSTaniya Das 		.enable_mask = BIT(0),
120306391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
120406391eddSTaniya Das 			.name = "gcc_aggre_usb3_sec_axi_clk",
1205ea434d7aSDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
1206ea434d7aSDmitry Baryshkov 				&gcc_usb30_sec_master_clk_src.clkr.hw,
120706391eddSTaniya Das 			},
120806391eddSTaniya Das 			.num_parents = 1,
120906391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
121006391eddSTaniya Das 			.ops = &clk_branch2_ops,
121106391eddSTaniya Das 		},
121206391eddSTaniya Das 	},
121306391eddSTaniya Das };
121406391eddSTaniya Das 
121506391eddSTaniya Das static struct clk_branch gcc_apc_vs_clk = {
121606391eddSTaniya Das 	.halt_reg = 0x7a050,
121706391eddSTaniya Das 	.halt_check = BRANCH_HALT,
121806391eddSTaniya Das 	.clkr = {
121906391eddSTaniya Das 		.enable_reg = 0x7a050,
122006391eddSTaniya Das 		.enable_mask = BIT(0),
122106391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
122206391eddSTaniya Das 			.name = "gcc_apc_vs_clk",
1223ea434d7aSDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
1224ea434d7aSDmitry Baryshkov 				&gcc_vsensor_clk_src.clkr.hw,
122506391eddSTaniya Das 			},
122606391eddSTaniya Das 			.num_parents = 1,
122706391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
122806391eddSTaniya Das 			.ops = &clk_branch2_ops,
122906391eddSTaniya Das 		},
123006391eddSTaniya Das 	},
123106391eddSTaniya Das };
123206391eddSTaniya Das 
123306391eddSTaniya Das static struct clk_branch gcc_boot_rom_ahb_clk = {
123406391eddSTaniya Das 	.halt_reg = 0x38004,
123506391eddSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
123606391eddSTaniya Das 	.hwcg_reg = 0x38004,
123706391eddSTaniya Das 	.hwcg_bit = 1,
123806391eddSTaniya Das 	.clkr = {
123906391eddSTaniya Das 		.enable_reg = 0x52004,
124006391eddSTaniya Das 		.enable_mask = BIT(10),
124106391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
124206391eddSTaniya Das 			.name = "gcc_boot_rom_ahb_clk",
124306391eddSTaniya Das 			.ops = &clk_branch2_ops,
124406391eddSTaniya Das 		},
124506391eddSTaniya Das 	},
124606391eddSTaniya Das };
124706391eddSTaniya Das 
124806391eddSTaniya Das static struct clk_branch gcc_camera_ahb_clk = {
124906391eddSTaniya Das 	.halt_reg = 0xb008,
125006391eddSTaniya Das 	.halt_check = BRANCH_HALT,
125106391eddSTaniya Das 	.hwcg_reg = 0xb008,
125206391eddSTaniya Das 	.hwcg_bit = 1,
125306391eddSTaniya Das 	.clkr = {
125406391eddSTaniya Das 		.enable_reg = 0xb008,
125506391eddSTaniya Das 		.enable_mask = BIT(0),
125606391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
125706391eddSTaniya Das 			.name = "gcc_camera_ahb_clk",
1258cfb8282eSAmit Nischal 			.flags = CLK_IS_CRITICAL,
125906391eddSTaniya Das 			.ops = &clk_branch2_ops,
126006391eddSTaniya Das 		},
126106391eddSTaniya Das 	},
126206391eddSTaniya Das };
126306391eddSTaniya Das 
126406391eddSTaniya Das static struct clk_branch gcc_camera_axi_clk = {
126506391eddSTaniya Das 	.halt_reg = 0xb020,
126606391eddSTaniya Das 	.halt_check = BRANCH_VOTED,
126706391eddSTaniya Das 	.clkr = {
126806391eddSTaniya Das 		.enable_reg = 0xb020,
126906391eddSTaniya Das 		.enable_mask = BIT(0),
127006391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
127106391eddSTaniya Das 			.name = "gcc_camera_axi_clk",
127206391eddSTaniya Das 			.ops = &clk_branch2_ops,
127306391eddSTaniya Das 		},
127406391eddSTaniya Das 	},
127506391eddSTaniya Das };
127606391eddSTaniya Das 
127706391eddSTaniya Das static struct clk_branch gcc_camera_xo_clk = {
127806391eddSTaniya Das 	.halt_reg = 0xb02c,
127906391eddSTaniya Das 	.halt_check = BRANCH_HALT,
128006391eddSTaniya Das 	.clkr = {
128106391eddSTaniya Das 		.enable_reg = 0xb02c,
128206391eddSTaniya Das 		.enable_mask = BIT(0),
128306391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
128406391eddSTaniya Das 			.name = "gcc_camera_xo_clk",
1285cfb8282eSAmit Nischal 			.flags = CLK_IS_CRITICAL,
128606391eddSTaniya Das 			.ops = &clk_branch2_ops,
128706391eddSTaniya Das 		},
128806391eddSTaniya Das 	},
128906391eddSTaniya Das };
129006391eddSTaniya Das 
129106391eddSTaniya Das static struct clk_branch gcc_ce1_ahb_clk = {
129206391eddSTaniya Das 	.halt_reg = 0x4100c,
129306391eddSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
129406391eddSTaniya Das 	.hwcg_reg = 0x4100c,
129506391eddSTaniya Das 	.hwcg_bit = 1,
129606391eddSTaniya Das 	.clkr = {
129706391eddSTaniya Das 		.enable_reg = 0x52004,
129806391eddSTaniya Das 		.enable_mask = BIT(3),
129906391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
130006391eddSTaniya Das 			.name = "gcc_ce1_ahb_clk",
130106391eddSTaniya Das 			.ops = &clk_branch2_ops,
130206391eddSTaniya Das 		},
130306391eddSTaniya Das 	},
130406391eddSTaniya Das };
130506391eddSTaniya Das 
130606391eddSTaniya Das static struct clk_branch gcc_ce1_axi_clk = {
130706391eddSTaniya Das 	.halt_reg = 0x41008,
130806391eddSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
130906391eddSTaniya Das 	.clkr = {
131006391eddSTaniya Das 		.enable_reg = 0x52004,
131106391eddSTaniya Das 		.enable_mask = BIT(4),
131206391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
131306391eddSTaniya Das 			.name = "gcc_ce1_axi_clk",
131406391eddSTaniya Das 			.ops = &clk_branch2_ops,
131506391eddSTaniya Das 		},
131606391eddSTaniya Das 	},
131706391eddSTaniya Das };
131806391eddSTaniya Das 
131906391eddSTaniya Das static struct clk_branch gcc_ce1_clk = {
132006391eddSTaniya Das 	.halt_reg = 0x41004,
132106391eddSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
132206391eddSTaniya Das 	.clkr = {
132306391eddSTaniya Das 		.enable_reg = 0x52004,
132406391eddSTaniya Das 		.enable_mask = BIT(5),
132506391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
132606391eddSTaniya Das 			.name = "gcc_ce1_clk",
132706391eddSTaniya Das 			.ops = &clk_branch2_ops,
132806391eddSTaniya Das 		},
132906391eddSTaniya Das 	},
133006391eddSTaniya Das };
133106391eddSTaniya Das 
133206391eddSTaniya Das static struct clk_branch gcc_cfg_noc_usb3_prim_axi_clk = {
133306391eddSTaniya Das 	.halt_reg = 0x502c,
133406391eddSTaniya Das 	.halt_check = BRANCH_HALT,
133506391eddSTaniya Das 	.clkr = {
133606391eddSTaniya Das 		.enable_reg = 0x502c,
133706391eddSTaniya Das 		.enable_mask = BIT(0),
133806391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
133906391eddSTaniya Das 			.name = "gcc_cfg_noc_usb3_prim_axi_clk",
1340ea434d7aSDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
1341ea434d7aSDmitry Baryshkov 				&gcc_usb30_prim_master_clk_src.clkr.hw,
134206391eddSTaniya Das 			},
134306391eddSTaniya Das 			.num_parents = 1,
134406391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
134506391eddSTaniya Das 			.ops = &clk_branch2_ops,
134606391eddSTaniya Das 		},
134706391eddSTaniya Das 	},
134806391eddSTaniya Das };
134906391eddSTaniya Das 
135006391eddSTaniya Das static struct clk_branch gcc_cfg_noc_usb3_sec_axi_clk = {
135106391eddSTaniya Das 	.halt_reg = 0x5030,
135206391eddSTaniya Das 	.halt_check = BRANCH_HALT,
135306391eddSTaniya Das 	.clkr = {
135406391eddSTaniya Das 		.enable_reg = 0x5030,
135506391eddSTaniya Das 		.enable_mask = BIT(0),
135606391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
135706391eddSTaniya Das 			.name = "gcc_cfg_noc_usb3_sec_axi_clk",
1358ea434d7aSDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
1359ea434d7aSDmitry Baryshkov 				&gcc_usb30_sec_master_clk_src.clkr.hw,
136006391eddSTaniya Das 			},
136106391eddSTaniya Das 			.num_parents = 1,
136206391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
136306391eddSTaniya Das 			.ops = &clk_branch2_ops,
136406391eddSTaniya Das 		},
136506391eddSTaniya Das 	},
136606391eddSTaniya Das };
136706391eddSTaniya Das 
136806391eddSTaniya Das static struct clk_branch gcc_cpuss_ahb_clk = {
136906391eddSTaniya Das 	.halt_reg = 0x48000,
137006391eddSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
137106391eddSTaniya Das 	.clkr = {
137206391eddSTaniya Das 		.enable_reg = 0x52004,
137306391eddSTaniya Das 		.enable_mask = BIT(21),
137406391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
137506391eddSTaniya Das 			.name = "gcc_cpuss_ahb_clk",
1376ea434d7aSDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
1377ea434d7aSDmitry Baryshkov 				&gcc_cpuss_ahb_clk_src.clkr.hw,
137806391eddSTaniya Das 			},
137906391eddSTaniya Das 			.num_parents = 1,
138006391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT | CLK_IS_CRITICAL,
138106391eddSTaniya Das 			.ops = &clk_branch2_ops,
138206391eddSTaniya Das 		},
138306391eddSTaniya Das 	},
138406391eddSTaniya Das };
138506391eddSTaniya Das 
138606391eddSTaniya Das static struct clk_branch gcc_cpuss_rbcpr_clk = {
138706391eddSTaniya Das 	.halt_reg = 0x48008,
138806391eddSTaniya Das 	.halt_check = BRANCH_HALT,
138906391eddSTaniya Das 	.clkr = {
139006391eddSTaniya Das 		.enable_reg = 0x48008,
139106391eddSTaniya Das 		.enable_mask = BIT(0),
139206391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
139306391eddSTaniya Das 			.name = "gcc_cpuss_rbcpr_clk",
1394ea434d7aSDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
1395ea434d7aSDmitry Baryshkov 				&gcc_cpuss_rbcpr_clk_src.clkr.hw,
139606391eddSTaniya Das 			},
139706391eddSTaniya Das 			.num_parents = 1,
139806391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
139906391eddSTaniya Das 			.ops = &clk_branch2_ops,
140006391eddSTaniya Das 		},
140106391eddSTaniya Das 	},
140206391eddSTaniya Das };
140306391eddSTaniya Das 
1404ae66b1feSRichard Acayan /*
1405ae66b1feSRichard Acayan  * The source clock frequencies are different for SDM670; define a child clock
1406ae66b1feSRichard Acayan  * pointing to the source clock that uses SDM670 frequencies.
1407ae66b1feSRichard Acayan  */
1408ae66b1feSRichard Acayan static struct clk_branch gcc_sdm670_cpuss_rbcpr_clk = {
1409ae66b1feSRichard Acayan 	.halt_reg = 0x48008,
1410ae66b1feSRichard Acayan 	.halt_check = BRANCH_HALT,
1411ae66b1feSRichard Acayan 	.clkr = {
1412ae66b1feSRichard Acayan 		.enable_reg = 0x48008,
1413ae66b1feSRichard Acayan 		.enable_mask = BIT(0),
1414ae66b1feSRichard Acayan 		.hw.init = &(struct clk_init_data){
1415ae66b1feSRichard Acayan 			.name = "gcc_cpuss_rbcpr_clk",
1416ae66b1feSRichard Acayan 			.parent_hws = (const struct clk_hw*[]){
1417ae66b1feSRichard Acayan 				&gcc_sdm670_cpuss_rbcpr_clk_src.clkr.hw,
1418ae66b1feSRichard Acayan 			},
1419ae66b1feSRichard Acayan 			.num_parents = 1,
1420ae66b1feSRichard Acayan 			.flags = CLK_SET_RATE_PARENT,
1421ae66b1feSRichard Acayan 			.ops = &clk_branch2_ops,
1422ae66b1feSRichard Acayan 		},
1423ae66b1feSRichard Acayan 	},
1424ae66b1feSRichard Acayan };
1425ae66b1feSRichard Acayan 
142606391eddSTaniya Das static struct clk_branch gcc_ddrss_gpu_axi_clk = {
142706391eddSTaniya Das 	.halt_reg = 0x44038,
142806391eddSTaniya Das 	.halt_check = BRANCH_VOTED,
142906391eddSTaniya Das 	.clkr = {
143006391eddSTaniya Das 		.enable_reg = 0x44038,
143106391eddSTaniya Das 		.enable_mask = BIT(0),
143206391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
143306391eddSTaniya Das 			.name = "gcc_ddrss_gpu_axi_clk",
143406391eddSTaniya Das 			.ops = &clk_branch2_ops,
143506391eddSTaniya Das 		},
143606391eddSTaniya Das 	},
143706391eddSTaniya Das };
143806391eddSTaniya Das 
143906391eddSTaniya Das static struct clk_branch gcc_disp_ahb_clk = {
144006391eddSTaniya Das 	.halt_reg = 0xb00c,
144106391eddSTaniya Das 	.halt_check = BRANCH_HALT,
144206391eddSTaniya Das 	.hwcg_reg = 0xb00c,
144306391eddSTaniya Das 	.hwcg_bit = 1,
144406391eddSTaniya Das 	.clkr = {
144506391eddSTaniya Das 		.enable_reg = 0xb00c,
144606391eddSTaniya Das 		.enable_mask = BIT(0),
144706391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
144806391eddSTaniya Das 			.name = "gcc_disp_ahb_clk",
1449cfb8282eSAmit Nischal 			.flags = CLK_IS_CRITICAL,
145006391eddSTaniya Das 			.ops = &clk_branch2_ops,
145106391eddSTaniya Das 		},
145206391eddSTaniya Das 	},
145306391eddSTaniya Das };
145406391eddSTaniya Das 
145506391eddSTaniya Das static struct clk_branch gcc_disp_axi_clk = {
145606391eddSTaniya Das 	.halt_reg = 0xb024,
145706391eddSTaniya Das 	.halt_check = BRANCH_VOTED,
145806391eddSTaniya Das 	.clkr = {
145906391eddSTaniya Das 		.enable_reg = 0xb024,
146006391eddSTaniya Das 		.enable_mask = BIT(0),
146106391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
146206391eddSTaniya Das 			.name = "gcc_disp_axi_clk",
146306391eddSTaniya Das 			.ops = &clk_branch2_ops,
146406391eddSTaniya Das 		},
146506391eddSTaniya Das 	},
146606391eddSTaniya Das };
146706391eddSTaniya Das 
146806391eddSTaniya Das static struct clk_branch gcc_disp_gpll0_clk_src = {
146906391eddSTaniya Das 	.halt_check = BRANCH_HALT_DELAY,
147006391eddSTaniya Das 	.clkr = {
147106391eddSTaniya Das 		.enable_reg = 0x52004,
147206391eddSTaniya Das 		.enable_mask = BIT(18),
147306391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
147406391eddSTaniya Das 			.name = "gcc_disp_gpll0_clk_src",
1475ea434d7aSDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
1476ea434d7aSDmitry Baryshkov 				&gpll0.clkr.hw,
147706391eddSTaniya Das 			},
147806391eddSTaniya Das 			.num_parents = 1,
14799c3df2b1STaniya Das 			.ops = &clk_branch2_aon_ops,
148006391eddSTaniya Das 		},
148106391eddSTaniya Das 	},
148206391eddSTaniya Das };
148306391eddSTaniya Das 
148406391eddSTaniya Das static struct clk_branch gcc_disp_gpll0_div_clk_src = {
148506391eddSTaniya Das 	.halt_check = BRANCH_HALT_DELAY,
148606391eddSTaniya Das 	.clkr = {
148706391eddSTaniya Das 		.enable_reg = 0x52004,
148806391eddSTaniya Das 		.enable_mask = BIT(19),
148906391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
149006391eddSTaniya Das 			.name = "gcc_disp_gpll0_div_clk_src",
1491ea434d7aSDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
1492ea434d7aSDmitry Baryshkov 				&gpll0_out_even.clkr.hw,
149306391eddSTaniya Das 			},
149406391eddSTaniya Das 			.num_parents = 1,
149506391eddSTaniya Das 			.ops = &clk_branch2_ops,
149606391eddSTaniya Das 		},
149706391eddSTaniya Das 	},
149806391eddSTaniya Das };
149906391eddSTaniya Das 
150006391eddSTaniya Das static struct clk_branch gcc_disp_xo_clk = {
150106391eddSTaniya Das 	.halt_reg = 0xb030,
150206391eddSTaniya Das 	.halt_check = BRANCH_HALT,
150306391eddSTaniya Das 	.clkr = {
150406391eddSTaniya Das 		.enable_reg = 0xb030,
150506391eddSTaniya Das 		.enable_mask = BIT(0),
150606391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
150706391eddSTaniya Das 			.name = "gcc_disp_xo_clk",
1508cfb8282eSAmit Nischal 			.flags = CLK_IS_CRITICAL,
150906391eddSTaniya Das 			.ops = &clk_branch2_ops,
151006391eddSTaniya Das 		},
151106391eddSTaniya Das 	},
151206391eddSTaniya Das };
151306391eddSTaniya Das 
151406391eddSTaniya Das static struct clk_branch gcc_gp1_clk = {
151506391eddSTaniya Das 	.halt_reg = 0x64000,
151606391eddSTaniya Das 	.halt_check = BRANCH_HALT,
151706391eddSTaniya Das 	.clkr = {
151806391eddSTaniya Das 		.enable_reg = 0x64000,
151906391eddSTaniya Das 		.enable_mask = BIT(0),
152006391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
152106391eddSTaniya Das 			.name = "gcc_gp1_clk",
1522ea434d7aSDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
1523ea434d7aSDmitry Baryshkov 				&gcc_gp1_clk_src.clkr.hw,
152406391eddSTaniya Das 			},
152506391eddSTaniya Das 			.num_parents = 1,
152606391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
152706391eddSTaniya Das 			.ops = &clk_branch2_ops,
152806391eddSTaniya Das 		},
152906391eddSTaniya Das 	},
153006391eddSTaniya Das };
153106391eddSTaniya Das 
153206391eddSTaniya Das static struct clk_branch gcc_gp2_clk = {
153306391eddSTaniya Das 	.halt_reg = 0x65000,
153406391eddSTaniya Das 	.halt_check = BRANCH_HALT,
153506391eddSTaniya Das 	.clkr = {
153606391eddSTaniya Das 		.enable_reg = 0x65000,
153706391eddSTaniya Das 		.enable_mask = BIT(0),
153806391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
153906391eddSTaniya Das 			.name = "gcc_gp2_clk",
1540ea434d7aSDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
1541ea434d7aSDmitry Baryshkov 				&gcc_gp2_clk_src.clkr.hw,
154206391eddSTaniya Das 			},
154306391eddSTaniya Das 			.num_parents = 1,
154406391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
154506391eddSTaniya Das 			.ops = &clk_branch2_ops,
154606391eddSTaniya Das 		},
154706391eddSTaniya Das 	},
154806391eddSTaniya Das };
154906391eddSTaniya Das 
155006391eddSTaniya Das static struct clk_branch gcc_gp3_clk = {
155106391eddSTaniya Das 	.halt_reg = 0x66000,
155206391eddSTaniya Das 	.halt_check = BRANCH_HALT,
155306391eddSTaniya Das 	.clkr = {
155406391eddSTaniya Das 		.enable_reg = 0x66000,
155506391eddSTaniya Das 		.enable_mask = BIT(0),
155606391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
155706391eddSTaniya Das 			.name = "gcc_gp3_clk",
1558ea434d7aSDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
1559ea434d7aSDmitry Baryshkov 				&gcc_gp3_clk_src.clkr.hw,
156006391eddSTaniya Das 			},
156106391eddSTaniya Das 			.num_parents = 1,
156206391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
156306391eddSTaniya Das 			.ops = &clk_branch2_ops,
156406391eddSTaniya Das 		},
156506391eddSTaniya Das 	},
156606391eddSTaniya Das };
156706391eddSTaniya Das 
156806391eddSTaniya Das static struct clk_branch gcc_gpu_cfg_ahb_clk = {
156906391eddSTaniya Das 	.halt_reg = 0x71004,
157006391eddSTaniya Das 	.halt_check = BRANCH_HALT,
157106391eddSTaniya Das 	.hwcg_reg = 0x71004,
157206391eddSTaniya Das 	.hwcg_bit = 1,
157306391eddSTaniya Das 	.clkr = {
157406391eddSTaniya Das 		.enable_reg = 0x71004,
157506391eddSTaniya Das 		.enable_mask = BIT(0),
157606391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
157706391eddSTaniya Das 			.name = "gcc_gpu_cfg_ahb_clk",
1578cfb8282eSAmit Nischal 			.flags = CLK_IS_CRITICAL,
157906391eddSTaniya Das 			.ops = &clk_branch2_ops,
158006391eddSTaniya Das 		},
158106391eddSTaniya Das 	},
158206391eddSTaniya Das };
158306391eddSTaniya Das 
158406391eddSTaniya Das static struct clk_branch gcc_gpu_gpll0_clk_src = {
158506391eddSTaniya Das 	.halt_check = BRANCH_HALT_DELAY,
158606391eddSTaniya Das 	.clkr = {
158706391eddSTaniya Das 		.enable_reg = 0x52004,
158806391eddSTaniya Das 		.enable_mask = BIT(15),
158906391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
159006391eddSTaniya Das 			.name = "gcc_gpu_gpll0_clk_src",
1591ea434d7aSDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
1592ea434d7aSDmitry Baryshkov 				&gpll0.clkr.hw,
159306391eddSTaniya Das 			},
159406391eddSTaniya Das 			.num_parents = 1,
159506391eddSTaniya Das 			.ops = &clk_branch2_ops,
159606391eddSTaniya Das 		},
159706391eddSTaniya Das 	},
159806391eddSTaniya Das };
159906391eddSTaniya Das 
160006391eddSTaniya Das static struct clk_branch gcc_gpu_gpll0_div_clk_src = {
160106391eddSTaniya Das 	.halt_check = BRANCH_HALT_DELAY,
160206391eddSTaniya Das 	.clkr = {
160306391eddSTaniya Das 		.enable_reg = 0x52004,
160406391eddSTaniya Das 		.enable_mask = BIT(16),
160506391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
160606391eddSTaniya Das 			.name = "gcc_gpu_gpll0_div_clk_src",
1607ea434d7aSDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
1608ea434d7aSDmitry Baryshkov 				&gpll0_out_even.clkr.hw,
160906391eddSTaniya Das 			},
161006391eddSTaniya Das 			.num_parents = 1,
161106391eddSTaniya Das 			.ops = &clk_branch2_ops,
161206391eddSTaniya Das 		},
161306391eddSTaniya Das 	},
161406391eddSTaniya Das };
161506391eddSTaniya Das 
161606391eddSTaniya Das static struct clk_branch gcc_gpu_iref_clk = {
161706391eddSTaniya Das 	.halt_reg = 0x8c010,
161806391eddSTaniya Das 	.halt_check = BRANCH_HALT,
161906391eddSTaniya Das 	.clkr = {
162006391eddSTaniya Das 		.enable_reg = 0x8c010,
162106391eddSTaniya Das 		.enable_mask = BIT(0),
162206391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
162306391eddSTaniya Das 			.name = "gcc_gpu_iref_clk",
162406391eddSTaniya Das 			.ops = &clk_branch2_ops,
162506391eddSTaniya Das 		},
162606391eddSTaniya Das 	},
162706391eddSTaniya Das };
162806391eddSTaniya Das 
162906391eddSTaniya Das static struct clk_branch gcc_gpu_memnoc_gfx_clk = {
163006391eddSTaniya Das 	.halt_reg = 0x7100c,
163106391eddSTaniya Das 	.halt_check = BRANCH_VOTED,
163206391eddSTaniya Das 	.clkr = {
163306391eddSTaniya Das 		.enable_reg = 0x7100c,
163406391eddSTaniya Das 		.enable_mask = BIT(0),
163506391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
163606391eddSTaniya Das 			.name = "gcc_gpu_memnoc_gfx_clk",
163706391eddSTaniya Das 			.ops = &clk_branch2_ops,
163806391eddSTaniya Das 		},
163906391eddSTaniya Das 	},
164006391eddSTaniya Das };
164106391eddSTaniya Das 
164206391eddSTaniya Das static struct clk_branch gcc_gpu_snoc_dvm_gfx_clk = {
164306391eddSTaniya Das 	.halt_reg = 0x71018,
164406391eddSTaniya Das 	.halt_check = BRANCH_HALT,
164506391eddSTaniya Das 	.clkr = {
164606391eddSTaniya Das 		.enable_reg = 0x71018,
164706391eddSTaniya Das 		.enable_mask = BIT(0),
164806391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
164906391eddSTaniya Das 			.name = "gcc_gpu_snoc_dvm_gfx_clk",
165006391eddSTaniya Das 			.ops = &clk_branch2_ops,
165106391eddSTaniya Das 		},
165206391eddSTaniya Das 	},
165306391eddSTaniya Das };
165406391eddSTaniya Das 
165506391eddSTaniya Das static struct clk_branch gcc_gpu_vs_clk = {
165606391eddSTaniya Das 	.halt_reg = 0x7a04c,
165706391eddSTaniya Das 	.halt_check = BRANCH_HALT,
165806391eddSTaniya Das 	.clkr = {
165906391eddSTaniya Das 		.enable_reg = 0x7a04c,
166006391eddSTaniya Das 		.enable_mask = BIT(0),
166106391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
166206391eddSTaniya Das 			.name = "gcc_gpu_vs_clk",
1663ea434d7aSDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
1664ea434d7aSDmitry Baryshkov 				&gcc_vsensor_clk_src.clkr.hw,
166506391eddSTaniya Das 			},
166606391eddSTaniya Das 			.num_parents = 1,
166706391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
166806391eddSTaniya Das 			.ops = &clk_branch2_ops,
166906391eddSTaniya Das 		},
167006391eddSTaniya Das 	},
167106391eddSTaniya Das };
167206391eddSTaniya Das 
167306391eddSTaniya Das static struct clk_branch gcc_mss_axis2_clk = {
167406391eddSTaniya Das 	.halt_reg = 0x8a008,
167506391eddSTaniya Das 	.halt_check = BRANCH_HALT,
167606391eddSTaniya Das 	.clkr = {
167706391eddSTaniya Das 		.enable_reg = 0x8a008,
167806391eddSTaniya Das 		.enable_mask = BIT(0),
167906391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
168006391eddSTaniya Das 			.name = "gcc_mss_axis2_clk",
168106391eddSTaniya Das 			.ops = &clk_branch2_ops,
168206391eddSTaniya Das 		},
168306391eddSTaniya Das 	},
168406391eddSTaniya Das };
168506391eddSTaniya Das 
168606391eddSTaniya Das static struct clk_branch gcc_mss_cfg_ahb_clk = {
168706391eddSTaniya Das 	.halt_reg = 0x8a000,
168806391eddSTaniya Das 	.halt_check = BRANCH_HALT,
168906391eddSTaniya Das 	.hwcg_reg = 0x8a000,
169006391eddSTaniya Das 	.hwcg_bit = 1,
169106391eddSTaniya Das 	.clkr = {
169206391eddSTaniya Das 		.enable_reg = 0x8a000,
169306391eddSTaniya Das 		.enable_mask = BIT(0),
169406391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
169506391eddSTaniya Das 			.name = "gcc_mss_cfg_ahb_clk",
169606391eddSTaniya Das 			.ops = &clk_branch2_ops,
169706391eddSTaniya Das 		},
169806391eddSTaniya Das 	},
169906391eddSTaniya Das };
170006391eddSTaniya Das 
170106391eddSTaniya Das static struct clk_branch gcc_mss_gpll0_div_clk_src = {
170206391eddSTaniya Das 	.halt_check = BRANCH_HALT_DELAY,
170306391eddSTaniya Das 	.clkr = {
170406391eddSTaniya Das 		.enable_reg = 0x52004,
170506391eddSTaniya Das 		.enable_mask = BIT(17),
170606391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
170706391eddSTaniya Das 			.name = "gcc_mss_gpll0_div_clk_src",
170806391eddSTaniya Das 			.ops = &clk_branch2_ops,
170906391eddSTaniya Das 		},
171006391eddSTaniya Das 	},
171106391eddSTaniya Das };
171206391eddSTaniya Das 
171306391eddSTaniya Das static struct clk_branch gcc_mss_mfab_axis_clk = {
171406391eddSTaniya Das 	.halt_reg = 0x8a004,
171506391eddSTaniya Das 	.halt_check = BRANCH_VOTED,
171606391eddSTaniya Das 	.hwcg_reg = 0x8a004,
171706391eddSTaniya Das 	.hwcg_bit = 1,
171806391eddSTaniya Das 	.clkr = {
171906391eddSTaniya Das 		.enable_reg = 0x8a004,
172006391eddSTaniya Das 		.enable_mask = BIT(0),
172106391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
172206391eddSTaniya Das 			.name = "gcc_mss_mfab_axis_clk",
172306391eddSTaniya Das 			.ops = &clk_branch2_ops,
172406391eddSTaniya Das 		},
172506391eddSTaniya Das 	},
172606391eddSTaniya Das };
172706391eddSTaniya Das 
172806391eddSTaniya Das static struct clk_branch gcc_mss_q6_memnoc_axi_clk = {
172906391eddSTaniya Das 	.halt_reg = 0x8a154,
173006391eddSTaniya Das 	.halt_check = BRANCH_VOTED,
173106391eddSTaniya Das 	.clkr = {
173206391eddSTaniya Das 		.enable_reg = 0x8a154,
173306391eddSTaniya Das 		.enable_mask = BIT(0),
173406391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
173506391eddSTaniya Das 			.name = "gcc_mss_q6_memnoc_axi_clk",
173606391eddSTaniya Das 			.ops = &clk_branch2_ops,
173706391eddSTaniya Das 		},
173806391eddSTaniya Das 	},
173906391eddSTaniya Das };
174006391eddSTaniya Das 
174106391eddSTaniya Das static struct clk_branch gcc_mss_snoc_axi_clk = {
174206391eddSTaniya Das 	.halt_reg = 0x8a150,
174306391eddSTaniya Das 	.halt_check = BRANCH_HALT,
174406391eddSTaniya Das 	.clkr = {
174506391eddSTaniya Das 		.enable_reg = 0x8a150,
174606391eddSTaniya Das 		.enable_mask = BIT(0),
174706391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
174806391eddSTaniya Das 			.name = "gcc_mss_snoc_axi_clk",
174906391eddSTaniya Das 			.ops = &clk_branch2_ops,
175006391eddSTaniya Das 		},
175106391eddSTaniya Das 	},
175206391eddSTaniya Das };
175306391eddSTaniya Das 
175406391eddSTaniya Das static struct clk_branch gcc_mss_vs_clk = {
175506391eddSTaniya Das 	.halt_reg = 0x7a048,
175606391eddSTaniya Das 	.halt_check = BRANCH_HALT,
175706391eddSTaniya Das 	.clkr = {
175806391eddSTaniya Das 		.enable_reg = 0x7a048,
175906391eddSTaniya Das 		.enable_mask = BIT(0),
176006391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
176106391eddSTaniya Das 			.name = "gcc_mss_vs_clk",
1762ea434d7aSDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
1763ea434d7aSDmitry Baryshkov 				&gcc_vsensor_clk_src.clkr.hw,
176406391eddSTaniya Das 			},
176506391eddSTaniya Das 			.num_parents = 1,
176606391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
176706391eddSTaniya Das 			.ops = &clk_branch2_ops,
176806391eddSTaniya Das 		},
176906391eddSTaniya Das 	},
177006391eddSTaniya Das };
177106391eddSTaniya Das 
177206391eddSTaniya Das static struct clk_branch gcc_pcie_0_aux_clk = {
177306391eddSTaniya Das 	.halt_reg = 0x6b01c,
177406391eddSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
177506391eddSTaniya Das 	.clkr = {
177606391eddSTaniya Das 		.enable_reg = 0x5200c,
177706391eddSTaniya Das 		.enable_mask = BIT(3),
177806391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
177906391eddSTaniya Das 			.name = "gcc_pcie_0_aux_clk",
1780ea434d7aSDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
1781ea434d7aSDmitry Baryshkov 				&gcc_pcie_0_aux_clk_src.clkr.hw,
178206391eddSTaniya Das 			},
178306391eddSTaniya Das 			.num_parents = 1,
178406391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
178506391eddSTaniya Das 			.ops = &clk_branch2_ops,
178606391eddSTaniya Das 		},
178706391eddSTaniya Das 	},
178806391eddSTaniya Das };
178906391eddSTaniya Das 
179006391eddSTaniya Das static struct clk_branch gcc_pcie_0_cfg_ahb_clk = {
179106391eddSTaniya Das 	.halt_reg = 0x6b018,
179206391eddSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
179306391eddSTaniya Das 	.hwcg_reg = 0x6b018,
179406391eddSTaniya Das 	.hwcg_bit = 1,
179506391eddSTaniya Das 	.clkr = {
179606391eddSTaniya Das 		.enable_reg = 0x5200c,
179706391eddSTaniya Das 		.enable_mask = BIT(2),
179806391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
179906391eddSTaniya Das 			.name = "gcc_pcie_0_cfg_ahb_clk",
180006391eddSTaniya Das 			.ops = &clk_branch2_ops,
180106391eddSTaniya Das 		},
180206391eddSTaniya Das 	},
180306391eddSTaniya Das };
180406391eddSTaniya Das 
180506391eddSTaniya Das static struct clk_branch gcc_pcie_0_clkref_clk = {
180606391eddSTaniya Das 	.halt_reg = 0x8c00c,
180706391eddSTaniya Das 	.halt_check = BRANCH_HALT,
180806391eddSTaniya Das 	.clkr = {
180906391eddSTaniya Das 		.enable_reg = 0x8c00c,
181006391eddSTaniya Das 		.enable_mask = BIT(0),
181106391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
181206391eddSTaniya Das 			.name = "gcc_pcie_0_clkref_clk",
181306391eddSTaniya Das 			.ops = &clk_branch2_ops,
181406391eddSTaniya Das 		},
181506391eddSTaniya Das 	},
181606391eddSTaniya Das };
181706391eddSTaniya Das 
181806391eddSTaniya Das static struct clk_branch gcc_pcie_0_mstr_axi_clk = {
181906391eddSTaniya Das 	.halt_reg = 0x6b014,
182006391eddSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
182106391eddSTaniya Das 	.clkr = {
182206391eddSTaniya Das 		.enable_reg = 0x5200c,
182306391eddSTaniya Das 		.enable_mask = BIT(1),
182406391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
182506391eddSTaniya Das 			.name = "gcc_pcie_0_mstr_axi_clk",
182606391eddSTaniya Das 			.ops = &clk_branch2_ops,
182706391eddSTaniya Das 		},
182806391eddSTaniya Das 	},
182906391eddSTaniya Das };
183006391eddSTaniya Das 
183106391eddSTaniya Das static struct clk_branch gcc_pcie_0_pipe_clk = {
183206391eddSTaniya Das 	.halt_check = BRANCH_HALT_SKIP,
183306391eddSTaniya Das 	.clkr = {
183406391eddSTaniya Das 		.enable_reg = 0x5200c,
183506391eddSTaniya Das 		.enable_mask = BIT(4),
183606391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
183706391eddSTaniya Das 			.name = "gcc_pcie_0_pipe_clk",
1838ea434d7aSDmitry Baryshkov 			.parent_data = &(const struct clk_parent_data){
1839ea434d7aSDmitry Baryshkov 				.fw_name = "pcie_0_pipe_clk", .name = "pcie_0_pipe_clk",
1840ea434d7aSDmitry Baryshkov 			},
18414b5a59a2SBjorn Andersson 			.num_parents = 1,
18424b5a59a2SBjorn Andersson 			.flags = CLK_SET_RATE_PARENT,
184306391eddSTaniya Das 			.ops = &clk_branch2_ops,
184406391eddSTaniya Das 		},
184506391eddSTaniya Das 	},
184606391eddSTaniya Das };
184706391eddSTaniya Das 
184806391eddSTaniya Das static struct clk_branch gcc_pcie_0_slv_axi_clk = {
184906391eddSTaniya Das 	.halt_reg = 0x6b010,
185006391eddSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
185106391eddSTaniya Das 	.hwcg_reg = 0x6b010,
185206391eddSTaniya Das 	.hwcg_bit = 1,
185306391eddSTaniya Das 	.clkr = {
185406391eddSTaniya Das 		.enable_reg = 0x5200c,
185506391eddSTaniya Das 		.enable_mask = BIT(0),
185606391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
185706391eddSTaniya Das 			.name = "gcc_pcie_0_slv_axi_clk",
185806391eddSTaniya Das 			.ops = &clk_branch2_ops,
185906391eddSTaniya Das 		},
186006391eddSTaniya Das 	},
186106391eddSTaniya Das };
186206391eddSTaniya Das 
186306391eddSTaniya Das static struct clk_branch gcc_pcie_0_slv_q2a_axi_clk = {
186406391eddSTaniya Das 	.halt_reg = 0x6b00c,
186506391eddSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
186606391eddSTaniya Das 	.clkr = {
186706391eddSTaniya Das 		.enable_reg = 0x5200c,
186806391eddSTaniya Das 		.enable_mask = BIT(5),
186906391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
187006391eddSTaniya Das 			.name = "gcc_pcie_0_slv_q2a_axi_clk",
187106391eddSTaniya Das 			.ops = &clk_branch2_ops,
187206391eddSTaniya Das 		},
187306391eddSTaniya Das 	},
187406391eddSTaniya Das };
187506391eddSTaniya Das 
187606391eddSTaniya Das static struct clk_branch gcc_pcie_1_aux_clk = {
187706391eddSTaniya Das 	.halt_reg = 0x8d01c,
187806391eddSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
187906391eddSTaniya Das 	.clkr = {
188006391eddSTaniya Das 		.enable_reg = 0x52004,
188106391eddSTaniya Das 		.enable_mask = BIT(29),
188206391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
188306391eddSTaniya Das 			.name = "gcc_pcie_1_aux_clk",
1884ea434d7aSDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
1885ea434d7aSDmitry Baryshkov 				&gcc_pcie_1_aux_clk_src.clkr.hw,
188606391eddSTaniya Das 			},
188706391eddSTaniya Das 			.num_parents = 1,
188806391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
188906391eddSTaniya Das 			.ops = &clk_branch2_ops,
189006391eddSTaniya Das 		},
189106391eddSTaniya Das 	},
189206391eddSTaniya Das };
189306391eddSTaniya Das 
189406391eddSTaniya Das static struct clk_branch gcc_pcie_1_cfg_ahb_clk = {
189506391eddSTaniya Das 	.halt_reg = 0x8d018,
189606391eddSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
189706391eddSTaniya Das 	.hwcg_reg = 0x8d018,
189806391eddSTaniya Das 	.hwcg_bit = 1,
189906391eddSTaniya Das 	.clkr = {
190006391eddSTaniya Das 		.enable_reg = 0x52004,
190106391eddSTaniya Das 		.enable_mask = BIT(28),
190206391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
190306391eddSTaniya Das 			.name = "gcc_pcie_1_cfg_ahb_clk",
190406391eddSTaniya Das 			.ops = &clk_branch2_ops,
190506391eddSTaniya Das 		},
190606391eddSTaniya Das 	},
190706391eddSTaniya Das };
190806391eddSTaniya Das 
190906391eddSTaniya Das static struct clk_branch gcc_pcie_1_clkref_clk = {
191006391eddSTaniya Das 	.halt_reg = 0x8c02c,
191106391eddSTaniya Das 	.halt_check = BRANCH_HALT,
191206391eddSTaniya Das 	.clkr = {
191306391eddSTaniya Das 		.enable_reg = 0x8c02c,
191406391eddSTaniya Das 		.enable_mask = BIT(0),
191506391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
191606391eddSTaniya Das 			.name = "gcc_pcie_1_clkref_clk",
191706391eddSTaniya Das 			.ops = &clk_branch2_ops,
191806391eddSTaniya Das 		},
191906391eddSTaniya Das 	},
192006391eddSTaniya Das };
192106391eddSTaniya Das 
192206391eddSTaniya Das static struct clk_branch gcc_pcie_1_mstr_axi_clk = {
192306391eddSTaniya Das 	.halt_reg = 0x8d014,
192406391eddSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
192506391eddSTaniya Das 	.clkr = {
192606391eddSTaniya Das 		.enable_reg = 0x52004,
192706391eddSTaniya Das 		.enable_mask = BIT(27),
192806391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
192906391eddSTaniya Das 			.name = "gcc_pcie_1_mstr_axi_clk",
193006391eddSTaniya Das 			.ops = &clk_branch2_ops,
193106391eddSTaniya Das 		},
193206391eddSTaniya Das 	},
193306391eddSTaniya Das };
193406391eddSTaniya Das 
193506391eddSTaniya Das static struct clk_branch gcc_pcie_1_pipe_clk = {
193606391eddSTaniya Das 	.halt_check = BRANCH_HALT_SKIP,
193706391eddSTaniya Das 	.clkr = {
193806391eddSTaniya Das 		.enable_reg = 0x52004,
193906391eddSTaniya Das 		.enable_mask = BIT(30),
194006391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
194106391eddSTaniya Das 			.name = "gcc_pcie_1_pipe_clk",
1942ea434d7aSDmitry Baryshkov 			.parent_data = &(const struct clk_parent_data){
1943ea434d7aSDmitry Baryshkov 				.fw_name = "pcie_1_pipe_clk", .name = "pcie_1_pipe_clk",
1944ea434d7aSDmitry Baryshkov 			},
19454b5a59a2SBjorn Andersson 			.num_parents = 1,
194606391eddSTaniya Das 			.ops = &clk_branch2_ops,
194706391eddSTaniya Das 		},
194806391eddSTaniya Das 	},
194906391eddSTaniya Das };
195006391eddSTaniya Das 
195106391eddSTaniya Das static struct clk_branch gcc_pcie_1_slv_axi_clk = {
195206391eddSTaniya Das 	.halt_reg = 0x8d010,
195306391eddSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
195406391eddSTaniya Das 	.hwcg_reg = 0x8d010,
195506391eddSTaniya Das 	.hwcg_bit = 1,
195606391eddSTaniya Das 	.clkr = {
195706391eddSTaniya Das 		.enable_reg = 0x52004,
195806391eddSTaniya Das 		.enable_mask = BIT(26),
195906391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
196006391eddSTaniya Das 			.name = "gcc_pcie_1_slv_axi_clk",
196106391eddSTaniya Das 			.ops = &clk_branch2_ops,
196206391eddSTaniya Das 		},
196306391eddSTaniya Das 	},
196406391eddSTaniya Das };
196506391eddSTaniya Das 
196606391eddSTaniya Das static struct clk_branch gcc_pcie_1_slv_q2a_axi_clk = {
196706391eddSTaniya Das 	.halt_reg = 0x8d00c,
196806391eddSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
196906391eddSTaniya Das 	.clkr = {
197006391eddSTaniya Das 		.enable_reg = 0x52004,
197106391eddSTaniya Das 		.enable_mask = BIT(25),
197206391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
197306391eddSTaniya Das 			.name = "gcc_pcie_1_slv_q2a_axi_clk",
197406391eddSTaniya Das 			.ops = &clk_branch2_ops,
197506391eddSTaniya Das 		},
197606391eddSTaniya Das 	},
197706391eddSTaniya Das };
197806391eddSTaniya Das 
197906391eddSTaniya Das static struct clk_branch gcc_pcie_phy_aux_clk = {
198006391eddSTaniya Das 	.halt_reg = 0x6f004,
198106391eddSTaniya Das 	.halt_check = BRANCH_HALT,
198206391eddSTaniya Das 	.clkr = {
198306391eddSTaniya Das 		.enable_reg = 0x6f004,
198406391eddSTaniya Das 		.enable_mask = BIT(0),
198506391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
198606391eddSTaniya Das 			.name = "gcc_pcie_phy_aux_clk",
1987ea434d7aSDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
1988ea434d7aSDmitry Baryshkov 				&gcc_pcie_0_aux_clk_src.clkr.hw,
198906391eddSTaniya Das 			},
199006391eddSTaniya Das 			.num_parents = 1,
199106391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
199206391eddSTaniya Das 			.ops = &clk_branch2_ops,
199306391eddSTaniya Das 		},
199406391eddSTaniya Das 	},
199506391eddSTaniya Das };
199606391eddSTaniya Das 
199706391eddSTaniya Das static struct clk_branch gcc_pcie_phy_refgen_clk = {
199806391eddSTaniya Das 	.halt_reg = 0x6f02c,
199906391eddSTaniya Das 	.halt_check = BRANCH_HALT,
200006391eddSTaniya Das 	.clkr = {
200106391eddSTaniya Das 		.enable_reg = 0x6f02c,
200206391eddSTaniya Das 		.enable_mask = BIT(0),
200306391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
200406391eddSTaniya Das 			.name = "gcc_pcie_phy_refgen_clk",
2005ea434d7aSDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
2006ea434d7aSDmitry Baryshkov 				&gcc_pcie_phy_refgen_clk_src.clkr.hw,
200706391eddSTaniya Das 			},
200806391eddSTaniya Das 			.num_parents = 1,
200906391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
201006391eddSTaniya Das 			.ops = &clk_branch2_ops,
201106391eddSTaniya Das 		},
201206391eddSTaniya Das 	},
201306391eddSTaniya Das };
201406391eddSTaniya Das 
201506391eddSTaniya Das static struct clk_branch gcc_pdm2_clk = {
201606391eddSTaniya Das 	.halt_reg = 0x3300c,
201706391eddSTaniya Das 	.halt_check = BRANCH_HALT,
201806391eddSTaniya Das 	.clkr = {
201906391eddSTaniya Das 		.enable_reg = 0x3300c,
202006391eddSTaniya Das 		.enable_mask = BIT(0),
202106391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
202206391eddSTaniya Das 			.name = "gcc_pdm2_clk",
2023ea434d7aSDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
2024ea434d7aSDmitry Baryshkov 				&gcc_pdm2_clk_src.clkr.hw,
202506391eddSTaniya Das 			},
202606391eddSTaniya Das 			.num_parents = 1,
202706391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
202806391eddSTaniya Das 			.ops = &clk_branch2_ops,
202906391eddSTaniya Das 		},
203006391eddSTaniya Das 	},
203106391eddSTaniya Das };
203206391eddSTaniya Das 
203306391eddSTaniya Das static struct clk_branch gcc_pdm_ahb_clk = {
203406391eddSTaniya Das 	.halt_reg = 0x33004,
203506391eddSTaniya Das 	.halt_check = BRANCH_HALT,
203606391eddSTaniya Das 	.hwcg_reg = 0x33004,
203706391eddSTaniya Das 	.hwcg_bit = 1,
203806391eddSTaniya Das 	.clkr = {
203906391eddSTaniya Das 		.enable_reg = 0x33004,
204006391eddSTaniya Das 		.enable_mask = BIT(0),
204106391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
204206391eddSTaniya Das 			.name = "gcc_pdm_ahb_clk",
204306391eddSTaniya Das 			.ops = &clk_branch2_ops,
204406391eddSTaniya Das 		},
204506391eddSTaniya Das 	},
204606391eddSTaniya Das };
204706391eddSTaniya Das 
204806391eddSTaniya Das static struct clk_branch gcc_pdm_xo4_clk = {
204906391eddSTaniya Das 	.halt_reg = 0x33008,
205006391eddSTaniya Das 	.halt_check = BRANCH_HALT,
205106391eddSTaniya Das 	.clkr = {
205206391eddSTaniya Das 		.enable_reg = 0x33008,
205306391eddSTaniya Das 		.enable_mask = BIT(0),
205406391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
205506391eddSTaniya Das 			.name = "gcc_pdm_xo4_clk",
205606391eddSTaniya Das 			.ops = &clk_branch2_ops,
205706391eddSTaniya Das 		},
205806391eddSTaniya Das 	},
205906391eddSTaniya Das };
206006391eddSTaniya Das 
206106391eddSTaniya Das static struct clk_branch gcc_prng_ahb_clk = {
206206391eddSTaniya Das 	.halt_reg = 0x34004,
206306391eddSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
206406391eddSTaniya Das 	.hwcg_reg = 0x34004,
206506391eddSTaniya Das 	.hwcg_bit = 1,
206606391eddSTaniya Das 	.clkr = {
206706391eddSTaniya Das 		.enable_reg = 0x52004,
206806391eddSTaniya Das 		.enable_mask = BIT(13),
206906391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
207006391eddSTaniya Das 			.name = "gcc_prng_ahb_clk",
207106391eddSTaniya Das 			.ops = &clk_branch2_ops,
207206391eddSTaniya Das 		},
207306391eddSTaniya Das 	},
207406391eddSTaniya Das };
207506391eddSTaniya Das 
207606391eddSTaniya Das static struct clk_branch gcc_qmip_camera_ahb_clk = {
207706391eddSTaniya Das 	.halt_reg = 0xb014,
207806391eddSTaniya Das 	.halt_check = BRANCH_HALT,
207906391eddSTaniya Das 	.hwcg_reg = 0xb014,
208006391eddSTaniya Das 	.hwcg_bit = 1,
208106391eddSTaniya Das 	.clkr = {
208206391eddSTaniya Das 		.enable_reg = 0xb014,
208306391eddSTaniya Das 		.enable_mask = BIT(0),
208406391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
208506391eddSTaniya Das 			.name = "gcc_qmip_camera_ahb_clk",
208606391eddSTaniya Das 			.ops = &clk_branch2_ops,
208706391eddSTaniya Das 		},
208806391eddSTaniya Das 	},
208906391eddSTaniya Das };
209006391eddSTaniya Das 
209106391eddSTaniya Das static struct clk_branch gcc_qmip_disp_ahb_clk = {
209206391eddSTaniya Das 	.halt_reg = 0xb018,
209306391eddSTaniya Das 	.halt_check = BRANCH_HALT,
209406391eddSTaniya Das 	.hwcg_reg = 0xb018,
209506391eddSTaniya Das 	.hwcg_bit = 1,
209606391eddSTaniya Das 	.clkr = {
209706391eddSTaniya Das 		.enable_reg = 0xb018,
209806391eddSTaniya Das 		.enable_mask = BIT(0),
209906391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
210006391eddSTaniya Das 			.name = "gcc_qmip_disp_ahb_clk",
210106391eddSTaniya Das 			.ops = &clk_branch2_ops,
210206391eddSTaniya Das 		},
210306391eddSTaniya Das 	},
210406391eddSTaniya Das };
210506391eddSTaniya Das 
210606391eddSTaniya Das static struct clk_branch gcc_qmip_video_ahb_clk = {
210706391eddSTaniya Das 	.halt_reg = 0xb010,
210806391eddSTaniya Das 	.halt_check = BRANCH_HALT,
210906391eddSTaniya Das 	.hwcg_reg = 0xb010,
211006391eddSTaniya Das 	.hwcg_bit = 1,
211106391eddSTaniya Das 	.clkr = {
211206391eddSTaniya Das 		.enable_reg = 0xb010,
211306391eddSTaniya Das 		.enable_mask = BIT(0),
211406391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
211506391eddSTaniya Das 			.name = "gcc_qmip_video_ahb_clk",
211606391eddSTaniya Das 			.ops = &clk_branch2_ops,
211706391eddSTaniya Das 		},
211806391eddSTaniya Das 	},
211906391eddSTaniya Das };
212006391eddSTaniya Das 
21214f83d9b8SDouglas Anderson static struct clk_branch gcc_qspi_cnoc_periph_ahb_clk = {
21224f83d9b8SDouglas Anderson 	.halt_reg = 0x4b000,
21234f83d9b8SDouglas Anderson 	.halt_check = BRANCH_HALT,
21244f83d9b8SDouglas Anderson 	.clkr = {
21254f83d9b8SDouglas Anderson 		.enable_reg = 0x4b000,
21264f83d9b8SDouglas Anderson 		.enable_mask = BIT(0),
21274f83d9b8SDouglas Anderson 		.hw.init = &(struct clk_init_data){
21284f83d9b8SDouglas Anderson 			.name = "gcc_qspi_cnoc_periph_ahb_clk",
21294f83d9b8SDouglas Anderson 			.ops = &clk_branch2_ops,
21304f83d9b8SDouglas Anderson 		},
21314f83d9b8SDouglas Anderson 	},
21324f83d9b8SDouglas Anderson };
21334f83d9b8SDouglas Anderson 
21344f83d9b8SDouglas Anderson static struct clk_branch gcc_qspi_core_clk = {
21354f83d9b8SDouglas Anderson 	.halt_reg = 0x4b004,
21364f83d9b8SDouglas Anderson 	.halt_check = BRANCH_HALT,
21374f83d9b8SDouglas Anderson 	.clkr = {
21384f83d9b8SDouglas Anderson 		.enable_reg = 0x4b004,
21394f83d9b8SDouglas Anderson 		.enable_mask = BIT(0),
21404f83d9b8SDouglas Anderson 		.hw.init = &(struct clk_init_data){
21414f83d9b8SDouglas Anderson 			.name = "gcc_qspi_core_clk",
2142ea434d7aSDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
2143ea434d7aSDmitry Baryshkov 				&gcc_qspi_core_clk_src.clkr.hw,
21444f83d9b8SDouglas Anderson 			},
21454f83d9b8SDouglas Anderson 			.num_parents = 1,
21464f83d9b8SDouglas Anderson 			.flags = CLK_SET_RATE_PARENT,
21474f83d9b8SDouglas Anderson 			.ops = &clk_branch2_ops,
21484f83d9b8SDouglas Anderson 		},
21494f83d9b8SDouglas Anderson 	},
21504f83d9b8SDouglas Anderson };
21514f83d9b8SDouglas Anderson 
215206391eddSTaniya Das static struct clk_branch gcc_qupv3_wrap0_s0_clk = {
215306391eddSTaniya Das 	.halt_reg = 0x17030,
215406391eddSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
215506391eddSTaniya Das 	.clkr = {
215606391eddSTaniya Das 		.enable_reg = 0x5200c,
215706391eddSTaniya Das 		.enable_mask = BIT(10),
215806391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
215906391eddSTaniya Das 			.name = "gcc_qupv3_wrap0_s0_clk",
2160ea434d7aSDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
2161ea434d7aSDmitry Baryshkov 				&gcc_qupv3_wrap0_s0_clk_src.clkr.hw,
216206391eddSTaniya Das 			},
216306391eddSTaniya Das 			.num_parents = 1,
216406391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
216506391eddSTaniya Das 			.ops = &clk_branch2_ops,
216606391eddSTaniya Das 		},
216706391eddSTaniya Das 	},
216806391eddSTaniya Das };
216906391eddSTaniya Das 
217006391eddSTaniya Das static struct clk_branch gcc_qupv3_wrap0_s1_clk = {
217106391eddSTaniya Das 	.halt_reg = 0x17160,
217206391eddSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
217306391eddSTaniya Das 	.clkr = {
217406391eddSTaniya Das 		.enable_reg = 0x5200c,
217506391eddSTaniya Das 		.enable_mask = BIT(11),
217606391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
217706391eddSTaniya Das 			.name = "gcc_qupv3_wrap0_s1_clk",
2178ea434d7aSDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
2179ea434d7aSDmitry Baryshkov 				&gcc_qupv3_wrap0_s1_clk_src.clkr.hw,
218006391eddSTaniya Das 			},
218106391eddSTaniya Das 			.num_parents = 1,
218206391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
218306391eddSTaniya Das 			.ops = &clk_branch2_ops,
218406391eddSTaniya Das 		},
218506391eddSTaniya Das 	},
218606391eddSTaniya Das };
218706391eddSTaniya Das 
218806391eddSTaniya Das static struct clk_branch gcc_qupv3_wrap0_s2_clk = {
218906391eddSTaniya Das 	.halt_reg = 0x17290,
219006391eddSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
219106391eddSTaniya Das 	.clkr = {
219206391eddSTaniya Das 		.enable_reg = 0x5200c,
219306391eddSTaniya Das 		.enable_mask = BIT(12),
219406391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
219506391eddSTaniya Das 			.name = "gcc_qupv3_wrap0_s2_clk",
2196ea434d7aSDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
2197ea434d7aSDmitry Baryshkov 				&gcc_qupv3_wrap0_s2_clk_src.clkr.hw,
219806391eddSTaniya Das 			},
219906391eddSTaniya Das 			.num_parents = 1,
220006391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
220106391eddSTaniya Das 			.ops = &clk_branch2_ops,
220206391eddSTaniya Das 		},
220306391eddSTaniya Das 	},
220406391eddSTaniya Das };
220506391eddSTaniya Das 
220606391eddSTaniya Das static struct clk_branch gcc_qupv3_wrap0_s3_clk = {
220706391eddSTaniya Das 	.halt_reg = 0x173c0,
220806391eddSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
220906391eddSTaniya Das 	.clkr = {
221006391eddSTaniya Das 		.enable_reg = 0x5200c,
221106391eddSTaniya Das 		.enable_mask = BIT(13),
221206391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
221306391eddSTaniya Das 			.name = "gcc_qupv3_wrap0_s3_clk",
2214ea434d7aSDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
2215ea434d7aSDmitry Baryshkov 				&gcc_qupv3_wrap0_s3_clk_src.clkr.hw,
221606391eddSTaniya Das 			},
221706391eddSTaniya Das 			.num_parents = 1,
221806391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
221906391eddSTaniya Das 			.ops = &clk_branch2_ops,
222006391eddSTaniya Das 		},
222106391eddSTaniya Das 	},
222206391eddSTaniya Das };
222306391eddSTaniya Das 
222406391eddSTaniya Das static struct clk_branch gcc_qupv3_wrap0_s4_clk = {
222506391eddSTaniya Das 	.halt_reg = 0x174f0,
222606391eddSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
222706391eddSTaniya Das 	.clkr = {
222806391eddSTaniya Das 		.enable_reg = 0x5200c,
222906391eddSTaniya Das 		.enable_mask = BIT(14),
223006391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
223106391eddSTaniya Das 			.name = "gcc_qupv3_wrap0_s4_clk",
2232ea434d7aSDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
2233ea434d7aSDmitry Baryshkov 				&gcc_qupv3_wrap0_s4_clk_src.clkr.hw,
223406391eddSTaniya Das 			},
223506391eddSTaniya Das 			.num_parents = 1,
223606391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
223706391eddSTaniya Das 			.ops = &clk_branch2_ops,
223806391eddSTaniya Das 		},
223906391eddSTaniya Das 	},
224006391eddSTaniya Das };
224106391eddSTaniya Das 
224206391eddSTaniya Das static struct clk_branch gcc_qupv3_wrap0_s5_clk = {
224306391eddSTaniya Das 	.halt_reg = 0x17620,
224406391eddSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
224506391eddSTaniya Das 	.clkr = {
224606391eddSTaniya Das 		.enable_reg = 0x5200c,
224706391eddSTaniya Das 		.enable_mask = BIT(15),
224806391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
224906391eddSTaniya Das 			.name = "gcc_qupv3_wrap0_s5_clk",
2250ea434d7aSDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
2251ea434d7aSDmitry Baryshkov 				&gcc_qupv3_wrap0_s5_clk_src.clkr.hw,
225206391eddSTaniya Das 			},
225306391eddSTaniya Das 			.num_parents = 1,
225406391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
225506391eddSTaniya Das 			.ops = &clk_branch2_ops,
225606391eddSTaniya Das 		},
225706391eddSTaniya Das 	},
225806391eddSTaniya Das };
225906391eddSTaniya Das 
226006391eddSTaniya Das static struct clk_branch gcc_qupv3_wrap0_s6_clk = {
226106391eddSTaniya Das 	.halt_reg = 0x17750,
226206391eddSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
226306391eddSTaniya Das 	.clkr = {
226406391eddSTaniya Das 		.enable_reg = 0x5200c,
226506391eddSTaniya Das 		.enable_mask = BIT(16),
226606391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
226706391eddSTaniya Das 			.name = "gcc_qupv3_wrap0_s6_clk",
2268ea434d7aSDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
2269ea434d7aSDmitry Baryshkov 				&gcc_qupv3_wrap0_s6_clk_src.clkr.hw,
227006391eddSTaniya Das 			},
227106391eddSTaniya Das 			.num_parents = 1,
227206391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
227306391eddSTaniya Das 			.ops = &clk_branch2_ops,
227406391eddSTaniya Das 		},
227506391eddSTaniya Das 	},
227606391eddSTaniya Das };
227706391eddSTaniya Das 
227806391eddSTaniya Das static struct clk_branch gcc_qupv3_wrap0_s7_clk = {
227906391eddSTaniya Das 	.halt_reg = 0x17880,
228006391eddSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
228106391eddSTaniya Das 	.clkr = {
228206391eddSTaniya Das 		.enable_reg = 0x5200c,
228306391eddSTaniya Das 		.enable_mask = BIT(17),
228406391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
228506391eddSTaniya Das 			.name = "gcc_qupv3_wrap0_s7_clk",
2286ea434d7aSDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
2287ea434d7aSDmitry Baryshkov 				&gcc_qupv3_wrap0_s7_clk_src.clkr.hw,
228806391eddSTaniya Das 			},
228906391eddSTaniya Das 			.num_parents = 1,
229006391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
229106391eddSTaniya Das 			.ops = &clk_branch2_ops,
229206391eddSTaniya Das 		},
229306391eddSTaniya Das 	},
229406391eddSTaniya Das };
229506391eddSTaniya Das 
229606391eddSTaniya Das static struct clk_branch gcc_qupv3_wrap1_s0_clk = {
229706391eddSTaniya Das 	.halt_reg = 0x18014,
229806391eddSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
229906391eddSTaniya Das 	.clkr = {
230006391eddSTaniya Das 		.enable_reg = 0x5200c,
230106391eddSTaniya Das 		.enable_mask = BIT(22),
230206391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
230306391eddSTaniya Das 			.name = "gcc_qupv3_wrap1_s0_clk",
2304ea434d7aSDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
2305ea434d7aSDmitry Baryshkov 				&gcc_qupv3_wrap1_s0_clk_src.clkr.hw,
230606391eddSTaniya Das 			},
230706391eddSTaniya Das 			.num_parents = 1,
230806391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
230906391eddSTaniya Das 			.ops = &clk_branch2_ops,
231006391eddSTaniya Das 		},
231106391eddSTaniya Das 	},
231206391eddSTaniya Das };
231306391eddSTaniya Das 
231406391eddSTaniya Das static struct clk_branch gcc_qupv3_wrap1_s1_clk = {
231506391eddSTaniya Das 	.halt_reg = 0x18144,
231606391eddSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
231706391eddSTaniya Das 	.clkr = {
231806391eddSTaniya Das 		.enable_reg = 0x5200c,
231906391eddSTaniya Das 		.enable_mask = BIT(23),
232006391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
232106391eddSTaniya Das 			.name = "gcc_qupv3_wrap1_s1_clk",
2322ea434d7aSDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
2323ea434d7aSDmitry Baryshkov 				&gcc_qupv3_wrap1_s1_clk_src.clkr.hw,
232406391eddSTaniya Das 			},
232506391eddSTaniya Das 			.num_parents = 1,
232606391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
232706391eddSTaniya Das 			.ops = &clk_branch2_ops,
232806391eddSTaniya Das 		},
232906391eddSTaniya Das 	},
233006391eddSTaniya Das };
233106391eddSTaniya Das 
233206391eddSTaniya Das static struct clk_branch gcc_qupv3_wrap1_s2_clk = {
233306391eddSTaniya Das 	.halt_reg = 0x18274,
233406391eddSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
233506391eddSTaniya Das 	.clkr = {
233606391eddSTaniya Das 		.enable_reg = 0x5200c,
233706391eddSTaniya Das 		.enable_mask = BIT(24),
233806391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
233906391eddSTaniya Das 			.name = "gcc_qupv3_wrap1_s2_clk",
2340ea434d7aSDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
2341ea434d7aSDmitry Baryshkov 				&gcc_qupv3_wrap1_s2_clk_src.clkr.hw,
234206391eddSTaniya Das 			},
234306391eddSTaniya Das 			.num_parents = 1,
234406391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
234506391eddSTaniya Das 			.ops = &clk_branch2_ops,
234606391eddSTaniya Das 		},
234706391eddSTaniya Das 	},
234806391eddSTaniya Das };
234906391eddSTaniya Das 
235006391eddSTaniya Das static struct clk_branch gcc_qupv3_wrap1_s3_clk = {
235106391eddSTaniya Das 	.halt_reg = 0x183a4,
235206391eddSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
235306391eddSTaniya Das 	.clkr = {
235406391eddSTaniya Das 		.enable_reg = 0x5200c,
235506391eddSTaniya Das 		.enable_mask = BIT(25),
235606391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
235706391eddSTaniya Das 			.name = "gcc_qupv3_wrap1_s3_clk",
2358ea434d7aSDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
2359ea434d7aSDmitry Baryshkov 				&gcc_qupv3_wrap1_s3_clk_src.clkr.hw,
236006391eddSTaniya Das 			},
236106391eddSTaniya Das 			.num_parents = 1,
236206391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
236306391eddSTaniya Das 			.ops = &clk_branch2_ops,
236406391eddSTaniya Das 		},
236506391eddSTaniya Das 	},
236606391eddSTaniya Das };
236706391eddSTaniya Das 
236806391eddSTaniya Das static struct clk_branch gcc_qupv3_wrap1_s4_clk = {
236906391eddSTaniya Das 	.halt_reg = 0x184d4,
237006391eddSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
237106391eddSTaniya Das 	.clkr = {
237206391eddSTaniya Das 		.enable_reg = 0x5200c,
237306391eddSTaniya Das 		.enable_mask = BIT(26),
237406391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
237506391eddSTaniya Das 			.name = "gcc_qupv3_wrap1_s4_clk",
2376ea434d7aSDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
2377ea434d7aSDmitry Baryshkov 				&gcc_qupv3_wrap1_s4_clk_src.clkr.hw,
237806391eddSTaniya Das 			},
237906391eddSTaniya Das 			.num_parents = 1,
238006391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
238106391eddSTaniya Das 			.ops = &clk_branch2_ops,
238206391eddSTaniya Das 		},
238306391eddSTaniya Das 	},
238406391eddSTaniya Das };
238506391eddSTaniya Das 
238606391eddSTaniya Das static struct clk_branch gcc_qupv3_wrap1_s5_clk = {
238706391eddSTaniya Das 	.halt_reg = 0x18604,
238806391eddSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
238906391eddSTaniya Das 	.clkr = {
239006391eddSTaniya Das 		.enable_reg = 0x5200c,
239106391eddSTaniya Das 		.enable_mask = BIT(27),
239206391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
239306391eddSTaniya Das 			.name = "gcc_qupv3_wrap1_s5_clk",
2394ea434d7aSDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
2395ea434d7aSDmitry Baryshkov 				&gcc_qupv3_wrap1_s5_clk_src.clkr.hw,
239606391eddSTaniya Das 			},
239706391eddSTaniya Das 			.num_parents = 1,
239806391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
239906391eddSTaniya Das 			.ops = &clk_branch2_ops,
240006391eddSTaniya Das 		},
240106391eddSTaniya Das 	},
240206391eddSTaniya Das };
240306391eddSTaniya Das 
240406391eddSTaniya Das static struct clk_branch gcc_qupv3_wrap1_s6_clk = {
240506391eddSTaniya Das 	.halt_reg = 0x18734,
240606391eddSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
240706391eddSTaniya Das 	.clkr = {
240806391eddSTaniya Das 		.enable_reg = 0x5200c,
240906391eddSTaniya Das 		.enable_mask = BIT(28),
241006391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
241106391eddSTaniya Das 			.name = "gcc_qupv3_wrap1_s6_clk",
2412ea434d7aSDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
2413ea434d7aSDmitry Baryshkov 				&gcc_qupv3_wrap1_s6_clk_src.clkr.hw,
241406391eddSTaniya Das 			},
241506391eddSTaniya Das 			.num_parents = 1,
241606391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
241706391eddSTaniya Das 			.ops = &clk_branch2_ops,
241806391eddSTaniya Das 		},
241906391eddSTaniya Das 	},
242006391eddSTaniya Das };
242106391eddSTaniya Das 
242206391eddSTaniya Das static struct clk_branch gcc_qupv3_wrap1_s7_clk = {
242306391eddSTaniya Das 	.halt_reg = 0x18864,
242406391eddSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
242506391eddSTaniya Das 	.clkr = {
242606391eddSTaniya Das 		.enable_reg = 0x5200c,
242706391eddSTaniya Das 		.enable_mask = BIT(29),
242806391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
242906391eddSTaniya Das 			.name = "gcc_qupv3_wrap1_s7_clk",
2430ea434d7aSDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
2431ea434d7aSDmitry Baryshkov 				&gcc_qupv3_wrap1_s7_clk_src.clkr.hw,
243206391eddSTaniya Das 			},
243306391eddSTaniya Das 			.num_parents = 1,
243406391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
243506391eddSTaniya Das 			.ops = &clk_branch2_ops,
243606391eddSTaniya Das 		},
243706391eddSTaniya Das 	},
243806391eddSTaniya Das };
243906391eddSTaniya Das 
244006391eddSTaniya Das static struct clk_branch gcc_qupv3_wrap_0_m_ahb_clk = {
244106391eddSTaniya Das 	.halt_reg = 0x17004,
244206391eddSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
244306391eddSTaniya Das 	.clkr = {
244406391eddSTaniya Das 		.enable_reg = 0x5200c,
244506391eddSTaniya Das 		.enable_mask = BIT(6),
244606391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
244706391eddSTaniya Das 			.name = "gcc_qupv3_wrap_0_m_ahb_clk",
244806391eddSTaniya Das 			.ops = &clk_branch2_ops,
244906391eddSTaniya Das 		},
245006391eddSTaniya Das 	},
245106391eddSTaniya Das };
245206391eddSTaniya Das 
245306391eddSTaniya Das static struct clk_branch gcc_qupv3_wrap_0_s_ahb_clk = {
245406391eddSTaniya Das 	.halt_reg = 0x17008,
245506391eddSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
245606391eddSTaniya Das 	.hwcg_reg = 0x17008,
245706391eddSTaniya Das 	.hwcg_bit = 1,
245806391eddSTaniya Das 	.clkr = {
245906391eddSTaniya Das 		.enable_reg = 0x5200c,
246006391eddSTaniya Das 		.enable_mask = BIT(7),
246106391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
246206391eddSTaniya Das 			.name = "gcc_qupv3_wrap_0_s_ahb_clk",
246306391eddSTaniya Das 			.ops = &clk_branch2_ops,
246406391eddSTaniya Das 		},
246506391eddSTaniya Das 	},
246606391eddSTaniya Das };
246706391eddSTaniya Das 
246806391eddSTaniya Das static struct clk_branch gcc_qupv3_wrap_1_m_ahb_clk = {
246906391eddSTaniya Das 	.halt_reg = 0x1800c,
247006391eddSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
247106391eddSTaniya Das 	.clkr = {
247206391eddSTaniya Das 		.enable_reg = 0x5200c,
247306391eddSTaniya Das 		.enable_mask = BIT(20),
247406391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
247506391eddSTaniya Das 			.name = "gcc_qupv3_wrap_1_m_ahb_clk",
247606391eddSTaniya Das 			.ops = &clk_branch2_ops,
247706391eddSTaniya Das 		},
247806391eddSTaniya Das 	},
247906391eddSTaniya Das };
248006391eddSTaniya Das 
248106391eddSTaniya Das static struct clk_branch gcc_qupv3_wrap_1_s_ahb_clk = {
248206391eddSTaniya Das 	.halt_reg = 0x18010,
248306391eddSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
248406391eddSTaniya Das 	.hwcg_reg = 0x18010,
248506391eddSTaniya Das 	.hwcg_bit = 1,
248606391eddSTaniya Das 	.clkr = {
248706391eddSTaniya Das 		.enable_reg = 0x5200c,
248806391eddSTaniya Das 		.enable_mask = BIT(21),
248906391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
249006391eddSTaniya Das 			.name = "gcc_qupv3_wrap_1_s_ahb_clk",
249106391eddSTaniya Das 			.ops = &clk_branch2_ops,
249206391eddSTaniya Das 		},
249306391eddSTaniya Das 	},
249406391eddSTaniya Das };
249506391eddSTaniya Das 
2496ae66b1feSRichard Acayan static struct clk_branch gcc_sdcc1_ahb_clk = {
2497ae66b1feSRichard Acayan 	.halt_reg = 0x26008,
2498ae66b1feSRichard Acayan 	.halt_check = BRANCH_HALT,
2499ae66b1feSRichard Acayan 	.clkr = {
2500ae66b1feSRichard Acayan 		.enable_reg = 0x26008,
2501ae66b1feSRichard Acayan 		.enable_mask = BIT(0),
2502ae66b1feSRichard Acayan 		.hw.init = &(struct clk_init_data){
2503ae66b1feSRichard Acayan 			.name = "gcc_sdcc1_ahb_clk",
2504ae66b1feSRichard Acayan 			.ops = &clk_branch2_ops,
2505ae66b1feSRichard Acayan 		},
2506ae66b1feSRichard Acayan 	},
2507ae66b1feSRichard Acayan };
2508ae66b1feSRichard Acayan 
2509ae66b1feSRichard Acayan static struct clk_branch gcc_sdcc1_apps_clk = {
2510ae66b1feSRichard Acayan 	.halt_reg = 0x26004,
2511ae66b1feSRichard Acayan 	.halt_check = BRANCH_HALT,
2512ae66b1feSRichard Acayan 	.clkr = {
2513ae66b1feSRichard Acayan 		.enable_reg = 0x26004,
2514ae66b1feSRichard Acayan 		.enable_mask = BIT(0),
2515ae66b1feSRichard Acayan 		.hw.init = &(struct clk_init_data){
2516ae66b1feSRichard Acayan 			.name = "gcc_sdcc1_apps_clk",
2517ae66b1feSRichard Acayan 			.parent_hws = (const struct clk_hw*[]){
2518ae66b1feSRichard Acayan 				&gcc_sdcc1_apps_clk_src.clkr.hw,
2519ae66b1feSRichard Acayan 			},
2520ae66b1feSRichard Acayan 			.num_parents = 1,
2521ae66b1feSRichard Acayan 			.flags = CLK_SET_RATE_PARENT,
2522ae66b1feSRichard Acayan 			.ops = &clk_branch2_ops,
2523ae66b1feSRichard Acayan 		},
2524ae66b1feSRichard Acayan 	},
2525ae66b1feSRichard Acayan };
2526ae66b1feSRichard Acayan 
2527ae66b1feSRichard Acayan static struct clk_branch gcc_sdcc1_ice_core_clk = {
2528ae66b1feSRichard Acayan 	.halt_reg = 0x2600c,
2529ae66b1feSRichard Acayan 	.halt_check = BRANCH_HALT,
2530ae66b1feSRichard Acayan 	.clkr = {
2531ae66b1feSRichard Acayan 		.enable_reg = 0x2600c,
2532ae66b1feSRichard Acayan 		.enable_mask = BIT(0),
2533ae66b1feSRichard Acayan 		.hw.init = &(struct clk_init_data){
2534ae66b1feSRichard Acayan 			.name = "gcc_sdcc1_ice_core_clk",
2535ae66b1feSRichard Acayan 			.parent_hws = (const struct clk_hw*[]){
2536ae66b1feSRichard Acayan 				&gcc_sdcc1_ice_core_clk_src.clkr.hw,
2537ae66b1feSRichard Acayan 			},
2538ae66b1feSRichard Acayan 			.num_parents = 1,
2539ae66b1feSRichard Acayan 			.flags = CLK_SET_RATE_PARENT,
2540ae66b1feSRichard Acayan 			.ops = &clk_branch2_ops,
2541ae66b1feSRichard Acayan 		},
2542ae66b1feSRichard Acayan 	},
2543ae66b1feSRichard Acayan };
2544ae66b1feSRichard Acayan 
254506391eddSTaniya Das static struct clk_branch gcc_sdcc2_ahb_clk = {
254606391eddSTaniya Das 	.halt_reg = 0x14008,
254706391eddSTaniya Das 	.halt_check = BRANCH_HALT,
254806391eddSTaniya Das 	.clkr = {
254906391eddSTaniya Das 		.enable_reg = 0x14008,
255006391eddSTaniya Das 		.enable_mask = BIT(0),
255106391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
255206391eddSTaniya Das 			.name = "gcc_sdcc2_ahb_clk",
255306391eddSTaniya Das 			.ops = &clk_branch2_ops,
255406391eddSTaniya Das 		},
255506391eddSTaniya Das 	},
255606391eddSTaniya Das };
255706391eddSTaniya Das 
255806391eddSTaniya Das static struct clk_branch gcc_sdcc2_apps_clk = {
255906391eddSTaniya Das 	.halt_reg = 0x14004,
256006391eddSTaniya Das 	.halt_check = BRANCH_HALT,
256106391eddSTaniya Das 	.clkr = {
256206391eddSTaniya Das 		.enable_reg = 0x14004,
256306391eddSTaniya Das 		.enable_mask = BIT(0),
256406391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
256506391eddSTaniya Das 			.name = "gcc_sdcc2_apps_clk",
2566ea434d7aSDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
2567ea434d7aSDmitry Baryshkov 				&gcc_sdcc2_apps_clk_src.clkr.hw,
256806391eddSTaniya Das 			},
256906391eddSTaniya Das 			.num_parents = 1,
257006391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
257106391eddSTaniya Das 			.ops = &clk_branch2_ops,
257206391eddSTaniya Das 		},
257306391eddSTaniya Das 	},
257406391eddSTaniya Das };
257506391eddSTaniya Das 
257606391eddSTaniya Das static struct clk_branch gcc_sdcc4_ahb_clk = {
257706391eddSTaniya Das 	.halt_reg = 0x16008,
257806391eddSTaniya Das 	.halt_check = BRANCH_HALT,
257906391eddSTaniya Das 	.clkr = {
258006391eddSTaniya Das 		.enable_reg = 0x16008,
258106391eddSTaniya Das 		.enable_mask = BIT(0),
258206391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
258306391eddSTaniya Das 			.name = "gcc_sdcc4_ahb_clk",
258406391eddSTaniya Das 			.ops = &clk_branch2_ops,
258506391eddSTaniya Das 		},
258606391eddSTaniya Das 	},
258706391eddSTaniya Das };
258806391eddSTaniya Das 
258906391eddSTaniya Das static struct clk_branch gcc_sdcc4_apps_clk = {
259006391eddSTaniya Das 	.halt_reg = 0x16004,
259106391eddSTaniya Das 	.halt_check = BRANCH_HALT,
259206391eddSTaniya Das 	.clkr = {
259306391eddSTaniya Das 		.enable_reg = 0x16004,
259406391eddSTaniya Das 		.enable_mask = BIT(0),
259506391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
259606391eddSTaniya Das 			.name = "gcc_sdcc4_apps_clk",
2597ea434d7aSDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
2598ea434d7aSDmitry Baryshkov 				&gcc_sdcc4_apps_clk_src.clkr.hw,
259906391eddSTaniya Das 			},
260006391eddSTaniya Das 			.num_parents = 1,
260106391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
260206391eddSTaniya Das 			.ops = &clk_branch2_ops,
260306391eddSTaniya Das 		},
260406391eddSTaniya Das 	},
260506391eddSTaniya Das };
260606391eddSTaniya Das 
2607ae66b1feSRichard Acayan /*
2608ae66b1feSRichard Acayan  * The source clock frequencies are different for SDM670; define a child clock
2609ae66b1feSRichard Acayan  * pointing to the source clock that uses SDM670 frequencies.
2610ae66b1feSRichard Acayan  */
2611ae66b1feSRichard Acayan static struct clk_branch gcc_sdm670_sdcc4_apps_clk = {
2612ae66b1feSRichard Acayan 	.halt_reg = 0x16004,
2613ae66b1feSRichard Acayan 	.halt_check = BRANCH_HALT,
2614ae66b1feSRichard Acayan 	.clkr = {
2615ae66b1feSRichard Acayan 		.enable_reg = 0x16004,
2616ae66b1feSRichard Acayan 		.enable_mask = BIT(0),
2617ae66b1feSRichard Acayan 		.hw.init = &(struct clk_init_data){
2618ae66b1feSRichard Acayan 			.name = "gcc_sdcc4_apps_clk",
2619ae66b1feSRichard Acayan 			.parent_hws = (const struct clk_hw*[]){
2620ae66b1feSRichard Acayan 				&gcc_sdm670_sdcc4_apps_clk_src.clkr.hw,
2621ae66b1feSRichard Acayan 			},
2622ae66b1feSRichard Acayan 			.num_parents = 1,
2623ae66b1feSRichard Acayan 			.flags = CLK_SET_RATE_PARENT,
2624ae66b1feSRichard Acayan 			.ops = &clk_branch2_ops,
2625ae66b1feSRichard Acayan 		},
2626ae66b1feSRichard Acayan 	},
2627ae66b1feSRichard Acayan };
2628ae66b1feSRichard Acayan 
262906391eddSTaniya Das static struct clk_branch gcc_sys_noc_cpuss_ahb_clk = {
263006391eddSTaniya Das 	.halt_reg = 0x414c,
263106391eddSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
263206391eddSTaniya Das 	.clkr = {
263306391eddSTaniya Das 		.enable_reg = 0x52004,
263406391eddSTaniya Das 		.enable_mask = BIT(0),
263506391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
263606391eddSTaniya Das 			.name = "gcc_sys_noc_cpuss_ahb_clk",
2637ea434d7aSDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
2638ea434d7aSDmitry Baryshkov 				&gcc_cpuss_ahb_clk_src.clkr.hw,
263906391eddSTaniya Das 			},
264006391eddSTaniya Das 			.num_parents = 1,
264106391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT | CLK_IS_CRITICAL,
264206391eddSTaniya Das 			.ops = &clk_branch2_ops,
264306391eddSTaniya Das 		},
264406391eddSTaniya Das 	},
264506391eddSTaniya Das };
264606391eddSTaniya Das 
264706391eddSTaniya Das static struct clk_branch gcc_tsif_ahb_clk = {
264806391eddSTaniya Das 	.halt_reg = 0x36004,
264906391eddSTaniya Das 	.halt_check = BRANCH_HALT,
265006391eddSTaniya Das 	.clkr = {
265106391eddSTaniya Das 		.enable_reg = 0x36004,
265206391eddSTaniya Das 		.enable_mask = BIT(0),
265306391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
265406391eddSTaniya Das 			.name = "gcc_tsif_ahb_clk",
265506391eddSTaniya Das 			.ops = &clk_branch2_ops,
265606391eddSTaniya Das 		},
265706391eddSTaniya Das 	},
265806391eddSTaniya Das };
265906391eddSTaniya Das 
266006391eddSTaniya Das static struct clk_branch gcc_tsif_inactivity_timers_clk = {
266106391eddSTaniya Das 	.halt_reg = 0x3600c,
266206391eddSTaniya Das 	.halt_check = BRANCH_HALT,
266306391eddSTaniya Das 	.clkr = {
266406391eddSTaniya Das 		.enable_reg = 0x3600c,
266506391eddSTaniya Das 		.enable_mask = BIT(0),
266606391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
266706391eddSTaniya Das 			.name = "gcc_tsif_inactivity_timers_clk",
266806391eddSTaniya Das 			.ops = &clk_branch2_ops,
266906391eddSTaniya Das 		},
267006391eddSTaniya Das 	},
267106391eddSTaniya Das };
267206391eddSTaniya Das 
267306391eddSTaniya Das static struct clk_branch gcc_tsif_ref_clk = {
267406391eddSTaniya Das 	.halt_reg = 0x36008,
267506391eddSTaniya Das 	.halt_check = BRANCH_HALT,
267606391eddSTaniya Das 	.clkr = {
267706391eddSTaniya Das 		.enable_reg = 0x36008,
267806391eddSTaniya Das 		.enable_mask = BIT(0),
267906391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
268006391eddSTaniya Das 			.name = "gcc_tsif_ref_clk",
2681ea434d7aSDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
2682ea434d7aSDmitry Baryshkov 				&gcc_tsif_ref_clk_src.clkr.hw,
268306391eddSTaniya Das 			},
268406391eddSTaniya Das 			.num_parents = 1,
268506391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
268606391eddSTaniya Das 			.ops = &clk_branch2_ops,
268706391eddSTaniya Das 		},
268806391eddSTaniya Das 	},
268906391eddSTaniya Das };
269006391eddSTaniya Das 
269106391eddSTaniya Das static struct clk_branch gcc_ufs_card_ahb_clk = {
269206391eddSTaniya Das 	.halt_reg = 0x75010,
269306391eddSTaniya Das 	.halt_check = BRANCH_HALT,
269406391eddSTaniya Das 	.hwcg_reg = 0x75010,
269506391eddSTaniya Das 	.hwcg_bit = 1,
269606391eddSTaniya Das 	.clkr = {
269706391eddSTaniya Das 		.enable_reg = 0x75010,
269806391eddSTaniya Das 		.enable_mask = BIT(0),
269906391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
270006391eddSTaniya Das 			.name = "gcc_ufs_card_ahb_clk",
270106391eddSTaniya Das 			.ops = &clk_branch2_ops,
270206391eddSTaniya Das 		},
270306391eddSTaniya Das 	},
270406391eddSTaniya Das };
270506391eddSTaniya Das 
270606391eddSTaniya Das static struct clk_branch gcc_ufs_card_axi_clk = {
270706391eddSTaniya Das 	.halt_reg = 0x7500c,
270806391eddSTaniya Das 	.halt_check = BRANCH_HALT,
270906391eddSTaniya Das 	.hwcg_reg = 0x7500c,
271006391eddSTaniya Das 	.hwcg_bit = 1,
271106391eddSTaniya Das 	.clkr = {
271206391eddSTaniya Das 		.enable_reg = 0x7500c,
271306391eddSTaniya Das 		.enable_mask = BIT(0),
271406391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
271506391eddSTaniya Das 			.name = "gcc_ufs_card_axi_clk",
2716ea434d7aSDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
2717ea434d7aSDmitry Baryshkov 				&gcc_ufs_card_axi_clk_src.clkr.hw,
271806391eddSTaniya Das 			},
271906391eddSTaniya Das 			.num_parents = 1,
272006391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
272106391eddSTaniya Das 			.ops = &clk_branch2_ops,
272206391eddSTaniya Das 		},
272306391eddSTaniya Das 	},
272406391eddSTaniya Das };
272506391eddSTaniya Das 
272606391eddSTaniya Das static struct clk_branch gcc_ufs_card_clkref_clk = {
272706391eddSTaniya Das 	.halt_reg = 0x8c004,
272806391eddSTaniya Das 	.halt_check = BRANCH_HALT,
272906391eddSTaniya Das 	.clkr = {
273006391eddSTaniya Das 		.enable_reg = 0x8c004,
273106391eddSTaniya Das 		.enable_mask = BIT(0),
273206391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
273306391eddSTaniya Das 			.name = "gcc_ufs_card_clkref_clk",
273406391eddSTaniya Das 			.ops = &clk_branch2_ops,
273506391eddSTaniya Das 		},
273606391eddSTaniya Das 	},
273706391eddSTaniya Das };
273806391eddSTaniya Das 
273906391eddSTaniya Das static struct clk_branch gcc_ufs_card_ice_core_clk = {
274006391eddSTaniya Das 	.halt_reg = 0x75058,
274106391eddSTaniya Das 	.halt_check = BRANCH_HALT,
274206391eddSTaniya Das 	.hwcg_reg = 0x75058,
274306391eddSTaniya Das 	.hwcg_bit = 1,
274406391eddSTaniya Das 	.clkr = {
274506391eddSTaniya Das 		.enable_reg = 0x75058,
274606391eddSTaniya Das 		.enable_mask = BIT(0),
274706391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
274806391eddSTaniya Das 			.name = "gcc_ufs_card_ice_core_clk",
2749ea434d7aSDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
2750ea434d7aSDmitry Baryshkov 				&gcc_ufs_card_ice_core_clk_src.clkr.hw,
275106391eddSTaniya Das 			},
275206391eddSTaniya Das 			.num_parents = 1,
275306391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
275406391eddSTaniya Das 			.ops = &clk_branch2_ops,
275506391eddSTaniya Das 		},
275606391eddSTaniya Das 	},
275706391eddSTaniya Das };
275806391eddSTaniya Das 
275906391eddSTaniya Das static struct clk_branch gcc_ufs_card_phy_aux_clk = {
276006391eddSTaniya Das 	.halt_reg = 0x7508c,
276106391eddSTaniya Das 	.halt_check = BRANCH_HALT,
276206391eddSTaniya Das 	.hwcg_reg = 0x7508c,
276306391eddSTaniya Das 	.hwcg_bit = 1,
276406391eddSTaniya Das 	.clkr = {
276506391eddSTaniya Das 		.enable_reg = 0x7508c,
276606391eddSTaniya Das 		.enable_mask = BIT(0),
276706391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
276806391eddSTaniya Das 			.name = "gcc_ufs_card_phy_aux_clk",
2769ea434d7aSDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
2770ea434d7aSDmitry Baryshkov 				&gcc_ufs_card_phy_aux_clk_src.clkr.hw,
277106391eddSTaniya Das 			},
277206391eddSTaniya Das 			.num_parents = 1,
277306391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
277406391eddSTaniya Das 			.ops = &clk_branch2_ops,
277506391eddSTaniya Das 		},
277606391eddSTaniya Das 	},
277706391eddSTaniya Das };
277806391eddSTaniya Das 
277906391eddSTaniya Das static struct clk_branch gcc_ufs_card_rx_symbol_0_clk = {
278006391eddSTaniya Das 	.halt_check = BRANCH_HALT_SKIP,
278106391eddSTaniya Das 	.clkr = {
278206391eddSTaniya Das 		.enable_reg = 0x75018,
278306391eddSTaniya Das 		.enable_mask = BIT(0),
278406391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
278506391eddSTaniya Das 			.name = "gcc_ufs_card_rx_symbol_0_clk",
278606391eddSTaniya Das 			.ops = &clk_branch2_ops,
278706391eddSTaniya Das 		},
278806391eddSTaniya Das 	},
278906391eddSTaniya Das };
279006391eddSTaniya Das 
279106391eddSTaniya Das static struct clk_branch gcc_ufs_card_rx_symbol_1_clk = {
279206391eddSTaniya Das 	.halt_check = BRANCH_HALT_SKIP,
279306391eddSTaniya Das 	.clkr = {
279406391eddSTaniya Das 		.enable_reg = 0x750a8,
279506391eddSTaniya Das 		.enable_mask = BIT(0),
279606391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
279706391eddSTaniya Das 			.name = "gcc_ufs_card_rx_symbol_1_clk",
279806391eddSTaniya Das 			.ops = &clk_branch2_ops,
279906391eddSTaniya Das 		},
280006391eddSTaniya Das 	},
280106391eddSTaniya Das };
280206391eddSTaniya Das 
280306391eddSTaniya Das static struct clk_branch gcc_ufs_card_tx_symbol_0_clk = {
280406391eddSTaniya Das 	.halt_check = BRANCH_HALT_SKIP,
280506391eddSTaniya Das 	.clkr = {
280606391eddSTaniya Das 		.enable_reg = 0x75014,
280706391eddSTaniya Das 		.enable_mask = BIT(0),
280806391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
280906391eddSTaniya Das 			.name = "gcc_ufs_card_tx_symbol_0_clk",
281006391eddSTaniya Das 			.ops = &clk_branch2_ops,
281106391eddSTaniya Das 		},
281206391eddSTaniya Das 	},
281306391eddSTaniya Das };
281406391eddSTaniya Das 
281506391eddSTaniya Das static struct clk_branch gcc_ufs_card_unipro_core_clk = {
281606391eddSTaniya Das 	.halt_reg = 0x75054,
281706391eddSTaniya Das 	.halt_check = BRANCH_HALT,
281806391eddSTaniya Das 	.hwcg_reg = 0x75054,
281906391eddSTaniya Das 	.hwcg_bit = 1,
282006391eddSTaniya Das 	.clkr = {
282106391eddSTaniya Das 		.enable_reg = 0x75054,
282206391eddSTaniya Das 		.enable_mask = BIT(0),
282306391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
282406391eddSTaniya Das 			.name = "gcc_ufs_card_unipro_core_clk",
2825ea434d7aSDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
2826ea434d7aSDmitry Baryshkov 				&gcc_ufs_card_unipro_core_clk_src.clkr.hw,
282706391eddSTaniya Das 			},
282806391eddSTaniya Das 			.num_parents = 1,
282906391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
283006391eddSTaniya Das 			.ops = &clk_branch2_ops,
283106391eddSTaniya Das 		},
283206391eddSTaniya Das 	},
283306391eddSTaniya Das };
283406391eddSTaniya Das 
283506391eddSTaniya Das static struct clk_branch gcc_ufs_mem_clkref_clk = {
283606391eddSTaniya Das 	.halt_reg = 0x8c000,
283706391eddSTaniya Das 	.halt_check = BRANCH_HALT,
283806391eddSTaniya Das 	.clkr = {
283906391eddSTaniya Das 		.enable_reg = 0x8c000,
284006391eddSTaniya Das 		.enable_mask = BIT(0),
284106391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
284206391eddSTaniya Das 			.name = "gcc_ufs_mem_clkref_clk",
284306391eddSTaniya Das 			.ops = &clk_branch2_ops,
284406391eddSTaniya Das 		},
284506391eddSTaniya Das 	},
284606391eddSTaniya Das };
284706391eddSTaniya Das 
284806391eddSTaniya Das static struct clk_branch gcc_ufs_phy_ahb_clk = {
284906391eddSTaniya Das 	.halt_reg = 0x77010,
285006391eddSTaniya Das 	.halt_check = BRANCH_HALT,
285106391eddSTaniya Das 	.hwcg_reg = 0x77010,
285206391eddSTaniya Das 	.hwcg_bit = 1,
285306391eddSTaniya Das 	.clkr = {
285406391eddSTaniya Das 		.enable_reg = 0x77010,
285506391eddSTaniya Das 		.enable_mask = BIT(0),
285606391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
285706391eddSTaniya Das 			.name = "gcc_ufs_phy_ahb_clk",
285806391eddSTaniya Das 			.ops = &clk_branch2_ops,
285906391eddSTaniya Das 		},
286006391eddSTaniya Das 	},
286106391eddSTaniya Das };
286206391eddSTaniya Das 
286306391eddSTaniya Das static struct clk_branch gcc_ufs_phy_axi_clk = {
286406391eddSTaniya Das 	.halt_reg = 0x7700c,
286506391eddSTaniya Das 	.halt_check = BRANCH_HALT,
286606391eddSTaniya Das 	.hwcg_reg = 0x7700c,
286706391eddSTaniya Das 	.hwcg_bit = 1,
286806391eddSTaniya Das 	.clkr = {
286906391eddSTaniya Das 		.enable_reg = 0x7700c,
287006391eddSTaniya Das 		.enable_mask = BIT(0),
287106391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
287206391eddSTaniya Das 			.name = "gcc_ufs_phy_axi_clk",
2873ea434d7aSDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
2874ea434d7aSDmitry Baryshkov 				&gcc_ufs_phy_axi_clk_src.clkr.hw,
287506391eddSTaniya Das 			},
287606391eddSTaniya Das 			.num_parents = 1,
287706391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
287806391eddSTaniya Das 			.ops = &clk_branch2_ops,
287906391eddSTaniya Das 		},
288006391eddSTaniya Das 	},
288106391eddSTaniya Das };
288206391eddSTaniya Das 
288306391eddSTaniya Das static struct clk_branch gcc_ufs_phy_ice_core_clk = {
288406391eddSTaniya Das 	.halt_reg = 0x77058,
288506391eddSTaniya Das 	.halt_check = BRANCH_HALT,
288606391eddSTaniya Das 	.hwcg_reg = 0x77058,
288706391eddSTaniya Das 	.hwcg_bit = 1,
288806391eddSTaniya Das 	.clkr = {
288906391eddSTaniya Das 		.enable_reg = 0x77058,
289006391eddSTaniya Das 		.enable_mask = BIT(0),
289106391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
289206391eddSTaniya Das 			.name = "gcc_ufs_phy_ice_core_clk",
2893ea434d7aSDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
2894ea434d7aSDmitry Baryshkov 				&gcc_ufs_phy_ice_core_clk_src.clkr.hw,
289506391eddSTaniya Das 			},
289606391eddSTaniya Das 			.num_parents = 1,
289706391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
289806391eddSTaniya Das 			.ops = &clk_branch2_ops,
289906391eddSTaniya Das 		},
290006391eddSTaniya Das 	},
290106391eddSTaniya Das };
290206391eddSTaniya Das 
290306391eddSTaniya Das static struct clk_branch gcc_ufs_phy_phy_aux_clk = {
290406391eddSTaniya Das 	.halt_reg = 0x7708c,
290506391eddSTaniya Das 	.halt_check = BRANCH_HALT,
290606391eddSTaniya Das 	.hwcg_reg = 0x7708c,
290706391eddSTaniya Das 	.hwcg_bit = 1,
290806391eddSTaniya Das 	.clkr = {
290906391eddSTaniya Das 		.enable_reg = 0x7708c,
291006391eddSTaniya Das 		.enable_mask = BIT(0),
291106391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
291206391eddSTaniya Das 			.name = "gcc_ufs_phy_phy_aux_clk",
2913ea434d7aSDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
2914ea434d7aSDmitry Baryshkov 				&gcc_ufs_phy_phy_aux_clk_src.clkr.hw,
291506391eddSTaniya Das 			},
291606391eddSTaniya Das 			.num_parents = 1,
291706391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
291806391eddSTaniya Das 			.ops = &clk_branch2_ops,
291906391eddSTaniya Das 		},
292006391eddSTaniya Das 	},
292106391eddSTaniya Das };
292206391eddSTaniya Das 
292306391eddSTaniya Das static struct clk_branch gcc_ufs_phy_rx_symbol_0_clk = {
292406391eddSTaniya Das 	.halt_check = BRANCH_HALT_SKIP,
292506391eddSTaniya Das 	.clkr = {
292606391eddSTaniya Das 		.enable_reg = 0x77018,
292706391eddSTaniya Das 		.enable_mask = BIT(0),
292806391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
292906391eddSTaniya Das 			.name = "gcc_ufs_phy_rx_symbol_0_clk",
293006391eddSTaniya Das 			.ops = &clk_branch2_ops,
293106391eddSTaniya Das 		},
293206391eddSTaniya Das 	},
293306391eddSTaniya Das };
293406391eddSTaniya Das 
293506391eddSTaniya Das static struct clk_branch gcc_ufs_phy_rx_symbol_1_clk = {
293606391eddSTaniya Das 	.halt_check = BRANCH_HALT_SKIP,
293706391eddSTaniya Das 	.clkr = {
293806391eddSTaniya Das 		.enable_reg = 0x770a8,
293906391eddSTaniya Das 		.enable_mask = BIT(0),
294006391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
294106391eddSTaniya Das 			.name = "gcc_ufs_phy_rx_symbol_1_clk",
294206391eddSTaniya Das 			.ops = &clk_branch2_ops,
294306391eddSTaniya Das 		},
294406391eddSTaniya Das 	},
294506391eddSTaniya Das };
294606391eddSTaniya Das 
294706391eddSTaniya Das static struct clk_branch gcc_ufs_phy_tx_symbol_0_clk = {
294806391eddSTaniya Das 	.halt_check = BRANCH_HALT_SKIP,
294906391eddSTaniya Das 	.clkr = {
295006391eddSTaniya Das 		.enable_reg = 0x77014,
295106391eddSTaniya Das 		.enable_mask = BIT(0),
295206391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
295306391eddSTaniya Das 			.name = "gcc_ufs_phy_tx_symbol_0_clk",
295406391eddSTaniya Das 			.ops = &clk_branch2_ops,
295506391eddSTaniya Das 		},
295606391eddSTaniya Das 	},
295706391eddSTaniya Das };
295806391eddSTaniya Das 
295906391eddSTaniya Das static struct clk_branch gcc_ufs_phy_unipro_core_clk = {
296006391eddSTaniya Das 	.halt_reg = 0x77054,
296106391eddSTaniya Das 	.halt_check = BRANCH_HALT,
296206391eddSTaniya Das 	.hwcg_reg = 0x77054,
296306391eddSTaniya Das 	.hwcg_bit = 1,
296406391eddSTaniya Das 	.clkr = {
296506391eddSTaniya Das 		.enable_reg = 0x77054,
296606391eddSTaniya Das 		.enable_mask = BIT(0),
296706391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
296806391eddSTaniya Das 			.name = "gcc_ufs_phy_unipro_core_clk",
2969ea434d7aSDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
2970ea434d7aSDmitry Baryshkov 				&gcc_ufs_phy_unipro_core_clk_src.clkr.hw,
297106391eddSTaniya Das 			},
297206391eddSTaniya Das 			.num_parents = 1,
297306391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
297406391eddSTaniya Das 			.ops = &clk_branch2_ops,
297506391eddSTaniya Das 		},
297606391eddSTaniya Das 	},
297706391eddSTaniya Das };
297806391eddSTaniya Das 
297906391eddSTaniya Das static struct clk_branch gcc_usb30_prim_master_clk = {
298006391eddSTaniya Das 	.halt_reg = 0xf00c,
298106391eddSTaniya Das 	.halt_check = BRANCH_HALT,
298206391eddSTaniya Das 	.clkr = {
298306391eddSTaniya Das 		.enable_reg = 0xf00c,
298406391eddSTaniya Das 		.enable_mask = BIT(0),
298506391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
298606391eddSTaniya Das 			.name = "gcc_usb30_prim_master_clk",
2987ea434d7aSDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
2988ea434d7aSDmitry Baryshkov 				&gcc_usb30_prim_master_clk_src.clkr.hw,
298906391eddSTaniya Das 			},
299006391eddSTaniya Das 			.num_parents = 1,
299106391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
299206391eddSTaniya Das 			.ops = &clk_branch2_ops,
299306391eddSTaniya Das 		},
299406391eddSTaniya Das 	},
299506391eddSTaniya Das };
299606391eddSTaniya Das 
299706391eddSTaniya Das static struct clk_branch gcc_usb30_prim_mock_utmi_clk = {
299806391eddSTaniya Das 	.halt_reg = 0xf014,
299906391eddSTaniya Das 	.halt_check = BRANCH_HALT,
300006391eddSTaniya Das 	.clkr = {
300106391eddSTaniya Das 		.enable_reg = 0xf014,
300206391eddSTaniya Das 		.enable_mask = BIT(0),
300306391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
300406391eddSTaniya Das 			.name = "gcc_usb30_prim_mock_utmi_clk",
3005ea434d7aSDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
3006ea434d7aSDmitry Baryshkov 				&gcc_usb30_prim_mock_utmi_clk_src.clkr.hw,
300706391eddSTaniya Das 			},
300806391eddSTaniya Das 			.num_parents = 1,
300906391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
301006391eddSTaniya Das 			.ops = &clk_branch2_ops,
301106391eddSTaniya Das 		},
301206391eddSTaniya Das 	},
301306391eddSTaniya Das };
301406391eddSTaniya Das 
301506391eddSTaniya Das static struct clk_branch gcc_usb30_prim_sleep_clk = {
301606391eddSTaniya Das 	.halt_reg = 0xf010,
301706391eddSTaniya Das 	.halt_check = BRANCH_HALT,
301806391eddSTaniya Das 	.clkr = {
301906391eddSTaniya Das 		.enable_reg = 0xf010,
302006391eddSTaniya Das 		.enable_mask = BIT(0),
302106391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
302206391eddSTaniya Das 			.name = "gcc_usb30_prim_sleep_clk",
302306391eddSTaniya Das 			.ops = &clk_branch2_ops,
302406391eddSTaniya Das 		},
302506391eddSTaniya Das 	},
302606391eddSTaniya Das };
302706391eddSTaniya Das 
302806391eddSTaniya Das static struct clk_branch gcc_usb30_sec_master_clk = {
302906391eddSTaniya Das 	.halt_reg = 0x1000c,
303006391eddSTaniya Das 	.halt_check = BRANCH_HALT,
303106391eddSTaniya Das 	.clkr = {
303206391eddSTaniya Das 		.enable_reg = 0x1000c,
303306391eddSTaniya Das 		.enable_mask = BIT(0),
303406391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
303506391eddSTaniya Das 			.name = "gcc_usb30_sec_master_clk",
3036ea434d7aSDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
3037ea434d7aSDmitry Baryshkov 				&gcc_usb30_sec_master_clk_src.clkr.hw,
303806391eddSTaniya Das 			},
303906391eddSTaniya Das 			.num_parents = 1,
304006391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
304106391eddSTaniya Das 			.ops = &clk_branch2_ops,
304206391eddSTaniya Das 		},
304306391eddSTaniya Das 	},
304406391eddSTaniya Das };
304506391eddSTaniya Das 
304606391eddSTaniya Das static struct clk_branch gcc_usb30_sec_mock_utmi_clk = {
304706391eddSTaniya Das 	.halt_reg = 0x10014,
304806391eddSTaniya Das 	.halt_check = BRANCH_HALT,
304906391eddSTaniya Das 	.clkr = {
305006391eddSTaniya Das 		.enable_reg = 0x10014,
305106391eddSTaniya Das 		.enable_mask = BIT(0),
305206391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
305306391eddSTaniya Das 			.name = "gcc_usb30_sec_mock_utmi_clk",
3054ea434d7aSDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
3055ea434d7aSDmitry Baryshkov 				&gcc_usb30_sec_mock_utmi_clk_src.clkr.hw,
305606391eddSTaniya Das 			},
305706391eddSTaniya Das 			.num_parents = 1,
305806391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
305906391eddSTaniya Das 			.ops = &clk_branch2_ops,
306006391eddSTaniya Das 		},
306106391eddSTaniya Das 	},
306206391eddSTaniya Das };
306306391eddSTaniya Das 
306406391eddSTaniya Das static struct clk_branch gcc_usb30_sec_sleep_clk = {
306506391eddSTaniya Das 	.halt_reg = 0x10010,
306606391eddSTaniya Das 	.halt_check = BRANCH_HALT,
306706391eddSTaniya Das 	.clkr = {
306806391eddSTaniya Das 		.enable_reg = 0x10010,
306906391eddSTaniya Das 		.enable_mask = BIT(0),
307006391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
307106391eddSTaniya Das 			.name = "gcc_usb30_sec_sleep_clk",
307206391eddSTaniya Das 			.ops = &clk_branch2_ops,
307306391eddSTaniya Das 		},
307406391eddSTaniya Das 	},
307506391eddSTaniya Das };
307606391eddSTaniya Das 
307706391eddSTaniya Das static struct clk_branch gcc_usb3_prim_clkref_clk = {
307806391eddSTaniya Das 	.halt_reg = 0x8c008,
307906391eddSTaniya Das 	.halt_check = BRANCH_HALT,
308006391eddSTaniya Das 	.clkr = {
308106391eddSTaniya Das 		.enable_reg = 0x8c008,
308206391eddSTaniya Das 		.enable_mask = BIT(0),
308306391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
308406391eddSTaniya Das 			.name = "gcc_usb3_prim_clkref_clk",
308506391eddSTaniya Das 			.ops = &clk_branch2_ops,
308606391eddSTaniya Das 		},
308706391eddSTaniya Das 	},
308806391eddSTaniya Das };
308906391eddSTaniya Das 
309006391eddSTaniya Das static struct clk_branch gcc_usb3_prim_phy_aux_clk = {
309106391eddSTaniya Das 	.halt_reg = 0xf04c,
309206391eddSTaniya Das 	.halt_check = BRANCH_HALT,
309306391eddSTaniya Das 	.clkr = {
309406391eddSTaniya Das 		.enable_reg = 0xf04c,
309506391eddSTaniya Das 		.enable_mask = BIT(0),
309606391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
309706391eddSTaniya Das 			.name = "gcc_usb3_prim_phy_aux_clk",
3098ea434d7aSDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
3099ea434d7aSDmitry Baryshkov 				&gcc_usb3_prim_phy_aux_clk_src.clkr.hw,
310006391eddSTaniya Das 			},
310106391eddSTaniya Das 			.num_parents = 1,
310206391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
310306391eddSTaniya Das 			.ops = &clk_branch2_ops,
310406391eddSTaniya Das 		},
310506391eddSTaniya Das 	},
310606391eddSTaniya Das };
310706391eddSTaniya Das 
310806391eddSTaniya Das static struct clk_branch gcc_usb3_prim_phy_com_aux_clk = {
310906391eddSTaniya Das 	.halt_reg = 0xf050,
311006391eddSTaniya Das 	.halt_check = BRANCH_HALT,
311106391eddSTaniya Das 	.clkr = {
311206391eddSTaniya Das 		.enable_reg = 0xf050,
311306391eddSTaniya Das 		.enable_mask = BIT(0),
311406391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
311506391eddSTaniya Das 			.name = "gcc_usb3_prim_phy_com_aux_clk",
3116ea434d7aSDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
3117ea434d7aSDmitry Baryshkov 				&gcc_usb3_prim_phy_aux_clk_src.clkr.hw,
311806391eddSTaniya Das 			},
311906391eddSTaniya Das 			.num_parents = 1,
312006391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
312106391eddSTaniya Das 			.ops = &clk_branch2_ops,
312206391eddSTaniya Das 		},
312306391eddSTaniya Das 	},
312406391eddSTaniya Das };
312506391eddSTaniya Das 
312606391eddSTaniya Das static struct clk_branch gcc_usb3_prim_phy_pipe_clk = {
312706391eddSTaniya Das 	.halt_check = BRANCH_HALT_SKIP,
312806391eddSTaniya Das 	.clkr = {
312906391eddSTaniya Das 		.enable_reg = 0xf054,
313006391eddSTaniya Das 		.enable_mask = BIT(0),
313106391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
313206391eddSTaniya Das 			.name = "gcc_usb3_prim_phy_pipe_clk",
313306391eddSTaniya Das 			.ops = &clk_branch2_ops,
313406391eddSTaniya Das 		},
313506391eddSTaniya Das 	},
313606391eddSTaniya Das };
313706391eddSTaniya Das 
313806391eddSTaniya Das static struct clk_branch gcc_usb3_sec_clkref_clk = {
313906391eddSTaniya Das 	.halt_reg = 0x8c028,
314006391eddSTaniya Das 	.halt_check = BRANCH_HALT,
314106391eddSTaniya Das 	.clkr = {
314206391eddSTaniya Das 		.enable_reg = 0x8c028,
314306391eddSTaniya Das 		.enable_mask = BIT(0),
314406391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
314506391eddSTaniya Das 			.name = "gcc_usb3_sec_clkref_clk",
314606391eddSTaniya Das 			.ops = &clk_branch2_ops,
314706391eddSTaniya Das 		},
314806391eddSTaniya Das 	},
314906391eddSTaniya Das };
315006391eddSTaniya Das 
315106391eddSTaniya Das static struct clk_branch gcc_usb3_sec_phy_aux_clk = {
315206391eddSTaniya Das 	.halt_reg = 0x1004c,
315306391eddSTaniya Das 	.halt_check = BRANCH_HALT,
315406391eddSTaniya Das 	.clkr = {
315506391eddSTaniya Das 		.enable_reg = 0x1004c,
315606391eddSTaniya Das 		.enable_mask = BIT(0),
315706391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
315806391eddSTaniya Das 			.name = "gcc_usb3_sec_phy_aux_clk",
3159ea434d7aSDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
3160ea434d7aSDmitry Baryshkov 				&gcc_usb3_sec_phy_aux_clk_src.clkr.hw,
316106391eddSTaniya Das 			},
316206391eddSTaniya Das 			.num_parents = 1,
316306391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
316406391eddSTaniya Das 			.ops = &clk_branch2_ops,
316506391eddSTaniya Das 		},
316606391eddSTaniya Das 	},
316706391eddSTaniya Das };
316806391eddSTaniya Das 
316906391eddSTaniya Das static struct clk_branch gcc_usb3_sec_phy_com_aux_clk = {
317006391eddSTaniya Das 	.halt_reg = 0x10050,
317106391eddSTaniya Das 	.halt_check = BRANCH_HALT,
317206391eddSTaniya Das 	.clkr = {
317306391eddSTaniya Das 		.enable_reg = 0x10050,
317406391eddSTaniya Das 		.enable_mask = BIT(0),
317506391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
317606391eddSTaniya Das 			.name = "gcc_usb3_sec_phy_com_aux_clk",
3177ea434d7aSDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
3178ea434d7aSDmitry Baryshkov 				&gcc_usb3_sec_phy_aux_clk_src.clkr.hw,
317906391eddSTaniya Das 			},
318006391eddSTaniya Das 			.num_parents = 1,
318106391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
318206391eddSTaniya Das 			.ops = &clk_branch2_ops,
318306391eddSTaniya Das 		},
318406391eddSTaniya Das 	},
318506391eddSTaniya Das };
318606391eddSTaniya Das 
318706391eddSTaniya Das static struct clk_branch gcc_usb3_sec_phy_pipe_clk = {
318806391eddSTaniya Das 	.halt_check = BRANCH_HALT_SKIP,
318906391eddSTaniya Das 	.clkr = {
319006391eddSTaniya Das 		.enable_reg = 0x10054,
319106391eddSTaniya Das 		.enable_mask = BIT(0),
319206391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
319306391eddSTaniya Das 			.name = "gcc_usb3_sec_phy_pipe_clk",
319406391eddSTaniya Das 			.ops = &clk_branch2_ops,
319506391eddSTaniya Das 		},
319606391eddSTaniya Das 	},
319706391eddSTaniya Das };
319806391eddSTaniya Das 
319906391eddSTaniya Das static struct clk_branch gcc_usb_phy_cfg_ahb2phy_clk = {
320006391eddSTaniya Das 	.halt_reg = 0x6a004,
320106391eddSTaniya Das 	.halt_check = BRANCH_HALT,
320206391eddSTaniya Das 	.hwcg_reg = 0x6a004,
320306391eddSTaniya Das 	.hwcg_bit = 1,
320406391eddSTaniya Das 	.clkr = {
320506391eddSTaniya Das 		.enable_reg = 0x6a004,
320606391eddSTaniya Das 		.enable_mask = BIT(0),
320706391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
320806391eddSTaniya Das 			.name = "gcc_usb_phy_cfg_ahb2phy_clk",
320906391eddSTaniya Das 			.ops = &clk_branch2_ops,
321006391eddSTaniya Das 		},
321106391eddSTaniya Das 	},
321206391eddSTaniya Das };
321306391eddSTaniya Das 
321406391eddSTaniya Das static struct clk_branch gcc_vdda_vs_clk = {
321506391eddSTaniya Das 	.halt_reg = 0x7a00c,
321606391eddSTaniya Das 	.halt_check = BRANCH_HALT,
321706391eddSTaniya Das 	.clkr = {
321806391eddSTaniya Das 		.enable_reg = 0x7a00c,
321906391eddSTaniya Das 		.enable_mask = BIT(0),
322006391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
322106391eddSTaniya Das 			.name = "gcc_vdda_vs_clk",
3222ea434d7aSDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
3223ea434d7aSDmitry Baryshkov 				&gcc_vsensor_clk_src.clkr.hw,
322406391eddSTaniya Das 			},
322506391eddSTaniya Das 			.num_parents = 1,
322606391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
322706391eddSTaniya Das 			.ops = &clk_branch2_ops,
322806391eddSTaniya Das 		},
322906391eddSTaniya Das 	},
323006391eddSTaniya Das };
323106391eddSTaniya Das 
323206391eddSTaniya Das static struct clk_branch gcc_vddcx_vs_clk = {
323306391eddSTaniya Das 	.halt_reg = 0x7a004,
323406391eddSTaniya Das 	.halt_check = BRANCH_HALT,
323506391eddSTaniya Das 	.clkr = {
323606391eddSTaniya Das 		.enable_reg = 0x7a004,
323706391eddSTaniya Das 		.enable_mask = BIT(0),
323806391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
323906391eddSTaniya Das 			.name = "gcc_vddcx_vs_clk",
3240ea434d7aSDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
3241ea434d7aSDmitry Baryshkov 				&gcc_vsensor_clk_src.clkr.hw,
324206391eddSTaniya Das 			},
324306391eddSTaniya Das 			.num_parents = 1,
324406391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
324506391eddSTaniya Das 			.ops = &clk_branch2_ops,
324606391eddSTaniya Das 		},
324706391eddSTaniya Das 	},
324806391eddSTaniya Das };
324906391eddSTaniya Das 
325006391eddSTaniya Das static struct clk_branch gcc_vddmx_vs_clk = {
325106391eddSTaniya Das 	.halt_reg = 0x7a008,
325206391eddSTaniya Das 	.halt_check = BRANCH_HALT,
325306391eddSTaniya Das 	.clkr = {
325406391eddSTaniya Das 		.enable_reg = 0x7a008,
325506391eddSTaniya Das 		.enable_mask = BIT(0),
325606391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
325706391eddSTaniya Das 			.name = "gcc_vddmx_vs_clk",
3258ea434d7aSDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
3259ea434d7aSDmitry Baryshkov 				&gcc_vsensor_clk_src.clkr.hw,
326006391eddSTaniya Das 			},
326106391eddSTaniya Das 			.num_parents = 1,
326206391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
326306391eddSTaniya Das 			.ops = &clk_branch2_ops,
326406391eddSTaniya Das 		},
326506391eddSTaniya Das 	},
326606391eddSTaniya Das };
326706391eddSTaniya Das 
326806391eddSTaniya Das static struct clk_branch gcc_video_ahb_clk = {
326906391eddSTaniya Das 	.halt_reg = 0xb004,
327006391eddSTaniya Das 	.halt_check = BRANCH_HALT,
327106391eddSTaniya Das 	.hwcg_reg = 0xb004,
327206391eddSTaniya Das 	.hwcg_bit = 1,
327306391eddSTaniya Das 	.clkr = {
327406391eddSTaniya Das 		.enable_reg = 0xb004,
327506391eddSTaniya Das 		.enable_mask = BIT(0),
327606391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
327706391eddSTaniya Das 			.name = "gcc_video_ahb_clk",
3278cfb8282eSAmit Nischal 			.flags = CLK_IS_CRITICAL,
327906391eddSTaniya Das 			.ops = &clk_branch2_ops,
328006391eddSTaniya Das 		},
328106391eddSTaniya Das 	},
328206391eddSTaniya Das };
328306391eddSTaniya Das 
328406391eddSTaniya Das static struct clk_branch gcc_video_axi_clk = {
328506391eddSTaniya Das 	.halt_reg = 0xb01c,
328606391eddSTaniya Das 	.halt_check = BRANCH_VOTED,
328706391eddSTaniya Das 	.clkr = {
328806391eddSTaniya Das 		.enable_reg = 0xb01c,
328906391eddSTaniya Das 		.enable_mask = BIT(0),
329006391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
329106391eddSTaniya Das 			.name = "gcc_video_axi_clk",
329206391eddSTaniya Das 			.ops = &clk_branch2_ops,
329306391eddSTaniya Das 		},
329406391eddSTaniya Das 	},
329506391eddSTaniya Das };
329606391eddSTaniya Das 
329706391eddSTaniya Das static struct clk_branch gcc_video_xo_clk = {
329806391eddSTaniya Das 	.halt_reg = 0xb028,
329906391eddSTaniya Das 	.halt_check = BRANCH_HALT,
330006391eddSTaniya Das 	.clkr = {
330106391eddSTaniya Das 		.enable_reg = 0xb028,
330206391eddSTaniya Das 		.enable_mask = BIT(0),
330306391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
330406391eddSTaniya Das 			.name = "gcc_video_xo_clk",
3305cfb8282eSAmit Nischal 			.flags = CLK_IS_CRITICAL,
330606391eddSTaniya Das 			.ops = &clk_branch2_ops,
330706391eddSTaniya Das 		},
330806391eddSTaniya Das 	},
330906391eddSTaniya Das };
331006391eddSTaniya Das 
331106391eddSTaniya Das static struct clk_branch gcc_vs_ctrl_ahb_clk = {
331206391eddSTaniya Das 	.halt_reg = 0x7a014,
331306391eddSTaniya Das 	.halt_check = BRANCH_HALT,
331406391eddSTaniya Das 	.hwcg_reg = 0x7a014,
331506391eddSTaniya Das 	.hwcg_bit = 1,
331606391eddSTaniya Das 	.clkr = {
331706391eddSTaniya Das 		.enable_reg = 0x7a014,
331806391eddSTaniya Das 		.enable_mask = BIT(0),
331906391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
332006391eddSTaniya Das 			.name = "gcc_vs_ctrl_ahb_clk",
332106391eddSTaniya Das 			.ops = &clk_branch2_ops,
332206391eddSTaniya Das 		},
332306391eddSTaniya Das 	},
332406391eddSTaniya Das };
332506391eddSTaniya Das 
332606391eddSTaniya Das static struct clk_branch gcc_vs_ctrl_clk = {
332706391eddSTaniya Das 	.halt_reg = 0x7a010,
332806391eddSTaniya Das 	.halt_check = BRANCH_HALT,
332906391eddSTaniya Das 	.clkr = {
333006391eddSTaniya Das 		.enable_reg = 0x7a010,
333106391eddSTaniya Das 		.enable_mask = BIT(0),
333206391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
333306391eddSTaniya Das 			.name = "gcc_vs_ctrl_clk",
3334ea434d7aSDmitry Baryshkov 			.parent_hws = (const struct clk_hw*[]){
3335ea434d7aSDmitry Baryshkov 				&gcc_vs_ctrl_clk_src.clkr.hw,
333606391eddSTaniya Das 			},
333706391eddSTaniya Das 			.num_parents = 1,
333806391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
333906391eddSTaniya Das 			.ops = &clk_branch2_ops,
334006391eddSTaniya Das 		},
334106391eddSTaniya Das 	},
334206391eddSTaniya Das };
334306391eddSTaniya Das 
3344cfb8282eSAmit Nischal static struct clk_branch gcc_cpuss_dvm_bus_clk = {
3345cfb8282eSAmit Nischal 	.halt_reg = 0x48190,
3346cfb8282eSAmit Nischal 	.halt_check = BRANCH_HALT,
3347cfb8282eSAmit Nischal 	.clkr = {
3348cfb8282eSAmit Nischal 		.enable_reg = 0x48190,
3349cfb8282eSAmit Nischal 		.enable_mask = BIT(0),
3350cfb8282eSAmit Nischal 		.hw.init = &(struct clk_init_data){
3351cfb8282eSAmit Nischal 			.name = "gcc_cpuss_dvm_bus_clk",
3352cfb8282eSAmit Nischal 			.flags = CLK_IS_CRITICAL,
3353cfb8282eSAmit Nischal 			.ops = &clk_branch2_ops,
3354cfb8282eSAmit Nischal 		},
3355cfb8282eSAmit Nischal 	},
3356cfb8282eSAmit Nischal };
3357cfb8282eSAmit Nischal 
3358cfb8282eSAmit Nischal static struct clk_branch gcc_cpuss_gnoc_clk = {
3359cfb8282eSAmit Nischal 	.halt_reg = 0x48004,
3360cfb8282eSAmit Nischal 	.halt_check = BRANCH_HALT_VOTED,
3361cfb8282eSAmit Nischal 	.hwcg_reg = 0x48004,
3362cfb8282eSAmit Nischal 	.hwcg_bit = 1,
3363cfb8282eSAmit Nischal 	.clkr = {
3364cfb8282eSAmit Nischal 		.enable_reg = 0x52004,
3365cfb8282eSAmit Nischal 		.enable_mask = BIT(22),
3366cfb8282eSAmit Nischal 		.hw.init = &(struct clk_init_data){
3367cfb8282eSAmit Nischal 			.name = "gcc_cpuss_gnoc_clk",
3368cfb8282eSAmit Nischal 			.flags = CLK_IS_CRITICAL,
3369cfb8282eSAmit Nischal 			.ops = &clk_branch2_ops,
3370cfb8282eSAmit Nischal 		},
3371cfb8282eSAmit Nischal 	},
3372cfb8282eSAmit Nischal };
3373cfb8282eSAmit Nischal 
33748d3e5b9cSTaniya Das /* TODO: Remove after DTS updated to protect these */
33758d3e5b9cSTaniya Das #ifdef CONFIG_SDM_LPASSCC_845
33768d3e5b9cSTaniya Das static struct clk_branch gcc_lpass_q6_axi_clk = {
33778d3e5b9cSTaniya Das 	.halt_reg = 0x47000,
33788d3e5b9cSTaniya Das 	.halt_check = BRANCH_HALT,
33798d3e5b9cSTaniya Das 	.clkr = {
33808d3e5b9cSTaniya Das 		.enable_reg = 0x47000,
33818d3e5b9cSTaniya Das 		.enable_mask = BIT(0),
33828d3e5b9cSTaniya Das 		.hw.init = &(struct clk_init_data){
33838d3e5b9cSTaniya Das 			.name = "gcc_lpass_q6_axi_clk",
33848d3e5b9cSTaniya Das 			.flags = CLK_IS_CRITICAL,
33858d3e5b9cSTaniya Das 			.ops = &clk_branch2_ops,
33868d3e5b9cSTaniya Das 		},
33878d3e5b9cSTaniya Das 	},
33888d3e5b9cSTaniya Das };
33898d3e5b9cSTaniya Das 
33908d3e5b9cSTaniya Das static struct clk_branch gcc_lpass_sway_clk = {
33918d3e5b9cSTaniya Das 	.halt_reg = 0x47008,
33928d3e5b9cSTaniya Das 	.halt_check = BRANCH_HALT,
33938d3e5b9cSTaniya Das 	.clkr = {
33948d3e5b9cSTaniya Das 		.enable_reg = 0x47008,
33958d3e5b9cSTaniya Das 		.enable_mask = BIT(0),
33968d3e5b9cSTaniya Das 		.hw.init = &(struct clk_init_data){
33978d3e5b9cSTaniya Das 			.name = "gcc_lpass_sway_clk",
33988d3e5b9cSTaniya Das 			.flags = CLK_IS_CRITICAL,
33998d3e5b9cSTaniya Das 			.ops = &clk_branch2_ops,
34008d3e5b9cSTaniya Das 		},
34018d3e5b9cSTaniya Das 	},
34028d3e5b9cSTaniya Das };
34038d3e5b9cSTaniya Das #endif
34048d3e5b9cSTaniya Das 
340506391eddSTaniya Das static struct gdsc pcie_0_gdsc = {
340606391eddSTaniya Das 	.gdscr = 0x6b004,
340706391eddSTaniya Das 	.pd = {
340806391eddSTaniya Das 		.name = "pcie_0_gdsc",
340906391eddSTaniya Das 	},
341006391eddSTaniya Das 	.pwrsts = PWRSTS_OFF_ON,
341106391eddSTaniya Das 	.flags = POLL_CFG_GDSCR,
341206391eddSTaniya Das };
341306391eddSTaniya Das 
341406391eddSTaniya Das static struct gdsc pcie_1_gdsc = {
341506391eddSTaniya Das 	.gdscr = 0x8d004,
341606391eddSTaniya Das 	.pd = {
341706391eddSTaniya Das 		.name = "pcie_1_gdsc",
341806391eddSTaniya Das 	},
341906391eddSTaniya Das 	.pwrsts = PWRSTS_OFF_ON,
342006391eddSTaniya Das 	.flags = POLL_CFG_GDSCR,
342106391eddSTaniya Das };
342206391eddSTaniya Das 
342306391eddSTaniya Das static struct gdsc ufs_card_gdsc = {
342406391eddSTaniya Das 	.gdscr = 0x75004,
342506391eddSTaniya Das 	.pd = {
342606391eddSTaniya Das 		.name = "ufs_card_gdsc",
342706391eddSTaniya Das 	},
342806391eddSTaniya Das 	.pwrsts = PWRSTS_OFF_ON,
342906391eddSTaniya Das 	.flags = POLL_CFG_GDSCR,
343006391eddSTaniya Das };
343106391eddSTaniya Das 
343206391eddSTaniya Das static struct gdsc ufs_phy_gdsc = {
343306391eddSTaniya Das 	.gdscr = 0x77004,
343406391eddSTaniya Das 	.pd = {
343506391eddSTaniya Das 		.name = "ufs_phy_gdsc",
343606391eddSTaniya Das 	},
343706391eddSTaniya Das 	.pwrsts = PWRSTS_OFF_ON,
343806391eddSTaniya Das 	.flags = POLL_CFG_GDSCR,
343906391eddSTaniya Das };
344006391eddSTaniya Das 
344106391eddSTaniya Das static struct gdsc usb30_prim_gdsc = {
344206391eddSTaniya Das 	.gdscr = 0xf004,
344306391eddSTaniya Das 	.pd = {
344406391eddSTaniya Das 		.name = "usb30_prim_gdsc",
344506391eddSTaniya Das 	},
344606391eddSTaniya Das 	.pwrsts = PWRSTS_OFF_ON,
344706391eddSTaniya Das 	.flags = POLL_CFG_GDSCR,
344806391eddSTaniya Das };
344906391eddSTaniya Das 
345006391eddSTaniya Das static struct gdsc usb30_sec_gdsc = {
345106391eddSTaniya Das 	.gdscr = 0x10004,
345206391eddSTaniya Das 	.pd = {
345306391eddSTaniya Das 		.name = "usb30_sec_gdsc",
345406391eddSTaniya Das 	},
345506391eddSTaniya Das 	.pwrsts = PWRSTS_OFF_ON,
345606391eddSTaniya Das 	.flags = POLL_CFG_GDSCR,
345706391eddSTaniya Das };
345806391eddSTaniya Das 
345906391eddSTaniya Das static struct gdsc hlos1_vote_aggre_noc_mmu_audio_tbu_gdsc = {
346006391eddSTaniya Das 	.gdscr = 0x7d030,
346106391eddSTaniya Das 	.pd = {
346206391eddSTaniya Das 		.name = "hlos1_vote_aggre_noc_mmu_audio_tbu_gdsc",
346306391eddSTaniya Das 	},
346406391eddSTaniya Das 	.pwrsts = PWRSTS_OFF_ON,
34655e82548eSGeorgi Djakov 	.flags = VOTABLE,
346606391eddSTaniya Das };
346706391eddSTaniya Das 
346806391eddSTaniya Das static struct gdsc hlos1_vote_aggre_noc_mmu_pcie_tbu_gdsc = {
346906391eddSTaniya Das 	.gdscr = 0x7d03c,
347006391eddSTaniya Das 	.pd = {
347106391eddSTaniya Das 		.name = "hlos1_vote_aggre_noc_mmu_pcie_tbu_gdsc",
347206391eddSTaniya Das 	},
347306391eddSTaniya Das 	.pwrsts = PWRSTS_OFF_ON,
34745e82548eSGeorgi Djakov 	.flags = VOTABLE,
347506391eddSTaniya Das };
347606391eddSTaniya Das 
347706391eddSTaniya Das static struct gdsc hlos1_vote_aggre_noc_mmu_tbu1_gdsc = {
347806391eddSTaniya Das 	.gdscr = 0x7d034,
347906391eddSTaniya Das 	.pd = {
348006391eddSTaniya Das 		.name = "hlos1_vote_aggre_noc_mmu_tbu1_gdsc",
348106391eddSTaniya Das 	},
348206391eddSTaniya Das 	.pwrsts = PWRSTS_OFF_ON,
34835e82548eSGeorgi Djakov 	.flags = VOTABLE,
348406391eddSTaniya Das };
348506391eddSTaniya Das 
348606391eddSTaniya Das static struct gdsc hlos1_vote_aggre_noc_mmu_tbu2_gdsc = {
348706391eddSTaniya Das 	.gdscr = 0x7d038,
348806391eddSTaniya Das 	.pd = {
348906391eddSTaniya Das 		.name = "hlos1_vote_aggre_noc_mmu_tbu2_gdsc",
349006391eddSTaniya Das 	},
349106391eddSTaniya Das 	.pwrsts = PWRSTS_OFF_ON,
34925e82548eSGeorgi Djakov 	.flags = VOTABLE,
349306391eddSTaniya Das };
349406391eddSTaniya Das 
349506391eddSTaniya Das static struct gdsc hlos1_vote_mmnoc_mmu_tbu_hf0_gdsc = {
349606391eddSTaniya Das 	.gdscr = 0x7d040,
349706391eddSTaniya Das 	.pd = {
349806391eddSTaniya Das 		.name = "hlos1_vote_mmnoc_mmu_tbu_hf0_gdsc",
349906391eddSTaniya Das 	},
350006391eddSTaniya Das 	.pwrsts = PWRSTS_OFF_ON,
35015e82548eSGeorgi Djakov 	.flags = VOTABLE,
350206391eddSTaniya Das };
350306391eddSTaniya Das 
350406391eddSTaniya Das static struct gdsc hlos1_vote_mmnoc_mmu_tbu_hf1_gdsc = {
350506391eddSTaniya Das 	.gdscr = 0x7d048,
350606391eddSTaniya Das 	.pd = {
350706391eddSTaniya Das 		.name = "hlos1_vote_mmnoc_mmu_tbu_hf1_gdsc",
350806391eddSTaniya Das 	},
350906391eddSTaniya Das 	.pwrsts = PWRSTS_OFF_ON,
35105e82548eSGeorgi Djakov 	.flags = VOTABLE,
351106391eddSTaniya Das };
351206391eddSTaniya Das 
351306391eddSTaniya Das static struct gdsc hlos1_vote_mmnoc_mmu_tbu_sf_gdsc = {
351406391eddSTaniya Das 	.gdscr = 0x7d044,
351506391eddSTaniya Das 	.pd = {
351606391eddSTaniya Das 		.name = "hlos1_vote_mmnoc_mmu_tbu_sf_gdsc",
351706391eddSTaniya Das 	},
351806391eddSTaniya Das 	.pwrsts = PWRSTS_OFF_ON,
35195e82548eSGeorgi Djakov 	.flags = VOTABLE,
352006391eddSTaniya Das };
352106391eddSTaniya Das 
3522ae66b1feSRichard Acayan static struct clk_regmap *gcc_sdm670_clocks[] = {
3523ae66b1feSRichard Acayan 	[GCC_AGGRE_UFS_PHY_AXI_CLK] = &gcc_aggre_ufs_phy_axi_clk.clkr,
3524ae66b1feSRichard Acayan 	[GCC_AGGRE_USB3_PRIM_AXI_CLK] = &gcc_aggre_usb3_prim_axi_clk.clkr,
3525ae66b1feSRichard Acayan 	[GCC_APC_VS_CLK] = &gcc_apc_vs_clk.clkr,
3526ae66b1feSRichard Acayan 	[GCC_BOOT_ROM_AHB_CLK] = &gcc_boot_rom_ahb_clk.clkr,
3527ae66b1feSRichard Acayan 	[GCC_CAMERA_AHB_CLK] = &gcc_camera_ahb_clk.clkr,
3528ae66b1feSRichard Acayan 	[GCC_CAMERA_AXI_CLK] = &gcc_camera_axi_clk.clkr,
3529ae66b1feSRichard Acayan 	[GCC_CAMERA_XO_CLK] = &gcc_camera_xo_clk.clkr,
3530ae66b1feSRichard Acayan 	[GCC_CE1_AHB_CLK] = &gcc_ce1_ahb_clk.clkr,
3531ae66b1feSRichard Acayan 	[GCC_CE1_AXI_CLK] = &gcc_ce1_axi_clk.clkr,
3532ae66b1feSRichard Acayan 	[GCC_CE1_CLK] = &gcc_ce1_clk.clkr,
3533ae66b1feSRichard Acayan 	[GCC_CFG_NOC_USB3_PRIM_AXI_CLK] = &gcc_cfg_noc_usb3_prim_axi_clk.clkr,
3534ae66b1feSRichard Acayan 	[GCC_CPUSS_AHB_CLK] = &gcc_cpuss_ahb_clk.clkr,
3535ae66b1feSRichard Acayan 	[GCC_CPUSS_AHB_CLK_SRC] = &gcc_cpuss_ahb_clk_src.clkr,
3536ae66b1feSRichard Acayan 	[GCC_CPUSS_RBCPR_CLK] = &gcc_sdm670_cpuss_rbcpr_clk.clkr,
3537ae66b1feSRichard Acayan 	[GCC_CPUSS_RBCPR_CLK_SRC] = &gcc_sdm670_cpuss_rbcpr_clk_src.clkr,
3538ae66b1feSRichard Acayan 	[GCC_DDRSS_GPU_AXI_CLK] = &gcc_ddrss_gpu_axi_clk.clkr,
3539ae66b1feSRichard Acayan 	[GCC_DISP_AHB_CLK] = &gcc_disp_ahb_clk.clkr,
3540ae66b1feSRichard Acayan 	[GCC_DISP_AXI_CLK] = &gcc_disp_axi_clk.clkr,
3541ae66b1feSRichard Acayan 	[GCC_DISP_GPLL0_CLK_SRC] = &gcc_disp_gpll0_clk_src.clkr,
3542ae66b1feSRichard Acayan 	[GCC_DISP_GPLL0_DIV_CLK_SRC] = &gcc_disp_gpll0_div_clk_src.clkr,
3543ae66b1feSRichard Acayan 	[GCC_DISP_XO_CLK] = &gcc_disp_xo_clk.clkr,
3544ae66b1feSRichard Acayan 	[GCC_GP1_CLK] = &gcc_gp1_clk.clkr,
3545ae66b1feSRichard Acayan 	[GCC_GP1_CLK_SRC] = &gcc_gp1_clk_src.clkr,
3546ae66b1feSRichard Acayan 	[GCC_GP2_CLK] = &gcc_gp2_clk.clkr,
3547ae66b1feSRichard Acayan 	[GCC_GP2_CLK_SRC] = &gcc_gp2_clk_src.clkr,
3548ae66b1feSRichard Acayan 	[GCC_GP3_CLK] = &gcc_gp3_clk.clkr,
3549ae66b1feSRichard Acayan 	[GCC_GP3_CLK_SRC] = &gcc_gp3_clk_src.clkr,
3550ae66b1feSRichard Acayan 	[GCC_GPU_CFG_AHB_CLK] = &gcc_gpu_cfg_ahb_clk.clkr,
3551ae66b1feSRichard Acayan 	[GCC_GPU_GPLL0_CLK_SRC] = &gcc_gpu_gpll0_clk_src.clkr,
3552ae66b1feSRichard Acayan 	[GCC_GPU_GPLL0_DIV_CLK_SRC] = &gcc_gpu_gpll0_div_clk_src.clkr,
3553ae66b1feSRichard Acayan 	[GCC_GPU_IREF_CLK] = &gcc_gpu_iref_clk.clkr,
3554ae66b1feSRichard Acayan 	[GCC_GPU_MEMNOC_GFX_CLK] = &gcc_gpu_memnoc_gfx_clk.clkr,
3555ae66b1feSRichard Acayan 	[GCC_GPU_SNOC_DVM_GFX_CLK] = &gcc_gpu_snoc_dvm_gfx_clk.clkr,
3556ae66b1feSRichard Acayan 	[GCC_GPU_VS_CLK] = &gcc_gpu_vs_clk.clkr,
3557ae66b1feSRichard Acayan 	[GCC_MSS_AXIS2_CLK] = &gcc_mss_axis2_clk.clkr,
3558ae66b1feSRichard Acayan 	[GCC_MSS_CFG_AHB_CLK] = &gcc_mss_cfg_ahb_clk.clkr,
3559ae66b1feSRichard Acayan 	[GCC_MSS_GPLL0_DIV_CLK_SRC] = &gcc_mss_gpll0_div_clk_src.clkr,
3560ae66b1feSRichard Acayan 	[GCC_MSS_MFAB_AXIS_CLK] = &gcc_mss_mfab_axis_clk.clkr,
3561ae66b1feSRichard Acayan 	[GCC_MSS_Q6_MEMNOC_AXI_CLK] = &gcc_mss_q6_memnoc_axi_clk.clkr,
3562ae66b1feSRichard Acayan 	[GCC_MSS_SNOC_AXI_CLK] = &gcc_mss_snoc_axi_clk.clkr,
3563ae66b1feSRichard Acayan 	[GCC_MSS_VS_CLK] = &gcc_mss_vs_clk.clkr,
3564ae66b1feSRichard Acayan 	[GCC_PDM2_CLK] = &gcc_pdm2_clk.clkr,
3565ae66b1feSRichard Acayan 	[GCC_PDM2_CLK_SRC] = &gcc_pdm2_clk_src.clkr,
3566ae66b1feSRichard Acayan 	[GCC_PDM_AHB_CLK] = &gcc_pdm_ahb_clk.clkr,
3567ae66b1feSRichard Acayan 	[GCC_PDM_XO4_CLK] = &gcc_pdm_xo4_clk.clkr,
3568ae66b1feSRichard Acayan 	[GCC_PRNG_AHB_CLK] = &gcc_prng_ahb_clk.clkr,
3569ae66b1feSRichard Acayan 	[GCC_QMIP_CAMERA_AHB_CLK] = &gcc_qmip_camera_ahb_clk.clkr,
3570ae66b1feSRichard Acayan 	[GCC_QMIP_DISP_AHB_CLK] = &gcc_qmip_disp_ahb_clk.clkr,
3571ae66b1feSRichard Acayan 	[GCC_QMIP_VIDEO_AHB_CLK] = &gcc_qmip_video_ahb_clk.clkr,
3572ae66b1feSRichard Acayan 	[GCC_QUPV3_WRAP0_S0_CLK] = &gcc_qupv3_wrap0_s0_clk.clkr,
3573ae66b1feSRichard Acayan 	[GCC_QUPV3_WRAP0_S0_CLK_SRC] = &gcc_qupv3_wrap0_s0_clk_src.clkr,
3574ae66b1feSRichard Acayan 	[GCC_QUPV3_WRAP0_S1_CLK] = &gcc_qupv3_wrap0_s1_clk.clkr,
3575ae66b1feSRichard Acayan 	[GCC_QUPV3_WRAP0_S1_CLK_SRC] = &gcc_qupv3_wrap0_s1_clk_src.clkr,
3576ae66b1feSRichard Acayan 	[GCC_QUPV3_WRAP0_S2_CLK] = &gcc_qupv3_wrap0_s2_clk.clkr,
3577ae66b1feSRichard Acayan 	[GCC_QUPV3_WRAP0_S2_CLK_SRC] = &gcc_qupv3_wrap0_s2_clk_src.clkr,
3578ae66b1feSRichard Acayan 	[GCC_QUPV3_WRAP0_S3_CLK] = &gcc_qupv3_wrap0_s3_clk.clkr,
3579ae66b1feSRichard Acayan 	[GCC_QUPV3_WRAP0_S3_CLK_SRC] = &gcc_qupv3_wrap0_s3_clk_src.clkr,
3580ae66b1feSRichard Acayan 	[GCC_QUPV3_WRAP0_S4_CLK] = &gcc_qupv3_wrap0_s4_clk.clkr,
3581ae66b1feSRichard Acayan 	[GCC_QUPV3_WRAP0_S4_CLK_SRC] = &gcc_qupv3_wrap0_s4_clk_src.clkr,
3582ae66b1feSRichard Acayan 	[GCC_QUPV3_WRAP0_S5_CLK] = &gcc_qupv3_wrap0_s5_clk.clkr,
3583ae66b1feSRichard Acayan 	[GCC_QUPV3_WRAP0_S5_CLK_SRC] = &gcc_qupv3_wrap0_s5_clk_src.clkr,
3584ae66b1feSRichard Acayan 	[GCC_QUPV3_WRAP0_S6_CLK] = &gcc_qupv3_wrap0_s6_clk.clkr,
3585ae66b1feSRichard Acayan 	[GCC_QUPV3_WRAP0_S6_CLK_SRC] = &gcc_qupv3_wrap0_s6_clk_src.clkr,
3586ae66b1feSRichard Acayan 	[GCC_QUPV3_WRAP0_S7_CLK] = &gcc_qupv3_wrap0_s7_clk.clkr,
3587ae66b1feSRichard Acayan 	[GCC_QUPV3_WRAP0_S7_CLK_SRC] = &gcc_qupv3_wrap0_s7_clk_src.clkr,
3588ae66b1feSRichard Acayan 	[GCC_QUPV3_WRAP1_S0_CLK] = &gcc_qupv3_wrap1_s0_clk.clkr,
3589ae66b1feSRichard Acayan 	[GCC_QUPV3_WRAP1_S0_CLK_SRC] = &gcc_qupv3_wrap1_s0_clk_src.clkr,
3590ae66b1feSRichard Acayan 	[GCC_QUPV3_WRAP1_S1_CLK] = &gcc_qupv3_wrap1_s1_clk.clkr,
3591ae66b1feSRichard Acayan 	[GCC_QUPV3_WRAP1_S1_CLK_SRC] = &gcc_qupv3_wrap1_s1_clk_src.clkr,
3592ae66b1feSRichard Acayan 	[GCC_QUPV3_WRAP1_S2_CLK] = &gcc_qupv3_wrap1_s2_clk.clkr,
3593ae66b1feSRichard Acayan 	[GCC_QUPV3_WRAP1_S2_CLK_SRC] = &gcc_qupv3_wrap1_s2_clk_src.clkr,
3594ae66b1feSRichard Acayan 	[GCC_QUPV3_WRAP1_S3_CLK] = &gcc_qupv3_wrap1_s3_clk.clkr,
3595ae66b1feSRichard Acayan 	[GCC_QUPV3_WRAP1_S3_CLK_SRC] = &gcc_qupv3_wrap1_s3_clk_src.clkr,
3596ae66b1feSRichard Acayan 	[GCC_QUPV3_WRAP1_S4_CLK] = &gcc_qupv3_wrap1_s4_clk.clkr,
3597ae66b1feSRichard Acayan 	[GCC_QUPV3_WRAP1_S4_CLK_SRC] = &gcc_qupv3_wrap1_s4_clk_src.clkr,
3598ae66b1feSRichard Acayan 	[GCC_QUPV3_WRAP1_S5_CLK] = &gcc_qupv3_wrap1_s5_clk.clkr,
3599ae66b1feSRichard Acayan 	[GCC_QUPV3_WRAP1_S5_CLK_SRC] = &gcc_qupv3_wrap1_s5_clk_src.clkr,
3600ae66b1feSRichard Acayan 	[GCC_QUPV3_WRAP1_S6_CLK] = &gcc_qupv3_wrap1_s6_clk.clkr,
3601ae66b1feSRichard Acayan 	[GCC_QUPV3_WRAP1_S6_CLK_SRC] = &gcc_qupv3_wrap1_s6_clk_src.clkr,
3602ae66b1feSRichard Acayan 	[GCC_QUPV3_WRAP1_S7_CLK] = &gcc_qupv3_wrap1_s7_clk.clkr,
3603ae66b1feSRichard Acayan 	[GCC_QUPV3_WRAP1_S7_CLK_SRC] = &gcc_qupv3_wrap1_s7_clk_src.clkr,
3604ae66b1feSRichard Acayan 	[GCC_QUPV3_WRAP_0_M_AHB_CLK] = &gcc_qupv3_wrap_0_m_ahb_clk.clkr,
3605ae66b1feSRichard Acayan 	[GCC_QUPV3_WRAP_0_S_AHB_CLK] = &gcc_qupv3_wrap_0_s_ahb_clk.clkr,
3606ae66b1feSRichard Acayan 	[GCC_QUPV3_WRAP_1_M_AHB_CLK] = &gcc_qupv3_wrap_1_m_ahb_clk.clkr,
3607ae66b1feSRichard Acayan 	[GCC_QUPV3_WRAP_1_S_AHB_CLK] = &gcc_qupv3_wrap_1_s_ahb_clk.clkr,
3608ae66b1feSRichard Acayan 	[GCC_SDCC1_AHB_CLK] = &gcc_sdcc1_ahb_clk.clkr,
3609ae66b1feSRichard Acayan 	[GCC_SDCC1_APPS_CLK] = &gcc_sdcc1_apps_clk.clkr,
3610ae66b1feSRichard Acayan 	[GCC_SDCC1_APPS_CLK_SRC] = &gcc_sdcc1_apps_clk_src.clkr,
3611ae66b1feSRichard Acayan 	[GCC_SDCC1_ICE_CORE_CLK_SRC] = &gcc_sdcc1_ice_core_clk_src.clkr,
3612ae66b1feSRichard Acayan 	[GCC_SDCC1_ICE_CORE_CLK] = &gcc_sdcc1_ice_core_clk.clkr,
3613ae66b1feSRichard Acayan 	[GCC_SDCC2_AHB_CLK] = &gcc_sdcc2_ahb_clk.clkr,
3614ae66b1feSRichard Acayan 	[GCC_SDCC2_APPS_CLK] = &gcc_sdcc2_apps_clk.clkr,
3615ae66b1feSRichard Acayan 	[GCC_SDCC2_APPS_CLK_SRC] = &gcc_sdcc2_apps_clk_src.clkr,
3616ae66b1feSRichard Acayan 	[GCC_SDCC4_AHB_CLK] = &gcc_sdcc4_ahb_clk.clkr,
3617ae66b1feSRichard Acayan 	[GCC_SDCC4_APPS_CLK] = &gcc_sdm670_sdcc4_apps_clk.clkr,
3618ae66b1feSRichard Acayan 	[GCC_SDCC4_APPS_CLK_SRC] = &gcc_sdm670_sdcc4_apps_clk_src.clkr,
3619ae66b1feSRichard Acayan 	[GCC_SYS_NOC_CPUSS_AHB_CLK] = &gcc_sys_noc_cpuss_ahb_clk.clkr,
3620ae66b1feSRichard Acayan 	[GCC_TSIF_AHB_CLK] = &gcc_tsif_ahb_clk.clkr,
3621ae66b1feSRichard Acayan 	[GCC_TSIF_INACTIVITY_TIMERS_CLK] =
3622ae66b1feSRichard Acayan 					&gcc_tsif_inactivity_timers_clk.clkr,
3623ae66b1feSRichard Acayan 	[GCC_TSIF_REF_CLK] = &gcc_tsif_ref_clk.clkr,
3624ae66b1feSRichard Acayan 	[GCC_TSIF_REF_CLK_SRC] = &gcc_tsif_ref_clk_src.clkr,
3625ae66b1feSRichard Acayan 	[GCC_UFS_MEM_CLKREF_CLK] = &gcc_ufs_mem_clkref_clk.clkr,
3626ae66b1feSRichard Acayan 	[GCC_UFS_PHY_AHB_CLK] = &gcc_ufs_phy_ahb_clk.clkr,
3627ae66b1feSRichard Acayan 	[GCC_UFS_PHY_AXI_CLK] = &gcc_ufs_phy_axi_clk.clkr,
3628ae66b1feSRichard Acayan 	[GCC_UFS_PHY_AXI_CLK_SRC] = &gcc_ufs_phy_axi_clk_src.clkr,
3629ae66b1feSRichard Acayan 	[GCC_UFS_PHY_ICE_CORE_CLK] = &gcc_ufs_phy_ice_core_clk.clkr,
3630ae66b1feSRichard Acayan 	[GCC_UFS_PHY_ICE_CORE_CLK_SRC] = &gcc_ufs_phy_ice_core_clk_src.clkr,
3631ae66b1feSRichard Acayan 	[GCC_UFS_PHY_PHY_AUX_CLK] = &gcc_ufs_phy_phy_aux_clk.clkr,
3632ae66b1feSRichard Acayan 	[GCC_UFS_PHY_PHY_AUX_CLK_SRC] = &gcc_ufs_phy_phy_aux_clk_src.clkr,
3633ae66b1feSRichard Acayan 	[GCC_UFS_PHY_RX_SYMBOL_0_CLK] = &gcc_ufs_phy_rx_symbol_0_clk.clkr,
3634ae66b1feSRichard Acayan 	[GCC_UFS_PHY_TX_SYMBOL_0_CLK] = &gcc_ufs_phy_tx_symbol_0_clk.clkr,
3635ae66b1feSRichard Acayan 	[GCC_UFS_PHY_UNIPRO_CORE_CLK] = &gcc_ufs_phy_unipro_core_clk.clkr,
3636ae66b1feSRichard Acayan 	[GCC_UFS_PHY_UNIPRO_CORE_CLK_SRC] =
3637ae66b1feSRichard Acayan 					&gcc_ufs_phy_unipro_core_clk_src.clkr,
3638ae66b1feSRichard Acayan 	[GCC_USB30_PRIM_MASTER_CLK] = &gcc_usb30_prim_master_clk.clkr,
3639ae66b1feSRichard Acayan 	[GCC_USB30_PRIM_MASTER_CLK_SRC] = &gcc_usb30_prim_master_clk_src.clkr,
3640ae66b1feSRichard Acayan 	[GCC_USB30_PRIM_MOCK_UTMI_CLK] = &gcc_usb30_prim_mock_utmi_clk.clkr,
3641ae66b1feSRichard Acayan 	[GCC_USB30_PRIM_MOCK_UTMI_CLK_SRC] =
3642ae66b1feSRichard Acayan 					&gcc_usb30_prim_mock_utmi_clk_src.clkr,
3643ae66b1feSRichard Acayan 	[GCC_USB30_PRIM_SLEEP_CLK] = &gcc_usb30_prim_sleep_clk.clkr,
3644ae66b1feSRichard Acayan 	[GCC_USB3_PRIM_CLKREF_CLK] = &gcc_usb3_prim_clkref_clk.clkr,
3645ae66b1feSRichard Acayan 	[GCC_USB3_PRIM_PHY_AUX_CLK] = &gcc_usb3_prim_phy_aux_clk.clkr,
3646ae66b1feSRichard Acayan 	[GCC_USB3_PRIM_PHY_AUX_CLK_SRC] = &gcc_usb3_prim_phy_aux_clk_src.clkr,
3647ae66b1feSRichard Acayan 	[GCC_USB3_PRIM_PHY_COM_AUX_CLK] = &gcc_usb3_prim_phy_com_aux_clk.clkr,
3648ae66b1feSRichard Acayan 	[GCC_USB3_PRIM_PHY_PIPE_CLK] = &gcc_usb3_prim_phy_pipe_clk.clkr,
3649ae66b1feSRichard Acayan 	[GCC_USB_PHY_CFG_AHB2PHY_CLK] = &gcc_usb_phy_cfg_ahb2phy_clk.clkr,
3650ae66b1feSRichard Acayan 	[GCC_VDDA_VS_CLK] = &gcc_vdda_vs_clk.clkr,
3651ae66b1feSRichard Acayan 	[GCC_VDDCX_VS_CLK] = &gcc_vddcx_vs_clk.clkr,
3652ae66b1feSRichard Acayan 	[GCC_VDDMX_VS_CLK] = &gcc_vddmx_vs_clk.clkr,
3653ae66b1feSRichard Acayan 	[GCC_VIDEO_AHB_CLK] = &gcc_video_ahb_clk.clkr,
3654ae66b1feSRichard Acayan 	[GCC_VIDEO_AXI_CLK] = &gcc_video_axi_clk.clkr,
3655ae66b1feSRichard Acayan 	[GCC_VIDEO_XO_CLK] = &gcc_video_xo_clk.clkr,
3656ae66b1feSRichard Acayan 	[GCC_VS_CTRL_AHB_CLK] = &gcc_vs_ctrl_ahb_clk.clkr,
3657ae66b1feSRichard Acayan 	[GCC_VS_CTRL_CLK] = &gcc_vs_ctrl_clk.clkr,
3658ae66b1feSRichard Acayan 	[GCC_VS_CTRL_CLK_SRC] = &gcc_vs_ctrl_clk_src.clkr,
3659ae66b1feSRichard Acayan 	[GCC_VSENSOR_CLK_SRC] = &gcc_vsensor_clk_src.clkr,
3660ae66b1feSRichard Acayan 	[GPLL0] = &gpll0.clkr,
3661ae66b1feSRichard Acayan 	[GPLL0_OUT_EVEN] = &gpll0_out_even.clkr,
3662ae66b1feSRichard Acayan 	[GPLL4] = &gpll4.clkr,
3663ae66b1feSRichard Acayan 	[GPLL6] = &gpll6.clkr,
3664ae66b1feSRichard Acayan 	[GCC_CPUSS_DVM_BUS_CLK] = &gcc_cpuss_dvm_bus_clk.clkr,
3665ae66b1feSRichard Acayan 	[GCC_CPUSS_GNOC_CLK] = &gcc_cpuss_gnoc_clk.clkr,
3666ae66b1feSRichard Acayan 	[GCC_QSPI_CORE_CLK_SRC] = &gcc_qspi_core_clk_src.clkr,
3667ae66b1feSRichard Acayan 	[GCC_QSPI_CORE_CLK] = &gcc_qspi_core_clk.clkr,
3668ae66b1feSRichard Acayan 	[GCC_QSPI_CNOC_PERIPH_AHB_CLK] = &gcc_qspi_cnoc_periph_ahb_clk.clkr,
3669ae66b1feSRichard Acayan };
3670ae66b1feSRichard Acayan 
367106391eddSTaniya Das static struct clk_regmap *gcc_sdm845_clocks[] = {
367206391eddSTaniya Das 	[GCC_AGGRE_NOC_PCIE_TBU_CLK] = &gcc_aggre_noc_pcie_tbu_clk.clkr,
367306391eddSTaniya Das 	[GCC_AGGRE_UFS_CARD_AXI_CLK] = &gcc_aggre_ufs_card_axi_clk.clkr,
367406391eddSTaniya Das 	[GCC_AGGRE_UFS_PHY_AXI_CLK] = &gcc_aggre_ufs_phy_axi_clk.clkr,
367506391eddSTaniya Das 	[GCC_AGGRE_USB3_PRIM_AXI_CLK] = &gcc_aggre_usb3_prim_axi_clk.clkr,
367606391eddSTaniya Das 	[GCC_AGGRE_USB3_SEC_AXI_CLK] = &gcc_aggre_usb3_sec_axi_clk.clkr,
367706391eddSTaniya Das 	[GCC_APC_VS_CLK] = &gcc_apc_vs_clk.clkr,
367806391eddSTaniya Das 	[GCC_BOOT_ROM_AHB_CLK] = &gcc_boot_rom_ahb_clk.clkr,
367906391eddSTaniya Das 	[GCC_CAMERA_AHB_CLK] = &gcc_camera_ahb_clk.clkr,
368006391eddSTaniya Das 	[GCC_CAMERA_AXI_CLK] = &gcc_camera_axi_clk.clkr,
368106391eddSTaniya Das 	[GCC_CAMERA_XO_CLK] = &gcc_camera_xo_clk.clkr,
368206391eddSTaniya Das 	[GCC_CE1_AHB_CLK] = &gcc_ce1_ahb_clk.clkr,
368306391eddSTaniya Das 	[GCC_CE1_AXI_CLK] = &gcc_ce1_axi_clk.clkr,
368406391eddSTaniya Das 	[GCC_CE1_CLK] = &gcc_ce1_clk.clkr,
368506391eddSTaniya Das 	[GCC_CFG_NOC_USB3_PRIM_AXI_CLK] = &gcc_cfg_noc_usb3_prim_axi_clk.clkr,
368606391eddSTaniya Das 	[GCC_CFG_NOC_USB3_SEC_AXI_CLK] = &gcc_cfg_noc_usb3_sec_axi_clk.clkr,
368706391eddSTaniya Das 	[GCC_CPUSS_AHB_CLK] = &gcc_cpuss_ahb_clk.clkr,
368806391eddSTaniya Das 	[GCC_CPUSS_AHB_CLK_SRC] = &gcc_cpuss_ahb_clk_src.clkr,
368906391eddSTaniya Das 	[GCC_CPUSS_RBCPR_CLK] = &gcc_cpuss_rbcpr_clk.clkr,
369006391eddSTaniya Das 	[GCC_CPUSS_RBCPR_CLK_SRC] = &gcc_cpuss_rbcpr_clk_src.clkr,
369106391eddSTaniya Das 	[GCC_DDRSS_GPU_AXI_CLK] = &gcc_ddrss_gpu_axi_clk.clkr,
369206391eddSTaniya Das 	[GCC_DISP_AHB_CLK] = &gcc_disp_ahb_clk.clkr,
369306391eddSTaniya Das 	[GCC_DISP_AXI_CLK] = &gcc_disp_axi_clk.clkr,
369406391eddSTaniya Das 	[GCC_DISP_GPLL0_CLK_SRC] = &gcc_disp_gpll0_clk_src.clkr,
369506391eddSTaniya Das 	[GCC_DISP_GPLL0_DIV_CLK_SRC] = &gcc_disp_gpll0_div_clk_src.clkr,
369606391eddSTaniya Das 	[GCC_DISP_XO_CLK] = &gcc_disp_xo_clk.clkr,
369706391eddSTaniya Das 	[GCC_GP1_CLK] = &gcc_gp1_clk.clkr,
369806391eddSTaniya Das 	[GCC_GP1_CLK_SRC] = &gcc_gp1_clk_src.clkr,
369906391eddSTaniya Das 	[GCC_GP2_CLK] = &gcc_gp2_clk.clkr,
370006391eddSTaniya Das 	[GCC_GP2_CLK_SRC] = &gcc_gp2_clk_src.clkr,
370106391eddSTaniya Das 	[GCC_GP3_CLK] = &gcc_gp3_clk.clkr,
370206391eddSTaniya Das 	[GCC_GP3_CLK_SRC] = &gcc_gp3_clk_src.clkr,
370306391eddSTaniya Das 	[GCC_GPU_CFG_AHB_CLK] = &gcc_gpu_cfg_ahb_clk.clkr,
370406391eddSTaniya Das 	[GCC_GPU_GPLL0_CLK_SRC] = &gcc_gpu_gpll0_clk_src.clkr,
370506391eddSTaniya Das 	[GCC_GPU_GPLL0_DIV_CLK_SRC] = &gcc_gpu_gpll0_div_clk_src.clkr,
370606391eddSTaniya Das 	[GCC_GPU_IREF_CLK] = &gcc_gpu_iref_clk.clkr,
370706391eddSTaniya Das 	[GCC_GPU_MEMNOC_GFX_CLK] = &gcc_gpu_memnoc_gfx_clk.clkr,
370806391eddSTaniya Das 	[GCC_GPU_SNOC_DVM_GFX_CLK] = &gcc_gpu_snoc_dvm_gfx_clk.clkr,
370906391eddSTaniya Das 	[GCC_GPU_VS_CLK] = &gcc_gpu_vs_clk.clkr,
371006391eddSTaniya Das 	[GCC_MSS_AXIS2_CLK] = &gcc_mss_axis2_clk.clkr,
371106391eddSTaniya Das 	[GCC_MSS_CFG_AHB_CLK] = &gcc_mss_cfg_ahb_clk.clkr,
371206391eddSTaniya Das 	[GCC_MSS_GPLL0_DIV_CLK_SRC] = &gcc_mss_gpll0_div_clk_src.clkr,
371306391eddSTaniya Das 	[GCC_MSS_MFAB_AXIS_CLK] = &gcc_mss_mfab_axis_clk.clkr,
371406391eddSTaniya Das 	[GCC_MSS_Q6_MEMNOC_AXI_CLK] = &gcc_mss_q6_memnoc_axi_clk.clkr,
371506391eddSTaniya Das 	[GCC_MSS_SNOC_AXI_CLK] = &gcc_mss_snoc_axi_clk.clkr,
371606391eddSTaniya Das 	[GCC_MSS_VS_CLK] = &gcc_mss_vs_clk.clkr,
371706391eddSTaniya Das 	[GCC_PCIE_0_AUX_CLK] = &gcc_pcie_0_aux_clk.clkr,
371806391eddSTaniya Das 	[GCC_PCIE_0_AUX_CLK_SRC] = &gcc_pcie_0_aux_clk_src.clkr,
371906391eddSTaniya Das 	[GCC_PCIE_0_CFG_AHB_CLK] = &gcc_pcie_0_cfg_ahb_clk.clkr,
372006391eddSTaniya Das 	[GCC_PCIE_0_CLKREF_CLK] = &gcc_pcie_0_clkref_clk.clkr,
372106391eddSTaniya Das 	[GCC_PCIE_0_MSTR_AXI_CLK] = &gcc_pcie_0_mstr_axi_clk.clkr,
372206391eddSTaniya Das 	[GCC_PCIE_0_PIPE_CLK] = &gcc_pcie_0_pipe_clk.clkr,
372306391eddSTaniya Das 	[GCC_PCIE_0_SLV_AXI_CLK] = &gcc_pcie_0_slv_axi_clk.clkr,
372406391eddSTaniya Das 	[GCC_PCIE_0_SLV_Q2A_AXI_CLK] = &gcc_pcie_0_slv_q2a_axi_clk.clkr,
372506391eddSTaniya Das 	[GCC_PCIE_1_AUX_CLK] = &gcc_pcie_1_aux_clk.clkr,
372606391eddSTaniya Das 	[GCC_PCIE_1_AUX_CLK_SRC] = &gcc_pcie_1_aux_clk_src.clkr,
372706391eddSTaniya Das 	[GCC_PCIE_1_CFG_AHB_CLK] = &gcc_pcie_1_cfg_ahb_clk.clkr,
372806391eddSTaniya Das 	[GCC_PCIE_1_CLKREF_CLK] = &gcc_pcie_1_clkref_clk.clkr,
372906391eddSTaniya Das 	[GCC_PCIE_1_MSTR_AXI_CLK] = &gcc_pcie_1_mstr_axi_clk.clkr,
373006391eddSTaniya Das 	[GCC_PCIE_1_PIPE_CLK] = &gcc_pcie_1_pipe_clk.clkr,
373106391eddSTaniya Das 	[GCC_PCIE_1_SLV_AXI_CLK] = &gcc_pcie_1_slv_axi_clk.clkr,
373206391eddSTaniya Das 	[GCC_PCIE_1_SLV_Q2A_AXI_CLK] = &gcc_pcie_1_slv_q2a_axi_clk.clkr,
373306391eddSTaniya Das 	[GCC_PCIE_PHY_AUX_CLK] = &gcc_pcie_phy_aux_clk.clkr,
373406391eddSTaniya Das 	[GCC_PCIE_PHY_REFGEN_CLK] = &gcc_pcie_phy_refgen_clk.clkr,
373506391eddSTaniya Das 	[GCC_PCIE_PHY_REFGEN_CLK_SRC] = &gcc_pcie_phy_refgen_clk_src.clkr,
373606391eddSTaniya Das 	[GCC_PDM2_CLK] = &gcc_pdm2_clk.clkr,
373706391eddSTaniya Das 	[GCC_PDM2_CLK_SRC] = &gcc_pdm2_clk_src.clkr,
373806391eddSTaniya Das 	[GCC_PDM_AHB_CLK] = &gcc_pdm_ahb_clk.clkr,
373906391eddSTaniya Das 	[GCC_PDM_XO4_CLK] = &gcc_pdm_xo4_clk.clkr,
374006391eddSTaniya Das 	[GCC_PRNG_AHB_CLK] = &gcc_prng_ahb_clk.clkr,
374106391eddSTaniya Das 	[GCC_QMIP_CAMERA_AHB_CLK] = &gcc_qmip_camera_ahb_clk.clkr,
374206391eddSTaniya Das 	[GCC_QMIP_DISP_AHB_CLK] = &gcc_qmip_disp_ahb_clk.clkr,
374306391eddSTaniya Das 	[GCC_QMIP_VIDEO_AHB_CLK] = &gcc_qmip_video_ahb_clk.clkr,
374406391eddSTaniya Das 	[GCC_QUPV3_WRAP0_S0_CLK] = &gcc_qupv3_wrap0_s0_clk.clkr,
374506391eddSTaniya Das 	[GCC_QUPV3_WRAP0_S0_CLK_SRC] = &gcc_qupv3_wrap0_s0_clk_src.clkr,
374606391eddSTaniya Das 	[GCC_QUPV3_WRAP0_S1_CLK] = &gcc_qupv3_wrap0_s1_clk.clkr,
374706391eddSTaniya Das 	[GCC_QUPV3_WRAP0_S1_CLK_SRC] = &gcc_qupv3_wrap0_s1_clk_src.clkr,
374806391eddSTaniya Das 	[GCC_QUPV3_WRAP0_S2_CLK] = &gcc_qupv3_wrap0_s2_clk.clkr,
374906391eddSTaniya Das 	[GCC_QUPV3_WRAP0_S2_CLK_SRC] = &gcc_qupv3_wrap0_s2_clk_src.clkr,
375006391eddSTaniya Das 	[GCC_QUPV3_WRAP0_S3_CLK] = &gcc_qupv3_wrap0_s3_clk.clkr,
375106391eddSTaniya Das 	[GCC_QUPV3_WRAP0_S3_CLK_SRC] = &gcc_qupv3_wrap0_s3_clk_src.clkr,
375206391eddSTaniya Das 	[GCC_QUPV3_WRAP0_S4_CLK] = &gcc_qupv3_wrap0_s4_clk.clkr,
375306391eddSTaniya Das 	[GCC_QUPV3_WRAP0_S4_CLK_SRC] = &gcc_qupv3_wrap0_s4_clk_src.clkr,
375406391eddSTaniya Das 	[GCC_QUPV3_WRAP0_S5_CLK] = &gcc_qupv3_wrap0_s5_clk.clkr,
375506391eddSTaniya Das 	[GCC_QUPV3_WRAP0_S5_CLK_SRC] = &gcc_qupv3_wrap0_s5_clk_src.clkr,
375606391eddSTaniya Das 	[GCC_QUPV3_WRAP0_S6_CLK] = &gcc_qupv3_wrap0_s6_clk.clkr,
375706391eddSTaniya Das 	[GCC_QUPV3_WRAP0_S6_CLK_SRC] = &gcc_qupv3_wrap0_s6_clk_src.clkr,
375806391eddSTaniya Das 	[GCC_QUPV3_WRAP0_S7_CLK] = &gcc_qupv3_wrap0_s7_clk.clkr,
375906391eddSTaniya Das 	[GCC_QUPV3_WRAP0_S7_CLK_SRC] = &gcc_qupv3_wrap0_s7_clk_src.clkr,
376006391eddSTaniya Das 	[GCC_QUPV3_WRAP1_S0_CLK] = &gcc_qupv3_wrap1_s0_clk.clkr,
376106391eddSTaniya Das 	[GCC_QUPV3_WRAP1_S0_CLK_SRC] = &gcc_qupv3_wrap1_s0_clk_src.clkr,
376206391eddSTaniya Das 	[GCC_QUPV3_WRAP1_S1_CLK] = &gcc_qupv3_wrap1_s1_clk.clkr,
376306391eddSTaniya Das 	[GCC_QUPV3_WRAP1_S1_CLK_SRC] = &gcc_qupv3_wrap1_s1_clk_src.clkr,
376406391eddSTaniya Das 	[GCC_QUPV3_WRAP1_S2_CLK] = &gcc_qupv3_wrap1_s2_clk.clkr,
376506391eddSTaniya Das 	[GCC_QUPV3_WRAP1_S2_CLK_SRC] = &gcc_qupv3_wrap1_s2_clk_src.clkr,
376606391eddSTaniya Das 	[GCC_QUPV3_WRAP1_S3_CLK] = &gcc_qupv3_wrap1_s3_clk.clkr,
376706391eddSTaniya Das 	[GCC_QUPV3_WRAP1_S3_CLK_SRC] = &gcc_qupv3_wrap1_s3_clk_src.clkr,
376806391eddSTaniya Das 	[GCC_QUPV3_WRAP1_S4_CLK] = &gcc_qupv3_wrap1_s4_clk.clkr,
376906391eddSTaniya Das 	[GCC_QUPV3_WRAP1_S4_CLK_SRC] = &gcc_qupv3_wrap1_s4_clk_src.clkr,
377006391eddSTaniya Das 	[GCC_QUPV3_WRAP1_S5_CLK] = &gcc_qupv3_wrap1_s5_clk.clkr,
377106391eddSTaniya Das 	[GCC_QUPV3_WRAP1_S5_CLK_SRC] = &gcc_qupv3_wrap1_s5_clk_src.clkr,
377206391eddSTaniya Das 	[GCC_QUPV3_WRAP1_S6_CLK] = &gcc_qupv3_wrap1_s6_clk.clkr,
377306391eddSTaniya Das 	[GCC_QUPV3_WRAP1_S6_CLK_SRC] = &gcc_qupv3_wrap1_s6_clk_src.clkr,
377406391eddSTaniya Das 	[GCC_QUPV3_WRAP1_S7_CLK] = &gcc_qupv3_wrap1_s7_clk.clkr,
377506391eddSTaniya Das 	[GCC_QUPV3_WRAP1_S7_CLK_SRC] = &gcc_qupv3_wrap1_s7_clk_src.clkr,
377606391eddSTaniya Das 	[GCC_QUPV3_WRAP_0_M_AHB_CLK] = &gcc_qupv3_wrap_0_m_ahb_clk.clkr,
377706391eddSTaniya Das 	[GCC_QUPV3_WRAP_0_S_AHB_CLK] = &gcc_qupv3_wrap_0_s_ahb_clk.clkr,
377806391eddSTaniya Das 	[GCC_QUPV3_WRAP_1_M_AHB_CLK] = &gcc_qupv3_wrap_1_m_ahb_clk.clkr,
377906391eddSTaniya Das 	[GCC_QUPV3_WRAP_1_S_AHB_CLK] = &gcc_qupv3_wrap_1_s_ahb_clk.clkr,
378006391eddSTaniya Das 	[GCC_SDCC2_AHB_CLK] = &gcc_sdcc2_ahb_clk.clkr,
378106391eddSTaniya Das 	[GCC_SDCC2_APPS_CLK] = &gcc_sdcc2_apps_clk.clkr,
378206391eddSTaniya Das 	[GCC_SDCC2_APPS_CLK_SRC] = &gcc_sdcc2_apps_clk_src.clkr,
378306391eddSTaniya Das 	[GCC_SDCC4_AHB_CLK] = &gcc_sdcc4_ahb_clk.clkr,
378406391eddSTaniya Das 	[GCC_SDCC4_APPS_CLK] = &gcc_sdcc4_apps_clk.clkr,
378506391eddSTaniya Das 	[GCC_SDCC4_APPS_CLK_SRC] = &gcc_sdcc4_apps_clk_src.clkr,
378606391eddSTaniya Das 	[GCC_SYS_NOC_CPUSS_AHB_CLK] = &gcc_sys_noc_cpuss_ahb_clk.clkr,
378706391eddSTaniya Das 	[GCC_TSIF_AHB_CLK] = &gcc_tsif_ahb_clk.clkr,
378806391eddSTaniya Das 	[GCC_TSIF_INACTIVITY_TIMERS_CLK] =
378906391eddSTaniya Das 					&gcc_tsif_inactivity_timers_clk.clkr,
379006391eddSTaniya Das 	[GCC_TSIF_REF_CLK] = &gcc_tsif_ref_clk.clkr,
379106391eddSTaniya Das 	[GCC_TSIF_REF_CLK_SRC] = &gcc_tsif_ref_clk_src.clkr,
379206391eddSTaniya Das 	[GCC_UFS_CARD_AHB_CLK] = &gcc_ufs_card_ahb_clk.clkr,
379306391eddSTaniya Das 	[GCC_UFS_CARD_AXI_CLK] = &gcc_ufs_card_axi_clk.clkr,
379406391eddSTaniya Das 	[GCC_UFS_CARD_AXI_CLK_SRC] = &gcc_ufs_card_axi_clk_src.clkr,
379506391eddSTaniya Das 	[GCC_UFS_CARD_CLKREF_CLK] = &gcc_ufs_card_clkref_clk.clkr,
379606391eddSTaniya Das 	[GCC_UFS_CARD_ICE_CORE_CLK] = &gcc_ufs_card_ice_core_clk.clkr,
379706391eddSTaniya Das 	[GCC_UFS_CARD_ICE_CORE_CLK_SRC] = &gcc_ufs_card_ice_core_clk_src.clkr,
379806391eddSTaniya Das 	[GCC_UFS_CARD_PHY_AUX_CLK] = &gcc_ufs_card_phy_aux_clk.clkr,
379906391eddSTaniya Das 	[GCC_UFS_CARD_PHY_AUX_CLK_SRC] = &gcc_ufs_card_phy_aux_clk_src.clkr,
380006391eddSTaniya Das 	[GCC_UFS_CARD_RX_SYMBOL_0_CLK] = &gcc_ufs_card_rx_symbol_0_clk.clkr,
380106391eddSTaniya Das 	[GCC_UFS_CARD_RX_SYMBOL_1_CLK] = &gcc_ufs_card_rx_symbol_1_clk.clkr,
380206391eddSTaniya Das 	[GCC_UFS_CARD_TX_SYMBOL_0_CLK] = &gcc_ufs_card_tx_symbol_0_clk.clkr,
380306391eddSTaniya Das 	[GCC_UFS_CARD_UNIPRO_CORE_CLK] = &gcc_ufs_card_unipro_core_clk.clkr,
380406391eddSTaniya Das 	[GCC_UFS_CARD_UNIPRO_CORE_CLK_SRC] =
380506391eddSTaniya Das 					&gcc_ufs_card_unipro_core_clk_src.clkr,
380606391eddSTaniya Das 	[GCC_UFS_MEM_CLKREF_CLK] = &gcc_ufs_mem_clkref_clk.clkr,
380706391eddSTaniya Das 	[GCC_UFS_PHY_AHB_CLK] = &gcc_ufs_phy_ahb_clk.clkr,
380806391eddSTaniya Das 	[GCC_UFS_PHY_AXI_CLK] = &gcc_ufs_phy_axi_clk.clkr,
380906391eddSTaniya Das 	[GCC_UFS_PHY_AXI_CLK_SRC] = &gcc_ufs_phy_axi_clk_src.clkr,
381006391eddSTaniya Das 	[GCC_UFS_PHY_ICE_CORE_CLK] = &gcc_ufs_phy_ice_core_clk.clkr,
381106391eddSTaniya Das 	[GCC_UFS_PHY_ICE_CORE_CLK_SRC] = &gcc_ufs_phy_ice_core_clk_src.clkr,
381206391eddSTaniya Das 	[GCC_UFS_PHY_PHY_AUX_CLK] = &gcc_ufs_phy_phy_aux_clk.clkr,
381306391eddSTaniya Das 	[GCC_UFS_PHY_PHY_AUX_CLK_SRC] = &gcc_ufs_phy_phy_aux_clk_src.clkr,
381406391eddSTaniya Das 	[GCC_UFS_PHY_RX_SYMBOL_0_CLK] = &gcc_ufs_phy_rx_symbol_0_clk.clkr,
381506391eddSTaniya Das 	[GCC_UFS_PHY_RX_SYMBOL_1_CLK] = &gcc_ufs_phy_rx_symbol_1_clk.clkr,
381606391eddSTaniya Das 	[GCC_UFS_PHY_TX_SYMBOL_0_CLK] = &gcc_ufs_phy_tx_symbol_0_clk.clkr,
381706391eddSTaniya Das 	[GCC_UFS_PHY_UNIPRO_CORE_CLK] = &gcc_ufs_phy_unipro_core_clk.clkr,
381806391eddSTaniya Das 	[GCC_UFS_PHY_UNIPRO_CORE_CLK_SRC] =
381906391eddSTaniya Das 					&gcc_ufs_phy_unipro_core_clk_src.clkr,
382006391eddSTaniya Das 	[GCC_USB30_PRIM_MASTER_CLK] = &gcc_usb30_prim_master_clk.clkr,
382106391eddSTaniya Das 	[GCC_USB30_PRIM_MASTER_CLK_SRC] = &gcc_usb30_prim_master_clk_src.clkr,
382206391eddSTaniya Das 	[GCC_USB30_PRIM_MOCK_UTMI_CLK] = &gcc_usb30_prim_mock_utmi_clk.clkr,
382306391eddSTaniya Das 	[GCC_USB30_PRIM_MOCK_UTMI_CLK_SRC] =
382406391eddSTaniya Das 					&gcc_usb30_prim_mock_utmi_clk_src.clkr,
382506391eddSTaniya Das 	[GCC_USB30_PRIM_SLEEP_CLK] = &gcc_usb30_prim_sleep_clk.clkr,
382606391eddSTaniya Das 	[GCC_USB30_SEC_MASTER_CLK] = &gcc_usb30_sec_master_clk.clkr,
382706391eddSTaniya Das 	[GCC_USB30_SEC_MASTER_CLK_SRC] = &gcc_usb30_sec_master_clk_src.clkr,
382806391eddSTaniya Das 	[GCC_USB30_SEC_MOCK_UTMI_CLK] = &gcc_usb30_sec_mock_utmi_clk.clkr,
382906391eddSTaniya Das 	[GCC_USB30_SEC_MOCK_UTMI_CLK_SRC] =
383006391eddSTaniya Das 					&gcc_usb30_sec_mock_utmi_clk_src.clkr,
383106391eddSTaniya Das 	[GCC_USB30_SEC_SLEEP_CLK] = &gcc_usb30_sec_sleep_clk.clkr,
383206391eddSTaniya Das 	[GCC_USB3_PRIM_CLKREF_CLK] = &gcc_usb3_prim_clkref_clk.clkr,
383306391eddSTaniya Das 	[GCC_USB3_PRIM_PHY_AUX_CLK] = &gcc_usb3_prim_phy_aux_clk.clkr,
383406391eddSTaniya Das 	[GCC_USB3_PRIM_PHY_AUX_CLK_SRC] = &gcc_usb3_prim_phy_aux_clk_src.clkr,
383506391eddSTaniya Das 	[GCC_USB3_PRIM_PHY_COM_AUX_CLK] = &gcc_usb3_prim_phy_com_aux_clk.clkr,
383606391eddSTaniya Das 	[GCC_USB3_PRIM_PHY_PIPE_CLK] = &gcc_usb3_prim_phy_pipe_clk.clkr,
383706391eddSTaniya Das 	[GCC_USB3_SEC_CLKREF_CLK] = &gcc_usb3_sec_clkref_clk.clkr,
383806391eddSTaniya Das 	[GCC_USB3_SEC_PHY_AUX_CLK] = &gcc_usb3_sec_phy_aux_clk.clkr,
383906391eddSTaniya Das 	[GCC_USB3_SEC_PHY_AUX_CLK_SRC] = &gcc_usb3_sec_phy_aux_clk_src.clkr,
384006391eddSTaniya Das 	[GCC_USB3_SEC_PHY_COM_AUX_CLK] = &gcc_usb3_sec_phy_com_aux_clk.clkr,
384106391eddSTaniya Das 	[GCC_USB3_SEC_PHY_PIPE_CLK] = &gcc_usb3_sec_phy_pipe_clk.clkr,
384206391eddSTaniya Das 	[GCC_USB_PHY_CFG_AHB2PHY_CLK] = &gcc_usb_phy_cfg_ahb2phy_clk.clkr,
384306391eddSTaniya Das 	[GCC_VDDA_VS_CLK] = &gcc_vdda_vs_clk.clkr,
384406391eddSTaniya Das 	[GCC_VDDCX_VS_CLK] = &gcc_vddcx_vs_clk.clkr,
384506391eddSTaniya Das 	[GCC_VDDMX_VS_CLK] = &gcc_vddmx_vs_clk.clkr,
384606391eddSTaniya Das 	[GCC_VIDEO_AHB_CLK] = &gcc_video_ahb_clk.clkr,
384706391eddSTaniya Das 	[GCC_VIDEO_AXI_CLK] = &gcc_video_axi_clk.clkr,
384806391eddSTaniya Das 	[GCC_VIDEO_XO_CLK] = &gcc_video_xo_clk.clkr,
384906391eddSTaniya Das 	[GCC_VS_CTRL_AHB_CLK] = &gcc_vs_ctrl_ahb_clk.clkr,
385006391eddSTaniya Das 	[GCC_VS_CTRL_CLK] = &gcc_vs_ctrl_clk.clkr,
385106391eddSTaniya Das 	[GCC_VS_CTRL_CLK_SRC] = &gcc_vs_ctrl_clk_src.clkr,
385206391eddSTaniya Das 	[GCC_VSENSOR_CLK_SRC] = &gcc_vsensor_clk_src.clkr,
385306391eddSTaniya Das 	[GPLL0] = &gpll0.clkr,
385406391eddSTaniya Das 	[GPLL0_OUT_EVEN] = &gpll0_out_even.clkr,
385506391eddSTaniya Das 	[GPLL4] = &gpll4.clkr,
3856cfb8282eSAmit Nischal 	[GCC_CPUSS_DVM_BUS_CLK] = &gcc_cpuss_dvm_bus_clk.clkr,
3857cfb8282eSAmit Nischal 	[GCC_CPUSS_GNOC_CLK] = &gcc_cpuss_gnoc_clk.clkr,
38584f83d9b8SDouglas Anderson 	[GCC_QSPI_CORE_CLK_SRC] = &gcc_qspi_core_clk_src.clkr,
38594f83d9b8SDouglas Anderson 	[GCC_QSPI_CORE_CLK] = &gcc_qspi_core_clk.clkr,
38604f83d9b8SDouglas Anderson 	[GCC_QSPI_CNOC_PERIPH_AHB_CLK] = &gcc_qspi_cnoc_periph_ahb_clk.clkr,
38618d3e5b9cSTaniya Das #ifdef CONFIG_SDM_LPASSCC_845
38628d3e5b9cSTaniya Das 	[GCC_LPASS_Q6_AXI_CLK] = &gcc_lpass_q6_axi_clk.clkr,
38638d3e5b9cSTaniya Das 	[GCC_LPASS_SWAY_CLK] = &gcc_lpass_sway_clk.clkr,
38648d3e5b9cSTaniya Das #endif
386506391eddSTaniya Das };
386606391eddSTaniya Das 
386706391eddSTaniya Das static const struct qcom_reset_map gcc_sdm845_resets[] = {
386806391eddSTaniya Das 	[GCC_MMSS_BCR] = { 0xb000 },
386906391eddSTaniya Das 	[GCC_PCIE_0_BCR] = { 0x6b000 },
387006391eddSTaniya Das 	[GCC_PCIE_1_BCR] = { 0x8d000 },
387106391eddSTaniya Das 	[GCC_PCIE_PHY_BCR] = { 0x6f000 },
387206391eddSTaniya Das 	[GCC_PDM_BCR] = { 0x33000 },
387306391eddSTaniya Das 	[GCC_PRNG_BCR] = { 0x34000 },
387406391eddSTaniya Das 	[GCC_QUPV3_WRAPPER_0_BCR] = { 0x17000 },
387506391eddSTaniya Das 	[GCC_QUPV3_WRAPPER_1_BCR] = { 0x18000 },
387606391eddSTaniya Das 	[GCC_QUSB2PHY_PRIM_BCR] = { 0x12000 },
387706391eddSTaniya Das 	[GCC_QUSB2PHY_SEC_BCR] = { 0x12004 },
387806391eddSTaniya Das 	[GCC_SDCC2_BCR] = { 0x14000 },
387906391eddSTaniya Das 	[GCC_SDCC4_BCR] = { 0x16000 },
388006391eddSTaniya Das 	[GCC_TSIF_BCR] = { 0x36000 },
388106391eddSTaniya Das 	[GCC_UFS_CARD_BCR] = { 0x75000 },
388206391eddSTaniya Das 	[GCC_UFS_PHY_BCR] = { 0x77000 },
388306391eddSTaniya Das 	[GCC_USB30_PRIM_BCR] = { 0xf000 },
388406391eddSTaniya Das 	[GCC_USB30_SEC_BCR] = { 0x10000 },
388506391eddSTaniya Das 	[GCC_USB3_PHY_PRIM_BCR] = { 0x50000 },
388606391eddSTaniya Das 	[GCC_USB3PHY_PHY_PRIM_BCR] = { 0x50004 },
388706391eddSTaniya Das 	[GCC_USB3_DP_PHY_PRIM_BCR] = { 0x50008 },
388806391eddSTaniya Das 	[GCC_USB3_PHY_SEC_BCR] = { 0x5000c },
388906391eddSTaniya Das 	[GCC_USB3PHY_PHY_SEC_BCR] = { 0x50010 },
389006391eddSTaniya Das 	[GCC_USB3_DP_PHY_SEC_BCR] = { 0x50014 },
389106391eddSTaniya Das 	[GCC_USB_PHY_CFG_AHB2PHY_BCR] = { 0x6a000 },
389206391eddSTaniya Das 	[GCC_PCIE_0_PHY_BCR] = { 0x6c01c },
389306391eddSTaniya Das 	[GCC_PCIE_1_PHY_BCR] = { 0x8e01c },
389406391eddSTaniya Das };
389506391eddSTaniya Das 
3896ae66b1feSRichard Acayan static struct gdsc *gcc_sdm670_gdscs[] = {
3897ae66b1feSRichard Acayan 	[UFS_PHY_GDSC] = &ufs_phy_gdsc,
3898ae66b1feSRichard Acayan 	[USB30_PRIM_GDSC] = &usb30_prim_gdsc,
3899ae66b1feSRichard Acayan 	[HLOS1_VOTE_AGGRE_NOC_MMU_AUDIO_TBU_GDSC] =
3900ae66b1feSRichard Acayan 			&hlos1_vote_aggre_noc_mmu_audio_tbu_gdsc,
3901ae66b1feSRichard Acayan 	[HLOS1_VOTE_AGGRE_NOC_MMU_TBU1_GDSC] =
3902ae66b1feSRichard Acayan 			&hlos1_vote_aggre_noc_mmu_tbu1_gdsc,
3903ae66b1feSRichard Acayan 	[HLOS1_VOTE_AGGRE_NOC_MMU_TBU2_GDSC] =
3904ae66b1feSRichard Acayan 			&hlos1_vote_aggre_noc_mmu_tbu2_gdsc,
3905ae66b1feSRichard Acayan 	[HLOS1_VOTE_MMNOC_MMU_TBU_HF0_GDSC] =
3906ae66b1feSRichard Acayan 			&hlos1_vote_mmnoc_mmu_tbu_hf0_gdsc,
3907ae66b1feSRichard Acayan 	[HLOS1_VOTE_MMNOC_MMU_TBU_HF1_GDSC] =
3908ae66b1feSRichard Acayan 			&hlos1_vote_mmnoc_mmu_tbu_hf1_gdsc,
3909ae66b1feSRichard Acayan 	[HLOS1_VOTE_MMNOC_MMU_TBU_SF_GDSC] = &hlos1_vote_mmnoc_mmu_tbu_sf_gdsc,
3910ae66b1feSRichard Acayan };
3911ae66b1feSRichard Acayan 
391206391eddSTaniya Das static struct gdsc *gcc_sdm845_gdscs[] = {
391306391eddSTaniya Das 	[PCIE_0_GDSC] = &pcie_0_gdsc,
391406391eddSTaniya Das 	[PCIE_1_GDSC] = &pcie_1_gdsc,
391506391eddSTaniya Das 	[UFS_CARD_GDSC] = &ufs_card_gdsc,
391606391eddSTaniya Das 	[UFS_PHY_GDSC] = &ufs_phy_gdsc,
391706391eddSTaniya Das 	[USB30_PRIM_GDSC] = &usb30_prim_gdsc,
391806391eddSTaniya Das 	[USB30_SEC_GDSC] = &usb30_sec_gdsc,
391906391eddSTaniya Das 	[HLOS1_VOTE_AGGRE_NOC_MMU_AUDIO_TBU_GDSC] =
392006391eddSTaniya Das 			&hlos1_vote_aggre_noc_mmu_audio_tbu_gdsc,
392106391eddSTaniya Das 	[HLOS1_VOTE_AGGRE_NOC_MMU_PCIE_TBU_GDSC] =
392206391eddSTaniya Das 			&hlos1_vote_aggre_noc_mmu_pcie_tbu_gdsc,
392306391eddSTaniya Das 	[HLOS1_VOTE_AGGRE_NOC_MMU_TBU1_GDSC] =
392406391eddSTaniya Das 			&hlos1_vote_aggre_noc_mmu_tbu1_gdsc,
392506391eddSTaniya Das 	[HLOS1_VOTE_AGGRE_NOC_MMU_TBU2_GDSC] =
392606391eddSTaniya Das 			&hlos1_vote_aggre_noc_mmu_tbu2_gdsc,
392706391eddSTaniya Das 	[HLOS1_VOTE_MMNOC_MMU_TBU_HF0_GDSC] =
392806391eddSTaniya Das 			&hlos1_vote_mmnoc_mmu_tbu_hf0_gdsc,
392906391eddSTaniya Das 	[HLOS1_VOTE_MMNOC_MMU_TBU_HF1_GDSC] =
393006391eddSTaniya Das 			&hlos1_vote_mmnoc_mmu_tbu_hf1_gdsc,
393106391eddSTaniya Das 	[HLOS1_VOTE_MMNOC_MMU_TBU_SF_GDSC] = &hlos1_vote_mmnoc_mmu_tbu_sf_gdsc,
393206391eddSTaniya Das };
393306391eddSTaniya Das 
393406391eddSTaniya Das static const struct regmap_config gcc_sdm845_regmap_config = {
393506391eddSTaniya Das 	.reg_bits	= 32,
393606391eddSTaniya Das 	.reg_stride	= 4,
393706391eddSTaniya Das 	.val_bits	= 32,
393806391eddSTaniya Das 	.max_register	= 0x182090,
393906391eddSTaniya Das 	.fast_io	= true,
394006391eddSTaniya Das };
394106391eddSTaniya Das 
3942ae66b1feSRichard Acayan static const struct qcom_cc_desc gcc_sdm670_desc = {
3943ae66b1feSRichard Acayan 	.config = &gcc_sdm845_regmap_config,
3944ae66b1feSRichard Acayan 	.clks = gcc_sdm670_clocks,
3945ae66b1feSRichard Acayan 	.num_clks = ARRAY_SIZE(gcc_sdm670_clocks),
3946ae66b1feSRichard Acayan 	/* Snapdragon 670 can function without its own exclusive resets. */
3947ae66b1feSRichard Acayan 	.resets = gcc_sdm845_resets,
3948ae66b1feSRichard Acayan 	.num_resets = ARRAY_SIZE(gcc_sdm845_resets),
3949ae66b1feSRichard Acayan 	.gdscs = gcc_sdm670_gdscs,
3950ae66b1feSRichard Acayan 	.num_gdscs = ARRAY_SIZE(gcc_sdm670_gdscs),
3951ae66b1feSRichard Acayan };
3952ae66b1feSRichard Acayan 
395306391eddSTaniya Das static const struct qcom_cc_desc gcc_sdm845_desc = {
395406391eddSTaniya Das 	.config = &gcc_sdm845_regmap_config,
395506391eddSTaniya Das 	.clks = gcc_sdm845_clocks,
395606391eddSTaniya Das 	.num_clks = ARRAY_SIZE(gcc_sdm845_clocks),
395706391eddSTaniya Das 	.resets = gcc_sdm845_resets,
395806391eddSTaniya Das 	.num_resets = ARRAY_SIZE(gcc_sdm845_resets),
395906391eddSTaniya Das 	.gdscs = gcc_sdm845_gdscs,
396006391eddSTaniya Das 	.num_gdscs = ARRAY_SIZE(gcc_sdm845_gdscs),
396106391eddSTaniya Das };
396206391eddSTaniya Das 
396306391eddSTaniya Das static const struct of_device_id gcc_sdm845_match_table[] = {
3964ae66b1feSRichard Acayan 	{ .compatible = "qcom,gcc-sdm670", .data = &gcc_sdm670_desc },
39658e90216dSRichard Acayan 	{ .compatible = "qcom,gcc-sdm845", .data = &gcc_sdm845_desc },
396606391eddSTaniya Das 	{ }
396706391eddSTaniya Das };
396806391eddSTaniya Das MODULE_DEVICE_TABLE(of, gcc_sdm845_match_table);
396906391eddSTaniya Das 
39708b69c6dbSTaniya Das static const struct clk_rcg_dfs_data gcc_dfs_clocks[] = {
39711a1c7821STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s0_clk_src),
39721a1c7821STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s1_clk_src),
39731a1c7821STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s2_clk_src),
39741a1c7821STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s3_clk_src),
39751a1c7821STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s4_clk_src),
39761a1c7821STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s5_clk_src),
39771a1c7821STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s6_clk_src),
39781a1c7821STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s7_clk_src),
39791a1c7821STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s0_clk_src),
39801a1c7821STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s1_clk_src),
39811a1c7821STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s2_clk_src),
39821a1c7821STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s3_clk_src),
39831a1c7821STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s4_clk_src),
39841a1c7821STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s5_clk_src),
39851a1c7821STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s6_clk_src),
39861a1c7821STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s7_clk_src),
39878b69c6dbSTaniya Das };
39888b69c6dbSTaniya Das 
gcc_sdm845_probe(struct platform_device * pdev)398906391eddSTaniya Das static int gcc_sdm845_probe(struct platform_device *pdev)
399006391eddSTaniya Das {
39918e90216dSRichard Acayan 	const struct qcom_cc_desc *gcc_desc;
399206391eddSTaniya Das 	struct regmap *regmap;
39938b69c6dbSTaniya Das 	int ret;
399406391eddSTaniya Das 
399506391eddSTaniya Das 	regmap = qcom_cc_map(pdev, &gcc_sdm845_desc);
399606391eddSTaniya Das 	if (IS_ERR(regmap))
399706391eddSTaniya Das 		return PTR_ERR(regmap);
399806391eddSTaniya Das 
399906391eddSTaniya Das 	/* Disable the GPLL0 active input to MMSS and GPU via MISC registers */
400006391eddSTaniya Das 	regmap_update_bits(regmap, 0x09ffc, 0x3, 0x3);
400106391eddSTaniya Das 	regmap_update_bits(regmap, 0x71028, 0x3, 0x3);
400206391eddSTaniya Das 
40038b69c6dbSTaniya Das 	ret = qcom_cc_register_rcg_dfs(regmap, gcc_dfs_clocks,
40048b69c6dbSTaniya Das 					ARRAY_SIZE(gcc_dfs_clocks));
40058b69c6dbSTaniya Das 	if (ret)
40068b69c6dbSTaniya Das 		return ret;
40078b69c6dbSTaniya Das 
40088e90216dSRichard Acayan 	gcc_desc = of_device_get_match_data(&pdev->dev);
40099f93a0a4SLuo Jie 	return qcom_cc_really_probe(&pdev->dev, gcc_desc, regmap);
401006391eddSTaniya Das }
401106391eddSTaniya Das 
401206391eddSTaniya Das static struct platform_driver gcc_sdm845_driver = {
401306391eddSTaniya Das 	.probe		= gcc_sdm845_probe,
401406391eddSTaniya Das 	.driver		= {
401506391eddSTaniya Das 		.name	= "gcc-sdm845",
401606391eddSTaniya Das 		.of_match_table = gcc_sdm845_match_table,
401706391eddSTaniya Das 	},
401806391eddSTaniya Das };
401906391eddSTaniya Das 
gcc_sdm845_init(void)402006391eddSTaniya Das static int __init gcc_sdm845_init(void)
402106391eddSTaniya Das {
402206391eddSTaniya Das 	return platform_driver_register(&gcc_sdm845_driver);
402306391eddSTaniya Das }
4024b418bab4SAmit Kucheria core_initcall(gcc_sdm845_init);
402506391eddSTaniya Das 
gcc_sdm845_exit(void)402606391eddSTaniya Das static void __exit gcc_sdm845_exit(void)
402706391eddSTaniya Das {
402806391eddSTaniya Das 	platform_driver_unregister(&gcc_sdm845_driver);
402906391eddSTaniya Das }
403006391eddSTaniya Das module_exit(gcc_sdm845_exit);
403106391eddSTaniya Das 
403206391eddSTaniya Das MODULE_DESCRIPTION("QTI GCC SDM845 Driver");
403306391eddSTaniya Das MODULE_LICENSE("GPL v2");
403406391eddSTaniya Das MODULE_ALIAS("platform:gcc-sdm845");
40351d9054e3SAmit Pundir MODULE_SOFTDEP("pre: rpmhpd");
4036