xref: /linux/drivers/clk/qcom/camcc-sm8750.c (revision c17ee635fd3a482b2ad2bf5e269755c2eae5f25e)
1f9580bafSTaniya Das // SPDX-License-Identifier: GPL-2.0-only
2f9580bafSTaniya Das /*
3f9580bafSTaniya Das  * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
4f9580bafSTaniya Das  */
5f9580bafSTaniya Das 
6f9580bafSTaniya Das #include <linux/clk-provider.h>
7f9580bafSTaniya Das #include <linux/mod_devicetable.h>
8f9580bafSTaniya Das #include <linux/module.h>
9f9580bafSTaniya Das #include <linux/platform_device.h>
10f9580bafSTaniya Das #include <linux/regmap.h>
11f9580bafSTaniya Das 
12f9580bafSTaniya Das #include <dt-bindings/clock/qcom,sm8750-camcc.h>
13f9580bafSTaniya Das 
14f9580bafSTaniya Das #include "clk-alpha-pll.h"
15f9580bafSTaniya Das #include "clk-branch.h"
16f9580bafSTaniya Das #include "clk-rcg.h"
17f9580bafSTaniya Das #include "clk-regmap.h"
18f9580bafSTaniya Das #include "common.h"
19f9580bafSTaniya Das #include "gdsc.h"
20f9580bafSTaniya Das #include "reset.h"
21f9580bafSTaniya Das 
22f9580bafSTaniya Das enum {
23f9580bafSTaniya Das 	DT_IFACE,
24f9580bafSTaniya Das 	DT_BI_TCXO,
25f9580bafSTaniya Das 	DT_BI_TCXO_AO,
26f9580bafSTaniya Das 	DT_SLEEP_CLK,
27f9580bafSTaniya Das };
28f9580bafSTaniya Das 
29f9580bafSTaniya Das enum {
30f9580bafSTaniya Das 	P_BI_TCXO,
31f9580bafSTaniya Das 	P_BI_TCXO_AO,
32f9580bafSTaniya Das 	P_CAM_CC_PLL0_OUT_EVEN,
33f9580bafSTaniya Das 	P_CAM_CC_PLL0_OUT_MAIN,
34f9580bafSTaniya Das 	P_CAM_CC_PLL0_OUT_ODD,
35f9580bafSTaniya Das 	P_CAM_CC_PLL1_OUT_EVEN,
36f9580bafSTaniya Das 	P_CAM_CC_PLL2_OUT_EVEN,
37f9580bafSTaniya Das 	P_CAM_CC_PLL3_OUT_EVEN,
38f9580bafSTaniya Das 	P_CAM_CC_PLL4_OUT_EVEN,
39f9580bafSTaniya Das 	P_CAM_CC_PLL5_OUT_EVEN,
40f9580bafSTaniya Das 	P_CAM_CC_PLL6_OUT_EVEN,
41f9580bafSTaniya Das 	P_CAM_CC_PLL6_OUT_ODD,
42f9580bafSTaniya Das 	P_SLEEP_CLK,
43f9580bafSTaniya Das };
44f9580bafSTaniya Das 
45f9580bafSTaniya Das static const struct pll_vco taycan_elu_vco[] = {
46f9580bafSTaniya Das 	{ 249600000, 2500000000, 0 },
47f9580bafSTaniya Das };
48f9580bafSTaniya Das 
49f9580bafSTaniya Das static const struct alpha_pll_config cam_cc_pll0_config = {
50f9580bafSTaniya Das 	.l = 0x3e,
51f9580bafSTaniya Das 	.alpha = 0x8000,
52f9580bafSTaniya Das 	.config_ctl_val = 0x19660387,
53f9580bafSTaniya Das 	.config_ctl_hi_val = 0x098060a0,
54f9580bafSTaniya Das 	.config_ctl_hi1_val = 0xb416cb20,
55f9580bafSTaniya Das 	.user_ctl_val = 0x00008400,
56f9580bafSTaniya Das 	.user_ctl_hi_val = 0x00000002,
57f9580bafSTaniya Das };
58f9580bafSTaniya Das 
59f9580bafSTaniya Das static struct clk_alpha_pll cam_cc_pll0 = {
60f9580bafSTaniya Das 	.offset = 0x0,
61f9580bafSTaniya Das 	.config = &cam_cc_pll0_config,
62f9580bafSTaniya Das 	.vco_table = taycan_elu_vco,
63f9580bafSTaniya Das 	.num_vco = ARRAY_SIZE(taycan_elu_vco),
64f9580bafSTaniya Das 	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_TAYCAN_ELU],
65f9580bafSTaniya Das 	.clkr = {
66f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
67f9580bafSTaniya Das 			.name = "cam_cc_pll0",
68f9580bafSTaniya Das 			.parent_data = &(const struct clk_parent_data) {
69f9580bafSTaniya Das 				.index = DT_BI_TCXO,
70f9580bafSTaniya Das 			},
71f9580bafSTaniya Das 			.num_parents = 1,
72f9580bafSTaniya Das 			.ops = &clk_alpha_pll_taycan_elu_ops,
73f9580bafSTaniya Das 		},
74f9580bafSTaniya Das 	},
75f9580bafSTaniya Das };
76f9580bafSTaniya Das 
77f9580bafSTaniya Das static const struct clk_div_table post_div_table_cam_cc_pll0_out_even[] = {
78f9580bafSTaniya Das 	{ 0x1, 2 },
79f9580bafSTaniya Das 	{ }
80f9580bafSTaniya Das };
81f9580bafSTaniya Das 
82f9580bafSTaniya Das static struct clk_alpha_pll_postdiv cam_cc_pll0_out_even = {
83f9580bafSTaniya Das 	.offset = 0x0,
84f9580bafSTaniya Das 	.post_div_shift = 10,
85f9580bafSTaniya Das 	.post_div_table = post_div_table_cam_cc_pll0_out_even,
86f9580bafSTaniya Das 	.num_post_div = ARRAY_SIZE(post_div_table_cam_cc_pll0_out_even),
87f9580bafSTaniya Das 	.width = 4,
88f9580bafSTaniya Das 	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_TAYCAN_ELU],
89f9580bafSTaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
90f9580bafSTaniya Das 		.name = "cam_cc_pll0_out_even",
91f9580bafSTaniya Das 		.parent_hws = (const struct clk_hw*[]) {
92f9580bafSTaniya Das 			&cam_cc_pll0.clkr.hw,
93f9580bafSTaniya Das 		},
94f9580bafSTaniya Das 		.num_parents = 1,
95f9580bafSTaniya Das 		.flags = CLK_SET_RATE_PARENT,
96f9580bafSTaniya Das 		.ops = &clk_alpha_pll_postdiv_taycan_elu_ops,
97f9580bafSTaniya Das 	},
98f9580bafSTaniya Das };
99f9580bafSTaniya Das 
100f9580bafSTaniya Das static const struct clk_div_table post_div_table_cam_cc_pll0_out_odd[] = {
101f9580bafSTaniya Das 	{ 0x2, 3 },
102f9580bafSTaniya Das 	{ }
103f9580bafSTaniya Das };
104f9580bafSTaniya Das 
105f9580bafSTaniya Das static struct clk_alpha_pll_postdiv cam_cc_pll0_out_odd = {
106f9580bafSTaniya Das 	.offset = 0x0,
107f9580bafSTaniya Das 	.post_div_shift = 14,
108f9580bafSTaniya Das 	.post_div_table = post_div_table_cam_cc_pll0_out_odd,
109f9580bafSTaniya Das 	.num_post_div = ARRAY_SIZE(post_div_table_cam_cc_pll0_out_odd),
110f9580bafSTaniya Das 	.width = 4,
111f9580bafSTaniya Das 	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_TAYCAN_ELU],
112f9580bafSTaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
113f9580bafSTaniya Das 		.name = "cam_cc_pll0_out_odd",
114f9580bafSTaniya Das 		.parent_hws = (const struct clk_hw*[]) {
115f9580bafSTaniya Das 			&cam_cc_pll0.clkr.hw,
116f9580bafSTaniya Das 		},
117f9580bafSTaniya Das 		.num_parents = 1,
118f9580bafSTaniya Das 		.flags = CLK_SET_RATE_PARENT,
119f9580bafSTaniya Das 		.ops = &clk_alpha_pll_postdiv_taycan_elu_ops,
120f9580bafSTaniya Das 	},
121f9580bafSTaniya Das };
122f9580bafSTaniya Das 
123f9580bafSTaniya Das static const struct alpha_pll_config cam_cc_pll1_config = {
124f9580bafSTaniya Das 	.l = 0x22,
125f9580bafSTaniya Das 	.alpha = 0xa2aa,
126f9580bafSTaniya Das 	.config_ctl_val = 0x19660387,
127f9580bafSTaniya Das 	.config_ctl_hi_val = 0x098060a0,
128f9580bafSTaniya Das 	.config_ctl_hi1_val = 0xb416cb20,
129f9580bafSTaniya Das 	.user_ctl_val = 0x00000400,
130f9580bafSTaniya Das 	.user_ctl_hi_val = 0x00000002,
131f9580bafSTaniya Das };
132f9580bafSTaniya Das 
133f9580bafSTaniya Das static struct clk_alpha_pll cam_cc_pll1 = {
134f9580bafSTaniya Das 	.offset = 0x1000,
135f9580bafSTaniya Das 	.config = &cam_cc_pll1_config,
136f9580bafSTaniya Das 	.vco_table = taycan_elu_vco,
137f9580bafSTaniya Das 	.num_vco = ARRAY_SIZE(taycan_elu_vco),
138f9580bafSTaniya Das 	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_TAYCAN_ELU],
139f9580bafSTaniya Das 	.clkr = {
140f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
141f9580bafSTaniya Das 			.name = "cam_cc_pll1",
142f9580bafSTaniya Das 			.parent_data = &(const struct clk_parent_data) {
143f9580bafSTaniya Das 				.index = DT_BI_TCXO,
144f9580bafSTaniya Das 			},
145f9580bafSTaniya Das 			.num_parents = 1,
146f9580bafSTaniya Das 			.ops = &clk_alpha_pll_taycan_elu_ops,
147f9580bafSTaniya Das 		},
148f9580bafSTaniya Das 	},
149f9580bafSTaniya Das };
150f9580bafSTaniya Das 
151f9580bafSTaniya Das static const struct clk_div_table post_div_table_cam_cc_pll1_out_even[] = {
152f9580bafSTaniya Das 	{ 0x1, 2 },
153f9580bafSTaniya Das 	{ }
154f9580bafSTaniya Das };
155f9580bafSTaniya Das 
156f9580bafSTaniya Das static struct clk_alpha_pll_postdiv cam_cc_pll1_out_even = {
157f9580bafSTaniya Das 	.offset = 0x1000,
158f9580bafSTaniya Das 	.post_div_shift = 10,
159f9580bafSTaniya Das 	.post_div_table = post_div_table_cam_cc_pll1_out_even,
160f9580bafSTaniya Das 	.num_post_div = ARRAY_SIZE(post_div_table_cam_cc_pll1_out_even),
161f9580bafSTaniya Das 	.width = 4,
162f9580bafSTaniya Das 	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_TAYCAN_ELU],
163f9580bafSTaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
164f9580bafSTaniya Das 		.name = "cam_cc_pll1_out_even",
165f9580bafSTaniya Das 		.parent_hws = (const struct clk_hw*[]) {
166f9580bafSTaniya Das 			&cam_cc_pll1.clkr.hw,
167f9580bafSTaniya Das 		},
168f9580bafSTaniya Das 		.num_parents = 1,
169f9580bafSTaniya Das 		.flags = CLK_SET_RATE_PARENT,
170f9580bafSTaniya Das 		.ops = &clk_alpha_pll_postdiv_taycan_elu_ops,
171f9580bafSTaniya Das 	},
172f9580bafSTaniya Das };
173f9580bafSTaniya Das 
174f9580bafSTaniya Das static const struct alpha_pll_config cam_cc_pll2_config = {
175f9580bafSTaniya Das 	.l = 0x23,
176f9580bafSTaniya Das 	.alpha = 0x4aaa,
177f9580bafSTaniya Das 	.config_ctl_val = 0x19660387,
178f9580bafSTaniya Das 	.config_ctl_hi_val = 0x098060a0,
179f9580bafSTaniya Das 	.config_ctl_hi1_val = 0xb416cb20,
180f9580bafSTaniya Das 	.user_ctl_val = 0x00000400,
181f9580bafSTaniya Das 	.user_ctl_hi_val = 0x00000002,
182f9580bafSTaniya Das };
183f9580bafSTaniya Das 
184f9580bafSTaniya Das static struct clk_alpha_pll cam_cc_pll2 = {
185f9580bafSTaniya Das 	.offset = 0x2000,
186f9580bafSTaniya Das 	.config = &cam_cc_pll2_config,
187f9580bafSTaniya Das 	.vco_table = taycan_elu_vco,
188f9580bafSTaniya Das 	.num_vco = ARRAY_SIZE(taycan_elu_vco),
189f9580bafSTaniya Das 	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_TAYCAN_ELU],
190f9580bafSTaniya Das 	.clkr = {
191f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
192f9580bafSTaniya Das 			.name = "cam_cc_pll2",
193f9580bafSTaniya Das 			.parent_data = &(const struct clk_parent_data) {
194f9580bafSTaniya Das 				.index = DT_BI_TCXO,
195f9580bafSTaniya Das 			},
196f9580bafSTaniya Das 			.num_parents = 1,
197f9580bafSTaniya Das 			.ops = &clk_alpha_pll_taycan_elu_ops,
198f9580bafSTaniya Das 		},
199f9580bafSTaniya Das 	},
200f9580bafSTaniya Das };
201f9580bafSTaniya Das 
202f9580bafSTaniya Das static const struct clk_div_table post_div_table_cam_cc_pll2_out_even[] = {
203f9580bafSTaniya Das 	{ 0x1, 2 },
204f9580bafSTaniya Das 	{ }
205f9580bafSTaniya Das };
206f9580bafSTaniya Das 
207f9580bafSTaniya Das static struct clk_alpha_pll_postdiv cam_cc_pll2_out_even = {
208f9580bafSTaniya Das 	.offset = 0x2000,
209f9580bafSTaniya Das 	.post_div_shift = 10,
210f9580bafSTaniya Das 	.post_div_table = post_div_table_cam_cc_pll2_out_even,
211f9580bafSTaniya Das 	.num_post_div = ARRAY_SIZE(post_div_table_cam_cc_pll2_out_even),
212f9580bafSTaniya Das 	.width = 4,
213f9580bafSTaniya Das 	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_TAYCAN_ELU],
214f9580bafSTaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
215f9580bafSTaniya Das 		.name = "cam_cc_pll2_out_even",
216f9580bafSTaniya Das 		.parent_hws = (const struct clk_hw*[]) {
217f9580bafSTaniya Das 			&cam_cc_pll2.clkr.hw,
218f9580bafSTaniya Das 		},
219f9580bafSTaniya Das 		.num_parents = 1,
220f9580bafSTaniya Das 		.flags = CLK_SET_RATE_PARENT,
221f9580bafSTaniya Das 		.ops = &clk_alpha_pll_postdiv_taycan_elu_ops,
222f9580bafSTaniya Das 	},
223f9580bafSTaniya Das };
224f9580bafSTaniya Das 
225f9580bafSTaniya Das static const struct alpha_pll_config cam_cc_pll3_config = {
226f9580bafSTaniya Das 	.l = 0x25,
227f9580bafSTaniya Das 	.alpha = 0x8777,
228f9580bafSTaniya Das 	.config_ctl_val = 0x19660387,
229f9580bafSTaniya Das 	.config_ctl_hi_val = 0x098060a0,
230f9580bafSTaniya Das 	.config_ctl_hi1_val = 0xb416cb20,
231f9580bafSTaniya Das 	.user_ctl_val = 0x00000400,
232f9580bafSTaniya Das 	.user_ctl_hi_val = 0x00000002,
233f9580bafSTaniya Das };
234f9580bafSTaniya Das 
235f9580bafSTaniya Das static struct clk_alpha_pll cam_cc_pll3 = {
236f9580bafSTaniya Das 	.offset = 0x3000,
237f9580bafSTaniya Das 	.config = &cam_cc_pll3_config,
238f9580bafSTaniya Das 	.vco_table = taycan_elu_vco,
239f9580bafSTaniya Das 	.num_vco = ARRAY_SIZE(taycan_elu_vco),
240f9580bafSTaniya Das 	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_TAYCAN_ELU],
241f9580bafSTaniya Das 	.clkr = {
242f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
243f9580bafSTaniya Das 			.name = "cam_cc_pll3",
244f9580bafSTaniya Das 			.parent_data = &(const struct clk_parent_data) {
245f9580bafSTaniya Das 				.index = DT_BI_TCXO,
246f9580bafSTaniya Das 			},
247f9580bafSTaniya Das 			.num_parents = 1,
248f9580bafSTaniya Das 			.ops = &clk_alpha_pll_taycan_elu_ops,
249f9580bafSTaniya Das 		},
250f9580bafSTaniya Das 	},
251f9580bafSTaniya Das };
252f9580bafSTaniya Das 
253f9580bafSTaniya Das static const struct clk_div_table post_div_table_cam_cc_pll3_out_even[] = {
254f9580bafSTaniya Das 	{ 0x1, 2 },
255f9580bafSTaniya Das 	{ }
256f9580bafSTaniya Das };
257f9580bafSTaniya Das 
258f9580bafSTaniya Das static struct clk_alpha_pll_postdiv cam_cc_pll3_out_even = {
259f9580bafSTaniya Das 	.offset = 0x3000,
260f9580bafSTaniya Das 	.post_div_shift = 10,
261f9580bafSTaniya Das 	.post_div_table = post_div_table_cam_cc_pll3_out_even,
262f9580bafSTaniya Das 	.num_post_div = ARRAY_SIZE(post_div_table_cam_cc_pll3_out_even),
263f9580bafSTaniya Das 	.width = 4,
264f9580bafSTaniya Das 	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_TAYCAN_ELU],
265f9580bafSTaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
266f9580bafSTaniya Das 		.name = "cam_cc_pll3_out_even",
267f9580bafSTaniya Das 		.parent_hws = (const struct clk_hw*[]) {
268f9580bafSTaniya Das 			&cam_cc_pll3.clkr.hw,
269f9580bafSTaniya Das 		},
270f9580bafSTaniya Das 		.num_parents = 1,
271f9580bafSTaniya Das 		.flags = CLK_SET_RATE_PARENT,
272f9580bafSTaniya Das 		.ops = &clk_alpha_pll_postdiv_taycan_elu_ops,
273f9580bafSTaniya Das 	},
274f9580bafSTaniya Das };
275f9580bafSTaniya Das 
276f9580bafSTaniya Das static const struct alpha_pll_config cam_cc_pll4_config = {
277f9580bafSTaniya Das 	.l = 0x25,
278f9580bafSTaniya Das 	.alpha = 0x8777,
279f9580bafSTaniya Das 	.config_ctl_val = 0x19660387,
280f9580bafSTaniya Das 	.config_ctl_hi_val = 0x098060a0,
281f9580bafSTaniya Das 	.config_ctl_hi1_val = 0xb416cb20,
282f9580bafSTaniya Das 	.user_ctl_val = 0x00000400,
283f9580bafSTaniya Das 	.user_ctl_hi_val = 0x00000002,
284f9580bafSTaniya Das };
285f9580bafSTaniya Das 
286f9580bafSTaniya Das static struct clk_alpha_pll cam_cc_pll4 = {
287f9580bafSTaniya Das 	.offset = 0x4000,
288f9580bafSTaniya Das 	.config = &cam_cc_pll4_config,
289f9580bafSTaniya Das 	.vco_table = taycan_elu_vco,
290f9580bafSTaniya Das 	.num_vco = ARRAY_SIZE(taycan_elu_vco),
291f9580bafSTaniya Das 	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_TAYCAN_ELU],
292f9580bafSTaniya Das 	.clkr = {
293f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
294f9580bafSTaniya Das 			.name = "cam_cc_pll4",
295f9580bafSTaniya Das 			.parent_data = &(const struct clk_parent_data) {
296f9580bafSTaniya Das 				.index = DT_BI_TCXO,
297f9580bafSTaniya Das 			},
298f9580bafSTaniya Das 			.num_parents = 1,
299f9580bafSTaniya Das 			.ops = &clk_alpha_pll_taycan_elu_ops,
300f9580bafSTaniya Das 		},
301f9580bafSTaniya Das 	},
302f9580bafSTaniya Das };
303f9580bafSTaniya Das 
304f9580bafSTaniya Das static const struct clk_div_table post_div_table_cam_cc_pll4_out_even[] = {
305f9580bafSTaniya Das 	{ 0x1, 2 },
306f9580bafSTaniya Das 	{ }
307f9580bafSTaniya Das };
308f9580bafSTaniya Das 
309f9580bafSTaniya Das static struct clk_alpha_pll_postdiv cam_cc_pll4_out_even = {
310f9580bafSTaniya Das 	.offset = 0x4000,
311f9580bafSTaniya Das 	.post_div_shift = 10,
312f9580bafSTaniya Das 	.post_div_table = post_div_table_cam_cc_pll4_out_even,
313f9580bafSTaniya Das 	.num_post_div = ARRAY_SIZE(post_div_table_cam_cc_pll4_out_even),
314f9580bafSTaniya Das 	.width = 4,
315f9580bafSTaniya Das 	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_TAYCAN_ELU],
316f9580bafSTaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
317f9580bafSTaniya Das 		.name = "cam_cc_pll4_out_even",
318f9580bafSTaniya Das 		.parent_hws = (const struct clk_hw*[]) {
319f9580bafSTaniya Das 			&cam_cc_pll4.clkr.hw,
320f9580bafSTaniya Das 		},
321f9580bafSTaniya Das 		.num_parents = 1,
322f9580bafSTaniya Das 		.flags = CLK_SET_RATE_PARENT,
323f9580bafSTaniya Das 		.ops = &clk_alpha_pll_postdiv_taycan_elu_ops,
324f9580bafSTaniya Das 	},
325f9580bafSTaniya Das };
326f9580bafSTaniya Das 
327f9580bafSTaniya Das static const struct alpha_pll_config cam_cc_pll5_config = {
328f9580bafSTaniya Das 	.l = 0x25,
329f9580bafSTaniya Das 	.alpha = 0x8777,
330f9580bafSTaniya Das 	.config_ctl_val = 0x19660387,
331f9580bafSTaniya Das 	.config_ctl_hi_val = 0x098060a0,
332f9580bafSTaniya Das 	.config_ctl_hi1_val = 0xb416cb20,
333f9580bafSTaniya Das 	.user_ctl_val = 0x00000400,
334f9580bafSTaniya Das 	.user_ctl_hi_val = 0x00000002,
335f9580bafSTaniya Das };
336f9580bafSTaniya Das 
337f9580bafSTaniya Das static struct clk_alpha_pll cam_cc_pll5 = {
338f9580bafSTaniya Das 	.offset = 0x5000,
339f9580bafSTaniya Das 	.config = &cam_cc_pll5_config,
340f9580bafSTaniya Das 	.vco_table = taycan_elu_vco,
341f9580bafSTaniya Das 	.num_vco = ARRAY_SIZE(taycan_elu_vco),
342f9580bafSTaniya Das 	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_TAYCAN_ELU],
343f9580bafSTaniya Das 	.clkr = {
344f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
345f9580bafSTaniya Das 			.name = "cam_cc_pll5",
346f9580bafSTaniya Das 			.parent_data = &(const struct clk_parent_data) {
347f9580bafSTaniya Das 				.index = DT_BI_TCXO,
348f9580bafSTaniya Das 			},
349f9580bafSTaniya Das 			.num_parents = 1,
350f9580bafSTaniya Das 			.ops = &clk_alpha_pll_taycan_elu_ops,
351f9580bafSTaniya Das 		},
352f9580bafSTaniya Das 	},
353f9580bafSTaniya Das };
354f9580bafSTaniya Das 
355f9580bafSTaniya Das static const struct clk_div_table post_div_table_cam_cc_pll5_out_even[] = {
356f9580bafSTaniya Das 	{ 0x1, 2 },
357f9580bafSTaniya Das 	{ }
358f9580bafSTaniya Das };
359f9580bafSTaniya Das 
360f9580bafSTaniya Das static struct clk_alpha_pll_postdiv cam_cc_pll5_out_even = {
361f9580bafSTaniya Das 	.offset = 0x5000,
362f9580bafSTaniya Das 	.post_div_shift = 10,
363f9580bafSTaniya Das 	.post_div_table = post_div_table_cam_cc_pll5_out_even,
364f9580bafSTaniya Das 	.num_post_div = ARRAY_SIZE(post_div_table_cam_cc_pll5_out_even),
365f9580bafSTaniya Das 	.width = 4,
366f9580bafSTaniya Das 	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_TAYCAN_ELU],
367f9580bafSTaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
368f9580bafSTaniya Das 		.name = "cam_cc_pll5_out_even",
369f9580bafSTaniya Das 		.parent_hws = (const struct clk_hw*[]) {
370f9580bafSTaniya Das 			&cam_cc_pll5.clkr.hw,
371f9580bafSTaniya Das 		},
372f9580bafSTaniya Das 		.num_parents = 1,
373f9580bafSTaniya Das 		.flags = CLK_SET_RATE_PARENT,
374f9580bafSTaniya Das 		.ops = &clk_alpha_pll_postdiv_taycan_elu_ops,
375f9580bafSTaniya Das 	},
376f9580bafSTaniya Das };
377f9580bafSTaniya Das 
378f9580bafSTaniya Das static const struct alpha_pll_config cam_cc_pll6_config = {
379f9580bafSTaniya Das 	.l = 0x32,
380f9580bafSTaniya Das 	.alpha = 0x0,
381f9580bafSTaniya Das 	.config_ctl_val = 0x19660387,
382f9580bafSTaniya Das 	.config_ctl_hi_val = 0x098060a0,
383f9580bafSTaniya Das 	.config_ctl_hi1_val = 0xb416cb20,
384f9580bafSTaniya Das 	.user_ctl_val = 0x00008400,
385f9580bafSTaniya Das 	.user_ctl_hi_val = 0x00000002,
386f9580bafSTaniya Das };
387f9580bafSTaniya Das 
388f9580bafSTaniya Das static struct clk_alpha_pll cam_cc_pll6 = {
389f9580bafSTaniya Das 	.offset = 0x6000,
390f9580bafSTaniya Das 	.config = &cam_cc_pll6_config,
391f9580bafSTaniya Das 	.vco_table = taycan_elu_vco,
392f9580bafSTaniya Das 	.num_vco = ARRAY_SIZE(taycan_elu_vco),
393f9580bafSTaniya Das 	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_TAYCAN_ELU],
394f9580bafSTaniya Das 	.clkr = {
395f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
396f9580bafSTaniya Das 			.name = "cam_cc_pll6",
397f9580bafSTaniya Das 			.parent_data = &(const struct clk_parent_data) {
398f9580bafSTaniya Das 				.index = DT_BI_TCXO,
399f9580bafSTaniya Das 			},
400f9580bafSTaniya Das 			.num_parents = 1,
401f9580bafSTaniya Das 			.ops = &clk_alpha_pll_taycan_elu_ops,
402f9580bafSTaniya Das 		},
403f9580bafSTaniya Das 	},
404f9580bafSTaniya Das };
405f9580bafSTaniya Das 
406f9580bafSTaniya Das static const struct clk_div_table post_div_table_cam_cc_pll6_out_even[] = {
407f9580bafSTaniya Das 	{ 0x1, 2 },
408f9580bafSTaniya Das 	{ }
409f9580bafSTaniya Das };
410f9580bafSTaniya Das 
411f9580bafSTaniya Das static struct clk_alpha_pll_postdiv cam_cc_pll6_out_even = {
412f9580bafSTaniya Das 	.offset = 0x6000,
413f9580bafSTaniya Das 	.post_div_shift = 10,
414f9580bafSTaniya Das 	.post_div_table = post_div_table_cam_cc_pll6_out_even,
415f9580bafSTaniya Das 	.num_post_div = ARRAY_SIZE(post_div_table_cam_cc_pll6_out_even),
416f9580bafSTaniya Das 	.width = 4,
417f9580bafSTaniya Das 	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_TAYCAN_ELU],
418f9580bafSTaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
419f9580bafSTaniya Das 		.name = "cam_cc_pll6_out_even",
420f9580bafSTaniya Das 		.parent_hws = (const struct clk_hw*[]) {
421f9580bafSTaniya Das 			&cam_cc_pll6.clkr.hw,
422f9580bafSTaniya Das 		},
423f9580bafSTaniya Das 		.num_parents = 1,
424f9580bafSTaniya Das 		.flags = CLK_SET_RATE_PARENT,
425f9580bafSTaniya Das 		.ops = &clk_alpha_pll_postdiv_taycan_elu_ops,
426f9580bafSTaniya Das 	},
427f9580bafSTaniya Das };
428f9580bafSTaniya Das 
429f9580bafSTaniya Das static const struct clk_div_table post_div_table_cam_cc_pll6_out_odd[] = {
430f9580bafSTaniya Das 	{ 0x2, 3 },
431f9580bafSTaniya Das 	{ }
432f9580bafSTaniya Das };
433f9580bafSTaniya Das 
434f9580bafSTaniya Das static struct clk_alpha_pll_postdiv cam_cc_pll6_out_odd = {
435f9580bafSTaniya Das 	.offset = 0x6000,
436f9580bafSTaniya Das 	.post_div_shift = 14,
437f9580bafSTaniya Das 	.post_div_table = post_div_table_cam_cc_pll6_out_odd,
438f9580bafSTaniya Das 	.num_post_div = ARRAY_SIZE(post_div_table_cam_cc_pll6_out_odd),
439f9580bafSTaniya Das 	.width = 4,
440f9580bafSTaniya Das 	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_TAYCAN_ELU],
441f9580bafSTaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
442f9580bafSTaniya Das 		.name = "cam_cc_pll6_out_odd",
443f9580bafSTaniya Das 		.parent_hws = (const struct clk_hw*[]) {
444f9580bafSTaniya Das 			&cam_cc_pll6.clkr.hw,
445f9580bafSTaniya Das 		},
446f9580bafSTaniya Das 		.num_parents = 1,
447f9580bafSTaniya Das 		.flags = CLK_SET_RATE_PARENT,
448f9580bafSTaniya Das 		.ops = &clk_alpha_pll_postdiv_taycan_elu_ops,
449f9580bafSTaniya Das 	},
450f9580bafSTaniya Das };
451f9580bafSTaniya Das 
452f9580bafSTaniya Das static const struct parent_map cam_cc_parent_map_0[] = {
453f9580bafSTaniya Das 	{ P_BI_TCXO, 0 },
454f9580bafSTaniya Das 	{ P_CAM_CC_PLL0_OUT_MAIN, 1 },
455f9580bafSTaniya Das 	{ P_CAM_CC_PLL0_OUT_EVEN, 2 },
456f9580bafSTaniya Das 	{ P_CAM_CC_PLL0_OUT_ODD, 3 },
457f9580bafSTaniya Das 	{ P_CAM_CC_PLL6_OUT_ODD, 4 },
458f9580bafSTaniya Das 	{ P_CAM_CC_PLL6_OUT_EVEN, 5 },
459f9580bafSTaniya Das };
460f9580bafSTaniya Das 
461f9580bafSTaniya Das static const struct clk_parent_data cam_cc_parent_data_0[] = {
462f9580bafSTaniya Das 	{ .index = DT_BI_TCXO },
463f9580bafSTaniya Das 	{ .hw = &cam_cc_pll0.clkr.hw },
464f9580bafSTaniya Das 	{ .hw = &cam_cc_pll0_out_even.clkr.hw },
465f9580bafSTaniya Das 	{ .hw = &cam_cc_pll0_out_odd.clkr.hw },
466f9580bafSTaniya Das 	{ .hw = &cam_cc_pll6_out_odd.clkr.hw },
467f9580bafSTaniya Das 	{ .hw = &cam_cc_pll6_out_even.clkr.hw },
468f9580bafSTaniya Das };
469f9580bafSTaniya Das 
470f9580bafSTaniya Das static const struct parent_map cam_cc_parent_map_1[] = {
471f9580bafSTaniya Das 	{ P_BI_TCXO, 0 },
472f9580bafSTaniya Das 	{ P_CAM_CC_PLL0_OUT_MAIN, 1 },
473f9580bafSTaniya Das 	{ P_CAM_CC_PLL0_OUT_EVEN, 2 },
474f9580bafSTaniya Das 	{ P_CAM_CC_PLL0_OUT_ODD, 3 },
475f9580bafSTaniya Das 	{ P_CAM_CC_PLL6_OUT_ODD, 4 },
476f9580bafSTaniya Das 	{ P_CAM_CC_PLL6_OUT_EVEN, 5 },
477f9580bafSTaniya Das };
478f9580bafSTaniya Das 
479f9580bafSTaniya Das static const struct clk_parent_data cam_cc_parent_data_1[] = {
480f9580bafSTaniya Das 	{ .index = DT_BI_TCXO },
481f9580bafSTaniya Das 	{ .hw = &cam_cc_pll0.clkr.hw },
482f9580bafSTaniya Das 	{ .hw = &cam_cc_pll0_out_even.clkr.hw },
483f9580bafSTaniya Das 	{ .hw = &cam_cc_pll0_out_odd.clkr.hw },
484f9580bafSTaniya Das 	{ .hw = &cam_cc_pll6_out_odd.clkr.hw },
485f9580bafSTaniya Das 	{ .hw = &cam_cc_pll6_out_even.clkr.hw },
486f9580bafSTaniya Das };
487f9580bafSTaniya Das 
488f9580bafSTaniya Das static const struct parent_map cam_cc_parent_map_2[] = {
489f9580bafSTaniya Das 	{ P_BI_TCXO, 0 },
490f9580bafSTaniya Das 	{ P_CAM_CC_PLL1_OUT_EVEN, 4 },
491f9580bafSTaniya Das };
492f9580bafSTaniya Das 
493f9580bafSTaniya Das static const struct clk_parent_data cam_cc_parent_data_2[] = {
494f9580bafSTaniya Das 	{ .index = DT_BI_TCXO },
495f9580bafSTaniya Das 	{ .hw = &cam_cc_pll1_out_even.clkr.hw },
496f9580bafSTaniya Das };
497f9580bafSTaniya Das 
498f9580bafSTaniya Das static const struct parent_map cam_cc_parent_map_3[] = {
499f9580bafSTaniya Das 	{ P_BI_TCXO, 0 },
500f9580bafSTaniya Das 	{ P_CAM_CC_PLL2_OUT_EVEN, 5 },
501f9580bafSTaniya Das };
502f9580bafSTaniya Das 
503f9580bafSTaniya Das static const struct clk_parent_data cam_cc_parent_data_3[] = {
504f9580bafSTaniya Das 	{ .index = DT_BI_TCXO },
505f9580bafSTaniya Das 	{ .hw = &cam_cc_pll2_out_even.clkr.hw },
506f9580bafSTaniya Das };
507f9580bafSTaniya Das 
508f9580bafSTaniya Das static const struct parent_map cam_cc_parent_map_4[] = {
509f9580bafSTaniya Das 	{ P_SLEEP_CLK, 0 },
510f9580bafSTaniya Das };
511f9580bafSTaniya Das 
512f9580bafSTaniya Das static const struct clk_parent_data cam_cc_parent_data_4[] = {
513f9580bafSTaniya Das 	{ .index = DT_SLEEP_CLK },
514f9580bafSTaniya Das };
515f9580bafSTaniya Das 
516f9580bafSTaniya Das static const struct parent_map cam_cc_parent_map_5[] = {
517f9580bafSTaniya Das 	{ P_BI_TCXO, 0 },
518f9580bafSTaniya Das 	{ P_CAM_CC_PLL3_OUT_EVEN, 6 },
519f9580bafSTaniya Das };
520f9580bafSTaniya Das 
521f9580bafSTaniya Das static const struct clk_parent_data cam_cc_parent_data_5[] = {
522f9580bafSTaniya Das 	{ .index = DT_BI_TCXO },
523f9580bafSTaniya Das 	{ .hw = &cam_cc_pll3_out_even.clkr.hw },
524f9580bafSTaniya Das };
525f9580bafSTaniya Das 
526f9580bafSTaniya Das static const struct parent_map cam_cc_parent_map_6[] = {
527f9580bafSTaniya Das 	{ P_BI_TCXO, 0 },
528f9580bafSTaniya Das 	{ P_CAM_CC_PLL4_OUT_EVEN, 6 },
529f9580bafSTaniya Das };
530f9580bafSTaniya Das 
531f9580bafSTaniya Das static const struct clk_parent_data cam_cc_parent_data_6[] = {
532f9580bafSTaniya Das 	{ .index = DT_BI_TCXO },
533f9580bafSTaniya Das 	{ .hw = &cam_cc_pll4_out_even.clkr.hw },
534f9580bafSTaniya Das };
535f9580bafSTaniya Das 
536f9580bafSTaniya Das static const struct parent_map cam_cc_parent_map_7[] = {
537f9580bafSTaniya Das 	{ P_BI_TCXO, 0 },
538f9580bafSTaniya Das 	{ P_CAM_CC_PLL5_OUT_EVEN, 6 },
539f9580bafSTaniya Das };
540f9580bafSTaniya Das 
541f9580bafSTaniya Das static const struct clk_parent_data cam_cc_parent_data_7[] = {
542f9580bafSTaniya Das 	{ .index = DT_BI_TCXO },
543f9580bafSTaniya Das 	{ .hw = &cam_cc_pll5_out_even.clkr.hw },
544f9580bafSTaniya Das };
545f9580bafSTaniya Das 
546f9580bafSTaniya Das static const struct parent_map cam_cc_parent_map_8_ao[] = {
547f9580bafSTaniya Das 	{ P_BI_TCXO_AO, 0 },
548f9580bafSTaniya Das };
549f9580bafSTaniya Das 
550f9580bafSTaniya Das static const struct clk_parent_data cam_cc_parent_data_8_ao[] = {
551f9580bafSTaniya Das 	{ .index = DT_BI_TCXO_AO },
552f9580bafSTaniya Das };
553f9580bafSTaniya Das 
554f9580bafSTaniya Das static const struct freq_tbl ftbl_cam_cc_camnoc_rt_axi_clk_src[] = {
555f9580bafSTaniya Das 	F(19200000, P_BI_TCXO, 1, 0, 0),
556f9580bafSTaniya Das 	F(200000000, P_CAM_CC_PLL0_OUT_EVEN, 3, 0, 0),
557f9580bafSTaniya Das 	F(300000000, P_CAM_CC_PLL0_OUT_EVEN, 2, 0, 0),
558f9580bafSTaniya Das 	F(400000000, P_CAM_CC_PLL0_OUT_EVEN, 1.5, 0, 0),
559f9580bafSTaniya Das 	{ }
560f9580bafSTaniya Das };
561f9580bafSTaniya Das 
562f9580bafSTaniya Das static struct clk_rcg2 cam_cc_camnoc_rt_axi_clk_src = {
563f9580bafSTaniya Das 	.cmd_rcgr = 0x112e8,
564f9580bafSTaniya Das 	.mnd_width = 0,
565f9580bafSTaniya Das 	.hid_width = 5,
566f9580bafSTaniya Das 	.parent_map = cam_cc_parent_map_0,
567f9580bafSTaniya Das 	.freq_tbl = ftbl_cam_cc_camnoc_rt_axi_clk_src,
568f9580bafSTaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
569f9580bafSTaniya Das 		.name = "cam_cc_camnoc_rt_axi_clk_src",
570f9580bafSTaniya Das 		.parent_data = cam_cc_parent_data_0,
571f9580bafSTaniya Das 		.num_parents = ARRAY_SIZE(cam_cc_parent_data_0),
572f9580bafSTaniya Das 		.flags = CLK_SET_RATE_PARENT,
573f9580bafSTaniya Das 		.ops = &clk_rcg2_shared_ops,
574f9580bafSTaniya Das 	},
575f9580bafSTaniya Das };
576f9580bafSTaniya Das 
577f9580bafSTaniya Das static const struct freq_tbl ftbl_cam_cc_cci_0_clk_src[] = {
578f9580bafSTaniya Das 	F(37500000, P_CAM_CC_PLL0_OUT_EVEN, 16, 0, 0),
579f9580bafSTaniya Das 	{ }
580f9580bafSTaniya Das };
581f9580bafSTaniya Das 
582f9580bafSTaniya Das static struct clk_rcg2 cam_cc_cci_0_clk_src = {
583f9580bafSTaniya Das 	.cmd_rcgr = 0x1126c,
584f9580bafSTaniya Das 	.mnd_width = 8,
585f9580bafSTaniya Das 	.hid_width = 5,
586f9580bafSTaniya Das 	.parent_map = cam_cc_parent_map_0,
587f9580bafSTaniya Das 	.freq_tbl = ftbl_cam_cc_cci_0_clk_src,
588f9580bafSTaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
589f9580bafSTaniya Das 		.name = "cam_cc_cci_0_clk_src",
590f9580bafSTaniya Das 		.parent_data = cam_cc_parent_data_0,
591f9580bafSTaniya Das 		.num_parents = ARRAY_SIZE(cam_cc_parent_data_0),
592f9580bafSTaniya Das 		.flags = CLK_SET_RATE_PARENT,
593f9580bafSTaniya Das 		.ops = &clk_rcg2_shared_ops,
594f9580bafSTaniya Das 	},
595f9580bafSTaniya Das };
596f9580bafSTaniya Das 
597f9580bafSTaniya Das static struct clk_rcg2 cam_cc_cci_1_clk_src = {
598f9580bafSTaniya Das 	.cmd_rcgr = 0x11288,
599f9580bafSTaniya Das 	.mnd_width = 8,
600f9580bafSTaniya Das 	.hid_width = 5,
601f9580bafSTaniya Das 	.parent_map = cam_cc_parent_map_0,
602f9580bafSTaniya Das 	.freq_tbl = ftbl_cam_cc_cci_0_clk_src,
603f9580bafSTaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
604f9580bafSTaniya Das 		.name = "cam_cc_cci_1_clk_src",
605f9580bafSTaniya Das 		.parent_data = cam_cc_parent_data_0,
606f9580bafSTaniya Das 		.num_parents = ARRAY_SIZE(cam_cc_parent_data_0),
607f9580bafSTaniya Das 		.flags = CLK_SET_RATE_PARENT,
608f9580bafSTaniya Das 		.ops = &clk_rcg2_shared_ops,
609f9580bafSTaniya Das 	},
610f9580bafSTaniya Das };
611f9580bafSTaniya Das 
612f9580bafSTaniya Das static struct clk_rcg2 cam_cc_cci_2_clk_src = {
613f9580bafSTaniya Das 	.cmd_rcgr = 0x112a4,
614f9580bafSTaniya Das 	.mnd_width = 8,
615f9580bafSTaniya Das 	.hid_width = 5,
616f9580bafSTaniya Das 	.parent_map = cam_cc_parent_map_0,
617f9580bafSTaniya Das 	.freq_tbl = ftbl_cam_cc_cci_0_clk_src,
618f9580bafSTaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
619f9580bafSTaniya Das 		.name = "cam_cc_cci_2_clk_src",
620f9580bafSTaniya Das 		.parent_data = cam_cc_parent_data_0,
621f9580bafSTaniya Das 		.num_parents = ARRAY_SIZE(cam_cc_parent_data_0),
622f9580bafSTaniya Das 		.flags = CLK_SET_RATE_PARENT,
623f9580bafSTaniya Das 		.ops = &clk_rcg2_shared_ops,
624f9580bafSTaniya Das 	},
625f9580bafSTaniya Das };
626f9580bafSTaniya Das 
627f9580bafSTaniya Das static const struct freq_tbl ftbl_cam_cc_cphy_rx_clk_src[] = {
628f9580bafSTaniya Das 	F(266666667, P_CAM_CC_PLL0_OUT_MAIN, 4.5, 0, 0),
629f9580bafSTaniya Das 	F(400000000, P_CAM_CC_PLL0_OUT_MAIN, 3, 0, 0),
630f9580bafSTaniya Das 	F(480000000, P_CAM_CC_PLL0_OUT_MAIN, 2.5, 0, 0),
631f9580bafSTaniya Das 	{ }
632f9580bafSTaniya Das };
633f9580bafSTaniya Das 
634f9580bafSTaniya Das static struct clk_rcg2 cam_cc_cphy_rx_clk_src = {
635f9580bafSTaniya Das 	.cmd_rcgr = 0x11068,
636f9580bafSTaniya Das 	.mnd_width = 0,
637f9580bafSTaniya Das 	.hid_width = 5,
638f9580bafSTaniya Das 	.parent_map = cam_cc_parent_map_1,
639f9580bafSTaniya Das 	.freq_tbl = ftbl_cam_cc_cphy_rx_clk_src,
640f9580bafSTaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
641f9580bafSTaniya Das 		.name = "cam_cc_cphy_rx_clk_src",
642f9580bafSTaniya Das 		.parent_data = cam_cc_parent_data_1,
643f9580bafSTaniya Das 		.num_parents = ARRAY_SIZE(cam_cc_parent_data_1),
644f9580bafSTaniya Das 		.flags = CLK_SET_RATE_PARENT,
645f9580bafSTaniya Das 		.ops = &clk_rcg2_shared_ops,
646f9580bafSTaniya Das 	},
647f9580bafSTaniya Das };
648f9580bafSTaniya Das 
649f9580bafSTaniya Das static const struct freq_tbl ftbl_cam_cc_cre_clk_src[] = {
650f9580bafSTaniya Das 	F(137142857, P_CAM_CC_PLL6_OUT_EVEN, 3.5, 0, 0),
651f9580bafSTaniya Das 	F(200000000, P_CAM_CC_PLL0_OUT_ODD, 2, 0, 0),
652f9580bafSTaniya Das 	F(400000000, P_CAM_CC_PLL0_OUT_ODD, 1, 0, 0),
653f9580bafSTaniya Das 	F(480000000, P_CAM_CC_PLL6_OUT_EVEN, 1, 0, 0),
654f9580bafSTaniya Das 	F(600000000, P_CAM_CC_PLL0_OUT_EVEN, 1, 0, 0),
655f9580bafSTaniya Das 	{ }
656f9580bafSTaniya Das };
657f9580bafSTaniya Das 
658f9580bafSTaniya Das static struct clk_rcg2 cam_cc_cre_clk_src = {
659f9580bafSTaniya Das 	.cmd_rcgr = 0x111ac,
660f9580bafSTaniya Das 	.mnd_width = 0,
661f9580bafSTaniya Das 	.hid_width = 5,
662f9580bafSTaniya Das 	.parent_map = cam_cc_parent_map_0,
663f9580bafSTaniya Das 	.freq_tbl = ftbl_cam_cc_cre_clk_src,
664f9580bafSTaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
665f9580bafSTaniya Das 		.name = "cam_cc_cre_clk_src",
666f9580bafSTaniya Das 		.parent_data = cam_cc_parent_data_0,
667f9580bafSTaniya Das 		.num_parents = ARRAY_SIZE(cam_cc_parent_data_0),
668f9580bafSTaniya Das 		.flags = CLK_SET_RATE_PARENT,
669f9580bafSTaniya Das 		.ops = &clk_rcg2_shared_ops,
670f9580bafSTaniya Das 	},
671f9580bafSTaniya Das };
672f9580bafSTaniya Das 
673f9580bafSTaniya Das static const struct freq_tbl ftbl_cam_cc_csi0phytimer_clk_src[] = {
674f9580bafSTaniya Das 	F(400000000, P_CAM_CC_PLL0_OUT_MAIN, 3, 0, 0),
675f9580bafSTaniya Das 	{ }
676f9580bafSTaniya Das };
677f9580bafSTaniya Das 
678f9580bafSTaniya Das static struct clk_rcg2 cam_cc_csi0phytimer_clk_src = {
679f9580bafSTaniya Das 	.cmd_rcgr = 0x10000,
680f9580bafSTaniya Das 	.mnd_width = 0,
681f9580bafSTaniya Das 	.hid_width = 5,
682f9580bafSTaniya Das 	.parent_map = cam_cc_parent_map_1,
683f9580bafSTaniya Das 	.freq_tbl = ftbl_cam_cc_csi0phytimer_clk_src,
684f9580bafSTaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
685f9580bafSTaniya Das 		.name = "cam_cc_csi0phytimer_clk_src",
686f9580bafSTaniya Das 		.parent_data = cam_cc_parent_data_1,
687f9580bafSTaniya Das 		.num_parents = ARRAY_SIZE(cam_cc_parent_data_1),
688f9580bafSTaniya Das 		.flags = CLK_SET_RATE_PARENT,
689f9580bafSTaniya Das 		.ops = &clk_rcg2_shared_ops,
690f9580bafSTaniya Das 	},
691f9580bafSTaniya Das };
692f9580bafSTaniya Das 
693f9580bafSTaniya Das static struct clk_rcg2 cam_cc_csi1phytimer_clk_src = {
694f9580bafSTaniya Das 	.cmd_rcgr = 0x10024,
695f9580bafSTaniya Das 	.mnd_width = 0,
696f9580bafSTaniya Das 	.hid_width = 5,
697f9580bafSTaniya Das 	.parent_map = cam_cc_parent_map_1,
698f9580bafSTaniya Das 	.freq_tbl = ftbl_cam_cc_csi0phytimer_clk_src,
699f9580bafSTaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
700f9580bafSTaniya Das 		.name = "cam_cc_csi1phytimer_clk_src",
701f9580bafSTaniya Das 		.parent_data = cam_cc_parent_data_1,
702f9580bafSTaniya Das 		.num_parents = ARRAY_SIZE(cam_cc_parent_data_1),
703f9580bafSTaniya Das 		.flags = CLK_SET_RATE_PARENT,
704f9580bafSTaniya Das 		.ops = &clk_rcg2_shared_ops,
705f9580bafSTaniya Das 	},
706f9580bafSTaniya Das };
707f9580bafSTaniya Das 
708f9580bafSTaniya Das static struct clk_rcg2 cam_cc_csi2phytimer_clk_src = {
709f9580bafSTaniya Das 	.cmd_rcgr = 0x10044,
710f9580bafSTaniya Das 	.mnd_width = 0,
711f9580bafSTaniya Das 	.hid_width = 5,
712f9580bafSTaniya Das 	.parent_map = cam_cc_parent_map_1,
713f9580bafSTaniya Das 	.freq_tbl = ftbl_cam_cc_csi0phytimer_clk_src,
714f9580bafSTaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
715f9580bafSTaniya Das 		.name = "cam_cc_csi2phytimer_clk_src",
716f9580bafSTaniya Das 		.parent_data = cam_cc_parent_data_1,
717f9580bafSTaniya Das 		.num_parents = ARRAY_SIZE(cam_cc_parent_data_1),
718f9580bafSTaniya Das 		.flags = CLK_SET_RATE_PARENT,
719f9580bafSTaniya Das 		.ops = &clk_rcg2_shared_ops,
720f9580bafSTaniya Das 	},
721f9580bafSTaniya Das };
722f9580bafSTaniya Das 
723f9580bafSTaniya Das static struct clk_rcg2 cam_cc_csi3phytimer_clk_src = {
724f9580bafSTaniya Das 	.cmd_rcgr = 0x10064,
725f9580bafSTaniya Das 	.mnd_width = 0,
726f9580bafSTaniya Das 	.hid_width = 5,
727f9580bafSTaniya Das 	.parent_map = cam_cc_parent_map_1,
728f9580bafSTaniya Das 	.freq_tbl = ftbl_cam_cc_csi0phytimer_clk_src,
729f9580bafSTaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
730f9580bafSTaniya Das 		.name = "cam_cc_csi3phytimer_clk_src",
731f9580bafSTaniya Das 		.parent_data = cam_cc_parent_data_1,
732f9580bafSTaniya Das 		.num_parents = ARRAY_SIZE(cam_cc_parent_data_1),
733f9580bafSTaniya Das 		.flags = CLK_SET_RATE_PARENT,
734f9580bafSTaniya Das 		.ops = &clk_rcg2_shared_ops,
735f9580bafSTaniya Das 	},
736f9580bafSTaniya Das };
737f9580bafSTaniya Das 
738f9580bafSTaniya Das static struct clk_rcg2 cam_cc_csi4phytimer_clk_src = {
739f9580bafSTaniya Das 	.cmd_rcgr = 0x10084,
740f9580bafSTaniya Das 	.mnd_width = 0,
741f9580bafSTaniya Das 	.hid_width = 5,
742f9580bafSTaniya Das 	.parent_map = cam_cc_parent_map_1,
743f9580bafSTaniya Das 	.freq_tbl = ftbl_cam_cc_csi0phytimer_clk_src,
744f9580bafSTaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
745f9580bafSTaniya Das 		.name = "cam_cc_csi4phytimer_clk_src",
746f9580bafSTaniya Das 		.parent_data = cam_cc_parent_data_1,
747f9580bafSTaniya Das 		.num_parents = ARRAY_SIZE(cam_cc_parent_data_1),
748f9580bafSTaniya Das 		.flags = CLK_SET_RATE_PARENT,
749f9580bafSTaniya Das 		.ops = &clk_rcg2_shared_ops,
750f9580bafSTaniya Das 	},
751f9580bafSTaniya Das };
752f9580bafSTaniya Das 
753f9580bafSTaniya Das static struct clk_rcg2 cam_cc_csi5phytimer_clk_src = {
754f9580bafSTaniya Das 	.cmd_rcgr = 0x100a4,
755f9580bafSTaniya Das 	.mnd_width = 0,
756f9580bafSTaniya Das 	.hid_width = 5,
757f9580bafSTaniya Das 	.parent_map = cam_cc_parent_map_1,
758f9580bafSTaniya Das 	.freq_tbl = ftbl_cam_cc_csi0phytimer_clk_src,
759f9580bafSTaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
760f9580bafSTaniya Das 		.name = "cam_cc_csi5phytimer_clk_src",
761f9580bafSTaniya Das 		.parent_data = cam_cc_parent_data_1,
762f9580bafSTaniya Das 		.num_parents = ARRAY_SIZE(cam_cc_parent_data_1),
763f9580bafSTaniya Das 		.flags = CLK_SET_RATE_PARENT,
764f9580bafSTaniya Das 		.ops = &clk_rcg2_shared_ops,
765f9580bafSTaniya Das 	},
766f9580bafSTaniya Das };
767f9580bafSTaniya Das 
768f9580bafSTaniya Das static struct clk_rcg2 cam_cc_csid_clk_src = {
769f9580bafSTaniya Das 	.cmd_rcgr = 0x112c0,
770f9580bafSTaniya Das 	.mnd_width = 0,
771f9580bafSTaniya Das 	.hid_width = 5,
772f9580bafSTaniya Das 	.parent_map = cam_cc_parent_map_1,
773f9580bafSTaniya Das 	.freq_tbl = ftbl_cam_cc_cphy_rx_clk_src,
774f9580bafSTaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
775f9580bafSTaniya Das 		.name = "cam_cc_csid_clk_src",
776f9580bafSTaniya Das 		.parent_data = cam_cc_parent_data_1,
777f9580bafSTaniya Das 		.num_parents = ARRAY_SIZE(cam_cc_parent_data_1),
778f9580bafSTaniya Das 		.flags = CLK_SET_RATE_PARENT,
779f9580bafSTaniya Das 		.ops = &clk_rcg2_shared_ops,
780f9580bafSTaniya Das 	},
781f9580bafSTaniya Das };
782f9580bafSTaniya Das 
783f9580bafSTaniya Das static const struct freq_tbl ftbl_cam_cc_fast_ahb_clk_src[] = {
784f9580bafSTaniya Das 	F(213333333, P_CAM_CC_PLL6_OUT_ODD, 1.5, 0, 0),
785f9580bafSTaniya Das 	F(300000000, P_CAM_CC_PLL0_OUT_EVEN, 2, 0, 0),
786f9580bafSTaniya Das 	F(400000000, P_CAM_CC_PLL0_OUT_MAIN, 3, 0, 0),
787f9580bafSTaniya Das 	{ }
788f9580bafSTaniya Das };
789f9580bafSTaniya Das 
790f9580bafSTaniya Das static struct clk_rcg2 cam_cc_fast_ahb_clk_src = {
791f9580bafSTaniya Das 	.cmd_rcgr = 0x100dc,
792f9580bafSTaniya Das 	.mnd_width = 0,
793f9580bafSTaniya Das 	.hid_width = 5,
794f9580bafSTaniya Das 	.parent_map = cam_cc_parent_map_0,
795f9580bafSTaniya Das 	.freq_tbl = ftbl_cam_cc_fast_ahb_clk_src,
796f9580bafSTaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
797f9580bafSTaniya Das 		.name = "cam_cc_fast_ahb_clk_src",
798f9580bafSTaniya Das 		.parent_data = cam_cc_parent_data_0,
799f9580bafSTaniya Das 		.num_parents = ARRAY_SIZE(cam_cc_parent_data_0),
800f9580bafSTaniya Das 		.flags = CLK_SET_RATE_PARENT,
801f9580bafSTaniya Das 		.ops = &clk_rcg2_shared_ops,
802f9580bafSTaniya Das 	},
803f9580bafSTaniya Das };
804f9580bafSTaniya Das 
805f9580bafSTaniya Das static const struct freq_tbl ftbl_cam_cc_icp_0_clk_src[] = {
806f9580bafSTaniya Das 	F(300000000, P_CAM_CC_PLL0_OUT_EVEN, 2, 0, 0),
807f9580bafSTaniya Das 	F(400000000, P_CAM_CC_PLL0_OUT_ODD, 1, 0, 0),
808f9580bafSTaniya Das 	F(480000000, P_CAM_CC_PLL6_OUT_EVEN, 1, 0, 0),
809f9580bafSTaniya Das 	F(600000000, P_CAM_CC_PLL0_OUT_MAIN, 2, 0, 0),
810f9580bafSTaniya Das 	{ }
811f9580bafSTaniya Das };
812f9580bafSTaniya Das 
813f9580bafSTaniya Das static struct clk_rcg2 cam_cc_icp_0_clk_src = {
814f9580bafSTaniya Das 	.cmd_rcgr = 0x11214,
815f9580bafSTaniya Das 	.mnd_width = 0,
816f9580bafSTaniya Das 	.hid_width = 5,
817f9580bafSTaniya Das 	.parent_map = cam_cc_parent_map_0,
818f9580bafSTaniya Das 	.freq_tbl = ftbl_cam_cc_icp_0_clk_src,
819f9580bafSTaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
820f9580bafSTaniya Das 		.name = "cam_cc_icp_0_clk_src",
821f9580bafSTaniya Das 		.parent_data = cam_cc_parent_data_0,
822f9580bafSTaniya Das 		.num_parents = ARRAY_SIZE(cam_cc_parent_data_0),
823f9580bafSTaniya Das 		.flags = CLK_SET_RATE_PARENT,
824f9580bafSTaniya Das 		.ops = &clk_rcg2_shared_ops,
825f9580bafSTaniya Das 	},
826f9580bafSTaniya Das };
827f9580bafSTaniya Das 
828f9580bafSTaniya Das static struct clk_rcg2 cam_cc_icp_1_clk_src = {
829f9580bafSTaniya Das 	.cmd_rcgr = 0x1123c,
830f9580bafSTaniya Das 	.mnd_width = 0,
831f9580bafSTaniya Das 	.hid_width = 5,
832f9580bafSTaniya Das 	.parent_map = cam_cc_parent_map_0,
833f9580bafSTaniya Das 	.freq_tbl = ftbl_cam_cc_icp_0_clk_src,
834f9580bafSTaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
835f9580bafSTaniya Das 		.name = "cam_cc_icp_1_clk_src",
836f9580bafSTaniya Das 		.parent_data = cam_cc_parent_data_0,
837f9580bafSTaniya Das 		.num_parents = ARRAY_SIZE(cam_cc_parent_data_0),
838f9580bafSTaniya Das 		.flags = CLK_SET_RATE_PARENT,
839f9580bafSTaniya Das 		.ops = &clk_rcg2_shared_ops,
840f9580bafSTaniya Das 	},
841f9580bafSTaniya Das };
842f9580bafSTaniya Das 
843f9580bafSTaniya Das static struct clk_rcg2 cam_cc_ife_lite_clk_src = {
844f9580bafSTaniya Das 	.cmd_rcgr = 0x11150,
845f9580bafSTaniya Das 	.mnd_width = 0,
846f9580bafSTaniya Das 	.hid_width = 5,
847f9580bafSTaniya Das 	.parent_map = cam_cc_parent_map_1,
848f9580bafSTaniya Das 	.freq_tbl = ftbl_cam_cc_cphy_rx_clk_src,
849f9580bafSTaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
850f9580bafSTaniya Das 		.name = "cam_cc_ife_lite_clk_src",
851f9580bafSTaniya Das 		.parent_data = cam_cc_parent_data_1,
852f9580bafSTaniya Das 		.num_parents = ARRAY_SIZE(cam_cc_parent_data_1),
853f9580bafSTaniya Das 		.flags = CLK_SET_RATE_PARENT,
854f9580bafSTaniya Das 		.ops = &clk_rcg2_shared_ops,
855f9580bafSTaniya Das 	},
856f9580bafSTaniya Das };
857f9580bafSTaniya Das 
858f9580bafSTaniya Das static struct clk_rcg2 cam_cc_ife_lite_csid_clk_src = {
859f9580bafSTaniya Das 	.cmd_rcgr = 0x1117c,
860f9580bafSTaniya Das 	.mnd_width = 0,
861f9580bafSTaniya Das 	.hid_width = 5,
862f9580bafSTaniya Das 	.parent_map = cam_cc_parent_map_1,
863f9580bafSTaniya Das 	.freq_tbl = ftbl_cam_cc_cphy_rx_clk_src,
864f9580bafSTaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
865f9580bafSTaniya Das 		.name = "cam_cc_ife_lite_csid_clk_src",
866f9580bafSTaniya Das 		.parent_data = cam_cc_parent_data_1,
867f9580bafSTaniya Das 		.num_parents = ARRAY_SIZE(cam_cc_parent_data_1),
868f9580bafSTaniya Das 		.flags = CLK_SET_RATE_PARENT,
869f9580bafSTaniya Das 		.ops = &clk_rcg2_shared_ops,
870f9580bafSTaniya Das 	},
871f9580bafSTaniya Das };
872f9580bafSTaniya Das 
873f9580bafSTaniya Das static const struct freq_tbl ftbl_cam_cc_ipe_nps_clk_src[] = {
874f9580bafSTaniya Das 	F(332500000, P_CAM_CC_PLL1_OUT_EVEN, 1, 0, 0),
875f9580bafSTaniya Das 	F(475000000, P_CAM_CC_PLL1_OUT_EVEN, 1, 0, 0),
876f9580bafSTaniya Das 	F(575000000, P_CAM_CC_PLL1_OUT_EVEN, 1, 0, 0),
877f9580bafSTaniya Das 	F(675000000, P_CAM_CC_PLL1_OUT_EVEN, 1, 0, 0),
878f9580bafSTaniya Das 	F(825000000, P_CAM_CC_PLL1_OUT_EVEN, 1, 0, 0),
879f9580bafSTaniya Das 	{ }
880f9580bafSTaniya Das };
881f9580bafSTaniya Das 
882f9580bafSTaniya Das static struct clk_rcg2 cam_cc_ipe_nps_clk_src = {
883f9580bafSTaniya Das 	.cmd_rcgr = 0x10190,
884f9580bafSTaniya Das 	.mnd_width = 0,
885f9580bafSTaniya Das 	.hid_width = 5,
886f9580bafSTaniya Das 	.parent_map = cam_cc_parent_map_2,
887f9580bafSTaniya Das 	.freq_tbl = ftbl_cam_cc_ipe_nps_clk_src,
888f9580bafSTaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
889f9580bafSTaniya Das 		.name = "cam_cc_ipe_nps_clk_src",
890f9580bafSTaniya Das 		.parent_data = cam_cc_parent_data_2,
891f9580bafSTaniya Das 		.num_parents = ARRAY_SIZE(cam_cc_parent_data_2),
892f9580bafSTaniya Das 		.flags = CLK_SET_RATE_PARENT,
893f9580bafSTaniya Das 		.ops = &clk_rcg2_shared_ops,
894f9580bafSTaniya Das 	},
895f9580bafSTaniya Das };
896f9580bafSTaniya Das 
897f9580bafSTaniya Das static struct clk_rcg2 cam_cc_jpeg_clk_src = {
898f9580bafSTaniya Das 	.cmd_rcgr = 0x111d0,
899f9580bafSTaniya Das 	.mnd_width = 0,
900f9580bafSTaniya Das 	.hid_width = 5,
901f9580bafSTaniya Das 	.parent_map = cam_cc_parent_map_0,
902f9580bafSTaniya Das 	.freq_tbl = ftbl_cam_cc_cre_clk_src,
903f9580bafSTaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
904f9580bafSTaniya Das 		.name = "cam_cc_jpeg_clk_src",
905f9580bafSTaniya Das 		.parent_data = cam_cc_parent_data_0,
906f9580bafSTaniya Das 		.num_parents = ARRAY_SIZE(cam_cc_parent_data_0),
907f9580bafSTaniya Das 		.flags = CLK_SET_RATE_PARENT,
908f9580bafSTaniya Das 		.ops = &clk_rcg2_shared_ops,
909f9580bafSTaniya Das 	},
910f9580bafSTaniya Das };
911f9580bafSTaniya Das 
912f9580bafSTaniya Das static const struct freq_tbl ftbl_cam_cc_ofe_clk_src[] = {
913f9580bafSTaniya Das 	F(338800000, P_CAM_CC_PLL2_OUT_EVEN, 1, 0, 0),
914f9580bafSTaniya Das 	F(484000000, P_CAM_CC_PLL2_OUT_EVEN, 1, 0, 0),
915f9580bafSTaniya Das 	F(586000000, P_CAM_CC_PLL2_OUT_EVEN, 1, 0, 0),
916f9580bafSTaniya Das 	F(688000000, P_CAM_CC_PLL2_OUT_EVEN, 1, 0, 0),
917f9580bafSTaniya Das 	F(841000000, P_CAM_CC_PLL2_OUT_EVEN, 1, 0, 0),
918f9580bafSTaniya Das 	{ }
919f9580bafSTaniya Das };
920f9580bafSTaniya Das 
921f9580bafSTaniya Das static struct clk_rcg2 cam_cc_ofe_clk_src = {
922f9580bafSTaniya Das 	.cmd_rcgr = 0x1011c,
923f9580bafSTaniya Das 	.mnd_width = 0,
924f9580bafSTaniya Das 	.hid_width = 5,
925f9580bafSTaniya Das 	.parent_map = cam_cc_parent_map_3,
926f9580bafSTaniya Das 	.freq_tbl = ftbl_cam_cc_ofe_clk_src,
927f9580bafSTaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
928f9580bafSTaniya Das 		.name = "cam_cc_ofe_clk_src",
929f9580bafSTaniya Das 		.parent_data = cam_cc_parent_data_3,
930f9580bafSTaniya Das 		.num_parents = ARRAY_SIZE(cam_cc_parent_data_3),
931f9580bafSTaniya Das 		.flags = CLK_SET_RATE_PARENT,
932f9580bafSTaniya Das 		.ops = &clk_rcg2_shared_ops,
933f9580bafSTaniya Das 	},
934f9580bafSTaniya Das };
935f9580bafSTaniya Das 
936f9580bafSTaniya Das static const struct freq_tbl ftbl_cam_cc_qdss_debug_clk_src[] = {
937f9580bafSTaniya Das 	F(40000000, P_CAM_CC_PLL6_OUT_ODD, 8, 0, 0),
938f9580bafSTaniya Das 	F(60000000, P_CAM_CC_PLL6_OUT_EVEN, 8, 0, 0),
939f9580bafSTaniya Das 	F(120000000, P_CAM_CC_PLL0_OUT_EVEN, 5, 0, 0),
940f9580bafSTaniya Das 	F(240000000, P_CAM_CC_PLL0_OUT_MAIN, 5, 0, 0),
941f9580bafSTaniya Das 	{ }
942f9580bafSTaniya Das };
943f9580bafSTaniya Das 
944f9580bafSTaniya Das static struct clk_rcg2 cam_cc_qdss_debug_clk_src = {
945f9580bafSTaniya Das 	.cmd_rcgr = 0x1132c,
946f9580bafSTaniya Das 	.mnd_width = 0,
947f9580bafSTaniya Das 	.hid_width = 5,
948f9580bafSTaniya Das 	.parent_map = cam_cc_parent_map_0,
949f9580bafSTaniya Das 	.freq_tbl = ftbl_cam_cc_qdss_debug_clk_src,
950f9580bafSTaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
951f9580bafSTaniya Das 		.name = "cam_cc_qdss_debug_clk_src",
952f9580bafSTaniya Das 		.parent_data = cam_cc_parent_data_0,
953f9580bafSTaniya Das 		.num_parents = ARRAY_SIZE(cam_cc_parent_data_0),
954f9580bafSTaniya Das 		.flags = CLK_SET_RATE_PARENT,
955f9580bafSTaniya Das 		.ops = &clk_rcg2_shared_ops,
956f9580bafSTaniya Das 	},
957f9580bafSTaniya Das };
958f9580bafSTaniya Das 
959f9580bafSTaniya Das static const struct freq_tbl ftbl_cam_cc_sleep_clk_src[] = {
960f9580bafSTaniya Das 	F(32000, P_SLEEP_CLK, 1, 0, 0),
961f9580bafSTaniya Das 	{ }
962f9580bafSTaniya Das };
963f9580bafSTaniya Das 
964f9580bafSTaniya Das static struct clk_rcg2 cam_cc_sleep_clk_src = {
965f9580bafSTaniya Das 	.cmd_rcgr = 0x11380,
966f9580bafSTaniya Das 	.mnd_width = 0,
967f9580bafSTaniya Das 	.hid_width = 5,
968f9580bafSTaniya Das 	.parent_map = cam_cc_parent_map_4,
969f9580bafSTaniya Das 	.freq_tbl = ftbl_cam_cc_sleep_clk_src,
970f9580bafSTaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
971f9580bafSTaniya Das 		.name = "cam_cc_sleep_clk_src",
972f9580bafSTaniya Das 		.parent_data = cam_cc_parent_data_4,
973f9580bafSTaniya Das 		.num_parents = ARRAY_SIZE(cam_cc_parent_data_4),
974f9580bafSTaniya Das 		.flags = CLK_SET_RATE_PARENT,
975f9580bafSTaniya Das 		.ops = &clk_rcg2_shared_ops,
976f9580bafSTaniya Das 	},
977f9580bafSTaniya Das };
978f9580bafSTaniya Das 
979f9580bafSTaniya Das static const struct freq_tbl ftbl_cam_cc_slow_ahb_clk_src[] = {
980f9580bafSTaniya Das 	F(56470588, P_CAM_CC_PLL6_OUT_EVEN, 8.5, 0, 0),
981f9580bafSTaniya Das 	F(80000000, P_CAM_CC_PLL0_OUT_EVEN, 7.5, 0, 0),
982f9580bafSTaniya Das 	{ }
983f9580bafSTaniya Das };
984f9580bafSTaniya Das 
985f9580bafSTaniya Das static struct clk_rcg2 cam_cc_slow_ahb_clk_src = {
986f9580bafSTaniya Das 	.cmd_rcgr = 0x10100,
987f9580bafSTaniya Das 	.mnd_width = 0,
988f9580bafSTaniya Das 	.hid_width = 5,
989f9580bafSTaniya Das 	.parent_map = cam_cc_parent_map_0,
990f9580bafSTaniya Das 	.freq_tbl = ftbl_cam_cc_slow_ahb_clk_src,
991f9580bafSTaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
992f9580bafSTaniya Das 		.name = "cam_cc_slow_ahb_clk_src",
993f9580bafSTaniya Das 		.parent_data = cam_cc_parent_data_0,
994f9580bafSTaniya Das 		.num_parents = ARRAY_SIZE(cam_cc_parent_data_0),
995f9580bafSTaniya Das 		.flags = CLK_SET_RATE_PARENT,
996f9580bafSTaniya Das 		.ops = &clk_rcg2_shared_ops,
997f9580bafSTaniya Das 	},
998f9580bafSTaniya Das };
999f9580bafSTaniya Das 
1000f9580bafSTaniya Das static const struct freq_tbl ftbl_cam_cc_tfe_0_clk_src[] = {
1001f9580bafSTaniya Das 	F(360280000, P_CAM_CC_PLL3_OUT_EVEN, 1, 0, 0),
1002f9580bafSTaniya Das 	F(480000000, P_CAM_CC_PLL3_OUT_EVEN, 1, 0, 0),
1003f9580bafSTaniya Das 	F(630000000, P_CAM_CC_PLL3_OUT_EVEN, 1, 0, 0),
1004f9580bafSTaniya Das 	F(716000000, P_CAM_CC_PLL3_OUT_EVEN, 1, 0, 0),
1005f9580bafSTaniya Das 	F(833000000, P_CAM_CC_PLL3_OUT_EVEN, 1, 0, 0),
1006f9580bafSTaniya Das 	{ }
1007f9580bafSTaniya Das };
1008f9580bafSTaniya Das 
1009f9580bafSTaniya Das static struct clk_rcg2 cam_cc_tfe_0_clk_src = {
1010f9580bafSTaniya Das 	.cmd_rcgr = 0x11018,
1011f9580bafSTaniya Das 	.mnd_width = 0,
1012f9580bafSTaniya Das 	.hid_width = 5,
1013f9580bafSTaniya Das 	.parent_map = cam_cc_parent_map_5,
1014f9580bafSTaniya Das 	.freq_tbl = ftbl_cam_cc_tfe_0_clk_src,
1015f9580bafSTaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
1016f9580bafSTaniya Das 		.name = "cam_cc_tfe_0_clk_src",
1017f9580bafSTaniya Das 		.parent_data = cam_cc_parent_data_5,
1018f9580bafSTaniya Das 		.num_parents = ARRAY_SIZE(cam_cc_parent_data_5),
1019f9580bafSTaniya Das 		.flags = CLK_SET_RATE_PARENT,
1020f9580bafSTaniya Das 		.ops = &clk_rcg2_shared_ops,
1021f9580bafSTaniya Das 	},
1022f9580bafSTaniya Das };
1023f9580bafSTaniya Das 
1024f9580bafSTaniya Das static const struct freq_tbl ftbl_cam_cc_tfe_1_clk_src[] = {
1025f9580bafSTaniya Das 	F(360280000, P_CAM_CC_PLL4_OUT_EVEN, 1, 0, 0),
1026f9580bafSTaniya Das 	F(480000000, P_CAM_CC_PLL4_OUT_EVEN, 1, 0, 0),
1027f9580bafSTaniya Das 	F(630000000, P_CAM_CC_PLL4_OUT_EVEN, 1, 0, 0),
1028f9580bafSTaniya Das 	F(716000000, P_CAM_CC_PLL4_OUT_EVEN, 1, 0, 0),
1029f9580bafSTaniya Das 	F(833000000, P_CAM_CC_PLL4_OUT_EVEN, 1, 0, 0),
1030f9580bafSTaniya Das 	{ }
1031f9580bafSTaniya Das };
1032f9580bafSTaniya Das 
1033f9580bafSTaniya Das static struct clk_rcg2 cam_cc_tfe_1_clk_src = {
1034f9580bafSTaniya Das 	.cmd_rcgr = 0x11098,
1035f9580bafSTaniya Das 	.mnd_width = 0,
1036f9580bafSTaniya Das 	.hid_width = 5,
1037f9580bafSTaniya Das 	.parent_map = cam_cc_parent_map_6,
1038f9580bafSTaniya Das 	.freq_tbl = ftbl_cam_cc_tfe_1_clk_src,
1039f9580bafSTaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
1040f9580bafSTaniya Das 		.name = "cam_cc_tfe_1_clk_src",
1041f9580bafSTaniya Das 		.parent_data = cam_cc_parent_data_6,
1042f9580bafSTaniya Das 		.num_parents = ARRAY_SIZE(cam_cc_parent_data_6),
1043f9580bafSTaniya Das 		.flags = CLK_SET_RATE_PARENT,
1044f9580bafSTaniya Das 		.ops = &clk_rcg2_shared_ops,
1045f9580bafSTaniya Das 	},
1046f9580bafSTaniya Das };
1047f9580bafSTaniya Das 
1048f9580bafSTaniya Das static const struct freq_tbl ftbl_cam_cc_tfe_2_clk_src[] = {
1049f9580bafSTaniya Das 	F(360280000, P_CAM_CC_PLL5_OUT_EVEN, 1, 0, 0),
1050f9580bafSTaniya Das 	F(480000000, P_CAM_CC_PLL5_OUT_EVEN, 1, 0, 0),
1051f9580bafSTaniya Das 	F(630000000, P_CAM_CC_PLL5_OUT_EVEN, 1, 0, 0),
1052f9580bafSTaniya Das 	F(716000000, P_CAM_CC_PLL5_OUT_EVEN, 1, 0, 0),
1053f9580bafSTaniya Das 	F(833000000, P_CAM_CC_PLL5_OUT_EVEN, 1, 0, 0),
1054f9580bafSTaniya Das 	{ }
1055f9580bafSTaniya Das };
1056f9580bafSTaniya Das 
1057f9580bafSTaniya Das static struct clk_rcg2 cam_cc_tfe_2_clk_src = {
1058f9580bafSTaniya Das 	.cmd_rcgr = 0x11100,
1059f9580bafSTaniya Das 	.mnd_width = 0,
1060f9580bafSTaniya Das 	.hid_width = 5,
1061f9580bafSTaniya Das 	.parent_map = cam_cc_parent_map_7,
1062f9580bafSTaniya Das 	.freq_tbl = ftbl_cam_cc_tfe_2_clk_src,
1063f9580bafSTaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
1064f9580bafSTaniya Das 		.name = "cam_cc_tfe_2_clk_src",
1065f9580bafSTaniya Das 		.parent_data = cam_cc_parent_data_7,
1066f9580bafSTaniya Das 		.num_parents = ARRAY_SIZE(cam_cc_parent_data_7),
1067f9580bafSTaniya Das 		.flags = CLK_SET_RATE_PARENT,
1068f9580bafSTaniya Das 		.ops = &clk_rcg2_shared_ops,
1069f9580bafSTaniya Das 	},
1070f9580bafSTaniya Das };
1071f9580bafSTaniya Das 
1072f9580bafSTaniya Das static const struct freq_tbl ftbl_cam_cc_xo_clk_src[] = {
1073f9580bafSTaniya Das 	F(19200000, P_BI_TCXO_AO, 1, 0, 0),
1074f9580bafSTaniya Das 	{ }
1075f9580bafSTaniya Das };
1076f9580bafSTaniya Das 
1077f9580bafSTaniya Das static struct clk_rcg2 cam_cc_xo_clk_src = {
1078f9580bafSTaniya Das 	.cmd_rcgr = 0x11364,
1079f9580bafSTaniya Das 	.mnd_width = 0,
1080f9580bafSTaniya Das 	.hid_width = 5,
1081f9580bafSTaniya Das 	.parent_map = cam_cc_parent_map_8_ao,
1082f9580bafSTaniya Das 	.freq_tbl = ftbl_cam_cc_xo_clk_src,
1083f9580bafSTaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
1084f9580bafSTaniya Das 		.name = "cam_cc_xo_clk_src",
1085f9580bafSTaniya Das 		.parent_data = cam_cc_parent_data_8_ao,
1086f9580bafSTaniya Das 		.num_parents = ARRAY_SIZE(cam_cc_parent_data_8_ao),
1087f9580bafSTaniya Das 		.flags = CLK_SET_RATE_PARENT,
1088f9580bafSTaniya Das 		.ops = &clk_rcg2_shared_ops,
1089f9580bafSTaniya Das 	},
1090f9580bafSTaniya Das };
1091f9580bafSTaniya Das 
1092f9580bafSTaniya Das static struct clk_branch cam_cc_cam_top_ahb_clk = {
1093f9580bafSTaniya Das 	.halt_reg = 0x113ac,
1094f9580bafSTaniya Das 	.halt_check = BRANCH_HALT,
1095f9580bafSTaniya Das 	.clkr = {
1096f9580bafSTaniya Das 		.enable_reg = 0x113ac,
1097f9580bafSTaniya Das 		.enable_mask = BIT(0),
1098f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1099f9580bafSTaniya Das 			.name = "cam_cc_cam_top_ahb_clk",
1100f9580bafSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1101f9580bafSTaniya Das 				&cam_cc_slow_ahb_clk_src.clkr.hw,
1102f9580bafSTaniya Das 			},
1103f9580bafSTaniya Das 			.num_parents = 1,
1104f9580bafSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
1105f9580bafSTaniya Das 			.ops = &clk_branch2_ops,
1106f9580bafSTaniya Das 		},
1107f9580bafSTaniya Das 	},
1108f9580bafSTaniya Das };
1109f9580bafSTaniya Das 
1110f9580bafSTaniya Das static struct clk_branch cam_cc_cam_top_fast_ahb_clk = {
1111f9580bafSTaniya Das 	.halt_reg = 0x1139c,
1112f9580bafSTaniya Das 	.halt_check = BRANCH_HALT,
1113f9580bafSTaniya Das 	.clkr = {
1114f9580bafSTaniya Das 		.enable_reg = 0x1139c,
1115f9580bafSTaniya Das 		.enable_mask = BIT(0),
1116f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1117f9580bafSTaniya Das 			.name = "cam_cc_cam_top_fast_ahb_clk",
1118f9580bafSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1119f9580bafSTaniya Das 				&cam_cc_fast_ahb_clk_src.clkr.hw,
1120f9580bafSTaniya Das 			},
1121f9580bafSTaniya Das 			.num_parents = 1,
1122f9580bafSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
1123f9580bafSTaniya Das 			.ops = &clk_branch2_ops,
1124f9580bafSTaniya Das 		},
1125f9580bafSTaniya Das 	},
1126f9580bafSTaniya Das };
1127f9580bafSTaniya Das 
1128f9580bafSTaniya Das static struct clk_branch cam_cc_camnoc_dcd_xo_clk = {
1129f9580bafSTaniya Das 	.halt_reg = 0x11320,
1130f9580bafSTaniya Das 	.halt_check = BRANCH_HALT,
1131f9580bafSTaniya Das 	.clkr = {
1132f9580bafSTaniya Das 		.enable_reg = 0x11320,
1133f9580bafSTaniya Das 		.enable_mask = BIT(0),
1134f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1135f9580bafSTaniya Das 			.name = "cam_cc_camnoc_dcd_xo_clk",
1136f9580bafSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1137f9580bafSTaniya Das 				&cam_cc_xo_clk_src.clkr.hw,
1138f9580bafSTaniya Das 			},
1139f9580bafSTaniya Das 			.num_parents = 1,
1140f9580bafSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
1141f9580bafSTaniya Das 			.ops = &clk_branch2_ops,
1142f9580bafSTaniya Das 		},
1143f9580bafSTaniya Das 	},
1144f9580bafSTaniya Das };
1145f9580bafSTaniya Das 
1146f9580bafSTaniya Das static struct clk_branch cam_cc_camnoc_nrt_axi_clk = {
1147f9580bafSTaniya Das 	.halt_reg = 0x11310,
1148f9580bafSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1149f9580bafSTaniya Das 	.hwcg_reg = 0x11310,
1150f9580bafSTaniya Das 	.hwcg_bit = 1,
1151f9580bafSTaniya Das 	.clkr = {
1152f9580bafSTaniya Das 		.enable_reg = 0x11310,
1153f9580bafSTaniya Das 		.enable_mask = BIT(0),
1154f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1155f9580bafSTaniya Das 			.name = "cam_cc_camnoc_nrt_axi_clk",
1156f9580bafSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1157f9580bafSTaniya Das 				&cam_cc_camnoc_rt_axi_clk_src.clkr.hw,
1158f9580bafSTaniya Das 			},
1159f9580bafSTaniya Das 			.num_parents = 1,
1160f9580bafSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
1161f9580bafSTaniya Das 			.ops = &clk_branch2_ops,
1162f9580bafSTaniya Das 		},
1163f9580bafSTaniya Das 	},
1164f9580bafSTaniya Das };
1165f9580bafSTaniya Das 
1166f9580bafSTaniya Das static struct clk_branch cam_cc_camnoc_nrt_cre_clk = {
1167f9580bafSTaniya Das 	.halt_reg = 0x111c8,
1168f9580bafSTaniya Das 	.halt_check = BRANCH_HALT,
1169f9580bafSTaniya Das 	.clkr = {
1170f9580bafSTaniya Das 		.enable_reg = 0x111c8,
1171f9580bafSTaniya Das 		.enable_mask = BIT(0),
1172f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1173f9580bafSTaniya Das 			.name = "cam_cc_camnoc_nrt_cre_clk",
1174f9580bafSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1175f9580bafSTaniya Das 				&cam_cc_cre_clk_src.clkr.hw,
1176f9580bafSTaniya Das 			},
1177f9580bafSTaniya Das 			.num_parents = 1,
1178f9580bafSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
1179f9580bafSTaniya Das 			.ops = &clk_branch2_ops,
1180f9580bafSTaniya Das 		},
1181f9580bafSTaniya Das 	},
1182f9580bafSTaniya Das };
1183f9580bafSTaniya Das 
1184f9580bafSTaniya Das static struct clk_branch cam_cc_camnoc_nrt_ipe_nps_clk = {
1185f9580bafSTaniya Das 	.halt_reg = 0x101b8,
1186f9580bafSTaniya Das 	.halt_check = BRANCH_HALT,
1187f9580bafSTaniya Das 	.clkr = {
1188f9580bafSTaniya Das 		.enable_reg = 0x101b8,
1189f9580bafSTaniya Das 		.enable_mask = BIT(0),
1190f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1191f9580bafSTaniya Das 			.name = "cam_cc_camnoc_nrt_ipe_nps_clk",
1192f9580bafSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1193f9580bafSTaniya Das 				&cam_cc_ipe_nps_clk_src.clkr.hw,
1194f9580bafSTaniya Das 			},
1195f9580bafSTaniya Das 			.num_parents = 1,
1196f9580bafSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
1197f9580bafSTaniya Das 			.ops = &clk_branch2_ops,
1198f9580bafSTaniya Das 		},
1199f9580bafSTaniya Das 	},
1200f9580bafSTaniya Das };
1201f9580bafSTaniya Das 
1202f9580bafSTaniya Das static struct clk_branch cam_cc_camnoc_nrt_ofe_anchor_clk = {
1203f9580bafSTaniya Das 	.halt_reg = 0x10158,
1204f9580bafSTaniya Das 	.halt_check = BRANCH_HALT,
1205f9580bafSTaniya Das 	.clkr = {
1206f9580bafSTaniya Das 		.enable_reg = 0x10158,
1207f9580bafSTaniya Das 		.enable_mask = BIT(0),
1208f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1209f9580bafSTaniya Das 			.name = "cam_cc_camnoc_nrt_ofe_anchor_clk",
1210f9580bafSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1211f9580bafSTaniya Das 				&cam_cc_ofe_clk_src.clkr.hw,
1212f9580bafSTaniya Das 			},
1213f9580bafSTaniya Das 			.num_parents = 1,
1214f9580bafSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
1215f9580bafSTaniya Das 			.ops = &clk_branch2_ops,
1216f9580bafSTaniya Das 		},
1217f9580bafSTaniya Das 	},
1218f9580bafSTaniya Das };
1219f9580bafSTaniya Das 
1220f9580bafSTaniya Das static struct clk_branch cam_cc_camnoc_nrt_ofe_hdr_clk = {
1221f9580bafSTaniya Das 	.halt_reg = 0x1016c,
1222f9580bafSTaniya Das 	.halt_check = BRANCH_HALT,
1223f9580bafSTaniya Das 	.clkr = {
1224f9580bafSTaniya Das 		.enable_reg = 0x1016c,
1225f9580bafSTaniya Das 		.enable_mask = BIT(0),
1226f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1227f9580bafSTaniya Das 			.name = "cam_cc_camnoc_nrt_ofe_hdr_clk",
1228f9580bafSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1229f9580bafSTaniya Das 				&cam_cc_ofe_clk_src.clkr.hw,
1230f9580bafSTaniya Das 			},
1231f9580bafSTaniya Das 			.num_parents = 1,
1232f9580bafSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
1233f9580bafSTaniya Das 			.ops = &clk_branch2_ops,
1234f9580bafSTaniya Das 		},
1235f9580bafSTaniya Das 	},
1236f9580bafSTaniya Das };
1237f9580bafSTaniya Das 
1238f9580bafSTaniya Das static struct clk_branch cam_cc_camnoc_nrt_ofe_main_clk = {
1239f9580bafSTaniya Das 	.halt_reg = 0x10144,
1240f9580bafSTaniya Das 	.halt_check = BRANCH_HALT,
1241f9580bafSTaniya Das 	.clkr = {
1242f9580bafSTaniya Das 		.enable_reg = 0x10144,
1243f9580bafSTaniya Das 		.enable_mask = BIT(0),
1244f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1245f9580bafSTaniya Das 			.name = "cam_cc_camnoc_nrt_ofe_main_clk",
1246f9580bafSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1247f9580bafSTaniya Das 				&cam_cc_ofe_clk_src.clkr.hw,
1248f9580bafSTaniya Das 			},
1249f9580bafSTaniya Das 			.num_parents = 1,
1250f9580bafSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
1251f9580bafSTaniya Das 			.ops = &clk_branch2_ops,
1252f9580bafSTaniya Das 		},
1253f9580bafSTaniya Das 	},
1254f9580bafSTaniya Das };
1255f9580bafSTaniya Das 
1256f9580bafSTaniya Das static struct clk_branch cam_cc_camnoc_rt_axi_clk = {
1257f9580bafSTaniya Das 	.halt_reg = 0x11300,
1258f9580bafSTaniya Das 	.halt_check = BRANCH_HALT,
1259f9580bafSTaniya Das 	.clkr = {
1260f9580bafSTaniya Das 		.enable_reg = 0x11300,
1261f9580bafSTaniya Das 		.enable_mask = BIT(0),
1262f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1263f9580bafSTaniya Das 			.name = "cam_cc_camnoc_rt_axi_clk",
1264f9580bafSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1265f9580bafSTaniya Das 				&cam_cc_camnoc_rt_axi_clk_src.clkr.hw,
1266f9580bafSTaniya Das 			},
1267f9580bafSTaniya Das 			.num_parents = 1,
1268f9580bafSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
1269f9580bafSTaniya Das 			.ops = &clk_branch2_ops,
1270f9580bafSTaniya Das 		},
1271f9580bafSTaniya Das 	},
1272f9580bafSTaniya Das };
1273f9580bafSTaniya Das 
1274f9580bafSTaniya Das static struct clk_branch cam_cc_camnoc_rt_ife_lite_clk = {
1275f9580bafSTaniya Das 	.halt_reg = 0x11178,
1276f9580bafSTaniya Das 	.halt_check = BRANCH_HALT,
1277f9580bafSTaniya Das 	.clkr = {
1278f9580bafSTaniya Das 		.enable_reg = 0x11178,
1279f9580bafSTaniya Das 		.enable_mask = BIT(0),
1280f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1281f9580bafSTaniya Das 			.name = "cam_cc_camnoc_rt_ife_lite_clk",
1282f9580bafSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1283f9580bafSTaniya Das 				&cam_cc_ife_lite_clk_src.clkr.hw,
1284f9580bafSTaniya Das 			},
1285f9580bafSTaniya Das 			.num_parents = 1,
1286f9580bafSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
1287f9580bafSTaniya Das 			.ops = &clk_branch2_ops,
1288f9580bafSTaniya Das 		},
1289f9580bafSTaniya Das 	},
1290f9580bafSTaniya Das };
1291f9580bafSTaniya Das 
1292f9580bafSTaniya Das static struct clk_branch cam_cc_camnoc_rt_tfe_0_bayer_clk = {
1293f9580bafSTaniya Das 	.halt_reg = 0x11054,
1294f9580bafSTaniya Das 	.halt_check = BRANCH_HALT,
1295f9580bafSTaniya Das 	.clkr = {
1296f9580bafSTaniya Das 		.enable_reg = 0x11054,
1297f9580bafSTaniya Das 		.enable_mask = BIT(0),
1298f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1299f9580bafSTaniya Das 			.name = "cam_cc_camnoc_rt_tfe_0_bayer_clk",
1300f9580bafSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1301f9580bafSTaniya Das 				&cam_cc_tfe_0_clk_src.clkr.hw,
1302f9580bafSTaniya Das 			},
1303f9580bafSTaniya Das 			.num_parents = 1,
1304f9580bafSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
1305f9580bafSTaniya Das 			.ops = &clk_branch2_ops,
1306f9580bafSTaniya Das 		},
1307f9580bafSTaniya Das 	},
1308f9580bafSTaniya Das };
1309f9580bafSTaniya Das 
1310f9580bafSTaniya Das static struct clk_branch cam_cc_camnoc_rt_tfe_0_main_clk = {
1311f9580bafSTaniya Das 	.halt_reg = 0x11040,
1312f9580bafSTaniya Das 	.halt_check = BRANCH_HALT,
1313f9580bafSTaniya Das 	.clkr = {
1314f9580bafSTaniya Das 		.enable_reg = 0x11040,
1315f9580bafSTaniya Das 		.enable_mask = BIT(0),
1316f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1317f9580bafSTaniya Das 			.name = "cam_cc_camnoc_rt_tfe_0_main_clk",
1318f9580bafSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1319f9580bafSTaniya Das 				&cam_cc_tfe_0_clk_src.clkr.hw,
1320f9580bafSTaniya Das 			},
1321f9580bafSTaniya Das 			.num_parents = 1,
1322f9580bafSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
1323f9580bafSTaniya Das 			.ops = &clk_branch2_ops,
1324f9580bafSTaniya Das 		},
1325f9580bafSTaniya Das 	},
1326f9580bafSTaniya Das };
1327f9580bafSTaniya Das 
1328f9580bafSTaniya Das static struct clk_branch cam_cc_camnoc_rt_tfe_1_bayer_clk = {
1329f9580bafSTaniya Das 	.halt_reg = 0x110d4,
1330f9580bafSTaniya Das 	.halt_check = BRANCH_HALT,
1331f9580bafSTaniya Das 	.clkr = {
1332f9580bafSTaniya Das 		.enable_reg = 0x110d4,
1333f9580bafSTaniya Das 		.enable_mask = BIT(0),
1334f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1335f9580bafSTaniya Das 			.name = "cam_cc_camnoc_rt_tfe_1_bayer_clk",
1336f9580bafSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1337f9580bafSTaniya Das 				&cam_cc_tfe_1_clk_src.clkr.hw,
1338f9580bafSTaniya Das 			},
1339f9580bafSTaniya Das 			.num_parents = 1,
1340f9580bafSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
1341f9580bafSTaniya Das 			.ops = &clk_branch2_ops,
1342f9580bafSTaniya Das 		},
1343f9580bafSTaniya Das 	},
1344f9580bafSTaniya Das };
1345f9580bafSTaniya Das 
1346f9580bafSTaniya Das static struct clk_branch cam_cc_camnoc_rt_tfe_1_main_clk = {
1347f9580bafSTaniya Das 	.halt_reg = 0x110c0,
1348f9580bafSTaniya Das 	.halt_check = BRANCH_HALT,
1349f9580bafSTaniya Das 	.clkr = {
1350f9580bafSTaniya Das 		.enable_reg = 0x110c0,
1351f9580bafSTaniya Das 		.enable_mask = BIT(0),
1352f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1353f9580bafSTaniya Das 			.name = "cam_cc_camnoc_rt_tfe_1_main_clk",
1354f9580bafSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1355f9580bafSTaniya Das 				&cam_cc_tfe_1_clk_src.clkr.hw,
1356f9580bafSTaniya Das 			},
1357f9580bafSTaniya Das 			.num_parents = 1,
1358f9580bafSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
1359f9580bafSTaniya Das 			.ops = &clk_branch2_ops,
1360f9580bafSTaniya Das 		},
1361f9580bafSTaniya Das 	},
1362f9580bafSTaniya Das };
1363f9580bafSTaniya Das 
1364f9580bafSTaniya Das static struct clk_branch cam_cc_camnoc_rt_tfe_2_bayer_clk = {
1365f9580bafSTaniya Das 	.halt_reg = 0x1113c,
1366f9580bafSTaniya Das 	.halt_check = BRANCH_HALT,
1367f9580bafSTaniya Das 	.clkr = {
1368f9580bafSTaniya Das 		.enable_reg = 0x1113c,
1369f9580bafSTaniya Das 		.enable_mask = BIT(0),
1370f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1371f9580bafSTaniya Das 			.name = "cam_cc_camnoc_rt_tfe_2_bayer_clk",
1372f9580bafSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1373f9580bafSTaniya Das 				&cam_cc_tfe_2_clk_src.clkr.hw,
1374f9580bafSTaniya Das 			},
1375f9580bafSTaniya Das 			.num_parents = 1,
1376f9580bafSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
1377f9580bafSTaniya Das 			.ops = &clk_branch2_ops,
1378f9580bafSTaniya Das 		},
1379f9580bafSTaniya Das 	},
1380f9580bafSTaniya Das };
1381f9580bafSTaniya Das 
1382f9580bafSTaniya Das static struct clk_branch cam_cc_camnoc_rt_tfe_2_main_clk = {
1383f9580bafSTaniya Das 	.halt_reg = 0x11128,
1384f9580bafSTaniya Das 	.halt_check = BRANCH_HALT,
1385f9580bafSTaniya Das 	.clkr = {
1386f9580bafSTaniya Das 		.enable_reg = 0x11128,
1387f9580bafSTaniya Das 		.enable_mask = BIT(0),
1388f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1389f9580bafSTaniya Das 			.name = "cam_cc_camnoc_rt_tfe_2_main_clk",
1390f9580bafSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1391f9580bafSTaniya Das 				&cam_cc_tfe_2_clk_src.clkr.hw,
1392f9580bafSTaniya Das 			},
1393f9580bafSTaniya Das 			.num_parents = 1,
1394f9580bafSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
1395f9580bafSTaniya Das 			.ops = &clk_branch2_ops,
1396f9580bafSTaniya Das 		},
1397f9580bafSTaniya Das 	},
1398f9580bafSTaniya Das };
1399f9580bafSTaniya Das 
1400f9580bafSTaniya Das static struct clk_branch cam_cc_camnoc_xo_clk = {
1401f9580bafSTaniya Das 	.halt_reg = 0x11324,
1402f9580bafSTaniya Das 	.halt_check = BRANCH_HALT,
1403f9580bafSTaniya Das 	.clkr = {
1404f9580bafSTaniya Das 		.enable_reg = 0x11324,
1405f9580bafSTaniya Das 		.enable_mask = BIT(0),
1406f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1407f9580bafSTaniya Das 			.name = "cam_cc_camnoc_xo_clk",
1408f9580bafSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1409f9580bafSTaniya Das 				&cam_cc_xo_clk_src.clkr.hw,
1410f9580bafSTaniya Das 			},
1411f9580bafSTaniya Das 			.num_parents = 1,
1412f9580bafSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
1413f9580bafSTaniya Das 			.ops = &clk_branch2_ops,
1414f9580bafSTaniya Das 		},
1415f9580bafSTaniya Das 	},
1416f9580bafSTaniya Das };
1417f9580bafSTaniya Das 
1418f9580bafSTaniya Das static struct clk_branch cam_cc_cci_0_clk = {
1419f9580bafSTaniya Das 	.halt_reg = 0x11284,
1420f9580bafSTaniya Das 	.halt_check = BRANCH_HALT,
1421f9580bafSTaniya Das 	.clkr = {
1422f9580bafSTaniya Das 		.enable_reg = 0x11284,
1423f9580bafSTaniya Das 		.enable_mask = BIT(0),
1424f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1425f9580bafSTaniya Das 			.name = "cam_cc_cci_0_clk",
1426f9580bafSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1427f9580bafSTaniya Das 				&cam_cc_cci_0_clk_src.clkr.hw,
1428f9580bafSTaniya Das 			},
1429f9580bafSTaniya Das 			.num_parents = 1,
1430f9580bafSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
1431f9580bafSTaniya Das 			.ops = &clk_branch2_ops,
1432f9580bafSTaniya Das 		},
1433f9580bafSTaniya Das 	},
1434f9580bafSTaniya Das };
1435f9580bafSTaniya Das 
1436f9580bafSTaniya Das static struct clk_branch cam_cc_cci_1_clk = {
1437f9580bafSTaniya Das 	.halt_reg = 0x112a0,
1438f9580bafSTaniya Das 	.halt_check = BRANCH_HALT,
1439f9580bafSTaniya Das 	.clkr = {
1440f9580bafSTaniya Das 		.enable_reg = 0x112a0,
1441f9580bafSTaniya Das 		.enable_mask = BIT(0),
1442f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1443f9580bafSTaniya Das 			.name = "cam_cc_cci_1_clk",
1444f9580bafSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1445f9580bafSTaniya Das 				&cam_cc_cci_1_clk_src.clkr.hw,
1446f9580bafSTaniya Das 			},
1447f9580bafSTaniya Das 			.num_parents = 1,
1448f9580bafSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
1449f9580bafSTaniya Das 			.ops = &clk_branch2_ops,
1450f9580bafSTaniya Das 		},
1451f9580bafSTaniya Das 	},
1452f9580bafSTaniya Das };
1453f9580bafSTaniya Das 
1454f9580bafSTaniya Das static struct clk_branch cam_cc_cci_2_clk = {
1455f9580bafSTaniya Das 	.halt_reg = 0x112bc,
1456f9580bafSTaniya Das 	.halt_check = BRANCH_HALT,
1457f9580bafSTaniya Das 	.clkr = {
1458f9580bafSTaniya Das 		.enable_reg = 0x112bc,
1459f9580bafSTaniya Das 		.enable_mask = BIT(0),
1460f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1461f9580bafSTaniya Das 			.name = "cam_cc_cci_2_clk",
1462f9580bafSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1463f9580bafSTaniya Das 				&cam_cc_cci_2_clk_src.clkr.hw,
1464f9580bafSTaniya Das 			},
1465f9580bafSTaniya Das 			.num_parents = 1,
1466f9580bafSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
1467f9580bafSTaniya Das 			.ops = &clk_branch2_ops,
1468f9580bafSTaniya Das 		},
1469f9580bafSTaniya Das 	},
1470f9580bafSTaniya Das };
1471f9580bafSTaniya Das 
1472f9580bafSTaniya Das static struct clk_branch cam_cc_core_ahb_clk = {
1473f9580bafSTaniya Das 	.halt_reg = 0x11360,
1474f9580bafSTaniya Das 	.halt_check = BRANCH_HALT_DELAY,
1475f9580bafSTaniya Das 	.clkr = {
1476f9580bafSTaniya Das 		.enable_reg = 0x11360,
1477f9580bafSTaniya Das 		.enable_mask = BIT(0),
1478f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1479f9580bafSTaniya Das 			.name = "cam_cc_core_ahb_clk",
1480f9580bafSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1481f9580bafSTaniya Das 				&cam_cc_slow_ahb_clk_src.clkr.hw,
1482f9580bafSTaniya Das 			},
1483f9580bafSTaniya Das 			.num_parents = 1,
1484f9580bafSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
1485f9580bafSTaniya Das 			.ops = &clk_branch2_ops,
1486f9580bafSTaniya Das 		},
1487f9580bafSTaniya Das 	},
1488f9580bafSTaniya Das };
1489f9580bafSTaniya Das 
1490f9580bafSTaniya Das static struct clk_branch cam_cc_cre_ahb_clk = {
1491f9580bafSTaniya Das 	.halt_reg = 0x111cc,
1492f9580bafSTaniya Das 	.halt_check = BRANCH_HALT,
1493f9580bafSTaniya Das 	.clkr = {
1494f9580bafSTaniya Das 		.enable_reg = 0x111cc,
1495f9580bafSTaniya Das 		.enable_mask = BIT(0),
1496f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1497f9580bafSTaniya Das 			.name = "cam_cc_cre_ahb_clk",
1498f9580bafSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1499f9580bafSTaniya Das 				&cam_cc_slow_ahb_clk_src.clkr.hw,
1500f9580bafSTaniya Das 			},
1501f9580bafSTaniya Das 			.num_parents = 1,
1502f9580bafSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
1503f9580bafSTaniya Das 			.ops = &clk_branch2_ops,
1504f9580bafSTaniya Das 		},
1505f9580bafSTaniya Das 	},
1506f9580bafSTaniya Das };
1507f9580bafSTaniya Das 
1508f9580bafSTaniya Das static struct clk_branch cam_cc_cre_clk = {
1509f9580bafSTaniya Das 	.halt_reg = 0x111c4,
1510f9580bafSTaniya Das 	.halt_check = BRANCH_HALT,
1511f9580bafSTaniya Das 	.clkr = {
1512f9580bafSTaniya Das 		.enable_reg = 0x111c4,
1513f9580bafSTaniya Das 		.enable_mask = BIT(0),
1514f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1515f9580bafSTaniya Das 			.name = "cam_cc_cre_clk",
1516f9580bafSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1517f9580bafSTaniya Das 				&cam_cc_cre_clk_src.clkr.hw,
1518f9580bafSTaniya Das 			},
1519f9580bafSTaniya Das 			.num_parents = 1,
1520f9580bafSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
1521f9580bafSTaniya Das 			.ops = &clk_branch2_ops,
1522f9580bafSTaniya Das 		},
1523f9580bafSTaniya Das 	},
1524f9580bafSTaniya Das };
1525f9580bafSTaniya Das 
1526f9580bafSTaniya Das static struct clk_branch cam_cc_csi0phytimer_clk = {
1527f9580bafSTaniya Das 	.halt_reg = 0x10018,
1528f9580bafSTaniya Das 	.halt_check = BRANCH_HALT,
1529f9580bafSTaniya Das 	.clkr = {
1530f9580bafSTaniya Das 		.enable_reg = 0x10018,
1531f9580bafSTaniya Das 		.enable_mask = BIT(0),
1532f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1533f9580bafSTaniya Das 			.name = "cam_cc_csi0phytimer_clk",
1534f9580bafSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1535f9580bafSTaniya Das 				&cam_cc_csi0phytimer_clk_src.clkr.hw,
1536f9580bafSTaniya Das 			},
1537f9580bafSTaniya Das 			.num_parents = 1,
1538f9580bafSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
1539f9580bafSTaniya Das 			.ops = &clk_branch2_ops,
1540f9580bafSTaniya Das 		},
1541f9580bafSTaniya Das 	},
1542f9580bafSTaniya Das };
1543f9580bafSTaniya Das 
1544f9580bafSTaniya Das static struct clk_branch cam_cc_csi1phytimer_clk = {
1545f9580bafSTaniya Das 	.halt_reg = 0x1003c,
1546f9580bafSTaniya Das 	.halt_check = BRANCH_HALT,
1547f9580bafSTaniya Das 	.clkr = {
1548f9580bafSTaniya Das 		.enable_reg = 0x1003c,
1549f9580bafSTaniya Das 		.enable_mask = BIT(0),
1550f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1551f9580bafSTaniya Das 			.name = "cam_cc_csi1phytimer_clk",
1552f9580bafSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1553f9580bafSTaniya Das 				&cam_cc_csi1phytimer_clk_src.clkr.hw,
1554f9580bafSTaniya Das 			},
1555f9580bafSTaniya Das 			.num_parents = 1,
1556f9580bafSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
1557f9580bafSTaniya Das 			.ops = &clk_branch2_ops,
1558f9580bafSTaniya Das 		},
1559f9580bafSTaniya Das 	},
1560f9580bafSTaniya Das };
1561f9580bafSTaniya Das 
1562f9580bafSTaniya Das static struct clk_branch cam_cc_csi2phytimer_clk = {
1563f9580bafSTaniya Das 	.halt_reg = 0x1005c,
1564f9580bafSTaniya Das 	.halt_check = BRANCH_HALT,
1565f9580bafSTaniya Das 	.clkr = {
1566f9580bafSTaniya Das 		.enable_reg = 0x1005c,
1567f9580bafSTaniya Das 		.enable_mask = BIT(0),
1568f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1569f9580bafSTaniya Das 			.name = "cam_cc_csi2phytimer_clk",
1570f9580bafSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1571f9580bafSTaniya Das 				&cam_cc_csi2phytimer_clk_src.clkr.hw,
1572f9580bafSTaniya Das 			},
1573f9580bafSTaniya Das 			.num_parents = 1,
1574f9580bafSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
1575f9580bafSTaniya Das 			.ops = &clk_branch2_ops,
1576f9580bafSTaniya Das 		},
1577f9580bafSTaniya Das 	},
1578f9580bafSTaniya Das };
1579f9580bafSTaniya Das 
1580f9580bafSTaniya Das static struct clk_branch cam_cc_csi3phytimer_clk = {
1581f9580bafSTaniya Das 	.halt_reg = 0x1007c,
1582f9580bafSTaniya Das 	.halt_check = BRANCH_HALT,
1583f9580bafSTaniya Das 	.clkr = {
1584f9580bafSTaniya Das 		.enable_reg = 0x1007c,
1585f9580bafSTaniya Das 		.enable_mask = BIT(0),
1586f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1587f9580bafSTaniya Das 			.name = "cam_cc_csi3phytimer_clk",
1588f9580bafSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1589f9580bafSTaniya Das 				&cam_cc_csi3phytimer_clk_src.clkr.hw,
1590f9580bafSTaniya Das 			},
1591f9580bafSTaniya Das 			.num_parents = 1,
1592f9580bafSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
1593f9580bafSTaniya Das 			.ops = &clk_branch2_ops,
1594f9580bafSTaniya Das 		},
1595f9580bafSTaniya Das 	},
1596f9580bafSTaniya Das };
1597f9580bafSTaniya Das 
1598f9580bafSTaniya Das static struct clk_branch cam_cc_csi4phytimer_clk = {
1599f9580bafSTaniya Das 	.halt_reg = 0x1009c,
1600f9580bafSTaniya Das 	.halt_check = BRANCH_HALT,
1601f9580bafSTaniya Das 	.clkr = {
1602f9580bafSTaniya Das 		.enable_reg = 0x1009c,
1603f9580bafSTaniya Das 		.enable_mask = BIT(0),
1604f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1605f9580bafSTaniya Das 			.name = "cam_cc_csi4phytimer_clk",
1606f9580bafSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1607f9580bafSTaniya Das 				&cam_cc_csi4phytimer_clk_src.clkr.hw,
1608f9580bafSTaniya Das 			},
1609f9580bafSTaniya Das 			.num_parents = 1,
1610f9580bafSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
1611f9580bafSTaniya Das 			.ops = &clk_branch2_ops,
1612f9580bafSTaniya Das 		},
1613f9580bafSTaniya Das 	},
1614f9580bafSTaniya Das };
1615f9580bafSTaniya Das 
1616f9580bafSTaniya Das static struct clk_branch cam_cc_csi5phytimer_clk = {
1617f9580bafSTaniya Das 	.halt_reg = 0x100bc,
1618f9580bafSTaniya Das 	.halt_check = BRANCH_HALT,
1619f9580bafSTaniya Das 	.clkr = {
1620f9580bafSTaniya Das 		.enable_reg = 0x100bc,
1621f9580bafSTaniya Das 		.enable_mask = BIT(0),
1622f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1623f9580bafSTaniya Das 			.name = "cam_cc_csi5phytimer_clk",
1624f9580bafSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1625f9580bafSTaniya Das 				&cam_cc_csi5phytimer_clk_src.clkr.hw,
1626f9580bafSTaniya Das 			},
1627f9580bafSTaniya Das 			.num_parents = 1,
1628f9580bafSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
1629f9580bafSTaniya Das 			.ops = &clk_branch2_ops,
1630f9580bafSTaniya Das 		},
1631f9580bafSTaniya Das 	},
1632f9580bafSTaniya Das };
1633f9580bafSTaniya Das 
1634f9580bafSTaniya Das static struct clk_branch cam_cc_csid_clk = {
1635f9580bafSTaniya Das 	.halt_reg = 0x112d8,
1636f9580bafSTaniya Das 	.halt_check = BRANCH_HALT,
1637f9580bafSTaniya Das 	.clkr = {
1638f9580bafSTaniya Das 		.enable_reg = 0x112d8,
1639f9580bafSTaniya Das 		.enable_mask = BIT(0),
1640f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1641f9580bafSTaniya Das 			.name = "cam_cc_csid_clk",
1642f9580bafSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1643f9580bafSTaniya Das 				&cam_cc_csid_clk_src.clkr.hw,
1644f9580bafSTaniya Das 			},
1645f9580bafSTaniya Das 			.num_parents = 1,
1646f9580bafSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
1647f9580bafSTaniya Das 			.ops = &clk_branch2_ops,
1648f9580bafSTaniya Das 		},
1649f9580bafSTaniya Das 	},
1650f9580bafSTaniya Das };
1651f9580bafSTaniya Das 
1652f9580bafSTaniya Das static struct clk_branch cam_cc_csid_csiphy_rx_clk = {
1653f9580bafSTaniya Das 	.halt_reg = 0x10020,
1654f9580bafSTaniya Das 	.halt_check = BRANCH_HALT,
1655f9580bafSTaniya Das 	.clkr = {
1656f9580bafSTaniya Das 		.enable_reg = 0x10020,
1657f9580bafSTaniya Das 		.enable_mask = BIT(0),
1658f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1659f9580bafSTaniya Das 			.name = "cam_cc_csid_csiphy_rx_clk",
1660f9580bafSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1661f9580bafSTaniya Das 				&cam_cc_cphy_rx_clk_src.clkr.hw,
1662f9580bafSTaniya Das 			},
1663f9580bafSTaniya Das 			.num_parents = 1,
1664f9580bafSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
1665f9580bafSTaniya Das 			.ops = &clk_branch2_ops,
1666f9580bafSTaniya Das 		},
1667f9580bafSTaniya Das 	},
1668f9580bafSTaniya Das };
1669f9580bafSTaniya Das 
1670f9580bafSTaniya Das static struct clk_branch cam_cc_csiphy0_clk = {
1671f9580bafSTaniya Das 	.halt_reg = 0x1001c,
1672f9580bafSTaniya Das 	.halt_check = BRANCH_HALT,
1673f9580bafSTaniya Das 	.clkr = {
1674f9580bafSTaniya Das 		.enable_reg = 0x1001c,
1675f9580bafSTaniya Das 		.enable_mask = BIT(0),
1676f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1677f9580bafSTaniya Das 			.name = "cam_cc_csiphy0_clk",
1678f9580bafSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1679f9580bafSTaniya Das 				&cam_cc_cphy_rx_clk_src.clkr.hw,
1680f9580bafSTaniya Das 			},
1681f9580bafSTaniya Das 			.num_parents = 1,
1682f9580bafSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
1683f9580bafSTaniya Das 			.ops = &clk_branch2_ops,
1684f9580bafSTaniya Das 		},
1685f9580bafSTaniya Das 	},
1686f9580bafSTaniya Das };
1687f9580bafSTaniya Das 
1688f9580bafSTaniya Das static struct clk_branch cam_cc_csiphy1_clk = {
1689f9580bafSTaniya Das 	.halt_reg = 0x10040,
1690f9580bafSTaniya Das 	.halt_check = BRANCH_HALT,
1691f9580bafSTaniya Das 	.clkr = {
1692f9580bafSTaniya Das 		.enable_reg = 0x10040,
1693f9580bafSTaniya Das 		.enable_mask = BIT(0),
1694f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1695f9580bafSTaniya Das 			.name = "cam_cc_csiphy1_clk",
1696f9580bafSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1697f9580bafSTaniya Das 				&cam_cc_cphy_rx_clk_src.clkr.hw,
1698f9580bafSTaniya Das 			},
1699f9580bafSTaniya Das 			.num_parents = 1,
1700f9580bafSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
1701f9580bafSTaniya Das 			.ops = &clk_branch2_ops,
1702f9580bafSTaniya Das 		},
1703f9580bafSTaniya Das 	},
1704f9580bafSTaniya Das };
1705f9580bafSTaniya Das 
1706f9580bafSTaniya Das static struct clk_branch cam_cc_csiphy2_clk = {
1707f9580bafSTaniya Das 	.halt_reg = 0x10060,
1708f9580bafSTaniya Das 	.halt_check = BRANCH_HALT,
1709f9580bafSTaniya Das 	.clkr = {
1710f9580bafSTaniya Das 		.enable_reg = 0x10060,
1711f9580bafSTaniya Das 		.enable_mask = BIT(0),
1712f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1713f9580bafSTaniya Das 			.name = "cam_cc_csiphy2_clk",
1714f9580bafSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1715f9580bafSTaniya Das 				&cam_cc_cphy_rx_clk_src.clkr.hw,
1716f9580bafSTaniya Das 			},
1717f9580bafSTaniya Das 			.num_parents = 1,
1718f9580bafSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
1719f9580bafSTaniya Das 			.ops = &clk_branch2_ops,
1720f9580bafSTaniya Das 		},
1721f9580bafSTaniya Das 	},
1722f9580bafSTaniya Das };
1723f9580bafSTaniya Das 
1724f9580bafSTaniya Das static struct clk_branch cam_cc_csiphy3_clk = {
1725f9580bafSTaniya Das 	.halt_reg = 0x10080,
1726f9580bafSTaniya Das 	.halt_check = BRANCH_HALT,
1727f9580bafSTaniya Das 	.clkr = {
1728f9580bafSTaniya Das 		.enable_reg = 0x10080,
1729f9580bafSTaniya Das 		.enable_mask = BIT(0),
1730f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1731f9580bafSTaniya Das 			.name = "cam_cc_csiphy3_clk",
1732f9580bafSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1733f9580bafSTaniya Das 				&cam_cc_cphy_rx_clk_src.clkr.hw,
1734f9580bafSTaniya Das 			},
1735f9580bafSTaniya Das 			.num_parents = 1,
1736f9580bafSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
1737f9580bafSTaniya Das 			.ops = &clk_branch2_ops,
1738f9580bafSTaniya Das 		},
1739f9580bafSTaniya Das 	},
1740f9580bafSTaniya Das };
1741f9580bafSTaniya Das 
1742f9580bafSTaniya Das static struct clk_branch cam_cc_csiphy4_clk = {
1743f9580bafSTaniya Das 	.halt_reg = 0x100a0,
1744f9580bafSTaniya Das 	.halt_check = BRANCH_HALT,
1745f9580bafSTaniya Das 	.clkr = {
1746f9580bafSTaniya Das 		.enable_reg = 0x100a0,
1747f9580bafSTaniya Das 		.enable_mask = BIT(0),
1748f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1749f9580bafSTaniya Das 			.name = "cam_cc_csiphy4_clk",
1750f9580bafSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1751f9580bafSTaniya Das 				&cam_cc_cphy_rx_clk_src.clkr.hw,
1752f9580bafSTaniya Das 			},
1753f9580bafSTaniya Das 			.num_parents = 1,
1754f9580bafSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
1755f9580bafSTaniya Das 			.ops = &clk_branch2_ops,
1756f9580bafSTaniya Das 		},
1757f9580bafSTaniya Das 	},
1758f9580bafSTaniya Das };
1759f9580bafSTaniya Das 
1760f9580bafSTaniya Das static struct clk_branch cam_cc_csiphy5_clk = {
1761f9580bafSTaniya Das 	.halt_reg = 0x100c0,
1762f9580bafSTaniya Das 	.halt_check = BRANCH_HALT,
1763f9580bafSTaniya Das 	.clkr = {
1764f9580bafSTaniya Das 		.enable_reg = 0x100c0,
1765f9580bafSTaniya Das 		.enable_mask = BIT(0),
1766f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1767f9580bafSTaniya Das 			.name = "cam_cc_csiphy5_clk",
1768f9580bafSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1769f9580bafSTaniya Das 				&cam_cc_cphy_rx_clk_src.clkr.hw,
1770f9580bafSTaniya Das 			},
1771f9580bafSTaniya Das 			.num_parents = 1,
1772f9580bafSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
1773f9580bafSTaniya Das 			.ops = &clk_branch2_ops,
1774f9580bafSTaniya Das 		},
1775f9580bafSTaniya Das 	},
1776f9580bafSTaniya Das };
1777f9580bafSTaniya Das 
1778f9580bafSTaniya Das static struct clk_branch cam_cc_icp_0_ahb_clk = {
1779f9580bafSTaniya Das 	.halt_reg = 0x11264,
1780f9580bafSTaniya Das 	.halt_check = BRANCH_HALT,
1781f9580bafSTaniya Das 	.clkr = {
1782f9580bafSTaniya Das 		.enable_reg = 0x11264,
1783f9580bafSTaniya Das 		.enable_mask = BIT(0),
1784f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1785f9580bafSTaniya Das 			.name = "cam_cc_icp_0_ahb_clk",
1786f9580bafSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1787f9580bafSTaniya Das 				&cam_cc_slow_ahb_clk_src.clkr.hw,
1788f9580bafSTaniya Das 			},
1789f9580bafSTaniya Das 			.num_parents = 1,
1790f9580bafSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
1791f9580bafSTaniya Das 			.ops = &clk_branch2_ops,
1792f9580bafSTaniya Das 		},
1793f9580bafSTaniya Das 	},
1794f9580bafSTaniya Das };
1795f9580bafSTaniya Das 
1796f9580bafSTaniya Das static struct clk_branch cam_cc_icp_0_clk = {
1797f9580bafSTaniya Das 	.halt_reg = 0x1122c,
1798f9580bafSTaniya Das 	.halt_check = BRANCH_HALT,
1799f9580bafSTaniya Das 	.clkr = {
1800f9580bafSTaniya Das 		.enable_reg = 0x1122c,
1801f9580bafSTaniya Das 		.enable_mask = BIT(0),
1802f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1803f9580bafSTaniya Das 			.name = "cam_cc_icp_0_clk",
1804f9580bafSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1805f9580bafSTaniya Das 				&cam_cc_icp_0_clk_src.clkr.hw,
1806f9580bafSTaniya Das 			},
1807f9580bafSTaniya Das 			.num_parents = 1,
1808f9580bafSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
1809f9580bafSTaniya Das 			.ops = &clk_branch2_ops,
1810f9580bafSTaniya Das 		},
1811f9580bafSTaniya Das 	},
1812f9580bafSTaniya Das };
1813f9580bafSTaniya Das 
1814f9580bafSTaniya Das static struct clk_branch cam_cc_icp_1_ahb_clk = {
1815f9580bafSTaniya Das 	.halt_reg = 0x11268,
1816f9580bafSTaniya Das 	.halt_check = BRANCH_HALT,
1817f9580bafSTaniya Das 	.clkr = {
1818f9580bafSTaniya Das 		.enable_reg = 0x11268,
1819f9580bafSTaniya Das 		.enable_mask = BIT(0),
1820f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1821f9580bafSTaniya Das 			.name = "cam_cc_icp_1_ahb_clk",
1822f9580bafSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1823f9580bafSTaniya Das 				&cam_cc_slow_ahb_clk_src.clkr.hw,
1824f9580bafSTaniya Das 			},
1825f9580bafSTaniya Das 			.num_parents = 1,
1826f9580bafSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
1827f9580bafSTaniya Das 			.ops = &clk_branch2_ops,
1828f9580bafSTaniya Das 		},
1829f9580bafSTaniya Das 	},
1830f9580bafSTaniya Das };
1831f9580bafSTaniya Das 
1832f9580bafSTaniya Das static struct clk_branch cam_cc_icp_1_clk = {
1833f9580bafSTaniya Das 	.halt_reg = 0x11254,
1834f9580bafSTaniya Das 	.halt_check = BRANCH_HALT,
1835f9580bafSTaniya Das 	.clkr = {
1836f9580bafSTaniya Das 		.enable_reg = 0x11254,
1837f9580bafSTaniya Das 		.enable_mask = BIT(0),
1838f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1839f9580bafSTaniya Das 			.name = "cam_cc_icp_1_clk",
1840f9580bafSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1841f9580bafSTaniya Das 				&cam_cc_icp_1_clk_src.clkr.hw,
1842f9580bafSTaniya Das 			},
1843f9580bafSTaniya Das 			.num_parents = 1,
1844f9580bafSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
1845f9580bafSTaniya Das 			.ops = &clk_branch2_ops,
1846f9580bafSTaniya Das 		},
1847f9580bafSTaniya Das 	},
1848f9580bafSTaniya Das };
1849f9580bafSTaniya Das 
1850f9580bafSTaniya Das static struct clk_branch cam_cc_ife_lite_ahb_clk = {
1851f9580bafSTaniya Das 	.halt_reg = 0x111a8,
1852f9580bafSTaniya Das 	.halt_check = BRANCH_HALT,
1853f9580bafSTaniya Das 	.clkr = {
1854f9580bafSTaniya Das 		.enable_reg = 0x111a8,
1855f9580bafSTaniya Das 		.enable_mask = BIT(0),
1856f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1857f9580bafSTaniya Das 			.name = "cam_cc_ife_lite_ahb_clk",
1858f9580bafSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1859f9580bafSTaniya Das 				&cam_cc_slow_ahb_clk_src.clkr.hw,
1860f9580bafSTaniya Das 			},
1861f9580bafSTaniya Das 			.num_parents = 1,
1862f9580bafSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
1863f9580bafSTaniya Das 			.ops = &clk_branch2_ops,
1864f9580bafSTaniya Das 		},
1865f9580bafSTaniya Das 	},
1866f9580bafSTaniya Das };
1867f9580bafSTaniya Das 
1868f9580bafSTaniya Das static struct clk_branch cam_cc_ife_lite_clk = {
1869f9580bafSTaniya Das 	.halt_reg = 0x11168,
1870f9580bafSTaniya Das 	.halt_check = BRANCH_HALT,
1871f9580bafSTaniya Das 	.clkr = {
1872f9580bafSTaniya Das 		.enable_reg = 0x11168,
1873f9580bafSTaniya Das 		.enable_mask = BIT(0),
1874f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1875f9580bafSTaniya Das 			.name = "cam_cc_ife_lite_clk",
1876f9580bafSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1877f9580bafSTaniya Das 				&cam_cc_ife_lite_clk_src.clkr.hw,
1878f9580bafSTaniya Das 			},
1879f9580bafSTaniya Das 			.num_parents = 1,
1880f9580bafSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
1881f9580bafSTaniya Das 			.ops = &clk_branch2_ops,
1882f9580bafSTaniya Das 		},
1883f9580bafSTaniya Das 	},
1884f9580bafSTaniya Das };
1885f9580bafSTaniya Das 
1886f9580bafSTaniya Das static struct clk_branch cam_cc_ife_lite_cphy_rx_clk = {
1887f9580bafSTaniya Das 	.halt_reg = 0x111a4,
1888f9580bafSTaniya Das 	.halt_check = BRANCH_HALT,
1889f9580bafSTaniya Das 	.clkr = {
1890f9580bafSTaniya Das 		.enable_reg = 0x111a4,
1891f9580bafSTaniya Das 		.enable_mask = BIT(0),
1892f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1893f9580bafSTaniya Das 			.name = "cam_cc_ife_lite_cphy_rx_clk",
1894f9580bafSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1895f9580bafSTaniya Das 				&cam_cc_cphy_rx_clk_src.clkr.hw,
1896f9580bafSTaniya Das 			},
1897f9580bafSTaniya Das 			.num_parents = 1,
1898f9580bafSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
1899f9580bafSTaniya Das 			.ops = &clk_branch2_ops,
1900f9580bafSTaniya Das 		},
1901f9580bafSTaniya Das 	},
1902f9580bafSTaniya Das };
1903f9580bafSTaniya Das 
1904f9580bafSTaniya Das static struct clk_branch cam_cc_ife_lite_csid_clk = {
1905f9580bafSTaniya Das 	.halt_reg = 0x11194,
1906f9580bafSTaniya Das 	.halt_check = BRANCH_HALT,
1907f9580bafSTaniya Das 	.clkr = {
1908f9580bafSTaniya Das 		.enable_reg = 0x11194,
1909f9580bafSTaniya Das 		.enable_mask = BIT(0),
1910f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1911f9580bafSTaniya Das 			.name = "cam_cc_ife_lite_csid_clk",
1912f9580bafSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1913f9580bafSTaniya Das 				&cam_cc_ife_lite_csid_clk_src.clkr.hw,
1914f9580bafSTaniya Das 			},
1915f9580bafSTaniya Das 			.num_parents = 1,
1916f9580bafSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
1917f9580bafSTaniya Das 			.ops = &clk_branch2_ops,
1918f9580bafSTaniya Das 		},
1919f9580bafSTaniya Das 	},
1920f9580bafSTaniya Das };
1921f9580bafSTaniya Das 
1922f9580bafSTaniya Das static struct clk_branch cam_cc_ipe_nps_ahb_clk = {
1923f9580bafSTaniya Das 	.halt_reg = 0x101d4,
1924f9580bafSTaniya Das 	.halt_check = BRANCH_HALT,
1925f9580bafSTaniya Das 	.clkr = {
1926f9580bafSTaniya Das 		.enable_reg = 0x101d4,
1927f9580bafSTaniya Das 		.enable_mask = BIT(0),
1928f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1929f9580bafSTaniya Das 			.name = "cam_cc_ipe_nps_ahb_clk",
1930f9580bafSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1931f9580bafSTaniya Das 				&cam_cc_slow_ahb_clk_src.clkr.hw,
1932f9580bafSTaniya Das 			},
1933f9580bafSTaniya Das 			.num_parents = 1,
1934f9580bafSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
1935f9580bafSTaniya Das 			.ops = &clk_branch2_ops,
1936f9580bafSTaniya Das 		},
1937f9580bafSTaniya Das 	},
1938f9580bafSTaniya Das };
1939f9580bafSTaniya Das 
1940f9580bafSTaniya Das static struct clk_branch cam_cc_ipe_nps_clk = {
1941f9580bafSTaniya Das 	.halt_reg = 0x101a8,
1942f9580bafSTaniya Das 	.halt_check = BRANCH_HALT,
1943f9580bafSTaniya Das 	.clkr = {
1944f9580bafSTaniya Das 		.enable_reg = 0x101a8,
1945f9580bafSTaniya Das 		.enable_mask = BIT(0),
1946f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1947f9580bafSTaniya Das 			.name = "cam_cc_ipe_nps_clk",
1948f9580bafSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1949f9580bafSTaniya Das 				&cam_cc_ipe_nps_clk_src.clkr.hw,
1950f9580bafSTaniya Das 			},
1951f9580bafSTaniya Das 			.num_parents = 1,
1952f9580bafSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
1953f9580bafSTaniya Das 			.ops = &clk_branch2_ops,
1954f9580bafSTaniya Das 		},
1955f9580bafSTaniya Das 	},
1956f9580bafSTaniya Das };
1957f9580bafSTaniya Das 
1958f9580bafSTaniya Das static struct clk_branch cam_cc_ipe_nps_fast_ahb_clk = {
1959f9580bafSTaniya Das 	.halt_reg = 0x101d8,
1960f9580bafSTaniya Das 	.halt_check = BRANCH_HALT,
1961f9580bafSTaniya Das 	.clkr = {
1962f9580bafSTaniya Das 		.enable_reg = 0x101d8,
1963f9580bafSTaniya Das 		.enable_mask = BIT(0),
1964f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1965f9580bafSTaniya Das 			.name = "cam_cc_ipe_nps_fast_ahb_clk",
1966f9580bafSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1967f9580bafSTaniya Das 				&cam_cc_fast_ahb_clk_src.clkr.hw,
1968f9580bafSTaniya Das 			},
1969f9580bafSTaniya Das 			.num_parents = 1,
1970f9580bafSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
1971f9580bafSTaniya Das 			.ops = &clk_branch2_ops,
1972f9580bafSTaniya Das 		},
1973f9580bafSTaniya Das 	},
1974f9580bafSTaniya Das };
1975f9580bafSTaniya Das 
1976f9580bafSTaniya Das static struct clk_branch cam_cc_ipe_pps_clk = {
1977f9580bafSTaniya Das 	.halt_reg = 0x101bc,
1978f9580bafSTaniya Das 	.halt_check = BRANCH_HALT,
1979f9580bafSTaniya Das 	.clkr = {
1980f9580bafSTaniya Das 		.enable_reg = 0x101bc,
1981f9580bafSTaniya Das 		.enable_mask = BIT(0),
1982f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
1983f9580bafSTaniya Das 			.name = "cam_cc_ipe_pps_clk",
1984f9580bafSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1985f9580bafSTaniya Das 				&cam_cc_ipe_nps_clk_src.clkr.hw,
1986f9580bafSTaniya Das 			},
1987f9580bafSTaniya Das 			.num_parents = 1,
1988f9580bafSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
1989f9580bafSTaniya Das 			.ops = &clk_branch2_ops,
1990f9580bafSTaniya Das 		},
1991f9580bafSTaniya Das 	},
1992f9580bafSTaniya Das };
1993f9580bafSTaniya Das 
1994f9580bafSTaniya Das static struct clk_branch cam_cc_ipe_pps_fast_ahb_clk = {
1995f9580bafSTaniya Das 	.halt_reg = 0x101dc,
1996f9580bafSTaniya Das 	.halt_check = BRANCH_HALT,
1997f9580bafSTaniya Das 	.clkr = {
1998f9580bafSTaniya Das 		.enable_reg = 0x101dc,
1999f9580bafSTaniya Das 		.enable_mask = BIT(0),
2000f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
2001f9580bafSTaniya Das 			.name = "cam_cc_ipe_pps_fast_ahb_clk",
2002f9580bafSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
2003f9580bafSTaniya Das 				&cam_cc_fast_ahb_clk_src.clkr.hw,
2004f9580bafSTaniya Das 			},
2005f9580bafSTaniya Das 			.num_parents = 1,
2006f9580bafSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
2007f9580bafSTaniya Das 			.ops = &clk_branch2_ops,
2008f9580bafSTaniya Das 		},
2009f9580bafSTaniya Das 	},
2010f9580bafSTaniya Das };
2011f9580bafSTaniya Das 
2012f9580bafSTaniya Das static struct clk_branch cam_cc_jpeg_0_clk = {
2013f9580bafSTaniya Das 	.halt_reg = 0x111e8,
2014f9580bafSTaniya Das 	.halt_check = BRANCH_HALT,
2015f9580bafSTaniya Das 	.clkr = {
2016f9580bafSTaniya Das 		.enable_reg = 0x111e8,
2017f9580bafSTaniya Das 		.enable_mask = BIT(0),
2018f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
2019f9580bafSTaniya Das 			.name = "cam_cc_jpeg_0_clk",
2020f9580bafSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
2021f9580bafSTaniya Das 				&cam_cc_jpeg_clk_src.clkr.hw,
2022f9580bafSTaniya Das 			},
2023f9580bafSTaniya Das 			.num_parents = 1,
2024f9580bafSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
2025f9580bafSTaniya Das 			.ops = &clk_branch2_ops,
2026f9580bafSTaniya Das 		},
2027f9580bafSTaniya Das 	},
2028f9580bafSTaniya Das };
2029f9580bafSTaniya Das 
2030f9580bafSTaniya Das static struct clk_branch cam_cc_jpeg_1_clk = {
2031f9580bafSTaniya Das 	.halt_reg = 0x111f8,
2032f9580bafSTaniya Das 	.halt_check = BRANCH_HALT,
2033f9580bafSTaniya Das 	.clkr = {
2034f9580bafSTaniya Das 		.enable_reg = 0x111f8,
2035f9580bafSTaniya Das 		.enable_mask = BIT(0),
2036f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
2037f9580bafSTaniya Das 			.name = "cam_cc_jpeg_1_clk",
2038f9580bafSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
2039f9580bafSTaniya Das 				&cam_cc_jpeg_clk_src.clkr.hw,
2040f9580bafSTaniya Das 			},
2041f9580bafSTaniya Das 			.num_parents = 1,
2042f9580bafSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
2043f9580bafSTaniya Das 			.ops = &clk_branch2_ops,
2044f9580bafSTaniya Das 		},
2045f9580bafSTaniya Das 	},
2046f9580bafSTaniya Das };
2047f9580bafSTaniya Das 
2048f9580bafSTaniya Das static struct clk_branch cam_cc_ofe_ahb_clk = {
2049f9580bafSTaniya Das 	.halt_reg = 0x10118,
2050f9580bafSTaniya Das 	.halt_check = BRANCH_HALT,
2051f9580bafSTaniya Das 	.clkr = {
2052f9580bafSTaniya Das 		.enable_reg = 0x10118,
2053f9580bafSTaniya Das 		.enable_mask = BIT(0),
2054f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
2055f9580bafSTaniya Das 			.name = "cam_cc_ofe_ahb_clk",
2056f9580bafSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
2057f9580bafSTaniya Das 				&cam_cc_slow_ahb_clk_src.clkr.hw,
2058f9580bafSTaniya Das 			},
2059f9580bafSTaniya Das 			.num_parents = 1,
2060f9580bafSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
2061f9580bafSTaniya Das 			.ops = &clk_branch2_ops,
2062f9580bafSTaniya Das 		},
2063f9580bafSTaniya Das 	},
2064f9580bafSTaniya Das };
2065f9580bafSTaniya Das 
2066f9580bafSTaniya Das static struct clk_branch cam_cc_ofe_anchor_clk = {
2067f9580bafSTaniya Das 	.halt_reg = 0x10148,
2068f9580bafSTaniya Das 	.halt_check = BRANCH_HALT,
2069f9580bafSTaniya Das 	.clkr = {
2070f9580bafSTaniya Das 		.enable_reg = 0x10148,
2071f9580bafSTaniya Das 		.enable_mask = BIT(0),
2072f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
2073f9580bafSTaniya Das 			.name = "cam_cc_ofe_anchor_clk",
2074f9580bafSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
2075f9580bafSTaniya Das 				&cam_cc_ofe_clk_src.clkr.hw,
2076f9580bafSTaniya Das 			},
2077f9580bafSTaniya Das 			.num_parents = 1,
2078f9580bafSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
2079f9580bafSTaniya Das 			.ops = &clk_branch2_ops,
2080f9580bafSTaniya Das 		},
2081f9580bafSTaniya Das 	},
2082f9580bafSTaniya Das };
2083f9580bafSTaniya Das 
2084f9580bafSTaniya Das static struct clk_branch cam_cc_ofe_anchor_fast_ahb_clk = {
2085f9580bafSTaniya Das 	.halt_reg = 0x100f8,
2086f9580bafSTaniya Das 	.halt_check = BRANCH_HALT,
2087f9580bafSTaniya Das 	.clkr = {
2088f9580bafSTaniya Das 		.enable_reg = 0x100f8,
2089f9580bafSTaniya Das 		.enable_mask = BIT(0),
2090f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
2091f9580bafSTaniya Das 			.name = "cam_cc_ofe_anchor_fast_ahb_clk",
2092f9580bafSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
2093f9580bafSTaniya Das 				&cam_cc_fast_ahb_clk_src.clkr.hw,
2094f9580bafSTaniya Das 			},
2095f9580bafSTaniya Das 			.num_parents = 1,
2096f9580bafSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
2097f9580bafSTaniya Das 			.ops = &clk_branch2_ops,
2098f9580bafSTaniya Das 		},
2099f9580bafSTaniya Das 	},
2100f9580bafSTaniya Das };
2101f9580bafSTaniya Das 
2102f9580bafSTaniya Das static struct clk_branch cam_cc_ofe_hdr_clk = {
2103f9580bafSTaniya Das 	.halt_reg = 0x1015c,
2104f9580bafSTaniya Das 	.halt_check = BRANCH_HALT,
2105f9580bafSTaniya Das 	.clkr = {
2106f9580bafSTaniya Das 		.enable_reg = 0x1015c,
2107f9580bafSTaniya Das 		.enable_mask = BIT(0),
2108f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
2109f9580bafSTaniya Das 			.name = "cam_cc_ofe_hdr_clk",
2110f9580bafSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
2111f9580bafSTaniya Das 				&cam_cc_ofe_clk_src.clkr.hw,
2112f9580bafSTaniya Das 			},
2113f9580bafSTaniya Das 			.num_parents = 1,
2114f9580bafSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
2115f9580bafSTaniya Das 			.ops = &clk_branch2_ops,
2116f9580bafSTaniya Das 		},
2117f9580bafSTaniya Das 	},
2118f9580bafSTaniya Das };
2119f9580bafSTaniya Das 
2120f9580bafSTaniya Das static struct clk_branch cam_cc_ofe_hdr_fast_ahb_clk = {
2121f9580bafSTaniya Das 	.halt_reg = 0x100fc,
2122f9580bafSTaniya Das 	.halt_check = BRANCH_HALT,
2123f9580bafSTaniya Das 	.clkr = {
2124f9580bafSTaniya Das 		.enable_reg = 0x100fc,
2125f9580bafSTaniya Das 		.enable_mask = BIT(0),
2126f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
2127f9580bafSTaniya Das 			.name = "cam_cc_ofe_hdr_fast_ahb_clk",
2128f9580bafSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
2129f9580bafSTaniya Das 				&cam_cc_fast_ahb_clk_src.clkr.hw,
2130f9580bafSTaniya Das 			},
2131f9580bafSTaniya Das 			.num_parents = 1,
2132f9580bafSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
2133f9580bafSTaniya Das 			.ops = &clk_branch2_ops,
2134f9580bafSTaniya Das 		},
2135f9580bafSTaniya Das 	},
2136f9580bafSTaniya Das };
2137f9580bafSTaniya Das 
2138f9580bafSTaniya Das static struct clk_branch cam_cc_ofe_main_clk = {
2139f9580bafSTaniya Das 	.halt_reg = 0x10134,
2140f9580bafSTaniya Das 	.halt_check = BRANCH_HALT,
2141f9580bafSTaniya Das 	.clkr = {
2142f9580bafSTaniya Das 		.enable_reg = 0x10134,
2143f9580bafSTaniya Das 		.enable_mask = BIT(0),
2144f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
2145f9580bafSTaniya Das 			.name = "cam_cc_ofe_main_clk",
2146f9580bafSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
2147f9580bafSTaniya Das 				&cam_cc_ofe_clk_src.clkr.hw,
2148f9580bafSTaniya Das 			},
2149f9580bafSTaniya Das 			.num_parents = 1,
2150f9580bafSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
2151f9580bafSTaniya Das 			.ops = &clk_branch2_ops,
2152f9580bafSTaniya Das 		},
2153f9580bafSTaniya Das 	},
2154f9580bafSTaniya Das };
2155f9580bafSTaniya Das 
2156f9580bafSTaniya Das static struct clk_branch cam_cc_ofe_main_fast_ahb_clk = {
2157f9580bafSTaniya Das 	.halt_reg = 0x100f4,
2158f9580bafSTaniya Das 	.halt_check = BRANCH_HALT,
2159f9580bafSTaniya Das 	.clkr = {
2160f9580bafSTaniya Das 		.enable_reg = 0x100f4,
2161f9580bafSTaniya Das 		.enable_mask = BIT(0),
2162f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
2163f9580bafSTaniya Das 			.name = "cam_cc_ofe_main_fast_ahb_clk",
2164f9580bafSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
2165f9580bafSTaniya Das 				&cam_cc_fast_ahb_clk_src.clkr.hw,
2166f9580bafSTaniya Das 			},
2167f9580bafSTaniya Das 			.num_parents = 1,
2168f9580bafSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
2169f9580bafSTaniya Das 			.ops = &clk_branch2_ops,
2170f9580bafSTaniya Das 		},
2171f9580bafSTaniya Das 	},
2172f9580bafSTaniya Das };
2173f9580bafSTaniya Das 
2174f9580bafSTaniya Das static struct clk_branch cam_cc_qdss_debug_clk = {
2175f9580bafSTaniya Das 	.halt_reg = 0x11344,
2176f9580bafSTaniya Das 	.halt_check = BRANCH_HALT,
2177f9580bafSTaniya Das 	.clkr = {
2178f9580bafSTaniya Das 		.enable_reg = 0x11344,
2179f9580bafSTaniya Das 		.enable_mask = BIT(0),
2180f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
2181f9580bafSTaniya Das 			.name = "cam_cc_qdss_debug_clk",
2182f9580bafSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
2183f9580bafSTaniya Das 				&cam_cc_qdss_debug_clk_src.clkr.hw,
2184f9580bafSTaniya Das 			},
2185f9580bafSTaniya Das 			.num_parents = 1,
2186f9580bafSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
2187f9580bafSTaniya Das 			.ops = &clk_branch2_ops,
2188f9580bafSTaniya Das 		},
2189f9580bafSTaniya Das 	},
2190f9580bafSTaniya Das };
2191f9580bafSTaniya Das 
2192f9580bafSTaniya Das static struct clk_branch cam_cc_qdss_debug_xo_clk = {
2193f9580bafSTaniya Das 	.halt_reg = 0x11348,
2194f9580bafSTaniya Das 	.halt_check = BRANCH_HALT,
2195f9580bafSTaniya Das 	.clkr = {
2196f9580bafSTaniya Das 		.enable_reg = 0x11348,
2197f9580bafSTaniya Das 		.enable_mask = BIT(0),
2198f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
2199f9580bafSTaniya Das 			.name = "cam_cc_qdss_debug_xo_clk",
2200f9580bafSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
2201f9580bafSTaniya Das 				&cam_cc_xo_clk_src.clkr.hw,
2202f9580bafSTaniya Das 			},
2203f9580bafSTaniya Das 			.num_parents = 1,
2204f9580bafSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
2205f9580bafSTaniya Das 			.ops = &clk_branch2_ops,
2206f9580bafSTaniya Das 		},
2207f9580bafSTaniya Das 	},
2208f9580bafSTaniya Das };
2209f9580bafSTaniya Das 
2210f9580bafSTaniya Das static struct clk_branch cam_cc_tfe_0_bayer_clk = {
2211f9580bafSTaniya Das 	.halt_reg = 0x11044,
2212f9580bafSTaniya Das 	.halt_check = BRANCH_HALT,
2213f9580bafSTaniya Das 	.clkr = {
2214f9580bafSTaniya Das 		.enable_reg = 0x11044,
2215f9580bafSTaniya Das 		.enable_mask = BIT(0),
2216f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
2217f9580bafSTaniya Das 			.name = "cam_cc_tfe_0_bayer_clk",
2218f9580bafSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
2219f9580bafSTaniya Das 				&cam_cc_tfe_0_clk_src.clkr.hw,
2220f9580bafSTaniya Das 			},
2221f9580bafSTaniya Das 			.num_parents = 1,
2222f9580bafSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
2223f9580bafSTaniya Das 			.ops = &clk_branch2_ops,
2224f9580bafSTaniya Das 		},
2225f9580bafSTaniya Das 	},
2226f9580bafSTaniya Das };
2227f9580bafSTaniya Das 
2228f9580bafSTaniya Das static struct clk_branch cam_cc_tfe_0_bayer_fast_ahb_clk = {
2229f9580bafSTaniya Das 	.halt_reg = 0x11064,
2230f9580bafSTaniya Das 	.halt_check = BRANCH_HALT,
2231f9580bafSTaniya Das 	.clkr = {
2232f9580bafSTaniya Das 		.enable_reg = 0x11064,
2233f9580bafSTaniya Das 		.enable_mask = BIT(0),
2234f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
2235f9580bafSTaniya Das 			.name = "cam_cc_tfe_0_bayer_fast_ahb_clk",
2236f9580bafSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
2237f9580bafSTaniya Das 				&cam_cc_fast_ahb_clk_src.clkr.hw,
2238f9580bafSTaniya Das 			},
2239f9580bafSTaniya Das 			.num_parents = 1,
2240f9580bafSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
2241f9580bafSTaniya Das 			.ops = &clk_branch2_ops,
2242f9580bafSTaniya Das 		},
2243f9580bafSTaniya Das 	},
2244f9580bafSTaniya Das };
2245f9580bafSTaniya Das 
2246f9580bafSTaniya Das static struct clk_branch cam_cc_tfe_0_main_clk = {
2247f9580bafSTaniya Das 	.halt_reg = 0x11030,
2248f9580bafSTaniya Das 	.halt_check = BRANCH_HALT,
2249f9580bafSTaniya Das 	.clkr = {
2250f9580bafSTaniya Das 		.enable_reg = 0x11030,
2251f9580bafSTaniya Das 		.enable_mask = BIT(0),
2252f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
2253f9580bafSTaniya Das 			.name = "cam_cc_tfe_0_main_clk",
2254f9580bafSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
2255f9580bafSTaniya Das 				&cam_cc_tfe_0_clk_src.clkr.hw,
2256f9580bafSTaniya Das 			},
2257f9580bafSTaniya Das 			.num_parents = 1,
2258f9580bafSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
2259f9580bafSTaniya Das 			.ops = &clk_branch2_ops,
2260f9580bafSTaniya Das 		},
2261f9580bafSTaniya Das 	},
2262f9580bafSTaniya Das };
2263f9580bafSTaniya Das 
2264f9580bafSTaniya Das static struct clk_branch cam_cc_tfe_0_main_fast_ahb_clk = {
2265f9580bafSTaniya Das 	.halt_reg = 0x11060,
2266f9580bafSTaniya Das 	.halt_check = BRANCH_HALT,
2267f9580bafSTaniya Das 	.clkr = {
2268f9580bafSTaniya Das 		.enable_reg = 0x11060,
2269f9580bafSTaniya Das 		.enable_mask = BIT(0),
2270f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
2271f9580bafSTaniya Das 			.name = "cam_cc_tfe_0_main_fast_ahb_clk",
2272f9580bafSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
2273f9580bafSTaniya Das 				&cam_cc_fast_ahb_clk_src.clkr.hw,
2274f9580bafSTaniya Das 			},
2275f9580bafSTaniya Das 			.num_parents = 1,
2276f9580bafSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
2277f9580bafSTaniya Das 			.ops = &clk_branch2_ops,
2278f9580bafSTaniya Das 		},
2279f9580bafSTaniya Das 	},
2280f9580bafSTaniya Das };
2281f9580bafSTaniya Das 
2282f9580bafSTaniya Das static struct clk_branch cam_cc_tfe_1_bayer_clk = {
2283f9580bafSTaniya Das 	.halt_reg = 0x110c4,
2284f9580bafSTaniya Das 	.halt_check = BRANCH_HALT,
2285f9580bafSTaniya Das 	.clkr = {
2286f9580bafSTaniya Das 		.enable_reg = 0x110c4,
2287f9580bafSTaniya Das 		.enable_mask = BIT(0),
2288f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
2289f9580bafSTaniya Das 			.name = "cam_cc_tfe_1_bayer_clk",
2290f9580bafSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
2291f9580bafSTaniya Das 				&cam_cc_tfe_1_clk_src.clkr.hw,
2292f9580bafSTaniya Das 			},
2293f9580bafSTaniya Das 			.num_parents = 1,
2294f9580bafSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
2295f9580bafSTaniya Das 			.ops = &clk_branch2_ops,
2296f9580bafSTaniya Das 		},
2297f9580bafSTaniya Das 	},
2298f9580bafSTaniya Das };
2299f9580bafSTaniya Das 
2300f9580bafSTaniya Das static struct clk_branch cam_cc_tfe_1_bayer_fast_ahb_clk = {
2301f9580bafSTaniya Das 	.halt_reg = 0x110e4,
2302f9580bafSTaniya Das 	.halt_check = BRANCH_HALT,
2303f9580bafSTaniya Das 	.clkr = {
2304f9580bafSTaniya Das 		.enable_reg = 0x110e4,
2305f9580bafSTaniya Das 		.enable_mask = BIT(0),
2306f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
2307f9580bafSTaniya Das 			.name = "cam_cc_tfe_1_bayer_fast_ahb_clk",
2308f9580bafSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
2309f9580bafSTaniya Das 				&cam_cc_fast_ahb_clk_src.clkr.hw,
2310f9580bafSTaniya Das 			},
2311f9580bafSTaniya Das 			.num_parents = 1,
2312f9580bafSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
2313f9580bafSTaniya Das 			.ops = &clk_branch2_ops,
2314f9580bafSTaniya Das 		},
2315f9580bafSTaniya Das 	},
2316f9580bafSTaniya Das };
2317f9580bafSTaniya Das 
2318f9580bafSTaniya Das static struct clk_branch cam_cc_tfe_1_main_clk = {
2319f9580bafSTaniya Das 	.halt_reg = 0x110b0,
2320f9580bafSTaniya Das 	.halt_check = BRANCH_HALT,
2321f9580bafSTaniya Das 	.clkr = {
2322f9580bafSTaniya Das 		.enable_reg = 0x110b0,
2323f9580bafSTaniya Das 		.enable_mask = BIT(0),
2324f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
2325f9580bafSTaniya Das 			.name = "cam_cc_tfe_1_main_clk",
2326f9580bafSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
2327f9580bafSTaniya Das 				&cam_cc_tfe_1_clk_src.clkr.hw,
2328f9580bafSTaniya Das 			},
2329f9580bafSTaniya Das 			.num_parents = 1,
2330f9580bafSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
2331f9580bafSTaniya Das 			.ops = &clk_branch2_ops,
2332f9580bafSTaniya Das 		},
2333f9580bafSTaniya Das 	},
2334f9580bafSTaniya Das };
2335f9580bafSTaniya Das 
2336f9580bafSTaniya Das static struct clk_branch cam_cc_tfe_1_main_fast_ahb_clk = {
2337f9580bafSTaniya Das 	.halt_reg = 0x110e0,
2338f9580bafSTaniya Das 	.halt_check = BRANCH_HALT,
2339f9580bafSTaniya Das 	.clkr = {
2340f9580bafSTaniya Das 		.enable_reg = 0x110e0,
2341f9580bafSTaniya Das 		.enable_mask = BIT(0),
2342f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
2343f9580bafSTaniya Das 			.name = "cam_cc_tfe_1_main_fast_ahb_clk",
2344f9580bafSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
2345f9580bafSTaniya Das 				&cam_cc_fast_ahb_clk_src.clkr.hw,
2346f9580bafSTaniya Das 			},
2347f9580bafSTaniya Das 			.num_parents = 1,
2348f9580bafSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
2349f9580bafSTaniya Das 			.ops = &clk_branch2_ops,
2350f9580bafSTaniya Das 		},
2351f9580bafSTaniya Das 	},
2352f9580bafSTaniya Das };
2353f9580bafSTaniya Das 
2354f9580bafSTaniya Das static struct clk_branch cam_cc_tfe_2_bayer_clk = {
2355f9580bafSTaniya Das 	.halt_reg = 0x1112c,
2356f9580bafSTaniya Das 	.halt_check = BRANCH_HALT,
2357f9580bafSTaniya Das 	.clkr = {
2358f9580bafSTaniya Das 		.enable_reg = 0x1112c,
2359f9580bafSTaniya Das 		.enable_mask = BIT(0),
2360f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
2361f9580bafSTaniya Das 			.name = "cam_cc_tfe_2_bayer_clk",
2362f9580bafSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
2363f9580bafSTaniya Das 				&cam_cc_tfe_2_clk_src.clkr.hw,
2364f9580bafSTaniya Das 			},
2365f9580bafSTaniya Das 			.num_parents = 1,
2366f9580bafSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
2367f9580bafSTaniya Das 			.ops = &clk_branch2_ops,
2368f9580bafSTaniya Das 		},
2369f9580bafSTaniya Das 	},
2370f9580bafSTaniya Das };
2371f9580bafSTaniya Das 
2372f9580bafSTaniya Das static struct clk_branch cam_cc_tfe_2_bayer_fast_ahb_clk = {
2373f9580bafSTaniya Das 	.halt_reg = 0x1114c,
2374f9580bafSTaniya Das 	.halt_check = BRANCH_HALT,
2375f9580bafSTaniya Das 	.clkr = {
2376f9580bafSTaniya Das 		.enable_reg = 0x1114c,
2377f9580bafSTaniya Das 		.enable_mask = BIT(0),
2378f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
2379f9580bafSTaniya Das 			.name = "cam_cc_tfe_2_bayer_fast_ahb_clk",
2380f9580bafSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
2381f9580bafSTaniya Das 				&cam_cc_fast_ahb_clk_src.clkr.hw,
2382f9580bafSTaniya Das 			},
2383f9580bafSTaniya Das 			.num_parents = 1,
2384f9580bafSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
2385f9580bafSTaniya Das 			.ops = &clk_branch2_ops,
2386f9580bafSTaniya Das 		},
2387f9580bafSTaniya Das 	},
2388f9580bafSTaniya Das };
2389f9580bafSTaniya Das 
2390f9580bafSTaniya Das static struct clk_branch cam_cc_tfe_2_main_clk = {
2391f9580bafSTaniya Das 	.halt_reg = 0x11118,
2392f9580bafSTaniya Das 	.halt_check = BRANCH_HALT,
2393f9580bafSTaniya Das 	.clkr = {
2394f9580bafSTaniya Das 		.enable_reg = 0x11118,
2395f9580bafSTaniya Das 		.enable_mask = BIT(0),
2396f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
2397f9580bafSTaniya Das 			.name = "cam_cc_tfe_2_main_clk",
2398f9580bafSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
2399f9580bafSTaniya Das 				&cam_cc_tfe_2_clk_src.clkr.hw,
2400f9580bafSTaniya Das 			},
2401f9580bafSTaniya Das 			.num_parents = 1,
2402f9580bafSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
2403f9580bafSTaniya Das 			.ops = &clk_branch2_ops,
2404f9580bafSTaniya Das 		},
2405f9580bafSTaniya Das 	},
2406f9580bafSTaniya Das };
2407f9580bafSTaniya Das 
2408f9580bafSTaniya Das static struct clk_branch cam_cc_tfe_2_main_fast_ahb_clk = {
2409f9580bafSTaniya Das 	.halt_reg = 0x11148,
2410f9580bafSTaniya Das 	.halt_check = BRANCH_HALT,
2411f9580bafSTaniya Das 	.clkr = {
2412f9580bafSTaniya Das 		.enable_reg = 0x11148,
2413f9580bafSTaniya Das 		.enable_mask = BIT(0),
2414f9580bafSTaniya Das 		.hw.init = &(const struct clk_init_data) {
2415f9580bafSTaniya Das 			.name = "cam_cc_tfe_2_main_fast_ahb_clk",
2416f9580bafSTaniya Das 			.parent_hws = (const struct clk_hw*[]) {
2417f9580bafSTaniya Das 				&cam_cc_fast_ahb_clk_src.clkr.hw,
2418f9580bafSTaniya Das 			},
2419f9580bafSTaniya Das 			.num_parents = 1,
2420f9580bafSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
2421f9580bafSTaniya Das 			.ops = &clk_branch2_ops,
2422f9580bafSTaniya Das 		},
2423f9580bafSTaniya Das 	},
2424f9580bafSTaniya Das };
2425f9580bafSTaniya Das 
2426f9580bafSTaniya Das static struct gdsc cam_cc_titan_top_gdsc = {
2427f9580bafSTaniya Das 	.gdscr = 0x1134c,
2428f9580bafSTaniya Das 	.en_rest_wait_val = 0x2,
2429f9580bafSTaniya Das 	.en_few_wait_val = 0x2,
2430f9580bafSTaniya Das 	.clk_dis_wait_val = 0xf,
2431f9580bafSTaniya Das 	.pd = {
2432f9580bafSTaniya Das 		.name = "cam_cc_titan_top_gdsc",
2433f9580bafSTaniya Das 	},
2434f9580bafSTaniya Das 	.pwrsts = PWRSTS_OFF_ON,
2435f9580bafSTaniya Das 	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
2436f9580bafSTaniya Das };
2437f9580bafSTaniya Das 
2438f9580bafSTaniya Das static struct gdsc cam_cc_ipe_0_gdsc = {
2439f9580bafSTaniya Das 	.gdscr = 0x1017c,
2440f9580bafSTaniya Das 	.en_rest_wait_val = 0x2,
2441f9580bafSTaniya Das 	.en_few_wait_val = 0x2,
2442f9580bafSTaniya Das 	.clk_dis_wait_val = 0xf,
2443f9580bafSTaniya Das 	.pd = {
2444f9580bafSTaniya Das 		.name = "cam_cc_ipe_0_gdsc",
2445f9580bafSTaniya Das 	},
2446f9580bafSTaniya Das 	.pwrsts = PWRSTS_OFF_ON,
2447f9580bafSTaniya Das 	.parent = &cam_cc_titan_top_gdsc.pd,
2448f9580bafSTaniya Das 	.flags = HW_CTRL_TRIGGER | POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
2449f9580bafSTaniya Das };
2450f9580bafSTaniya Das 
2451f9580bafSTaniya Das static struct gdsc cam_cc_ofe_gdsc = {
2452f9580bafSTaniya Das 	.gdscr = 0x100c8,
2453f9580bafSTaniya Das 	.en_rest_wait_val = 0x2,
2454f9580bafSTaniya Das 	.en_few_wait_val = 0x2,
2455f9580bafSTaniya Das 	.clk_dis_wait_val = 0xf,
2456f9580bafSTaniya Das 	.pd = {
2457f9580bafSTaniya Das 		.name = "cam_cc_ofe_gdsc",
2458f9580bafSTaniya Das 	},
2459f9580bafSTaniya Das 	.pwrsts = PWRSTS_OFF_ON,
2460f9580bafSTaniya Das 	.parent = &cam_cc_titan_top_gdsc.pd,
2461f9580bafSTaniya Das 	.flags = HW_CTRL_TRIGGER | POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
2462f9580bafSTaniya Das };
2463f9580bafSTaniya Das 
2464f9580bafSTaniya Das static struct gdsc cam_cc_tfe_0_gdsc = {
2465f9580bafSTaniya Das 	.gdscr = 0x11004,
2466f9580bafSTaniya Das 	.en_rest_wait_val = 0x2,
2467f9580bafSTaniya Das 	.en_few_wait_val = 0x2,
2468f9580bafSTaniya Das 	.clk_dis_wait_val = 0xf,
2469f9580bafSTaniya Das 	.pd = {
2470f9580bafSTaniya Das 		.name = "cam_cc_tfe_0_gdsc",
2471f9580bafSTaniya Das 	},
2472f9580bafSTaniya Das 	.pwrsts = PWRSTS_OFF_ON,
2473f9580bafSTaniya Das 	.parent = &cam_cc_titan_top_gdsc.pd,
2474f9580bafSTaniya Das 	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
2475f9580bafSTaniya Das };
2476f9580bafSTaniya Das 
2477f9580bafSTaniya Das static struct gdsc cam_cc_tfe_1_gdsc = {
2478f9580bafSTaniya Das 	.gdscr = 0x11084,
2479f9580bafSTaniya Das 	.en_rest_wait_val = 0x2,
2480f9580bafSTaniya Das 	.en_few_wait_val = 0x2,
2481f9580bafSTaniya Das 	.clk_dis_wait_val = 0xf,
2482f9580bafSTaniya Das 	.pd = {
2483f9580bafSTaniya Das 		.name = "cam_cc_tfe_1_gdsc",
2484f9580bafSTaniya Das 	},
2485f9580bafSTaniya Das 	.pwrsts = PWRSTS_OFF_ON,
2486f9580bafSTaniya Das 	.parent = &cam_cc_titan_top_gdsc.pd,
2487f9580bafSTaniya Das 	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
2488f9580bafSTaniya Das };
2489f9580bafSTaniya Das 
2490f9580bafSTaniya Das static struct gdsc cam_cc_tfe_2_gdsc = {
2491f9580bafSTaniya Das 	.gdscr = 0x110ec,
2492f9580bafSTaniya Das 	.en_rest_wait_val = 0x2,
2493f9580bafSTaniya Das 	.en_few_wait_val = 0x2,
2494f9580bafSTaniya Das 	.clk_dis_wait_val = 0xf,
2495f9580bafSTaniya Das 	.pd = {
2496f9580bafSTaniya Das 		.name = "cam_cc_tfe_2_gdsc",
2497f9580bafSTaniya Das 	},
2498f9580bafSTaniya Das 	.pwrsts = PWRSTS_OFF_ON,
2499f9580bafSTaniya Das 	.parent = &cam_cc_titan_top_gdsc.pd,
2500f9580bafSTaniya Das 	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
2501f9580bafSTaniya Das };
2502f9580bafSTaniya Das 
2503f9580bafSTaniya Das static struct clk_regmap *cam_cc_sm8750_clocks[] = {
2504f9580bafSTaniya Das 	[CAM_CC_CAM_TOP_AHB_CLK] = &cam_cc_cam_top_ahb_clk.clkr,
2505f9580bafSTaniya Das 	[CAM_CC_CAM_TOP_FAST_AHB_CLK] = &cam_cc_cam_top_fast_ahb_clk.clkr,
2506f9580bafSTaniya Das 	[CAM_CC_CAMNOC_DCD_XO_CLK] = &cam_cc_camnoc_dcd_xo_clk.clkr,
2507f9580bafSTaniya Das 	[CAM_CC_CAMNOC_NRT_AXI_CLK] = &cam_cc_camnoc_nrt_axi_clk.clkr,
2508f9580bafSTaniya Das 	[CAM_CC_CAMNOC_NRT_CRE_CLK] = &cam_cc_camnoc_nrt_cre_clk.clkr,
2509f9580bafSTaniya Das 	[CAM_CC_CAMNOC_NRT_IPE_NPS_CLK] = &cam_cc_camnoc_nrt_ipe_nps_clk.clkr,
2510f9580bafSTaniya Das 	[CAM_CC_CAMNOC_NRT_OFE_ANCHOR_CLK] = &cam_cc_camnoc_nrt_ofe_anchor_clk.clkr,
2511f9580bafSTaniya Das 	[CAM_CC_CAMNOC_NRT_OFE_HDR_CLK] = &cam_cc_camnoc_nrt_ofe_hdr_clk.clkr,
2512f9580bafSTaniya Das 	[CAM_CC_CAMNOC_NRT_OFE_MAIN_CLK] = &cam_cc_camnoc_nrt_ofe_main_clk.clkr,
2513f9580bafSTaniya Das 	[CAM_CC_CAMNOC_RT_AXI_CLK] = &cam_cc_camnoc_rt_axi_clk.clkr,
2514f9580bafSTaniya Das 	[CAM_CC_CAMNOC_RT_AXI_CLK_SRC] = &cam_cc_camnoc_rt_axi_clk_src.clkr,
2515f9580bafSTaniya Das 	[CAM_CC_CAMNOC_RT_IFE_LITE_CLK] = &cam_cc_camnoc_rt_ife_lite_clk.clkr,
2516f9580bafSTaniya Das 	[CAM_CC_CAMNOC_RT_TFE_0_BAYER_CLK] = &cam_cc_camnoc_rt_tfe_0_bayer_clk.clkr,
2517f9580bafSTaniya Das 	[CAM_CC_CAMNOC_RT_TFE_0_MAIN_CLK] = &cam_cc_camnoc_rt_tfe_0_main_clk.clkr,
2518f9580bafSTaniya Das 	[CAM_CC_CAMNOC_RT_TFE_1_BAYER_CLK] = &cam_cc_camnoc_rt_tfe_1_bayer_clk.clkr,
2519f9580bafSTaniya Das 	[CAM_CC_CAMNOC_RT_TFE_1_MAIN_CLK] = &cam_cc_camnoc_rt_tfe_1_main_clk.clkr,
2520f9580bafSTaniya Das 	[CAM_CC_CAMNOC_RT_TFE_2_BAYER_CLK] = &cam_cc_camnoc_rt_tfe_2_bayer_clk.clkr,
2521f9580bafSTaniya Das 	[CAM_CC_CAMNOC_RT_TFE_2_MAIN_CLK] = &cam_cc_camnoc_rt_tfe_2_main_clk.clkr,
2522f9580bafSTaniya Das 	[CAM_CC_CAMNOC_XO_CLK] = &cam_cc_camnoc_xo_clk.clkr,
2523f9580bafSTaniya Das 	[CAM_CC_CCI_0_CLK] = &cam_cc_cci_0_clk.clkr,
2524f9580bafSTaniya Das 	[CAM_CC_CCI_0_CLK_SRC] = &cam_cc_cci_0_clk_src.clkr,
2525f9580bafSTaniya Das 	[CAM_CC_CCI_1_CLK] = &cam_cc_cci_1_clk.clkr,
2526f9580bafSTaniya Das 	[CAM_CC_CCI_1_CLK_SRC] = &cam_cc_cci_1_clk_src.clkr,
2527f9580bafSTaniya Das 	[CAM_CC_CCI_2_CLK] = &cam_cc_cci_2_clk.clkr,
2528f9580bafSTaniya Das 	[CAM_CC_CCI_2_CLK_SRC] = &cam_cc_cci_2_clk_src.clkr,
2529f9580bafSTaniya Das 	[CAM_CC_CORE_AHB_CLK] = &cam_cc_core_ahb_clk.clkr,
2530f9580bafSTaniya Das 	[CAM_CC_CPHY_RX_CLK_SRC] = &cam_cc_cphy_rx_clk_src.clkr,
2531f9580bafSTaniya Das 	[CAM_CC_CRE_AHB_CLK] = &cam_cc_cre_ahb_clk.clkr,
2532f9580bafSTaniya Das 	[CAM_CC_CRE_CLK] = &cam_cc_cre_clk.clkr,
2533f9580bafSTaniya Das 	[CAM_CC_CRE_CLK_SRC] = &cam_cc_cre_clk_src.clkr,
2534f9580bafSTaniya Das 	[CAM_CC_CSI0PHYTIMER_CLK] = &cam_cc_csi0phytimer_clk.clkr,
2535f9580bafSTaniya Das 	[CAM_CC_CSI0PHYTIMER_CLK_SRC] = &cam_cc_csi0phytimer_clk_src.clkr,
2536f9580bafSTaniya Das 	[CAM_CC_CSI1PHYTIMER_CLK] = &cam_cc_csi1phytimer_clk.clkr,
2537f9580bafSTaniya Das 	[CAM_CC_CSI1PHYTIMER_CLK_SRC] = &cam_cc_csi1phytimer_clk_src.clkr,
2538f9580bafSTaniya Das 	[CAM_CC_CSI2PHYTIMER_CLK] = &cam_cc_csi2phytimer_clk.clkr,
2539f9580bafSTaniya Das 	[CAM_CC_CSI2PHYTIMER_CLK_SRC] = &cam_cc_csi2phytimer_clk_src.clkr,
2540f9580bafSTaniya Das 	[CAM_CC_CSI3PHYTIMER_CLK] = &cam_cc_csi3phytimer_clk.clkr,
2541f9580bafSTaniya Das 	[CAM_CC_CSI3PHYTIMER_CLK_SRC] = &cam_cc_csi3phytimer_clk_src.clkr,
2542f9580bafSTaniya Das 	[CAM_CC_CSI4PHYTIMER_CLK] = &cam_cc_csi4phytimer_clk.clkr,
2543f9580bafSTaniya Das 	[CAM_CC_CSI4PHYTIMER_CLK_SRC] = &cam_cc_csi4phytimer_clk_src.clkr,
2544f9580bafSTaniya Das 	[CAM_CC_CSI5PHYTIMER_CLK] = &cam_cc_csi5phytimer_clk.clkr,
2545f9580bafSTaniya Das 	[CAM_CC_CSI5PHYTIMER_CLK_SRC] = &cam_cc_csi5phytimer_clk_src.clkr,
2546f9580bafSTaniya Das 	[CAM_CC_CSID_CLK] = &cam_cc_csid_clk.clkr,
2547f9580bafSTaniya Das 	[CAM_CC_CSID_CLK_SRC] = &cam_cc_csid_clk_src.clkr,
2548f9580bafSTaniya Das 	[CAM_CC_CSID_CSIPHY_RX_CLK] = &cam_cc_csid_csiphy_rx_clk.clkr,
2549f9580bafSTaniya Das 	[CAM_CC_CSIPHY0_CLK] = &cam_cc_csiphy0_clk.clkr,
2550f9580bafSTaniya Das 	[CAM_CC_CSIPHY1_CLK] = &cam_cc_csiphy1_clk.clkr,
2551f9580bafSTaniya Das 	[CAM_CC_CSIPHY2_CLK] = &cam_cc_csiphy2_clk.clkr,
2552f9580bafSTaniya Das 	[CAM_CC_CSIPHY3_CLK] = &cam_cc_csiphy3_clk.clkr,
2553f9580bafSTaniya Das 	[CAM_CC_CSIPHY4_CLK] = &cam_cc_csiphy4_clk.clkr,
2554f9580bafSTaniya Das 	[CAM_CC_CSIPHY5_CLK] = &cam_cc_csiphy5_clk.clkr,
2555f9580bafSTaniya Das 	[CAM_CC_FAST_AHB_CLK_SRC] = &cam_cc_fast_ahb_clk_src.clkr,
2556f9580bafSTaniya Das 	[CAM_CC_ICP_0_AHB_CLK] = &cam_cc_icp_0_ahb_clk.clkr,
2557f9580bafSTaniya Das 	[CAM_CC_ICP_0_CLK] = &cam_cc_icp_0_clk.clkr,
2558f9580bafSTaniya Das 	[CAM_CC_ICP_0_CLK_SRC] = &cam_cc_icp_0_clk_src.clkr,
2559f9580bafSTaniya Das 	[CAM_CC_ICP_1_AHB_CLK] = &cam_cc_icp_1_ahb_clk.clkr,
2560f9580bafSTaniya Das 	[CAM_CC_ICP_1_CLK] = &cam_cc_icp_1_clk.clkr,
2561f9580bafSTaniya Das 	[CAM_CC_ICP_1_CLK_SRC] = &cam_cc_icp_1_clk_src.clkr,
2562f9580bafSTaniya Das 	[CAM_CC_IFE_LITE_AHB_CLK] = &cam_cc_ife_lite_ahb_clk.clkr,
2563f9580bafSTaniya Das 	[CAM_CC_IFE_LITE_CLK] = &cam_cc_ife_lite_clk.clkr,
2564f9580bafSTaniya Das 	[CAM_CC_IFE_LITE_CLK_SRC] = &cam_cc_ife_lite_clk_src.clkr,
2565f9580bafSTaniya Das 	[CAM_CC_IFE_LITE_CPHY_RX_CLK] = &cam_cc_ife_lite_cphy_rx_clk.clkr,
2566f9580bafSTaniya Das 	[CAM_CC_IFE_LITE_CSID_CLK] = &cam_cc_ife_lite_csid_clk.clkr,
2567f9580bafSTaniya Das 	[CAM_CC_IFE_LITE_CSID_CLK_SRC] = &cam_cc_ife_lite_csid_clk_src.clkr,
2568f9580bafSTaniya Das 	[CAM_CC_IPE_NPS_AHB_CLK] = &cam_cc_ipe_nps_ahb_clk.clkr,
2569f9580bafSTaniya Das 	[CAM_CC_IPE_NPS_CLK] = &cam_cc_ipe_nps_clk.clkr,
2570f9580bafSTaniya Das 	[CAM_CC_IPE_NPS_CLK_SRC] = &cam_cc_ipe_nps_clk_src.clkr,
2571f9580bafSTaniya Das 	[CAM_CC_IPE_NPS_FAST_AHB_CLK] = &cam_cc_ipe_nps_fast_ahb_clk.clkr,
2572f9580bafSTaniya Das 	[CAM_CC_IPE_PPS_CLK] = &cam_cc_ipe_pps_clk.clkr,
2573f9580bafSTaniya Das 	[CAM_CC_IPE_PPS_FAST_AHB_CLK] = &cam_cc_ipe_pps_fast_ahb_clk.clkr,
2574f9580bafSTaniya Das 	[CAM_CC_JPEG_0_CLK] = &cam_cc_jpeg_0_clk.clkr,
2575f9580bafSTaniya Das 	[CAM_CC_JPEG_1_CLK] = &cam_cc_jpeg_1_clk.clkr,
2576f9580bafSTaniya Das 	[CAM_CC_JPEG_CLK_SRC] = &cam_cc_jpeg_clk_src.clkr,
2577f9580bafSTaniya Das 	[CAM_CC_OFE_AHB_CLK] = &cam_cc_ofe_ahb_clk.clkr,
2578f9580bafSTaniya Das 	[CAM_CC_OFE_ANCHOR_CLK] = &cam_cc_ofe_anchor_clk.clkr,
2579f9580bafSTaniya Das 	[CAM_CC_OFE_ANCHOR_FAST_AHB_CLK] = &cam_cc_ofe_anchor_fast_ahb_clk.clkr,
2580f9580bafSTaniya Das 	[CAM_CC_OFE_CLK_SRC] = &cam_cc_ofe_clk_src.clkr,
2581f9580bafSTaniya Das 	[CAM_CC_OFE_HDR_CLK] = &cam_cc_ofe_hdr_clk.clkr,
2582f9580bafSTaniya Das 	[CAM_CC_OFE_HDR_FAST_AHB_CLK] = &cam_cc_ofe_hdr_fast_ahb_clk.clkr,
2583f9580bafSTaniya Das 	[CAM_CC_OFE_MAIN_CLK] = &cam_cc_ofe_main_clk.clkr,
2584f9580bafSTaniya Das 	[CAM_CC_OFE_MAIN_FAST_AHB_CLK] = &cam_cc_ofe_main_fast_ahb_clk.clkr,
2585f9580bafSTaniya Das 	[CAM_CC_PLL0] = &cam_cc_pll0.clkr,
2586f9580bafSTaniya Das 	[CAM_CC_PLL0_OUT_EVEN] = &cam_cc_pll0_out_even.clkr,
2587f9580bafSTaniya Das 	[CAM_CC_PLL0_OUT_ODD] = &cam_cc_pll0_out_odd.clkr,
2588f9580bafSTaniya Das 	[CAM_CC_PLL1] = &cam_cc_pll1.clkr,
2589f9580bafSTaniya Das 	[CAM_CC_PLL1_OUT_EVEN] = &cam_cc_pll1_out_even.clkr,
2590f9580bafSTaniya Das 	[CAM_CC_PLL2] = &cam_cc_pll2.clkr,
2591f9580bafSTaniya Das 	[CAM_CC_PLL2_OUT_EVEN] = &cam_cc_pll2_out_even.clkr,
2592f9580bafSTaniya Das 	[CAM_CC_PLL3] = &cam_cc_pll3.clkr,
2593f9580bafSTaniya Das 	[CAM_CC_PLL3_OUT_EVEN] = &cam_cc_pll3_out_even.clkr,
2594f9580bafSTaniya Das 	[CAM_CC_PLL4] = &cam_cc_pll4.clkr,
2595f9580bafSTaniya Das 	[CAM_CC_PLL4_OUT_EVEN] = &cam_cc_pll4_out_even.clkr,
2596f9580bafSTaniya Das 	[CAM_CC_PLL5] = &cam_cc_pll5.clkr,
2597f9580bafSTaniya Das 	[CAM_CC_PLL5_OUT_EVEN] = &cam_cc_pll5_out_even.clkr,
2598f9580bafSTaniya Das 	[CAM_CC_PLL6] = &cam_cc_pll6.clkr,
2599f9580bafSTaniya Das 	[CAM_CC_PLL6_OUT_EVEN] = &cam_cc_pll6_out_even.clkr,
2600f9580bafSTaniya Das 	[CAM_CC_PLL6_OUT_ODD] = &cam_cc_pll6_out_odd.clkr,
2601f9580bafSTaniya Das 	[CAM_CC_QDSS_DEBUG_CLK] = &cam_cc_qdss_debug_clk.clkr,
2602f9580bafSTaniya Das 	[CAM_CC_QDSS_DEBUG_CLK_SRC] = &cam_cc_qdss_debug_clk_src.clkr,
2603f9580bafSTaniya Das 	[CAM_CC_QDSS_DEBUG_XO_CLK] = &cam_cc_qdss_debug_xo_clk.clkr,
2604f9580bafSTaniya Das 	[CAM_CC_SLEEP_CLK_SRC] = &cam_cc_sleep_clk_src.clkr,
2605f9580bafSTaniya Das 	[CAM_CC_SLOW_AHB_CLK_SRC] = &cam_cc_slow_ahb_clk_src.clkr,
2606f9580bafSTaniya Das 	[CAM_CC_TFE_0_BAYER_CLK] = &cam_cc_tfe_0_bayer_clk.clkr,
2607f9580bafSTaniya Das 	[CAM_CC_TFE_0_BAYER_FAST_AHB_CLK] = &cam_cc_tfe_0_bayer_fast_ahb_clk.clkr,
2608f9580bafSTaniya Das 	[CAM_CC_TFE_0_CLK_SRC] = &cam_cc_tfe_0_clk_src.clkr,
2609f9580bafSTaniya Das 	[CAM_CC_TFE_0_MAIN_CLK] = &cam_cc_tfe_0_main_clk.clkr,
2610f9580bafSTaniya Das 	[CAM_CC_TFE_0_MAIN_FAST_AHB_CLK] = &cam_cc_tfe_0_main_fast_ahb_clk.clkr,
2611f9580bafSTaniya Das 	[CAM_CC_TFE_1_BAYER_CLK] = &cam_cc_tfe_1_bayer_clk.clkr,
2612f9580bafSTaniya Das 	[CAM_CC_TFE_1_BAYER_FAST_AHB_CLK] = &cam_cc_tfe_1_bayer_fast_ahb_clk.clkr,
2613f9580bafSTaniya Das 	[CAM_CC_TFE_1_CLK_SRC] = &cam_cc_tfe_1_clk_src.clkr,
2614f9580bafSTaniya Das 	[CAM_CC_TFE_1_MAIN_CLK] = &cam_cc_tfe_1_main_clk.clkr,
2615f9580bafSTaniya Das 	[CAM_CC_TFE_1_MAIN_FAST_AHB_CLK] = &cam_cc_tfe_1_main_fast_ahb_clk.clkr,
2616f9580bafSTaniya Das 	[CAM_CC_TFE_2_BAYER_CLK] = &cam_cc_tfe_2_bayer_clk.clkr,
2617f9580bafSTaniya Das 	[CAM_CC_TFE_2_BAYER_FAST_AHB_CLK] = &cam_cc_tfe_2_bayer_fast_ahb_clk.clkr,
2618f9580bafSTaniya Das 	[CAM_CC_TFE_2_CLK_SRC] = &cam_cc_tfe_2_clk_src.clkr,
2619f9580bafSTaniya Das 	[CAM_CC_TFE_2_MAIN_CLK] = &cam_cc_tfe_2_main_clk.clkr,
2620f9580bafSTaniya Das 	[CAM_CC_TFE_2_MAIN_FAST_AHB_CLK] = &cam_cc_tfe_2_main_fast_ahb_clk.clkr,
2621f9580bafSTaniya Das 	[CAM_CC_XO_CLK_SRC] = &cam_cc_xo_clk_src.clkr,
2622f9580bafSTaniya Das };
2623f9580bafSTaniya Das 
2624f9580bafSTaniya Das static struct gdsc *cam_cc_sm8750_gdscs[] = {
2625f9580bafSTaniya Das 	[CAM_CC_TITAN_TOP_GDSC] = &cam_cc_titan_top_gdsc,
2626f9580bafSTaniya Das 	[CAM_CC_IPE_0_GDSC] = &cam_cc_ipe_0_gdsc,
2627f9580bafSTaniya Das 	[CAM_CC_OFE_GDSC] = &cam_cc_ofe_gdsc,
2628f9580bafSTaniya Das 	[CAM_CC_TFE_0_GDSC] = &cam_cc_tfe_0_gdsc,
2629f9580bafSTaniya Das 	[CAM_CC_TFE_1_GDSC] = &cam_cc_tfe_1_gdsc,
2630f9580bafSTaniya Das 	[CAM_CC_TFE_2_GDSC] = &cam_cc_tfe_2_gdsc,
2631f9580bafSTaniya Das };
2632f9580bafSTaniya Das 
2633f9580bafSTaniya Das static const struct qcom_reset_map cam_cc_sm8750_resets[] = {
2634f9580bafSTaniya Das 	[CAM_CC_DRV_BCR] = { 0x113bc },
2635f9580bafSTaniya Das 	[CAM_CC_ICP_BCR] = { 0x11210 },
2636f9580bafSTaniya Das 	[CAM_CC_IPE_0_BCR] = { 0x10178 },
2637f9580bafSTaniya Das 	[CAM_CC_OFE_BCR] = { 0x100c4 },
2638f9580bafSTaniya Das 	[CAM_CC_QDSS_DEBUG_BCR] = { 0x11328 },
2639f9580bafSTaniya Das 	[CAM_CC_TFE_0_BCR] = { 0x11000 },
2640f9580bafSTaniya Das 	[CAM_CC_TFE_1_BCR] = { 0x11080 },
2641f9580bafSTaniya Das 	[CAM_CC_TFE_2_BCR] = { 0x110e8 },
2642f9580bafSTaniya Das };
2643f9580bafSTaniya Das 
2644f9580bafSTaniya Das static struct clk_alpha_pll *cam_cc_sm8750_plls[] = {
2645f9580bafSTaniya Das 	&cam_cc_pll0,
2646f9580bafSTaniya Das 	&cam_cc_pll1,
2647f9580bafSTaniya Das 	&cam_cc_pll2,
2648f9580bafSTaniya Das 	&cam_cc_pll3,
2649f9580bafSTaniya Das 	&cam_cc_pll4,
2650f9580bafSTaniya Das 	&cam_cc_pll5,
2651f9580bafSTaniya Das 	&cam_cc_pll6,
2652f9580bafSTaniya Das };
2653f9580bafSTaniya Das 
2654f9580bafSTaniya Das static u32 cam_cc_sm8750_critical_cbcrs[] = {
2655f9580bafSTaniya Das 	0x113c4, /* CAM_CC_DRV_AHB_CLK */
2656f9580bafSTaniya Das 	0x113c0, /* CAM_CC_DRV_XO_CLK */
2657f9580bafSTaniya Das 	0x1137c, /* CAM_CC_GDSC_CLK */
2658f9580bafSTaniya Das 	0x11398, /* CAM_CC_SLEEP_CLK */
2659f9580bafSTaniya Das };
2660f9580bafSTaniya Das 
2661f9580bafSTaniya Das static const struct regmap_config cam_cc_sm8750_regmap_config = {
2662f9580bafSTaniya Das 	.reg_bits = 32,
2663f9580bafSTaniya Das 	.reg_stride = 4,
2664f9580bafSTaniya Das 	.val_bits = 32,
2665f9580bafSTaniya Das 	.max_register = 0x1601c,
2666f9580bafSTaniya Das 	.fast_io = true,
2667f9580bafSTaniya Das };
2668f9580bafSTaniya Das 
2669f9580bafSTaniya Das static struct qcom_cc_driver_data cam_cc_sm8750_driver_data = {
2670f9580bafSTaniya Das 	.alpha_plls = cam_cc_sm8750_plls,
2671f9580bafSTaniya Das 	.num_alpha_plls = ARRAY_SIZE(cam_cc_sm8750_plls),
2672f9580bafSTaniya Das 	.clk_cbcrs = cam_cc_sm8750_critical_cbcrs,
2673f9580bafSTaniya Das 	.num_clk_cbcrs = ARRAY_SIZE(cam_cc_sm8750_critical_cbcrs),
2674f9580bafSTaniya Das };
2675f9580bafSTaniya Das 
2676*012e012eSKrzysztof Kozlowski static const struct qcom_cc_desc cam_cc_sm8750_desc = {
2677f9580bafSTaniya Das 	.config = &cam_cc_sm8750_regmap_config,
2678f9580bafSTaniya Das 	.clks = cam_cc_sm8750_clocks,
2679f9580bafSTaniya Das 	.num_clks = ARRAY_SIZE(cam_cc_sm8750_clocks),
2680f9580bafSTaniya Das 	.resets = cam_cc_sm8750_resets,
2681f9580bafSTaniya Das 	.num_resets = ARRAY_SIZE(cam_cc_sm8750_resets),
2682f9580bafSTaniya Das 	.gdscs = cam_cc_sm8750_gdscs,
2683f9580bafSTaniya Das 	.num_gdscs = ARRAY_SIZE(cam_cc_sm8750_gdscs),
2684f9580bafSTaniya Das 	.use_rpm = true,
2685f9580bafSTaniya Das 	.driver_data = &cam_cc_sm8750_driver_data,
2686f9580bafSTaniya Das };
2687f9580bafSTaniya Das 
2688f9580bafSTaniya Das static const struct of_device_id cam_cc_sm8750_match_table[] = {
2689f9580bafSTaniya Das 	{ .compatible = "qcom,sm8750-camcc" },
2690f9580bafSTaniya Das 	{ }
2691f9580bafSTaniya Das };
2692f9580bafSTaniya Das MODULE_DEVICE_TABLE(of, cam_cc_sm8750_match_table);
2693f9580bafSTaniya Das 
2694f9580bafSTaniya Das static int cam_cc_sm8750_probe(struct platform_device *pdev)
2695f9580bafSTaniya Das {
2696f9580bafSTaniya Das 	return qcom_cc_probe(pdev, &cam_cc_sm8750_desc);
2697f9580bafSTaniya Das }
2698f9580bafSTaniya Das 
2699f9580bafSTaniya Das static struct platform_driver cam_cc_sm8750_driver = {
2700f9580bafSTaniya Das 	.probe = cam_cc_sm8750_probe,
2701f9580bafSTaniya Das 	.driver = {
2702f9580bafSTaniya Das 		.name = "camcc-sm8750",
2703f9580bafSTaniya Das 		.of_match_table = cam_cc_sm8750_match_table,
2704f9580bafSTaniya Das 	},
2705f9580bafSTaniya Das };
2706f9580bafSTaniya Das 
2707f9580bafSTaniya Das module_platform_driver(cam_cc_sm8750_driver);
2708f9580bafSTaniya Das 
2709f9580bafSTaniya Das MODULE_DESCRIPTION("QTI CAMCC SM8750 Driver");
2710f9580bafSTaniya Das MODULE_LICENSE("GPL");
2711