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