11c9efb0bSTaniya Das // SPDX-License-Identifier: GPL-2.0-only 21c9efb0bSTaniya Das /* 3b311f5d3SImran Shaik * Copyright (c) 2022-2023, Qualcomm Innovation Center, Inc. All rights reserved. 41c9efb0bSTaniya Das */ 51c9efb0bSTaniya Das 61c9efb0bSTaniya Das #include <linux/clk-provider.h> 71c9efb0bSTaniya Das #include <linux/module.h> 81c9efb0bSTaniya Das #include <linux/of_device.h> 91c9efb0bSTaniya Das #include <linux/regmap.h> 101c9efb0bSTaniya Das 111c9efb0bSTaniya Das #include <dt-bindings/clock/qcom,qdu1000-gcc.h> 121c9efb0bSTaniya Das 131c9efb0bSTaniya Das #include "clk-alpha-pll.h" 141c9efb0bSTaniya Das #include "clk-branch.h" 151c9efb0bSTaniya Das #include "clk-rcg.h" 161c9efb0bSTaniya Das #include "clk-regmap.h" 171c9efb0bSTaniya Das #include "clk-regmap-divider.h" 181c9efb0bSTaniya Das #include "clk-regmap-mux.h" 191c9efb0bSTaniya Das #include "clk-regmap-phy-mux.h" 20*76346cf7SImran Shaik #include "gdsc.h" 211c9efb0bSTaniya Das #include "reset.h" 221c9efb0bSTaniya Das 231c9efb0bSTaniya Das enum { 241c9efb0bSTaniya Das P_BI_TCXO, 251c9efb0bSTaniya Das P_GCC_GPLL0_OUT_EVEN, 261c9efb0bSTaniya Das P_GCC_GPLL0_OUT_MAIN, 271c9efb0bSTaniya Das P_GCC_GPLL1_OUT_MAIN, 281c9efb0bSTaniya Das P_GCC_GPLL2_OUT_MAIN, 291c9efb0bSTaniya Das P_GCC_GPLL3_OUT_MAIN, 301c9efb0bSTaniya Das P_GCC_GPLL4_OUT_MAIN, 311c9efb0bSTaniya Das P_GCC_GPLL5_OUT_MAIN, 321c9efb0bSTaniya Das P_GCC_GPLL6_OUT_MAIN, 331c9efb0bSTaniya Das P_GCC_GPLL7_OUT_MAIN, 341c9efb0bSTaniya Das P_GCC_GPLL8_OUT_MAIN, 351c9efb0bSTaniya Das P_PCIE_0_PHY_AUX_CLK, 361c9efb0bSTaniya Das P_PCIE_0_PIPE_CLK, 371c9efb0bSTaniya Das P_SLEEP_CLK, 381c9efb0bSTaniya Das P_USB3_PHY_WRAPPER_GCC_USB30_PIPE_CLK, 391c9efb0bSTaniya Das }; 401c9efb0bSTaniya Das 411c9efb0bSTaniya Das enum { 421c9efb0bSTaniya Das DT_TCXO_IDX, 431c9efb0bSTaniya Das DT_SLEEP_CLK_IDX, 441c9efb0bSTaniya Das DT_PCIE_0_PIPE_CLK_IDX, 451c9efb0bSTaniya Das DT_PCIE_0_PHY_AUX_CLK_IDX, 461c9efb0bSTaniya Das DT_USB3_PHY_WRAPPER_PIPE_CLK_IDX, 471c9efb0bSTaniya Das }; 481c9efb0bSTaniya Das 491c9efb0bSTaniya Das static struct clk_alpha_pll gcc_gpll0 = { 501c9efb0bSTaniya Das .offset = 0x0, 511c9efb0bSTaniya Das .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_EVO], 521c9efb0bSTaniya Das .clkr = { 531c9efb0bSTaniya Das .enable_reg = 0x62018, 541c9efb0bSTaniya Das .enable_mask = BIT(0), 551c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 561c9efb0bSTaniya Das .name = "gcc_gpll0", 571c9efb0bSTaniya Das .parent_data = &(const struct clk_parent_data) { 581c9efb0bSTaniya Das .index = DT_TCXO_IDX, 591c9efb0bSTaniya Das }, 601c9efb0bSTaniya Das .num_parents = 1, 611c9efb0bSTaniya Das .ops = &clk_alpha_pll_fixed_lucid_evo_ops, 621c9efb0bSTaniya Das }, 631c9efb0bSTaniya Das }, 641c9efb0bSTaniya Das }; 651c9efb0bSTaniya Das 661c9efb0bSTaniya Das static const struct clk_div_table post_div_table_gcc_gpll0_out_even[] = { 671c9efb0bSTaniya Das { 0x1, 2 } 681c9efb0bSTaniya Das }; 691c9efb0bSTaniya Das 701c9efb0bSTaniya Das static struct clk_alpha_pll_postdiv gcc_gpll0_out_even = { 711c9efb0bSTaniya Das .offset = 0x0, 721c9efb0bSTaniya Das .post_div_shift = 10, 731c9efb0bSTaniya Das .post_div_table = post_div_table_gcc_gpll0_out_even, 741c9efb0bSTaniya Das .num_post_div = ARRAY_SIZE(post_div_table_gcc_gpll0_out_even), 751c9efb0bSTaniya Das .width = 4, 761c9efb0bSTaniya Das .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_EVO], 771c9efb0bSTaniya Das .clkr.hw.init = &(const struct clk_init_data) { 781c9efb0bSTaniya Das .name = "gcc_gpll0_out_even", 791c9efb0bSTaniya Das .parent_hws = (const struct clk_hw*[]) { 801c9efb0bSTaniya Das &gcc_gpll0.clkr.hw, 811c9efb0bSTaniya Das }, 821c9efb0bSTaniya Das .num_parents = 1, 831c9efb0bSTaniya Das .ops = &clk_alpha_pll_postdiv_lucid_evo_ops, 841c9efb0bSTaniya Das }, 851c9efb0bSTaniya Das }; 861c9efb0bSTaniya Das 871c9efb0bSTaniya Das static struct clk_alpha_pll gcc_gpll1 = { 881c9efb0bSTaniya Das .offset = 0x1000, 891c9efb0bSTaniya Das .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_EVO], 901c9efb0bSTaniya Das .clkr = { 911c9efb0bSTaniya Das .enable_reg = 0x62018, 921c9efb0bSTaniya Das .enable_mask = BIT(1), 931c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 941c9efb0bSTaniya Das .name = "gcc_gpll1", 951c9efb0bSTaniya Das .parent_data = &(const struct clk_parent_data) { 961c9efb0bSTaniya Das .index = DT_TCXO_IDX, 971c9efb0bSTaniya Das }, 981c9efb0bSTaniya Das .num_parents = 1, 991c9efb0bSTaniya Das .ops = &clk_alpha_pll_fixed_lucid_evo_ops, 1001c9efb0bSTaniya Das }, 1011c9efb0bSTaniya Das }, 1021c9efb0bSTaniya Das }; 1031c9efb0bSTaniya Das 1041c9efb0bSTaniya Das static struct clk_alpha_pll_postdiv gcc_gpll1_out_even = { 1051c9efb0bSTaniya Das .offset = 0x1000, 1061c9efb0bSTaniya Das .post_div_shift = 10, 1071c9efb0bSTaniya Das .post_div_table = post_div_table_gcc_gpll0_out_even, 1081c9efb0bSTaniya Das .num_post_div = ARRAY_SIZE(post_div_table_gcc_gpll0_out_even), 1091c9efb0bSTaniya Das .width = 4, 1101c9efb0bSTaniya Das .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_EVO], 1111c9efb0bSTaniya Das .clkr.hw.init = &(const struct clk_init_data) { 1121c9efb0bSTaniya Das .name = "gcc_gpll1_out_even", 1131c9efb0bSTaniya Das .parent_hws = (const struct clk_hw*[]) { 1141c9efb0bSTaniya Das &gcc_gpll1.clkr.hw, 1151c9efb0bSTaniya Das }, 1161c9efb0bSTaniya Das .num_parents = 1, 1171c9efb0bSTaniya Das .ops = &clk_alpha_pll_postdiv_lucid_evo_ops, 1181c9efb0bSTaniya Das }, 1191c9efb0bSTaniya Das }; 1201c9efb0bSTaniya Das 1211c9efb0bSTaniya Das static struct clk_alpha_pll gcc_gpll2 = { 1221c9efb0bSTaniya Das .offset = 0x2000, 1231c9efb0bSTaniya Das .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_EVO], 1241c9efb0bSTaniya Das .clkr = { 1251c9efb0bSTaniya Das .enable_reg = 0x62018, 1261c9efb0bSTaniya Das .enable_mask = BIT(2), 1271c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 1281c9efb0bSTaniya Das .name = "gcc_gpll2", 1291c9efb0bSTaniya Das .parent_data = &(const struct clk_parent_data) { 1301c9efb0bSTaniya Das .index = DT_TCXO_IDX, 1311c9efb0bSTaniya Das }, 1321c9efb0bSTaniya Das .num_parents = 1, 1331c9efb0bSTaniya Das .ops = &clk_alpha_pll_fixed_lucid_evo_ops, 1341c9efb0bSTaniya Das }, 1351c9efb0bSTaniya Das }, 1361c9efb0bSTaniya Das }; 1371c9efb0bSTaniya Das 1381c9efb0bSTaniya Das static struct clk_alpha_pll_postdiv gcc_gpll2_out_even = { 1391c9efb0bSTaniya Das .offset = 0x2000, 1401c9efb0bSTaniya Das .post_div_shift = 10, 1411c9efb0bSTaniya Das .post_div_table = post_div_table_gcc_gpll0_out_even, 1421c9efb0bSTaniya Das .num_post_div = ARRAY_SIZE(post_div_table_gcc_gpll0_out_even), 1431c9efb0bSTaniya Das .width = 4, 1441c9efb0bSTaniya Das .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_EVO], 1451c9efb0bSTaniya Das .clkr.hw.init = &(const struct clk_init_data) { 1461c9efb0bSTaniya Das .name = "gcc_gpll2_out_even", 1471c9efb0bSTaniya Das .parent_hws = (const struct clk_hw*[]) { 1481c9efb0bSTaniya Das &gcc_gpll2.clkr.hw, 1491c9efb0bSTaniya Das }, 1501c9efb0bSTaniya Das .num_parents = 1, 1511c9efb0bSTaniya Das .ops = &clk_alpha_pll_postdiv_lucid_evo_ops, 1521c9efb0bSTaniya Das }, 1531c9efb0bSTaniya Das }; 1541c9efb0bSTaniya Das 1551c9efb0bSTaniya Das static struct clk_alpha_pll gcc_gpll3 = { 1561c9efb0bSTaniya Das .offset = 0x3000, 1571c9efb0bSTaniya Das .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_EVO], 1581c9efb0bSTaniya Das .clkr = { 1591c9efb0bSTaniya Das .enable_reg = 0x62018, 1601c9efb0bSTaniya Das .enable_mask = BIT(3), 1611c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 1621c9efb0bSTaniya Das .name = "gcc_gpll3", 1631c9efb0bSTaniya Das .parent_data = &(const struct clk_parent_data) { 1641c9efb0bSTaniya Das .index = DT_TCXO_IDX, 1651c9efb0bSTaniya Das }, 1661c9efb0bSTaniya Das .num_parents = 1, 1671c9efb0bSTaniya Das .ops = &clk_alpha_pll_fixed_lucid_evo_ops, 1681c9efb0bSTaniya Das }, 1691c9efb0bSTaniya Das }, 1701c9efb0bSTaniya Das }; 1711c9efb0bSTaniya Das 1721c9efb0bSTaniya Das static struct clk_alpha_pll gcc_gpll4 = { 1731c9efb0bSTaniya Das .offset = 0x4000, 1741c9efb0bSTaniya Das .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_EVO], 1751c9efb0bSTaniya Das .clkr = { 1761c9efb0bSTaniya Das .enable_reg = 0x62018, 1771c9efb0bSTaniya Das .enable_mask = BIT(4), 1781c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 1791c9efb0bSTaniya Das .name = "gcc_gpll4", 1801c9efb0bSTaniya Das .parent_data = &(const struct clk_parent_data) { 1811c9efb0bSTaniya Das .index = DT_TCXO_IDX, 1821c9efb0bSTaniya Das }, 1831c9efb0bSTaniya Das .num_parents = 1, 1841c9efb0bSTaniya Das .ops = &clk_alpha_pll_fixed_lucid_evo_ops, 1851c9efb0bSTaniya Das }, 1861c9efb0bSTaniya Das }, 1871c9efb0bSTaniya Das }; 1881c9efb0bSTaniya Das 1891c9efb0bSTaniya Das static struct clk_alpha_pll gcc_gpll5 = { 1901c9efb0bSTaniya Das .offset = 0x5000, 1911c9efb0bSTaniya Das .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_EVO], 1921c9efb0bSTaniya Das .clkr = { 1931c9efb0bSTaniya Das .enable_reg = 0x62018, 1941c9efb0bSTaniya Das .enable_mask = BIT(5), 1951c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 1961c9efb0bSTaniya Das .name = "gcc_gpll5", 1971c9efb0bSTaniya Das .parent_data = &(const struct clk_parent_data) { 1981c9efb0bSTaniya Das .index = DT_TCXO_IDX, 1991c9efb0bSTaniya Das }, 2001c9efb0bSTaniya Das .num_parents = 1, 2011c9efb0bSTaniya Das .ops = &clk_alpha_pll_fixed_lucid_evo_ops, 2021c9efb0bSTaniya Das }, 2031c9efb0bSTaniya Das }, 2041c9efb0bSTaniya Das }; 2051c9efb0bSTaniya Das 2061c9efb0bSTaniya Das static struct clk_alpha_pll_postdiv gcc_gpll5_out_even = { 2071c9efb0bSTaniya Das .offset = 0x5000, 2081c9efb0bSTaniya Das .post_div_shift = 10, 2091c9efb0bSTaniya Das .post_div_table = post_div_table_gcc_gpll0_out_even, 2101c9efb0bSTaniya Das .num_post_div = ARRAY_SIZE(post_div_table_gcc_gpll0_out_even), 2111c9efb0bSTaniya Das .width = 4, 2121c9efb0bSTaniya Das .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_EVO], 2131c9efb0bSTaniya Das .clkr.hw.init = &(const struct clk_init_data) { 2141c9efb0bSTaniya Das .name = "gcc_gpll5_out_even", 2151c9efb0bSTaniya Das .parent_hws = (const struct clk_hw*[]) { 2161c9efb0bSTaniya Das &gcc_gpll5.clkr.hw, 2171c9efb0bSTaniya Das }, 2181c9efb0bSTaniya Das .num_parents = 1, 2191c9efb0bSTaniya Das .ops = &clk_alpha_pll_postdiv_lucid_evo_ops, 2201c9efb0bSTaniya Das }, 2211c9efb0bSTaniya Das }; 2221c9efb0bSTaniya Das 2231c9efb0bSTaniya Das static struct clk_alpha_pll gcc_gpll6 = { 2241c9efb0bSTaniya Das .offset = 0x6000, 2251c9efb0bSTaniya Das .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_EVO], 2261c9efb0bSTaniya Das .clkr = { 2271c9efb0bSTaniya Das .enable_reg = 0x62018, 2281c9efb0bSTaniya Das .enable_mask = BIT(6), 2291c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 2301c9efb0bSTaniya Das .name = "gcc_gpll6", 2311c9efb0bSTaniya Das .parent_data = &(const struct clk_parent_data) { 2321c9efb0bSTaniya Das .index = DT_TCXO_IDX, 2331c9efb0bSTaniya Das }, 2341c9efb0bSTaniya Das .num_parents = 1, 2351c9efb0bSTaniya Das .ops = &clk_alpha_pll_fixed_lucid_evo_ops, 2361c9efb0bSTaniya Das }, 2371c9efb0bSTaniya Das }, 2381c9efb0bSTaniya Das }; 2391c9efb0bSTaniya Das 2401c9efb0bSTaniya Das static struct clk_alpha_pll gcc_gpll7 = { 2411c9efb0bSTaniya Das .offset = 0x7000, 2421c9efb0bSTaniya Das .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_EVO], 2431c9efb0bSTaniya Das .clkr = { 2441c9efb0bSTaniya Das .enable_reg = 0x62018, 2451c9efb0bSTaniya Das .enable_mask = BIT(7), 2461c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 2471c9efb0bSTaniya Das .name = "gcc_gpll7", 2481c9efb0bSTaniya Das .parent_data = &(const struct clk_parent_data) { 2491c9efb0bSTaniya Das .index = DT_TCXO_IDX, 2501c9efb0bSTaniya Das }, 2511c9efb0bSTaniya Das .num_parents = 1, 2521c9efb0bSTaniya Das .ops = &clk_alpha_pll_fixed_lucid_evo_ops, 2531c9efb0bSTaniya Das }, 2541c9efb0bSTaniya Das }, 2551c9efb0bSTaniya Das }; 2561c9efb0bSTaniya Das 2571c9efb0bSTaniya Das static struct clk_alpha_pll gcc_gpll8 = { 2581c9efb0bSTaniya Das .offset = 0x8000, 2591c9efb0bSTaniya Das .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_EVO], 2601c9efb0bSTaniya Das .clkr = { 2611c9efb0bSTaniya Das .enable_reg = 0x62018, 2621c9efb0bSTaniya Das .enable_mask = BIT(8), 2631c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 2641c9efb0bSTaniya Das .name = "gcc_gpll8", 2651c9efb0bSTaniya Das .parent_data = &(const struct clk_parent_data) { 2661c9efb0bSTaniya Das .index = DT_TCXO_IDX, 2671c9efb0bSTaniya Das }, 2681c9efb0bSTaniya Das .num_parents = 1, 2691c9efb0bSTaniya Das .ops = &clk_alpha_pll_fixed_lucid_evo_ops, 2701c9efb0bSTaniya Das }, 2711c9efb0bSTaniya Das }, 2721c9efb0bSTaniya Das }; 2731c9efb0bSTaniya Das 2741c9efb0bSTaniya Das static const struct parent_map gcc_parent_map_0[] = { 2751c9efb0bSTaniya Das { P_BI_TCXO, 0 }, 2761c9efb0bSTaniya Das { P_GCC_GPLL0_OUT_MAIN, 1 }, 2771c9efb0bSTaniya Das { P_GCC_GPLL0_OUT_EVEN, 6 }, 2781c9efb0bSTaniya Das }; 2791c9efb0bSTaniya Das 2801c9efb0bSTaniya Das static const struct clk_parent_data gcc_parent_data_0[] = { 2811c9efb0bSTaniya Das { .index = DT_TCXO_IDX }, 2821c9efb0bSTaniya Das { .hw = &gcc_gpll0.clkr.hw }, 2831c9efb0bSTaniya Das { .hw = &gcc_gpll0_out_even.clkr.hw }, 2841c9efb0bSTaniya Das }; 2851c9efb0bSTaniya Das 2861c9efb0bSTaniya Das static const struct parent_map gcc_parent_map_1[] = { 2871c9efb0bSTaniya Das { P_BI_TCXO, 0 }, 2881c9efb0bSTaniya Das { P_GCC_GPLL0_OUT_MAIN, 1 }, 2891c9efb0bSTaniya Das { P_SLEEP_CLK, 5 }, 2901c9efb0bSTaniya Das { P_GCC_GPLL0_OUT_EVEN, 6 }, 2911c9efb0bSTaniya Das }; 2921c9efb0bSTaniya Das 2931c9efb0bSTaniya Das static const struct clk_parent_data gcc_parent_data_1[] = { 2941c9efb0bSTaniya Das { .index = DT_TCXO_IDX }, 2951c9efb0bSTaniya Das { .hw = &gcc_gpll0.clkr.hw }, 2961c9efb0bSTaniya Das { .index = DT_SLEEP_CLK_IDX }, 2971c9efb0bSTaniya Das { .hw = &gcc_gpll0_out_even.clkr.hw }, 2981c9efb0bSTaniya Das }; 2991c9efb0bSTaniya Das 3001c9efb0bSTaniya Das static const struct parent_map gcc_parent_map_2[] = { 3011c9efb0bSTaniya Das { P_BI_TCXO, 0 }, 3021c9efb0bSTaniya Das { P_GCC_GPLL0_OUT_MAIN, 1 }, 3031c9efb0bSTaniya Das { P_GCC_GPLL5_OUT_MAIN, 3 }, 3041c9efb0bSTaniya Das { P_GCC_GPLL4_OUT_MAIN, 5 }, 3051c9efb0bSTaniya Das }; 3061c9efb0bSTaniya Das 3071c9efb0bSTaniya Das static const struct clk_parent_data gcc_parent_data_2[] = { 3081c9efb0bSTaniya Das { .index = DT_TCXO_IDX }, 3091c9efb0bSTaniya Das { .hw = &gcc_gpll0.clkr.hw }, 3101c9efb0bSTaniya Das { .hw = &gcc_gpll5.clkr.hw }, 3111c9efb0bSTaniya Das { .hw = &gcc_gpll4.clkr.hw }, 3121c9efb0bSTaniya Das }; 3131c9efb0bSTaniya Das 3141c9efb0bSTaniya Das static const struct parent_map gcc_parent_map_3[] = { 3151c9efb0bSTaniya Das { P_BI_TCXO, 0 }, 3161c9efb0bSTaniya Das { P_SLEEP_CLK, 5 }, 3171c9efb0bSTaniya Das }; 3181c9efb0bSTaniya Das 3191c9efb0bSTaniya Das static const struct clk_parent_data gcc_parent_data_3[] = { 3201c9efb0bSTaniya Das { .index = DT_TCXO_IDX }, 3211c9efb0bSTaniya Das { .index = DT_SLEEP_CLK_IDX }, 3221c9efb0bSTaniya Das }; 3231c9efb0bSTaniya Das 3241c9efb0bSTaniya Das static const struct parent_map gcc_parent_map_4[] = { 3251c9efb0bSTaniya Das { P_BI_TCXO, 0 }, 3261c9efb0bSTaniya Das { P_GCC_GPLL0_OUT_MAIN, 1 }, 3271c9efb0bSTaniya Das { P_GCC_GPLL2_OUT_MAIN, 2 }, 3281c9efb0bSTaniya Das { P_GCC_GPLL5_OUT_MAIN, 3 }, 3291c9efb0bSTaniya Das { P_GCC_GPLL1_OUT_MAIN, 4 }, 3301c9efb0bSTaniya Das { P_GCC_GPLL4_OUT_MAIN, 5 }, 3311c9efb0bSTaniya Das { P_GCC_GPLL3_OUT_MAIN, 6 }, 3321c9efb0bSTaniya Das }; 3331c9efb0bSTaniya Das 3341c9efb0bSTaniya Das static const struct clk_parent_data gcc_parent_data_4[] = { 3351c9efb0bSTaniya Das { .index = DT_TCXO_IDX }, 3361c9efb0bSTaniya Das { .hw = &gcc_gpll0.clkr.hw }, 3371c9efb0bSTaniya Das { .hw = &gcc_gpll2.clkr.hw }, 3381c9efb0bSTaniya Das { .hw = &gcc_gpll5.clkr.hw }, 3391c9efb0bSTaniya Das { .hw = &gcc_gpll1.clkr.hw }, 3401c9efb0bSTaniya Das { .hw = &gcc_gpll4.clkr.hw }, 3411c9efb0bSTaniya Das { .hw = &gcc_gpll3.clkr.hw }, 3421c9efb0bSTaniya Das }; 3431c9efb0bSTaniya Das 3441c9efb0bSTaniya Das static const struct parent_map gcc_parent_map_5[] = { 3451c9efb0bSTaniya Das { P_BI_TCXO, 0 }, 3461c9efb0bSTaniya Das { P_GCC_GPLL0_OUT_MAIN, 1 }, 3471c9efb0bSTaniya Das { P_GCC_GPLL2_OUT_MAIN, 2 }, 3481c9efb0bSTaniya Das { P_GCC_GPLL6_OUT_MAIN, 3 }, 3491c9efb0bSTaniya Das { P_GCC_GPLL1_OUT_MAIN, 4 }, 3501c9efb0bSTaniya Das { P_GCC_GPLL4_OUT_MAIN, 5 }, 3511c9efb0bSTaniya Das { P_GCC_GPLL3_OUT_MAIN, 6 }, 3521c9efb0bSTaniya Das }; 3531c9efb0bSTaniya Das 3541c9efb0bSTaniya Das static const struct clk_parent_data gcc_parent_data_5[] = { 3551c9efb0bSTaniya Das { .index = DT_TCXO_IDX }, 3561c9efb0bSTaniya Das { .hw = &gcc_gpll0.clkr.hw }, 3571c9efb0bSTaniya Das { .hw = &gcc_gpll2.clkr.hw }, 3581c9efb0bSTaniya Das { .hw = &gcc_gpll6.clkr.hw }, 3591c9efb0bSTaniya Das { .hw = &gcc_gpll1.clkr.hw }, 3601c9efb0bSTaniya Das { .hw = &gcc_gpll4.clkr.hw }, 3611c9efb0bSTaniya Das { .hw = &gcc_gpll3.clkr.hw }, 3621c9efb0bSTaniya Das }; 3631c9efb0bSTaniya Das 3641c9efb0bSTaniya Das static const struct parent_map gcc_parent_map_6[] = { 3651c9efb0bSTaniya Das { P_PCIE_0_PHY_AUX_CLK, 0 }, 3661c9efb0bSTaniya Das { P_BI_TCXO, 2 }, 3671c9efb0bSTaniya Das }; 3681c9efb0bSTaniya Das 3691c9efb0bSTaniya Das static const struct clk_parent_data gcc_parent_data_6[] = { 3701c9efb0bSTaniya Das { .index = DT_PCIE_0_PHY_AUX_CLK_IDX }, 3711c9efb0bSTaniya Das { .index = DT_TCXO_IDX }, 3721c9efb0bSTaniya Das }; 3731c9efb0bSTaniya Das 3741c9efb0bSTaniya Das static const struct parent_map gcc_parent_map_8[] = { 3751c9efb0bSTaniya Das { P_BI_TCXO, 0 }, 3761c9efb0bSTaniya Das { P_GCC_GPLL0_OUT_MAIN, 1 }, 3771c9efb0bSTaniya Das { P_GCC_GPLL8_OUT_MAIN, 2 }, 3781c9efb0bSTaniya Das { P_GCC_GPLL5_OUT_MAIN, 3 }, 3791c9efb0bSTaniya Das { P_GCC_GPLL4_OUT_MAIN, 5 }, 3801c9efb0bSTaniya Das }; 3811c9efb0bSTaniya Das 3821c9efb0bSTaniya Das static const struct clk_parent_data gcc_parent_data_8[] = { 3831c9efb0bSTaniya Das { .index = DT_TCXO_IDX }, 3841c9efb0bSTaniya Das { .hw = &gcc_gpll0.clkr.hw }, 3851c9efb0bSTaniya Das { .hw = &gcc_gpll8.clkr.hw }, 3861c9efb0bSTaniya Das { .hw = &gcc_gpll5.clkr.hw }, 3871c9efb0bSTaniya Das { .hw = &gcc_gpll4.clkr.hw }, 3881c9efb0bSTaniya Das }; 3891c9efb0bSTaniya Das 3901c9efb0bSTaniya Das static const struct parent_map gcc_parent_map_9[] = { 3911c9efb0bSTaniya Das { P_BI_TCXO, 0 }, 3921c9efb0bSTaniya Das { P_GCC_GPLL0_OUT_MAIN, 1 }, 3931c9efb0bSTaniya Das { P_GCC_GPLL2_OUT_MAIN, 2 }, 3941c9efb0bSTaniya Das { P_GCC_GPLL5_OUT_MAIN, 3 }, 3951c9efb0bSTaniya Das { P_GCC_GPLL7_OUT_MAIN, 4 }, 3961c9efb0bSTaniya Das { P_GCC_GPLL4_OUT_MAIN, 5 }, 3971c9efb0bSTaniya Das }; 3981c9efb0bSTaniya Das 3991c9efb0bSTaniya Das static const struct clk_parent_data gcc_parent_data_9[] = { 4001c9efb0bSTaniya Das { .index = DT_TCXO_IDX }, 4011c9efb0bSTaniya Das { .hw = &gcc_gpll0.clkr.hw }, 4021c9efb0bSTaniya Das { .hw = &gcc_gpll2.clkr.hw }, 4031c9efb0bSTaniya Das { .hw = &gcc_gpll5.clkr.hw }, 4041c9efb0bSTaniya Das { .hw = &gcc_gpll7.clkr.hw }, 4051c9efb0bSTaniya Das { .hw = &gcc_gpll4.clkr.hw }, 4061c9efb0bSTaniya Das }; 4071c9efb0bSTaniya Das 4081c9efb0bSTaniya Das static const struct parent_map gcc_parent_map_10[] = { 4091c9efb0bSTaniya Das { P_USB3_PHY_WRAPPER_GCC_USB30_PIPE_CLK, 0 }, 4101c9efb0bSTaniya Das { P_BI_TCXO, 2 }, 4111c9efb0bSTaniya Das }; 4121c9efb0bSTaniya Das 4131c9efb0bSTaniya Das static const struct clk_parent_data gcc_parent_data_10[] = { 4141c9efb0bSTaniya Das { .index = DT_USB3_PHY_WRAPPER_PIPE_CLK_IDX }, 4151c9efb0bSTaniya Das { .index = DT_TCXO_IDX }, 4161c9efb0bSTaniya Das }; 4171c9efb0bSTaniya Das 4181c9efb0bSTaniya Das static struct clk_regmap_mux gcc_pcie_0_phy_aux_clk_src = { 4191c9efb0bSTaniya Das .reg = 0x9d080, 4201c9efb0bSTaniya Das .shift = 0, 4211c9efb0bSTaniya Das .width = 2, 4221c9efb0bSTaniya Das .parent_map = gcc_parent_map_6, 4231c9efb0bSTaniya Das .clkr = { 4241c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 4251c9efb0bSTaniya Das .name = "gcc_pcie_0_phy_aux_clk_src", 4261c9efb0bSTaniya Das .parent_data = gcc_parent_data_6, 4271c9efb0bSTaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_6), 4281c9efb0bSTaniya Das .ops = &clk_regmap_mux_closest_ops, 4291c9efb0bSTaniya Das }, 4301c9efb0bSTaniya Das }, 4311c9efb0bSTaniya Das }; 4321c9efb0bSTaniya Das 433b311f5d3SImran Shaik static struct clk_regmap_phy_mux gcc_pcie_0_pipe_clk_src = { 4341c9efb0bSTaniya Das .reg = 0x9d064, 4351c9efb0bSTaniya Das .clkr = { 4361c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 4371c9efb0bSTaniya Das .name = "gcc_pcie_0_pipe_clk_src", 438b311f5d3SImran Shaik .parent_data = &(const struct clk_parent_data){ 439b311f5d3SImran Shaik .index = DT_PCIE_0_PIPE_CLK_IDX, 440b311f5d3SImran Shaik }, 441b311f5d3SImran Shaik .num_parents = 1, 4421c9efb0bSTaniya Das .ops = &clk_regmap_phy_mux_ops, 4431c9efb0bSTaniya Das }, 4441c9efb0bSTaniya Das }, 4451c9efb0bSTaniya Das }; 4461c9efb0bSTaniya Das 4471c9efb0bSTaniya Das static struct clk_regmap_mux gcc_usb3_prim_phy_pipe_clk_src = { 4481c9efb0bSTaniya Das .reg = 0x4906c, 4491c9efb0bSTaniya Das .shift = 0, 4501c9efb0bSTaniya Das .width = 2, 4511c9efb0bSTaniya Das .parent_map = gcc_parent_map_10, 4521c9efb0bSTaniya Das .clkr = { 4531c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 4541c9efb0bSTaniya Das .name = "gcc_usb3_prim_phy_pipe_clk_src", 4551c9efb0bSTaniya Das .parent_data = gcc_parent_data_10, 4561c9efb0bSTaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_10), 4571c9efb0bSTaniya Das .ops = &clk_regmap_mux_closest_ops, 4581c9efb0bSTaniya Das }, 4591c9efb0bSTaniya Das }, 4601c9efb0bSTaniya Das }; 4611c9efb0bSTaniya Das 4621c9efb0bSTaniya Das static const struct freq_tbl ftbl_gcc_aggre_noc_ecpri_dma_clk_src[] = { 4631c9efb0bSTaniya Das F(466500000, P_GCC_GPLL5_OUT_MAIN, 2, 0, 0), 4641c9efb0bSTaniya Das F(500000000, P_GCC_GPLL2_OUT_MAIN, 2, 0, 0), 4651c9efb0bSTaniya Das { } 4661c9efb0bSTaniya Das }; 4671c9efb0bSTaniya Das 4681c9efb0bSTaniya Das static struct clk_rcg2 gcc_aggre_noc_ecpri_dma_clk_src = { 4691c9efb0bSTaniya Das .cmd_rcgr = 0x92020, 4701c9efb0bSTaniya Das .mnd_width = 0, 4711c9efb0bSTaniya Das .hid_width = 5, 4721c9efb0bSTaniya Das .parent_map = gcc_parent_map_4, 4731c9efb0bSTaniya Das .freq_tbl = ftbl_gcc_aggre_noc_ecpri_dma_clk_src, 4741c9efb0bSTaniya Das .clkr.hw.init = &(const struct clk_init_data) { 4751c9efb0bSTaniya Das .name = "gcc_aggre_noc_ecpri_dma_clk_src", 4761c9efb0bSTaniya Das .parent_data = gcc_parent_data_4, 4771c9efb0bSTaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_4), 4781c9efb0bSTaniya Das .ops = &clk_rcg2_ops, 4791c9efb0bSTaniya Das }, 4801c9efb0bSTaniya Das }; 4811c9efb0bSTaniya Das 4821c9efb0bSTaniya Das static const struct freq_tbl ftbl_gcc_aggre_noc_ecpri_gsi_clk_src[] = { 4831c9efb0bSTaniya Das F(250000000, P_GCC_GPLL2_OUT_MAIN, 4, 0, 0), 4841c9efb0bSTaniya Das F(300000000, P_GCC_GPLL0_OUT_MAIN, 2, 0, 0), 4851c9efb0bSTaniya Das { } 4861c9efb0bSTaniya Das }; 4871c9efb0bSTaniya Das 4881c9efb0bSTaniya Das static struct clk_rcg2 gcc_aggre_noc_ecpri_gsi_clk_src = { 4891c9efb0bSTaniya Das .cmd_rcgr = 0x92038, 4901c9efb0bSTaniya Das .mnd_width = 0, 4911c9efb0bSTaniya Das .hid_width = 5, 4921c9efb0bSTaniya Das .parent_map = gcc_parent_map_5, 4931c9efb0bSTaniya Das .freq_tbl = ftbl_gcc_aggre_noc_ecpri_gsi_clk_src, 4941c9efb0bSTaniya Das .clkr.hw.init = &(const struct clk_init_data) { 4951c9efb0bSTaniya Das .name = "gcc_aggre_noc_ecpri_gsi_clk_src", 4961c9efb0bSTaniya Das .parent_data = gcc_parent_data_5, 4971c9efb0bSTaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_5), 4981c9efb0bSTaniya Das .ops = &clk_rcg2_ops, 4991c9efb0bSTaniya Das }, 5001c9efb0bSTaniya Das }; 5011c9efb0bSTaniya Das 5021c9efb0bSTaniya Das static const struct freq_tbl ftbl_gcc_gp1_clk_src[] = { 5031c9efb0bSTaniya Das F(200000000, P_GCC_GPLL0_OUT_MAIN, 3, 0, 0), 5041c9efb0bSTaniya Das { } 5051c9efb0bSTaniya Das }; 5061c9efb0bSTaniya Das 5071c9efb0bSTaniya Das static struct clk_rcg2 gcc_gp1_clk_src = { 5081c9efb0bSTaniya Das .cmd_rcgr = 0x74004, 5091c9efb0bSTaniya Das .mnd_width = 16, 5101c9efb0bSTaniya Das .hid_width = 5, 5111c9efb0bSTaniya Das .parent_map = gcc_parent_map_1, 5121c9efb0bSTaniya Das .freq_tbl = ftbl_gcc_gp1_clk_src, 5131c9efb0bSTaniya Das .clkr.hw.init = &(const struct clk_init_data) { 5141c9efb0bSTaniya Das .name = "gcc_gp1_clk_src", 5151c9efb0bSTaniya Das .parent_data = gcc_parent_data_1, 5161c9efb0bSTaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_1), 5171c9efb0bSTaniya Das .ops = &clk_rcg2_ops, 5181c9efb0bSTaniya Das }, 5191c9efb0bSTaniya Das }; 5201c9efb0bSTaniya Das 5211c9efb0bSTaniya Das static struct clk_rcg2 gcc_gp2_clk_src = { 5221c9efb0bSTaniya Das .cmd_rcgr = 0x75004, 5231c9efb0bSTaniya Das .mnd_width = 16, 5241c9efb0bSTaniya Das .hid_width = 5, 5251c9efb0bSTaniya Das .parent_map = gcc_parent_map_1, 5261c9efb0bSTaniya Das .freq_tbl = ftbl_gcc_gp1_clk_src, 5271c9efb0bSTaniya Das .clkr.hw.init = &(const struct clk_init_data) { 5281c9efb0bSTaniya Das .name = "gcc_gp2_clk_src", 5291c9efb0bSTaniya Das .parent_data = gcc_parent_data_1, 5301c9efb0bSTaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_1), 5311c9efb0bSTaniya Das .ops = &clk_rcg2_ops, 5321c9efb0bSTaniya Das }, 5331c9efb0bSTaniya Das }; 5341c9efb0bSTaniya Das 5351c9efb0bSTaniya Das static struct clk_rcg2 gcc_gp3_clk_src = { 5361c9efb0bSTaniya Das .cmd_rcgr = 0x76004, 5371c9efb0bSTaniya Das .mnd_width = 16, 5381c9efb0bSTaniya Das .hid_width = 5, 5391c9efb0bSTaniya Das .parent_map = gcc_parent_map_1, 5401c9efb0bSTaniya Das .freq_tbl = ftbl_gcc_gp1_clk_src, 5411c9efb0bSTaniya Das .clkr.hw.init = &(const struct clk_init_data) { 5421c9efb0bSTaniya Das .name = "gcc_gp3_clk_src", 5431c9efb0bSTaniya Das .parent_data = gcc_parent_data_1, 5441c9efb0bSTaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_1), 5451c9efb0bSTaniya Das .ops = &clk_rcg2_ops, 5461c9efb0bSTaniya Das }, 5471c9efb0bSTaniya Das }; 5481c9efb0bSTaniya Das 5491c9efb0bSTaniya Das static const struct freq_tbl ftbl_gcc_pcie_0_aux_clk_src[] = { 5501c9efb0bSTaniya Das F(19200000, P_BI_TCXO, 1, 0, 0), 5511c9efb0bSTaniya Das { } 5521c9efb0bSTaniya Das }; 5531c9efb0bSTaniya Das 5541c9efb0bSTaniya Das static struct clk_rcg2 gcc_pcie_0_aux_clk_src = { 5551c9efb0bSTaniya Das .cmd_rcgr = 0x9d068, 5561c9efb0bSTaniya Das .mnd_width = 16, 5571c9efb0bSTaniya Das .hid_width = 5, 5581c9efb0bSTaniya Das .parent_map = gcc_parent_map_3, 5591c9efb0bSTaniya Das .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src, 5601c9efb0bSTaniya Das .clkr.hw.init = &(const struct clk_init_data) { 5611c9efb0bSTaniya Das .name = "gcc_pcie_0_aux_clk_src", 5621c9efb0bSTaniya Das .parent_data = gcc_parent_data_3, 5631c9efb0bSTaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_3), 5641c9efb0bSTaniya Das .ops = &clk_rcg2_ops, 5651c9efb0bSTaniya Das }, 5661c9efb0bSTaniya Das }; 5671c9efb0bSTaniya Das 5681c9efb0bSTaniya Das static const struct freq_tbl ftbl_gcc_pcie_0_phy_rchng_clk_src[] = { 5691c9efb0bSTaniya Das F(19200000, P_BI_TCXO, 1, 0, 0), 5701c9efb0bSTaniya Das F(100000000, P_GCC_GPLL0_OUT_EVEN, 3, 0, 0), 5711c9efb0bSTaniya Das { } 5721c9efb0bSTaniya Das }; 5731c9efb0bSTaniya Das 5741c9efb0bSTaniya Das static struct clk_rcg2 gcc_pcie_0_phy_rchng_clk_src = { 5751c9efb0bSTaniya Das .cmd_rcgr = 0x9d04c, 5761c9efb0bSTaniya Das .mnd_width = 0, 5771c9efb0bSTaniya Das .hid_width = 5, 5781c9efb0bSTaniya Das .parent_map = gcc_parent_map_0, 5791c9efb0bSTaniya Das .freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src, 5801c9efb0bSTaniya Das .clkr.hw.init = &(const struct clk_init_data) { 5811c9efb0bSTaniya Das .name = "gcc_pcie_0_phy_rchng_clk_src", 5821c9efb0bSTaniya Das .parent_data = gcc_parent_data_0, 5831c9efb0bSTaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 5841c9efb0bSTaniya Das .ops = &clk_rcg2_ops, 5851c9efb0bSTaniya Das }, 5861c9efb0bSTaniya Das }; 5871c9efb0bSTaniya Das 5881c9efb0bSTaniya Das static const struct freq_tbl ftbl_gcc_pdm2_clk_src[] = { 5891c9efb0bSTaniya Das F(60000000, P_GCC_GPLL0_OUT_MAIN, 10, 0, 0), 5901c9efb0bSTaniya Das { } 5911c9efb0bSTaniya Das }; 5921c9efb0bSTaniya Das 5931c9efb0bSTaniya Das static struct clk_rcg2 gcc_pdm2_clk_src = { 5941c9efb0bSTaniya Das .cmd_rcgr = 0x43010, 5951c9efb0bSTaniya Das .mnd_width = 0, 5961c9efb0bSTaniya Das .hid_width = 5, 5971c9efb0bSTaniya Das .parent_map = gcc_parent_map_0, 5981c9efb0bSTaniya Das .freq_tbl = ftbl_gcc_pdm2_clk_src, 5991c9efb0bSTaniya Das .clkr.hw.init = &(const struct clk_init_data) { 6001c9efb0bSTaniya Das .name = "gcc_pdm2_clk_src", 6011c9efb0bSTaniya Das .parent_data = gcc_parent_data_0, 6021c9efb0bSTaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 6031c9efb0bSTaniya Das .ops = &clk_rcg2_ops, 6041c9efb0bSTaniya Das }, 6051c9efb0bSTaniya Das }; 6061c9efb0bSTaniya Das 6071c9efb0bSTaniya Das static const struct freq_tbl ftbl_gcc_qupv3_wrap0_s0_clk_src[] = { 6081c9efb0bSTaniya Das F(7372800, P_GCC_GPLL0_OUT_EVEN, 1, 384, 15625), 6091c9efb0bSTaniya Das F(14745600, P_GCC_GPLL0_OUT_EVEN, 1, 768, 15625), 6101c9efb0bSTaniya Das F(19200000, P_BI_TCXO, 1, 0, 0), 6111c9efb0bSTaniya Das F(29491200, P_GCC_GPLL0_OUT_EVEN, 1, 1536, 15625), 6121c9efb0bSTaniya Das F(32000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 75), 6131c9efb0bSTaniya Das F(48000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 25), 6141c9efb0bSTaniya Das F(64000000, P_GCC_GPLL0_OUT_EVEN, 1, 16, 75), 6151c9efb0bSTaniya Das F(80000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 15), 6161c9efb0bSTaniya Das F(96000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 25), 6171c9efb0bSTaniya Das F(100000000, P_GCC_GPLL0_OUT_MAIN, 6, 0, 0), 6181c9efb0bSTaniya Das { } 6191c9efb0bSTaniya Das }; 6201c9efb0bSTaniya Das 6211c9efb0bSTaniya Das static struct clk_init_data gcc_qupv3_wrap0_s0_clk_src_init = { 6221c9efb0bSTaniya Das .name = "gcc_qupv3_wrap0_s0_clk_src", 6231c9efb0bSTaniya Das .parent_data = gcc_parent_data_0, 6241c9efb0bSTaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 6251c9efb0bSTaniya Das .ops = &clk_rcg2_ops, 6261c9efb0bSTaniya Das }; 6271c9efb0bSTaniya Das 6281c9efb0bSTaniya Das static struct clk_rcg2 gcc_qupv3_wrap0_s0_clk_src = { 6291c9efb0bSTaniya Das .cmd_rcgr = 0x27154, 6301c9efb0bSTaniya Das .mnd_width = 16, 6311c9efb0bSTaniya Das .hid_width = 5, 6321c9efb0bSTaniya Das .parent_map = gcc_parent_map_0, 6331c9efb0bSTaniya Das .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src, 6341c9efb0bSTaniya Das .clkr.hw.init = &gcc_qupv3_wrap0_s0_clk_src_init, 6351c9efb0bSTaniya Das }; 6361c9efb0bSTaniya Das 6371c9efb0bSTaniya Das static struct clk_init_data gcc_qupv3_wrap0_s1_clk_src_init = { 6381c9efb0bSTaniya Das .name = "gcc_qupv3_wrap0_s1_clk_src", 6391c9efb0bSTaniya Das .parent_data = gcc_parent_data_0, 6401c9efb0bSTaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 6411c9efb0bSTaniya Das .ops = &clk_rcg2_ops, 6421c9efb0bSTaniya Das }; 6431c9efb0bSTaniya Das 6441c9efb0bSTaniya Das static struct clk_rcg2 gcc_qupv3_wrap0_s1_clk_src = { 6451c9efb0bSTaniya Das .cmd_rcgr = 0x27288, 6461c9efb0bSTaniya Das .mnd_width = 16, 6471c9efb0bSTaniya Das .hid_width = 5, 6481c9efb0bSTaniya Das .parent_map = gcc_parent_map_0, 6491c9efb0bSTaniya Das .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src, 6501c9efb0bSTaniya Das .clkr.hw.init = &gcc_qupv3_wrap0_s1_clk_src_init, 6511c9efb0bSTaniya Das }; 6521c9efb0bSTaniya Das 6531c9efb0bSTaniya Das static struct clk_init_data gcc_qupv3_wrap0_s2_clk_src_init = { 6541c9efb0bSTaniya Das .name = "gcc_qupv3_wrap0_s2_clk_src", 6551c9efb0bSTaniya Das .parent_data = gcc_parent_data_0, 6561c9efb0bSTaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 6571c9efb0bSTaniya Das .ops = &clk_rcg2_ops, 6581c9efb0bSTaniya Das }; 6591c9efb0bSTaniya Das 6601c9efb0bSTaniya Das static struct clk_rcg2 gcc_qupv3_wrap0_s2_clk_src = { 6611c9efb0bSTaniya Das .cmd_rcgr = 0x273bc, 6621c9efb0bSTaniya Das .mnd_width = 16, 6631c9efb0bSTaniya Das .hid_width = 5, 6641c9efb0bSTaniya Das .parent_map = gcc_parent_map_0, 6651c9efb0bSTaniya Das .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src, 6661c9efb0bSTaniya Das .clkr.hw.init = &gcc_qupv3_wrap0_s2_clk_src_init, 6671c9efb0bSTaniya Das }; 6681c9efb0bSTaniya Das 6691c9efb0bSTaniya Das static struct clk_init_data gcc_qupv3_wrap0_s3_clk_src_init = { 6701c9efb0bSTaniya Das .name = "gcc_qupv3_wrap0_s3_clk_src", 6711c9efb0bSTaniya Das .parent_data = gcc_parent_data_0, 6721c9efb0bSTaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 6731c9efb0bSTaniya Das .ops = &clk_rcg2_ops, 6741c9efb0bSTaniya Das }; 6751c9efb0bSTaniya Das 6761c9efb0bSTaniya Das static struct clk_rcg2 gcc_qupv3_wrap0_s3_clk_src = { 6771c9efb0bSTaniya Das .cmd_rcgr = 0x274f0, 6781c9efb0bSTaniya Das .mnd_width = 16, 6791c9efb0bSTaniya Das .hid_width = 5, 6801c9efb0bSTaniya Das .parent_map = gcc_parent_map_0, 6811c9efb0bSTaniya Das .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src, 6821c9efb0bSTaniya Das .clkr.hw.init = &gcc_qupv3_wrap0_s3_clk_src_init, 6831c9efb0bSTaniya Das }; 6841c9efb0bSTaniya Das 6851c9efb0bSTaniya Das static struct clk_init_data gcc_qupv3_wrap0_s4_clk_src_init = { 6861c9efb0bSTaniya Das .name = "gcc_qupv3_wrap0_s4_clk_src", 6871c9efb0bSTaniya Das .parent_data = gcc_parent_data_0, 6881c9efb0bSTaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 6891c9efb0bSTaniya Das .ops = &clk_rcg2_ops, 6901c9efb0bSTaniya Das }; 6911c9efb0bSTaniya Das 6921c9efb0bSTaniya Das static struct clk_rcg2 gcc_qupv3_wrap0_s4_clk_src = { 6931c9efb0bSTaniya Das .cmd_rcgr = 0x27624, 6941c9efb0bSTaniya Das .mnd_width = 16, 6951c9efb0bSTaniya Das .hid_width = 5, 6961c9efb0bSTaniya Das .parent_map = gcc_parent_map_0, 6971c9efb0bSTaniya Das .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src, 6981c9efb0bSTaniya Das .clkr.hw.init = &gcc_qupv3_wrap0_s4_clk_src_init, 6991c9efb0bSTaniya Das }; 7001c9efb0bSTaniya Das 7011c9efb0bSTaniya Das static const struct freq_tbl ftbl_gcc_qupv3_wrap0_s5_clk_src[] = { 7021c9efb0bSTaniya Das F(100000000, P_GCC_GPLL0_OUT_MAIN, 6, 0, 0), 7031c9efb0bSTaniya Das { } 7041c9efb0bSTaniya Das }; 7051c9efb0bSTaniya Das 7061c9efb0bSTaniya Das static struct clk_init_data gcc_qupv3_wrap0_s5_clk_src_init = { 7071c9efb0bSTaniya Das .name = "gcc_qupv3_wrap0_s5_clk_src", 7081c9efb0bSTaniya Das .parent_data = gcc_parent_data_0, 7091c9efb0bSTaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 7101c9efb0bSTaniya Das .ops = &clk_rcg2_ops, 7111c9efb0bSTaniya Das }; 7121c9efb0bSTaniya Das 7131c9efb0bSTaniya Das static struct clk_rcg2 gcc_qupv3_wrap0_s5_clk_src = { 7141c9efb0bSTaniya Das .cmd_rcgr = 0x27758, 7151c9efb0bSTaniya Das .mnd_width = 16, 7161c9efb0bSTaniya Das .hid_width = 5, 7171c9efb0bSTaniya Das .parent_map = gcc_parent_map_0, 7181c9efb0bSTaniya Das .freq_tbl = ftbl_gcc_qupv3_wrap0_s5_clk_src, 7191c9efb0bSTaniya Das .clkr.hw.init = &gcc_qupv3_wrap0_s5_clk_src_init, 7201c9efb0bSTaniya Das }; 7211c9efb0bSTaniya Das 7221c9efb0bSTaniya Das static struct clk_init_data gcc_qupv3_wrap0_s6_clk_src_init = { 7231c9efb0bSTaniya Das .name = "gcc_qupv3_wrap0_s6_clk_src", 7241c9efb0bSTaniya Das .parent_data = gcc_parent_data_0, 7251c9efb0bSTaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 7261c9efb0bSTaniya Das .ops = &clk_rcg2_ops, 7271c9efb0bSTaniya Das }; 7281c9efb0bSTaniya Das 7291c9efb0bSTaniya Das static struct clk_rcg2 gcc_qupv3_wrap0_s6_clk_src = { 7301c9efb0bSTaniya Das .cmd_rcgr = 0x2788c, 7311c9efb0bSTaniya Das .mnd_width = 16, 7321c9efb0bSTaniya Das .hid_width = 5, 7331c9efb0bSTaniya Das .parent_map = gcc_parent_map_0, 7341c9efb0bSTaniya Das .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src, 7351c9efb0bSTaniya Das .clkr.hw.init = &gcc_qupv3_wrap0_s6_clk_src_init, 7361c9efb0bSTaniya Das }; 7371c9efb0bSTaniya Das 7381c9efb0bSTaniya Das static struct clk_init_data gcc_qupv3_wrap0_s7_clk_src_init = { 7391c9efb0bSTaniya Das .name = "gcc_qupv3_wrap0_s7_clk_src", 7401c9efb0bSTaniya Das .parent_data = gcc_parent_data_0, 7411c9efb0bSTaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 7421c9efb0bSTaniya Das .ops = &clk_rcg2_ops, 7431c9efb0bSTaniya Das }; 7441c9efb0bSTaniya Das 7451c9efb0bSTaniya Das static struct clk_rcg2 gcc_qupv3_wrap0_s7_clk_src = { 7461c9efb0bSTaniya Das .cmd_rcgr = 0x279c0, 7471c9efb0bSTaniya Das .mnd_width = 16, 7481c9efb0bSTaniya Das .hid_width = 5, 7491c9efb0bSTaniya Das .parent_map = gcc_parent_map_0, 7501c9efb0bSTaniya Das .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src, 7511c9efb0bSTaniya Das .clkr.hw.init = &gcc_qupv3_wrap0_s7_clk_src_init, 7521c9efb0bSTaniya Das }; 7531c9efb0bSTaniya Das 7541c9efb0bSTaniya Das static struct clk_init_data gcc_qupv3_wrap1_s0_clk_src_init = { 7551c9efb0bSTaniya Das .name = "gcc_qupv3_wrap1_s0_clk_src", 7561c9efb0bSTaniya Das .parent_data = gcc_parent_data_0, 7571c9efb0bSTaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 7581c9efb0bSTaniya Das .ops = &clk_rcg2_ops, 7591c9efb0bSTaniya Das }; 7601c9efb0bSTaniya Das 7611c9efb0bSTaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s0_clk_src = { 7621c9efb0bSTaniya Das .cmd_rcgr = 0x28154, 7631c9efb0bSTaniya Das .mnd_width = 16, 7641c9efb0bSTaniya Das .hid_width = 5, 7651c9efb0bSTaniya Das .parent_map = gcc_parent_map_0, 7661c9efb0bSTaniya Das .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src, 7671c9efb0bSTaniya Das .clkr.hw.init = &gcc_qupv3_wrap1_s0_clk_src_init, 7681c9efb0bSTaniya Das }; 7691c9efb0bSTaniya Das 7701c9efb0bSTaniya Das static struct clk_init_data gcc_qupv3_wrap1_s1_clk_src_init = { 7711c9efb0bSTaniya Das .name = "gcc_qupv3_wrap1_s1_clk_src", 7721c9efb0bSTaniya Das .parent_data = gcc_parent_data_0, 7731c9efb0bSTaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 7741c9efb0bSTaniya Das .ops = &clk_rcg2_ops, 7751c9efb0bSTaniya Das }; 7761c9efb0bSTaniya Das 7771c9efb0bSTaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s1_clk_src = { 7781c9efb0bSTaniya Das .cmd_rcgr = 0x28288, 7791c9efb0bSTaniya Das .mnd_width = 16, 7801c9efb0bSTaniya Das .hid_width = 5, 7811c9efb0bSTaniya Das .parent_map = gcc_parent_map_0, 7821c9efb0bSTaniya Das .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src, 7831c9efb0bSTaniya Das .clkr.hw.init = &gcc_qupv3_wrap1_s1_clk_src_init, 7841c9efb0bSTaniya Das }; 7851c9efb0bSTaniya Das 7861c9efb0bSTaniya Das static struct clk_init_data gcc_qupv3_wrap1_s2_clk_src_init = { 7871c9efb0bSTaniya Das .name = "gcc_qupv3_wrap1_s2_clk_src", 7881c9efb0bSTaniya Das .parent_data = gcc_parent_data_0, 7891c9efb0bSTaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 7901c9efb0bSTaniya Das .ops = &clk_rcg2_ops, 7911c9efb0bSTaniya Das }; 7921c9efb0bSTaniya Das 7931c9efb0bSTaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s2_clk_src = { 7941c9efb0bSTaniya Das .cmd_rcgr = 0x283bc, 7951c9efb0bSTaniya Das .mnd_width = 16, 7961c9efb0bSTaniya Das .hid_width = 5, 7971c9efb0bSTaniya Das .parent_map = gcc_parent_map_0, 7981c9efb0bSTaniya Das .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src, 7991c9efb0bSTaniya Das .clkr.hw.init = &gcc_qupv3_wrap1_s2_clk_src_init, 8001c9efb0bSTaniya Das }; 8011c9efb0bSTaniya Das 8021c9efb0bSTaniya Das static struct clk_init_data gcc_qupv3_wrap1_s3_clk_src_init = { 8031c9efb0bSTaniya Das .name = "gcc_qupv3_wrap1_s3_clk_src", 8041c9efb0bSTaniya Das .parent_data = gcc_parent_data_0, 8051c9efb0bSTaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 8061c9efb0bSTaniya Das .ops = &clk_rcg2_ops, 8071c9efb0bSTaniya Das }; 8081c9efb0bSTaniya Das 8091c9efb0bSTaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s3_clk_src = { 8101c9efb0bSTaniya Das .cmd_rcgr = 0x284f0, 8111c9efb0bSTaniya Das .mnd_width = 16, 8121c9efb0bSTaniya Das .hid_width = 5, 8131c9efb0bSTaniya Das .parent_map = gcc_parent_map_0, 8141c9efb0bSTaniya Das .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src, 8151c9efb0bSTaniya Das .clkr.hw.init = &gcc_qupv3_wrap1_s3_clk_src_init, 8161c9efb0bSTaniya Das }; 8171c9efb0bSTaniya Das 8181c9efb0bSTaniya Das static struct clk_init_data gcc_qupv3_wrap1_s4_clk_src_init = { 8191c9efb0bSTaniya Das .name = "gcc_qupv3_wrap1_s4_clk_src", 8201c9efb0bSTaniya Das .parent_data = gcc_parent_data_0, 8211c9efb0bSTaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 8221c9efb0bSTaniya Das .ops = &clk_rcg2_ops, 8231c9efb0bSTaniya Das }; 8241c9efb0bSTaniya Das 8251c9efb0bSTaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s4_clk_src = { 8261c9efb0bSTaniya Das .cmd_rcgr = 0x28624, 8271c9efb0bSTaniya Das .mnd_width = 16, 8281c9efb0bSTaniya Das .hid_width = 5, 8291c9efb0bSTaniya Das .parent_map = gcc_parent_map_0, 8301c9efb0bSTaniya Das .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src, 8311c9efb0bSTaniya Das .clkr.hw.init = &gcc_qupv3_wrap1_s4_clk_src_init, 8321c9efb0bSTaniya Das }; 8331c9efb0bSTaniya Das 8341c9efb0bSTaniya Das static struct clk_init_data gcc_qupv3_wrap1_s5_clk_src_init = { 8351c9efb0bSTaniya Das .name = "gcc_qupv3_wrap1_s5_clk_src", 8361c9efb0bSTaniya Das .parent_data = gcc_parent_data_0, 8371c9efb0bSTaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 8381c9efb0bSTaniya Das .ops = &clk_rcg2_ops, 8391c9efb0bSTaniya Das }; 8401c9efb0bSTaniya Das 8411c9efb0bSTaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s5_clk_src = { 8421c9efb0bSTaniya Das .cmd_rcgr = 0x28758, 8431c9efb0bSTaniya Das .mnd_width = 16, 8441c9efb0bSTaniya Das .hid_width = 5, 8451c9efb0bSTaniya Das .parent_map = gcc_parent_map_0, 8461c9efb0bSTaniya Das .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src, 8471c9efb0bSTaniya Das .clkr.hw.init = &gcc_qupv3_wrap1_s5_clk_src_init, 8481c9efb0bSTaniya Das }; 8491c9efb0bSTaniya Das 8501c9efb0bSTaniya Das static struct clk_init_data gcc_qupv3_wrap1_s6_clk_src_init = { 8511c9efb0bSTaniya Das .name = "gcc_qupv3_wrap1_s6_clk_src", 8521c9efb0bSTaniya Das .parent_data = gcc_parent_data_0, 8531c9efb0bSTaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 8541c9efb0bSTaniya Das .ops = &clk_rcg2_ops, 8551c9efb0bSTaniya Das }; 8561c9efb0bSTaniya Das 8571c9efb0bSTaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s6_clk_src = { 8581c9efb0bSTaniya Das .cmd_rcgr = 0x2888c, 8591c9efb0bSTaniya Das .mnd_width = 16, 8601c9efb0bSTaniya Das .hid_width = 5, 8611c9efb0bSTaniya Das .parent_map = gcc_parent_map_0, 8621c9efb0bSTaniya Das .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src, 8631c9efb0bSTaniya Das .clkr.hw.init = &gcc_qupv3_wrap1_s6_clk_src_init, 8641c9efb0bSTaniya Das }; 8651c9efb0bSTaniya Das 8661c9efb0bSTaniya Das static struct clk_init_data gcc_qupv3_wrap1_s7_clk_src_init = { 8671c9efb0bSTaniya Das .name = "gcc_qupv3_wrap1_s7_clk_src", 8681c9efb0bSTaniya Das .parent_data = gcc_parent_data_0, 8691c9efb0bSTaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 8701c9efb0bSTaniya Das .ops = &clk_rcg2_ops, 8711c9efb0bSTaniya Das }; 8721c9efb0bSTaniya Das 8731c9efb0bSTaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s7_clk_src = { 8741c9efb0bSTaniya Das .cmd_rcgr = 0x289c0, 8751c9efb0bSTaniya Das .mnd_width = 16, 8761c9efb0bSTaniya Das .hid_width = 5, 8771c9efb0bSTaniya Das .parent_map = gcc_parent_map_0, 8781c9efb0bSTaniya Das .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src, 8791c9efb0bSTaniya Das .clkr.hw.init = &gcc_qupv3_wrap1_s7_clk_src_init, 8801c9efb0bSTaniya Das }; 8811c9efb0bSTaniya Das 8821c9efb0bSTaniya Das static const struct freq_tbl ftbl_gcc_sdcc5_apps_clk_src[] = { 8831c9efb0bSTaniya Das F(144000, P_BI_TCXO, 16, 3, 25), 8841c9efb0bSTaniya Das F(400000, P_BI_TCXO, 12, 1, 4), 8851c9efb0bSTaniya Das F(19200000, P_BI_TCXO, 1, 0, 0), 8861c9efb0bSTaniya Das F(20000000, P_GCC_GPLL0_OUT_MAIN, 10, 1, 3), 8871c9efb0bSTaniya Das F(25000000, P_GCC_GPLL0_OUT_MAIN, 12, 1, 2), 8881c9efb0bSTaniya Das F(50000000, P_GCC_GPLL0_OUT_MAIN, 12, 0, 0), 8891c9efb0bSTaniya Das F(100000000, P_GCC_GPLL0_OUT_MAIN, 6, 0, 0), 8901c9efb0bSTaniya Das F(192000000, P_GCC_GPLL8_OUT_MAIN, 4, 0, 0), 8911c9efb0bSTaniya Das F(300000000, P_GCC_GPLL0_OUT_MAIN, 2, 0, 0), 8921c9efb0bSTaniya Das F(384000000, P_GCC_GPLL8_OUT_MAIN, 2, 0, 0), 8931c9efb0bSTaniya Das { } 8941c9efb0bSTaniya Das }; 8951c9efb0bSTaniya Das 8961c9efb0bSTaniya Das static struct clk_rcg2 gcc_sdcc5_apps_clk_src = { 8971c9efb0bSTaniya Das .cmd_rcgr = 0x3b034, 8981c9efb0bSTaniya Das .mnd_width = 8, 8991c9efb0bSTaniya Das .hid_width = 5, 9001c9efb0bSTaniya Das .parent_map = gcc_parent_map_8, 9011c9efb0bSTaniya Das .freq_tbl = ftbl_gcc_sdcc5_apps_clk_src, 9021c9efb0bSTaniya Das .clkr.hw.init = &(const struct clk_init_data) { 9031c9efb0bSTaniya Das .name = "gcc_sdcc5_apps_clk_src", 9041c9efb0bSTaniya Das .parent_data = gcc_parent_data_8, 9051c9efb0bSTaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_8), 9061c9efb0bSTaniya Das .ops = &clk_rcg2_ops, 9071c9efb0bSTaniya Das }, 9081c9efb0bSTaniya Das }; 9091c9efb0bSTaniya Das 9101c9efb0bSTaniya Das static const struct freq_tbl ftbl_gcc_sdcc5_ice_core_clk_src[] = { 9111c9efb0bSTaniya Das F(300000000, P_GCC_GPLL0_OUT_MAIN, 2, 0, 0), 9121c9efb0bSTaniya Das { } 9131c9efb0bSTaniya Das }; 9141c9efb0bSTaniya Das 9151c9efb0bSTaniya Das static struct clk_rcg2 gcc_sdcc5_ice_core_clk_src = { 9161c9efb0bSTaniya Das .cmd_rcgr = 0x3b01c, 9171c9efb0bSTaniya Das .mnd_width = 0, 9181c9efb0bSTaniya Das .hid_width = 5, 9191c9efb0bSTaniya Das .parent_map = gcc_parent_map_2, 9201c9efb0bSTaniya Das .freq_tbl = ftbl_gcc_sdcc5_ice_core_clk_src, 9211c9efb0bSTaniya Das .clkr.hw.init = &(const struct clk_init_data) { 9221c9efb0bSTaniya Das .name = "gcc_sdcc5_ice_core_clk_src", 9231c9efb0bSTaniya Das .parent_data = gcc_parent_data_2, 9241c9efb0bSTaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_2), 9251c9efb0bSTaniya Das .ops = &clk_rcg2_ops, 9261c9efb0bSTaniya Das }, 9271c9efb0bSTaniya Das }; 9281c9efb0bSTaniya Das 9291c9efb0bSTaniya Das static struct clk_rcg2 gcc_sm_bus_xo_clk_src = { 9301c9efb0bSTaniya Das .cmd_rcgr = 0x5b00c, 9311c9efb0bSTaniya Das .mnd_width = 0, 9321c9efb0bSTaniya Das .hid_width = 5, 9331c9efb0bSTaniya Das .parent_map = gcc_parent_map_2, 9341c9efb0bSTaniya Das .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src, 9351c9efb0bSTaniya Das .clkr.hw.init = &(const struct clk_init_data) { 9361c9efb0bSTaniya Das .name = "gcc_sm_bus_xo_clk_src", 9371c9efb0bSTaniya Das .parent_data = gcc_parent_data_2, 9381c9efb0bSTaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_2), 9391c9efb0bSTaniya Das .ops = &clk_rcg2_ops, 9401c9efb0bSTaniya Das }, 9411c9efb0bSTaniya Das }; 9421c9efb0bSTaniya Das 9431c9efb0bSTaniya Das static const struct freq_tbl ftbl_gcc_tsc_clk_src[] = { 9441c9efb0bSTaniya Das F(500000000, P_GCC_GPLL7_OUT_MAIN, 2, 0, 0), 9451c9efb0bSTaniya Das { } 9461c9efb0bSTaniya Das }; 9471c9efb0bSTaniya Das 9481c9efb0bSTaniya Das static struct clk_rcg2 gcc_tsc_clk_src = { 9491c9efb0bSTaniya Das .cmd_rcgr = 0x57010, 9501c9efb0bSTaniya Das .mnd_width = 0, 9511c9efb0bSTaniya Das .hid_width = 5, 9521c9efb0bSTaniya Das .parent_map = gcc_parent_map_9, 9531c9efb0bSTaniya Das .freq_tbl = ftbl_gcc_tsc_clk_src, 9541c9efb0bSTaniya Das .clkr.hw.init = &(const struct clk_init_data) { 9551c9efb0bSTaniya Das .name = "gcc_tsc_clk_src", 9561c9efb0bSTaniya Das .parent_data = gcc_parent_data_9, 9571c9efb0bSTaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_9), 9581c9efb0bSTaniya Das .ops = &clk_rcg2_ops, 9591c9efb0bSTaniya Das }, 9601c9efb0bSTaniya Das }; 9611c9efb0bSTaniya Das 9621c9efb0bSTaniya Das static const struct freq_tbl ftbl_gcc_usb30_prim_master_clk_src[] = { 9631c9efb0bSTaniya Das F(200000000, P_GCC_GPLL0_OUT_MAIN, 3, 0, 0), 9641c9efb0bSTaniya Das F(240000000, P_GCC_GPLL0_OUT_MAIN, 2.5, 0, 0), 9651c9efb0bSTaniya Das { } 9661c9efb0bSTaniya Das }; 9671c9efb0bSTaniya Das 9681c9efb0bSTaniya Das static struct clk_rcg2 gcc_usb30_prim_master_clk_src = { 9691c9efb0bSTaniya Das .cmd_rcgr = 0x49028, 9701c9efb0bSTaniya Das .mnd_width = 8, 9711c9efb0bSTaniya Das .hid_width = 5, 9721c9efb0bSTaniya Das .parent_map = gcc_parent_map_0, 9731c9efb0bSTaniya Das .freq_tbl = ftbl_gcc_usb30_prim_master_clk_src, 9741c9efb0bSTaniya Das .clkr.hw.init = &(const struct clk_init_data) { 9751c9efb0bSTaniya Das .name = "gcc_usb30_prim_master_clk_src", 9761c9efb0bSTaniya Das .parent_data = gcc_parent_data_0, 9771c9efb0bSTaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 9781c9efb0bSTaniya Das .ops = &clk_rcg2_ops, 9791c9efb0bSTaniya Das }, 9801c9efb0bSTaniya Das }; 9811c9efb0bSTaniya Das 9821c9efb0bSTaniya Das static struct clk_rcg2 gcc_usb30_prim_mock_utmi_clk_src = { 9831c9efb0bSTaniya Das .cmd_rcgr = 0x49044, 9841c9efb0bSTaniya Das .mnd_width = 0, 9851c9efb0bSTaniya Das .hid_width = 5, 9861c9efb0bSTaniya Das .parent_map = gcc_parent_map_0, 9871c9efb0bSTaniya Das .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src, 9881c9efb0bSTaniya Das .clkr.hw.init = &(const struct clk_init_data) { 9891c9efb0bSTaniya Das .name = "gcc_usb30_prim_mock_utmi_clk_src", 9901c9efb0bSTaniya Das .parent_data = gcc_parent_data_0, 9911c9efb0bSTaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 9921c9efb0bSTaniya Das .ops = &clk_rcg2_ops, 9931c9efb0bSTaniya Das }, 9941c9efb0bSTaniya Das }; 9951c9efb0bSTaniya Das 9961c9efb0bSTaniya Das static struct clk_rcg2 gcc_usb3_prim_phy_aux_clk_src = { 9971c9efb0bSTaniya Das .cmd_rcgr = 0x49070, 9981c9efb0bSTaniya Das .mnd_width = 0, 9991c9efb0bSTaniya Das .hid_width = 5, 10001c9efb0bSTaniya Das .parent_map = gcc_parent_map_3, 10011c9efb0bSTaniya Das .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src, 10021c9efb0bSTaniya Das .clkr.hw.init = &(const struct clk_init_data) { 10031c9efb0bSTaniya Das .name = "gcc_usb3_prim_phy_aux_clk_src", 10041c9efb0bSTaniya Das .parent_data = gcc_parent_data_3, 10051c9efb0bSTaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_3), 10061c9efb0bSTaniya Das .ops = &clk_rcg2_ops, 10071c9efb0bSTaniya Das }, 10081c9efb0bSTaniya Das }; 10091c9efb0bSTaniya Das 10101c9efb0bSTaniya Das static struct clk_regmap_div gcc_usb30_prim_mock_utmi_postdiv_clk_src = { 10111c9efb0bSTaniya Das .reg = 0x4905c, 10121c9efb0bSTaniya Das .shift = 0, 10131c9efb0bSTaniya Das .width = 4, 10141c9efb0bSTaniya Das .clkr.hw.init = &(const struct clk_init_data) { 10151c9efb0bSTaniya Das .name = "gcc_usb30_prim_mock_utmi_postdiv_clk_src", 10161c9efb0bSTaniya Das .parent_hws = (const struct clk_hw*[]) { 10171c9efb0bSTaniya Das &gcc_usb30_prim_mock_utmi_clk_src.clkr.hw, 10181c9efb0bSTaniya Das }, 10191c9efb0bSTaniya Das .num_parents = 1, 10201c9efb0bSTaniya Das .flags = CLK_SET_RATE_PARENT, 10211c9efb0bSTaniya Das .ops = &clk_regmap_div_ro_ops, 10221c9efb0bSTaniya Das }, 10231c9efb0bSTaniya Das }; 10241c9efb0bSTaniya Das 10251c9efb0bSTaniya Das static struct clk_branch gcc_aggre_noc_ecpri_dma_clk = { 10261c9efb0bSTaniya Das .halt_reg = 0x92008, 10271c9efb0bSTaniya Das .halt_check = BRANCH_HALT_VOTED, 10281c9efb0bSTaniya Das .hwcg_reg = 0x92008, 10291c9efb0bSTaniya Das .hwcg_bit = 1, 10301c9efb0bSTaniya Das .clkr = { 10311c9efb0bSTaniya Das .enable_reg = 0x92008, 10321c9efb0bSTaniya Das .enable_mask = BIT(0), 10331c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 10341c9efb0bSTaniya Das .name = "gcc_aggre_noc_ecpri_dma_clk", 10351c9efb0bSTaniya Das .parent_hws = (const struct clk_hw*[]) { 10361c9efb0bSTaniya Das &gcc_aggre_noc_ecpri_dma_clk_src.clkr.hw, 10371c9efb0bSTaniya Das }, 10381c9efb0bSTaniya Das .num_parents = 1, 10391c9efb0bSTaniya Das .flags = CLK_SET_RATE_PARENT, 10401c9efb0bSTaniya Das .ops = &clk_branch2_ops, 10411c9efb0bSTaniya Das }, 10421c9efb0bSTaniya Das }, 10431c9efb0bSTaniya Das }; 10441c9efb0bSTaniya Das 10451c9efb0bSTaniya Das static struct clk_branch gcc_aggre_noc_ecpri_gsi_clk = { 10461c9efb0bSTaniya Das .halt_reg = 0x9201c, 10471c9efb0bSTaniya Das .halt_check = BRANCH_HALT_VOTED, 10481c9efb0bSTaniya Das .hwcg_reg = 0x9201c, 10491c9efb0bSTaniya Das .hwcg_bit = 1, 10501c9efb0bSTaniya Das .clkr = { 10511c9efb0bSTaniya Das .enable_reg = 0x9201c, 10521c9efb0bSTaniya Das .enable_mask = BIT(0), 10531c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 10541c9efb0bSTaniya Das .name = "gcc_aggre_noc_ecpri_gsi_clk", 10551c9efb0bSTaniya Das .parent_hws = (const struct clk_hw*[]) { 10561c9efb0bSTaniya Das &gcc_aggre_noc_ecpri_gsi_clk_src.clkr.hw, 10571c9efb0bSTaniya Das }, 10581c9efb0bSTaniya Das .num_parents = 1, 10591c9efb0bSTaniya Das .flags = CLK_SET_RATE_PARENT, 10601c9efb0bSTaniya Das .ops = &clk_branch2_ops, 10611c9efb0bSTaniya Das }, 10621c9efb0bSTaniya Das }, 10631c9efb0bSTaniya Das }; 10641c9efb0bSTaniya Das 10651c9efb0bSTaniya Das static struct clk_branch gcc_boot_rom_ahb_clk = { 10661c9efb0bSTaniya Das .halt_reg = 0x48004, 10671c9efb0bSTaniya Das .halt_check = BRANCH_HALT_VOTED, 10681c9efb0bSTaniya Das .hwcg_reg = 0x48004, 10691c9efb0bSTaniya Das .hwcg_bit = 1, 10701c9efb0bSTaniya Das .clkr = { 10711c9efb0bSTaniya Das .enable_reg = 0x62000, 10721c9efb0bSTaniya Das .enable_mask = BIT(10), 10731c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 10741c9efb0bSTaniya Das .name = "gcc_boot_rom_ahb_clk", 10751c9efb0bSTaniya Das .ops = &clk_branch2_ops, 10761c9efb0bSTaniya Das }, 10771c9efb0bSTaniya Das }, 10781c9efb0bSTaniya Das }; 10791c9efb0bSTaniya Das 10801c9efb0bSTaniya Das static struct clk_branch gcc_cfg_noc_ecpri_cc_ahb_clk = { 10811c9efb0bSTaniya Das .halt_reg = 0x3e004, 10821c9efb0bSTaniya Das .halt_check = BRANCH_HALT_VOTED, 10831c9efb0bSTaniya Das .hwcg_reg = 0x3e004, 10841c9efb0bSTaniya Das .hwcg_bit = 1, 10851c9efb0bSTaniya Das .clkr = { 10861c9efb0bSTaniya Das .enable_reg = 0x3e004, 10871c9efb0bSTaniya Das .enable_mask = BIT(0), 10881c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 10891c9efb0bSTaniya Das .name = "gcc_cfg_noc_ecpri_cc_ahb_clk", 10901c9efb0bSTaniya Das .ops = &clk_branch2_ops, 10911c9efb0bSTaniya Das }, 10921c9efb0bSTaniya Das }, 10931c9efb0bSTaniya Das }; 10941c9efb0bSTaniya Das 10951c9efb0bSTaniya Das static struct clk_branch gcc_cfg_noc_usb3_prim_axi_clk = { 10961c9efb0bSTaniya Das .halt_reg = 0x8401c, 10971c9efb0bSTaniya Das .halt_check = BRANCH_HALT_VOTED, 10981c9efb0bSTaniya Das .hwcg_reg = 0x8401c, 10991c9efb0bSTaniya Das .hwcg_bit = 1, 11001c9efb0bSTaniya Das .clkr = { 11011c9efb0bSTaniya Das .enable_reg = 0x8401c, 11021c9efb0bSTaniya Das .enable_mask = BIT(0), 11031c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 11041c9efb0bSTaniya Das .name = "gcc_cfg_noc_usb3_prim_axi_clk", 11051c9efb0bSTaniya Das .parent_hws = (const struct clk_hw*[]) { 11061c9efb0bSTaniya Das &gcc_usb30_prim_master_clk_src.clkr.hw, 11071c9efb0bSTaniya Das }, 11081c9efb0bSTaniya Das .num_parents = 1, 11091c9efb0bSTaniya Das .flags = CLK_SET_RATE_PARENT, 11101c9efb0bSTaniya Das .ops = &clk_branch2_ops, 11111c9efb0bSTaniya Das }, 11121c9efb0bSTaniya Das }, 11131c9efb0bSTaniya Das }; 11141c9efb0bSTaniya Das 11151c9efb0bSTaniya Das static struct clk_branch gcc_ddrss_ecpri_dma_clk = { 11161c9efb0bSTaniya Das .halt_reg = 0x54030, 11171c9efb0bSTaniya Das .halt_check = BRANCH_HALT_VOTED, 11181c9efb0bSTaniya Das .hwcg_reg = 0x54030, 11191c9efb0bSTaniya Das .hwcg_bit = 1, 11201c9efb0bSTaniya Das .clkr = { 11211c9efb0bSTaniya Das .enable_reg = 0x54030, 11221c9efb0bSTaniya Das .enable_mask = BIT(0), 11231c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 11241c9efb0bSTaniya Das .name = "gcc_ddrss_ecpri_dma_clk", 11251c9efb0bSTaniya Das .parent_hws = (const struct clk_hw*[]) { 11261c9efb0bSTaniya Das &gcc_aggre_noc_ecpri_dma_clk_src.clkr.hw, 11271c9efb0bSTaniya Das }, 11281c9efb0bSTaniya Das .num_parents = 1, 11291c9efb0bSTaniya Das .flags = CLK_SET_RATE_PARENT, 11301c9efb0bSTaniya Das .ops = &clk_branch2_aon_ops, 11311c9efb0bSTaniya Das }, 11321c9efb0bSTaniya Das }, 11331c9efb0bSTaniya Das }; 11341c9efb0bSTaniya Das 1135089aad8cSImran Shaik static struct clk_branch gcc_ddrss_ecpri_gsi_clk = { 1136089aad8cSImran Shaik .halt_reg = 0x54298, 1137089aad8cSImran Shaik .halt_check = BRANCH_HALT_VOTED, 1138089aad8cSImran Shaik .hwcg_reg = 0x54298, 1139089aad8cSImran Shaik .hwcg_bit = 1, 1140089aad8cSImran Shaik .clkr = { 1141089aad8cSImran Shaik .enable_reg = 0x54298, 1142089aad8cSImran Shaik .enable_mask = BIT(0), 1143089aad8cSImran Shaik .hw.init = &(const struct clk_init_data) { 1144089aad8cSImran Shaik .name = "gcc_ddrss_ecpri_gsi_clk", 1145089aad8cSImran Shaik .parent_hws = (const struct clk_hw*[]) { 1146089aad8cSImran Shaik &gcc_aggre_noc_ecpri_gsi_clk_src.clkr.hw, 1147089aad8cSImran Shaik }, 1148089aad8cSImran Shaik .num_parents = 1, 1149089aad8cSImran Shaik .flags = CLK_SET_RATE_PARENT, 1150089aad8cSImran Shaik .ops = &clk_branch2_aon_ops, 1151089aad8cSImran Shaik }, 1152089aad8cSImran Shaik }, 1153089aad8cSImran Shaik }; 1154089aad8cSImran Shaik 11551c9efb0bSTaniya Das static struct clk_branch gcc_ecpri_ahb_clk = { 11561c9efb0bSTaniya Das .halt_reg = 0x3a008, 11571c9efb0bSTaniya Das .halt_check = BRANCH_HALT_VOTED, 11581c9efb0bSTaniya Das .hwcg_reg = 0x3a008, 11591c9efb0bSTaniya Das .hwcg_bit = 1, 11601c9efb0bSTaniya Das .clkr = { 11611c9efb0bSTaniya Das .enable_reg = 0x3a008, 11621c9efb0bSTaniya Das .enable_mask = BIT(0), 11631c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 11641c9efb0bSTaniya Das .name = "gcc_ecpri_ahb_clk", 11651c9efb0bSTaniya Das .ops = &clk_branch2_ops, 11661c9efb0bSTaniya Das }, 11671c9efb0bSTaniya Das }, 11681c9efb0bSTaniya Das }; 11691c9efb0bSTaniya Das 11701c9efb0bSTaniya Das static struct clk_branch gcc_ecpri_cc_gpll0_clk_src = { 11711c9efb0bSTaniya Das .halt_check = BRANCH_HALT_DELAY, 11721c9efb0bSTaniya Das .clkr = { 11731c9efb0bSTaniya Das .enable_reg = 0x62010, 11741c9efb0bSTaniya Das .enable_mask = BIT(0), 11751c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 11761c9efb0bSTaniya Das .name = "gcc_ecpri_cc_gpll0_clk_src", 11771c9efb0bSTaniya Das .parent_hws = (const struct clk_hw*[]) { 11781c9efb0bSTaniya Das &gcc_gpll0.clkr.hw, 11791c9efb0bSTaniya Das }, 11801c9efb0bSTaniya Das .num_parents = 1, 11811c9efb0bSTaniya Das .flags = CLK_SET_RATE_PARENT, 11821c9efb0bSTaniya Das .ops = &clk_branch2_ops, 11831c9efb0bSTaniya Das }, 11841c9efb0bSTaniya Das }, 11851c9efb0bSTaniya Das }; 11861c9efb0bSTaniya Das 11871c9efb0bSTaniya Das static struct clk_branch gcc_ecpri_cc_gpll1_even_clk_src = { 11881c9efb0bSTaniya Das .halt_check = BRANCH_HALT_DELAY, 11891c9efb0bSTaniya Das .clkr = { 11901c9efb0bSTaniya Das .enable_reg = 0x62010, 11911c9efb0bSTaniya Das .enable_mask = BIT(1), 11921c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 11931c9efb0bSTaniya Das .name = "gcc_ecpri_cc_gpll1_even_clk_src", 11941c9efb0bSTaniya Das .parent_hws = (const struct clk_hw*[]) { 11951c9efb0bSTaniya Das &gcc_gpll1_out_even.clkr.hw, 11961c9efb0bSTaniya Das }, 11971c9efb0bSTaniya Das .num_parents = 1, 11981c9efb0bSTaniya Das .flags = CLK_SET_RATE_PARENT, 11991c9efb0bSTaniya Das .ops = &clk_branch2_ops, 12001c9efb0bSTaniya Das }, 12011c9efb0bSTaniya Das }, 12021c9efb0bSTaniya Das }; 12031c9efb0bSTaniya Das 12041c9efb0bSTaniya Das static struct clk_branch gcc_ecpri_cc_gpll2_even_clk_src = { 12051c9efb0bSTaniya Das .halt_check = BRANCH_HALT_DELAY, 12061c9efb0bSTaniya Das .clkr = { 12071c9efb0bSTaniya Das .enable_reg = 0x62010, 12081c9efb0bSTaniya Das .enable_mask = BIT(2), 12091c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 12101c9efb0bSTaniya Das .name = "gcc_ecpri_cc_gpll2_even_clk_src", 12111c9efb0bSTaniya Das .parent_hws = (const struct clk_hw*[]) { 12121c9efb0bSTaniya Das &gcc_gpll2_out_even.clkr.hw, 12131c9efb0bSTaniya Das }, 12141c9efb0bSTaniya Das .num_parents = 1, 12151c9efb0bSTaniya Das .flags = CLK_SET_RATE_PARENT, 12161c9efb0bSTaniya Das .ops = &clk_branch2_ops, 12171c9efb0bSTaniya Das }, 12181c9efb0bSTaniya Das }, 12191c9efb0bSTaniya Das }; 12201c9efb0bSTaniya Das 12211c9efb0bSTaniya Das static struct clk_branch gcc_ecpri_cc_gpll3_clk_src = { 12221c9efb0bSTaniya Das .halt_check = BRANCH_HALT_DELAY, 12231c9efb0bSTaniya Das .clkr = { 12241c9efb0bSTaniya Das .enable_reg = 0x62010, 12251c9efb0bSTaniya Das .enable_mask = BIT(3), 12261c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 12271c9efb0bSTaniya Das .name = "gcc_ecpri_cc_gpll3_clk_src", 12281c9efb0bSTaniya Das .parent_hws = (const struct clk_hw*[]) { 12291c9efb0bSTaniya Das &gcc_gpll3.clkr.hw, 12301c9efb0bSTaniya Das }, 12311c9efb0bSTaniya Das .num_parents = 1, 12321c9efb0bSTaniya Das .flags = CLK_SET_RATE_PARENT, 12331c9efb0bSTaniya Das .ops = &clk_branch2_ops, 12341c9efb0bSTaniya Das }, 12351c9efb0bSTaniya Das }, 12361c9efb0bSTaniya Das }; 12371c9efb0bSTaniya Das 12381c9efb0bSTaniya Das static struct clk_branch gcc_ecpri_cc_gpll4_clk_src = { 12391c9efb0bSTaniya Das .halt_check = BRANCH_HALT_DELAY, 12401c9efb0bSTaniya Das .clkr = { 12411c9efb0bSTaniya Das .enable_reg = 0x62010, 12421c9efb0bSTaniya Das .enable_mask = BIT(4), 12431c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 12441c9efb0bSTaniya Das .name = "gcc_ecpri_cc_gpll4_clk_src", 12451c9efb0bSTaniya Das .parent_hws = (const struct clk_hw*[]) { 12461c9efb0bSTaniya Das &gcc_gpll4.clkr.hw, 12471c9efb0bSTaniya Das }, 12481c9efb0bSTaniya Das .num_parents = 1, 12491c9efb0bSTaniya Das .flags = CLK_SET_RATE_PARENT, 12501c9efb0bSTaniya Das .ops = &clk_branch2_ops, 12511c9efb0bSTaniya Das }, 12521c9efb0bSTaniya Das }, 12531c9efb0bSTaniya Das }; 12541c9efb0bSTaniya Das 12551c9efb0bSTaniya Das static struct clk_branch gcc_ecpri_cc_gpll5_even_clk_src = { 12561c9efb0bSTaniya Das .halt_check = BRANCH_HALT_DELAY, 12571c9efb0bSTaniya Das .clkr = { 12581c9efb0bSTaniya Das .enable_reg = 0x62010, 12591c9efb0bSTaniya Das .enable_mask = BIT(5), 12601c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 12611c9efb0bSTaniya Das .name = "gcc_ecpri_cc_gpll5_even_clk_src", 12621c9efb0bSTaniya Das .parent_hws = (const struct clk_hw*[]) { 12631c9efb0bSTaniya Das &gcc_gpll5_out_even.clkr.hw, 12641c9efb0bSTaniya Das }, 12651c9efb0bSTaniya Das .num_parents = 1, 12661c9efb0bSTaniya Das .flags = CLK_SET_RATE_PARENT, 12671c9efb0bSTaniya Das .ops = &clk_branch2_ops, 12681c9efb0bSTaniya Das }, 12691c9efb0bSTaniya Das }, 12701c9efb0bSTaniya Das }; 12711c9efb0bSTaniya Das 12721c9efb0bSTaniya Das static struct clk_branch gcc_ecpri_xo_clk = { 12731c9efb0bSTaniya Das .halt_reg = 0x3a004, 12741c9efb0bSTaniya Das .halt_check = BRANCH_HALT, 12751c9efb0bSTaniya Das .clkr = { 12761c9efb0bSTaniya Das .enable_reg = 0x3a004, 12771c9efb0bSTaniya Das .enable_mask = BIT(0), 12781c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 12791c9efb0bSTaniya Das .name = "gcc_ecpri_xo_clk", 12801c9efb0bSTaniya Das .ops = &clk_branch2_ops, 12811c9efb0bSTaniya Das }, 12821c9efb0bSTaniya Das }, 12831c9efb0bSTaniya Das }; 12841c9efb0bSTaniya Das 12851c9efb0bSTaniya Das static struct clk_branch gcc_eth_100g_c2c_hm_apb_clk = { 12861c9efb0bSTaniya Das .halt_reg = 0x39010, 12871c9efb0bSTaniya Das .halt_check = BRANCH_HALT, 12881c9efb0bSTaniya Das .clkr = { 12891c9efb0bSTaniya Das .enable_reg = 0x39010, 12901c9efb0bSTaniya Das .enable_mask = BIT(0), 12911c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 12921c9efb0bSTaniya Das .name = "gcc_eth_100g_c2c_hm_apb_clk", 12931c9efb0bSTaniya Das .ops = &clk_branch2_ops, 12941c9efb0bSTaniya Das }, 12951c9efb0bSTaniya Das }, 12961c9efb0bSTaniya Das }; 12971c9efb0bSTaniya Das 12981c9efb0bSTaniya Das static struct clk_branch gcc_eth_100g_fh_hm_apb_0_clk = { 12991c9efb0bSTaniya Das .halt_reg = 0x39004, 13001c9efb0bSTaniya Das .halt_check = BRANCH_HALT, 13011c9efb0bSTaniya Das .clkr = { 13021c9efb0bSTaniya Das .enable_reg = 0x39004, 13031c9efb0bSTaniya Das .enable_mask = BIT(0), 13041c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 13051c9efb0bSTaniya Das .name = "gcc_eth_100g_fh_hm_apb_0_clk", 13061c9efb0bSTaniya Das .ops = &clk_branch2_ops, 13071c9efb0bSTaniya Das }, 13081c9efb0bSTaniya Das }, 13091c9efb0bSTaniya Das }; 13101c9efb0bSTaniya Das 13111c9efb0bSTaniya Das static struct clk_branch gcc_eth_100g_fh_hm_apb_1_clk = { 13121c9efb0bSTaniya Das .halt_reg = 0x39008, 13131c9efb0bSTaniya Das .halt_check = BRANCH_HALT, 13141c9efb0bSTaniya Das .clkr = { 13151c9efb0bSTaniya Das .enable_reg = 0x39008, 13161c9efb0bSTaniya Das .enable_mask = BIT(0), 13171c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 13181c9efb0bSTaniya Das .name = "gcc_eth_100g_fh_hm_apb_1_clk", 13191c9efb0bSTaniya Das .ops = &clk_branch2_ops, 13201c9efb0bSTaniya Das }, 13211c9efb0bSTaniya Das }, 13221c9efb0bSTaniya Das }; 13231c9efb0bSTaniya Das 13241c9efb0bSTaniya Das static struct clk_branch gcc_eth_100g_fh_hm_apb_2_clk = { 13251c9efb0bSTaniya Das .halt_reg = 0x3900c, 13261c9efb0bSTaniya Das .halt_check = BRANCH_HALT, 13271c9efb0bSTaniya Das .clkr = { 13281c9efb0bSTaniya Das .enable_reg = 0x3900c, 13291c9efb0bSTaniya Das .enable_mask = BIT(0), 13301c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 13311c9efb0bSTaniya Das .name = "gcc_eth_100g_fh_hm_apb_2_clk", 13321c9efb0bSTaniya Das .ops = &clk_branch2_ops, 13331c9efb0bSTaniya Das }, 13341c9efb0bSTaniya Das }, 13351c9efb0bSTaniya Das }; 13361c9efb0bSTaniya Das 13371c9efb0bSTaniya Das static struct clk_branch gcc_eth_dbg_c2c_hm_apb_clk = { 13381c9efb0bSTaniya Das .halt_reg = 0x39014, 13391c9efb0bSTaniya Das .halt_check = BRANCH_HALT, 13401c9efb0bSTaniya Das .clkr = { 13411c9efb0bSTaniya Das .enable_reg = 0x39014, 13421c9efb0bSTaniya Das .enable_mask = BIT(0), 13431c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 13441c9efb0bSTaniya Das .name = "gcc_eth_dbg_c2c_hm_apb_clk", 13451c9efb0bSTaniya Das .ops = &clk_branch2_ops, 13461c9efb0bSTaniya Das }, 13471c9efb0bSTaniya Das }, 13481c9efb0bSTaniya Das }; 13491c9efb0bSTaniya Das 13501c9efb0bSTaniya Das static struct clk_branch gcc_eth_dbg_snoc_axi_clk = { 13511c9efb0bSTaniya Das .halt_reg = 0x3901c, 13521c9efb0bSTaniya Das .halt_check = BRANCH_HALT_VOTED, 13531c9efb0bSTaniya Das .hwcg_reg = 0x3901c, 13541c9efb0bSTaniya Das .hwcg_bit = 1, 13551c9efb0bSTaniya Das .clkr = { 13561c9efb0bSTaniya Das .enable_reg = 0x3901c, 13571c9efb0bSTaniya Das .enable_mask = BIT(0), 13581c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 13591c9efb0bSTaniya Das .name = "gcc_eth_dbg_snoc_axi_clk", 13601c9efb0bSTaniya Das .ops = &clk_branch2_ops, 13611c9efb0bSTaniya Das }, 13621c9efb0bSTaniya Das }, 13631c9efb0bSTaniya Das }; 13641c9efb0bSTaniya Das 13651c9efb0bSTaniya Das static struct clk_branch gcc_gemnoc_pcie_qx_clk = { 13661c9efb0bSTaniya Das .halt_reg = 0x5402c, 13671c9efb0bSTaniya Das .halt_check = BRANCH_HALT_VOTED, 13681c9efb0bSTaniya Das .hwcg_reg = 0x5402c, 13691c9efb0bSTaniya Das .hwcg_bit = 1, 13701c9efb0bSTaniya Das .clkr = { 13711c9efb0bSTaniya Das .enable_reg = 0x62008, 13721c9efb0bSTaniya Das .enable_mask = BIT(0), 13731c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 13741c9efb0bSTaniya Das .name = "gcc_gemnoc_pcie_qx_clk", 13751c9efb0bSTaniya Das .ops = &clk_branch2_aon_ops, 13761c9efb0bSTaniya Das }, 13771c9efb0bSTaniya Das }, 13781c9efb0bSTaniya Das }; 13791c9efb0bSTaniya Das 13801c9efb0bSTaniya Das static struct clk_branch gcc_gp1_clk = { 13811c9efb0bSTaniya Das .halt_reg = 0x74000, 13821c9efb0bSTaniya Das .halt_check = BRANCH_HALT, 13831c9efb0bSTaniya Das .clkr = { 13841c9efb0bSTaniya Das .enable_reg = 0x74000, 13851c9efb0bSTaniya Das .enable_mask = BIT(0), 13861c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 13871c9efb0bSTaniya Das .name = "gcc_gp1_clk", 13881c9efb0bSTaniya Das .parent_hws = (const struct clk_hw*[]) { 13891c9efb0bSTaniya Das &gcc_gp1_clk_src.clkr.hw, 13901c9efb0bSTaniya Das }, 13911c9efb0bSTaniya Das .num_parents = 1, 13921c9efb0bSTaniya Das .flags = CLK_SET_RATE_PARENT, 13931c9efb0bSTaniya Das .ops = &clk_branch2_ops, 13941c9efb0bSTaniya Das }, 13951c9efb0bSTaniya Das }, 13961c9efb0bSTaniya Das }; 13971c9efb0bSTaniya Das 13981c9efb0bSTaniya Das static struct clk_branch gcc_gp2_clk = { 13991c9efb0bSTaniya Das .halt_reg = 0x75000, 14001c9efb0bSTaniya Das .halt_check = BRANCH_HALT, 14011c9efb0bSTaniya Das .clkr = { 14021c9efb0bSTaniya Das .enable_reg = 0x75000, 14031c9efb0bSTaniya Das .enable_mask = BIT(0), 14041c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 14051c9efb0bSTaniya Das .name = "gcc_gp2_clk", 14061c9efb0bSTaniya Das .parent_hws = (const struct clk_hw*[]) { 14071c9efb0bSTaniya Das &gcc_gp2_clk_src.clkr.hw, 14081c9efb0bSTaniya Das }, 14091c9efb0bSTaniya Das .num_parents = 1, 14101c9efb0bSTaniya Das .flags = CLK_SET_RATE_PARENT, 14111c9efb0bSTaniya Das .ops = &clk_branch2_ops, 14121c9efb0bSTaniya Das }, 14131c9efb0bSTaniya Das }, 14141c9efb0bSTaniya Das }; 14151c9efb0bSTaniya Das 14161c9efb0bSTaniya Das static struct clk_branch gcc_gp3_clk = { 14171c9efb0bSTaniya Das .halt_reg = 0x76000, 14181c9efb0bSTaniya Das .halt_check = BRANCH_HALT, 14191c9efb0bSTaniya Das .clkr = { 14201c9efb0bSTaniya Das .enable_reg = 0x76000, 14211c9efb0bSTaniya Das .enable_mask = BIT(0), 14221c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 14231c9efb0bSTaniya Das .name = "gcc_gp3_clk", 14241c9efb0bSTaniya Das .parent_hws = (const struct clk_hw*[]) { 14251c9efb0bSTaniya Das &gcc_gp3_clk_src.clkr.hw, 14261c9efb0bSTaniya Das }, 14271c9efb0bSTaniya Das .num_parents = 1, 14281c9efb0bSTaniya Das .flags = CLK_SET_RATE_PARENT, 14291c9efb0bSTaniya Das .ops = &clk_branch2_ops, 14301c9efb0bSTaniya Das }, 14311c9efb0bSTaniya Das }, 14321c9efb0bSTaniya Das }; 14331c9efb0bSTaniya Das 14341c9efb0bSTaniya Das static struct clk_branch gcc_pcie_0_aux_clk = { 14351c9efb0bSTaniya Das .halt_reg = 0x9d030, 14361c9efb0bSTaniya Das .halt_check = BRANCH_HALT_VOTED, 14371c9efb0bSTaniya Das .hwcg_reg = 0x9d030, 14381c9efb0bSTaniya Das .hwcg_bit = 1, 14391c9efb0bSTaniya Das .clkr = { 14401c9efb0bSTaniya Das .enable_reg = 0x62000, 14411c9efb0bSTaniya Das .enable_mask = BIT(29), 14421c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 14431c9efb0bSTaniya Das .name = "gcc_pcie_0_aux_clk", 14441c9efb0bSTaniya Das .parent_hws = (const struct clk_hw*[]) { 14451c9efb0bSTaniya Das &gcc_pcie_0_aux_clk_src.clkr.hw, 14461c9efb0bSTaniya Das }, 14471c9efb0bSTaniya Das .num_parents = 1, 14481c9efb0bSTaniya Das .flags = CLK_SET_RATE_PARENT, 14491c9efb0bSTaniya Das .ops = &clk_branch2_ops, 14501c9efb0bSTaniya Das }, 14511c9efb0bSTaniya Das }, 14521c9efb0bSTaniya Das }; 14531c9efb0bSTaniya Das 14541c9efb0bSTaniya Das static struct clk_branch gcc_pcie_0_cfg_ahb_clk = { 14551c9efb0bSTaniya Das .halt_reg = 0x9d02c, 14561c9efb0bSTaniya Das .halt_check = BRANCH_HALT_VOTED, 14571c9efb0bSTaniya Das .hwcg_reg = 0x9d02c, 14581c9efb0bSTaniya Das .hwcg_bit = 1, 14591c9efb0bSTaniya Das .clkr = { 14601c9efb0bSTaniya Das .enable_reg = 0x62000, 14611c9efb0bSTaniya Das .enable_mask = BIT(28), 14621c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 14631c9efb0bSTaniya Das .name = "gcc_pcie_0_cfg_ahb_clk", 14641c9efb0bSTaniya Das .ops = &clk_branch2_ops, 14651c9efb0bSTaniya Das }, 14661c9efb0bSTaniya Das }, 14671c9efb0bSTaniya Das }; 14681c9efb0bSTaniya Das 14691c9efb0bSTaniya Das static struct clk_branch gcc_pcie_0_clkref_en = { 14701c9efb0bSTaniya Das .halt_reg = 0x9c004, 14712524dae5SImran Shaik .halt_check = BRANCH_HALT, 14721c9efb0bSTaniya Das .clkr = { 14731c9efb0bSTaniya Das .enable_reg = 0x9c004, 14741c9efb0bSTaniya Das .enable_mask = BIT(0), 14751c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 14761c9efb0bSTaniya Das .name = "gcc_pcie_0_clkref_en", 14772524dae5SImran Shaik .ops = &clk_branch2_ops, 14781c9efb0bSTaniya Das }, 14791c9efb0bSTaniya Das }, 14801c9efb0bSTaniya Das }; 14811c9efb0bSTaniya Das 14821c9efb0bSTaniya Das static struct clk_branch gcc_pcie_0_mstr_axi_clk = { 14831c9efb0bSTaniya Das .halt_reg = 0x9d024, 14841c9efb0bSTaniya Das .halt_check = BRANCH_HALT_SKIP, 14851c9efb0bSTaniya Das .hwcg_reg = 0x9d024, 14861c9efb0bSTaniya Das .hwcg_bit = 1, 14871c9efb0bSTaniya Das .clkr = { 14881c9efb0bSTaniya Das .enable_reg = 0x62000, 14891c9efb0bSTaniya Das .enable_mask = BIT(27), 14901c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 14911c9efb0bSTaniya Das .name = "gcc_pcie_0_mstr_axi_clk", 14921c9efb0bSTaniya Das .ops = &clk_branch2_ops, 14931c9efb0bSTaniya Das }, 14941c9efb0bSTaniya Das }, 14951c9efb0bSTaniya Das }; 14961c9efb0bSTaniya Das 14971c9efb0bSTaniya Das static struct clk_branch gcc_pcie_0_phy_aux_clk = { 14981c9efb0bSTaniya Das .halt_reg = 0x9d038, 14991c9efb0bSTaniya Das .halt_check = BRANCH_HALT_VOTED, 15001c9efb0bSTaniya Das .hwcg_reg = 0x9d038, 15011c9efb0bSTaniya Das .hwcg_bit = 1, 15021c9efb0bSTaniya Das .clkr = { 15031c9efb0bSTaniya Das .enable_reg = 0x62000, 15041c9efb0bSTaniya Das .enable_mask = BIT(24), 15051c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 15061c9efb0bSTaniya Das .name = "gcc_pcie_0_phy_aux_clk", 15071c9efb0bSTaniya Das .parent_hws = (const struct clk_hw*[]) { 15081c9efb0bSTaniya Das &gcc_pcie_0_phy_aux_clk_src.clkr.hw, 15091c9efb0bSTaniya Das }, 15101c9efb0bSTaniya Das .num_parents = 1, 15111c9efb0bSTaniya Das .flags = CLK_SET_RATE_PARENT, 15121c9efb0bSTaniya Das .ops = &clk_branch2_ops, 15131c9efb0bSTaniya Das }, 15141c9efb0bSTaniya Das }, 15151c9efb0bSTaniya Das }; 15161c9efb0bSTaniya Das 15171c9efb0bSTaniya Das static struct clk_branch gcc_pcie_0_phy_rchng_clk = { 15181c9efb0bSTaniya Das .halt_reg = 0x9d048, 15191c9efb0bSTaniya Das .halt_check = BRANCH_HALT_VOTED, 15201c9efb0bSTaniya Das .hwcg_reg = 0x9d048, 15211c9efb0bSTaniya Das .hwcg_bit = 1, 15221c9efb0bSTaniya Das .clkr = { 15231c9efb0bSTaniya Das .enable_reg = 0x62000, 15241c9efb0bSTaniya Das .enable_mask = BIT(23), 15251c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 15261c9efb0bSTaniya Das .name = "gcc_pcie_0_phy_rchng_clk", 15271c9efb0bSTaniya Das .parent_hws = (const struct clk_hw*[]) { 15281c9efb0bSTaniya Das &gcc_pcie_0_phy_rchng_clk_src.clkr.hw, 15291c9efb0bSTaniya Das }, 15301c9efb0bSTaniya Das .num_parents = 1, 15311c9efb0bSTaniya Das .flags = CLK_SET_RATE_PARENT, 15321c9efb0bSTaniya Das .ops = &clk_branch2_ops, 15331c9efb0bSTaniya Das }, 15341c9efb0bSTaniya Das }, 15351c9efb0bSTaniya Das }; 15361c9efb0bSTaniya Das 15371c9efb0bSTaniya Das static struct clk_branch gcc_pcie_0_pipe_clk = { 15381c9efb0bSTaniya Das .halt_reg = 0x9d040, 15391c9efb0bSTaniya Das .halt_check = BRANCH_HALT_VOTED, 15401c9efb0bSTaniya Das .hwcg_reg = 0x9d040, 15411c9efb0bSTaniya Das .hwcg_bit = 1, 15421c9efb0bSTaniya Das .clkr = { 15431c9efb0bSTaniya Das .enable_reg = 0x62000, 15441c9efb0bSTaniya Das .enable_mask = BIT(30), 15451c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 15461c9efb0bSTaniya Das .name = "gcc_pcie_0_pipe_clk", 15471c9efb0bSTaniya Das .parent_hws = (const struct clk_hw*[]) { 15481c9efb0bSTaniya Das &gcc_pcie_0_pipe_clk_src.clkr.hw, 15491c9efb0bSTaniya Das }, 15501c9efb0bSTaniya Das .num_parents = 1, 15511c9efb0bSTaniya Das .flags = CLK_SET_RATE_PARENT, 15521c9efb0bSTaniya Das .ops = &clk_branch2_ops, 15531c9efb0bSTaniya Das }, 15541c9efb0bSTaniya Das }, 15551c9efb0bSTaniya Das }; 15561c9efb0bSTaniya Das 15571c9efb0bSTaniya Das static struct clk_branch gcc_pcie_0_slv_axi_clk = { 15581c9efb0bSTaniya Das .halt_reg = 0x9d01c, 15591c9efb0bSTaniya Das .halt_check = BRANCH_HALT_VOTED, 15601c9efb0bSTaniya Das .hwcg_reg = 0x9d01c, 15611c9efb0bSTaniya Das .hwcg_bit = 1, 15621c9efb0bSTaniya Das .clkr = { 15631c9efb0bSTaniya Das .enable_reg = 0x62000, 15641c9efb0bSTaniya Das .enable_mask = BIT(26), 15651c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 15661c9efb0bSTaniya Das .name = "gcc_pcie_0_slv_axi_clk", 15671c9efb0bSTaniya Das .ops = &clk_branch2_ops, 15681c9efb0bSTaniya Das }, 15691c9efb0bSTaniya Das }, 15701c9efb0bSTaniya Das }; 15711c9efb0bSTaniya Das 15721c9efb0bSTaniya Das static struct clk_branch gcc_pcie_0_slv_q2a_axi_clk = { 15731c9efb0bSTaniya Das .halt_reg = 0x9d018, 15741c9efb0bSTaniya Das .halt_check = BRANCH_HALT_VOTED, 15751c9efb0bSTaniya Das .hwcg_reg = 0x9d018, 15761c9efb0bSTaniya Das .hwcg_bit = 1, 15771c9efb0bSTaniya Das .clkr = { 15781c9efb0bSTaniya Das .enable_reg = 0x62000, 15791c9efb0bSTaniya Das .enable_mask = BIT(25), 15801c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 15811c9efb0bSTaniya Das .name = "gcc_pcie_0_slv_q2a_axi_clk", 15821c9efb0bSTaniya Das .ops = &clk_branch2_ops, 15831c9efb0bSTaniya Das }, 15841c9efb0bSTaniya Das }, 15851c9efb0bSTaniya Das }; 15861c9efb0bSTaniya Das 15871c9efb0bSTaniya Das static struct clk_branch gcc_pdm2_clk = { 15881c9efb0bSTaniya Das .halt_reg = 0x4300c, 15891c9efb0bSTaniya Das .halt_check = BRANCH_HALT, 15901c9efb0bSTaniya Das .clkr = { 15911c9efb0bSTaniya Das .enable_reg = 0x4300c, 15921c9efb0bSTaniya Das .enable_mask = BIT(0), 15931c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 15941c9efb0bSTaniya Das .name = "gcc_pdm2_clk", 15951c9efb0bSTaniya Das .parent_hws = (const struct clk_hw*[]) { 15961c9efb0bSTaniya Das &gcc_pdm2_clk_src.clkr.hw, 15971c9efb0bSTaniya Das }, 15981c9efb0bSTaniya Das .num_parents = 1, 15991c9efb0bSTaniya Das .flags = CLK_SET_RATE_PARENT, 16001c9efb0bSTaniya Das .ops = &clk_branch2_ops, 16011c9efb0bSTaniya Das }, 16021c9efb0bSTaniya Das }, 16031c9efb0bSTaniya Das }; 16041c9efb0bSTaniya Das 16051c9efb0bSTaniya Das static struct clk_branch gcc_pdm_ahb_clk = { 16061c9efb0bSTaniya Das .halt_reg = 0x43004, 16071c9efb0bSTaniya Das .halt_check = BRANCH_HALT_VOTED, 16081c9efb0bSTaniya Das .hwcg_reg = 0x43004, 16091c9efb0bSTaniya Das .hwcg_bit = 1, 16101c9efb0bSTaniya Das .clkr = { 16111c9efb0bSTaniya Das .enable_reg = 0x43004, 16121c9efb0bSTaniya Das .enable_mask = BIT(0), 16131c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 16141c9efb0bSTaniya Das .name = "gcc_pdm_ahb_clk", 16151c9efb0bSTaniya Das .ops = &clk_branch2_ops, 16161c9efb0bSTaniya Das }, 16171c9efb0bSTaniya Das }, 16181c9efb0bSTaniya Das }; 16191c9efb0bSTaniya Das 16201c9efb0bSTaniya Das static struct clk_branch gcc_pdm_xo4_clk = { 16211c9efb0bSTaniya Das .halt_reg = 0x43008, 16221c9efb0bSTaniya Das .halt_check = BRANCH_HALT, 16231c9efb0bSTaniya Das .clkr = { 16241c9efb0bSTaniya Das .enable_reg = 0x43008, 16251c9efb0bSTaniya Das .enable_mask = BIT(0), 16261c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 16271c9efb0bSTaniya Das .name = "gcc_pdm_xo4_clk", 16281c9efb0bSTaniya Das .ops = &clk_branch2_ops, 16291c9efb0bSTaniya Das }, 16301c9efb0bSTaniya Das }, 16311c9efb0bSTaniya Das }; 16321c9efb0bSTaniya Das 16331c9efb0bSTaniya Das static struct clk_branch gcc_qmip_anoc_pcie_clk = { 16341c9efb0bSTaniya Das .halt_reg = 0x84044, 16351c9efb0bSTaniya Das .halt_check = BRANCH_HALT_VOTED, 16361c9efb0bSTaniya Das .hwcg_reg = 0x84044, 16371c9efb0bSTaniya Das .hwcg_bit = 1, 16381c9efb0bSTaniya Das .clkr = { 16391c9efb0bSTaniya Das .enable_reg = 0x84044, 16401c9efb0bSTaniya Das .enable_mask = BIT(0), 16411c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 16421c9efb0bSTaniya Das .name = "gcc_qmip_anoc_pcie_clk", 16431c9efb0bSTaniya Das .ops = &clk_branch2_ops, 16441c9efb0bSTaniya Das }, 16451c9efb0bSTaniya Das }, 16461c9efb0bSTaniya Das }; 16471c9efb0bSTaniya Das 16481c9efb0bSTaniya Das static struct clk_branch gcc_qmip_ecpri_dma0_clk = { 16491c9efb0bSTaniya Das .halt_reg = 0x84038, 16501c9efb0bSTaniya Das .halt_check = BRANCH_HALT_VOTED, 16511c9efb0bSTaniya Das .hwcg_reg = 0x84038, 16521c9efb0bSTaniya Das .hwcg_bit = 1, 16531c9efb0bSTaniya Das .clkr = { 16541c9efb0bSTaniya Das .enable_reg = 0x84038, 16551c9efb0bSTaniya Das .enable_mask = BIT(0), 16561c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 16571c9efb0bSTaniya Das .name = "gcc_qmip_ecpri_dma0_clk", 16581c9efb0bSTaniya Das .ops = &clk_branch2_ops, 16591c9efb0bSTaniya Das }, 16601c9efb0bSTaniya Das }, 16611c9efb0bSTaniya Das }; 16621c9efb0bSTaniya Das 16631c9efb0bSTaniya Das static struct clk_branch gcc_qmip_ecpri_dma1_clk = { 16641c9efb0bSTaniya Das .halt_reg = 0x8403c, 16651c9efb0bSTaniya Das .halt_check = BRANCH_HALT_VOTED, 16661c9efb0bSTaniya Das .hwcg_reg = 0x8403c, 16671c9efb0bSTaniya Das .hwcg_bit = 1, 16681c9efb0bSTaniya Das .clkr = { 16691c9efb0bSTaniya Das .enable_reg = 0x8403c, 16701c9efb0bSTaniya Das .enable_mask = BIT(0), 16711c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 16721c9efb0bSTaniya Das .name = "gcc_qmip_ecpri_dma1_clk", 16731c9efb0bSTaniya Das .ops = &clk_branch2_ops, 16741c9efb0bSTaniya Das }, 16751c9efb0bSTaniya Das }, 16761c9efb0bSTaniya Das }; 16771c9efb0bSTaniya Das 16781c9efb0bSTaniya Das static struct clk_branch gcc_qmip_ecpri_gsi_clk = { 16791c9efb0bSTaniya Das .halt_reg = 0x84040, 16801c9efb0bSTaniya Das .halt_check = BRANCH_HALT_VOTED, 16811c9efb0bSTaniya Das .hwcg_reg = 0x84040, 16821c9efb0bSTaniya Das .hwcg_bit = 1, 16831c9efb0bSTaniya Das .clkr = { 16841c9efb0bSTaniya Das .enable_reg = 0x84040, 16851c9efb0bSTaniya Das .enable_mask = BIT(0), 16861c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 16871c9efb0bSTaniya Das .name = "gcc_qmip_ecpri_gsi_clk", 16881c9efb0bSTaniya Das .ops = &clk_branch2_ops, 16891c9efb0bSTaniya Das }, 16901c9efb0bSTaniya Das }, 16911c9efb0bSTaniya Das }; 16921c9efb0bSTaniya Das 16931c9efb0bSTaniya Das static struct clk_branch gcc_qupv3_wrap0_core_2x_clk = { 16941c9efb0bSTaniya Das .halt_reg = 0x27018, 16951c9efb0bSTaniya Das .halt_check = BRANCH_HALT_VOTED, 16961c9efb0bSTaniya Das .clkr = { 16971c9efb0bSTaniya Das .enable_reg = 0x62008, 16981c9efb0bSTaniya Das .enable_mask = BIT(9), 16991c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 17001c9efb0bSTaniya Das .name = "gcc_qupv3_wrap0_core_2x_clk", 17011c9efb0bSTaniya Das .ops = &clk_branch2_ops, 17021c9efb0bSTaniya Das }, 17031c9efb0bSTaniya Das }, 17041c9efb0bSTaniya Das }; 17051c9efb0bSTaniya Das 17061c9efb0bSTaniya Das static struct clk_branch gcc_qupv3_wrap0_core_clk = { 17071c9efb0bSTaniya Das .halt_reg = 0x2700c, 17081c9efb0bSTaniya Das .halt_check = BRANCH_HALT_VOTED, 17091c9efb0bSTaniya Das .clkr = { 17101c9efb0bSTaniya Das .enable_reg = 0x62008, 17111c9efb0bSTaniya Das .enable_mask = BIT(8), 17121c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 17131c9efb0bSTaniya Das .name = "gcc_qupv3_wrap0_core_clk", 17141c9efb0bSTaniya Das .ops = &clk_branch2_ops, 17151c9efb0bSTaniya Das }, 17161c9efb0bSTaniya Das }, 17171c9efb0bSTaniya Das }; 17181c9efb0bSTaniya Das 17191c9efb0bSTaniya Das static struct clk_branch gcc_qupv3_wrap0_s0_clk = { 17201c9efb0bSTaniya Das .halt_reg = 0x2714c, 17211c9efb0bSTaniya Das .halt_check = BRANCH_HALT_VOTED, 17221c9efb0bSTaniya Das .clkr = { 17231c9efb0bSTaniya Das .enable_reg = 0x62008, 17241c9efb0bSTaniya Das .enable_mask = BIT(10), 17251c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 17261c9efb0bSTaniya Das .name = "gcc_qupv3_wrap0_s0_clk", 17271c9efb0bSTaniya Das .parent_hws = (const struct clk_hw*[]) { 17281c9efb0bSTaniya Das &gcc_qupv3_wrap0_s0_clk_src.clkr.hw, 17291c9efb0bSTaniya Das }, 17301c9efb0bSTaniya Das .num_parents = 1, 17311c9efb0bSTaniya Das .flags = CLK_SET_RATE_PARENT, 17321c9efb0bSTaniya Das .ops = &clk_branch2_ops, 17331c9efb0bSTaniya Das }, 17341c9efb0bSTaniya Das }, 17351c9efb0bSTaniya Das }; 17361c9efb0bSTaniya Das 17371c9efb0bSTaniya Das static struct clk_branch gcc_qupv3_wrap0_s1_clk = { 17381c9efb0bSTaniya Das .halt_reg = 0x27280, 17391c9efb0bSTaniya Das .halt_check = BRANCH_HALT_VOTED, 17401c9efb0bSTaniya Das .clkr = { 17411c9efb0bSTaniya Das .enable_reg = 0x62008, 17421c9efb0bSTaniya Das .enable_mask = BIT(11), 17431c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 17441c9efb0bSTaniya Das .name = "gcc_qupv3_wrap0_s1_clk", 17451c9efb0bSTaniya Das .parent_hws = (const struct clk_hw*[]) { 17461c9efb0bSTaniya Das &gcc_qupv3_wrap0_s1_clk_src.clkr.hw, 17471c9efb0bSTaniya Das }, 17481c9efb0bSTaniya Das .num_parents = 1, 17491c9efb0bSTaniya Das .flags = CLK_SET_RATE_PARENT, 17501c9efb0bSTaniya Das .ops = &clk_branch2_ops, 17511c9efb0bSTaniya Das }, 17521c9efb0bSTaniya Das }, 17531c9efb0bSTaniya Das }; 17541c9efb0bSTaniya Das 17551c9efb0bSTaniya Das static struct clk_branch gcc_qupv3_wrap0_s2_clk = { 17561c9efb0bSTaniya Das .halt_reg = 0x273b4, 17571c9efb0bSTaniya Das .halt_check = BRANCH_HALT_VOTED, 17581c9efb0bSTaniya Das .clkr = { 17591c9efb0bSTaniya Das .enable_reg = 0x62008, 17601c9efb0bSTaniya Das .enable_mask = BIT(12), 17611c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 17621c9efb0bSTaniya Das .name = "gcc_qupv3_wrap0_s2_clk", 17631c9efb0bSTaniya Das .parent_hws = (const struct clk_hw*[]) { 17641c9efb0bSTaniya Das &gcc_qupv3_wrap0_s2_clk_src.clkr.hw, 17651c9efb0bSTaniya Das }, 17661c9efb0bSTaniya Das .num_parents = 1, 17671c9efb0bSTaniya Das .flags = CLK_SET_RATE_PARENT, 17681c9efb0bSTaniya Das .ops = &clk_branch2_ops, 17691c9efb0bSTaniya Das }, 17701c9efb0bSTaniya Das }, 17711c9efb0bSTaniya Das }; 17721c9efb0bSTaniya Das 17731c9efb0bSTaniya Das static struct clk_branch gcc_qupv3_wrap0_s3_clk = { 17741c9efb0bSTaniya Das .halt_reg = 0x274e8, 17751c9efb0bSTaniya Das .halt_check = BRANCH_HALT_VOTED, 17761c9efb0bSTaniya Das .clkr = { 17771c9efb0bSTaniya Das .enable_reg = 0x62008, 17781c9efb0bSTaniya Das .enable_mask = BIT(13), 17791c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 17801c9efb0bSTaniya Das .name = "gcc_qupv3_wrap0_s3_clk", 17811c9efb0bSTaniya Das .parent_hws = (const struct clk_hw*[]) { 17821c9efb0bSTaniya Das &gcc_qupv3_wrap0_s3_clk_src.clkr.hw, 17831c9efb0bSTaniya Das }, 17841c9efb0bSTaniya Das .num_parents = 1, 17851c9efb0bSTaniya Das .flags = CLK_SET_RATE_PARENT, 17861c9efb0bSTaniya Das .ops = &clk_branch2_ops, 17871c9efb0bSTaniya Das }, 17881c9efb0bSTaniya Das }, 17891c9efb0bSTaniya Das }; 17901c9efb0bSTaniya Das 17911c9efb0bSTaniya Das static struct clk_branch gcc_qupv3_wrap0_s4_clk = { 17921c9efb0bSTaniya Das .halt_reg = 0x2761c, 17931c9efb0bSTaniya Das .halt_check = BRANCH_HALT_VOTED, 17941c9efb0bSTaniya Das .clkr = { 17951c9efb0bSTaniya Das .enable_reg = 0x62008, 17961c9efb0bSTaniya Das .enable_mask = BIT(14), 17971c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 17981c9efb0bSTaniya Das .name = "gcc_qupv3_wrap0_s4_clk", 17991c9efb0bSTaniya Das .parent_hws = (const struct clk_hw*[]) { 18001c9efb0bSTaniya Das &gcc_qupv3_wrap0_s4_clk_src.clkr.hw, 18011c9efb0bSTaniya Das }, 18021c9efb0bSTaniya Das .num_parents = 1, 18031c9efb0bSTaniya Das .flags = CLK_SET_RATE_PARENT, 18041c9efb0bSTaniya Das .ops = &clk_branch2_ops, 18051c9efb0bSTaniya Das }, 18061c9efb0bSTaniya Das }, 18071c9efb0bSTaniya Das }; 18081c9efb0bSTaniya Das 18091c9efb0bSTaniya Das static struct clk_branch gcc_qupv3_wrap0_s5_clk = { 18101c9efb0bSTaniya Das .halt_reg = 0x27750, 18111c9efb0bSTaniya Das .halt_check = BRANCH_HALT_VOTED, 18121c9efb0bSTaniya Das .clkr = { 18131c9efb0bSTaniya Das .enable_reg = 0x62008, 18141c9efb0bSTaniya Das .enable_mask = BIT(15), 18151c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 18161c9efb0bSTaniya Das .name = "gcc_qupv3_wrap0_s5_clk", 18171c9efb0bSTaniya Das .parent_hws = (const struct clk_hw*[]) { 18181c9efb0bSTaniya Das &gcc_qupv3_wrap0_s5_clk_src.clkr.hw, 18191c9efb0bSTaniya Das }, 18201c9efb0bSTaniya Das .num_parents = 1, 18211c9efb0bSTaniya Das .flags = CLK_SET_RATE_PARENT, 18221c9efb0bSTaniya Das .ops = &clk_branch2_ops, 18231c9efb0bSTaniya Das }, 18241c9efb0bSTaniya Das }, 18251c9efb0bSTaniya Das }; 18261c9efb0bSTaniya Das 18271c9efb0bSTaniya Das static struct clk_branch gcc_qupv3_wrap0_s6_clk = { 18281c9efb0bSTaniya Das .halt_reg = 0x27884, 18291c9efb0bSTaniya Das .halt_check = BRANCH_HALT_VOTED, 18301c9efb0bSTaniya Das .clkr = { 18311c9efb0bSTaniya Das .enable_reg = 0x62008, 18321c9efb0bSTaniya Das .enable_mask = BIT(16), 18331c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 18341c9efb0bSTaniya Das .name = "gcc_qupv3_wrap0_s6_clk", 18351c9efb0bSTaniya Das .parent_hws = (const struct clk_hw*[]) { 18361c9efb0bSTaniya Das &gcc_qupv3_wrap0_s6_clk_src.clkr.hw, 18371c9efb0bSTaniya Das }, 18381c9efb0bSTaniya Das .num_parents = 1, 18391c9efb0bSTaniya Das .flags = CLK_SET_RATE_PARENT, 18401c9efb0bSTaniya Das .ops = &clk_branch2_ops, 18411c9efb0bSTaniya Das }, 18421c9efb0bSTaniya Das }, 18431c9efb0bSTaniya Das }; 18441c9efb0bSTaniya Das 18451c9efb0bSTaniya Das static struct clk_branch gcc_qupv3_wrap0_s7_clk = { 18461c9efb0bSTaniya Das .halt_reg = 0x279b8, 18471c9efb0bSTaniya Das .halt_check = BRANCH_HALT_VOTED, 18481c9efb0bSTaniya Das .clkr = { 18491c9efb0bSTaniya Das .enable_reg = 0x62008, 18501c9efb0bSTaniya Das .enable_mask = BIT(17), 18511c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 18521c9efb0bSTaniya Das .name = "gcc_qupv3_wrap0_s7_clk", 18531c9efb0bSTaniya Das .parent_hws = (const struct clk_hw*[]) { 18541c9efb0bSTaniya Das &gcc_qupv3_wrap0_s7_clk_src.clkr.hw, 18551c9efb0bSTaniya Das }, 18561c9efb0bSTaniya Das .num_parents = 1, 18571c9efb0bSTaniya Das .flags = CLK_SET_RATE_PARENT, 18581c9efb0bSTaniya Das .ops = &clk_branch2_ops, 18591c9efb0bSTaniya Das }, 18601c9efb0bSTaniya Das }, 18611c9efb0bSTaniya Das }; 18621c9efb0bSTaniya Das 18631c9efb0bSTaniya Das static struct clk_branch gcc_qupv3_wrap1_core_2x_clk = { 18641c9efb0bSTaniya Das .halt_reg = 0x28018, 18651c9efb0bSTaniya Das .halt_check = BRANCH_HALT_VOTED, 18661c9efb0bSTaniya Das .clkr = { 18671c9efb0bSTaniya Das .enable_reg = 0x62008, 18681c9efb0bSTaniya Das .enable_mask = BIT(18), 18691c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 18701c9efb0bSTaniya Das .name = "gcc_qupv3_wrap1_core_2x_clk", 18711c9efb0bSTaniya Das .ops = &clk_branch2_ops, 18721c9efb0bSTaniya Das }, 18731c9efb0bSTaniya Das }, 18741c9efb0bSTaniya Das }; 18751c9efb0bSTaniya Das 18761c9efb0bSTaniya Das static struct clk_branch gcc_qupv3_wrap1_core_clk = { 18771c9efb0bSTaniya Das .halt_reg = 0x2800c, 18781c9efb0bSTaniya Das .halt_check = BRANCH_HALT_VOTED, 18791c9efb0bSTaniya Das .clkr = { 18801c9efb0bSTaniya Das .enable_reg = 0x62008, 18811c9efb0bSTaniya Das .enable_mask = BIT(19), 18821c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 18831c9efb0bSTaniya Das .name = "gcc_qupv3_wrap1_core_clk", 18841c9efb0bSTaniya Das .ops = &clk_branch2_ops, 18851c9efb0bSTaniya Das }, 18861c9efb0bSTaniya Das }, 18871c9efb0bSTaniya Das }; 18881c9efb0bSTaniya Das 18891c9efb0bSTaniya Das static struct clk_branch gcc_qupv3_wrap1_s0_clk = { 18901c9efb0bSTaniya Das .halt_reg = 0x2814c, 18911c9efb0bSTaniya Das .halt_check = BRANCH_HALT_VOTED, 18921c9efb0bSTaniya Das .clkr = { 18931c9efb0bSTaniya Das .enable_reg = 0x62008, 18941c9efb0bSTaniya Das .enable_mask = BIT(22), 18951c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 18961c9efb0bSTaniya Das .name = "gcc_qupv3_wrap1_s0_clk", 18971c9efb0bSTaniya Das .parent_hws = (const struct clk_hw*[]) { 18981c9efb0bSTaniya Das &gcc_qupv3_wrap1_s0_clk_src.clkr.hw, 18991c9efb0bSTaniya Das }, 19001c9efb0bSTaniya Das .num_parents = 1, 19011c9efb0bSTaniya Das .flags = CLK_SET_RATE_PARENT, 19021c9efb0bSTaniya Das .ops = &clk_branch2_ops, 19031c9efb0bSTaniya Das }, 19041c9efb0bSTaniya Das }, 19051c9efb0bSTaniya Das }; 19061c9efb0bSTaniya Das 19071c9efb0bSTaniya Das static struct clk_branch gcc_qupv3_wrap1_s1_clk = { 19081c9efb0bSTaniya Das .halt_reg = 0x28280, 19091c9efb0bSTaniya Das .halt_check = BRANCH_HALT_VOTED, 19101c9efb0bSTaniya Das .clkr = { 19111c9efb0bSTaniya Das .enable_reg = 0x62008, 19121c9efb0bSTaniya Das .enable_mask = BIT(23), 19131c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 19141c9efb0bSTaniya Das .name = "gcc_qupv3_wrap1_s1_clk", 19151c9efb0bSTaniya Das .parent_hws = (const struct clk_hw*[]) { 19161c9efb0bSTaniya Das &gcc_qupv3_wrap1_s1_clk_src.clkr.hw, 19171c9efb0bSTaniya Das }, 19181c9efb0bSTaniya Das .num_parents = 1, 19191c9efb0bSTaniya Das .flags = CLK_SET_RATE_PARENT, 19201c9efb0bSTaniya Das .ops = &clk_branch2_ops, 19211c9efb0bSTaniya Das }, 19221c9efb0bSTaniya Das }, 19231c9efb0bSTaniya Das }; 19241c9efb0bSTaniya Das 19251c9efb0bSTaniya Das static struct clk_branch gcc_qupv3_wrap1_s2_clk = { 19261c9efb0bSTaniya Das .halt_reg = 0x283b4, 19271c9efb0bSTaniya Das .halt_check = BRANCH_HALT_VOTED, 19281c9efb0bSTaniya Das .clkr = { 19291c9efb0bSTaniya Das .enable_reg = 0x62008, 19301c9efb0bSTaniya Das .enable_mask = BIT(24), 19311c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 19321c9efb0bSTaniya Das .name = "gcc_qupv3_wrap1_s2_clk", 19331c9efb0bSTaniya Das .parent_hws = (const struct clk_hw*[]) { 19341c9efb0bSTaniya Das &gcc_qupv3_wrap1_s2_clk_src.clkr.hw, 19351c9efb0bSTaniya Das }, 19361c9efb0bSTaniya Das .num_parents = 1, 19371c9efb0bSTaniya Das .flags = CLK_SET_RATE_PARENT, 19381c9efb0bSTaniya Das .ops = &clk_branch2_ops, 19391c9efb0bSTaniya Das }, 19401c9efb0bSTaniya Das }, 19411c9efb0bSTaniya Das }; 19421c9efb0bSTaniya Das 19431c9efb0bSTaniya Das static struct clk_branch gcc_qupv3_wrap1_s3_clk = { 19441c9efb0bSTaniya Das .halt_reg = 0x284e8, 19451c9efb0bSTaniya Das .halt_check = BRANCH_HALT_VOTED, 19461c9efb0bSTaniya Das .clkr = { 19471c9efb0bSTaniya Das .enable_reg = 0x62008, 19481c9efb0bSTaniya Das .enable_mask = BIT(25), 19491c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 19501c9efb0bSTaniya Das .name = "gcc_qupv3_wrap1_s3_clk", 19511c9efb0bSTaniya Das .parent_hws = (const struct clk_hw*[]) { 19521c9efb0bSTaniya Das &gcc_qupv3_wrap1_s3_clk_src.clkr.hw, 19531c9efb0bSTaniya Das }, 19541c9efb0bSTaniya Das .num_parents = 1, 19551c9efb0bSTaniya Das .flags = CLK_SET_RATE_PARENT, 19561c9efb0bSTaniya Das .ops = &clk_branch2_ops, 19571c9efb0bSTaniya Das }, 19581c9efb0bSTaniya Das }, 19591c9efb0bSTaniya Das }; 19601c9efb0bSTaniya Das 19611c9efb0bSTaniya Das static struct clk_branch gcc_qupv3_wrap1_s4_clk = { 19621c9efb0bSTaniya Das .halt_reg = 0x2861c, 19631c9efb0bSTaniya Das .halt_check = BRANCH_HALT_VOTED, 19641c9efb0bSTaniya Das .clkr = { 19651c9efb0bSTaniya Das .enable_reg = 0x62008, 19661c9efb0bSTaniya Das .enable_mask = BIT(26), 19671c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 19681c9efb0bSTaniya Das .name = "gcc_qupv3_wrap1_s4_clk", 19691c9efb0bSTaniya Das .parent_hws = (const struct clk_hw*[]) { 19701c9efb0bSTaniya Das &gcc_qupv3_wrap1_s4_clk_src.clkr.hw, 19711c9efb0bSTaniya Das }, 19721c9efb0bSTaniya Das .num_parents = 1, 19731c9efb0bSTaniya Das .flags = CLK_SET_RATE_PARENT, 19741c9efb0bSTaniya Das .ops = &clk_branch2_ops, 19751c9efb0bSTaniya Das }, 19761c9efb0bSTaniya Das }, 19771c9efb0bSTaniya Das }; 19781c9efb0bSTaniya Das 19791c9efb0bSTaniya Das static struct clk_branch gcc_qupv3_wrap1_s5_clk = { 19801c9efb0bSTaniya Das .halt_reg = 0x28750, 19811c9efb0bSTaniya Das .halt_check = BRANCH_HALT_VOTED, 19821c9efb0bSTaniya Das .clkr = { 19831c9efb0bSTaniya Das .enable_reg = 0x62008, 19841c9efb0bSTaniya Das .enable_mask = BIT(27), 19851c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 19861c9efb0bSTaniya Das .name = "gcc_qupv3_wrap1_s5_clk", 19871c9efb0bSTaniya Das .parent_hws = (const struct clk_hw*[]) { 19881c9efb0bSTaniya Das &gcc_qupv3_wrap1_s5_clk_src.clkr.hw, 19891c9efb0bSTaniya Das }, 19901c9efb0bSTaniya Das .num_parents = 1, 19911c9efb0bSTaniya Das .flags = CLK_SET_RATE_PARENT, 19921c9efb0bSTaniya Das .ops = &clk_branch2_ops, 19931c9efb0bSTaniya Das }, 19941c9efb0bSTaniya Das }, 19951c9efb0bSTaniya Das }; 19961c9efb0bSTaniya Das 19971c9efb0bSTaniya Das static struct clk_branch gcc_qupv3_wrap1_s6_clk = { 19981c9efb0bSTaniya Das .halt_reg = 0x28884, 19991c9efb0bSTaniya Das .halt_check = BRANCH_HALT_VOTED, 20001c9efb0bSTaniya Das .clkr = { 20011c9efb0bSTaniya Das .enable_reg = 0x62008, 20021c9efb0bSTaniya Das .enable_mask = BIT(28), 20031c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 20041c9efb0bSTaniya Das .name = "gcc_qupv3_wrap1_s6_clk", 20051c9efb0bSTaniya Das .parent_hws = (const struct clk_hw*[]) { 20061c9efb0bSTaniya Das &gcc_qupv3_wrap1_s6_clk_src.clkr.hw, 20071c9efb0bSTaniya Das }, 20081c9efb0bSTaniya Das .num_parents = 1, 20091c9efb0bSTaniya Das .flags = CLK_SET_RATE_PARENT, 20101c9efb0bSTaniya Das .ops = &clk_branch2_ops, 20111c9efb0bSTaniya Das }, 20121c9efb0bSTaniya Das }, 20131c9efb0bSTaniya Das }; 20141c9efb0bSTaniya Das 20151c9efb0bSTaniya Das static struct clk_branch gcc_qupv3_wrap1_s7_clk = { 20161c9efb0bSTaniya Das .halt_reg = 0x289b8, 20171c9efb0bSTaniya Das .halt_check = BRANCH_HALT_VOTED, 20181c9efb0bSTaniya Das .clkr = { 20191c9efb0bSTaniya Das .enable_reg = 0x62008, 20201c9efb0bSTaniya Das .enable_mask = BIT(29), 20211c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 20221c9efb0bSTaniya Das .name = "gcc_qupv3_wrap1_s7_clk", 20231c9efb0bSTaniya Das .parent_hws = (const struct clk_hw*[]) { 20241c9efb0bSTaniya Das &gcc_qupv3_wrap1_s7_clk_src.clkr.hw, 20251c9efb0bSTaniya Das }, 20261c9efb0bSTaniya Das .num_parents = 1, 20271c9efb0bSTaniya Das .flags = CLK_SET_RATE_PARENT, 20281c9efb0bSTaniya Das .ops = &clk_branch2_ops, 20291c9efb0bSTaniya Das }, 20301c9efb0bSTaniya Das }, 20311c9efb0bSTaniya Das }; 20321c9efb0bSTaniya Das 20331c9efb0bSTaniya Das static struct clk_branch gcc_qupv3_wrap_0_m_ahb_clk = { 20341c9efb0bSTaniya Das .halt_reg = 0x27004, 20351c9efb0bSTaniya Das .halt_check = BRANCH_HALT_VOTED, 20361c9efb0bSTaniya Das .hwcg_reg = 0x27004, 20371c9efb0bSTaniya Das .hwcg_bit = 1, 20381c9efb0bSTaniya Das .clkr = { 20391c9efb0bSTaniya Das .enable_reg = 0x62008, 20401c9efb0bSTaniya Das .enable_mask = BIT(6), 20411c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 20421c9efb0bSTaniya Das .name = "gcc_qupv3_wrap_0_m_ahb_clk", 20431c9efb0bSTaniya Das .ops = &clk_branch2_ops, 20441c9efb0bSTaniya Das }, 20451c9efb0bSTaniya Das }, 20461c9efb0bSTaniya Das }; 20471c9efb0bSTaniya Das 20481c9efb0bSTaniya Das static struct clk_branch gcc_qupv3_wrap_0_s_ahb_clk = { 20491c9efb0bSTaniya Das .halt_reg = 0x27008, 20501c9efb0bSTaniya Das .halt_check = BRANCH_HALT_VOTED, 20511c9efb0bSTaniya Das .hwcg_reg = 0x27008, 20521c9efb0bSTaniya Das .hwcg_bit = 1, 20531c9efb0bSTaniya Das .clkr = { 20541c9efb0bSTaniya Das .enable_reg = 0x62008, 20551c9efb0bSTaniya Das .enable_mask = BIT(7), 20561c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 20571c9efb0bSTaniya Das .name = "gcc_qupv3_wrap_0_s_ahb_clk", 20581c9efb0bSTaniya Das .ops = &clk_branch2_ops, 20591c9efb0bSTaniya Das }, 20601c9efb0bSTaniya Das }, 20611c9efb0bSTaniya Das }; 20621c9efb0bSTaniya Das 20631c9efb0bSTaniya Das static struct clk_branch gcc_qupv3_wrap_1_m_ahb_clk = { 20641c9efb0bSTaniya Das .halt_reg = 0x28004, 20651c9efb0bSTaniya Das .halt_check = BRANCH_HALT_VOTED, 20661c9efb0bSTaniya Das .hwcg_reg = 0x28004, 20671c9efb0bSTaniya Das .hwcg_bit = 1, 20681c9efb0bSTaniya Das .clkr = { 20691c9efb0bSTaniya Das .enable_reg = 0x62008, 20701c9efb0bSTaniya Das .enable_mask = BIT(20), 20711c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 20721c9efb0bSTaniya Das .name = "gcc_qupv3_wrap_1_m_ahb_clk", 20731c9efb0bSTaniya Das .ops = &clk_branch2_ops, 20741c9efb0bSTaniya Das }, 20751c9efb0bSTaniya Das }, 20761c9efb0bSTaniya Das }; 20771c9efb0bSTaniya Das 20781c9efb0bSTaniya Das static struct clk_branch gcc_qupv3_wrap_1_s_ahb_clk = { 20791c9efb0bSTaniya Das .halt_reg = 0x28008, 20801c9efb0bSTaniya Das .halt_check = BRANCH_HALT_VOTED, 20811c9efb0bSTaniya Das .hwcg_reg = 0x28008, 20821c9efb0bSTaniya Das .hwcg_bit = 1, 20831c9efb0bSTaniya Das .clkr = { 20841c9efb0bSTaniya Das .enable_reg = 0x62008, 20851c9efb0bSTaniya Das .enable_mask = BIT(21), 20861c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 20871c9efb0bSTaniya Das .name = "gcc_qupv3_wrap_1_s_ahb_clk", 20881c9efb0bSTaniya Das .ops = &clk_branch2_ops, 20891c9efb0bSTaniya Das }, 20901c9efb0bSTaniya Das }, 20911c9efb0bSTaniya Das }; 20921c9efb0bSTaniya Das 20931c9efb0bSTaniya Das static struct clk_branch gcc_sdcc5_ahb_clk = { 20941c9efb0bSTaniya Das .halt_reg = 0x3b00c, 20951c9efb0bSTaniya Das .halt_check = BRANCH_HALT, 20961c9efb0bSTaniya Das .clkr = { 20971c9efb0bSTaniya Das .enable_reg = 0x3b00c, 20981c9efb0bSTaniya Das .enable_mask = BIT(0), 20991c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 21001c9efb0bSTaniya Das .name = "gcc_sdcc5_ahb_clk", 21011c9efb0bSTaniya Das .ops = &clk_branch2_ops, 21021c9efb0bSTaniya Das }, 21031c9efb0bSTaniya Das }, 21041c9efb0bSTaniya Das }; 21051c9efb0bSTaniya Das 21061c9efb0bSTaniya Das static struct clk_branch gcc_sdcc5_apps_clk = { 21071c9efb0bSTaniya Das .halt_reg = 0x3b004, 21081c9efb0bSTaniya Das .halt_check = BRANCH_HALT, 21091c9efb0bSTaniya Das .clkr = { 21101c9efb0bSTaniya Das .enable_reg = 0x3b004, 21111c9efb0bSTaniya Das .enable_mask = BIT(0), 21121c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 21131c9efb0bSTaniya Das .name = "gcc_sdcc5_apps_clk", 21141c9efb0bSTaniya Das .parent_hws = (const struct clk_hw*[]) { 21151c9efb0bSTaniya Das &gcc_sdcc5_apps_clk_src.clkr.hw, 21161c9efb0bSTaniya Das }, 21171c9efb0bSTaniya Das .num_parents = 1, 21181c9efb0bSTaniya Das .flags = CLK_SET_RATE_PARENT, 21191c9efb0bSTaniya Das .ops = &clk_branch2_ops, 21201c9efb0bSTaniya Das }, 21211c9efb0bSTaniya Das }, 21221c9efb0bSTaniya Das }; 21231c9efb0bSTaniya Das 21241c9efb0bSTaniya Das static struct clk_branch gcc_sdcc5_ice_core_clk = { 21251c9efb0bSTaniya Das .halt_reg = 0x3b010, 21261c9efb0bSTaniya Das .halt_check = BRANCH_HALT, 21271c9efb0bSTaniya Das .clkr = { 21281c9efb0bSTaniya Das .enable_reg = 0x3b010, 21291c9efb0bSTaniya Das .enable_mask = BIT(0), 21301c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 21311c9efb0bSTaniya Das .name = "gcc_sdcc5_ice_core_clk", 21321c9efb0bSTaniya Das .parent_hws = (const struct clk_hw*[]) { 21331c9efb0bSTaniya Das &gcc_sdcc5_ice_core_clk_src.clkr.hw, 21341c9efb0bSTaniya Das }, 21351c9efb0bSTaniya Das .num_parents = 1, 21361c9efb0bSTaniya Das .flags = CLK_SET_RATE_PARENT, 21371c9efb0bSTaniya Das .ops = &clk_branch2_ops, 21381c9efb0bSTaniya Das }, 21391c9efb0bSTaniya Das }, 21401c9efb0bSTaniya Das }; 21411c9efb0bSTaniya Das 21421c9efb0bSTaniya Das static struct clk_branch gcc_sm_bus_ahb_clk = { 21431c9efb0bSTaniya Das .halt_reg = 0x5b004, 21441c9efb0bSTaniya Das .halt_check = BRANCH_HALT, 21451c9efb0bSTaniya Das .clkr = { 21461c9efb0bSTaniya Das .enable_reg = 0x5b004, 21471c9efb0bSTaniya Das .enable_mask = BIT(0), 21481c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 21491c9efb0bSTaniya Das .name = "gcc_sm_bus_ahb_clk", 21501c9efb0bSTaniya Das .ops = &clk_branch2_ops, 21511c9efb0bSTaniya Das }, 21521c9efb0bSTaniya Das }, 21531c9efb0bSTaniya Das }; 21541c9efb0bSTaniya Das 21551c9efb0bSTaniya Das static struct clk_branch gcc_sm_bus_xo_clk = { 21561c9efb0bSTaniya Das .halt_reg = 0x5b008, 21571c9efb0bSTaniya Das .halt_check = BRANCH_HALT, 21581c9efb0bSTaniya Das .clkr = { 21591c9efb0bSTaniya Das .enable_reg = 0x5b008, 21601c9efb0bSTaniya Das .enable_mask = BIT(0), 21611c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 21621c9efb0bSTaniya Das .name = "gcc_sm_bus_xo_clk", 21631c9efb0bSTaniya Das .parent_hws = (const struct clk_hw*[]) { 21641c9efb0bSTaniya Das &gcc_sm_bus_xo_clk_src.clkr.hw, 21651c9efb0bSTaniya Das }, 21661c9efb0bSTaniya Das .num_parents = 1, 21671c9efb0bSTaniya Das .flags = CLK_SET_RATE_PARENT, 21681c9efb0bSTaniya Das .ops = &clk_branch2_ops, 21691c9efb0bSTaniya Das }, 21701c9efb0bSTaniya Das }, 21711c9efb0bSTaniya Das }; 21721c9efb0bSTaniya Das 21731c9efb0bSTaniya Das static struct clk_branch gcc_snoc_cnoc_gemnoc_pcie_qx_clk = { 21741c9efb0bSTaniya Das .halt_reg = 0x9200c, 21751c9efb0bSTaniya Das .halt_check = BRANCH_HALT_SKIP, 21761c9efb0bSTaniya Das .hwcg_reg = 0x9200c, 21771c9efb0bSTaniya Das .hwcg_bit = 1, 21781c9efb0bSTaniya Das .clkr = { 21791c9efb0bSTaniya Das .enable_reg = 0x62000, 21801c9efb0bSTaniya Das .enable_mask = BIT(11), 21811c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 21821c9efb0bSTaniya Das .name = "gcc_snoc_cnoc_gemnoc_pcie_qx_clk", 21831c9efb0bSTaniya Das .ops = &clk_branch2_ops, 21841c9efb0bSTaniya Das }, 21851c9efb0bSTaniya Das }, 21861c9efb0bSTaniya Das }; 21871c9efb0bSTaniya Das 21881c9efb0bSTaniya Das static struct clk_branch gcc_snoc_cnoc_gemnoc_pcie_south_qx_clk = { 21891c9efb0bSTaniya Das .halt_reg = 0x92010, 21901c9efb0bSTaniya Das .halt_check = BRANCH_HALT_SKIP, 21911c9efb0bSTaniya Das .hwcg_reg = 0x92010, 21921c9efb0bSTaniya Das .hwcg_bit = 1, 21931c9efb0bSTaniya Das .clkr = { 21941c9efb0bSTaniya Das .enable_reg = 0x62000, 21951c9efb0bSTaniya Das .enable_mask = BIT(12), 21961c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 21971c9efb0bSTaniya Das .name = "gcc_snoc_cnoc_gemnoc_pcie_south_qx_clk", 21981c9efb0bSTaniya Das .ops = &clk_branch2_ops, 21991c9efb0bSTaniya Das }, 22001c9efb0bSTaniya Das }, 22011c9efb0bSTaniya Das }; 22021c9efb0bSTaniya Das 22031c9efb0bSTaniya Das static struct clk_branch gcc_snoc_cnoc_pcie_qx_clk = { 22041c9efb0bSTaniya Das .halt_reg = 0x84030, 22051c9efb0bSTaniya Das .halt_check = BRANCH_HALT, 22061c9efb0bSTaniya Das .clkr = { 22071c9efb0bSTaniya Das .enable_reg = 0x84030, 22081c9efb0bSTaniya Das .enable_mask = BIT(0), 22091c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 22101c9efb0bSTaniya Das .name = "gcc_snoc_cnoc_pcie_qx_clk", 22111c9efb0bSTaniya Das .ops = &clk_branch2_ops, 22121c9efb0bSTaniya Das }, 22131c9efb0bSTaniya Das }, 22141c9efb0bSTaniya Das }; 22151c9efb0bSTaniya Das 22161c9efb0bSTaniya Das static struct clk_branch gcc_snoc_pcie_sf_center_qx_clk = { 22171c9efb0bSTaniya Das .halt_reg = 0x92014, 22181c9efb0bSTaniya Das .halt_check = BRANCH_HALT_SKIP, 22191c9efb0bSTaniya Das .hwcg_reg = 0x92014, 22201c9efb0bSTaniya Das .hwcg_bit = 1, 22211c9efb0bSTaniya Das .clkr = { 22221c9efb0bSTaniya Das .enable_reg = 0x62000, 22231c9efb0bSTaniya Das .enable_mask = BIT(19), 22241c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 22251c9efb0bSTaniya Das .name = "gcc_snoc_pcie_sf_center_qx_clk", 22261c9efb0bSTaniya Das .ops = &clk_branch2_ops, 22271c9efb0bSTaniya Das }, 22281c9efb0bSTaniya Das }, 22291c9efb0bSTaniya Das }; 22301c9efb0bSTaniya Das 22311c9efb0bSTaniya Das static struct clk_branch gcc_snoc_pcie_sf_south_qx_clk = { 22321c9efb0bSTaniya Das .halt_reg = 0x92018, 22331c9efb0bSTaniya Das .halt_check = BRANCH_HALT_SKIP, 22341c9efb0bSTaniya Das .hwcg_reg = 0x92018, 22351c9efb0bSTaniya Das .hwcg_bit = 1, 22361c9efb0bSTaniya Das .clkr = { 22371c9efb0bSTaniya Das .enable_reg = 0x62000, 22381c9efb0bSTaniya Das .enable_mask = BIT(22), 22391c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 22401c9efb0bSTaniya Das .name = "gcc_snoc_pcie_sf_south_qx_clk", 22411c9efb0bSTaniya Das .ops = &clk_branch2_ops, 22421c9efb0bSTaniya Das }, 22431c9efb0bSTaniya Das }, 22441c9efb0bSTaniya Das }; 22451c9efb0bSTaniya Das 22461c9efb0bSTaniya Das static struct clk_branch gcc_tsc_cfg_ahb_clk = { 22471c9efb0bSTaniya Das .halt_reg = 0x5700c, 22481c9efb0bSTaniya Das .halt_check = BRANCH_HALT, 22491c9efb0bSTaniya Das .clkr = { 22501c9efb0bSTaniya Das .enable_reg = 0x5700c, 22511c9efb0bSTaniya Das .enable_mask = BIT(0), 22521c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 22531c9efb0bSTaniya Das .name = "gcc_tsc_cfg_ahb_clk", 22541c9efb0bSTaniya Das .ops = &clk_branch2_ops, 22551c9efb0bSTaniya Das }, 22561c9efb0bSTaniya Das }, 22571c9efb0bSTaniya Das }; 22581c9efb0bSTaniya Das 22591c9efb0bSTaniya Das static struct clk_branch gcc_tsc_cntr_clk = { 22601c9efb0bSTaniya Das .halt_reg = 0x57004, 22611c9efb0bSTaniya Das .halt_check = BRANCH_HALT, 22621c9efb0bSTaniya Das .clkr = { 22631c9efb0bSTaniya Das .enable_reg = 0x57004, 22641c9efb0bSTaniya Das .enable_mask = BIT(0), 22651c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 22661c9efb0bSTaniya Das .name = "gcc_tsc_cntr_clk", 22671c9efb0bSTaniya Das .parent_hws = (const struct clk_hw*[]) { 22681c9efb0bSTaniya Das &gcc_tsc_clk_src.clkr.hw, 22691c9efb0bSTaniya Das }, 22701c9efb0bSTaniya Das .num_parents = 1, 22711c9efb0bSTaniya Das .flags = CLK_SET_RATE_PARENT, 22721c9efb0bSTaniya Das .ops = &clk_branch2_ops, 22731c9efb0bSTaniya Das }, 22741c9efb0bSTaniya Das }, 22751c9efb0bSTaniya Das }; 22761c9efb0bSTaniya Das 22771c9efb0bSTaniya Das static struct clk_branch gcc_tsc_etu_clk = { 22781c9efb0bSTaniya Das .halt_reg = 0x57008, 22791c9efb0bSTaniya Das .halt_check = BRANCH_HALT, 22801c9efb0bSTaniya Das .clkr = { 22811c9efb0bSTaniya Das .enable_reg = 0x57008, 22821c9efb0bSTaniya Das .enable_mask = BIT(0), 22831c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 22841c9efb0bSTaniya Das .name = "gcc_tsc_etu_clk", 22851c9efb0bSTaniya Das .parent_hws = (const struct clk_hw*[]) { 22861c9efb0bSTaniya Das &gcc_tsc_clk_src.clkr.hw, 22871c9efb0bSTaniya Das }, 22881c9efb0bSTaniya Das .num_parents = 1, 22891c9efb0bSTaniya Das .flags = CLK_SET_RATE_PARENT, 22901c9efb0bSTaniya Das .ops = &clk_branch2_ops, 22911c9efb0bSTaniya Das }, 22921c9efb0bSTaniya Das }, 22931c9efb0bSTaniya Das }; 22941c9efb0bSTaniya Das 22951c9efb0bSTaniya Das static struct clk_branch gcc_usb2_clkref_en = { 22961c9efb0bSTaniya Das .halt_reg = 0x9c008, 22972524dae5SImran Shaik .halt_check = BRANCH_HALT, 22981c9efb0bSTaniya Das .clkr = { 22991c9efb0bSTaniya Das .enable_reg = 0x9c008, 23001c9efb0bSTaniya Das .enable_mask = BIT(0), 23011c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 23021c9efb0bSTaniya Das .name = "gcc_usb2_clkref_en", 23032524dae5SImran Shaik .ops = &clk_branch2_ops, 23041c9efb0bSTaniya Das }, 23051c9efb0bSTaniya Das }, 23061c9efb0bSTaniya Das }; 23071c9efb0bSTaniya Das 23081c9efb0bSTaniya Das static struct clk_branch gcc_usb30_prim_master_clk = { 23091c9efb0bSTaniya Das .halt_reg = 0x49018, 23101c9efb0bSTaniya Das .halt_check = BRANCH_HALT, 23111c9efb0bSTaniya Das .clkr = { 23121c9efb0bSTaniya Das .enable_reg = 0x49018, 23131c9efb0bSTaniya Das .enable_mask = BIT(0), 23141c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 23151c9efb0bSTaniya Das .name = "gcc_usb30_prim_master_clk", 23161c9efb0bSTaniya Das .parent_hws = (const struct clk_hw*[]) { 23171c9efb0bSTaniya Das &gcc_usb30_prim_master_clk_src.clkr.hw, 23181c9efb0bSTaniya Das }, 23191c9efb0bSTaniya Das .num_parents = 1, 23201c9efb0bSTaniya Das .flags = CLK_SET_RATE_PARENT, 23211c9efb0bSTaniya Das .ops = &clk_branch2_ops, 23221c9efb0bSTaniya Das }, 23231c9efb0bSTaniya Das }, 23241c9efb0bSTaniya Das }; 23251c9efb0bSTaniya Das 23261c9efb0bSTaniya Das static struct clk_branch gcc_usb30_prim_mock_utmi_clk = { 23271c9efb0bSTaniya Das .halt_reg = 0x49024, 23281c9efb0bSTaniya Das .halt_check = BRANCH_HALT, 23291c9efb0bSTaniya Das .clkr = { 23301c9efb0bSTaniya Das .enable_reg = 0x49024, 23311c9efb0bSTaniya Das .enable_mask = BIT(0), 23321c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 23331c9efb0bSTaniya Das .name = "gcc_usb30_prim_mock_utmi_clk", 23341c9efb0bSTaniya Das .parent_hws = (const struct clk_hw*[]) { 23351c9efb0bSTaniya Das &gcc_usb30_prim_mock_utmi_postdiv_clk_src.clkr.hw, 23361c9efb0bSTaniya Das }, 23371c9efb0bSTaniya Das .num_parents = 1, 23381c9efb0bSTaniya Das .flags = CLK_SET_RATE_PARENT, 23391c9efb0bSTaniya Das .ops = &clk_branch2_ops, 23401c9efb0bSTaniya Das }, 23411c9efb0bSTaniya Das }, 23421c9efb0bSTaniya Das }; 23431c9efb0bSTaniya Das 23441c9efb0bSTaniya Das static struct clk_branch gcc_usb30_prim_sleep_clk = { 23451c9efb0bSTaniya Das .halt_reg = 0x49020, 23461c9efb0bSTaniya Das .halt_check = BRANCH_HALT, 23471c9efb0bSTaniya Das .clkr = { 23481c9efb0bSTaniya Das .enable_reg = 0x49020, 23491c9efb0bSTaniya Das .enable_mask = BIT(0), 23501c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 23511c9efb0bSTaniya Das .name = "gcc_usb30_prim_sleep_clk", 23521c9efb0bSTaniya Das .ops = &clk_branch2_ops, 23531c9efb0bSTaniya Das }, 23541c9efb0bSTaniya Das }, 23551c9efb0bSTaniya Das }; 23561c9efb0bSTaniya Das 23571c9efb0bSTaniya Das static struct clk_branch gcc_usb3_prim_phy_aux_clk = { 23581c9efb0bSTaniya Das .halt_reg = 0x49060, 23591c9efb0bSTaniya Das .halt_check = BRANCH_HALT, 23601c9efb0bSTaniya Das .clkr = { 23611c9efb0bSTaniya Das .enable_reg = 0x49060, 23621c9efb0bSTaniya Das .enable_mask = BIT(0), 23631c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 23641c9efb0bSTaniya Das .name = "gcc_usb3_prim_phy_aux_clk", 23651c9efb0bSTaniya Das .parent_hws = (const struct clk_hw*[]) { 23661c9efb0bSTaniya Das &gcc_usb3_prim_phy_aux_clk_src.clkr.hw, 23671c9efb0bSTaniya Das }, 23681c9efb0bSTaniya Das .num_parents = 1, 23691c9efb0bSTaniya Das .flags = CLK_SET_RATE_PARENT, 23701c9efb0bSTaniya Das .ops = &clk_branch2_ops, 23711c9efb0bSTaniya Das }, 23721c9efb0bSTaniya Das }, 23731c9efb0bSTaniya Das }; 23741c9efb0bSTaniya Das 23751c9efb0bSTaniya Das static struct clk_branch gcc_usb3_prim_phy_com_aux_clk = { 23761c9efb0bSTaniya Das .halt_reg = 0x49064, 23771c9efb0bSTaniya Das .halt_check = BRANCH_HALT, 23781c9efb0bSTaniya Das .clkr = { 23791c9efb0bSTaniya Das .enable_reg = 0x49064, 23801c9efb0bSTaniya Das .enable_mask = BIT(0), 23811c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 23821c9efb0bSTaniya Das .name = "gcc_usb3_prim_phy_com_aux_clk", 23831c9efb0bSTaniya Das .parent_hws = (const struct clk_hw*[]) { 23841c9efb0bSTaniya Das &gcc_usb3_prim_phy_aux_clk_src.clkr.hw, 23851c9efb0bSTaniya Das }, 23861c9efb0bSTaniya Das .num_parents = 1, 23871c9efb0bSTaniya Das .flags = CLK_SET_RATE_PARENT, 23881c9efb0bSTaniya Das .ops = &clk_branch2_ops, 23891c9efb0bSTaniya Das }, 23901c9efb0bSTaniya Das }, 23911c9efb0bSTaniya Das }; 23921c9efb0bSTaniya Das 23931c9efb0bSTaniya Das static struct clk_branch gcc_usb3_prim_phy_pipe_clk = { 23941c9efb0bSTaniya Das .halt_reg = 0x49068, 23951c9efb0bSTaniya Das .halt_check = BRANCH_HALT_DELAY, 23961c9efb0bSTaniya Das .hwcg_reg = 0x49068, 23971c9efb0bSTaniya Das .hwcg_bit = 1, 23981c9efb0bSTaniya Das .clkr = { 23991c9efb0bSTaniya Das .enable_reg = 0x49068, 24001c9efb0bSTaniya Das .enable_mask = BIT(0), 24011c9efb0bSTaniya Das .hw.init = &(const struct clk_init_data) { 24021c9efb0bSTaniya Das .name = "gcc_usb3_prim_phy_pipe_clk", 24031c9efb0bSTaniya Das .parent_hws = (const struct clk_hw*[]) { 24041c9efb0bSTaniya Das &gcc_usb3_prim_phy_pipe_clk_src.clkr.hw, 24051c9efb0bSTaniya Das }, 24061c9efb0bSTaniya Das .num_parents = 1, 24071c9efb0bSTaniya Das .flags = CLK_SET_RATE_PARENT, 24081c9efb0bSTaniya Das .ops = &clk_branch2_ops, 24091c9efb0bSTaniya Das }, 24101c9efb0bSTaniya Das }, 24111c9efb0bSTaniya Das }; 24121c9efb0bSTaniya Das 2413*76346cf7SImran Shaik static struct gdsc pcie_0_gdsc = { 2414*76346cf7SImran Shaik .gdscr = 0x9d004, 2415*76346cf7SImran Shaik .en_rest_wait_val = 0x2, 2416*76346cf7SImran Shaik .en_few_wait_val = 0x2, 2417*76346cf7SImran Shaik .clk_dis_wait_val = 0xf, 2418*76346cf7SImran Shaik .pd = { 2419*76346cf7SImran Shaik .name = "gcc_pcie_0_gdsc", 2420*76346cf7SImran Shaik }, 2421*76346cf7SImran Shaik .pwrsts = PWRSTS_OFF_ON, 2422*76346cf7SImran Shaik }; 2423*76346cf7SImran Shaik 2424*76346cf7SImran Shaik static struct gdsc pcie_0_phy_gdsc = { 2425*76346cf7SImran Shaik .gdscr = 0x7c004, 2426*76346cf7SImran Shaik .en_rest_wait_val = 0x2, 2427*76346cf7SImran Shaik .en_few_wait_val = 0x2, 2428*76346cf7SImran Shaik .clk_dis_wait_val = 0x2, 2429*76346cf7SImran Shaik .pd = { 2430*76346cf7SImran Shaik .name = "gcc_pcie_0_phy_gdsc", 2431*76346cf7SImran Shaik }, 2432*76346cf7SImran Shaik .pwrsts = PWRSTS_OFF_ON, 2433*76346cf7SImran Shaik }; 2434*76346cf7SImran Shaik 2435*76346cf7SImran Shaik static struct gdsc usb30_prim_gdsc = { 2436*76346cf7SImran Shaik .gdscr = 0x49004, 2437*76346cf7SImran Shaik .en_rest_wait_val = 0x2, 2438*76346cf7SImran Shaik .en_few_wait_val = 0x2, 2439*76346cf7SImran Shaik .clk_dis_wait_val = 0xf, 2440*76346cf7SImran Shaik .pd = { 2441*76346cf7SImran Shaik .name = "gcc_usb30_prim_gdsc", 2442*76346cf7SImran Shaik }, 2443*76346cf7SImran Shaik .pwrsts = PWRSTS_OFF_ON, 2444*76346cf7SImran Shaik }; 2445*76346cf7SImran Shaik 24461c9efb0bSTaniya Das static struct clk_regmap *gcc_qdu1000_clocks[] = { 24471c9efb0bSTaniya Das [GCC_AGGRE_NOC_ECPRI_DMA_CLK] = &gcc_aggre_noc_ecpri_dma_clk.clkr, 24481c9efb0bSTaniya Das [GCC_AGGRE_NOC_ECPRI_DMA_CLK_SRC] = &gcc_aggre_noc_ecpri_dma_clk_src.clkr, 24491c9efb0bSTaniya Das [GCC_AGGRE_NOC_ECPRI_GSI_CLK_SRC] = &gcc_aggre_noc_ecpri_gsi_clk_src.clkr, 24501c9efb0bSTaniya Das [GCC_BOOT_ROM_AHB_CLK] = &gcc_boot_rom_ahb_clk.clkr, 24511c9efb0bSTaniya Das [GCC_CFG_NOC_ECPRI_CC_AHB_CLK] = &gcc_cfg_noc_ecpri_cc_ahb_clk.clkr, 24521c9efb0bSTaniya Das [GCC_CFG_NOC_USB3_PRIM_AXI_CLK] = &gcc_cfg_noc_usb3_prim_axi_clk.clkr, 24531c9efb0bSTaniya Das [GCC_DDRSS_ECPRI_DMA_CLK] = &gcc_ddrss_ecpri_dma_clk.clkr, 24541c9efb0bSTaniya Das [GCC_ECPRI_AHB_CLK] = &gcc_ecpri_ahb_clk.clkr, 24551c9efb0bSTaniya Das [GCC_ECPRI_CC_GPLL0_CLK_SRC] = &gcc_ecpri_cc_gpll0_clk_src.clkr, 24561c9efb0bSTaniya Das [GCC_ECPRI_CC_GPLL1_EVEN_CLK_SRC] = &gcc_ecpri_cc_gpll1_even_clk_src.clkr, 24571c9efb0bSTaniya Das [GCC_ECPRI_CC_GPLL2_EVEN_CLK_SRC] = &gcc_ecpri_cc_gpll2_even_clk_src.clkr, 24581c9efb0bSTaniya Das [GCC_ECPRI_CC_GPLL3_CLK_SRC] = &gcc_ecpri_cc_gpll3_clk_src.clkr, 24591c9efb0bSTaniya Das [GCC_ECPRI_CC_GPLL4_CLK_SRC] = &gcc_ecpri_cc_gpll4_clk_src.clkr, 24601c9efb0bSTaniya Das [GCC_ECPRI_CC_GPLL5_EVEN_CLK_SRC] = &gcc_ecpri_cc_gpll5_even_clk_src.clkr, 24611c9efb0bSTaniya Das [GCC_ECPRI_XO_CLK] = &gcc_ecpri_xo_clk.clkr, 24621c9efb0bSTaniya Das [GCC_ETH_DBG_SNOC_AXI_CLK] = &gcc_eth_dbg_snoc_axi_clk.clkr, 24631c9efb0bSTaniya Das [GCC_GEMNOC_PCIE_QX_CLK] = &gcc_gemnoc_pcie_qx_clk.clkr, 24641c9efb0bSTaniya Das [GCC_GP1_CLK] = &gcc_gp1_clk.clkr, 24651c9efb0bSTaniya Das [GCC_GP1_CLK_SRC] = &gcc_gp1_clk_src.clkr, 24661c9efb0bSTaniya Das [GCC_GP2_CLK] = &gcc_gp2_clk.clkr, 24671c9efb0bSTaniya Das [GCC_GP2_CLK_SRC] = &gcc_gp2_clk_src.clkr, 24681c9efb0bSTaniya Das [GCC_GP3_CLK] = &gcc_gp3_clk.clkr, 24691c9efb0bSTaniya Das [GCC_GP3_CLK_SRC] = &gcc_gp3_clk_src.clkr, 24701c9efb0bSTaniya Das [GCC_GPLL0] = &gcc_gpll0.clkr, 24711c9efb0bSTaniya Das [GCC_GPLL0_OUT_EVEN] = &gcc_gpll0_out_even.clkr, 24721c9efb0bSTaniya Das [GCC_GPLL1] = &gcc_gpll1.clkr, 24731c9efb0bSTaniya Das [GCC_GPLL2] = &gcc_gpll2.clkr, 24741c9efb0bSTaniya Das [GCC_GPLL2_OUT_EVEN] = &gcc_gpll2_out_even.clkr, 24751c9efb0bSTaniya Das [GCC_GPLL3] = &gcc_gpll3.clkr, 24761c9efb0bSTaniya Das [GCC_GPLL4] = &gcc_gpll4.clkr, 24771c9efb0bSTaniya Das [GCC_GPLL5] = &gcc_gpll5.clkr, 24781c9efb0bSTaniya Das [GCC_GPLL5_OUT_EVEN] = &gcc_gpll5_out_even.clkr, 24791c9efb0bSTaniya Das [GCC_GPLL6] = &gcc_gpll6.clkr, 24801c9efb0bSTaniya Das [GCC_GPLL7] = &gcc_gpll7.clkr, 24811c9efb0bSTaniya Das [GCC_GPLL8] = &gcc_gpll8.clkr, 24821c9efb0bSTaniya Das [GCC_PCIE_0_AUX_CLK] = &gcc_pcie_0_aux_clk.clkr, 24831c9efb0bSTaniya Das [GCC_PCIE_0_AUX_CLK_SRC] = &gcc_pcie_0_aux_clk_src.clkr, 24841c9efb0bSTaniya Das [GCC_PCIE_0_CFG_AHB_CLK] = &gcc_pcie_0_cfg_ahb_clk.clkr, 24851c9efb0bSTaniya Das [GCC_PCIE_0_CLKREF_EN] = &gcc_pcie_0_clkref_en.clkr, 24861c9efb0bSTaniya Das [GCC_PCIE_0_MSTR_AXI_CLK] = &gcc_pcie_0_mstr_axi_clk.clkr, 24871c9efb0bSTaniya Das [GCC_PCIE_0_PHY_AUX_CLK] = &gcc_pcie_0_phy_aux_clk.clkr, 24881c9efb0bSTaniya Das [GCC_PCIE_0_PHY_RCHNG_CLK] = &gcc_pcie_0_phy_rchng_clk.clkr, 24891c9efb0bSTaniya Das [GCC_PCIE_0_PHY_RCHNG_CLK_SRC] = &gcc_pcie_0_phy_rchng_clk_src.clkr, 24901c9efb0bSTaniya Das [GCC_PCIE_0_PIPE_CLK] = &gcc_pcie_0_pipe_clk.clkr, 24911c9efb0bSTaniya Das [GCC_PCIE_0_SLV_AXI_CLK] = &gcc_pcie_0_slv_axi_clk.clkr, 24921c9efb0bSTaniya Das [GCC_PCIE_0_SLV_Q2A_AXI_CLK] = &gcc_pcie_0_slv_q2a_axi_clk.clkr, 24931c9efb0bSTaniya Das [GCC_PDM2_CLK] = &gcc_pdm2_clk.clkr, 24941c9efb0bSTaniya Das [GCC_PDM2_CLK_SRC] = &gcc_pdm2_clk_src.clkr, 24951c9efb0bSTaniya Das [GCC_PDM_AHB_CLK] = &gcc_pdm_ahb_clk.clkr, 24961c9efb0bSTaniya Das [GCC_PDM_XO4_CLK] = &gcc_pdm_xo4_clk.clkr, 24971c9efb0bSTaniya Das [GCC_QMIP_ANOC_PCIE_CLK] = &gcc_qmip_anoc_pcie_clk.clkr, 24981c9efb0bSTaniya Das [GCC_QMIP_ECPRI_DMA0_CLK] = &gcc_qmip_ecpri_dma0_clk.clkr, 24991c9efb0bSTaniya Das [GCC_QMIP_ECPRI_DMA1_CLK] = &gcc_qmip_ecpri_dma1_clk.clkr, 25001c9efb0bSTaniya Das [GCC_QMIP_ECPRI_GSI_CLK] = &gcc_qmip_ecpri_gsi_clk.clkr, 25011c9efb0bSTaniya Das [GCC_QUPV3_WRAP0_CORE_2X_CLK] = &gcc_qupv3_wrap0_core_2x_clk.clkr, 25021c9efb0bSTaniya Das [GCC_QUPV3_WRAP0_CORE_CLK] = &gcc_qupv3_wrap0_core_clk.clkr, 25031c9efb0bSTaniya Das [GCC_QUPV3_WRAP0_S0_CLK] = &gcc_qupv3_wrap0_s0_clk.clkr, 25041c9efb0bSTaniya Das [GCC_QUPV3_WRAP0_S0_CLK_SRC] = &gcc_qupv3_wrap0_s0_clk_src.clkr, 25051c9efb0bSTaniya Das [GCC_QUPV3_WRAP0_S1_CLK] = &gcc_qupv3_wrap0_s1_clk.clkr, 25061c9efb0bSTaniya Das [GCC_QUPV3_WRAP0_S1_CLK_SRC] = &gcc_qupv3_wrap0_s1_clk_src.clkr, 25071c9efb0bSTaniya Das [GCC_QUPV3_WRAP0_S2_CLK] = &gcc_qupv3_wrap0_s2_clk.clkr, 25081c9efb0bSTaniya Das [GCC_QUPV3_WRAP0_S2_CLK_SRC] = &gcc_qupv3_wrap0_s2_clk_src.clkr, 25091c9efb0bSTaniya Das [GCC_QUPV3_WRAP0_S3_CLK] = &gcc_qupv3_wrap0_s3_clk.clkr, 25101c9efb0bSTaniya Das [GCC_QUPV3_WRAP0_S3_CLK_SRC] = &gcc_qupv3_wrap0_s3_clk_src.clkr, 25111c9efb0bSTaniya Das [GCC_QUPV3_WRAP0_S4_CLK] = &gcc_qupv3_wrap0_s4_clk.clkr, 25121c9efb0bSTaniya Das [GCC_QUPV3_WRAP0_S4_CLK_SRC] = &gcc_qupv3_wrap0_s4_clk_src.clkr, 25131c9efb0bSTaniya Das [GCC_QUPV3_WRAP0_S5_CLK] = &gcc_qupv3_wrap0_s5_clk.clkr, 25141c9efb0bSTaniya Das [GCC_QUPV3_WRAP0_S5_CLK_SRC] = &gcc_qupv3_wrap0_s5_clk_src.clkr, 25151c9efb0bSTaniya Das [GCC_QUPV3_WRAP0_S6_CLK] = &gcc_qupv3_wrap0_s6_clk.clkr, 25161c9efb0bSTaniya Das [GCC_QUPV3_WRAP0_S6_CLK_SRC] = &gcc_qupv3_wrap0_s6_clk_src.clkr, 25171c9efb0bSTaniya Das [GCC_QUPV3_WRAP0_S7_CLK] = &gcc_qupv3_wrap0_s7_clk.clkr, 25181c9efb0bSTaniya Das [GCC_QUPV3_WRAP0_S7_CLK_SRC] = &gcc_qupv3_wrap0_s7_clk_src.clkr, 25191c9efb0bSTaniya Das [GCC_QUPV3_WRAP1_CORE_2X_CLK] = &gcc_qupv3_wrap1_core_2x_clk.clkr, 25201c9efb0bSTaniya Das [GCC_QUPV3_WRAP1_CORE_CLK] = &gcc_qupv3_wrap1_core_clk.clkr, 25211c9efb0bSTaniya Das [GCC_QUPV3_WRAP1_S0_CLK] = &gcc_qupv3_wrap1_s0_clk.clkr, 25221c9efb0bSTaniya Das [GCC_QUPV3_WRAP1_S0_CLK_SRC] = &gcc_qupv3_wrap1_s0_clk_src.clkr, 25231c9efb0bSTaniya Das [GCC_QUPV3_WRAP1_S1_CLK] = &gcc_qupv3_wrap1_s1_clk.clkr, 25241c9efb0bSTaniya Das [GCC_QUPV3_WRAP1_S1_CLK_SRC] = &gcc_qupv3_wrap1_s1_clk_src.clkr, 25251c9efb0bSTaniya Das [GCC_QUPV3_WRAP1_S2_CLK] = &gcc_qupv3_wrap1_s2_clk.clkr, 25261c9efb0bSTaniya Das [GCC_QUPV3_WRAP1_S2_CLK_SRC] = &gcc_qupv3_wrap1_s2_clk_src.clkr, 25271c9efb0bSTaniya Das [GCC_QUPV3_WRAP1_S3_CLK] = &gcc_qupv3_wrap1_s3_clk.clkr, 25281c9efb0bSTaniya Das [GCC_QUPV3_WRAP1_S3_CLK_SRC] = &gcc_qupv3_wrap1_s3_clk_src.clkr, 25291c9efb0bSTaniya Das [GCC_QUPV3_WRAP1_S4_CLK] = &gcc_qupv3_wrap1_s4_clk.clkr, 25301c9efb0bSTaniya Das [GCC_QUPV3_WRAP1_S4_CLK_SRC] = &gcc_qupv3_wrap1_s4_clk_src.clkr, 25311c9efb0bSTaniya Das [GCC_QUPV3_WRAP1_S5_CLK] = &gcc_qupv3_wrap1_s5_clk.clkr, 25321c9efb0bSTaniya Das [GCC_QUPV3_WRAP1_S5_CLK_SRC] = &gcc_qupv3_wrap1_s5_clk_src.clkr, 25331c9efb0bSTaniya Das [GCC_QUPV3_WRAP1_S6_CLK] = &gcc_qupv3_wrap1_s6_clk.clkr, 25341c9efb0bSTaniya Das [GCC_QUPV3_WRAP1_S6_CLK_SRC] = &gcc_qupv3_wrap1_s6_clk_src.clkr, 25351c9efb0bSTaniya Das [GCC_QUPV3_WRAP1_S7_CLK] = &gcc_qupv3_wrap1_s7_clk.clkr, 25361c9efb0bSTaniya Das [GCC_QUPV3_WRAP1_S7_CLK_SRC] = &gcc_qupv3_wrap1_s7_clk_src.clkr, 25371c9efb0bSTaniya Das [GCC_QUPV3_WRAP_0_M_AHB_CLK] = &gcc_qupv3_wrap_0_m_ahb_clk.clkr, 25381c9efb0bSTaniya Das [GCC_QUPV3_WRAP_0_S_AHB_CLK] = &gcc_qupv3_wrap_0_s_ahb_clk.clkr, 25391c9efb0bSTaniya Das [GCC_QUPV3_WRAP_1_M_AHB_CLK] = &gcc_qupv3_wrap_1_m_ahb_clk.clkr, 25401c9efb0bSTaniya Das [GCC_QUPV3_WRAP_1_S_AHB_CLK] = &gcc_qupv3_wrap_1_s_ahb_clk.clkr, 25411c9efb0bSTaniya Das [GCC_SDCC5_AHB_CLK] = &gcc_sdcc5_ahb_clk.clkr, 25421c9efb0bSTaniya Das [GCC_SDCC5_APPS_CLK] = &gcc_sdcc5_apps_clk.clkr, 25431c9efb0bSTaniya Das [GCC_SDCC5_APPS_CLK_SRC] = &gcc_sdcc5_apps_clk_src.clkr, 25441c9efb0bSTaniya Das [GCC_SDCC5_ICE_CORE_CLK] = &gcc_sdcc5_ice_core_clk.clkr, 25451c9efb0bSTaniya Das [GCC_SDCC5_ICE_CORE_CLK_SRC] = &gcc_sdcc5_ice_core_clk_src.clkr, 25461c9efb0bSTaniya Das [GCC_SM_BUS_AHB_CLK] = &gcc_sm_bus_ahb_clk.clkr, 25471c9efb0bSTaniya Das [GCC_SM_BUS_XO_CLK] = &gcc_sm_bus_xo_clk.clkr, 25481c9efb0bSTaniya Das [GCC_SM_BUS_XO_CLK_SRC] = &gcc_sm_bus_xo_clk_src.clkr, 25491c9efb0bSTaniya Das [GCC_SNOC_CNOC_GEMNOC_PCIE_QX_CLK] = &gcc_snoc_cnoc_gemnoc_pcie_qx_clk.clkr, 25501c9efb0bSTaniya Das [GCC_SNOC_CNOC_GEMNOC_PCIE_SOUTH_QX_CLK] = &gcc_snoc_cnoc_gemnoc_pcie_south_qx_clk.clkr, 25511c9efb0bSTaniya Das [GCC_SNOC_CNOC_PCIE_QX_CLK] = &gcc_snoc_cnoc_pcie_qx_clk.clkr, 25521c9efb0bSTaniya Das [GCC_SNOC_PCIE_SF_CENTER_QX_CLK] = &gcc_snoc_pcie_sf_center_qx_clk.clkr, 25531c9efb0bSTaniya Das [GCC_SNOC_PCIE_SF_SOUTH_QX_CLK] = &gcc_snoc_pcie_sf_south_qx_clk.clkr, 25541c9efb0bSTaniya Das [GCC_TSC_CFG_AHB_CLK] = &gcc_tsc_cfg_ahb_clk.clkr, 25551c9efb0bSTaniya Das [GCC_TSC_CLK_SRC] = &gcc_tsc_clk_src.clkr, 25561c9efb0bSTaniya Das [GCC_TSC_CNTR_CLK] = &gcc_tsc_cntr_clk.clkr, 25571c9efb0bSTaniya Das [GCC_TSC_ETU_CLK] = &gcc_tsc_etu_clk.clkr, 25581c9efb0bSTaniya Das [GCC_USB2_CLKREF_EN] = &gcc_usb2_clkref_en.clkr, 25591c9efb0bSTaniya Das [GCC_USB30_PRIM_MASTER_CLK] = &gcc_usb30_prim_master_clk.clkr, 25601c9efb0bSTaniya Das [GCC_USB30_PRIM_MASTER_CLK_SRC] = &gcc_usb30_prim_master_clk_src.clkr, 25611c9efb0bSTaniya Das [GCC_USB30_PRIM_MOCK_UTMI_CLK] = &gcc_usb30_prim_mock_utmi_clk.clkr, 25621c9efb0bSTaniya Das [GCC_USB30_PRIM_MOCK_UTMI_CLK_SRC] = &gcc_usb30_prim_mock_utmi_clk_src.clkr, 25631c9efb0bSTaniya Das [GCC_USB30_PRIM_MOCK_UTMI_POSTDIV_CLK_SRC] = &gcc_usb30_prim_mock_utmi_postdiv_clk_src.clkr, 25641c9efb0bSTaniya Das [GCC_USB30_PRIM_SLEEP_CLK] = &gcc_usb30_prim_sleep_clk.clkr, 25651c9efb0bSTaniya Das [GCC_USB3_PRIM_PHY_AUX_CLK] = &gcc_usb3_prim_phy_aux_clk.clkr, 25661c9efb0bSTaniya Das [GCC_USB3_PRIM_PHY_AUX_CLK_SRC] = &gcc_usb3_prim_phy_aux_clk_src.clkr, 25671c9efb0bSTaniya Das [GCC_USB3_PRIM_PHY_COM_AUX_CLK] = &gcc_usb3_prim_phy_com_aux_clk.clkr, 25681c9efb0bSTaniya Das [GCC_USB3_PRIM_PHY_PIPE_CLK] = &gcc_usb3_prim_phy_pipe_clk.clkr, 25691c9efb0bSTaniya Das [GCC_USB3_PRIM_PHY_PIPE_CLK_SRC] = &gcc_usb3_prim_phy_pipe_clk_src.clkr, 25701c9efb0bSTaniya Das [GCC_ETH_100G_C2C_HM_APB_CLK] = &gcc_eth_100g_c2c_hm_apb_clk.clkr, 25711c9efb0bSTaniya Das [GCC_ETH_100G_FH_HM_APB_0_CLK] = &gcc_eth_100g_fh_hm_apb_0_clk.clkr, 25721c9efb0bSTaniya Das [GCC_ETH_100G_FH_HM_APB_1_CLK] = &gcc_eth_100g_fh_hm_apb_1_clk.clkr, 25731c9efb0bSTaniya Das [GCC_ETH_100G_FH_HM_APB_2_CLK] = &gcc_eth_100g_fh_hm_apb_2_clk.clkr, 25741c9efb0bSTaniya Das [GCC_ETH_DBG_C2C_HM_APB_CLK] = &gcc_eth_dbg_c2c_hm_apb_clk.clkr, 25751c9efb0bSTaniya Das [GCC_AGGRE_NOC_ECPRI_GSI_CLK] = &gcc_aggre_noc_ecpri_gsi_clk.clkr, 25761c9efb0bSTaniya Das [GCC_PCIE_0_PHY_AUX_CLK_SRC] = &gcc_pcie_0_phy_aux_clk_src.clkr, 25771c9efb0bSTaniya Das [GCC_PCIE_0_PIPE_CLK_SRC] = &gcc_pcie_0_pipe_clk_src.clkr, 257806d71fa1SImran Shaik [GCC_GPLL1_OUT_EVEN] = &gcc_gpll1_out_even.clkr, 2579089aad8cSImran Shaik [GCC_DDRSS_ECPRI_GSI_CLK] = &gcc_ddrss_ecpri_gsi_clk.clkr, 25801c9efb0bSTaniya Das }; 25811c9efb0bSTaniya Das 2582*76346cf7SImran Shaik static struct gdsc *gcc_qdu1000_gdscs[] = { 2583*76346cf7SImran Shaik [PCIE_0_GDSC] = &pcie_0_gdsc, 2584*76346cf7SImran Shaik [PCIE_0_PHY_GDSC] = &pcie_0_phy_gdsc, 2585*76346cf7SImran Shaik [USB30_PRIM_GDSC] = &usb30_prim_gdsc, 2586*76346cf7SImran Shaik }; 2587*76346cf7SImran Shaik 25881c9efb0bSTaniya Das static const struct qcom_reset_map gcc_qdu1000_resets[] = { 25891c9efb0bSTaniya Das [GCC_ECPRI_CC_BCR] = { 0x3e000 }, 25901c9efb0bSTaniya Das [GCC_ECPRI_SS_BCR] = { 0x3a000 }, 25911c9efb0bSTaniya Das [GCC_ETH_WRAPPER_BCR] = { 0x39000 }, 25921c9efb0bSTaniya Das [GCC_PCIE_0_BCR] = { 0x9d000 }, 25931c9efb0bSTaniya Das [GCC_PCIE_0_LINK_DOWN_BCR] = { 0x9e014 }, 25941c9efb0bSTaniya Das [GCC_PCIE_0_NOCSR_COM_PHY_BCR] = { 0x9e020 }, 25951c9efb0bSTaniya Das [GCC_PCIE_0_PHY_BCR] = { 0x7c000 }, 25961c9efb0bSTaniya Das [GCC_PCIE_0_PHY_NOCSR_COM_PHY_BCR] = { 0x9e000 }, 25971c9efb0bSTaniya Das [GCC_PCIE_PHY_CFG_AHB_BCR] = { 0x7f00c }, 25981c9efb0bSTaniya Das [GCC_PCIE_PHY_COM_BCR] = { 0x7f010 }, 25991c9efb0bSTaniya Das [GCC_PDM_BCR] = { 0x43000 }, 26001c9efb0bSTaniya Das [GCC_QUPV3_WRAPPER_0_BCR] = { 0x27000 }, 26011c9efb0bSTaniya Das [GCC_QUPV3_WRAPPER_1_BCR] = { 0x28000 }, 26021c9efb0bSTaniya Das [GCC_QUSB2PHY_PRIM_BCR] = { 0x22000 }, 26031c9efb0bSTaniya Das [GCC_QUSB2PHY_SEC_BCR] = { 0x22004 }, 26041c9efb0bSTaniya Das [GCC_SDCC5_BCR] = { 0x3b000 }, 26051c9efb0bSTaniya Das [GCC_TSC_BCR] = { 0x57000 }, 26061c9efb0bSTaniya Das [GCC_USB30_PRIM_BCR] = { 0x49000 }, 26071c9efb0bSTaniya Das [GCC_USB3_DP_PHY_PRIM_BCR] = { 0x60008 }, 26081c9efb0bSTaniya Das [GCC_USB3_DP_PHY_SEC_BCR] = { 0x60014 }, 26091c9efb0bSTaniya Das [GCC_USB3_PHY_PRIM_BCR] = { 0x60000 }, 26101c9efb0bSTaniya Das [GCC_USB3_PHY_SEC_BCR] = { 0x6000c }, 26111c9efb0bSTaniya Das [GCC_USB3PHY_PHY_PRIM_BCR] = { 0x60004 }, 26121c9efb0bSTaniya Das [GCC_USB3PHY_PHY_SEC_BCR] = { 0x60010 }, 26131c9efb0bSTaniya Das [GCC_USB_PHY_CFG_AHB2PHY_BCR] = { 0x7a000 }, 26141c9efb0bSTaniya Das }; 26151c9efb0bSTaniya Das 26161c9efb0bSTaniya Das static const struct clk_rcg_dfs_data gcc_dfs_clocks[] = { 26171c9efb0bSTaniya Das DEFINE_RCG_DFS(gcc_qupv3_wrap0_s0_clk_src), 26181c9efb0bSTaniya Das DEFINE_RCG_DFS(gcc_qupv3_wrap0_s1_clk_src), 26191c9efb0bSTaniya Das DEFINE_RCG_DFS(gcc_qupv3_wrap0_s2_clk_src), 26201c9efb0bSTaniya Das DEFINE_RCG_DFS(gcc_qupv3_wrap0_s3_clk_src), 26211c9efb0bSTaniya Das DEFINE_RCG_DFS(gcc_qupv3_wrap0_s4_clk_src), 26221c9efb0bSTaniya Das DEFINE_RCG_DFS(gcc_qupv3_wrap0_s5_clk_src), 26231c9efb0bSTaniya Das DEFINE_RCG_DFS(gcc_qupv3_wrap0_s6_clk_src), 26241c9efb0bSTaniya Das DEFINE_RCG_DFS(gcc_qupv3_wrap0_s7_clk_src), 26251c9efb0bSTaniya Das DEFINE_RCG_DFS(gcc_qupv3_wrap1_s0_clk_src), 26261c9efb0bSTaniya Das DEFINE_RCG_DFS(gcc_qupv3_wrap1_s1_clk_src), 26271c9efb0bSTaniya Das DEFINE_RCG_DFS(gcc_qupv3_wrap1_s2_clk_src), 26281c9efb0bSTaniya Das DEFINE_RCG_DFS(gcc_qupv3_wrap1_s3_clk_src), 26291c9efb0bSTaniya Das DEFINE_RCG_DFS(gcc_qupv3_wrap1_s4_clk_src), 26301c9efb0bSTaniya Das DEFINE_RCG_DFS(gcc_qupv3_wrap1_s5_clk_src), 26311c9efb0bSTaniya Das DEFINE_RCG_DFS(gcc_qupv3_wrap1_s6_clk_src), 26321c9efb0bSTaniya Das DEFINE_RCG_DFS(gcc_qupv3_wrap1_s7_clk_src), 26331c9efb0bSTaniya Das }; 26341c9efb0bSTaniya Das 26351c9efb0bSTaniya Das static const struct regmap_config gcc_qdu1000_regmap_config = { 26361c9efb0bSTaniya Das .reg_bits = 32, 26371c9efb0bSTaniya Das .reg_stride = 4, 26381c9efb0bSTaniya Das .val_bits = 32, 26391c9efb0bSTaniya Das .max_register = 0x1f41f0, 26401c9efb0bSTaniya Das .fast_io = true, 26411c9efb0bSTaniya Das }; 26421c9efb0bSTaniya Das 26431c9efb0bSTaniya Das static const struct qcom_cc_desc gcc_qdu1000_desc = { 26441c9efb0bSTaniya Das .config = &gcc_qdu1000_regmap_config, 26451c9efb0bSTaniya Das .clks = gcc_qdu1000_clocks, 26461c9efb0bSTaniya Das .num_clks = ARRAY_SIZE(gcc_qdu1000_clocks), 26471c9efb0bSTaniya Das .resets = gcc_qdu1000_resets, 26481c9efb0bSTaniya Das .num_resets = ARRAY_SIZE(gcc_qdu1000_resets), 2649*76346cf7SImran Shaik .gdscs = gcc_qdu1000_gdscs, 2650*76346cf7SImran Shaik .num_gdscs = ARRAY_SIZE(gcc_qdu1000_gdscs), 26511c9efb0bSTaniya Das }; 26521c9efb0bSTaniya Das 26531c9efb0bSTaniya Das static const struct of_device_id gcc_qdu1000_match_table[] = { 26541c9efb0bSTaniya Das { .compatible = "qcom,qdu1000-gcc" }, 26551c9efb0bSTaniya Das { } 26561c9efb0bSTaniya Das }; 26571c9efb0bSTaniya Das MODULE_DEVICE_TABLE(of, gcc_qdu1000_match_table); 26581c9efb0bSTaniya Das 26591c9efb0bSTaniya Das static int gcc_qdu1000_probe(struct platform_device *pdev) 26601c9efb0bSTaniya Das { 26611c9efb0bSTaniya Das struct regmap *regmap; 26621c9efb0bSTaniya Das int ret; 26631c9efb0bSTaniya Das 26641c9efb0bSTaniya Das regmap = qcom_cc_map(pdev, &gcc_qdu1000_desc); 26651c9efb0bSTaniya Das if (IS_ERR(regmap)) 26661c9efb0bSTaniya Das return PTR_ERR(regmap); 26671c9efb0bSTaniya Das 26681c9efb0bSTaniya Das /* Update FORCE_MEM_CORE_ON for gcc_pcie_0_mstr_axi_clk */ 26691c9efb0bSTaniya Das regmap_update_bits(regmap, 0x9d024, BIT(14), BIT(14)); 26701c9efb0bSTaniya Das 26711c9efb0bSTaniya Das ret = qcom_cc_register_rcg_dfs(regmap, gcc_dfs_clocks, 26721c9efb0bSTaniya Das ARRAY_SIZE(gcc_dfs_clocks)); 26731c9efb0bSTaniya Das if (ret) 26741c9efb0bSTaniya Das return ret; 26751c9efb0bSTaniya Das 26761c9efb0bSTaniya Das ret = qcom_cc_really_probe(pdev, &gcc_qdu1000_desc, regmap); 26771c9efb0bSTaniya Das if (ret) 26781c9efb0bSTaniya Das return dev_err_probe(&pdev->dev, ret, "Failed to register GCC clocks\n"); 26791c9efb0bSTaniya Das 26801c9efb0bSTaniya Das return ret; 26811c9efb0bSTaniya Das } 26821c9efb0bSTaniya Das 26831c9efb0bSTaniya Das static struct platform_driver gcc_qdu1000_driver = { 26841c9efb0bSTaniya Das .probe = gcc_qdu1000_probe, 26851c9efb0bSTaniya Das .driver = { 26861c9efb0bSTaniya Das .name = "gcc-qdu1000", 26871c9efb0bSTaniya Das .of_match_table = gcc_qdu1000_match_table, 26881c9efb0bSTaniya Das }, 26891c9efb0bSTaniya Das }; 26901c9efb0bSTaniya Das 26911c9efb0bSTaniya Das static int __init gcc_qdu1000_init(void) 26921c9efb0bSTaniya Das { 26931c9efb0bSTaniya Das return platform_driver_register(&gcc_qdu1000_driver); 26941c9efb0bSTaniya Das } 26951c9efb0bSTaniya Das subsys_initcall(gcc_qdu1000_init); 26961c9efb0bSTaniya Das 26971c9efb0bSTaniya Das static void __exit gcc_qdu1000_exit(void) 26981c9efb0bSTaniya Das { 26991c9efb0bSTaniya Das platform_driver_unregister(&gcc_qdu1000_driver); 27001c9efb0bSTaniya Das } 27011c9efb0bSTaniya Das module_exit(gcc_qdu1000_exit); 27021c9efb0bSTaniya Das 27031c9efb0bSTaniya Das MODULE_DESCRIPTION("QTI GCC QDU1000 Driver"); 27041c9efb0bSTaniya Das MODULE_LICENSE("GPL"); 2705