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