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 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