xref: /linux/drivers/clk/qcom/ecpricc-qdu1000.c (revision a1ff5a7d78a036d6c2178ee5acd6ba4946243800)
1e146252aSImran Shaik // SPDX-License-Identifier: GPL-2.0-only
2e146252aSImran Shaik /*
3e146252aSImran Shaik  * Copyright (c) 2022-2023, Qualcomm Innovation Center, Inc. All rights reserved.
4e146252aSImran Shaik  */
5e146252aSImran Shaik 
6e146252aSImran Shaik #include <linux/clk-provider.h>
7e146252aSImran Shaik #include <linux/mod_devicetable.h>
8e146252aSImran Shaik #include <linux/module.h>
9e146252aSImran Shaik #include <linux/platform_device.h>
10e146252aSImran Shaik #include <linux/regmap.h>
11e146252aSImran Shaik 
12e146252aSImran Shaik #include <dt-bindings/clock/qcom,qdu1000-ecpricc.h>
13e146252aSImran Shaik 
14e146252aSImran Shaik #include "clk-alpha-pll.h"
15e146252aSImran Shaik #include "clk-branch.h"
16e146252aSImran Shaik #include "clk-rcg.h"
17e146252aSImran Shaik #include "clk-regmap.h"
18e146252aSImran Shaik #include "clk-regmap-divider.h"
19e146252aSImran Shaik #include "clk-regmap-mux.h"
20e146252aSImran Shaik #include "common.h"
21e146252aSImran Shaik #include "reset.h"
22e146252aSImran Shaik 
23e146252aSImran Shaik enum {
24e146252aSImran Shaik 	DT_BI_TCXO,
25e146252aSImran Shaik 	DT_GCC_ECPRI_CC_GPLL0_OUT_MAIN,
26e146252aSImran Shaik 	DT_GCC_ECPRI_CC_GPLL1_OUT_EVEN,
27e146252aSImran Shaik 	DT_GCC_ECPRI_CC_GPLL2_OUT_MAIN,
28e146252aSImran Shaik 	DT_GCC_ECPRI_CC_GPLL3_OUT_MAIN,
29e146252aSImran Shaik 	DT_GCC_ECPRI_CC_GPLL4_OUT_MAIN,
30e146252aSImran Shaik 	DT_GCC_ECPRI_CC_GPLL5_OUT_EVEN,
31e146252aSImran Shaik };
32e146252aSImran Shaik 
33e146252aSImran Shaik enum {
34e146252aSImran Shaik 	P_BI_TCXO,
35e146252aSImran Shaik 	P_ECPRI_CC_PLL0_OUT_MAIN,
36e146252aSImran Shaik 	P_ECPRI_CC_PLL1_OUT_MAIN,
37e146252aSImran Shaik 	P_GCC_ECPRI_CC_GPLL0_OUT_MAIN,
38e146252aSImran Shaik 	P_GCC_ECPRI_CC_GPLL1_OUT_EVEN,
39e146252aSImran Shaik 	P_GCC_ECPRI_CC_GPLL2_OUT_MAIN,
40e146252aSImran Shaik 	P_GCC_ECPRI_CC_GPLL3_OUT_MAIN,
41e146252aSImran Shaik 	P_GCC_ECPRI_CC_GPLL4_OUT_MAIN,
42e146252aSImran Shaik 	P_GCC_ECPRI_CC_GPLL5_OUT_EVEN,
43e146252aSImran Shaik };
44e146252aSImran Shaik 
45e146252aSImran Shaik static const struct pll_vco lucid_evo_vco[] = {
46e146252aSImran Shaik 	{ 249600000, 2020000000, 0 },
47e146252aSImran Shaik };
48e146252aSImran Shaik 
49e146252aSImran Shaik /* 700 MHz configuration */
50e146252aSImran Shaik static const struct alpha_pll_config ecpri_cc_pll0_config = {
51e146252aSImran Shaik 	.l = 0x24,
52e146252aSImran Shaik 	.alpha = 0x7555,
53e146252aSImran Shaik 	.config_ctl_val = 0x20485699,
54e146252aSImran Shaik 	.config_ctl_hi_val = 0x00182261,
55e146252aSImran Shaik 	.config_ctl_hi1_val = 0x32aa299c,
56e146252aSImran Shaik 	.user_ctl_val = 0x00000000,
57e146252aSImran Shaik 	.user_ctl_hi_val = 0x00000805,
58e146252aSImran Shaik };
59e146252aSImran Shaik 
60e146252aSImran Shaik static struct clk_alpha_pll ecpri_cc_pll0 = {
61e146252aSImran Shaik 	.offset = 0x0,
62e146252aSImran Shaik 	.vco_table = lucid_evo_vco,
63e146252aSImran Shaik 	.num_vco = ARRAY_SIZE(lucid_evo_vco),
64e146252aSImran Shaik 	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_EVO],
65e146252aSImran Shaik 	.clkr = {
66e146252aSImran Shaik 		.enable_reg = 0x0,
67e146252aSImran Shaik 		.enable_mask = BIT(0),
68e146252aSImran Shaik 		.hw.init = &(const struct clk_init_data) {
69e146252aSImran Shaik 			.name = "ecpri_cc_pll0",
70e146252aSImran Shaik 			.parent_data = &(const struct clk_parent_data) {
71e146252aSImran Shaik 				.index = DT_BI_TCXO,
72e146252aSImran Shaik 			},
73e146252aSImran Shaik 			.num_parents = 1,
74e146252aSImran Shaik 			.ops = &clk_alpha_pll_fixed_lucid_evo_ops,
75e146252aSImran Shaik 		},
76e146252aSImran Shaik 	},
77e146252aSImran Shaik };
78e146252aSImran Shaik 
79e146252aSImran Shaik /* 806 MHz configuration */
80e146252aSImran Shaik static const struct alpha_pll_config ecpri_cc_pll1_config = {
81e146252aSImran Shaik 	.l = 0x29,
82e146252aSImran Shaik 	.alpha = 0xfaaa,
83e146252aSImran Shaik 	.config_ctl_val = 0x20485699,
84e146252aSImran Shaik 	.config_ctl_hi_val = 0x00182261,
85e146252aSImran Shaik 	.config_ctl_hi1_val = 0x32aa299c,
86e146252aSImran Shaik 	.user_ctl_val = 0x00000000,
87e146252aSImran Shaik 	.user_ctl_hi_val = 0x00000805,
88e146252aSImran Shaik };
89e146252aSImran Shaik 
90e146252aSImran Shaik static struct clk_alpha_pll ecpri_cc_pll1 = {
91e146252aSImran Shaik 	.offset = 0x1000,
92e146252aSImran Shaik 	.vco_table = lucid_evo_vco,
93e146252aSImran Shaik 	.num_vco = ARRAY_SIZE(lucid_evo_vco),
94e146252aSImran Shaik 	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_EVO],
95e146252aSImran Shaik 	.clkr = {
96e146252aSImran Shaik 		.enable_reg = 0x0,
97e146252aSImran Shaik 		.enable_mask = BIT(1),
98e146252aSImran Shaik 		.hw.init = &(const struct clk_init_data) {
99e146252aSImran Shaik 			.name = "ecpri_cc_pll1",
100e146252aSImran Shaik 			.parent_data = &(const struct clk_parent_data) {
101e146252aSImran Shaik 				.index = DT_BI_TCXO,
102e146252aSImran Shaik 			},
103e146252aSImran Shaik 			.num_parents = 1,
104e146252aSImran Shaik 			.ops = &clk_alpha_pll_fixed_lucid_evo_ops,
105e146252aSImran Shaik 		},
106e146252aSImran Shaik 	},
107e146252aSImran Shaik };
108e146252aSImran Shaik 
109e146252aSImran Shaik static const struct parent_map ecpri_cc_parent_map_0[] = {
110e146252aSImran Shaik 	{ P_BI_TCXO, 0 },
111e146252aSImran Shaik 	{ P_GCC_ECPRI_CC_GPLL0_OUT_MAIN, 1 },
112e146252aSImran Shaik 	{ P_GCC_ECPRI_CC_GPLL2_OUT_MAIN, 2 },
113e146252aSImran Shaik 	{ P_GCC_ECPRI_CC_GPLL5_OUT_EVEN, 3 },
114e146252aSImran Shaik 	{ P_ECPRI_CC_PLL1_OUT_MAIN, 4 },
115e146252aSImran Shaik 	{ P_GCC_ECPRI_CC_GPLL4_OUT_MAIN, 5 },
116e146252aSImran Shaik 	{ P_ECPRI_CC_PLL0_OUT_MAIN, 6 },
117e146252aSImran Shaik };
118e146252aSImran Shaik 
119e146252aSImran Shaik static const struct clk_parent_data ecpri_cc_parent_data_0[] = {
120e146252aSImran Shaik 	{ .index = DT_BI_TCXO },
121e146252aSImran Shaik 	{ .index = DT_GCC_ECPRI_CC_GPLL0_OUT_MAIN },
122e146252aSImran Shaik 	{ .index = DT_GCC_ECPRI_CC_GPLL2_OUT_MAIN },
123e146252aSImran Shaik 	{ .index = DT_GCC_ECPRI_CC_GPLL5_OUT_EVEN },
124e146252aSImran Shaik 	{ .hw = &ecpri_cc_pll1.clkr.hw },
125e146252aSImran Shaik 	{ .index = DT_GCC_ECPRI_CC_GPLL4_OUT_MAIN },
126e146252aSImran Shaik 	{ .hw = &ecpri_cc_pll0.clkr.hw },
127e146252aSImran Shaik };
128e146252aSImran Shaik 
129e146252aSImran Shaik static const struct parent_map ecpri_cc_parent_map_1[] = {
130e146252aSImran Shaik 	{ P_BI_TCXO, 0 },
131e146252aSImran Shaik 	{ P_GCC_ECPRI_CC_GPLL0_OUT_MAIN, 1 },
132e146252aSImran Shaik 	{ P_GCC_ECPRI_CC_GPLL1_OUT_EVEN, 2 },
133e146252aSImran Shaik 	{ P_GCC_ECPRI_CC_GPLL3_OUT_MAIN, 3 },
134e146252aSImran Shaik 	{ P_ECPRI_CC_PLL1_OUT_MAIN, 4 },
135e146252aSImran Shaik 	{ P_GCC_ECPRI_CC_GPLL4_OUT_MAIN, 5 },
136e146252aSImran Shaik 	{ P_ECPRI_CC_PLL0_OUT_MAIN, 6 },
137e146252aSImran Shaik };
138e146252aSImran Shaik 
139e146252aSImran Shaik static const struct clk_parent_data ecpri_cc_parent_data_1[] = {
140e146252aSImran Shaik 	{ .index = DT_BI_TCXO },
141e146252aSImran Shaik 	{ .index = DT_GCC_ECPRI_CC_GPLL0_OUT_MAIN },
142e146252aSImran Shaik 	{ .index = DT_GCC_ECPRI_CC_GPLL1_OUT_EVEN },
143e146252aSImran Shaik 	{ .index = DT_GCC_ECPRI_CC_GPLL3_OUT_MAIN },
144e146252aSImran Shaik 	{ .hw = &ecpri_cc_pll1.clkr.hw },
145e146252aSImran Shaik 	{ .index = DT_GCC_ECPRI_CC_GPLL4_OUT_MAIN },
146e146252aSImran Shaik 	{ .hw = &ecpri_cc_pll0.clkr.hw },
147e146252aSImran Shaik };
148e146252aSImran Shaik 
149e146252aSImran Shaik static const struct parent_map ecpri_cc_parent_map_2[] = {
150e146252aSImran Shaik 	{ P_BI_TCXO, 0 },
151e146252aSImran Shaik 	{ P_GCC_ECPRI_CC_GPLL0_OUT_MAIN, 1 },
152e146252aSImran Shaik 	{ P_GCC_ECPRI_CC_GPLL5_OUT_EVEN, 3 },
153e146252aSImran Shaik 	{ P_ECPRI_CC_PLL1_OUT_MAIN, 4 },
154e146252aSImran Shaik 	{ P_GCC_ECPRI_CC_GPLL4_OUT_MAIN, 5 },
155e146252aSImran Shaik 	{ P_ECPRI_CC_PLL0_OUT_MAIN, 6 },
156e146252aSImran Shaik };
157e146252aSImran Shaik 
158e146252aSImran Shaik static const struct clk_parent_data ecpri_cc_parent_data_2[] = {
159e146252aSImran Shaik 	{ .index = DT_BI_TCXO },
160e146252aSImran Shaik 	{ .index = DT_GCC_ECPRI_CC_GPLL0_OUT_MAIN },
161e146252aSImran Shaik 	{ .index = DT_GCC_ECPRI_CC_GPLL5_OUT_EVEN },
162e146252aSImran Shaik 	{ .hw = &ecpri_cc_pll1.clkr.hw },
163e146252aSImran Shaik 	{ .index = DT_GCC_ECPRI_CC_GPLL4_OUT_MAIN },
164e146252aSImran Shaik 	{ .hw = &ecpri_cc_pll0.clkr.hw },
165e146252aSImran Shaik };
166e146252aSImran Shaik 
167e146252aSImran Shaik static const struct freq_tbl ftbl_ecpri_cc_ecpri_clk_src[] = {
168e146252aSImran Shaik 	F(466500000, P_GCC_ECPRI_CC_GPLL5_OUT_EVEN, 1, 0, 0),
169e146252aSImran Shaik 	{ }
170e146252aSImran Shaik };
171e146252aSImran Shaik 
172e146252aSImran Shaik static struct clk_rcg2 ecpri_cc_ecpri_clk_src = {
173e146252aSImran Shaik 	.cmd_rcgr = 0x9034,
174e146252aSImran Shaik 	.mnd_width = 0,
175e146252aSImran Shaik 	.hid_width = 5,
176e146252aSImran Shaik 	.parent_map = ecpri_cc_parent_map_2,
177e146252aSImran Shaik 	.freq_tbl = ftbl_ecpri_cc_ecpri_clk_src,
178e146252aSImran Shaik 	.clkr.hw.init = &(const struct clk_init_data) {
179e146252aSImran Shaik 		.name = "ecpri_cc_ecpri_clk_src",
180e146252aSImran Shaik 		.parent_data = ecpri_cc_parent_data_2,
181e146252aSImran Shaik 		.num_parents = ARRAY_SIZE(ecpri_cc_parent_data_2),
182e146252aSImran Shaik 		.ops = &clk_rcg2_shared_ops,
183e146252aSImran Shaik 	},
184e146252aSImran Shaik };
185e146252aSImran Shaik 
186e146252aSImran Shaik static const struct freq_tbl ftbl_ecpri_cc_ecpri_dma_clk_src[] = {
187e146252aSImran Shaik 	F(466500000, P_GCC_ECPRI_CC_GPLL5_OUT_EVEN, 1, 0, 0),
188e146252aSImran Shaik 	F(500000000, P_GCC_ECPRI_CC_GPLL2_OUT_MAIN, 1, 0, 0),
189e146252aSImran Shaik 	{ }
190e146252aSImran Shaik };
191e146252aSImran Shaik 
192e146252aSImran Shaik static struct clk_rcg2 ecpri_cc_ecpri_dma_clk_src = {
193e146252aSImran Shaik 	.cmd_rcgr = 0x9080,
194e146252aSImran Shaik 	.mnd_width = 0,
195e146252aSImran Shaik 	.hid_width = 5,
196e146252aSImran Shaik 	.parent_map = ecpri_cc_parent_map_0,
197e146252aSImran Shaik 	.freq_tbl = ftbl_ecpri_cc_ecpri_dma_clk_src,
198e146252aSImran Shaik 	.clkr.hw.init = &(const struct clk_init_data) {
199e146252aSImran Shaik 		.name = "ecpri_cc_ecpri_dma_clk_src",
200e146252aSImran Shaik 		.parent_data = ecpri_cc_parent_data_0,
201e146252aSImran Shaik 		.num_parents = ARRAY_SIZE(ecpri_cc_parent_data_0),
202e146252aSImran Shaik 		.ops = &clk_rcg2_shared_ops,
203e146252aSImran Shaik 	},
204e146252aSImran Shaik };
205e146252aSImran Shaik 
206e146252aSImran Shaik static const struct freq_tbl ftbl_ecpri_cc_ecpri_fast_clk_src[] = {
207e146252aSImran Shaik 	F(500000000, P_GCC_ECPRI_CC_GPLL2_OUT_MAIN, 1, 0, 0),
208e146252aSImran Shaik 	F(600000000, P_GCC_ECPRI_CC_GPLL0_OUT_MAIN, 1, 0, 0),
209e146252aSImran Shaik 	{ }
210e146252aSImran Shaik };
211e146252aSImran Shaik 
212e146252aSImran Shaik static struct clk_rcg2 ecpri_cc_ecpri_fast_clk_src = {
213e146252aSImran Shaik 	.cmd_rcgr = 0x904c,
214e146252aSImran Shaik 	.mnd_width = 0,
215e146252aSImran Shaik 	.hid_width = 5,
216e146252aSImran Shaik 	.parent_map = ecpri_cc_parent_map_0,
217e146252aSImran Shaik 	.freq_tbl = ftbl_ecpri_cc_ecpri_fast_clk_src,
218e146252aSImran Shaik 	.clkr.hw.init = &(const struct clk_init_data) {
219e146252aSImran Shaik 		.name = "ecpri_cc_ecpri_fast_clk_src",
220e146252aSImran Shaik 		.parent_data = ecpri_cc_parent_data_0,
221e146252aSImran Shaik 		.num_parents = ARRAY_SIZE(ecpri_cc_parent_data_0),
222e146252aSImran Shaik 		.ops = &clk_rcg2_shared_ops,
223e146252aSImran Shaik 	},
224e146252aSImran Shaik };
225e146252aSImran Shaik 
226e146252aSImran Shaik static const struct freq_tbl ftbl_ecpri_cc_ecpri_oran_clk_src[] = {
227e146252aSImran Shaik 	F(500000000, P_GCC_ECPRI_CC_GPLL2_OUT_MAIN, 1, 0, 0),
228e146252aSImran Shaik 	{ }
229e146252aSImran Shaik };
230e146252aSImran Shaik 
231e146252aSImran Shaik static struct clk_rcg2 ecpri_cc_ecpri_oran_clk_src = {
232e146252aSImran Shaik 	.cmd_rcgr = 0x9064,
233e146252aSImran Shaik 	.mnd_width = 0,
234e146252aSImran Shaik 	.hid_width = 5,
235e146252aSImran Shaik 	.parent_map = ecpri_cc_parent_map_0,
236e146252aSImran Shaik 	.freq_tbl = ftbl_ecpri_cc_ecpri_oran_clk_src,
237e146252aSImran Shaik 	.clkr.hw.init = &(const struct clk_init_data) {
238e146252aSImran Shaik 		.name = "ecpri_cc_ecpri_oran_clk_src",
239e146252aSImran Shaik 		.parent_data = ecpri_cc_parent_data_0,
240e146252aSImran Shaik 		.num_parents = ARRAY_SIZE(ecpri_cc_parent_data_0),
241e146252aSImran Shaik 		.ops = &clk_rcg2_shared_ops,
242e146252aSImran Shaik 	},
243e146252aSImran Shaik };
244e146252aSImran Shaik 
245e146252aSImran Shaik static const struct freq_tbl ftbl_ecpri_cc_eth_100g_c2c0_hm_ff_clk_src[] = {
246e146252aSImran Shaik 	F(201500000, P_ECPRI_CC_PLL1_OUT_MAIN, 4, 0, 0),
247e146252aSImran Shaik 	F(403000000, P_ECPRI_CC_PLL1_OUT_MAIN, 2, 0, 0),
248e146252aSImran Shaik 	F(466500000, P_GCC_ECPRI_CC_GPLL5_OUT_EVEN, 1, 0, 0),
249e146252aSImran Shaik 	{ }
250e146252aSImran Shaik };
251e146252aSImran Shaik 
252e146252aSImran Shaik static struct clk_rcg2 ecpri_cc_eth_100g_c2c0_hm_ff_clk_src = {
253e146252aSImran Shaik 	.cmd_rcgr = 0x81b0,
254e146252aSImran Shaik 	.mnd_width = 0,
255e146252aSImran Shaik 	.hid_width = 5,
256e146252aSImran Shaik 	.parent_map = ecpri_cc_parent_map_0,
257e146252aSImran Shaik 	.freq_tbl = ftbl_ecpri_cc_eth_100g_c2c0_hm_ff_clk_src,
258e146252aSImran Shaik 	.clkr.hw.init = &(const struct clk_init_data) {
259e146252aSImran Shaik 		.name = "ecpri_cc_eth_100g_c2c0_hm_ff_clk_src",
260e146252aSImran Shaik 		.parent_data = ecpri_cc_parent_data_0,
261e146252aSImran Shaik 		.num_parents = ARRAY_SIZE(ecpri_cc_parent_data_0),
262e146252aSImran Shaik 		.ops = &clk_rcg2_shared_ops,
263e146252aSImran Shaik 	},
264e146252aSImran Shaik };
265e146252aSImran Shaik 
266e146252aSImran Shaik static const struct freq_tbl ftbl_ecpri_cc_eth_100g_c2c_hm_macsec_clk_src[] = {
267e146252aSImran Shaik 	F(100000000, P_GCC_ECPRI_CC_GPLL0_OUT_MAIN, 6, 0, 0),
268e146252aSImran Shaik 	F(200000000, P_GCC_ECPRI_CC_GPLL0_OUT_MAIN, 3, 0, 0),
269e146252aSImran Shaik 	{ }
270e146252aSImran Shaik };
271e146252aSImran Shaik 
272e146252aSImran Shaik static struct clk_rcg2 ecpri_cc_eth_100g_c2c_hm_macsec_clk_src = {
273e146252aSImran Shaik 	.cmd_rcgr = 0x8150,
274e146252aSImran Shaik 	.mnd_width = 0,
275e146252aSImran Shaik 	.hid_width = 5,
276e146252aSImran Shaik 	.parent_map = ecpri_cc_parent_map_0,
277e146252aSImran Shaik 	.freq_tbl = ftbl_ecpri_cc_eth_100g_c2c_hm_macsec_clk_src,
278e146252aSImran Shaik 	.clkr.hw.init = &(const struct clk_init_data) {
279e146252aSImran Shaik 		.name = "ecpri_cc_eth_100g_c2c_hm_macsec_clk_src",
280e146252aSImran Shaik 		.parent_data = ecpri_cc_parent_data_0,
281e146252aSImran Shaik 		.num_parents = ARRAY_SIZE(ecpri_cc_parent_data_0),
282e146252aSImran Shaik 		.ops = &clk_rcg2_shared_ops,
283e146252aSImran Shaik 	},
284e146252aSImran Shaik };
285e146252aSImran Shaik 
286e146252aSImran Shaik static struct clk_rcg2 ecpri_cc_eth_100g_dbg_c2c_hm_ff_clk_src = {
287e146252aSImran Shaik 	.cmd_rcgr = 0x81c8,
288e146252aSImran Shaik 	.mnd_width = 0,
289e146252aSImran Shaik 	.hid_width = 5,
290e146252aSImran Shaik 	.parent_map = ecpri_cc_parent_map_0,
291e146252aSImran Shaik 	.freq_tbl = ftbl_ecpri_cc_eth_100g_c2c0_hm_ff_clk_src,
292e146252aSImran Shaik 	.clkr.hw.init = &(const struct clk_init_data) {
293e146252aSImran Shaik 		.name = "ecpri_cc_eth_100g_dbg_c2c_hm_ff_clk_src",
294e146252aSImran Shaik 		.parent_data = ecpri_cc_parent_data_0,
295e146252aSImran Shaik 		.num_parents = ARRAY_SIZE(ecpri_cc_parent_data_0),
296e146252aSImran Shaik 		.ops = &clk_rcg2_shared_ops,
297e146252aSImran Shaik 	},
298e146252aSImran Shaik };
299e146252aSImran Shaik 
300e146252aSImran Shaik static struct clk_rcg2 ecpri_cc_eth_100g_fh0_hm_ff_clk_src = {
301e146252aSImran Shaik 	.cmd_rcgr = 0x8168,
302e146252aSImran Shaik 	.mnd_width = 0,
303e146252aSImran Shaik 	.hid_width = 5,
304e146252aSImran Shaik 	.parent_map = ecpri_cc_parent_map_0,
305e146252aSImran Shaik 	.freq_tbl = ftbl_ecpri_cc_eth_100g_c2c0_hm_ff_clk_src,
306e146252aSImran Shaik 	.clkr.hw.init = &(const struct clk_init_data) {
307e146252aSImran Shaik 		.name = "ecpri_cc_eth_100g_fh0_hm_ff_clk_src",
308e146252aSImran Shaik 		.parent_data = ecpri_cc_parent_data_0,
309e146252aSImran Shaik 		.num_parents = ARRAY_SIZE(ecpri_cc_parent_data_0),
310e146252aSImran Shaik 		.ops = &clk_rcg2_shared_ops,
311e146252aSImran Shaik 	},
312e146252aSImran Shaik };
313e146252aSImran Shaik 
314e146252aSImran Shaik static struct clk_rcg2 ecpri_cc_eth_100g_fh0_macsec_clk_src = {
315e146252aSImran Shaik 	.cmd_rcgr = 0x8108,
316e146252aSImran Shaik 	.mnd_width = 0,
317e146252aSImran Shaik 	.hid_width = 5,
318e146252aSImran Shaik 	.parent_map = ecpri_cc_parent_map_0,
319e146252aSImran Shaik 	.freq_tbl = ftbl_ecpri_cc_eth_100g_c2c_hm_macsec_clk_src,
320e146252aSImran Shaik 	.clkr.hw.init = &(const struct clk_init_data) {
321e146252aSImran Shaik 		.name = "ecpri_cc_eth_100g_fh0_macsec_clk_src",
322e146252aSImran Shaik 		.parent_data = ecpri_cc_parent_data_0,
323e146252aSImran Shaik 		.num_parents = ARRAY_SIZE(ecpri_cc_parent_data_0),
324e146252aSImran Shaik 		.ops = &clk_rcg2_shared_ops,
325e146252aSImran Shaik 	},
326e146252aSImran Shaik };
327e146252aSImran Shaik 
328e146252aSImran Shaik static struct clk_rcg2 ecpri_cc_eth_100g_fh1_hm_ff_clk_src = {
329e146252aSImran Shaik 	.cmd_rcgr = 0x8180,
330e146252aSImran Shaik 	.mnd_width = 0,
331e146252aSImran Shaik 	.hid_width = 5,
332e146252aSImran Shaik 	.parent_map = ecpri_cc_parent_map_0,
333e146252aSImran Shaik 	.freq_tbl = ftbl_ecpri_cc_ecpri_clk_src,
334e146252aSImran Shaik 	.clkr.hw.init = &(const struct clk_init_data) {
335e146252aSImran Shaik 		.name = "ecpri_cc_eth_100g_fh1_hm_ff_clk_src",
336e146252aSImran Shaik 		.parent_data = ecpri_cc_parent_data_0,
337e146252aSImran Shaik 		.num_parents = ARRAY_SIZE(ecpri_cc_parent_data_0),
338e146252aSImran Shaik 		.ops = &clk_rcg2_shared_ops,
339e146252aSImran Shaik 	},
340e146252aSImran Shaik };
341e146252aSImran Shaik 
342e146252aSImran Shaik static const struct freq_tbl ftbl_ecpri_cc_eth_100g_fh1_macsec_clk_src[] = {
343e146252aSImran Shaik 	F(200000000, P_GCC_ECPRI_CC_GPLL0_OUT_MAIN, 3, 0, 0),
344e146252aSImran Shaik 	{ }
345e146252aSImran Shaik };
346e146252aSImran Shaik 
347e146252aSImran Shaik static struct clk_rcg2 ecpri_cc_eth_100g_fh1_macsec_clk_src = {
348e146252aSImran Shaik 	.cmd_rcgr = 0x8120,
349e146252aSImran Shaik 	.mnd_width = 0,
350e146252aSImran Shaik 	.hid_width = 5,
351e146252aSImran Shaik 	.parent_map = ecpri_cc_parent_map_0,
352e146252aSImran Shaik 	.freq_tbl = ftbl_ecpri_cc_eth_100g_fh1_macsec_clk_src,
353e146252aSImran Shaik 	.clkr.hw.init = &(const struct clk_init_data) {
354e146252aSImran Shaik 		.name = "ecpri_cc_eth_100g_fh1_macsec_clk_src",
355e146252aSImran Shaik 		.parent_data = ecpri_cc_parent_data_0,
356e146252aSImran Shaik 		.num_parents = ARRAY_SIZE(ecpri_cc_parent_data_0),
357e146252aSImran Shaik 		.ops = &clk_rcg2_shared_ops,
358e146252aSImran Shaik 	},
359e146252aSImran Shaik };
360e146252aSImran Shaik 
361e146252aSImran Shaik static struct clk_rcg2 ecpri_cc_eth_100g_fh2_hm_ff_clk_src = {
362e146252aSImran Shaik 	.cmd_rcgr = 0x8198,
363e146252aSImran Shaik 	.mnd_width = 0,
364e146252aSImran Shaik 	.hid_width = 5,
365e146252aSImran Shaik 	.parent_map = ecpri_cc_parent_map_0,
366e146252aSImran Shaik 	.freq_tbl = ftbl_ecpri_cc_eth_100g_c2c0_hm_ff_clk_src,
367e146252aSImran Shaik 	.clkr.hw.init = &(const struct clk_init_data) {
368e146252aSImran Shaik 		.name = "ecpri_cc_eth_100g_fh2_hm_ff_clk_src",
369e146252aSImran Shaik 		.parent_data = ecpri_cc_parent_data_0,
370e146252aSImran Shaik 		.num_parents = ARRAY_SIZE(ecpri_cc_parent_data_0),
371e146252aSImran Shaik 		.ops = &clk_rcg2_shared_ops,
372e146252aSImran Shaik 	},
373e146252aSImran Shaik };
374e146252aSImran Shaik 
375e146252aSImran Shaik static struct clk_rcg2 ecpri_cc_eth_100g_fh2_macsec_clk_src = {
376e146252aSImran Shaik 	.cmd_rcgr = 0x8138,
377e146252aSImran Shaik 	.mnd_width = 0,
378e146252aSImran Shaik 	.hid_width = 5,
379e146252aSImran Shaik 	.parent_map = ecpri_cc_parent_map_0,
380e146252aSImran Shaik 	.freq_tbl = ftbl_ecpri_cc_eth_100g_fh1_macsec_clk_src,
381e146252aSImran Shaik 	.clkr.hw.init = &(const struct clk_init_data) {
382e146252aSImran Shaik 		.name = "ecpri_cc_eth_100g_fh2_macsec_clk_src",
383e146252aSImran Shaik 		.parent_data = ecpri_cc_parent_data_0,
384e146252aSImran Shaik 		.num_parents = ARRAY_SIZE(ecpri_cc_parent_data_0),
385e146252aSImran Shaik 		.ops = &clk_rcg2_shared_ops,
386e146252aSImran Shaik 	},
387e146252aSImran Shaik };
388e146252aSImran Shaik 
389e146252aSImran Shaik static const struct freq_tbl ftbl_ecpri_cc_eth_100g_mac_c2c_hm_ref_clk_src[] = {
390e146252aSImran Shaik 	F(533000000, P_GCC_ECPRI_CC_GPLL1_OUT_EVEN, 1, 0, 0),
391e146252aSImran Shaik 	F(700000000, P_GCC_ECPRI_CC_GPLL3_OUT_MAIN, 1, 0, 0),
392e146252aSImran Shaik 	F(806000000, P_GCC_ECPRI_CC_GPLL4_OUT_MAIN, 1, 0, 0),
393e146252aSImran Shaik 	{ }
394e146252aSImran Shaik };
395e146252aSImran Shaik 
396e146252aSImran Shaik static struct clk_rcg2 ecpri_cc_eth_100g_mac_c2c_hm_ref_clk_src = {
397e146252aSImran Shaik 	.cmd_rcgr = 0x8228,
398e146252aSImran Shaik 	.mnd_width = 0,
399e146252aSImran Shaik 	.hid_width = 5,
400e146252aSImran Shaik 	.parent_map = ecpri_cc_parent_map_1,
401e146252aSImran Shaik 	.freq_tbl = ftbl_ecpri_cc_eth_100g_mac_c2c_hm_ref_clk_src,
402e146252aSImran Shaik 	.clkr.hw.init = &(const struct clk_init_data) {
403e146252aSImran Shaik 		.name = "ecpri_cc_eth_100g_mac_c2c_hm_ref_clk_src",
404e146252aSImran Shaik 		.parent_data = ecpri_cc_parent_data_1,
405e146252aSImran Shaik 		.num_parents = ARRAY_SIZE(ecpri_cc_parent_data_1),
406e146252aSImran Shaik 		.ops = &clk_rcg2_shared_ops,
407e146252aSImran Shaik 	},
408e146252aSImran Shaik };
409e146252aSImran Shaik 
410e146252aSImran Shaik static struct clk_rcg2 ecpri_cc_eth_100g_mac_dbg_c2c_hm_ref_clk_src = {
411e146252aSImran Shaik 	.cmd_rcgr = 0x8240,
412e146252aSImran Shaik 	.mnd_width = 0,
413e146252aSImran Shaik 	.hid_width = 5,
414e146252aSImran Shaik 	.parent_map = ecpri_cc_parent_map_1,
415e146252aSImran Shaik 	.freq_tbl = ftbl_ecpri_cc_eth_100g_mac_c2c_hm_ref_clk_src,
416e146252aSImran Shaik 	.clkr.hw.init = &(const struct clk_init_data) {
417e146252aSImran Shaik 		.name = "ecpri_cc_eth_100g_mac_dbg_c2c_hm_ref_clk_src",
418e146252aSImran Shaik 		.parent_data = ecpri_cc_parent_data_1,
419e146252aSImran Shaik 		.num_parents = ARRAY_SIZE(ecpri_cc_parent_data_1),
420e146252aSImran Shaik 		.ops = &clk_rcg2_shared_ops,
421e146252aSImran Shaik 	},
422e146252aSImran Shaik };
423e146252aSImran Shaik 
424e146252aSImran Shaik static struct clk_rcg2 ecpri_cc_eth_100g_mac_fh0_hm_ref_clk_src = {
425e146252aSImran Shaik 	.cmd_rcgr = 0x81e0,
426e146252aSImran Shaik 	.mnd_width = 0,
427e146252aSImran Shaik 	.hid_width = 5,
428e146252aSImran Shaik 	.parent_map = ecpri_cc_parent_map_1,
429e146252aSImran Shaik 	.freq_tbl = ftbl_ecpri_cc_eth_100g_mac_c2c_hm_ref_clk_src,
430e146252aSImran Shaik 	.clkr.hw.init = &(const struct clk_init_data) {
431e146252aSImran Shaik 		.name = "ecpri_cc_eth_100g_mac_fh0_hm_ref_clk_src",
432e146252aSImran Shaik 		.parent_data = ecpri_cc_parent_data_1,
433e146252aSImran Shaik 		.num_parents = ARRAY_SIZE(ecpri_cc_parent_data_1),
434e146252aSImran Shaik 		.ops = &clk_rcg2_shared_ops,
435e146252aSImran Shaik 	},
436e146252aSImran Shaik };
437e146252aSImran Shaik 
438e146252aSImran Shaik static struct clk_rcg2 ecpri_cc_eth_100g_mac_fh1_hm_ref_clk_src = {
439e146252aSImran Shaik 	.cmd_rcgr = 0x81f8,
440e146252aSImran Shaik 	.mnd_width = 0,
441e146252aSImran Shaik 	.hid_width = 5,
442e146252aSImran Shaik 	.parent_map = ecpri_cc_parent_map_1,
443e146252aSImran Shaik 	.freq_tbl = ftbl_ecpri_cc_eth_100g_mac_c2c_hm_ref_clk_src,
444e146252aSImran Shaik 	.clkr.hw.init = &(const struct clk_init_data) {
445e146252aSImran Shaik 		.name = "ecpri_cc_eth_100g_mac_fh1_hm_ref_clk_src",
446e146252aSImran Shaik 		.parent_data = ecpri_cc_parent_data_1,
447e146252aSImran Shaik 		.num_parents = ARRAY_SIZE(ecpri_cc_parent_data_1),
448e146252aSImran Shaik 		.ops = &clk_rcg2_shared_ops,
449e146252aSImran Shaik 	},
450e146252aSImran Shaik };
451e146252aSImran Shaik 
452e146252aSImran Shaik static struct clk_rcg2 ecpri_cc_eth_100g_mac_fh2_hm_ref_clk_src = {
453e146252aSImran Shaik 	.cmd_rcgr = 0x8210,
454e146252aSImran Shaik 	.mnd_width = 0,
455e146252aSImran Shaik 	.hid_width = 5,
456e146252aSImran Shaik 	.parent_map = ecpri_cc_parent_map_1,
457e146252aSImran Shaik 	.freq_tbl = ftbl_ecpri_cc_eth_100g_mac_c2c_hm_ref_clk_src,
458e146252aSImran Shaik 	.clkr.hw.init = &(const struct clk_init_data) {
459e146252aSImran Shaik 		.name = "ecpri_cc_eth_100g_mac_fh2_hm_ref_clk_src",
460e146252aSImran Shaik 		.parent_data = ecpri_cc_parent_data_1,
461e146252aSImran Shaik 		.num_parents = ARRAY_SIZE(ecpri_cc_parent_data_1),
462e146252aSImran Shaik 		.ops = &clk_rcg2_shared_ops,
463e146252aSImran Shaik 	},
464e146252aSImran Shaik };
465e146252aSImran Shaik 
466e146252aSImran Shaik static const struct freq_tbl ftbl_ecpri_cc_mss_emac_clk_src[] = {
467e146252aSImran Shaik 	F(403000000, P_GCC_ECPRI_CC_GPLL4_OUT_MAIN, 2, 0, 0),
468e146252aSImran Shaik 	{ }
469e146252aSImran Shaik };
470e146252aSImran Shaik 
471e146252aSImran Shaik static struct clk_rcg2 ecpri_cc_mss_emac_clk_src = {
472e146252aSImran Shaik 	.cmd_rcgr = 0xe00c,
473e146252aSImran Shaik 	.mnd_width = 0,
474e146252aSImran Shaik 	.hid_width = 5,
475e146252aSImran Shaik 	.parent_map = ecpri_cc_parent_map_2,
476e146252aSImran Shaik 	.freq_tbl = ftbl_ecpri_cc_mss_emac_clk_src,
477e146252aSImran Shaik 	.clkr.hw.init = &(const struct clk_init_data) {
478e146252aSImran Shaik 		.name = "ecpri_cc_mss_emac_clk_src",
479e146252aSImran Shaik 		.parent_data = ecpri_cc_parent_data_2,
480e146252aSImran Shaik 		.num_parents = ARRAY_SIZE(ecpri_cc_parent_data_2),
481e146252aSImran Shaik 		.ops = &clk_rcg2_shared_ops,
482e146252aSImran Shaik 	},
483e146252aSImran Shaik };
484e146252aSImran Shaik 
485e146252aSImran Shaik static struct clk_regmap_div ecpri_cc_ecpri_fast_div2_clk_src = {
486e146252aSImran Shaik 	.reg = 0x907c,
487e146252aSImran Shaik 	.shift = 0,
488e146252aSImran Shaik 	.width = 4,
489e146252aSImran Shaik 	.clkr.hw.init = &(const struct clk_init_data) {
490e146252aSImran Shaik 		.name = "ecpri_cc_ecpri_fast_div2_clk_src",
491e146252aSImran Shaik 		.parent_hws = (const struct clk_hw*[]) {
492e146252aSImran Shaik 			&ecpri_cc_ecpri_fast_clk_src.clkr.hw,
493e146252aSImran Shaik 		},
494e146252aSImran Shaik 		.num_parents = 1,
495e146252aSImran Shaik 		.flags = CLK_SET_RATE_PARENT,
496e146252aSImran Shaik 		.ops = &clk_regmap_div_ro_ops,
497e146252aSImran Shaik 	},
498e146252aSImran Shaik };
499e146252aSImran Shaik 
500e146252aSImran Shaik static struct clk_regmap_div ecpri_cc_eth_100g_c2c_hm_ff_0_div_clk_src = {
501e146252aSImran Shaik 	.reg = 0x8290,
502e146252aSImran Shaik 	.shift = 0,
503e146252aSImran Shaik 	.width = 4,
504e146252aSImran Shaik 	.clkr.hw.init = &(const struct clk_init_data) {
505e146252aSImran Shaik 		.name = "ecpri_cc_eth_100g_c2c_hm_ff_0_div_clk_src",
506e146252aSImran Shaik 		.parent_hws = (const struct clk_hw*[]) {
507e146252aSImran Shaik 			&ecpri_cc_eth_100g_c2c0_hm_ff_clk_src.clkr.hw,
508e146252aSImran Shaik 		},
509e146252aSImran Shaik 		.num_parents = 1,
510e146252aSImran Shaik 		.flags = CLK_SET_RATE_PARENT,
511e146252aSImran Shaik 		.ops = &clk_regmap_div_ro_ops,
512e146252aSImran Shaik 	},
513e146252aSImran Shaik };
514e146252aSImran Shaik 
515e146252aSImran Shaik static struct clk_regmap_div ecpri_cc_eth_100g_c2c_hm_ff_1_div_clk_src = {
516e146252aSImran Shaik 	.reg = 0x8294,
517e146252aSImran Shaik 	.shift = 0,
518e146252aSImran Shaik 	.width = 4,
519e146252aSImran Shaik 	.clkr.hw.init = &(const struct clk_init_data) {
520e146252aSImran Shaik 		.name = "ecpri_cc_eth_100g_c2c_hm_ff_1_div_clk_src",
521e146252aSImran Shaik 		.parent_hws = (const struct clk_hw*[]) {
522e146252aSImran Shaik 			&ecpri_cc_eth_100g_c2c0_hm_ff_clk_src.clkr.hw,
523e146252aSImran Shaik 		},
524e146252aSImran Shaik 		.num_parents = 1,
525e146252aSImran Shaik 		.flags = CLK_SET_RATE_PARENT,
526e146252aSImran Shaik 		.ops = &clk_regmap_div_ro_ops,
527e146252aSImran Shaik 	},
528e146252aSImran Shaik };
529e146252aSImran Shaik 
530e146252aSImran Shaik static struct clk_regmap_div ecpri_cc_eth_100g_dbg_c2c_hm_ff_0_div_clk_src = {
531e146252aSImran Shaik 	.reg = 0x8298,
532e146252aSImran Shaik 	.shift = 0,
533e146252aSImran Shaik 	.width = 4,
534e146252aSImran Shaik 	.clkr.hw.init = &(const struct clk_init_data) {
535e146252aSImran Shaik 		.name = "ecpri_cc_eth_100g_dbg_c2c_hm_ff_0_div_clk_src",
536e146252aSImran Shaik 		.parent_hws = (const struct clk_hw*[]) {
537e146252aSImran Shaik 			&ecpri_cc_eth_100g_dbg_c2c_hm_ff_clk_src.clkr.hw,
538e146252aSImran Shaik 		},
539e146252aSImran Shaik 		.num_parents = 1,
540e146252aSImran Shaik 		.flags = CLK_SET_RATE_PARENT,
541e146252aSImran Shaik 		.ops = &clk_regmap_div_ro_ops,
542e146252aSImran Shaik 	},
543e146252aSImran Shaik };
544e146252aSImran Shaik 
545e146252aSImran Shaik static struct clk_regmap_div ecpri_cc_eth_100g_dbg_c2c_hm_ff_1_div_clk_src = {
546e146252aSImran Shaik 	.reg = 0x829c,
547e146252aSImran Shaik 	.shift = 0,
548e146252aSImran Shaik 	.width = 4,
549e146252aSImran Shaik 	.clkr.hw.init = &(const struct clk_init_data) {
550e146252aSImran Shaik 		.name = "ecpri_cc_eth_100g_dbg_c2c_hm_ff_1_div_clk_src",
551e146252aSImran Shaik 		.parent_hws = (const struct clk_hw*[]) {
552e146252aSImran Shaik 			&ecpri_cc_eth_100g_dbg_c2c_hm_ff_clk_src.clkr.hw,
553e146252aSImran Shaik 		},
554e146252aSImran Shaik 		.num_parents = 1,
555e146252aSImran Shaik 		.flags = CLK_SET_RATE_PARENT,
556e146252aSImran Shaik 		.ops = &clk_regmap_div_ro_ops,
557e146252aSImran Shaik 	},
558e146252aSImran Shaik };
559e146252aSImran Shaik 
560e146252aSImran Shaik static struct clk_regmap_div ecpri_cc_eth_100g_fh_0_hm_ff_0_div_clk_src = {
561e146252aSImran Shaik 	.reg = 0x8260,
562e146252aSImran Shaik 	.shift = 0,
563e146252aSImran Shaik 	.width = 4,
564e146252aSImran Shaik 	.clkr.hw.init = &(const struct clk_init_data) {
565e146252aSImran Shaik 		.name = "ecpri_cc_eth_100g_fh_0_hm_ff_0_div_clk_src",
566e146252aSImran Shaik 		.parent_hws = (const struct clk_hw*[]) {
567e146252aSImran Shaik 			&ecpri_cc_eth_100g_fh0_hm_ff_clk_src.clkr.hw,
568e146252aSImran Shaik 		},
569e146252aSImran Shaik 		.num_parents = 1,
570e146252aSImran Shaik 		.flags = CLK_SET_RATE_PARENT,
571e146252aSImran Shaik 		.ops = &clk_regmap_div_ro_ops,
572e146252aSImran Shaik 	},
573e146252aSImran Shaik };
574e146252aSImran Shaik 
575e146252aSImran Shaik static struct clk_regmap_div ecpri_cc_eth_100g_fh_0_hm_ff_1_div_clk_src = {
576e146252aSImran Shaik 	.reg = 0x8264,
577e146252aSImran Shaik 	.shift = 0,
578e146252aSImran Shaik 	.width = 4,
579e146252aSImran Shaik 	.clkr.hw.init = &(const struct clk_init_data) {
580e146252aSImran Shaik 		.name = "ecpri_cc_eth_100g_fh_0_hm_ff_1_div_clk_src",
581e146252aSImran Shaik 		.parent_hws = (const struct clk_hw*[]) {
582e146252aSImran Shaik 			&ecpri_cc_eth_100g_fh0_hm_ff_clk_src.clkr.hw,
583e146252aSImran Shaik 		},
584e146252aSImran Shaik 		.num_parents = 1,
585e146252aSImran Shaik 		.flags = CLK_SET_RATE_PARENT,
586e146252aSImran Shaik 		.ops = &clk_regmap_div_ro_ops,
587e146252aSImran Shaik 	},
588e146252aSImran Shaik };
589e146252aSImran Shaik 
590e146252aSImran Shaik static struct clk_regmap_div ecpri_cc_eth_100g_fh_0_hm_ff_2_div_clk_src = {
591e146252aSImran Shaik 	.reg = 0x8268,
592e146252aSImran Shaik 	.shift = 0,
593e146252aSImran Shaik 	.width = 4,
594e146252aSImran Shaik 	.clkr.hw.init = &(const struct clk_init_data) {
595e146252aSImran Shaik 		.name = "ecpri_cc_eth_100g_fh_0_hm_ff_2_div_clk_src",
596e146252aSImran Shaik 		.parent_hws = (const struct clk_hw*[]) {
597e146252aSImran Shaik 			&ecpri_cc_eth_100g_fh0_hm_ff_clk_src.clkr.hw,
598e146252aSImran Shaik 		},
599e146252aSImran Shaik 		.num_parents = 1,
600e146252aSImran Shaik 		.flags = CLK_SET_RATE_PARENT,
601e146252aSImran Shaik 		.ops = &clk_regmap_div_ro_ops,
602e146252aSImran Shaik 	},
603e146252aSImran Shaik };
604e146252aSImran Shaik 
605e146252aSImran Shaik static struct clk_regmap_div ecpri_cc_eth_100g_fh_0_hm_ff_3_div_clk_src = {
606e146252aSImran Shaik 	.reg = 0x826c,
607e146252aSImran Shaik 	.shift = 0,
608e146252aSImran Shaik 	.width = 4,
609e146252aSImran Shaik 	.clkr.hw.init = &(const struct clk_init_data) {
610e146252aSImran Shaik 		.name = "ecpri_cc_eth_100g_fh_0_hm_ff_3_div_clk_src",
611e146252aSImran Shaik 		.parent_hws = (const struct clk_hw*[]) {
612e146252aSImran Shaik 			&ecpri_cc_eth_100g_fh0_hm_ff_clk_src.clkr.hw,
613e146252aSImran Shaik 		},
614e146252aSImran Shaik 		.num_parents = 1,
615e146252aSImran Shaik 		.flags = CLK_SET_RATE_PARENT,
616e146252aSImran Shaik 		.ops = &clk_regmap_div_ro_ops,
617e146252aSImran Shaik 	},
618e146252aSImran Shaik };
619e146252aSImran Shaik 
620e146252aSImran Shaik static struct clk_regmap_div ecpri_cc_eth_100g_fh_1_hm_ff_0_div_clk_src = {
621e146252aSImran Shaik 	.reg = 0x8270,
622e146252aSImran Shaik 	.shift = 0,
623e146252aSImran Shaik 	.width = 4,
624e146252aSImran Shaik 	.clkr.hw.init = &(const struct clk_init_data) {
625e146252aSImran Shaik 		.name = "ecpri_cc_eth_100g_fh_1_hm_ff_0_div_clk_src",
626e146252aSImran Shaik 		.parent_hws = (const struct clk_hw*[]) {
627e146252aSImran Shaik 			&ecpri_cc_eth_100g_fh1_hm_ff_clk_src.clkr.hw,
628e146252aSImran Shaik 		},
629e146252aSImran Shaik 		.num_parents = 1,
630e146252aSImran Shaik 		.flags = CLK_SET_RATE_PARENT,
631e146252aSImran Shaik 		.ops = &clk_regmap_div_ro_ops,
632e146252aSImran Shaik 	},
633e146252aSImran Shaik };
634e146252aSImran Shaik 
635e146252aSImran Shaik static struct clk_regmap_div ecpri_cc_eth_100g_fh_1_hm_ff_1_div_clk_src = {
636e146252aSImran Shaik 	.reg = 0x8274,
637e146252aSImran Shaik 	.shift = 0,
638e146252aSImran Shaik 	.width = 4,
639e146252aSImran Shaik 	.clkr.hw.init = &(const struct clk_init_data) {
640e146252aSImran Shaik 		.name = "ecpri_cc_eth_100g_fh_1_hm_ff_1_div_clk_src",
641e146252aSImran Shaik 		.parent_hws = (const struct clk_hw*[]) {
642e146252aSImran Shaik 			&ecpri_cc_eth_100g_fh1_hm_ff_clk_src.clkr.hw,
643e146252aSImran Shaik 		},
644e146252aSImran Shaik 		.num_parents = 1,
645e146252aSImran Shaik 		.flags = CLK_SET_RATE_PARENT,
646e146252aSImran Shaik 		.ops = &clk_regmap_div_ro_ops,
647e146252aSImran Shaik 	},
648e146252aSImran Shaik };
649e146252aSImran Shaik 
650e146252aSImran Shaik static struct clk_regmap_div ecpri_cc_eth_100g_fh_1_hm_ff_2_div_clk_src = {
651e146252aSImran Shaik 	.reg = 0x8278,
652e146252aSImran Shaik 	.shift = 0,
653e146252aSImran Shaik 	.width = 4,
654e146252aSImran Shaik 	.clkr.hw.init = &(const struct clk_init_data) {
655e146252aSImran Shaik 		.name = "ecpri_cc_eth_100g_fh_1_hm_ff_2_div_clk_src",
656e146252aSImran Shaik 		.parent_hws = (const struct clk_hw*[]) {
657e146252aSImran Shaik 			&ecpri_cc_eth_100g_fh1_hm_ff_clk_src.clkr.hw,
658e146252aSImran Shaik 		},
659e146252aSImran Shaik 		.num_parents = 1,
660e146252aSImran Shaik 		.flags = CLK_SET_RATE_PARENT,
661e146252aSImran Shaik 		.ops = &clk_regmap_div_ro_ops,
662e146252aSImran Shaik 	},
663e146252aSImran Shaik };
664e146252aSImran Shaik 
665e146252aSImran Shaik static struct clk_regmap_div ecpri_cc_eth_100g_fh_1_hm_ff_3_div_clk_src = {
666e146252aSImran Shaik 	.reg = 0x827c,
667e146252aSImran Shaik 	.shift = 0,
668e146252aSImran Shaik 	.width = 4,
669e146252aSImran Shaik 	.clkr.hw.init = &(const struct clk_init_data) {
670e146252aSImran Shaik 		.name = "ecpri_cc_eth_100g_fh_1_hm_ff_3_div_clk_src",
671e146252aSImran Shaik 		.parent_hws = (const struct clk_hw*[]) {
672e146252aSImran Shaik 			&ecpri_cc_eth_100g_fh1_hm_ff_clk_src.clkr.hw,
673e146252aSImran Shaik 		},
674e146252aSImran Shaik 		.num_parents = 1,
675e146252aSImran Shaik 		.flags = CLK_SET_RATE_PARENT,
676e146252aSImran Shaik 		.ops = &clk_regmap_div_ro_ops,
677e146252aSImran Shaik 	},
678e146252aSImran Shaik };
679e146252aSImran Shaik 
680e146252aSImran Shaik static struct clk_regmap_div ecpri_cc_eth_100g_fh_2_hm_ff_0_div_clk_src = {
681e146252aSImran Shaik 	.reg = 0x8280,
682e146252aSImran Shaik 	.shift = 0,
683e146252aSImran Shaik 	.width = 4,
684e146252aSImran Shaik 	.clkr.hw.init = &(const struct clk_init_data) {
685e146252aSImran Shaik 		.name = "ecpri_cc_eth_100g_fh_2_hm_ff_0_div_clk_src",
686e146252aSImran Shaik 		.parent_hws = (const struct clk_hw*[]) {
687e146252aSImran Shaik 			&ecpri_cc_eth_100g_fh2_hm_ff_clk_src.clkr.hw,
688e146252aSImran Shaik 		},
689e146252aSImran Shaik 		.num_parents = 1,
690e146252aSImran Shaik 		.flags = CLK_SET_RATE_PARENT,
691e146252aSImran Shaik 		.ops = &clk_regmap_div_ro_ops,
692e146252aSImran Shaik 	},
693e146252aSImran Shaik };
694e146252aSImran Shaik 
695e146252aSImran Shaik static struct clk_regmap_div ecpri_cc_eth_100g_fh_2_hm_ff_1_div_clk_src = {
696e146252aSImran Shaik 	.reg = 0x8284,
697e146252aSImran Shaik 	.shift = 0,
698e146252aSImran Shaik 	.width = 4,
699e146252aSImran Shaik 	.clkr.hw.init = &(const struct clk_init_data) {
700e146252aSImran Shaik 		.name = "ecpri_cc_eth_100g_fh_2_hm_ff_1_div_clk_src",
701e146252aSImran Shaik 		.parent_hws = (const struct clk_hw*[]) {
702e146252aSImran Shaik 			&ecpri_cc_eth_100g_fh2_hm_ff_clk_src.clkr.hw,
703e146252aSImran Shaik 		},
704e146252aSImran Shaik 		.num_parents = 1,
705e146252aSImran Shaik 		.flags = CLK_SET_RATE_PARENT,
706e146252aSImran Shaik 		.ops = &clk_regmap_div_ro_ops,
707e146252aSImran Shaik 	},
708e146252aSImran Shaik };
709e146252aSImran Shaik 
710e146252aSImran Shaik static struct clk_regmap_div ecpri_cc_eth_100g_fh_2_hm_ff_2_div_clk_src = {
711e146252aSImran Shaik 	.reg = 0x8288,
712e146252aSImran Shaik 	.shift = 0,
713e146252aSImran Shaik 	.width = 4,
714e146252aSImran Shaik 	.clkr.hw.init = &(const struct clk_init_data) {
715e146252aSImran Shaik 		.name = "ecpri_cc_eth_100g_fh_2_hm_ff_2_div_clk_src",
716e146252aSImran Shaik 		.parent_hws = (const struct clk_hw*[]) {
717e146252aSImran Shaik 			&ecpri_cc_eth_100g_fh2_hm_ff_clk_src.clkr.hw,
718e146252aSImran Shaik 		},
719e146252aSImran Shaik 		.num_parents = 1,
720e146252aSImran Shaik 		.flags = CLK_SET_RATE_PARENT,
721e146252aSImran Shaik 		.ops = &clk_regmap_div_ro_ops,
722e146252aSImran Shaik 	},
723e146252aSImran Shaik };
724e146252aSImran Shaik 
725e146252aSImran Shaik static struct clk_regmap_div ecpri_cc_eth_100g_fh_2_hm_ff_3_div_clk_src = {
726e146252aSImran Shaik 	.reg = 0x828c,
727e146252aSImran Shaik 	.shift = 0,
728e146252aSImran Shaik 	.width = 4,
729e146252aSImran Shaik 	.clkr.hw.init = &(const struct clk_init_data) {
730e146252aSImran Shaik 		.name = "ecpri_cc_eth_100g_fh_2_hm_ff_3_div_clk_src",
731e146252aSImran Shaik 		.parent_hws = (const struct clk_hw*[]) {
732e146252aSImran Shaik 			&ecpri_cc_eth_100g_fh2_hm_ff_clk_src.clkr.hw,
733e146252aSImran Shaik 		},
734e146252aSImran Shaik 		.num_parents = 1,
735e146252aSImran Shaik 		.flags = CLK_SET_RATE_PARENT,
736e146252aSImran Shaik 		.ops = &clk_regmap_div_ro_ops,
737e146252aSImran Shaik 	},
738e146252aSImran Shaik };
739e146252aSImran Shaik 
740e146252aSImran Shaik static struct clk_branch ecpri_cc_ecpri_cg_clk = {
741e146252aSImran Shaik 	.halt_reg = 0x900c,
742e146252aSImran Shaik 	.halt_check = BRANCH_HALT,
743e146252aSImran Shaik 	.clkr = {
744e146252aSImran Shaik 		.enable_reg = 0x900c,
745e146252aSImran Shaik 		.enable_mask = BIT(0),
746e146252aSImran Shaik 		.hw.init = &(const struct clk_init_data) {
747e146252aSImran Shaik 			.name = "ecpri_cc_ecpri_cg_clk",
748e146252aSImran Shaik 			.parent_hws = (const struct clk_hw*[]) {
749e146252aSImran Shaik 				&ecpri_cc_ecpri_clk_src.clkr.hw,
750e146252aSImran Shaik 			},
751e146252aSImran Shaik 			.num_parents = 1,
752e146252aSImran Shaik 			.flags = CLK_SET_RATE_PARENT,
753e146252aSImran Shaik 			.ops = &clk_branch2_ops,
754e146252aSImran Shaik 		},
755e146252aSImran Shaik 	},
756e146252aSImran Shaik };
757e146252aSImran Shaik 
758e146252aSImran Shaik static struct clk_branch ecpri_cc_ecpri_dma_clk = {
759e146252aSImran Shaik 	.halt_reg = 0x902c,
760e146252aSImran Shaik 	.halt_check = BRANCH_HALT,
761e146252aSImran Shaik 	.clkr = {
762e146252aSImran Shaik 		.enable_reg = 0x902c,
763e146252aSImran Shaik 		.enable_mask = BIT(0),
764e146252aSImran Shaik 		.hw.init = &(const struct clk_init_data) {
765e146252aSImran Shaik 			.name = "ecpri_cc_ecpri_dma_clk",
766e146252aSImran Shaik 			.parent_hws = (const struct clk_hw*[]) {
767e146252aSImran Shaik 				&ecpri_cc_ecpri_dma_clk_src.clkr.hw,
768e146252aSImran Shaik 			},
769e146252aSImran Shaik 			.num_parents = 1,
770e146252aSImran Shaik 			.flags = CLK_SET_RATE_PARENT,
771e146252aSImran Shaik 			.ops = &clk_branch2_ops,
772e146252aSImran Shaik 		},
773e146252aSImran Shaik 	},
774e146252aSImran Shaik };
775e146252aSImran Shaik 
776e146252aSImran Shaik static struct clk_branch ecpri_cc_ecpri_dma_noc_clk = {
777e146252aSImran Shaik 	.halt_reg = 0xf004,
778e146252aSImran Shaik 	.halt_check = BRANCH_HALT,
779e146252aSImran Shaik 	.clkr = {
780e146252aSImran Shaik 		.enable_reg = 0xf004,
781e146252aSImran Shaik 		.enable_mask = BIT(0),
782e146252aSImran Shaik 		.hw.init = &(const struct clk_init_data) {
783e146252aSImran Shaik 			.name = "ecpri_cc_ecpri_dma_noc_clk",
784e146252aSImran Shaik 			.parent_hws = (const struct clk_hw*[]) {
785e146252aSImran Shaik 				&ecpri_cc_ecpri_dma_clk_src.clkr.hw,
786e146252aSImran Shaik 			},
787e146252aSImran Shaik 			.num_parents = 1,
788e146252aSImran Shaik 			.flags = CLK_SET_RATE_PARENT,
789e146252aSImran Shaik 			.ops = &clk_branch2_ops,
790e146252aSImran Shaik 		},
791e146252aSImran Shaik 	},
792e146252aSImran Shaik };
793e146252aSImran Shaik 
794e146252aSImran Shaik static struct clk_branch ecpri_cc_ecpri_fast_clk = {
795e146252aSImran Shaik 	.halt_reg = 0x9014,
796e146252aSImran Shaik 	.halt_check = BRANCH_HALT,
797e146252aSImran Shaik 	.clkr = {
798e146252aSImran Shaik 		.enable_reg = 0x9014,
799e146252aSImran Shaik 		.enable_mask = BIT(0),
800e146252aSImran Shaik 		.hw.init = &(const struct clk_init_data) {
801e146252aSImran Shaik 			.name = "ecpri_cc_ecpri_fast_clk",
802e146252aSImran Shaik 			.parent_hws = (const struct clk_hw*[]) {
803e146252aSImran Shaik 				&ecpri_cc_ecpri_fast_clk_src.clkr.hw,
804e146252aSImran Shaik 			},
805e146252aSImran Shaik 			.num_parents = 1,
806e146252aSImran Shaik 			.flags = CLK_SET_RATE_PARENT,
807e146252aSImran Shaik 			.ops = &clk_branch2_ops,
808e146252aSImran Shaik 		},
809e146252aSImran Shaik 	},
810e146252aSImran Shaik };
811e146252aSImran Shaik 
812e146252aSImran Shaik static struct clk_branch ecpri_cc_ecpri_fast_div2_clk = {
813e146252aSImran Shaik 	.halt_reg = 0x901c,
814e146252aSImran Shaik 	.halt_check = BRANCH_HALT,
815e146252aSImran Shaik 	.clkr = {
816e146252aSImran Shaik 		.enable_reg = 0x901c,
817e146252aSImran Shaik 		.enable_mask = BIT(0),
818e146252aSImran Shaik 		.hw.init = &(const struct clk_init_data) {
819e146252aSImran Shaik 			.name = "ecpri_cc_ecpri_fast_div2_clk",
820e146252aSImran Shaik 			.parent_hws = (const struct clk_hw*[]) {
821e146252aSImran Shaik 				&ecpri_cc_ecpri_fast_div2_clk_src.clkr.hw,
822e146252aSImran Shaik 			},
823e146252aSImran Shaik 			.num_parents = 1,
824e146252aSImran Shaik 			.flags = CLK_SET_RATE_PARENT,
825e146252aSImran Shaik 			.ops = &clk_branch2_ops,
826e146252aSImran Shaik 		},
827e146252aSImran Shaik 	},
828e146252aSImran Shaik };
829e146252aSImran Shaik 
830e146252aSImran Shaik static struct clk_branch ecpri_cc_ecpri_fast_div2_noc_clk = {
831e146252aSImran Shaik 	.halt_reg = 0xf008,
832e146252aSImran Shaik 	.halt_check = BRANCH_HALT,
833e146252aSImran Shaik 	.clkr = {
834e146252aSImran Shaik 		.enable_reg = 0xf008,
835e146252aSImran Shaik 		.enable_mask = BIT(0),
836e146252aSImran Shaik 		.hw.init = &(const struct clk_init_data) {
837e146252aSImran Shaik 			.name = "ecpri_cc_ecpri_fast_div2_noc_clk",
838e146252aSImran Shaik 			.parent_hws = (const struct clk_hw*[]) {
839e146252aSImran Shaik 				&ecpri_cc_ecpri_fast_div2_clk_src.clkr.hw,
840e146252aSImran Shaik 			},
841e146252aSImran Shaik 			.num_parents = 1,
842e146252aSImran Shaik 			.flags = CLK_SET_RATE_PARENT,
843e146252aSImran Shaik 			.ops = &clk_branch2_ops,
844e146252aSImran Shaik 		},
845e146252aSImran Shaik 	},
846e146252aSImran Shaik };
847e146252aSImran Shaik 
848e146252aSImran Shaik static struct clk_branch ecpri_cc_ecpri_fr_clk = {
849e146252aSImran Shaik 	.halt_reg = 0x9004,
850e146252aSImran Shaik 	.halt_check = BRANCH_HALT,
851e146252aSImran Shaik 	.clkr = {
852e146252aSImran Shaik 		.enable_reg = 0x9004,
853e146252aSImran Shaik 		.enable_mask = BIT(0),
854e146252aSImran Shaik 		.hw.init = &(const struct clk_init_data) {
855e146252aSImran Shaik 			.name = "ecpri_cc_ecpri_fr_clk",
856e146252aSImran Shaik 			.parent_hws = (const struct clk_hw*[]) {
857e146252aSImran Shaik 				&ecpri_cc_ecpri_clk_src.clkr.hw,
858e146252aSImran Shaik 			},
859e146252aSImran Shaik 			.num_parents = 1,
860e146252aSImran Shaik 			.flags = CLK_SET_RATE_PARENT,
861e146252aSImran Shaik 			.ops = &clk_branch2_ops,
862e146252aSImran Shaik 		},
863e146252aSImran Shaik 	},
864e146252aSImran Shaik };
865e146252aSImran Shaik 
866e146252aSImran Shaik static struct clk_branch ecpri_cc_ecpri_oran_div2_clk = {
867e146252aSImran Shaik 	.halt_reg = 0x9024,
868e146252aSImran Shaik 	.halt_check = BRANCH_HALT,
869e146252aSImran Shaik 	.clkr = {
870e146252aSImran Shaik 		.enable_reg = 0x9024,
871e146252aSImran Shaik 		.enable_mask = BIT(0),
872e146252aSImran Shaik 		.hw.init = &(const struct clk_init_data) {
873e146252aSImran Shaik 			.name = "ecpri_cc_ecpri_oran_div2_clk",
874e146252aSImran Shaik 			.parent_hws = (const struct clk_hw*[]) {
875e146252aSImran Shaik 				&ecpri_cc_ecpri_oran_clk_src.clkr.hw,
876e146252aSImran Shaik 			},
877e146252aSImran Shaik 			.num_parents = 1,
878e146252aSImran Shaik 			.flags = CLK_SET_RATE_PARENT,
879e146252aSImran Shaik 			.ops = &clk_branch2_ops,
880e146252aSImran Shaik 		},
881e146252aSImran Shaik 	},
882e146252aSImran Shaik };
883e146252aSImran Shaik 
884e146252aSImran Shaik static struct clk_branch ecpri_cc_eth_100g_c2c0_udp_fifo_clk = {
885e146252aSImran Shaik 	.halt_reg = 0x80cc,
886e146252aSImran Shaik 	.halt_check = BRANCH_HALT,
887e146252aSImran Shaik 	.clkr = {
888e146252aSImran Shaik 		.enable_reg = 0x80cc,
889e146252aSImran Shaik 		.enable_mask = BIT(0),
890e146252aSImran Shaik 		.hw.init = &(const struct clk_init_data) {
891e146252aSImran Shaik 			.name = "ecpri_cc_eth_100g_c2c0_udp_fifo_clk",
892e146252aSImran Shaik 			.parent_hws = (const struct clk_hw*[]) {
893e146252aSImran Shaik 				&ecpri_cc_ecpri_clk_src.clkr.hw,
894e146252aSImran Shaik 			},
895e146252aSImran Shaik 			.num_parents = 1,
896e146252aSImran Shaik 			.flags = CLK_SET_RATE_PARENT,
897e146252aSImran Shaik 			.ops = &clk_branch2_ops,
898e146252aSImran Shaik 		},
899e146252aSImran Shaik 	},
900e146252aSImran Shaik };
901e146252aSImran Shaik 
902e146252aSImran Shaik static struct clk_branch ecpri_cc_eth_100g_c2c1_udp_fifo_clk = {
903e146252aSImran Shaik 	.halt_reg = 0x80d0,
904e146252aSImran Shaik 	.halt_check = BRANCH_HALT,
905e146252aSImran Shaik 	.clkr = {
906e146252aSImran Shaik 		.enable_reg = 0x80d0,
907e146252aSImran Shaik 		.enable_mask = BIT(0),
908e146252aSImran Shaik 		.hw.init = &(const struct clk_init_data) {
909e146252aSImran Shaik 			.name = "ecpri_cc_eth_100g_c2c1_udp_fifo_clk",
910e146252aSImran Shaik 			.parent_hws = (const struct clk_hw*[]) {
911e146252aSImran Shaik 				&ecpri_cc_ecpri_clk_src.clkr.hw,
912e146252aSImran Shaik 			},
913e146252aSImran Shaik 			.num_parents = 1,
914e146252aSImran Shaik 			.flags = CLK_SET_RATE_PARENT,
915e146252aSImran Shaik 			.ops = &clk_branch2_ops,
916e146252aSImran Shaik 		},
917e146252aSImran Shaik 	},
918e146252aSImran Shaik };
919e146252aSImran Shaik 
920e146252aSImran Shaik static struct clk_mem_branch ecpri_cc_eth_100g_c2c_0_hm_ff_0_clk = {
921e146252aSImran Shaik 	.mem_enable_reg = 0x8410,
922e146252aSImran Shaik 	.mem_ack_reg = 0x8424,
923e146252aSImran Shaik 	.mem_enable_ack_mask = BIT(0),
924e146252aSImran Shaik 	.branch = {
925e146252aSImran Shaik 		.halt_reg = 0x80b4,
926e146252aSImran Shaik 		.halt_check = BRANCH_HALT,
927e146252aSImran Shaik 		.clkr = {
928e146252aSImran Shaik 			.enable_reg = 0x80b4,
929e146252aSImran Shaik 			.enable_mask = BIT(0),
930e146252aSImran Shaik 			.hw.init = &(const struct clk_init_data) {
931e146252aSImran Shaik 				.name = "ecpri_cc_eth_100g_c2c_0_hm_ff_0_clk",
932e146252aSImran Shaik 				.parent_hws = (const struct clk_hw*[]) {
933e146252aSImran Shaik 					&ecpri_cc_eth_100g_c2c_hm_ff_0_div_clk_src.clkr.hw,
934e146252aSImran Shaik 				},
935e146252aSImran Shaik 				.num_parents = 1,
936e146252aSImran Shaik 				.flags = CLK_SET_RATE_PARENT,
937e146252aSImran Shaik 				.ops = &clk_branch2_mem_ops,
938e146252aSImran Shaik 			},
939e146252aSImran Shaik 		},
940e146252aSImran Shaik 	},
941e146252aSImran Shaik };
942e146252aSImran Shaik 
943e146252aSImran Shaik static struct clk_mem_branch ecpri_cc_eth_100g_c2c_0_hm_ff_1_clk = {
944e146252aSImran Shaik 	.mem_enable_reg = 0x8410,
945e146252aSImran Shaik 	.mem_ack_reg = 0x8424,
946e146252aSImran Shaik 	.mem_enable_ack_mask = BIT(1),
947e146252aSImran Shaik 	.branch = {
948e146252aSImran Shaik 		.halt_reg = 0x80bc,
949e146252aSImran Shaik 		.halt_check = BRANCH_HALT,
950e146252aSImran Shaik 		.clkr = {
951e146252aSImran Shaik 			.enable_reg = 0x80bc,
952e146252aSImran Shaik 			.enable_mask = BIT(0),
953e146252aSImran Shaik 			.hw.init = &(const struct clk_init_data) {
954e146252aSImran Shaik 				.name = "ecpri_cc_eth_100g_c2c_0_hm_ff_1_clk",
955e146252aSImran Shaik 				.parent_hws = (const struct clk_hw*[]) {
956e146252aSImran Shaik 					&ecpri_cc_eth_100g_c2c_hm_ff_1_div_clk_src.clkr.hw,
957e146252aSImran Shaik 				},
958e146252aSImran Shaik 				.num_parents = 1,
959e146252aSImran Shaik 				.flags = CLK_SET_RATE_PARENT,
960e146252aSImran Shaik 				.ops = &clk_branch2_mem_ops,
961e146252aSImran Shaik 			},
962e146252aSImran Shaik 		},
963e146252aSImran Shaik 	},
964e146252aSImran Shaik };
965e146252aSImran Shaik 
966e146252aSImran Shaik static struct clk_mem_branch ecpri_cc_eth_100g_c2c_hm_macsec_clk = {
967e146252aSImran Shaik 	.mem_enable_reg = 0x8410,
968e146252aSImran Shaik 	.mem_ack_reg = 0x8424,
969e146252aSImran Shaik 	.mem_enable_ack_mask = BIT(4),
970e146252aSImran Shaik 	.branch = {
971e146252aSImran Shaik 		.halt_reg = 0x80ac,
972e146252aSImran Shaik 		.halt_check = BRANCH_HALT,
973e146252aSImran Shaik 		.clkr = {
974e146252aSImran Shaik 			.enable_reg = 0x80ac,
975e146252aSImran Shaik 			.enable_mask = BIT(0),
976e146252aSImran Shaik 			.hw.init = &(const struct clk_init_data) {
977e146252aSImran Shaik 				.name = "ecpri_cc_eth_100g_c2c_hm_macsec_clk",
978e146252aSImran Shaik 				.parent_hws = (const struct clk_hw*[]) {
979e146252aSImran Shaik 					&ecpri_cc_eth_100g_c2c_hm_macsec_clk_src.clkr.hw,
980e146252aSImran Shaik 				},
981e146252aSImran Shaik 				.num_parents = 1,
982e146252aSImran Shaik 				.flags = CLK_SET_RATE_PARENT,
983e146252aSImran Shaik 				.ops = &clk_branch2_mem_ops,
984e146252aSImran Shaik 			},
985e146252aSImran Shaik 		},
986e146252aSImran Shaik 	},
987e146252aSImran Shaik };
988e146252aSImran Shaik 
989e146252aSImran Shaik static struct clk_mem_branch ecpri_cc_eth_100g_dbg_c2c_hm_ff_0_clk = {
990e146252aSImran Shaik 	.mem_enable_reg = 0x8414,
991e146252aSImran Shaik 	.mem_ack_reg = 0x8428,
992e146252aSImran Shaik 	.mem_enable_ack_mask = BIT(0),
993e146252aSImran Shaik 	.branch = {
994e146252aSImran Shaik 		.halt_reg = 0x80d8,
995e146252aSImran Shaik 		.halt_check = BRANCH_HALT,
996e146252aSImran Shaik 		.clkr = {
997e146252aSImran Shaik 			.enable_reg = 0x80d8,
998e146252aSImran Shaik 			.enable_mask = BIT(0),
999e146252aSImran Shaik 			.hw.init = &(const struct clk_init_data) {
1000e146252aSImran Shaik 				.name = "ecpri_cc_eth_100g_dbg_c2c_hm_ff_0_clk",
1001e146252aSImran Shaik 				.parent_hws = (const struct clk_hw*[]) {
1002e146252aSImran Shaik 					&ecpri_cc_eth_100g_dbg_c2c_hm_ff_0_div_clk_src.clkr.hw,
1003e146252aSImran Shaik 				},
1004e146252aSImran Shaik 				.num_parents = 1,
1005e146252aSImran Shaik 				.flags = CLK_SET_RATE_PARENT,
1006e146252aSImran Shaik 				.ops = &clk_branch2_mem_ops,
1007e146252aSImran Shaik 			},
1008e146252aSImran Shaik 		},
1009e146252aSImran Shaik 	},
1010e146252aSImran Shaik };
1011e146252aSImran Shaik 
1012e146252aSImran Shaik static struct clk_mem_branch ecpri_cc_eth_100g_dbg_c2c_hm_ff_1_clk = {
1013e146252aSImran Shaik 	.mem_enable_reg = 0x8414,
1014e146252aSImran Shaik 	.mem_ack_reg = 0x8428,
1015e146252aSImran Shaik 	.mem_enable_ack_mask = BIT(1),
1016e146252aSImran Shaik 	.branch = {
1017e146252aSImran Shaik 		.halt_reg = 0x80e0,
1018e146252aSImran Shaik 		.halt_check = BRANCH_HALT,
1019e146252aSImran Shaik 		.clkr = {
1020e146252aSImran Shaik 			.enable_reg = 0x80e0,
1021e146252aSImran Shaik 			.enable_mask = BIT(0),
1022e146252aSImran Shaik 			.hw.init = &(const struct clk_init_data) {
1023e146252aSImran Shaik 				.name = "ecpri_cc_eth_100g_dbg_c2c_hm_ff_1_clk",
1024e146252aSImran Shaik 				.parent_hws = (const struct clk_hw*[]) {
1025e146252aSImran Shaik 					&ecpri_cc_eth_100g_dbg_c2c_hm_ff_1_div_clk_src.clkr.hw,
1026e146252aSImran Shaik 				},
1027e146252aSImran Shaik 				.num_parents = 1,
1028e146252aSImran Shaik 				.flags = CLK_SET_RATE_PARENT,
1029e146252aSImran Shaik 				.ops = &clk_branch2_mem_ops,
1030e146252aSImran Shaik 			},
1031e146252aSImran Shaik 		},
1032e146252aSImran Shaik 	},
1033e146252aSImran Shaik };
1034e146252aSImran Shaik 
1035e146252aSImran Shaik static struct clk_branch ecpri_cc_eth_100g_dbg_c2c_udp_fifo_clk = {
1036e146252aSImran Shaik 	.halt_reg = 0x80f0,
1037e146252aSImran Shaik 	.halt_check = BRANCH_HALT,
1038e146252aSImran Shaik 	.clkr = {
1039e146252aSImran Shaik 		.enable_reg = 0x80f0,
1040e146252aSImran Shaik 		.enable_mask = BIT(0),
1041e146252aSImran Shaik 		.hw.init = &(const struct clk_init_data) {
1042e146252aSImran Shaik 			.name = "ecpri_cc_eth_100g_dbg_c2c_udp_fifo_clk",
1043e146252aSImran Shaik 			.parent_hws = (const struct clk_hw*[]) {
1044e146252aSImran Shaik 				&ecpri_cc_ecpri_clk_src.clkr.hw,
1045e146252aSImran Shaik 			},
1046e146252aSImran Shaik 			.num_parents = 1,
1047e146252aSImran Shaik 			.flags = CLK_SET_RATE_PARENT,
1048e146252aSImran Shaik 			.ops = &clk_branch2_ops,
1049e146252aSImran Shaik 		},
1050e146252aSImran Shaik 	},
1051e146252aSImran Shaik };
1052e146252aSImran Shaik 
1053e146252aSImran Shaik static struct clk_mem_branch ecpri_cc_eth_100g_fh_0_hm_ff_0_clk = {
1054e146252aSImran Shaik 	.mem_enable_reg = 0x8404,
1055e146252aSImran Shaik 	.mem_ack_reg = 0x8418,
1056e146252aSImran Shaik 	.mem_enable_ack_mask = BIT(0),
1057e146252aSImran Shaik 	.branch = {
1058e146252aSImran Shaik 		.halt_reg = 0x800c,
1059e146252aSImran Shaik 		.halt_check = BRANCH_HALT,
1060e146252aSImran Shaik 		.clkr = {
1061e146252aSImran Shaik 			.enable_reg = 0x800c,
1062e146252aSImran Shaik 			.enable_mask = BIT(0),
1063e146252aSImran Shaik 			.hw.init = &(const struct clk_init_data) {
1064e146252aSImran Shaik 				.name = "ecpri_cc_eth_100g_fh_0_hm_ff_0_clk",
1065e146252aSImran Shaik 				.parent_hws = (const struct clk_hw*[]) {
1066e146252aSImran Shaik 					&ecpri_cc_eth_100g_fh_0_hm_ff_0_div_clk_src.clkr.hw,
1067e146252aSImran Shaik 				},
1068e146252aSImran Shaik 				.num_parents = 1,
1069e146252aSImran Shaik 				.flags = CLK_SET_RATE_PARENT,
1070e146252aSImran Shaik 				.ops = &clk_branch2_mem_ops,
1071e146252aSImran Shaik 			},
1072e146252aSImran Shaik 		},
1073e146252aSImran Shaik 	},
1074e146252aSImran Shaik };
1075e146252aSImran Shaik 
1076e146252aSImran Shaik static struct clk_mem_branch ecpri_cc_eth_100g_fh_0_hm_ff_1_clk = {
1077e146252aSImran Shaik 	.mem_enable_reg = 0x8404,
1078e146252aSImran Shaik 	.mem_ack_reg = 0x8418,
1079e146252aSImran Shaik 	.mem_enable_ack_mask = BIT(1),
1080e146252aSImran Shaik 	.branch = {
1081e146252aSImran Shaik 		.halt_reg = 0x8014,
1082e146252aSImran Shaik 		.halt_check = BRANCH_HALT,
1083e146252aSImran Shaik 		.clkr = {
1084e146252aSImran Shaik 			.enable_reg = 0x8014,
1085e146252aSImran Shaik 			.enable_mask = BIT(0),
1086e146252aSImran Shaik 			.hw.init = &(const struct clk_init_data) {
1087e146252aSImran Shaik 				.name = "ecpri_cc_eth_100g_fh_0_hm_ff_1_clk",
1088e146252aSImran Shaik 				.parent_hws = (const struct clk_hw*[]) {
1089e146252aSImran Shaik 					&ecpri_cc_eth_100g_fh_0_hm_ff_1_div_clk_src.clkr.hw,
1090e146252aSImran Shaik 				},
1091e146252aSImran Shaik 				.num_parents = 1,
1092e146252aSImran Shaik 				.flags = CLK_SET_RATE_PARENT,
1093e146252aSImran Shaik 				.ops = &clk_branch2_mem_ops,
1094e146252aSImran Shaik 			},
1095e146252aSImran Shaik 		},
1096e146252aSImran Shaik 	},
1097e146252aSImran Shaik };
1098e146252aSImran Shaik 
1099e146252aSImran Shaik static struct clk_mem_branch ecpri_cc_eth_100g_fh_0_hm_ff_2_clk = {
1100e146252aSImran Shaik 	.mem_enable_reg = 0x8404,
1101e146252aSImran Shaik 	.mem_ack_reg = 0x8418,
1102e146252aSImran Shaik 	.mem_enable_ack_mask = BIT(2),
1103e146252aSImran Shaik 	.branch = {
1104e146252aSImran Shaik 		.halt_reg = 0x801c,
1105e146252aSImran Shaik 		.halt_check = BRANCH_HALT,
1106e146252aSImran Shaik 		.clkr = {
1107e146252aSImran Shaik 			.enable_reg = 0x801c,
1108e146252aSImran Shaik 			.enable_mask = BIT(0),
1109e146252aSImran Shaik 			.hw.init = &(const struct clk_init_data) {
1110e146252aSImran Shaik 				.name = "ecpri_cc_eth_100g_fh_0_hm_ff_2_clk",
1111e146252aSImran Shaik 				.parent_hws = (const struct clk_hw*[]) {
1112e146252aSImran Shaik 					&ecpri_cc_eth_100g_fh_0_hm_ff_2_div_clk_src.clkr.hw,
1113e146252aSImran Shaik 				},
1114e146252aSImran Shaik 				.num_parents = 1,
1115e146252aSImran Shaik 				.flags = CLK_SET_RATE_PARENT,
1116e146252aSImran Shaik 				.ops = &clk_branch2_mem_ops,
1117e146252aSImran Shaik 			},
1118e146252aSImran Shaik 		},
1119e146252aSImran Shaik 	},
1120e146252aSImran Shaik };
1121e146252aSImran Shaik 
1122e146252aSImran Shaik static struct clk_mem_branch ecpri_cc_eth_100g_fh_0_hm_ff_3_clk = {
1123e146252aSImran Shaik 	.mem_enable_reg = 0x8404,
1124e146252aSImran Shaik 	.mem_ack_reg = 0x8418,
1125e146252aSImran Shaik 	.mem_enable_ack_mask = BIT(3),
1126e146252aSImran Shaik 	.branch = {
1127e146252aSImran Shaik 		.halt_reg = 0x8024,
1128e146252aSImran Shaik 		.halt_check = BRANCH_HALT,
1129e146252aSImran Shaik 		.clkr = {
1130e146252aSImran Shaik 			.enable_reg = 0x8024,
1131e146252aSImran Shaik 			.enable_mask = BIT(0),
1132e146252aSImran Shaik 			.hw.init = &(const struct clk_init_data) {
1133e146252aSImran Shaik 				.name = "ecpri_cc_eth_100g_fh_0_hm_ff_3_clk",
1134e146252aSImran Shaik 				.parent_hws = (const struct clk_hw*[]) {
1135e146252aSImran Shaik 					&ecpri_cc_eth_100g_fh_0_hm_ff_3_div_clk_src.clkr.hw,
1136e146252aSImran Shaik 				},
1137e146252aSImran Shaik 				.num_parents = 1,
1138e146252aSImran Shaik 				.flags = CLK_SET_RATE_PARENT,
1139e146252aSImran Shaik 				.ops = &clk_branch2_mem_ops,
1140e146252aSImran Shaik 			},
1141e146252aSImran Shaik 		},
1142e146252aSImran Shaik 	},
1143e146252aSImran Shaik };
1144e146252aSImran Shaik 
1145e146252aSImran Shaik static struct clk_branch ecpri_cc_eth_100g_fh_0_udp_fifo_clk = {
1146e146252aSImran Shaik 	.halt_reg = 0x8034,
1147e146252aSImran Shaik 	.halt_check = BRANCH_HALT,
1148e146252aSImran Shaik 	.clkr = {
1149e146252aSImran Shaik 		.enable_reg = 0x8034,
1150e146252aSImran Shaik 		.enable_mask = BIT(0),
1151e146252aSImran Shaik 		.hw.init = &(const struct clk_init_data) {
1152e146252aSImran Shaik 			.name = "ecpri_cc_eth_100g_fh_0_udp_fifo_clk",
1153e146252aSImran Shaik 			.parent_hws = (const struct clk_hw*[]) {
1154e146252aSImran Shaik 				&ecpri_cc_ecpri_clk_src.clkr.hw,
1155e146252aSImran Shaik 			},
1156e146252aSImran Shaik 			.num_parents = 1,
1157e146252aSImran Shaik 			.flags = CLK_SET_RATE_PARENT,
1158e146252aSImran Shaik 			.ops = &clk_branch2_ops,
1159e146252aSImran Shaik 		},
1160e146252aSImran Shaik 	},
1161e146252aSImran Shaik };
1162e146252aSImran Shaik 
1163e146252aSImran Shaik static struct clk_mem_branch ecpri_cc_eth_100g_fh_1_hm_ff_0_clk = {
1164e146252aSImran Shaik 	.mem_enable_reg = 0x8408,
1165e146252aSImran Shaik 	.mem_ack_reg = 0x841c,
1166e146252aSImran Shaik 	.mem_enable_ack_mask = BIT(0),
1167e146252aSImran Shaik 	.branch = {
1168e146252aSImran Shaik 		.halt_reg = 0x8044,
1169e146252aSImran Shaik 		.halt_check = BRANCH_HALT,
1170e146252aSImran Shaik 		.clkr = {
1171e146252aSImran Shaik 			.enable_reg = 0x8044,
1172e146252aSImran Shaik 			.enable_mask = BIT(0),
1173e146252aSImran Shaik 			.hw.init = &(const struct clk_init_data) {
1174e146252aSImran Shaik 				.name = "ecpri_cc_eth_100g_fh_1_hm_ff_0_clk",
1175e146252aSImran Shaik 				.parent_hws = (const struct clk_hw*[]) {
1176e146252aSImran Shaik 					&ecpri_cc_eth_100g_fh_1_hm_ff_0_div_clk_src.clkr.hw,
1177e146252aSImran Shaik 				},
1178e146252aSImran Shaik 				.num_parents = 1,
1179e146252aSImran Shaik 				.flags = CLK_SET_RATE_PARENT,
1180e146252aSImran Shaik 				.ops = &clk_branch2_mem_ops,
1181e146252aSImran Shaik 			},
1182e146252aSImran Shaik 		},
1183e146252aSImran Shaik 	},
1184e146252aSImran Shaik };
1185e146252aSImran Shaik 
1186e146252aSImran Shaik static struct clk_mem_branch ecpri_cc_eth_100g_fh_1_hm_ff_1_clk = {
1187e146252aSImran Shaik 	.mem_enable_reg = 0x8408,
1188e146252aSImran Shaik 	.mem_ack_reg = 0x841c,
1189e146252aSImran Shaik 	.mem_enable_ack_mask = BIT(1),
1190e146252aSImran Shaik 	.branch = {
1191e146252aSImran Shaik 		.halt_reg = 0x804c,
1192e146252aSImran Shaik 		.halt_check = BRANCH_HALT,
1193e146252aSImran Shaik 		.clkr = {
1194e146252aSImran Shaik 			.enable_reg = 0x804c,
1195e146252aSImran Shaik 			.enable_mask = BIT(0),
1196e146252aSImran Shaik 			.hw.init = &(const struct clk_init_data) {
1197e146252aSImran Shaik 				.name = "ecpri_cc_eth_100g_fh_1_hm_ff_1_clk",
1198e146252aSImran Shaik 				.parent_hws = (const struct clk_hw*[]) {
1199e146252aSImran Shaik 					&ecpri_cc_eth_100g_fh_1_hm_ff_1_div_clk_src.clkr.hw,
1200e146252aSImran Shaik 				},
1201e146252aSImran Shaik 				.num_parents = 1,
1202e146252aSImran Shaik 				.flags = CLK_SET_RATE_PARENT,
1203e146252aSImran Shaik 				.ops = &clk_branch2_mem_ops,
1204e146252aSImran Shaik 			},
1205e146252aSImran Shaik 		},
1206e146252aSImran Shaik 	},
1207e146252aSImran Shaik };
1208e146252aSImran Shaik 
1209e146252aSImran Shaik static struct clk_mem_branch ecpri_cc_eth_100g_fh_1_hm_ff_2_clk = {
1210e146252aSImran Shaik 	.mem_enable_reg = 0x8408,
1211e146252aSImran Shaik 	.mem_ack_reg = 0x841c,
1212e146252aSImran Shaik 	.mem_enable_ack_mask = BIT(2),
1213e146252aSImran Shaik 	.branch = {
1214e146252aSImran Shaik 		.halt_reg = 0x8054,
1215e146252aSImran Shaik 		.halt_check = BRANCH_HALT,
1216e146252aSImran Shaik 		.clkr = {
1217e146252aSImran Shaik 			.enable_reg = 0x8054,
1218e146252aSImran Shaik 			.enable_mask = BIT(0),
1219e146252aSImran Shaik 			.hw.init = &(const struct clk_init_data) {
1220e146252aSImran Shaik 				.name = "ecpri_cc_eth_100g_fh_1_hm_ff_2_clk",
1221e146252aSImran Shaik 				.parent_hws = (const struct clk_hw*[]) {
1222e146252aSImran Shaik 					&ecpri_cc_eth_100g_fh_1_hm_ff_2_div_clk_src.clkr.hw,
1223e146252aSImran Shaik 				},
1224e146252aSImran Shaik 				.num_parents = 1,
1225e146252aSImran Shaik 				.flags = CLK_SET_RATE_PARENT,
1226e146252aSImran Shaik 				.ops = &clk_branch2_mem_ops,
1227e146252aSImran Shaik 			},
1228e146252aSImran Shaik 		},
1229e146252aSImran Shaik 	},
1230e146252aSImran Shaik };
1231e146252aSImran Shaik 
1232e146252aSImran Shaik static struct clk_mem_branch ecpri_cc_eth_100g_fh_1_hm_ff_3_clk = {
1233e146252aSImran Shaik 	.mem_enable_reg = 0x8408,
1234e146252aSImran Shaik 	.mem_ack_reg = 0x841c,
1235e146252aSImran Shaik 	.mem_enable_ack_mask = BIT(3),
1236e146252aSImran Shaik 	.branch = {
1237e146252aSImran Shaik 		.halt_reg = 0x805c,
1238e146252aSImran Shaik 		.halt_check = BRANCH_HALT,
1239e146252aSImran Shaik 		.clkr = {
1240e146252aSImran Shaik 			.enable_reg = 0x805c,
1241e146252aSImran Shaik 			.enable_mask = BIT(0),
1242e146252aSImran Shaik 			.hw.init = &(const struct clk_init_data) {
1243e146252aSImran Shaik 				.name = "ecpri_cc_eth_100g_fh_1_hm_ff_3_clk",
1244e146252aSImran Shaik 				.parent_hws = (const struct clk_hw*[]) {
1245e146252aSImran Shaik 					&ecpri_cc_eth_100g_fh_1_hm_ff_3_div_clk_src.clkr.hw,
1246e146252aSImran Shaik 				},
1247e146252aSImran Shaik 				.num_parents = 1,
1248e146252aSImran Shaik 				.flags = CLK_SET_RATE_PARENT,
1249e146252aSImran Shaik 				.ops = &clk_branch2_mem_ops,
1250e146252aSImran Shaik 			},
1251e146252aSImran Shaik 		},
1252e146252aSImran Shaik 	},
1253e146252aSImran Shaik };
1254e146252aSImran Shaik 
1255e146252aSImran Shaik static struct clk_branch ecpri_cc_eth_100g_fh_1_udp_fifo_clk = {
1256e146252aSImran Shaik 	.halt_reg = 0x806c,
1257e146252aSImran Shaik 	.halt_check = BRANCH_HALT,
1258e146252aSImran Shaik 	.clkr = {
1259e146252aSImran Shaik 		.enable_reg = 0x806c,
1260e146252aSImran Shaik 		.enable_mask = BIT(0),
1261e146252aSImran Shaik 		.hw.init = &(const struct clk_init_data) {
1262e146252aSImran Shaik 			.name = "ecpri_cc_eth_100g_fh_1_udp_fifo_clk",
1263e146252aSImran Shaik 			.parent_hws = (const struct clk_hw*[]) {
1264e146252aSImran Shaik 				&ecpri_cc_ecpri_clk_src.clkr.hw,
1265e146252aSImran Shaik 			},
1266e146252aSImran Shaik 			.num_parents = 1,
1267e146252aSImran Shaik 			.flags = CLK_SET_RATE_PARENT,
1268e146252aSImran Shaik 			.ops = &clk_branch2_ops,
1269e146252aSImran Shaik 		},
1270e146252aSImran Shaik 	},
1271e146252aSImran Shaik };
1272e146252aSImran Shaik 
1273e146252aSImran Shaik static struct clk_mem_branch ecpri_cc_eth_100g_fh_2_hm_ff_0_clk = {
1274e146252aSImran Shaik 	.mem_enable_reg = 0x840c,
1275e146252aSImran Shaik 	.mem_ack_reg = 0x8420,
1276e146252aSImran Shaik 	.mem_enable_ack_mask = BIT(0),
1277e146252aSImran Shaik 	.branch = {
1278e146252aSImran Shaik 		.halt_reg = 0x807c,
1279e146252aSImran Shaik 		.halt_check = BRANCH_HALT,
1280e146252aSImran Shaik 		.clkr = {
1281e146252aSImran Shaik 			.enable_reg = 0x807c,
1282e146252aSImran Shaik 			.enable_mask = BIT(0),
1283e146252aSImran Shaik 			.hw.init = &(const struct clk_init_data) {
1284e146252aSImran Shaik 				.name = "ecpri_cc_eth_100g_fh_2_hm_ff_0_clk",
1285e146252aSImran Shaik 				.parent_hws = (const struct clk_hw*[]) {
1286e146252aSImran Shaik 					&ecpri_cc_eth_100g_fh_2_hm_ff_0_div_clk_src.clkr.hw,
1287e146252aSImran Shaik 				},
1288e146252aSImran Shaik 				.num_parents = 1,
1289e146252aSImran Shaik 				.flags = CLK_SET_RATE_PARENT,
1290e146252aSImran Shaik 				.ops = &clk_branch2_mem_ops,
1291e146252aSImran Shaik 			},
1292e146252aSImran Shaik 		},
1293e146252aSImran Shaik 	},
1294e146252aSImran Shaik };
1295e146252aSImran Shaik 
1296e146252aSImran Shaik static struct clk_mem_branch ecpri_cc_eth_100g_fh_2_hm_ff_1_clk = {
1297e146252aSImran Shaik 	.mem_enable_reg = 0x840c,
1298e146252aSImran Shaik 	.mem_ack_reg = 0x8420,
1299e146252aSImran Shaik 	.mem_enable_ack_mask = BIT(1),
1300e146252aSImran Shaik 	.branch = {
1301e146252aSImran Shaik 		.halt_reg = 0x8084,
1302e146252aSImran Shaik 		.halt_check = BRANCH_HALT,
1303e146252aSImran Shaik 		.clkr = {
1304e146252aSImran Shaik 			.enable_reg = 0x8084,
1305e146252aSImran Shaik 			.enable_mask = BIT(0),
1306e146252aSImran Shaik 			.hw.init = &(const struct clk_init_data) {
1307e146252aSImran Shaik 				.name = "ecpri_cc_eth_100g_fh_2_hm_ff_1_clk",
1308e146252aSImran Shaik 				.parent_hws = (const struct clk_hw*[]) {
1309e146252aSImran Shaik 					&ecpri_cc_eth_100g_fh_2_hm_ff_1_div_clk_src.clkr.hw,
1310e146252aSImran Shaik 				},
1311e146252aSImran Shaik 				.num_parents = 1,
1312e146252aSImran Shaik 				.flags = CLK_SET_RATE_PARENT,
1313e146252aSImran Shaik 				.ops = &clk_branch2_mem_ops,
1314e146252aSImran Shaik 			},
1315e146252aSImran Shaik 		},
1316e146252aSImran Shaik 	},
1317e146252aSImran Shaik };
1318e146252aSImran Shaik 
1319e146252aSImran Shaik static struct clk_mem_branch ecpri_cc_eth_100g_fh_2_hm_ff_2_clk = {
1320e146252aSImran Shaik 	.mem_enable_reg = 0x840c,
1321e146252aSImran Shaik 	.mem_ack_reg = 0x8420,
1322e146252aSImran Shaik 	.mem_enable_ack_mask = BIT(2),
1323e146252aSImran Shaik 	.branch = {
1324e146252aSImran Shaik 		.halt_reg = 0x808c,
1325e146252aSImran Shaik 		.halt_check = BRANCH_HALT,
1326e146252aSImran Shaik 		.clkr = {
1327e146252aSImran Shaik 			.enable_reg = 0x808c,
1328e146252aSImran Shaik 			.enable_mask = BIT(0),
1329e146252aSImran Shaik 			.hw.init = &(const struct clk_init_data) {
1330e146252aSImran Shaik 				.name = "ecpri_cc_eth_100g_fh_2_hm_ff_2_clk",
1331e146252aSImran Shaik 				.parent_hws = (const struct clk_hw*[]) {
1332e146252aSImran Shaik 					&ecpri_cc_eth_100g_fh_2_hm_ff_2_div_clk_src.clkr.hw,
1333e146252aSImran Shaik 				},
1334e146252aSImran Shaik 				.num_parents = 1,
1335e146252aSImran Shaik 				.flags = CLK_SET_RATE_PARENT,
1336e146252aSImran Shaik 				.ops = &clk_branch2_mem_ops,
1337e146252aSImran Shaik 			},
1338e146252aSImran Shaik 		},
1339e146252aSImran Shaik 	},
1340e146252aSImran Shaik };
1341e146252aSImran Shaik 
1342e146252aSImran Shaik static struct clk_mem_branch ecpri_cc_eth_100g_fh_2_hm_ff_3_clk = {
1343e146252aSImran Shaik 	.mem_enable_reg = 0x840c,
1344e146252aSImran Shaik 	.mem_ack_reg = 0x8420,
1345e146252aSImran Shaik 	.mem_enable_ack_mask = BIT(3),
1346e146252aSImran Shaik 	.branch = {
1347e146252aSImran Shaik 		.halt_reg = 0x8094,
1348e146252aSImran Shaik 		.halt_check = BRANCH_HALT,
1349e146252aSImran Shaik 		.clkr = {
1350e146252aSImran Shaik 			.enable_reg = 0x8094,
1351e146252aSImran Shaik 			.enable_mask = BIT(0),
1352e146252aSImran Shaik 			.hw.init = &(const struct clk_init_data) {
1353e146252aSImran Shaik 				.name = "ecpri_cc_eth_100g_fh_2_hm_ff_3_clk",
1354e146252aSImran Shaik 				.parent_hws = (const struct clk_hw*[]) {
1355e146252aSImran Shaik 					&ecpri_cc_eth_100g_fh_2_hm_ff_3_div_clk_src.clkr.hw,
1356e146252aSImran Shaik 				},
1357e146252aSImran Shaik 				.num_parents = 1,
1358e146252aSImran Shaik 				.flags = CLK_SET_RATE_PARENT,
1359e146252aSImran Shaik 				.ops = &clk_branch2_mem_ops,
1360e146252aSImran Shaik 			},
1361e146252aSImran Shaik 		},
1362e146252aSImran Shaik 	},
1363e146252aSImran Shaik };
1364e146252aSImran Shaik 
1365e146252aSImran Shaik static struct clk_branch ecpri_cc_eth_100g_fh_2_udp_fifo_clk = {
1366e146252aSImran Shaik 	.halt_reg = 0x80a4,
1367e146252aSImran Shaik 	.halt_check = BRANCH_HALT,
1368e146252aSImran Shaik 	.clkr = {
1369e146252aSImran Shaik 		.enable_reg = 0x80a4,
1370e146252aSImran Shaik 		.enable_mask = BIT(0),
1371e146252aSImran Shaik 		.hw.init = &(const struct clk_init_data) {
1372e146252aSImran Shaik 			.name = "ecpri_cc_eth_100g_fh_2_udp_fifo_clk",
1373e146252aSImran Shaik 			.parent_hws = (const struct clk_hw*[]) {
1374e146252aSImran Shaik 				&ecpri_cc_ecpri_clk_src.clkr.hw,
1375e146252aSImran Shaik 			},
1376e146252aSImran Shaik 			.num_parents = 1,
1377e146252aSImran Shaik 			.flags = CLK_SET_RATE_PARENT,
1378e146252aSImran Shaik 			.ops = &clk_branch2_ops,
1379e146252aSImran Shaik 		},
1380e146252aSImran Shaik 	},
1381e146252aSImran Shaik };
1382e146252aSImran Shaik 
1383e146252aSImran Shaik static struct clk_mem_branch ecpri_cc_eth_100g_fh_macsec_0_clk = {
1384e146252aSImran Shaik 	.mem_enable_reg = 0x8404,
1385e146252aSImran Shaik 	.mem_ack_reg = 0x8418,
1386e146252aSImran Shaik 	.mem_enable_ack_mask = BIT(4),
1387e146252aSImran Shaik 	.branch = {
1388e146252aSImran Shaik 		.halt_reg = 0x8004,
1389e146252aSImran Shaik 		.halt_check = BRANCH_HALT,
1390e146252aSImran Shaik 		.clkr = {
1391e146252aSImran Shaik 			.enable_reg = 0x8004,
1392e146252aSImran Shaik 			.enable_mask = BIT(0),
1393e146252aSImran Shaik 			.hw.init = &(const struct clk_init_data) {
1394e146252aSImran Shaik 				.name = "ecpri_cc_eth_100g_fh_macsec_0_clk",
1395e146252aSImran Shaik 				.parent_hws = (const struct clk_hw*[]) {
1396e146252aSImran Shaik 					&ecpri_cc_eth_100g_fh0_macsec_clk_src.clkr.hw,
1397e146252aSImran Shaik 				},
1398e146252aSImran Shaik 				.num_parents = 1,
1399e146252aSImran Shaik 				.flags = CLK_SET_RATE_PARENT,
1400e146252aSImran Shaik 				.ops = &clk_branch2_mem_ops,
1401e146252aSImran Shaik 			},
1402e146252aSImran Shaik 		},
1403e146252aSImran Shaik 	},
1404e146252aSImran Shaik };
1405e146252aSImran Shaik 
1406e146252aSImran Shaik static struct clk_mem_branch ecpri_cc_eth_100g_fh_macsec_1_clk = {
1407e146252aSImran Shaik 	.mem_enable_reg = 0x8408,
1408e146252aSImran Shaik 	.mem_ack_reg = 0x841c,
1409e146252aSImran Shaik 	.mem_enable_ack_mask = BIT(4),
1410e146252aSImran Shaik 	.branch = {
1411e146252aSImran Shaik 		.halt_reg = 0x803c,
1412e146252aSImran Shaik 		.halt_check = BRANCH_HALT,
1413e146252aSImran Shaik 		.clkr = {
1414e146252aSImran Shaik 			.enable_reg = 0x803c,
1415e146252aSImran Shaik 			.enable_mask = BIT(0),
1416e146252aSImran Shaik 			.hw.init = &(const struct clk_init_data) {
1417e146252aSImran Shaik 				.name = "ecpri_cc_eth_100g_fh_macsec_1_clk",
1418e146252aSImran Shaik 				.parent_hws = (const struct clk_hw*[]) {
1419e146252aSImran Shaik 					&ecpri_cc_eth_100g_fh1_macsec_clk_src.clkr.hw,
1420e146252aSImran Shaik 				},
1421e146252aSImran Shaik 				.num_parents = 1,
1422e146252aSImran Shaik 				.flags = CLK_SET_RATE_PARENT,
1423e146252aSImran Shaik 				.ops = &clk_branch2_mem_ops,
1424e146252aSImran Shaik 			},
1425e146252aSImran Shaik 		},
1426e146252aSImran Shaik 	},
1427e146252aSImran Shaik };
1428e146252aSImran Shaik 
1429e146252aSImran Shaik static struct clk_mem_branch ecpri_cc_eth_100g_fh_macsec_2_clk = {
1430e146252aSImran Shaik 	.mem_enable_reg = 0x840c,
1431e146252aSImran Shaik 	.mem_ack_reg = 0x8420,
1432e146252aSImran Shaik 	.mem_enable_ack_mask = BIT(4),
1433e146252aSImran Shaik 	.branch = {
1434e146252aSImran Shaik 		.halt_reg = 0x8074,
1435e146252aSImran Shaik 		.halt_check = BRANCH_HALT,
1436e146252aSImran Shaik 		.clkr = {
1437e146252aSImran Shaik 			.enable_reg = 0x8074,
1438e146252aSImran Shaik 			.enable_mask = BIT(0),
1439e146252aSImran Shaik 			.hw.init = &(const struct clk_init_data) {
1440e146252aSImran Shaik 				.name = "ecpri_cc_eth_100g_fh_macsec_2_clk",
1441e146252aSImran Shaik 				.parent_hws = (const struct clk_hw*[]) {
1442e146252aSImran Shaik 					&ecpri_cc_eth_100g_fh2_macsec_clk_src.clkr.hw,
1443e146252aSImran Shaik 				},
1444e146252aSImran Shaik 				.num_parents = 1,
1445e146252aSImran Shaik 				.flags = CLK_SET_RATE_PARENT,
1446e146252aSImran Shaik 				.ops = &clk_branch2_mem_ops,
1447e146252aSImran Shaik 			},
1448e146252aSImran Shaik 		},
1449e146252aSImran Shaik 	},
1450e146252aSImran Shaik };
1451e146252aSImran Shaik 
1452e146252aSImran Shaik static struct clk_mem_branch ecpri_cc_eth_100g_mac_c2c_hm_ref_clk = {
1453e146252aSImran Shaik 	.mem_enable_reg = 0x8410,
1454e146252aSImran Shaik 	.mem_ack_reg = 0x8424,
1455e146252aSImran Shaik 	.mem_enable_ack_mask = BIT(5),
1456e146252aSImran Shaik 	.branch = {
1457e146252aSImran Shaik 		.halt_reg = 0x80c4,
1458e146252aSImran Shaik 		.halt_check = BRANCH_HALT,
1459e146252aSImran Shaik 		.clkr = {
1460e146252aSImran Shaik 			.enable_reg = 0x80c4,
1461e146252aSImran Shaik 			.enable_mask = BIT(0),
1462e146252aSImran Shaik 			.hw.init = &(const struct clk_init_data) {
1463e146252aSImran Shaik 				.name = "ecpri_cc_eth_100g_mac_c2c_hm_ref_clk",
1464e146252aSImran Shaik 				.parent_hws = (const struct clk_hw*[]) {
1465e146252aSImran Shaik 					&ecpri_cc_eth_100g_mac_c2c_hm_ref_clk_src.clkr.hw,
1466e146252aSImran Shaik 				},
1467e146252aSImran Shaik 				.num_parents = 1,
1468e146252aSImran Shaik 				.flags = CLK_SET_RATE_PARENT,
1469e146252aSImran Shaik 				.ops = &clk_branch2_mem_ops,
1470e146252aSImran Shaik 			},
1471e146252aSImran Shaik 		},
1472e146252aSImran Shaik 	},
1473e146252aSImran Shaik };
1474e146252aSImran Shaik 
1475e146252aSImran Shaik static struct clk_mem_branch ecpri_cc_eth_100g_mac_dbg_c2c_hm_ref_clk = {
1476e146252aSImran Shaik 	.mem_enable_reg = 0x8414,
1477e146252aSImran Shaik 	.mem_ack_reg = 0x8428,
1478e146252aSImran Shaik 	.mem_enable_ack_mask = BIT(5),
1479e146252aSImran Shaik 	.branch = {
1480e146252aSImran Shaik 		.halt_reg = 0x80e8,
1481e146252aSImran Shaik 		.halt_check = BRANCH_HALT,
1482e146252aSImran Shaik 		.clkr = {
1483e146252aSImran Shaik 			.enable_reg = 0x80e8,
1484e146252aSImran Shaik 			.enable_mask = BIT(0),
1485e146252aSImran Shaik 			.hw.init = &(const struct clk_init_data) {
1486e146252aSImran Shaik 				.name = "ecpri_cc_eth_100g_mac_dbg_c2c_hm_ref_clk",
1487e146252aSImran Shaik 				.parent_hws = (const struct clk_hw*[]) {
1488e146252aSImran Shaik 					&ecpri_cc_eth_100g_mac_dbg_c2c_hm_ref_clk_src.clkr.hw,
1489e146252aSImran Shaik 				},
1490e146252aSImran Shaik 				.num_parents = 1,
1491e146252aSImran Shaik 				.flags = CLK_SET_RATE_PARENT,
1492e146252aSImran Shaik 				.ops = &clk_branch2_mem_ops,
1493e146252aSImran Shaik 			},
1494e146252aSImran Shaik 		},
1495e146252aSImran Shaik 	},
1496e146252aSImran Shaik };
1497e146252aSImran Shaik 
1498e146252aSImran Shaik static struct clk_mem_branch ecpri_cc_eth_100g_mac_fh0_hm_ref_clk = {
1499e146252aSImran Shaik 	.mem_enable_reg = 0x8404,
1500e146252aSImran Shaik 	.mem_ack_reg = 0x8418,
1501e146252aSImran Shaik 	.mem_enable_ack_mask = BIT(5),
1502e146252aSImran Shaik 	.branch = {
1503e146252aSImran Shaik 		.halt_reg = 0x802c,
1504e146252aSImran Shaik 		.halt_check = BRANCH_HALT,
1505e146252aSImran Shaik 		.clkr = {
1506e146252aSImran Shaik 			.enable_reg = 0x802c,
1507e146252aSImran Shaik 			.enable_mask = BIT(0),
1508e146252aSImran Shaik 			.hw.init = &(const struct clk_init_data) {
1509e146252aSImran Shaik 				.name = "ecpri_cc_eth_100g_mac_fh0_hm_ref_clk",
1510e146252aSImran Shaik 				.parent_hws = (const struct clk_hw*[]) {
1511e146252aSImran Shaik 					&ecpri_cc_eth_100g_mac_fh0_hm_ref_clk_src.clkr.hw,
1512e146252aSImran Shaik 				},
1513e146252aSImran Shaik 				.num_parents = 1,
1514e146252aSImran Shaik 				.flags = CLK_SET_RATE_PARENT,
1515e146252aSImran Shaik 				.ops = &clk_branch2_mem_ops,
1516e146252aSImran Shaik 			},
1517e146252aSImran Shaik 		},
1518e146252aSImran Shaik 	},
1519e146252aSImran Shaik };
1520e146252aSImran Shaik 
1521e146252aSImran Shaik static struct clk_mem_branch ecpri_cc_eth_100g_mac_fh1_hm_ref_clk = {
1522e146252aSImran Shaik 	.mem_enable_reg = 0x8408,
1523e146252aSImran Shaik 	.mem_ack_reg = 0x841c,
1524e146252aSImran Shaik 	.mem_enable_ack_mask = BIT(5),
1525e146252aSImran Shaik 	.branch = {
1526e146252aSImran Shaik 		.halt_reg = 0x8064,
1527e146252aSImran Shaik 		.halt_check = BRANCH_HALT,
1528e146252aSImran Shaik 		.clkr = {
1529e146252aSImran Shaik 			.enable_reg = 0x8064,
1530e146252aSImran Shaik 			.enable_mask = BIT(0),
1531e146252aSImran Shaik 			.hw.init = &(const struct clk_init_data) {
1532e146252aSImran Shaik 				.name = "ecpri_cc_eth_100g_mac_fh1_hm_ref_clk",
1533e146252aSImran Shaik 				.parent_hws = (const struct clk_hw*[]) {
1534e146252aSImran Shaik 					&ecpri_cc_eth_100g_mac_fh1_hm_ref_clk_src.clkr.hw,
1535e146252aSImran Shaik 				},
1536e146252aSImran Shaik 				.num_parents = 1,
1537e146252aSImran Shaik 				.flags = CLK_SET_RATE_PARENT,
1538e146252aSImran Shaik 				.ops = &clk_branch2_mem_ops,
1539e146252aSImran Shaik 			},
1540e146252aSImran Shaik 		},
1541e146252aSImran Shaik 	},
1542e146252aSImran Shaik };
1543e146252aSImran Shaik 
1544e146252aSImran Shaik static struct clk_mem_branch ecpri_cc_eth_100g_mac_fh2_hm_ref_clk = {
1545e146252aSImran Shaik 	.mem_enable_reg = 0x840c,
1546e146252aSImran Shaik 	.mem_ack_reg = 0x8420,
1547e146252aSImran Shaik 	.mem_enable_ack_mask = BIT(5),
1548e146252aSImran Shaik 	.branch = {
1549e146252aSImran Shaik 		.halt_reg = 0x809c,
1550e146252aSImran Shaik 		.halt_check = BRANCH_HALT,
1551e146252aSImran Shaik 		.clkr = {
1552e146252aSImran Shaik 			.enable_reg = 0x809c,
1553e146252aSImran Shaik 			.enable_mask = BIT(0),
1554e146252aSImran Shaik 			.hw.init = &(const struct clk_init_data) {
1555e146252aSImran Shaik 				.name = "ecpri_cc_eth_100g_mac_fh2_hm_ref_clk",
1556e146252aSImran Shaik 				.parent_hws = (const struct clk_hw*[]) {
1557e146252aSImran Shaik 					&ecpri_cc_eth_100g_mac_fh2_hm_ref_clk_src.clkr.hw,
1558e146252aSImran Shaik 				},
1559e146252aSImran Shaik 				.num_parents = 1,
1560e146252aSImran Shaik 				.flags = CLK_SET_RATE_PARENT,
1561e146252aSImran Shaik 				.ops = &clk_branch2_mem_ops,
1562e146252aSImran Shaik 			},
1563e146252aSImran Shaik 		},
1564e146252aSImran Shaik 	},
1565e146252aSImran Shaik };
1566e146252aSImran Shaik 
1567e146252aSImran Shaik static struct clk_branch ecpri_cc_eth_dbg_nfapi_axi_clk = {
1568e146252aSImran Shaik 	.halt_reg = 0x80f4,
1569e146252aSImran Shaik 	.halt_check = BRANCH_HALT,
1570e146252aSImran Shaik 	.clkr = {
1571e146252aSImran Shaik 		.enable_reg = 0x80f4,
1572e146252aSImran Shaik 		.enable_mask = BIT(0),
1573e146252aSImran Shaik 		.hw.init = &(const struct clk_init_data) {
1574e146252aSImran Shaik 			.name = "ecpri_cc_eth_dbg_nfapi_axi_clk",
1575e146252aSImran Shaik 			.parent_hws = (const struct clk_hw*[]) {
1576e146252aSImran Shaik 				&ecpri_cc_ecpri_dma_clk_src.clkr.hw,
1577e146252aSImran Shaik 			},
1578e146252aSImran Shaik 			.num_parents = 1,
1579e146252aSImran Shaik 			.flags = CLK_SET_RATE_PARENT,
1580e146252aSImran Shaik 			.ops = &clk_branch2_ops,
1581e146252aSImran Shaik 		},
1582e146252aSImran Shaik 	},
1583e146252aSImran Shaik };
1584e146252aSImran Shaik 
1585e146252aSImran Shaik static struct clk_branch ecpri_cc_eth_dbg_noc_axi_clk = {
1586e146252aSImran Shaik 	.halt_reg = 0x80fc,
1587e146252aSImran Shaik 	.halt_check = BRANCH_HALT,
1588e146252aSImran Shaik 	.clkr = {
1589e146252aSImran Shaik 		.enable_reg = 0x80fc,
1590e146252aSImran Shaik 		.enable_mask = BIT(0),
1591e146252aSImran Shaik 		.hw.init = &(const struct clk_init_data) {
1592e146252aSImran Shaik 			.name = "ecpri_cc_eth_dbg_noc_axi_clk",
1593e146252aSImran Shaik 			.parent_hws = (const struct clk_hw*[]) {
1594e146252aSImran Shaik 				&ecpri_cc_mss_emac_clk_src.clkr.hw,
1595e146252aSImran Shaik 			},
1596e146252aSImran Shaik 			.num_parents = 1,
1597e146252aSImran Shaik 			.flags = CLK_SET_RATE_PARENT,
1598e146252aSImran Shaik 			.ops = &clk_branch2_ops,
1599e146252aSImran Shaik 		},
1600e146252aSImran Shaik 	},
1601e146252aSImran Shaik };
1602e146252aSImran Shaik 
1603e146252aSImran Shaik static struct clk_mem_branch ecpri_cc_eth_phy_0_ock_sram_clk = {
1604e146252aSImran Shaik 	.mem_enable_reg = 0x8404,
1605e146252aSImran Shaik 	.mem_ack_reg = 0x8418,
1606e146252aSImran Shaik 	.mem_enable_ack_mask = BIT(6),
1607e146252aSImran Shaik 	.branch = {
1608e146252aSImran Shaik 		.halt_reg = 0xd140,
1609e146252aSImran Shaik 		.halt_check = BRANCH_HALT,
1610e146252aSImran Shaik 		.clkr = {
1611e146252aSImran Shaik 			.enable_reg = 0xd140,
1612e146252aSImran Shaik 			.enable_mask = BIT(0),
1613e146252aSImran Shaik 			.hw.init = &(const struct clk_init_data) {
1614e146252aSImran Shaik 				.name = "ecpri_cc_eth_phy_0_ock_sram_clk",
1615e146252aSImran Shaik 				.ops = &clk_branch2_mem_ops,
1616e146252aSImran Shaik 			},
1617e146252aSImran Shaik 		},
1618e146252aSImran Shaik 	},
1619e146252aSImran Shaik };
1620e146252aSImran Shaik 
1621e146252aSImran Shaik static struct clk_mem_branch ecpri_cc_eth_phy_1_ock_sram_clk = {
1622e146252aSImran Shaik 	.mem_enable_reg = 0x8408,
1623e146252aSImran Shaik 	.mem_ack_reg = 0x841C,
1624e146252aSImran Shaik 	.mem_enable_ack_mask = BIT(6),
1625e146252aSImran Shaik 	.branch = {
1626e146252aSImran Shaik 		.halt_reg = 0xd148,
1627e146252aSImran Shaik 		.halt_check = BRANCH_HALT,
1628e146252aSImran Shaik 		.clkr = {
1629e146252aSImran Shaik 			.enable_reg = 0xd148,
1630e146252aSImran Shaik 			.enable_mask = BIT(0),
1631e146252aSImran Shaik 			.hw.init = &(const struct clk_init_data) {
1632e146252aSImran Shaik 				.name = "ecpri_cc_eth_phy_1_ock_sram_clk",
1633e146252aSImran Shaik 				.ops = &clk_branch2_mem_ops,
1634e146252aSImran Shaik 			},
1635e146252aSImran Shaik 		},
1636e146252aSImran Shaik 	},
1637e146252aSImran Shaik };
1638e146252aSImran Shaik 
1639e146252aSImran Shaik static struct clk_mem_branch ecpri_cc_eth_phy_2_ock_sram_clk = {
1640e146252aSImran Shaik 	.mem_enable_reg = 0x840c,
1641e146252aSImran Shaik 	.mem_ack_reg = 0x8420,
1642e146252aSImran Shaik 	.mem_enable_ack_mask = BIT(6),
1643e146252aSImran Shaik 	.branch = {
1644e146252aSImran Shaik 		.halt_reg = 0xd150,
1645e146252aSImran Shaik 		.halt_check = BRANCH_HALT,
1646e146252aSImran Shaik 		.clkr = {
1647e146252aSImran Shaik 			.enable_reg = 0xd150,
1648e146252aSImran Shaik 			.enable_mask = BIT(0),
1649e146252aSImran Shaik 			.hw.init = &(const struct clk_init_data) {
1650e146252aSImran Shaik 				.name = "ecpri_cc_eth_phy_2_ock_sram_clk",
1651e146252aSImran Shaik 				.ops = &clk_branch2_mem_ops,
1652e146252aSImran Shaik 			},
1653e146252aSImran Shaik 		},
1654e146252aSImran Shaik 	},
1655e146252aSImran Shaik };
1656e146252aSImran Shaik 
1657e146252aSImran Shaik static struct clk_mem_branch ecpri_cc_eth_phy_3_ock_sram_clk = {
1658e146252aSImran Shaik 	.mem_enable_reg = 0x8410,
1659e146252aSImran Shaik 	.mem_ack_reg = 0x8424,
1660e146252aSImran Shaik 	.mem_enable_ack_mask = BIT(6),
1661e146252aSImran Shaik 	.branch = {
1662e146252aSImran Shaik 		.halt_reg = 0xd158,
1663e146252aSImran Shaik 		.halt_check = BRANCH_HALT,
1664e146252aSImran Shaik 		.clkr = {
1665e146252aSImran Shaik 			.enable_reg = 0xd158,
1666e146252aSImran Shaik 			.enable_mask = BIT(0),
1667e146252aSImran Shaik 			.hw.init = &(const struct clk_init_data) {
1668e146252aSImran Shaik 				.name = "ecpri_cc_eth_phy_3_ock_sram_clk",
1669e146252aSImran Shaik 				.ops = &clk_branch2_mem_ops,
1670e146252aSImran Shaik 			},
1671e146252aSImran Shaik 		},
1672e146252aSImran Shaik 	},
1673e146252aSImran Shaik };
1674e146252aSImran Shaik 
1675e146252aSImran Shaik static struct clk_mem_branch ecpri_cc_eth_phy_4_ock_sram_clk = {
1676e146252aSImran Shaik 	.mem_enable_reg = 0x8414,
1677e146252aSImran Shaik 	.mem_ack_reg = 0x8428,
1678e146252aSImran Shaik 	.mem_enable_ack_mask = BIT(6),
1679e146252aSImran Shaik 	.branch = {
1680e146252aSImran Shaik 		.halt_reg = 0xd160,
1681e146252aSImran Shaik 		.halt_check = BRANCH_HALT,
1682e146252aSImran Shaik 		.clkr = {
1683e146252aSImran Shaik 			.enable_reg = 0xd160,
1684e146252aSImran Shaik 			.enable_mask = BIT(0),
1685e146252aSImran Shaik 			.hw.init = &(const struct clk_init_data) {
1686e146252aSImran Shaik 				.name = "ecpri_cc_eth_phy_4_ock_sram_clk",
1687e146252aSImran Shaik 				.ops = &clk_branch2_mem_ops,
1688e146252aSImran Shaik 			},
1689e146252aSImran Shaik 		},
1690e146252aSImran Shaik 	},
1691e146252aSImran Shaik };
1692e146252aSImran Shaik 
1693e146252aSImran Shaik static struct clk_branch ecpri_cc_mss_emac_clk = {
1694e146252aSImran Shaik 	.halt_reg = 0xe008,
1695e146252aSImran Shaik 	.halt_check = BRANCH_HALT,
1696e146252aSImran Shaik 	.clkr = {
1697e146252aSImran Shaik 		.enable_reg = 0xe008,
1698e146252aSImran Shaik 		.enable_mask = BIT(0),
1699e146252aSImran Shaik 		.hw.init = &(const struct clk_init_data) {
1700e146252aSImran Shaik 			.name = "ecpri_cc_mss_emac_clk",
1701e146252aSImran Shaik 			.parent_hws = (const struct clk_hw*[]) {
1702e146252aSImran Shaik 				&ecpri_cc_mss_emac_clk_src.clkr.hw,
1703e146252aSImran Shaik 			},
1704e146252aSImran Shaik 			.num_parents = 1,
1705e146252aSImran Shaik 			.flags = CLK_SET_RATE_PARENT,
1706e146252aSImran Shaik 			.ops = &clk_branch2_ops,
1707e146252aSImran Shaik 		},
1708e146252aSImran Shaik 	},
1709e146252aSImran Shaik };
1710e146252aSImran Shaik 
1711e146252aSImran Shaik static struct clk_branch ecpri_cc_mss_oran_clk = {
1712e146252aSImran Shaik 	.halt_reg = 0xe004,
1713e146252aSImran Shaik 	.halt_check = BRANCH_HALT,
1714e146252aSImran Shaik 	.clkr = {
1715e146252aSImran Shaik 		.enable_reg = 0xe004,
1716e146252aSImran Shaik 		.enable_mask = BIT(0),
1717e146252aSImran Shaik 		.hw.init = &(const struct clk_init_data) {
1718e146252aSImran Shaik 			.name = "ecpri_cc_mss_oran_clk",
1719e146252aSImran Shaik 			.parent_hws = (const struct clk_hw*[]) {
1720e146252aSImran Shaik 				&ecpri_cc_ecpri_oran_clk_src.clkr.hw,
1721e146252aSImran Shaik 			},
1722e146252aSImran Shaik 			.num_parents = 1,
1723e146252aSImran Shaik 			.flags = CLK_SET_RATE_PARENT,
1724e146252aSImran Shaik 			.ops = &clk_branch2_ops,
1725e146252aSImran Shaik 		},
1726e146252aSImran Shaik 	},
1727e146252aSImran Shaik };
1728e146252aSImran Shaik 
1729e146252aSImran Shaik static struct clk_branch ecpri_cc_phy0_lane0_rx_clk = {
1730e146252aSImran Shaik 	.halt_reg = 0xd000,
1731e146252aSImran Shaik 	.halt_check = BRANCH_HALT,
1732e146252aSImran Shaik 	.clkr = {
1733e146252aSImran Shaik 		.enable_reg = 0xd000,
1734e146252aSImran Shaik 		.enable_mask = BIT(0),
1735e146252aSImran Shaik 		.hw.init = &(const struct clk_init_data) {
1736e146252aSImran Shaik 			.name = "ecpri_cc_phy0_lane0_rx_clk",
1737e146252aSImran Shaik 			.ops = &clk_branch2_ops,
1738e146252aSImran Shaik 		},
1739e146252aSImran Shaik 	},
1740e146252aSImran Shaik };
1741e146252aSImran Shaik 
1742e146252aSImran Shaik static struct clk_branch ecpri_cc_phy0_lane0_tx_clk = {
1743e146252aSImran Shaik 	.halt_reg = 0xd050,
1744e146252aSImran Shaik 	.halt_check = BRANCH_HALT,
1745e146252aSImran Shaik 	.clkr = {
1746e146252aSImran Shaik 		.enable_reg = 0xd050,
1747e146252aSImran Shaik 		.enable_mask = BIT(0),
1748e146252aSImran Shaik 		.hw.init = &(const struct clk_init_data) {
1749e146252aSImran Shaik 			.name = "ecpri_cc_phy0_lane0_tx_clk",
1750e146252aSImran Shaik 			.ops = &clk_branch2_ops,
1751e146252aSImran Shaik 		},
1752e146252aSImran Shaik 	},
1753e146252aSImran Shaik };
1754e146252aSImran Shaik 
1755e146252aSImran Shaik static struct clk_branch ecpri_cc_phy0_lane1_rx_clk = {
1756e146252aSImran Shaik 	.halt_reg = 0xd004,
1757e146252aSImran Shaik 	.halt_check = BRANCH_HALT,
1758e146252aSImran Shaik 	.clkr = {
1759e146252aSImran Shaik 		.enable_reg = 0xd004,
1760e146252aSImran Shaik 		.enable_mask = BIT(0),
1761e146252aSImran Shaik 		.hw.init = &(const struct clk_init_data) {
1762e146252aSImran Shaik 			.name = "ecpri_cc_phy0_lane1_rx_clk",
1763e146252aSImran Shaik 			.ops = &clk_branch2_ops,
1764e146252aSImran Shaik 		},
1765e146252aSImran Shaik 	},
1766e146252aSImran Shaik };
1767e146252aSImran Shaik 
1768e146252aSImran Shaik static struct clk_branch ecpri_cc_phy0_lane1_tx_clk = {
1769e146252aSImran Shaik 	.halt_reg = 0xd054,
1770e146252aSImran Shaik 	.halt_check = BRANCH_HALT,
1771e146252aSImran Shaik 	.clkr = {
1772e146252aSImran Shaik 		.enable_reg = 0xd054,
1773e146252aSImran Shaik 		.enable_mask = BIT(0),
1774e146252aSImran Shaik 		.hw.init = &(const struct clk_init_data) {
1775e146252aSImran Shaik 			.name = "ecpri_cc_phy0_lane1_tx_clk",
1776e146252aSImran Shaik 			.ops = &clk_branch2_ops,
1777e146252aSImran Shaik 		},
1778e146252aSImran Shaik 	},
1779e146252aSImran Shaik };
1780e146252aSImran Shaik 
1781e146252aSImran Shaik static struct clk_branch ecpri_cc_phy0_lane2_rx_clk = {
1782e146252aSImran Shaik 	.halt_reg = 0xd008,
1783e146252aSImran Shaik 	.halt_check = BRANCH_HALT,
1784e146252aSImran Shaik 	.clkr = {
1785e146252aSImran Shaik 		.enable_reg = 0xd008,
1786e146252aSImran Shaik 		.enable_mask = BIT(0),
1787e146252aSImran Shaik 		.hw.init = &(const struct clk_init_data) {
1788e146252aSImran Shaik 			.name = "ecpri_cc_phy0_lane2_rx_clk",
1789e146252aSImran Shaik 			.ops = &clk_branch2_ops,
1790e146252aSImran Shaik 		},
1791e146252aSImran Shaik 	},
1792e146252aSImran Shaik };
1793e146252aSImran Shaik 
1794e146252aSImran Shaik static struct clk_branch ecpri_cc_phy0_lane2_tx_clk = {
1795e146252aSImran Shaik 	.halt_reg = 0xd058,
1796e146252aSImran Shaik 	.halt_check = BRANCH_HALT,
1797e146252aSImran Shaik 	.clkr = {
1798e146252aSImran Shaik 		.enable_reg = 0xd058,
1799e146252aSImran Shaik 		.enable_mask = BIT(0),
1800e146252aSImran Shaik 		.hw.init = &(const struct clk_init_data) {
1801e146252aSImran Shaik 			.name = "ecpri_cc_phy0_lane2_tx_clk",
1802e146252aSImran Shaik 			.ops = &clk_branch2_ops,
1803e146252aSImran Shaik 		},
1804e146252aSImran Shaik 	},
1805e146252aSImran Shaik };
1806e146252aSImran Shaik 
1807e146252aSImran Shaik static struct clk_branch ecpri_cc_phy0_lane3_rx_clk = {
1808e146252aSImran Shaik 	.halt_reg = 0xd00c,
1809e146252aSImran Shaik 	.halt_check = BRANCH_HALT,
1810e146252aSImran Shaik 	.clkr = {
1811e146252aSImran Shaik 		.enable_reg = 0xd00c,
1812e146252aSImran Shaik 		.enable_mask = BIT(0),
1813e146252aSImran Shaik 		.hw.init = &(const struct clk_init_data) {
1814e146252aSImran Shaik 			.name = "ecpri_cc_phy0_lane3_rx_clk",
1815e146252aSImran Shaik 			.ops = &clk_branch2_ops,
1816e146252aSImran Shaik 		},
1817e146252aSImran Shaik 	},
1818e146252aSImran Shaik };
1819e146252aSImran Shaik 
1820e146252aSImran Shaik static struct clk_branch ecpri_cc_phy0_lane3_tx_clk = {
1821e146252aSImran Shaik 	.halt_reg = 0xd05c,
1822e146252aSImran Shaik 	.halt_check = BRANCH_HALT,
1823e146252aSImran Shaik 	.clkr = {
1824e146252aSImran Shaik 		.enable_reg = 0xd05c,
1825e146252aSImran Shaik 		.enable_mask = BIT(0),
1826e146252aSImran Shaik 		.hw.init = &(const struct clk_init_data) {
1827e146252aSImran Shaik 			.name = "ecpri_cc_phy0_lane3_tx_clk",
1828e146252aSImran Shaik 			.ops = &clk_branch2_ops,
1829e146252aSImran Shaik 		},
1830e146252aSImran Shaik 	},
1831e146252aSImran Shaik };
1832e146252aSImran Shaik 
1833e146252aSImran Shaik static struct clk_branch ecpri_cc_phy1_lane0_rx_clk = {
1834e146252aSImran Shaik 	.halt_reg = 0xd010,
1835e146252aSImran Shaik 	.halt_check = BRANCH_HALT,
1836e146252aSImran Shaik 	.clkr = {
1837e146252aSImran Shaik 		.enable_reg = 0xd010,
1838e146252aSImran Shaik 		.enable_mask = BIT(0),
1839e146252aSImran Shaik 		.hw.init = &(const struct clk_init_data) {
1840e146252aSImran Shaik 			.name = "ecpri_cc_phy1_lane0_rx_clk",
1841e146252aSImran Shaik 			.ops = &clk_branch2_ops,
1842e146252aSImran Shaik 		},
1843e146252aSImran Shaik 	},
1844e146252aSImran Shaik };
1845e146252aSImran Shaik 
1846e146252aSImran Shaik static struct clk_branch ecpri_cc_phy1_lane0_tx_clk = {
1847e146252aSImran Shaik 	.halt_reg = 0xd060,
1848e146252aSImran Shaik 	.halt_check = BRANCH_HALT,
1849e146252aSImran Shaik 	.clkr = {
1850e146252aSImran Shaik 		.enable_reg = 0xd060,
1851e146252aSImran Shaik 		.enable_mask = BIT(0),
1852e146252aSImran Shaik 		.hw.init = &(const struct clk_init_data) {
1853e146252aSImran Shaik 			.name = "ecpri_cc_phy1_lane0_tx_clk",
1854e146252aSImran Shaik 			.ops = &clk_branch2_ops,
1855e146252aSImran Shaik 		},
1856e146252aSImran Shaik 	},
1857e146252aSImran Shaik };
1858e146252aSImran Shaik 
1859e146252aSImran Shaik static struct clk_branch ecpri_cc_phy1_lane1_rx_clk = {
1860e146252aSImran Shaik 	.halt_reg = 0xd014,
1861e146252aSImran Shaik 	.halt_check = BRANCH_HALT,
1862e146252aSImran Shaik 	.clkr = {
1863e146252aSImran Shaik 		.enable_reg = 0xd014,
1864e146252aSImran Shaik 		.enable_mask = BIT(0),
1865e146252aSImran Shaik 		.hw.init = &(const struct clk_init_data) {
1866e146252aSImran Shaik 			.name = "ecpri_cc_phy1_lane1_rx_clk",
1867e146252aSImran Shaik 			.ops = &clk_branch2_ops,
1868e146252aSImran Shaik 		},
1869e146252aSImran Shaik 	},
1870e146252aSImran Shaik };
1871e146252aSImran Shaik 
1872e146252aSImran Shaik static struct clk_branch ecpri_cc_phy1_lane1_tx_clk = {
1873e146252aSImran Shaik 	.halt_reg = 0xd064,
1874e146252aSImran Shaik 	.halt_check = BRANCH_HALT,
1875e146252aSImran Shaik 	.clkr = {
1876e146252aSImran Shaik 		.enable_reg = 0xd064,
1877e146252aSImran Shaik 		.enable_mask = BIT(0),
1878e146252aSImran Shaik 		.hw.init = &(const struct clk_init_data) {
1879e146252aSImran Shaik 			.name = "ecpri_cc_phy1_lane1_tx_clk",
1880e146252aSImran Shaik 			.ops = &clk_branch2_ops,
1881e146252aSImran Shaik 		},
1882e146252aSImran Shaik 	},
1883e146252aSImran Shaik };
1884e146252aSImran Shaik 
1885e146252aSImran Shaik static struct clk_branch ecpri_cc_phy1_lane2_rx_clk = {
1886e146252aSImran Shaik 	.halt_reg = 0xd018,
1887e146252aSImran Shaik 	.halt_check = BRANCH_HALT,
1888e146252aSImran Shaik 	.clkr = {
1889e146252aSImran Shaik 		.enable_reg = 0xd018,
1890e146252aSImran Shaik 		.enable_mask = BIT(0),
1891e146252aSImran Shaik 		.hw.init = &(const struct clk_init_data) {
1892e146252aSImran Shaik 			.name = "ecpri_cc_phy1_lane2_rx_clk",
1893e146252aSImran Shaik 			.ops = &clk_branch2_ops,
1894e146252aSImran Shaik 		},
1895e146252aSImran Shaik 	},
1896e146252aSImran Shaik };
1897e146252aSImran Shaik 
1898e146252aSImran Shaik static struct clk_branch ecpri_cc_phy1_lane2_tx_clk = {
1899e146252aSImran Shaik 	.halt_reg = 0xd068,
1900e146252aSImran Shaik 	.halt_check = BRANCH_HALT,
1901e146252aSImran Shaik 	.clkr = {
1902e146252aSImran Shaik 		.enable_reg = 0xd068,
1903e146252aSImran Shaik 		.enable_mask = BIT(0),
1904e146252aSImran Shaik 		.hw.init = &(const struct clk_init_data) {
1905e146252aSImran Shaik 			.name = "ecpri_cc_phy1_lane2_tx_clk",
1906e146252aSImran Shaik 			.ops = &clk_branch2_ops,
1907e146252aSImran Shaik 		},
1908e146252aSImran Shaik 	},
1909e146252aSImran Shaik };
1910e146252aSImran Shaik 
1911e146252aSImran Shaik static struct clk_branch ecpri_cc_phy1_lane3_rx_clk = {
1912e146252aSImran Shaik 	.halt_reg = 0xd01c,
1913e146252aSImran Shaik 	.halt_check = BRANCH_HALT,
1914e146252aSImran Shaik 	.clkr = {
1915e146252aSImran Shaik 		.enable_reg = 0xd01c,
1916e146252aSImran Shaik 		.enable_mask = BIT(0),
1917e146252aSImran Shaik 		.hw.init = &(const struct clk_init_data) {
1918e146252aSImran Shaik 			.name = "ecpri_cc_phy1_lane3_rx_clk",
1919e146252aSImran Shaik 			.ops = &clk_branch2_ops,
1920e146252aSImran Shaik 		},
1921e146252aSImran Shaik 	},
1922e146252aSImran Shaik };
1923e146252aSImran Shaik 
1924e146252aSImran Shaik static struct clk_branch ecpri_cc_phy1_lane3_tx_clk = {
1925e146252aSImran Shaik 	.halt_reg = 0xd06c,
1926e146252aSImran Shaik 	.halt_check = BRANCH_HALT,
1927e146252aSImran Shaik 	.clkr = {
1928e146252aSImran Shaik 		.enable_reg = 0xd06c,
1929e146252aSImran Shaik 		.enable_mask = BIT(0),
1930e146252aSImran Shaik 		.hw.init = &(const struct clk_init_data) {
1931e146252aSImran Shaik 			.name = "ecpri_cc_phy1_lane3_tx_clk",
1932e146252aSImran Shaik 			.ops = &clk_branch2_ops,
1933e146252aSImran Shaik 		},
1934e146252aSImran Shaik 	},
1935e146252aSImran Shaik };
1936e146252aSImran Shaik 
1937e146252aSImran Shaik static struct clk_branch ecpri_cc_phy2_lane0_rx_clk = {
1938e146252aSImran Shaik 	.halt_reg = 0xd020,
1939e146252aSImran Shaik 	.halt_check = BRANCH_HALT,
1940e146252aSImran Shaik 	.clkr = {
1941e146252aSImran Shaik 		.enable_reg = 0xd020,
1942e146252aSImran Shaik 		.enable_mask = BIT(0),
1943e146252aSImran Shaik 		.hw.init = &(const struct clk_init_data) {
1944e146252aSImran Shaik 			.name = "ecpri_cc_phy2_lane0_rx_clk",
1945e146252aSImran Shaik 			.ops = &clk_branch2_ops,
1946e146252aSImran Shaik 		},
1947e146252aSImran Shaik 	},
1948e146252aSImran Shaik };
1949e146252aSImran Shaik 
1950e146252aSImran Shaik static struct clk_branch ecpri_cc_phy2_lane0_tx_clk = {
1951e146252aSImran Shaik 	.halt_reg = 0xd070,
1952e146252aSImran Shaik 	.halt_check = BRANCH_HALT,
1953e146252aSImran Shaik 	.clkr = {
1954e146252aSImran Shaik 		.enable_reg = 0xd070,
1955e146252aSImran Shaik 		.enable_mask = BIT(0),
1956e146252aSImran Shaik 		.hw.init = &(const struct clk_init_data) {
1957e146252aSImran Shaik 			.name = "ecpri_cc_phy2_lane0_tx_clk",
1958e146252aSImran Shaik 			.ops = &clk_branch2_ops,
1959e146252aSImran Shaik 		},
1960e146252aSImran Shaik 	},
1961e146252aSImran Shaik };
1962e146252aSImran Shaik 
1963e146252aSImran Shaik static struct clk_branch ecpri_cc_phy2_lane1_rx_clk = {
1964e146252aSImran Shaik 	.halt_reg = 0xd024,
1965e146252aSImran Shaik 	.halt_check = BRANCH_HALT,
1966e146252aSImran Shaik 	.clkr = {
1967e146252aSImran Shaik 		.enable_reg = 0xd024,
1968e146252aSImran Shaik 		.enable_mask = BIT(0),
1969e146252aSImran Shaik 		.hw.init = &(const struct clk_init_data) {
1970e146252aSImran Shaik 			.name = "ecpri_cc_phy2_lane1_rx_clk",
1971e146252aSImran Shaik 			.ops = &clk_branch2_ops,
1972e146252aSImran Shaik 		},
1973e146252aSImran Shaik 	},
1974e146252aSImran Shaik };
1975e146252aSImran Shaik 
1976e146252aSImran Shaik static struct clk_branch ecpri_cc_phy2_lane1_tx_clk = {
1977e146252aSImran Shaik 	.halt_reg = 0xd074,
1978e146252aSImran Shaik 	.halt_check = BRANCH_HALT,
1979e146252aSImran Shaik 	.clkr = {
1980e146252aSImran Shaik 		.enable_reg = 0xd074,
1981e146252aSImran Shaik 		.enable_mask = BIT(0),
1982e146252aSImran Shaik 		.hw.init = &(const struct clk_init_data) {
1983e146252aSImran Shaik 			.name = "ecpri_cc_phy2_lane1_tx_clk",
1984e146252aSImran Shaik 			.ops = &clk_branch2_ops,
1985e146252aSImran Shaik 		},
1986e146252aSImran Shaik 	},
1987e146252aSImran Shaik };
1988e146252aSImran Shaik 
1989e146252aSImran Shaik static struct clk_branch ecpri_cc_phy2_lane2_rx_clk = {
1990e146252aSImran Shaik 	.halt_reg = 0xd028,
1991e146252aSImran Shaik 	.halt_check = BRANCH_HALT,
1992e146252aSImran Shaik 	.clkr = {
1993e146252aSImran Shaik 		.enable_reg = 0xd028,
1994e146252aSImran Shaik 		.enable_mask = BIT(0),
1995e146252aSImran Shaik 		.hw.init = &(const struct clk_init_data) {
1996e146252aSImran Shaik 			.name = "ecpri_cc_phy2_lane2_rx_clk",
1997e146252aSImran Shaik 			.ops = &clk_branch2_ops,
1998e146252aSImran Shaik 		},
1999e146252aSImran Shaik 	},
2000e146252aSImran Shaik };
2001e146252aSImran Shaik 
2002e146252aSImran Shaik static struct clk_branch ecpri_cc_phy2_lane2_tx_clk = {
2003e146252aSImran Shaik 	.halt_reg = 0xd078,
2004e146252aSImran Shaik 	.halt_check = BRANCH_HALT,
2005e146252aSImran Shaik 	.clkr = {
2006e146252aSImran Shaik 		.enable_reg = 0xd078,
2007e146252aSImran Shaik 		.enable_mask = BIT(0),
2008e146252aSImran Shaik 		.hw.init = &(const struct clk_init_data) {
2009e146252aSImran Shaik 			.name = "ecpri_cc_phy2_lane2_tx_clk",
2010e146252aSImran Shaik 			.ops = &clk_branch2_ops,
2011e146252aSImran Shaik 		},
2012e146252aSImran Shaik 	},
2013e146252aSImran Shaik };
2014e146252aSImran Shaik 
2015e146252aSImran Shaik static struct clk_branch ecpri_cc_phy2_lane3_rx_clk = {
2016e146252aSImran Shaik 	.halt_reg = 0xd02c,
2017e146252aSImran Shaik 	.halt_check = BRANCH_HALT,
2018e146252aSImran Shaik 	.clkr = {
2019e146252aSImran Shaik 		.enable_reg = 0xd02c,
2020e146252aSImran Shaik 		.enable_mask = BIT(0),
2021e146252aSImran Shaik 		.hw.init = &(const struct clk_init_data) {
2022e146252aSImran Shaik 			.name = "ecpri_cc_phy2_lane3_rx_clk",
2023e146252aSImran Shaik 			.ops = &clk_branch2_ops,
2024e146252aSImran Shaik 		},
2025e146252aSImran Shaik 	},
2026e146252aSImran Shaik };
2027e146252aSImran Shaik 
2028e146252aSImran Shaik static struct clk_branch ecpri_cc_phy2_lane3_tx_clk = {
2029e146252aSImran Shaik 	.halt_reg = 0xd07c,
2030e146252aSImran Shaik 	.halt_check = BRANCH_HALT,
2031e146252aSImran Shaik 	.clkr = {
2032e146252aSImran Shaik 		.enable_reg = 0xd07c,
2033e146252aSImran Shaik 		.enable_mask = BIT(0),
2034e146252aSImran Shaik 		.hw.init = &(const struct clk_init_data) {
2035e146252aSImran Shaik 			.name = "ecpri_cc_phy2_lane3_tx_clk",
2036e146252aSImran Shaik 			.ops = &clk_branch2_ops,
2037e146252aSImran Shaik 		},
2038e146252aSImran Shaik 	},
2039e146252aSImran Shaik };
2040e146252aSImran Shaik 
2041e146252aSImran Shaik static struct clk_branch ecpri_cc_phy3_lane0_rx_clk = {
2042e146252aSImran Shaik 	.halt_reg = 0xd030,
2043e146252aSImran Shaik 	.halt_check = BRANCH_HALT,
2044e146252aSImran Shaik 	.clkr = {
2045e146252aSImran Shaik 		.enable_reg = 0xd030,
2046e146252aSImran Shaik 		.enable_mask = BIT(0),
2047e146252aSImran Shaik 		.hw.init = &(const struct clk_init_data) {
2048e146252aSImran Shaik 			.name = "ecpri_cc_phy3_lane0_rx_clk",
2049e146252aSImran Shaik 			.ops = &clk_branch2_ops,
2050e146252aSImran Shaik 		},
2051e146252aSImran Shaik 	},
2052e146252aSImran Shaik };
2053e146252aSImran Shaik 
2054e146252aSImran Shaik static struct clk_branch ecpri_cc_phy3_lane0_tx_clk = {
2055e146252aSImran Shaik 	.halt_reg = 0xd080,
2056e146252aSImran Shaik 	.halt_check = BRANCH_HALT,
2057e146252aSImran Shaik 	.clkr = {
2058e146252aSImran Shaik 		.enable_reg = 0xd080,
2059e146252aSImran Shaik 		.enable_mask = BIT(0),
2060e146252aSImran Shaik 		.hw.init = &(const struct clk_init_data) {
2061e146252aSImran Shaik 			.name = "ecpri_cc_phy3_lane0_tx_clk",
2062e146252aSImran Shaik 			.ops = &clk_branch2_ops,
2063e146252aSImran Shaik 		},
2064e146252aSImran Shaik 	},
2065e146252aSImran Shaik };
2066e146252aSImran Shaik 
2067e146252aSImran Shaik static struct clk_branch ecpri_cc_phy3_lane1_rx_clk = {
2068e146252aSImran Shaik 	.halt_reg = 0xd034,
2069e146252aSImran Shaik 	.halt_check = BRANCH_HALT,
2070e146252aSImran Shaik 	.clkr = {
2071e146252aSImran Shaik 		.enable_reg = 0xd034,
2072e146252aSImran Shaik 		.enable_mask = BIT(0),
2073e146252aSImran Shaik 		.hw.init = &(const struct clk_init_data) {
2074e146252aSImran Shaik 			.name = "ecpri_cc_phy3_lane1_rx_clk",
2075e146252aSImran Shaik 			.ops = &clk_branch2_ops,
2076e146252aSImran Shaik 		},
2077e146252aSImran Shaik 	},
2078e146252aSImran Shaik };
2079e146252aSImran Shaik 
2080e146252aSImran Shaik static struct clk_branch ecpri_cc_phy3_lane1_tx_clk = {
2081e146252aSImran Shaik 	.halt_reg = 0xd084,
2082e146252aSImran Shaik 	.halt_check = BRANCH_HALT,
2083e146252aSImran Shaik 	.clkr = {
2084e146252aSImran Shaik 		.enable_reg = 0xd084,
2085e146252aSImran Shaik 		.enable_mask = BIT(0),
2086e146252aSImran Shaik 		.hw.init = &(const struct clk_init_data) {
2087e146252aSImran Shaik 			.name = "ecpri_cc_phy3_lane1_tx_clk",
2088e146252aSImran Shaik 			.ops = &clk_branch2_ops,
2089e146252aSImran Shaik 		},
2090e146252aSImran Shaik 	},
2091e146252aSImran Shaik };
2092e146252aSImran Shaik 
2093e146252aSImran Shaik static struct clk_branch ecpri_cc_phy3_lane2_rx_clk = {
2094e146252aSImran Shaik 	.halt_reg = 0xd038,
2095e146252aSImran Shaik 	.halt_check = BRANCH_HALT,
2096e146252aSImran Shaik 	.clkr = {
2097e146252aSImran Shaik 		.enable_reg = 0xd038,
2098e146252aSImran Shaik 		.enable_mask = BIT(0),
2099e146252aSImran Shaik 		.hw.init = &(const struct clk_init_data) {
2100e146252aSImran Shaik 			.name = "ecpri_cc_phy3_lane2_rx_clk",
2101e146252aSImran Shaik 			.ops = &clk_branch2_ops,
2102e146252aSImran Shaik 		},
2103e146252aSImran Shaik 	},
2104e146252aSImran Shaik };
2105e146252aSImran Shaik 
2106e146252aSImran Shaik static struct clk_branch ecpri_cc_phy3_lane2_tx_clk = {
2107e146252aSImran Shaik 	.halt_reg = 0xd088,
2108e146252aSImran Shaik 	.halt_check = BRANCH_HALT,
2109e146252aSImran Shaik 	.clkr = {
2110e146252aSImran Shaik 		.enable_reg = 0xd088,
2111e146252aSImran Shaik 		.enable_mask = BIT(0),
2112e146252aSImran Shaik 		.hw.init = &(const struct clk_init_data) {
2113e146252aSImran Shaik 			.name = "ecpri_cc_phy3_lane2_tx_clk",
2114e146252aSImran Shaik 			.ops = &clk_branch2_ops,
2115e146252aSImran Shaik 		},
2116e146252aSImran Shaik 	},
2117e146252aSImran Shaik };
2118e146252aSImran Shaik 
2119e146252aSImran Shaik static struct clk_branch ecpri_cc_phy3_lane3_rx_clk = {
2120e146252aSImran Shaik 	.halt_reg = 0xd03c,
2121e146252aSImran Shaik 	.halt_check = BRANCH_HALT,
2122e146252aSImran Shaik 	.clkr = {
2123e146252aSImran Shaik 		.enable_reg = 0xd03c,
2124e146252aSImran Shaik 		.enable_mask = BIT(0),
2125e146252aSImran Shaik 		.hw.init = &(const struct clk_init_data) {
2126e146252aSImran Shaik 			.name = "ecpri_cc_phy3_lane3_rx_clk",
2127e146252aSImran Shaik 			.ops = &clk_branch2_ops,
2128e146252aSImran Shaik 		},
2129e146252aSImran Shaik 	},
2130e146252aSImran Shaik };
2131e146252aSImran Shaik 
2132e146252aSImran Shaik static struct clk_branch ecpri_cc_phy3_lane3_tx_clk = {
2133e146252aSImran Shaik 	.halt_reg = 0xd08c,
2134e146252aSImran Shaik 	.halt_check = BRANCH_HALT,
2135e146252aSImran Shaik 	.clkr = {
2136e146252aSImran Shaik 		.enable_reg = 0xd08c,
2137e146252aSImran Shaik 		.enable_mask = BIT(0),
2138e146252aSImran Shaik 		.hw.init = &(const struct clk_init_data) {
2139e146252aSImran Shaik 			.name = "ecpri_cc_phy3_lane3_tx_clk",
2140e146252aSImran Shaik 			.ops = &clk_branch2_ops,
2141e146252aSImran Shaik 		},
2142e146252aSImran Shaik 	},
2143e146252aSImran Shaik };
2144e146252aSImran Shaik 
2145e146252aSImran Shaik static struct clk_branch ecpri_cc_phy4_lane0_rx_clk = {
2146e146252aSImran Shaik 	.halt_reg = 0xd040,
2147e146252aSImran Shaik 	.halt_check = BRANCH_HALT,
2148e146252aSImran Shaik 	.clkr = {
2149e146252aSImran Shaik 		.enable_reg = 0xd040,
2150e146252aSImran Shaik 		.enable_mask = BIT(0),
2151e146252aSImran Shaik 		.hw.init = &(const struct clk_init_data) {
2152e146252aSImran Shaik 			.name = "ecpri_cc_phy4_lane0_rx_clk",
2153e146252aSImran Shaik 			.ops = &clk_branch2_ops,
2154e146252aSImran Shaik 		},
2155e146252aSImran Shaik 	},
2156e146252aSImran Shaik };
2157e146252aSImran Shaik 
2158e146252aSImran Shaik static struct clk_branch ecpri_cc_phy4_lane0_tx_clk = {
2159e146252aSImran Shaik 	.halt_reg = 0xd090,
2160e146252aSImran Shaik 	.halt_check = BRANCH_HALT,
2161e146252aSImran Shaik 	.clkr = {
2162e146252aSImran Shaik 		.enable_reg = 0xd090,
2163e146252aSImran Shaik 		.enable_mask = BIT(0),
2164e146252aSImran Shaik 		.hw.init = &(const struct clk_init_data) {
2165e146252aSImran Shaik 			.name = "ecpri_cc_phy4_lane0_tx_clk",
2166e146252aSImran Shaik 			.ops = &clk_branch2_ops,
2167e146252aSImran Shaik 		},
2168e146252aSImran Shaik 	},
2169e146252aSImran Shaik };
2170e146252aSImran Shaik 
2171e146252aSImran Shaik static struct clk_branch ecpri_cc_phy4_lane1_rx_clk = {
2172e146252aSImran Shaik 	.halt_reg = 0xd044,
2173e146252aSImran Shaik 	.halt_check = BRANCH_HALT,
2174e146252aSImran Shaik 	.clkr = {
2175e146252aSImran Shaik 		.enable_reg = 0xd044,
2176e146252aSImran Shaik 		.enable_mask = BIT(0),
2177e146252aSImran Shaik 		.hw.init = &(const struct clk_init_data) {
2178e146252aSImran Shaik 			.name = "ecpri_cc_phy4_lane1_rx_clk",
2179e146252aSImran Shaik 			.ops = &clk_branch2_ops,
2180e146252aSImran Shaik 		},
2181e146252aSImran Shaik 	},
2182e146252aSImran Shaik };
2183e146252aSImran Shaik 
2184e146252aSImran Shaik static struct clk_branch ecpri_cc_phy4_lane1_tx_clk = {
2185e146252aSImran Shaik 	.halt_reg = 0xd094,
2186e146252aSImran Shaik 	.halt_check = BRANCH_HALT,
2187e146252aSImran Shaik 	.clkr = {
2188e146252aSImran Shaik 		.enable_reg = 0xd094,
2189e146252aSImran Shaik 		.enable_mask = BIT(0),
2190e146252aSImran Shaik 		.hw.init = &(const struct clk_init_data) {
2191e146252aSImran Shaik 			.name = "ecpri_cc_phy4_lane1_tx_clk",
2192e146252aSImran Shaik 			.ops = &clk_branch2_ops,
2193e146252aSImran Shaik 		},
2194e146252aSImran Shaik 	},
2195e146252aSImran Shaik };
2196e146252aSImran Shaik 
2197e146252aSImran Shaik static struct clk_branch ecpri_cc_phy4_lane2_rx_clk = {
2198e146252aSImran Shaik 	.halt_reg = 0xd048,
2199e146252aSImran Shaik 	.halt_check = BRANCH_HALT,
2200e146252aSImran Shaik 	.clkr = {
2201e146252aSImran Shaik 		.enable_reg = 0xd048,
2202e146252aSImran Shaik 		.enable_mask = BIT(0),
2203e146252aSImran Shaik 		.hw.init = &(const struct clk_init_data) {
2204e146252aSImran Shaik 			.name = "ecpri_cc_phy4_lane2_rx_clk",
2205e146252aSImran Shaik 			.ops = &clk_branch2_ops,
2206e146252aSImran Shaik 		},
2207e146252aSImran Shaik 	},
2208e146252aSImran Shaik };
2209e146252aSImran Shaik 
2210e146252aSImran Shaik static struct clk_branch ecpri_cc_phy4_lane2_tx_clk = {
2211e146252aSImran Shaik 	.halt_reg = 0xd098,
2212e146252aSImran Shaik 	.halt_check = BRANCH_HALT,
2213e146252aSImran Shaik 	.clkr = {
2214e146252aSImran Shaik 		.enable_reg = 0xd098,
2215e146252aSImran Shaik 		.enable_mask = BIT(0),
2216e146252aSImran Shaik 		.hw.init = &(const struct clk_init_data) {
2217e146252aSImran Shaik 			.name = "ecpri_cc_phy4_lane2_tx_clk",
2218e146252aSImran Shaik 			.ops = &clk_branch2_ops,
2219e146252aSImran Shaik 		},
2220e146252aSImran Shaik 	},
2221e146252aSImran Shaik };
2222e146252aSImran Shaik 
2223e146252aSImran Shaik static struct clk_branch ecpri_cc_phy4_lane3_rx_clk = {
2224e146252aSImran Shaik 	.halt_reg = 0xd04c,
2225e146252aSImran Shaik 	.halt_check = BRANCH_HALT,
2226e146252aSImran Shaik 	.clkr = {
2227e146252aSImran Shaik 		.enable_reg = 0xd04c,
2228e146252aSImran Shaik 		.enable_mask = BIT(0),
2229e146252aSImran Shaik 		.hw.init = &(const struct clk_init_data) {
2230e146252aSImran Shaik 			.name = "ecpri_cc_phy4_lane3_rx_clk",
2231e146252aSImran Shaik 			.ops = &clk_branch2_ops,
2232e146252aSImran Shaik 		},
2233e146252aSImran Shaik 	},
2234e146252aSImran Shaik };
2235e146252aSImran Shaik 
2236e146252aSImran Shaik static struct clk_branch ecpri_cc_phy4_lane3_tx_clk = {
2237e146252aSImran Shaik 	.halt_reg = 0xd09c,
2238e146252aSImran Shaik 	.halt_check = BRANCH_HALT,
2239e146252aSImran Shaik 	.clkr = {
2240e146252aSImran Shaik 		.enable_reg = 0xd09c,
2241e146252aSImran Shaik 		.enable_mask = BIT(0),
2242e146252aSImran Shaik 		.hw.init = &(const struct clk_init_data) {
2243e146252aSImran Shaik 			.name = "ecpri_cc_phy4_lane3_tx_clk",
2244e146252aSImran Shaik 			.ops = &clk_branch2_ops,
2245e146252aSImran Shaik 		},
2246e146252aSImran Shaik 	},
2247e146252aSImran Shaik };
2248e146252aSImran Shaik 
2249e146252aSImran Shaik static struct clk_regmap *ecpri_cc_qdu1000_clocks[] = {
2250e146252aSImran Shaik 	[ECPRI_CC_ECPRI_CG_CLK] = &ecpri_cc_ecpri_cg_clk.clkr,
2251e146252aSImran Shaik 	[ECPRI_CC_ECPRI_CLK_SRC] = &ecpri_cc_ecpri_clk_src.clkr,
2252e146252aSImran Shaik 	[ECPRI_CC_ECPRI_DMA_CLK] = &ecpri_cc_ecpri_dma_clk.clkr,
2253e146252aSImran Shaik 	[ECPRI_CC_ECPRI_DMA_CLK_SRC] = &ecpri_cc_ecpri_dma_clk_src.clkr,
2254e146252aSImran Shaik 	[ECPRI_CC_ECPRI_DMA_NOC_CLK] = &ecpri_cc_ecpri_dma_noc_clk.clkr,
2255e146252aSImran Shaik 	[ECPRI_CC_ECPRI_FAST_CLK] = &ecpri_cc_ecpri_fast_clk.clkr,
2256e146252aSImran Shaik 	[ECPRI_CC_ECPRI_FAST_CLK_SRC] = &ecpri_cc_ecpri_fast_clk_src.clkr,
2257e146252aSImran Shaik 	[ECPRI_CC_ECPRI_FAST_DIV2_CLK] = &ecpri_cc_ecpri_fast_div2_clk.clkr,
2258e146252aSImran Shaik 	[ECPRI_CC_ECPRI_FAST_DIV2_CLK_SRC] = &ecpri_cc_ecpri_fast_div2_clk_src.clkr,
2259e146252aSImran Shaik 	[ECPRI_CC_ECPRI_FAST_DIV2_NOC_CLK] = &ecpri_cc_ecpri_fast_div2_noc_clk.clkr,
2260e146252aSImran Shaik 	[ECPRI_CC_ECPRI_FR_CLK] = &ecpri_cc_ecpri_fr_clk.clkr,
2261e146252aSImran Shaik 	[ECPRI_CC_ECPRI_ORAN_CLK_SRC] = &ecpri_cc_ecpri_oran_clk_src.clkr,
2262e146252aSImran Shaik 	[ECPRI_CC_ECPRI_ORAN_DIV2_CLK] = &ecpri_cc_ecpri_oran_div2_clk.clkr,
2263e146252aSImran Shaik 	[ECPRI_CC_ETH_100G_C2C0_HM_FF_CLK_SRC] = &ecpri_cc_eth_100g_c2c0_hm_ff_clk_src.clkr,
2264e146252aSImran Shaik 	[ECPRI_CC_ETH_100G_C2C0_UDP_FIFO_CLK] = &ecpri_cc_eth_100g_c2c0_udp_fifo_clk.clkr,
2265e146252aSImran Shaik 	[ECPRI_CC_ETH_100G_C2C1_UDP_FIFO_CLK] = &ecpri_cc_eth_100g_c2c1_udp_fifo_clk.clkr,
2266e146252aSImran Shaik 	[ECPRI_CC_ETH_100G_C2C_0_HM_FF_0_CLK] = &ecpri_cc_eth_100g_c2c_0_hm_ff_0_clk.branch.clkr,
2267e146252aSImran Shaik 	[ECPRI_CC_ETH_100G_C2C_0_HM_FF_1_CLK] = &ecpri_cc_eth_100g_c2c_0_hm_ff_1_clk.branch.clkr,
2268e146252aSImran Shaik 	[ECPRI_CC_ETH_100G_C2C_HM_FF_0_DIV_CLK_SRC] =
2269e146252aSImran Shaik 		&ecpri_cc_eth_100g_c2c_hm_ff_0_div_clk_src.clkr,
2270e146252aSImran Shaik 	[ECPRI_CC_ETH_100G_C2C_HM_FF_1_DIV_CLK_SRC] =
2271e146252aSImran Shaik 		&ecpri_cc_eth_100g_c2c_hm_ff_1_div_clk_src.clkr,
2272e146252aSImran Shaik 	[ECPRI_CC_ETH_100G_C2C_HM_MACSEC_CLK] = &ecpri_cc_eth_100g_c2c_hm_macsec_clk.branch.clkr,
2273e146252aSImran Shaik 	[ECPRI_CC_ETH_100G_C2C_HM_MACSEC_CLK_SRC] = &ecpri_cc_eth_100g_c2c_hm_macsec_clk_src.clkr,
2274e146252aSImran Shaik 	[ECPRI_CC_ETH_100G_DBG_C2C_HM_FF_0_CLK] =
2275e146252aSImran Shaik 		&ecpri_cc_eth_100g_dbg_c2c_hm_ff_0_clk.branch.clkr,
2276e146252aSImran Shaik 	[ECPRI_CC_ETH_100G_DBG_C2C_HM_FF_0_DIV_CLK_SRC] =
2277e146252aSImran Shaik 		&ecpri_cc_eth_100g_dbg_c2c_hm_ff_0_div_clk_src.clkr,
2278e146252aSImran Shaik 	[ECPRI_CC_ETH_100G_DBG_C2C_HM_FF_1_CLK] =
2279e146252aSImran Shaik 		&ecpri_cc_eth_100g_dbg_c2c_hm_ff_1_clk.branch.clkr,
2280e146252aSImran Shaik 	[ECPRI_CC_ETH_100G_DBG_C2C_HM_FF_1_DIV_CLK_SRC] =
2281e146252aSImran Shaik 		&ecpri_cc_eth_100g_dbg_c2c_hm_ff_1_div_clk_src.clkr,
2282e146252aSImran Shaik 	[ECPRI_CC_ETH_100G_DBG_C2C_HM_FF_CLK_SRC] = &ecpri_cc_eth_100g_dbg_c2c_hm_ff_clk_src.clkr,
2283e146252aSImran Shaik 	[ECPRI_CC_ETH_100G_DBG_C2C_UDP_FIFO_CLK] = &ecpri_cc_eth_100g_dbg_c2c_udp_fifo_clk.clkr,
2284e146252aSImran Shaik 	[ECPRI_CC_ETH_100G_FH0_HM_FF_CLK_SRC] = &ecpri_cc_eth_100g_fh0_hm_ff_clk_src.clkr,
2285e146252aSImran Shaik 	[ECPRI_CC_ETH_100G_FH0_MACSEC_CLK_SRC] = &ecpri_cc_eth_100g_fh0_macsec_clk_src.clkr,
2286e146252aSImran Shaik 	[ECPRI_CC_ETH_100G_FH1_HM_FF_CLK_SRC] = &ecpri_cc_eth_100g_fh1_hm_ff_clk_src.clkr,
2287e146252aSImran Shaik 	[ECPRI_CC_ETH_100G_FH1_MACSEC_CLK_SRC] = &ecpri_cc_eth_100g_fh1_macsec_clk_src.clkr,
2288e146252aSImran Shaik 	[ECPRI_CC_ETH_100G_FH2_HM_FF_CLK_SRC] = &ecpri_cc_eth_100g_fh2_hm_ff_clk_src.clkr,
2289e146252aSImran Shaik 	[ECPRI_CC_ETH_100G_FH2_MACSEC_CLK_SRC] = &ecpri_cc_eth_100g_fh2_macsec_clk_src.clkr,
2290e146252aSImran Shaik 	[ECPRI_CC_ETH_100G_FH_0_HM_FF_0_CLK] = &ecpri_cc_eth_100g_fh_0_hm_ff_0_clk.branch.clkr,
2291e146252aSImran Shaik 	[ECPRI_CC_ETH_100G_FH_0_HM_FF_0_DIV_CLK_SRC] =
2292e146252aSImran Shaik 		&ecpri_cc_eth_100g_fh_0_hm_ff_0_div_clk_src.clkr,
2293e146252aSImran Shaik 	[ECPRI_CC_ETH_100G_FH_0_HM_FF_1_CLK] = &ecpri_cc_eth_100g_fh_0_hm_ff_1_clk.branch.clkr,
2294e146252aSImran Shaik 	[ECPRI_CC_ETH_100G_FH_0_HM_FF_1_DIV_CLK_SRC] =
2295e146252aSImran Shaik 		&ecpri_cc_eth_100g_fh_0_hm_ff_1_div_clk_src.clkr,
2296e146252aSImran Shaik 	[ECPRI_CC_ETH_100G_FH_0_HM_FF_2_CLK] = &ecpri_cc_eth_100g_fh_0_hm_ff_2_clk.branch.clkr,
2297e146252aSImran Shaik 	[ECPRI_CC_ETH_100G_FH_0_HM_FF_2_DIV_CLK_SRC] =
2298e146252aSImran Shaik 		&ecpri_cc_eth_100g_fh_0_hm_ff_2_div_clk_src.clkr,
2299e146252aSImran Shaik 	[ECPRI_CC_ETH_100G_FH_0_HM_FF_3_CLK] = &ecpri_cc_eth_100g_fh_0_hm_ff_3_clk.branch.clkr,
2300e146252aSImran Shaik 	[ECPRI_CC_ETH_100G_FH_0_HM_FF_3_DIV_CLK_SRC] =
2301e146252aSImran Shaik 		&ecpri_cc_eth_100g_fh_0_hm_ff_3_div_clk_src.clkr,
2302e146252aSImran Shaik 	[ECPRI_CC_ETH_100G_FH_0_UDP_FIFO_CLK] = &ecpri_cc_eth_100g_fh_0_udp_fifo_clk.clkr,
2303e146252aSImran Shaik 	[ECPRI_CC_ETH_100G_FH_1_HM_FF_0_CLK] = &ecpri_cc_eth_100g_fh_1_hm_ff_0_clk.branch.clkr,
2304e146252aSImran Shaik 	[ECPRI_CC_ETH_100G_FH_1_HM_FF_0_DIV_CLK_SRC] =
2305e146252aSImran Shaik 		&ecpri_cc_eth_100g_fh_1_hm_ff_0_div_clk_src.clkr,
2306e146252aSImran Shaik 	[ECPRI_CC_ETH_100G_FH_1_HM_FF_1_CLK] = &ecpri_cc_eth_100g_fh_1_hm_ff_1_clk.branch.clkr,
2307e146252aSImran Shaik 	[ECPRI_CC_ETH_100G_FH_1_HM_FF_1_DIV_CLK_SRC] =
2308e146252aSImran Shaik 		&ecpri_cc_eth_100g_fh_1_hm_ff_1_div_clk_src.clkr,
2309e146252aSImran Shaik 	[ECPRI_CC_ETH_100G_FH_1_HM_FF_2_CLK] = &ecpri_cc_eth_100g_fh_1_hm_ff_2_clk.branch.clkr,
2310e146252aSImran Shaik 	[ECPRI_CC_ETH_100G_FH_1_HM_FF_2_DIV_CLK_SRC] =
2311e146252aSImran Shaik 		&ecpri_cc_eth_100g_fh_1_hm_ff_2_div_clk_src.clkr,
2312e146252aSImran Shaik 	[ECPRI_CC_ETH_100G_FH_1_HM_FF_3_CLK] = &ecpri_cc_eth_100g_fh_1_hm_ff_3_clk.branch.clkr,
2313e146252aSImran Shaik 	[ECPRI_CC_ETH_100G_FH_1_HM_FF_3_DIV_CLK_SRC] =
2314e146252aSImran Shaik 		&ecpri_cc_eth_100g_fh_1_hm_ff_3_div_clk_src.clkr,
2315e146252aSImran Shaik 	[ECPRI_CC_ETH_100G_FH_1_UDP_FIFO_CLK] = &ecpri_cc_eth_100g_fh_1_udp_fifo_clk.clkr,
2316e146252aSImran Shaik 	[ECPRI_CC_ETH_100G_FH_2_HM_FF_0_CLK] = &ecpri_cc_eth_100g_fh_2_hm_ff_0_clk.branch.clkr,
2317e146252aSImran Shaik 	[ECPRI_CC_ETH_100G_FH_2_HM_FF_0_DIV_CLK_SRC] =
2318e146252aSImran Shaik 		&ecpri_cc_eth_100g_fh_2_hm_ff_0_div_clk_src.clkr,
2319e146252aSImran Shaik 	[ECPRI_CC_ETH_100G_FH_2_HM_FF_1_CLK] = &ecpri_cc_eth_100g_fh_2_hm_ff_1_clk.branch.clkr,
2320e146252aSImran Shaik 	[ECPRI_CC_ETH_100G_FH_2_HM_FF_1_DIV_CLK_SRC] =
2321e146252aSImran Shaik 		&ecpri_cc_eth_100g_fh_2_hm_ff_1_div_clk_src.clkr,
2322e146252aSImran Shaik 	[ECPRI_CC_ETH_100G_FH_2_HM_FF_2_CLK] = &ecpri_cc_eth_100g_fh_2_hm_ff_2_clk.branch.clkr,
2323e146252aSImran Shaik 	[ECPRI_CC_ETH_100G_FH_2_HM_FF_2_DIV_CLK_SRC] =
2324e146252aSImran Shaik 		&ecpri_cc_eth_100g_fh_2_hm_ff_2_div_clk_src.clkr,
2325e146252aSImran Shaik 	[ECPRI_CC_ETH_100G_FH_2_HM_FF_3_CLK] = &ecpri_cc_eth_100g_fh_2_hm_ff_3_clk.branch.clkr,
2326e146252aSImran Shaik 	[ECPRI_CC_ETH_100G_FH_2_HM_FF_3_DIV_CLK_SRC] =
2327e146252aSImran Shaik 		&ecpri_cc_eth_100g_fh_2_hm_ff_3_div_clk_src.clkr,
2328e146252aSImran Shaik 	[ECPRI_CC_ETH_100G_FH_2_UDP_FIFO_CLK] = &ecpri_cc_eth_100g_fh_2_udp_fifo_clk.clkr,
2329e146252aSImran Shaik 	[ECPRI_CC_ETH_100G_FH_MACSEC_0_CLK] = &ecpri_cc_eth_100g_fh_macsec_0_clk.branch.clkr,
2330e146252aSImran Shaik 	[ECPRI_CC_ETH_100G_FH_MACSEC_1_CLK] = &ecpri_cc_eth_100g_fh_macsec_1_clk.branch.clkr,
2331e146252aSImran Shaik 	[ECPRI_CC_ETH_100G_FH_MACSEC_2_CLK] = &ecpri_cc_eth_100g_fh_macsec_2_clk.branch.clkr,
2332e146252aSImran Shaik 	[ECPRI_CC_ETH_100G_MAC_C2C_HM_REF_CLK] = &ecpri_cc_eth_100g_mac_c2c_hm_ref_clk.branch.clkr,
2333e146252aSImran Shaik 	[ECPRI_CC_ETH_100G_MAC_C2C_HM_REF_CLK_SRC] = &ecpri_cc_eth_100g_mac_c2c_hm_ref_clk_src.clkr,
2334e146252aSImran Shaik 	[ECPRI_CC_ETH_100G_MAC_DBG_C2C_HM_REF_CLK] =
2335e146252aSImran Shaik 		&ecpri_cc_eth_100g_mac_dbg_c2c_hm_ref_clk.branch.clkr,
2336e146252aSImran Shaik 	[ECPRI_CC_ETH_100G_MAC_DBG_C2C_HM_REF_CLK_SRC] =
2337e146252aSImran Shaik 		&ecpri_cc_eth_100g_mac_dbg_c2c_hm_ref_clk_src.clkr,
2338e146252aSImran Shaik 	[ECPRI_CC_ETH_100G_MAC_FH0_HM_REF_CLK] = &ecpri_cc_eth_100g_mac_fh0_hm_ref_clk.branch.clkr,
2339e146252aSImran Shaik 	[ECPRI_CC_ETH_100G_MAC_FH0_HM_REF_CLK_SRC] = &ecpri_cc_eth_100g_mac_fh0_hm_ref_clk_src.clkr,
2340e146252aSImran Shaik 	[ECPRI_CC_ETH_100G_MAC_FH1_HM_REF_CLK] = &ecpri_cc_eth_100g_mac_fh1_hm_ref_clk.branch.clkr,
2341e146252aSImran Shaik 	[ECPRI_CC_ETH_100G_MAC_FH1_HM_REF_CLK_SRC] = &ecpri_cc_eth_100g_mac_fh1_hm_ref_clk_src.clkr,
2342e146252aSImran Shaik 	[ECPRI_CC_ETH_100G_MAC_FH2_HM_REF_CLK] = &ecpri_cc_eth_100g_mac_fh2_hm_ref_clk.branch.clkr,
2343e146252aSImran Shaik 	[ECPRI_CC_ETH_100G_MAC_FH2_HM_REF_CLK_SRC] = &ecpri_cc_eth_100g_mac_fh2_hm_ref_clk_src.clkr,
2344e146252aSImran Shaik 	[ECPRI_CC_ETH_DBG_NFAPI_AXI_CLK] = &ecpri_cc_eth_dbg_nfapi_axi_clk.clkr,
2345e146252aSImran Shaik 	[ECPRI_CC_ETH_DBG_NOC_AXI_CLK] = &ecpri_cc_eth_dbg_noc_axi_clk.clkr,
2346e146252aSImran Shaik 	[ECPRI_CC_ETH_PHY_0_OCK_SRAM_CLK] = &ecpri_cc_eth_phy_0_ock_sram_clk.branch.clkr,
2347e146252aSImran Shaik 	[ECPRI_CC_ETH_PHY_1_OCK_SRAM_CLK] = &ecpri_cc_eth_phy_1_ock_sram_clk.branch.clkr,
2348e146252aSImran Shaik 	[ECPRI_CC_ETH_PHY_2_OCK_SRAM_CLK] = &ecpri_cc_eth_phy_2_ock_sram_clk.branch.clkr,
2349e146252aSImran Shaik 	[ECPRI_CC_ETH_PHY_3_OCK_SRAM_CLK] = &ecpri_cc_eth_phy_3_ock_sram_clk.branch.clkr,
2350e146252aSImran Shaik 	[ECPRI_CC_ETH_PHY_4_OCK_SRAM_CLK] = &ecpri_cc_eth_phy_4_ock_sram_clk.branch.clkr,
2351e146252aSImran Shaik 	[ECPRI_CC_MSS_EMAC_CLK] = &ecpri_cc_mss_emac_clk.clkr,
2352e146252aSImran Shaik 	[ECPRI_CC_MSS_EMAC_CLK_SRC] = &ecpri_cc_mss_emac_clk_src.clkr,
2353e146252aSImran Shaik 	[ECPRI_CC_MSS_ORAN_CLK] = &ecpri_cc_mss_oran_clk.clkr,
2354e146252aSImran Shaik 	[ECPRI_CC_PHY0_LANE0_RX_CLK] = &ecpri_cc_phy0_lane0_rx_clk.clkr,
2355e146252aSImran Shaik 	[ECPRI_CC_PHY0_LANE0_TX_CLK] = &ecpri_cc_phy0_lane0_tx_clk.clkr,
2356e146252aSImran Shaik 	[ECPRI_CC_PHY0_LANE1_RX_CLK] = &ecpri_cc_phy0_lane1_rx_clk.clkr,
2357e146252aSImran Shaik 	[ECPRI_CC_PHY0_LANE1_TX_CLK] = &ecpri_cc_phy0_lane1_tx_clk.clkr,
2358e146252aSImran Shaik 	[ECPRI_CC_PHY0_LANE2_RX_CLK] = &ecpri_cc_phy0_lane2_rx_clk.clkr,
2359e146252aSImran Shaik 	[ECPRI_CC_PHY0_LANE2_TX_CLK] = &ecpri_cc_phy0_lane2_tx_clk.clkr,
2360e146252aSImran Shaik 	[ECPRI_CC_PHY0_LANE3_RX_CLK] = &ecpri_cc_phy0_lane3_rx_clk.clkr,
2361e146252aSImran Shaik 	[ECPRI_CC_PHY0_LANE3_TX_CLK] = &ecpri_cc_phy0_lane3_tx_clk.clkr,
2362e146252aSImran Shaik 	[ECPRI_CC_PHY1_LANE0_RX_CLK] = &ecpri_cc_phy1_lane0_rx_clk.clkr,
2363e146252aSImran Shaik 	[ECPRI_CC_PHY1_LANE0_TX_CLK] = &ecpri_cc_phy1_lane0_tx_clk.clkr,
2364e146252aSImran Shaik 	[ECPRI_CC_PHY1_LANE1_RX_CLK] = &ecpri_cc_phy1_lane1_rx_clk.clkr,
2365e146252aSImran Shaik 	[ECPRI_CC_PHY1_LANE1_TX_CLK] = &ecpri_cc_phy1_lane1_tx_clk.clkr,
2366e146252aSImran Shaik 	[ECPRI_CC_PHY1_LANE2_RX_CLK] = &ecpri_cc_phy1_lane2_rx_clk.clkr,
2367e146252aSImran Shaik 	[ECPRI_CC_PHY1_LANE2_TX_CLK] = &ecpri_cc_phy1_lane2_tx_clk.clkr,
2368e146252aSImran Shaik 	[ECPRI_CC_PHY1_LANE3_RX_CLK] = &ecpri_cc_phy1_lane3_rx_clk.clkr,
2369e146252aSImran Shaik 	[ECPRI_CC_PHY1_LANE3_TX_CLK] = &ecpri_cc_phy1_lane3_tx_clk.clkr,
2370e146252aSImran Shaik 	[ECPRI_CC_PHY2_LANE0_RX_CLK] = &ecpri_cc_phy2_lane0_rx_clk.clkr,
2371e146252aSImran Shaik 	[ECPRI_CC_PHY2_LANE0_TX_CLK] = &ecpri_cc_phy2_lane0_tx_clk.clkr,
2372e146252aSImran Shaik 	[ECPRI_CC_PHY2_LANE1_RX_CLK] = &ecpri_cc_phy2_lane1_rx_clk.clkr,
2373e146252aSImran Shaik 	[ECPRI_CC_PHY2_LANE1_TX_CLK] = &ecpri_cc_phy2_lane1_tx_clk.clkr,
2374e146252aSImran Shaik 	[ECPRI_CC_PHY2_LANE2_RX_CLK] = &ecpri_cc_phy2_lane2_rx_clk.clkr,
2375e146252aSImran Shaik 	[ECPRI_CC_PHY2_LANE2_TX_CLK] = &ecpri_cc_phy2_lane2_tx_clk.clkr,
2376e146252aSImran Shaik 	[ECPRI_CC_PHY2_LANE3_RX_CLK] = &ecpri_cc_phy2_lane3_rx_clk.clkr,
2377e146252aSImran Shaik 	[ECPRI_CC_PHY2_LANE3_TX_CLK] = &ecpri_cc_phy2_lane3_tx_clk.clkr,
2378e146252aSImran Shaik 	[ECPRI_CC_PHY3_LANE0_RX_CLK] = &ecpri_cc_phy3_lane0_rx_clk.clkr,
2379e146252aSImran Shaik 	[ECPRI_CC_PHY3_LANE0_TX_CLK] = &ecpri_cc_phy3_lane0_tx_clk.clkr,
2380e146252aSImran Shaik 	[ECPRI_CC_PHY3_LANE1_RX_CLK] = &ecpri_cc_phy3_lane1_rx_clk.clkr,
2381e146252aSImran Shaik 	[ECPRI_CC_PHY3_LANE1_TX_CLK] = &ecpri_cc_phy3_lane1_tx_clk.clkr,
2382e146252aSImran Shaik 	[ECPRI_CC_PHY3_LANE2_RX_CLK] = &ecpri_cc_phy3_lane2_rx_clk.clkr,
2383e146252aSImran Shaik 	[ECPRI_CC_PHY3_LANE2_TX_CLK] = &ecpri_cc_phy3_lane2_tx_clk.clkr,
2384e146252aSImran Shaik 	[ECPRI_CC_PHY3_LANE3_RX_CLK] = &ecpri_cc_phy3_lane3_rx_clk.clkr,
2385e146252aSImran Shaik 	[ECPRI_CC_PHY3_LANE3_TX_CLK] = &ecpri_cc_phy3_lane3_tx_clk.clkr,
2386e146252aSImran Shaik 	[ECPRI_CC_PHY4_LANE0_RX_CLK] = &ecpri_cc_phy4_lane0_rx_clk.clkr,
2387e146252aSImran Shaik 	[ECPRI_CC_PHY4_LANE0_TX_CLK] = &ecpri_cc_phy4_lane0_tx_clk.clkr,
2388e146252aSImran Shaik 	[ECPRI_CC_PHY4_LANE1_RX_CLK] = &ecpri_cc_phy4_lane1_rx_clk.clkr,
2389e146252aSImran Shaik 	[ECPRI_CC_PHY4_LANE1_TX_CLK] = &ecpri_cc_phy4_lane1_tx_clk.clkr,
2390e146252aSImran Shaik 	[ECPRI_CC_PHY4_LANE2_RX_CLK] = &ecpri_cc_phy4_lane2_rx_clk.clkr,
2391e146252aSImran Shaik 	[ECPRI_CC_PHY4_LANE2_TX_CLK] = &ecpri_cc_phy4_lane2_tx_clk.clkr,
2392e146252aSImran Shaik 	[ECPRI_CC_PHY4_LANE3_RX_CLK] = &ecpri_cc_phy4_lane3_rx_clk.clkr,
2393e146252aSImran Shaik 	[ECPRI_CC_PHY4_LANE3_TX_CLK] = &ecpri_cc_phy4_lane3_tx_clk.clkr,
2394e146252aSImran Shaik 	[ECPRI_CC_PLL0] = &ecpri_cc_pll0.clkr,
2395e146252aSImran Shaik 	[ECPRI_CC_PLL1] = &ecpri_cc_pll1.clkr,
2396e146252aSImran Shaik };
2397e146252aSImran Shaik 
2398e146252aSImran Shaik static const struct qcom_reset_map ecpri_cc_qdu1000_resets[] = {
2399e146252aSImran Shaik 	[ECPRI_CC_CLK_CTL_TOP_ECPRI_CC_ECPRI_SS_BCR] = { 0x9000 },
2400e146252aSImran Shaik 	[ECPRI_CC_CLK_CTL_TOP_ECPRI_CC_ETH_C2C_BCR] = { 0x80a8 },
2401e146252aSImran Shaik 	[ECPRI_CC_CLK_CTL_TOP_ECPRI_CC_ETH_FH0_BCR] = { 0x8000 },
2402e146252aSImran Shaik 	[ECPRI_CC_CLK_CTL_TOP_ECPRI_CC_ETH_FH1_BCR] = { 0x8038 },
2403e146252aSImran Shaik 	[ECPRI_CC_CLK_CTL_TOP_ECPRI_CC_ETH_FH2_BCR] = { 0x8070 },
2404e146252aSImran Shaik 	[ECPRI_CC_CLK_CTL_TOP_ECPRI_CC_ETH_WRAPPER_TOP_BCR] = { 0x8104 },
2405e146252aSImran Shaik 	[ECPRI_CC_CLK_CTL_TOP_ECPRI_CC_MODEM_BCR] = { 0xe000 },
2406e146252aSImran Shaik 	[ECPRI_CC_CLK_CTL_TOP_ECPRI_CC_NOC_BCR] = { 0xf000 },
2407e146252aSImran Shaik };
2408e146252aSImran Shaik 
2409e146252aSImran Shaik static const struct regmap_config ecpri_cc_qdu1000_regmap_config = {
2410e146252aSImran Shaik 	.reg_bits = 32,
2411e146252aSImran Shaik 	.reg_stride = 4,
2412e146252aSImran Shaik 	.val_bits = 32,
2413e146252aSImran Shaik 	.max_register = 0x31bf0,
2414e146252aSImran Shaik 	.fast_io = true,
2415e146252aSImran Shaik };
2416e146252aSImran Shaik 
2417e146252aSImran Shaik static const struct qcom_cc_desc ecpri_cc_qdu1000_desc = {
2418e146252aSImran Shaik 	.config = &ecpri_cc_qdu1000_regmap_config,
2419e146252aSImran Shaik 	.clks = ecpri_cc_qdu1000_clocks,
2420e146252aSImran Shaik 	.num_clks = ARRAY_SIZE(ecpri_cc_qdu1000_clocks),
2421e146252aSImran Shaik 	.resets = ecpri_cc_qdu1000_resets,
2422e146252aSImran Shaik 	.num_resets = ARRAY_SIZE(ecpri_cc_qdu1000_resets),
2423e146252aSImran Shaik };
2424e146252aSImran Shaik 
2425e146252aSImran Shaik static const struct of_device_id ecpri_cc_qdu1000_match_table[] = {
2426e146252aSImran Shaik 	{ .compatible = "qcom,qdu1000-ecpricc" },
2427e146252aSImran Shaik 	{ }
2428e146252aSImran Shaik };
2429e146252aSImran Shaik MODULE_DEVICE_TABLE(of, ecpri_cc_qdu1000_match_table);
2430e146252aSImran Shaik 
ecpri_cc_qdu1000_probe(struct platform_device * pdev)2431e146252aSImran Shaik static int ecpri_cc_qdu1000_probe(struct platform_device *pdev)
2432e146252aSImran Shaik {
2433e146252aSImran Shaik 	struct regmap *regmap;
2434e146252aSImran Shaik 
2435e146252aSImran Shaik 	regmap = qcom_cc_map(pdev, &ecpri_cc_qdu1000_desc);
2436e146252aSImran Shaik 	if (IS_ERR(regmap))
2437e146252aSImran Shaik 		return PTR_ERR(regmap);
2438e146252aSImran Shaik 
2439e146252aSImran Shaik 	clk_lucid_evo_pll_configure(&ecpri_cc_pll0, regmap, &ecpri_cc_pll0_config);
2440e146252aSImran Shaik 	clk_lucid_evo_pll_configure(&ecpri_cc_pll1, regmap, &ecpri_cc_pll1_config);
2441e146252aSImran Shaik 
2442*9f93a0a4SLuo Jie 	return qcom_cc_really_probe(&pdev->dev, &ecpri_cc_qdu1000_desc, regmap);
2443e146252aSImran Shaik }
2444e146252aSImran Shaik 
2445e146252aSImran Shaik static struct platform_driver ecpri_cc_qdu1000_driver = {
2446e146252aSImran Shaik 	.probe = ecpri_cc_qdu1000_probe,
2447e146252aSImran Shaik 	.driver = {
2448e146252aSImran Shaik 		.name = "ecpri_cc-qdu1000",
2449e146252aSImran Shaik 		.of_match_table = ecpri_cc_qdu1000_match_table,
2450e146252aSImran Shaik 	},
2451e146252aSImran Shaik };
2452e146252aSImran Shaik 
2453e146252aSImran Shaik module_platform_driver(ecpri_cc_qdu1000_driver);
2454e146252aSImran Shaik 
2455e146252aSImran Shaik MODULE_DESCRIPTION("QTI ECPRICC QDU1000 Driver");
2456e146252aSImran Shaik MODULE_LICENSE("GPL");
2457