xref: /openbmc/linux/drivers/clk/qcom/gcc-qdu1000.c (revision 76346cf7)
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