xref: /linux/drivers/clk/qcom/dispcc-glymur.c (revision 522ba450b56fff29f868b1552bdc2965f55de7ed)
1b4d15211STaniya Das // SPDX-License-Identifier: GPL-2.0-only
2b4d15211STaniya Das /*
3b4d15211STaniya Das  * Copyright (c) 2025, Qualcomm Technologies, Inc. and/or its subsidiaries.
4b4d15211STaniya Das  */
5b4d15211STaniya Das 
6b4d15211STaniya Das #include <linux/clk-provider.h>
7b4d15211STaniya Das #include <linux/mod_devicetable.h>
8b4d15211STaniya Das #include <linux/module.h>
9b4d15211STaniya Das #include <linux/of.h>
10b4d15211STaniya Das #include <linux/platform_device.h>
11b4d15211STaniya Das #include <linux/pm_runtime.h>
12b4d15211STaniya Das #include <linux/regmap.h>
13b4d15211STaniya Das 
14b4d15211STaniya Das #include <dt-bindings/clock/qcom,glymur-dispcc.h>
15b4d15211STaniya Das 
16b4d15211STaniya Das #include "clk-alpha-pll.h"
17b4d15211STaniya Das #include "clk-branch.h"
18b4d15211STaniya Das #include "clk-pll.h"
19b4d15211STaniya Das #include "clk-rcg.h"
20b4d15211STaniya Das #include "clk-regmap.h"
21b4d15211STaniya Das #include "clk-regmap-divider.h"
22b4d15211STaniya Das #include "clk-regmap-mux.h"
23b4d15211STaniya Das #include "common.h"
24b4d15211STaniya Das #include "gdsc.h"
25b4d15211STaniya Das #include "reset.h"
26b4d15211STaniya Das 
27b4d15211STaniya Das enum {
28b4d15211STaniya Das 	DT_BI_TCXO,
29b4d15211STaniya Das 	DT_SLEEP_CLK,
30b4d15211STaniya Das 	DT_DP0_PHY_PLL_LINK_CLK,
31b4d15211STaniya Das 	DT_DP0_PHY_PLL_VCO_DIV_CLK,
32b4d15211STaniya Das 	DT_DP1_PHY_PLL_LINK_CLK,
33b4d15211STaniya Das 	DT_DP1_PHY_PLL_VCO_DIV_CLK,
34b4d15211STaniya Das 	DT_DP2_PHY_PLL_LINK_CLK,
35b4d15211STaniya Das 	DT_DP2_PHY_PLL_VCO_DIV_CLK,
36b4d15211STaniya Das 	DT_DP3_PHY_PLL_LINK_CLK,
37b4d15211STaniya Das 	DT_DP3_PHY_PLL_VCO_DIV_CLK,
38b4d15211STaniya Das 	DT_DSI0_PHY_PLL_OUT_BYTECLK,
39b4d15211STaniya Das 	DT_DSI0_PHY_PLL_OUT_DSICLK,
40b4d15211STaniya Das 	DT_DSI1_PHY_PLL_OUT_BYTECLK,
41b4d15211STaniya Das 	DT_DSI1_PHY_PLL_OUT_DSICLK,
42b4d15211STaniya Das 	DT_STANDALONE_PHY_PLL0_LINK_CLK,
43b4d15211STaniya Das 	DT_STANDALONE_PHY_PLL0_VCO_DIV_CLK,
44b4d15211STaniya Das 	DT_STANDALONE_PHY_PLL1_LINK_CLK,
45b4d15211STaniya Das 	DT_STANDALONE_PHY_PLL1_VCO_DIV_CLK,
46b4d15211STaniya Das };
47b4d15211STaniya Das 
48b4d15211STaniya Das enum {
49b4d15211STaniya Das 	P_BI_TCXO,
50b4d15211STaniya Das 	P_SLEEP_CLK,
51b4d15211STaniya Das 	P_DISP_CC_PLL0_OUT_MAIN,
52b4d15211STaniya Das 	P_DISP_CC_PLL1_OUT_EVEN,
53b4d15211STaniya Das 	P_DISP_CC_PLL1_OUT_MAIN,
54b4d15211STaniya Das 	P_DP0_PHY_PLL_LINK_CLK,
55b4d15211STaniya Das 	P_DP0_PHY_PLL_VCO_DIV_CLK,
56b4d15211STaniya Das 	P_DP1_PHY_PLL_LINK_CLK,
57b4d15211STaniya Das 	P_DP1_PHY_PLL_VCO_DIV_CLK,
58b4d15211STaniya Das 	P_DP2_PHY_PLL_LINK_CLK,
59b4d15211STaniya Das 	P_DP2_PHY_PLL_VCO_DIV_CLK,
60b4d15211STaniya Das 	P_DP3_PHY_PLL_LINK_CLK,
61b4d15211STaniya Das 	P_DP3_PHY_PLL_VCO_DIV_CLK,
62b4d15211STaniya Das 	P_DSI0_PHY_PLL_OUT_BYTECLK,
63b4d15211STaniya Das 	P_DSI0_PHY_PLL_OUT_DSICLK,
64b4d15211STaniya Das 	P_DSI1_PHY_PLL_OUT_BYTECLK,
65b4d15211STaniya Das 	P_DSI1_PHY_PLL_OUT_DSICLK,
66b4d15211STaniya Das 	P_STANDALONE_PHY_PLL0_LINK_CLK,
67b4d15211STaniya Das 	P_STANDALONE_PHY_PLL0_VCO_DIV_CLK,
68b4d15211STaniya Das 	P_STANDALONE_PHY_PLL1_LINK_CLK,
69b4d15211STaniya Das 	P_STANDALONE_PHY_PLL1_VCO_DIV_CLK,
70b4d15211STaniya Das };
71b4d15211STaniya Das 
72b4d15211STaniya Das static const struct pll_vco taycan_eko_t_vco[] = {
73b4d15211STaniya Das 	{ 249600000, 2500000000, 0 },
74b4d15211STaniya Das };
75b4d15211STaniya Das 
76b4d15211STaniya Das /* 257.142858 MHz Configuration */
77b4d15211STaniya Das static const struct alpha_pll_config disp_cc_pll0_config = {
78b4d15211STaniya Das 	.l = 0xd,
79b4d15211STaniya Das 	.alpha = 0x6492,
80b4d15211STaniya Das 	.config_ctl_val = 0x25c400e7,
81b4d15211STaniya Das 	.config_ctl_hi_val = 0x0a8060e0,
82b4d15211STaniya Das 	.config_ctl_hi1_val = 0xf51dea20,
83b4d15211STaniya Das 	.user_ctl_val = 0x00000008,
84b4d15211STaniya Das 	.user_ctl_hi_val = 0x00000002,
85b4d15211STaniya Das };
86b4d15211STaniya Das 
87b4d15211STaniya Das static struct clk_alpha_pll disp_cc_pll0 = {
88b4d15211STaniya Das 	.offset = 0x0,
89b4d15211STaniya Das 	.config = &disp_cc_pll0_config,
90b4d15211STaniya Das 	.vco_table = taycan_eko_t_vco,
91b4d15211STaniya Das 	.num_vco = ARRAY_SIZE(taycan_eko_t_vco),
92b4d15211STaniya Das 	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_TAYCAN_EKO_T],
93b4d15211STaniya Das 	.clkr = {
94b4d15211STaniya Das 		.hw.init = &(const struct clk_init_data) {
95b4d15211STaniya Das 			.name = "disp_cc_pll0",
96b4d15211STaniya Das 			.parent_data = &(const struct clk_parent_data) {
97b4d15211STaniya Das 				.index = DT_BI_TCXO,
98b4d15211STaniya Das 			},
99b4d15211STaniya Das 			.num_parents = 1,
100b4d15211STaniya Das 			.ops = &clk_alpha_pll_taycan_eko_t_ops,
101b4d15211STaniya Das 		},
102b4d15211STaniya Das 	},
103b4d15211STaniya Das };
104b4d15211STaniya Das 
105b4d15211STaniya Das /* 600.0 MHz Configuration */
106b4d15211STaniya Das static const struct alpha_pll_config disp_cc_pll1_config = {
107b4d15211STaniya Das 	.l = 0x1f,
108b4d15211STaniya Das 	.alpha = 0x4000,
109b4d15211STaniya Das 	.config_ctl_val = 0x25c400e7,
110b4d15211STaniya Das 	.config_ctl_hi_val = 0x0a8060e0,
111b4d15211STaniya Das 	.config_ctl_hi1_val = 0xf51dea20,
112b4d15211STaniya Das 	.user_ctl_val = 0x00000008,
113b4d15211STaniya Das 	.user_ctl_hi_val = 0x00000002,
114b4d15211STaniya Das };
115b4d15211STaniya Das 
116b4d15211STaniya Das static struct clk_alpha_pll disp_cc_pll1 = {
117b4d15211STaniya Das 	.offset = 0x1000,
118b4d15211STaniya Das 	.config = &disp_cc_pll1_config,
119b4d15211STaniya Das 	.vco_table = taycan_eko_t_vco,
120b4d15211STaniya Das 	.num_vco = ARRAY_SIZE(taycan_eko_t_vco),
121b4d15211STaniya Das 	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_TAYCAN_EKO_T],
122b4d15211STaniya Das 	.clkr = {
123b4d15211STaniya Das 		.hw.init = &(const struct clk_init_data) {
124b4d15211STaniya Das 			.name = "disp_cc_pll1",
125b4d15211STaniya Das 			.parent_data = &(const struct clk_parent_data) {
126b4d15211STaniya Das 				.index = DT_BI_TCXO,
127b4d15211STaniya Das 			},
128b4d15211STaniya Das 			.num_parents = 1,
129b4d15211STaniya Das 			.ops = &clk_alpha_pll_taycan_eko_t_ops,
130b4d15211STaniya Das 		},
131b4d15211STaniya Das 	},
132b4d15211STaniya Das };
133b4d15211STaniya Das 
134b4d15211STaniya Das static const struct parent_map disp_cc_parent_map_0[] = {
135b4d15211STaniya Das 	{ P_BI_TCXO, 0 },
136b4d15211STaniya Das 	{ P_STANDALONE_PHY_PLL0_VCO_DIV_CLK, 1 },
137b4d15211STaniya Das 	{ P_DP0_PHY_PLL_VCO_DIV_CLK, 2 },
138b4d15211STaniya Das 	{ P_DP3_PHY_PLL_VCO_DIV_CLK, 3 },
139b4d15211STaniya Das 	{ P_DP1_PHY_PLL_VCO_DIV_CLK, 4 },
140b4d15211STaniya Das 	{ P_STANDALONE_PHY_PLL1_VCO_DIV_CLK, 5 },
141b4d15211STaniya Das 	{ P_DP2_PHY_PLL_VCO_DIV_CLK, 6 },
142b4d15211STaniya Das };
143b4d15211STaniya Das 
144b4d15211STaniya Das static const struct clk_parent_data disp_cc_parent_data_0[] = {
145b4d15211STaniya Das 	{ .index = DT_BI_TCXO },
146b4d15211STaniya Das 	{ .index = DT_STANDALONE_PHY_PLL0_VCO_DIV_CLK },
147b4d15211STaniya Das 	{ .index = DT_DP0_PHY_PLL_VCO_DIV_CLK },
148b4d15211STaniya Das 	{ .index = DT_DP3_PHY_PLL_VCO_DIV_CLK },
149b4d15211STaniya Das 	{ .index = DT_DP1_PHY_PLL_VCO_DIV_CLK },
150b4d15211STaniya Das 	{ .index = DT_STANDALONE_PHY_PLL1_VCO_DIV_CLK },
151b4d15211STaniya Das 	{ .index = DT_DP2_PHY_PLL_VCO_DIV_CLK },
152b4d15211STaniya Das };
153b4d15211STaniya Das 
154b4d15211STaniya Das static const struct parent_map disp_cc_parent_map_1[] = {
155b4d15211STaniya Das 	{ P_BI_TCXO, 0 },
156b4d15211STaniya Das };
157b4d15211STaniya Das 
158b4d15211STaniya Das static const struct clk_parent_data disp_cc_parent_data_1[] = {
159b4d15211STaniya Das 	{ .index = DT_BI_TCXO },
160b4d15211STaniya Das };
161b4d15211STaniya Das 
162b4d15211STaniya Das static const struct parent_map disp_cc_parent_map_2[] = {
163b4d15211STaniya Das 	{ P_BI_TCXO, 0 },
164b4d15211STaniya Das 	{ P_DSI0_PHY_PLL_OUT_DSICLK, 1 },
165b4d15211STaniya Das 	{ P_DSI0_PHY_PLL_OUT_BYTECLK, 2 },
166b4d15211STaniya Das 	{ P_DSI1_PHY_PLL_OUT_DSICLK, 3 },
167b4d15211STaniya Das 	{ P_DSI1_PHY_PLL_OUT_BYTECLK, 4 },
168b4d15211STaniya Das };
169b4d15211STaniya Das 
170b4d15211STaniya Das static const struct clk_parent_data disp_cc_parent_data_2[] = {
171b4d15211STaniya Das 	{ .index = DT_BI_TCXO },
172b4d15211STaniya Das 	{ .index = DT_DSI0_PHY_PLL_OUT_DSICLK },
173b4d15211STaniya Das 	{ .index = DT_DSI0_PHY_PLL_OUT_BYTECLK },
174b4d15211STaniya Das 	{ .index = DT_DSI1_PHY_PLL_OUT_DSICLK },
175b4d15211STaniya Das 	{ .index = DT_DSI1_PHY_PLL_OUT_BYTECLK },
176b4d15211STaniya Das };
177b4d15211STaniya Das 
178b4d15211STaniya Das static const struct parent_map disp_cc_parent_map_3[] = {
179b4d15211STaniya Das 	{ P_BI_TCXO, 0 },
180b4d15211STaniya Das 	{ P_DP0_PHY_PLL_LINK_CLK, 1 },
181b4d15211STaniya Das 	{ P_DP1_PHY_PLL_LINK_CLK, 2 },
182b4d15211STaniya Das 	{ P_DP2_PHY_PLL_LINK_CLK, 3 },
183b4d15211STaniya Das 	{ P_DP3_PHY_PLL_LINK_CLK, 4 },
184b4d15211STaniya Das 	{ P_STANDALONE_PHY_PLL1_LINK_CLK, 5 },
185b4d15211STaniya Das 	{ P_STANDALONE_PHY_PLL0_LINK_CLK, 6 },
186b4d15211STaniya Das };
187b4d15211STaniya Das 
188b4d15211STaniya Das static const struct clk_parent_data disp_cc_parent_data_3[] = {
189b4d15211STaniya Das 	{ .index = DT_BI_TCXO },
190b4d15211STaniya Das 	{ .index = DT_DP0_PHY_PLL_LINK_CLK },
191b4d15211STaniya Das 	{ .index = DT_DP1_PHY_PLL_LINK_CLK },
192b4d15211STaniya Das 	{ .index = DT_DP2_PHY_PLL_LINK_CLK },
193b4d15211STaniya Das 	{ .index = DT_DP3_PHY_PLL_LINK_CLK },
194b4d15211STaniya Das 	{ .index = DT_STANDALONE_PHY_PLL1_LINK_CLK },
195b4d15211STaniya Das 	{ .index = DT_STANDALONE_PHY_PLL0_LINK_CLK },
196b4d15211STaniya Das };
197b4d15211STaniya Das 
198b4d15211STaniya Das static const struct parent_map disp_cc_parent_map_4[] = {
199b4d15211STaniya Das 	{ P_BI_TCXO, 0 },
200b4d15211STaniya Das 	{ P_DSI0_PHY_PLL_OUT_DSICLK, 1 },
201b4d15211STaniya Das 	{ P_DSI1_PHY_PLL_OUT_DSICLK, 3 },
202b4d15211STaniya Das };
203b4d15211STaniya Das 
204b4d15211STaniya Das static const struct clk_parent_data disp_cc_parent_data_4[] = {
205b4d15211STaniya Das 	{ .index = DT_BI_TCXO },
206b4d15211STaniya Das 	{ .index = DT_DSI0_PHY_PLL_OUT_DSICLK },
207b4d15211STaniya Das 	{ .index = DT_DSI1_PHY_PLL_OUT_DSICLK },
208b4d15211STaniya Das };
209b4d15211STaniya Das 
210b4d15211STaniya Das static const struct parent_map disp_cc_parent_map_5[] = {
211b4d15211STaniya Das 	{ P_BI_TCXO, 0 },
212b4d15211STaniya Das 	{ P_DSI0_PHY_PLL_OUT_BYTECLK, 2 },
213b4d15211STaniya Das 	{ P_DSI1_PHY_PLL_OUT_BYTECLK, 4 },
214b4d15211STaniya Das };
215b4d15211STaniya Das 
216b4d15211STaniya Das static const struct clk_parent_data disp_cc_parent_data_5[] = {
217b4d15211STaniya Das 	{ .index = DT_BI_TCXO },
218b4d15211STaniya Das 	{ .index = DT_DSI0_PHY_PLL_OUT_BYTECLK },
219b4d15211STaniya Das 	{ .index = DT_DSI1_PHY_PLL_OUT_BYTECLK },
220b4d15211STaniya Das };
221b4d15211STaniya Das 
222b4d15211STaniya Das static const struct parent_map disp_cc_parent_map_6[] = {
223b4d15211STaniya Das 	{ P_BI_TCXO, 0 },
224b4d15211STaniya Das 	{ P_DISP_CC_PLL1_OUT_MAIN, 4 },
225b4d15211STaniya Das 	{ P_DISP_CC_PLL1_OUT_EVEN, 6 },
226b4d15211STaniya Das };
227b4d15211STaniya Das 
228b4d15211STaniya Das static const struct clk_parent_data disp_cc_parent_data_6[] = {
229b4d15211STaniya Das 	{ .index = DT_BI_TCXO },
230b4d15211STaniya Das 	{ .hw = &disp_cc_pll1.clkr.hw },
231b4d15211STaniya Das 	{ .hw = &disp_cc_pll1.clkr.hw },
232b4d15211STaniya Das };
233b4d15211STaniya Das 
234b4d15211STaniya Das static const struct parent_map disp_cc_parent_map_7[] = {
235b4d15211STaniya Das 	{ P_BI_TCXO, 0 },
236b4d15211STaniya Das 	{ P_DISP_CC_PLL0_OUT_MAIN, 1 },
237b4d15211STaniya Das 	{ P_DISP_CC_PLL1_OUT_MAIN, 4 },
238b4d15211STaniya Das 	{ P_DISP_CC_PLL1_OUT_EVEN, 6 },
239b4d15211STaniya Das };
240b4d15211STaniya Das 
241b4d15211STaniya Das static const struct clk_parent_data disp_cc_parent_data_7[] = {
242b4d15211STaniya Das 	{ .index = DT_BI_TCXO },
243b4d15211STaniya Das 	{ .hw = &disp_cc_pll0.clkr.hw },
244b4d15211STaniya Das 	{ .hw = &disp_cc_pll1.clkr.hw },
245b4d15211STaniya Das 	{ .hw = &disp_cc_pll1.clkr.hw },
246b4d15211STaniya Das };
247b4d15211STaniya Das 
248b4d15211STaniya Das static const struct parent_map disp_cc_parent_map_8[] = {
249b4d15211STaniya Das 	{ P_BI_TCXO, 0 },
250b4d15211STaniya Das };
251b4d15211STaniya Das 
252b4d15211STaniya Das static const struct clk_parent_data disp_cc_parent_data_8[] = {
253b4d15211STaniya Das 	{ .index = DT_BI_TCXO },
254b4d15211STaniya Das };
255b4d15211STaniya Das 
256b4d15211STaniya Das static const struct parent_map disp_cc_parent_map_9[] = {
257b4d15211STaniya Das 	{ P_SLEEP_CLK, 0 },
258b4d15211STaniya Das };
259b4d15211STaniya Das 
260b4d15211STaniya Das static const struct clk_parent_data disp_cc_parent_data_9[] = {
261b4d15211STaniya Das 	{ .index = DT_SLEEP_CLK },
262b4d15211STaniya Das };
263b4d15211STaniya Das 
264b4d15211STaniya Das static const struct freq_tbl ftbl_disp_cc_esync0_clk_src[] = {
265b4d15211STaniya Das 	F(19200000, P_BI_TCXO, 1, 0, 0),
266b4d15211STaniya Das 	{ }
267b4d15211STaniya Das };
268b4d15211STaniya Das 
269b4d15211STaniya Das static struct clk_rcg2 disp_cc_esync0_clk_src = {
270b4d15211STaniya Das 	.cmd_rcgr = 0x80c0,
271b4d15211STaniya Das 	.mnd_width = 16,
272b4d15211STaniya Das 	.hid_width = 5,
273b4d15211STaniya Das 	.parent_map = disp_cc_parent_map_4,
274b4d15211STaniya Das 	.freq_tbl = ftbl_disp_cc_esync0_clk_src,
275b4d15211STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
276b4d15211STaniya Das 		.name = "disp_cc_esync0_clk_src",
277b4d15211STaniya Das 		.parent_data = disp_cc_parent_data_4,
278b4d15211STaniya Das 		.num_parents = ARRAY_SIZE(disp_cc_parent_data_4),
279b4d15211STaniya Das 		.flags = CLK_SET_RATE_PARENT,
280b4d15211STaniya Das 		.ops = &clk_rcg2_shared_ops,
281b4d15211STaniya Das 	},
282b4d15211STaniya Das };
283b4d15211STaniya Das 
284b4d15211STaniya Das static struct clk_rcg2 disp_cc_esync1_clk_src = {
285b4d15211STaniya Das 	.cmd_rcgr = 0x80d8,
286b4d15211STaniya Das 	.mnd_width = 16,
287b4d15211STaniya Das 	.hid_width = 5,
288b4d15211STaniya Das 	.parent_map = disp_cc_parent_map_4,
289b4d15211STaniya Das 	.freq_tbl = ftbl_disp_cc_esync0_clk_src,
290b4d15211STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
291b4d15211STaniya Das 		.name = "disp_cc_esync1_clk_src",
292b4d15211STaniya Das 		.parent_data = disp_cc_parent_data_4,
293b4d15211STaniya Das 		.num_parents = ARRAY_SIZE(disp_cc_parent_data_4),
294b4d15211STaniya Das 		.flags = CLK_SET_RATE_PARENT,
295b4d15211STaniya Das 		.ops = &clk_rcg2_shared_ops,
296b4d15211STaniya Das 	},
297b4d15211STaniya Das };
298b4d15211STaniya Das 
299b4d15211STaniya Das static const struct freq_tbl ftbl_disp_cc_mdss_ahb_clk_src[] = {
300b4d15211STaniya Das 	F(19200000, P_BI_TCXO, 1, 0, 0),
301b4d15211STaniya Das 	F(37500000, P_DISP_CC_PLL1_OUT_MAIN, 16, 0, 0),
302b4d15211STaniya Das 	F(75000000, P_DISP_CC_PLL1_OUT_MAIN, 8, 0, 0),
303b4d15211STaniya Das 	{ }
304b4d15211STaniya Das };
305b4d15211STaniya Das 
306b4d15211STaniya Das static struct clk_rcg2 disp_cc_mdss_ahb_clk_src = {
307b4d15211STaniya Das 	.cmd_rcgr = 0x8360,
308b4d15211STaniya Das 	.mnd_width = 0,
309b4d15211STaniya Das 	.hid_width = 5,
310b4d15211STaniya Das 	.parent_map = disp_cc_parent_map_6,
311b4d15211STaniya Das 	.freq_tbl = ftbl_disp_cc_mdss_ahb_clk_src,
312b4d15211STaniya Das 	.hw_clk_ctrl = true,
313b4d15211STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
314b4d15211STaniya Das 		.name = "disp_cc_mdss_ahb_clk_src",
315b4d15211STaniya Das 		.parent_data = disp_cc_parent_data_6,
316b4d15211STaniya Das 		.num_parents = ARRAY_SIZE(disp_cc_parent_data_6),
317b4d15211STaniya Das 		.flags = CLK_SET_RATE_PARENT,
318b4d15211STaniya Das 		.ops = &clk_rcg2_shared_ops,
319b4d15211STaniya Das 	},
320b4d15211STaniya Das };
321b4d15211STaniya Das 
322b4d15211STaniya Das static struct clk_rcg2 disp_cc_mdss_byte0_clk_src = {
323b4d15211STaniya Das 	.cmd_rcgr = 0x8180,
324b4d15211STaniya Das 	.mnd_width = 0,
325b4d15211STaniya Das 	.hid_width = 5,
326b4d15211STaniya Das 	.parent_map = disp_cc_parent_map_2,
327b4d15211STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
328b4d15211STaniya Das 		.name = "disp_cc_mdss_byte0_clk_src",
329b4d15211STaniya Das 		.parent_data = disp_cc_parent_data_2,
330b4d15211STaniya Das 		.num_parents = ARRAY_SIZE(disp_cc_parent_data_2),
331b4d15211STaniya Das 		.flags = CLK_SET_RATE_PARENT,
332b4d15211STaniya Das 		.ops = &clk_byte2_ops,
333b4d15211STaniya Das 	},
334b4d15211STaniya Das };
335b4d15211STaniya Das 
336b4d15211STaniya Das static struct clk_rcg2 disp_cc_mdss_byte1_clk_src = {
337b4d15211STaniya Das 	.cmd_rcgr = 0x819c,
338b4d15211STaniya Das 	.mnd_width = 0,
339b4d15211STaniya Das 	.hid_width = 5,
340b4d15211STaniya Das 	.parent_map = disp_cc_parent_map_2,
341b4d15211STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
342b4d15211STaniya Das 		.name = "disp_cc_mdss_byte1_clk_src",
343b4d15211STaniya Das 		.parent_data = disp_cc_parent_data_2,
344b4d15211STaniya Das 		.num_parents = ARRAY_SIZE(disp_cc_parent_data_2),
345b4d15211STaniya Das 		.flags = CLK_SET_RATE_PARENT,
346b4d15211STaniya Das 		.ops = &clk_byte2_ops,
347b4d15211STaniya Das 	},
348b4d15211STaniya Das };
349b4d15211STaniya Das 
350b4d15211STaniya Das static struct clk_rcg2 disp_cc_mdss_dptx0_aux_clk_src = {
351b4d15211STaniya Das 	.cmd_rcgr = 0x8234,
352b4d15211STaniya Das 	.mnd_width = 0,
353b4d15211STaniya Das 	.hid_width = 5,
354b4d15211STaniya Das 	.parent_map = disp_cc_parent_map_1,
355b4d15211STaniya Das 	.freq_tbl = ftbl_disp_cc_esync0_clk_src,
356b4d15211STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
357b4d15211STaniya Das 		.name = "disp_cc_mdss_dptx0_aux_clk_src",
358b4d15211STaniya Das 		.parent_data = disp_cc_parent_data_1,
359b4d15211STaniya Das 		.num_parents = ARRAY_SIZE(disp_cc_parent_data_1),
360b4d15211STaniya Das 		.flags = CLK_SET_RATE_PARENT,
361b4d15211STaniya Das 		.ops = &clk_rcg2_shared_ops,
362b4d15211STaniya Das 	},
363b4d15211STaniya Das };
364b4d15211STaniya Das 
365b4d15211STaniya Das static struct clk_rcg2 disp_cc_mdss_dptx0_link_clk_src = {
366b4d15211STaniya Das 	.cmd_rcgr = 0x81e8,
367b4d15211STaniya Das 	.mnd_width = 0,
368b4d15211STaniya Das 	.hid_width = 5,
369b4d15211STaniya Das 	.parent_map = disp_cc_parent_map_3,
370b4d15211STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
371b4d15211STaniya Das 		.name = "disp_cc_mdss_dptx0_link_clk_src",
372b4d15211STaniya Das 		.parent_data = disp_cc_parent_data_3,
373b4d15211STaniya Das 		.num_parents = ARRAY_SIZE(disp_cc_parent_data_3),
374b4d15211STaniya Das 		.flags = CLK_SET_RATE_PARENT,
375b4d15211STaniya Das 		.ops = &clk_byte2_ops,
376b4d15211STaniya Das 	},
377b4d15211STaniya Das };
378b4d15211STaniya Das 
379b4d15211STaniya Das static struct clk_rcg2 disp_cc_mdss_dptx0_pixel0_clk_src = {
380b4d15211STaniya Das 	.cmd_rcgr = 0x8204,
381b4d15211STaniya Das 	.mnd_width = 16,
382b4d15211STaniya Das 	.hid_width = 5,
383b4d15211STaniya Das 	.parent_map = disp_cc_parent_map_0,
384b4d15211STaniya Das 	.freq_tbl = ftbl_disp_cc_esync0_clk_src,
385b4d15211STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
386b4d15211STaniya Das 		.name = "disp_cc_mdss_dptx0_pixel0_clk_src",
387b4d15211STaniya Das 		.parent_data = disp_cc_parent_data_0,
388b4d15211STaniya Das 		.num_parents = ARRAY_SIZE(disp_cc_parent_data_0),
389b4d15211STaniya Das 		.flags = CLK_SET_RATE_PARENT,
390b4d15211STaniya Das 		.ops = &clk_dp_ops,
391b4d15211STaniya Das 	},
392b4d15211STaniya Das };
393b4d15211STaniya Das 
394b4d15211STaniya Das static struct clk_rcg2 disp_cc_mdss_dptx0_pixel1_clk_src = {
395b4d15211STaniya Das 	.cmd_rcgr = 0x821c,
396b4d15211STaniya Das 	.mnd_width = 16,
397b4d15211STaniya Das 	.hid_width = 5,
398b4d15211STaniya Das 	.parent_map = disp_cc_parent_map_0,
399b4d15211STaniya Das 	.freq_tbl = ftbl_disp_cc_esync0_clk_src,
400b4d15211STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
401b4d15211STaniya Das 		.name = "disp_cc_mdss_dptx0_pixel1_clk_src",
402b4d15211STaniya Das 		.parent_data = disp_cc_parent_data_0,
403b4d15211STaniya Das 		.num_parents = ARRAY_SIZE(disp_cc_parent_data_0),
404b4d15211STaniya Das 		.flags = CLK_SET_RATE_PARENT,
405b4d15211STaniya Das 		.ops = &clk_dp_ops,
406b4d15211STaniya Das 	},
407b4d15211STaniya Das };
408b4d15211STaniya Das 
409b4d15211STaniya Das static struct clk_rcg2 disp_cc_mdss_dptx1_aux_clk_src = {
410b4d15211STaniya Das 	.cmd_rcgr = 0x8298,
411b4d15211STaniya Das 	.mnd_width = 0,
412b4d15211STaniya Das 	.hid_width = 5,
413b4d15211STaniya Das 	.parent_map = disp_cc_parent_map_1,
414b4d15211STaniya Das 	.freq_tbl = ftbl_disp_cc_esync0_clk_src,
415b4d15211STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
416b4d15211STaniya Das 		.name = "disp_cc_mdss_dptx1_aux_clk_src",
417b4d15211STaniya Das 		.parent_data = disp_cc_parent_data_1,
418b4d15211STaniya Das 		.num_parents = ARRAY_SIZE(disp_cc_parent_data_1),
419b4d15211STaniya Das 		.flags = CLK_SET_RATE_PARENT,
420b4d15211STaniya Das 		.ops = &clk_dp_ops,
421b4d15211STaniya Das 	},
422b4d15211STaniya Das };
423b4d15211STaniya Das 
424b4d15211STaniya Das static struct clk_rcg2 disp_cc_mdss_dptx1_link_clk_src = {
425b4d15211STaniya Das 	.cmd_rcgr = 0x827c,
426b4d15211STaniya Das 	.mnd_width = 0,
427b4d15211STaniya Das 	.hid_width = 5,
428b4d15211STaniya Das 	.parent_map = disp_cc_parent_map_3,
429b4d15211STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
430b4d15211STaniya Das 		.name = "disp_cc_mdss_dptx1_link_clk_src",
431b4d15211STaniya Das 		.parent_data = disp_cc_parent_data_3,
432b4d15211STaniya Das 		.num_parents = ARRAY_SIZE(disp_cc_parent_data_3),
433b4d15211STaniya Das 		.flags = CLK_SET_RATE_PARENT,
434b4d15211STaniya Das 		.ops = &clk_byte2_ops,
435b4d15211STaniya Das 	},
436b4d15211STaniya Das };
437b4d15211STaniya Das 
438b4d15211STaniya Das static struct clk_rcg2 disp_cc_mdss_dptx1_pixel0_clk_src = {
439b4d15211STaniya Das 	.cmd_rcgr = 0x824c,
440b4d15211STaniya Das 	.mnd_width = 16,
441b4d15211STaniya Das 	.hid_width = 5,
442b4d15211STaniya Das 	.parent_map = disp_cc_parent_map_0,
443b4d15211STaniya Das 	.freq_tbl = ftbl_disp_cc_esync0_clk_src,
444b4d15211STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
445b4d15211STaniya Das 		.name = "disp_cc_mdss_dptx1_pixel0_clk_src",
446b4d15211STaniya Das 		.parent_data = disp_cc_parent_data_0,
447b4d15211STaniya Das 		.num_parents = ARRAY_SIZE(disp_cc_parent_data_0),
448b4d15211STaniya Das 		.flags = CLK_SET_RATE_PARENT,
449b4d15211STaniya Das 		.ops = &clk_dp_ops,
450b4d15211STaniya Das 	},
451b4d15211STaniya Das };
452b4d15211STaniya Das 
453b4d15211STaniya Das static struct clk_rcg2 disp_cc_mdss_dptx1_pixel1_clk_src = {
454b4d15211STaniya Das 	.cmd_rcgr = 0x8264,
455b4d15211STaniya Das 	.mnd_width = 16,
456b4d15211STaniya Das 	.hid_width = 5,
457b4d15211STaniya Das 	.parent_map = disp_cc_parent_map_0,
458b4d15211STaniya Das 	.freq_tbl = ftbl_disp_cc_esync0_clk_src,
459b4d15211STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
460b4d15211STaniya Das 		.name = "disp_cc_mdss_dptx1_pixel1_clk_src",
461b4d15211STaniya Das 		.parent_data = disp_cc_parent_data_0,
462b4d15211STaniya Das 		.num_parents = ARRAY_SIZE(disp_cc_parent_data_0),
463b4d15211STaniya Das 		.flags = CLK_SET_RATE_PARENT,
464b4d15211STaniya Das 		.ops = &clk_dp_ops,
465b4d15211STaniya Das 	},
466b4d15211STaniya Das };
467b4d15211STaniya Das 
468b4d15211STaniya Das static struct clk_rcg2 disp_cc_mdss_dptx2_aux_clk_src = {
469b4d15211STaniya Das 	.cmd_rcgr = 0x82fc,
470b4d15211STaniya Das 	.mnd_width = 0,
471b4d15211STaniya Das 	.hid_width = 5,
472b4d15211STaniya Das 	.parent_map = disp_cc_parent_map_1,
473b4d15211STaniya Das 	.freq_tbl = ftbl_disp_cc_esync0_clk_src,
474b4d15211STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
475b4d15211STaniya Das 		.name = "disp_cc_mdss_dptx2_aux_clk_src",
476b4d15211STaniya Das 		.parent_data = disp_cc_parent_data_1,
477b4d15211STaniya Das 		.num_parents = ARRAY_SIZE(disp_cc_parent_data_1),
478b4d15211STaniya Das 		.flags = CLK_SET_RATE_PARENT,
479b4d15211STaniya Das 		.ops = &clk_rcg2_shared_ops,
480b4d15211STaniya Das 	},
481b4d15211STaniya Das };
482b4d15211STaniya Das 
483b4d15211STaniya Das static struct clk_rcg2 disp_cc_mdss_dptx2_link_clk_src = {
484b4d15211STaniya Das 	.cmd_rcgr = 0x82b0,
485b4d15211STaniya Das 	.mnd_width = 0,
486b4d15211STaniya Das 	.hid_width = 5,
487b4d15211STaniya Das 	.parent_map = disp_cc_parent_map_3,
488b4d15211STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
489b4d15211STaniya Das 		.name = "disp_cc_mdss_dptx2_link_clk_src",
490b4d15211STaniya Das 		.parent_data = disp_cc_parent_data_3,
491b4d15211STaniya Das 		.num_parents = ARRAY_SIZE(disp_cc_parent_data_3),
492b4d15211STaniya Das 		.flags = CLK_SET_RATE_PARENT,
493b4d15211STaniya Das 		.ops = &clk_byte2_ops,
494b4d15211STaniya Das 	},
495b4d15211STaniya Das };
496b4d15211STaniya Das 
497b4d15211STaniya Das static struct clk_rcg2 disp_cc_mdss_dptx2_pixel0_clk_src = {
498b4d15211STaniya Das 	.cmd_rcgr = 0x82cc,
499b4d15211STaniya Das 	.mnd_width = 16,
500b4d15211STaniya Das 	.hid_width = 5,
501b4d15211STaniya Das 	.parent_map = disp_cc_parent_map_0,
502b4d15211STaniya Das 	.freq_tbl = ftbl_disp_cc_esync0_clk_src,
503b4d15211STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
504b4d15211STaniya Das 		.name = "disp_cc_mdss_dptx2_pixel0_clk_src",
505b4d15211STaniya Das 		.parent_data = disp_cc_parent_data_0,
506b4d15211STaniya Das 		.num_parents = ARRAY_SIZE(disp_cc_parent_data_0),
507b4d15211STaniya Das 		.flags = CLK_SET_RATE_PARENT,
508b4d15211STaniya Das 		.ops = &clk_dp_ops,
509b4d15211STaniya Das 	},
510b4d15211STaniya Das };
511b4d15211STaniya Das 
512b4d15211STaniya Das static struct clk_rcg2 disp_cc_mdss_dptx2_pixel1_clk_src = {
513b4d15211STaniya Das 	.cmd_rcgr = 0x82e4,
514b4d15211STaniya Das 	.mnd_width = 16,
515b4d15211STaniya Das 	.hid_width = 5,
516b4d15211STaniya Das 	.parent_map = disp_cc_parent_map_0,
517b4d15211STaniya Das 	.freq_tbl = ftbl_disp_cc_esync0_clk_src,
518b4d15211STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
519b4d15211STaniya Das 		.name = "disp_cc_mdss_dptx2_pixel1_clk_src",
520b4d15211STaniya Das 		.parent_data = disp_cc_parent_data_0,
521b4d15211STaniya Das 		.num_parents = ARRAY_SIZE(disp_cc_parent_data_0),
522b4d15211STaniya Das 		.flags = CLK_SET_RATE_PARENT,
523b4d15211STaniya Das 		.ops = &clk_dp_ops,
524b4d15211STaniya Das 	},
525b4d15211STaniya Das };
526b4d15211STaniya Das 
527b4d15211STaniya Das static struct clk_rcg2 disp_cc_mdss_dptx3_aux_clk_src = {
528b4d15211STaniya Das 	.cmd_rcgr = 0x8348,
529b4d15211STaniya Das 	.mnd_width = 0,
530b4d15211STaniya Das 	.hid_width = 5,
531b4d15211STaniya Das 	.parent_map = disp_cc_parent_map_1,
532b4d15211STaniya Das 	.freq_tbl = ftbl_disp_cc_esync0_clk_src,
533b4d15211STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
534b4d15211STaniya Das 		.name = "disp_cc_mdss_dptx3_aux_clk_src",
535b4d15211STaniya Das 		.parent_data = disp_cc_parent_data_1,
536b4d15211STaniya Das 		.num_parents = ARRAY_SIZE(disp_cc_parent_data_1),
537b4d15211STaniya Das 		.flags = CLK_SET_RATE_PARENT,
538b4d15211STaniya Das 		.ops = &clk_rcg2_shared_ops,
539b4d15211STaniya Das 	},
540b4d15211STaniya Das };
541b4d15211STaniya Das 
542b4d15211STaniya Das static struct clk_rcg2 disp_cc_mdss_dptx3_link_clk_src = {
543b4d15211STaniya Das 	.cmd_rcgr = 0x832c,
544b4d15211STaniya Das 	.mnd_width = 0,
545b4d15211STaniya Das 	.hid_width = 5,
546b4d15211STaniya Das 	.parent_map = disp_cc_parent_map_3,
547b4d15211STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
548b4d15211STaniya Das 		.name = "disp_cc_mdss_dptx3_link_clk_src",
549b4d15211STaniya Das 		.parent_data = disp_cc_parent_data_3,
550b4d15211STaniya Das 		.num_parents = ARRAY_SIZE(disp_cc_parent_data_3),
551b4d15211STaniya Das 		.flags = CLK_SET_RATE_PARENT,
552b4d15211STaniya Das 		.ops = &clk_byte2_ops,
553b4d15211STaniya Das 	},
554b4d15211STaniya Das };
555b4d15211STaniya Das 
556b4d15211STaniya Das static struct clk_rcg2 disp_cc_mdss_dptx3_pixel0_clk_src = {
557b4d15211STaniya Das 	.cmd_rcgr = 0x8314,
558b4d15211STaniya Das 	.mnd_width = 16,
559b4d15211STaniya Das 	.hid_width = 5,
560b4d15211STaniya Das 	.parent_map = disp_cc_parent_map_0,
561b4d15211STaniya Das 	.freq_tbl = ftbl_disp_cc_esync0_clk_src,
562b4d15211STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
563b4d15211STaniya Das 		.name = "disp_cc_mdss_dptx3_pixel0_clk_src",
564b4d15211STaniya Das 		.parent_data = disp_cc_parent_data_0,
565b4d15211STaniya Das 		.num_parents = ARRAY_SIZE(disp_cc_parent_data_0),
566b4d15211STaniya Das 		.flags = CLK_SET_RATE_PARENT,
567b4d15211STaniya Das 		.ops = &clk_dp_ops,
568b4d15211STaniya Das 	},
569b4d15211STaniya Das };
570b4d15211STaniya Das 
571b4d15211STaniya Das static struct clk_rcg2 disp_cc_mdss_esc0_clk_src = {
572b4d15211STaniya Das 	.cmd_rcgr = 0x81b8,
573b4d15211STaniya Das 	.mnd_width = 0,
574b4d15211STaniya Das 	.hid_width = 5,
575b4d15211STaniya Das 	.parent_map = disp_cc_parent_map_5,
576b4d15211STaniya Das 	.freq_tbl = ftbl_disp_cc_esync0_clk_src,
577b4d15211STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
578b4d15211STaniya Das 		.name = "disp_cc_mdss_esc0_clk_src",
579b4d15211STaniya Das 		.parent_data = disp_cc_parent_data_5,
580b4d15211STaniya Das 		.num_parents = ARRAY_SIZE(disp_cc_parent_data_5),
581b4d15211STaniya Das 		.flags = CLK_SET_RATE_PARENT,
582b4d15211STaniya Das 		.ops = &clk_rcg2_shared_ops,
583b4d15211STaniya Das 	},
584b4d15211STaniya Das };
585b4d15211STaniya Das 
586b4d15211STaniya Das static struct clk_rcg2 disp_cc_mdss_esc1_clk_src = {
587b4d15211STaniya Das 	.cmd_rcgr = 0x81d0,
588b4d15211STaniya Das 	.mnd_width = 0,
589b4d15211STaniya Das 	.hid_width = 5,
590b4d15211STaniya Das 	.parent_map = disp_cc_parent_map_5,
591b4d15211STaniya Das 	.freq_tbl = ftbl_disp_cc_esync0_clk_src,
592b4d15211STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
593b4d15211STaniya Das 		.name = "disp_cc_mdss_esc1_clk_src",
594b4d15211STaniya Das 		.parent_data = disp_cc_parent_data_5,
595b4d15211STaniya Das 		.num_parents = ARRAY_SIZE(disp_cc_parent_data_5),
596b4d15211STaniya Das 		.flags = CLK_SET_RATE_PARENT,
597b4d15211STaniya Das 		.ops = &clk_rcg2_shared_ops,
598b4d15211STaniya Das 	},
599b4d15211STaniya Das };
600b4d15211STaniya Das 
601b4d15211STaniya Das static const struct freq_tbl ftbl_disp_cc_mdss_mdp_clk_src[] = {
602b4d15211STaniya Das 	F(19200000, P_BI_TCXO, 1, 0, 0),
603b4d15211STaniya Das 	F(85714286, P_DISP_CC_PLL0_OUT_MAIN, 3, 0, 0),
604b4d15211STaniya Das 	F(100000000, P_DISP_CC_PLL0_OUT_MAIN, 3, 0, 0),
605b4d15211STaniya Das 	F(150000000, P_DISP_CC_PLL0_OUT_MAIN, 3, 0, 0),
606b4d15211STaniya Das 	F(156000000, P_DISP_CC_PLL0_OUT_MAIN, 3, 0, 0),
607b4d15211STaniya Das 	F(205000000, P_DISP_CC_PLL0_OUT_MAIN, 3, 0, 0),
608b4d15211STaniya Das 	F(337000000, P_DISP_CC_PLL0_OUT_MAIN, 3, 0, 0),
609b4d15211STaniya Das 	F(417000000, P_DISP_CC_PLL0_OUT_MAIN, 3, 0, 0),
610b4d15211STaniya Das 	F(532000000, P_DISP_CC_PLL0_OUT_MAIN, 3, 0, 0),
611b4d15211STaniya Das 	F(600000000, P_DISP_CC_PLL0_OUT_MAIN, 3, 0, 0),
612b4d15211STaniya Das 	F(660000000, P_DISP_CC_PLL0_OUT_MAIN, 3, 0, 0),
613b4d15211STaniya Das 	F(717000000, P_DISP_CC_PLL0_OUT_MAIN, 3, 0, 0),
614b4d15211STaniya Das 	{ }
615b4d15211STaniya Das };
616b4d15211STaniya Das 
617b4d15211STaniya Das static struct clk_rcg2 disp_cc_mdss_mdp_clk_src = {
618b4d15211STaniya Das 	.cmd_rcgr = 0x8150,
619b4d15211STaniya Das 	.mnd_width = 0,
620b4d15211STaniya Das 	.hid_width = 5,
621b4d15211STaniya Das 	.parent_map = disp_cc_parent_map_7,
622b4d15211STaniya Das 	.freq_tbl = ftbl_disp_cc_mdss_mdp_clk_src,
623b4d15211STaniya Das 	.hw_clk_ctrl = true,
624b4d15211STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
625b4d15211STaniya Das 		.name = "disp_cc_mdss_mdp_clk_src",
626b4d15211STaniya Das 		.parent_data = disp_cc_parent_data_7,
627b4d15211STaniya Das 		.num_parents = ARRAY_SIZE(disp_cc_parent_data_7),
628b4d15211STaniya Das 		.flags = CLK_SET_RATE_PARENT,
629b4d15211STaniya Das 		.ops = &clk_rcg2_shared_ops,
630b4d15211STaniya Das 	},
631b4d15211STaniya Das };
632b4d15211STaniya Das 
633b4d15211STaniya Das static struct clk_rcg2 disp_cc_mdss_pclk0_clk_src = {
634b4d15211STaniya Das 	.cmd_rcgr = 0x8108,
635b4d15211STaniya Das 	.mnd_width = 8,
636b4d15211STaniya Das 	.hid_width = 5,
637b4d15211STaniya Das 	.parent_map = disp_cc_parent_map_2,
638b4d15211STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
639b4d15211STaniya Das 		.name = "disp_cc_mdss_pclk0_clk_src",
640b4d15211STaniya Das 		.parent_data = disp_cc_parent_data_2,
641b4d15211STaniya Das 		.num_parents = ARRAY_SIZE(disp_cc_parent_data_2),
642b4d15211STaniya Das 		.flags = CLK_SET_RATE_PARENT,
643b4d15211STaniya Das 		.ops = &clk_pixel_ops,
644b4d15211STaniya Das 	},
645b4d15211STaniya Das };
646b4d15211STaniya Das 
647b4d15211STaniya Das static struct clk_rcg2 disp_cc_mdss_pclk1_clk_src = {
648b4d15211STaniya Das 	.cmd_rcgr = 0x8120,
649b4d15211STaniya Das 	.mnd_width = 8,
650b4d15211STaniya Das 	.hid_width = 5,
651b4d15211STaniya Das 	.parent_map = disp_cc_parent_map_2,
652b4d15211STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
653b4d15211STaniya Das 		.name = "disp_cc_mdss_pclk1_clk_src",
654b4d15211STaniya Das 		.parent_data = disp_cc_parent_data_2,
655b4d15211STaniya Das 		.num_parents = ARRAY_SIZE(disp_cc_parent_data_2),
656b4d15211STaniya Das 		.flags = CLK_SET_RATE_PARENT,
657b4d15211STaniya Das 		.ops = &clk_pixel_ops,
658b4d15211STaniya Das 	},
659b4d15211STaniya Das };
660b4d15211STaniya Das 
661b4d15211STaniya Das static struct clk_rcg2 disp_cc_mdss_pclk2_clk_src = {
662b4d15211STaniya Das 	.cmd_rcgr = 0x8138,
663b4d15211STaniya Das 	.mnd_width = 8,
664b4d15211STaniya Das 	.hid_width = 5,
665b4d15211STaniya Das 	.parent_map = disp_cc_parent_map_2,
666b4d15211STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
667b4d15211STaniya Das 		.name = "disp_cc_mdss_pclk2_clk_src",
668b4d15211STaniya Das 		.parent_data = disp_cc_parent_data_2,
669b4d15211STaniya Das 		.num_parents = ARRAY_SIZE(disp_cc_parent_data_2),
670b4d15211STaniya Das 		.flags = CLK_SET_RATE_PARENT,
671b4d15211STaniya Das 		.ops = &clk_pixel_ops,
672b4d15211STaniya Das 	},
673b4d15211STaniya Das };
674b4d15211STaniya Das 
675b4d15211STaniya Das static struct clk_rcg2 disp_cc_mdss_vsync_clk_src = {
676b4d15211STaniya Das 	.cmd_rcgr = 0x8168,
677b4d15211STaniya Das 	.mnd_width = 0,
678b4d15211STaniya Das 	.hid_width = 5,
679b4d15211STaniya Das 	.parent_map = disp_cc_parent_map_1,
680b4d15211STaniya Das 	.freq_tbl = ftbl_disp_cc_esync0_clk_src,
681b4d15211STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
682b4d15211STaniya Das 		.name = "disp_cc_mdss_vsync_clk_src",
683b4d15211STaniya Das 		.parent_data = disp_cc_parent_data_1,
684b4d15211STaniya Das 		.num_parents = ARRAY_SIZE(disp_cc_parent_data_1),
685b4d15211STaniya Das 		.flags = CLK_SET_RATE_PARENT,
686b4d15211STaniya Das 		.ops = &clk_rcg2_shared_ops,
687b4d15211STaniya Das 	},
688b4d15211STaniya Das };
689b4d15211STaniya Das 
690b4d15211STaniya Das static struct clk_rcg2 disp_cc_osc_clk_src = {
691b4d15211STaniya Das 	.cmd_rcgr = 0x80f0,
692b4d15211STaniya Das 	.mnd_width = 0,
693b4d15211STaniya Das 	.hid_width = 5,
694b4d15211STaniya Das 	.parent_map = disp_cc_parent_map_8,
695b4d15211STaniya Das 	.freq_tbl = ftbl_disp_cc_esync0_clk_src,
696b4d15211STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
697b4d15211STaniya Das 		.name = "disp_cc_osc_clk_src",
698b4d15211STaniya Das 		.parent_data = disp_cc_parent_data_8,
699b4d15211STaniya Das 		.num_parents = ARRAY_SIZE(disp_cc_parent_data_8),
700b4d15211STaniya Das 		.flags = CLK_SET_RATE_PARENT,
701b4d15211STaniya Das 		.ops = &clk_rcg2_shared_ops,
702b4d15211STaniya Das 	},
703b4d15211STaniya Das };
704b4d15211STaniya Das 
705b4d15211STaniya Das static const struct freq_tbl ftbl_disp_cc_sleep_clk_src[] = {
706b4d15211STaniya Das 	F(32000, P_SLEEP_CLK, 1, 0, 0),
707b4d15211STaniya Das 	{ }
708b4d15211STaniya Das };
709b4d15211STaniya Das 
710b4d15211STaniya Das static struct clk_rcg2 disp_cc_sleep_clk_src = {
711b4d15211STaniya Das 	.cmd_rcgr = 0xe064,
712b4d15211STaniya Das 	.mnd_width = 0,
713b4d15211STaniya Das 	.hid_width = 5,
714b4d15211STaniya Das 	.parent_map = disp_cc_parent_map_9,
715b4d15211STaniya Das 	.freq_tbl = ftbl_disp_cc_sleep_clk_src,
716b4d15211STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
717b4d15211STaniya Das 		.name = "disp_cc_sleep_clk_src",
718b4d15211STaniya Das 		.parent_data = disp_cc_parent_data_9,
719b4d15211STaniya Das 		.num_parents = ARRAY_SIZE(disp_cc_parent_data_9),
720b4d15211STaniya Das 		.flags = CLK_SET_RATE_PARENT,
721b4d15211STaniya Das 		.ops = &clk_rcg2_shared_ops,
722b4d15211STaniya Das 	},
723b4d15211STaniya Das };
724b4d15211STaniya Das 
725b4d15211STaniya Das static struct clk_rcg2 disp_cc_xo_clk_src = {
726b4d15211STaniya Das 	.cmd_rcgr = 0xe044,
727b4d15211STaniya Das 	.mnd_width = 0,
728b4d15211STaniya Das 	.hid_width = 5,
729b4d15211STaniya Das 	.parent_map = disp_cc_parent_map_1,
730b4d15211STaniya Das 	.freq_tbl = ftbl_disp_cc_esync0_clk_src,
731b4d15211STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
732b4d15211STaniya Das 		.name = "disp_cc_xo_clk_src",
733b4d15211STaniya Das 		.parent_data = disp_cc_parent_data_1,
734b4d15211STaniya Das 		.num_parents = ARRAY_SIZE(disp_cc_parent_data_1),
735b4d15211STaniya Das 		.flags = CLK_SET_RATE_PARENT,
736b4d15211STaniya Das 		.ops = &clk_rcg2_shared_ops,
737b4d15211STaniya Das 	},
738b4d15211STaniya Das };
739b4d15211STaniya Das 
740b4d15211STaniya Das static struct clk_regmap_div disp_cc_mdss_byte0_div_clk_src = {
741b4d15211STaniya Das 	.reg = 0x8198,
742b4d15211STaniya Das 	.shift = 0,
743b4d15211STaniya Das 	.width = 4,
744b4d15211STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
745b4d15211STaniya Das 		.name = "disp_cc_mdss_byte0_div_clk_src",
746b4d15211STaniya Das 		.parent_hws = (const struct clk_hw*[]) {
747b4d15211STaniya Das 			&disp_cc_mdss_byte0_clk_src.clkr.hw,
748b4d15211STaniya Das 		},
749b4d15211STaniya Das 		.num_parents = 1,
750b4d15211STaniya Das 		.flags = CLK_SET_RATE_PARENT,
751b4d15211STaniya Das 		.ops = &clk_regmap_div_ops,
752b4d15211STaniya Das 	},
753b4d15211STaniya Das };
754b4d15211STaniya Das 
755b4d15211STaniya Das static struct clk_regmap_div disp_cc_mdss_byte1_div_clk_src = {
756b4d15211STaniya Das 	.reg = 0x81b4,
757b4d15211STaniya Das 	.shift = 0,
758b4d15211STaniya Das 	.width = 4,
759b4d15211STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
760b4d15211STaniya Das 		.name = "disp_cc_mdss_byte1_div_clk_src",
761b4d15211STaniya Das 		.parent_hws = (const struct clk_hw*[]) {
762b4d15211STaniya Das 			&disp_cc_mdss_byte1_clk_src.clkr.hw,
763b4d15211STaniya Das 		},
764b4d15211STaniya Das 		.num_parents = 1,
765b4d15211STaniya Das 		.flags = CLK_SET_RATE_PARENT,
766b4d15211STaniya Das 		.ops = &clk_regmap_div_ops,
767b4d15211STaniya Das 	},
768b4d15211STaniya Das };
769b4d15211STaniya Das 
770b4d15211STaniya Das static struct clk_regmap_div disp_cc_mdss_dptx0_link_div_clk_src = {
771b4d15211STaniya Das 	.reg = 0x8200,
772b4d15211STaniya Das 	.shift = 0,
773b4d15211STaniya Das 	.width = 4,
774b4d15211STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
775b4d15211STaniya Das 		.name = "disp_cc_mdss_dptx0_link_div_clk_src",
776b4d15211STaniya Das 		.parent_hws = (const struct clk_hw*[]) {
777b4d15211STaniya Das 			&disp_cc_mdss_dptx0_link_clk_src.clkr.hw,
778b4d15211STaniya Das 		},
779b4d15211STaniya Das 		.num_parents = 1,
780b4d15211STaniya Das 		.flags = CLK_SET_RATE_PARENT,
781b4d15211STaniya Das 		.ops = &clk_regmap_div_ro_ops,
782b4d15211STaniya Das 	},
783b4d15211STaniya Das };
784b4d15211STaniya Das 
785b4d15211STaniya Das static struct clk_regmap_div disp_cc_mdss_dptx0_link_dpin_div_clk_src = {
786b4d15211STaniya Das 	.reg = 0x838c,
787b4d15211STaniya Das 	.shift = 0,
788b4d15211STaniya Das 	.width = 4,
789b4d15211STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
790b4d15211STaniya Das 		.name = "disp_cc_mdss_dptx0_link_dpin_div_clk_src",
791b4d15211STaniya Das 		.parent_hws = (const struct clk_hw*[]) {
792b4d15211STaniya Das 			&disp_cc_mdss_dptx0_link_clk_src.clkr.hw,
793b4d15211STaniya Das 		},
794b4d15211STaniya Das 		.num_parents = 1,
795b4d15211STaniya Das 		.flags = CLK_SET_RATE_PARENT,
796b4d15211STaniya Das 		.ops = &clk_regmap_div_ro_ops,
797b4d15211STaniya Das 	},
798b4d15211STaniya Das };
799b4d15211STaniya Das 
800b4d15211STaniya Das static struct clk_regmap_div disp_cc_mdss_dptx1_link_div_clk_src = {
801b4d15211STaniya Das 	.reg = 0x8294,
802b4d15211STaniya Das 	.shift = 0,
803b4d15211STaniya Das 	.width = 4,
804b4d15211STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
805b4d15211STaniya Das 		.name = "disp_cc_mdss_dptx1_link_div_clk_src",
806b4d15211STaniya Das 		.parent_hws = (const struct clk_hw*[]) {
807b4d15211STaniya Das 			&disp_cc_mdss_dptx1_link_clk_src.clkr.hw,
808b4d15211STaniya Das 		},
809b4d15211STaniya Das 		.num_parents = 1,
810b4d15211STaniya Das 		.flags = CLK_SET_RATE_PARENT,
811b4d15211STaniya Das 		.ops = &clk_regmap_div_ro_ops,
812b4d15211STaniya Das 	},
813b4d15211STaniya Das };
814b4d15211STaniya Das 
815b4d15211STaniya Das static struct clk_regmap_div disp_cc_mdss_dptx1_link_dpin_div_clk_src = {
816b4d15211STaniya Das 	.reg = 0x8390,
817b4d15211STaniya Das 	.shift = 0,
818b4d15211STaniya Das 	.width = 4,
819b4d15211STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
820b4d15211STaniya Das 		.name = "disp_cc_mdss_dptx1_link_dpin_div_clk_src",
821b4d15211STaniya Das 		.parent_hws = (const struct clk_hw*[]) {
822b4d15211STaniya Das 			&disp_cc_mdss_dptx1_link_clk_src.clkr.hw,
823b4d15211STaniya Das 		},
824b4d15211STaniya Das 		.num_parents = 1,
825b4d15211STaniya Das 		.flags = CLK_SET_RATE_PARENT,
826b4d15211STaniya Das 		.ops = &clk_regmap_div_ro_ops,
827b4d15211STaniya Das 	},
828b4d15211STaniya Das };
829b4d15211STaniya Das 
830b4d15211STaniya Das static struct clk_regmap_div disp_cc_mdss_dptx2_link_div_clk_src = {
831b4d15211STaniya Das 	.reg = 0x82c8,
832b4d15211STaniya Das 	.shift = 0,
833b4d15211STaniya Das 	.width = 4,
834b4d15211STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
835b4d15211STaniya Das 		.name = "disp_cc_mdss_dptx2_link_div_clk_src",
836b4d15211STaniya Das 		.parent_hws = (const struct clk_hw*[]) {
837b4d15211STaniya Das 			&disp_cc_mdss_dptx2_link_clk_src.clkr.hw,
838b4d15211STaniya Das 		},
839b4d15211STaniya Das 		.num_parents = 1,
840b4d15211STaniya Das 		.flags = CLK_SET_RATE_PARENT,
841b4d15211STaniya Das 		.ops = &clk_regmap_div_ro_ops,
842b4d15211STaniya Das 	},
843b4d15211STaniya Das };
844b4d15211STaniya Das 
845b4d15211STaniya Das static struct clk_regmap_div disp_cc_mdss_dptx2_link_dpin_div_clk_src = {
846b4d15211STaniya Das 	.reg = 0x8394,
847b4d15211STaniya Das 	.shift = 0,
848b4d15211STaniya Das 	.width = 4,
849b4d15211STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
850b4d15211STaniya Das 		.name = "disp_cc_mdss_dptx2_link_dpin_div_clk_src",
851b4d15211STaniya Das 		.parent_hws = (const struct clk_hw*[]) {
852b4d15211STaniya Das 			&disp_cc_mdss_dptx2_link_clk_src.clkr.hw,
853b4d15211STaniya Das 		},
854b4d15211STaniya Das 		.num_parents = 1,
855b4d15211STaniya Das 		.flags = CLK_SET_RATE_PARENT,
856b4d15211STaniya Das 		.ops = &clk_regmap_div_ro_ops,
857b4d15211STaniya Das 	},
858b4d15211STaniya Das };
859b4d15211STaniya Das 
860b4d15211STaniya Das static struct clk_regmap_div disp_cc_mdss_dptx3_link_div_clk_src = {
861b4d15211STaniya Das 	.reg = 0x8344,
862b4d15211STaniya Das 	.shift = 0,
863b4d15211STaniya Das 	.width = 4,
864b4d15211STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
865b4d15211STaniya Das 		.name = "disp_cc_mdss_dptx3_link_div_clk_src",
866b4d15211STaniya Das 		.parent_hws = (const struct clk_hw*[]) {
867b4d15211STaniya Das 			&disp_cc_mdss_dptx3_link_clk_src.clkr.hw,
868b4d15211STaniya Das 		},
869b4d15211STaniya Das 		.num_parents = 1,
870b4d15211STaniya Das 		.flags = CLK_SET_RATE_PARENT,
871b4d15211STaniya Das 		.ops = &clk_regmap_div_ro_ops,
872b4d15211STaniya Das 	},
873b4d15211STaniya Das };
874b4d15211STaniya Das 
875b4d15211STaniya Das static struct clk_regmap_div disp_cc_mdss_dptx3_link_dpin_div_clk_src = {
876b4d15211STaniya Das 	.reg = 0x8398,
877b4d15211STaniya Das 	.shift = 0,
878b4d15211STaniya Das 	.width = 4,
879b4d15211STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
880b4d15211STaniya Das 		.name = "disp_cc_mdss_dptx3_link_dpin_div_clk_src",
881b4d15211STaniya Das 		.parent_hws = (const struct clk_hw*[]) {
882b4d15211STaniya Das 			&disp_cc_mdss_dptx3_link_clk_src.clkr.hw,
883b4d15211STaniya Das 		},
884b4d15211STaniya Das 		.num_parents = 1,
885b4d15211STaniya Das 		.flags = CLK_SET_RATE_PARENT,
886b4d15211STaniya Das 		.ops = &clk_regmap_div_ro_ops,
887b4d15211STaniya Das 	},
888b4d15211STaniya Das };
889b4d15211STaniya Das 
890b4d15211STaniya Das static struct clk_branch disp_cc_esync0_clk = {
891b4d15211STaniya Das 	.halt_reg = 0x80b8,
892b4d15211STaniya Das 	.halt_check = BRANCH_HALT,
893b4d15211STaniya Das 	.clkr = {
894b4d15211STaniya Das 		.enable_reg = 0x80b8,
895b4d15211STaniya Das 		.enable_mask = BIT(0),
896b4d15211STaniya Das 		.hw.init = &(const struct clk_init_data) {
897b4d15211STaniya Das 			.name = "disp_cc_esync0_clk",
898b4d15211STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
899b4d15211STaniya Das 				&disp_cc_esync0_clk_src.clkr.hw,
900b4d15211STaniya Das 			},
901b4d15211STaniya Das 			.num_parents = 1,
902b4d15211STaniya Das 			.flags = CLK_SET_RATE_PARENT,
903b4d15211STaniya Das 			.ops = &clk_branch2_ops,
904b4d15211STaniya Das 		},
905b4d15211STaniya Das 	},
906b4d15211STaniya Das };
907b4d15211STaniya Das 
908b4d15211STaniya Das static struct clk_branch disp_cc_esync1_clk = {
909b4d15211STaniya Das 	.halt_reg = 0x80bc,
910b4d15211STaniya Das 	.halt_check = BRANCH_HALT,
911b4d15211STaniya Das 	.clkr = {
912b4d15211STaniya Das 		.enable_reg = 0x80bc,
913b4d15211STaniya Das 		.enable_mask = BIT(0),
914b4d15211STaniya Das 		.hw.init = &(const struct clk_init_data) {
915b4d15211STaniya Das 			.name = "disp_cc_esync1_clk",
916b4d15211STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
917b4d15211STaniya Das 				&disp_cc_esync1_clk_src.clkr.hw,
918b4d15211STaniya Das 			},
919b4d15211STaniya Das 			.num_parents = 1,
920b4d15211STaniya Das 			.flags = CLK_SET_RATE_PARENT,
921b4d15211STaniya Das 			.ops = &clk_branch2_ops,
922b4d15211STaniya Das 		},
923b4d15211STaniya Das 	},
924b4d15211STaniya Das };
925b4d15211STaniya Das 
926b4d15211STaniya Das static struct clk_branch disp_cc_mdss_accu_shift_clk = {
927b4d15211STaniya Das 	.halt_reg = 0xe060,
928b4d15211STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
929b4d15211STaniya Das 	.clkr = {
930b4d15211STaniya Das 		.enable_reg = 0xe060,
931b4d15211STaniya Das 		.enable_mask = BIT(0),
932b4d15211STaniya Das 		.hw.init = &(const struct clk_init_data) {
933b4d15211STaniya Das 			.name = "disp_cc_mdss_accu_shift_clk",
934b4d15211STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
935b4d15211STaniya Das 				&disp_cc_xo_clk_src.clkr.hw,
936b4d15211STaniya Das 			},
937b4d15211STaniya Das 			.num_parents = 1,
938b4d15211STaniya Das 			.flags = CLK_SET_RATE_PARENT,
939b4d15211STaniya Das 			.ops = &clk_branch2_ops,
940b4d15211STaniya Das 		},
941b4d15211STaniya Das 	},
942b4d15211STaniya Das };
943b4d15211STaniya Das 
944b4d15211STaniya Das static struct clk_branch disp_cc_mdss_ahb1_clk = {
945b4d15211STaniya Das 	.halt_reg = 0xa028,
946b4d15211STaniya Das 	.halt_check = BRANCH_HALT,
947b4d15211STaniya Das 	.clkr = {
948b4d15211STaniya Das 		.enable_reg = 0xa028,
949b4d15211STaniya Das 		.enable_mask = BIT(0),
950b4d15211STaniya Das 		.hw.init = &(const struct clk_init_data) {
951b4d15211STaniya Das 			.name = "disp_cc_mdss_ahb1_clk",
952b4d15211STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
953b4d15211STaniya Das 				&disp_cc_mdss_ahb_clk_src.clkr.hw,
954b4d15211STaniya Das 			},
955b4d15211STaniya Das 			.num_parents = 1,
956b4d15211STaniya Das 			.flags = CLK_SET_RATE_PARENT,
957b4d15211STaniya Das 			.ops = &clk_branch2_ops,
958b4d15211STaniya Das 		},
959b4d15211STaniya Das 	},
960b4d15211STaniya Das };
961b4d15211STaniya Das 
962b4d15211STaniya Das static struct clk_branch disp_cc_mdss_ahb_clk = {
963b4d15211STaniya Das 	.halt_reg = 0x80b0,
964b4d15211STaniya Das 	.halt_check = BRANCH_HALT,
965b4d15211STaniya Das 	.clkr = {
966b4d15211STaniya Das 		.enable_reg = 0x80b0,
967b4d15211STaniya Das 		.enable_mask = BIT(0),
968b4d15211STaniya Das 		.hw.init = &(const struct clk_init_data) {
969b4d15211STaniya Das 			.name = "disp_cc_mdss_ahb_clk",
970b4d15211STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
971b4d15211STaniya Das 				&disp_cc_mdss_ahb_clk_src.clkr.hw,
972b4d15211STaniya Das 			},
973b4d15211STaniya Das 			.num_parents = 1,
974b4d15211STaniya Das 			.flags = CLK_SET_RATE_PARENT,
975b4d15211STaniya Das 			.ops = &clk_branch2_ops,
976b4d15211STaniya Das 		},
977b4d15211STaniya Das 	},
978b4d15211STaniya Das };
979b4d15211STaniya Das 
980b4d15211STaniya Das static struct clk_branch disp_cc_mdss_byte0_clk = {
981b4d15211STaniya Das 	.halt_reg = 0x8034,
982b4d15211STaniya Das 	.halt_check = BRANCH_HALT,
983b4d15211STaniya Das 	.clkr = {
984b4d15211STaniya Das 		.enable_reg = 0x8034,
985b4d15211STaniya Das 		.enable_mask = BIT(0),
986b4d15211STaniya Das 		.hw.init = &(const struct clk_init_data) {
987b4d15211STaniya Das 			.name = "disp_cc_mdss_byte0_clk",
988b4d15211STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
989b4d15211STaniya Das 				&disp_cc_mdss_byte0_clk_src.clkr.hw,
990b4d15211STaniya Das 			},
991b4d15211STaniya Das 			.num_parents = 1,
992b4d15211STaniya Das 			.flags = CLK_SET_RATE_PARENT,
993b4d15211STaniya Das 			.ops = &clk_branch2_ops,
994b4d15211STaniya Das 		},
995b4d15211STaniya Das 	},
996b4d15211STaniya Das };
997b4d15211STaniya Das 
998b4d15211STaniya Das static struct clk_branch disp_cc_mdss_byte0_intf_clk = {
999b4d15211STaniya Das 	.halt_reg = 0x8038,
1000b4d15211STaniya Das 	.halt_check = BRANCH_HALT,
1001b4d15211STaniya Das 	.clkr = {
1002b4d15211STaniya Das 		.enable_reg = 0x8038,
1003b4d15211STaniya Das 		.enable_mask = BIT(0),
1004b4d15211STaniya Das 		.hw.init = &(const struct clk_init_data) {
1005b4d15211STaniya Das 			.name = "disp_cc_mdss_byte0_intf_clk",
1006b4d15211STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1007b4d15211STaniya Das 				&disp_cc_mdss_byte0_div_clk_src.clkr.hw,
1008b4d15211STaniya Das 			},
1009b4d15211STaniya Das 			.num_parents = 1,
1010b4d15211STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1011b4d15211STaniya Das 			.ops = &clk_branch2_ops,
1012b4d15211STaniya Das 		},
1013b4d15211STaniya Das 	},
1014b4d15211STaniya Das };
1015b4d15211STaniya Das 
1016b4d15211STaniya Das static struct clk_branch disp_cc_mdss_byte1_clk = {
1017b4d15211STaniya Das 	.halt_reg = 0x803c,
1018b4d15211STaniya Das 	.halt_check = BRANCH_HALT,
1019b4d15211STaniya Das 	.clkr = {
1020b4d15211STaniya Das 		.enable_reg = 0x803c,
1021b4d15211STaniya Das 		.enable_mask = BIT(0),
1022b4d15211STaniya Das 		.hw.init = &(const struct clk_init_data) {
1023b4d15211STaniya Das 			.name = "disp_cc_mdss_byte1_clk",
1024b4d15211STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1025b4d15211STaniya Das 				&disp_cc_mdss_byte1_clk_src.clkr.hw,
1026b4d15211STaniya Das 			},
1027b4d15211STaniya Das 			.num_parents = 1,
1028b4d15211STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1029b4d15211STaniya Das 			.ops = &clk_branch2_ops,
1030b4d15211STaniya Das 		},
1031b4d15211STaniya Das 	},
1032b4d15211STaniya Das };
1033b4d15211STaniya Das 
1034b4d15211STaniya Das static struct clk_branch disp_cc_mdss_byte1_intf_clk = {
1035b4d15211STaniya Das 	.halt_reg = 0x8040,
1036b4d15211STaniya Das 	.halt_check = BRANCH_HALT,
1037b4d15211STaniya Das 	.clkr = {
1038b4d15211STaniya Das 		.enable_reg = 0x8040,
1039b4d15211STaniya Das 		.enable_mask = BIT(0),
1040b4d15211STaniya Das 		.hw.init = &(const struct clk_init_data) {
1041b4d15211STaniya Das 			.name = "disp_cc_mdss_byte1_intf_clk",
1042b4d15211STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1043b4d15211STaniya Das 				&disp_cc_mdss_byte1_div_clk_src.clkr.hw,
1044b4d15211STaniya Das 			},
1045b4d15211STaniya Das 			.num_parents = 1,
1046b4d15211STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1047b4d15211STaniya Das 			.ops = &clk_branch2_ops,
1048b4d15211STaniya Das 		},
1049b4d15211STaniya Das 	},
1050b4d15211STaniya Das };
1051b4d15211STaniya Das 
1052b4d15211STaniya Das static struct clk_branch disp_cc_mdss_dptx0_aux_clk = {
1053b4d15211STaniya Das 	.halt_reg = 0x8064,
1054b4d15211STaniya Das 	.halt_check = BRANCH_HALT,
1055b4d15211STaniya Das 	.clkr = {
1056b4d15211STaniya Das 		.enable_reg = 0x8064,
1057b4d15211STaniya Das 		.enable_mask = BIT(0),
1058b4d15211STaniya Das 		.hw.init = &(const struct clk_init_data) {
1059b4d15211STaniya Das 			.name = "disp_cc_mdss_dptx0_aux_clk",
1060b4d15211STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1061b4d15211STaniya Das 				&disp_cc_mdss_dptx0_aux_clk_src.clkr.hw,
1062b4d15211STaniya Das 			},
1063b4d15211STaniya Das 			.num_parents = 1,
1064b4d15211STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1065b4d15211STaniya Das 			.ops = &clk_branch2_ops,
1066b4d15211STaniya Das 		},
1067b4d15211STaniya Das 	},
1068b4d15211STaniya Das };
1069b4d15211STaniya Das 
1070b4d15211STaniya Das static struct clk_branch disp_cc_mdss_dptx0_link_clk = {
1071b4d15211STaniya Das 	.halt_reg = 0x804c,
1072b4d15211STaniya Das 	.halt_check = BRANCH_HALT,
1073b4d15211STaniya Das 	.clkr = {
1074b4d15211STaniya Das 		.enable_reg = 0x804c,
1075b4d15211STaniya Das 		.enable_mask = BIT(0),
1076b4d15211STaniya Das 		.hw.init = &(const struct clk_init_data) {
1077b4d15211STaniya Das 			.name = "disp_cc_mdss_dptx0_link_clk",
1078b4d15211STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1079b4d15211STaniya Das 				&disp_cc_mdss_dptx0_link_clk_src.clkr.hw,
1080b4d15211STaniya Das 			},
1081b4d15211STaniya Das 			.num_parents = 1,
1082b4d15211STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1083b4d15211STaniya Das 			.ops = &clk_branch2_ops,
1084b4d15211STaniya Das 		},
1085b4d15211STaniya Das 	},
1086b4d15211STaniya Das };
1087b4d15211STaniya Das 
1088b4d15211STaniya Das static struct clk_branch disp_cc_mdss_dptx0_link_dpin_clk = {
1089b4d15211STaniya Das 	.halt_reg = 0x837c,
1090b4d15211STaniya Das 	.halt_check = BRANCH_HALT,
1091b4d15211STaniya Das 	.clkr = {
1092b4d15211STaniya Das 		.enable_reg = 0x837c,
1093b4d15211STaniya Das 		.enable_mask = BIT(0),
1094b4d15211STaniya Das 		.hw.init = &(const struct clk_init_data) {
1095b4d15211STaniya Das 			.name = "disp_cc_mdss_dptx0_link_dpin_clk",
1096b4d15211STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1097b4d15211STaniya Das 				&disp_cc_mdss_dptx0_link_dpin_div_clk_src.clkr.hw,
1098b4d15211STaniya Das 			},
1099b4d15211STaniya Das 			.num_parents = 1,
1100b4d15211STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1101b4d15211STaniya Das 			.ops = &clk_branch2_ops,
1102b4d15211STaniya Das 		},
1103b4d15211STaniya Das 	},
1104b4d15211STaniya Das };
1105b4d15211STaniya Das 
1106b4d15211STaniya Das static struct clk_branch disp_cc_mdss_dptx0_link_intf_clk = {
1107b4d15211STaniya Das 	.halt_reg = 0x8054,
1108b4d15211STaniya Das 	.halt_check = BRANCH_HALT,
1109b4d15211STaniya Das 	.clkr = {
1110b4d15211STaniya Das 		.enable_reg = 0x8054,
1111b4d15211STaniya Das 		.enable_mask = BIT(0),
1112b4d15211STaniya Das 		.hw.init = &(const struct clk_init_data) {
1113b4d15211STaniya Das 			.name = "disp_cc_mdss_dptx0_link_intf_clk",
1114b4d15211STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1115b4d15211STaniya Das 				&disp_cc_mdss_dptx0_link_div_clk_src.clkr.hw,
1116b4d15211STaniya Das 			},
1117b4d15211STaniya Das 			.num_parents = 1,
1118b4d15211STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1119b4d15211STaniya Das 			.ops = &clk_branch2_ops,
1120b4d15211STaniya Das 		},
1121b4d15211STaniya Das 	},
1122b4d15211STaniya Das };
1123b4d15211STaniya Das 
1124b4d15211STaniya Das static struct clk_branch disp_cc_mdss_dptx0_pixel0_clk = {
1125b4d15211STaniya Das 	.halt_reg = 0x805c,
1126b4d15211STaniya Das 	.halt_check = BRANCH_HALT,
1127b4d15211STaniya Das 	.clkr = {
1128b4d15211STaniya Das 		.enable_reg = 0x805c,
1129b4d15211STaniya Das 		.enable_mask = BIT(0),
1130b4d15211STaniya Das 		.hw.init = &(const struct clk_init_data) {
1131b4d15211STaniya Das 			.name = "disp_cc_mdss_dptx0_pixel0_clk",
1132b4d15211STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1133b4d15211STaniya Das 				&disp_cc_mdss_dptx0_pixel0_clk_src.clkr.hw,
1134b4d15211STaniya Das 			},
1135b4d15211STaniya Das 			.num_parents = 1,
1136b4d15211STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1137b4d15211STaniya Das 			.ops = &clk_branch2_ops,
1138b4d15211STaniya Das 		},
1139b4d15211STaniya Das 	},
1140b4d15211STaniya Das };
1141b4d15211STaniya Das 
1142b4d15211STaniya Das static struct clk_branch disp_cc_mdss_dptx0_pixel1_clk = {
1143b4d15211STaniya Das 	.halt_reg = 0x8060,
1144b4d15211STaniya Das 	.halt_check = BRANCH_HALT,
1145b4d15211STaniya Das 	.clkr = {
1146b4d15211STaniya Das 		.enable_reg = 0x8060,
1147b4d15211STaniya Das 		.enable_mask = BIT(0),
1148b4d15211STaniya Das 		.hw.init = &(const struct clk_init_data) {
1149b4d15211STaniya Das 			.name = "disp_cc_mdss_dptx0_pixel1_clk",
1150b4d15211STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1151b4d15211STaniya Das 				&disp_cc_mdss_dptx0_pixel1_clk_src.clkr.hw,
1152b4d15211STaniya Das 			},
1153b4d15211STaniya Das 			.num_parents = 1,
1154b4d15211STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1155b4d15211STaniya Das 			.ops = &clk_branch2_ops,
1156b4d15211STaniya Das 		},
1157b4d15211STaniya Das 	},
1158b4d15211STaniya Das };
1159b4d15211STaniya Das 
1160b4d15211STaniya Das static struct clk_branch disp_cc_mdss_dptx0_usb_router_link_intf_clk = {
1161b4d15211STaniya Das 	.halt_reg = 0x8050,
1162b4d15211STaniya Das 	.halt_check = BRANCH_HALT,
1163b4d15211STaniya Das 	.clkr = {
1164b4d15211STaniya Das 		.enable_reg = 0x8050,
1165b4d15211STaniya Das 		.enable_mask = BIT(0),
1166b4d15211STaniya Das 		.hw.init = &(const struct clk_init_data) {
1167b4d15211STaniya Das 			.name = "disp_cc_mdss_dptx0_usb_router_link_intf_clk",
1168b4d15211STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1169b4d15211STaniya Das 				&disp_cc_mdss_dptx0_link_div_clk_src.clkr.hw,
1170b4d15211STaniya Das 			},
1171b4d15211STaniya Das 			.num_parents = 1,
1172b4d15211STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1173b4d15211STaniya Das 			.ops = &clk_branch2_ops,
1174b4d15211STaniya Das 		},
1175b4d15211STaniya Das 	},
1176b4d15211STaniya Das };
1177b4d15211STaniya Das 
1178b4d15211STaniya Das static struct clk_branch disp_cc_mdss_dptx1_aux_clk = {
1179b4d15211STaniya Das 	.halt_reg = 0x8080,
1180b4d15211STaniya Das 	.halt_check = BRANCH_HALT,
1181b4d15211STaniya Das 	.clkr = {
1182b4d15211STaniya Das 		.enable_reg = 0x8080,
1183b4d15211STaniya Das 		.enable_mask = BIT(0),
1184b4d15211STaniya Das 		.hw.init = &(const struct clk_init_data) {
1185b4d15211STaniya Das 			.name = "disp_cc_mdss_dptx1_aux_clk",
1186b4d15211STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1187b4d15211STaniya Das 				&disp_cc_mdss_dptx1_aux_clk_src.clkr.hw,
1188b4d15211STaniya Das 			},
1189b4d15211STaniya Das 			.num_parents = 1,
1190b4d15211STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1191b4d15211STaniya Das 			.ops = &clk_branch2_ops,
1192b4d15211STaniya Das 		},
1193b4d15211STaniya Das 	},
1194b4d15211STaniya Das };
1195b4d15211STaniya Das 
1196b4d15211STaniya Das static struct clk_branch disp_cc_mdss_dptx1_link_clk = {
1197b4d15211STaniya Das 	.halt_reg = 0x8070,
1198b4d15211STaniya Das 	.halt_check = BRANCH_HALT,
1199b4d15211STaniya Das 	.clkr = {
1200b4d15211STaniya Das 		.enable_reg = 0x8070,
1201b4d15211STaniya Das 		.enable_mask = BIT(0),
1202b4d15211STaniya Das 		.hw.init = &(const struct clk_init_data) {
1203b4d15211STaniya Das 			.name = "disp_cc_mdss_dptx1_link_clk",
1204b4d15211STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1205b4d15211STaniya Das 				&disp_cc_mdss_dptx1_link_clk_src.clkr.hw,
1206b4d15211STaniya Das 			},
1207b4d15211STaniya Das 			.num_parents = 1,
1208b4d15211STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1209b4d15211STaniya Das 			.ops = &clk_branch2_ops,
1210b4d15211STaniya Das 		},
1211b4d15211STaniya Das 	},
1212b4d15211STaniya Das };
1213b4d15211STaniya Das 
1214b4d15211STaniya Das static struct clk_branch disp_cc_mdss_dptx1_link_dpin_clk = {
1215b4d15211STaniya Das 	.halt_reg = 0x8380,
1216b4d15211STaniya Das 	.halt_check = BRANCH_HALT,
1217b4d15211STaniya Das 	.clkr = {
1218b4d15211STaniya Das 		.enable_reg = 0x8380,
1219b4d15211STaniya Das 		.enable_mask = BIT(0),
1220b4d15211STaniya Das 		.hw.init = &(const struct clk_init_data) {
1221b4d15211STaniya Das 			.name = "disp_cc_mdss_dptx1_link_dpin_clk",
1222b4d15211STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1223b4d15211STaniya Das 				&disp_cc_mdss_dptx1_link_dpin_div_clk_src.clkr.hw,
1224b4d15211STaniya Das 			},
1225b4d15211STaniya Das 			.num_parents = 1,
1226b4d15211STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1227b4d15211STaniya Das 			.ops = &clk_branch2_ops,
1228b4d15211STaniya Das 		},
1229b4d15211STaniya Das 	},
1230b4d15211STaniya Das };
1231b4d15211STaniya Das 
1232b4d15211STaniya Das static struct clk_branch disp_cc_mdss_dptx1_link_intf_clk = {
1233b4d15211STaniya Das 	.halt_reg = 0x8078,
1234b4d15211STaniya Das 	.halt_check = BRANCH_HALT,
1235b4d15211STaniya Das 	.clkr = {
1236b4d15211STaniya Das 		.enable_reg = 0x8078,
1237b4d15211STaniya Das 		.enable_mask = BIT(0),
1238b4d15211STaniya Das 		.hw.init = &(const struct clk_init_data) {
1239b4d15211STaniya Das 			.name = "disp_cc_mdss_dptx1_link_intf_clk",
1240b4d15211STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1241b4d15211STaniya Das 				&disp_cc_mdss_dptx1_link_div_clk_src.clkr.hw,
1242b4d15211STaniya Das 			},
1243b4d15211STaniya Das 			.num_parents = 1,
1244b4d15211STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1245b4d15211STaniya Das 			.ops = &clk_branch2_ops,
1246b4d15211STaniya Das 		},
1247b4d15211STaniya Das 	},
1248b4d15211STaniya Das };
1249b4d15211STaniya Das 
1250b4d15211STaniya Das static struct clk_branch disp_cc_mdss_dptx1_pixel0_clk = {
1251b4d15211STaniya Das 	.halt_reg = 0x8068,
1252b4d15211STaniya Das 	.halt_check = BRANCH_HALT,
1253b4d15211STaniya Das 	.clkr = {
1254b4d15211STaniya Das 		.enable_reg = 0x8068,
1255b4d15211STaniya Das 		.enable_mask = BIT(0),
1256b4d15211STaniya Das 		.hw.init = &(const struct clk_init_data) {
1257b4d15211STaniya Das 			.name = "disp_cc_mdss_dptx1_pixel0_clk",
1258b4d15211STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1259b4d15211STaniya Das 				&disp_cc_mdss_dptx1_pixel0_clk_src.clkr.hw,
1260b4d15211STaniya Das 			},
1261b4d15211STaniya Das 			.num_parents = 1,
1262b4d15211STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1263b4d15211STaniya Das 			.ops = &clk_branch2_ops,
1264b4d15211STaniya Das 		},
1265b4d15211STaniya Das 	},
1266b4d15211STaniya Das };
1267b4d15211STaniya Das 
1268b4d15211STaniya Das static struct clk_branch disp_cc_mdss_dptx1_pixel1_clk = {
1269b4d15211STaniya Das 	.halt_reg = 0x806c,
1270b4d15211STaniya Das 	.halt_check = BRANCH_HALT,
1271b4d15211STaniya Das 	.clkr = {
1272b4d15211STaniya Das 		.enable_reg = 0x806c,
1273b4d15211STaniya Das 		.enable_mask = BIT(0),
1274b4d15211STaniya Das 		.hw.init = &(const struct clk_init_data) {
1275b4d15211STaniya Das 			.name = "disp_cc_mdss_dptx1_pixel1_clk",
1276b4d15211STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1277b4d15211STaniya Das 				&disp_cc_mdss_dptx1_pixel1_clk_src.clkr.hw,
1278b4d15211STaniya Das 			},
1279b4d15211STaniya Das 			.num_parents = 1,
1280b4d15211STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1281b4d15211STaniya Das 			.ops = &clk_branch2_ops,
1282b4d15211STaniya Das 		},
1283b4d15211STaniya Das 	},
1284b4d15211STaniya Das };
1285b4d15211STaniya Das 
1286b4d15211STaniya Das static struct clk_branch disp_cc_mdss_dptx1_usb_router_link_intf_clk = {
1287b4d15211STaniya Das 	.halt_reg = 0x8074,
1288b4d15211STaniya Das 	.halt_check = BRANCH_HALT,
1289b4d15211STaniya Das 	.clkr = {
1290b4d15211STaniya Das 		.enable_reg = 0x8074,
1291b4d15211STaniya Das 		.enable_mask = BIT(0),
1292b4d15211STaniya Das 		.hw.init = &(const struct clk_init_data) {
1293b4d15211STaniya Das 			.name = "disp_cc_mdss_dptx1_usb_router_link_intf_clk",
1294b4d15211STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1295b4d15211STaniya Das 				&disp_cc_mdss_dptx1_link_div_clk_src.clkr.hw,
1296b4d15211STaniya Das 			},
1297b4d15211STaniya Das 			.num_parents = 1,
1298b4d15211STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1299b4d15211STaniya Das 			.ops = &clk_branch2_ops,
1300b4d15211STaniya Das 		},
1301b4d15211STaniya Das 	},
1302b4d15211STaniya Das };
1303b4d15211STaniya Das 
1304b4d15211STaniya Das static struct clk_branch disp_cc_mdss_dptx2_aux_clk = {
1305b4d15211STaniya Das 	.halt_reg = 0x8098,
1306b4d15211STaniya Das 	.halt_check = BRANCH_HALT,
1307b4d15211STaniya Das 	.clkr = {
1308b4d15211STaniya Das 		.enable_reg = 0x8098,
1309b4d15211STaniya Das 		.enable_mask = BIT(0),
1310b4d15211STaniya Das 		.hw.init = &(const struct clk_init_data) {
1311b4d15211STaniya Das 			.name = "disp_cc_mdss_dptx2_aux_clk",
1312b4d15211STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1313b4d15211STaniya Das 				&disp_cc_mdss_dptx2_aux_clk_src.clkr.hw,
1314b4d15211STaniya Das 			},
1315b4d15211STaniya Das 			.num_parents = 1,
1316b4d15211STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1317b4d15211STaniya Das 			.ops = &clk_branch2_ops,
1318b4d15211STaniya Das 		},
1319b4d15211STaniya Das 	},
1320b4d15211STaniya Das };
1321b4d15211STaniya Das 
1322b4d15211STaniya Das static struct clk_branch disp_cc_mdss_dptx2_link_clk = {
1323b4d15211STaniya Das 	.halt_reg = 0x808c,
1324b4d15211STaniya Das 	.halt_check = BRANCH_HALT,
1325b4d15211STaniya Das 	.clkr = {
1326b4d15211STaniya Das 		.enable_reg = 0x808c,
1327b4d15211STaniya Das 		.enable_mask = BIT(0),
1328b4d15211STaniya Das 		.hw.init = &(const struct clk_init_data) {
1329b4d15211STaniya Das 			.name = "disp_cc_mdss_dptx2_link_clk",
1330b4d15211STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1331b4d15211STaniya Das 				&disp_cc_mdss_dptx2_link_clk_src.clkr.hw,
1332b4d15211STaniya Das 			},
1333b4d15211STaniya Das 			.num_parents = 1,
1334b4d15211STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1335b4d15211STaniya Das 			.ops = &clk_branch2_ops,
1336b4d15211STaniya Das 		},
1337b4d15211STaniya Das 	},
1338b4d15211STaniya Das };
1339b4d15211STaniya Das 
1340b4d15211STaniya Das static struct clk_branch disp_cc_mdss_dptx2_link_dpin_clk = {
1341b4d15211STaniya Das 	.halt_reg = 0x8384,
1342b4d15211STaniya Das 	.halt_check = BRANCH_HALT,
1343b4d15211STaniya Das 	.clkr = {
1344b4d15211STaniya Das 		.enable_reg = 0x8384,
1345b4d15211STaniya Das 		.enable_mask = BIT(0),
1346b4d15211STaniya Das 		.hw.init = &(const struct clk_init_data) {
1347b4d15211STaniya Das 			.name = "disp_cc_mdss_dptx2_link_dpin_clk",
1348b4d15211STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1349b4d15211STaniya Das 				&disp_cc_mdss_dptx2_link_dpin_div_clk_src.clkr.hw,
1350b4d15211STaniya Das 			},
1351b4d15211STaniya Das 			.num_parents = 1,
1352b4d15211STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1353b4d15211STaniya Das 			.ops = &clk_branch2_ops,
1354b4d15211STaniya Das 		},
1355b4d15211STaniya Das 	},
1356b4d15211STaniya Das };
1357b4d15211STaniya Das 
1358b4d15211STaniya Das static struct clk_branch disp_cc_mdss_dptx2_link_intf_clk = {
1359b4d15211STaniya Das 	.halt_reg = 0x8090,
1360b4d15211STaniya Das 	.halt_check = BRANCH_HALT,
1361b4d15211STaniya Das 	.clkr = {
1362b4d15211STaniya Das 		.enable_reg = 0x8090,
1363b4d15211STaniya Das 		.enable_mask = BIT(0),
1364b4d15211STaniya Das 		.hw.init = &(const struct clk_init_data) {
1365b4d15211STaniya Das 			.name = "disp_cc_mdss_dptx2_link_intf_clk",
1366b4d15211STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1367b4d15211STaniya Das 				&disp_cc_mdss_dptx2_link_div_clk_src.clkr.hw,
1368b4d15211STaniya Das 			},
1369b4d15211STaniya Das 			.num_parents = 1,
1370b4d15211STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1371b4d15211STaniya Das 			.ops = &clk_branch2_ops,
1372b4d15211STaniya Das 		},
1373b4d15211STaniya Das 	},
1374b4d15211STaniya Das };
1375b4d15211STaniya Das 
1376b4d15211STaniya Das static struct clk_branch disp_cc_mdss_dptx2_pixel0_clk = {
1377b4d15211STaniya Das 	.halt_reg = 0x8084,
1378b4d15211STaniya Das 	.halt_check = BRANCH_HALT,
1379b4d15211STaniya Das 	.clkr = {
1380b4d15211STaniya Das 		.enable_reg = 0x8084,
1381b4d15211STaniya Das 		.enable_mask = BIT(0),
1382b4d15211STaniya Das 		.hw.init = &(const struct clk_init_data) {
1383b4d15211STaniya Das 			.name = "disp_cc_mdss_dptx2_pixel0_clk",
1384b4d15211STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1385b4d15211STaniya Das 				&disp_cc_mdss_dptx2_pixel0_clk_src.clkr.hw,
1386b4d15211STaniya Das 			},
1387b4d15211STaniya Das 			.num_parents = 1,
1388b4d15211STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1389b4d15211STaniya Das 			.ops = &clk_branch2_ops,
1390b4d15211STaniya Das 		},
1391b4d15211STaniya Das 	},
1392b4d15211STaniya Das };
1393b4d15211STaniya Das 
1394b4d15211STaniya Das static struct clk_branch disp_cc_mdss_dptx2_pixel1_clk = {
1395b4d15211STaniya Das 	.halt_reg = 0x8088,
1396b4d15211STaniya Das 	.halt_check = BRANCH_HALT,
1397b4d15211STaniya Das 	.clkr = {
1398b4d15211STaniya Das 		.enable_reg = 0x8088,
1399b4d15211STaniya Das 		.enable_mask = BIT(0),
1400b4d15211STaniya Das 		.hw.init = &(const struct clk_init_data) {
1401b4d15211STaniya Das 			.name = "disp_cc_mdss_dptx2_pixel1_clk",
1402b4d15211STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1403b4d15211STaniya Das 				&disp_cc_mdss_dptx2_pixel1_clk_src.clkr.hw,
1404b4d15211STaniya Das 			},
1405b4d15211STaniya Das 			.num_parents = 1,
1406b4d15211STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1407b4d15211STaniya Das 			.ops = &clk_branch2_ops,
1408b4d15211STaniya Das 		},
1409b4d15211STaniya Das 	},
1410b4d15211STaniya Das };
1411b4d15211STaniya Das 
1412b4d15211STaniya Das static struct clk_branch disp_cc_mdss_dptx2_usb_router_link_intf_clk = {
1413b4d15211STaniya Das 	.halt_reg = 0x8378,
1414b4d15211STaniya Das 	.halt_check = BRANCH_HALT,
1415b4d15211STaniya Das 	.clkr = {
1416b4d15211STaniya Das 		.enable_reg = 0x8378,
1417b4d15211STaniya Das 		.enable_mask = BIT(0),
1418b4d15211STaniya Das 		.hw.init = &(const struct clk_init_data) {
1419b4d15211STaniya Das 			.name = "disp_cc_mdss_dptx2_usb_router_link_intf_clk",
1420b4d15211STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1421b4d15211STaniya Das 				&disp_cc_mdss_dptx2_link_div_clk_src.clkr.hw,
1422b4d15211STaniya Das 			},
1423b4d15211STaniya Das 			.num_parents = 1,
1424b4d15211STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1425b4d15211STaniya Das 			.ops = &clk_branch2_ops,
1426b4d15211STaniya Das 		},
1427b4d15211STaniya Das 	},
1428b4d15211STaniya Das };
1429b4d15211STaniya Das 
1430b4d15211STaniya Das static struct clk_branch disp_cc_mdss_dptx3_aux_clk = {
1431b4d15211STaniya Das 	.halt_reg = 0x80a8,
1432b4d15211STaniya Das 	.halt_check = BRANCH_HALT,
1433b4d15211STaniya Das 	.clkr = {
1434b4d15211STaniya Das 		.enable_reg = 0x80a8,
1435b4d15211STaniya Das 		.enable_mask = BIT(0),
1436b4d15211STaniya Das 		.hw.init = &(const struct clk_init_data) {
1437b4d15211STaniya Das 			.name = "disp_cc_mdss_dptx3_aux_clk",
1438b4d15211STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1439b4d15211STaniya Das 				&disp_cc_mdss_dptx3_aux_clk_src.clkr.hw,
1440b4d15211STaniya Das 			},
1441b4d15211STaniya Das 			.num_parents = 1,
1442b4d15211STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1443b4d15211STaniya Das 			.ops = &clk_branch2_ops,
1444b4d15211STaniya Das 		},
1445b4d15211STaniya Das 	},
1446b4d15211STaniya Das };
1447b4d15211STaniya Das 
1448b4d15211STaniya Das static struct clk_branch disp_cc_mdss_dptx3_link_clk = {
1449b4d15211STaniya Das 	.halt_reg = 0x80a0,
1450b4d15211STaniya Das 	.halt_check = BRANCH_HALT,
1451b4d15211STaniya Das 	.clkr = {
1452b4d15211STaniya Das 		.enable_reg = 0x80a0,
1453b4d15211STaniya Das 		.enable_mask = BIT(0),
1454b4d15211STaniya Das 		.hw.init = &(const struct clk_init_data) {
1455b4d15211STaniya Das 			.name = "disp_cc_mdss_dptx3_link_clk",
1456b4d15211STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1457b4d15211STaniya Das 				&disp_cc_mdss_dptx3_link_clk_src.clkr.hw,
1458b4d15211STaniya Das 			},
1459b4d15211STaniya Das 			.num_parents = 1,
1460b4d15211STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1461b4d15211STaniya Das 			.ops = &clk_branch2_ops,
1462b4d15211STaniya Das 		},
1463b4d15211STaniya Das 	},
1464b4d15211STaniya Das };
1465b4d15211STaniya Das 
1466b4d15211STaniya Das static struct clk_branch disp_cc_mdss_dptx3_link_dpin_clk = {
1467b4d15211STaniya Das 	.halt_reg = 0x8388,
1468b4d15211STaniya Das 	.halt_check = BRANCH_HALT,
1469b4d15211STaniya Das 	.clkr = {
1470b4d15211STaniya Das 		.enable_reg = 0x8388,
1471b4d15211STaniya Das 		.enable_mask = BIT(0),
1472b4d15211STaniya Das 		.hw.init = &(const struct clk_init_data) {
1473b4d15211STaniya Das 			.name = "disp_cc_mdss_dptx3_link_dpin_clk",
1474b4d15211STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1475b4d15211STaniya Das 				&disp_cc_mdss_dptx3_link_dpin_div_clk_src.clkr.hw,
1476b4d15211STaniya Das 			},
1477b4d15211STaniya Das 			.num_parents = 1,
1478b4d15211STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1479b4d15211STaniya Das 			.ops = &clk_branch2_ops,
1480b4d15211STaniya Das 		},
1481b4d15211STaniya Das 	},
1482b4d15211STaniya Das };
1483b4d15211STaniya Das 
1484b4d15211STaniya Das static struct clk_branch disp_cc_mdss_dptx3_link_intf_clk = {
1485b4d15211STaniya Das 	.halt_reg = 0x80a4,
1486b4d15211STaniya Das 	.halt_check = BRANCH_HALT,
1487b4d15211STaniya Das 	.clkr = {
1488b4d15211STaniya Das 		.enable_reg = 0x80a4,
1489b4d15211STaniya Das 		.enable_mask = BIT(0),
1490b4d15211STaniya Das 		.hw.init = &(const struct clk_init_data) {
1491b4d15211STaniya Das 			.name = "disp_cc_mdss_dptx3_link_intf_clk",
1492b4d15211STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1493b4d15211STaniya Das 				&disp_cc_mdss_dptx3_link_div_clk_src.clkr.hw,
1494b4d15211STaniya Das 			},
1495b4d15211STaniya Das 			.num_parents = 1,
1496b4d15211STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1497b4d15211STaniya Das 			.ops = &clk_branch2_ops,
1498b4d15211STaniya Das 		},
1499b4d15211STaniya Das 	},
1500b4d15211STaniya Das };
1501b4d15211STaniya Das 
1502b4d15211STaniya Das static struct clk_branch disp_cc_mdss_dptx3_pixel0_clk = {
1503b4d15211STaniya Das 	.halt_reg = 0x809c,
1504b4d15211STaniya Das 	.halt_check = BRANCH_HALT,
1505b4d15211STaniya Das 	.clkr = {
1506b4d15211STaniya Das 		.enable_reg = 0x809c,
1507b4d15211STaniya Das 		.enable_mask = BIT(0),
1508b4d15211STaniya Das 		.hw.init = &(const struct clk_init_data) {
1509b4d15211STaniya Das 			.name = "disp_cc_mdss_dptx3_pixel0_clk",
1510b4d15211STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1511b4d15211STaniya Das 				&disp_cc_mdss_dptx3_pixel0_clk_src.clkr.hw,
1512b4d15211STaniya Das 			},
1513b4d15211STaniya Das 			.num_parents = 1,
1514b4d15211STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1515b4d15211STaniya Das 			.ops = &clk_branch2_ops,
1516b4d15211STaniya Das 		},
1517b4d15211STaniya Das 	},
1518b4d15211STaniya Das };
1519b4d15211STaniya Das 
1520b4d15211STaniya Das static struct clk_branch disp_cc_mdss_esc0_clk = {
1521b4d15211STaniya Das 	.halt_reg = 0x8044,
1522b4d15211STaniya Das 	.halt_check = BRANCH_HALT,
1523b4d15211STaniya Das 	.clkr = {
1524b4d15211STaniya Das 		.enable_reg = 0x8044,
1525b4d15211STaniya Das 		.enable_mask = BIT(0),
1526b4d15211STaniya Das 		.hw.init = &(const struct clk_init_data) {
1527b4d15211STaniya Das 			.name = "disp_cc_mdss_esc0_clk",
1528b4d15211STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1529b4d15211STaniya Das 				&disp_cc_mdss_esc0_clk_src.clkr.hw,
1530b4d15211STaniya Das 			},
1531b4d15211STaniya Das 			.num_parents = 1,
1532b4d15211STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1533b4d15211STaniya Das 			.ops = &clk_branch2_ops,
1534b4d15211STaniya Das 		},
1535b4d15211STaniya Das 	},
1536b4d15211STaniya Das };
1537b4d15211STaniya Das 
1538b4d15211STaniya Das static struct clk_branch disp_cc_mdss_esc1_clk = {
1539b4d15211STaniya Das 	.halt_reg = 0x8048,
1540b4d15211STaniya Das 	.halt_check = BRANCH_HALT,
1541b4d15211STaniya Das 	.clkr = {
1542b4d15211STaniya Das 		.enable_reg = 0x8048,
1543b4d15211STaniya Das 		.enable_mask = BIT(0),
1544b4d15211STaniya Das 		.hw.init = &(const struct clk_init_data) {
1545b4d15211STaniya Das 			.name = "disp_cc_mdss_esc1_clk",
1546b4d15211STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1547b4d15211STaniya Das 				&disp_cc_mdss_esc1_clk_src.clkr.hw,
1548b4d15211STaniya Das 			},
1549b4d15211STaniya Das 			.num_parents = 1,
1550b4d15211STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1551b4d15211STaniya Das 			.ops = &clk_branch2_ops,
1552b4d15211STaniya Das 		},
1553b4d15211STaniya Das 	},
1554b4d15211STaniya Das };
1555b4d15211STaniya Das 
1556b4d15211STaniya Das static struct clk_branch disp_cc_mdss_mdp1_clk = {
1557b4d15211STaniya Das 	.halt_reg = 0xa004,
1558b4d15211STaniya Das 	.halt_check = BRANCH_HALT,
1559b4d15211STaniya Das 	.clkr = {
1560b4d15211STaniya Das 		.enable_reg = 0xa004,
1561b4d15211STaniya Das 		.enable_mask = BIT(0),
1562b4d15211STaniya Das 		.hw.init = &(const struct clk_init_data) {
1563b4d15211STaniya Das 			.name = "disp_cc_mdss_mdp1_clk",
1564b4d15211STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1565b4d15211STaniya Das 				&disp_cc_mdss_mdp_clk_src.clkr.hw,
1566b4d15211STaniya Das 			},
1567b4d15211STaniya Das 			.num_parents = 1,
1568b4d15211STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1569b4d15211STaniya Das 			.ops = &clk_branch2_ops,
1570b4d15211STaniya Das 		},
1571b4d15211STaniya Das 	},
1572b4d15211STaniya Das };
1573b4d15211STaniya Das 
1574b4d15211STaniya Das static struct clk_branch disp_cc_mdss_mdp_clk = {
1575b4d15211STaniya Das 	.halt_reg = 0x8010,
1576b4d15211STaniya Das 	.halt_check = BRANCH_HALT,
1577b4d15211STaniya Das 	.clkr = {
1578b4d15211STaniya Das 		.enable_reg = 0x8010,
1579b4d15211STaniya Das 		.enable_mask = BIT(0),
1580b4d15211STaniya Das 		.hw.init = &(const struct clk_init_data) {
1581b4d15211STaniya Das 			.name = "disp_cc_mdss_mdp_clk",
1582b4d15211STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1583b4d15211STaniya Das 				&disp_cc_mdss_mdp_clk_src.clkr.hw,
1584b4d15211STaniya Das 			},
1585b4d15211STaniya Das 			.num_parents = 1,
1586b4d15211STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1587b4d15211STaniya Das 			.ops = &clk_branch2_ops,
1588b4d15211STaniya Das 		},
1589b4d15211STaniya Das 	},
1590b4d15211STaniya Das };
1591b4d15211STaniya Das 
1592b4d15211STaniya Das static struct clk_branch disp_cc_mdss_mdp_lut1_clk = {
1593b4d15211STaniya Das 	.halt_reg = 0xa014,
1594b4d15211STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1595b4d15211STaniya Das 	.clkr = {
1596b4d15211STaniya Das 		.enable_reg = 0xa014,
1597b4d15211STaniya Das 		.enable_mask = BIT(0),
1598b4d15211STaniya Das 		.hw.init = &(const struct clk_init_data) {
1599b4d15211STaniya Das 			.name = "disp_cc_mdss_mdp_lut1_clk",
1600b4d15211STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1601b4d15211STaniya Das 				&disp_cc_mdss_mdp_clk_src.clkr.hw,
1602b4d15211STaniya Das 			},
1603b4d15211STaniya Das 			.num_parents = 1,
1604b4d15211STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1605b4d15211STaniya Das 			.ops = &clk_branch2_ops,
1606b4d15211STaniya Das 		},
1607b4d15211STaniya Das 	},
1608b4d15211STaniya Das };
1609b4d15211STaniya Das 
1610b4d15211STaniya Das static struct clk_branch disp_cc_mdss_mdp_lut_clk = {
1611b4d15211STaniya Das 	.halt_reg = 0x8020,
1612b4d15211STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1613b4d15211STaniya Das 	.clkr = {
1614b4d15211STaniya Das 		.enable_reg = 0x8020,
1615b4d15211STaniya Das 		.enable_mask = BIT(0),
1616b4d15211STaniya Das 		.hw.init = &(const struct clk_init_data) {
1617b4d15211STaniya Das 			.name = "disp_cc_mdss_mdp_lut_clk",
1618b4d15211STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1619b4d15211STaniya Das 				&disp_cc_mdss_mdp_clk_src.clkr.hw,
1620b4d15211STaniya Das 			},
1621b4d15211STaniya Das 			.num_parents = 1,
1622b4d15211STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1623b4d15211STaniya Das 			.ops = &clk_branch2_ops,
1624b4d15211STaniya Das 		},
1625b4d15211STaniya Das 	},
1626b4d15211STaniya Das };
1627b4d15211STaniya Das 
1628b4d15211STaniya Das static struct clk_branch disp_cc_mdss_non_gdsc_ahb_clk = {
1629b4d15211STaniya Das 	.halt_reg = 0xc004,
1630b4d15211STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1631b4d15211STaniya Das 	.clkr = {
1632b4d15211STaniya Das 		.enable_reg = 0xc004,
1633b4d15211STaniya Das 		.enable_mask = BIT(0),
1634b4d15211STaniya Das 		.hw.init = &(const struct clk_init_data) {
1635b4d15211STaniya Das 			.name = "disp_cc_mdss_non_gdsc_ahb_clk",
1636b4d15211STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1637b4d15211STaniya Das 				&disp_cc_mdss_ahb_clk_src.clkr.hw,
1638b4d15211STaniya Das 			},
1639b4d15211STaniya Das 			.num_parents = 1,
1640b4d15211STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1641b4d15211STaniya Das 			.ops = &clk_branch2_ops,
1642b4d15211STaniya Das 		},
1643b4d15211STaniya Das 	},
1644b4d15211STaniya Das };
1645b4d15211STaniya Das 
1646b4d15211STaniya Das static struct clk_branch disp_cc_mdss_pclk0_clk = {
1647b4d15211STaniya Das 	.halt_reg = 0x8004,
1648b4d15211STaniya Das 	.halt_check = BRANCH_HALT,
1649b4d15211STaniya Das 	.clkr = {
1650b4d15211STaniya Das 		.enable_reg = 0x8004,
1651b4d15211STaniya Das 		.enable_mask = BIT(0),
1652b4d15211STaniya Das 		.hw.init = &(const struct clk_init_data) {
1653b4d15211STaniya Das 			.name = "disp_cc_mdss_pclk0_clk",
1654b4d15211STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1655b4d15211STaniya Das 				&disp_cc_mdss_pclk0_clk_src.clkr.hw,
1656b4d15211STaniya Das 			},
1657b4d15211STaniya Das 			.num_parents = 1,
1658b4d15211STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1659b4d15211STaniya Das 			.ops = &clk_branch2_ops,
1660b4d15211STaniya Das 		},
1661b4d15211STaniya Das 	},
1662b4d15211STaniya Das };
1663b4d15211STaniya Das 
1664b4d15211STaniya Das static struct clk_branch disp_cc_mdss_pclk1_clk = {
1665b4d15211STaniya Das 	.halt_reg = 0x8008,
1666b4d15211STaniya Das 	.halt_check = BRANCH_HALT,
1667b4d15211STaniya Das 	.clkr = {
1668b4d15211STaniya Das 		.enable_reg = 0x8008,
1669b4d15211STaniya Das 		.enable_mask = BIT(0),
1670b4d15211STaniya Das 		.hw.init = &(const struct clk_init_data) {
1671b4d15211STaniya Das 			.name = "disp_cc_mdss_pclk1_clk",
1672b4d15211STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1673b4d15211STaniya Das 				&disp_cc_mdss_pclk1_clk_src.clkr.hw,
1674b4d15211STaniya Das 			},
1675b4d15211STaniya Das 			.num_parents = 1,
1676b4d15211STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1677b4d15211STaniya Das 			.ops = &clk_branch2_ops,
1678b4d15211STaniya Das 		},
1679b4d15211STaniya Das 	},
1680b4d15211STaniya Das };
1681b4d15211STaniya Das 
1682b4d15211STaniya Das static struct clk_branch disp_cc_mdss_pclk2_clk = {
1683b4d15211STaniya Das 	.halt_reg = 0x800c,
1684b4d15211STaniya Das 	.halt_check = BRANCH_HALT,
1685b4d15211STaniya Das 	.clkr = {
1686b4d15211STaniya Das 		.enable_reg = 0x800c,
1687b4d15211STaniya Das 		.enable_mask = BIT(0),
1688b4d15211STaniya Das 		.hw.init = &(const struct clk_init_data) {
1689b4d15211STaniya Das 			.name = "disp_cc_mdss_pclk2_clk",
1690b4d15211STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1691b4d15211STaniya Das 				&disp_cc_mdss_pclk2_clk_src.clkr.hw,
1692b4d15211STaniya Das 			},
1693b4d15211STaniya Das 			.num_parents = 1,
1694b4d15211STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1695b4d15211STaniya Das 			.ops = &clk_branch2_ops,
1696b4d15211STaniya Das 		},
1697b4d15211STaniya Das 	},
1698b4d15211STaniya Das };
1699b4d15211STaniya Das 
1700b4d15211STaniya Das static struct clk_branch disp_cc_mdss_rscc_ahb_clk = {
1701b4d15211STaniya Das 	.halt_reg = 0xc00c,
1702b4d15211STaniya Das 	.halt_check = BRANCH_HALT,
1703b4d15211STaniya Das 	.clkr = {
1704b4d15211STaniya Das 		.enable_reg = 0xc00c,
1705b4d15211STaniya Das 		.enable_mask = BIT(0),
1706b4d15211STaniya Das 		.hw.init = &(const struct clk_init_data) {
1707b4d15211STaniya Das 			.name = "disp_cc_mdss_rscc_ahb_clk",
1708b4d15211STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1709b4d15211STaniya Das 				&disp_cc_mdss_ahb_clk_src.clkr.hw,
1710b4d15211STaniya Das 			},
1711b4d15211STaniya Das 			.num_parents = 1,
1712b4d15211STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1713b4d15211STaniya Das 			.ops = &clk_branch2_ops,
1714b4d15211STaniya Das 		},
1715b4d15211STaniya Das 	},
1716b4d15211STaniya Das };
1717b4d15211STaniya Das 
1718b4d15211STaniya Das static struct clk_branch disp_cc_mdss_rscc_vsync_clk = {
1719b4d15211STaniya Das 	.halt_reg = 0xc008,
1720b4d15211STaniya Das 	.halt_check = BRANCH_HALT,
1721b4d15211STaniya Das 	.clkr = {
1722b4d15211STaniya Das 		.enable_reg = 0xc008,
1723b4d15211STaniya Das 		.enable_mask = BIT(0),
1724b4d15211STaniya Das 		.hw.init = &(const struct clk_init_data) {
1725b4d15211STaniya Das 			.name = "disp_cc_mdss_rscc_vsync_clk",
1726b4d15211STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1727b4d15211STaniya Das 				&disp_cc_mdss_vsync_clk_src.clkr.hw,
1728b4d15211STaniya Das 			},
1729b4d15211STaniya Das 			.num_parents = 1,
1730b4d15211STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1731b4d15211STaniya Das 			.ops = &clk_branch2_ops,
1732b4d15211STaniya Das 		},
1733b4d15211STaniya Das 	},
1734b4d15211STaniya Das };
1735b4d15211STaniya Das 
1736b4d15211STaniya Das static struct clk_branch disp_cc_mdss_vsync1_clk = {
1737b4d15211STaniya Das 	.halt_reg = 0xa024,
1738b4d15211STaniya Das 	.halt_check = BRANCH_HALT,
1739b4d15211STaniya Das 	.clkr = {
1740b4d15211STaniya Das 		.enable_reg = 0xa024,
1741b4d15211STaniya Das 		.enable_mask = BIT(0),
1742b4d15211STaniya Das 		.hw.init = &(const struct clk_init_data) {
1743b4d15211STaniya Das 			.name = "disp_cc_mdss_vsync1_clk",
1744b4d15211STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1745b4d15211STaniya Das 				&disp_cc_mdss_vsync_clk_src.clkr.hw,
1746b4d15211STaniya Das 			},
1747b4d15211STaniya Das 			.num_parents = 1,
1748b4d15211STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1749b4d15211STaniya Das 			.ops = &clk_branch2_ops,
1750b4d15211STaniya Das 		},
1751b4d15211STaniya Das 	},
1752b4d15211STaniya Das };
1753b4d15211STaniya Das 
1754b4d15211STaniya Das static struct clk_branch disp_cc_mdss_vsync_clk = {
1755b4d15211STaniya Das 	.halt_reg = 0x8030,
1756b4d15211STaniya Das 	.halt_check = BRANCH_HALT,
1757b4d15211STaniya Das 	.clkr = {
1758b4d15211STaniya Das 		.enable_reg = 0x8030,
1759b4d15211STaniya Das 		.enable_mask = BIT(0),
1760b4d15211STaniya Das 		.hw.init = &(const struct clk_init_data) {
1761b4d15211STaniya Das 			.name = "disp_cc_mdss_vsync_clk",
1762b4d15211STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1763b4d15211STaniya Das 				&disp_cc_mdss_vsync_clk_src.clkr.hw,
1764b4d15211STaniya Das 			},
1765b4d15211STaniya Das 			.num_parents = 1,
1766b4d15211STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1767b4d15211STaniya Das 			.ops = &clk_branch2_ops,
1768b4d15211STaniya Das 		},
1769b4d15211STaniya Das 	},
1770b4d15211STaniya Das };
1771b4d15211STaniya Das 
1772b4d15211STaniya Das static struct clk_branch disp_cc_osc_clk = {
1773b4d15211STaniya Das 	.halt_reg = 0x80b4,
1774b4d15211STaniya Das 	.halt_check = BRANCH_HALT,
1775b4d15211STaniya Das 	.clkr = {
1776b4d15211STaniya Das 		.enable_reg = 0x80b4,
1777b4d15211STaniya Das 		.enable_mask = BIT(0),
1778b4d15211STaniya Das 		.hw.init = &(const struct clk_init_data) {
1779b4d15211STaniya Das 			.name = "disp_cc_osc_clk",
1780b4d15211STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1781b4d15211STaniya Das 				&disp_cc_osc_clk_src.clkr.hw,
1782b4d15211STaniya Das 			},
1783b4d15211STaniya Das 			.num_parents = 1,
1784b4d15211STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1785b4d15211STaniya Das 			.ops = &clk_branch2_ops,
1786b4d15211STaniya Das 		},
1787b4d15211STaniya Das 	},
1788b4d15211STaniya Das };
1789b4d15211STaniya Das 
1790b4d15211STaniya Das static struct gdsc disp_cc_mdss_core_gdsc = {
1791b4d15211STaniya Das 	.gdscr = 0x9000,
1792b4d15211STaniya Das 	.en_rest_wait_val = 0x2,
1793b4d15211STaniya Das 	.en_few_wait_val = 0x2,
1794b4d15211STaniya Das 	.clk_dis_wait_val = 0xf,
1795b4d15211STaniya Das 	.pd = {
1796b4d15211STaniya Das 		.name = "disp_cc_mdss_core_gdsc",
1797b4d15211STaniya Das 	},
1798b4d15211STaniya Das 	.pwrsts = PWRSTS_OFF_ON,
1799b4d15211STaniya Das 	.flags = HW_CTRL | POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
1800b4d15211STaniya Das };
1801b4d15211STaniya Das 
1802b4d15211STaniya Das static struct gdsc disp_cc_mdss_core_int2_gdsc = {
1803b4d15211STaniya Das 	.gdscr = 0xb000,
1804b4d15211STaniya Das 	.en_rest_wait_val = 0x2,
1805b4d15211STaniya Das 	.en_few_wait_val = 0x2,
1806b4d15211STaniya Das 	.clk_dis_wait_val = 0xf,
1807b4d15211STaniya Das 	.pd = {
1808b4d15211STaniya Das 		.name = "disp_cc_mdss_core_int2_gdsc",
1809b4d15211STaniya Das 	},
1810b4d15211STaniya Das 	.pwrsts = PWRSTS_OFF_ON,
1811b4d15211STaniya Das 	.flags = HW_CTRL | POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
1812b4d15211STaniya Das };
1813b4d15211STaniya Das 
1814b4d15211STaniya Das static struct clk_regmap *disp_cc_glymur_clocks[] = {
1815b4d15211STaniya Das 	[DISP_CC_ESYNC0_CLK] = &disp_cc_esync0_clk.clkr,
1816b4d15211STaniya Das 	[DISP_CC_ESYNC0_CLK_SRC] = &disp_cc_esync0_clk_src.clkr,
1817b4d15211STaniya Das 	[DISP_CC_ESYNC1_CLK] = &disp_cc_esync1_clk.clkr,
1818b4d15211STaniya Das 	[DISP_CC_ESYNC1_CLK_SRC] = &disp_cc_esync1_clk_src.clkr,
1819b4d15211STaniya Das 	[DISP_CC_MDSS_ACCU_SHIFT_CLK] = &disp_cc_mdss_accu_shift_clk.clkr,
1820b4d15211STaniya Das 	[DISP_CC_MDSS_AHB1_CLK] = &disp_cc_mdss_ahb1_clk.clkr,
1821b4d15211STaniya Das 	[DISP_CC_MDSS_AHB_CLK] = &disp_cc_mdss_ahb_clk.clkr,
1822b4d15211STaniya Das 	[DISP_CC_MDSS_AHB_CLK_SRC] = &disp_cc_mdss_ahb_clk_src.clkr,
1823b4d15211STaniya Das 	[DISP_CC_MDSS_BYTE0_CLK] = &disp_cc_mdss_byte0_clk.clkr,
1824b4d15211STaniya Das 	[DISP_CC_MDSS_BYTE0_CLK_SRC] = &disp_cc_mdss_byte0_clk_src.clkr,
1825b4d15211STaniya Das 	[DISP_CC_MDSS_BYTE0_DIV_CLK_SRC] = &disp_cc_mdss_byte0_div_clk_src.clkr,
1826b4d15211STaniya Das 	[DISP_CC_MDSS_BYTE0_INTF_CLK] = &disp_cc_mdss_byte0_intf_clk.clkr,
1827b4d15211STaniya Das 	[DISP_CC_MDSS_BYTE1_CLK] = &disp_cc_mdss_byte1_clk.clkr,
1828b4d15211STaniya Das 	[DISP_CC_MDSS_BYTE1_CLK_SRC] = &disp_cc_mdss_byte1_clk_src.clkr,
1829b4d15211STaniya Das 	[DISP_CC_MDSS_BYTE1_DIV_CLK_SRC] = &disp_cc_mdss_byte1_div_clk_src.clkr,
1830b4d15211STaniya Das 	[DISP_CC_MDSS_BYTE1_INTF_CLK] = &disp_cc_mdss_byte1_intf_clk.clkr,
1831b4d15211STaniya Das 	[DISP_CC_MDSS_DPTX0_AUX_CLK] = &disp_cc_mdss_dptx0_aux_clk.clkr,
1832b4d15211STaniya Das 	[DISP_CC_MDSS_DPTX0_AUX_CLK_SRC] = &disp_cc_mdss_dptx0_aux_clk_src.clkr,
1833b4d15211STaniya Das 	[DISP_CC_MDSS_DPTX0_LINK_CLK] = &disp_cc_mdss_dptx0_link_clk.clkr,
1834b4d15211STaniya Das 	[DISP_CC_MDSS_DPTX0_LINK_CLK_SRC] = &disp_cc_mdss_dptx0_link_clk_src.clkr,
1835b4d15211STaniya Das 	[DISP_CC_MDSS_DPTX0_LINK_DIV_CLK_SRC] = &disp_cc_mdss_dptx0_link_div_clk_src.clkr,
1836b4d15211STaniya Das 	[DISP_CC_MDSS_DPTX0_LINK_DPIN_CLK] = &disp_cc_mdss_dptx0_link_dpin_clk.clkr,
1837b4d15211STaniya Das 	[DISP_CC_MDSS_DPTX0_LINK_DPIN_DIV_CLK_SRC] = &disp_cc_mdss_dptx0_link_dpin_div_clk_src.clkr,
1838b4d15211STaniya Das 	[DISP_CC_MDSS_DPTX0_LINK_INTF_CLK] = &disp_cc_mdss_dptx0_link_intf_clk.clkr,
1839b4d15211STaniya Das 	[DISP_CC_MDSS_DPTX0_PIXEL0_CLK] = &disp_cc_mdss_dptx0_pixel0_clk.clkr,
1840b4d15211STaniya Das 	[DISP_CC_MDSS_DPTX0_PIXEL0_CLK_SRC] = &disp_cc_mdss_dptx0_pixel0_clk_src.clkr,
1841b4d15211STaniya Das 	[DISP_CC_MDSS_DPTX0_PIXEL1_CLK] = &disp_cc_mdss_dptx0_pixel1_clk.clkr,
1842b4d15211STaniya Das 	[DISP_CC_MDSS_DPTX0_PIXEL1_CLK_SRC] = &disp_cc_mdss_dptx0_pixel1_clk_src.clkr,
1843b4d15211STaniya Das 	[DISP_CC_MDSS_DPTX0_USB_ROUTER_LINK_INTF_CLK] =
1844b4d15211STaniya Das 		&disp_cc_mdss_dptx0_usb_router_link_intf_clk.clkr,
1845b4d15211STaniya Das 	[DISP_CC_MDSS_DPTX1_AUX_CLK] = &disp_cc_mdss_dptx1_aux_clk.clkr,
1846b4d15211STaniya Das 	[DISP_CC_MDSS_DPTX1_AUX_CLK_SRC] = &disp_cc_mdss_dptx1_aux_clk_src.clkr,
1847b4d15211STaniya Das 	[DISP_CC_MDSS_DPTX1_LINK_CLK] = &disp_cc_mdss_dptx1_link_clk.clkr,
1848b4d15211STaniya Das 	[DISP_CC_MDSS_DPTX1_LINK_CLK_SRC] = &disp_cc_mdss_dptx1_link_clk_src.clkr,
1849b4d15211STaniya Das 	[DISP_CC_MDSS_DPTX1_LINK_DIV_CLK_SRC] = &disp_cc_mdss_dptx1_link_div_clk_src.clkr,
1850b4d15211STaniya Das 	[DISP_CC_MDSS_DPTX1_LINK_DPIN_CLK] = &disp_cc_mdss_dptx1_link_dpin_clk.clkr,
1851b4d15211STaniya Das 	[DISP_CC_MDSS_DPTX1_LINK_DPIN_DIV_CLK_SRC] = &disp_cc_mdss_dptx1_link_dpin_div_clk_src.clkr,
1852b4d15211STaniya Das 	[DISP_CC_MDSS_DPTX1_LINK_INTF_CLK] = &disp_cc_mdss_dptx1_link_intf_clk.clkr,
1853b4d15211STaniya Das 	[DISP_CC_MDSS_DPTX1_PIXEL0_CLK] = &disp_cc_mdss_dptx1_pixel0_clk.clkr,
1854b4d15211STaniya Das 	[DISP_CC_MDSS_DPTX1_PIXEL0_CLK_SRC] = &disp_cc_mdss_dptx1_pixel0_clk_src.clkr,
1855b4d15211STaniya Das 	[DISP_CC_MDSS_DPTX1_PIXEL1_CLK] = &disp_cc_mdss_dptx1_pixel1_clk.clkr,
1856b4d15211STaniya Das 	[DISP_CC_MDSS_DPTX1_PIXEL1_CLK_SRC] = &disp_cc_mdss_dptx1_pixel1_clk_src.clkr,
1857b4d15211STaniya Das 	[DISP_CC_MDSS_DPTX1_USB_ROUTER_LINK_INTF_CLK] =
1858b4d15211STaniya Das 		&disp_cc_mdss_dptx1_usb_router_link_intf_clk.clkr,
1859b4d15211STaniya Das 	[DISP_CC_MDSS_DPTX2_AUX_CLK] = &disp_cc_mdss_dptx2_aux_clk.clkr,
1860b4d15211STaniya Das 	[DISP_CC_MDSS_DPTX2_AUX_CLK_SRC] = &disp_cc_mdss_dptx2_aux_clk_src.clkr,
1861b4d15211STaniya Das 	[DISP_CC_MDSS_DPTX2_LINK_CLK] = &disp_cc_mdss_dptx2_link_clk.clkr,
1862b4d15211STaniya Das 	[DISP_CC_MDSS_DPTX2_LINK_CLK_SRC] = &disp_cc_mdss_dptx2_link_clk_src.clkr,
1863b4d15211STaniya Das 	[DISP_CC_MDSS_DPTX2_LINK_DIV_CLK_SRC] = &disp_cc_mdss_dptx2_link_div_clk_src.clkr,
1864b4d15211STaniya Das 	[DISP_CC_MDSS_DPTX2_LINK_DPIN_CLK] = &disp_cc_mdss_dptx2_link_dpin_clk.clkr,
1865b4d15211STaniya Das 	[DISP_CC_MDSS_DPTX2_LINK_DPIN_DIV_CLK_SRC] = &disp_cc_mdss_dptx2_link_dpin_div_clk_src.clkr,
1866b4d15211STaniya Das 	[DISP_CC_MDSS_DPTX2_LINK_INTF_CLK] = &disp_cc_mdss_dptx2_link_intf_clk.clkr,
1867b4d15211STaniya Das 	[DISP_CC_MDSS_DPTX2_PIXEL0_CLK] = &disp_cc_mdss_dptx2_pixel0_clk.clkr,
1868b4d15211STaniya Das 	[DISP_CC_MDSS_DPTX2_PIXEL0_CLK_SRC] = &disp_cc_mdss_dptx2_pixel0_clk_src.clkr,
1869b4d15211STaniya Das 	[DISP_CC_MDSS_DPTX2_PIXEL1_CLK] = &disp_cc_mdss_dptx2_pixel1_clk.clkr,
1870b4d15211STaniya Das 	[DISP_CC_MDSS_DPTX2_PIXEL1_CLK_SRC] = &disp_cc_mdss_dptx2_pixel1_clk_src.clkr,
1871b4d15211STaniya Das 	[DISP_CC_MDSS_DPTX2_USB_ROUTER_LINK_INTF_CLK] =
1872b4d15211STaniya Das 		&disp_cc_mdss_dptx2_usb_router_link_intf_clk.clkr,
1873b4d15211STaniya Das 	[DISP_CC_MDSS_DPTX3_AUX_CLK] = &disp_cc_mdss_dptx3_aux_clk.clkr,
1874b4d15211STaniya Das 	[DISP_CC_MDSS_DPTX3_AUX_CLK_SRC] = &disp_cc_mdss_dptx3_aux_clk_src.clkr,
1875b4d15211STaniya Das 	[DISP_CC_MDSS_DPTX3_LINK_CLK] = &disp_cc_mdss_dptx3_link_clk.clkr,
1876b4d15211STaniya Das 	[DISP_CC_MDSS_DPTX3_LINK_CLK_SRC] = &disp_cc_mdss_dptx3_link_clk_src.clkr,
1877b4d15211STaniya Das 	[DISP_CC_MDSS_DPTX3_LINK_DIV_CLK_SRC] = &disp_cc_mdss_dptx3_link_div_clk_src.clkr,
1878b4d15211STaniya Das 	[DISP_CC_MDSS_DPTX3_LINK_DPIN_CLK] = &disp_cc_mdss_dptx3_link_dpin_clk.clkr,
1879b4d15211STaniya Das 	[DISP_CC_MDSS_DPTX3_LINK_DPIN_DIV_CLK_SRC] = &disp_cc_mdss_dptx3_link_dpin_div_clk_src.clkr,
1880b4d15211STaniya Das 	[DISP_CC_MDSS_DPTX3_LINK_INTF_CLK] = &disp_cc_mdss_dptx3_link_intf_clk.clkr,
1881b4d15211STaniya Das 	[DISP_CC_MDSS_DPTX3_PIXEL0_CLK] = &disp_cc_mdss_dptx3_pixel0_clk.clkr,
1882b4d15211STaniya Das 	[DISP_CC_MDSS_DPTX3_PIXEL0_CLK_SRC] = &disp_cc_mdss_dptx3_pixel0_clk_src.clkr,
1883b4d15211STaniya Das 	[DISP_CC_MDSS_ESC0_CLK] = &disp_cc_mdss_esc0_clk.clkr,
1884b4d15211STaniya Das 	[DISP_CC_MDSS_ESC0_CLK_SRC] = &disp_cc_mdss_esc0_clk_src.clkr,
1885b4d15211STaniya Das 	[DISP_CC_MDSS_ESC1_CLK] = &disp_cc_mdss_esc1_clk.clkr,
1886b4d15211STaniya Das 	[DISP_CC_MDSS_ESC1_CLK_SRC] = &disp_cc_mdss_esc1_clk_src.clkr,
1887b4d15211STaniya Das 	[DISP_CC_MDSS_MDP1_CLK] = &disp_cc_mdss_mdp1_clk.clkr,
1888b4d15211STaniya Das 	[DISP_CC_MDSS_MDP_CLK] = &disp_cc_mdss_mdp_clk.clkr,
1889b4d15211STaniya Das 	[DISP_CC_MDSS_MDP_CLK_SRC] = &disp_cc_mdss_mdp_clk_src.clkr,
1890b4d15211STaniya Das 	[DISP_CC_MDSS_MDP_LUT1_CLK] = &disp_cc_mdss_mdp_lut1_clk.clkr,
1891b4d15211STaniya Das 	[DISP_CC_MDSS_MDP_LUT_CLK] = &disp_cc_mdss_mdp_lut_clk.clkr,
1892b4d15211STaniya Das 	[DISP_CC_MDSS_NON_GDSC_AHB_CLK] = &disp_cc_mdss_non_gdsc_ahb_clk.clkr,
1893b4d15211STaniya Das 	[DISP_CC_MDSS_PCLK0_CLK] = &disp_cc_mdss_pclk0_clk.clkr,
1894b4d15211STaniya Das 	[DISP_CC_MDSS_PCLK0_CLK_SRC] = &disp_cc_mdss_pclk0_clk_src.clkr,
1895b4d15211STaniya Das 	[DISP_CC_MDSS_PCLK1_CLK] = &disp_cc_mdss_pclk1_clk.clkr,
1896b4d15211STaniya Das 	[DISP_CC_MDSS_PCLK1_CLK_SRC] = &disp_cc_mdss_pclk1_clk_src.clkr,
1897b4d15211STaniya Das 	[DISP_CC_MDSS_PCLK2_CLK] = &disp_cc_mdss_pclk2_clk.clkr,
1898b4d15211STaniya Das 	[DISP_CC_MDSS_PCLK2_CLK_SRC] = &disp_cc_mdss_pclk2_clk_src.clkr,
1899b4d15211STaniya Das 	[DISP_CC_MDSS_RSCC_AHB_CLK] = &disp_cc_mdss_rscc_ahb_clk.clkr,
1900b4d15211STaniya Das 	[DISP_CC_MDSS_RSCC_VSYNC_CLK] = &disp_cc_mdss_rscc_vsync_clk.clkr,
1901b4d15211STaniya Das 	[DISP_CC_MDSS_VSYNC1_CLK] = &disp_cc_mdss_vsync1_clk.clkr,
1902b4d15211STaniya Das 	[DISP_CC_MDSS_VSYNC_CLK] = &disp_cc_mdss_vsync_clk.clkr,
1903b4d15211STaniya Das 	[DISP_CC_MDSS_VSYNC_CLK_SRC] = &disp_cc_mdss_vsync_clk_src.clkr,
1904b4d15211STaniya Das 	[DISP_CC_OSC_CLK] = &disp_cc_osc_clk.clkr,
1905b4d15211STaniya Das 	[DISP_CC_OSC_CLK_SRC] = &disp_cc_osc_clk_src.clkr,
1906b4d15211STaniya Das 	[DISP_CC_PLL0] = &disp_cc_pll0.clkr,
1907b4d15211STaniya Das 	[DISP_CC_PLL1] = &disp_cc_pll1.clkr,
1908b4d15211STaniya Das 	[DISP_CC_SLEEP_CLK_SRC] = &disp_cc_sleep_clk_src.clkr,
1909b4d15211STaniya Das 	[DISP_CC_XO_CLK_SRC] = &disp_cc_xo_clk_src.clkr,
1910b4d15211STaniya Das };
1911b4d15211STaniya Das 
1912b4d15211STaniya Das static struct gdsc *disp_cc_glymur_gdscs[] = {
1913b4d15211STaniya Das 	[DISP_CC_MDSS_CORE_GDSC] = &disp_cc_mdss_core_gdsc,
1914b4d15211STaniya Das 	[DISP_CC_MDSS_CORE_INT2_GDSC] = &disp_cc_mdss_core_int2_gdsc,
1915b4d15211STaniya Das };
1916b4d15211STaniya Das 
1917b4d15211STaniya Das static const struct qcom_reset_map disp_cc_glymur_resets[] = {
1918b4d15211STaniya Das 	[DISP_CC_MDSS_CORE_BCR] = { 0x8000 },
1919b4d15211STaniya Das 	[DISP_CC_MDSS_CORE_INT2_BCR] = { 0xa000 },
1920b4d15211STaniya Das 	[DISP_CC_MDSS_RSCC_BCR] = { 0xc000 },
1921b4d15211STaniya Das };
1922b4d15211STaniya Das 
1923b4d15211STaniya Das static struct clk_alpha_pll *disp_cc_glymur_plls[] = {
1924b4d15211STaniya Das 	&disp_cc_pll0,
1925b4d15211STaniya Das 	&disp_cc_pll1,
1926b4d15211STaniya Das };
1927b4d15211STaniya Das 
1928b4d15211STaniya Das static u32 disp_cc_glymur_critical_cbcrs[] = {
1929b4d15211STaniya Das 	0xe07c, /* DISP_CC_SLEEP_CLK */
1930b4d15211STaniya Das 	0xe05c, /* DISP_CC_XO_CLK */
1931b4d15211STaniya Das };
1932b4d15211STaniya Das 
1933b4d15211STaniya Das static const struct regmap_config disp_cc_glymur_regmap_config = {
1934b4d15211STaniya Das 	.reg_bits = 32,
1935b4d15211STaniya Das 	.reg_stride = 4,
1936b4d15211STaniya Das 	.val_bits = 32,
1937b4d15211STaniya Das 	.max_register = 0x11014,
1938b4d15211STaniya Das 	.fast_io = true,
1939b4d15211STaniya Das };
1940b4d15211STaniya Das 
1941b4d15211STaniya Das static struct qcom_cc_driver_data disp_cc_glymur_driver_data = {
1942b4d15211STaniya Das 	.alpha_plls = disp_cc_glymur_plls,
1943b4d15211STaniya Das 	.num_alpha_plls = ARRAY_SIZE(disp_cc_glymur_plls),
1944b4d15211STaniya Das 	.clk_cbcrs = disp_cc_glymur_critical_cbcrs,
1945b4d15211STaniya Das 	.num_clk_cbcrs = ARRAY_SIZE(disp_cc_glymur_critical_cbcrs),
1946b4d15211STaniya Das };
1947b4d15211STaniya Das 
1948*9ff39b04SImran Shaik static const struct qcom_cc_desc disp_cc_glymur_desc = {
1949b4d15211STaniya Das 	.config = &disp_cc_glymur_regmap_config,
1950b4d15211STaniya Das 	.clks = disp_cc_glymur_clocks,
1951b4d15211STaniya Das 	.num_clks = ARRAY_SIZE(disp_cc_glymur_clocks),
1952b4d15211STaniya Das 	.resets = disp_cc_glymur_resets,
1953b4d15211STaniya Das 	.num_resets = ARRAY_SIZE(disp_cc_glymur_resets),
1954b4d15211STaniya Das 	.gdscs = disp_cc_glymur_gdscs,
1955b4d15211STaniya Das 	.num_gdscs = ARRAY_SIZE(disp_cc_glymur_gdscs),
1956b4d15211STaniya Das 	.use_rpm = true,
1957b4d15211STaniya Das 	.driver_data = &disp_cc_glymur_driver_data,
1958b4d15211STaniya Das };
1959b4d15211STaniya Das 
1960b4d15211STaniya Das static const struct of_device_id disp_cc_glymur_match_table[] = {
1961b4d15211STaniya Das 	{ .compatible = "qcom,glymur-dispcc" },
1962b4d15211STaniya Das 	{ }
1963b4d15211STaniya Das };
1964b4d15211STaniya Das MODULE_DEVICE_TABLE(of, disp_cc_glymur_match_table);
1965b4d15211STaniya Das 
disp_cc_glymur_probe(struct platform_device * pdev)1966b4d15211STaniya Das static int disp_cc_glymur_probe(struct platform_device *pdev)
1967b4d15211STaniya Das {
1968b4d15211STaniya Das 	return qcom_cc_probe(pdev, &disp_cc_glymur_desc);
1969b4d15211STaniya Das }
1970b4d15211STaniya Das 
1971b4d15211STaniya Das static struct platform_driver disp_cc_glymur_driver = {
1972b4d15211STaniya Das 	.probe = disp_cc_glymur_probe,
1973b4d15211STaniya Das 	.driver = {
1974b4d15211STaniya Das 		.name = "dispcc-glymur",
1975b4d15211STaniya Das 		.of_match_table = disp_cc_glymur_match_table,
1976b4d15211STaniya Das 	},
1977b4d15211STaniya Das };
1978b4d15211STaniya Das 
1979b4d15211STaniya Das module_platform_driver(disp_cc_glymur_driver);
1980b4d15211STaniya Das 
1981b4d15211STaniya Das MODULE_DESCRIPTION("QTI DISPCC GLYMUR Driver");
1982b4d15211STaniya Das MODULE_LICENSE("GPL");
1983