xref: /linux/drivers/clk/qcom/gcc-eliza.c (revision 0fc8f6200d2313278fbf4539bbab74677c685531)
13d356ab4STaniya Das // SPDX-License-Identifier: GPL-2.0-only
23d356ab4STaniya Das /*
33d356ab4STaniya Das  * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
43d356ab4STaniya Das  */
53d356ab4STaniya Das 
63d356ab4STaniya Das #include <linux/clk-provider.h>
73d356ab4STaniya Das #include <linux/mod_devicetable.h>
83d356ab4STaniya Das #include <linux/module.h>
93d356ab4STaniya Das #include <linux/platform_device.h>
103d356ab4STaniya Das #include <linux/regmap.h>
113d356ab4STaniya Das 
123d356ab4STaniya Das #include <dt-bindings/clock/qcom,eliza-gcc.h>
133d356ab4STaniya Das 
143d356ab4STaniya Das #include "clk-alpha-pll.h"
153d356ab4STaniya Das #include "clk-branch.h"
163d356ab4STaniya Das #include "clk-pll.h"
173d356ab4STaniya Das #include "clk-rcg.h"
183d356ab4STaniya Das #include "clk-regmap.h"
193d356ab4STaniya Das #include "clk-regmap-divider.h"
203d356ab4STaniya Das #include "clk-regmap-mux.h"
213d356ab4STaniya Das #include "clk-regmap-phy-mux.h"
223d356ab4STaniya Das #include "common.h"
233d356ab4STaniya Das #include "gdsc.h"
243d356ab4STaniya Das #include "reset.h"
253d356ab4STaniya Das 
263d356ab4STaniya Das enum {
273d356ab4STaniya Das 	DT_BI_TCXO,
283d356ab4STaniya Das 	DT_SLEEP_CLK,
293d356ab4STaniya Das 	DT_PCIE_0_PIPE_CLK,
303d356ab4STaniya Das 	DT_PCIE_1_PIPE_CLK,
313d356ab4STaniya Das 	DT_UFS_PHY_RX_SYMBOL_0_CLK,
323d356ab4STaniya Das 	DT_UFS_PHY_RX_SYMBOL_1_CLK,
333d356ab4STaniya Das 	DT_UFS_PHY_TX_SYMBOL_0_CLK,
343d356ab4STaniya Das 	DT_USB3_PHY_WRAPPER_GCC_USB30_PIPE_CLK,
353d356ab4STaniya Das };
363d356ab4STaniya Das 
373d356ab4STaniya Das enum {
383d356ab4STaniya Das 	P_BI_TCXO,
393d356ab4STaniya Das 	P_GCC_GPLL0_OUT_EVEN,
403d356ab4STaniya Das 	P_GCC_GPLL0_OUT_MAIN,
413d356ab4STaniya Das 	P_GCC_GPLL4_OUT_MAIN,
423d356ab4STaniya Das 	P_GCC_GPLL7_OUT_MAIN,
433d356ab4STaniya Das 	P_GCC_GPLL8_OUT_MAIN,
443d356ab4STaniya Das 	P_GCC_GPLL9_OUT_MAIN,
453d356ab4STaniya Das 	P_PCIE_0_PIPE_CLK,
463d356ab4STaniya Das 	P_PCIE_1_PIPE_CLK,
473d356ab4STaniya Das 	P_SLEEP_CLK,
483d356ab4STaniya Das 	P_UFS_PHY_RX_SYMBOL_0_CLK,
493d356ab4STaniya Das 	P_UFS_PHY_RX_SYMBOL_1_CLK,
503d356ab4STaniya Das 	P_UFS_PHY_TX_SYMBOL_0_CLK,
513d356ab4STaniya Das 	P_USB3_PHY_WRAPPER_GCC_USB30_PIPE_CLK,
523d356ab4STaniya Das };
533d356ab4STaniya Das 
543d356ab4STaniya Das static struct clk_alpha_pll gcc_gpll0 = {
553d356ab4STaniya Das 	.offset = 0x0,
563d356ab4STaniya Das 	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_OLE],
573d356ab4STaniya Das 	.clkr = {
583d356ab4STaniya Das 		.enable_reg = 0x52020,
593d356ab4STaniya Das 		.enable_mask = BIT(0),
603d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
613d356ab4STaniya Das 			.name = "gcc_gpll0",
623d356ab4STaniya Das 			.parent_data = &(const struct clk_parent_data) {
633d356ab4STaniya Das 				.index = DT_BI_TCXO,
643d356ab4STaniya Das 			},
653d356ab4STaniya Das 			.num_parents = 1,
663d356ab4STaniya Das 			.ops = &clk_alpha_pll_fixed_lucid_ole_ops,
673d356ab4STaniya Das 		},
683d356ab4STaniya Das 	},
693d356ab4STaniya Das };
703d356ab4STaniya Das 
713d356ab4STaniya Das static const struct clk_div_table post_div_table_gcc_gpll0_out_even[] = {
723d356ab4STaniya Das 	{ 0x1, 2 },
733d356ab4STaniya Das 	{ }
743d356ab4STaniya Das };
753d356ab4STaniya Das 
763d356ab4STaniya Das static struct clk_alpha_pll_postdiv gcc_gpll0_out_even = {
773d356ab4STaniya Das 	.offset = 0x0,
783d356ab4STaniya Das 	.post_div_shift = 10,
793d356ab4STaniya Das 	.post_div_table = post_div_table_gcc_gpll0_out_even,
803d356ab4STaniya Das 	.num_post_div = ARRAY_SIZE(post_div_table_gcc_gpll0_out_even),
813d356ab4STaniya Das 	.width = 4,
823d356ab4STaniya Das 	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_OLE],
833d356ab4STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
843d356ab4STaniya Das 		.name = "gcc_gpll0_out_even",
853d356ab4STaniya Das 		.parent_hws = (const struct clk_hw*[]) {
863d356ab4STaniya Das 			&gcc_gpll0.clkr.hw,
873d356ab4STaniya Das 		},
883d356ab4STaniya Das 		.num_parents = 1,
893d356ab4STaniya Das 		.ops = &clk_alpha_pll_postdiv_lucid_ole_ops,
903d356ab4STaniya Das 	},
913d356ab4STaniya Das };
923d356ab4STaniya Das 
933d356ab4STaniya Das static struct clk_alpha_pll gcc_gpll4 = {
943d356ab4STaniya Das 	.offset = 0x4000,
953d356ab4STaniya Das 	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_OLE],
963d356ab4STaniya Das 	.clkr = {
973d356ab4STaniya Das 		.enable_reg = 0x52020,
983d356ab4STaniya Das 		.enable_mask = BIT(4),
993d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
1003d356ab4STaniya Das 			.name = "gcc_gpll4",
1013d356ab4STaniya Das 			.parent_data = &(const struct clk_parent_data) {
1023d356ab4STaniya Das 				.index = DT_BI_TCXO,
1033d356ab4STaniya Das 			},
1043d356ab4STaniya Das 			.num_parents = 1,
1053d356ab4STaniya Das 			.ops = &clk_alpha_pll_fixed_lucid_ole_ops,
1063d356ab4STaniya Das 		},
1073d356ab4STaniya Das 	},
1083d356ab4STaniya Das };
1093d356ab4STaniya Das 
1103d356ab4STaniya Das static struct clk_alpha_pll gcc_gpll7 = {
1113d356ab4STaniya Das 	.offset = 0x7000,
1123d356ab4STaniya Das 	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_OLE],
1133d356ab4STaniya Das 	.clkr = {
1143d356ab4STaniya Das 		.enable_reg = 0x52020,
1153d356ab4STaniya Das 		.enable_mask = BIT(7),
1163d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
1173d356ab4STaniya Das 			.name = "gcc_gpll7",
1183d356ab4STaniya Das 			.parent_data = &(const struct clk_parent_data) {
1193d356ab4STaniya Das 				.index = DT_BI_TCXO,
1203d356ab4STaniya Das 			},
1213d356ab4STaniya Das 			.num_parents = 1,
1223d356ab4STaniya Das 			.ops = &clk_alpha_pll_fixed_lucid_ole_ops,
1233d356ab4STaniya Das 		},
1243d356ab4STaniya Das 	},
1253d356ab4STaniya Das };
1263d356ab4STaniya Das 
1273d356ab4STaniya Das static struct clk_alpha_pll gcc_gpll8 = {
1283d356ab4STaniya Das 	.offset = 0x8000,
1293d356ab4STaniya Das 	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_OLE],
1303d356ab4STaniya Das 	.clkr = {
1313d356ab4STaniya Das 		.enable_reg = 0x52020,
1323d356ab4STaniya Das 		.enable_mask = BIT(8),
1333d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
1343d356ab4STaniya Das 			.name = "gcc_gpll8",
1353d356ab4STaniya Das 			.parent_data = &(const struct clk_parent_data) {
1363d356ab4STaniya Das 				.index = DT_BI_TCXO,
1373d356ab4STaniya Das 			},
1383d356ab4STaniya Das 			.num_parents = 1,
1393d356ab4STaniya Das 			.ops = &clk_alpha_pll_fixed_lucid_ole_ops,
1403d356ab4STaniya Das 		},
1413d356ab4STaniya Das 	},
1423d356ab4STaniya Das };
1433d356ab4STaniya Das 
1443d356ab4STaniya Das static struct clk_alpha_pll gcc_gpll9 = {
1453d356ab4STaniya Das 	.offset = 0x9000,
1463d356ab4STaniya Das 	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_OLE],
1473d356ab4STaniya Das 	.clkr = {
1483d356ab4STaniya Das 		.enable_reg = 0x52020,
1493d356ab4STaniya Das 		.enable_mask = BIT(9),
1503d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
1513d356ab4STaniya Das 			.name = "gcc_gpll9",
1523d356ab4STaniya Das 			.parent_data = &(const struct clk_parent_data) {
1533d356ab4STaniya Das 				.index = DT_BI_TCXO,
1543d356ab4STaniya Das 			},
1553d356ab4STaniya Das 			.num_parents = 1,
1563d356ab4STaniya Das 			.ops = &clk_alpha_pll_fixed_lucid_ole_ops,
1573d356ab4STaniya Das 		},
1583d356ab4STaniya Das 	},
1593d356ab4STaniya Das };
1603d356ab4STaniya Das 
1613d356ab4STaniya Das static const struct parent_map gcc_parent_map_0[] = {
1623d356ab4STaniya Das 	{ P_BI_TCXO, 0 },
1633d356ab4STaniya Das 	{ P_GCC_GPLL0_OUT_MAIN, 1 },
1643d356ab4STaniya Das 	{ P_GCC_GPLL0_OUT_EVEN, 6 },
1653d356ab4STaniya Das };
1663d356ab4STaniya Das 
1673d356ab4STaniya Das static const struct clk_parent_data gcc_parent_data_0[] = {
1683d356ab4STaniya Das 	{ .index = DT_BI_TCXO },
1693d356ab4STaniya Das 	{ .hw = &gcc_gpll0.clkr.hw },
1703d356ab4STaniya Das 	{ .hw = &gcc_gpll0_out_even.clkr.hw },
1713d356ab4STaniya Das };
1723d356ab4STaniya Das 
1733d356ab4STaniya Das static const struct parent_map gcc_parent_map_1[] = {
1743d356ab4STaniya Das 	{ P_BI_TCXO, 0 },
1753d356ab4STaniya Das 	{ P_GCC_GPLL0_OUT_MAIN, 1 },
1763d356ab4STaniya Das 	{ P_SLEEP_CLK, 5 },
1773d356ab4STaniya Das 	{ P_GCC_GPLL0_OUT_EVEN, 6 },
1783d356ab4STaniya Das };
1793d356ab4STaniya Das 
1803d356ab4STaniya Das static const struct clk_parent_data gcc_parent_data_1[] = {
1813d356ab4STaniya Das 	{ .index = DT_BI_TCXO },
1823d356ab4STaniya Das 	{ .hw = &gcc_gpll0.clkr.hw },
1833d356ab4STaniya Das 	{ .index = DT_SLEEP_CLK },
1843d356ab4STaniya Das 	{ .hw = &gcc_gpll0_out_even.clkr.hw },
1853d356ab4STaniya Das };
1863d356ab4STaniya Das 
1873d356ab4STaniya Das static const struct parent_map gcc_parent_map_2[] = {
1883d356ab4STaniya Das 	{ P_BI_TCXO, 0 },
1893d356ab4STaniya Das 	{ P_GCC_GPLL0_OUT_MAIN, 1 },
1903d356ab4STaniya Das 	{ P_GCC_GPLL4_OUT_MAIN, 5 },
1913d356ab4STaniya Das 	{ P_GCC_GPLL0_OUT_EVEN, 6 },
1923d356ab4STaniya Das };
1933d356ab4STaniya Das 
1943d356ab4STaniya Das static const struct clk_parent_data gcc_parent_data_2[] = {
1953d356ab4STaniya Das 	{ .index = DT_BI_TCXO },
1963d356ab4STaniya Das 	{ .hw = &gcc_gpll0.clkr.hw },
1973d356ab4STaniya Das 	{ .hw = &gcc_gpll4.clkr.hw },
1983d356ab4STaniya Das 	{ .hw = &gcc_gpll0_out_even.clkr.hw },
1993d356ab4STaniya Das };
2003d356ab4STaniya Das 
2013d356ab4STaniya Das static const struct parent_map gcc_parent_map_3[] = {
2023d356ab4STaniya Das 	{ P_BI_TCXO, 0 },
2033d356ab4STaniya Das 	{ P_SLEEP_CLK, 5 },
2043d356ab4STaniya Das };
2053d356ab4STaniya Das 
2063d356ab4STaniya Das static const struct clk_parent_data gcc_parent_data_3[] = {
2073d356ab4STaniya Das 	{ .index = DT_BI_TCXO },
2083d356ab4STaniya Das 	{ .index = DT_SLEEP_CLK },
2093d356ab4STaniya Das };
2103d356ab4STaniya Das 
2113d356ab4STaniya Das static const struct parent_map gcc_parent_map_4[] = {
2123d356ab4STaniya Das 	{ P_BI_TCXO, 0 },
2133d356ab4STaniya Das 	{ P_GCC_GPLL0_OUT_MAIN, 1 },
2143d356ab4STaniya Das 	{ P_GCC_GPLL7_OUT_MAIN, 2 },
2153d356ab4STaniya Das 	{ P_GCC_GPLL0_OUT_EVEN, 6 },
2163d356ab4STaniya Das };
2173d356ab4STaniya Das 
2183d356ab4STaniya Das static const struct clk_parent_data gcc_parent_data_4[] = {
2193d356ab4STaniya Das 	{ .index = DT_BI_TCXO },
2203d356ab4STaniya Das 	{ .hw = &gcc_gpll0.clkr.hw },
2213d356ab4STaniya Das 	{ .hw = &gcc_gpll7.clkr.hw },
2223d356ab4STaniya Das 	{ .hw = &gcc_gpll0_out_even.clkr.hw },
2233d356ab4STaniya Das };
2243d356ab4STaniya Das 
2253d356ab4STaniya Das static const struct parent_map gcc_parent_map_5[] = {
2263d356ab4STaniya Das 	{ P_BI_TCXO, 0 },
2273d356ab4STaniya Das 	{ P_GCC_GPLL0_OUT_MAIN, 1 },
2283d356ab4STaniya Das 	{ P_GCC_GPLL8_OUT_MAIN, 2 },
2293d356ab4STaniya Das 	{ P_GCC_GPLL0_OUT_EVEN, 6 },
2303d356ab4STaniya Das };
2313d356ab4STaniya Das 
2323d356ab4STaniya Das static const struct clk_parent_data gcc_parent_data_5[] = {
2333d356ab4STaniya Das 	{ .index = DT_BI_TCXO },
2343d356ab4STaniya Das 	{ .hw = &gcc_gpll0.clkr.hw },
2353d356ab4STaniya Das 	{ .hw = &gcc_gpll8.clkr.hw },
2363d356ab4STaniya Das 	{ .hw = &gcc_gpll0_out_even.clkr.hw },
2373d356ab4STaniya Das };
2383d356ab4STaniya Das 
2393d356ab4STaniya Das static const struct parent_map gcc_parent_map_6[] = {
2403d356ab4STaniya Das 	{ P_BI_TCXO, 0 },
2413d356ab4STaniya Das };
2423d356ab4STaniya Das 
2433d356ab4STaniya Das static const struct clk_parent_data gcc_parent_data_6[] = {
2443d356ab4STaniya Das 	{ .index = DT_BI_TCXO },
2453d356ab4STaniya Das };
2463d356ab4STaniya Das 
2473d356ab4STaniya Das static const struct parent_map gcc_parent_map_7[] = {
2483d356ab4STaniya Das 	{ P_BI_TCXO, 0 },
2493d356ab4STaniya Das 	{ P_GCC_GPLL0_OUT_MAIN, 1 },
2503d356ab4STaniya Das 	{ P_GCC_GPLL9_OUT_MAIN, 2 },
2513d356ab4STaniya Das 	{ P_GCC_GPLL4_OUT_MAIN, 5 },
2523d356ab4STaniya Das 	{ P_GCC_GPLL0_OUT_EVEN, 6 },
2533d356ab4STaniya Das };
2543d356ab4STaniya Das 
2553d356ab4STaniya Das static const struct clk_parent_data gcc_parent_data_7[] = {
2563d356ab4STaniya Das 	{ .index = DT_BI_TCXO },
2573d356ab4STaniya Das 	{ .hw = &gcc_gpll0.clkr.hw },
2583d356ab4STaniya Das 	{ .hw = &gcc_gpll9.clkr.hw },
2593d356ab4STaniya Das 	{ .hw = &gcc_gpll4.clkr.hw },
2603d356ab4STaniya Das 	{ .hw = &gcc_gpll0_out_even.clkr.hw },
2613d356ab4STaniya Das };
2623d356ab4STaniya Das 
2633d356ab4STaniya Das static const struct parent_map gcc_parent_map_8[] = {
2643d356ab4STaniya Das 	{ P_USB3_PHY_WRAPPER_GCC_USB30_PIPE_CLK, 0 },
2653d356ab4STaniya Das 	{ P_BI_TCXO, 2 },
2663d356ab4STaniya Das 	{ P_GCC_GPLL0_OUT_EVEN, 3 },
2673d356ab4STaniya Das };
2683d356ab4STaniya Das 
2693d356ab4STaniya Das static const struct clk_parent_data gcc_parent_data_8[] = {
2703d356ab4STaniya Das 	{ .index = DT_USB3_PHY_WRAPPER_GCC_USB30_PIPE_CLK },
2713d356ab4STaniya Das 	{ .index = DT_BI_TCXO },
2723d356ab4STaniya Das 	{ .hw = &gcc_gpll0_out_even.clkr.hw },
2733d356ab4STaniya Das };
2743d356ab4STaniya Das 
2753d356ab4STaniya Das static struct clk_regmap_phy_mux gcc_pcie_0_pipe_clk_src = {
2763d356ab4STaniya Das 	.reg = 0x6b080,
2773d356ab4STaniya Das 	.clkr = {
2783d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
2793d356ab4STaniya Das 			.name = "gcc_pcie_0_pipe_clk_src",
2803d356ab4STaniya Das 			.parent_data = &(const struct clk_parent_data){
2813d356ab4STaniya Das 				.index = DT_PCIE_0_PIPE_CLK,
2823d356ab4STaniya Das 			},
2833d356ab4STaniya Das 			.num_parents = 1,
2843d356ab4STaniya Das 			.ops = &clk_regmap_phy_mux_ops,
2853d356ab4STaniya Das 		},
2863d356ab4STaniya Das 	},
2873d356ab4STaniya Das };
2883d356ab4STaniya Das 
2893d356ab4STaniya Das static struct clk_regmap_phy_mux gcc_pcie_1_pipe_clk_src = {
2903d356ab4STaniya Das 	.reg = 0xac07c,
2913d356ab4STaniya Das 	.clkr = {
2923d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
2933d356ab4STaniya Das 			.name = "gcc_pcie_1_pipe_clk_src",
2943d356ab4STaniya Das 			.parent_data = &(const struct clk_parent_data){
2953d356ab4STaniya Das 				.index = DT_PCIE_1_PIPE_CLK,
2963d356ab4STaniya Das 			},
2973d356ab4STaniya Das 			.num_parents = 1,
2983d356ab4STaniya Das 			.ops = &clk_regmap_phy_mux_ops,
2993d356ab4STaniya Das 		},
3003d356ab4STaniya Das 	},
3013d356ab4STaniya Das };
3023d356ab4STaniya Das 
3033d356ab4STaniya Das static struct clk_regmap_phy_mux gcc_ufs_phy_rx_symbol_0_clk_src = {
3043d356ab4STaniya Das 	.reg = 0x77068,
3053d356ab4STaniya Das 	.clkr = {
3063d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
3073d356ab4STaniya Das 			.name = "gcc_ufs_phy_rx_symbol_0_clk_src",
3083d356ab4STaniya Das 			.parent_data = &(const struct clk_parent_data){
3093d356ab4STaniya Das 				.index = DT_UFS_PHY_RX_SYMBOL_0_CLK,
3103d356ab4STaniya Das 			},
3113d356ab4STaniya Das 			.num_parents = 1,
3123d356ab4STaniya Das 			.ops = &clk_regmap_phy_mux_ops,
3133d356ab4STaniya Das 		},
3143d356ab4STaniya Das 	},
3153d356ab4STaniya Das };
3163d356ab4STaniya Das 
3173d356ab4STaniya Das static struct clk_regmap_phy_mux gcc_ufs_phy_rx_symbol_1_clk_src = {
3183d356ab4STaniya Das 	.reg = 0x770ec,
3193d356ab4STaniya Das 	.clkr = {
3203d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
3213d356ab4STaniya Das 			.name = "gcc_ufs_phy_rx_symbol_1_clk_src",
3223d356ab4STaniya Das 			.parent_data = &(const struct clk_parent_data){
3233d356ab4STaniya Das 				.index = DT_UFS_PHY_RX_SYMBOL_1_CLK,
3243d356ab4STaniya Das 			},
3253d356ab4STaniya Das 			.num_parents = 1,
3263d356ab4STaniya Das 			.ops = &clk_regmap_phy_mux_ops,
3273d356ab4STaniya Das 		},
3283d356ab4STaniya Das 	},
3293d356ab4STaniya Das };
3303d356ab4STaniya Das 
3313d356ab4STaniya Das static struct clk_regmap_phy_mux gcc_ufs_phy_tx_symbol_0_clk_src = {
3323d356ab4STaniya Das 	.reg = 0x77058,
3333d356ab4STaniya Das 	.clkr = {
3343d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
3353d356ab4STaniya Das 			.name = "gcc_ufs_phy_tx_symbol_0_clk_src",
3363d356ab4STaniya Das 			.parent_data = &(const struct clk_parent_data){
3373d356ab4STaniya Das 				.index = DT_UFS_PHY_TX_SYMBOL_0_CLK,
3383d356ab4STaniya Das 			},
3393d356ab4STaniya Das 			.num_parents = 1,
3403d356ab4STaniya Das 			.ops = &clk_regmap_phy_mux_ops,
3413d356ab4STaniya Das 		},
3423d356ab4STaniya Das 	},
3433d356ab4STaniya Das };
3443d356ab4STaniya Das 
3453d356ab4STaniya Das static struct clk_regmap_mux gcc_usb3_prim_phy_pipe_clk_src = {
3463d356ab4STaniya Das 	.reg = 0x39070,
3473d356ab4STaniya Das 	.shift = 0,
3483d356ab4STaniya Das 	.width = 2,
3493d356ab4STaniya Das 	.parent_map = gcc_parent_map_8,
3503d356ab4STaniya Das 	.clkr = {
3513d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
3523d356ab4STaniya Das 			.name = "gcc_usb3_prim_phy_pipe_clk_src",
3533d356ab4STaniya Das 			.parent_data = gcc_parent_data_8,
3543d356ab4STaniya Das 			.num_parents = ARRAY_SIZE(gcc_parent_data_8),
3553d356ab4STaniya Das 			.ops = &clk_regmap_mux_closest_ops,
3563d356ab4STaniya Das 		},
3573d356ab4STaniya Das 	},
3583d356ab4STaniya Das };
3593d356ab4STaniya Das 
3603d356ab4STaniya Das static const struct freq_tbl ftbl_gcc_gp1_clk_src[] = {
3613d356ab4STaniya Das 	F(50000000, P_GCC_GPLL0_OUT_EVEN, 6, 0, 0),
3623d356ab4STaniya Das 	F(100000000, P_GCC_GPLL0_OUT_MAIN, 6, 0, 0),
3633d356ab4STaniya Das 	F(200000000, P_GCC_GPLL0_OUT_MAIN, 3, 0, 0),
3643d356ab4STaniya Das 	{ }
3653d356ab4STaniya Das };
3663d356ab4STaniya Das 
3673d356ab4STaniya Das static struct clk_rcg2 gcc_gp1_clk_src = {
3683d356ab4STaniya Das 	.cmd_rcgr = 0x64004,
3693d356ab4STaniya Das 	.mnd_width = 16,
3703d356ab4STaniya Das 	.hid_width = 5,
3713d356ab4STaniya Das 	.parent_map = gcc_parent_map_1,
3723d356ab4STaniya Das 	.freq_tbl = ftbl_gcc_gp1_clk_src,
3733d356ab4STaniya Das 	.hw_clk_ctrl = true,
3743d356ab4STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
3753d356ab4STaniya Das 		.name = "gcc_gp1_clk_src",
3763d356ab4STaniya Das 		.parent_data = gcc_parent_data_1,
3773d356ab4STaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_1),
3783d356ab4STaniya Das 		.flags = CLK_SET_RATE_PARENT,
3793d356ab4STaniya Das 		.ops = &clk_rcg2_shared_ops,
3803d356ab4STaniya Das 	},
3813d356ab4STaniya Das };
3823d356ab4STaniya Das 
3833d356ab4STaniya Das static struct clk_rcg2 gcc_gp2_clk_src = {
3843d356ab4STaniya Das 	.cmd_rcgr = 0x65004,
3853d356ab4STaniya Das 	.mnd_width = 16,
3863d356ab4STaniya Das 	.hid_width = 5,
3873d356ab4STaniya Das 	.parent_map = gcc_parent_map_1,
3883d356ab4STaniya Das 	.freq_tbl = ftbl_gcc_gp1_clk_src,
3893d356ab4STaniya Das 	.hw_clk_ctrl = true,
3903d356ab4STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
3913d356ab4STaniya Das 		.name = "gcc_gp2_clk_src",
3923d356ab4STaniya Das 		.parent_data = gcc_parent_data_1,
3933d356ab4STaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_1),
3943d356ab4STaniya Das 		.flags = CLK_SET_RATE_PARENT,
3953d356ab4STaniya Das 		.ops = &clk_rcg2_shared_ops,
3963d356ab4STaniya Das 	},
3973d356ab4STaniya Das };
3983d356ab4STaniya Das 
3993d356ab4STaniya Das static struct clk_rcg2 gcc_gp3_clk_src = {
4003d356ab4STaniya Das 	.cmd_rcgr = 0x66004,
4013d356ab4STaniya Das 	.mnd_width = 16,
4023d356ab4STaniya Das 	.hid_width = 5,
4033d356ab4STaniya Das 	.parent_map = gcc_parent_map_1,
4043d356ab4STaniya Das 	.freq_tbl = ftbl_gcc_gp1_clk_src,
4053d356ab4STaniya Das 	.hw_clk_ctrl = true,
4063d356ab4STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
4073d356ab4STaniya Das 		.name = "gcc_gp3_clk_src",
4083d356ab4STaniya Das 		.parent_data = gcc_parent_data_1,
4093d356ab4STaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_1),
4103d356ab4STaniya Das 		.flags = CLK_SET_RATE_PARENT,
4113d356ab4STaniya Das 		.ops = &clk_rcg2_shared_ops,
4123d356ab4STaniya Das 	},
4133d356ab4STaniya Das };
4143d356ab4STaniya Das 
4153d356ab4STaniya Das static const struct freq_tbl ftbl_gcc_pcie_0_aux_clk_src[] = {
4163d356ab4STaniya Das 	F(19200000, P_BI_TCXO, 1, 0, 0),
4173d356ab4STaniya Das 	{ }
4183d356ab4STaniya Das };
4193d356ab4STaniya Das 
4203d356ab4STaniya Das static struct clk_rcg2 gcc_pcie_0_aux_clk_src = {
4213d356ab4STaniya Das 	.cmd_rcgr = 0x6b084,
4223d356ab4STaniya Das 	.mnd_width = 16,
4233d356ab4STaniya Das 	.hid_width = 5,
4243d356ab4STaniya Das 	.parent_map = gcc_parent_map_3,
4253d356ab4STaniya Das 	.freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
4263d356ab4STaniya Das 	.hw_clk_ctrl = true,
4273d356ab4STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
4283d356ab4STaniya Das 		.name = "gcc_pcie_0_aux_clk_src",
4293d356ab4STaniya Das 		.parent_data = gcc_parent_data_3,
4303d356ab4STaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_3),
4313d356ab4STaniya Das 		.flags = CLK_SET_RATE_PARENT,
4323d356ab4STaniya Das 		.ops = &clk_rcg2_shared_ops,
4333d356ab4STaniya Das 	},
4343d356ab4STaniya Das };
4353d356ab4STaniya Das 
4363d356ab4STaniya Das static const struct freq_tbl ftbl_gcc_pcie_0_phy_rchng_clk_src[] = {
4373d356ab4STaniya Das 	F(100000000, P_GCC_GPLL0_OUT_EVEN, 3, 0, 0),
4383d356ab4STaniya Das 	{ }
4393d356ab4STaniya Das };
4403d356ab4STaniya Das 
4413d356ab4STaniya Das static struct clk_rcg2 gcc_pcie_0_phy_rchng_clk_src = {
4423d356ab4STaniya Das 	.cmd_rcgr = 0x6b068,
4433d356ab4STaniya Das 	.mnd_width = 0,
4443d356ab4STaniya Das 	.hid_width = 5,
4453d356ab4STaniya Das 	.parent_map = gcc_parent_map_0,
4463d356ab4STaniya Das 	.freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src,
4473d356ab4STaniya Das 	.hw_clk_ctrl = true,
4483d356ab4STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
4493d356ab4STaniya Das 		.name = "gcc_pcie_0_phy_rchng_clk_src",
4503d356ab4STaniya Das 		.parent_data = gcc_parent_data_0,
4513d356ab4STaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
4523d356ab4STaniya Das 		.flags = CLK_SET_RATE_PARENT,
4533d356ab4STaniya Das 		.ops = &clk_rcg2_shared_ops,
4543d356ab4STaniya Das 	},
4553d356ab4STaniya Das };
4563d356ab4STaniya Das 
4573d356ab4STaniya Das static struct clk_rcg2 gcc_pcie_1_aux_clk_src = {
4583d356ab4STaniya Das 	.cmd_rcgr = 0xac080,
4593d356ab4STaniya Das 	.mnd_width = 16,
4603d356ab4STaniya Das 	.hid_width = 5,
4613d356ab4STaniya Das 	.parent_map = gcc_parent_map_3,
4623d356ab4STaniya Das 	.freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
4633d356ab4STaniya Das 	.hw_clk_ctrl = true,
4643d356ab4STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
4653d356ab4STaniya Das 		.name = "gcc_pcie_1_aux_clk_src",
4663d356ab4STaniya Das 		.parent_data = gcc_parent_data_3,
4673d356ab4STaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_3),
4683d356ab4STaniya Das 		.flags = CLK_SET_RATE_PARENT,
4693d356ab4STaniya Das 		.ops = &clk_rcg2_shared_ops,
4703d356ab4STaniya Das 	},
4713d356ab4STaniya Das };
4723d356ab4STaniya Das 
4733d356ab4STaniya Das static struct clk_rcg2 gcc_pcie_1_phy_rchng_clk_src = {
4743d356ab4STaniya Das 	.cmd_rcgr = 0xac064,
4753d356ab4STaniya Das 	.mnd_width = 0,
4763d356ab4STaniya Das 	.hid_width = 5,
4773d356ab4STaniya Das 	.parent_map = gcc_parent_map_0,
4783d356ab4STaniya Das 	.freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src,
4793d356ab4STaniya Das 	.hw_clk_ctrl = true,
4803d356ab4STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
4813d356ab4STaniya Das 		.name = "gcc_pcie_1_phy_rchng_clk_src",
4823d356ab4STaniya Das 		.parent_data = gcc_parent_data_0,
4833d356ab4STaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
4843d356ab4STaniya Das 		.flags = CLK_SET_RATE_PARENT,
4853d356ab4STaniya Das 		.ops = &clk_rcg2_shared_ops,
4863d356ab4STaniya Das 	},
4873d356ab4STaniya Das };
4883d356ab4STaniya Das 
4893d356ab4STaniya Das static const struct freq_tbl ftbl_gcc_pdm2_clk_src[] = {
4903d356ab4STaniya Das 	F(60000000, P_GCC_GPLL0_OUT_MAIN, 10, 0, 0),
4913d356ab4STaniya Das 	{ }
4923d356ab4STaniya Das };
4933d356ab4STaniya Das 
4943d356ab4STaniya Das static struct clk_rcg2 gcc_pdm2_clk_src = {
4953d356ab4STaniya Das 	.cmd_rcgr = 0x33010,
4963d356ab4STaniya Das 	.mnd_width = 0,
4973d356ab4STaniya Das 	.hid_width = 5,
4983d356ab4STaniya Das 	.parent_map = gcc_parent_map_0,
4993d356ab4STaniya Das 	.freq_tbl = ftbl_gcc_pdm2_clk_src,
5003d356ab4STaniya Das 	.hw_clk_ctrl = true,
5013d356ab4STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
5023d356ab4STaniya Das 		.name = "gcc_pdm2_clk_src",
5033d356ab4STaniya Das 		.parent_data = gcc_parent_data_0,
5043d356ab4STaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
5053d356ab4STaniya Das 		.flags = CLK_SET_RATE_PARENT,
5063d356ab4STaniya Das 		.ops = &clk_rcg2_shared_ops,
5073d356ab4STaniya Das 	},
5083d356ab4STaniya Das };
5093d356ab4STaniya Das 
5103d356ab4STaniya Das static const struct freq_tbl ftbl_gcc_qupv3_wrap1_qspi_ref_clk_src[] = {
5113d356ab4STaniya Das 	F(7372800, P_GCC_GPLL0_OUT_EVEN, 1, 384, 15625),
5123d356ab4STaniya Das 	F(14745600, P_GCC_GPLL0_OUT_EVEN, 1, 768, 15625),
5133d356ab4STaniya Das 	F(19200000, P_BI_TCXO, 1, 0, 0),
5143d356ab4STaniya Das 	F(29491200, P_GCC_GPLL0_OUT_EVEN, 1, 1536, 15625),
5153d356ab4STaniya Das 	F(32000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 75),
5163d356ab4STaniya Das 	F(48000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 25),
5173d356ab4STaniya Das 	F(51200000, P_GCC_GPLL0_OUT_EVEN, 1, 64, 375),
5183d356ab4STaniya Das 	F(64000000, P_GCC_GPLL0_OUT_EVEN, 1, 16, 75),
5193d356ab4STaniya Das 	F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0),
5203d356ab4STaniya Das 	F(80000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 15),
5213d356ab4STaniya Das 	F(96000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 25),
5223d356ab4STaniya Das 	F(100000000, P_GCC_GPLL0_OUT_MAIN, 6, 0, 0),
5233d356ab4STaniya Das 	F(102400000, P_GCC_GPLL0_OUT_EVEN, 1, 128, 375),
5243d356ab4STaniya Das 	F(112000000, P_GCC_GPLL0_OUT_EVEN, 1, 28, 75),
5253d356ab4STaniya Das 	F(117964800, P_GCC_GPLL0_OUT_EVEN, 1, 6144, 15625),
5263d356ab4STaniya Das 	F(120000000, P_GCC_GPLL0_OUT_MAIN, 5, 0, 0),
5273d356ab4STaniya Das 	F(150000000, P_GCC_GPLL0_OUT_EVEN, 2, 0, 0),
5283d356ab4STaniya Das 	F(250000000, P_GCC_GPLL7_OUT_MAIN, 2, 0, 0),
5293d356ab4STaniya Das 	{ }
5303d356ab4STaniya Das };
5313d356ab4STaniya Das 
5323d356ab4STaniya Das static struct clk_init_data gcc_qupv3_wrap1_qspi_ref_clk_src_init = {
5333d356ab4STaniya Das 	.name = "gcc_qupv3_wrap1_qspi_ref_clk_src",
5343d356ab4STaniya Das 	.parent_data = gcc_parent_data_4,
5353d356ab4STaniya Das 	.num_parents = ARRAY_SIZE(gcc_parent_data_4),
5363d356ab4STaniya Das 	.flags = CLK_SET_RATE_PARENT,
5373d356ab4STaniya Das 	.ops = &clk_rcg2_shared_no_init_park_ops,
5383d356ab4STaniya Das };
5393d356ab4STaniya Das 
5403d356ab4STaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_qspi_ref_clk_src = {
5413d356ab4STaniya Das 	.cmd_rcgr = 0x188c0,
5423d356ab4STaniya Das 	.mnd_width = 16,
5433d356ab4STaniya Das 	.hid_width = 5,
5443d356ab4STaniya Das 	.parent_map = gcc_parent_map_4,
5453d356ab4STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap1_qspi_ref_clk_src,
5463d356ab4STaniya Das 	.hw_clk_ctrl = true,
5473d356ab4STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap1_qspi_ref_clk_src_init,
5483d356ab4STaniya Das };
5493d356ab4STaniya Das 
5503d356ab4STaniya Das static const struct freq_tbl ftbl_gcc_qupv3_wrap1_s0_clk_src[] = {
5513d356ab4STaniya Das 	F(7372800, P_GCC_GPLL0_OUT_EVEN, 1, 384, 15625),
5523d356ab4STaniya Das 	F(14745600, P_GCC_GPLL0_OUT_EVEN, 1, 768, 15625),
5533d356ab4STaniya Das 	F(19200000, P_BI_TCXO, 1, 0, 0),
5543d356ab4STaniya Das 	F(29491200, P_GCC_GPLL0_OUT_EVEN, 1, 1536, 15625),
5553d356ab4STaniya Das 	F(32000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 75),
5563d356ab4STaniya Das 	F(48000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 25),
5573d356ab4STaniya Das 	F(51200000, P_GCC_GPLL0_OUT_EVEN, 1, 64, 375),
5583d356ab4STaniya Das 	F(61440000, P_GCC_GPLL0_OUT_EVEN, 1, 128, 625),
5593d356ab4STaniya Das 	F(64000000, P_GCC_GPLL0_OUT_EVEN, 1, 16, 75),
5603d356ab4STaniya Das 	F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0),
5613d356ab4STaniya Das 	F(80000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 15),
5623d356ab4STaniya Das 	F(96000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 25),
5633d356ab4STaniya Das 	F(100000000, P_GCC_GPLL0_OUT_MAIN, 6, 0, 0),
5643d356ab4STaniya Das 	F(102400000, P_GCC_GPLL0_OUT_EVEN, 1, 128, 375),
5653d356ab4STaniya Das 	F(112000000, P_GCC_GPLL0_OUT_EVEN, 1, 28, 75),
5663d356ab4STaniya Das 	F(117964800, P_GCC_GPLL0_OUT_EVEN, 1, 6144, 15625),
5673d356ab4STaniya Das 	F(120000000, P_GCC_GPLL0_OUT_MAIN, 5, 0, 0),
5683d356ab4STaniya Das 	{ }
5693d356ab4STaniya Das };
5703d356ab4STaniya Das 
5713d356ab4STaniya Das static struct clk_init_data gcc_qupv3_wrap1_s0_clk_src_init = {
5723d356ab4STaniya Das 	.name = "gcc_qupv3_wrap1_s0_clk_src",
5733d356ab4STaniya Das 	.parent_data = gcc_parent_data_0,
5743d356ab4STaniya Das 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
5753d356ab4STaniya Das 	.flags = CLK_SET_RATE_PARENT,
5763d356ab4STaniya Das 	.ops = &clk_rcg2_shared_no_init_park_ops,
5773d356ab4STaniya Das };
5783d356ab4STaniya Das 
5793d356ab4STaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s0_clk_src = {
5803d356ab4STaniya Das 	.cmd_rcgr = 0x18014,
5813d356ab4STaniya Das 	.mnd_width = 16,
5823d356ab4STaniya Das 	.hid_width = 5,
5833d356ab4STaniya Das 	.parent_map = gcc_parent_map_0,
5843d356ab4STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap1_s0_clk_src,
5853d356ab4STaniya Das 	.hw_clk_ctrl = true,
5863d356ab4STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap1_s0_clk_src_init,
5873d356ab4STaniya Das };
5883d356ab4STaniya Das 
5893d356ab4STaniya Das static struct clk_init_data gcc_qupv3_wrap1_s1_clk_src_init = {
5903d356ab4STaniya Das 	.name = "gcc_qupv3_wrap1_s1_clk_src",
5913d356ab4STaniya Das 	.parent_data = gcc_parent_data_0,
5923d356ab4STaniya Das 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
5933d356ab4STaniya Das 	.flags = CLK_SET_RATE_PARENT,
5943d356ab4STaniya Das 	.ops = &clk_rcg2_shared_no_init_park_ops,
5953d356ab4STaniya Das };
5963d356ab4STaniya Das 
5973d356ab4STaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s1_clk_src = {
5983d356ab4STaniya Das 	.cmd_rcgr = 0x18150,
5993d356ab4STaniya Das 	.mnd_width = 16,
6003d356ab4STaniya Das 	.hid_width = 5,
6013d356ab4STaniya Das 	.parent_map = gcc_parent_map_0,
6023d356ab4STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap1_s0_clk_src,
6033d356ab4STaniya Das 	.hw_clk_ctrl = true,
6043d356ab4STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap1_s1_clk_src_init,
6053d356ab4STaniya Das };
6063d356ab4STaniya Das 
6073d356ab4STaniya Das static const struct freq_tbl ftbl_gcc_qupv3_wrap1_s3_clk_src[] = {
6083d356ab4STaniya Das 	F(7372800, P_GCC_GPLL0_OUT_EVEN, 1, 384, 15625),
6093d356ab4STaniya Das 	F(14745600, P_GCC_GPLL0_OUT_EVEN, 1, 768, 15625),
6103d356ab4STaniya Das 	F(19200000, P_BI_TCXO, 1, 0, 0),
6113d356ab4STaniya Das 	F(29491200, P_GCC_GPLL0_OUT_EVEN, 1, 1536, 15625),
6123d356ab4STaniya Das 	F(32000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 75),
6133d356ab4STaniya Das 	F(48000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 25),
6143d356ab4STaniya Das 	F(51200000, P_GCC_GPLL0_OUT_EVEN, 1, 64, 375),
6153d356ab4STaniya Das 	F(61440000, P_GCC_GPLL0_OUT_EVEN, 1, 128, 625),
6163d356ab4STaniya Das 	F(64000000, P_GCC_GPLL0_OUT_EVEN, 1, 16, 75),
6173d356ab4STaniya Das 	F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0),
6183d356ab4STaniya Das 	F(80000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 15),
6193d356ab4STaniya Das 	F(96000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 25),
6203d356ab4STaniya Das 	F(100000000, P_GCC_GPLL0_OUT_MAIN, 6, 0, 0),
6213d356ab4STaniya Das 	{ }
6223d356ab4STaniya Das };
6233d356ab4STaniya Das 
6243d356ab4STaniya Das static struct clk_init_data gcc_qupv3_wrap1_s3_clk_src_init = {
6253d356ab4STaniya Das 	.name = "gcc_qupv3_wrap1_s3_clk_src",
6263d356ab4STaniya Das 	.parent_data = gcc_parent_data_0,
6273d356ab4STaniya Das 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
6283d356ab4STaniya Das 	.flags = CLK_SET_RATE_PARENT,
6293d356ab4STaniya Das 	.ops = &clk_rcg2_shared_no_init_park_ops,
6303d356ab4STaniya Das };
6313d356ab4STaniya Das 
6323d356ab4STaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s3_clk_src = {
6333d356ab4STaniya Das 	.cmd_rcgr = 0x182a0,
6343d356ab4STaniya Das 	.mnd_width = 16,
6353d356ab4STaniya Das 	.hid_width = 5,
6363d356ab4STaniya Das 	.parent_map = gcc_parent_map_0,
6373d356ab4STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap1_s3_clk_src,
6383d356ab4STaniya Das 	.hw_clk_ctrl = true,
6393d356ab4STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap1_s3_clk_src_init,
6403d356ab4STaniya Das };
6413d356ab4STaniya Das 
6423d356ab4STaniya Das static struct clk_init_data gcc_qupv3_wrap1_s4_clk_src_init = {
6433d356ab4STaniya Das 	.name = "gcc_qupv3_wrap1_s4_clk_src",
6443d356ab4STaniya Das 	.parent_data = gcc_parent_data_0,
6453d356ab4STaniya Das 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
6463d356ab4STaniya Das 	.flags = CLK_SET_RATE_PARENT,
6473d356ab4STaniya Das 	.ops = &clk_rcg2_shared_no_init_park_ops,
6483d356ab4STaniya Das };
6493d356ab4STaniya Das 
6503d356ab4STaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s4_clk_src = {
6513d356ab4STaniya Das 	.cmd_rcgr = 0x183dc,
6523d356ab4STaniya Das 	.mnd_width = 16,
6533d356ab4STaniya Das 	.hid_width = 5,
6543d356ab4STaniya Das 	.parent_map = gcc_parent_map_0,
6553d356ab4STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap1_s0_clk_src,
6563d356ab4STaniya Das 	.hw_clk_ctrl = true,
6573d356ab4STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap1_s4_clk_src_init,
6583d356ab4STaniya Das };
6593d356ab4STaniya Das 
6603d356ab4STaniya Das static const struct freq_tbl ftbl_gcc_qupv3_wrap1_s5_clk_src[] = {
6613d356ab4STaniya Das 	F(7372800, P_GCC_GPLL0_OUT_EVEN, 1, 384, 15625),
6623d356ab4STaniya Das 	F(14745600, P_GCC_GPLL0_OUT_EVEN, 1, 768, 15625),
6633d356ab4STaniya Das 	F(19200000, P_BI_TCXO, 1, 0, 0),
6643d356ab4STaniya Das 	F(29491200, P_GCC_GPLL0_OUT_EVEN, 1, 1536, 15625),
6653d356ab4STaniya Das 	F(32000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 75),
6663d356ab4STaniya Das 	F(48000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 25),
6673d356ab4STaniya Das 	F(51200000, P_GCC_GPLL0_OUT_EVEN, 1, 64, 375),
6683d356ab4STaniya Das 	F(61440000, P_GCC_GPLL0_OUT_EVEN, 1, 128, 625),
6693d356ab4STaniya Das 	F(64000000, P_GCC_GPLL0_OUT_EVEN, 1, 16, 75),
6703d356ab4STaniya Das 	F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0),
6713d356ab4STaniya Das 	F(80000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 15),
6723d356ab4STaniya Das 	F(96000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 25),
6733d356ab4STaniya Das 	F(100000000, P_GCC_GPLL0_OUT_MAIN, 6, 0, 0),
6743d356ab4STaniya Das 	F(102400000, P_GCC_GPLL0_OUT_EVEN, 1, 128, 375),
6753d356ab4STaniya Das 	F(112000000, P_GCC_GPLL0_OUT_EVEN, 1, 28, 75),
6763d356ab4STaniya Das 	F(117964800, P_GCC_GPLL0_OUT_EVEN, 1, 6144, 15625),
6773d356ab4STaniya Das 	F(128000000, P_GCC_GPLL0_OUT_MAIN, 1, 16, 75),
6783d356ab4STaniya Das 	{ }
6793d356ab4STaniya Das };
6803d356ab4STaniya Das 
6813d356ab4STaniya Das static struct clk_init_data gcc_qupv3_wrap1_s5_clk_src_init = {
6823d356ab4STaniya Das 	.name = "gcc_qupv3_wrap1_s5_clk_src",
6833d356ab4STaniya Das 	.parent_data = gcc_parent_data_0,
6843d356ab4STaniya Das 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
6853d356ab4STaniya Das 	.flags = CLK_SET_RATE_PARENT,
6863d356ab4STaniya Das 	.ops = &clk_rcg2_shared_no_init_park_ops,
6873d356ab4STaniya Das };
6883d356ab4STaniya Das 
6893d356ab4STaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s5_clk_src = {
6903d356ab4STaniya Das 	.cmd_rcgr = 0x18518,
6913d356ab4STaniya Das 	.mnd_width = 16,
6923d356ab4STaniya Das 	.hid_width = 5,
6933d356ab4STaniya Das 	.parent_map = gcc_parent_map_0,
6943d356ab4STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap1_s5_clk_src,
6953d356ab4STaniya Das 	.hw_clk_ctrl = true,
6963d356ab4STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap1_s5_clk_src_init,
6973d356ab4STaniya Das };
6983d356ab4STaniya Das 
6993d356ab4STaniya Das static struct clk_init_data gcc_qupv3_wrap1_s6_clk_src_init = {
7003d356ab4STaniya Das 	.name = "gcc_qupv3_wrap1_s6_clk_src",
7013d356ab4STaniya Das 	.parent_data = gcc_parent_data_0,
7023d356ab4STaniya Das 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
7033d356ab4STaniya Das 	.flags = CLK_SET_RATE_PARENT,
7043d356ab4STaniya Das 	.ops = &clk_rcg2_shared_no_init_park_ops,
7053d356ab4STaniya Das };
7063d356ab4STaniya Das 
7073d356ab4STaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s6_clk_src = {
7083d356ab4STaniya Das 	.cmd_rcgr = 0x18654,
7093d356ab4STaniya Das 	.mnd_width = 16,
7103d356ab4STaniya Das 	.hid_width = 5,
7113d356ab4STaniya Das 	.parent_map = gcc_parent_map_0,
7123d356ab4STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap1_s3_clk_src,
7133d356ab4STaniya Das 	.hw_clk_ctrl = true,
7143d356ab4STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap1_s6_clk_src_init,
7153d356ab4STaniya Das };
7163d356ab4STaniya Das 
7173d356ab4STaniya Das static struct clk_init_data gcc_qupv3_wrap1_s7_clk_src_init = {
7183d356ab4STaniya Das 	.name = "gcc_qupv3_wrap1_s7_clk_src",
7193d356ab4STaniya Das 	.parent_data = gcc_parent_data_0,
7203d356ab4STaniya Das 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
7213d356ab4STaniya Das 	.flags = CLK_SET_RATE_PARENT,
7223d356ab4STaniya Das 	.ops = &clk_rcg2_shared_no_init_park_ops,
7233d356ab4STaniya Das };
7243d356ab4STaniya Das 
7253d356ab4STaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s7_clk_src = {
7263d356ab4STaniya Das 	.cmd_rcgr = 0x18790,
7273d356ab4STaniya Das 	.mnd_width = 16,
7283d356ab4STaniya Das 	.hid_width = 5,
7293d356ab4STaniya Das 	.parent_map = gcc_parent_map_0,
7303d356ab4STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap1_s3_clk_src,
7313d356ab4STaniya Das 	.hw_clk_ctrl = true,
7323d356ab4STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap1_s7_clk_src_init,
7333d356ab4STaniya Das };
7343d356ab4STaniya Das 
7353d356ab4STaniya Das static struct clk_init_data gcc_qupv3_wrap2_s0_clk_src_init = {
7363d356ab4STaniya Das 	.name = "gcc_qupv3_wrap2_s0_clk_src",
7373d356ab4STaniya Das 	.parent_data = gcc_parent_data_0,
7383d356ab4STaniya Das 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
7393d356ab4STaniya Das 	.flags = CLK_SET_RATE_PARENT,
7403d356ab4STaniya Das 	.ops = &clk_rcg2_shared_no_init_park_ops,
7413d356ab4STaniya Das };
7423d356ab4STaniya Das 
7433d356ab4STaniya Das static struct clk_rcg2 gcc_qupv3_wrap2_s0_clk_src = {
7443d356ab4STaniya Das 	.cmd_rcgr = 0x1e014,
7453d356ab4STaniya Das 	.mnd_width = 16,
7463d356ab4STaniya Das 	.hid_width = 5,
7473d356ab4STaniya Das 	.parent_map = gcc_parent_map_0,
7483d356ab4STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap1_s0_clk_src,
7493d356ab4STaniya Das 	.hw_clk_ctrl = true,
7503d356ab4STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap2_s0_clk_src_init,
7513d356ab4STaniya Das };
7523d356ab4STaniya Das 
7533d356ab4STaniya Das static struct clk_init_data gcc_qupv3_wrap2_s1_clk_src_init = {
7543d356ab4STaniya Das 	.name = "gcc_qupv3_wrap2_s1_clk_src",
7553d356ab4STaniya Das 	.parent_data = gcc_parent_data_0,
7563d356ab4STaniya Das 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
7573d356ab4STaniya Das 	.flags = CLK_SET_RATE_PARENT,
7583d356ab4STaniya Das 	.ops = &clk_rcg2_shared_no_init_park_ops,
7593d356ab4STaniya Das };
7603d356ab4STaniya Das 
7613d356ab4STaniya Das static struct clk_rcg2 gcc_qupv3_wrap2_s1_clk_src = {
7623d356ab4STaniya Das 	.cmd_rcgr = 0x1e150,
7633d356ab4STaniya Das 	.mnd_width = 16,
7643d356ab4STaniya Das 	.hid_width = 5,
7653d356ab4STaniya Das 	.parent_map = gcc_parent_map_0,
7663d356ab4STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap1_s0_clk_src,
7673d356ab4STaniya Das 	.hw_clk_ctrl = true,
7683d356ab4STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap2_s1_clk_src_init,
7693d356ab4STaniya Das };
7703d356ab4STaniya Das 
7713d356ab4STaniya Das static const struct freq_tbl ftbl_gcc_qupv3_wrap2_s2_clk_src[] = {
7723d356ab4STaniya Das 	F(7372800, P_GCC_GPLL0_OUT_EVEN, 1, 384, 15625),
7733d356ab4STaniya Das 	F(14745600, P_GCC_GPLL0_OUT_EVEN, 1, 768, 15625),
7743d356ab4STaniya Das 	F(19200000, P_BI_TCXO, 1, 0, 0),
7753d356ab4STaniya Das 	F(29491200, P_GCC_GPLL0_OUT_EVEN, 1, 1536, 15625),
7763d356ab4STaniya Das 	F(32000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 75),
7773d356ab4STaniya Das 	F(48000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 25),
7783d356ab4STaniya Das 	F(51200000, P_GCC_GPLL0_OUT_EVEN, 1, 64, 375),
7793d356ab4STaniya Das 	F(61440000, P_GCC_GPLL0_OUT_EVEN, 1, 128, 625),
7803d356ab4STaniya Das 	F(64000000, P_GCC_GPLL0_OUT_EVEN, 1, 16, 75),
7813d356ab4STaniya Das 	F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0),
7823d356ab4STaniya Das 	F(80000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 15),
7833d356ab4STaniya Das 	F(96000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 25),
7843d356ab4STaniya Das 	F(100000000, P_GCC_GPLL0_OUT_MAIN, 6, 0, 0),
7853d356ab4STaniya Das 	F(102400000, P_GCC_GPLL0_OUT_EVEN, 1, 128, 375),
7863d356ab4STaniya Das 	F(112000000, P_GCC_GPLL0_OUT_EVEN, 1, 28, 75),
7873d356ab4STaniya Das 	F(117964800, P_GCC_GPLL0_OUT_EVEN, 1, 6144, 15625),
7883d356ab4STaniya Das 	F(125000000, P_GCC_GPLL7_OUT_MAIN, 4, 0, 0),
7893d356ab4STaniya Das 	{ }
7903d356ab4STaniya Das };
7913d356ab4STaniya Das 
7923d356ab4STaniya Das static struct clk_init_data gcc_qupv3_wrap2_s2_clk_src_init = {
7933d356ab4STaniya Das 	.name = "gcc_qupv3_wrap2_s2_clk_src",
7943d356ab4STaniya Das 	.parent_data = gcc_parent_data_4,
7953d356ab4STaniya Das 	.num_parents = ARRAY_SIZE(gcc_parent_data_4),
7963d356ab4STaniya Das 	.flags = CLK_SET_RATE_PARENT,
7973d356ab4STaniya Das 	.ops = &clk_rcg2_shared_no_init_park_ops,
7983d356ab4STaniya Das };
7993d356ab4STaniya Das 
8003d356ab4STaniya Das static struct clk_rcg2 gcc_qupv3_wrap2_s2_clk_src = {
8013d356ab4STaniya Das 	.cmd_rcgr = 0x1e28c,
8023d356ab4STaniya Das 	.mnd_width = 16,
8033d356ab4STaniya Das 	.hid_width = 5,
8043d356ab4STaniya Das 	.parent_map = gcc_parent_map_4,
8053d356ab4STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap2_s2_clk_src,
8063d356ab4STaniya Das 	.hw_clk_ctrl = true,
8073d356ab4STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap2_s2_clk_src_init,
8083d356ab4STaniya Das };
8093d356ab4STaniya Das 
8103d356ab4STaniya Das static struct clk_init_data gcc_qupv3_wrap2_s3_clk_src_init = {
8113d356ab4STaniya Das 	.name = "gcc_qupv3_wrap2_s3_clk_src",
8123d356ab4STaniya Das 	.parent_data = gcc_parent_data_0,
8133d356ab4STaniya Das 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
8143d356ab4STaniya Das 	.flags = CLK_SET_RATE_PARENT,
8153d356ab4STaniya Das 	.ops = &clk_rcg2_shared_no_init_park_ops,
8163d356ab4STaniya Das };
8173d356ab4STaniya Das 
8183d356ab4STaniya Das static struct clk_rcg2 gcc_qupv3_wrap2_s3_clk_src = {
8193d356ab4STaniya Das 	.cmd_rcgr = 0x1e3c8,
8203d356ab4STaniya Das 	.mnd_width = 16,
8213d356ab4STaniya Das 	.hid_width = 5,
8223d356ab4STaniya Das 	.parent_map = gcc_parent_map_0,
8233d356ab4STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap1_s3_clk_src,
8243d356ab4STaniya Das 	.hw_clk_ctrl = true,
8253d356ab4STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap2_s3_clk_src_init,
8263d356ab4STaniya Das };
8273d356ab4STaniya Das 
8283d356ab4STaniya Das static struct clk_init_data gcc_qupv3_wrap2_s4_clk_src_init = {
8293d356ab4STaniya Das 	.name = "gcc_qupv3_wrap2_s4_clk_src",
8303d356ab4STaniya Das 	.parent_data = gcc_parent_data_0,
8313d356ab4STaniya Das 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
8323d356ab4STaniya Das 	.flags = CLK_SET_RATE_PARENT,
8333d356ab4STaniya Das 	.ops = &clk_rcg2_shared_no_init_park_ops,
8343d356ab4STaniya Das };
8353d356ab4STaniya Das 
8363d356ab4STaniya Das static struct clk_rcg2 gcc_qupv3_wrap2_s4_clk_src = {
8373d356ab4STaniya Das 	.cmd_rcgr = 0x1e504,
8383d356ab4STaniya Das 	.mnd_width = 16,
8393d356ab4STaniya Das 	.hid_width = 5,
8403d356ab4STaniya Das 	.parent_map = gcc_parent_map_0,
8413d356ab4STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap1_s0_clk_src,
8423d356ab4STaniya Das 	.hw_clk_ctrl = true,
8433d356ab4STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap2_s4_clk_src_init,
8443d356ab4STaniya Das };
8453d356ab4STaniya Das 
8463d356ab4STaniya Das static struct clk_init_data gcc_qupv3_wrap2_s5_clk_src_init = {
8473d356ab4STaniya Das 	.name = "gcc_qupv3_wrap2_s5_clk_src",
8483d356ab4STaniya Das 	.parent_data = gcc_parent_data_0,
8493d356ab4STaniya Das 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
8503d356ab4STaniya Das 	.flags = CLK_SET_RATE_PARENT,
8513d356ab4STaniya Das 	.ops = &clk_rcg2_shared_no_init_park_ops,
8523d356ab4STaniya Das };
8533d356ab4STaniya Das 
8543d356ab4STaniya Das static struct clk_rcg2 gcc_qupv3_wrap2_s5_clk_src = {
8553d356ab4STaniya Das 	.cmd_rcgr = 0x1e640,
8563d356ab4STaniya Das 	.mnd_width = 16,
8573d356ab4STaniya Das 	.hid_width = 5,
8583d356ab4STaniya Das 	.parent_map = gcc_parent_map_0,
8593d356ab4STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap1_s5_clk_src,
8603d356ab4STaniya Das 	.hw_clk_ctrl = true,
8613d356ab4STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap2_s5_clk_src_init,
8623d356ab4STaniya Das };
8633d356ab4STaniya Das 
8643d356ab4STaniya Das static struct clk_init_data gcc_qupv3_wrap2_s6_clk_src_init = {
8653d356ab4STaniya Das 	.name = "gcc_qupv3_wrap2_s6_clk_src",
8663d356ab4STaniya Das 	.parent_data = gcc_parent_data_4,
8673d356ab4STaniya Das 	.num_parents = ARRAY_SIZE(gcc_parent_data_4),
8683d356ab4STaniya Das 	.flags = CLK_SET_RATE_PARENT,
8693d356ab4STaniya Das 	.ops = &clk_rcg2_shared_no_init_park_ops,
8703d356ab4STaniya Das };
8713d356ab4STaniya Das 
8723d356ab4STaniya Das static struct clk_rcg2 gcc_qupv3_wrap2_s6_clk_src = {
8733d356ab4STaniya Das 	.cmd_rcgr = 0x1e77c,
8743d356ab4STaniya Das 	.mnd_width = 16,
8753d356ab4STaniya Das 	.hid_width = 5,
8763d356ab4STaniya Das 	.parent_map = gcc_parent_map_4,
8773d356ab4STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap1_s3_clk_src,
8783d356ab4STaniya Das 	.hw_clk_ctrl = true,
8793d356ab4STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap2_s6_clk_src_init,
8803d356ab4STaniya Das };
8813d356ab4STaniya Das 
8823d356ab4STaniya Das static struct clk_init_data gcc_qupv3_wrap2_s7_clk_src_init = {
8833d356ab4STaniya Das 	.name = "gcc_qupv3_wrap2_s7_clk_src",
8843d356ab4STaniya Das 	.parent_data = gcc_parent_data_0,
8853d356ab4STaniya Das 	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
8863d356ab4STaniya Das 	.flags = CLK_SET_RATE_PARENT,
8873d356ab4STaniya Das 	.ops = &clk_rcg2_shared_no_init_park_ops,
8883d356ab4STaniya Das };
8893d356ab4STaniya Das 
8903d356ab4STaniya Das static struct clk_rcg2 gcc_qupv3_wrap2_s7_clk_src = {
8913d356ab4STaniya Das 	.cmd_rcgr = 0x1e8b8,
8923d356ab4STaniya Das 	.mnd_width = 16,
8933d356ab4STaniya Das 	.hid_width = 5,
8943d356ab4STaniya Das 	.parent_map = gcc_parent_map_0,
8953d356ab4STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap1_s3_clk_src,
8963d356ab4STaniya Das 	.hw_clk_ctrl = true,
8973d356ab4STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap2_s7_clk_src_init,
8983d356ab4STaniya Das };
8993d356ab4STaniya Das 
9003d356ab4STaniya Das static const struct freq_tbl ftbl_gcc_sdcc1_apps_clk_src[] = {
9013d356ab4STaniya Das 	F(144000, P_BI_TCXO, 16, 3, 25),
9023d356ab4STaniya Das 	F(400000, P_BI_TCXO, 12, 1, 4),
9033d356ab4STaniya Das 	F(20000000, P_GCC_GPLL0_OUT_EVEN, 5, 1, 3),
9043d356ab4STaniya Das 	F(25000000, P_GCC_GPLL0_OUT_EVEN, 12, 0, 0),
9053d356ab4STaniya Das 	F(50000000, P_GCC_GPLL0_OUT_EVEN, 6, 0, 0),
9063d356ab4STaniya Das 	F(100000000, P_GCC_GPLL0_OUT_EVEN, 3, 0, 0),
9073d356ab4STaniya Das 	F(192000000, P_GCC_GPLL8_OUT_MAIN, 2, 0, 0),
9083d356ab4STaniya Das 	F(384000000, P_GCC_GPLL8_OUT_MAIN, 1, 0, 0),
9093d356ab4STaniya Das 	{ }
9103d356ab4STaniya Das };
9113d356ab4STaniya Das 
9123d356ab4STaniya Das static struct clk_rcg2 gcc_sdcc1_apps_clk_src = {
9133d356ab4STaniya Das 	.cmd_rcgr = 0xa9018,
9143d356ab4STaniya Das 	.mnd_width = 8,
9153d356ab4STaniya Das 	.hid_width = 5,
9163d356ab4STaniya Das 	.parent_map = gcc_parent_map_5,
9173d356ab4STaniya Das 	.freq_tbl = ftbl_gcc_sdcc1_apps_clk_src,
9183d356ab4STaniya Das 	.hw_clk_ctrl = true,
9193d356ab4STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
9203d356ab4STaniya Das 		.name = "gcc_sdcc1_apps_clk_src",
9213d356ab4STaniya Das 		.parent_data = gcc_parent_data_5,
9223d356ab4STaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_5),
9233d356ab4STaniya Das 		.flags = CLK_SET_RATE_PARENT,
9243d356ab4STaniya Das 		.ops = &clk_rcg2_shared_floor_ops,
9253d356ab4STaniya Das 	},
9263d356ab4STaniya Das };
9273d356ab4STaniya Das 
9283d356ab4STaniya Das static const struct freq_tbl ftbl_gcc_sdcc1_ice_core_clk_src[] = {
9293d356ab4STaniya Das 	F(100000000, P_GCC_GPLL0_OUT_EVEN, 3, 0, 0),
9303d356ab4STaniya Das 	F(150000000, P_GCC_GPLL0_OUT_EVEN, 2, 0, 0),
9313d356ab4STaniya Das 	F(300000000, P_GCC_GPLL0_OUT_EVEN, 1, 0, 0),
9323d356ab4STaniya Das 	{ }
9333d356ab4STaniya Das };
9343d356ab4STaniya Das 
9353d356ab4STaniya Das static struct clk_rcg2 gcc_sdcc1_ice_core_clk_src = {
9363d356ab4STaniya Das 	.cmd_rcgr = 0xa9040,
9373d356ab4STaniya Das 	.mnd_width = 0,
9383d356ab4STaniya Das 	.hid_width = 5,
9393d356ab4STaniya Das 	.parent_map = gcc_parent_map_5,
9403d356ab4STaniya Das 	.freq_tbl = ftbl_gcc_sdcc1_ice_core_clk_src,
9413d356ab4STaniya Das 	.hw_clk_ctrl = true,
9423d356ab4STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
9433d356ab4STaniya Das 		.name = "gcc_sdcc1_ice_core_clk_src",
9443d356ab4STaniya Das 		.parent_data = gcc_parent_data_5,
9453d356ab4STaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_5),
9463d356ab4STaniya Das 		.flags = CLK_SET_RATE_PARENT,
9473d356ab4STaniya Das 		.ops = &clk_rcg2_shared_floor_ops,
9483d356ab4STaniya Das 	},
9493d356ab4STaniya Das };
9503d356ab4STaniya Das 
9513d356ab4STaniya Das static const struct freq_tbl ftbl_gcc_sdcc2_apps_clk_src[] = {
9523d356ab4STaniya Das 	F(400000, P_BI_TCXO, 12, 1, 4),
9533d356ab4STaniya Das 	F(25000000, P_GCC_GPLL0_OUT_EVEN, 12, 0, 0),
9543d356ab4STaniya Das 	F(37500000, P_GCC_GPLL0_OUT_EVEN, 8, 0, 0),
9553d356ab4STaniya Das 	F(50000000, P_GCC_GPLL0_OUT_EVEN, 6, 0, 0),
9563d356ab4STaniya Das 	F(100000000, P_GCC_GPLL0_OUT_EVEN, 3, 0, 0),
9573d356ab4STaniya Das 	F(202000000, P_GCC_GPLL9_OUT_MAIN, 4, 0, 0),
9583d356ab4STaniya Das 	{ }
9593d356ab4STaniya Das };
9603d356ab4STaniya Das 
9613d356ab4STaniya Das static struct clk_rcg2 gcc_sdcc2_apps_clk_src = {
9623d356ab4STaniya Das 	.cmd_rcgr = 0x1401c,
9633d356ab4STaniya Das 	.mnd_width = 8,
9643d356ab4STaniya Das 	.hid_width = 5,
9653d356ab4STaniya Das 	.parent_map = gcc_parent_map_7,
9663d356ab4STaniya Das 	.freq_tbl = ftbl_gcc_sdcc2_apps_clk_src,
9673d356ab4STaniya Das 	.hw_clk_ctrl = true,
9683d356ab4STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
9693d356ab4STaniya Das 		.name = "gcc_sdcc2_apps_clk_src",
9703d356ab4STaniya Das 		.parent_data = gcc_parent_data_7,
9713d356ab4STaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_7),
9723d356ab4STaniya Das 		.flags = CLK_SET_RATE_PARENT,
9733d356ab4STaniya Das 		.ops = &clk_rcg2_shared_floor_ops,
9743d356ab4STaniya Das 	},
9753d356ab4STaniya Das };
9763d356ab4STaniya Das 
9773d356ab4STaniya Das static const struct freq_tbl ftbl_gcc_ufs_phy_axi_clk_src[] = {
9783d356ab4STaniya Das 	F(25000000, P_GCC_GPLL0_OUT_EVEN, 12, 0, 0),
9793d356ab4STaniya Das 	F(100000000, P_GCC_GPLL0_OUT_EVEN, 3, 0, 0),
9803d356ab4STaniya Das 	F(201500000, P_GCC_GPLL4_OUT_MAIN, 4, 0, 0),
9813d356ab4STaniya Das 	F(403000000, P_GCC_GPLL4_OUT_MAIN, 2, 0, 0),
9823d356ab4STaniya Das 	{ }
9833d356ab4STaniya Das };
9843d356ab4STaniya Das 
9853d356ab4STaniya Das static struct clk_rcg2 gcc_ufs_phy_axi_clk_src = {
9863d356ab4STaniya Das 	.cmd_rcgr = 0x77034,
9873d356ab4STaniya Das 	.mnd_width = 8,
9883d356ab4STaniya Das 	.hid_width = 5,
9893d356ab4STaniya Das 	.parent_map = gcc_parent_map_2,
9903d356ab4STaniya Das 	.freq_tbl = ftbl_gcc_ufs_phy_axi_clk_src,
9913d356ab4STaniya Das 	.hw_clk_ctrl = true,
9923d356ab4STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
9933d356ab4STaniya Das 		.name = "gcc_ufs_phy_axi_clk_src",
9943d356ab4STaniya Das 		.parent_data = gcc_parent_data_2,
9953d356ab4STaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_2),
9963d356ab4STaniya Das 		.flags = CLK_SET_RATE_PARENT,
9973d356ab4STaniya Das 		.ops = &clk_rcg2_shared_no_init_park_ops,
9983d356ab4STaniya Das 	},
9993d356ab4STaniya Das };
10003d356ab4STaniya Das 
10013d356ab4STaniya Das static const struct freq_tbl ftbl_gcc_ufs_phy_ice_core_clk_src[] = {
10023d356ab4STaniya Das 	F(100000000, P_GCC_GPLL0_OUT_EVEN, 3, 0, 0),
10033d356ab4STaniya Das 	F(201500000, P_GCC_GPLL4_OUT_MAIN, 4, 0, 0),
10043d356ab4STaniya Das 	F(403000000, P_GCC_GPLL4_OUT_MAIN, 2, 0, 0),
10053d356ab4STaniya Das 	{ }
10063d356ab4STaniya Das };
10073d356ab4STaniya Das 
10083d356ab4STaniya Das static struct clk_rcg2 gcc_ufs_phy_ice_core_clk_src = {
10093d356ab4STaniya Das 	.cmd_rcgr = 0x7708c,
10103d356ab4STaniya Das 	.mnd_width = 0,
10113d356ab4STaniya Das 	.hid_width = 5,
10123d356ab4STaniya Das 	.parent_map = gcc_parent_map_2,
10133d356ab4STaniya Das 	.freq_tbl = ftbl_gcc_ufs_phy_ice_core_clk_src,
10143d356ab4STaniya Das 	.hw_clk_ctrl = true,
10153d356ab4STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
10163d356ab4STaniya Das 		.name = "gcc_ufs_phy_ice_core_clk_src",
10173d356ab4STaniya Das 		.parent_data = gcc_parent_data_2,
10183d356ab4STaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_2),
10193d356ab4STaniya Das 		.flags = CLK_SET_RATE_PARENT,
10203d356ab4STaniya Das 		.ops = &clk_rcg2_shared_no_init_park_ops,
10213d356ab4STaniya Das 	},
10223d356ab4STaniya Das };
10233d356ab4STaniya Das 
10243d356ab4STaniya Das static const struct freq_tbl ftbl_gcc_ufs_phy_phy_aux_clk_src[] = {
10253d356ab4STaniya Das 	F(9600000, P_BI_TCXO, 2, 0, 0),
10263d356ab4STaniya Das 	F(19200000, P_BI_TCXO, 1, 0, 0),
10273d356ab4STaniya Das 	{ }
10283d356ab4STaniya Das };
10293d356ab4STaniya Das 
10303d356ab4STaniya Das static struct clk_rcg2 gcc_ufs_phy_phy_aux_clk_src = {
10313d356ab4STaniya Das 	.cmd_rcgr = 0x770c0,
10323d356ab4STaniya Das 	.mnd_width = 0,
10333d356ab4STaniya Das 	.hid_width = 5,
10343d356ab4STaniya Das 	.parent_map = gcc_parent_map_6,
10353d356ab4STaniya Das 	.freq_tbl = ftbl_gcc_ufs_phy_phy_aux_clk_src,
10363d356ab4STaniya Das 	.hw_clk_ctrl = true,
10373d356ab4STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
10383d356ab4STaniya Das 		.name = "gcc_ufs_phy_phy_aux_clk_src",
10393d356ab4STaniya Das 		.parent_data = gcc_parent_data_6,
10403d356ab4STaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_6),
10413d356ab4STaniya Das 		.flags = CLK_SET_RATE_PARENT,
10423d356ab4STaniya Das 		.ops = &clk_rcg2_shared_no_init_park_ops,
10433d356ab4STaniya Das 	},
10443d356ab4STaniya Das };
10453d356ab4STaniya Das 
10463d356ab4STaniya Das static struct clk_rcg2 gcc_ufs_phy_unipro_core_clk_src = {
10473d356ab4STaniya Das 	.cmd_rcgr = 0x770a4,
10483d356ab4STaniya Das 	.mnd_width = 0,
10493d356ab4STaniya Das 	.hid_width = 5,
10503d356ab4STaniya Das 	.parent_map = gcc_parent_map_2,
10513d356ab4STaniya Das 	.freq_tbl = ftbl_gcc_ufs_phy_ice_core_clk_src,
10523d356ab4STaniya Das 	.hw_clk_ctrl = true,
10533d356ab4STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
10543d356ab4STaniya Das 		.name = "gcc_ufs_phy_unipro_core_clk_src",
10553d356ab4STaniya Das 		.parent_data = gcc_parent_data_2,
10563d356ab4STaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_2),
10573d356ab4STaniya Das 		.flags = CLK_SET_RATE_PARENT,
10583d356ab4STaniya Das 		.ops = &clk_rcg2_shared_no_init_park_ops,
10593d356ab4STaniya Das 	},
10603d356ab4STaniya Das };
10613d356ab4STaniya Das 
10623d356ab4STaniya Das static const struct freq_tbl ftbl_gcc_usb30_prim_master_clk_src[] = {
10633d356ab4STaniya Das 	F(66666667, P_GCC_GPLL0_OUT_EVEN, 4.5, 0, 0),
10643d356ab4STaniya Das 	F(133333333, P_GCC_GPLL0_OUT_MAIN, 4.5, 0, 0),
10653d356ab4STaniya Das 	F(200000000, P_GCC_GPLL0_OUT_MAIN, 3, 0, 0),
10663d356ab4STaniya Das 	F(240000000, P_GCC_GPLL0_OUT_MAIN, 2.5, 0, 0),
10673d356ab4STaniya Das 	{ }
10683d356ab4STaniya Das };
10693d356ab4STaniya Das 
10703d356ab4STaniya Das static struct clk_rcg2 gcc_usb30_prim_master_clk_src = {
10713d356ab4STaniya Das 	.cmd_rcgr = 0x39030,
10723d356ab4STaniya Das 	.mnd_width = 8,
10733d356ab4STaniya Das 	.hid_width = 5,
10743d356ab4STaniya Das 	.parent_map = gcc_parent_map_0,
10753d356ab4STaniya Das 	.freq_tbl = ftbl_gcc_usb30_prim_master_clk_src,
10763d356ab4STaniya Das 	.hw_clk_ctrl = true,
10773d356ab4STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
10783d356ab4STaniya Das 		.name = "gcc_usb30_prim_master_clk_src",
10793d356ab4STaniya Das 		.parent_data = gcc_parent_data_0,
10803d356ab4STaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
10813d356ab4STaniya Das 		.flags = CLK_SET_RATE_PARENT,
10823d356ab4STaniya Das 		.ops = &clk_rcg2_shared_ops,
10833d356ab4STaniya Das 	},
10843d356ab4STaniya Das };
10853d356ab4STaniya Das 
10863d356ab4STaniya Das static struct clk_rcg2 gcc_usb30_prim_mock_utmi_clk_src = {
10873d356ab4STaniya Das 	.cmd_rcgr = 0x39048,
10883d356ab4STaniya Das 	.mnd_width = 0,
10893d356ab4STaniya Das 	.hid_width = 5,
10903d356ab4STaniya Das 	.parent_map = gcc_parent_map_0,
10913d356ab4STaniya Das 	.freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
10923d356ab4STaniya Das 	.hw_clk_ctrl = true,
10933d356ab4STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
10943d356ab4STaniya Das 		.name = "gcc_usb30_prim_mock_utmi_clk_src",
10953d356ab4STaniya Das 		.parent_data = gcc_parent_data_0,
10963d356ab4STaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
10973d356ab4STaniya Das 		.flags = CLK_SET_RATE_PARENT,
10983d356ab4STaniya Das 		.ops = &clk_rcg2_shared_ops,
10993d356ab4STaniya Das 	},
11003d356ab4STaniya Das };
11013d356ab4STaniya Das 
11023d356ab4STaniya Das static struct clk_rcg2 gcc_usb3_prim_phy_aux_clk_src = {
11033d356ab4STaniya Das 	.cmd_rcgr = 0x39074,
11043d356ab4STaniya Das 	.mnd_width = 0,
11053d356ab4STaniya Das 	.hid_width = 5,
11063d356ab4STaniya Das 	.parent_map = gcc_parent_map_3,
11073d356ab4STaniya Das 	.freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
11083d356ab4STaniya Das 	.hw_clk_ctrl = true,
11093d356ab4STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
11103d356ab4STaniya Das 		.name = "gcc_usb3_prim_phy_aux_clk_src",
11113d356ab4STaniya Das 		.parent_data = gcc_parent_data_3,
11123d356ab4STaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_3),
11133d356ab4STaniya Das 		.flags = CLK_SET_RATE_PARENT,
11143d356ab4STaniya Das 		.ops = &clk_rcg2_shared_ops,
11153d356ab4STaniya Das 	},
11163d356ab4STaniya Das };
11173d356ab4STaniya Das 
11183d356ab4STaniya Das static struct clk_regmap_div gcc_pcie_0_pipe_div2_clk_src = {
11193d356ab4STaniya Das 	.reg = 0x6b0a4,
11203d356ab4STaniya Das 	.shift = 0,
11213d356ab4STaniya Das 	.width = 4,
11223d356ab4STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
11233d356ab4STaniya Das 		.name = "gcc_pcie_0_pipe_div2_clk_src",
11243d356ab4STaniya Das 		.parent_hws = (const struct clk_hw*[]) {
11253d356ab4STaniya Das 			&gcc_pcie_0_pipe_clk_src.clkr.hw,
11263d356ab4STaniya Das 		},
11273d356ab4STaniya Das 		.num_parents = 1,
11283d356ab4STaniya Das 		.flags = CLK_SET_RATE_PARENT,
11293d356ab4STaniya Das 		.ops = &clk_regmap_div_ro_ops,
11303d356ab4STaniya Das 	},
11313d356ab4STaniya Das };
11323d356ab4STaniya Das 
11333d356ab4STaniya Das static struct clk_regmap_div gcc_pcie_1_pipe_div2_clk_src = {
11343d356ab4STaniya Das 	.reg = 0xac0a0,
11353d356ab4STaniya Das 	.shift = 0,
11363d356ab4STaniya Das 	.width = 4,
11373d356ab4STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
11383d356ab4STaniya Das 		.name = "gcc_pcie_1_pipe_div2_clk_src",
11393d356ab4STaniya Das 		.parent_hws = (const struct clk_hw*[]) {
11403d356ab4STaniya Das 			&gcc_pcie_1_pipe_clk_src.clkr.hw,
11413d356ab4STaniya Das 		},
11423d356ab4STaniya Das 		.num_parents = 1,
11433d356ab4STaniya Das 		.flags = CLK_SET_RATE_PARENT,
11443d356ab4STaniya Das 		.ops = &clk_regmap_div_ro_ops,
11453d356ab4STaniya Das 	},
11463d356ab4STaniya Das };
11473d356ab4STaniya Das 
11483d356ab4STaniya Das static struct clk_regmap_div gcc_qupv3_wrap1_s2_clk_src = {
11493d356ab4STaniya Das 	.reg = 0x1828c,
11503d356ab4STaniya Das 	.shift = 0,
11513d356ab4STaniya Das 	.width = 4,
11523d356ab4STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
11533d356ab4STaniya Das 		.name = "gcc_qupv3_wrap1_s2_clk_src",
11543d356ab4STaniya Das 		.parent_hws = (const struct clk_hw*[]) {
11553d356ab4STaniya Das 			&gcc_qupv3_wrap1_qspi_ref_clk_src.clkr.hw,
11563d356ab4STaniya Das 		},
11573d356ab4STaniya Das 		.num_parents = 1,
11583d356ab4STaniya Das 		.flags = CLK_SET_RATE_PARENT,
11593d356ab4STaniya Das 		.ops = &clk_regmap_div_ro_ops,
11603d356ab4STaniya Das 	},
11613d356ab4STaniya Das };
11623d356ab4STaniya Das 
11633d356ab4STaniya Das static struct clk_regmap_div gcc_usb30_prim_mock_utmi_postdiv_clk_src = {
11643d356ab4STaniya Das 	.reg = 0x39060,
11653d356ab4STaniya Das 	.shift = 0,
11663d356ab4STaniya Das 	.width = 4,
11673d356ab4STaniya Das 	.clkr.hw.init = &(const struct clk_init_data) {
11683d356ab4STaniya Das 		.name = "gcc_usb30_prim_mock_utmi_postdiv_clk_src",
11693d356ab4STaniya Das 		.parent_hws = (const struct clk_hw*[]) {
11703d356ab4STaniya Das 			&gcc_usb30_prim_mock_utmi_clk_src.clkr.hw,
11713d356ab4STaniya Das 		},
11723d356ab4STaniya Das 		.num_parents = 1,
11733d356ab4STaniya Das 		.flags = CLK_SET_RATE_PARENT,
11743d356ab4STaniya Das 		.ops = &clk_regmap_div_ro_ops,
11753d356ab4STaniya Das 	},
11763d356ab4STaniya Das };
11773d356ab4STaniya Das 
11783d356ab4STaniya Das static struct clk_branch gcc_aggre_noc_pcie_axi_clk = {
11793d356ab4STaniya Das 	.halt_reg = 0x10068,
11803d356ab4STaniya Das 	.halt_check = BRANCH_HALT_SKIP,
11813d356ab4STaniya Das 	.hwcg_reg = 0x10068,
11823d356ab4STaniya Das 	.hwcg_bit = 1,
11833d356ab4STaniya Das 	.clkr = {
11843d356ab4STaniya Das 		.enable_reg = 0x52000,
11853d356ab4STaniya Das 		.enable_mask = BIT(30),
11863d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
11873d356ab4STaniya Das 			.name = "gcc_aggre_noc_pcie_axi_clk",
11883d356ab4STaniya Das 			.ops = &clk_branch2_ops,
11893d356ab4STaniya Das 		},
11903d356ab4STaniya Das 	},
11913d356ab4STaniya Das };
11923d356ab4STaniya Das 
11933d356ab4STaniya Das static struct clk_branch gcc_aggre_ufs_phy_axi_clk = {
11943d356ab4STaniya Das 	.halt_reg = 0x770f4,
11953d356ab4STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
11963d356ab4STaniya Das 	.hwcg_reg = 0x770f4,
11973d356ab4STaniya Das 	.hwcg_bit = 1,
11983d356ab4STaniya Das 	.clkr = {
11993d356ab4STaniya Das 		.enable_reg = 0x770f4,
12003d356ab4STaniya Das 		.enable_mask = BIT(0),
12013d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
12023d356ab4STaniya Das 			.name = "gcc_aggre_ufs_phy_axi_clk",
12033d356ab4STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
12043d356ab4STaniya Das 				&gcc_ufs_phy_axi_clk_src.clkr.hw,
12053d356ab4STaniya Das 			},
12063d356ab4STaniya Das 			.num_parents = 1,
12073d356ab4STaniya Das 			.flags = CLK_SET_RATE_PARENT,
12083d356ab4STaniya Das 			.ops = &clk_branch2_ops,
12093d356ab4STaniya Das 		},
12103d356ab4STaniya Das 	},
12113d356ab4STaniya Das };
12123d356ab4STaniya Das 
12133d356ab4STaniya Das static struct clk_branch gcc_aggre_usb3_prim_axi_clk = {
12143d356ab4STaniya Das 	.halt_reg = 0x39094,
12153d356ab4STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
12163d356ab4STaniya Das 	.clkr = {
12173d356ab4STaniya Das 		.enable_reg = 0x39094,
12183d356ab4STaniya Das 		.enable_mask = BIT(0),
12193d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
12203d356ab4STaniya Das 			.name = "gcc_aggre_usb3_prim_axi_clk",
12213d356ab4STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
12223d356ab4STaniya Das 				&gcc_usb30_prim_master_clk_src.clkr.hw,
12233d356ab4STaniya Das 			},
12243d356ab4STaniya Das 			.num_parents = 1,
12253d356ab4STaniya Das 			.flags = CLK_SET_RATE_PARENT,
12263d356ab4STaniya Das 			.ops = &clk_branch2_ops,
12273d356ab4STaniya Das 		},
12283d356ab4STaniya Das 	},
12293d356ab4STaniya Das };
12303d356ab4STaniya Das 
12313d356ab4STaniya Das static struct clk_branch gcc_boot_rom_ahb_clk = {
12323d356ab4STaniya Das 	.halt_reg = 0x38004,
12333d356ab4STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
12343d356ab4STaniya Das 	.hwcg_reg = 0x38004,
12353d356ab4STaniya Das 	.hwcg_bit = 1,
12363d356ab4STaniya Das 	.clkr = {
12373d356ab4STaniya Das 		.enable_reg = 0x52000,
12383d356ab4STaniya Das 		.enable_mask = BIT(10),
12393d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
12403d356ab4STaniya Das 			.name = "gcc_boot_rom_ahb_clk",
12413d356ab4STaniya Das 			.ops = &clk_branch2_ops,
12423d356ab4STaniya Das 		},
12433d356ab4STaniya Das 	},
12443d356ab4STaniya Das };
12453d356ab4STaniya Das 
12463d356ab4STaniya Das static struct clk_branch gcc_camera_hf_axi_clk = {
12473d356ab4STaniya Das 	.halt_reg = 0x26014,
12483d356ab4STaniya Das 	.halt_check = BRANCH_HALT_SKIP,
12493d356ab4STaniya Das 	.hwcg_reg = 0x26014,
12503d356ab4STaniya Das 	.hwcg_bit = 1,
12513d356ab4STaniya Das 	.clkr = {
12523d356ab4STaniya Das 		.enable_reg = 0x26014,
12533d356ab4STaniya Das 		.enable_mask = BIT(0),
12543d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
12553d356ab4STaniya Das 			.name = "gcc_camera_hf_axi_clk",
12563d356ab4STaniya Das 			.ops = &clk_branch2_ops,
12573d356ab4STaniya Das 		},
12583d356ab4STaniya Das 	},
12593d356ab4STaniya Das };
12603d356ab4STaniya Das 
12613d356ab4STaniya Das static struct clk_branch gcc_camera_sf_axi_clk = {
12623d356ab4STaniya Das 	.halt_reg = 0x26024,
12633d356ab4STaniya Das 	.halt_check = BRANCH_HALT_SKIP,
12643d356ab4STaniya Das 	.hwcg_reg = 0x26024,
12653d356ab4STaniya Das 	.hwcg_bit = 1,
12663d356ab4STaniya Das 	.clkr = {
12673d356ab4STaniya Das 		.enable_reg = 0x26024,
12683d356ab4STaniya Das 		.enable_mask = BIT(0),
12693d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
12703d356ab4STaniya Das 			.name = "gcc_camera_sf_axi_clk",
12713d356ab4STaniya Das 			.ops = &clk_branch2_ops,
12723d356ab4STaniya Das 		},
12733d356ab4STaniya Das 	},
12743d356ab4STaniya Das };
12753d356ab4STaniya Das 
12763d356ab4STaniya Das static struct clk_branch gcc_cfg_noc_pcie_anoc_ahb_clk = {
12773d356ab4STaniya Das 	.halt_reg = 0x10050,
12783d356ab4STaniya Das 	.halt_check = BRANCH_HALT_SKIP,
12793d356ab4STaniya Das 	.hwcg_reg = 0x10050,
12803d356ab4STaniya Das 	.hwcg_bit = 1,
12813d356ab4STaniya Das 	.clkr = {
12823d356ab4STaniya Das 		.enable_reg = 0x52000,
12833d356ab4STaniya Das 		.enable_mask = BIT(20),
12843d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
12853d356ab4STaniya Das 			.name = "gcc_cfg_noc_pcie_anoc_ahb_clk",
12863d356ab4STaniya Das 			.ops = &clk_branch2_ops,
12873d356ab4STaniya Das 		},
12883d356ab4STaniya Das 	},
12893d356ab4STaniya Das };
12903d356ab4STaniya Das 
12913d356ab4STaniya Das static struct clk_branch gcc_cfg_noc_usb3_prim_axi_clk = {
12923d356ab4STaniya Das 	.halt_reg = 0x39090,
12933d356ab4STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
12943d356ab4STaniya Das 	.clkr = {
12953d356ab4STaniya Das 		.enable_reg = 0x39090,
12963d356ab4STaniya Das 		.enable_mask = BIT(0),
12973d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
12983d356ab4STaniya Das 			.name = "gcc_cfg_noc_usb3_prim_axi_clk",
12993d356ab4STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
13003d356ab4STaniya Das 				&gcc_usb30_prim_master_clk_src.clkr.hw,
13013d356ab4STaniya Das 			},
13023d356ab4STaniya Das 			.num_parents = 1,
13033d356ab4STaniya Das 			.flags = CLK_SET_RATE_PARENT,
13043d356ab4STaniya Das 			.ops = &clk_branch2_ops,
13053d356ab4STaniya Das 		},
13063d356ab4STaniya Das 	},
13073d356ab4STaniya Das };
13083d356ab4STaniya Das 
13093d356ab4STaniya Das static struct clk_branch gcc_cnoc_pcie_sf_axi_clk = {
13103d356ab4STaniya Das 	.halt_reg = 0x10058,
13113d356ab4STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
13123d356ab4STaniya Das 	.hwcg_reg = 0x10058,
13133d356ab4STaniya Das 	.hwcg_bit = 1,
13143d356ab4STaniya Das 	.clkr = {
13153d356ab4STaniya Das 		.enable_reg = 0x52008,
13163d356ab4STaniya Das 		.enable_mask = BIT(6),
13173d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
13183d356ab4STaniya Das 			.name = "gcc_cnoc_pcie_sf_axi_clk",
13193d356ab4STaniya Das 			.ops = &clk_branch2_ops,
13203d356ab4STaniya Das 		},
13213d356ab4STaniya Das 	},
13223d356ab4STaniya Das };
13233d356ab4STaniya Das 
13243d356ab4STaniya Das static struct clk_branch gcc_ddrss_gpu_axi_clk = {
13253d356ab4STaniya Das 	.halt_reg = 0x71158,
13263d356ab4STaniya Das 	.halt_check = BRANCH_HALT_SKIP,
13273d356ab4STaniya Das 	.hwcg_reg = 0x71158,
13283d356ab4STaniya Das 	.hwcg_bit = 1,
13293d356ab4STaniya Das 	.clkr = {
13303d356ab4STaniya Das 		.enable_reg = 0x71158,
13313d356ab4STaniya Das 		.enable_mask = BIT(0),
13323d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
13333d356ab4STaniya Das 			.name = "gcc_ddrss_gpu_axi_clk",
13343d356ab4STaniya Das 			.ops = &clk_branch2_aon_ops,
13353d356ab4STaniya Das 		},
13363d356ab4STaniya Das 	},
13373d356ab4STaniya Das };
13383d356ab4STaniya Das 
13393d356ab4STaniya Das static struct clk_branch gcc_ddrss_pcie_sf_qtb_clk = {
13403d356ab4STaniya Das 	.halt_reg = 0x1007c,
13413d356ab4STaniya Das 	.halt_check = BRANCH_HALT_SKIP,
13423d356ab4STaniya Das 	.hwcg_reg = 0x1007c,
13433d356ab4STaniya Das 	.hwcg_bit = 1,
13443d356ab4STaniya Das 	.clkr = {
13453d356ab4STaniya Das 		.enable_reg = 0x52000,
13463d356ab4STaniya Das 		.enable_mask = BIT(19),
13473d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
13483d356ab4STaniya Das 			.name = "gcc_ddrss_pcie_sf_qtb_clk",
13493d356ab4STaniya Das 			.ops = &clk_branch2_ops,
13503d356ab4STaniya Das 		},
13513d356ab4STaniya Das 	},
13523d356ab4STaniya Das };
13533d356ab4STaniya Das 
13543d356ab4STaniya Das static struct clk_branch gcc_disp_hf_axi_clk = {
13553d356ab4STaniya Das 	.halt_reg = 0x27008,
13563d356ab4STaniya Das 	.halt_check = BRANCH_HALT_SKIP,
13573d356ab4STaniya Das 	.clkr = {
13583d356ab4STaniya Das 		.enable_reg = 0x27008,
13593d356ab4STaniya Das 		.enable_mask = BIT(0),
13603d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
13613d356ab4STaniya Das 			.name = "gcc_disp_hf_axi_clk",
13623d356ab4STaniya Das 			.ops = &clk_branch2_ops,
13633d356ab4STaniya Das 		},
13643d356ab4STaniya Das 	},
13653d356ab4STaniya Das };
13663d356ab4STaniya Das 
13673d356ab4STaniya Das static struct clk_branch gcc_gp1_clk = {
13683d356ab4STaniya Das 	.halt_reg = 0x64000,
13693d356ab4STaniya Das 	.halt_check = BRANCH_HALT,
13703d356ab4STaniya Das 	.clkr = {
13713d356ab4STaniya Das 		.enable_reg = 0x64000,
13723d356ab4STaniya Das 		.enable_mask = BIT(0),
13733d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
13743d356ab4STaniya Das 			.name = "gcc_gp1_clk",
13753d356ab4STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
13763d356ab4STaniya Das 				&gcc_gp1_clk_src.clkr.hw,
13773d356ab4STaniya Das 			},
13783d356ab4STaniya Das 			.num_parents = 1,
13793d356ab4STaniya Das 			.flags = CLK_SET_RATE_PARENT,
13803d356ab4STaniya Das 			.ops = &clk_branch2_ops,
13813d356ab4STaniya Das 		},
13823d356ab4STaniya Das 	},
13833d356ab4STaniya Das };
13843d356ab4STaniya Das 
13853d356ab4STaniya Das static struct clk_branch gcc_gp2_clk = {
13863d356ab4STaniya Das 	.halt_reg = 0x65000,
13873d356ab4STaniya Das 	.halt_check = BRANCH_HALT,
13883d356ab4STaniya Das 	.clkr = {
13893d356ab4STaniya Das 		.enable_reg = 0x65000,
13903d356ab4STaniya Das 		.enable_mask = BIT(0),
13913d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
13923d356ab4STaniya Das 			.name = "gcc_gp2_clk",
13933d356ab4STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
13943d356ab4STaniya Das 				&gcc_gp2_clk_src.clkr.hw,
13953d356ab4STaniya Das 			},
13963d356ab4STaniya Das 			.num_parents = 1,
13973d356ab4STaniya Das 			.flags = CLK_SET_RATE_PARENT,
13983d356ab4STaniya Das 			.ops = &clk_branch2_ops,
13993d356ab4STaniya Das 		},
14003d356ab4STaniya Das 	},
14013d356ab4STaniya Das };
14023d356ab4STaniya Das 
14033d356ab4STaniya Das static struct clk_branch gcc_gp3_clk = {
14043d356ab4STaniya Das 	.halt_reg = 0x66000,
14053d356ab4STaniya Das 	.halt_check = BRANCH_HALT,
14063d356ab4STaniya Das 	.clkr = {
14073d356ab4STaniya Das 		.enable_reg = 0x66000,
14083d356ab4STaniya Das 		.enable_mask = BIT(0),
14093d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
14103d356ab4STaniya Das 			.name = "gcc_gp3_clk",
14113d356ab4STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
14123d356ab4STaniya Das 				&gcc_gp3_clk_src.clkr.hw,
14133d356ab4STaniya Das 			},
14143d356ab4STaniya Das 			.num_parents = 1,
14153d356ab4STaniya Das 			.flags = CLK_SET_RATE_PARENT,
14163d356ab4STaniya Das 			.ops = &clk_branch2_ops,
14173d356ab4STaniya Das 		},
14183d356ab4STaniya Das 	},
14193d356ab4STaniya Das };
14203d356ab4STaniya Das 
14213d356ab4STaniya Das static struct clk_branch gcc_gpu_gemnoc_gfx_clk = {
14223d356ab4STaniya Das 	.halt_reg = 0x71010,
14233d356ab4STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
14243d356ab4STaniya Das 	.hwcg_reg = 0x71010,
14253d356ab4STaniya Das 	.hwcg_bit = 1,
14263d356ab4STaniya Das 	.clkr = {
14273d356ab4STaniya Das 		.enable_reg = 0x71010,
14283d356ab4STaniya Das 		.enable_mask = BIT(0),
14293d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
14303d356ab4STaniya Das 			.name = "gcc_gpu_gemnoc_gfx_clk",
14313d356ab4STaniya Das 			.ops = &clk_branch2_ops,
14323d356ab4STaniya Das 		},
14333d356ab4STaniya Das 	},
14343d356ab4STaniya Das };
14353d356ab4STaniya Das 
14363d356ab4STaniya Das static struct clk_branch gcc_gpu_gpll0_cph_clk_src = {
14373d356ab4STaniya Das 	.halt_reg = 0x71150,
14383d356ab4STaniya Das 	.halt_check = BRANCH_HALT_ENABLE_VOTED,
14393d356ab4STaniya Das 	.clkr = {
14403d356ab4STaniya Das 		.enable_reg = 0x71150,
14413d356ab4STaniya Das 		.enable_mask = BIT(0),
14423d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
14433d356ab4STaniya Das 			.name = "gcc_gpu_gpll0_cph_clk_src",
14443d356ab4STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
14453d356ab4STaniya Das 				&gcc_gpll0.clkr.hw,
14463d356ab4STaniya Das 			},
14473d356ab4STaniya Das 			.num_parents = 1,
14483d356ab4STaniya Das 			.flags = CLK_SET_RATE_PARENT,
14493d356ab4STaniya Das 			.ops = &clk_branch2_ops,
14503d356ab4STaniya Das 		},
14513d356ab4STaniya Das 	},
14523d356ab4STaniya Das };
14533d356ab4STaniya Das 
14543d356ab4STaniya Das static struct clk_branch gcc_gpu_gpll0_div_cph_clk_src = {
14553d356ab4STaniya Das 	.halt_reg = 0x71154,
14563d356ab4STaniya Das 	.halt_check = BRANCH_HALT_ENABLE_VOTED,
14573d356ab4STaniya Das 	.clkr = {
14583d356ab4STaniya Das 		.enable_reg = 0x71154,
14593d356ab4STaniya Das 		.enable_mask = BIT(0),
14603d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
14613d356ab4STaniya Das 			.name = "gcc_gpu_gpll0_div_cph_clk_src",
14623d356ab4STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
14633d356ab4STaniya Das 				&gcc_gpll0_out_even.clkr.hw,
14643d356ab4STaniya Das 			},
14653d356ab4STaniya Das 			.num_parents = 1,
14663d356ab4STaniya Das 			.flags = CLK_SET_RATE_PARENT,
14673d356ab4STaniya Das 			.ops = &clk_branch2_ops,
14683d356ab4STaniya Das 		},
14693d356ab4STaniya Das 	},
14703d356ab4STaniya Das };
14713d356ab4STaniya Das 
14723d356ab4STaniya Das static struct clk_branch gcc_gpu_smmu_vote_clk = {
14733d356ab4STaniya Das 	.halt_reg = 0x7d000,
14743d356ab4STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
14753d356ab4STaniya Das 	.clkr = {
14763d356ab4STaniya Das 		.enable_reg = 0x7d000,
14773d356ab4STaniya Das 		.enable_mask = BIT(0),
14783d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
14793d356ab4STaniya Das 			.name = "gcc_gpu_smmu_vote_clk",
14803d356ab4STaniya Das 			.ops = &clk_branch2_ops,
14813d356ab4STaniya Das 		},
14823d356ab4STaniya Das 	},
14833d356ab4STaniya Das };
14843d356ab4STaniya Das 
14853d356ab4STaniya Das static struct clk_branch gcc_mmu_tcu_vote_clk = {
14863d356ab4STaniya Das 	.halt_reg = 0x7d02c,
14873d356ab4STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
14883d356ab4STaniya Das 	.clkr = {
14893d356ab4STaniya Das 		.enable_reg = 0x7d02c,
14903d356ab4STaniya Das 		.enable_mask = BIT(0),
14913d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
14923d356ab4STaniya Das 			.name = "gcc_mmu_tcu_vote_clk",
14933d356ab4STaniya Das 			.ops = &clk_branch2_ops,
14943d356ab4STaniya Das 		},
14953d356ab4STaniya Das 	},
14963d356ab4STaniya Das };
14973d356ab4STaniya Das 
14983d356ab4STaniya Das static struct clk_branch gcc_pcie_0_aux_clk = {
14993d356ab4STaniya Das 	.halt_reg = 0x6b044,
15003d356ab4STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
15013d356ab4STaniya Das 	.clkr = {
15023d356ab4STaniya Das 		.enable_reg = 0x52008,
15033d356ab4STaniya Das 		.enable_mask = BIT(3),
15043d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
15053d356ab4STaniya Das 			.name = "gcc_pcie_0_aux_clk",
15063d356ab4STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
15073d356ab4STaniya Das 				&gcc_pcie_0_aux_clk_src.clkr.hw,
15083d356ab4STaniya Das 			},
15093d356ab4STaniya Das 			.num_parents = 1,
15103d356ab4STaniya Das 			.flags = CLK_SET_RATE_PARENT,
15113d356ab4STaniya Das 			.ops = &clk_branch2_ops,
15123d356ab4STaniya Das 		},
15133d356ab4STaniya Das 	},
15143d356ab4STaniya Das };
15153d356ab4STaniya Das 
15163d356ab4STaniya Das static struct clk_branch gcc_pcie_0_cfg_ahb_clk = {
15173d356ab4STaniya Das 	.halt_reg = 0x6b040,
15183d356ab4STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
15193d356ab4STaniya Das 	.hwcg_reg = 0x6b040,
15203d356ab4STaniya Das 	.hwcg_bit = 1,
15213d356ab4STaniya Das 	.clkr = {
15223d356ab4STaniya Das 		.enable_reg = 0x52008,
15233d356ab4STaniya Das 		.enable_mask = BIT(2),
15243d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
15253d356ab4STaniya Das 			.name = "gcc_pcie_0_cfg_ahb_clk",
15263d356ab4STaniya Das 			.ops = &clk_branch2_ops,
15273d356ab4STaniya Das 		},
15283d356ab4STaniya Das 	},
15293d356ab4STaniya Das };
15303d356ab4STaniya Das 
15313d356ab4STaniya Das static struct clk_branch gcc_pcie_0_mstr_axi_clk = {
15323d356ab4STaniya Das 	.halt_reg = 0x6b030,
15333d356ab4STaniya Das 	.halt_check = BRANCH_HALT_SKIP,
15343d356ab4STaniya Das 	.hwcg_reg = 0x6b030,
15353d356ab4STaniya Das 	.hwcg_bit = 1,
15363d356ab4STaniya Das 	.clkr = {
15373d356ab4STaniya Das 		.enable_reg = 0x52008,
15383d356ab4STaniya Das 		.enable_mask = BIT(1),
15393d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
15403d356ab4STaniya Das 			.name = "gcc_pcie_0_mstr_axi_clk",
15413d356ab4STaniya Das 			.ops = &clk_branch2_ops,
15423d356ab4STaniya Das 		},
15433d356ab4STaniya Das 	},
15443d356ab4STaniya Das };
15453d356ab4STaniya Das 
15463d356ab4STaniya Das static struct clk_branch gcc_pcie_0_phy_rchng_clk = {
15473d356ab4STaniya Das 	.halt_reg = 0x6b064,
15483d356ab4STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
15493d356ab4STaniya Das 	.clkr = {
15503d356ab4STaniya Das 		.enable_reg = 0x52000,
15513d356ab4STaniya Das 		.enable_mask = BIT(22),
15523d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
15533d356ab4STaniya Das 			.name = "gcc_pcie_0_phy_rchng_clk",
15543d356ab4STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
15553d356ab4STaniya Das 				&gcc_pcie_0_phy_rchng_clk_src.clkr.hw,
15563d356ab4STaniya Das 			},
15573d356ab4STaniya Das 			.num_parents = 1,
15583d356ab4STaniya Das 			.flags = CLK_SET_RATE_PARENT,
15593d356ab4STaniya Das 			.ops = &clk_branch2_ops,
15603d356ab4STaniya Das 		},
15613d356ab4STaniya Das 	},
15623d356ab4STaniya Das };
15633d356ab4STaniya Das 
15643d356ab4STaniya Das static struct clk_branch gcc_pcie_0_pipe_clk = {
15653d356ab4STaniya Das 	.halt_reg = 0x6b054,
15663d356ab4STaniya Das 	.halt_check = BRANCH_HALT_SKIP,
15673d356ab4STaniya Das 	.clkr = {
15683d356ab4STaniya Das 		.enable_reg = 0x52008,
15693d356ab4STaniya Das 		.enable_mask = BIT(4),
15703d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
15713d356ab4STaniya Das 			.name = "gcc_pcie_0_pipe_clk",
15723d356ab4STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
15733d356ab4STaniya Das 				&gcc_pcie_0_pipe_clk_src.clkr.hw,
15743d356ab4STaniya Das 			},
15753d356ab4STaniya Das 			.num_parents = 1,
15763d356ab4STaniya Das 			.flags = CLK_SET_RATE_PARENT,
15773d356ab4STaniya Das 			.ops = &clk_branch2_ops,
15783d356ab4STaniya Das 		},
15793d356ab4STaniya Das 	},
15803d356ab4STaniya Das };
15813d356ab4STaniya Das 
15823d356ab4STaniya Das static struct clk_branch gcc_pcie_0_pipe_div2_clk = {
15833d356ab4STaniya Das 	.halt_reg = 0x6b0a8,
15843d356ab4STaniya Das 	.halt_check = BRANCH_HALT_SKIP,
15853d356ab4STaniya Das 	.clkr = {
15863d356ab4STaniya Das 		.enable_reg = 0x52018,
15873d356ab4STaniya Das 		.enable_mask = BIT(13),
15883d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
15893d356ab4STaniya Das 			.name = "gcc_pcie_0_pipe_div2_clk",
15903d356ab4STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
15913d356ab4STaniya Das 				&gcc_pcie_0_pipe_div2_clk_src.clkr.hw,
15923d356ab4STaniya Das 			},
15933d356ab4STaniya Das 			.num_parents = 1,
15943d356ab4STaniya Das 			.flags = CLK_SET_RATE_PARENT,
15953d356ab4STaniya Das 			.ops = &clk_branch2_ops,
15963d356ab4STaniya Das 		},
15973d356ab4STaniya Das 	},
15983d356ab4STaniya Das };
15993d356ab4STaniya Das 
16003d356ab4STaniya Das static struct clk_branch gcc_pcie_0_slv_axi_clk = {
16013d356ab4STaniya Das 	.halt_reg = 0x6b020,
16023d356ab4STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
16033d356ab4STaniya Das 	.hwcg_reg = 0x6b020,
16043d356ab4STaniya Das 	.hwcg_bit = 1,
16053d356ab4STaniya Das 	.clkr = {
16063d356ab4STaniya Das 		.enable_reg = 0x52008,
16073d356ab4STaniya Das 		.enable_mask = BIT(0),
16083d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
16093d356ab4STaniya Das 			.name = "gcc_pcie_0_slv_axi_clk",
16103d356ab4STaniya Das 			.ops = &clk_branch2_ops,
16113d356ab4STaniya Das 		},
16123d356ab4STaniya Das 	},
16133d356ab4STaniya Das };
16143d356ab4STaniya Das 
16153d356ab4STaniya Das static struct clk_branch gcc_pcie_0_slv_q2a_axi_clk = {
16163d356ab4STaniya Das 	.halt_reg = 0x6b01c,
16173d356ab4STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
16183d356ab4STaniya Das 	.clkr = {
16193d356ab4STaniya Das 		.enable_reg = 0x52008,
16203d356ab4STaniya Das 		.enable_mask = BIT(5),
16213d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
16223d356ab4STaniya Das 			.name = "gcc_pcie_0_slv_q2a_axi_clk",
16233d356ab4STaniya Das 			.ops = &clk_branch2_ops,
16243d356ab4STaniya Das 		},
16253d356ab4STaniya Das 	},
16263d356ab4STaniya Das };
16273d356ab4STaniya Das 
16283d356ab4STaniya Das static struct clk_branch gcc_pcie_1_aux_clk = {
16293d356ab4STaniya Das 	.halt_reg = 0xac040,
16303d356ab4STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
16313d356ab4STaniya Das 	.clkr = {
16323d356ab4STaniya Das 		.enable_reg = 0x52000,
16333d356ab4STaniya Das 		.enable_mask = BIT(29),
16343d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
16353d356ab4STaniya Das 			.name = "gcc_pcie_1_aux_clk",
16363d356ab4STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
16373d356ab4STaniya Das 				&gcc_pcie_1_aux_clk_src.clkr.hw,
16383d356ab4STaniya Das 			},
16393d356ab4STaniya Das 			.num_parents = 1,
16403d356ab4STaniya Das 			.flags = CLK_SET_RATE_PARENT,
16413d356ab4STaniya Das 			.ops = &clk_branch2_ops,
16423d356ab4STaniya Das 		},
16433d356ab4STaniya Das 	},
16443d356ab4STaniya Das };
16453d356ab4STaniya Das 
16463d356ab4STaniya Das static struct clk_branch gcc_pcie_1_cfg_ahb_clk = {
16473d356ab4STaniya Das 	.halt_reg = 0xac03c,
16483d356ab4STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
16493d356ab4STaniya Das 	.hwcg_reg = 0xac03c,
16503d356ab4STaniya Das 	.hwcg_bit = 1,
16513d356ab4STaniya Das 	.clkr = {
16523d356ab4STaniya Das 		.enable_reg = 0x52000,
16533d356ab4STaniya Das 		.enable_mask = BIT(28),
16543d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
16553d356ab4STaniya Das 			.name = "gcc_pcie_1_cfg_ahb_clk",
16563d356ab4STaniya Das 			.ops = &clk_branch2_ops,
16573d356ab4STaniya Das 		},
16583d356ab4STaniya Das 	},
16593d356ab4STaniya Das };
16603d356ab4STaniya Das 
16613d356ab4STaniya Das static struct clk_branch gcc_pcie_1_mstr_axi_clk = {
16623d356ab4STaniya Das 	.halt_reg = 0xac02c,
16633d356ab4STaniya Das 	.halt_check = BRANCH_HALT_SKIP,
16643d356ab4STaniya Das 	.hwcg_reg = 0xac02c,
16653d356ab4STaniya Das 	.hwcg_bit = 1,
16663d356ab4STaniya Das 	.clkr = {
16673d356ab4STaniya Das 		.enable_reg = 0x52000,
16683d356ab4STaniya Das 		.enable_mask = BIT(27),
16693d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
16703d356ab4STaniya Das 			.name = "gcc_pcie_1_mstr_axi_clk",
16713d356ab4STaniya Das 			.ops = &clk_branch2_ops,
16723d356ab4STaniya Das 		},
16733d356ab4STaniya Das 	},
16743d356ab4STaniya Das };
16753d356ab4STaniya Das 
16763d356ab4STaniya Das static struct clk_branch gcc_pcie_1_phy_rchng_clk = {
16773d356ab4STaniya Das 	.halt_reg = 0xac060,
16783d356ab4STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
16793d356ab4STaniya Das 	.clkr = {
16803d356ab4STaniya Das 		.enable_reg = 0x52000,
16813d356ab4STaniya Das 		.enable_mask = BIT(24),
16823d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
16833d356ab4STaniya Das 			.name = "gcc_pcie_1_phy_rchng_clk",
16843d356ab4STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
16853d356ab4STaniya Das 				&gcc_pcie_1_phy_rchng_clk_src.clkr.hw,
16863d356ab4STaniya Das 			},
16873d356ab4STaniya Das 			.num_parents = 1,
16883d356ab4STaniya Das 			.flags = CLK_SET_RATE_PARENT,
16893d356ab4STaniya Das 			.ops = &clk_branch2_ops,
16903d356ab4STaniya Das 		},
16913d356ab4STaniya Das 	},
16923d356ab4STaniya Das };
16933d356ab4STaniya Das 
16943d356ab4STaniya Das static struct clk_branch gcc_pcie_1_pipe_clk = {
16953d356ab4STaniya Das 	.halt_reg = 0xac050,
16963d356ab4STaniya Das 	.halt_check = BRANCH_HALT_SKIP,
16973d356ab4STaniya Das 	.clkr = {
16983d356ab4STaniya Das 		.enable_reg = 0x52000,
16993d356ab4STaniya Das 		.enable_mask = BIT(23),
17003d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
17013d356ab4STaniya Das 			.name = "gcc_pcie_1_pipe_clk",
17023d356ab4STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
17033d356ab4STaniya Das 				&gcc_pcie_1_pipe_clk_src.clkr.hw,
17043d356ab4STaniya Das 			},
17053d356ab4STaniya Das 			.num_parents = 1,
17063d356ab4STaniya Das 			.flags = CLK_SET_RATE_PARENT,
17073d356ab4STaniya Das 			.ops = &clk_branch2_ops,
17083d356ab4STaniya Das 		},
17093d356ab4STaniya Das 	},
17103d356ab4STaniya Das };
17113d356ab4STaniya Das 
17123d356ab4STaniya Das static struct clk_branch gcc_pcie_1_pipe_div2_clk = {
17133d356ab4STaniya Das 	.halt_reg = 0xac0a4,
17143d356ab4STaniya Das 	.halt_check = BRANCH_HALT_SKIP,
17153d356ab4STaniya Das 	.clkr = {
17163d356ab4STaniya Das 		.enable_reg = 0x52018,
17173d356ab4STaniya Das 		.enable_mask = BIT(15),
17183d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
17193d356ab4STaniya Das 			.name = "gcc_pcie_1_pipe_div2_clk",
17203d356ab4STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
17213d356ab4STaniya Das 				&gcc_pcie_1_pipe_div2_clk_src.clkr.hw,
17223d356ab4STaniya Das 			},
17233d356ab4STaniya Das 			.num_parents = 1,
17243d356ab4STaniya Das 			.flags = CLK_SET_RATE_PARENT,
17253d356ab4STaniya Das 			.ops = &clk_branch2_ops,
17263d356ab4STaniya Das 		},
17273d356ab4STaniya Das 	},
17283d356ab4STaniya Das };
17293d356ab4STaniya Das 
17303d356ab4STaniya Das static struct clk_branch gcc_pcie_1_slv_axi_clk = {
17313d356ab4STaniya Das 	.halt_reg = 0xac01c,
17323d356ab4STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
17333d356ab4STaniya Das 	.hwcg_reg = 0xac01c,
17343d356ab4STaniya Das 	.hwcg_bit = 1,
17353d356ab4STaniya Das 	.clkr = {
17363d356ab4STaniya Das 		.enable_reg = 0x52000,
17373d356ab4STaniya Das 		.enable_mask = BIT(26),
17383d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
17393d356ab4STaniya Das 			.name = "gcc_pcie_1_slv_axi_clk",
17403d356ab4STaniya Das 			.ops = &clk_branch2_ops,
17413d356ab4STaniya Das 		},
17423d356ab4STaniya Das 	},
17433d356ab4STaniya Das };
17443d356ab4STaniya Das 
17453d356ab4STaniya Das static struct clk_branch gcc_pcie_1_slv_q2a_axi_clk = {
17463d356ab4STaniya Das 	.halt_reg = 0xac018,
17473d356ab4STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
17483d356ab4STaniya Das 	.clkr = {
17493d356ab4STaniya Das 		.enable_reg = 0x52000,
17503d356ab4STaniya Das 		.enable_mask = BIT(25),
17513d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
17523d356ab4STaniya Das 			.name = "gcc_pcie_1_slv_q2a_axi_clk",
17533d356ab4STaniya Das 			.ops = &clk_branch2_ops,
17543d356ab4STaniya Das 		},
17553d356ab4STaniya Das 	},
17563d356ab4STaniya Das };
17573d356ab4STaniya Das 
17583d356ab4STaniya Das static struct clk_branch gcc_pdm2_clk = {
17593d356ab4STaniya Das 	.halt_reg = 0x3300c,
17603d356ab4STaniya Das 	.halt_check = BRANCH_HALT,
17613d356ab4STaniya Das 	.clkr = {
17623d356ab4STaniya Das 		.enable_reg = 0x3300c,
17633d356ab4STaniya Das 		.enable_mask = BIT(0),
17643d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
17653d356ab4STaniya Das 			.name = "gcc_pdm2_clk",
17663d356ab4STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
17673d356ab4STaniya Das 				&gcc_pdm2_clk_src.clkr.hw,
17683d356ab4STaniya Das 			},
17693d356ab4STaniya Das 			.num_parents = 1,
17703d356ab4STaniya Das 			.flags = CLK_SET_RATE_PARENT,
17713d356ab4STaniya Das 			.ops = &clk_branch2_ops,
17723d356ab4STaniya Das 		},
17733d356ab4STaniya Das 	},
17743d356ab4STaniya Das };
17753d356ab4STaniya Das 
17763d356ab4STaniya Das static struct clk_branch gcc_pdm_ahb_clk = {
17773d356ab4STaniya Das 	.halt_reg = 0x33004,
17783d356ab4STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
17793d356ab4STaniya Das 	.hwcg_reg = 0x33004,
17803d356ab4STaniya Das 	.hwcg_bit = 1,
17813d356ab4STaniya Das 	.clkr = {
17823d356ab4STaniya Das 		.enable_reg = 0x33004,
17833d356ab4STaniya Das 		.enable_mask = BIT(0),
17843d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
17853d356ab4STaniya Das 			.name = "gcc_pdm_ahb_clk",
17863d356ab4STaniya Das 			.ops = &clk_branch2_ops,
17873d356ab4STaniya Das 		},
17883d356ab4STaniya Das 	},
17893d356ab4STaniya Das };
17903d356ab4STaniya Das 
17913d356ab4STaniya Das static struct clk_branch gcc_pdm_xo4_clk = {
17923d356ab4STaniya Das 	.halt_reg = 0x33008,
17933d356ab4STaniya Das 	.halt_check = BRANCH_HALT,
17943d356ab4STaniya Das 	.clkr = {
17953d356ab4STaniya Das 		.enable_reg = 0x33008,
17963d356ab4STaniya Das 		.enable_mask = BIT(0),
17973d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
17983d356ab4STaniya Das 			.name = "gcc_pdm_xo4_clk",
17993d356ab4STaniya Das 			.ops = &clk_branch2_ops,
18003d356ab4STaniya Das 		},
18013d356ab4STaniya Das 	},
18023d356ab4STaniya Das };
18033d356ab4STaniya Das 
18043d356ab4STaniya Das static struct clk_branch gcc_qmip_camera_cmd_ahb_clk = {
18053d356ab4STaniya Das 	.halt_reg = 0x26010,
18063d356ab4STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
18073d356ab4STaniya Das 	.hwcg_reg = 0x26010,
18083d356ab4STaniya Das 	.hwcg_bit = 1,
18093d356ab4STaniya Das 	.clkr = {
18103d356ab4STaniya Das 		.enable_reg = 0x26010,
18113d356ab4STaniya Das 		.enable_mask = BIT(0),
18123d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
18133d356ab4STaniya Das 			.name = "gcc_qmip_camera_cmd_ahb_clk",
18143d356ab4STaniya Das 			.ops = &clk_branch2_ops,
18153d356ab4STaniya Das 		},
18163d356ab4STaniya Das 	},
18173d356ab4STaniya Das };
18183d356ab4STaniya Das 
18193d356ab4STaniya Das static struct clk_branch gcc_qmip_camera_nrt_ahb_clk = {
18203d356ab4STaniya Das 	.halt_reg = 0x26008,
18213d356ab4STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
18223d356ab4STaniya Das 	.hwcg_reg = 0x26008,
18233d356ab4STaniya Das 	.hwcg_bit = 1,
18243d356ab4STaniya Das 	.clkr = {
18253d356ab4STaniya Das 		.enable_reg = 0x26008,
18263d356ab4STaniya Das 		.enable_mask = BIT(0),
18273d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
18283d356ab4STaniya Das 			.name = "gcc_qmip_camera_nrt_ahb_clk",
18293d356ab4STaniya Das 			.ops = &clk_branch2_ops,
18303d356ab4STaniya Das 		},
18313d356ab4STaniya Das 	},
18323d356ab4STaniya Das };
18333d356ab4STaniya Das 
18343d356ab4STaniya Das static struct clk_branch gcc_qmip_camera_rt_ahb_clk = {
18353d356ab4STaniya Das 	.halt_reg = 0x2600c,
18363d356ab4STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
18373d356ab4STaniya Das 	.hwcg_reg = 0x2600c,
18383d356ab4STaniya Das 	.hwcg_bit = 1,
18393d356ab4STaniya Das 	.clkr = {
18403d356ab4STaniya Das 		.enable_reg = 0x2600c,
18413d356ab4STaniya Das 		.enable_mask = BIT(0),
18423d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
18433d356ab4STaniya Das 			.name = "gcc_qmip_camera_rt_ahb_clk",
18443d356ab4STaniya Das 			.ops = &clk_branch2_ops,
18453d356ab4STaniya Das 		},
18463d356ab4STaniya Das 	},
18473d356ab4STaniya Das };
18483d356ab4STaniya Das 
18493d356ab4STaniya Das static struct clk_branch gcc_qmip_gpu_ahb_clk = {
18503d356ab4STaniya Das 	.halt_reg = 0x71008,
18513d356ab4STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
18523d356ab4STaniya Das 	.hwcg_reg = 0x71008,
18533d356ab4STaniya Das 	.hwcg_bit = 1,
18543d356ab4STaniya Das 	.clkr = {
18553d356ab4STaniya Das 		.enable_reg = 0x71008,
18563d356ab4STaniya Das 		.enable_mask = BIT(0),
18573d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
18583d356ab4STaniya Das 			.name = "gcc_qmip_gpu_ahb_clk",
18593d356ab4STaniya Das 			.ops = &clk_branch2_ops,
18603d356ab4STaniya Das 		},
18613d356ab4STaniya Das 	},
18623d356ab4STaniya Das };
18633d356ab4STaniya Das 
18643d356ab4STaniya Das static struct clk_branch gcc_qmip_pcie_ahb_clk = {
18653d356ab4STaniya Das 	.halt_reg = 0x6b018,
18663d356ab4STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
18673d356ab4STaniya Das 	.hwcg_reg = 0x6b018,
18683d356ab4STaniya Das 	.hwcg_bit = 1,
18693d356ab4STaniya Das 	.clkr = {
18703d356ab4STaniya Das 		.enable_reg = 0x52000,
18713d356ab4STaniya Das 		.enable_mask = BIT(11),
18723d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
18733d356ab4STaniya Das 			.name = "gcc_qmip_pcie_ahb_clk",
18743d356ab4STaniya Das 			.ops = &clk_branch2_ops,
18753d356ab4STaniya Das 		},
18763d356ab4STaniya Das 	},
18773d356ab4STaniya Das };
18783d356ab4STaniya Das 
18793d356ab4STaniya Das static struct clk_branch gcc_qmip_video_v_cpu_ahb_clk = {
18803d356ab4STaniya Das 	.halt_reg = 0x32010,
18813d356ab4STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
18823d356ab4STaniya Das 	.hwcg_reg = 0x32010,
18833d356ab4STaniya Das 	.hwcg_bit = 1,
18843d356ab4STaniya Das 	.clkr = {
18853d356ab4STaniya Das 		.enable_reg = 0x32010,
18863d356ab4STaniya Das 		.enable_mask = BIT(0),
18873d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
18883d356ab4STaniya Das 			.name = "gcc_qmip_video_v_cpu_ahb_clk",
18893d356ab4STaniya Das 			.ops = &clk_branch2_ops,
18903d356ab4STaniya Das 		},
18913d356ab4STaniya Das 	},
18923d356ab4STaniya Das };
18933d356ab4STaniya Das 
18943d356ab4STaniya Das static struct clk_branch gcc_qmip_video_vcodec_ahb_clk = {
18953d356ab4STaniya Das 	.halt_reg = 0x3200c,
18963d356ab4STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
18973d356ab4STaniya Das 	.hwcg_reg = 0x3200c,
18983d356ab4STaniya Das 	.hwcg_bit = 1,
18993d356ab4STaniya Das 	.clkr = {
19003d356ab4STaniya Das 		.enable_reg = 0x3200c,
19013d356ab4STaniya Das 		.enable_mask = BIT(0),
19023d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
19033d356ab4STaniya Das 			.name = "gcc_qmip_video_vcodec_ahb_clk",
19043d356ab4STaniya Das 			.ops = &clk_branch2_ops,
19053d356ab4STaniya Das 		},
19063d356ab4STaniya Das 	},
19073d356ab4STaniya Das };
19083d356ab4STaniya Das 
19093d356ab4STaniya Das static struct clk_branch gcc_qupv3_wrap1_core_2x_clk = {
19103d356ab4STaniya Das 	.halt_reg = 0x2301c,
19113d356ab4STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
19123d356ab4STaniya Das 	.clkr = {
19133d356ab4STaniya Das 		.enable_reg = 0x52008,
19143d356ab4STaniya Das 		.enable_mask = BIT(18),
19153d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
19163d356ab4STaniya Das 			.name = "gcc_qupv3_wrap1_core_2x_clk",
19173d356ab4STaniya Das 			.ops = &clk_branch2_ops,
19183d356ab4STaniya Das 		},
19193d356ab4STaniya Das 	},
19203d356ab4STaniya Das };
19213d356ab4STaniya Das 
19223d356ab4STaniya Das static struct clk_branch gcc_qupv3_wrap1_core_clk = {
19233d356ab4STaniya Das 	.halt_reg = 0x23008,
19243d356ab4STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
19253d356ab4STaniya Das 	.clkr = {
19263d356ab4STaniya Das 		.enable_reg = 0x52008,
19273d356ab4STaniya Das 		.enable_mask = BIT(19),
19283d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
19293d356ab4STaniya Das 			.name = "gcc_qupv3_wrap1_core_clk",
19303d356ab4STaniya Das 			.ops = &clk_branch2_ops,
19313d356ab4STaniya Das 		},
19323d356ab4STaniya Das 	},
19333d356ab4STaniya Das };
19343d356ab4STaniya Das 
19353d356ab4STaniya Das static struct clk_branch gcc_qupv3_wrap1_qspi_ref_clk = {
19363d356ab4STaniya Das 	.halt_reg = 0x188bc,
19373d356ab4STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
19383d356ab4STaniya Das 	.clkr = {
19393d356ab4STaniya Das 		.enable_reg = 0x52010,
19403d356ab4STaniya Das 		.enable_mask = BIT(29),
19413d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
19423d356ab4STaniya Das 			.name = "gcc_qupv3_wrap1_qspi_ref_clk",
19433d356ab4STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
19443d356ab4STaniya Das 				&gcc_qupv3_wrap1_qspi_ref_clk_src.clkr.hw,
19453d356ab4STaniya Das 			},
19463d356ab4STaniya Das 			.num_parents = 1,
19473d356ab4STaniya Das 			.flags = CLK_SET_RATE_PARENT,
19483d356ab4STaniya Das 			.ops = &clk_branch2_ops,
19493d356ab4STaniya Das 		},
19503d356ab4STaniya Das 	},
19513d356ab4STaniya Das };
19523d356ab4STaniya Das 
19533d356ab4STaniya Das static struct clk_branch gcc_qupv3_wrap1_s0_clk = {
19543d356ab4STaniya Das 	.halt_reg = 0x18004,
19553d356ab4STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
19563d356ab4STaniya Das 	.clkr = {
19573d356ab4STaniya Das 		.enable_reg = 0x52008,
19583d356ab4STaniya Das 		.enable_mask = BIT(22),
19593d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
19603d356ab4STaniya Das 			.name = "gcc_qupv3_wrap1_s0_clk",
19613d356ab4STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
19623d356ab4STaniya Das 				&gcc_qupv3_wrap1_s0_clk_src.clkr.hw,
19633d356ab4STaniya Das 			},
19643d356ab4STaniya Das 			.num_parents = 1,
19653d356ab4STaniya Das 			.flags = CLK_SET_RATE_PARENT,
19663d356ab4STaniya Das 			.ops = &clk_branch2_ops,
19673d356ab4STaniya Das 		},
19683d356ab4STaniya Das 	},
19693d356ab4STaniya Das };
19703d356ab4STaniya Das 
19713d356ab4STaniya Das static struct clk_branch gcc_qupv3_wrap1_s1_clk = {
19723d356ab4STaniya Das 	.halt_reg = 0x18140,
19733d356ab4STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
19743d356ab4STaniya Das 	.clkr = {
19753d356ab4STaniya Das 		.enable_reg = 0x52008,
19763d356ab4STaniya Das 		.enable_mask = BIT(23),
19773d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
19783d356ab4STaniya Das 			.name = "gcc_qupv3_wrap1_s1_clk",
19793d356ab4STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
19803d356ab4STaniya Das 				&gcc_qupv3_wrap1_s1_clk_src.clkr.hw,
19813d356ab4STaniya Das 			},
19823d356ab4STaniya Das 			.num_parents = 1,
19833d356ab4STaniya Das 			.flags = CLK_SET_RATE_PARENT,
19843d356ab4STaniya Das 			.ops = &clk_branch2_ops,
19853d356ab4STaniya Das 		},
19863d356ab4STaniya Das 	},
19873d356ab4STaniya Das };
19883d356ab4STaniya Das 
19893d356ab4STaniya Das static struct clk_branch gcc_qupv3_wrap1_s2_clk = {
19903d356ab4STaniya Das 	.halt_reg = 0x1827c,
19913d356ab4STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
19923d356ab4STaniya Das 	.clkr = {
19933d356ab4STaniya Das 		.enable_reg = 0x52008,
19943d356ab4STaniya Das 		.enable_mask = BIT(24),
19953d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
19963d356ab4STaniya Das 			.name = "gcc_qupv3_wrap1_s2_clk",
19973d356ab4STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
19983d356ab4STaniya Das 				&gcc_qupv3_wrap1_s2_clk_src.clkr.hw,
19993d356ab4STaniya Das 			},
20003d356ab4STaniya Das 			.num_parents = 1,
20013d356ab4STaniya Das 			.flags = CLK_SET_RATE_PARENT,
20023d356ab4STaniya Das 			.ops = &clk_branch2_ops,
20033d356ab4STaniya Das 		},
20043d356ab4STaniya Das 	},
20053d356ab4STaniya Das };
20063d356ab4STaniya Das 
20073d356ab4STaniya Das static struct clk_branch gcc_qupv3_wrap1_s3_clk = {
20083d356ab4STaniya Das 	.halt_reg = 0x18290,
20093d356ab4STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
20103d356ab4STaniya Das 	.clkr = {
20113d356ab4STaniya Das 		.enable_reg = 0x52008,
20123d356ab4STaniya Das 		.enable_mask = BIT(25),
20133d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
20143d356ab4STaniya Das 			.name = "gcc_qupv3_wrap1_s3_clk",
20153d356ab4STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
20163d356ab4STaniya Das 				&gcc_qupv3_wrap1_s3_clk_src.clkr.hw,
20173d356ab4STaniya Das 			},
20183d356ab4STaniya Das 			.num_parents = 1,
20193d356ab4STaniya Das 			.flags = CLK_SET_RATE_PARENT,
20203d356ab4STaniya Das 			.ops = &clk_branch2_ops,
20213d356ab4STaniya Das 		},
20223d356ab4STaniya Das 	},
20233d356ab4STaniya Das };
20243d356ab4STaniya Das 
20253d356ab4STaniya Das static struct clk_branch gcc_qupv3_wrap1_s4_clk = {
20263d356ab4STaniya Das 	.halt_reg = 0x183cc,
20273d356ab4STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
20283d356ab4STaniya Das 	.clkr = {
20293d356ab4STaniya Das 		.enable_reg = 0x52008,
20303d356ab4STaniya Das 		.enable_mask = BIT(26),
20313d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
20323d356ab4STaniya Das 			.name = "gcc_qupv3_wrap1_s4_clk",
20333d356ab4STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
20343d356ab4STaniya Das 				&gcc_qupv3_wrap1_s4_clk_src.clkr.hw,
20353d356ab4STaniya Das 			},
20363d356ab4STaniya Das 			.num_parents = 1,
20373d356ab4STaniya Das 			.flags = CLK_SET_RATE_PARENT,
20383d356ab4STaniya Das 			.ops = &clk_branch2_ops,
20393d356ab4STaniya Das 		},
20403d356ab4STaniya Das 	},
20413d356ab4STaniya Das };
20423d356ab4STaniya Das 
20433d356ab4STaniya Das static struct clk_branch gcc_qupv3_wrap1_s5_clk = {
20443d356ab4STaniya Das 	.halt_reg = 0x18508,
20453d356ab4STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
20463d356ab4STaniya Das 	.clkr = {
20473d356ab4STaniya Das 		.enable_reg = 0x52008,
20483d356ab4STaniya Das 		.enable_mask = BIT(27),
20493d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
20503d356ab4STaniya Das 			.name = "gcc_qupv3_wrap1_s5_clk",
20513d356ab4STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
20523d356ab4STaniya Das 				&gcc_qupv3_wrap1_s5_clk_src.clkr.hw,
20533d356ab4STaniya Das 			},
20543d356ab4STaniya Das 			.num_parents = 1,
20553d356ab4STaniya Das 			.flags = CLK_SET_RATE_PARENT,
20563d356ab4STaniya Das 			.ops = &clk_branch2_ops,
20573d356ab4STaniya Das 		},
20583d356ab4STaniya Das 	},
20593d356ab4STaniya Das };
20603d356ab4STaniya Das 
20613d356ab4STaniya Das static struct clk_branch gcc_qupv3_wrap1_s6_clk = {
20623d356ab4STaniya Das 	.halt_reg = 0x18644,
20633d356ab4STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
20643d356ab4STaniya Das 	.clkr = {
20653d356ab4STaniya Das 		.enable_reg = 0x52008,
20663d356ab4STaniya Das 		.enable_mask = BIT(28),
20673d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
20683d356ab4STaniya Das 			.name = "gcc_qupv3_wrap1_s6_clk",
20693d356ab4STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
20703d356ab4STaniya Das 				&gcc_qupv3_wrap1_s6_clk_src.clkr.hw,
20713d356ab4STaniya Das 			},
20723d356ab4STaniya Das 			.num_parents = 1,
20733d356ab4STaniya Das 			.flags = CLK_SET_RATE_PARENT,
20743d356ab4STaniya Das 			.ops = &clk_branch2_ops,
20753d356ab4STaniya Das 		},
20763d356ab4STaniya Das 	},
20773d356ab4STaniya Das };
20783d356ab4STaniya Das 
20793d356ab4STaniya Das static struct clk_branch gcc_qupv3_wrap1_s7_clk = {
20803d356ab4STaniya Das 	.halt_reg = 0x18780,
20813d356ab4STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
20823d356ab4STaniya Das 	.clkr = {
20833d356ab4STaniya Das 		.enable_reg = 0x52010,
20843d356ab4STaniya Das 		.enable_mask = BIT(16),
20853d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
20863d356ab4STaniya Das 			.name = "gcc_qupv3_wrap1_s7_clk",
20873d356ab4STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
20883d356ab4STaniya Das 				&gcc_qupv3_wrap1_s7_clk_src.clkr.hw,
20893d356ab4STaniya Das 			},
20903d356ab4STaniya Das 			.num_parents = 1,
20913d356ab4STaniya Das 			.flags = CLK_SET_RATE_PARENT,
20923d356ab4STaniya Das 			.ops = &clk_branch2_ops,
20933d356ab4STaniya Das 		},
20943d356ab4STaniya Das 	},
20953d356ab4STaniya Das };
20963d356ab4STaniya Das 
20973d356ab4STaniya Das static struct clk_branch gcc_qupv3_wrap2_core_2x_clk = {
20983d356ab4STaniya Das 	.halt_reg = 0x23174,
20993d356ab4STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
21003d356ab4STaniya Das 	.clkr = {
21013d356ab4STaniya Das 		.enable_reg = 0x52010,
21023d356ab4STaniya Das 		.enable_mask = BIT(3),
21033d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
21043d356ab4STaniya Das 			.name = "gcc_qupv3_wrap2_core_2x_clk",
21053d356ab4STaniya Das 			.ops = &clk_branch2_ops,
21063d356ab4STaniya Das 		},
21073d356ab4STaniya Das 	},
21083d356ab4STaniya Das };
21093d356ab4STaniya Das 
21103d356ab4STaniya Das static struct clk_branch gcc_qupv3_wrap2_core_clk = {
21113d356ab4STaniya Das 	.halt_reg = 0x23160,
21123d356ab4STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
21133d356ab4STaniya Das 	.clkr = {
21143d356ab4STaniya Das 		.enable_reg = 0x52010,
21153d356ab4STaniya Das 		.enable_mask = BIT(0),
21163d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
21173d356ab4STaniya Das 			.name = "gcc_qupv3_wrap2_core_clk",
21183d356ab4STaniya Das 			.ops = &clk_branch2_ops,
21193d356ab4STaniya Das 		},
21203d356ab4STaniya Das 	},
21213d356ab4STaniya Das };
21223d356ab4STaniya Das 
21233d356ab4STaniya Das static struct clk_branch gcc_qupv3_wrap2_s0_clk = {
21243d356ab4STaniya Das 	.halt_reg = 0x1e004,
21253d356ab4STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
21263d356ab4STaniya Das 	.clkr = {
21273d356ab4STaniya Das 		.enable_reg = 0x52010,
21283d356ab4STaniya Das 		.enable_mask = BIT(4),
21293d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
21303d356ab4STaniya Das 			.name = "gcc_qupv3_wrap2_s0_clk",
21313d356ab4STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
21323d356ab4STaniya Das 				&gcc_qupv3_wrap2_s0_clk_src.clkr.hw,
21333d356ab4STaniya Das 			},
21343d356ab4STaniya Das 			.num_parents = 1,
21353d356ab4STaniya Das 			.flags = CLK_SET_RATE_PARENT,
21363d356ab4STaniya Das 			.ops = &clk_branch2_ops,
21373d356ab4STaniya Das 		},
21383d356ab4STaniya Das 	},
21393d356ab4STaniya Das };
21403d356ab4STaniya Das 
21413d356ab4STaniya Das static struct clk_branch gcc_qupv3_wrap2_s1_clk = {
21423d356ab4STaniya Das 	.halt_reg = 0x1e140,
21433d356ab4STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
21443d356ab4STaniya Das 	.clkr = {
21453d356ab4STaniya Das 		.enable_reg = 0x52010,
21463d356ab4STaniya Das 		.enable_mask = BIT(5),
21473d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
21483d356ab4STaniya Das 			.name = "gcc_qupv3_wrap2_s1_clk",
21493d356ab4STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
21503d356ab4STaniya Das 				&gcc_qupv3_wrap2_s1_clk_src.clkr.hw,
21513d356ab4STaniya Das 			},
21523d356ab4STaniya Das 			.num_parents = 1,
21533d356ab4STaniya Das 			.flags = CLK_SET_RATE_PARENT,
21543d356ab4STaniya Das 			.ops = &clk_branch2_ops,
21553d356ab4STaniya Das 		},
21563d356ab4STaniya Das 	},
21573d356ab4STaniya Das };
21583d356ab4STaniya Das 
21593d356ab4STaniya Das static struct clk_branch gcc_qupv3_wrap2_s2_clk = {
21603d356ab4STaniya Das 	.halt_reg = 0x1e27c,
21613d356ab4STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
21623d356ab4STaniya Das 	.clkr = {
21633d356ab4STaniya Das 		.enable_reg = 0x52010,
21643d356ab4STaniya Das 		.enable_mask = BIT(6),
21653d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
21663d356ab4STaniya Das 			.name = "gcc_qupv3_wrap2_s2_clk",
21673d356ab4STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
21683d356ab4STaniya Das 				&gcc_qupv3_wrap2_s2_clk_src.clkr.hw,
21693d356ab4STaniya Das 			},
21703d356ab4STaniya Das 			.num_parents = 1,
21713d356ab4STaniya Das 			.flags = CLK_SET_RATE_PARENT,
21723d356ab4STaniya Das 			.ops = &clk_branch2_ops,
21733d356ab4STaniya Das 		},
21743d356ab4STaniya Das 	},
21753d356ab4STaniya Das };
21763d356ab4STaniya Das 
21773d356ab4STaniya Das static struct clk_branch gcc_qupv3_wrap2_s3_clk = {
21783d356ab4STaniya Das 	.halt_reg = 0x1e3b8,
21793d356ab4STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
21803d356ab4STaniya Das 	.clkr = {
21813d356ab4STaniya Das 		.enable_reg = 0x52010,
21823d356ab4STaniya Das 		.enable_mask = BIT(7),
21833d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
21843d356ab4STaniya Das 			.name = "gcc_qupv3_wrap2_s3_clk",
21853d356ab4STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
21863d356ab4STaniya Das 				&gcc_qupv3_wrap2_s3_clk_src.clkr.hw,
21873d356ab4STaniya Das 			},
21883d356ab4STaniya Das 			.num_parents = 1,
21893d356ab4STaniya Das 			.flags = CLK_SET_RATE_PARENT,
21903d356ab4STaniya Das 			.ops = &clk_branch2_ops,
21913d356ab4STaniya Das 		},
21923d356ab4STaniya Das 	},
21933d356ab4STaniya Das };
21943d356ab4STaniya Das 
21953d356ab4STaniya Das static struct clk_branch gcc_qupv3_wrap2_s4_clk = {
21963d356ab4STaniya Das 	.halt_reg = 0x1e4f4,
21973d356ab4STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
21983d356ab4STaniya Das 	.clkr = {
21993d356ab4STaniya Das 		.enable_reg = 0x52010,
22003d356ab4STaniya Das 		.enable_mask = BIT(8),
22013d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
22023d356ab4STaniya Das 			.name = "gcc_qupv3_wrap2_s4_clk",
22033d356ab4STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
22043d356ab4STaniya Das 				&gcc_qupv3_wrap2_s4_clk_src.clkr.hw,
22053d356ab4STaniya Das 			},
22063d356ab4STaniya Das 			.num_parents = 1,
22073d356ab4STaniya Das 			.flags = CLK_SET_RATE_PARENT,
22083d356ab4STaniya Das 			.ops = &clk_branch2_ops,
22093d356ab4STaniya Das 		},
22103d356ab4STaniya Das 	},
22113d356ab4STaniya Das };
22123d356ab4STaniya Das 
22133d356ab4STaniya Das static struct clk_branch gcc_qupv3_wrap2_s5_clk = {
22143d356ab4STaniya Das 	.halt_reg = 0x1e630,
22153d356ab4STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
22163d356ab4STaniya Das 	.clkr = {
22173d356ab4STaniya Das 		.enable_reg = 0x52010,
22183d356ab4STaniya Das 		.enable_mask = BIT(9),
22193d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
22203d356ab4STaniya Das 			.name = "gcc_qupv3_wrap2_s5_clk",
22213d356ab4STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
22223d356ab4STaniya Das 				&gcc_qupv3_wrap2_s5_clk_src.clkr.hw,
22233d356ab4STaniya Das 			},
22243d356ab4STaniya Das 			.num_parents = 1,
22253d356ab4STaniya Das 			.flags = CLK_SET_RATE_PARENT,
22263d356ab4STaniya Das 			.ops = &clk_branch2_ops,
22273d356ab4STaniya Das 		},
22283d356ab4STaniya Das 	},
22293d356ab4STaniya Das };
22303d356ab4STaniya Das 
22313d356ab4STaniya Das static struct clk_branch gcc_qupv3_wrap2_s6_clk = {
22323d356ab4STaniya Das 	.halt_reg = 0x1e76c,
22333d356ab4STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
22343d356ab4STaniya Das 	.clkr = {
22353d356ab4STaniya Das 		.enable_reg = 0x52010,
22363d356ab4STaniya Das 		.enable_mask = BIT(10),
22373d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
22383d356ab4STaniya Das 			.name = "gcc_qupv3_wrap2_s6_clk",
22393d356ab4STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
22403d356ab4STaniya Das 				&gcc_qupv3_wrap2_s6_clk_src.clkr.hw,
22413d356ab4STaniya Das 			},
22423d356ab4STaniya Das 			.num_parents = 1,
22433d356ab4STaniya Das 			.flags = CLK_SET_RATE_PARENT,
22443d356ab4STaniya Das 			.ops = &clk_branch2_ops,
22453d356ab4STaniya Das 		},
22463d356ab4STaniya Das 	},
22473d356ab4STaniya Das };
22483d356ab4STaniya Das 
22493d356ab4STaniya Das static struct clk_branch gcc_qupv3_wrap2_s7_clk = {
22503d356ab4STaniya Das 	.halt_reg = 0x1e8a8,
22513d356ab4STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
22523d356ab4STaniya Das 	.clkr = {
22533d356ab4STaniya Das 		.enable_reg = 0x52010,
22543d356ab4STaniya Das 		.enable_mask = BIT(17),
22553d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
22563d356ab4STaniya Das 			.name = "gcc_qupv3_wrap2_s7_clk",
22573d356ab4STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
22583d356ab4STaniya Das 				&gcc_qupv3_wrap2_s7_clk_src.clkr.hw,
22593d356ab4STaniya Das 			},
22603d356ab4STaniya Das 			.num_parents = 1,
22613d356ab4STaniya Das 			.flags = CLK_SET_RATE_PARENT,
22623d356ab4STaniya Das 			.ops = &clk_branch2_ops,
22633d356ab4STaniya Das 		},
22643d356ab4STaniya Das 	},
22653d356ab4STaniya Das };
22663d356ab4STaniya Das 
22673d356ab4STaniya Das static struct clk_branch gcc_qupv3_wrap_1_m_ahb_clk = {
22683d356ab4STaniya Das 	.halt_reg = 0x23000,
22693d356ab4STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
22703d356ab4STaniya Das 	.clkr = {
22713d356ab4STaniya Das 		.enable_reg = 0x52008,
22723d356ab4STaniya Das 		.enable_mask = BIT(20),
22733d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
22743d356ab4STaniya Das 			.name = "gcc_qupv3_wrap_1_m_ahb_clk",
22753d356ab4STaniya Das 			.ops = &clk_branch2_ops,
22763d356ab4STaniya Das 		},
22773d356ab4STaniya Das 	},
22783d356ab4STaniya Das };
22793d356ab4STaniya Das 
22803d356ab4STaniya Das static struct clk_branch gcc_qupv3_wrap_1_s_ahb_clk = {
22813d356ab4STaniya Das 	.halt_reg = 0x23004,
22823d356ab4STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
22833d356ab4STaniya Das 	.hwcg_reg = 0x23004,
22843d356ab4STaniya Das 	.hwcg_bit = 1,
22853d356ab4STaniya Das 	.clkr = {
22863d356ab4STaniya Das 		.enable_reg = 0x52008,
22873d356ab4STaniya Das 		.enable_mask = BIT(21),
22883d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
22893d356ab4STaniya Das 			.name = "gcc_qupv3_wrap_1_s_ahb_clk",
22903d356ab4STaniya Das 			.ops = &clk_branch2_ops,
22913d356ab4STaniya Das 		},
22923d356ab4STaniya Das 	},
22933d356ab4STaniya Das };
22943d356ab4STaniya Das 
22953d356ab4STaniya Das static struct clk_branch gcc_qupv3_wrap_2_m_ahb_clk = {
22963d356ab4STaniya Das 	.halt_reg = 0x23158,
22973d356ab4STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
22983d356ab4STaniya Das 	.hwcg_reg = 0x23158,
22993d356ab4STaniya Das 	.hwcg_bit = 1,
23003d356ab4STaniya Das 	.clkr = {
23013d356ab4STaniya Das 		.enable_reg = 0x52010,
23023d356ab4STaniya Das 		.enable_mask = BIT(2),
23033d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
23043d356ab4STaniya Das 			.name = "gcc_qupv3_wrap_2_m_ahb_clk",
23053d356ab4STaniya Das 			.ops = &clk_branch2_ops,
23063d356ab4STaniya Das 		},
23073d356ab4STaniya Das 	},
23083d356ab4STaniya Das };
23093d356ab4STaniya Das 
23103d356ab4STaniya Das static struct clk_branch gcc_qupv3_wrap_2_s_ahb_clk = {
23113d356ab4STaniya Das 	.halt_reg = 0x2315c,
23123d356ab4STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
23133d356ab4STaniya Das 	.hwcg_reg = 0x2315c,
23143d356ab4STaniya Das 	.hwcg_bit = 1,
23153d356ab4STaniya Das 	.clkr = {
23163d356ab4STaniya Das 		.enable_reg = 0x52010,
23173d356ab4STaniya Das 		.enable_mask = BIT(1),
23183d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
23193d356ab4STaniya Das 			.name = "gcc_qupv3_wrap_2_s_ahb_clk",
23203d356ab4STaniya Das 			.ops = &clk_branch2_ops,
23213d356ab4STaniya Das 		},
23223d356ab4STaniya Das 	},
23233d356ab4STaniya Das };
23243d356ab4STaniya Das 
23253d356ab4STaniya Das static struct clk_branch gcc_sdcc1_ahb_clk = {
23263d356ab4STaniya Das 	.halt_reg = 0xa9004,
23273d356ab4STaniya Das 	.halt_check = BRANCH_HALT,
23283d356ab4STaniya Das 	.clkr = {
23293d356ab4STaniya Das 		.enable_reg = 0xa9004,
23303d356ab4STaniya Das 		.enable_mask = BIT(0),
23313d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
23323d356ab4STaniya Das 			.name = "gcc_sdcc1_ahb_clk",
23333d356ab4STaniya Das 			.ops = &clk_branch2_ops,
23343d356ab4STaniya Das 		},
23353d356ab4STaniya Das 	},
23363d356ab4STaniya Das };
23373d356ab4STaniya Das 
23383d356ab4STaniya Das static struct clk_branch gcc_sdcc1_apps_clk = {
23393d356ab4STaniya Das 	.halt_reg = 0xa9008,
23403d356ab4STaniya Das 	.halt_check = BRANCH_HALT,
23413d356ab4STaniya Das 	.clkr = {
23423d356ab4STaniya Das 		.enable_reg = 0xa9008,
23433d356ab4STaniya Das 		.enable_mask = BIT(0),
23443d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
23453d356ab4STaniya Das 			.name = "gcc_sdcc1_apps_clk",
23463d356ab4STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
23473d356ab4STaniya Das 				&gcc_sdcc1_apps_clk_src.clkr.hw,
23483d356ab4STaniya Das 			},
23493d356ab4STaniya Das 			.num_parents = 1,
23503d356ab4STaniya Das 			.flags = CLK_SET_RATE_PARENT,
23513d356ab4STaniya Das 			.ops = &clk_branch2_ops,
23523d356ab4STaniya Das 		},
23533d356ab4STaniya Das 	},
23543d356ab4STaniya Das };
23553d356ab4STaniya Das 
23563d356ab4STaniya Das static struct clk_branch gcc_sdcc1_ice_core_clk = {
23573d356ab4STaniya Das 	.halt_reg = 0xa9030,
23583d356ab4STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
23593d356ab4STaniya Das 	.hwcg_reg = 0xa9030,
23603d356ab4STaniya Das 	.hwcg_bit = 1,
23613d356ab4STaniya Das 	.clkr = {
23623d356ab4STaniya Das 		.enable_reg = 0xa9030,
23633d356ab4STaniya Das 		.enable_mask = BIT(0),
23643d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
23653d356ab4STaniya Das 			.name = "gcc_sdcc1_ice_core_clk",
23663d356ab4STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
23673d356ab4STaniya Das 				&gcc_sdcc1_ice_core_clk_src.clkr.hw,
23683d356ab4STaniya Das 			},
23693d356ab4STaniya Das 			.num_parents = 1,
23703d356ab4STaniya Das 			.flags = CLK_SET_RATE_PARENT,
23713d356ab4STaniya Das 			.ops = &clk_branch2_ops,
23723d356ab4STaniya Das 		},
23733d356ab4STaniya Das 	},
23743d356ab4STaniya Das };
23753d356ab4STaniya Das 
23763d356ab4STaniya Das static struct clk_branch gcc_sdcc2_ahb_clk = {
23773d356ab4STaniya Das 	.halt_reg = 0x14014,
23783d356ab4STaniya Das 	.halt_check = BRANCH_HALT,
23793d356ab4STaniya Das 	.clkr = {
23803d356ab4STaniya Das 		.enable_reg = 0x14014,
23813d356ab4STaniya Das 		.enable_mask = BIT(0),
23823d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
23833d356ab4STaniya Das 			.name = "gcc_sdcc2_ahb_clk",
23843d356ab4STaniya Das 			.ops = &clk_branch2_ops,
23853d356ab4STaniya Das 		},
23863d356ab4STaniya Das 	},
23873d356ab4STaniya Das };
23883d356ab4STaniya Das 
23893d356ab4STaniya Das static struct clk_branch gcc_sdcc2_apps_clk = {
23903d356ab4STaniya Das 	.halt_reg = 0x14004,
23913d356ab4STaniya Das 	.halt_check = BRANCH_HALT,
23923d356ab4STaniya Das 	.clkr = {
23933d356ab4STaniya Das 		.enable_reg = 0x14004,
23943d356ab4STaniya Das 		.enable_mask = BIT(0),
23953d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
23963d356ab4STaniya Das 			.name = "gcc_sdcc2_apps_clk",
23973d356ab4STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
23983d356ab4STaniya Das 				&gcc_sdcc2_apps_clk_src.clkr.hw,
23993d356ab4STaniya Das 			},
24003d356ab4STaniya Das 			.num_parents = 1,
24013d356ab4STaniya Das 			.flags = CLK_SET_RATE_PARENT,
24023d356ab4STaniya Das 			.ops = &clk_branch2_ops,
24033d356ab4STaniya Das 		},
24043d356ab4STaniya Das 	},
24053d356ab4STaniya Das };
24063d356ab4STaniya Das 
24073d356ab4STaniya Das static struct clk_branch gcc_ufs_phy_ahb_clk = {
24083d356ab4STaniya Das 	.halt_reg = 0x77028,
24093d356ab4STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
24103d356ab4STaniya Das 	.hwcg_reg = 0x77028,
24113d356ab4STaniya Das 	.hwcg_bit = 1,
24123d356ab4STaniya Das 	.clkr = {
24133d356ab4STaniya Das 		.enable_reg = 0x77028,
24143d356ab4STaniya Das 		.enable_mask = BIT(0),
24153d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
24163d356ab4STaniya Das 			.name = "gcc_ufs_phy_ahb_clk",
24173d356ab4STaniya Das 			.ops = &clk_branch2_ops,
24183d356ab4STaniya Das 		},
24193d356ab4STaniya Das 	},
24203d356ab4STaniya Das };
24213d356ab4STaniya Das 
24223d356ab4STaniya Das static struct clk_branch gcc_ufs_phy_axi_clk = {
24233d356ab4STaniya Das 	.halt_reg = 0x77018,
24243d356ab4STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
24253d356ab4STaniya Das 	.hwcg_reg = 0x77018,
24263d356ab4STaniya Das 	.hwcg_bit = 1,
24273d356ab4STaniya Das 	.clkr = {
24283d356ab4STaniya Das 		.enable_reg = 0x77018,
24293d356ab4STaniya Das 		.enable_mask = BIT(0),
24303d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
24313d356ab4STaniya Das 			.name = "gcc_ufs_phy_axi_clk",
24323d356ab4STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
24333d356ab4STaniya Das 				&gcc_ufs_phy_axi_clk_src.clkr.hw,
24343d356ab4STaniya Das 			},
24353d356ab4STaniya Das 			.num_parents = 1,
24363d356ab4STaniya Das 			.flags = CLK_SET_RATE_PARENT,
24373d356ab4STaniya Das 			.ops = &clk_branch2_ops,
24383d356ab4STaniya Das 		},
24393d356ab4STaniya Das 	},
24403d356ab4STaniya Das };
24413d356ab4STaniya Das 
24423d356ab4STaniya Das static struct clk_branch gcc_ufs_phy_ice_core_clk = {
24433d356ab4STaniya Das 	.halt_reg = 0x7707c,
24443d356ab4STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
24453d356ab4STaniya Das 	.hwcg_reg = 0x7707c,
24463d356ab4STaniya Das 	.hwcg_bit = 1,
24473d356ab4STaniya Das 	.clkr = {
24483d356ab4STaniya Das 		.enable_reg = 0x7707c,
24493d356ab4STaniya Das 		.enable_mask = BIT(0),
24503d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
24513d356ab4STaniya Das 			.name = "gcc_ufs_phy_ice_core_clk",
24523d356ab4STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
24533d356ab4STaniya Das 				&gcc_ufs_phy_ice_core_clk_src.clkr.hw,
24543d356ab4STaniya Das 			},
24553d356ab4STaniya Das 			.num_parents = 1,
24563d356ab4STaniya Das 			.flags = CLK_SET_RATE_PARENT,
24573d356ab4STaniya Das 			.ops = &clk_branch2_ops,
24583d356ab4STaniya Das 		},
24593d356ab4STaniya Das 	},
24603d356ab4STaniya Das };
24613d356ab4STaniya Das 
24623d356ab4STaniya Das static struct clk_branch gcc_ufs_phy_phy_aux_clk = {
24633d356ab4STaniya Das 	.halt_reg = 0x770bc,
24643d356ab4STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
24653d356ab4STaniya Das 	.hwcg_reg = 0x770bc,
24663d356ab4STaniya Das 	.hwcg_bit = 1,
24673d356ab4STaniya Das 	.clkr = {
24683d356ab4STaniya Das 		.enable_reg = 0x770bc,
24693d356ab4STaniya Das 		.enable_mask = BIT(0),
24703d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
24713d356ab4STaniya Das 			.name = "gcc_ufs_phy_phy_aux_clk",
24723d356ab4STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
24733d356ab4STaniya Das 				&gcc_ufs_phy_phy_aux_clk_src.clkr.hw,
24743d356ab4STaniya Das 			},
24753d356ab4STaniya Das 			.num_parents = 1,
24763d356ab4STaniya Das 			.flags = CLK_SET_RATE_PARENT,
24773d356ab4STaniya Das 			.ops = &clk_branch2_ops,
24783d356ab4STaniya Das 		},
24793d356ab4STaniya Das 	},
24803d356ab4STaniya Das };
24813d356ab4STaniya Das 
24823d356ab4STaniya Das static struct clk_branch gcc_ufs_phy_rx_symbol_0_clk = {
24833d356ab4STaniya Das 	.halt_reg = 0x77030,
24843d356ab4STaniya Das 	.halt_check = BRANCH_HALT_DELAY,
24853d356ab4STaniya Das 	.clkr = {
24863d356ab4STaniya Das 		.enable_reg = 0x77030,
24873d356ab4STaniya Das 		.enable_mask = BIT(0),
24883d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
24893d356ab4STaniya Das 			.name = "gcc_ufs_phy_rx_symbol_0_clk",
24903d356ab4STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
24913d356ab4STaniya Das 				&gcc_ufs_phy_rx_symbol_0_clk_src.clkr.hw,
24923d356ab4STaniya Das 			},
24933d356ab4STaniya Das 			.num_parents = 1,
24943d356ab4STaniya Das 			.flags = CLK_SET_RATE_PARENT,
24953d356ab4STaniya Das 			.ops = &clk_branch2_ops,
24963d356ab4STaniya Das 		},
24973d356ab4STaniya Das 	},
24983d356ab4STaniya Das };
24993d356ab4STaniya Das 
25003d356ab4STaniya Das static struct clk_branch gcc_ufs_phy_rx_symbol_1_clk = {
25013d356ab4STaniya Das 	.halt_reg = 0x770d8,
25023d356ab4STaniya Das 	.halt_check = BRANCH_HALT_DELAY,
25033d356ab4STaniya Das 	.clkr = {
25043d356ab4STaniya Das 		.enable_reg = 0x770d8,
25053d356ab4STaniya Das 		.enable_mask = BIT(0),
25063d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
25073d356ab4STaniya Das 			.name = "gcc_ufs_phy_rx_symbol_1_clk",
25083d356ab4STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
25093d356ab4STaniya Das 				&gcc_ufs_phy_rx_symbol_1_clk_src.clkr.hw,
25103d356ab4STaniya Das 			},
25113d356ab4STaniya Das 			.num_parents = 1,
25123d356ab4STaniya Das 			.flags = CLK_SET_RATE_PARENT,
25133d356ab4STaniya Das 			.ops = &clk_branch2_ops,
25143d356ab4STaniya Das 		},
25153d356ab4STaniya Das 	},
25163d356ab4STaniya Das };
25173d356ab4STaniya Das 
25183d356ab4STaniya Das static struct clk_branch gcc_ufs_phy_tx_symbol_0_clk = {
25193d356ab4STaniya Das 	.halt_reg = 0x7702c,
25203d356ab4STaniya Das 	.halt_check = BRANCH_HALT_DELAY,
25213d356ab4STaniya Das 	.clkr = {
25223d356ab4STaniya Das 		.enable_reg = 0x7702c,
25233d356ab4STaniya Das 		.enable_mask = BIT(0),
25243d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
25253d356ab4STaniya Das 			.name = "gcc_ufs_phy_tx_symbol_0_clk",
25263d356ab4STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
25273d356ab4STaniya Das 				&gcc_ufs_phy_tx_symbol_0_clk_src.clkr.hw,
25283d356ab4STaniya Das 			},
25293d356ab4STaniya Das 			.num_parents = 1,
25303d356ab4STaniya Das 			.flags = CLK_SET_RATE_PARENT,
25313d356ab4STaniya Das 			.ops = &clk_branch2_ops,
25323d356ab4STaniya Das 		},
25333d356ab4STaniya Das 	},
25343d356ab4STaniya Das };
25353d356ab4STaniya Das 
25363d356ab4STaniya Das static struct clk_branch gcc_ufs_phy_unipro_core_clk = {
25373d356ab4STaniya Das 	.halt_reg = 0x7706c,
25383d356ab4STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
25393d356ab4STaniya Das 	.hwcg_reg = 0x7706c,
25403d356ab4STaniya Das 	.hwcg_bit = 1,
25413d356ab4STaniya Das 	.clkr = {
25423d356ab4STaniya Das 		.enable_reg = 0x7706c,
25433d356ab4STaniya Das 		.enable_mask = BIT(0),
25443d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
25453d356ab4STaniya Das 			.name = "gcc_ufs_phy_unipro_core_clk",
25463d356ab4STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
25473d356ab4STaniya Das 				&gcc_ufs_phy_unipro_core_clk_src.clkr.hw,
25483d356ab4STaniya Das 			},
25493d356ab4STaniya Das 			.num_parents = 1,
25503d356ab4STaniya Das 			.flags = CLK_SET_RATE_PARENT,
25513d356ab4STaniya Das 			.ops = &clk_branch2_ops,
25523d356ab4STaniya Das 		},
25533d356ab4STaniya Das 	},
25543d356ab4STaniya Das };
25553d356ab4STaniya Das 
25563d356ab4STaniya Das static struct clk_branch gcc_usb30_prim_atb_clk = {
25573d356ab4STaniya Das 	.halt_reg = 0x3908c,
25583d356ab4STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
25593d356ab4STaniya Das 	.clkr = {
25603d356ab4STaniya Das 		.enable_reg = 0x3908c,
25613d356ab4STaniya Das 		.enable_mask = BIT(0),
25623d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
25633d356ab4STaniya Das 			.name = "gcc_usb30_prim_atb_clk",
25643d356ab4STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
25653d356ab4STaniya Das 				&gcc_usb30_prim_master_clk_src.clkr.hw,
25663d356ab4STaniya Das 			},
25673d356ab4STaniya Das 			.num_parents = 1,
25683d356ab4STaniya Das 			.flags = CLK_SET_RATE_PARENT,
25693d356ab4STaniya Das 			.ops = &clk_branch2_ops,
25703d356ab4STaniya Das 		},
25713d356ab4STaniya Das 	},
25723d356ab4STaniya Das };
25733d356ab4STaniya Das 
25743d356ab4STaniya Das static struct clk_branch gcc_usb30_prim_master_clk = {
25753d356ab4STaniya Das 	.halt_reg = 0x39018,
25763d356ab4STaniya Das 	.halt_check = BRANCH_HALT,
25773d356ab4STaniya Das 	.clkr = {
25783d356ab4STaniya Das 		.enable_reg = 0x39018,
25793d356ab4STaniya Das 		.enable_mask = BIT(0),
25803d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
25813d356ab4STaniya Das 			.name = "gcc_usb30_prim_master_clk",
25823d356ab4STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
25833d356ab4STaniya Das 				&gcc_usb30_prim_master_clk_src.clkr.hw,
25843d356ab4STaniya Das 			},
25853d356ab4STaniya Das 			.num_parents = 1,
25863d356ab4STaniya Das 			.flags = CLK_SET_RATE_PARENT,
25873d356ab4STaniya Das 			.ops = &clk_branch2_ops,
25883d356ab4STaniya Das 		},
25893d356ab4STaniya Das 	},
25903d356ab4STaniya Das };
25913d356ab4STaniya Das 
25923d356ab4STaniya Das static struct clk_branch gcc_usb30_prim_mock_utmi_clk = {
25933d356ab4STaniya Das 	.halt_reg = 0x3902c,
25943d356ab4STaniya Das 	.halt_check = BRANCH_HALT,
25953d356ab4STaniya Das 	.clkr = {
25963d356ab4STaniya Das 		.enable_reg = 0x3902c,
25973d356ab4STaniya Das 		.enable_mask = BIT(0),
25983d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
25993d356ab4STaniya Das 			.name = "gcc_usb30_prim_mock_utmi_clk",
26003d356ab4STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
26013d356ab4STaniya Das 				&gcc_usb30_prim_mock_utmi_postdiv_clk_src.clkr.hw,
26023d356ab4STaniya Das 			},
26033d356ab4STaniya Das 			.num_parents = 1,
26043d356ab4STaniya Das 			.flags = CLK_SET_RATE_PARENT,
26053d356ab4STaniya Das 			.ops = &clk_branch2_ops,
26063d356ab4STaniya Das 		},
26073d356ab4STaniya Das 	},
26083d356ab4STaniya Das };
26093d356ab4STaniya Das 
26103d356ab4STaniya Das static struct clk_branch gcc_usb30_prim_sleep_clk = {
26113d356ab4STaniya Das 	.halt_reg = 0x39028,
26123d356ab4STaniya Das 	.halt_check = BRANCH_HALT,
26133d356ab4STaniya Das 	.clkr = {
26143d356ab4STaniya Das 		.enable_reg = 0x39028,
26153d356ab4STaniya Das 		.enable_mask = BIT(0),
26163d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
26173d356ab4STaniya Das 			.name = "gcc_usb30_prim_sleep_clk",
26183d356ab4STaniya Das 			.ops = &clk_branch2_ops,
26193d356ab4STaniya Das 		},
26203d356ab4STaniya Das 	},
26213d356ab4STaniya Das };
26223d356ab4STaniya Das 
26233d356ab4STaniya Das static struct clk_branch gcc_usb3_prim_phy_aux_clk = {
26243d356ab4STaniya Das 	.halt_reg = 0x39064,
26253d356ab4STaniya Das 	.halt_check = BRANCH_HALT,
26263d356ab4STaniya Das 	.clkr = {
26273d356ab4STaniya Das 		.enable_reg = 0x39064,
26283d356ab4STaniya Das 		.enable_mask = BIT(0),
26293d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
26303d356ab4STaniya Das 			.name = "gcc_usb3_prim_phy_aux_clk",
26313d356ab4STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
26323d356ab4STaniya Das 				&gcc_usb3_prim_phy_aux_clk_src.clkr.hw,
26333d356ab4STaniya Das 			},
26343d356ab4STaniya Das 			.num_parents = 1,
26353d356ab4STaniya Das 			.flags = CLK_SET_RATE_PARENT,
26363d356ab4STaniya Das 			.ops = &clk_branch2_ops,
26373d356ab4STaniya Das 		},
26383d356ab4STaniya Das 	},
26393d356ab4STaniya Das };
26403d356ab4STaniya Das 
26413d356ab4STaniya Das static struct clk_branch gcc_usb3_prim_phy_com_aux_clk = {
26423d356ab4STaniya Das 	.halt_reg = 0x39068,
26433d356ab4STaniya Das 	.halt_check = BRANCH_HALT,
26443d356ab4STaniya Das 	.clkr = {
26453d356ab4STaniya Das 		.enable_reg = 0x39068,
26463d356ab4STaniya Das 		.enable_mask = BIT(0),
26473d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
26483d356ab4STaniya Das 			.name = "gcc_usb3_prim_phy_com_aux_clk",
26493d356ab4STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
26503d356ab4STaniya Das 				&gcc_usb3_prim_phy_aux_clk_src.clkr.hw,
26513d356ab4STaniya Das 			},
26523d356ab4STaniya Das 			.num_parents = 1,
26533d356ab4STaniya Das 			.flags = CLK_SET_RATE_PARENT,
26543d356ab4STaniya Das 			.ops = &clk_branch2_ops,
26553d356ab4STaniya Das 		},
26563d356ab4STaniya Das 	},
26573d356ab4STaniya Das };
26583d356ab4STaniya Das 
26593d356ab4STaniya Das static struct clk_branch gcc_usb3_prim_phy_pipe_clk = {
26603d356ab4STaniya Das 	.halt_reg = 0x3906c,
26613d356ab4STaniya Das 	.halt_check = BRANCH_HALT_DELAY,
26623d356ab4STaniya Das 	.hwcg_reg = 0x3906c,
26633d356ab4STaniya Das 	.hwcg_bit = 1,
26643d356ab4STaniya Das 	.clkr = {
26653d356ab4STaniya Das 		.enable_reg = 0x3906c,
26663d356ab4STaniya Das 		.enable_mask = BIT(0),
26673d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
26683d356ab4STaniya Das 			.name = "gcc_usb3_prim_phy_pipe_clk",
26693d356ab4STaniya Das 			.parent_hws = (const struct clk_hw*[]) {
26703d356ab4STaniya Das 				&gcc_usb3_prim_phy_pipe_clk_src.clkr.hw,
26713d356ab4STaniya Das 			},
26723d356ab4STaniya Das 			.num_parents = 1,
26733d356ab4STaniya Das 			.flags = CLK_SET_RATE_PARENT,
26743d356ab4STaniya Das 			.ops = &clk_branch2_ops,
26753d356ab4STaniya Das 		},
26763d356ab4STaniya Das 	},
26773d356ab4STaniya Das };
26783d356ab4STaniya Das 
26793d356ab4STaniya Das static struct clk_branch gcc_video_axi0_clk = {
26803d356ab4STaniya Das 	.halt_reg = 0x32018,
26813d356ab4STaniya Das 	.halt_check = BRANCH_HALT_SKIP,
26823d356ab4STaniya Das 	.hwcg_reg = 0x32018,
26833d356ab4STaniya Das 	.hwcg_bit = 1,
26843d356ab4STaniya Das 	.clkr = {
26853d356ab4STaniya Das 		.enable_reg = 0x32018,
26863d356ab4STaniya Das 		.enable_mask = BIT(0),
26873d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
26883d356ab4STaniya Das 			.name = "gcc_video_axi0_clk",
26893d356ab4STaniya Das 			.ops = &clk_branch2_ops,
26903d356ab4STaniya Das 		},
26913d356ab4STaniya Das 	},
26923d356ab4STaniya Das };
26933d356ab4STaniya Das 
26943d356ab4STaniya Das static struct clk_branch gcc_video_axi1_clk = {
26953d356ab4STaniya Das 	.halt_reg = 0x32028,
26963d356ab4STaniya Das 	.halt_check = BRANCH_HALT_SKIP,
26973d356ab4STaniya Das 	.hwcg_reg = 0x32028,
26983d356ab4STaniya Das 	.hwcg_bit = 1,
26993d356ab4STaniya Das 	.clkr = {
27003d356ab4STaniya Das 		.enable_reg = 0x32028,
27013d356ab4STaniya Das 		.enable_mask = BIT(0),
27023d356ab4STaniya Das 		.hw.init = &(const struct clk_init_data) {
27033d356ab4STaniya Das 			.name = "gcc_video_axi1_clk",
27043d356ab4STaniya Das 			.ops = &clk_branch2_ops,
27053d356ab4STaniya Das 		},
27063d356ab4STaniya Das 	},
27073d356ab4STaniya Das };
27083d356ab4STaniya Das 
27093d356ab4STaniya Das static struct gdsc gcc_pcie_0_gdsc = {
27103d356ab4STaniya Das 	.gdscr = 0x6b004,
27113d356ab4STaniya Das 	.en_rest_wait_val = 0x2,
27123d356ab4STaniya Das 	.en_few_wait_val = 0x2,
27133d356ab4STaniya Das 	.clk_dis_wait_val = 0xf,
27143d356ab4STaniya Das 	.collapse_ctrl = 0x5214c,
27153d356ab4STaniya Das 	.collapse_mask = BIT(0),
27163d356ab4STaniya Das 	.pd = {
27173d356ab4STaniya Das 		.name = "gcc_pcie_0_gdsc",
27183d356ab4STaniya Das 	},
27193d356ab4STaniya Das 	.pwrsts = PWRSTS_OFF_ON,
27203d356ab4STaniya Das 	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
27213d356ab4STaniya Das };
27223d356ab4STaniya Das 
27233d356ab4STaniya Das static struct gdsc gcc_pcie_0_phy_gdsc = {
27243d356ab4STaniya Das 	.gdscr = 0x6c000,
27253d356ab4STaniya Das 	.en_rest_wait_val = 0x2,
27263d356ab4STaniya Das 	.en_few_wait_val = 0x2,
27273d356ab4STaniya Das 	.clk_dis_wait_val = 0x2,
27283d356ab4STaniya Das 	.collapse_ctrl = 0x5214c,
27293d356ab4STaniya Das 	.collapse_mask = BIT(2),
27303d356ab4STaniya Das 	.pd = {
27313d356ab4STaniya Das 		.name = "gcc_pcie_0_phy_gdsc",
27323d356ab4STaniya Das 	},
27333d356ab4STaniya Das 	.pwrsts = PWRSTS_OFF_ON,
27343d356ab4STaniya Das 	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
27353d356ab4STaniya Das };
27363d356ab4STaniya Das 
27373d356ab4STaniya Das static struct gdsc gcc_pcie_1_gdsc = {
27383d356ab4STaniya Das 	.gdscr = 0xac004,
27393d356ab4STaniya Das 	.en_rest_wait_val = 0x2,
27403d356ab4STaniya Das 	.en_few_wait_val = 0x2,
27413d356ab4STaniya Das 	.clk_dis_wait_val = 0xf,
27423d356ab4STaniya Das 	.collapse_ctrl = 0x5214c,
27433d356ab4STaniya Das 	.collapse_mask = BIT(3),
27443d356ab4STaniya Das 	.pd = {
27453d356ab4STaniya Das 		.name = "gcc_pcie_1_gdsc",
27463d356ab4STaniya Das 	},
27473d356ab4STaniya Das 	.pwrsts = PWRSTS_OFF_ON,
27483d356ab4STaniya Das 	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
27493d356ab4STaniya Das };
27503d356ab4STaniya Das 
27513d356ab4STaniya Das static struct gdsc gcc_pcie_1_phy_gdsc = {
27523d356ab4STaniya Das 	.gdscr = 0xad000,
27533d356ab4STaniya Das 	.en_rest_wait_val = 0x2,
27543d356ab4STaniya Das 	.en_few_wait_val = 0x2,
27553d356ab4STaniya Das 	.clk_dis_wait_val = 0x2,
27563d356ab4STaniya Das 	.collapse_ctrl = 0x5214c,
27573d356ab4STaniya Das 	.collapse_mask = BIT(4),
27583d356ab4STaniya Das 	.pd = {
27593d356ab4STaniya Das 		.name = "gcc_pcie_1_phy_gdsc",
27603d356ab4STaniya Das 	},
27613d356ab4STaniya Das 	.pwrsts = PWRSTS_OFF_ON,
27623d356ab4STaniya Das 	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
27633d356ab4STaniya Das };
27643d356ab4STaniya Das 
27653d356ab4STaniya Das static struct gdsc gcc_ufs_mem_phy_gdsc = {
27663d356ab4STaniya Das 	.gdscr = 0x9e000,
27673d356ab4STaniya Das 	.en_rest_wait_val = 0x2,
27683d356ab4STaniya Das 	.en_few_wait_val = 0x2,
27693d356ab4STaniya Das 	.clk_dis_wait_val = 0x2,
27703d356ab4STaniya Das 	.pd = {
27713d356ab4STaniya Das 		.name = "gcc_ufs_mem_phy_gdsc",
27723d356ab4STaniya Das 	},
27733d356ab4STaniya Das 	.pwrsts = PWRSTS_OFF_ON,
27743d356ab4STaniya Das 	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
27753d356ab4STaniya Das };
27763d356ab4STaniya Das 
27773d356ab4STaniya Das static struct gdsc gcc_ufs_phy_gdsc = {
27783d356ab4STaniya Das 	.gdscr = 0x77004,
27793d356ab4STaniya Das 	.en_rest_wait_val = 0x2,
27803d356ab4STaniya Das 	.en_few_wait_val = 0x2,
27813d356ab4STaniya Das 	.clk_dis_wait_val = 0xf,
27823d356ab4STaniya Das 	.pd = {
27833d356ab4STaniya Das 		.name = "gcc_ufs_phy_gdsc",
27843d356ab4STaniya Das 	},
27853d356ab4STaniya Das 	.pwrsts = PWRSTS_OFF_ON,
27863d356ab4STaniya Das 	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
27873d356ab4STaniya Das };
27883d356ab4STaniya Das 
27893d356ab4STaniya Das static struct gdsc gcc_usb30_prim_gdsc = {
27903d356ab4STaniya Das 	.gdscr = 0x39004,
27913d356ab4STaniya Das 	.en_rest_wait_val = 0x2,
27923d356ab4STaniya Das 	.en_few_wait_val = 0x2,
27933d356ab4STaniya Das 	.clk_dis_wait_val = 0xf,
27943d356ab4STaniya Das 	.pd = {
27953d356ab4STaniya Das 		.name = "gcc_usb30_prim_gdsc",
27963d356ab4STaniya Das 	},
27973d356ab4STaniya Das 	.pwrsts = PWRSTS_OFF_ON,
27983d356ab4STaniya Das 	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
27993d356ab4STaniya Das };
28003d356ab4STaniya Das 
28013d356ab4STaniya Das static struct gdsc gcc_usb3_phy_gdsc = {
28023d356ab4STaniya Das 	.gdscr = 0x50018,
28033d356ab4STaniya Das 	.en_rest_wait_val = 0x2,
28043d356ab4STaniya Das 	.en_few_wait_val = 0x2,
28053d356ab4STaniya Das 	.clk_dis_wait_val = 0x2,
28063d356ab4STaniya Das 	.pd = {
28073d356ab4STaniya Das 		.name = "gcc_usb3_phy_gdsc",
28083d356ab4STaniya Das 	},
28093d356ab4STaniya Das 	.pwrsts = PWRSTS_OFF_ON,
28103d356ab4STaniya Das 	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
28113d356ab4STaniya Das };
28123d356ab4STaniya Das 
28133d356ab4STaniya Das static struct clk_regmap *gcc_eliza_clocks[] = {
28143d356ab4STaniya Das 	[GCC_AGGRE_NOC_PCIE_AXI_CLK] = &gcc_aggre_noc_pcie_axi_clk.clkr,
28153d356ab4STaniya Das 	[GCC_AGGRE_UFS_PHY_AXI_CLK] = &gcc_aggre_ufs_phy_axi_clk.clkr,
28163d356ab4STaniya Das 	[GCC_AGGRE_USB3_PRIM_AXI_CLK] = &gcc_aggre_usb3_prim_axi_clk.clkr,
28173d356ab4STaniya Das 	[GCC_BOOT_ROM_AHB_CLK] = &gcc_boot_rom_ahb_clk.clkr,
28183d356ab4STaniya Das 	[GCC_CAMERA_HF_AXI_CLK] = &gcc_camera_hf_axi_clk.clkr,
28193d356ab4STaniya Das 	[GCC_CAMERA_SF_AXI_CLK] = &gcc_camera_sf_axi_clk.clkr,
28203d356ab4STaniya Das 	[GCC_CFG_NOC_PCIE_ANOC_AHB_CLK] = &gcc_cfg_noc_pcie_anoc_ahb_clk.clkr,
28213d356ab4STaniya Das 	[GCC_CFG_NOC_USB3_PRIM_AXI_CLK] = &gcc_cfg_noc_usb3_prim_axi_clk.clkr,
28223d356ab4STaniya Das 	[GCC_CNOC_PCIE_SF_AXI_CLK] = &gcc_cnoc_pcie_sf_axi_clk.clkr,
28233d356ab4STaniya Das 	[GCC_DDRSS_GPU_AXI_CLK] = &gcc_ddrss_gpu_axi_clk.clkr,
28243d356ab4STaniya Das 	[GCC_DDRSS_PCIE_SF_QTB_CLK] = &gcc_ddrss_pcie_sf_qtb_clk.clkr,
28253d356ab4STaniya Das 	[GCC_DISP_HF_AXI_CLK] = &gcc_disp_hf_axi_clk.clkr,
28263d356ab4STaniya Das 	[GCC_GP1_CLK] = &gcc_gp1_clk.clkr,
28273d356ab4STaniya Das 	[GCC_GP1_CLK_SRC] = &gcc_gp1_clk_src.clkr,
28283d356ab4STaniya Das 	[GCC_GP2_CLK] = &gcc_gp2_clk.clkr,
28293d356ab4STaniya Das 	[GCC_GP2_CLK_SRC] = &gcc_gp2_clk_src.clkr,
28303d356ab4STaniya Das 	[GCC_GP3_CLK] = &gcc_gp3_clk.clkr,
28313d356ab4STaniya Das 	[GCC_GP3_CLK_SRC] = &gcc_gp3_clk_src.clkr,
28323d356ab4STaniya Das 	[GCC_GPLL0] = &gcc_gpll0.clkr,
28333d356ab4STaniya Das 	[GCC_GPLL0_OUT_EVEN] = &gcc_gpll0_out_even.clkr,
28343d356ab4STaniya Das 	[GCC_GPLL4] = &gcc_gpll4.clkr,
28353d356ab4STaniya Das 	[GCC_GPLL7] = &gcc_gpll7.clkr,
28363d356ab4STaniya Das 	[GCC_GPLL8] = &gcc_gpll8.clkr,
28373d356ab4STaniya Das 	[GCC_GPLL9] = &gcc_gpll9.clkr,
28383d356ab4STaniya Das 	[GCC_GPU_GEMNOC_GFX_CLK] = &gcc_gpu_gemnoc_gfx_clk.clkr,
28393d356ab4STaniya Das 	[GCC_GPU_GPLL0_CPH_CLK_SRC] = &gcc_gpu_gpll0_cph_clk_src.clkr,
28403d356ab4STaniya Das 	[GCC_GPU_GPLL0_DIV_CPH_CLK_SRC] = &gcc_gpu_gpll0_div_cph_clk_src.clkr,
28413d356ab4STaniya Das 	[GCC_GPU_SMMU_VOTE_CLK] = &gcc_gpu_smmu_vote_clk.clkr,
28423d356ab4STaniya Das 	[GCC_MMU_TCU_VOTE_CLK] = &gcc_mmu_tcu_vote_clk.clkr,
28433d356ab4STaniya Das 	[GCC_PCIE_0_AUX_CLK] = &gcc_pcie_0_aux_clk.clkr,
28443d356ab4STaniya Das 	[GCC_PCIE_0_AUX_CLK_SRC] = &gcc_pcie_0_aux_clk_src.clkr,
28453d356ab4STaniya Das 	[GCC_PCIE_0_CFG_AHB_CLK] = &gcc_pcie_0_cfg_ahb_clk.clkr,
28463d356ab4STaniya Das 	[GCC_PCIE_0_MSTR_AXI_CLK] = &gcc_pcie_0_mstr_axi_clk.clkr,
28473d356ab4STaniya Das 	[GCC_PCIE_0_PHY_RCHNG_CLK] = &gcc_pcie_0_phy_rchng_clk.clkr,
28483d356ab4STaniya Das 	[GCC_PCIE_0_PHY_RCHNG_CLK_SRC] = &gcc_pcie_0_phy_rchng_clk_src.clkr,
28493d356ab4STaniya Das 	[GCC_PCIE_0_PIPE_CLK] = &gcc_pcie_0_pipe_clk.clkr,
28503d356ab4STaniya Das 	[GCC_PCIE_0_PIPE_CLK_SRC] = &gcc_pcie_0_pipe_clk_src.clkr,
28513d356ab4STaniya Das 	[GCC_PCIE_0_PIPE_DIV2_CLK] = &gcc_pcie_0_pipe_div2_clk.clkr,
28523d356ab4STaniya Das 	[GCC_PCIE_0_PIPE_DIV2_CLK_SRC] = &gcc_pcie_0_pipe_div2_clk_src.clkr,
28533d356ab4STaniya Das 	[GCC_PCIE_0_SLV_AXI_CLK] = &gcc_pcie_0_slv_axi_clk.clkr,
28543d356ab4STaniya Das 	[GCC_PCIE_0_SLV_Q2A_AXI_CLK] = &gcc_pcie_0_slv_q2a_axi_clk.clkr,
28553d356ab4STaniya Das 	[GCC_PCIE_1_AUX_CLK] = &gcc_pcie_1_aux_clk.clkr,
28563d356ab4STaniya Das 	[GCC_PCIE_1_AUX_CLK_SRC] = &gcc_pcie_1_aux_clk_src.clkr,
28573d356ab4STaniya Das 	[GCC_PCIE_1_CFG_AHB_CLK] = &gcc_pcie_1_cfg_ahb_clk.clkr,
28583d356ab4STaniya Das 	[GCC_PCIE_1_MSTR_AXI_CLK] = &gcc_pcie_1_mstr_axi_clk.clkr,
28593d356ab4STaniya Das 	[GCC_PCIE_1_PHY_RCHNG_CLK] = &gcc_pcie_1_phy_rchng_clk.clkr,
28603d356ab4STaniya Das 	[GCC_PCIE_1_PHY_RCHNG_CLK_SRC] = &gcc_pcie_1_phy_rchng_clk_src.clkr,
28613d356ab4STaniya Das 	[GCC_PCIE_1_PIPE_CLK] = &gcc_pcie_1_pipe_clk.clkr,
28623d356ab4STaniya Das 	[GCC_PCIE_1_PIPE_CLK_SRC] = &gcc_pcie_1_pipe_clk_src.clkr,
28633d356ab4STaniya Das 	[GCC_PCIE_1_PIPE_DIV2_CLK] = &gcc_pcie_1_pipe_div2_clk.clkr,
28643d356ab4STaniya Das 	[GCC_PCIE_1_PIPE_DIV2_CLK_SRC] = &gcc_pcie_1_pipe_div2_clk_src.clkr,
28653d356ab4STaniya Das 	[GCC_PCIE_1_SLV_AXI_CLK] = &gcc_pcie_1_slv_axi_clk.clkr,
28663d356ab4STaniya Das 	[GCC_PCIE_1_SLV_Q2A_AXI_CLK] = &gcc_pcie_1_slv_q2a_axi_clk.clkr,
28673d356ab4STaniya Das 	[GCC_PDM2_CLK] = &gcc_pdm2_clk.clkr,
28683d356ab4STaniya Das 	[GCC_PDM2_CLK_SRC] = &gcc_pdm2_clk_src.clkr,
28693d356ab4STaniya Das 	[GCC_PDM_AHB_CLK] = &gcc_pdm_ahb_clk.clkr,
28703d356ab4STaniya Das 	[GCC_PDM_XO4_CLK] = &gcc_pdm_xo4_clk.clkr,
28713d356ab4STaniya Das 	[GCC_QMIP_CAMERA_CMD_AHB_CLK] = &gcc_qmip_camera_cmd_ahb_clk.clkr,
28723d356ab4STaniya Das 	[GCC_QMIP_CAMERA_NRT_AHB_CLK] = &gcc_qmip_camera_nrt_ahb_clk.clkr,
28733d356ab4STaniya Das 	[GCC_QMIP_CAMERA_RT_AHB_CLK] = &gcc_qmip_camera_rt_ahb_clk.clkr,
28743d356ab4STaniya Das 	[GCC_QMIP_GPU_AHB_CLK] = &gcc_qmip_gpu_ahb_clk.clkr,
28753d356ab4STaniya Das 	[GCC_QMIP_PCIE_AHB_CLK] = &gcc_qmip_pcie_ahb_clk.clkr,
28763d356ab4STaniya Das 	[GCC_QMIP_VIDEO_V_CPU_AHB_CLK] = &gcc_qmip_video_v_cpu_ahb_clk.clkr,
28773d356ab4STaniya Das 	[GCC_QMIP_VIDEO_VCODEC_AHB_CLK] = &gcc_qmip_video_vcodec_ahb_clk.clkr,
28783d356ab4STaniya Das 	[GCC_QUPV3_WRAP1_CORE_2X_CLK] = &gcc_qupv3_wrap1_core_2x_clk.clkr,
28793d356ab4STaniya Das 	[GCC_QUPV3_WRAP1_CORE_CLK] = &gcc_qupv3_wrap1_core_clk.clkr,
28803d356ab4STaniya Das 	[GCC_QUPV3_WRAP1_QSPI_REF_CLK] = &gcc_qupv3_wrap1_qspi_ref_clk.clkr,
28813d356ab4STaniya Das 	[GCC_QUPV3_WRAP1_QSPI_REF_CLK_SRC] = &gcc_qupv3_wrap1_qspi_ref_clk_src.clkr,
28823d356ab4STaniya Das 	[GCC_QUPV3_WRAP1_S0_CLK] = &gcc_qupv3_wrap1_s0_clk.clkr,
28833d356ab4STaniya Das 	[GCC_QUPV3_WRAP1_S0_CLK_SRC] = &gcc_qupv3_wrap1_s0_clk_src.clkr,
28843d356ab4STaniya Das 	[GCC_QUPV3_WRAP1_S1_CLK] = &gcc_qupv3_wrap1_s1_clk.clkr,
28853d356ab4STaniya Das 	[GCC_QUPV3_WRAP1_S1_CLK_SRC] = &gcc_qupv3_wrap1_s1_clk_src.clkr,
28863d356ab4STaniya Das 	[GCC_QUPV3_WRAP1_S2_CLK] = &gcc_qupv3_wrap1_s2_clk.clkr,
28873d356ab4STaniya Das 	[GCC_QUPV3_WRAP1_S2_CLK_SRC] = &gcc_qupv3_wrap1_s2_clk_src.clkr,
28883d356ab4STaniya Das 	[GCC_QUPV3_WRAP1_S3_CLK] = &gcc_qupv3_wrap1_s3_clk.clkr,
28893d356ab4STaniya Das 	[GCC_QUPV3_WRAP1_S3_CLK_SRC] = &gcc_qupv3_wrap1_s3_clk_src.clkr,
28903d356ab4STaniya Das 	[GCC_QUPV3_WRAP1_S4_CLK] = &gcc_qupv3_wrap1_s4_clk.clkr,
28913d356ab4STaniya Das 	[GCC_QUPV3_WRAP1_S4_CLK_SRC] = &gcc_qupv3_wrap1_s4_clk_src.clkr,
28923d356ab4STaniya Das 	[GCC_QUPV3_WRAP1_S5_CLK] = &gcc_qupv3_wrap1_s5_clk.clkr,
28933d356ab4STaniya Das 	[GCC_QUPV3_WRAP1_S5_CLK_SRC] = &gcc_qupv3_wrap1_s5_clk_src.clkr,
28943d356ab4STaniya Das 	[GCC_QUPV3_WRAP1_S6_CLK] = &gcc_qupv3_wrap1_s6_clk.clkr,
28953d356ab4STaniya Das 	[GCC_QUPV3_WRAP1_S6_CLK_SRC] = &gcc_qupv3_wrap1_s6_clk_src.clkr,
28963d356ab4STaniya Das 	[GCC_QUPV3_WRAP1_S7_CLK] = &gcc_qupv3_wrap1_s7_clk.clkr,
28973d356ab4STaniya Das 	[GCC_QUPV3_WRAP1_S7_CLK_SRC] = &gcc_qupv3_wrap1_s7_clk_src.clkr,
28983d356ab4STaniya Das 	[GCC_QUPV3_WRAP2_CORE_2X_CLK] = &gcc_qupv3_wrap2_core_2x_clk.clkr,
28993d356ab4STaniya Das 	[GCC_QUPV3_WRAP2_CORE_CLK] = &gcc_qupv3_wrap2_core_clk.clkr,
29003d356ab4STaniya Das 	[GCC_QUPV3_WRAP2_S0_CLK] = &gcc_qupv3_wrap2_s0_clk.clkr,
29013d356ab4STaniya Das 	[GCC_QUPV3_WRAP2_S0_CLK_SRC] = &gcc_qupv3_wrap2_s0_clk_src.clkr,
29023d356ab4STaniya Das 	[GCC_QUPV3_WRAP2_S1_CLK] = &gcc_qupv3_wrap2_s1_clk.clkr,
29033d356ab4STaniya Das 	[GCC_QUPV3_WRAP2_S1_CLK_SRC] = &gcc_qupv3_wrap2_s1_clk_src.clkr,
29043d356ab4STaniya Das 	[GCC_QUPV3_WRAP2_S2_CLK] = &gcc_qupv3_wrap2_s2_clk.clkr,
29053d356ab4STaniya Das 	[GCC_QUPV3_WRAP2_S2_CLK_SRC] = &gcc_qupv3_wrap2_s2_clk_src.clkr,
29063d356ab4STaniya Das 	[GCC_QUPV3_WRAP2_S3_CLK] = &gcc_qupv3_wrap2_s3_clk.clkr,
29073d356ab4STaniya Das 	[GCC_QUPV3_WRAP2_S3_CLK_SRC] = &gcc_qupv3_wrap2_s3_clk_src.clkr,
29083d356ab4STaniya Das 	[GCC_QUPV3_WRAP2_S4_CLK] = &gcc_qupv3_wrap2_s4_clk.clkr,
29093d356ab4STaniya Das 	[GCC_QUPV3_WRAP2_S4_CLK_SRC] = &gcc_qupv3_wrap2_s4_clk_src.clkr,
29103d356ab4STaniya Das 	[GCC_QUPV3_WRAP2_S5_CLK] = &gcc_qupv3_wrap2_s5_clk.clkr,
29113d356ab4STaniya Das 	[GCC_QUPV3_WRAP2_S5_CLK_SRC] = &gcc_qupv3_wrap2_s5_clk_src.clkr,
29123d356ab4STaniya Das 	[GCC_QUPV3_WRAP2_S6_CLK] = &gcc_qupv3_wrap2_s6_clk.clkr,
29133d356ab4STaniya Das 	[GCC_QUPV3_WRAP2_S6_CLK_SRC] = &gcc_qupv3_wrap2_s6_clk_src.clkr,
29143d356ab4STaniya Das 	[GCC_QUPV3_WRAP2_S7_CLK] = &gcc_qupv3_wrap2_s7_clk.clkr,
29153d356ab4STaniya Das 	[GCC_QUPV3_WRAP2_S7_CLK_SRC] = &gcc_qupv3_wrap2_s7_clk_src.clkr,
29163d356ab4STaniya Das 	[GCC_QUPV3_WRAP_1_M_AHB_CLK] = &gcc_qupv3_wrap_1_m_ahb_clk.clkr,
29173d356ab4STaniya Das 	[GCC_QUPV3_WRAP_1_S_AHB_CLK] = &gcc_qupv3_wrap_1_s_ahb_clk.clkr,
29183d356ab4STaniya Das 	[GCC_QUPV3_WRAP_2_M_AHB_CLK] = &gcc_qupv3_wrap_2_m_ahb_clk.clkr,
29193d356ab4STaniya Das 	[GCC_QUPV3_WRAP_2_S_AHB_CLK] = &gcc_qupv3_wrap_2_s_ahb_clk.clkr,
29203d356ab4STaniya Das 	[GCC_SDCC1_AHB_CLK] = &gcc_sdcc1_ahb_clk.clkr,
29213d356ab4STaniya Das 	[GCC_SDCC1_APPS_CLK] = &gcc_sdcc1_apps_clk.clkr,
29223d356ab4STaniya Das 	[GCC_SDCC1_APPS_CLK_SRC] = &gcc_sdcc1_apps_clk_src.clkr,
29233d356ab4STaniya Das 	[GCC_SDCC1_ICE_CORE_CLK] = &gcc_sdcc1_ice_core_clk.clkr,
29243d356ab4STaniya Das 	[GCC_SDCC1_ICE_CORE_CLK_SRC] = &gcc_sdcc1_ice_core_clk_src.clkr,
29253d356ab4STaniya Das 	[GCC_SDCC2_AHB_CLK] = &gcc_sdcc2_ahb_clk.clkr,
29263d356ab4STaniya Das 	[GCC_SDCC2_APPS_CLK] = &gcc_sdcc2_apps_clk.clkr,
29273d356ab4STaniya Das 	[GCC_SDCC2_APPS_CLK_SRC] = &gcc_sdcc2_apps_clk_src.clkr,
29283d356ab4STaniya Das 	[GCC_UFS_PHY_AHB_CLK] = &gcc_ufs_phy_ahb_clk.clkr,
29293d356ab4STaniya Das 	[GCC_UFS_PHY_AXI_CLK] = &gcc_ufs_phy_axi_clk.clkr,
29303d356ab4STaniya Das 	[GCC_UFS_PHY_AXI_CLK_SRC] = &gcc_ufs_phy_axi_clk_src.clkr,
29313d356ab4STaniya Das 	[GCC_UFS_PHY_ICE_CORE_CLK] = &gcc_ufs_phy_ice_core_clk.clkr,
29323d356ab4STaniya Das 	[GCC_UFS_PHY_ICE_CORE_CLK_SRC] = &gcc_ufs_phy_ice_core_clk_src.clkr,
29333d356ab4STaniya Das 	[GCC_UFS_PHY_PHY_AUX_CLK] = &gcc_ufs_phy_phy_aux_clk.clkr,
29343d356ab4STaniya Das 	[GCC_UFS_PHY_PHY_AUX_CLK_SRC] = &gcc_ufs_phy_phy_aux_clk_src.clkr,
29353d356ab4STaniya Das 	[GCC_UFS_PHY_RX_SYMBOL_0_CLK] = &gcc_ufs_phy_rx_symbol_0_clk.clkr,
29363d356ab4STaniya Das 	[GCC_UFS_PHY_RX_SYMBOL_0_CLK_SRC] = &gcc_ufs_phy_rx_symbol_0_clk_src.clkr,
29373d356ab4STaniya Das 	[GCC_UFS_PHY_RX_SYMBOL_1_CLK] = &gcc_ufs_phy_rx_symbol_1_clk.clkr,
29383d356ab4STaniya Das 	[GCC_UFS_PHY_RX_SYMBOL_1_CLK_SRC] = &gcc_ufs_phy_rx_symbol_1_clk_src.clkr,
29393d356ab4STaniya Das 	[GCC_UFS_PHY_TX_SYMBOL_0_CLK] = &gcc_ufs_phy_tx_symbol_0_clk.clkr,
29403d356ab4STaniya Das 	[GCC_UFS_PHY_TX_SYMBOL_0_CLK_SRC] = &gcc_ufs_phy_tx_symbol_0_clk_src.clkr,
29413d356ab4STaniya Das 	[GCC_UFS_PHY_UNIPRO_CORE_CLK] = &gcc_ufs_phy_unipro_core_clk.clkr,
29423d356ab4STaniya Das 	[GCC_UFS_PHY_UNIPRO_CORE_CLK_SRC] = &gcc_ufs_phy_unipro_core_clk_src.clkr,
29433d356ab4STaniya Das 	[GCC_USB30_PRIM_ATB_CLK] = &gcc_usb30_prim_atb_clk.clkr,
29443d356ab4STaniya Das 	[GCC_USB30_PRIM_MASTER_CLK] = &gcc_usb30_prim_master_clk.clkr,
29453d356ab4STaniya Das 	[GCC_USB30_PRIM_MASTER_CLK_SRC] = &gcc_usb30_prim_master_clk_src.clkr,
29463d356ab4STaniya Das 	[GCC_USB30_PRIM_MOCK_UTMI_CLK] = &gcc_usb30_prim_mock_utmi_clk.clkr,
29473d356ab4STaniya Das 	[GCC_USB30_PRIM_MOCK_UTMI_CLK_SRC] = &gcc_usb30_prim_mock_utmi_clk_src.clkr,
29483d356ab4STaniya Das 	[GCC_USB30_PRIM_MOCK_UTMI_POSTDIV_CLK_SRC] = &gcc_usb30_prim_mock_utmi_postdiv_clk_src.clkr,
29493d356ab4STaniya Das 	[GCC_USB30_PRIM_SLEEP_CLK] = &gcc_usb30_prim_sleep_clk.clkr,
29503d356ab4STaniya Das 	[GCC_USB3_PRIM_PHY_AUX_CLK] = &gcc_usb3_prim_phy_aux_clk.clkr,
29513d356ab4STaniya Das 	[GCC_USB3_PRIM_PHY_AUX_CLK_SRC] = &gcc_usb3_prim_phy_aux_clk_src.clkr,
29523d356ab4STaniya Das 	[GCC_USB3_PRIM_PHY_COM_AUX_CLK] = &gcc_usb3_prim_phy_com_aux_clk.clkr,
29533d356ab4STaniya Das 	[GCC_USB3_PRIM_PHY_PIPE_CLK] = &gcc_usb3_prim_phy_pipe_clk.clkr,
29543d356ab4STaniya Das 	[GCC_USB3_PRIM_PHY_PIPE_CLK_SRC] = &gcc_usb3_prim_phy_pipe_clk_src.clkr,
29553d356ab4STaniya Das 	[GCC_VIDEO_AXI0_CLK] = &gcc_video_axi0_clk.clkr,
29563d356ab4STaniya Das 	[GCC_VIDEO_AXI1_CLK] = &gcc_video_axi1_clk.clkr,
29573d356ab4STaniya Das };
29583d356ab4STaniya Das 
29593d356ab4STaniya Das static struct gdsc *gcc_eliza_gdscs[] = {
29603d356ab4STaniya Das 	[GCC_PCIE_0_GDSC] = &gcc_pcie_0_gdsc,
29613d356ab4STaniya Das 	[GCC_PCIE_0_PHY_GDSC] = &gcc_pcie_0_phy_gdsc,
29623d356ab4STaniya Das 	[GCC_PCIE_1_GDSC] = &gcc_pcie_1_gdsc,
29633d356ab4STaniya Das 	[GCC_PCIE_1_PHY_GDSC] = &gcc_pcie_1_phy_gdsc,
29643d356ab4STaniya Das 	[GCC_UFS_MEM_PHY_GDSC] = &gcc_ufs_mem_phy_gdsc,
29653d356ab4STaniya Das 	[GCC_UFS_PHY_GDSC] = &gcc_ufs_phy_gdsc,
29663d356ab4STaniya Das 	[GCC_USB30_PRIM_GDSC] = &gcc_usb30_prim_gdsc,
29673d356ab4STaniya Das 	[GCC_USB3_PHY_GDSC] = &gcc_usb3_phy_gdsc,
29683d356ab4STaniya Das };
29693d356ab4STaniya Das 
29703d356ab4STaniya Das static const struct qcom_reset_map gcc_eliza_resets[] = {
29713d356ab4STaniya Das 	[GCC_CAMERA_BCR] = { 0x26000 },
29723d356ab4STaniya Das 	[GCC_DISPLAY_BCR] = { 0x27000 },
29733d356ab4STaniya Das 	[GCC_GPU_BCR] = { 0x71000 },
29743d356ab4STaniya Das 	[GCC_PCIE_0_BCR] = { 0x6b000 },
29753d356ab4STaniya Das 	[GCC_PCIE_0_LINK_DOWN_BCR] = { 0x6c014 },
29763d356ab4STaniya Das 	[GCC_PCIE_0_NOCSR_COM_PHY_BCR] = { 0x6c020 },
29773d356ab4STaniya Das 	[GCC_PCIE_0_PHY_BCR] = { 0x6c01c },
29783d356ab4STaniya Das 	[GCC_PCIE_0_PHY_NOCSR_COM_PHY_BCR] = { 0x6c028 },
29793d356ab4STaniya Das 	[GCC_PCIE_1_BCR] = { 0xac000 },
29803d356ab4STaniya Das 	[GCC_PCIE_1_LINK_DOWN_BCR] = { 0x8e014 },
29813d356ab4STaniya Das 	[GCC_PCIE_1_NOCSR_COM_PHY_BCR] = { 0x8e020 },
29823d356ab4STaniya Das 	[GCC_PCIE_1_PHY_BCR] = { 0x8e01c },
29833d356ab4STaniya Das 	[GCC_PCIE_1_PHY_NOCSR_COM_PHY_BCR] = { 0x8e024 },
29843d356ab4STaniya Das 	[GCC_PCIE_PHY_BCR] = { 0x6f000 },
29853d356ab4STaniya Das 	[GCC_PCIE_PHY_CFG_AHB_BCR] = { 0x6f00c },
29863d356ab4STaniya Das 	[GCC_PCIE_PHY_COM_BCR] = { 0x6f010 },
29873d356ab4STaniya Das 	[GCC_PCIE_RSCC_BCR] = { 0x11000 },
29883d356ab4STaniya Das 	[GCC_PDM_BCR] = { 0x33000 },
29893d356ab4STaniya Das 	[GCC_QUPV3_WRAPPER_1_BCR] = { 0x18000 },
29903d356ab4STaniya Das 	[GCC_QUPV3_WRAPPER_2_BCR] = { 0x1e000 },
29913d356ab4STaniya Das 	[GCC_QUSB2PHY_PRIM_BCR] = { 0x12000 },
29923d356ab4STaniya Das 	[GCC_QUSB2PHY_SEC_BCR] = { 0x12004 },
29933d356ab4STaniya Das 	[GCC_SDCC1_BCR] = { 0xa9000 },
29943d356ab4STaniya Das 	[GCC_SDCC2_BCR] = { 0x14000 },
29953d356ab4STaniya Das 	[GCC_UFS_PHY_BCR] = { 0x77000 },
29963d356ab4STaniya Das 	[GCC_USB30_PRIM_BCR] = { 0x39000 },
29973d356ab4STaniya Das 	[GCC_USB3_DP_PHY_PRIM_BCR] = { 0x50008 },
29983d356ab4STaniya Das 	[GCC_USB3_DP_PHY_SEC_BCR] = { 0x50014 },
29993d356ab4STaniya Das 	[GCC_USB3_PHY_PRIM_BCR] = { 0x50000 },
30003d356ab4STaniya Das 	[GCC_USB3_PHY_SEC_BCR] = { 0x5000c },
30013d356ab4STaniya Das 	[GCC_USB3PHY_PHY_PRIM_BCR] = { 0x50004 },
30023d356ab4STaniya Das 	[GCC_USB3PHY_PHY_SEC_BCR] = { 0x50010 },
30033d356ab4STaniya Das 	[GCC_VIDEO_AXI0_CLK_ARES] = { 0x32018, 2 },
30043d356ab4STaniya Das 	[GCC_VIDEO_AXI1_CLK_ARES] = { 0x32028, 2 },
30053d356ab4STaniya Das 	[GCC_VIDEO_BCR] = { 0x32000 },
30063d356ab4STaniya Das };
30073d356ab4STaniya Das 
3008*87df31eaSKrzysztof Kozlowski static const u32 gcc_eliza_critical_cbcrs[] = {
30093d356ab4STaniya Das 	0xa0004, /* GCC_CAM_BIST_MCLK_AHB_CLK */
30103d356ab4STaniya Das 	0x26004, /* GCC_CAMERA_AHB_CLK */
30113d356ab4STaniya Das 	0x26034, /* GCC_CAMERA_XO_CLK */
30123d356ab4STaniya Das 	0x27004, /* GCC_DISP_AHB_CLK */
30133d356ab4STaniya Das 	0x71004, /* GCC_GPU_CFG_AHB_CLK */
30143d356ab4STaniya Das 	0x52010, /* GCC_PCIE_RSCC_CFG_AHB_CLK */
30153d356ab4STaniya Das 	0x52010, /* GCC_PCIE_RSCC_XO_CLK */
30163d356ab4STaniya Das 	0x32004, /* GCC_VIDEO_AHB_CLK */
30173d356ab4STaniya Das 	0x32038, /* GCC_VIDEO_XO_CLK */
30183d356ab4STaniya Das };
30193d356ab4STaniya Das 
30203d356ab4STaniya Das static const struct clk_rcg_dfs_data gcc_eliza_dfs_clocks[] = {
30213d356ab4STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap1_qspi_ref_clk_src),
30223d356ab4STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s0_clk_src),
30233d356ab4STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s1_clk_src),
30243d356ab4STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s3_clk_src),
30253d356ab4STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s4_clk_src),
30263d356ab4STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s5_clk_src),
30273d356ab4STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s6_clk_src),
30283d356ab4STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s7_clk_src),
30293d356ab4STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap2_s0_clk_src),
30303d356ab4STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap2_s1_clk_src),
30313d356ab4STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap2_s2_clk_src),
30323d356ab4STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap2_s3_clk_src),
30333d356ab4STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap2_s4_clk_src),
30343d356ab4STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap2_s5_clk_src),
30353d356ab4STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap2_s6_clk_src),
30363d356ab4STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap2_s7_clk_src),
30373d356ab4STaniya Das };
30383d356ab4STaniya Das 
30393d356ab4STaniya Das static const struct regmap_config gcc_eliza_regmap_config = {
30403d356ab4STaniya Das 	.reg_bits = 32,
30413d356ab4STaniya Das 	.reg_stride = 4,
30423d356ab4STaniya Das 	.val_bits = 32,
30433d356ab4STaniya Das 	.max_register = 0x1f41f0,
30443d356ab4STaniya Das 	.fast_io = true,
30453d356ab4STaniya Das };
30463d356ab4STaniya Das 
30473d356ab4STaniya Das static void clk_eliza_regs_configure(struct device *dev, struct regmap *regmap)
30483d356ab4STaniya Das {
30493006f7fbSAbel Vesa 	/* FORCE_MEM_CORE_ON for ufs phy ice core and gcc ufs phy axi clocks  */
30503d356ab4STaniya Das 	qcom_branch_set_force_mem_core(regmap, gcc_ufs_phy_ice_core_clk, true);
30513006f7fbSAbel Vesa 	qcom_branch_set_force_mem_core(regmap, gcc_ufs_phy_axi_clk, true);
30523d356ab4STaniya Das }
30533d356ab4STaniya Das 
3054573ddd0dSKrzysztof Kozlowski static const struct qcom_cc_driver_data gcc_eliza_driver_data = {
30553d356ab4STaniya Das 	.clk_cbcrs = gcc_eliza_critical_cbcrs,
30563d356ab4STaniya Das 	.num_clk_cbcrs = ARRAY_SIZE(gcc_eliza_critical_cbcrs),
30573d356ab4STaniya Das 	.dfs_rcgs = gcc_eliza_dfs_clocks,
30583d356ab4STaniya Das 	.num_dfs_rcgs = ARRAY_SIZE(gcc_eliza_dfs_clocks),
30593d356ab4STaniya Das 	.clk_regs_configure = clk_eliza_regs_configure,
30603d356ab4STaniya Das };
30613d356ab4STaniya Das 
30623d356ab4STaniya Das static const struct qcom_cc_desc gcc_eliza_desc = {
30633d356ab4STaniya Das 	.config = &gcc_eliza_regmap_config,
30643d356ab4STaniya Das 	.clks = gcc_eliza_clocks,
30653d356ab4STaniya Das 	.num_clks = ARRAY_SIZE(gcc_eliza_clocks),
30663d356ab4STaniya Das 	.resets = gcc_eliza_resets,
30673d356ab4STaniya Das 	.num_resets = ARRAY_SIZE(gcc_eliza_resets),
30683d356ab4STaniya Das 	.gdscs = gcc_eliza_gdscs,
30693d356ab4STaniya Das 	.num_gdscs = ARRAY_SIZE(gcc_eliza_gdscs),
30703d356ab4STaniya Das 	.driver_data = &gcc_eliza_driver_data,
30713d356ab4STaniya Das };
30723d356ab4STaniya Das 
30733d356ab4STaniya Das static const struct of_device_id gcc_eliza_match_table[] = {
30743d356ab4STaniya Das 	{ .compatible = "qcom,eliza-gcc" },
30753d356ab4STaniya Das 	{ }
30763d356ab4STaniya Das };
30773d356ab4STaniya Das MODULE_DEVICE_TABLE(of, gcc_eliza_match_table);
30783d356ab4STaniya Das 
30793d356ab4STaniya Das static int gcc_eliza_probe(struct platform_device *pdev)
30803d356ab4STaniya Das {
30813d356ab4STaniya Das 	return qcom_cc_probe(pdev, &gcc_eliza_desc);
30823d356ab4STaniya Das }
30833d356ab4STaniya Das 
30843d356ab4STaniya Das static struct platform_driver gcc_eliza_driver = {
30853d356ab4STaniya Das 	.probe = gcc_eliza_probe,
30863d356ab4STaniya Das 	.driver = {
30873d356ab4STaniya Das 		.name = "gcc-eliza",
30883d356ab4STaniya Das 		.of_match_table = gcc_eliza_match_table,
30893d356ab4STaniya Das 	},
30903d356ab4STaniya Das };
30913d356ab4STaniya Das 
30923d356ab4STaniya Das static int __init gcc_eliza_init(void)
30933d356ab4STaniya Das {
30943d356ab4STaniya Das 	return platform_driver_register(&gcc_eliza_driver);
30953d356ab4STaniya Das }
30963d356ab4STaniya Das subsys_initcall(gcc_eliza_init);
30973d356ab4STaniya Das 
30983d356ab4STaniya Das static void __exit gcc_eliza_exit(void)
30993d356ab4STaniya Das {
31003d356ab4STaniya Das 	platform_driver_unregister(&gcc_eliza_driver);
31013d356ab4STaniya Das }
31023d356ab4STaniya Das module_exit(gcc_eliza_exit);
31033d356ab4STaniya Das 
31043d356ab4STaniya Das MODULE_DESCRIPTION("QTI GCC Eliza Driver");
31053d356ab4STaniya Das MODULE_LICENSE("GPL");
3106