xref: /linux/drivers/clk/qcom/dispcc1-sa8775p.c (revision 4f9786035f9e519db41375818e1d0b5f20da2f10)
1e700bfd2STaniya Das // SPDX-License-Identifier: GPL-2.0-only
2e700bfd2STaniya Das /*
3e700bfd2STaniya Das  * Copyright (c) 2024, Qualcomm Innovation Center, Inc. All rights reserved.
4e700bfd2STaniya Das  */
5e700bfd2STaniya Das 
6e700bfd2STaniya Das #include <linux/clk-provider.h>
7e700bfd2STaniya Das #include <linux/module.h>
8e700bfd2STaniya Das #include <linux/mod_devicetable.h>
9e700bfd2STaniya Das #include <linux/platform_device.h>
10e700bfd2STaniya Das #include <linux/pm_runtime.h>
11e700bfd2STaniya Das #include <linux/regmap.h>
12e700bfd2STaniya Das 
13e700bfd2STaniya Das #include <dt-bindings/clock/qcom,sa8775p-dispcc.h>
14e700bfd2STaniya Das 
15e700bfd2STaniya Das #include "clk-alpha-pll.h"
16e700bfd2STaniya Das #include "clk-branch.h"
17e700bfd2STaniya Das #include "clk-pll.h"
18e700bfd2STaniya Das #include "clk-rcg.h"
19e700bfd2STaniya Das #include "clk-regmap.h"
20e700bfd2STaniya Das #include "clk-regmap-divider.h"
21e700bfd2STaniya Das #include "clk-regmap-mux.h"
22e700bfd2STaniya Das #include "common.h"
23e700bfd2STaniya Das #include "gdsc.h"
24e700bfd2STaniya Das #include "reset.h"
25e700bfd2STaniya Das 
26e700bfd2STaniya Das enum {
27e700bfd2STaniya Das 	DT_IFACE,
28e700bfd2STaniya Das 	DT_BI_TCXO,
29e700bfd2STaniya Das 	DT_BI_TCXO_AO,
30e700bfd2STaniya Das 	DT_SLEEP_CLK,
31e700bfd2STaniya Das 	DT_DP0_PHY_PLL_LINK_CLK,
32e700bfd2STaniya Das 	DT_DP0_PHY_PLL_VCO_DIV_CLK,
33e700bfd2STaniya Das 	DT_DP1_PHY_PLL_LINK_CLK,
34e700bfd2STaniya Das 	DT_DP1_PHY_PLL_VCO_DIV_CLK,
35e700bfd2STaniya Das 	DT_DSI0_PHY_PLL_OUT_BYTECLK,
36e700bfd2STaniya Das 	DT_DSI0_PHY_PLL_OUT_DSICLK,
37e700bfd2STaniya Das 	DT_DSI1_PHY_PLL_OUT_BYTECLK,
38e700bfd2STaniya Das 	DT_DSI1_PHY_PLL_OUT_DSICLK,
39e700bfd2STaniya Das };
40e700bfd2STaniya Das 
41e700bfd2STaniya Das enum {
42e700bfd2STaniya Das 	P_BI_TCXO,
43e700bfd2STaniya Das 	P_DP0_PHY_PLL_LINK_CLK,
44e700bfd2STaniya Das 	P_DP0_PHY_PLL_VCO_DIV_CLK,
45e700bfd2STaniya Das 	P_DP1_PHY_PLL_LINK_CLK,
46e700bfd2STaniya Das 	P_DP1_PHY_PLL_VCO_DIV_CLK,
47e700bfd2STaniya Das 	P_DSI0_PHY_PLL_OUT_BYTECLK,
48e700bfd2STaniya Das 	P_DSI0_PHY_PLL_OUT_DSICLK,
49e700bfd2STaniya Das 	P_DSI1_PHY_PLL_OUT_BYTECLK,
50e700bfd2STaniya Das 	P_DSI1_PHY_PLL_OUT_DSICLK,
51e700bfd2STaniya Das 	P_MDSS_1_DISP_CC_PLL0_OUT_MAIN,
52e700bfd2STaniya Das 	P_MDSS_1_DISP_CC_PLL1_OUT_EVEN,
53e700bfd2STaniya Das 	P_MDSS_1_DISP_CC_PLL1_OUT_MAIN,
54e700bfd2STaniya Das 	P_SLEEP_CLK,
55e700bfd2STaniya Das };
56e700bfd2STaniya Das 
57e700bfd2STaniya Das static const struct pll_vco lucid_evo_vco[] = {
58e700bfd2STaniya Das 	{ 249600000, 2020000000, 0 },
59e700bfd2STaniya Das };
60e700bfd2STaniya Das 
61e700bfd2STaniya Das static const struct alpha_pll_config mdss_1_disp_cc_pll0_config = {
62e700bfd2STaniya Das 	.l = 0x3a,
63e700bfd2STaniya Das 	.alpha = 0x9800,
64e700bfd2STaniya Das 	.config_ctl_val = 0x20485699,
65e700bfd2STaniya Das 	.config_ctl_hi_val = 0x00182261,
66e700bfd2STaniya Das 	.config_ctl_hi1_val = 0x32aa299c,
67e700bfd2STaniya Das 	.user_ctl_val = 0x00000000,
68e700bfd2STaniya Das 	.user_ctl_hi_val = 0x00400805,
69e700bfd2STaniya Das };
70e700bfd2STaniya Das 
71e700bfd2STaniya Das static struct clk_alpha_pll mdss_1_disp_cc_pll0 = {
72e700bfd2STaniya Das 	.offset = 0x0,
73e700bfd2STaniya Das 	.vco_table = lucid_evo_vco,
74e700bfd2STaniya Das 	.num_vco = ARRAY_SIZE(lucid_evo_vco),
75e700bfd2STaniya Das 	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_EVO],
76e700bfd2STaniya Das 	.clkr = {
77e700bfd2STaniya Das 		.hw.init = &(const struct clk_init_data) {
78e700bfd2STaniya Das 			.name = "mdss_1_disp_cc_pll0",
79e700bfd2STaniya Das 			.parent_data = &(const struct clk_parent_data) {
80e700bfd2STaniya Das 				.index = DT_BI_TCXO,
81e700bfd2STaniya Das 			},
82e700bfd2STaniya Das 			.num_parents = 1,
83e700bfd2STaniya Das 			.ops = &clk_alpha_pll_lucid_evo_ops,
84e700bfd2STaniya Das 		},
85e700bfd2STaniya Das 	},
86e700bfd2STaniya Das };
87e700bfd2STaniya Das 
88e700bfd2STaniya Das static const struct alpha_pll_config mdss_1_disp_cc_pll1_config = {
89e700bfd2STaniya Das 	.l = 0x1f,
90e700bfd2STaniya Das 	.alpha = 0x4000,
91e700bfd2STaniya Das 	.config_ctl_val = 0x20485699,
92e700bfd2STaniya Das 	.config_ctl_hi_val = 0x00182261,
93e700bfd2STaniya Das 	.config_ctl_hi1_val = 0x32aa299c,
94e700bfd2STaniya Das 	.user_ctl_val = 0x00000000,
95e700bfd2STaniya Das 	.user_ctl_hi_val = 0x00400805,
96e700bfd2STaniya Das };
97e700bfd2STaniya Das 
98e700bfd2STaniya Das static struct clk_alpha_pll mdss_1_disp_cc_pll1 = {
99e700bfd2STaniya Das 	.offset = 0x1000,
100e700bfd2STaniya Das 	.vco_table = lucid_evo_vco,
101e700bfd2STaniya Das 	.num_vco = ARRAY_SIZE(lucid_evo_vco),
102e700bfd2STaniya Das 	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_EVO],
103e700bfd2STaniya Das 	.clkr = {
104e700bfd2STaniya Das 		.hw.init = &(const struct clk_init_data) {
105e700bfd2STaniya Das 			.name = "mdss_1_disp_cc_pll1",
106e700bfd2STaniya Das 			.parent_data = &(const struct clk_parent_data) {
107e700bfd2STaniya Das 				.index = DT_BI_TCXO,
108e700bfd2STaniya Das 			},
109e700bfd2STaniya Das 			.num_parents = 1,
110e700bfd2STaniya Das 			.ops = &clk_alpha_pll_lucid_evo_ops,
111e700bfd2STaniya Das 		},
112e700bfd2STaniya Das 	},
113e700bfd2STaniya Das };
114e700bfd2STaniya Das 
115e700bfd2STaniya Das static const struct parent_map disp_cc_1_parent_map_0[] = {
116e700bfd2STaniya Das 	{ P_BI_TCXO, 0 },
117e700bfd2STaniya Das 	{ P_DP0_PHY_PLL_LINK_CLK, 1 },
118e700bfd2STaniya Das 	{ P_DP0_PHY_PLL_VCO_DIV_CLK, 2 },
119e700bfd2STaniya Das 	{ P_DP1_PHY_PLL_VCO_DIV_CLK, 4 },
120e700bfd2STaniya Das };
121e700bfd2STaniya Das 
122e700bfd2STaniya Das static const struct clk_parent_data disp_cc_1_parent_data_0[] = {
123e700bfd2STaniya Das 	{ .index = DT_BI_TCXO },
124e700bfd2STaniya Das 	{ .index = DT_DP0_PHY_PLL_LINK_CLK },
125e700bfd2STaniya Das 	{ .index = DT_DP0_PHY_PLL_VCO_DIV_CLK },
126e700bfd2STaniya Das 	{ .index = DT_DP1_PHY_PLL_VCO_DIV_CLK },
127e700bfd2STaniya Das };
128e700bfd2STaniya Das 
129e700bfd2STaniya Das static const struct parent_map disp_cc_1_parent_map_1[] = {
130e700bfd2STaniya Das 	{ P_BI_TCXO, 0 },
131e700bfd2STaniya Das 	{ P_DSI0_PHY_PLL_OUT_DSICLK, 1 },
132e700bfd2STaniya Das 	{ P_DSI0_PHY_PLL_OUT_BYTECLK, 2 },
133e700bfd2STaniya Das 	{ P_DSI1_PHY_PLL_OUT_DSICLK, 3 },
134e700bfd2STaniya Das 	{ P_DSI1_PHY_PLL_OUT_BYTECLK, 4 },
135e700bfd2STaniya Das };
136e700bfd2STaniya Das 
137e700bfd2STaniya Das static const struct clk_parent_data disp_cc_1_parent_data_1[] = {
138e700bfd2STaniya Das 	{ .index = DT_BI_TCXO },
139e700bfd2STaniya Das 	{ .index = DT_DSI0_PHY_PLL_OUT_DSICLK },
140e700bfd2STaniya Das 	{ .index = DT_DSI0_PHY_PLL_OUT_BYTECLK },
141e700bfd2STaniya Das 	{ .index = DT_DSI1_PHY_PLL_OUT_DSICLK },
142e700bfd2STaniya Das 	{ .index = DT_DSI1_PHY_PLL_OUT_BYTECLK },
143e700bfd2STaniya Das };
144e700bfd2STaniya Das 
145e700bfd2STaniya Das static const struct parent_map disp_cc_1_parent_map_2[] = {
146e700bfd2STaniya Das 	{ P_BI_TCXO, 0 },
147e700bfd2STaniya Das };
148e700bfd2STaniya Das 
149e700bfd2STaniya Das static const struct clk_parent_data disp_cc_1_parent_data_2[] = {
150e700bfd2STaniya Das 	{ .index = DT_BI_TCXO },
151e700bfd2STaniya Das };
152e700bfd2STaniya Das 
153e700bfd2STaniya Das static const struct clk_parent_data disp_cc_1_parent_data_2_ao[] = {
154e700bfd2STaniya Das 	{ .index = DT_BI_TCXO_AO },
155e700bfd2STaniya Das };
156e700bfd2STaniya Das 
157e700bfd2STaniya Das static const struct parent_map disp_cc_1_parent_map_3[] = {
158e700bfd2STaniya Das 	{ P_BI_TCXO, 0 },
159e700bfd2STaniya Das 	{ P_DP0_PHY_PLL_LINK_CLK, 1 },
160e700bfd2STaniya Das 	{ P_DP1_PHY_PLL_LINK_CLK, 2 },
161e700bfd2STaniya Das };
162e700bfd2STaniya Das 
163e700bfd2STaniya Das static const struct clk_parent_data disp_cc_1_parent_data_3[] = {
164e700bfd2STaniya Das 	{ .index = DT_BI_TCXO },
165e700bfd2STaniya Das 	{ .index = DT_DP0_PHY_PLL_LINK_CLK },
166e700bfd2STaniya Das 	{ .index = DT_DP1_PHY_PLL_LINK_CLK },
167e700bfd2STaniya Das };
168e700bfd2STaniya Das 
169e700bfd2STaniya Das static const struct parent_map disp_cc_1_parent_map_4[] = {
170e700bfd2STaniya Das 	{ P_BI_TCXO, 0 },
171e700bfd2STaniya Das 	{ P_DSI0_PHY_PLL_OUT_BYTECLK, 2 },
172e700bfd2STaniya Das 	{ P_DSI1_PHY_PLL_OUT_BYTECLK, 4 },
173e700bfd2STaniya Das };
174e700bfd2STaniya Das 
175e700bfd2STaniya Das static const struct clk_parent_data disp_cc_1_parent_data_4[] = {
176e700bfd2STaniya Das 	{ .index = DT_BI_TCXO },
177e700bfd2STaniya Das 	{ .index = DT_DSI0_PHY_PLL_OUT_BYTECLK },
178e700bfd2STaniya Das 	{ .index = DT_DSI1_PHY_PLL_OUT_BYTECLK },
179e700bfd2STaniya Das };
180e700bfd2STaniya Das 
181e700bfd2STaniya Das static const struct parent_map disp_cc_1_parent_map_5[] = {
182e700bfd2STaniya Das 	{ P_BI_TCXO, 0 },
183e700bfd2STaniya Das 	{ P_MDSS_1_DISP_CC_PLL1_OUT_MAIN, 4 },
184e700bfd2STaniya Das 	{ P_MDSS_1_DISP_CC_PLL1_OUT_EVEN, 6 },
185e700bfd2STaniya Das };
186e700bfd2STaniya Das 
187e700bfd2STaniya Das static const struct clk_parent_data disp_cc_1_parent_data_5[] = {
188e700bfd2STaniya Das 	{ .index = DT_BI_TCXO },
189e700bfd2STaniya Das 	{ .hw = &mdss_1_disp_cc_pll1.clkr.hw },
190e700bfd2STaniya Das 	{ .hw = &mdss_1_disp_cc_pll1.clkr.hw },
191e700bfd2STaniya Das };
192e700bfd2STaniya Das 
193e700bfd2STaniya Das static const struct parent_map disp_cc_1_parent_map_6[] = {
194e700bfd2STaniya Das 	{ P_BI_TCXO, 0 },
195e700bfd2STaniya Das 	{ P_MDSS_1_DISP_CC_PLL0_OUT_MAIN, 1 },
196e700bfd2STaniya Das 	{ P_MDSS_1_DISP_CC_PLL1_OUT_MAIN, 4 },
197e700bfd2STaniya Das 	{ P_MDSS_1_DISP_CC_PLL1_OUT_EVEN, 6 },
198e700bfd2STaniya Das };
199e700bfd2STaniya Das 
200e700bfd2STaniya Das static const struct clk_parent_data disp_cc_1_parent_data_6[] = {
201e700bfd2STaniya Das 	{ .index = DT_BI_TCXO },
202e700bfd2STaniya Das 	{ .hw = &mdss_1_disp_cc_pll0.clkr.hw },
203e700bfd2STaniya Das 	{ .hw = &mdss_1_disp_cc_pll1.clkr.hw },
204e700bfd2STaniya Das 	{ .hw = &mdss_1_disp_cc_pll1.clkr.hw },
205e700bfd2STaniya Das };
206e700bfd2STaniya Das 
207e700bfd2STaniya Das static const struct parent_map disp_cc_1_parent_map_7[] = {
208e700bfd2STaniya Das 	{ P_SLEEP_CLK, 0 },
209e700bfd2STaniya Das };
210e700bfd2STaniya Das 
211e700bfd2STaniya Das static const struct clk_parent_data disp_cc_1_parent_data_7_ao[] = {
212e700bfd2STaniya Das 	{ .index = DT_SLEEP_CLK },
213e700bfd2STaniya Das };
214e700bfd2STaniya Das 
215e700bfd2STaniya Das static const struct freq_tbl ftbl_mdss_1_disp_cc_mdss_ahb_clk_src[] = {
216e700bfd2STaniya Das 	F(37500000, P_MDSS_1_DISP_CC_PLL1_OUT_MAIN, 16, 0, 0),
217e700bfd2STaniya Das 	F(75000000, P_MDSS_1_DISP_CC_PLL1_OUT_MAIN, 8, 0, 0),
218e700bfd2STaniya Das 	{ }
219e700bfd2STaniya Das };
220e700bfd2STaniya Das 
221e700bfd2STaniya Das static struct clk_rcg2 mdss_1_disp_cc_mdss_ahb_clk_src = {
222e700bfd2STaniya Das 	.cmd_rcgr = 0x824c,
223e700bfd2STaniya Das 	.mnd_width = 0,
224e700bfd2STaniya Das 	.hid_width = 5,
225e700bfd2STaniya Das 	.parent_map = disp_cc_1_parent_map_5,
226e700bfd2STaniya Das 	.freq_tbl = ftbl_mdss_1_disp_cc_mdss_ahb_clk_src,
227e700bfd2STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
228e700bfd2STaniya Das 		.name = "mdss_1_disp_cc_mdss_ahb_clk_src",
229e700bfd2STaniya Das 		.parent_data = disp_cc_1_parent_data_5,
230e700bfd2STaniya Das 		.num_parents = ARRAY_SIZE(disp_cc_1_parent_data_5),
231e700bfd2STaniya Das 		.flags = CLK_SET_RATE_PARENT,
232e700bfd2STaniya Das 		.ops = &clk_rcg2_shared_ops,
233e700bfd2STaniya Das 	},
234e700bfd2STaniya Das };
235e700bfd2STaniya Das 
236e700bfd2STaniya Das static const struct freq_tbl ftbl_mdss_1_disp_cc_mdss_byte0_clk_src[] = {
237e700bfd2STaniya Das 	F(19200000, P_BI_TCXO, 1, 0, 0),
238e700bfd2STaniya Das 	{ }
239e700bfd2STaniya Das };
240e700bfd2STaniya Das 
241e700bfd2STaniya Das static struct clk_rcg2 mdss_1_disp_cc_mdss_byte0_clk_src = {
242e700bfd2STaniya Das 	.cmd_rcgr = 0x80ec,
243e700bfd2STaniya Das 	.mnd_width = 0,
244e700bfd2STaniya Das 	.hid_width = 5,
245e700bfd2STaniya Das 	.parent_map = disp_cc_1_parent_map_1,
246e700bfd2STaniya Das 	.freq_tbl = ftbl_mdss_1_disp_cc_mdss_byte0_clk_src,
247e700bfd2STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
248e700bfd2STaniya Das 		.name = "mdss_1_disp_cc_mdss_byte0_clk_src",
249e700bfd2STaniya Das 		.parent_data = disp_cc_1_parent_data_1,
250e700bfd2STaniya Das 		.num_parents = ARRAY_SIZE(disp_cc_1_parent_data_1),
251e700bfd2STaniya Das 		.flags = CLK_SET_RATE_PARENT,
252e700bfd2STaniya Das 		.ops = &clk_byte2_ops,
253e700bfd2STaniya Das 	},
254e700bfd2STaniya Das };
255e700bfd2STaniya Das 
256e700bfd2STaniya Das static struct clk_rcg2 mdss_1_disp_cc_mdss_byte1_clk_src = {
257e700bfd2STaniya Das 	.cmd_rcgr = 0x8108,
258e700bfd2STaniya Das 	.mnd_width = 0,
259e700bfd2STaniya Das 	.hid_width = 5,
260e700bfd2STaniya Das 	.parent_map = disp_cc_1_parent_map_1,
261e700bfd2STaniya Das 	.freq_tbl = ftbl_mdss_1_disp_cc_mdss_byte0_clk_src,
262e700bfd2STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
263e700bfd2STaniya Das 		.name = "mdss_1_disp_cc_mdss_byte1_clk_src",
264e700bfd2STaniya Das 		.parent_data = disp_cc_1_parent_data_1,
265e700bfd2STaniya Das 		.num_parents = ARRAY_SIZE(disp_cc_1_parent_data_1),
266e700bfd2STaniya Das 		.flags = CLK_SET_RATE_PARENT,
267e700bfd2STaniya Das 		.ops = &clk_byte2_ops,
268e700bfd2STaniya Das 	},
269e700bfd2STaniya Das };
270e700bfd2STaniya Das 
271e700bfd2STaniya Das static struct clk_rcg2 mdss_1_disp_cc_mdss_dptx0_aux_clk_src = {
272e700bfd2STaniya Das 	.cmd_rcgr = 0x81b8,
273e700bfd2STaniya Das 	.mnd_width = 0,
274e700bfd2STaniya Das 	.hid_width = 5,
275e700bfd2STaniya Das 	.parent_map = disp_cc_1_parent_map_2,
276e700bfd2STaniya Das 	.freq_tbl = ftbl_mdss_1_disp_cc_mdss_byte0_clk_src,
277e700bfd2STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
278e700bfd2STaniya Das 		.name = "mdss_1_disp_cc_mdss_dptx0_aux_clk_src",
279e700bfd2STaniya Das 		.parent_data = disp_cc_1_parent_data_2,
280e700bfd2STaniya Das 		.num_parents = ARRAY_SIZE(disp_cc_1_parent_data_2),
281e700bfd2STaniya Das 		.flags = CLK_SET_RATE_PARENT,
282e700bfd2STaniya Das 		.ops = &clk_rcg2_shared_ops,
283e700bfd2STaniya Das 	},
284e700bfd2STaniya Das };
285e700bfd2STaniya Das 
286e700bfd2STaniya Das static struct clk_rcg2 mdss_1_disp_cc_mdss_dptx0_crypto_clk_src = {
287e700bfd2STaniya Das 	.cmd_rcgr = 0x8170,
288e700bfd2STaniya Das 	.mnd_width = 0,
289e700bfd2STaniya Das 	.hid_width = 5,
290e700bfd2STaniya Das 	.parent_map = disp_cc_1_parent_map_3,
291e700bfd2STaniya Das 	.freq_tbl = ftbl_mdss_1_disp_cc_mdss_byte0_clk_src,
292e700bfd2STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
293e700bfd2STaniya Das 		.name = "mdss_1_disp_cc_mdss_dptx0_crypto_clk_src",
294e700bfd2STaniya Das 		.parent_data = disp_cc_1_parent_data_3,
295e700bfd2STaniya Das 		.num_parents = ARRAY_SIZE(disp_cc_1_parent_data_3),
296e700bfd2STaniya Das 		.flags = CLK_SET_RATE_PARENT,
297e700bfd2STaniya Das 		.ops = &clk_byte2_ops,
298e700bfd2STaniya Das 	},
299e700bfd2STaniya Das };
300e700bfd2STaniya Das 
301e700bfd2STaniya Das static struct clk_rcg2 mdss_1_disp_cc_mdss_dptx0_link_clk_src = {
302e700bfd2STaniya Das 	.cmd_rcgr = 0x8154,
303e700bfd2STaniya Das 	.mnd_width = 0,
304e700bfd2STaniya Das 	.hid_width = 5,
305e700bfd2STaniya Das 	.parent_map = disp_cc_1_parent_map_3,
306e700bfd2STaniya Das 	.freq_tbl = ftbl_mdss_1_disp_cc_mdss_byte0_clk_src,
307e700bfd2STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
308e700bfd2STaniya Das 		.name = "mdss_1_disp_cc_mdss_dptx0_link_clk_src",
309e700bfd2STaniya Das 		.parent_data = disp_cc_1_parent_data_3,
310e700bfd2STaniya Das 		.num_parents = ARRAY_SIZE(disp_cc_1_parent_data_3),
311e700bfd2STaniya Das 		.flags = CLK_SET_RATE_PARENT,
312e700bfd2STaniya Das 		.ops = &clk_byte2_ops,
313e700bfd2STaniya Das 	},
314e700bfd2STaniya Das };
315e700bfd2STaniya Das 
316e700bfd2STaniya Das static struct clk_rcg2 mdss_1_disp_cc_mdss_dptx0_pixel0_clk_src = {
317e700bfd2STaniya Das 	.cmd_rcgr = 0x8188,
318e700bfd2STaniya Das 	.mnd_width = 16,
319e700bfd2STaniya Das 	.hid_width = 5,
320e700bfd2STaniya Das 	.parent_map = disp_cc_1_parent_map_0,
321e700bfd2STaniya Das 	.freq_tbl = ftbl_mdss_1_disp_cc_mdss_byte0_clk_src,
322e700bfd2STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
323e700bfd2STaniya Das 		.name = "mdss_1_disp_cc_mdss_dptx0_pixel0_clk_src",
324e700bfd2STaniya Das 		.parent_data = disp_cc_1_parent_data_0,
325e700bfd2STaniya Das 		.num_parents = ARRAY_SIZE(disp_cc_1_parent_data_0),
326e700bfd2STaniya Das 		.flags = CLK_SET_RATE_PARENT,
327e700bfd2STaniya Das 		.ops = &clk_dp_ops,
328e700bfd2STaniya Das 	},
329e700bfd2STaniya Das };
330e700bfd2STaniya Das 
331e700bfd2STaniya Das static struct clk_rcg2 mdss_1_disp_cc_mdss_dptx0_pixel1_clk_src = {
332e700bfd2STaniya Das 	.cmd_rcgr = 0x81a0,
333e700bfd2STaniya Das 	.mnd_width = 16,
334e700bfd2STaniya Das 	.hid_width = 5,
335e700bfd2STaniya Das 	.parent_map = disp_cc_1_parent_map_0,
336e700bfd2STaniya Das 	.freq_tbl = ftbl_mdss_1_disp_cc_mdss_byte0_clk_src,
337e700bfd2STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
338e700bfd2STaniya Das 		.name = "mdss_1_disp_cc_mdss_dptx0_pixel1_clk_src",
339e700bfd2STaniya Das 		.parent_data = disp_cc_1_parent_data_0,
340e700bfd2STaniya Das 		.num_parents = ARRAY_SIZE(disp_cc_1_parent_data_0),
341e700bfd2STaniya Das 		.flags = CLK_SET_RATE_PARENT,
342e700bfd2STaniya Das 		.ops = &clk_dp_ops,
343e700bfd2STaniya Das 	},
344e700bfd2STaniya Das };
345e700bfd2STaniya Das 
346e700bfd2STaniya Das static struct clk_rcg2 mdss_1_disp_cc_mdss_dptx0_pixel2_clk_src = {
347e700bfd2STaniya Das 	.cmd_rcgr = 0x826c,
348e700bfd2STaniya Das 	.mnd_width = 16,
349e700bfd2STaniya Das 	.hid_width = 5,
350e700bfd2STaniya Das 	.parent_map = disp_cc_1_parent_map_0,
351e700bfd2STaniya Das 	.freq_tbl = ftbl_mdss_1_disp_cc_mdss_byte0_clk_src,
352e700bfd2STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
353e700bfd2STaniya Das 		.name = "mdss_1_disp_cc_mdss_dptx0_pixel2_clk_src",
354e700bfd2STaniya Das 		.parent_data = disp_cc_1_parent_data_0,
355e700bfd2STaniya Das 		.num_parents = ARRAY_SIZE(disp_cc_1_parent_data_0),
356e700bfd2STaniya Das 		.flags = CLK_SET_RATE_PARENT,
357e700bfd2STaniya Das 		.ops = &clk_dp_ops,
358e700bfd2STaniya Das 	},
359e700bfd2STaniya Das };
360e700bfd2STaniya Das 
361e700bfd2STaniya Das static struct clk_rcg2 mdss_1_disp_cc_mdss_dptx0_pixel3_clk_src = {
362e700bfd2STaniya Das 	.cmd_rcgr = 0x8284,
363e700bfd2STaniya Das 	.mnd_width = 16,
364e700bfd2STaniya Das 	.hid_width = 5,
365e700bfd2STaniya Das 	.parent_map = disp_cc_1_parent_map_0,
366e700bfd2STaniya Das 	.freq_tbl = ftbl_mdss_1_disp_cc_mdss_byte0_clk_src,
367e700bfd2STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
368e700bfd2STaniya Das 		.name = "mdss_1_disp_cc_mdss_dptx0_pixel3_clk_src",
369e700bfd2STaniya Das 		.parent_data = disp_cc_1_parent_data_0,
370e700bfd2STaniya Das 		.num_parents = ARRAY_SIZE(disp_cc_1_parent_data_0),
371e700bfd2STaniya Das 		.flags = CLK_SET_RATE_PARENT,
372e700bfd2STaniya Das 		.ops = &clk_dp_ops,
373e700bfd2STaniya Das 	},
374e700bfd2STaniya Das };
375e700bfd2STaniya Das 
376e700bfd2STaniya Das static struct clk_rcg2 mdss_1_disp_cc_mdss_dptx1_aux_clk_src = {
377e700bfd2STaniya Das 	.cmd_rcgr = 0x8234,
378e700bfd2STaniya Das 	.mnd_width = 0,
379e700bfd2STaniya Das 	.hid_width = 5,
380e700bfd2STaniya Das 	.parent_map = disp_cc_1_parent_map_2,
381e700bfd2STaniya Das 	.freq_tbl = ftbl_mdss_1_disp_cc_mdss_byte0_clk_src,
382e700bfd2STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
383e700bfd2STaniya Das 		.name = "mdss_1_disp_cc_mdss_dptx1_aux_clk_src",
384e700bfd2STaniya Das 		.parent_data = disp_cc_1_parent_data_2,
385e700bfd2STaniya Das 		.num_parents = ARRAY_SIZE(disp_cc_1_parent_data_2),
386e700bfd2STaniya Das 		.flags = CLK_SET_RATE_PARENT,
387e700bfd2STaniya Das 		.ops = &clk_rcg2_shared_ops,
388e700bfd2STaniya Das 	},
389e700bfd2STaniya Das };
390e700bfd2STaniya Das 
391e700bfd2STaniya Das static struct clk_rcg2 mdss_1_disp_cc_mdss_dptx1_crypto_clk_src = {
392e700bfd2STaniya Das 	.cmd_rcgr = 0x821c,
393e700bfd2STaniya Das 	.mnd_width = 0,
394e700bfd2STaniya Das 	.hid_width = 5,
395e700bfd2STaniya Das 	.parent_map = disp_cc_1_parent_map_3,
396e700bfd2STaniya Das 	.freq_tbl = ftbl_mdss_1_disp_cc_mdss_byte0_clk_src,
397e700bfd2STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
398e700bfd2STaniya Das 		.name = "mdss_1_disp_cc_mdss_dptx1_crypto_clk_src",
399e700bfd2STaniya Das 		.parent_data = disp_cc_1_parent_data_3,
400e700bfd2STaniya Das 		.num_parents = ARRAY_SIZE(disp_cc_1_parent_data_3),
401e700bfd2STaniya Das 		.flags = CLK_SET_RATE_PARENT,
402e700bfd2STaniya Das 		.ops = &clk_byte2_ops,
403e700bfd2STaniya Das 	},
404e700bfd2STaniya Das };
405e700bfd2STaniya Das 
406e700bfd2STaniya Das static struct clk_rcg2 mdss_1_disp_cc_mdss_dptx1_link_clk_src = {
407e700bfd2STaniya Das 	.cmd_rcgr = 0x8200,
408e700bfd2STaniya Das 	.mnd_width = 0,
409e700bfd2STaniya Das 	.hid_width = 5,
410e700bfd2STaniya Das 	.parent_map = disp_cc_1_parent_map_3,
411e700bfd2STaniya Das 	.freq_tbl = ftbl_mdss_1_disp_cc_mdss_byte0_clk_src,
412e700bfd2STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
413e700bfd2STaniya Das 		.name = "mdss_1_disp_cc_mdss_dptx1_link_clk_src",
414e700bfd2STaniya Das 		.parent_data = disp_cc_1_parent_data_3,
415e700bfd2STaniya Das 		.num_parents = ARRAY_SIZE(disp_cc_1_parent_data_3),
416e700bfd2STaniya Das 		.flags = CLK_SET_RATE_PARENT,
417e700bfd2STaniya Das 		.ops = &clk_byte2_ops,
418e700bfd2STaniya Das 	},
419e700bfd2STaniya Das };
420e700bfd2STaniya Das 
421e700bfd2STaniya Das static struct clk_rcg2 mdss_1_disp_cc_mdss_dptx1_pixel0_clk_src = {
422e700bfd2STaniya Das 	.cmd_rcgr = 0x81d0,
423e700bfd2STaniya Das 	.mnd_width = 16,
424e700bfd2STaniya Das 	.hid_width = 5,
425e700bfd2STaniya Das 	.parent_map = disp_cc_1_parent_map_0,
426e700bfd2STaniya Das 	.freq_tbl = ftbl_mdss_1_disp_cc_mdss_byte0_clk_src,
427e700bfd2STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
428e700bfd2STaniya Das 		.name = "mdss_1_disp_cc_mdss_dptx1_pixel0_clk_src",
429e700bfd2STaniya Das 		.parent_data = disp_cc_1_parent_data_0,
430e700bfd2STaniya Das 		.num_parents = ARRAY_SIZE(disp_cc_1_parent_data_0),
431e700bfd2STaniya Das 		.flags = CLK_SET_RATE_PARENT,
432e700bfd2STaniya Das 		.ops = &clk_dp_ops,
433e700bfd2STaniya Das 	},
434e700bfd2STaniya Das };
435e700bfd2STaniya Das 
436e700bfd2STaniya Das static struct clk_rcg2 mdss_1_disp_cc_mdss_dptx1_pixel1_clk_src = {
437e700bfd2STaniya Das 	.cmd_rcgr = 0x81e8,
438e700bfd2STaniya Das 	.mnd_width = 16,
439e700bfd2STaniya Das 	.hid_width = 5,
440e700bfd2STaniya Das 	.parent_map = disp_cc_1_parent_map_0,
441e700bfd2STaniya Das 	.freq_tbl = ftbl_mdss_1_disp_cc_mdss_byte0_clk_src,
442e700bfd2STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
443e700bfd2STaniya Das 		.name = "mdss_1_disp_cc_mdss_dptx1_pixel1_clk_src",
444e700bfd2STaniya Das 		.parent_data = disp_cc_1_parent_data_0,
445e700bfd2STaniya Das 		.num_parents = ARRAY_SIZE(disp_cc_1_parent_data_0),
446e700bfd2STaniya Das 		.flags = CLK_SET_RATE_PARENT,
447e700bfd2STaniya Das 		.ops = &clk_dp_ops,
448e700bfd2STaniya Das 	},
449e700bfd2STaniya Das };
450e700bfd2STaniya Das 
451e700bfd2STaniya Das static struct clk_rcg2 mdss_1_disp_cc_mdss_esc0_clk_src = {
452e700bfd2STaniya Das 	.cmd_rcgr = 0x8124,
453e700bfd2STaniya Das 	.mnd_width = 0,
454e700bfd2STaniya Das 	.hid_width = 5,
455e700bfd2STaniya Das 	.parent_map = disp_cc_1_parent_map_4,
456e700bfd2STaniya Das 	.freq_tbl = ftbl_mdss_1_disp_cc_mdss_byte0_clk_src,
457e700bfd2STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
458e700bfd2STaniya Das 		.name = "mdss_1_disp_cc_mdss_esc0_clk_src",
459e700bfd2STaniya Das 		.parent_data = disp_cc_1_parent_data_4,
460e700bfd2STaniya Das 		.num_parents = ARRAY_SIZE(disp_cc_1_parent_data_4),
461e700bfd2STaniya Das 		.flags = CLK_SET_RATE_PARENT,
462e700bfd2STaniya Das 		.ops = &clk_rcg2_shared_ops,
463e700bfd2STaniya Das 	},
464e700bfd2STaniya Das };
465e700bfd2STaniya Das 
466e700bfd2STaniya Das static struct clk_rcg2 mdss_1_disp_cc_mdss_esc1_clk_src = {
467e700bfd2STaniya Das 	.cmd_rcgr = 0x813c,
468e700bfd2STaniya Das 	.mnd_width = 0,
469e700bfd2STaniya Das 	.hid_width = 5,
470e700bfd2STaniya Das 	.parent_map = disp_cc_1_parent_map_4,
471e700bfd2STaniya Das 	.freq_tbl = ftbl_mdss_1_disp_cc_mdss_byte0_clk_src,
472e700bfd2STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
473e700bfd2STaniya Das 		.name = "mdss_1_disp_cc_mdss_esc1_clk_src",
474e700bfd2STaniya Das 		.parent_data = disp_cc_1_parent_data_4,
475e700bfd2STaniya Das 		.num_parents = ARRAY_SIZE(disp_cc_1_parent_data_4),
476e700bfd2STaniya Das 		.flags = CLK_SET_RATE_PARENT,
477e700bfd2STaniya Das 		.ops = &clk_rcg2_shared_ops,
478e700bfd2STaniya Das 	},
479e700bfd2STaniya Das };
480e700bfd2STaniya Das 
481e700bfd2STaniya Das static const struct freq_tbl ftbl_mdss_1_disp_cc_mdss_mdp_clk_src[] = {
482e700bfd2STaniya Das 	F(375000000, P_MDSS_1_DISP_CC_PLL0_OUT_MAIN, 3, 0, 0),
483e700bfd2STaniya Das 	F(500000000, P_MDSS_1_DISP_CC_PLL0_OUT_MAIN, 3, 0, 0),
484e700bfd2STaniya Das 	F(575000000, P_MDSS_1_DISP_CC_PLL0_OUT_MAIN, 3, 0, 0),
485e700bfd2STaniya Das 	F(650000000, P_MDSS_1_DISP_CC_PLL0_OUT_MAIN, 3, 0, 0),
486e700bfd2STaniya Das 	{ }
487e700bfd2STaniya Das };
488e700bfd2STaniya Das 
489e700bfd2STaniya Das static struct clk_rcg2 mdss_1_disp_cc_mdss_mdp_clk_src = {
490e700bfd2STaniya Das 	.cmd_rcgr = 0x80bc,
491e700bfd2STaniya Das 	.mnd_width = 0,
492e700bfd2STaniya Das 	.hid_width = 5,
493e700bfd2STaniya Das 	.parent_map = disp_cc_1_parent_map_6,
494e700bfd2STaniya Das 	.freq_tbl = ftbl_mdss_1_disp_cc_mdss_mdp_clk_src,
495e700bfd2STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
496e700bfd2STaniya Das 		.name = "mdss_1_disp_cc_mdss_mdp_clk_src",
497e700bfd2STaniya Das 		.parent_data = disp_cc_1_parent_data_6,
498e700bfd2STaniya Das 		.num_parents = ARRAY_SIZE(disp_cc_1_parent_data_6),
499e700bfd2STaniya Das 		.flags = CLK_SET_RATE_PARENT,
500e700bfd2STaniya Das 		.ops = &clk_rcg2_shared_ops,
501e700bfd2STaniya Das 	},
502e700bfd2STaniya Das };
503e700bfd2STaniya Das 
504e700bfd2STaniya Das static struct clk_rcg2 mdss_1_disp_cc_mdss_pclk0_clk_src = {
505e700bfd2STaniya Das 	.cmd_rcgr = 0x808c,
506e700bfd2STaniya Das 	.mnd_width = 8,
507e700bfd2STaniya Das 	.hid_width = 5,
508e700bfd2STaniya Das 	.parent_map = disp_cc_1_parent_map_1,
509e700bfd2STaniya Das 	.freq_tbl = ftbl_mdss_1_disp_cc_mdss_byte0_clk_src,
510e700bfd2STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
511e700bfd2STaniya Das 		.name = "mdss_1_disp_cc_mdss_pclk0_clk_src",
512e700bfd2STaniya Das 		.parent_data = disp_cc_1_parent_data_1,
513e700bfd2STaniya Das 		.num_parents = ARRAY_SIZE(disp_cc_1_parent_data_1),
514e700bfd2STaniya Das 		.flags = CLK_SET_RATE_PARENT,
515e700bfd2STaniya Das 		.ops = &clk_pixel_ops,
516e700bfd2STaniya Das 	},
517e700bfd2STaniya Das };
518e700bfd2STaniya Das 
519e700bfd2STaniya Das static struct clk_rcg2 mdss_1_disp_cc_mdss_pclk1_clk_src = {
520e700bfd2STaniya Das 	.cmd_rcgr = 0x80a4,
521e700bfd2STaniya Das 	.mnd_width = 8,
522e700bfd2STaniya Das 	.hid_width = 5,
523e700bfd2STaniya Das 	.parent_map = disp_cc_1_parent_map_1,
524e700bfd2STaniya Das 	.freq_tbl = ftbl_mdss_1_disp_cc_mdss_byte0_clk_src,
525e700bfd2STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
526e700bfd2STaniya Das 		.name = "mdss_1_disp_cc_mdss_pclk1_clk_src",
527e700bfd2STaniya Das 		.parent_data = disp_cc_1_parent_data_1,
528e700bfd2STaniya Das 		.num_parents = ARRAY_SIZE(disp_cc_1_parent_data_1),
529e700bfd2STaniya Das 		.flags = CLK_SET_RATE_PARENT,
530e700bfd2STaniya Das 		.ops = &clk_pixel_ops,
531e700bfd2STaniya Das 	},
532e700bfd2STaniya Das };
533e700bfd2STaniya Das 
534e700bfd2STaniya Das static struct clk_rcg2 mdss_1_disp_cc_mdss_vsync_clk_src = {
535e700bfd2STaniya Das 	.cmd_rcgr = 0x80d4,
536e700bfd2STaniya Das 	.mnd_width = 0,
537e700bfd2STaniya Das 	.hid_width = 5,
538e700bfd2STaniya Das 	.parent_map = disp_cc_1_parent_map_2,
539e700bfd2STaniya Das 	.freq_tbl = ftbl_mdss_1_disp_cc_mdss_byte0_clk_src,
540e700bfd2STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
541e700bfd2STaniya Das 		.name = "mdss_1_disp_cc_mdss_vsync_clk_src",
542e700bfd2STaniya Das 		.parent_data = disp_cc_1_parent_data_2,
543e700bfd2STaniya Das 		.num_parents = ARRAY_SIZE(disp_cc_1_parent_data_2),
544e700bfd2STaniya Das 		.flags = CLK_SET_RATE_PARENT,
545e700bfd2STaniya Das 		.ops = &clk_rcg2_shared_ops,
546e700bfd2STaniya Das 	},
547e700bfd2STaniya Das };
548e700bfd2STaniya Das 
549e700bfd2STaniya Das static const struct freq_tbl ftbl_mdss_1_disp_cc_sleep_clk_src[] = {
550e700bfd2STaniya Das 	F(32000, P_SLEEP_CLK, 1, 0, 0),
551e700bfd2STaniya Das 	{ }
552e700bfd2STaniya Das };
553e700bfd2STaniya Das 
554e700bfd2STaniya Das static struct clk_rcg2 mdss_1_disp_cc_sleep_clk_src = {
555e700bfd2STaniya Das 	.cmd_rcgr = 0xc058,
556e700bfd2STaniya Das 	.mnd_width = 0,
557e700bfd2STaniya Das 	.hid_width = 5,
558e700bfd2STaniya Das 	.parent_map = disp_cc_1_parent_map_7,
559e700bfd2STaniya Das 	.freq_tbl = ftbl_mdss_1_disp_cc_sleep_clk_src,
560e700bfd2STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
561e700bfd2STaniya Das 		.name = "mdss_1_disp_cc_sleep_clk_src",
562e700bfd2STaniya Das 		.parent_data = disp_cc_1_parent_data_7_ao,
563e700bfd2STaniya Das 		.num_parents = ARRAY_SIZE(disp_cc_1_parent_data_7_ao),
564e700bfd2STaniya Das 		.flags = CLK_SET_RATE_PARENT,
565e700bfd2STaniya Das 		.ops = &clk_rcg2_shared_ops,
566e700bfd2STaniya Das 	},
567e700bfd2STaniya Das };
568e700bfd2STaniya Das 
569e700bfd2STaniya Das static struct clk_rcg2 mdss_1_disp_cc_xo_clk_src = {
570e700bfd2STaniya Das 	.cmd_rcgr = 0xc03c,
571e700bfd2STaniya Das 	.mnd_width = 0,
572e700bfd2STaniya Das 	.hid_width = 5,
573e700bfd2STaniya Das 	.parent_map = disp_cc_1_parent_map_2,
574e700bfd2STaniya Das 	.freq_tbl = ftbl_mdss_1_disp_cc_mdss_byte0_clk_src,
575e700bfd2STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
576e700bfd2STaniya Das 		.name = "mdss_1_disp_cc_xo_clk_src",
577e700bfd2STaniya Das 		.parent_data = disp_cc_1_parent_data_2_ao,
578e700bfd2STaniya Das 		.num_parents = ARRAY_SIZE(disp_cc_1_parent_data_2_ao),
579e700bfd2STaniya Das 		.flags = CLK_SET_RATE_PARENT,
580e700bfd2STaniya Das 		.ops = &clk_rcg2_shared_ops,
581e700bfd2STaniya Das 	},
582e700bfd2STaniya Das };
583e700bfd2STaniya Das 
584e700bfd2STaniya Das static struct clk_regmap_div mdss_1_disp_cc_mdss_byte0_div_clk_src = {
585e700bfd2STaniya Das 	.reg = 0x8104,
586e700bfd2STaniya Das 	.shift = 0,
587e700bfd2STaniya Das 	.width = 4,
588e700bfd2STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
589e700bfd2STaniya Das 		.name = "mdss_1_disp_cc_mdss_byte0_div_clk_src",
590e700bfd2STaniya Das 		.parent_hws = (const struct clk_hw*[]) {
591e700bfd2STaniya Das 			&mdss_1_disp_cc_mdss_byte0_clk_src.clkr.hw,
592e700bfd2STaniya Das 		},
593e700bfd2STaniya Das 		.num_parents = 1,
594e700bfd2STaniya Das 		.flags = CLK_SET_RATE_PARENT,
595e700bfd2STaniya Das 		.ops = &clk_regmap_div_ops,
596e700bfd2STaniya Das 	},
597e700bfd2STaniya Das };
598e700bfd2STaniya Das 
599e700bfd2STaniya Das static struct clk_regmap_div mdss_1_disp_cc_mdss_byte1_div_clk_src = {
600e700bfd2STaniya Das 	.reg = 0x8120,
601e700bfd2STaniya Das 	.shift = 0,
602e700bfd2STaniya Das 	.width = 4,
603e700bfd2STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
604e700bfd2STaniya Das 		.name = "mdss_1_disp_cc_mdss_byte1_div_clk_src",
605e700bfd2STaniya Das 		.parent_hws = (const struct clk_hw*[]) {
606e700bfd2STaniya Das 			&mdss_1_disp_cc_mdss_byte1_clk_src.clkr.hw,
607e700bfd2STaniya Das 		},
608e700bfd2STaniya Das 		.num_parents = 1,
609e700bfd2STaniya Das 		.flags = CLK_SET_RATE_PARENT,
610e700bfd2STaniya Das 		.ops = &clk_regmap_div_ops,
611e700bfd2STaniya Das 	},
612e700bfd2STaniya Das };
613e700bfd2STaniya Das 
614e700bfd2STaniya Das static struct clk_regmap_div mdss_1_disp_cc_mdss_dptx0_link_div_clk_src = {
615e700bfd2STaniya Das 	.reg = 0x816c,
616e700bfd2STaniya Das 	.shift = 0,
617e700bfd2STaniya Das 	.width = 4,
618e700bfd2STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
619e700bfd2STaniya Das 		.name = "mdss_1_disp_cc_mdss_dptx0_link_div_clk_src",
620e700bfd2STaniya Das 		.parent_hws = (const struct clk_hw*[]) {
621e700bfd2STaniya Das 			&mdss_1_disp_cc_mdss_dptx0_link_clk_src.clkr.hw,
622e700bfd2STaniya Das 		},
623e700bfd2STaniya Das 		.num_parents = 1,
624e700bfd2STaniya Das 		.flags = CLK_SET_RATE_PARENT,
625e700bfd2STaniya Das 		.ops = &clk_regmap_div_ro_ops,
626e700bfd2STaniya Das 	},
627e700bfd2STaniya Das };
628e700bfd2STaniya Das 
629e700bfd2STaniya Das static struct clk_regmap_div mdss_1_disp_cc_mdss_dptx1_link_div_clk_src = {
630e700bfd2STaniya Das 	.reg = 0x8218,
631e700bfd2STaniya Das 	.shift = 0,
632e700bfd2STaniya Das 	.width = 4,
633e700bfd2STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
634e700bfd2STaniya Das 		.name = "mdss_1_disp_cc_mdss_dptx1_link_div_clk_src",
635e700bfd2STaniya Das 		.parent_hws = (const struct clk_hw*[]) {
636e700bfd2STaniya Das 			&mdss_1_disp_cc_mdss_dptx1_link_clk_src.clkr.hw,
637e700bfd2STaniya Das 		},
638e700bfd2STaniya Das 		.num_parents = 1,
639e700bfd2STaniya Das 		.flags = CLK_SET_RATE_PARENT,
640e700bfd2STaniya Das 		.ops = &clk_regmap_div_ro_ops,
641e700bfd2STaniya Das 	},
642e700bfd2STaniya Das };
643e700bfd2STaniya Das 
644e700bfd2STaniya Das static struct clk_branch mdss_1_disp_cc_mdss_ahb1_clk = {
645e700bfd2STaniya Das 	.halt_reg = 0x8088,
646e700bfd2STaniya Das 	.halt_check = BRANCH_HALT,
647e700bfd2STaniya Das 	.clkr = {
648e700bfd2STaniya Das 		.enable_reg = 0x8088,
649e700bfd2STaniya Das 		.enable_mask = BIT(0),
650e700bfd2STaniya Das 		.hw.init = &(const struct clk_init_data) {
651e700bfd2STaniya Das 			.name = "mdss_1_disp_cc_mdss_ahb1_clk",
652e700bfd2STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
653e700bfd2STaniya Das 				&mdss_1_disp_cc_mdss_ahb_clk_src.clkr.hw,
654e700bfd2STaniya Das 			},
655e700bfd2STaniya Das 			.num_parents = 1,
656e700bfd2STaniya Das 			.flags = CLK_SET_RATE_PARENT,
657e700bfd2STaniya Das 			.ops = &clk_branch2_ops,
658e700bfd2STaniya Das 		},
659e700bfd2STaniya Das 	},
660e700bfd2STaniya Das };
661e700bfd2STaniya Das 
662e700bfd2STaniya Das static struct clk_branch mdss_1_disp_cc_mdss_ahb_clk = {
663e700bfd2STaniya Das 	.halt_reg = 0x8084,
664e700bfd2STaniya Das 	.halt_check = BRANCH_HALT,
665e700bfd2STaniya Das 	.clkr = {
666e700bfd2STaniya Das 		.enable_reg = 0x8084,
667e700bfd2STaniya Das 		.enable_mask = BIT(0),
668e700bfd2STaniya Das 		.hw.init = &(const struct clk_init_data) {
669e700bfd2STaniya Das 			.name = "mdss_1_disp_cc_mdss_ahb_clk",
670e700bfd2STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
671e700bfd2STaniya Das 				&mdss_1_disp_cc_mdss_ahb_clk_src.clkr.hw,
672e700bfd2STaniya Das 			},
673e700bfd2STaniya Das 			.num_parents = 1,
674e700bfd2STaniya Das 			.flags = CLK_SET_RATE_PARENT,
675e700bfd2STaniya Das 			.ops = &clk_branch2_ops,
676e700bfd2STaniya Das 		},
677e700bfd2STaniya Das 	},
678e700bfd2STaniya Das };
679e700bfd2STaniya Das 
680e700bfd2STaniya Das static struct clk_branch mdss_1_disp_cc_mdss_byte0_clk = {
681e700bfd2STaniya Das 	.halt_reg = 0x8034,
682e700bfd2STaniya Das 	.halt_check = BRANCH_HALT,
683e700bfd2STaniya Das 	.clkr = {
684e700bfd2STaniya Das 		.enable_reg = 0x8034,
685e700bfd2STaniya Das 		.enable_mask = BIT(0),
686e700bfd2STaniya Das 		.hw.init = &(const struct clk_init_data) {
687e700bfd2STaniya Das 			.name = "mdss_1_disp_cc_mdss_byte0_clk",
688e700bfd2STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
689e700bfd2STaniya Das 				&mdss_1_disp_cc_mdss_byte0_clk_src.clkr.hw,
690e700bfd2STaniya Das 			},
691e700bfd2STaniya Das 			.num_parents = 1,
692e700bfd2STaniya Das 			.flags = CLK_SET_RATE_PARENT,
693e700bfd2STaniya Das 			.ops = &clk_branch2_ops,
694e700bfd2STaniya Das 		},
695e700bfd2STaniya Das 	},
696e700bfd2STaniya Das };
697e700bfd2STaniya Das 
698e700bfd2STaniya Das static struct clk_branch mdss_1_disp_cc_mdss_byte0_intf_clk = {
699e700bfd2STaniya Das 	.halt_reg = 0x8038,
700e700bfd2STaniya Das 	.halt_check = BRANCH_HALT,
701e700bfd2STaniya Das 	.clkr = {
702e700bfd2STaniya Das 		.enable_reg = 0x8038,
703e700bfd2STaniya Das 		.enable_mask = BIT(0),
704e700bfd2STaniya Das 		.hw.init = &(const struct clk_init_data) {
705e700bfd2STaniya Das 			.name = "mdss_1_disp_cc_mdss_byte0_intf_clk",
706e700bfd2STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
707e700bfd2STaniya Das 				&mdss_1_disp_cc_mdss_byte0_div_clk_src.clkr.hw,
708e700bfd2STaniya Das 			},
709e700bfd2STaniya Das 			.num_parents = 1,
710e700bfd2STaniya Das 			.flags = CLK_SET_RATE_PARENT,
711e700bfd2STaniya Das 			.ops = &clk_branch2_ops,
712e700bfd2STaniya Das 		},
713e700bfd2STaniya Das 	},
714e700bfd2STaniya Das };
715e700bfd2STaniya Das 
716e700bfd2STaniya Das static struct clk_branch mdss_1_disp_cc_mdss_byte1_clk = {
717e700bfd2STaniya Das 	.halt_reg = 0x803c,
718e700bfd2STaniya Das 	.halt_check = BRANCH_HALT,
719e700bfd2STaniya Das 	.clkr = {
720e700bfd2STaniya Das 		.enable_reg = 0x803c,
721e700bfd2STaniya Das 		.enable_mask = BIT(0),
722e700bfd2STaniya Das 		.hw.init = &(const struct clk_init_data) {
723e700bfd2STaniya Das 			.name = "mdss_1_disp_cc_mdss_byte1_clk",
724e700bfd2STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
725e700bfd2STaniya Das 				&mdss_1_disp_cc_mdss_byte1_clk_src.clkr.hw,
726e700bfd2STaniya Das 			},
727e700bfd2STaniya Das 			.num_parents = 1,
728e700bfd2STaniya Das 			.flags = CLK_SET_RATE_PARENT,
729e700bfd2STaniya Das 			.ops = &clk_branch2_ops,
730e700bfd2STaniya Das 		},
731e700bfd2STaniya Das 	},
732e700bfd2STaniya Das };
733e700bfd2STaniya Das 
734e700bfd2STaniya Das static struct clk_branch mdss_1_disp_cc_mdss_byte1_intf_clk = {
735e700bfd2STaniya Das 	.halt_reg = 0x8040,
736e700bfd2STaniya Das 	.halt_check = BRANCH_HALT,
737e700bfd2STaniya Das 	.clkr = {
738e700bfd2STaniya Das 		.enable_reg = 0x8040,
739e700bfd2STaniya Das 		.enable_mask = BIT(0),
740e700bfd2STaniya Das 		.hw.init = &(const struct clk_init_data) {
741e700bfd2STaniya Das 			.name = "mdss_1_disp_cc_mdss_byte1_intf_clk",
742e700bfd2STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
743e700bfd2STaniya Das 				&mdss_1_disp_cc_mdss_byte1_div_clk_src.clkr.hw,
744e700bfd2STaniya Das 			},
745e700bfd2STaniya Das 			.num_parents = 1,
746e700bfd2STaniya Das 			.flags = CLK_SET_RATE_PARENT,
747e700bfd2STaniya Das 			.ops = &clk_branch2_ops,
748e700bfd2STaniya Das 		},
749e700bfd2STaniya Das 	},
750e700bfd2STaniya Das };
751e700bfd2STaniya Das 
752e700bfd2STaniya Das static struct clk_branch mdss_1_disp_cc_mdss_dptx0_aux_clk = {
753e700bfd2STaniya Das 	.halt_reg = 0x805c,
754e700bfd2STaniya Das 	.halt_check = BRANCH_HALT,
755e700bfd2STaniya Das 	.clkr = {
756e700bfd2STaniya Das 		.enable_reg = 0x805c,
757e700bfd2STaniya Das 		.enable_mask = BIT(0),
758e700bfd2STaniya Das 		.hw.init = &(const struct clk_init_data) {
759e700bfd2STaniya Das 			.name = "mdss_1_disp_cc_mdss_dptx0_aux_clk",
760e700bfd2STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
761e700bfd2STaniya Das 				&mdss_1_disp_cc_mdss_dptx0_aux_clk_src.clkr.hw,
762e700bfd2STaniya Das 			},
763e700bfd2STaniya Das 			.num_parents = 1,
764e700bfd2STaniya Das 			.flags = CLK_SET_RATE_PARENT,
765e700bfd2STaniya Das 			.ops = &clk_branch2_ops,
766e700bfd2STaniya Das 		},
767e700bfd2STaniya Das 	},
768e700bfd2STaniya Das };
769e700bfd2STaniya Das 
770e700bfd2STaniya Das static struct clk_branch mdss_1_disp_cc_mdss_dptx0_crypto_clk = {
771e700bfd2STaniya Das 	.halt_reg = 0x8058,
772e700bfd2STaniya Das 	.halt_check = BRANCH_HALT,
773e700bfd2STaniya Das 	.clkr = {
774e700bfd2STaniya Das 		.enable_reg = 0x8058,
775e700bfd2STaniya Das 		.enable_mask = BIT(0),
776e700bfd2STaniya Das 		.hw.init = &(const struct clk_init_data) {
777e700bfd2STaniya Das 			.name = "mdss_1_disp_cc_mdss_dptx0_crypto_clk",
778e700bfd2STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
779e700bfd2STaniya Das 				&mdss_1_disp_cc_mdss_dptx0_crypto_clk_src.clkr.hw,
780e700bfd2STaniya Das 			},
781e700bfd2STaniya Das 			.num_parents = 1,
782e700bfd2STaniya Das 			.flags = CLK_SET_RATE_PARENT,
783e700bfd2STaniya Das 			.ops = &clk_branch2_ops,
784e700bfd2STaniya Das 		},
785e700bfd2STaniya Das 	},
786e700bfd2STaniya Das };
787e700bfd2STaniya Das 
788e700bfd2STaniya Das static struct clk_branch mdss_1_disp_cc_mdss_dptx0_link_clk = {
789e700bfd2STaniya Das 	.halt_reg = 0x804c,
790e700bfd2STaniya Das 	.halt_check = BRANCH_HALT,
791e700bfd2STaniya Das 	.clkr = {
792e700bfd2STaniya Das 		.enable_reg = 0x804c,
793e700bfd2STaniya Das 		.enable_mask = BIT(0),
794e700bfd2STaniya Das 		.hw.init = &(const struct clk_init_data) {
795e700bfd2STaniya Das 			.name = "mdss_1_disp_cc_mdss_dptx0_link_clk",
796e700bfd2STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
797e700bfd2STaniya Das 				&mdss_1_disp_cc_mdss_dptx0_link_clk_src.clkr.hw,
798e700bfd2STaniya Das 			},
799e700bfd2STaniya Das 			.num_parents = 1,
800e700bfd2STaniya Das 			.flags = CLK_SET_RATE_PARENT,
801e700bfd2STaniya Das 			.ops = &clk_branch2_ops,
802e700bfd2STaniya Das 		},
803e700bfd2STaniya Das 	},
804e700bfd2STaniya Das };
805e700bfd2STaniya Das 
806e700bfd2STaniya Das static struct clk_branch mdss_1_disp_cc_mdss_dptx0_link_intf_clk = {
807e700bfd2STaniya Das 	.halt_reg = 0x8050,
808e700bfd2STaniya Das 	.halt_check = BRANCH_HALT,
809e700bfd2STaniya Das 	.clkr = {
810e700bfd2STaniya Das 		.enable_reg = 0x8050,
811e700bfd2STaniya Das 		.enable_mask = BIT(0),
812e700bfd2STaniya Das 		.hw.init = &(const struct clk_init_data) {
813e700bfd2STaniya Das 			.name = "mdss_1_disp_cc_mdss_dptx0_link_intf_clk",
814e700bfd2STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
815e700bfd2STaniya Das 				&mdss_1_disp_cc_mdss_dptx0_link_div_clk_src.clkr.hw,
816e700bfd2STaniya Das 			},
817e700bfd2STaniya Das 			.num_parents = 1,
818e700bfd2STaniya Das 			.flags = CLK_SET_RATE_PARENT,
819e700bfd2STaniya Das 			.ops = &clk_branch2_ops,
820e700bfd2STaniya Das 		},
821e700bfd2STaniya Das 	},
822e700bfd2STaniya Das };
823e700bfd2STaniya Das 
824e700bfd2STaniya Das static struct clk_branch mdss_1_disp_cc_mdss_dptx0_pixel0_clk = {
825e700bfd2STaniya Das 	.halt_reg = 0x8060,
826e700bfd2STaniya Das 	.halt_check = BRANCH_HALT,
827e700bfd2STaniya Das 	.clkr = {
828e700bfd2STaniya Das 		.enable_reg = 0x8060,
829e700bfd2STaniya Das 		.enable_mask = BIT(0),
830e700bfd2STaniya Das 		.hw.init = &(const struct clk_init_data) {
831e700bfd2STaniya Das 			.name = "mdss_1_disp_cc_mdss_dptx0_pixel0_clk",
832e700bfd2STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
833e700bfd2STaniya Das 				&mdss_1_disp_cc_mdss_dptx0_pixel0_clk_src.clkr.hw,
834e700bfd2STaniya Das 			},
835e700bfd2STaniya Das 			.num_parents = 1,
836e700bfd2STaniya Das 			.flags = CLK_SET_RATE_PARENT,
837e700bfd2STaniya Das 			.ops = &clk_branch2_ops,
838e700bfd2STaniya Das 		},
839e700bfd2STaniya Das 	},
840e700bfd2STaniya Das };
841e700bfd2STaniya Das 
842e700bfd2STaniya Das static struct clk_branch mdss_1_disp_cc_mdss_dptx0_pixel1_clk = {
843e700bfd2STaniya Das 	.halt_reg = 0x8064,
844e700bfd2STaniya Das 	.halt_check = BRANCH_HALT,
845e700bfd2STaniya Das 	.clkr = {
846e700bfd2STaniya Das 		.enable_reg = 0x8064,
847e700bfd2STaniya Das 		.enable_mask = BIT(0),
848e700bfd2STaniya Das 		.hw.init = &(const struct clk_init_data) {
849e700bfd2STaniya Das 			.name = "mdss_1_disp_cc_mdss_dptx0_pixel1_clk",
850e700bfd2STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
851e700bfd2STaniya Das 				&mdss_1_disp_cc_mdss_dptx0_pixel1_clk_src.clkr.hw,
852e700bfd2STaniya Das 			},
853e700bfd2STaniya Das 			.num_parents = 1,
854e700bfd2STaniya Das 			.flags = CLK_SET_RATE_PARENT,
855e700bfd2STaniya Das 			.ops = &clk_branch2_ops,
856e700bfd2STaniya Das 		},
857e700bfd2STaniya Das 	},
858e700bfd2STaniya Das };
859e700bfd2STaniya Das 
860e700bfd2STaniya Das static struct clk_branch mdss_1_disp_cc_mdss_dptx0_pixel2_clk = {
861e700bfd2STaniya Das 	.halt_reg = 0x8264,
862e700bfd2STaniya Das 	.halt_check = BRANCH_HALT,
863e700bfd2STaniya Das 	.clkr = {
864e700bfd2STaniya Das 		.enable_reg = 0x8264,
865e700bfd2STaniya Das 		.enable_mask = BIT(0),
866e700bfd2STaniya Das 		.hw.init = &(const struct clk_init_data) {
867e700bfd2STaniya Das 			.name = "mdss_1_disp_cc_mdss_dptx0_pixel2_clk",
868e700bfd2STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
869e700bfd2STaniya Das 				&mdss_1_disp_cc_mdss_dptx0_pixel2_clk_src.clkr.hw,
870e700bfd2STaniya Das 			},
871e700bfd2STaniya Das 			.num_parents = 1,
872e700bfd2STaniya Das 			.flags = CLK_SET_RATE_PARENT,
873e700bfd2STaniya Das 			.ops = &clk_branch2_ops,
874e700bfd2STaniya Das 		},
875e700bfd2STaniya Das 	},
876e700bfd2STaniya Das };
877e700bfd2STaniya Das 
878e700bfd2STaniya Das static struct clk_branch mdss_1_disp_cc_mdss_dptx0_pixel3_clk = {
879e700bfd2STaniya Das 	.halt_reg = 0x8268,
880e700bfd2STaniya Das 	.halt_check = BRANCH_HALT,
881e700bfd2STaniya Das 	.clkr = {
882e700bfd2STaniya Das 		.enable_reg = 0x8268,
883e700bfd2STaniya Das 		.enable_mask = BIT(0),
884e700bfd2STaniya Das 		.hw.init = &(const struct clk_init_data) {
885e700bfd2STaniya Das 			.name = "mdss_1_disp_cc_mdss_dptx0_pixel3_clk",
886e700bfd2STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
887e700bfd2STaniya Das 				&mdss_1_disp_cc_mdss_dptx0_pixel3_clk_src.clkr.hw,
888e700bfd2STaniya Das 			},
889e700bfd2STaniya Das 			.num_parents = 1,
890e700bfd2STaniya Das 			.flags = CLK_SET_RATE_PARENT,
891e700bfd2STaniya Das 			.ops = &clk_branch2_ops,
892e700bfd2STaniya Das 		},
893e700bfd2STaniya Das 	},
894e700bfd2STaniya Das };
895e700bfd2STaniya Das 
896e700bfd2STaniya Das static struct clk_branch mdss_1_disp_cc_mdss_dptx0_usb_router_link_intf_clk = {
897e700bfd2STaniya Das 	.halt_reg = 0x8054,
898e700bfd2STaniya Das 	.halt_check = BRANCH_HALT,
899e700bfd2STaniya Das 	.clkr = {
900e700bfd2STaniya Das 		.enable_reg = 0x8054,
901e700bfd2STaniya Das 		.enable_mask = BIT(0),
902e700bfd2STaniya Das 		.hw.init = &(const struct clk_init_data) {
903e700bfd2STaniya Das 			.name = "mdss_1_disp_cc_mdss_dptx0_usb_router_link_intf_clk",
904e700bfd2STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
905e700bfd2STaniya Das 				&mdss_1_disp_cc_mdss_dptx0_link_div_clk_src.clkr.hw,
906e700bfd2STaniya Das 			},
907e700bfd2STaniya Das 			.num_parents = 1,
908e700bfd2STaniya Das 			.flags = CLK_SET_RATE_PARENT,
909e700bfd2STaniya Das 			.ops = &clk_branch2_ops,
910e700bfd2STaniya Das 		},
911e700bfd2STaniya Das 	},
912e700bfd2STaniya Das };
913e700bfd2STaniya Das 
914e700bfd2STaniya Das static struct clk_branch mdss_1_disp_cc_mdss_dptx1_aux_clk = {
915e700bfd2STaniya Das 	.halt_reg = 0x8080,
916e700bfd2STaniya Das 	.halt_check = BRANCH_HALT,
917e700bfd2STaniya Das 	.clkr = {
918e700bfd2STaniya Das 		.enable_reg = 0x8080,
919e700bfd2STaniya Das 		.enable_mask = BIT(0),
920e700bfd2STaniya Das 		.hw.init = &(const struct clk_init_data) {
921e700bfd2STaniya Das 			.name = "mdss_1_disp_cc_mdss_dptx1_aux_clk",
922e700bfd2STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
923e700bfd2STaniya Das 				&mdss_1_disp_cc_mdss_dptx1_aux_clk_src.clkr.hw,
924e700bfd2STaniya Das 			},
925e700bfd2STaniya Das 			.num_parents = 1,
926e700bfd2STaniya Das 			.flags = CLK_SET_RATE_PARENT,
927e700bfd2STaniya Das 			.ops = &clk_branch2_ops,
928e700bfd2STaniya Das 		},
929e700bfd2STaniya Das 	},
930e700bfd2STaniya Das };
931e700bfd2STaniya Das 
932e700bfd2STaniya Das static struct clk_branch mdss_1_disp_cc_mdss_dptx1_crypto_clk = {
933e700bfd2STaniya Das 	.halt_reg = 0x807c,
934e700bfd2STaniya Das 	.halt_check = BRANCH_HALT,
935e700bfd2STaniya Das 	.clkr = {
936e700bfd2STaniya Das 		.enable_reg = 0x807c,
937e700bfd2STaniya Das 		.enable_mask = BIT(0),
938e700bfd2STaniya Das 		.hw.init = &(const struct clk_init_data) {
939e700bfd2STaniya Das 			.name = "mdss_1_disp_cc_mdss_dptx1_crypto_clk",
940e700bfd2STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
941e700bfd2STaniya Das 				&mdss_1_disp_cc_mdss_dptx1_crypto_clk_src.clkr.hw,
942e700bfd2STaniya Das 			},
943e700bfd2STaniya Das 			.num_parents = 1,
944e700bfd2STaniya Das 			.flags = CLK_SET_RATE_PARENT,
945e700bfd2STaniya Das 			.ops = &clk_branch2_ops,
946e700bfd2STaniya Das 		},
947e700bfd2STaniya Das 	},
948e700bfd2STaniya Das };
949e700bfd2STaniya Das 
950e700bfd2STaniya Das static struct clk_branch mdss_1_disp_cc_mdss_dptx1_link_clk = {
951e700bfd2STaniya Das 	.halt_reg = 0x8070,
952e700bfd2STaniya Das 	.halt_check = BRANCH_HALT,
953e700bfd2STaniya Das 	.clkr = {
954e700bfd2STaniya Das 		.enable_reg = 0x8070,
955e700bfd2STaniya Das 		.enable_mask = BIT(0),
956e700bfd2STaniya Das 		.hw.init = &(const struct clk_init_data) {
957e700bfd2STaniya Das 			.name = "mdss_1_disp_cc_mdss_dptx1_link_clk",
958e700bfd2STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
959e700bfd2STaniya Das 				&mdss_1_disp_cc_mdss_dptx1_link_clk_src.clkr.hw,
960e700bfd2STaniya Das 			},
961e700bfd2STaniya Das 			.num_parents = 1,
962e700bfd2STaniya Das 			.flags = CLK_SET_RATE_PARENT,
963e700bfd2STaniya Das 			.ops = &clk_branch2_ops,
964e700bfd2STaniya Das 		},
965e700bfd2STaniya Das 	},
966e700bfd2STaniya Das };
967e700bfd2STaniya Das 
968e700bfd2STaniya Das static struct clk_branch mdss_1_disp_cc_mdss_dptx1_link_intf_clk = {
969e700bfd2STaniya Das 	.halt_reg = 0x8074,
970e700bfd2STaniya Das 	.halt_check = BRANCH_HALT,
971e700bfd2STaniya Das 	.clkr = {
972e700bfd2STaniya Das 		.enable_reg = 0x8074,
973e700bfd2STaniya Das 		.enable_mask = BIT(0),
974e700bfd2STaniya Das 		.hw.init = &(const struct clk_init_data) {
975e700bfd2STaniya Das 			.name = "mdss_1_disp_cc_mdss_dptx1_link_intf_clk",
976e700bfd2STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
977e700bfd2STaniya Das 				&mdss_1_disp_cc_mdss_dptx1_link_div_clk_src.clkr.hw,
978e700bfd2STaniya Das 			},
979e700bfd2STaniya Das 			.num_parents = 1,
980e700bfd2STaniya Das 			.flags = CLK_SET_RATE_PARENT,
981e700bfd2STaniya Das 			.ops = &clk_branch2_ops,
982e700bfd2STaniya Das 		},
983e700bfd2STaniya Das 	},
984e700bfd2STaniya Das };
985e700bfd2STaniya Das 
986e700bfd2STaniya Das static struct clk_branch mdss_1_disp_cc_mdss_dptx1_pixel0_clk = {
987e700bfd2STaniya Das 	.halt_reg = 0x8068,
988e700bfd2STaniya Das 	.halt_check = BRANCH_HALT,
989e700bfd2STaniya Das 	.clkr = {
990e700bfd2STaniya Das 		.enable_reg = 0x8068,
991e700bfd2STaniya Das 		.enable_mask = BIT(0),
992e700bfd2STaniya Das 		.hw.init = &(const struct clk_init_data) {
993e700bfd2STaniya Das 			.name = "mdss_1_disp_cc_mdss_dptx1_pixel0_clk",
994e700bfd2STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
995e700bfd2STaniya Das 				&mdss_1_disp_cc_mdss_dptx1_pixel0_clk_src.clkr.hw,
996e700bfd2STaniya Das 			},
997e700bfd2STaniya Das 			.num_parents = 1,
998e700bfd2STaniya Das 			.flags = CLK_SET_RATE_PARENT,
999e700bfd2STaniya Das 			.ops = &clk_branch2_ops,
1000e700bfd2STaniya Das 		},
1001e700bfd2STaniya Das 	},
1002e700bfd2STaniya Das };
1003e700bfd2STaniya Das 
1004e700bfd2STaniya Das static struct clk_branch mdss_1_disp_cc_mdss_dptx1_pixel1_clk = {
1005e700bfd2STaniya Das 	.halt_reg = 0x806c,
1006e700bfd2STaniya Das 	.halt_check = BRANCH_HALT,
1007e700bfd2STaniya Das 	.clkr = {
1008e700bfd2STaniya Das 		.enable_reg = 0x806c,
1009e700bfd2STaniya Das 		.enable_mask = BIT(0),
1010e700bfd2STaniya Das 		.hw.init = &(const struct clk_init_data) {
1011e700bfd2STaniya Das 			.name = "mdss_1_disp_cc_mdss_dptx1_pixel1_clk",
1012e700bfd2STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1013e700bfd2STaniya Das 				&mdss_1_disp_cc_mdss_dptx1_pixel1_clk_src.clkr.hw,
1014e700bfd2STaniya Das 			},
1015e700bfd2STaniya Das 			.num_parents = 1,
1016e700bfd2STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1017e700bfd2STaniya Das 			.ops = &clk_branch2_ops,
1018e700bfd2STaniya Das 		},
1019e700bfd2STaniya Das 	},
1020e700bfd2STaniya Das };
1021e700bfd2STaniya Das 
1022e700bfd2STaniya Das static struct clk_branch mdss_1_disp_cc_mdss_dptx1_usb_router_link_intf_clk = {
1023e700bfd2STaniya Das 	.halt_reg = 0x8078,
1024e700bfd2STaniya Das 	.halt_check = BRANCH_HALT,
1025e700bfd2STaniya Das 	.clkr = {
1026e700bfd2STaniya Das 		.enable_reg = 0x8078,
1027e700bfd2STaniya Das 		.enable_mask = BIT(0),
1028e700bfd2STaniya Das 		.hw.init = &(const struct clk_init_data) {
1029e700bfd2STaniya Das 			.name = "mdss_1_disp_cc_mdss_dptx1_usb_router_link_intf_clk",
1030e700bfd2STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1031e700bfd2STaniya Das 				&mdss_1_disp_cc_mdss_dptx1_link_div_clk_src.clkr.hw,
1032e700bfd2STaniya Das 			},
1033e700bfd2STaniya Das 			.num_parents = 1,
1034e700bfd2STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1035e700bfd2STaniya Das 			.ops = &clk_branch2_ops,
1036e700bfd2STaniya Das 		},
1037e700bfd2STaniya Das 	},
1038e700bfd2STaniya Das };
1039e700bfd2STaniya Das 
1040e700bfd2STaniya Das static struct clk_branch mdss_1_disp_cc_mdss_esc0_clk = {
1041e700bfd2STaniya Das 	.halt_reg = 0x8044,
1042e700bfd2STaniya Das 	.halt_check = BRANCH_HALT,
1043e700bfd2STaniya Das 	.clkr = {
1044e700bfd2STaniya Das 		.enable_reg = 0x8044,
1045e700bfd2STaniya Das 		.enable_mask = BIT(0),
1046e700bfd2STaniya Das 		.hw.init = &(const struct clk_init_data) {
1047e700bfd2STaniya Das 			.name = "mdss_1_disp_cc_mdss_esc0_clk",
1048e700bfd2STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1049e700bfd2STaniya Das 				&mdss_1_disp_cc_mdss_esc0_clk_src.clkr.hw,
1050e700bfd2STaniya Das 			},
1051e700bfd2STaniya Das 			.num_parents = 1,
1052e700bfd2STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1053e700bfd2STaniya Das 			.ops = &clk_branch2_ops,
1054e700bfd2STaniya Das 		},
1055e700bfd2STaniya Das 	},
1056e700bfd2STaniya Das };
1057e700bfd2STaniya Das 
1058e700bfd2STaniya Das static struct clk_branch mdss_1_disp_cc_mdss_esc1_clk = {
1059e700bfd2STaniya Das 	.halt_reg = 0x8048,
1060e700bfd2STaniya Das 	.halt_check = BRANCH_HALT,
1061e700bfd2STaniya Das 	.clkr = {
1062e700bfd2STaniya Das 		.enable_reg = 0x8048,
1063e700bfd2STaniya Das 		.enable_mask = BIT(0),
1064e700bfd2STaniya Das 		.hw.init = &(const struct clk_init_data) {
1065e700bfd2STaniya Das 			.name = "mdss_1_disp_cc_mdss_esc1_clk",
1066e700bfd2STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1067e700bfd2STaniya Das 				&mdss_1_disp_cc_mdss_esc1_clk_src.clkr.hw,
1068e700bfd2STaniya Das 			},
1069e700bfd2STaniya Das 			.num_parents = 1,
1070e700bfd2STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1071e700bfd2STaniya Das 			.ops = &clk_branch2_ops,
1072e700bfd2STaniya Das 		},
1073e700bfd2STaniya Das 	},
1074e700bfd2STaniya Das };
1075e700bfd2STaniya Das 
1076e700bfd2STaniya Das static struct clk_branch mdss_1_disp_cc_mdss_mdp1_clk = {
1077e700bfd2STaniya Das 	.halt_reg = 0x8014,
1078e700bfd2STaniya Das 	.halt_check = BRANCH_HALT,
1079e700bfd2STaniya Das 	.clkr = {
1080e700bfd2STaniya Das 		.enable_reg = 0x8014,
1081e700bfd2STaniya Das 		.enable_mask = BIT(0),
1082e700bfd2STaniya Das 		.hw.init = &(const struct clk_init_data) {
1083e700bfd2STaniya Das 			.name = "mdss_1_disp_cc_mdss_mdp1_clk",
1084e700bfd2STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1085e700bfd2STaniya Das 				&mdss_1_disp_cc_mdss_mdp_clk_src.clkr.hw,
1086e700bfd2STaniya Das 			},
1087e700bfd2STaniya Das 			.num_parents = 1,
1088e700bfd2STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1089e700bfd2STaniya Das 			.ops = &clk_branch2_ops,
1090e700bfd2STaniya Das 		},
1091e700bfd2STaniya Das 	},
1092e700bfd2STaniya Das };
1093e700bfd2STaniya Das 
1094e700bfd2STaniya Das static struct clk_branch mdss_1_disp_cc_mdss_mdp_clk = {
1095e700bfd2STaniya Das 	.halt_reg = 0x800c,
1096e700bfd2STaniya Das 	.halt_check = BRANCH_HALT,
1097e700bfd2STaniya Das 	.clkr = {
1098e700bfd2STaniya Das 		.enable_reg = 0x800c,
1099e700bfd2STaniya Das 		.enable_mask = BIT(0),
1100e700bfd2STaniya Das 		.hw.init = &(const struct clk_init_data) {
1101e700bfd2STaniya Das 			.name = "mdss_1_disp_cc_mdss_mdp_clk",
1102e700bfd2STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1103e700bfd2STaniya Das 				&mdss_1_disp_cc_mdss_mdp_clk_src.clkr.hw,
1104e700bfd2STaniya Das 			},
1105e700bfd2STaniya Das 			.num_parents = 1,
1106e700bfd2STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1107e700bfd2STaniya Das 			.ops = &clk_branch2_ops,
1108e700bfd2STaniya Das 		},
1109e700bfd2STaniya Das 	},
1110e700bfd2STaniya Das };
1111e700bfd2STaniya Das 
1112e700bfd2STaniya Das static struct clk_branch mdss_1_disp_cc_mdss_mdp_lut1_clk = {
1113e700bfd2STaniya Das 	.halt_reg = 0x8024,
1114e700bfd2STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1115e700bfd2STaniya Das 	.clkr = {
1116e700bfd2STaniya Das 		.enable_reg = 0x8024,
1117e700bfd2STaniya Das 		.enable_mask = BIT(0),
1118e700bfd2STaniya Das 		.hw.init = &(const struct clk_init_data) {
1119e700bfd2STaniya Das 			.name = "mdss_1_disp_cc_mdss_mdp_lut1_clk",
1120e700bfd2STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1121e700bfd2STaniya Das 				&mdss_1_disp_cc_mdss_mdp_clk_src.clkr.hw,
1122e700bfd2STaniya Das 			},
1123e700bfd2STaniya Das 			.num_parents = 1,
1124e700bfd2STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1125e700bfd2STaniya Das 			.ops = &clk_branch2_ops,
1126e700bfd2STaniya Das 		},
1127e700bfd2STaniya Das 	},
1128e700bfd2STaniya Das };
1129e700bfd2STaniya Das 
1130e700bfd2STaniya Das static struct clk_branch mdss_1_disp_cc_mdss_mdp_lut_clk = {
1131e700bfd2STaniya Das 	.halt_reg = 0x801c,
1132e700bfd2STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1133e700bfd2STaniya Das 	.clkr = {
1134e700bfd2STaniya Das 		.enable_reg = 0x801c,
1135e700bfd2STaniya Das 		.enable_mask = BIT(0),
1136e700bfd2STaniya Das 		.hw.init = &(const struct clk_init_data) {
1137e700bfd2STaniya Das 			.name = "mdss_1_disp_cc_mdss_mdp_lut_clk",
1138e700bfd2STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1139e700bfd2STaniya Das 				&mdss_1_disp_cc_mdss_mdp_clk_src.clkr.hw,
1140e700bfd2STaniya Das 			},
1141e700bfd2STaniya Das 			.num_parents = 1,
1142e700bfd2STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1143e700bfd2STaniya Das 			.ops = &clk_branch2_ops,
1144e700bfd2STaniya Das 		},
1145e700bfd2STaniya Das 	},
1146e700bfd2STaniya Das };
1147e700bfd2STaniya Das 
1148e700bfd2STaniya Das static struct clk_branch mdss_1_disp_cc_mdss_non_gdsc_ahb_clk = {
1149e700bfd2STaniya Das 	.halt_reg = 0xa004,
1150e700bfd2STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
1151e700bfd2STaniya Das 	.clkr = {
1152e700bfd2STaniya Das 		.enable_reg = 0xa004,
1153e700bfd2STaniya Das 		.enable_mask = BIT(0),
1154e700bfd2STaniya Das 		.hw.init = &(const struct clk_init_data) {
1155e700bfd2STaniya Das 			.name = "mdss_1_disp_cc_mdss_non_gdsc_ahb_clk",
1156e700bfd2STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1157e700bfd2STaniya Das 				&mdss_1_disp_cc_mdss_ahb_clk_src.clkr.hw,
1158e700bfd2STaniya Das 			},
1159e700bfd2STaniya Das 			.num_parents = 1,
1160e700bfd2STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1161e700bfd2STaniya Das 			.ops = &clk_branch2_ops,
1162e700bfd2STaniya Das 		},
1163e700bfd2STaniya Das 	},
1164e700bfd2STaniya Das };
1165e700bfd2STaniya Das 
1166e700bfd2STaniya Das static struct clk_branch mdss_1_disp_cc_mdss_pclk0_clk = {
1167e700bfd2STaniya Das 	.halt_reg = 0x8004,
1168e700bfd2STaniya Das 	.halt_check = BRANCH_HALT,
1169e700bfd2STaniya Das 	.clkr = {
1170e700bfd2STaniya Das 		.enable_reg = 0x8004,
1171e700bfd2STaniya Das 		.enable_mask = BIT(0),
1172e700bfd2STaniya Das 		.hw.init = &(const struct clk_init_data) {
1173e700bfd2STaniya Das 			.name = "mdss_1_disp_cc_mdss_pclk0_clk",
1174e700bfd2STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1175e700bfd2STaniya Das 				&mdss_1_disp_cc_mdss_pclk0_clk_src.clkr.hw,
1176e700bfd2STaniya Das 			},
1177e700bfd2STaniya Das 			.num_parents = 1,
1178e700bfd2STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1179e700bfd2STaniya Das 			.ops = &clk_branch2_ops,
1180e700bfd2STaniya Das 		},
1181e700bfd2STaniya Das 	},
1182e700bfd2STaniya Das };
1183e700bfd2STaniya Das 
1184e700bfd2STaniya Das static struct clk_branch mdss_1_disp_cc_mdss_pclk1_clk = {
1185e700bfd2STaniya Das 	.halt_reg = 0x8008,
1186e700bfd2STaniya Das 	.halt_check = BRANCH_HALT,
1187e700bfd2STaniya Das 	.clkr = {
1188e700bfd2STaniya Das 		.enable_reg = 0x8008,
1189e700bfd2STaniya Das 		.enable_mask = BIT(0),
1190e700bfd2STaniya Das 		.hw.init = &(const struct clk_init_data) {
1191e700bfd2STaniya Das 			.name = "mdss_1_disp_cc_mdss_pclk1_clk",
1192e700bfd2STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1193e700bfd2STaniya Das 				&mdss_1_disp_cc_mdss_pclk1_clk_src.clkr.hw,
1194e700bfd2STaniya Das 			},
1195e700bfd2STaniya Das 			.num_parents = 1,
1196e700bfd2STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1197e700bfd2STaniya Das 			.ops = &clk_branch2_ops,
1198e700bfd2STaniya Das 		},
1199e700bfd2STaniya Das 	},
1200e700bfd2STaniya Das };
1201e700bfd2STaniya Das 
1202e700bfd2STaniya Das static struct clk_branch mdss_1_disp_cc_mdss_pll_lock_monitor_clk = {
1203e700bfd2STaniya Das 	.halt_reg = 0xe000,
1204e700bfd2STaniya Das 	.halt_check = BRANCH_HALT,
1205e700bfd2STaniya Das 	.clkr = {
1206e700bfd2STaniya Das 		.enable_reg = 0xe000,
1207e700bfd2STaniya Das 		.enable_mask = BIT(0),
1208e700bfd2STaniya Das 		.hw.init = &(const struct clk_init_data) {
1209e700bfd2STaniya Das 			.name = "mdss_1_disp_cc_mdss_pll_lock_monitor_clk",
1210e700bfd2STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1211e700bfd2STaniya Das 				&mdss_1_disp_cc_xo_clk_src.clkr.hw,
1212e700bfd2STaniya Das 			},
1213e700bfd2STaniya Das 			.num_parents = 1,
1214e700bfd2STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1215e700bfd2STaniya Das 			.ops = &clk_branch2_ops,
1216e700bfd2STaniya Das 		},
1217e700bfd2STaniya Das 	},
1218e700bfd2STaniya Das };
1219e700bfd2STaniya Das 
1220e700bfd2STaniya Das static struct clk_branch mdss_1_disp_cc_mdss_rscc_ahb_clk = {
1221e700bfd2STaniya Das 	.halt_reg = 0xa00c,
1222e700bfd2STaniya Das 	.halt_check = BRANCH_HALT,
1223e700bfd2STaniya Das 	.clkr = {
1224e700bfd2STaniya Das 		.enable_reg = 0xa00c,
1225e700bfd2STaniya Das 		.enable_mask = BIT(0),
1226e700bfd2STaniya Das 		.hw.init = &(const struct clk_init_data) {
1227e700bfd2STaniya Das 			.name = "mdss_1_disp_cc_mdss_rscc_ahb_clk",
1228e700bfd2STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1229e700bfd2STaniya Das 				&mdss_1_disp_cc_mdss_ahb_clk_src.clkr.hw,
1230e700bfd2STaniya Das 			},
1231e700bfd2STaniya Das 			.num_parents = 1,
1232e700bfd2STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1233e700bfd2STaniya Das 			.ops = &clk_branch2_ops,
1234e700bfd2STaniya Das 		},
1235e700bfd2STaniya Das 	},
1236e700bfd2STaniya Das };
1237e700bfd2STaniya Das 
1238e700bfd2STaniya Das static struct clk_branch mdss_1_disp_cc_mdss_rscc_vsync_clk = {
1239e700bfd2STaniya Das 	.halt_reg = 0xa008,
1240e700bfd2STaniya Das 	.halt_check = BRANCH_HALT,
1241e700bfd2STaniya Das 	.clkr = {
1242e700bfd2STaniya Das 		.enable_reg = 0xa008,
1243e700bfd2STaniya Das 		.enable_mask = BIT(0),
1244e700bfd2STaniya Das 		.hw.init = &(const struct clk_init_data) {
1245e700bfd2STaniya Das 			.name = "mdss_1_disp_cc_mdss_rscc_vsync_clk",
1246e700bfd2STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1247e700bfd2STaniya Das 				&mdss_1_disp_cc_mdss_vsync_clk_src.clkr.hw,
1248e700bfd2STaniya Das 			},
1249e700bfd2STaniya Das 			.num_parents = 1,
1250e700bfd2STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1251e700bfd2STaniya Das 			.ops = &clk_branch2_ops,
1252e700bfd2STaniya Das 		},
1253e700bfd2STaniya Das 	},
1254e700bfd2STaniya Das };
1255e700bfd2STaniya Das 
1256e700bfd2STaniya Das static struct clk_branch mdss_1_disp_cc_mdss_vsync1_clk = {
1257e700bfd2STaniya Das 	.halt_reg = 0x8030,
1258e700bfd2STaniya Das 	.halt_check = BRANCH_HALT,
1259e700bfd2STaniya Das 	.clkr = {
1260e700bfd2STaniya Das 		.enable_reg = 0x8030,
1261e700bfd2STaniya Das 		.enable_mask = BIT(0),
1262e700bfd2STaniya Das 		.hw.init = &(const struct clk_init_data) {
1263e700bfd2STaniya Das 			.name = "mdss_1_disp_cc_mdss_vsync1_clk",
1264e700bfd2STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1265e700bfd2STaniya Das 				&mdss_1_disp_cc_mdss_vsync_clk_src.clkr.hw,
1266e700bfd2STaniya Das 			},
1267e700bfd2STaniya Das 			.num_parents = 1,
1268e700bfd2STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1269e700bfd2STaniya Das 			.ops = &clk_branch2_ops,
1270e700bfd2STaniya Das 		},
1271e700bfd2STaniya Das 	},
1272e700bfd2STaniya Das };
1273e700bfd2STaniya Das 
1274e700bfd2STaniya Das static struct clk_branch mdss_1_disp_cc_mdss_vsync_clk = {
1275e700bfd2STaniya Das 	.halt_reg = 0x802c,
1276e700bfd2STaniya Das 	.halt_check = BRANCH_HALT,
1277e700bfd2STaniya Das 	.clkr = {
1278e700bfd2STaniya Das 		.enable_reg = 0x802c,
1279e700bfd2STaniya Das 		.enable_mask = BIT(0),
1280e700bfd2STaniya Das 		.hw.init = &(const struct clk_init_data) {
1281e700bfd2STaniya Das 			.name = "mdss_1_disp_cc_mdss_vsync_clk",
1282e700bfd2STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
1283e700bfd2STaniya Das 				&mdss_1_disp_cc_mdss_vsync_clk_src.clkr.hw,
1284e700bfd2STaniya Das 			},
1285e700bfd2STaniya Das 			.num_parents = 1,
1286e700bfd2STaniya Das 			.flags = CLK_SET_RATE_PARENT,
1287e700bfd2STaniya Das 			.ops = &clk_branch2_ops,
1288e700bfd2STaniya Das 		},
1289e700bfd2STaniya Das 	},
1290e700bfd2STaniya Das };
1291e700bfd2STaniya Das 
1292e700bfd2STaniya Das static struct clk_branch mdss_1_disp_cc_sm_obs_clk = {
1293e700bfd2STaniya Das 	.halt_reg = 0x11014,
1294e700bfd2STaniya Das 	.halt_check = BRANCH_HALT_SKIP,
1295e700bfd2STaniya Das 	.clkr = {
1296e700bfd2STaniya Das 		.enable_reg = 0x11014,
1297e700bfd2STaniya Das 		.enable_mask = BIT(0),
1298e700bfd2STaniya Das 		.hw.init = &(const struct clk_init_data) {
1299e700bfd2STaniya Das 			.name = "mdss_1_disp_cc_sm_obs_clk",
1300e700bfd2STaniya Das 			.ops = &clk_branch2_ops,
1301e700bfd2STaniya Das 		},
1302e700bfd2STaniya Das 	},
1303e700bfd2STaniya Das };
1304e700bfd2STaniya Das 
1305e700bfd2STaniya Das static struct gdsc mdss_1_disp_cc_mdss_core_gdsc = {
1306e700bfd2STaniya Das 	.gdscr = 0x9000,
1307e700bfd2STaniya Das 	.en_rest_wait_val = 0x2,
1308e700bfd2STaniya Das 	.en_few_wait_val = 0x2,
1309e700bfd2STaniya Das 	.clk_dis_wait_val = 0xf,
1310e700bfd2STaniya Das 	.pd = {
1311e700bfd2STaniya Das 		.name = "mdss_1_disp_cc_mdss_core_gdsc",
1312e700bfd2STaniya Das 	},
1313e700bfd2STaniya Das 	.pwrsts = PWRSTS_OFF_ON,
1314e700bfd2STaniya Das 	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | HW_CTRL,
1315e700bfd2STaniya Das };
1316e700bfd2STaniya Das 
1317e700bfd2STaniya Das static struct gdsc mdss_1_disp_cc_mdss_core_int2_gdsc = {
1318e700bfd2STaniya Das 	.gdscr = 0xd000,
1319e700bfd2STaniya Das 	.en_rest_wait_val = 0x2,
1320e700bfd2STaniya Das 	.en_few_wait_val = 0x2,
1321e700bfd2STaniya Das 	.clk_dis_wait_val = 0xf,
1322e700bfd2STaniya Das 	.pd = {
1323e700bfd2STaniya Das 		.name = "mdss_1_disp_cc_mdss_core_int2_gdsc",
1324e700bfd2STaniya Das 	},
1325e700bfd2STaniya Das 	.pwrsts = PWRSTS_OFF_ON,
1326e700bfd2STaniya Das 	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | HW_CTRL,
1327e700bfd2STaniya Das };
1328e700bfd2STaniya Das 
1329e700bfd2STaniya Das static struct clk_regmap *disp_cc_1_sa8775p_clocks[] = {
1330e700bfd2STaniya Das 	[MDSS_DISP_CC_MDSS_AHB1_CLK] = &mdss_1_disp_cc_mdss_ahb1_clk.clkr,
1331e700bfd2STaniya Das 	[MDSS_DISP_CC_MDSS_AHB_CLK] = &mdss_1_disp_cc_mdss_ahb_clk.clkr,
1332e700bfd2STaniya Das 	[MDSS_DISP_CC_MDSS_AHB_CLK_SRC] = &mdss_1_disp_cc_mdss_ahb_clk_src.clkr,
1333e700bfd2STaniya Das 	[MDSS_DISP_CC_MDSS_BYTE0_CLK] = &mdss_1_disp_cc_mdss_byte0_clk.clkr,
1334e700bfd2STaniya Das 	[MDSS_DISP_CC_MDSS_BYTE0_CLK_SRC] = &mdss_1_disp_cc_mdss_byte0_clk_src.clkr,
1335e700bfd2STaniya Das 	[MDSS_DISP_CC_MDSS_BYTE0_DIV_CLK_SRC] = &mdss_1_disp_cc_mdss_byte0_div_clk_src.clkr,
1336e700bfd2STaniya Das 	[MDSS_DISP_CC_MDSS_BYTE0_INTF_CLK] = &mdss_1_disp_cc_mdss_byte0_intf_clk.clkr,
1337e700bfd2STaniya Das 	[MDSS_DISP_CC_MDSS_BYTE1_CLK] = &mdss_1_disp_cc_mdss_byte1_clk.clkr,
1338e700bfd2STaniya Das 	[MDSS_DISP_CC_MDSS_BYTE1_CLK_SRC] = &mdss_1_disp_cc_mdss_byte1_clk_src.clkr,
1339e700bfd2STaniya Das 	[MDSS_DISP_CC_MDSS_BYTE1_DIV_CLK_SRC] = &mdss_1_disp_cc_mdss_byte1_div_clk_src.clkr,
1340e700bfd2STaniya Das 	[MDSS_DISP_CC_MDSS_BYTE1_INTF_CLK] = &mdss_1_disp_cc_mdss_byte1_intf_clk.clkr,
1341e700bfd2STaniya Das 	[MDSS_DISP_CC_MDSS_DPTX0_AUX_CLK] = &mdss_1_disp_cc_mdss_dptx0_aux_clk.clkr,
1342e700bfd2STaniya Das 	[MDSS_DISP_CC_MDSS_DPTX0_AUX_CLK_SRC] = &mdss_1_disp_cc_mdss_dptx0_aux_clk_src.clkr,
1343e700bfd2STaniya Das 	[MDSS_DISP_CC_MDSS_DPTX0_CRYPTO_CLK] = &mdss_1_disp_cc_mdss_dptx0_crypto_clk.clkr,
1344e700bfd2STaniya Das 	[MDSS_DISP_CC_MDSS_DPTX0_CRYPTO_CLK_SRC] = &mdss_1_disp_cc_mdss_dptx0_crypto_clk_src.clkr,
1345e700bfd2STaniya Das 	[MDSS_DISP_CC_MDSS_DPTX0_LINK_CLK] = &mdss_1_disp_cc_mdss_dptx0_link_clk.clkr,
1346e700bfd2STaniya Das 	[MDSS_DISP_CC_MDSS_DPTX0_LINK_CLK_SRC] = &mdss_1_disp_cc_mdss_dptx0_link_clk_src.clkr,
1347e700bfd2STaniya Das 	[MDSS_DISP_CC_MDSS_DPTX0_LINK_DIV_CLK_SRC] =
1348e700bfd2STaniya Das 	      &mdss_1_disp_cc_mdss_dptx0_link_div_clk_src.clkr,
1349e700bfd2STaniya Das 	[MDSS_DISP_CC_MDSS_DPTX0_LINK_INTF_CLK] = &mdss_1_disp_cc_mdss_dptx0_link_intf_clk.clkr,
1350e700bfd2STaniya Das 	[MDSS_DISP_CC_MDSS_DPTX0_PIXEL0_CLK] = &mdss_1_disp_cc_mdss_dptx0_pixel0_clk.clkr,
1351e700bfd2STaniya Das 	[MDSS_DISP_CC_MDSS_DPTX0_PIXEL0_CLK_SRC] = &mdss_1_disp_cc_mdss_dptx0_pixel0_clk_src.clkr,
1352e700bfd2STaniya Das 	[MDSS_DISP_CC_MDSS_DPTX0_PIXEL1_CLK] = &mdss_1_disp_cc_mdss_dptx0_pixel1_clk.clkr,
1353e700bfd2STaniya Das 	[MDSS_DISP_CC_MDSS_DPTX0_PIXEL1_CLK_SRC] = &mdss_1_disp_cc_mdss_dptx0_pixel1_clk_src.clkr,
1354e700bfd2STaniya Das 	[MDSS_DISP_CC_MDSS_DPTX0_PIXEL2_CLK] = &mdss_1_disp_cc_mdss_dptx0_pixel2_clk.clkr,
1355e700bfd2STaniya Das 	[MDSS_DISP_CC_MDSS_DPTX0_PIXEL2_CLK_SRC] = &mdss_1_disp_cc_mdss_dptx0_pixel2_clk_src.clkr,
1356e700bfd2STaniya Das 	[MDSS_DISP_CC_MDSS_DPTX0_PIXEL3_CLK] = &mdss_1_disp_cc_mdss_dptx0_pixel3_clk.clkr,
1357e700bfd2STaniya Das 	[MDSS_DISP_CC_MDSS_DPTX0_PIXEL3_CLK_SRC] = &mdss_1_disp_cc_mdss_dptx0_pixel3_clk_src.clkr,
1358e700bfd2STaniya Das 	[MDSS_DISP_CC_MDSS_DPTX0_USB_ROUTER_LINK_INTF_CLK] =
1359e700bfd2STaniya Das 	      &mdss_1_disp_cc_mdss_dptx0_usb_router_link_intf_clk.clkr,
1360e700bfd2STaniya Das 	[MDSS_DISP_CC_MDSS_DPTX1_AUX_CLK] = &mdss_1_disp_cc_mdss_dptx1_aux_clk.clkr,
1361e700bfd2STaniya Das 	[MDSS_DISP_CC_MDSS_DPTX1_AUX_CLK_SRC] = &mdss_1_disp_cc_mdss_dptx1_aux_clk_src.clkr,
1362e700bfd2STaniya Das 	[MDSS_DISP_CC_MDSS_DPTX1_CRYPTO_CLK] = &mdss_1_disp_cc_mdss_dptx1_crypto_clk.clkr,
1363e700bfd2STaniya Das 	[MDSS_DISP_CC_MDSS_DPTX1_CRYPTO_CLK_SRC] = &mdss_1_disp_cc_mdss_dptx1_crypto_clk_src.clkr,
1364e700bfd2STaniya Das 	[MDSS_DISP_CC_MDSS_DPTX1_LINK_CLK] = &mdss_1_disp_cc_mdss_dptx1_link_clk.clkr,
1365e700bfd2STaniya Das 	[MDSS_DISP_CC_MDSS_DPTX1_LINK_CLK_SRC] = &mdss_1_disp_cc_mdss_dptx1_link_clk_src.clkr,
1366e700bfd2STaniya Das 	[MDSS_DISP_CC_MDSS_DPTX1_LINK_DIV_CLK_SRC] =
1367e700bfd2STaniya Das 	      &mdss_1_disp_cc_mdss_dptx1_link_div_clk_src.clkr,
1368e700bfd2STaniya Das 	[MDSS_DISP_CC_MDSS_DPTX1_LINK_INTF_CLK] = &mdss_1_disp_cc_mdss_dptx1_link_intf_clk.clkr,
1369e700bfd2STaniya Das 	[MDSS_DISP_CC_MDSS_DPTX1_PIXEL0_CLK] = &mdss_1_disp_cc_mdss_dptx1_pixel0_clk.clkr,
1370e700bfd2STaniya Das 	[MDSS_DISP_CC_MDSS_DPTX1_PIXEL0_CLK_SRC] = &mdss_1_disp_cc_mdss_dptx1_pixel0_clk_src.clkr,
1371e700bfd2STaniya Das 	[MDSS_DISP_CC_MDSS_DPTX1_PIXEL1_CLK] = &mdss_1_disp_cc_mdss_dptx1_pixel1_clk.clkr,
1372e700bfd2STaniya Das 	[MDSS_DISP_CC_MDSS_DPTX1_PIXEL1_CLK_SRC] = &mdss_1_disp_cc_mdss_dptx1_pixel1_clk_src.clkr,
1373e700bfd2STaniya Das 	[MDSS_DISP_CC_MDSS_DPTX1_USB_ROUTER_LINK_INTF_CLK] =
1374e700bfd2STaniya Das 	      &mdss_1_disp_cc_mdss_dptx1_usb_router_link_intf_clk.clkr,
1375e700bfd2STaniya Das 	[MDSS_DISP_CC_MDSS_ESC0_CLK] = &mdss_1_disp_cc_mdss_esc0_clk.clkr,
1376e700bfd2STaniya Das 	[MDSS_DISP_CC_MDSS_ESC0_CLK_SRC] = &mdss_1_disp_cc_mdss_esc0_clk_src.clkr,
1377e700bfd2STaniya Das 	[MDSS_DISP_CC_MDSS_ESC1_CLK] = &mdss_1_disp_cc_mdss_esc1_clk.clkr,
1378e700bfd2STaniya Das 	[MDSS_DISP_CC_MDSS_ESC1_CLK_SRC] = &mdss_1_disp_cc_mdss_esc1_clk_src.clkr,
1379e700bfd2STaniya Das 	[MDSS_DISP_CC_MDSS_MDP1_CLK] = &mdss_1_disp_cc_mdss_mdp1_clk.clkr,
1380e700bfd2STaniya Das 	[MDSS_DISP_CC_MDSS_MDP_CLK] = &mdss_1_disp_cc_mdss_mdp_clk.clkr,
1381e700bfd2STaniya Das 	[MDSS_DISP_CC_MDSS_MDP_CLK_SRC] = &mdss_1_disp_cc_mdss_mdp_clk_src.clkr,
1382e700bfd2STaniya Das 	[MDSS_DISP_CC_MDSS_MDP_LUT1_CLK] = &mdss_1_disp_cc_mdss_mdp_lut1_clk.clkr,
1383e700bfd2STaniya Das 	[MDSS_DISP_CC_MDSS_MDP_LUT_CLK] = &mdss_1_disp_cc_mdss_mdp_lut_clk.clkr,
1384e700bfd2STaniya Das 	[MDSS_DISP_CC_MDSS_NON_GDSC_AHB_CLK] = &mdss_1_disp_cc_mdss_non_gdsc_ahb_clk.clkr,
1385e700bfd2STaniya Das 	[MDSS_DISP_CC_MDSS_PCLK0_CLK] = &mdss_1_disp_cc_mdss_pclk0_clk.clkr,
1386e700bfd2STaniya Das 	[MDSS_DISP_CC_MDSS_PCLK0_CLK_SRC] = &mdss_1_disp_cc_mdss_pclk0_clk_src.clkr,
1387e700bfd2STaniya Das 	[MDSS_DISP_CC_MDSS_PCLK1_CLK] = &mdss_1_disp_cc_mdss_pclk1_clk.clkr,
1388e700bfd2STaniya Das 	[MDSS_DISP_CC_MDSS_PCLK1_CLK_SRC] = &mdss_1_disp_cc_mdss_pclk1_clk_src.clkr,
1389e700bfd2STaniya Das 	[MDSS_DISP_CC_MDSS_PLL_LOCK_MONITOR_CLK] = &mdss_1_disp_cc_mdss_pll_lock_monitor_clk.clkr,
1390e700bfd2STaniya Das 	[MDSS_DISP_CC_MDSS_RSCC_AHB_CLK] = &mdss_1_disp_cc_mdss_rscc_ahb_clk.clkr,
1391e700bfd2STaniya Das 	[MDSS_DISP_CC_MDSS_RSCC_VSYNC_CLK] = &mdss_1_disp_cc_mdss_rscc_vsync_clk.clkr,
1392e700bfd2STaniya Das 	[MDSS_DISP_CC_MDSS_VSYNC1_CLK] = &mdss_1_disp_cc_mdss_vsync1_clk.clkr,
1393e700bfd2STaniya Das 	[MDSS_DISP_CC_MDSS_VSYNC_CLK] = &mdss_1_disp_cc_mdss_vsync_clk.clkr,
1394e700bfd2STaniya Das 	[MDSS_DISP_CC_MDSS_VSYNC_CLK_SRC] = &mdss_1_disp_cc_mdss_vsync_clk_src.clkr,
1395e700bfd2STaniya Das 	[MDSS_DISP_CC_PLL0] = &mdss_1_disp_cc_pll0.clkr,
1396e700bfd2STaniya Das 	[MDSS_DISP_CC_PLL1] = &mdss_1_disp_cc_pll1.clkr,
1397e700bfd2STaniya Das 	[MDSS_DISP_CC_SLEEP_CLK_SRC] = &mdss_1_disp_cc_sleep_clk_src.clkr,
1398e700bfd2STaniya Das 	[MDSS_DISP_CC_SM_OBS_CLK] = &mdss_1_disp_cc_sm_obs_clk.clkr,
1399e700bfd2STaniya Das 	[MDSS_DISP_CC_XO_CLK_SRC] = &mdss_1_disp_cc_xo_clk_src.clkr,
1400e700bfd2STaniya Das };
1401e700bfd2STaniya Das 
1402e700bfd2STaniya Das static struct gdsc *disp_cc_1_sa8775p_gdscs[] = {
1403e700bfd2STaniya Das 	[MDSS_DISP_CC_MDSS_CORE_GDSC] = &mdss_1_disp_cc_mdss_core_gdsc,
1404e700bfd2STaniya Das 	[MDSS_DISP_CC_MDSS_CORE_INT2_GDSC] = &mdss_1_disp_cc_mdss_core_int2_gdsc,
1405e700bfd2STaniya Das };
1406e700bfd2STaniya Das 
1407e700bfd2STaniya Das static const struct qcom_reset_map disp_cc_1_sa8775p_resets[] = {
1408e700bfd2STaniya Das 	[MDSS_DISP_CC_MDSS_CORE_BCR] = { 0x8000 },
1409e700bfd2STaniya Das 	[MDSS_DISP_CC_MDSS_RSCC_BCR] = { 0xa000 },
1410e700bfd2STaniya Das };
1411e700bfd2STaniya Das 
1412e700bfd2STaniya Das static const struct regmap_config disp_cc_1_sa8775p_regmap_config = {
1413e700bfd2STaniya Das 	.reg_bits = 32,
1414e700bfd2STaniya Das 	.reg_stride = 4,
1415e700bfd2STaniya Das 	.val_bits = 32,
1416e700bfd2STaniya Das 	.max_register = 0x12414,
1417e700bfd2STaniya Das 	.fast_io = true,
1418e700bfd2STaniya Das };
1419e700bfd2STaniya Das 
1420*1801cee7SKrzysztof Kozlowski static const struct qcom_cc_desc disp_cc_1_sa8775p_desc = {
1421e700bfd2STaniya Das 	.config = &disp_cc_1_sa8775p_regmap_config,
1422e700bfd2STaniya Das 	.clks = disp_cc_1_sa8775p_clocks,
1423e700bfd2STaniya Das 	.num_clks = ARRAY_SIZE(disp_cc_1_sa8775p_clocks),
1424e700bfd2STaniya Das 	.resets = disp_cc_1_sa8775p_resets,
1425e700bfd2STaniya Das 	.num_resets = ARRAY_SIZE(disp_cc_1_sa8775p_resets),
1426e700bfd2STaniya Das 	.gdscs = disp_cc_1_sa8775p_gdscs,
1427e700bfd2STaniya Das 	.num_gdscs = ARRAY_SIZE(disp_cc_1_sa8775p_gdscs),
1428e700bfd2STaniya Das };
1429e700bfd2STaniya Das 
1430e700bfd2STaniya Das static const struct of_device_id disp_cc_1_sa8775p_match_table[] = {
1431e700bfd2STaniya Das 	{ .compatible = "qcom,sa8775p-dispcc1" },
1432e700bfd2STaniya Das 	{ }
1433e700bfd2STaniya Das };
1434e700bfd2STaniya Das MODULE_DEVICE_TABLE(of, disp_cc_1_sa8775p_match_table);
1435e700bfd2STaniya Das 
1436e700bfd2STaniya Das static int disp_cc_1_sa8775p_probe(struct platform_device *pdev)
1437e700bfd2STaniya Das {
1438e700bfd2STaniya Das 	struct regmap *regmap;
1439e700bfd2STaniya Das 	int ret;
1440e700bfd2STaniya Das 
1441e700bfd2STaniya Das 	ret = devm_pm_runtime_enable(&pdev->dev);
1442e700bfd2STaniya Das 	if (ret)
1443e700bfd2STaniya Das 		return ret;
1444e700bfd2STaniya Das 
1445e700bfd2STaniya Das 	ret = pm_runtime_resume_and_get(&pdev->dev);
1446e700bfd2STaniya Das 	if (ret)
1447e700bfd2STaniya Das 		return ret;
1448e700bfd2STaniya Das 
1449e700bfd2STaniya Das 	regmap = qcom_cc_map(pdev, &disp_cc_1_sa8775p_desc);
1450e700bfd2STaniya Das 	if (IS_ERR(regmap)) {
1451e700bfd2STaniya Das 		pm_runtime_put(&pdev->dev);
1452e700bfd2STaniya Das 		return PTR_ERR(regmap);
1453e700bfd2STaniya Das 	}
1454e700bfd2STaniya Das 
1455e700bfd2STaniya Das 	clk_lucid_evo_pll_configure(&mdss_1_disp_cc_pll0, regmap, &mdss_1_disp_cc_pll0_config);
1456e700bfd2STaniya Das 	clk_lucid_evo_pll_configure(&mdss_1_disp_cc_pll1, regmap, &mdss_1_disp_cc_pll1_config);
1457e700bfd2STaniya Das 
1458e700bfd2STaniya Das 	/* Keep some clocks always enabled */
1459e700bfd2STaniya Das 	qcom_branch_set_clk_en(regmap, 0xc070); /* MDSS_1_DISP_CC_SLEEP_CLK */
1460e700bfd2STaniya Das 	qcom_branch_set_clk_en(regmap, 0xc054); /* MDSS_1_DISP_CC_XO_CLK */
1461e700bfd2STaniya Das 
1462e700bfd2STaniya Das 	ret = qcom_cc_really_probe(&pdev->dev, &disp_cc_1_sa8775p_desc, regmap);
1463e700bfd2STaniya Das 
1464e700bfd2STaniya Das 	pm_runtime_put(&pdev->dev);
1465e700bfd2STaniya Das 
1466e700bfd2STaniya Das 	return ret;
1467e700bfd2STaniya Das }
1468e700bfd2STaniya Das 
1469e700bfd2STaniya Das static struct platform_driver disp_cc_1_sa8775p_driver = {
1470e700bfd2STaniya Das 	.probe = disp_cc_1_sa8775p_probe,
1471e700bfd2STaniya Das 	.driver = {
1472e700bfd2STaniya Das 		.name = "dispcc1-sa8775p",
1473e700bfd2STaniya Das 		.of_match_table = disp_cc_1_sa8775p_match_table,
1474e700bfd2STaniya Das 	},
1475e700bfd2STaniya Das };
1476e700bfd2STaniya Das 
1477e700bfd2STaniya Das module_platform_driver(disp_cc_1_sa8775p_driver);
1478e700bfd2STaniya Das 
1479e700bfd2STaniya Das MODULE_DESCRIPTION("QTI DISPCC1 SA8775P Driver");
1480e700bfd2STaniya Das MODULE_LICENSE("GPL");
1481