xref: /linux/drivers/clk/qcom/gcc-sdm845.c (revision 5e4b7e82d497580bc430576c4c9bce157dd72512)
106391eddSTaniya Das // SPDX-License-Identifier: GPL-2.0
206391eddSTaniya Das /*
306391eddSTaniya Das  * Copyright (c) 2018, The Linux Foundation. All rights reserved.
406391eddSTaniya Das  */
506391eddSTaniya Das 
606391eddSTaniya Das #include <linux/kernel.h>
706391eddSTaniya Das #include <linux/bitops.h>
806391eddSTaniya Das #include <linux/err.h>
906391eddSTaniya Das #include <linux/platform_device.h>
1006391eddSTaniya Das #include <linux/module.h>
1106391eddSTaniya Das #include <linux/of.h>
1206391eddSTaniya Das #include <linux/of_device.h>
1306391eddSTaniya Das #include <linux/clk-provider.h>
1406391eddSTaniya Das #include <linux/regmap.h>
1506391eddSTaniya Das #include <linux/reset-controller.h>
1606391eddSTaniya Das 
1706391eddSTaniya Das #include <dt-bindings/clock/qcom,gcc-sdm845.h>
1806391eddSTaniya Das 
1906391eddSTaniya Das #include "common.h"
2006391eddSTaniya Das #include "clk-regmap.h"
2106391eddSTaniya Das #include "clk-pll.h"
2206391eddSTaniya Das #include "clk-rcg.h"
2306391eddSTaniya Das #include "clk-branch.h"
2406391eddSTaniya Das #include "clk-alpha-pll.h"
2506391eddSTaniya Das #include "gdsc.h"
2606391eddSTaniya Das #include "reset.h"
2706391eddSTaniya Das 
2806391eddSTaniya Das enum {
2906391eddSTaniya Das 	P_BI_TCXO,
3006391eddSTaniya Das 	P_AUD_REF_CLK,
3106391eddSTaniya Das 	P_CORE_BI_PLL_TEST_SE,
3206391eddSTaniya Das 	P_GPLL0_OUT_EVEN,
3306391eddSTaniya Das 	P_GPLL0_OUT_MAIN,
3406391eddSTaniya Das 	P_GPLL4_OUT_MAIN,
3506391eddSTaniya Das 	P_SLEEP_CLK,
3606391eddSTaniya Das };
3706391eddSTaniya Das 
3806391eddSTaniya Das static const struct parent_map gcc_parent_map_0[] = {
3906391eddSTaniya Das 	{ P_BI_TCXO, 0 },
4006391eddSTaniya Das 	{ P_GPLL0_OUT_MAIN, 1 },
4106391eddSTaniya Das 	{ P_GPLL0_OUT_EVEN, 6 },
4206391eddSTaniya Das 	{ P_CORE_BI_PLL_TEST_SE, 7 },
4306391eddSTaniya Das };
4406391eddSTaniya Das 
4506391eddSTaniya Das static const char * const gcc_parent_names_0[] = {
4606391eddSTaniya Das 	"bi_tcxo",
4706391eddSTaniya Das 	"gpll0",
4806391eddSTaniya Das 	"gpll0_out_even",
4906391eddSTaniya Das 	"core_bi_pll_test_se",
5006391eddSTaniya Das };
5106391eddSTaniya Das 
5206391eddSTaniya Das static const struct parent_map gcc_parent_map_1[] = {
5306391eddSTaniya Das 	{ P_BI_TCXO, 0 },
5406391eddSTaniya Das 	{ P_GPLL0_OUT_MAIN, 1 },
5506391eddSTaniya Das 	{ P_SLEEP_CLK, 5 },
5606391eddSTaniya Das 	{ P_GPLL0_OUT_EVEN, 6 },
5706391eddSTaniya Das 	{ P_CORE_BI_PLL_TEST_SE, 7 },
5806391eddSTaniya Das };
5906391eddSTaniya Das 
6006391eddSTaniya Das static const char * const gcc_parent_names_1[] = {
6106391eddSTaniya Das 	"bi_tcxo",
6206391eddSTaniya Das 	"gpll0",
6306391eddSTaniya Das 	"core_pi_sleep_clk",
6406391eddSTaniya Das 	"gpll0_out_even",
6506391eddSTaniya Das 	"core_bi_pll_test_se",
6606391eddSTaniya Das };
6706391eddSTaniya Das 
6806391eddSTaniya Das static const struct parent_map gcc_parent_map_2[] = {
6906391eddSTaniya Das 	{ P_BI_TCXO, 0 },
7006391eddSTaniya Das 	{ P_SLEEP_CLK, 5 },
7106391eddSTaniya Das 	{ P_CORE_BI_PLL_TEST_SE, 7 },
7206391eddSTaniya Das };
7306391eddSTaniya Das 
7406391eddSTaniya Das static const char * const gcc_parent_names_2[] = {
7506391eddSTaniya Das 	"bi_tcxo",
7606391eddSTaniya Das 	"core_pi_sleep_clk",
7706391eddSTaniya Das 	"core_bi_pll_test_se",
7806391eddSTaniya Das };
7906391eddSTaniya Das 
8006391eddSTaniya Das static const struct parent_map gcc_parent_map_3[] = {
8106391eddSTaniya Das 	{ P_BI_TCXO, 0 },
8206391eddSTaniya Das 	{ P_GPLL0_OUT_MAIN, 1 },
8306391eddSTaniya Das 	{ P_CORE_BI_PLL_TEST_SE, 7 },
8406391eddSTaniya Das };
8506391eddSTaniya Das 
8606391eddSTaniya Das static const char * const gcc_parent_names_3[] = {
8706391eddSTaniya Das 	"bi_tcxo",
8806391eddSTaniya Das 	"gpll0",
8906391eddSTaniya Das 	"core_bi_pll_test_se",
9006391eddSTaniya Das };
9106391eddSTaniya Das 
9206391eddSTaniya Das static const struct parent_map gcc_parent_map_4[] = {
9306391eddSTaniya Das 	{ P_BI_TCXO, 0 },
9406391eddSTaniya Das 	{ P_CORE_BI_PLL_TEST_SE, 7 },
9506391eddSTaniya Das };
9606391eddSTaniya Das 
9706391eddSTaniya Das static const char * const gcc_parent_names_4[] = {
9806391eddSTaniya Das 	"bi_tcxo",
9906391eddSTaniya Das 	"core_bi_pll_test_se",
10006391eddSTaniya Das };
10106391eddSTaniya Das 
10206391eddSTaniya Das static const struct parent_map gcc_parent_map_6[] = {
10306391eddSTaniya Das 	{ P_BI_TCXO, 0 },
10406391eddSTaniya Das 	{ P_GPLL0_OUT_MAIN, 1 },
10506391eddSTaniya Das 	{ P_AUD_REF_CLK, 2 },
10606391eddSTaniya Das 	{ P_GPLL0_OUT_EVEN, 6 },
10706391eddSTaniya Das 	{ P_CORE_BI_PLL_TEST_SE, 7 },
10806391eddSTaniya Das };
10906391eddSTaniya Das 
11006391eddSTaniya Das static const char * const gcc_parent_names_6[] = {
11106391eddSTaniya Das 	"bi_tcxo",
11206391eddSTaniya Das 	"gpll0",
11306391eddSTaniya Das 	"aud_ref_clk",
11406391eddSTaniya Das 	"gpll0_out_even",
11506391eddSTaniya Das 	"core_bi_pll_test_se",
11606391eddSTaniya Das };
11706391eddSTaniya Das 
1189ff1a3b4STaniya Das static const char * const gcc_parent_names_7_ao[] = {
1199ff1a3b4STaniya Das 	"bi_tcxo_ao",
12006391eddSTaniya Das 	"gpll0",
12106391eddSTaniya Das 	"gpll0_out_even",
12206391eddSTaniya Das 	"core_bi_pll_test_se",
12306391eddSTaniya Das };
12406391eddSTaniya Das 
12506391eddSTaniya Das static const char * const gcc_parent_names_8[] = {
12606391eddSTaniya Das 	"bi_tcxo",
12706391eddSTaniya Das 	"gpll0",
12806391eddSTaniya Das 	"core_bi_pll_test_se",
12906391eddSTaniya Das };
13006391eddSTaniya Das 
1319ff1a3b4STaniya Das static const char * const gcc_parent_names_8_ao[] = {
1329ff1a3b4STaniya Das 	"bi_tcxo_ao",
1339ff1a3b4STaniya Das 	"gpll0",
1349ff1a3b4STaniya Das 	"core_bi_pll_test_se",
1359ff1a3b4STaniya Das };
1369ff1a3b4STaniya Das 
13706391eddSTaniya Das static const struct parent_map gcc_parent_map_10[] = {
13806391eddSTaniya Das 	{ P_BI_TCXO, 0 },
13906391eddSTaniya Das 	{ P_GPLL0_OUT_MAIN, 1 },
14006391eddSTaniya Das 	{ P_GPLL4_OUT_MAIN, 5 },
14106391eddSTaniya Das 	{ P_GPLL0_OUT_EVEN, 6 },
14206391eddSTaniya Das 	{ P_CORE_BI_PLL_TEST_SE, 7 },
14306391eddSTaniya Das };
14406391eddSTaniya Das 
14506391eddSTaniya Das static const char * const gcc_parent_names_10[] = {
14606391eddSTaniya Das 	"bi_tcxo",
14706391eddSTaniya Das 	"gpll0",
14806391eddSTaniya Das 	"gpll4",
14906391eddSTaniya Das 	"gpll0_out_even",
15006391eddSTaniya Das 	"core_bi_pll_test_se",
15106391eddSTaniya Das };
15206391eddSTaniya Das 
15306391eddSTaniya Das static struct clk_alpha_pll gpll0 = {
15406391eddSTaniya Das 	.offset = 0x0,
15506391eddSTaniya Das 	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
15606391eddSTaniya Das 	.clkr = {
15706391eddSTaniya Das 		.enable_reg = 0x52000,
15806391eddSTaniya Das 		.enable_mask = BIT(0),
15906391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
16006391eddSTaniya Das 			.name = "gpll0",
16106391eddSTaniya Das 			.parent_names = (const char *[]){ "bi_tcxo" },
16206391eddSTaniya Das 			.num_parents = 1,
16306391eddSTaniya Das 			.ops = &clk_alpha_pll_fixed_fabia_ops,
16406391eddSTaniya Das 		},
16506391eddSTaniya Das 	},
16606391eddSTaniya Das };
16706391eddSTaniya Das 
16806391eddSTaniya Das static struct clk_alpha_pll gpll4 = {
16906391eddSTaniya Das 	.offset = 0x76000,
17006391eddSTaniya Das 	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
17106391eddSTaniya Das 	.clkr = {
17206391eddSTaniya Das 		.enable_reg = 0x52000,
17306391eddSTaniya Das 		.enable_mask = BIT(4),
17406391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
17506391eddSTaniya Das 			.name = "gpll4",
17606391eddSTaniya Das 			.parent_names = (const char *[]){ "bi_tcxo" },
17706391eddSTaniya Das 			.num_parents = 1,
17806391eddSTaniya Das 			.ops = &clk_alpha_pll_fixed_fabia_ops,
17906391eddSTaniya Das 		},
18006391eddSTaniya Das 	},
18106391eddSTaniya Das };
18206391eddSTaniya Das 
18306391eddSTaniya Das static const struct clk_div_table post_div_table_fabia_even[] = {
18406391eddSTaniya Das 	{ 0x0, 1 },
18506391eddSTaniya Das 	{ 0x1, 2 },
18606391eddSTaniya Das 	{ 0x3, 4 },
18706391eddSTaniya Das 	{ 0x7, 8 },
18806391eddSTaniya Das 	{ }
18906391eddSTaniya Das };
19006391eddSTaniya Das 
19106391eddSTaniya Das static struct clk_alpha_pll_postdiv gpll0_out_even = {
19206391eddSTaniya Das 	.offset = 0x0,
19306391eddSTaniya Das 	.post_div_shift = 8,
19406391eddSTaniya Das 	.post_div_table = post_div_table_fabia_even,
19506391eddSTaniya Das 	.num_post_div = ARRAY_SIZE(post_div_table_fabia_even),
19606391eddSTaniya Das 	.width = 4,
19706391eddSTaniya Das 	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
19806391eddSTaniya Das 	.clkr.hw.init = &(struct clk_init_data){
19906391eddSTaniya Das 		.name = "gpll0_out_even",
20006391eddSTaniya Das 		.parent_names = (const char *[]){ "gpll0" },
20106391eddSTaniya Das 		.num_parents = 1,
20206391eddSTaniya Das 		.ops = &clk_alpha_pll_postdiv_fabia_ops,
20306391eddSTaniya Das 	},
20406391eddSTaniya Das };
20506391eddSTaniya Das 
20606391eddSTaniya Das static const struct freq_tbl ftbl_gcc_cpuss_ahb_clk_src[] = {
20706391eddSTaniya Das 	F(19200000, P_BI_TCXO, 1, 0, 0),
20806391eddSTaniya Das 	{ }
20906391eddSTaniya Das };
21006391eddSTaniya Das 
21106391eddSTaniya Das static struct clk_rcg2 gcc_cpuss_ahb_clk_src = {
21206391eddSTaniya Das 	.cmd_rcgr = 0x48014,
21306391eddSTaniya Das 	.mnd_width = 0,
21406391eddSTaniya Das 	.hid_width = 5,
21506391eddSTaniya Das 	.parent_map = gcc_parent_map_0,
21606391eddSTaniya Das 	.freq_tbl = ftbl_gcc_cpuss_ahb_clk_src,
21706391eddSTaniya Das 	.clkr.hw.init = &(struct clk_init_data){
21806391eddSTaniya Das 		.name = "gcc_cpuss_ahb_clk_src",
2199ff1a3b4STaniya Das 		.parent_names = gcc_parent_names_7_ao,
22006391eddSTaniya Das 		.num_parents = 4,
22106391eddSTaniya Das 		.ops = &clk_rcg2_ops,
22206391eddSTaniya Das 	},
22306391eddSTaniya Das };
22406391eddSTaniya Das 
22506391eddSTaniya Das static const struct freq_tbl ftbl_gcc_cpuss_rbcpr_clk_src[] = {
22606391eddSTaniya Das 	F(19200000, P_BI_TCXO, 1, 0, 0),
22706391eddSTaniya Das 	{ }
22806391eddSTaniya Das };
22906391eddSTaniya Das 
23006391eddSTaniya Das static struct clk_rcg2 gcc_cpuss_rbcpr_clk_src = {
23106391eddSTaniya Das 	.cmd_rcgr = 0x4815c,
23206391eddSTaniya Das 	.mnd_width = 0,
23306391eddSTaniya Das 	.hid_width = 5,
23406391eddSTaniya Das 	.parent_map = gcc_parent_map_3,
23506391eddSTaniya Das 	.freq_tbl = ftbl_gcc_cpuss_rbcpr_clk_src,
23606391eddSTaniya Das 	.clkr.hw.init = &(struct clk_init_data){
23706391eddSTaniya Das 		.name = "gcc_cpuss_rbcpr_clk_src",
2389ff1a3b4STaniya Das 		.parent_names = gcc_parent_names_8_ao,
23906391eddSTaniya Das 		.num_parents = 3,
24006391eddSTaniya Das 		.ops = &clk_rcg2_ops,
24106391eddSTaniya Das 	},
24206391eddSTaniya Das };
24306391eddSTaniya Das 
24406391eddSTaniya Das static const struct freq_tbl ftbl_gcc_gp1_clk_src[] = {
24506391eddSTaniya Das 	F(19200000, P_BI_TCXO, 1, 0, 0),
24606391eddSTaniya Das 	F(25000000, P_GPLL0_OUT_EVEN, 12, 0, 0),
24706391eddSTaniya Das 	F(50000000, P_GPLL0_OUT_EVEN, 6, 0, 0),
24806391eddSTaniya Das 	F(100000000, P_GPLL0_OUT_MAIN, 6, 0, 0),
24906391eddSTaniya Das 	F(200000000, P_GPLL0_OUT_MAIN, 3, 0, 0),
25006391eddSTaniya Das 	{ }
25106391eddSTaniya Das };
25206391eddSTaniya Das 
25306391eddSTaniya Das static struct clk_rcg2 gcc_gp1_clk_src = {
25406391eddSTaniya Das 	.cmd_rcgr = 0x64004,
25506391eddSTaniya Das 	.mnd_width = 8,
25606391eddSTaniya Das 	.hid_width = 5,
25706391eddSTaniya Das 	.parent_map = gcc_parent_map_1,
25806391eddSTaniya Das 	.freq_tbl = ftbl_gcc_gp1_clk_src,
25906391eddSTaniya Das 	.clkr.hw.init = &(struct clk_init_data){
26006391eddSTaniya Das 		.name = "gcc_gp1_clk_src",
26106391eddSTaniya Das 		.parent_names = gcc_parent_names_1,
26206391eddSTaniya Das 		.num_parents = 5,
26306391eddSTaniya Das 		.ops = &clk_rcg2_ops,
26406391eddSTaniya Das 	},
26506391eddSTaniya Das };
26606391eddSTaniya Das 
26706391eddSTaniya Das static struct clk_rcg2 gcc_gp2_clk_src = {
26806391eddSTaniya Das 	.cmd_rcgr = 0x65004,
26906391eddSTaniya Das 	.mnd_width = 8,
27006391eddSTaniya Das 	.hid_width = 5,
27106391eddSTaniya Das 	.parent_map = gcc_parent_map_1,
27206391eddSTaniya Das 	.freq_tbl = ftbl_gcc_gp1_clk_src,
27306391eddSTaniya Das 	.clkr.hw.init = &(struct clk_init_data){
27406391eddSTaniya Das 		.name = "gcc_gp2_clk_src",
27506391eddSTaniya Das 		.parent_names = gcc_parent_names_1,
27606391eddSTaniya Das 		.num_parents = 5,
27706391eddSTaniya Das 		.ops = &clk_rcg2_ops,
27806391eddSTaniya Das 	},
27906391eddSTaniya Das };
28006391eddSTaniya Das 
28106391eddSTaniya Das static struct clk_rcg2 gcc_gp3_clk_src = {
28206391eddSTaniya Das 	.cmd_rcgr = 0x66004,
28306391eddSTaniya Das 	.mnd_width = 8,
28406391eddSTaniya Das 	.hid_width = 5,
28506391eddSTaniya Das 	.parent_map = gcc_parent_map_1,
28606391eddSTaniya Das 	.freq_tbl = ftbl_gcc_gp1_clk_src,
28706391eddSTaniya Das 	.clkr.hw.init = &(struct clk_init_data){
28806391eddSTaniya Das 		.name = "gcc_gp3_clk_src",
28906391eddSTaniya Das 		.parent_names = gcc_parent_names_1,
29006391eddSTaniya Das 		.num_parents = 5,
29106391eddSTaniya Das 		.ops = &clk_rcg2_ops,
29206391eddSTaniya Das 	},
29306391eddSTaniya Das };
29406391eddSTaniya Das 
29506391eddSTaniya Das static const struct freq_tbl ftbl_gcc_pcie_0_aux_clk_src[] = {
29606391eddSTaniya Das 	F(9600000, P_BI_TCXO, 2, 0, 0),
29706391eddSTaniya Das 	F(19200000, P_BI_TCXO, 1, 0, 0),
29806391eddSTaniya Das 	{ }
29906391eddSTaniya Das };
30006391eddSTaniya Das 
30106391eddSTaniya Das static struct clk_rcg2 gcc_pcie_0_aux_clk_src = {
30206391eddSTaniya Das 	.cmd_rcgr = 0x6b028,
30306391eddSTaniya Das 	.mnd_width = 16,
30406391eddSTaniya Das 	.hid_width = 5,
30506391eddSTaniya Das 	.parent_map = gcc_parent_map_2,
30606391eddSTaniya Das 	.freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
30706391eddSTaniya Das 	.clkr.hw.init = &(struct clk_init_data){
30806391eddSTaniya Das 		.name = "gcc_pcie_0_aux_clk_src",
30906391eddSTaniya Das 		.parent_names = gcc_parent_names_2,
31006391eddSTaniya Das 		.num_parents = 3,
31106391eddSTaniya Das 		.ops = &clk_rcg2_ops,
31206391eddSTaniya Das 	},
31306391eddSTaniya Das };
31406391eddSTaniya Das 
31506391eddSTaniya Das static struct clk_rcg2 gcc_pcie_1_aux_clk_src = {
31606391eddSTaniya Das 	.cmd_rcgr = 0x8d028,
31706391eddSTaniya Das 	.mnd_width = 16,
31806391eddSTaniya Das 	.hid_width = 5,
31906391eddSTaniya Das 	.parent_map = gcc_parent_map_2,
32006391eddSTaniya Das 	.freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
32106391eddSTaniya Das 	.clkr.hw.init = &(struct clk_init_data){
32206391eddSTaniya Das 		.name = "gcc_pcie_1_aux_clk_src",
32306391eddSTaniya Das 		.parent_names = gcc_parent_names_2,
32406391eddSTaniya Das 		.num_parents = 3,
32506391eddSTaniya Das 		.ops = &clk_rcg2_ops,
32606391eddSTaniya Das 	},
32706391eddSTaniya Das };
32806391eddSTaniya Das 
32906391eddSTaniya Das static const struct freq_tbl ftbl_gcc_pcie_phy_refgen_clk_src[] = {
33006391eddSTaniya Das 	F(19200000, P_BI_TCXO, 1, 0, 0),
33106391eddSTaniya Das 	F(100000000, P_GPLL0_OUT_MAIN, 6, 0, 0),
33206391eddSTaniya Das 	{ }
33306391eddSTaniya Das };
33406391eddSTaniya Das 
33506391eddSTaniya Das static struct clk_rcg2 gcc_pcie_phy_refgen_clk_src = {
33606391eddSTaniya Das 	.cmd_rcgr = 0x6f014,
33706391eddSTaniya Das 	.mnd_width = 0,
33806391eddSTaniya Das 	.hid_width = 5,
33906391eddSTaniya Das 	.parent_map = gcc_parent_map_0,
34006391eddSTaniya Das 	.freq_tbl = ftbl_gcc_pcie_phy_refgen_clk_src,
34106391eddSTaniya Das 	.clkr.hw.init = &(struct clk_init_data){
34206391eddSTaniya Das 		.name = "gcc_pcie_phy_refgen_clk_src",
34306391eddSTaniya Das 		.parent_names = gcc_parent_names_0,
34406391eddSTaniya Das 		.num_parents = 4,
34506391eddSTaniya Das 		.ops = &clk_rcg2_ops,
34606391eddSTaniya Das 	},
34706391eddSTaniya Das };
34806391eddSTaniya Das 
3494f83d9b8SDouglas Anderson static const struct freq_tbl ftbl_gcc_qspi_core_clk_src[] = {
3504f83d9b8SDouglas Anderson 	F(19200000, P_BI_TCXO, 1, 0, 0),
3514f83d9b8SDouglas Anderson 	F(100000000, P_GPLL0_OUT_MAIN, 6, 0, 0),
3524f83d9b8SDouglas Anderson 	F(150000000, P_GPLL0_OUT_MAIN, 4, 0, 0),
3534f83d9b8SDouglas Anderson 	F(300000000, P_GPLL0_OUT_MAIN, 2, 0, 0),
3544f83d9b8SDouglas Anderson 	{ }
3554f83d9b8SDouglas Anderson };
3564f83d9b8SDouglas Anderson 
3574f83d9b8SDouglas Anderson static struct clk_rcg2 gcc_qspi_core_clk_src = {
3584f83d9b8SDouglas Anderson 	.cmd_rcgr = 0x4b008,
3594f83d9b8SDouglas Anderson 	.mnd_width = 0,
3604f83d9b8SDouglas Anderson 	.hid_width = 5,
3614f83d9b8SDouglas Anderson 	.parent_map = gcc_parent_map_0,
3624f83d9b8SDouglas Anderson 	.freq_tbl = ftbl_gcc_qspi_core_clk_src,
3634f83d9b8SDouglas Anderson 	.clkr.hw.init = &(struct clk_init_data){
3644f83d9b8SDouglas Anderson 		.name = "gcc_qspi_core_clk_src",
3654f83d9b8SDouglas Anderson 		.parent_names = gcc_parent_names_0,
3664f83d9b8SDouglas Anderson 		.num_parents = 4,
3674f83d9b8SDouglas Anderson 		.ops = &clk_rcg2_floor_ops,
3684f83d9b8SDouglas Anderson 	},
3694f83d9b8SDouglas Anderson };
3704f83d9b8SDouglas Anderson 
37106391eddSTaniya Das static const struct freq_tbl ftbl_gcc_pdm2_clk_src[] = {
37206391eddSTaniya Das 	F(9600000, P_BI_TCXO, 2, 0, 0),
37306391eddSTaniya Das 	F(19200000, P_BI_TCXO, 1, 0, 0),
37406391eddSTaniya Das 	F(60000000, P_GPLL0_OUT_MAIN, 10, 0, 0),
37506391eddSTaniya Das 	{ }
37606391eddSTaniya Das };
37706391eddSTaniya Das 
37806391eddSTaniya Das static struct clk_rcg2 gcc_pdm2_clk_src = {
37906391eddSTaniya Das 	.cmd_rcgr = 0x33010,
38006391eddSTaniya Das 	.mnd_width = 0,
38106391eddSTaniya Das 	.hid_width = 5,
38206391eddSTaniya Das 	.parent_map = gcc_parent_map_0,
38306391eddSTaniya Das 	.freq_tbl = ftbl_gcc_pdm2_clk_src,
38406391eddSTaniya Das 	.clkr.hw.init = &(struct clk_init_data){
38506391eddSTaniya Das 		.name = "gcc_pdm2_clk_src",
38606391eddSTaniya Das 		.parent_names = gcc_parent_names_0,
38706391eddSTaniya Das 		.num_parents = 4,
38806391eddSTaniya Das 		.ops = &clk_rcg2_ops,
38906391eddSTaniya Das 	},
39006391eddSTaniya Das };
39106391eddSTaniya Das 
39206391eddSTaniya Das static const struct freq_tbl ftbl_gcc_qupv3_wrap0_s0_clk_src[] = {
39306391eddSTaniya Das 	F(7372800, P_GPLL0_OUT_EVEN, 1, 384, 15625),
39406391eddSTaniya Das 	F(14745600, P_GPLL0_OUT_EVEN, 1, 768, 15625),
39506391eddSTaniya Das 	F(19200000, P_BI_TCXO, 1, 0, 0),
39606391eddSTaniya Das 	F(29491200, P_GPLL0_OUT_EVEN, 1, 1536, 15625),
39706391eddSTaniya Das 	F(32000000, P_GPLL0_OUT_EVEN, 1, 8, 75),
39806391eddSTaniya Das 	F(48000000, P_GPLL0_OUT_EVEN, 1, 4, 25),
39906391eddSTaniya Das 	F(64000000, P_GPLL0_OUT_EVEN, 1, 16, 75),
40006391eddSTaniya Das 	F(80000000, P_GPLL0_OUT_EVEN, 1, 4, 15),
40106391eddSTaniya Das 	F(96000000, P_GPLL0_OUT_EVEN, 1, 8, 25),
40206391eddSTaniya Das 	F(100000000, P_GPLL0_OUT_EVEN, 3, 0, 0),
40306391eddSTaniya Das 	F(102400000, P_GPLL0_OUT_EVEN, 1, 128, 375),
40406391eddSTaniya Das 	F(112000000, P_GPLL0_OUT_EVEN, 1, 28, 75),
40506391eddSTaniya Das 	F(117964800, P_GPLL0_OUT_EVEN, 1, 6144, 15625),
40606391eddSTaniya Das 	F(120000000, P_GPLL0_OUT_EVEN, 2.5, 0, 0),
40706391eddSTaniya Das 	F(128000000, P_GPLL0_OUT_MAIN, 1, 16, 75),
40806391eddSTaniya Das 	{ }
40906391eddSTaniya Das };
41006391eddSTaniya Das 
4118b69c6dbSTaniya Das static struct clk_init_data gcc_qupv3_wrap0_s0_clk_init = {
4128b69c6dbSTaniya Das 	.name = "gcc_qupv3_wrap0_s0_clk_src",
4138b69c6dbSTaniya Das 	.parent_names = gcc_parent_names_0,
4148b69c6dbSTaniya Das 	.num_parents = 4,
4158b69c6dbSTaniya Das 	.ops = &clk_rcg2_shared_ops,
4168b69c6dbSTaniya Das };
4178b69c6dbSTaniya Das 
41806391eddSTaniya Das static struct clk_rcg2 gcc_qupv3_wrap0_s0_clk_src = {
41906391eddSTaniya Das 	.cmd_rcgr = 0x17034,
42006391eddSTaniya Das 	.mnd_width = 16,
42106391eddSTaniya Das 	.hid_width = 5,
42206391eddSTaniya Das 	.parent_map = gcc_parent_map_0,
42306391eddSTaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
4248b69c6dbSTaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap0_s0_clk_init,
4258b69c6dbSTaniya Das };
4268b69c6dbSTaniya Das 
4278b69c6dbSTaniya Das static struct clk_init_data gcc_qupv3_wrap0_s1_clk_init = {
4288b69c6dbSTaniya Das 	.name = "gcc_qupv3_wrap0_s1_clk_src",
42906391eddSTaniya Das 	.parent_names = gcc_parent_names_0,
43006391eddSTaniya Das 	.num_parents = 4,
43106391eddSTaniya Das 	.ops = &clk_rcg2_shared_ops,
43206391eddSTaniya Das };
43306391eddSTaniya Das 
43406391eddSTaniya Das static struct clk_rcg2 gcc_qupv3_wrap0_s1_clk_src = {
43506391eddSTaniya Das 	.cmd_rcgr = 0x17164,
43606391eddSTaniya Das 	.mnd_width = 16,
43706391eddSTaniya Das 	.hid_width = 5,
43806391eddSTaniya Das 	.parent_map = gcc_parent_map_0,
43906391eddSTaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
4408b69c6dbSTaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap0_s1_clk_init,
4418b69c6dbSTaniya Das };
4428b69c6dbSTaniya Das 
4438b69c6dbSTaniya Das static struct clk_init_data gcc_qupv3_wrap0_s2_clk_init = {
4448b69c6dbSTaniya Das 	.name = "gcc_qupv3_wrap0_s2_clk_src",
44506391eddSTaniya Das 	.parent_names = gcc_parent_names_0,
44606391eddSTaniya Das 	.num_parents = 4,
44706391eddSTaniya Das 	.ops = &clk_rcg2_shared_ops,
44806391eddSTaniya Das };
44906391eddSTaniya Das 
45006391eddSTaniya Das static struct clk_rcg2 gcc_qupv3_wrap0_s2_clk_src = {
45106391eddSTaniya Das 	.cmd_rcgr = 0x17294,
45206391eddSTaniya Das 	.mnd_width = 16,
45306391eddSTaniya Das 	.hid_width = 5,
45406391eddSTaniya Das 	.parent_map = gcc_parent_map_0,
45506391eddSTaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
4568b69c6dbSTaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap0_s2_clk_init,
4578b69c6dbSTaniya Das };
4588b69c6dbSTaniya Das 
4598b69c6dbSTaniya Das static struct clk_init_data gcc_qupv3_wrap0_s3_clk_init = {
4608b69c6dbSTaniya Das 	.name = "gcc_qupv3_wrap0_s3_clk_src",
46106391eddSTaniya Das 	.parent_names = gcc_parent_names_0,
46206391eddSTaniya Das 	.num_parents = 4,
46306391eddSTaniya Das 	.ops = &clk_rcg2_shared_ops,
46406391eddSTaniya Das };
46506391eddSTaniya Das 
46606391eddSTaniya Das static struct clk_rcg2 gcc_qupv3_wrap0_s3_clk_src = {
46706391eddSTaniya Das 	.cmd_rcgr = 0x173c4,
46806391eddSTaniya Das 	.mnd_width = 16,
46906391eddSTaniya Das 	.hid_width = 5,
47006391eddSTaniya Das 	.parent_map = gcc_parent_map_0,
47106391eddSTaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
4728b69c6dbSTaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap0_s3_clk_init,
4738b69c6dbSTaniya Das };
4748b69c6dbSTaniya Das 
4758b69c6dbSTaniya Das static struct clk_init_data gcc_qupv3_wrap0_s4_clk_init = {
4768b69c6dbSTaniya Das 	.name = "gcc_qupv3_wrap0_s4_clk_src",
47706391eddSTaniya Das 	.parent_names = gcc_parent_names_0,
47806391eddSTaniya Das 	.num_parents = 4,
47906391eddSTaniya Das 	.ops = &clk_rcg2_shared_ops,
48006391eddSTaniya Das };
48106391eddSTaniya Das 
48206391eddSTaniya Das static struct clk_rcg2 gcc_qupv3_wrap0_s4_clk_src = {
48306391eddSTaniya Das 	.cmd_rcgr = 0x174f4,
48406391eddSTaniya Das 	.mnd_width = 16,
48506391eddSTaniya Das 	.hid_width = 5,
48606391eddSTaniya Das 	.parent_map = gcc_parent_map_0,
48706391eddSTaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
4888b69c6dbSTaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap0_s4_clk_init,
4898b69c6dbSTaniya Das };
4908b69c6dbSTaniya Das 
4918b69c6dbSTaniya Das static struct clk_init_data gcc_qupv3_wrap0_s5_clk_init = {
4928b69c6dbSTaniya Das 	.name = "gcc_qupv3_wrap0_s5_clk_src",
49306391eddSTaniya Das 	.parent_names = gcc_parent_names_0,
49406391eddSTaniya Das 	.num_parents = 4,
49506391eddSTaniya Das 	.ops = &clk_rcg2_shared_ops,
49606391eddSTaniya Das };
49706391eddSTaniya Das 
49806391eddSTaniya Das static struct clk_rcg2 gcc_qupv3_wrap0_s5_clk_src = {
49906391eddSTaniya Das 	.cmd_rcgr = 0x17624,
50006391eddSTaniya Das 	.mnd_width = 16,
50106391eddSTaniya Das 	.hid_width = 5,
50206391eddSTaniya Das 	.parent_map = gcc_parent_map_0,
50306391eddSTaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
5048b69c6dbSTaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap0_s5_clk_init,
5058b69c6dbSTaniya Das };
5068b69c6dbSTaniya Das 
5078b69c6dbSTaniya Das static struct clk_init_data gcc_qupv3_wrap0_s6_clk_init = {
5088b69c6dbSTaniya Das 	.name = "gcc_qupv3_wrap0_s6_clk_src",
50906391eddSTaniya Das 	.parent_names = gcc_parent_names_0,
51006391eddSTaniya Das 	.num_parents = 4,
51106391eddSTaniya Das 	.ops = &clk_rcg2_shared_ops,
51206391eddSTaniya Das };
51306391eddSTaniya Das 
51406391eddSTaniya Das static struct clk_rcg2 gcc_qupv3_wrap0_s6_clk_src = {
51506391eddSTaniya Das 	.cmd_rcgr = 0x17754,
51606391eddSTaniya Das 	.mnd_width = 16,
51706391eddSTaniya Das 	.hid_width = 5,
51806391eddSTaniya Das 	.parent_map = gcc_parent_map_0,
51906391eddSTaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
5208b69c6dbSTaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap0_s6_clk_init,
5218b69c6dbSTaniya Das };
5228b69c6dbSTaniya Das 
5238b69c6dbSTaniya Das static struct clk_init_data gcc_qupv3_wrap0_s7_clk_init = {
5248b69c6dbSTaniya Das 	.name = "gcc_qupv3_wrap0_s7_clk_src",
52506391eddSTaniya Das 	.parent_names = gcc_parent_names_0,
52606391eddSTaniya Das 	.num_parents = 4,
52706391eddSTaniya Das 	.ops = &clk_rcg2_shared_ops,
52806391eddSTaniya Das };
52906391eddSTaniya Das 
53006391eddSTaniya Das static struct clk_rcg2 gcc_qupv3_wrap0_s7_clk_src = {
53106391eddSTaniya Das 	.cmd_rcgr = 0x17884,
53206391eddSTaniya Das 	.mnd_width = 16,
53306391eddSTaniya Das 	.hid_width = 5,
53406391eddSTaniya Das 	.parent_map = gcc_parent_map_0,
53506391eddSTaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
5368b69c6dbSTaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap0_s7_clk_init,
5378b69c6dbSTaniya Das };
5388b69c6dbSTaniya Das 
5398b69c6dbSTaniya Das static struct clk_init_data gcc_qupv3_wrap1_s0_clk_init = {
5408b69c6dbSTaniya Das 	.name = "gcc_qupv3_wrap1_s0_clk_src",
54106391eddSTaniya Das 	.parent_names = gcc_parent_names_0,
54206391eddSTaniya Das 	.num_parents = 4,
54306391eddSTaniya Das 	.ops = &clk_rcg2_shared_ops,
54406391eddSTaniya Das };
54506391eddSTaniya Das 
54606391eddSTaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s0_clk_src = {
54706391eddSTaniya Das 	.cmd_rcgr = 0x18018,
54806391eddSTaniya Das 	.mnd_width = 16,
54906391eddSTaniya Das 	.hid_width = 5,
55006391eddSTaniya Das 	.parent_map = gcc_parent_map_0,
55106391eddSTaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
5528b69c6dbSTaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap1_s0_clk_init,
5538b69c6dbSTaniya Das };
5548b69c6dbSTaniya Das 
5558b69c6dbSTaniya Das static struct clk_init_data gcc_qupv3_wrap1_s1_clk_init = {
5568b69c6dbSTaniya Das 	.name = "gcc_qupv3_wrap1_s1_clk_src",
55706391eddSTaniya Das 	.parent_names = gcc_parent_names_0,
55806391eddSTaniya Das 	.num_parents = 4,
55906391eddSTaniya Das 	.ops = &clk_rcg2_shared_ops,
56006391eddSTaniya Das };
56106391eddSTaniya Das 
56206391eddSTaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s1_clk_src = {
56306391eddSTaniya Das 	.cmd_rcgr = 0x18148,
56406391eddSTaniya Das 	.mnd_width = 16,
56506391eddSTaniya Das 	.hid_width = 5,
56606391eddSTaniya Das 	.parent_map = gcc_parent_map_0,
56706391eddSTaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
5688b69c6dbSTaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap1_s1_clk_init,
5698b69c6dbSTaniya Das };
5708b69c6dbSTaniya Das 
5718b69c6dbSTaniya Das static struct clk_init_data gcc_qupv3_wrap1_s2_clk_init = {
5728b69c6dbSTaniya Das 	.name = "gcc_qupv3_wrap1_s2_clk_src",
57306391eddSTaniya Das 	.parent_names = gcc_parent_names_0,
57406391eddSTaniya Das 	.num_parents = 4,
57506391eddSTaniya Das 	.ops = &clk_rcg2_shared_ops,
57606391eddSTaniya Das };
57706391eddSTaniya Das 
57806391eddSTaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s2_clk_src = {
57906391eddSTaniya Das 	.cmd_rcgr = 0x18278,
58006391eddSTaniya Das 	.mnd_width = 16,
58106391eddSTaniya Das 	.hid_width = 5,
58206391eddSTaniya Das 	.parent_map = gcc_parent_map_0,
58306391eddSTaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
5848b69c6dbSTaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap1_s2_clk_init,
5858b69c6dbSTaniya Das };
5868b69c6dbSTaniya Das 
5878b69c6dbSTaniya Das static struct clk_init_data gcc_qupv3_wrap1_s3_clk_init = {
5888b69c6dbSTaniya Das 	.name = "gcc_qupv3_wrap1_s3_clk_src",
58906391eddSTaniya Das 	.parent_names = gcc_parent_names_0,
59006391eddSTaniya Das 	.num_parents = 4,
59106391eddSTaniya Das 	.ops = &clk_rcg2_shared_ops,
59206391eddSTaniya Das };
59306391eddSTaniya Das 
59406391eddSTaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s3_clk_src = {
59506391eddSTaniya Das 	.cmd_rcgr = 0x183a8,
59606391eddSTaniya Das 	.mnd_width = 16,
59706391eddSTaniya Das 	.hid_width = 5,
59806391eddSTaniya Das 	.parent_map = gcc_parent_map_0,
59906391eddSTaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
6008b69c6dbSTaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap1_s3_clk_init,
6018b69c6dbSTaniya Das };
6028b69c6dbSTaniya Das 
6038b69c6dbSTaniya Das static struct clk_init_data gcc_qupv3_wrap1_s4_clk_init = {
6048b69c6dbSTaniya Das 	.name = "gcc_qupv3_wrap1_s4_clk_src",
60506391eddSTaniya Das 	.parent_names = gcc_parent_names_0,
60606391eddSTaniya Das 	.num_parents = 4,
60706391eddSTaniya Das 	.ops = &clk_rcg2_shared_ops,
60806391eddSTaniya Das };
60906391eddSTaniya Das 
61006391eddSTaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s4_clk_src = {
61106391eddSTaniya Das 	.cmd_rcgr = 0x184d8,
61206391eddSTaniya Das 	.mnd_width = 16,
61306391eddSTaniya Das 	.hid_width = 5,
61406391eddSTaniya Das 	.parent_map = gcc_parent_map_0,
61506391eddSTaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
6168b69c6dbSTaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap1_s4_clk_init,
6178b69c6dbSTaniya Das };
6188b69c6dbSTaniya Das 
6198b69c6dbSTaniya Das static struct clk_init_data gcc_qupv3_wrap1_s5_clk_init = {
6208b69c6dbSTaniya Das 	.name = "gcc_qupv3_wrap1_s5_clk_src",
62106391eddSTaniya Das 	.parent_names = gcc_parent_names_0,
62206391eddSTaniya Das 	.num_parents = 4,
62306391eddSTaniya Das 	.ops = &clk_rcg2_shared_ops,
62406391eddSTaniya Das };
62506391eddSTaniya Das 
62606391eddSTaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s5_clk_src = {
62706391eddSTaniya Das 	.cmd_rcgr = 0x18608,
62806391eddSTaniya Das 	.mnd_width = 16,
62906391eddSTaniya Das 	.hid_width = 5,
63006391eddSTaniya Das 	.parent_map = gcc_parent_map_0,
63106391eddSTaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
6328b69c6dbSTaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap1_s5_clk_init,
6338b69c6dbSTaniya Das };
6348b69c6dbSTaniya Das 
6358b69c6dbSTaniya Das static struct clk_init_data gcc_qupv3_wrap1_s6_clk_init = {
6368b69c6dbSTaniya Das 	.name = "gcc_qupv3_wrap1_s6_clk_src",
63706391eddSTaniya Das 	.parent_names = gcc_parent_names_0,
63806391eddSTaniya Das 	.num_parents = 4,
63906391eddSTaniya Das 	.ops = &clk_rcg2_shared_ops,
64006391eddSTaniya Das };
64106391eddSTaniya Das 
64206391eddSTaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s6_clk_src = {
64306391eddSTaniya Das 	.cmd_rcgr = 0x18738,
64406391eddSTaniya Das 	.mnd_width = 16,
64506391eddSTaniya Das 	.hid_width = 5,
64606391eddSTaniya Das 	.parent_map = gcc_parent_map_0,
64706391eddSTaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
6488b69c6dbSTaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap1_s6_clk_init,
6498b69c6dbSTaniya Das };
6508b69c6dbSTaniya Das 
6518b69c6dbSTaniya Das static struct clk_init_data gcc_qupv3_wrap1_s7_clk_init = {
6528b69c6dbSTaniya Das 	.name = "gcc_qupv3_wrap1_s7_clk_src",
65306391eddSTaniya Das 	.parent_names = gcc_parent_names_0,
65406391eddSTaniya Das 	.num_parents = 4,
65506391eddSTaniya Das 	.ops = &clk_rcg2_shared_ops,
65606391eddSTaniya Das };
65706391eddSTaniya Das 
65806391eddSTaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s7_clk_src = {
65906391eddSTaniya Das 	.cmd_rcgr = 0x18868,
66006391eddSTaniya Das 	.mnd_width = 16,
66106391eddSTaniya Das 	.hid_width = 5,
66206391eddSTaniya Das 	.parent_map = gcc_parent_map_0,
66306391eddSTaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
6648b69c6dbSTaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap1_s7_clk_init,
66506391eddSTaniya Das };
66606391eddSTaniya Das 
66706391eddSTaniya Das static const struct freq_tbl ftbl_gcc_sdcc2_apps_clk_src[] = {
66806391eddSTaniya Das 	F(400000, P_BI_TCXO, 12, 1, 4),
66906391eddSTaniya Das 	F(9600000, P_BI_TCXO, 2, 0, 0),
67006391eddSTaniya Das 	F(19200000, P_BI_TCXO, 1, 0, 0),
67106391eddSTaniya Das 	F(25000000, P_GPLL0_OUT_EVEN, 12, 0, 0),
67206391eddSTaniya Das 	F(50000000, P_GPLL0_OUT_EVEN, 6, 0, 0),
67306391eddSTaniya Das 	F(100000000, P_GPLL0_OUT_MAIN, 6, 0, 0),
67406391eddSTaniya Das 	F(201500000, P_GPLL4_OUT_MAIN, 4, 0, 0),
67506391eddSTaniya Das 	{ }
67606391eddSTaniya Das };
67706391eddSTaniya Das 
67806391eddSTaniya Das static struct clk_rcg2 gcc_sdcc2_apps_clk_src = {
67906391eddSTaniya Das 	.cmd_rcgr = 0x1400c,
68006391eddSTaniya Das 	.mnd_width = 8,
68106391eddSTaniya Das 	.hid_width = 5,
68206391eddSTaniya Das 	.parent_map = gcc_parent_map_10,
68306391eddSTaniya Das 	.freq_tbl = ftbl_gcc_sdcc2_apps_clk_src,
68406391eddSTaniya Das 	.clkr.hw.init = &(struct clk_init_data){
68506391eddSTaniya Das 		.name = "gcc_sdcc2_apps_clk_src",
68606391eddSTaniya Das 		.parent_names = gcc_parent_names_10,
68706391eddSTaniya Das 		.num_parents = 5,
688*5e4b7e82SStephen Boyd 		.ops = &clk_rcg2_floor_ops,
68906391eddSTaniya Das 	},
69006391eddSTaniya Das };
69106391eddSTaniya Das 
69206391eddSTaniya Das static const struct freq_tbl ftbl_gcc_sdcc4_apps_clk_src[] = {
69306391eddSTaniya Das 	F(400000, P_BI_TCXO, 12, 1, 4),
69406391eddSTaniya Das 	F(9600000, P_BI_TCXO, 2, 0, 0),
69506391eddSTaniya Das 	F(19200000, P_BI_TCXO, 1, 0, 0),
69606391eddSTaniya Das 	F(25000000, P_GPLL0_OUT_MAIN, 12, 1, 2),
69706391eddSTaniya Das 	F(50000000, P_GPLL0_OUT_MAIN, 12, 0, 0),
69806391eddSTaniya Das 	F(100000000, P_GPLL0_OUT_MAIN, 6, 0, 0),
69906391eddSTaniya Das 	{ }
70006391eddSTaniya Das };
70106391eddSTaniya Das 
70206391eddSTaniya Das static struct clk_rcg2 gcc_sdcc4_apps_clk_src = {
70306391eddSTaniya Das 	.cmd_rcgr = 0x1600c,
70406391eddSTaniya Das 	.mnd_width = 8,
70506391eddSTaniya Das 	.hid_width = 5,
70606391eddSTaniya Das 	.parent_map = gcc_parent_map_0,
70706391eddSTaniya Das 	.freq_tbl = ftbl_gcc_sdcc4_apps_clk_src,
70806391eddSTaniya Das 	.clkr.hw.init = &(struct clk_init_data){
70906391eddSTaniya Das 		.name = "gcc_sdcc4_apps_clk_src",
71006391eddSTaniya Das 		.parent_names = gcc_parent_names_0,
71106391eddSTaniya Das 		.num_parents = 4,
712*5e4b7e82SStephen Boyd 		.ops = &clk_rcg2_floor_ops,
71306391eddSTaniya Das 	},
71406391eddSTaniya Das };
71506391eddSTaniya Das 
71606391eddSTaniya Das static const struct freq_tbl ftbl_gcc_tsif_ref_clk_src[] = {
71706391eddSTaniya Das 	F(105495, P_BI_TCXO, 2, 1, 91),
71806391eddSTaniya Das 	{ }
71906391eddSTaniya Das };
72006391eddSTaniya Das 
72106391eddSTaniya Das static struct clk_rcg2 gcc_tsif_ref_clk_src = {
72206391eddSTaniya Das 	.cmd_rcgr = 0x36010,
72306391eddSTaniya Das 	.mnd_width = 8,
72406391eddSTaniya Das 	.hid_width = 5,
72506391eddSTaniya Das 	.parent_map = gcc_parent_map_6,
72606391eddSTaniya Das 	.freq_tbl = ftbl_gcc_tsif_ref_clk_src,
72706391eddSTaniya Das 	.clkr.hw.init = &(struct clk_init_data){
72806391eddSTaniya Das 		.name = "gcc_tsif_ref_clk_src",
72906391eddSTaniya Das 		.parent_names = gcc_parent_names_6,
73006391eddSTaniya Das 		.num_parents = 5,
73106391eddSTaniya Das 		.ops = &clk_rcg2_ops,
73206391eddSTaniya Das 	},
73306391eddSTaniya Das };
73406391eddSTaniya Das 
73506391eddSTaniya Das static const struct freq_tbl ftbl_gcc_ufs_card_axi_clk_src[] = {
73606391eddSTaniya Das 	F(25000000, P_GPLL0_OUT_EVEN, 12, 0, 0),
73706391eddSTaniya Das 	F(50000000, P_GPLL0_OUT_EVEN, 6, 0, 0),
73806391eddSTaniya Das 	F(100000000, P_GPLL0_OUT_MAIN, 6, 0, 0),
73906391eddSTaniya Das 	F(200000000, P_GPLL0_OUT_MAIN, 3, 0, 0),
74006391eddSTaniya Das 	F(240000000, P_GPLL0_OUT_MAIN, 2.5, 0, 0),
74106391eddSTaniya Das 	{ }
74206391eddSTaniya Das };
74306391eddSTaniya Das 
74406391eddSTaniya Das static struct clk_rcg2 gcc_ufs_card_axi_clk_src = {
74506391eddSTaniya Das 	.cmd_rcgr = 0x7501c,
74606391eddSTaniya Das 	.mnd_width = 8,
74706391eddSTaniya Das 	.hid_width = 5,
74806391eddSTaniya Das 	.parent_map = gcc_parent_map_0,
74906391eddSTaniya Das 	.freq_tbl = ftbl_gcc_ufs_card_axi_clk_src,
75006391eddSTaniya Das 	.clkr.hw.init = &(struct clk_init_data){
75106391eddSTaniya Das 		.name = "gcc_ufs_card_axi_clk_src",
75206391eddSTaniya Das 		.parent_names = gcc_parent_names_0,
75306391eddSTaniya Das 		.num_parents = 4,
75406391eddSTaniya Das 		.ops = &clk_rcg2_shared_ops,
75506391eddSTaniya Das 	},
75606391eddSTaniya Das };
75706391eddSTaniya Das 
75806391eddSTaniya Das static const struct freq_tbl ftbl_gcc_ufs_card_ice_core_clk_src[] = {
75906391eddSTaniya Das 	F(37500000, P_GPLL0_OUT_EVEN, 8, 0, 0),
76006391eddSTaniya Das 	F(75000000, P_GPLL0_OUT_EVEN, 4, 0, 0),
76106391eddSTaniya Das 	F(150000000, P_GPLL0_OUT_MAIN, 4, 0, 0),
76206391eddSTaniya Das 	F(300000000, P_GPLL0_OUT_MAIN, 2, 0, 0),
76306391eddSTaniya Das 	{ }
76406391eddSTaniya Das };
76506391eddSTaniya Das 
76606391eddSTaniya Das static struct clk_rcg2 gcc_ufs_card_ice_core_clk_src = {
76706391eddSTaniya Das 	.cmd_rcgr = 0x7505c,
76806391eddSTaniya Das 	.mnd_width = 0,
76906391eddSTaniya Das 	.hid_width = 5,
77006391eddSTaniya Das 	.parent_map = gcc_parent_map_0,
77106391eddSTaniya Das 	.freq_tbl = ftbl_gcc_ufs_card_ice_core_clk_src,
77206391eddSTaniya Das 	.clkr.hw.init = &(struct clk_init_data){
77306391eddSTaniya Das 		.name = "gcc_ufs_card_ice_core_clk_src",
77406391eddSTaniya Das 		.parent_names = gcc_parent_names_0,
77506391eddSTaniya Das 		.num_parents = 4,
77606391eddSTaniya Das 		.ops = &clk_rcg2_shared_ops,
77706391eddSTaniya Das 	},
77806391eddSTaniya Das };
77906391eddSTaniya Das 
78006391eddSTaniya Das static struct clk_rcg2 gcc_ufs_card_phy_aux_clk_src = {
78106391eddSTaniya Das 	.cmd_rcgr = 0x75090,
78206391eddSTaniya Das 	.mnd_width = 0,
78306391eddSTaniya Das 	.hid_width = 5,
78406391eddSTaniya Das 	.parent_map = gcc_parent_map_4,
78506391eddSTaniya Das 	.freq_tbl = ftbl_gcc_cpuss_rbcpr_clk_src,
78606391eddSTaniya Das 	.clkr.hw.init = &(struct clk_init_data){
78706391eddSTaniya Das 		.name = "gcc_ufs_card_phy_aux_clk_src",
78806391eddSTaniya Das 		.parent_names = gcc_parent_names_4,
78906391eddSTaniya Das 		.num_parents = 2,
79006391eddSTaniya Das 		.ops = &clk_rcg2_ops,
79106391eddSTaniya Das 	},
79206391eddSTaniya Das };
79306391eddSTaniya Das 
79406391eddSTaniya Das static const struct freq_tbl ftbl_gcc_ufs_card_unipro_core_clk_src[] = {
79506391eddSTaniya Das 	F(37500000, P_GPLL0_OUT_EVEN, 8, 0, 0),
79606391eddSTaniya Das 	F(75000000, P_GPLL0_OUT_MAIN, 8, 0, 0),
79706391eddSTaniya Das 	F(150000000, P_GPLL0_OUT_MAIN, 4, 0, 0),
79806391eddSTaniya Das 	{ }
79906391eddSTaniya Das };
80006391eddSTaniya Das 
80106391eddSTaniya Das static struct clk_rcg2 gcc_ufs_card_unipro_core_clk_src = {
80206391eddSTaniya Das 	.cmd_rcgr = 0x75074,
80306391eddSTaniya Das 	.mnd_width = 0,
80406391eddSTaniya Das 	.hid_width = 5,
80506391eddSTaniya Das 	.parent_map = gcc_parent_map_0,
80606391eddSTaniya Das 	.freq_tbl = ftbl_gcc_ufs_card_unipro_core_clk_src,
80706391eddSTaniya Das 	.clkr.hw.init = &(struct clk_init_data){
80806391eddSTaniya Das 		.name = "gcc_ufs_card_unipro_core_clk_src",
80906391eddSTaniya Das 		.parent_names = gcc_parent_names_0,
81006391eddSTaniya Das 		.num_parents = 4,
81106391eddSTaniya Das 		.ops = &clk_rcg2_shared_ops,
81206391eddSTaniya Das 	},
81306391eddSTaniya Das };
81406391eddSTaniya Das 
81506391eddSTaniya Das static const struct freq_tbl ftbl_gcc_ufs_phy_axi_clk_src[] = {
81606391eddSTaniya Das 	F(25000000, P_GPLL0_OUT_EVEN, 12, 0, 0),
81706391eddSTaniya Das 	F(50000000, P_GPLL0_OUT_EVEN, 6, 0, 0),
81806391eddSTaniya Das 	F(100000000, P_GPLL0_OUT_MAIN, 6, 0, 0),
81906391eddSTaniya Das 	F(200000000, P_GPLL0_OUT_MAIN, 3, 0, 0),
82006391eddSTaniya Das 	F(240000000, P_GPLL0_OUT_MAIN, 2.5, 0, 0),
82106391eddSTaniya Das 	{ }
82206391eddSTaniya Das };
82306391eddSTaniya Das 
82406391eddSTaniya Das static struct clk_rcg2 gcc_ufs_phy_axi_clk_src = {
82506391eddSTaniya Das 	.cmd_rcgr = 0x7701c,
82606391eddSTaniya Das 	.mnd_width = 8,
82706391eddSTaniya Das 	.hid_width = 5,
82806391eddSTaniya Das 	.parent_map = gcc_parent_map_0,
82906391eddSTaniya Das 	.freq_tbl = ftbl_gcc_ufs_phy_axi_clk_src,
83006391eddSTaniya Das 	.clkr.hw.init = &(struct clk_init_data){
83106391eddSTaniya Das 		.name = "gcc_ufs_phy_axi_clk_src",
83206391eddSTaniya Das 		.parent_names = gcc_parent_names_0,
83306391eddSTaniya Das 		.num_parents = 4,
83406391eddSTaniya Das 		.ops = &clk_rcg2_shared_ops,
83506391eddSTaniya Das 	},
83606391eddSTaniya Das };
83706391eddSTaniya Das 
83806391eddSTaniya Das static struct clk_rcg2 gcc_ufs_phy_ice_core_clk_src = {
83906391eddSTaniya Das 	.cmd_rcgr = 0x7705c,
84006391eddSTaniya Das 	.mnd_width = 0,
84106391eddSTaniya Das 	.hid_width = 5,
84206391eddSTaniya Das 	.parent_map = gcc_parent_map_0,
84306391eddSTaniya Das 	.freq_tbl = ftbl_gcc_ufs_card_ice_core_clk_src,
84406391eddSTaniya Das 	.clkr.hw.init = &(struct clk_init_data){
84506391eddSTaniya Das 		.name = "gcc_ufs_phy_ice_core_clk_src",
84606391eddSTaniya Das 		.parent_names = gcc_parent_names_0,
84706391eddSTaniya Das 		.num_parents = 4,
84806391eddSTaniya Das 		.ops = &clk_rcg2_shared_ops,
84906391eddSTaniya Das 	},
85006391eddSTaniya Das };
85106391eddSTaniya Das 
85206391eddSTaniya Das static struct clk_rcg2 gcc_ufs_phy_phy_aux_clk_src = {
85306391eddSTaniya Das 	.cmd_rcgr = 0x77090,
85406391eddSTaniya Das 	.mnd_width = 0,
85506391eddSTaniya Das 	.hid_width = 5,
85606391eddSTaniya Das 	.parent_map = gcc_parent_map_4,
85706391eddSTaniya Das 	.freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
85806391eddSTaniya Das 	.clkr.hw.init = &(struct clk_init_data){
85906391eddSTaniya Das 		.name = "gcc_ufs_phy_phy_aux_clk_src",
86006391eddSTaniya Das 		.parent_names = gcc_parent_names_4,
86106391eddSTaniya Das 		.num_parents = 2,
86206391eddSTaniya Das 		.ops = &clk_rcg2_shared_ops,
86306391eddSTaniya Das 	},
86406391eddSTaniya Das };
86506391eddSTaniya Das 
86606391eddSTaniya Das static struct clk_rcg2 gcc_ufs_phy_unipro_core_clk_src = {
86706391eddSTaniya Das 	.cmd_rcgr = 0x77074,
86806391eddSTaniya Das 	.mnd_width = 0,
86906391eddSTaniya Das 	.hid_width = 5,
87006391eddSTaniya Das 	.parent_map = gcc_parent_map_0,
87106391eddSTaniya Das 	.freq_tbl = ftbl_gcc_ufs_card_unipro_core_clk_src,
87206391eddSTaniya Das 	.clkr.hw.init = &(struct clk_init_data){
87306391eddSTaniya Das 		.name = "gcc_ufs_phy_unipro_core_clk_src",
87406391eddSTaniya Das 		.parent_names = gcc_parent_names_0,
87506391eddSTaniya Das 		.num_parents = 4,
87606391eddSTaniya Das 		.ops = &clk_rcg2_shared_ops,
87706391eddSTaniya Das 	},
87806391eddSTaniya Das };
87906391eddSTaniya Das 
88006391eddSTaniya Das static const struct freq_tbl ftbl_gcc_usb30_prim_master_clk_src[] = {
88106391eddSTaniya Das 	F(33333333, P_GPLL0_OUT_EVEN, 9, 0, 0),
88206391eddSTaniya Das 	F(66666667, P_GPLL0_OUT_EVEN, 4.5, 0, 0),
88306391eddSTaniya Das 	F(133333333, P_GPLL0_OUT_MAIN, 4.5, 0, 0),
88406391eddSTaniya Das 	F(200000000, P_GPLL0_OUT_MAIN, 3, 0, 0),
88506391eddSTaniya Das 	F(240000000, P_GPLL0_OUT_MAIN, 2.5, 0, 0),
88606391eddSTaniya Das 	{ }
88706391eddSTaniya Das };
88806391eddSTaniya Das 
88906391eddSTaniya Das static struct clk_rcg2 gcc_usb30_prim_master_clk_src = {
89006391eddSTaniya Das 	.cmd_rcgr = 0xf018,
89106391eddSTaniya Das 	.mnd_width = 8,
89206391eddSTaniya Das 	.hid_width = 5,
89306391eddSTaniya Das 	.parent_map = gcc_parent_map_0,
89406391eddSTaniya Das 	.freq_tbl = ftbl_gcc_usb30_prim_master_clk_src,
89506391eddSTaniya Das 	.clkr.hw.init = &(struct clk_init_data){
89606391eddSTaniya Das 		.name = "gcc_usb30_prim_master_clk_src",
89706391eddSTaniya Das 		.parent_names = gcc_parent_names_0,
89806391eddSTaniya Das 		.num_parents = 4,
89906391eddSTaniya Das 		.ops = &clk_rcg2_shared_ops,
90006391eddSTaniya Das 	},
90106391eddSTaniya Das };
90206391eddSTaniya Das 
90306391eddSTaniya Das static const struct freq_tbl ftbl_gcc_usb30_prim_mock_utmi_clk_src[] = {
90406391eddSTaniya Das 	F(19200000, P_BI_TCXO, 1, 0, 0),
90506391eddSTaniya Das 	F(20000000, P_GPLL0_OUT_EVEN, 15, 0, 0),
90606391eddSTaniya Das 	F(40000000, P_GPLL0_OUT_EVEN, 7.5, 0, 0),
90706391eddSTaniya Das 	F(60000000, P_GPLL0_OUT_MAIN, 10, 0, 0),
90806391eddSTaniya Das 	{ }
90906391eddSTaniya Das };
91006391eddSTaniya Das 
91106391eddSTaniya Das static struct clk_rcg2 gcc_usb30_prim_mock_utmi_clk_src = {
91206391eddSTaniya Das 	.cmd_rcgr = 0xf030,
91306391eddSTaniya Das 	.mnd_width = 0,
91406391eddSTaniya Das 	.hid_width = 5,
91506391eddSTaniya Das 	.parent_map = gcc_parent_map_0,
91606391eddSTaniya Das 	.freq_tbl = ftbl_gcc_usb30_prim_mock_utmi_clk_src,
91706391eddSTaniya Das 	.clkr.hw.init = &(struct clk_init_data){
91806391eddSTaniya Das 		.name = "gcc_usb30_prim_mock_utmi_clk_src",
91906391eddSTaniya Das 		.parent_names = gcc_parent_names_0,
92006391eddSTaniya Das 		.num_parents = 4,
92106391eddSTaniya Das 		.ops = &clk_rcg2_shared_ops,
92206391eddSTaniya Das 	},
92306391eddSTaniya Das };
92406391eddSTaniya Das 
92506391eddSTaniya Das static struct clk_rcg2 gcc_usb30_sec_master_clk_src = {
92606391eddSTaniya Das 	.cmd_rcgr = 0x10018,
92706391eddSTaniya Das 	.mnd_width = 8,
92806391eddSTaniya Das 	.hid_width = 5,
92906391eddSTaniya Das 	.parent_map = gcc_parent_map_0,
93006391eddSTaniya Das 	.freq_tbl = ftbl_gcc_usb30_prim_master_clk_src,
93106391eddSTaniya Das 	.clkr.hw.init = &(struct clk_init_data){
93206391eddSTaniya Das 		.name = "gcc_usb30_sec_master_clk_src",
93306391eddSTaniya Das 		.parent_names = gcc_parent_names_0,
93406391eddSTaniya Das 		.num_parents = 4,
93506391eddSTaniya Das 		.ops = &clk_rcg2_ops,
93606391eddSTaniya Das 	},
93706391eddSTaniya Das };
93806391eddSTaniya Das 
93906391eddSTaniya Das static struct clk_rcg2 gcc_usb30_sec_mock_utmi_clk_src = {
94006391eddSTaniya Das 	.cmd_rcgr = 0x10030,
94106391eddSTaniya Das 	.mnd_width = 0,
94206391eddSTaniya Das 	.hid_width = 5,
94306391eddSTaniya Das 	.parent_map = gcc_parent_map_0,
94406391eddSTaniya Das 	.freq_tbl = ftbl_gcc_usb30_prim_mock_utmi_clk_src,
94506391eddSTaniya Das 	.clkr.hw.init = &(struct clk_init_data){
94606391eddSTaniya Das 		.name = "gcc_usb30_sec_mock_utmi_clk_src",
94706391eddSTaniya Das 		.parent_names = gcc_parent_names_0,
94806391eddSTaniya Das 		.num_parents = 4,
94906391eddSTaniya Das 		.ops = &clk_rcg2_ops,
95006391eddSTaniya Das 	},
95106391eddSTaniya Das };
95206391eddSTaniya Das 
95306391eddSTaniya Das static struct clk_rcg2 gcc_usb3_prim_phy_aux_clk_src = {
95406391eddSTaniya Das 	.cmd_rcgr = 0xf05c,
95506391eddSTaniya Das 	.mnd_width = 0,
95606391eddSTaniya Das 	.hid_width = 5,
95706391eddSTaniya Das 	.parent_map = gcc_parent_map_2,
95806391eddSTaniya Das 	.freq_tbl = ftbl_gcc_cpuss_rbcpr_clk_src,
95906391eddSTaniya Das 	.clkr.hw.init = &(struct clk_init_data){
96006391eddSTaniya Das 		.name = "gcc_usb3_prim_phy_aux_clk_src",
96106391eddSTaniya Das 		.parent_names = gcc_parent_names_2,
96206391eddSTaniya Das 		.num_parents = 3,
96306391eddSTaniya Das 		.ops = &clk_rcg2_ops,
96406391eddSTaniya Das 	},
96506391eddSTaniya Das };
96606391eddSTaniya Das 
96706391eddSTaniya Das static struct clk_rcg2 gcc_usb3_sec_phy_aux_clk_src = {
96806391eddSTaniya Das 	.cmd_rcgr = 0x1005c,
96906391eddSTaniya Das 	.mnd_width = 0,
97006391eddSTaniya Das 	.hid_width = 5,
97106391eddSTaniya Das 	.parent_map = gcc_parent_map_2,
97206391eddSTaniya Das 	.freq_tbl = ftbl_gcc_cpuss_rbcpr_clk_src,
97306391eddSTaniya Das 	.clkr.hw.init = &(struct clk_init_data){
97406391eddSTaniya Das 		.name = "gcc_usb3_sec_phy_aux_clk_src",
97506391eddSTaniya Das 		.parent_names = gcc_parent_names_2,
97606391eddSTaniya Das 		.num_parents = 3,
97706391eddSTaniya Das 		.ops = &clk_rcg2_shared_ops,
97806391eddSTaniya Das 	},
97906391eddSTaniya Das };
98006391eddSTaniya Das 
98106391eddSTaniya Das static struct clk_rcg2 gcc_vs_ctrl_clk_src = {
98206391eddSTaniya Das 	.cmd_rcgr = 0x7a030,
98306391eddSTaniya Das 	.mnd_width = 0,
98406391eddSTaniya Das 	.hid_width = 5,
98506391eddSTaniya Das 	.parent_map = gcc_parent_map_3,
98606391eddSTaniya Das 	.freq_tbl = ftbl_gcc_cpuss_rbcpr_clk_src,
98706391eddSTaniya Das 	.clkr.hw.init = &(struct clk_init_data){
98806391eddSTaniya Das 		.name = "gcc_vs_ctrl_clk_src",
98906391eddSTaniya Das 		.parent_names = gcc_parent_names_3,
99006391eddSTaniya Das 		.num_parents = 3,
99106391eddSTaniya Das 		.ops = &clk_rcg2_ops,
99206391eddSTaniya Das 	},
99306391eddSTaniya Das };
99406391eddSTaniya Das 
99506391eddSTaniya Das static const struct freq_tbl ftbl_gcc_vsensor_clk_src[] = {
99606391eddSTaniya Das 	F(19200000, P_BI_TCXO, 1, 0, 0),
99706391eddSTaniya Das 	F(300000000, P_GPLL0_OUT_MAIN, 2, 0, 0),
99806391eddSTaniya Das 	F(600000000, P_GPLL0_OUT_MAIN, 1, 0, 0),
99906391eddSTaniya Das 	{ }
100006391eddSTaniya Das };
100106391eddSTaniya Das 
100206391eddSTaniya Das static struct clk_rcg2 gcc_vsensor_clk_src = {
100306391eddSTaniya Das 	.cmd_rcgr = 0x7a018,
100406391eddSTaniya Das 	.mnd_width = 0,
100506391eddSTaniya Das 	.hid_width = 5,
100606391eddSTaniya Das 	.parent_map = gcc_parent_map_3,
100706391eddSTaniya Das 	.freq_tbl = ftbl_gcc_vsensor_clk_src,
100806391eddSTaniya Das 	.clkr.hw.init = &(struct clk_init_data){
100906391eddSTaniya Das 		.name = "gcc_vsensor_clk_src",
101006391eddSTaniya Das 		.parent_names = gcc_parent_names_8,
101106391eddSTaniya Das 		.num_parents = 3,
101206391eddSTaniya Das 		.ops = &clk_rcg2_ops,
101306391eddSTaniya Das 	},
101406391eddSTaniya Das };
101506391eddSTaniya Das 
101606391eddSTaniya Das static struct clk_branch gcc_aggre_noc_pcie_tbu_clk = {
101706391eddSTaniya Das 	.halt_reg = 0x90014,
101806391eddSTaniya Das 	.halt_check = BRANCH_HALT,
101906391eddSTaniya Das 	.clkr = {
102006391eddSTaniya Das 		.enable_reg = 0x90014,
102106391eddSTaniya Das 		.enable_mask = BIT(0),
102206391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
102306391eddSTaniya Das 			.name = "gcc_aggre_noc_pcie_tbu_clk",
102406391eddSTaniya Das 			.ops = &clk_branch2_ops,
102506391eddSTaniya Das 		},
102606391eddSTaniya Das 	},
102706391eddSTaniya Das };
102806391eddSTaniya Das 
102906391eddSTaniya Das static struct clk_branch gcc_aggre_ufs_card_axi_clk = {
103006391eddSTaniya Das 	.halt_reg = 0x82028,
103106391eddSTaniya Das 	.halt_check = BRANCH_HALT,
103206391eddSTaniya Das 	.hwcg_reg = 0x82028,
103306391eddSTaniya Das 	.hwcg_bit = 1,
103406391eddSTaniya Das 	.clkr = {
103506391eddSTaniya Das 		.enable_reg = 0x82028,
103606391eddSTaniya Das 		.enable_mask = BIT(0),
103706391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
103806391eddSTaniya Das 			.name = "gcc_aggre_ufs_card_axi_clk",
103906391eddSTaniya Das 			.parent_names = (const char *[]){
104006391eddSTaniya Das 				"gcc_ufs_card_axi_clk_src",
104106391eddSTaniya Das 			},
104206391eddSTaniya Das 			.num_parents = 1,
104306391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
104406391eddSTaniya Das 			.ops = &clk_branch2_ops,
104506391eddSTaniya Das 		},
104606391eddSTaniya Das 	},
104706391eddSTaniya Das };
104806391eddSTaniya Das 
104906391eddSTaniya Das static struct clk_branch gcc_aggre_ufs_phy_axi_clk = {
105006391eddSTaniya Das 	.halt_reg = 0x82024,
105106391eddSTaniya Das 	.halt_check = BRANCH_HALT,
105206391eddSTaniya Das 	.hwcg_reg = 0x82024,
105306391eddSTaniya Das 	.hwcg_bit = 1,
105406391eddSTaniya Das 	.clkr = {
105506391eddSTaniya Das 		.enable_reg = 0x82024,
105606391eddSTaniya Das 		.enable_mask = BIT(0),
105706391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
105806391eddSTaniya Das 			.name = "gcc_aggre_ufs_phy_axi_clk",
105906391eddSTaniya Das 			.parent_names = (const char *[]){
106006391eddSTaniya Das 				"gcc_ufs_phy_axi_clk_src",
106106391eddSTaniya Das 			},
106206391eddSTaniya Das 			.num_parents = 1,
106306391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
106406391eddSTaniya Das 			.ops = &clk_branch2_ops,
106506391eddSTaniya Das 		},
106606391eddSTaniya Das 	},
106706391eddSTaniya Das };
106806391eddSTaniya Das 
106906391eddSTaniya Das static struct clk_branch gcc_aggre_usb3_prim_axi_clk = {
107006391eddSTaniya Das 	.halt_reg = 0x8201c,
107106391eddSTaniya Das 	.halt_check = BRANCH_HALT,
107206391eddSTaniya Das 	.clkr = {
107306391eddSTaniya Das 		.enable_reg = 0x8201c,
107406391eddSTaniya Das 		.enable_mask = BIT(0),
107506391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
107606391eddSTaniya Das 			.name = "gcc_aggre_usb3_prim_axi_clk",
107706391eddSTaniya Das 			.parent_names = (const char *[]){
107806391eddSTaniya Das 				"gcc_usb30_prim_master_clk_src",
107906391eddSTaniya Das 			},
108006391eddSTaniya Das 			.num_parents = 1,
108106391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
108206391eddSTaniya Das 			.ops = &clk_branch2_ops,
108306391eddSTaniya Das 		},
108406391eddSTaniya Das 	},
108506391eddSTaniya Das };
108606391eddSTaniya Das 
108706391eddSTaniya Das static struct clk_branch gcc_aggre_usb3_sec_axi_clk = {
108806391eddSTaniya Das 	.halt_reg = 0x82020,
108906391eddSTaniya Das 	.halt_check = BRANCH_HALT,
109006391eddSTaniya Das 	.clkr = {
109106391eddSTaniya Das 		.enable_reg = 0x82020,
109206391eddSTaniya Das 		.enable_mask = BIT(0),
109306391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
109406391eddSTaniya Das 			.name = "gcc_aggre_usb3_sec_axi_clk",
109506391eddSTaniya Das 			.parent_names = (const char *[]){
109606391eddSTaniya Das 				"gcc_usb30_sec_master_clk_src",
109706391eddSTaniya Das 			},
109806391eddSTaniya Das 			.num_parents = 1,
109906391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
110006391eddSTaniya Das 			.ops = &clk_branch2_ops,
110106391eddSTaniya Das 		},
110206391eddSTaniya Das 	},
110306391eddSTaniya Das };
110406391eddSTaniya Das 
110506391eddSTaniya Das static struct clk_branch gcc_apc_vs_clk = {
110606391eddSTaniya Das 	.halt_reg = 0x7a050,
110706391eddSTaniya Das 	.halt_check = BRANCH_HALT,
110806391eddSTaniya Das 	.clkr = {
110906391eddSTaniya Das 		.enable_reg = 0x7a050,
111006391eddSTaniya Das 		.enable_mask = BIT(0),
111106391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
111206391eddSTaniya Das 			.name = "gcc_apc_vs_clk",
111306391eddSTaniya Das 			.parent_names = (const char *[]){
111406391eddSTaniya Das 				"gcc_vsensor_clk_src",
111506391eddSTaniya Das 			},
111606391eddSTaniya Das 			.num_parents = 1,
111706391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
111806391eddSTaniya Das 			.ops = &clk_branch2_ops,
111906391eddSTaniya Das 		},
112006391eddSTaniya Das 	},
112106391eddSTaniya Das };
112206391eddSTaniya Das 
112306391eddSTaniya Das static struct clk_branch gcc_boot_rom_ahb_clk = {
112406391eddSTaniya Das 	.halt_reg = 0x38004,
112506391eddSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
112606391eddSTaniya Das 	.hwcg_reg = 0x38004,
112706391eddSTaniya Das 	.hwcg_bit = 1,
112806391eddSTaniya Das 	.clkr = {
112906391eddSTaniya Das 		.enable_reg = 0x52004,
113006391eddSTaniya Das 		.enable_mask = BIT(10),
113106391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
113206391eddSTaniya Das 			.name = "gcc_boot_rom_ahb_clk",
113306391eddSTaniya Das 			.ops = &clk_branch2_ops,
113406391eddSTaniya Das 		},
113506391eddSTaniya Das 	},
113606391eddSTaniya Das };
113706391eddSTaniya Das 
113806391eddSTaniya Das static struct clk_branch gcc_camera_ahb_clk = {
113906391eddSTaniya Das 	.halt_reg = 0xb008,
114006391eddSTaniya Das 	.halt_check = BRANCH_HALT,
114106391eddSTaniya Das 	.hwcg_reg = 0xb008,
114206391eddSTaniya Das 	.hwcg_bit = 1,
114306391eddSTaniya Das 	.clkr = {
114406391eddSTaniya Das 		.enable_reg = 0xb008,
114506391eddSTaniya Das 		.enable_mask = BIT(0),
114606391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
114706391eddSTaniya Das 			.name = "gcc_camera_ahb_clk",
1148cfb8282eSAmit Nischal 			.flags = CLK_IS_CRITICAL,
114906391eddSTaniya Das 			.ops = &clk_branch2_ops,
115006391eddSTaniya Das 		},
115106391eddSTaniya Das 	},
115206391eddSTaniya Das };
115306391eddSTaniya Das 
115406391eddSTaniya Das static struct clk_branch gcc_camera_axi_clk = {
115506391eddSTaniya Das 	.halt_reg = 0xb020,
115606391eddSTaniya Das 	.halt_check = BRANCH_VOTED,
115706391eddSTaniya Das 	.clkr = {
115806391eddSTaniya Das 		.enable_reg = 0xb020,
115906391eddSTaniya Das 		.enable_mask = BIT(0),
116006391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
116106391eddSTaniya Das 			.name = "gcc_camera_axi_clk",
116206391eddSTaniya Das 			.ops = &clk_branch2_ops,
116306391eddSTaniya Das 		},
116406391eddSTaniya Das 	},
116506391eddSTaniya Das };
116606391eddSTaniya Das 
116706391eddSTaniya Das static struct clk_branch gcc_camera_xo_clk = {
116806391eddSTaniya Das 	.halt_reg = 0xb02c,
116906391eddSTaniya Das 	.halt_check = BRANCH_HALT,
117006391eddSTaniya Das 	.clkr = {
117106391eddSTaniya Das 		.enable_reg = 0xb02c,
117206391eddSTaniya Das 		.enable_mask = BIT(0),
117306391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
117406391eddSTaniya Das 			.name = "gcc_camera_xo_clk",
1175cfb8282eSAmit Nischal 			.flags = CLK_IS_CRITICAL,
117606391eddSTaniya Das 			.ops = &clk_branch2_ops,
117706391eddSTaniya Das 		},
117806391eddSTaniya Das 	},
117906391eddSTaniya Das };
118006391eddSTaniya Das 
118106391eddSTaniya Das static struct clk_branch gcc_ce1_ahb_clk = {
118206391eddSTaniya Das 	.halt_reg = 0x4100c,
118306391eddSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
118406391eddSTaniya Das 	.hwcg_reg = 0x4100c,
118506391eddSTaniya Das 	.hwcg_bit = 1,
118606391eddSTaniya Das 	.clkr = {
118706391eddSTaniya Das 		.enable_reg = 0x52004,
118806391eddSTaniya Das 		.enable_mask = BIT(3),
118906391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
119006391eddSTaniya Das 			.name = "gcc_ce1_ahb_clk",
119106391eddSTaniya Das 			.ops = &clk_branch2_ops,
119206391eddSTaniya Das 		},
119306391eddSTaniya Das 	},
119406391eddSTaniya Das };
119506391eddSTaniya Das 
119606391eddSTaniya Das static struct clk_branch gcc_ce1_axi_clk = {
119706391eddSTaniya Das 	.halt_reg = 0x41008,
119806391eddSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
119906391eddSTaniya Das 	.clkr = {
120006391eddSTaniya Das 		.enable_reg = 0x52004,
120106391eddSTaniya Das 		.enable_mask = BIT(4),
120206391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
120306391eddSTaniya Das 			.name = "gcc_ce1_axi_clk",
120406391eddSTaniya Das 			.ops = &clk_branch2_ops,
120506391eddSTaniya Das 		},
120606391eddSTaniya Das 	},
120706391eddSTaniya Das };
120806391eddSTaniya Das 
120906391eddSTaniya Das static struct clk_branch gcc_ce1_clk = {
121006391eddSTaniya Das 	.halt_reg = 0x41004,
121106391eddSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
121206391eddSTaniya Das 	.clkr = {
121306391eddSTaniya Das 		.enable_reg = 0x52004,
121406391eddSTaniya Das 		.enable_mask = BIT(5),
121506391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
121606391eddSTaniya Das 			.name = "gcc_ce1_clk",
121706391eddSTaniya Das 			.ops = &clk_branch2_ops,
121806391eddSTaniya Das 		},
121906391eddSTaniya Das 	},
122006391eddSTaniya Das };
122106391eddSTaniya Das 
122206391eddSTaniya Das static struct clk_branch gcc_cfg_noc_usb3_prim_axi_clk = {
122306391eddSTaniya Das 	.halt_reg = 0x502c,
122406391eddSTaniya Das 	.halt_check = BRANCH_HALT,
122506391eddSTaniya Das 	.clkr = {
122606391eddSTaniya Das 		.enable_reg = 0x502c,
122706391eddSTaniya Das 		.enable_mask = BIT(0),
122806391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
122906391eddSTaniya Das 			.name = "gcc_cfg_noc_usb3_prim_axi_clk",
123006391eddSTaniya Das 			.parent_names = (const char *[]){
123106391eddSTaniya Das 				"gcc_usb30_prim_master_clk_src",
123206391eddSTaniya Das 			},
123306391eddSTaniya Das 			.num_parents = 1,
123406391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
123506391eddSTaniya Das 			.ops = &clk_branch2_ops,
123606391eddSTaniya Das 		},
123706391eddSTaniya Das 	},
123806391eddSTaniya Das };
123906391eddSTaniya Das 
124006391eddSTaniya Das static struct clk_branch gcc_cfg_noc_usb3_sec_axi_clk = {
124106391eddSTaniya Das 	.halt_reg = 0x5030,
124206391eddSTaniya Das 	.halt_check = BRANCH_HALT,
124306391eddSTaniya Das 	.clkr = {
124406391eddSTaniya Das 		.enable_reg = 0x5030,
124506391eddSTaniya Das 		.enable_mask = BIT(0),
124606391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
124706391eddSTaniya Das 			.name = "gcc_cfg_noc_usb3_sec_axi_clk",
124806391eddSTaniya Das 			.parent_names = (const char *[]){
124906391eddSTaniya Das 				"gcc_usb30_sec_master_clk_src",
125006391eddSTaniya Das 			},
125106391eddSTaniya Das 			.num_parents = 1,
125206391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
125306391eddSTaniya Das 			.ops = &clk_branch2_ops,
125406391eddSTaniya Das 		},
125506391eddSTaniya Das 	},
125606391eddSTaniya Das };
125706391eddSTaniya Das 
125806391eddSTaniya Das static struct clk_branch gcc_cpuss_ahb_clk = {
125906391eddSTaniya Das 	.halt_reg = 0x48000,
126006391eddSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
126106391eddSTaniya Das 	.clkr = {
126206391eddSTaniya Das 		.enable_reg = 0x52004,
126306391eddSTaniya Das 		.enable_mask = BIT(21),
126406391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
126506391eddSTaniya Das 			.name = "gcc_cpuss_ahb_clk",
126606391eddSTaniya Das 			.parent_names = (const char *[]){
126706391eddSTaniya Das 				"gcc_cpuss_ahb_clk_src",
126806391eddSTaniya Das 			},
126906391eddSTaniya Das 			.num_parents = 1,
127006391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT | CLK_IS_CRITICAL,
127106391eddSTaniya Das 			.ops = &clk_branch2_ops,
127206391eddSTaniya Das 		},
127306391eddSTaniya Das 	},
127406391eddSTaniya Das };
127506391eddSTaniya Das 
127606391eddSTaniya Das static struct clk_branch gcc_cpuss_rbcpr_clk = {
127706391eddSTaniya Das 	.halt_reg = 0x48008,
127806391eddSTaniya Das 	.halt_check = BRANCH_HALT,
127906391eddSTaniya Das 	.clkr = {
128006391eddSTaniya Das 		.enable_reg = 0x48008,
128106391eddSTaniya Das 		.enable_mask = BIT(0),
128206391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
128306391eddSTaniya Das 			.name = "gcc_cpuss_rbcpr_clk",
128406391eddSTaniya Das 			.parent_names = (const char *[]){
128506391eddSTaniya Das 				"gcc_cpuss_rbcpr_clk_src",
128606391eddSTaniya Das 			},
128706391eddSTaniya Das 			.num_parents = 1,
128806391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
128906391eddSTaniya Das 			.ops = &clk_branch2_ops,
129006391eddSTaniya Das 		},
129106391eddSTaniya Das 	},
129206391eddSTaniya Das };
129306391eddSTaniya Das 
129406391eddSTaniya Das static struct clk_branch gcc_ddrss_gpu_axi_clk = {
129506391eddSTaniya Das 	.halt_reg = 0x44038,
129606391eddSTaniya Das 	.halt_check = BRANCH_VOTED,
129706391eddSTaniya Das 	.clkr = {
129806391eddSTaniya Das 		.enable_reg = 0x44038,
129906391eddSTaniya Das 		.enable_mask = BIT(0),
130006391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
130106391eddSTaniya Das 			.name = "gcc_ddrss_gpu_axi_clk",
130206391eddSTaniya Das 			.ops = &clk_branch2_ops,
130306391eddSTaniya Das 		},
130406391eddSTaniya Das 	},
130506391eddSTaniya Das };
130606391eddSTaniya Das 
130706391eddSTaniya Das static struct clk_branch gcc_disp_ahb_clk = {
130806391eddSTaniya Das 	.halt_reg = 0xb00c,
130906391eddSTaniya Das 	.halt_check = BRANCH_HALT,
131006391eddSTaniya Das 	.hwcg_reg = 0xb00c,
131106391eddSTaniya Das 	.hwcg_bit = 1,
131206391eddSTaniya Das 	.clkr = {
131306391eddSTaniya Das 		.enable_reg = 0xb00c,
131406391eddSTaniya Das 		.enable_mask = BIT(0),
131506391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
131606391eddSTaniya Das 			.name = "gcc_disp_ahb_clk",
1317cfb8282eSAmit Nischal 			.flags = CLK_IS_CRITICAL,
131806391eddSTaniya Das 			.ops = &clk_branch2_ops,
131906391eddSTaniya Das 		},
132006391eddSTaniya Das 	},
132106391eddSTaniya Das };
132206391eddSTaniya Das 
132306391eddSTaniya Das static struct clk_branch gcc_disp_axi_clk = {
132406391eddSTaniya Das 	.halt_reg = 0xb024,
132506391eddSTaniya Das 	.halt_check = BRANCH_VOTED,
132606391eddSTaniya Das 	.clkr = {
132706391eddSTaniya Das 		.enable_reg = 0xb024,
132806391eddSTaniya Das 		.enable_mask = BIT(0),
132906391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
133006391eddSTaniya Das 			.name = "gcc_disp_axi_clk",
133106391eddSTaniya Das 			.ops = &clk_branch2_ops,
133206391eddSTaniya Das 		},
133306391eddSTaniya Das 	},
133406391eddSTaniya Das };
133506391eddSTaniya Das 
133606391eddSTaniya Das static struct clk_branch gcc_disp_gpll0_clk_src = {
133706391eddSTaniya Das 	.halt_check = BRANCH_HALT_DELAY,
133806391eddSTaniya Das 	.clkr = {
133906391eddSTaniya Das 		.enable_reg = 0x52004,
134006391eddSTaniya Das 		.enable_mask = BIT(18),
134106391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
134206391eddSTaniya Das 			.name = "gcc_disp_gpll0_clk_src",
134306391eddSTaniya Das 			.parent_names = (const char *[]){
134406391eddSTaniya Das 				"gpll0",
134506391eddSTaniya Das 			},
134606391eddSTaniya Das 			.num_parents = 1,
134706391eddSTaniya Das 			.ops = &clk_branch2_ops,
134806391eddSTaniya Das 		},
134906391eddSTaniya Das 	},
135006391eddSTaniya Das };
135106391eddSTaniya Das 
135206391eddSTaniya Das static struct clk_branch gcc_disp_gpll0_div_clk_src = {
135306391eddSTaniya Das 	.halt_check = BRANCH_HALT_DELAY,
135406391eddSTaniya Das 	.clkr = {
135506391eddSTaniya Das 		.enable_reg = 0x52004,
135606391eddSTaniya Das 		.enable_mask = BIT(19),
135706391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
135806391eddSTaniya Das 			.name = "gcc_disp_gpll0_div_clk_src",
135906391eddSTaniya Das 			.parent_names = (const char *[]){
136006391eddSTaniya Das 				"gpll0_out_even",
136106391eddSTaniya Das 			},
136206391eddSTaniya Das 			.num_parents = 1,
136306391eddSTaniya Das 			.ops = &clk_branch2_ops,
136406391eddSTaniya Das 		},
136506391eddSTaniya Das 	},
136606391eddSTaniya Das };
136706391eddSTaniya Das 
136806391eddSTaniya Das static struct clk_branch gcc_disp_xo_clk = {
136906391eddSTaniya Das 	.halt_reg = 0xb030,
137006391eddSTaniya Das 	.halt_check = BRANCH_HALT,
137106391eddSTaniya Das 	.clkr = {
137206391eddSTaniya Das 		.enable_reg = 0xb030,
137306391eddSTaniya Das 		.enable_mask = BIT(0),
137406391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
137506391eddSTaniya Das 			.name = "gcc_disp_xo_clk",
1376cfb8282eSAmit Nischal 			.flags = CLK_IS_CRITICAL,
137706391eddSTaniya Das 			.ops = &clk_branch2_ops,
137806391eddSTaniya Das 		},
137906391eddSTaniya Das 	},
138006391eddSTaniya Das };
138106391eddSTaniya Das 
138206391eddSTaniya Das static struct clk_branch gcc_gp1_clk = {
138306391eddSTaniya Das 	.halt_reg = 0x64000,
138406391eddSTaniya Das 	.halt_check = BRANCH_HALT,
138506391eddSTaniya Das 	.clkr = {
138606391eddSTaniya Das 		.enable_reg = 0x64000,
138706391eddSTaniya Das 		.enable_mask = BIT(0),
138806391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
138906391eddSTaniya Das 			.name = "gcc_gp1_clk",
139006391eddSTaniya Das 			.parent_names = (const char *[]){
139106391eddSTaniya Das 				"gcc_gp1_clk_src",
139206391eddSTaniya Das 			},
139306391eddSTaniya Das 			.num_parents = 1,
139406391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
139506391eddSTaniya Das 			.ops = &clk_branch2_ops,
139606391eddSTaniya Das 		},
139706391eddSTaniya Das 	},
139806391eddSTaniya Das };
139906391eddSTaniya Das 
140006391eddSTaniya Das static struct clk_branch gcc_gp2_clk = {
140106391eddSTaniya Das 	.halt_reg = 0x65000,
140206391eddSTaniya Das 	.halt_check = BRANCH_HALT,
140306391eddSTaniya Das 	.clkr = {
140406391eddSTaniya Das 		.enable_reg = 0x65000,
140506391eddSTaniya Das 		.enable_mask = BIT(0),
140606391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
140706391eddSTaniya Das 			.name = "gcc_gp2_clk",
140806391eddSTaniya Das 			.parent_names = (const char *[]){
140906391eddSTaniya Das 				"gcc_gp2_clk_src",
141006391eddSTaniya Das 			},
141106391eddSTaniya Das 			.num_parents = 1,
141206391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
141306391eddSTaniya Das 			.ops = &clk_branch2_ops,
141406391eddSTaniya Das 		},
141506391eddSTaniya Das 	},
141606391eddSTaniya Das };
141706391eddSTaniya Das 
141806391eddSTaniya Das static struct clk_branch gcc_gp3_clk = {
141906391eddSTaniya Das 	.halt_reg = 0x66000,
142006391eddSTaniya Das 	.halt_check = BRANCH_HALT,
142106391eddSTaniya Das 	.clkr = {
142206391eddSTaniya Das 		.enable_reg = 0x66000,
142306391eddSTaniya Das 		.enable_mask = BIT(0),
142406391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
142506391eddSTaniya Das 			.name = "gcc_gp3_clk",
142606391eddSTaniya Das 			.parent_names = (const char *[]){
142706391eddSTaniya Das 				"gcc_gp3_clk_src",
142806391eddSTaniya Das 			},
142906391eddSTaniya Das 			.num_parents = 1,
143006391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
143106391eddSTaniya Das 			.ops = &clk_branch2_ops,
143206391eddSTaniya Das 		},
143306391eddSTaniya Das 	},
143406391eddSTaniya Das };
143506391eddSTaniya Das 
143606391eddSTaniya Das static struct clk_branch gcc_gpu_cfg_ahb_clk = {
143706391eddSTaniya Das 	.halt_reg = 0x71004,
143806391eddSTaniya Das 	.halt_check = BRANCH_HALT,
143906391eddSTaniya Das 	.hwcg_reg = 0x71004,
144006391eddSTaniya Das 	.hwcg_bit = 1,
144106391eddSTaniya Das 	.clkr = {
144206391eddSTaniya Das 		.enable_reg = 0x71004,
144306391eddSTaniya Das 		.enable_mask = BIT(0),
144406391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
144506391eddSTaniya Das 			.name = "gcc_gpu_cfg_ahb_clk",
1446cfb8282eSAmit Nischal 			.flags = CLK_IS_CRITICAL,
144706391eddSTaniya Das 			.ops = &clk_branch2_ops,
144806391eddSTaniya Das 		},
144906391eddSTaniya Das 	},
145006391eddSTaniya Das };
145106391eddSTaniya Das 
145206391eddSTaniya Das static struct clk_branch gcc_gpu_gpll0_clk_src = {
145306391eddSTaniya Das 	.halt_check = BRANCH_HALT_DELAY,
145406391eddSTaniya Das 	.clkr = {
145506391eddSTaniya Das 		.enable_reg = 0x52004,
145606391eddSTaniya Das 		.enable_mask = BIT(15),
145706391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
145806391eddSTaniya Das 			.name = "gcc_gpu_gpll0_clk_src",
145906391eddSTaniya Das 			.parent_names = (const char *[]){
146006391eddSTaniya Das 				"gpll0",
146106391eddSTaniya Das 			},
146206391eddSTaniya Das 			.num_parents = 1,
146306391eddSTaniya Das 			.ops = &clk_branch2_ops,
146406391eddSTaniya Das 		},
146506391eddSTaniya Das 	},
146606391eddSTaniya Das };
146706391eddSTaniya Das 
146806391eddSTaniya Das static struct clk_branch gcc_gpu_gpll0_div_clk_src = {
146906391eddSTaniya Das 	.halt_check = BRANCH_HALT_DELAY,
147006391eddSTaniya Das 	.clkr = {
147106391eddSTaniya Das 		.enable_reg = 0x52004,
147206391eddSTaniya Das 		.enable_mask = BIT(16),
147306391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
147406391eddSTaniya Das 			.name = "gcc_gpu_gpll0_div_clk_src",
147506391eddSTaniya Das 			.parent_names = (const char *[]){
147606391eddSTaniya Das 				"gpll0_out_even",
147706391eddSTaniya Das 			},
147806391eddSTaniya Das 			.num_parents = 1,
147906391eddSTaniya Das 			.ops = &clk_branch2_ops,
148006391eddSTaniya Das 		},
148106391eddSTaniya Das 	},
148206391eddSTaniya Das };
148306391eddSTaniya Das 
148406391eddSTaniya Das static struct clk_branch gcc_gpu_iref_clk = {
148506391eddSTaniya Das 	.halt_reg = 0x8c010,
148606391eddSTaniya Das 	.halt_check = BRANCH_HALT,
148706391eddSTaniya Das 	.clkr = {
148806391eddSTaniya Das 		.enable_reg = 0x8c010,
148906391eddSTaniya Das 		.enable_mask = BIT(0),
149006391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
149106391eddSTaniya Das 			.name = "gcc_gpu_iref_clk",
149206391eddSTaniya Das 			.ops = &clk_branch2_ops,
149306391eddSTaniya Das 		},
149406391eddSTaniya Das 	},
149506391eddSTaniya Das };
149606391eddSTaniya Das 
149706391eddSTaniya Das static struct clk_branch gcc_gpu_memnoc_gfx_clk = {
149806391eddSTaniya Das 	.halt_reg = 0x7100c,
149906391eddSTaniya Das 	.halt_check = BRANCH_VOTED,
150006391eddSTaniya Das 	.clkr = {
150106391eddSTaniya Das 		.enable_reg = 0x7100c,
150206391eddSTaniya Das 		.enable_mask = BIT(0),
150306391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
150406391eddSTaniya Das 			.name = "gcc_gpu_memnoc_gfx_clk",
150506391eddSTaniya Das 			.ops = &clk_branch2_ops,
150606391eddSTaniya Das 		},
150706391eddSTaniya Das 	},
150806391eddSTaniya Das };
150906391eddSTaniya Das 
151006391eddSTaniya Das static struct clk_branch gcc_gpu_snoc_dvm_gfx_clk = {
151106391eddSTaniya Das 	.halt_reg = 0x71018,
151206391eddSTaniya Das 	.halt_check = BRANCH_HALT,
151306391eddSTaniya Das 	.clkr = {
151406391eddSTaniya Das 		.enable_reg = 0x71018,
151506391eddSTaniya Das 		.enable_mask = BIT(0),
151606391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
151706391eddSTaniya Das 			.name = "gcc_gpu_snoc_dvm_gfx_clk",
151806391eddSTaniya Das 			.ops = &clk_branch2_ops,
151906391eddSTaniya Das 		},
152006391eddSTaniya Das 	},
152106391eddSTaniya Das };
152206391eddSTaniya Das 
152306391eddSTaniya Das static struct clk_branch gcc_gpu_vs_clk = {
152406391eddSTaniya Das 	.halt_reg = 0x7a04c,
152506391eddSTaniya Das 	.halt_check = BRANCH_HALT,
152606391eddSTaniya Das 	.clkr = {
152706391eddSTaniya Das 		.enable_reg = 0x7a04c,
152806391eddSTaniya Das 		.enable_mask = BIT(0),
152906391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
153006391eddSTaniya Das 			.name = "gcc_gpu_vs_clk",
153106391eddSTaniya Das 			.parent_names = (const char *[]){
153206391eddSTaniya Das 				"gcc_vsensor_clk_src",
153306391eddSTaniya Das 			},
153406391eddSTaniya Das 			.num_parents = 1,
153506391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
153606391eddSTaniya Das 			.ops = &clk_branch2_ops,
153706391eddSTaniya Das 		},
153806391eddSTaniya Das 	},
153906391eddSTaniya Das };
154006391eddSTaniya Das 
154106391eddSTaniya Das static struct clk_branch gcc_mss_axis2_clk = {
154206391eddSTaniya Das 	.halt_reg = 0x8a008,
154306391eddSTaniya Das 	.halt_check = BRANCH_HALT,
154406391eddSTaniya Das 	.clkr = {
154506391eddSTaniya Das 		.enable_reg = 0x8a008,
154606391eddSTaniya Das 		.enable_mask = BIT(0),
154706391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
154806391eddSTaniya Das 			.name = "gcc_mss_axis2_clk",
154906391eddSTaniya Das 			.ops = &clk_branch2_ops,
155006391eddSTaniya Das 		},
155106391eddSTaniya Das 	},
155206391eddSTaniya Das };
155306391eddSTaniya Das 
155406391eddSTaniya Das static struct clk_branch gcc_mss_cfg_ahb_clk = {
155506391eddSTaniya Das 	.halt_reg = 0x8a000,
155606391eddSTaniya Das 	.halt_check = BRANCH_HALT,
155706391eddSTaniya Das 	.hwcg_reg = 0x8a000,
155806391eddSTaniya Das 	.hwcg_bit = 1,
155906391eddSTaniya Das 	.clkr = {
156006391eddSTaniya Das 		.enable_reg = 0x8a000,
156106391eddSTaniya Das 		.enable_mask = BIT(0),
156206391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
156306391eddSTaniya Das 			.name = "gcc_mss_cfg_ahb_clk",
156406391eddSTaniya Das 			.ops = &clk_branch2_ops,
156506391eddSTaniya Das 		},
156606391eddSTaniya Das 	},
156706391eddSTaniya Das };
156806391eddSTaniya Das 
156906391eddSTaniya Das static struct clk_branch gcc_mss_gpll0_div_clk_src = {
157006391eddSTaniya Das 	.halt_check = BRANCH_HALT_DELAY,
157106391eddSTaniya Das 	.clkr = {
157206391eddSTaniya Das 		.enable_reg = 0x52004,
157306391eddSTaniya Das 		.enable_mask = BIT(17),
157406391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
157506391eddSTaniya Das 			.name = "gcc_mss_gpll0_div_clk_src",
157606391eddSTaniya Das 			.ops = &clk_branch2_ops,
157706391eddSTaniya Das 		},
157806391eddSTaniya Das 	},
157906391eddSTaniya Das };
158006391eddSTaniya Das 
158106391eddSTaniya Das static struct clk_branch gcc_mss_mfab_axis_clk = {
158206391eddSTaniya Das 	.halt_reg = 0x8a004,
158306391eddSTaniya Das 	.halt_check = BRANCH_VOTED,
158406391eddSTaniya Das 	.hwcg_reg = 0x8a004,
158506391eddSTaniya Das 	.hwcg_bit = 1,
158606391eddSTaniya Das 	.clkr = {
158706391eddSTaniya Das 		.enable_reg = 0x8a004,
158806391eddSTaniya Das 		.enable_mask = BIT(0),
158906391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
159006391eddSTaniya Das 			.name = "gcc_mss_mfab_axis_clk",
159106391eddSTaniya Das 			.ops = &clk_branch2_ops,
159206391eddSTaniya Das 		},
159306391eddSTaniya Das 	},
159406391eddSTaniya Das };
159506391eddSTaniya Das 
159606391eddSTaniya Das static struct clk_branch gcc_mss_q6_memnoc_axi_clk = {
159706391eddSTaniya Das 	.halt_reg = 0x8a154,
159806391eddSTaniya Das 	.halt_check = BRANCH_VOTED,
159906391eddSTaniya Das 	.clkr = {
160006391eddSTaniya Das 		.enable_reg = 0x8a154,
160106391eddSTaniya Das 		.enable_mask = BIT(0),
160206391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
160306391eddSTaniya Das 			.name = "gcc_mss_q6_memnoc_axi_clk",
160406391eddSTaniya Das 			.ops = &clk_branch2_ops,
160506391eddSTaniya Das 		},
160606391eddSTaniya Das 	},
160706391eddSTaniya Das };
160806391eddSTaniya Das 
160906391eddSTaniya Das static struct clk_branch gcc_mss_snoc_axi_clk = {
161006391eddSTaniya Das 	.halt_reg = 0x8a150,
161106391eddSTaniya Das 	.halt_check = BRANCH_HALT,
161206391eddSTaniya Das 	.clkr = {
161306391eddSTaniya Das 		.enable_reg = 0x8a150,
161406391eddSTaniya Das 		.enable_mask = BIT(0),
161506391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
161606391eddSTaniya Das 			.name = "gcc_mss_snoc_axi_clk",
161706391eddSTaniya Das 			.ops = &clk_branch2_ops,
161806391eddSTaniya Das 		},
161906391eddSTaniya Das 	},
162006391eddSTaniya Das };
162106391eddSTaniya Das 
162206391eddSTaniya Das static struct clk_branch gcc_mss_vs_clk = {
162306391eddSTaniya Das 	.halt_reg = 0x7a048,
162406391eddSTaniya Das 	.halt_check = BRANCH_HALT,
162506391eddSTaniya Das 	.clkr = {
162606391eddSTaniya Das 		.enable_reg = 0x7a048,
162706391eddSTaniya Das 		.enable_mask = BIT(0),
162806391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
162906391eddSTaniya Das 			.name = "gcc_mss_vs_clk",
163006391eddSTaniya Das 			.parent_names = (const char *[]){
163106391eddSTaniya Das 				"gcc_vsensor_clk_src",
163206391eddSTaniya Das 			},
163306391eddSTaniya Das 			.num_parents = 1,
163406391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
163506391eddSTaniya Das 			.ops = &clk_branch2_ops,
163606391eddSTaniya Das 		},
163706391eddSTaniya Das 	},
163806391eddSTaniya Das };
163906391eddSTaniya Das 
164006391eddSTaniya Das static struct clk_branch gcc_pcie_0_aux_clk = {
164106391eddSTaniya Das 	.halt_reg = 0x6b01c,
164206391eddSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
164306391eddSTaniya Das 	.clkr = {
164406391eddSTaniya Das 		.enable_reg = 0x5200c,
164506391eddSTaniya Das 		.enable_mask = BIT(3),
164606391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
164706391eddSTaniya Das 			.name = "gcc_pcie_0_aux_clk",
164806391eddSTaniya Das 			.parent_names = (const char *[]){
164906391eddSTaniya Das 				"gcc_pcie_0_aux_clk_src",
165006391eddSTaniya Das 			},
165106391eddSTaniya Das 			.num_parents = 1,
165206391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
165306391eddSTaniya Das 			.ops = &clk_branch2_ops,
165406391eddSTaniya Das 		},
165506391eddSTaniya Das 	},
165606391eddSTaniya Das };
165706391eddSTaniya Das 
165806391eddSTaniya Das static struct clk_branch gcc_pcie_0_cfg_ahb_clk = {
165906391eddSTaniya Das 	.halt_reg = 0x6b018,
166006391eddSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
166106391eddSTaniya Das 	.hwcg_reg = 0x6b018,
166206391eddSTaniya Das 	.hwcg_bit = 1,
166306391eddSTaniya Das 	.clkr = {
166406391eddSTaniya Das 		.enable_reg = 0x5200c,
166506391eddSTaniya Das 		.enable_mask = BIT(2),
166606391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
166706391eddSTaniya Das 			.name = "gcc_pcie_0_cfg_ahb_clk",
166806391eddSTaniya Das 			.ops = &clk_branch2_ops,
166906391eddSTaniya Das 		},
167006391eddSTaniya Das 	},
167106391eddSTaniya Das };
167206391eddSTaniya Das 
167306391eddSTaniya Das static struct clk_branch gcc_pcie_0_clkref_clk = {
167406391eddSTaniya Das 	.halt_reg = 0x8c00c,
167506391eddSTaniya Das 	.halt_check = BRANCH_HALT,
167606391eddSTaniya Das 	.clkr = {
167706391eddSTaniya Das 		.enable_reg = 0x8c00c,
167806391eddSTaniya Das 		.enable_mask = BIT(0),
167906391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
168006391eddSTaniya Das 			.name = "gcc_pcie_0_clkref_clk",
168106391eddSTaniya Das 			.ops = &clk_branch2_ops,
168206391eddSTaniya Das 		},
168306391eddSTaniya Das 	},
168406391eddSTaniya Das };
168506391eddSTaniya Das 
168606391eddSTaniya Das static struct clk_branch gcc_pcie_0_mstr_axi_clk = {
168706391eddSTaniya Das 	.halt_reg = 0x6b014,
168806391eddSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
168906391eddSTaniya Das 	.clkr = {
169006391eddSTaniya Das 		.enable_reg = 0x5200c,
169106391eddSTaniya Das 		.enable_mask = BIT(1),
169206391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
169306391eddSTaniya Das 			.name = "gcc_pcie_0_mstr_axi_clk",
169406391eddSTaniya Das 			.ops = &clk_branch2_ops,
169506391eddSTaniya Das 		},
169606391eddSTaniya Das 	},
169706391eddSTaniya Das };
169806391eddSTaniya Das 
169906391eddSTaniya Das static struct clk_branch gcc_pcie_0_pipe_clk = {
170006391eddSTaniya Das 	.halt_check = BRANCH_HALT_SKIP,
170106391eddSTaniya Das 	.clkr = {
170206391eddSTaniya Das 		.enable_reg = 0x5200c,
170306391eddSTaniya Das 		.enable_mask = BIT(4),
170406391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
170506391eddSTaniya Das 			.name = "gcc_pcie_0_pipe_clk",
17064b5a59a2SBjorn Andersson 			.parent_names = (const char *[]){ "pcie_0_pipe_clk" },
17074b5a59a2SBjorn Andersson 			.num_parents = 1,
17084b5a59a2SBjorn Andersson 			.flags = CLK_SET_RATE_PARENT,
170906391eddSTaniya Das 			.ops = &clk_branch2_ops,
171006391eddSTaniya Das 		},
171106391eddSTaniya Das 	},
171206391eddSTaniya Das };
171306391eddSTaniya Das 
171406391eddSTaniya Das static struct clk_branch gcc_pcie_0_slv_axi_clk = {
171506391eddSTaniya Das 	.halt_reg = 0x6b010,
171606391eddSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
171706391eddSTaniya Das 	.hwcg_reg = 0x6b010,
171806391eddSTaniya Das 	.hwcg_bit = 1,
171906391eddSTaniya Das 	.clkr = {
172006391eddSTaniya Das 		.enable_reg = 0x5200c,
172106391eddSTaniya Das 		.enable_mask = BIT(0),
172206391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
172306391eddSTaniya Das 			.name = "gcc_pcie_0_slv_axi_clk",
172406391eddSTaniya Das 			.ops = &clk_branch2_ops,
172506391eddSTaniya Das 		},
172606391eddSTaniya Das 	},
172706391eddSTaniya Das };
172806391eddSTaniya Das 
172906391eddSTaniya Das static struct clk_branch gcc_pcie_0_slv_q2a_axi_clk = {
173006391eddSTaniya Das 	.halt_reg = 0x6b00c,
173106391eddSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
173206391eddSTaniya Das 	.clkr = {
173306391eddSTaniya Das 		.enable_reg = 0x5200c,
173406391eddSTaniya Das 		.enable_mask = BIT(5),
173506391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
173606391eddSTaniya Das 			.name = "gcc_pcie_0_slv_q2a_axi_clk",
173706391eddSTaniya Das 			.ops = &clk_branch2_ops,
173806391eddSTaniya Das 		},
173906391eddSTaniya Das 	},
174006391eddSTaniya Das };
174106391eddSTaniya Das 
174206391eddSTaniya Das static struct clk_branch gcc_pcie_1_aux_clk = {
174306391eddSTaniya Das 	.halt_reg = 0x8d01c,
174406391eddSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
174506391eddSTaniya Das 	.clkr = {
174606391eddSTaniya Das 		.enable_reg = 0x52004,
174706391eddSTaniya Das 		.enable_mask = BIT(29),
174806391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
174906391eddSTaniya Das 			.name = "gcc_pcie_1_aux_clk",
175006391eddSTaniya Das 			.parent_names = (const char *[]){
175106391eddSTaniya Das 				"gcc_pcie_1_aux_clk_src",
175206391eddSTaniya Das 			},
175306391eddSTaniya Das 			.num_parents = 1,
175406391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
175506391eddSTaniya Das 			.ops = &clk_branch2_ops,
175606391eddSTaniya Das 		},
175706391eddSTaniya Das 	},
175806391eddSTaniya Das };
175906391eddSTaniya Das 
176006391eddSTaniya Das static struct clk_branch gcc_pcie_1_cfg_ahb_clk = {
176106391eddSTaniya Das 	.halt_reg = 0x8d018,
176206391eddSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
176306391eddSTaniya Das 	.hwcg_reg = 0x8d018,
176406391eddSTaniya Das 	.hwcg_bit = 1,
176506391eddSTaniya Das 	.clkr = {
176606391eddSTaniya Das 		.enable_reg = 0x52004,
176706391eddSTaniya Das 		.enable_mask = BIT(28),
176806391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
176906391eddSTaniya Das 			.name = "gcc_pcie_1_cfg_ahb_clk",
177006391eddSTaniya Das 			.ops = &clk_branch2_ops,
177106391eddSTaniya Das 		},
177206391eddSTaniya Das 	},
177306391eddSTaniya Das };
177406391eddSTaniya Das 
177506391eddSTaniya Das static struct clk_branch gcc_pcie_1_clkref_clk = {
177606391eddSTaniya Das 	.halt_reg = 0x8c02c,
177706391eddSTaniya Das 	.halt_check = BRANCH_HALT,
177806391eddSTaniya Das 	.clkr = {
177906391eddSTaniya Das 		.enable_reg = 0x8c02c,
178006391eddSTaniya Das 		.enable_mask = BIT(0),
178106391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
178206391eddSTaniya Das 			.name = "gcc_pcie_1_clkref_clk",
178306391eddSTaniya Das 			.ops = &clk_branch2_ops,
178406391eddSTaniya Das 		},
178506391eddSTaniya Das 	},
178606391eddSTaniya Das };
178706391eddSTaniya Das 
178806391eddSTaniya Das static struct clk_branch gcc_pcie_1_mstr_axi_clk = {
178906391eddSTaniya Das 	.halt_reg = 0x8d014,
179006391eddSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
179106391eddSTaniya Das 	.clkr = {
179206391eddSTaniya Das 		.enable_reg = 0x52004,
179306391eddSTaniya Das 		.enable_mask = BIT(27),
179406391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
179506391eddSTaniya Das 			.name = "gcc_pcie_1_mstr_axi_clk",
179606391eddSTaniya Das 			.ops = &clk_branch2_ops,
179706391eddSTaniya Das 		},
179806391eddSTaniya Das 	},
179906391eddSTaniya Das };
180006391eddSTaniya Das 
180106391eddSTaniya Das static struct clk_branch gcc_pcie_1_pipe_clk = {
180206391eddSTaniya Das 	.halt_check = BRANCH_HALT_SKIP,
180306391eddSTaniya Das 	.clkr = {
180406391eddSTaniya Das 		.enable_reg = 0x52004,
180506391eddSTaniya Das 		.enable_mask = BIT(30),
180606391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
180706391eddSTaniya Das 			.name = "gcc_pcie_1_pipe_clk",
18084b5a59a2SBjorn Andersson 			.parent_names = (const char *[]){ "pcie_1_pipe_clk" },
18094b5a59a2SBjorn Andersson 			.num_parents = 1,
181006391eddSTaniya Das 			.ops = &clk_branch2_ops,
181106391eddSTaniya Das 		},
181206391eddSTaniya Das 	},
181306391eddSTaniya Das };
181406391eddSTaniya Das 
181506391eddSTaniya Das static struct clk_branch gcc_pcie_1_slv_axi_clk = {
181606391eddSTaniya Das 	.halt_reg = 0x8d010,
181706391eddSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
181806391eddSTaniya Das 	.hwcg_reg = 0x8d010,
181906391eddSTaniya Das 	.hwcg_bit = 1,
182006391eddSTaniya Das 	.clkr = {
182106391eddSTaniya Das 		.enable_reg = 0x52004,
182206391eddSTaniya Das 		.enable_mask = BIT(26),
182306391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
182406391eddSTaniya Das 			.name = "gcc_pcie_1_slv_axi_clk",
182506391eddSTaniya Das 			.ops = &clk_branch2_ops,
182606391eddSTaniya Das 		},
182706391eddSTaniya Das 	},
182806391eddSTaniya Das };
182906391eddSTaniya Das 
183006391eddSTaniya Das static struct clk_branch gcc_pcie_1_slv_q2a_axi_clk = {
183106391eddSTaniya Das 	.halt_reg = 0x8d00c,
183206391eddSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
183306391eddSTaniya Das 	.clkr = {
183406391eddSTaniya Das 		.enable_reg = 0x52004,
183506391eddSTaniya Das 		.enable_mask = BIT(25),
183606391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
183706391eddSTaniya Das 			.name = "gcc_pcie_1_slv_q2a_axi_clk",
183806391eddSTaniya Das 			.ops = &clk_branch2_ops,
183906391eddSTaniya Das 		},
184006391eddSTaniya Das 	},
184106391eddSTaniya Das };
184206391eddSTaniya Das 
184306391eddSTaniya Das static struct clk_branch gcc_pcie_phy_aux_clk = {
184406391eddSTaniya Das 	.halt_reg = 0x6f004,
184506391eddSTaniya Das 	.halt_check = BRANCH_HALT,
184606391eddSTaniya Das 	.clkr = {
184706391eddSTaniya Das 		.enable_reg = 0x6f004,
184806391eddSTaniya Das 		.enable_mask = BIT(0),
184906391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
185006391eddSTaniya Das 			.name = "gcc_pcie_phy_aux_clk",
185106391eddSTaniya Das 			.parent_names = (const char *[]){
185206391eddSTaniya Das 				"gcc_pcie_0_aux_clk_src",
185306391eddSTaniya Das 			},
185406391eddSTaniya Das 			.num_parents = 1,
185506391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
185606391eddSTaniya Das 			.ops = &clk_branch2_ops,
185706391eddSTaniya Das 		},
185806391eddSTaniya Das 	},
185906391eddSTaniya Das };
186006391eddSTaniya Das 
186106391eddSTaniya Das static struct clk_branch gcc_pcie_phy_refgen_clk = {
186206391eddSTaniya Das 	.halt_reg = 0x6f02c,
186306391eddSTaniya Das 	.halt_check = BRANCH_HALT,
186406391eddSTaniya Das 	.clkr = {
186506391eddSTaniya Das 		.enable_reg = 0x6f02c,
186606391eddSTaniya Das 		.enable_mask = BIT(0),
186706391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
186806391eddSTaniya Das 			.name = "gcc_pcie_phy_refgen_clk",
186906391eddSTaniya Das 			.parent_names = (const char *[]){
187006391eddSTaniya Das 				"gcc_pcie_phy_refgen_clk_src",
187106391eddSTaniya Das 			},
187206391eddSTaniya Das 			.num_parents = 1,
187306391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
187406391eddSTaniya Das 			.ops = &clk_branch2_ops,
187506391eddSTaniya Das 		},
187606391eddSTaniya Das 	},
187706391eddSTaniya Das };
187806391eddSTaniya Das 
187906391eddSTaniya Das static struct clk_branch gcc_pdm2_clk = {
188006391eddSTaniya Das 	.halt_reg = 0x3300c,
188106391eddSTaniya Das 	.halt_check = BRANCH_HALT,
188206391eddSTaniya Das 	.clkr = {
188306391eddSTaniya Das 		.enable_reg = 0x3300c,
188406391eddSTaniya Das 		.enable_mask = BIT(0),
188506391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
188606391eddSTaniya Das 			.name = "gcc_pdm2_clk",
188706391eddSTaniya Das 			.parent_names = (const char *[]){
188806391eddSTaniya Das 				"gcc_pdm2_clk_src",
188906391eddSTaniya Das 			},
189006391eddSTaniya Das 			.num_parents = 1,
189106391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
189206391eddSTaniya Das 			.ops = &clk_branch2_ops,
189306391eddSTaniya Das 		},
189406391eddSTaniya Das 	},
189506391eddSTaniya Das };
189606391eddSTaniya Das 
189706391eddSTaniya Das static struct clk_branch gcc_pdm_ahb_clk = {
189806391eddSTaniya Das 	.halt_reg = 0x33004,
189906391eddSTaniya Das 	.halt_check = BRANCH_HALT,
190006391eddSTaniya Das 	.hwcg_reg = 0x33004,
190106391eddSTaniya Das 	.hwcg_bit = 1,
190206391eddSTaniya Das 	.clkr = {
190306391eddSTaniya Das 		.enable_reg = 0x33004,
190406391eddSTaniya Das 		.enable_mask = BIT(0),
190506391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
190606391eddSTaniya Das 			.name = "gcc_pdm_ahb_clk",
190706391eddSTaniya Das 			.ops = &clk_branch2_ops,
190806391eddSTaniya Das 		},
190906391eddSTaniya Das 	},
191006391eddSTaniya Das };
191106391eddSTaniya Das 
191206391eddSTaniya Das static struct clk_branch gcc_pdm_xo4_clk = {
191306391eddSTaniya Das 	.halt_reg = 0x33008,
191406391eddSTaniya Das 	.halt_check = BRANCH_HALT,
191506391eddSTaniya Das 	.clkr = {
191606391eddSTaniya Das 		.enable_reg = 0x33008,
191706391eddSTaniya Das 		.enable_mask = BIT(0),
191806391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
191906391eddSTaniya Das 			.name = "gcc_pdm_xo4_clk",
192006391eddSTaniya Das 			.ops = &clk_branch2_ops,
192106391eddSTaniya Das 		},
192206391eddSTaniya Das 	},
192306391eddSTaniya Das };
192406391eddSTaniya Das 
192506391eddSTaniya Das static struct clk_branch gcc_prng_ahb_clk = {
192606391eddSTaniya Das 	.halt_reg = 0x34004,
192706391eddSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
192806391eddSTaniya Das 	.hwcg_reg = 0x34004,
192906391eddSTaniya Das 	.hwcg_bit = 1,
193006391eddSTaniya Das 	.clkr = {
193106391eddSTaniya Das 		.enable_reg = 0x52004,
193206391eddSTaniya Das 		.enable_mask = BIT(13),
193306391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
193406391eddSTaniya Das 			.name = "gcc_prng_ahb_clk",
193506391eddSTaniya Das 			.ops = &clk_branch2_ops,
193606391eddSTaniya Das 		},
193706391eddSTaniya Das 	},
193806391eddSTaniya Das };
193906391eddSTaniya Das 
194006391eddSTaniya Das static struct clk_branch gcc_qmip_camera_ahb_clk = {
194106391eddSTaniya Das 	.halt_reg = 0xb014,
194206391eddSTaniya Das 	.halt_check = BRANCH_HALT,
194306391eddSTaniya Das 	.hwcg_reg = 0xb014,
194406391eddSTaniya Das 	.hwcg_bit = 1,
194506391eddSTaniya Das 	.clkr = {
194606391eddSTaniya Das 		.enable_reg = 0xb014,
194706391eddSTaniya Das 		.enable_mask = BIT(0),
194806391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
194906391eddSTaniya Das 			.name = "gcc_qmip_camera_ahb_clk",
195006391eddSTaniya Das 			.ops = &clk_branch2_ops,
195106391eddSTaniya Das 		},
195206391eddSTaniya Das 	},
195306391eddSTaniya Das };
195406391eddSTaniya Das 
195506391eddSTaniya Das static struct clk_branch gcc_qmip_disp_ahb_clk = {
195606391eddSTaniya Das 	.halt_reg = 0xb018,
195706391eddSTaniya Das 	.halt_check = BRANCH_HALT,
195806391eddSTaniya Das 	.hwcg_reg = 0xb018,
195906391eddSTaniya Das 	.hwcg_bit = 1,
196006391eddSTaniya Das 	.clkr = {
196106391eddSTaniya Das 		.enable_reg = 0xb018,
196206391eddSTaniya Das 		.enable_mask = BIT(0),
196306391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
196406391eddSTaniya Das 			.name = "gcc_qmip_disp_ahb_clk",
196506391eddSTaniya Das 			.ops = &clk_branch2_ops,
196606391eddSTaniya Das 		},
196706391eddSTaniya Das 	},
196806391eddSTaniya Das };
196906391eddSTaniya Das 
197006391eddSTaniya Das static struct clk_branch gcc_qmip_video_ahb_clk = {
197106391eddSTaniya Das 	.halt_reg = 0xb010,
197206391eddSTaniya Das 	.halt_check = BRANCH_HALT,
197306391eddSTaniya Das 	.hwcg_reg = 0xb010,
197406391eddSTaniya Das 	.hwcg_bit = 1,
197506391eddSTaniya Das 	.clkr = {
197606391eddSTaniya Das 		.enable_reg = 0xb010,
197706391eddSTaniya Das 		.enable_mask = BIT(0),
197806391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
197906391eddSTaniya Das 			.name = "gcc_qmip_video_ahb_clk",
198006391eddSTaniya Das 			.ops = &clk_branch2_ops,
198106391eddSTaniya Das 		},
198206391eddSTaniya Das 	},
198306391eddSTaniya Das };
198406391eddSTaniya Das 
19854f83d9b8SDouglas Anderson static struct clk_branch gcc_qspi_cnoc_periph_ahb_clk = {
19864f83d9b8SDouglas Anderson 	.halt_reg = 0x4b000,
19874f83d9b8SDouglas Anderson 	.halt_check = BRANCH_HALT,
19884f83d9b8SDouglas Anderson 	.clkr = {
19894f83d9b8SDouglas Anderson 		.enable_reg = 0x4b000,
19904f83d9b8SDouglas Anderson 		.enable_mask = BIT(0),
19914f83d9b8SDouglas Anderson 		.hw.init = &(struct clk_init_data){
19924f83d9b8SDouglas Anderson 			.name = "gcc_qspi_cnoc_periph_ahb_clk",
19934f83d9b8SDouglas Anderson 			.ops = &clk_branch2_ops,
19944f83d9b8SDouglas Anderson 		},
19954f83d9b8SDouglas Anderson 	},
19964f83d9b8SDouglas Anderson };
19974f83d9b8SDouglas Anderson 
19984f83d9b8SDouglas Anderson static struct clk_branch gcc_qspi_core_clk = {
19994f83d9b8SDouglas Anderson 	.halt_reg = 0x4b004,
20004f83d9b8SDouglas Anderson 	.halt_check = BRANCH_HALT,
20014f83d9b8SDouglas Anderson 	.clkr = {
20024f83d9b8SDouglas Anderson 		.enable_reg = 0x4b004,
20034f83d9b8SDouglas Anderson 		.enable_mask = BIT(0),
20044f83d9b8SDouglas Anderson 		.hw.init = &(struct clk_init_data){
20054f83d9b8SDouglas Anderson 			.name = "gcc_qspi_core_clk",
20064f83d9b8SDouglas Anderson 			.parent_names = (const char *[]){
20074f83d9b8SDouglas Anderson 				"gcc_qspi_core_clk_src",
20084f83d9b8SDouglas Anderson 			},
20094f83d9b8SDouglas Anderson 			.num_parents = 1,
20104f83d9b8SDouglas Anderson 			.flags = CLK_SET_RATE_PARENT,
20114f83d9b8SDouglas Anderson 			.ops = &clk_branch2_ops,
20124f83d9b8SDouglas Anderson 		},
20134f83d9b8SDouglas Anderson 	},
20144f83d9b8SDouglas Anderson };
20154f83d9b8SDouglas Anderson 
201606391eddSTaniya Das static struct clk_branch gcc_qupv3_wrap0_s0_clk = {
201706391eddSTaniya Das 	.halt_reg = 0x17030,
201806391eddSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
201906391eddSTaniya Das 	.clkr = {
202006391eddSTaniya Das 		.enable_reg = 0x5200c,
202106391eddSTaniya Das 		.enable_mask = BIT(10),
202206391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
202306391eddSTaniya Das 			.name = "gcc_qupv3_wrap0_s0_clk",
202406391eddSTaniya Das 			.parent_names = (const char *[]){
202506391eddSTaniya Das 				"gcc_qupv3_wrap0_s0_clk_src",
202606391eddSTaniya Das 			},
202706391eddSTaniya Das 			.num_parents = 1,
202806391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
202906391eddSTaniya Das 			.ops = &clk_branch2_ops,
203006391eddSTaniya Das 		},
203106391eddSTaniya Das 	},
203206391eddSTaniya Das };
203306391eddSTaniya Das 
203406391eddSTaniya Das static struct clk_branch gcc_qupv3_wrap0_s1_clk = {
203506391eddSTaniya Das 	.halt_reg = 0x17160,
203606391eddSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
203706391eddSTaniya Das 	.clkr = {
203806391eddSTaniya Das 		.enable_reg = 0x5200c,
203906391eddSTaniya Das 		.enable_mask = BIT(11),
204006391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
204106391eddSTaniya Das 			.name = "gcc_qupv3_wrap0_s1_clk",
204206391eddSTaniya Das 			.parent_names = (const char *[]){
204306391eddSTaniya Das 				"gcc_qupv3_wrap0_s1_clk_src",
204406391eddSTaniya Das 			},
204506391eddSTaniya Das 			.num_parents = 1,
204606391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
204706391eddSTaniya Das 			.ops = &clk_branch2_ops,
204806391eddSTaniya Das 		},
204906391eddSTaniya Das 	},
205006391eddSTaniya Das };
205106391eddSTaniya Das 
205206391eddSTaniya Das static struct clk_branch gcc_qupv3_wrap0_s2_clk = {
205306391eddSTaniya Das 	.halt_reg = 0x17290,
205406391eddSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
205506391eddSTaniya Das 	.clkr = {
205606391eddSTaniya Das 		.enable_reg = 0x5200c,
205706391eddSTaniya Das 		.enable_mask = BIT(12),
205806391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
205906391eddSTaniya Das 			.name = "gcc_qupv3_wrap0_s2_clk",
206006391eddSTaniya Das 			.parent_names = (const char *[]){
206106391eddSTaniya Das 				"gcc_qupv3_wrap0_s2_clk_src",
206206391eddSTaniya Das 			},
206306391eddSTaniya Das 			.num_parents = 1,
206406391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
206506391eddSTaniya Das 			.ops = &clk_branch2_ops,
206606391eddSTaniya Das 		},
206706391eddSTaniya Das 	},
206806391eddSTaniya Das };
206906391eddSTaniya Das 
207006391eddSTaniya Das static struct clk_branch gcc_qupv3_wrap0_s3_clk = {
207106391eddSTaniya Das 	.halt_reg = 0x173c0,
207206391eddSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
207306391eddSTaniya Das 	.clkr = {
207406391eddSTaniya Das 		.enable_reg = 0x5200c,
207506391eddSTaniya Das 		.enable_mask = BIT(13),
207606391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
207706391eddSTaniya Das 			.name = "gcc_qupv3_wrap0_s3_clk",
207806391eddSTaniya Das 			.parent_names = (const char *[]){
207906391eddSTaniya Das 				"gcc_qupv3_wrap0_s3_clk_src",
208006391eddSTaniya Das 			},
208106391eddSTaniya Das 			.num_parents = 1,
208206391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
208306391eddSTaniya Das 			.ops = &clk_branch2_ops,
208406391eddSTaniya Das 		},
208506391eddSTaniya Das 	},
208606391eddSTaniya Das };
208706391eddSTaniya Das 
208806391eddSTaniya Das static struct clk_branch gcc_qupv3_wrap0_s4_clk = {
208906391eddSTaniya Das 	.halt_reg = 0x174f0,
209006391eddSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
209106391eddSTaniya Das 	.clkr = {
209206391eddSTaniya Das 		.enable_reg = 0x5200c,
209306391eddSTaniya Das 		.enable_mask = BIT(14),
209406391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
209506391eddSTaniya Das 			.name = "gcc_qupv3_wrap0_s4_clk",
209606391eddSTaniya Das 			.parent_names = (const char *[]){
209706391eddSTaniya Das 				"gcc_qupv3_wrap0_s4_clk_src",
209806391eddSTaniya Das 			},
209906391eddSTaniya Das 			.num_parents = 1,
210006391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
210106391eddSTaniya Das 			.ops = &clk_branch2_ops,
210206391eddSTaniya Das 		},
210306391eddSTaniya Das 	},
210406391eddSTaniya Das };
210506391eddSTaniya Das 
210606391eddSTaniya Das static struct clk_branch gcc_qupv3_wrap0_s5_clk = {
210706391eddSTaniya Das 	.halt_reg = 0x17620,
210806391eddSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
210906391eddSTaniya Das 	.clkr = {
211006391eddSTaniya Das 		.enable_reg = 0x5200c,
211106391eddSTaniya Das 		.enable_mask = BIT(15),
211206391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
211306391eddSTaniya Das 			.name = "gcc_qupv3_wrap0_s5_clk",
211406391eddSTaniya Das 			.parent_names = (const char *[]){
211506391eddSTaniya Das 				"gcc_qupv3_wrap0_s5_clk_src",
211606391eddSTaniya Das 			},
211706391eddSTaniya Das 			.num_parents = 1,
211806391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
211906391eddSTaniya Das 			.ops = &clk_branch2_ops,
212006391eddSTaniya Das 		},
212106391eddSTaniya Das 	},
212206391eddSTaniya Das };
212306391eddSTaniya Das 
212406391eddSTaniya Das static struct clk_branch gcc_qupv3_wrap0_s6_clk = {
212506391eddSTaniya Das 	.halt_reg = 0x17750,
212606391eddSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
212706391eddSTaniya Das 	.clkr = {
212806391eddSTaniya Das 		.enable_reg = 0x5200c,
212906391eddSTaniya Das 		.enable_mask = BIT(16),
213006391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
213106391eddSTaniya Das 			.name = "gcc_qupv3_wrap0_s6_clk",
213206391eddSTaniya Das 			.parent_names = (const char *[]){
213306391eddSTaniya Das 				"gcc_qupv3_wrap0_s6_clk_src",
213406391eddSTaniya Das 			},
213506391eddSTaniya Das 			.num_parents = 1,
213606391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
213706391eddSTaniya Das 			.ops = &clk_branch2_ops,
213806391eddSTaniya Das 		},
213906391eddSTaniya Das 	},
214006391eddSTaniya Das };
214106391eddSTaniya Das 
214206391eddSTaniya Das static struct clk_branch gcc_qupv3_wrap0_s7_clk = {
214306391eddSTaniya Das 	.halt_reg = 0x17880,
214406391eddSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
214506391eddSTaniya Das 	.clkr = {
214606391eddSTaniya Das 		.enable_reg = 0x5200c,
214706391eddSTaniya Das 		.enable_mask = BIT(17),
214806391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
214906391eddSTaniya Das 			.name = "gcc_qupv3_wrap0_s7_clk",
215006391eddSTaniya Das 			.parent_names = (const char *[]){
215106391eddSTaniya Das 				"gcc_qupv3_wrap0_s7_clk_src",
215206391eddSTaniya Das 			},
215306391eddSTaniya Das 			.num_parents = 1,
215406391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
215506391eddSTaniya Das 			.ops = &clk_branch2_ops,
215606391eddSTaniya Das 		},
215706391eddSTaniya Das 	},
215806391eddSTaniya Das };
215906391eddSTaniya Das 
216006391eddSTaniya Das static struct clk_branch gcc_qupv3_wrap1_s0_clk = {
216106391eddSTaniya Das 	.halt_reg = 0x18014,
216206391eddSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
216306391eddSTaniya Das 	.clkr = {
216406391eddSTaniya Das 		.enable_reg = 0x5200c,
216506391eddSTaniya Das 		.enable_mask = BIT(22),
216606391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
216706391eddSTaniya Das 			.name = "gcc_qupv3_wrap1_s0_clk",
216806391eddSTaniya Das 			.parent_names = (const char *[]){
216906391eddSTaniya Das 				"gcc_qupv3_wrap1_s0_clk_src",
217006391eddSTaniya Das 			},
217106391eddSTaniya Das 			.num_parents = 1,
217206391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
217306391eddSTaniya Das 			.ops = &clk_branch2_ops,
217406391eddSTaniya Das 		},
217506391eddSTaniya Das 	},
217606391eddSTaniya Das };
217706391eddSTaniya Das 
217806391eddSTaniya Das static struct clk_branch gcc_qupv3_wrap1_s1_clk = {
217906391eddSTaniya Das 	.halt_reg = 0x18144,
218006391eddSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
218106391eddSTaniya Das 	.clkr = {
218206391eddSTaniya Das 		.enable_reg = 0x5200c,
218306391eddSTaniya Das 		.enable_mask = BIT(23),
218406391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
218506391eddSTaniya Das 			.name = "gcc_qupv3_wrap1_s1_clk",
218606391eddSTaniya Das 			.parent_names = (const char *[]){
218706391eddSTaniya Das 				"gcc_qupv3_wrap1_s1_clk_src",
218806391eddSTaniya Das 			},
218906391eddSTaniya Das 			.num_parents = 1,
219006391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
219106391eddSTaniya Das 			.ops = &clk_branch2_ops,
219206391eddSTaniya Das 		},
219306391eddSTaniya Das 	},
219406391eddSTaniya Das };
219506391eddSTaniya Das 
219606391eddSTaniya Das static struct clk_branch gcc_qupv3_wrap1_s2_clk = {
219706391eddSTaniya Das 	.halt_reg = 0x18274,
219806391eddSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
219906391eddSTaniya Das 	.clkr = {
220006391eddSTaniya Das 		.enable_reg = 0x5200c,
220106391eddSTaniya Das 		.enable_mask = BIT(24),
220206391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
220306391eddSTaniya Das 			.name = "gcc_qupv3_wrap1_s2_clk",
220406391eddSTaniya Das 			.parent_names = (const char *[]){
220506391eddSTaniya Das 				"gcc_qupv3_wrap1_s2_clk_src",
220606391eddSTaniya Das 			},
220706391eddSTaniya Das 			.num_parents = 1,
220806391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
220906391eddSTaniya Das 			.ops = &clk_branch2_ops,
221006391eddSTaniya Das 		},
221106391eddSTaniya Das 	},
221206391eddSTaniya Das };
221306391eddSTaniya Das 
221406391eddSTaniya Das static struct clk_branch gcc_qupv3_wrap1_s3_clk = {
221506391eddSTaniya Das 	.halt_reg = 0x183a4,
221606391eddSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
221706391eddSTaniya Das 	.clkr = {
221806391eddSTaniya Das 		.enable_reg = 0x5200c,
221906391eddSTaniya Das 		.enable_mask = BIT(25),
222006391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
222106391eddSTaniya Das 			.name = "gcc_qupv3_wrap1_s3_clk",
222206391eddSTaniya Das 			.parent_names = (const char *[]){
222306391eddSTaniya Das 				"gcc_qupv3_wrap1_s3_clk_src",
222406391eddSTaniya Das 			},
222506391eddSTaniya Das 			.num_parents = 1,
222606391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
222706391eddSTaniya Das 			.ops = &clk_branch2_ops,
222806391eddSTaniya Das 		},
222906391eddSTaniya Das 	},
223006391eddSTaniya Das };
223106391eddSTaniya Das 
223206391eddSTaniya Das static struct clk_branch gcc_qupv3_wrap1_s4_clk = {
223306391eddSTaniya Das 	.halt_reg = 0x184d4,
223406391eddSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
223506391eddSTaniya Das 	.clkr = {
223606391eddSTaniya Das 		.enable_reg = 0x5200c,
223706391eddSTaniya Das 		.enable_mask = BIT(26),
223806391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
223906391eddSTaniya Das 			.name = "gcc_qupv3_wrap1_s4_clk",
224006391eddSTaniya Das 			.parent_names = (const char *[]){
224106391eddSTaniya Das 				"gcc_qupv3_wrap1_s4_clk_src",
224206391eddSTaniya Das 			},
224306391eddSTaniya Das 			.num_parents = 1,
224406391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
224506391eddSTaniya Das 			.ops = &clk_branch2_ops,
224606391eddSTaniya Das 		},
224706391eddSTaniya Das 	},
224806391eddSTaniya Das };
224906391eddSTaniya Das 
225006391eddSTaniya Das static struct clk_branch gcc_qupv3_wrap1_s5_clk = {
225106391eddSTaniya Das 	.halt_reg = 0x18604,
225206391eddSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
225306391eddSTaniya Das 	.clkr = {
225406391eddSTaniya Das 		.enable_reg = 0x5200c,
225506391eddSTaniya Das 		.enable_mask = BIT(27),
225606391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
225706391eddSTaniya Das 			.name = "gcc_qupv3_wrap1_s5_clk",
225806391eddSTaniya Das 			.parent_names = (const char *[]){
225906391eddSTaniya Das 				"gcc_qupv3_wrap1_s5_clk_src",
226006391eddSTaniya Das 			},
226106391eddSTaniya Das 			.num_parents = 1,
226206391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
226306391eddSTaniya Das 			.ops = &clk_branch2_ops,
226406391eddSTaniya Das 		},
226506391eddSTaniya Das 	},
226606391eddSTaniya Das };
226706391eddSTaniya Das 
226806391eddSTaniya Das static struct clk_branch gcc_qupv3_wrap1_s6_clk = {
226906391eddSTaniya Das 	.halt_reg = 0x18734,
227006391eddSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
227106391eddSTaniya Das 	.clkr = {
227206391eddSTaniya Das 		.enable_reg = 0x5200c,
227306391eddSTaniya Das 		.enable_mask = BIT(28),
227406391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
227506391eddSTaniya Das 			.name = "gcc_qupv3_wrap1_s6_clk",
227606391eddSTaniya Das 			.parent_names = (const char *[]){
227706391eddSTaniya Das 				"gcc_qupv3_wrap1_s6_clk_src",
227806391eddSTaniya Das 			},
227906391eddSTaniya Das 			.num_parents = 1,
228006391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
228106391eddSTaniya Das 			.ops = &clk_branch2_ops,
228206391eddSTaniya Das 		},
228306391eddSTaniya Das 	},
228406391eddSTaniya Das };
228506391eddSTaniya Das 
228606391eddSTaniya Das static struct clk_branch gcc_qupv3_wrap1_s7_clk = {
228706391eddSTaniya Das 	.halt_reg = 0x18864,
228806391eddSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
228906391eddSTaniya Das 	.clkr = {
229006391eddSTaniya Das 		.enable_reg = 0x5200c,
229106391eddSTaniya Das 		.enable_mask = BIT(29),
229206391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
229306391eddSTaniya Das 			.name = "gcc_qupv3_wrap1_s7_clk",
229406391eddSTaniya Das 			.parent_names = (const char *[]){
229506391eddSTaniya Das 				"gcc_qupv3_wrap1_s7_clk_src",
229606391eddSTaniya Das 			},
229706391eddSTaniya Das 			.num_parents = 1,
229806391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
229906391eddSTaniya Das 			.ops = &clk_branch2_ops,
230006391eddSTaniya Das 		},
230106391eddSTaniya Das 	},
230206391eddSTaniya Das };
230306391eddSTaniya Das 
230406391eddSTaniya Das static struct clk_branch gcc_qupv3_wrap_0_m_ahb_clk = {
230506391eddSTaniya Das 	.halt_reg = 0x17004,
230606391eddSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
230706391eddSTaniya Das 	.clkr = {
230806391eddSTaniya Das 		.enable_reg = 0x5200c,
230906391eddSTaniya Das 		.enable_mask = BIT(6),
231006391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
231106391eddSTaniya Das 			.name = "gcc_qupv3_wrap_0_m_ahb_clk",
231206391eddSTaniya Das 			.ops = &clk_branch2_ops,
231306391eddSTaniya Das 		},
231406391eddSTaniya Das 	},
231506391eddSTaniya Das };
231606391eddSTaniya Das 
231706391eddSTaniya Das static struct clk_branch gcc_qupv3_wrap_0_s_ahb_clk = {
231806391eddSTaniya Das 	.halt_reg = 0x17008,
231906391eddSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
232006391eddSTaniya Das 	.hwcg_reg = 0x17008,
232106391eddSTaniya Das 	.hwcg_bit = 1,
232206391eddSTaniya Das 	.clkr = {
232306391eddSTaniya Das 		.enable_reg = 0x5200c,
232406391eddSTaniya Das 		.enable_mask = BIT(7),
232506391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
232606391eddSTaniya Das 			.name = "gcc_qupv3_wrap_0_s_ahb_clk",
232706391eddSTaniya Das 			.ops = &clk_branch2_ops,
232806391eddSTaniya Das 		},
232906391eddSTaniya Das 	},
233006391eddSTaniya Das };
233106391eddSTaniya Das 
233206391eddSTaniya Das static struct clk_branch gcc_qupv3_wrap_1_m_ahb_clk = {
233306391eddSTaniya Das 	.halt_reg = 0x1800c,
233406391eddSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
233506391eddSTaniya Das 	.clkr = {
233606391eddSTaniya Das 		.enable_reg = 0x5200c,
233706391eddSTaniya Das 		.enable_mask = BIT(20),
233806391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
233906391eddSTaniya Das 			.name = "gcc_qupv3_wrap_1_m_ahb_clk",
234006391eddSTaniya Das 			.ops = &clk_branch2_ops,
234106391eddSTaniya Das 		},
234206391eddSTaniya Das 	},
234306391eddSTaniya Das };
234406391eddSTaniya Das 
234506391eddSTaniya Das static struct clk_branch gcc_qupv3_wrap_1_s_ahb_clk = {
234606391eddSTaniya Das 	.halt_reg = 0x18010,
234706391eddSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
234806391eddSTaniya Das 	.hwcg_reg = 0x18010,
234906391eddSTaniya Das 	.hwcg_bit = 1,
235006391eddSTaniya Das 	.clkr = {
235106391eddSTaniya Das 		.enable_reg = 0x5200c,
235206391eddSTaniya Das 		.enable_mask = BIT(21),
235306391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
235406391eddSTaniya Das 			.name = "gcc_qupv3_wrap_1_s_ahb_clk",
235506391eddSTaniya Das 			.ops = &clk_branch2_ops,
235606391eddSTaniya Das 		},
235706391eddSTaniya Das 	},
235806391eddSTaniya Das };
235906391eddSTaniya Das 
236006391eddSTaniya Das static struct clk_branch gcc_sdcc2_ahb_clk = {
236106391eddSTaniya Das 	.halt_reg = 0x14008,
236206391eddSTaniya Das 	.halt_check = BRANCH_HALT,
236306391eddSTaniya Das 	.clkr = {
236406391eddSTaniya Das 		.enable_reg = 0x14008,
236506391eddSTaniya Das 		.enable_mask = BIT(0),
236606391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
236706391eddSTaniya Das 			.name = "gcc_sdcc2_ahb_clk",
236806391eddSTaniya Das 			.ops = &clk_branch2_ops,
236906391eddSTaniya Das 		},
237006391eddSTaniya Das 	},
237106391eddSTaniya Das };
237206391eddSTaniya Das 
237306391eddSTaniya Das static struct clk_branch gcc_sdcc2_apps_clk = {
237406391eddSTaniya Das 	.halt_reg = 0x14004,
237506391eddSTaniya Das 	.halt_check = BRANCH_HALT,
237606391eddSTaniya Das 	.clkr = {
237706391eddSTaniya Das 		.enable_reg = 0x14004,
237806391eddSTaniya Das 		.enable_mask = BIT(0),
237906391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
238006391eddSTaniya Das 			.name = "gcc_sdcc2_apps_clk",
238106391eddSTaniya Das 			.parent_names = (const char *[]){
238206391eddSTaniya Das 				"gcc_sdcc2_apps_clk_src",
238306391eddSTaniya Das 			},
238406391eddSTaniya Das 			.num_parents = 1,
238506391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
238606391eddSTaniya Das 			.ops = &clk_branch2_ops,
238706391eddSTaniya Das 		},
238806391eddSTaniya Das 	},
238906391eddSTaniya Das };
239006391eddSTaniya Das 
239106391eddSTaniya Das static struct clk_branch gcc_sdcc4_ahb_clk = {
239206391eddSTaniya Das 	.halt_reg = 0x16008,
239306391eddSTaniya Das 	.halt_check = BRANCH_HALT,
239406391eddSTaniya Das 	.clkr = {
239506391eddSTaniya Das 		.enable_reg = 0x16008,
239606391eddSTaniya Das 		.enable_mask = BIT(0),
239706391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
239806391eddSTaniya Das 			.name = "gcc_sdcc4_ahb_clk",
239906391eddSTaniya Das 			.ops = &clk_branch2_ops,
240006391eddSTaniya Das 		},
240106391eddSTaniya Das 	},
240206391eddSTaniya Das };
240306391eddSTaniya Das 
240406391eddSTaniya Das static struct clk_branch gcc_sdcc4_apps_clk = {
240506391eddSTaniya Das 	.halt_reg = 0x16004,
240606391eddSTaniya Das 	.halt_check = BRANCH_HALT,
240706391eddSTaniya Das 	.clkr = {
240806391eddSTaniya Das 		.enable_reg = 0x16004,
240906391eddSTaniya Das 		.enable_mask = BIT(0),
241006391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
241106391eddSTaniya Das 			.name = "gcc_sdcc4_apps_clk",
241206391eddSTaniya Das 			.parent_names = (const char *[]){
241306391eddSTaniya Das 				"gcc_sdcc4_apps_clk_src",
241406391eddSTaniya Das 			},
241506391eddSTaniya Das 			.num_parents = 1,
241606391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
241706391eddSTaniya Das 			.ops = &clk_branch2_ops,
241806391eddSTaniya Das 		},
241906391eddSTaniya Das 	},
242006391eddSTaniya Das };
242106391eddSTaniya Das 
242206391eddSTaniya Das static struct clk_branch gcc_sys_noc_cpuss_ahb_clk = {
242306391eddSTaniya Das 	.halt_reg = 0x414c,
242406391eddSTaniya Das 	.halt_check = BRANCH_HALT_VOTED,
242506391eddSTaniya Das 	.clkr = {
242606391eddSTaniya Das 		.enable_reg = 0x52004,
242706391eddSTaniya Das 		.enable_mask = BIT(0),
242806391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
242906391eddSTaniya Das 			.name = "gcc_sys_noc_cpuss_ahb_clk",
243006391eddSTaniya Das 			.parent_names = (const char *[]){
243106391eddSTaniya Das 				"gcc_cpuss_ahb_clk_src",
243206391eddSTaniya Das 			},
243306391eddSTaniya Das 			.num_parents = 1,
243406391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT | CLK_IS_CRITICAL,
243506391eddSTaniya Das 			.ops = &clk_branch2_ops,
243606391eddSTaniya Das 		},
243706391eddSTaniya Das 	},
243806391eddSTaniya Das };
243906391eddSTaniya Das 
244006391eddSTaniya Das static struct clk_branch gcc_tsif_ahb_clk = {
244106391eddSTaniya Das 	.halt_reg = 0x36004,
244206391eddSTaniya Das 	.halt_check = BRANCH_HALT,
244306391eddSTaniya Das 	.clkr = {
244406391eddSTaniya Das 		.enable_reg = 0x36004,
244506391eddSTaniya Das 		.enable_mask = BIT(0),
244606391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
244706391eddSTaniya Das 			.name = "gcc_tsif_ahb_clk",
244806391eddSTaniya Das 			.ops = &clk_branch2_ops,
244906391eddSTaniya Das 		},
245006391eddSTaniya Das 	},
245106391eddSTaniya Das };
245206391eddSTaniya Das 
245306391eddSTaniya Das static struct clk_branch gcc_tsif_inactivity_timers_clk = {
245406391eddSTaniya Das 	.halt_reg = 0x3600c,
245506391eddSTaniya Das 	.halt_check = BRANCH_HALT,
245606391eddSTaniya Das 	.clkr = {
245706391eddSTaniya Das 		.enable_reg = 0x3600c,
245806391eddSTaniya Das 		.enable_mask = BIT(0),
245906391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
246006391eddSTaniya Das 			.name = "gcc_tsif_inactivity_timers_clk",
246106391eddSTaniya Das 			.ops = &clk_branch2_ops,
246206391eddSTaniya Das 		},
246306391eddSTaniya Das 	},
246406391eddSTaniya Das };
246506391eddSTaniya Das 
246606391eddSTaniya Das static struct clk_branch gcc_tsif_ref_clk = {
246706391eddSTaniya Das 	.halt_reg = 0x36008,
246806391eddSTaniya Das 	.halt_check = BRANCH_HALT,
246906391eddSTaniya Das 	.clkr = {
247006391eddSTaniya Das 		.enable_reg = 0x36008,
247106391eddSTaniya Das 		.enable_mask = BIT(0),
247206391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
247306391eddSTaniya Das 			.name = "gcc_tsif_ref_clk",
247406391eddSTaniya Das 			.parent_names = (const char *[]){
247506391eddSTaniya Das 				"gcc_tsif_ref_clk_src",
247606391eddSTaniya Das 			},
247706391eddSTaniya Das 			.num_parents = 1,
247806391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
247906391eddSTaniya Das 			.ops = &clk_branch2_ops,
248006391eddSTaniya Das 		},
248106391eddSTaniya Das 	},
248206391eddSTaniya Das };
248306391eddSTaniya Das 
248406391eddSTaniya Das static struct clk_branch gcc_ufs_card_ahb_clk = {
248506391eddSTaniya Das 	.halt_reg = 0x75010,
248606391eddSTaniya Das 	.halt_check = BRANCH_HALT,
248706391eddSTaniya Das 	.hwcg_reg = 0x75010,
248806391eddSTaniya Das 	.hwcg_bit = 1,
248906391eddSTaniya Das 	.clkr = {
249006391eddSTaniya Das 		.enable_reg = 0x75010,
249106391eddSTaniya Das 		.enable_mask = BIT(0),
249206391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
249306391eddSTaniya Das 			.name = "gcc_ufs_card_ahb_clk",
249406391eddSTaniya Das 			.ops = &clk_branch2_ops,
249506391eddSTaniya Das 		},
249606391eddSTaniya Das 	},
249706391eddSTaniya Das };
249806391eddSTaniya Das 
249906391eddSTaniya Das static struct clk_branch gcc_ufs_card_axi_clk = {
250006391eddSTaniya Das 	.halt_reg = 0x7500c,
250106391eddSTaniya Das 	.halt_check = BRANCH_HALT,
250206391eddSTaniya Das 	.hwcg_reg = 0x7500c,
250306391eddSTaniya Das 	.hwcg_bit = 1,
250406391eddSTaniya Das 	.clkr = {
250506391eddSTaniya Das 		.enable_reg = 0x7500c,
250606391eddSTaniya Das 		.enable_mask = BIT(0),
250706391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
250806391eddSTaniya Das 			.name = "gcc_ufs_card_axi_clk",
250906391eddSTaniya Das 			.parent_names = (const char *[]){
251006391eddSTaniya Das 				"gcc_ufs_card_axi_clk_src",
251106391eddSTaniya Das 			},
251206391eddSTaniya Das 			.num_parents = 1,
251306391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
251406391eddSTaniya Das 			.ops = &clk_branch2_ops,
251506391eddSTaniya Das 		},
251606391eddSTaniya Das 	},
251706391eddSTaniya Das };
251806391eddSTaniya Das 
251906391eddSTaniya Das static struct clk_branch gcc_ufs_card_clkref_clk = {
252006391eddSTaniya Das 	.halt_reg = 0x8c004,
252106391eddSTaniya Das 	.halt_check = BRANCH_HALT,
252206391eddSTaniya Das 	.clkr = {
252306391eddSTaniya Das 		.enable_reg = 0x8c004,
252406391eddSTaniya Das 		.enable_mask = BIT(0),
252506391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
252606391eddSTaniya Das 			.name = "gcc_ufs_card_clkref_clk",
252706391eddSTaniya Das 			.ops = &clk_branch2_ops,
252806391eddSTaniya Das 		},
252906391eddSTaniya Das 	},
253006391eddSTaniya Das };
253106391eddSTaniya Das 
253206391eddSTaniya Das static struct clk_branch gcc_ufs_card_ice_core_clk = {
253306391eddSTaniya Das 	.halt_reg = 0x75058,
253406391eddSTaniya Das 	.halt_check = BRANCH_HALT,
253506391eddSTaniya Das 	.hwcg_reg = 0x75058,
253606391eddSTaniya Das 	.hwcg_bit = 1,
253706391eddSTaniya Das 	.clkr = {
253806391eddSTaniya Das 		.enable_reg = 0x75058,
253906391eddSTaniya Das 		.enable_mask = BIT(0),
254006391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
254106391eddSTaniya Das 			.name = "gcc_ufs_card_ice_core_clk",
254206391eddSTaniya Das 			.parent_names = (const char *[]){
254306391eddSTaniya Das 				"gcc_ufs_card_ice_core_clk_src",
254406391eddSTaniya Das 			},
254506391eddSTaniya Das 			.num_parents = 1,
254606391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
254706391eddSTaniya Das 			.ops = &clk_branch2_ops,
254806391eddSTaniya Das 		},
254906391eddSTaniya Das 	},
255006391eddSTaniya Das };
255106391eddSTaniya Das 
255206391eddSTaniya Das static struct clk_branch gcc_ufs_card_phy_aux_clk = {
255306391eddSTaniya Das 	.halt_reg = 0x7508c,
255406391eddSTaniya Das 	.halt_check = BRANCH_HALT,
255506391eddSTaniya Das 	.hwcg_reg = 0x7508c,
255606391eddSTaniya Das 	.hwcg_bit = 1,
255706391eddSTaniya Das 	.clkr = {
255806391eddSTaniya Das 		.enable_reg = 0x7508c,
255906391eddSTaniya Das 		.enable_mask = BIT(0),
256006391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
256106391eddSTaniya Das 			.name = "gcc_ufs_card_phy_aux_clk",
256206391eddSTaniya Das 			.parent_names = (const char *[]){
256306391eddSTaniya Das 				"gcc_ufs_card_phy_aux_clk_src",
256406391eddSTaniya Das 			},
256506391eddSTaniya Das 			.num_parents = 1,
256606391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
256706391eddSTaniya Das 			.ops = &clk_branch2_ops,
256806391eddSTaniya Das 		},
256906391eddSTaniya Das 	},
257006391eddSTaniya Das };
257106391eddSTaniya Das 
257206391eddSTaniya Das static struct clk_branch gcc_ufs_card_rx_symbol_0_clk = {
257306391eddSTaniya Das 	.halt_check = BRANCH_HALT_SKIP,
257406391eddSTaniya Das 	.clkr = {
257506391eddSTaniya Das 		.enable_reg = 0x75018,
257606391eddSTaniya Das 		.enable_mask = BIT(0),
257706391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
257806391eddSTaniya Das 			.name = "gcc_ufs_card_rx_symbol_0_clk",
257906391eddSTaniya Das 			.ops = &clk_branch2_ops,
258006391eddSTaniya Das 		},
258106391eddSTaniya Das 	},
258206391eddSTaniya Das };
258306391eddSTaniya Das 
258406391eddSTaniya Das static struct clk_branch gcc_ufs_card_rx_symbol_1_clk = {
258506391eddSTaniya Das 	.halt_check = BRANCH_HALT_SKIP,
258606391eddSTaniya Das 	.clkr = {
258706391eddSTaniya Das 		.enable_reg = 0x750a8,
258806391eddSTaniya Das 		.enable_mask = BIT(0),
258906391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
259006391eddSTaniya Das 			.name = "gcc_ufs_card_rx_symbol_1_clk",
259106391eddSTaniya Das 			.ops = &clk_branch2_ops,
259206391eddSTaniya Das 		},
259306391eddSTaniya Das 	},
259406391eddSTaniya Das };
259506391eddSTaniya Das 
259606391eddSTaniya Das static struct clk_branch gcc_ufs_card_tx_symbol_0_clk = {
259706391eddSTaniya Das 	.halt_check = BRANCH_HALT_SKIP,
259806391eddSTaniya Das 	.clkr = {
259906391eddSTaniya Das 		.enable_reg = 0x75014,
260006391eddSTaniya Das 		.enable_mask = BIT(0),
260106391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
260206391eddSTaniya Das 			.name = "gcc_ufs_card_tx_symbol_0_clk",
260306391eddSTaniya Das 			.ops = &clk_branch2_ops,
260406391eddSTaniya Das 		},
260506391eddSTaniya Das 	},
260606391eddSTaniya Das };
260706391eddSTaniya Das 
260806391eddSTaniya Das static struct clk_branch gcc_ufs_card_unipro_core_clk = {
260906391eddSTaniya Das 	.halt_reg = 0x75054,
261006391eddSTaniya Das 	.halt_check = BRANCH_HALT,
261106391eddSTaniya Das 	.hwcg_reg = 0x75054,
261206391eddSTaniya Das 	.hwcg_bit = 1,
261306391eddSTaniya Das 	.clkr = {
261406391eddSTaniya Das 		.enable_reg = 0x75054,
261506391eddSTaniya Das 		.enable_mask = BIT(0),
261606391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
261706391eddSTaniya Das 			.name = "gcc_ufs_card_unipro_core_clk",
261806391eddSTaniya Das 			.parent_names = (const char *[]){
261906391eddSTaniya Das 				"gcc_ufs_card_unipro_core_clk_src",
262006391eddSTaniya Das 			},
262106391eddSTaniya Das 			.num_parents = 1,
262206391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
262306391eddSTaniya Das 			.ops = &clk_branch2_ops,
262406391eddSTaniya Das 		},
262506391eddSTaniya Das 	},
262606391eddSTaniya Das };
262706391eddSTaniya Das 
262806391eddSTaniya Das static struct clk_branch gcc_ufs_mem_clkref_clk = {
262906391eddSTaniya Das 	.halt_reg = 0x8c000,
263006391eddSTaniya Das 	.halt_check = BRANCH_HALT,
263106391eddSTaniya Das 	.clkr = {
263206391eddSTaniya Das 		.enable_reg = 0x8c000,
263306391eddSTaniya Das 		.enable_mask = BIT(0),
263406391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
263506391eddSTaniya Das 			.name = "gcc_ufs_mem_clkref_clk",
263606391eddSTaniya Das 			.ops = &clk_branch2_ops,
263706391eddSTaniya Das 		},
263806391eddSTaniya Das 	},
263906391eddSTaniya Das };
264006391eddSTaniya Das 
264106391eddSTaniya Das static struct clk_branch gcc_ufs_phy_ahb_clk = {
264206391eddSTaniya Das 	.halt_reg = 0x77010,
264306391eddSTaniya Das 	.halt_check = BRANCH_HALT,
264406391eddSTaniya Das 	.hwcg_reg = 0x77010,
264506391eddSTaniya Das 	.hwcg_bit = 1,
264606391eddSTaniya Das 	.clkr = {
264706391eddSTaniya Das 		.enable_reg = 0x77010,
264806391eddSTaniya Das 		.enable_mask = BIT(0),
264906391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
265006391eddSTaniya Das 			.name = "gcc_ufs_phy_ahb_clk",
265106391eddSTaniya Das 			.ops = &clk_branch2_ops,
265206391eddSTaniya Das 		},
265306391eddSTaniya Das 	},
265406391eddSTaniya Das };
265506391eddSTaniya Das 
265606391eddSTaniya Das static struct clk_branch gcc_ufs_phy_axi_clk = {
265706391eddSTaniya Das 	.halt_reg = 0x7700c,
265806391eddSTaniya Das 	.halt_check = BRANCH_HALT,
265906391eddSTaniya Das 	.hwcg_reg = 0x7700c,
266006391eddSTaniya Das 	.hwcg_bit = 1,
266106391eddSTaniya Das 	.clkr = {
266206391eddSTaniya Das 		.enable_reg = 0x7700c,
266306391eddSTaniya Das 		.enable_mask = BIT(0),
266406391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
266506391eddSTaniya Das 			.name = "gcc_ufs_phy_axi_clk",
266606391eddSTaniya Das 			.parent_names = (const char *[]){
266706391eddSTaniya Das 				"gcc_ufs_phy_axi_clk_src",
266806391eddSTaniya Das 			},
266906391eddSTaniya Das 			.num_parents = 1,
267006391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
267106391eddSTaniya Das 			.ops = &clk_branch2_ops,
267206391eddSTaniya Das 		},
267306391eddSTaniya Das 	},
267406391eddSTaniya Das };
267506391eddSTaniya Das 
267606391eddSTaniya Das static struct clk_branch gcc_ufs_phy_ice_core_clk = {
267706391eddSTaniya Das 	.halt_reg = 0x77058,
267806391eddSTaniya Das 	.halt_check = BRANCH_HALT,
267906391eddSTaniya Das 	.hwcg_reg = 0x77058,
268006391eddSTaniya Das 	.hwcg_bit = 1,
268106391eddSTaniya Das 	.clkr = {
268206391eddSTaniya Das 		.enable_reg = 0x77058,
268306391eddSTaniya Das 		.enable_mask = BIT(0),
268406391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
268506391eddSTaniya Das 			.name = "gcc_ufs_phy_ice_core_clk",
268606391eddSTaniya Das 			.parent_names = (const char *[]){
268706391eddSTaniya Das 				"gcc_ufs_phy_ice_core_clk_src",
268806391eddSTaniya Das 			},
268906391eddSTaniya Das 			.num_parents = 1,
269006391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
269106391eddSTaniya Das 			.ops = &clk_branch2_ops,
269206391eddSTaniya Das 		},
269306391eddSTaniya Das 	},
269406391eddSTaniya Das };
269506391eddSTaniya Das 
269606391eddSTaniya Das static struct clk_branch gcc_ufs_phy_phy_aux_clk = {
269706391eddSTaniya Das 	.halt_reg = 0x7708c,
269806391eddSTaniya Das 	.halt_check = BRANCH_HALT,
269906391eddSTaniya Das 	.hwcg_reg = 0x7708c,
270006391eddSTaniya Das 	.hwcg_bit = 1,
270106391eddSTaniya Das 	.clkr = {
270206391eddSTaniya Das 		.enable_reg = 0x7708c,
270306391eddSTaniya Das 		.enable_mask = BIT(0),
270406391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
270506391eddSTaniya Das 			.name = "gcc_ufs_phy_phy_aux_clk",
270606391eddSTaniya Das 			.parent_names = (const char *[]){
270706391eddSTaniya Das 				"gcc_ufs_phy_phy_aux_clk_src",
270806391eddSTaniya Das 			},
270906391eddSTaniya Das 			.num_parents = 1,
271006391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
271106391eddSTaniya Das 			.ops = &clk_branch2_ops,
271206391eddSTaniya Das 		},
271306391eddSTaniya Das 	},
271406391eddSTaniya Das };
271506391eddSTaniya Das 
271606391eddSTaniya Das static struct clk_branch gcc_ufs_phy_rx_symbol_0_clk = {
271706391eddSTaniya Das 	.halt_check = BRANCH_HALT_SKIP,
271806391eddSTaniya Das 	.clkr = {
271906391eddSTaniya Das 		.enable_reg = 0x77018,
272006391eddSTaniya Das 		.enable_mask = BIT(0),
272106391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
272206391eddSTaniya Das 			.name = "gcc_ufs_phy_rx_symbol_0_clk",
272306391eddSTaniya Das 			.ops = &clk_branch2_ops,
272406391eddSTaniya Das 		},
272506391eddSTaniya Das 	},
272606391eddSTaniya Das };
272706391eddSTaniya Das 
272806391eddSTaniya Das static struct clk_branch gcc_ufs_phy_rx_symbol_1_clk = {
272906391eddSTaniya Das 	.halt_check = BRANCH_HALT_SKIP,
273006391eddSTaniya Das 	.clkr = {
273106391eddSTaniya Das 		.enable_reg = 0x770a8,
273206391eddSTaniya Das 		.enable_mask = BIT(0),
273306391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
273406391eddSTaniya Das 			.name = "gcc_ufs_phy_rx_symbol_1_clk",
273506391eddSTaniya Das 			.ops = &clk_branch2_ops,
273606391eddSTaniya Das 		},
273706391eddSTaniya Das 	},
273806391eddSTaniya Das };
273906391eddSTaniya Das 
274006391eddSTaniya Das static struct clk_branch gcc_ufs_phy_tx_symbol_0_clk = {
274106391eddSTaniya Das 	.halt_check = BRANCH_HALT_SKIP,
274206391eddSTaniya Das 	.clkr = {
274306391eddSTaniya Das 		.enable_reg = 0x77014,
274406391eddSTaniya Das 		.enable_mask = BIT(0),
274506391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
274606391eddSTaniya Das 			.name = "gcc_ufs_phy_tx_symbol_0_clk",
274706391eddSTaniya Das 			.ops = &clk_branch2_ops,
274806391eddSTaniya Das 		},
274906391eddSTaniya Das 	},
275006391eddSTaniya Das };
275106391eddSTaniya Das 
275206391eddSTaniya Das static struct clk_branch gcc_ufs_phy_unipro_core_clk = {
275306391eddSTaniya Das 	.halt_reg = 0x77054,
275406391eddSTaniya Das 	.halt_check = BRANCH_HALT,
275506391eddSTaniya Das 	.hwcg_reg = 0x77054,
275606391eddSTaniya Das 	.hwcg_bit = 1,
275706391eddSTaniya Das 	.clkr = {
275806391eddSTaniya Das 		.enable_reg = 0x77054,
275906391eddSTaniya Das 		.enable_mask = BIT(0),
276006391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
276106391eddSTaniya Das 			.name = "gcc_ufs_phy_unipro_core_clk",
276206391eddSTaniya Das 			.parent_names = (const char *[]){
276306391eddSTaniya Das 				"gcc_ufs_phy_unipro_core_clk_src",
276406391eddSTaniya Das 			},
276506391eddSTaniya Das 			.num_parents = 1,
276606391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
276706391eddSTaniya Das 			.ops = &clk_branch2_ops,
276806391eddSTaniya Das 		},
276906391eddSTaniya Das 	},
277006391eddSTaniya Das };
277106391eddSTaniya Das 
277206391eddSTaniya Das static struct clk_branch gcc_usb30_prim_master_clk = {
277306391eddSTaniya Das 	.halt_reg = 0xf00c,
277406391eddSTaniya Das 	.halt_check = BRANCH_HALT,
277506391eddSTaniya Das 	.clkr = {
277606391eddSTaniya Das 		.enable_reg = 0xf00c,
277706391eddSTaniya Das 		.enable_mask = BIT(0),
277806391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
277906391eddSTaniya Das 			.name = "gcc_usb30_prim_master_clk",
278006391eddSTaniya Das 			.parent_names = (const char *[]){
278106391eddSTaniya Das 				"gcc_usb30_prim_master_clk_src",
278206391eddSTaniya Das 			},
278306391eddSTaniya Das 			.num_parents = 1,
278406391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
278506391eddSTaniya Das 			.ops = &clk_branch2_ops,
278606391eddSTaniya Das 		},
278706391eddSTaniya Das 	},
278806391eddSTaniya Das };
278906391eddSTaniya Das 
279006391eddSTaniya Das static struct clk_branch gcc_usb30_prim_mock_utmi_clk = {
279106391eddSTaniya Das 	.halt_reg = 0xf014,
279206391eddSTaniya Das 	.halt_check = BRANCH_HALT,
279306391eddSTaniya Das 	.clkr = {
279406391eddSTaniya Das 		.enable_reg = 0xf014,
279506391eddSTaniya Das 		.enable_mask = BIT(0),
279606391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
279706391eddSTaniya Das 			.name = "gcc_usb30_prim_mock_utmi_clk",
279806391eddSTaniya Das 			.parent_names = (const char *[]){
279906391eddSTaniya Das 				"gcc_usb30_prim_mock_utmi_clk_src",
280006391eddSTaniya Das 			},
280106391eddSTaniya Das 			.num_parents = 1,
280206391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
280306391eddSTaniya Das 			.ops = &clk_branch2_ops,
280406391eddSTaniya Das 		},
280506391eddSTaniya Das 	},
280606391eddSTaniya Das };
280706391eddSTaniya Das 
280806391eddSTaniya Das static struct clk_branch gcc_usb30_prim_sleep_clk = {
280906391eddSTaniya Das 	.halt_reg = 0xf010,
281006391eddSTaniya Das 	.halt_check = BRANCH_HALT,
281106391eddSTaniya Das 	.clkr = {
281206391eddSTaniya Das 		.enable_reg = 0xf010,
281306391eddSTaniya Das 		.enable_mask = BIT(0),
281406391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
281506391eddSTaniya Das 			.name = "gcc_usb30_prim_sleep_clk",
281606391eddSTaniya Das 			.ops = &clk_branch2_ops,
281706391eddSTaniya Das 		},
281806391eddSTaniya Das 	},
281906391eddSTaniya Das };
282006391eddSTaniya Das 
282106391eddSTaniya Das static struct clk_branch gcc_usb30_sec_master_clk = {
282206391eddSTaniya Das 	.halt_reg = 0x1000c,
282306391eddSTaniya Das 	.halt_check = BRANCH_HALT,
282406391eddSTaniya Das 	.clkr = {
282506391eddSTaniya Das 		.enable_reg = 0x1000c,
282606391eddSTaniya Das 		.enable_mask = BIT(0),
282706391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
282806391eddSTaniya Das 			.name = "gcc_usb30_sec_master_clk",
282906391eddSTaniya Das 			.parent_names = (const char *[]){
283006391eddSTaniya Das 				"gcc_usb30_sec_master_clk_src",
283106391eddSTaniya Das 			},
283206391eddSTaniya Das 			.num_parents = 1,
283306391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
283406391eddSTaniya Das 			.ops = &clk_branch2_ops,
283506391eddSTaniya Das 		},
283606391eddSTaniya Das 	},
283706391eddSTaniya Das };
283806391eddSTaniya Das 
283906391eddSTaniya Das static struct clk_branch gcc_usb30_sec_mock_utmi_clk = {
284006391eddSTaniya Das 	.halt_reg = 0x10014,
284106391eddSTaniya Das 	.halt_check = BRANCH_HALT,
284206391eddSTaniya Das 	.clkr = {
284306391eddSTaniya Das 		.enable_reg = 0x10014,
284406391eddSTaniya Das 		.enable_mask = BIT(0),
284506391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
284606391eddSTaniya Das 			.name = "gcc_usb30_sec_mock_utmi_clk",
284706391eddSTaniya Das 			.parent_names = (const char *[]){
284806391eddSTaniya Das 				"gcc_usb30_sec_mock_utmi_clk_src",
284906391eddSTaniya Das 			},
285006391eddSTaniya Das 			.num_parents = 1,
285106391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
285206391eddSTaniya Das 			.ops = &clk_branch2_ops,
285306391eddSTaniya Das 		},
285406391eddSTaniya Das 	},
285506391eddSTaniya Das };
285606391eddSTaniya Das 
285706391eddSTaniya Das static struct clk_branch gcc_usb30_sec_sleep_clk = {
285806391eddSTaniya Das 	.halt_reg = 0x10010,
285906391eddSTaniya Das 	.halt_check = BRANCH_HALT,
286006391eddSTaniya Das 	.clkr = {
286106391eddSTaniya Das 		.enable_reg = 0x10010,
286206391eddSTaniya Das 		.enable_mask = BIT(0),
286306391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
286406391eddSTaniya Das 			.name = "gcc_usb30_sec_sleep_clk",
286506391eddSTaniya Das 			.ops = &clk_branch2_ops,
286606391eddSTaniya Das 		},
286706391eddSTaniya Das 	},
286806391eddSTaniya Das };
286906391eddSTaniya Das 
287006391eddSTaniya Das static struct clk_branch gcc_usb3_prim_clkref_clk = {
287106391eddSTaniya Das 	.halt_reg = 0x8c008,
287206391eddSTaniya Das 	.halt_check = BRANCH_HALT,
287306391eddSTaniya Das 	.clkr = {
287406391eddSTaniya Das 		.enable_reg = 0x8c008,
287506391eddSTaniya Das 		.enable_mask = BIT(0),
287606391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
287706391eddSTaniya Das 			.name = "gcc_usb3_prim_clkref_clk",
287806391eddSTaniya Das 			.ops = &clk_branch2_ops,
287906391eddSTaniya Das 		},
288006391eddSTaniya Das 	},
288106391eddSTaniya Das };
288206391eddSTaniya Das 
288306391eddSTaniya Das static struct clk_branch gcc_usb3_prim_phy_aux_clk = {
288406391eddSTaniya Das 	.halt_reg = 0xf04c,
288506391eddSTaniya Das 	.halt_check = BRANCH_HALT,
288606391eddSTaniya Das 	.clkr = {
288706391eddSTaniya Das 		.enable_reg = 0xf04c,
288806391eddSTaniya Das 		.enable_mask = BIT(0),
288906391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
289006391eddSTaniya Das 			.name = "gcc_usb3_prim_phy_aux_clk",
289106391eddSTaniya Das 			.parent_names = (const char *[]){
289206391eddSTaniya Das 				"gcc_usb3_prim_phy_aux_clk_src",
289306391eddSTaniya Das 			},
289406391eddSTaniya Das 			.num_parents = 1,
289506391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
289606391eddSTaniya Das 			.ops = &clk_branch2_ops,
289706391eddSTaniya Das 		},
289806391eddSTaniya Das 	},
289906391eddSTaniya Das };
290006391eddSTaniya Das 
290106391eddSTaniya Das static struct clk_branch gcc_usb3_prim_phy_com_aux_clk = {
290206391eddSTaniya Das 	.halt_reg = 0xf050,
290306391eddSTaniya Das 	.halt_check = BRANCH_HALT,
290406391eddSTaniya Das 	.clkr = {
290506391eddSTaniya Das 		.enable_reg = 0xf050,
290606391eddSTaniya Das 		.enable_mask = BIT(0),
290706391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
290806391eddSTaniya Das 			.name = "gcc_usb3_prim_phy_com_aux_clk",
290906391eddSTaniya Das 			.parent_names = (const char *[]){
291006391eddSTaniya Das 				"gcc_usb3_prim_phy_aux_clk_src",
291106391eddSTaniya Das 			},
291206391eddSTaniya Das 			.num_parents = 1,
291306391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
291406391eddSTaniya Das 			.ops = &clk_branch2_ops,
291506391eddSTaniya Das 		},
291606391eddSTaniya Das 	},
291706391eddSTaniya Das };
291806391eddSTaniya Das 
291906391eddSTaniya Das static struct clk_branch gcc_usb3_prim_phy_pipe_clk = {
292006391eddSTaniya Das 	.halt_check = BRANCH_HALT_SKIP,
292106391eddSTaniya Das 	.clkr = {
292206391eddSTaniya Das 		.enable_reg = 0xf054,
292306391eddSTaniya Das 		.enable_mask = BIT(0),
292406391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
292506391eddSTaniya Das 			.name = "gcc_usb3_prim_phy_pipe_clk",
292606391eddSTaniya Das 			.ops = &clk_branch2_ops,
292706391eddSTaniya Das 		},
292806391eddSTaniya Das 	},
292906391eddSTaniya Das };
293006391eddSTaniya Das 
293106391eddSTaniya Das static struct clk_branch gcc_usb3_sec_clkref_clk = {
293206391eddSTaniya Das 	.halt_reg = 0x8c028,
293306391eddSTaniya Das 	.halt_check = BRANCH_HALT,
293406391eddSTaniya Das 	.clkr = {
293506391eddSTaniya Das 		.enable_reg = 0x8c028,
293606391eddSTaniya Das 		.enable_mask = BIT(0),
293706391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
293806391eddSTaniya Das 			.name = "gcc_usb3_sec_clkref_clk",
293906391eddSTaniya Das 			.ops = &clk_branch2_ops,
294006391eddSTaniya Das 		},
294106391eddSTaniya Das 	},
294206391eddSTaniya Das };
294306391eddSTaniya Das 
294406391eddSTaniya Das static struct clk_branch gcc_usb3_sec_phy_aux_clk = {
294506391eddSTaniya Das 	.halt_reg = 0x1004c,
294606391eddSTaniya Das 	.halt_check = BRANCH_HALT,
294706391eddSTaniya Das 	.clkr = {
294806391eddSTaniya Das 		.enable_reg = 0x1004c,
294906391eddSTaniya Das 		.enable_mask = BIT(0),
295006391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
295106391eddSTaniya Das 			.name = "gcc_usb3_sec_phy_aux_clk",
295206391eddSTaniya Das 			.parent_names = (const char *[]){
295306391eddSTaniya Das 				"gcc_usb3_sec_phy_aux_clk_src",
295406391eddSTaniya Das 			},
295506391eddSTaniya Das 			.num_parents = 1,
295606391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
295706391eddSTaniya Das 			.ops = &clk_branch2_ops,
295806391eddSTaniya Das 		},
295906391eddSTaniya Das 	},
296006391eddSTaniya Das };
296106391eddSTaniya Das 
296206391eddSTaniya Das static struct clk_branch gcc_usb3_sec_phy_com_aux_clk = {
296306391eddSTaniya Das 	.halt_reg = 0x10050,
296406391eddSTaniya Das 	.halt_check = BRANCH_HALT,
296506391eddSTaniya Das 	.clkr = {
296606391eddSTaniya Das 		.enable_reg = 0x10050,
296706391eddSTaniya Das 		.enable_mask = BIT(0),
296806391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
296906391eddSTaniya Das 			.name = "gcc_usb3_sec_phy_com_aux_clk",
297006391eddSTaniya Das 			.parent_names = (const char *[]){
297106391eddSTaniya Das 				"gcc_usb3_sec_phy_aux_clk_src",
297206391eddSTaniya Das 			},
297306391eddSTaniya Das 			.num_parents = 1,
297406391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
297506391eddSTaniya Das 			.ops = &clk_branch2_ops,
297606391eddSTaniya Das 		},
297706391eddSTaniya Das 	},
297806391eddSTaniya Das };
297906391eddSTaniya Das 
298006391eddSTaniya Das static struct clk_branch gcc_usb3_sec_phy_pipe_clk = {
298106391eddSTaniya Das 	.halt_check = BRANCH_HALT_SKIP,
298206391eddSTaniya Das 	.clkr = {
298306391eddSTaniya Das 		.enable_reg = 0x10054,
298406391eddSTaniya Das 		.enable_mask = BIT(0),
298506391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
298606391eddSTaniya Das 			.name = "gcc_usb3_sec_phy_pipe_clk",
298706391eddSTaniya Das 			.ops = &clk_branch2_ops,
298806391eddSTaniya Das 		},
298906391eddSTaniya Das 	},
299006391eddSTaniya Das };
299106391eddSTaniya Das 
299206391eddSTaniya Das static struct clk_branch gcc_usb_phy_cfg_ahb2phy_clk = {
299306391eddSTaniya Das 	.halt_reg = 0x6a004,
299406391eddSTaniya Das 	.halt_check = BRANCH_HALT,
299506391eddSTaniya Das 	.hwcg_reg = 0x6a004,
299606391eddSTaniya Das 	.hwcg_bit = 1,
299706391eddSTaniya Das 	.clkr = {
299806391eddSTaniya Das 		.enable_reg = 0x6a004,
299906391eddSTaniya Das 		.enable_mask = BIT(0),
300006391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
300106391eddSTaniya Das 			.name = "gcc_usb_phy_cfg_ahb2phy_clk",
300206391eddSTaniya Das 			.ops = &clk_branch2_ops,
300306391eddSTaniya Das 		},
300406391eddSTaniya Das 	},
300506391eddSTaniya Das };
300606391eddSTaniya Das 
300706391eddSTaniya Das static struct clk_branch gcc_vdda_vs_clk = {
300806391eddSTaniya Das 	.halt_reg = 0x7a00c,
300906391eddSTaniya Das 	.halt_check = BRANCH_HALT,
301006391eddSTaniya Das 	.clkr = {
301106391eddSTaniya Das 		.enable_reg = 0x7a00c,
301206391eddSTaniya Das 		.enable_mask = BIT(0),
301306391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
301406391eddSTaniya Das 			.name = "gcc_vdda_vs_clk",
301506391eddSTaniya Das 			.parent_names = (const char *[]){
301606391eddSTaniya Das 				"gcc_vsensor_clk_src",
301706391eddSTaniya Das 			},
301806391eddSTaniya Das 			.num_parents = 1,
301906391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
302006391eddSTaniya Das 			.ops = &clk_branch2_ops,
302106391eddSTaniya Das 		},
302206391eddSTaniya Das 	},
302306391eddSTaniya Das };
302406391eddSTaniya Das 
302506391eddSTaniya Das static struct clk_branch gcc_vddcx_vs_clk = {
302606391eddSTaniya Das 	.halt_reg = 0x7a004,
302706391eddSTaniya Das 	.halt_check = BRANCH_HALT,
302806391eddSTaniya Das 	.clkr = {
302906391eddSTaniya Das 		.enable_reg = 0x7a004,
303006391eddSTaniya Das 		.enable_mask = BIT(0),
303106391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
303206391eddSTaniya Das 			.name = "gcc_vddcx_vs_clk",
303306391eddSTaniya Das 			.parent_names = (const char *[]){
303406391eddSTaniya Das 				"gcc_vsensor_clk_src",
303506391eddSTaniya Das 			},
303606391eddSTaniya Das 			.num_parents = 1,
303706391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
303806391eddSTaniya Das 			.ops = &clk_branch2_ops,
303906391eddSTaniya Das 		},
304006391eddSTaniya Das 	},
304106391eddSTaniya Das };
304206391eddSTaniya Das 
304306391eddSTaniya Das static struct clk_branch gcc_vddmx_vs_clk = {
304406391eddSTaniya Das 	.halt_reg = 0x7a008,
304506391eddSTaniya Das 	.halt_check = BRANCH_HALT,
304606391eddSTaniya Das 	.clkr = {
304706391eddSTaniya Das 		.enable_reg = 0x7a008,
304806391eddSTaniya Das 		.enable_mask = BIT(0),
304906391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
305006391eddSTaniya Das 			.name = "gcc_vddmx_vs_clk",
305106391eddSTaniya Das 			.parent_names = (const char *[]){
305206391eddSTaniya Das 				"gcc_vsensor_clk_src",
305306391eddSTaniya Das 			},
305406391eddSTaniya Das 			.num_parents = 1,
305506391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
305606391eddSTaniya Das 			.ops = &clk_branch2_ops,
305706391eddSTaniya Das 		},
305806391eddSTaniya Das 	},
305906391eddSTaniya Das };
306006391eddSTaniya Das 
306106391eddSTaniya Das static struct clk_branch gcc_video_ahb_clk = {
306206391eddSTaniya Das 	.halt_reg = 0xb004,
306306391eddSTaniya Das 	.halt_check = BRANCH_HALT,
306406391eddSTaniya Das 	.hwcg_reg = 0xb004,
306506391eddSTaniya Das 	.hwcg_bit = 1,
306606391eddSTaniya Das 	.clkr = {
306706391eddSTaniya Das 		.enable_reg = 0xb004,
306806391eddSTaniya Das 		.enable_mask = BIT(0),
306906391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
307006391eddSTaniya Das 			.name = "gcc_video_ahb_clk",
3071cfb8282eSAmit Nischal 			.flags = CLK_IS_CRITICAL,
307206391eddSTaniya Das 			.ops = &clk_branch2_ops,
307306391eddSTaniya Das 		},
307406391eddSTaniya Das 	},
307506391eddSTaniya Das };
307606391eddSTaniya Das 
307706391eddSTaniya Das static struct clk_branch gcc_video_axi_clk = {
307806391eddSTaniya Das 	.halt_reg = 0xb01c,
307906391eddSTaniya Das 	.halt_check = BRANCH_VOTED,
308006391eddSTaniya Das 	.clkr = {
308106391eddSTaniya Das 		.enable_reg = 0xb01c,
308206391eddSTaniya Das 		.enable_mask = BIT(0),
308306391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
308406391eddSTaniya Das 			.name = "gcc_video_axi_clk",
308506391eddSTaniya Das 			.ops = &clk_branch2_ops,
308606391eddSTaniya Das 		},
308706391eddSTaniya Das 	},
308806391eddSTaniya Das };
308906391eddSTaniya Das 
309006391eddSTaniya Das static struct clk_branch gcc_video_xo_clk = {
309106391eddSTaniya Das 	.halt_reg = 0xb028,
309206391eddSTaniya Das 	.halt_check = BRANCH_HALT,
309306391eddSTaniya Das 	.clkr = {
309406391eddSTaniya Das 		.enable_reg = 0xb028,
309506391eddSTaniya Das 		.enable_mask = BIT(0),
309606391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
309706391eddSTaniya Das 			.name = "gcc_video_xo_clk",
3098cfb8282eSAmit Nischal 			.flags = CLK_IS_CRITICAL,
309906391eddSTaniya Das 			.ops = &clk_branch2_ops,
310006391eddSTaniya Das 		},
310106391eddSTaniya Das 	},
310206391eddSTaniya Das };
310306391eddSTaniya Das 
310406391eddSTaniya Das static struct clk_branch gcc_vs_ctrl_ahb_clk = {
310506391eddSTaniya Das 	.halt_reg = 0x7a014,
310606391eddSTaniya Das 	.halt_check = BRANCH_HALT,
310706391eddSTaniya Das 	.hwcg_reg = 0x7a014,
310806391eddSTaniya Das 	.hwcg_bit = 1,
310906391eddSTaniya Das 	.clkr = {
311006391eddSTaniya Das 		.enable_reg = 0x7a014,
311106391eddSTaniya Das 		.enable_mask = BIT(0),
311206391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
311306391eddSTaniya Das 			.name = "gcc_vs_ctrl_ahb_clk",
311406391eddSTaniya Das 			.ops = &clk_branch2_ops,
311506391eddSTaniya Das 		},
311606391eddSTaniya Das 	},
311706391eddSTaniya Das };
311806391eddSTaniya Das 
311906391eddSTaniya Das static struct clk_branch gcc_vs_ctrl_clk = {
312006391eddSTaniya Das 	.halt_reg = 0x7a010,
312106391eddSTaniya Das 	.halt_check = BRANCH_HALT,
312206391eddSTaniya Das 	.clkr = {
312306391eddSTaniya Das 		.enable_reg = 0x7a010,
312406391eddSTaniya Das 		.enable_mask = BIT(0),
312506391eddSTaniya Das 		.hw.init = &(struct clk_init_data){
312606391eddSTaniya Das 			.name = "gcc_vs_ctrl_clk",
312706391eddSTaniya Das 			.parent_names = (const char *[]){
312806391eddSTaniya Das 				"gcc_vs_ctrl_clk_src",
312906391eddSTaniya Das 			},
313006391eddSTaniya Das 			.num_parents = 1,
313106391eddSTaniya Das 			.flags = CLK_SET_RATE_PARENT,
313206391eddSTaniya Das 			.ops = &clk_branch2_ops,
313306391eddSTaniya Das 		},
313406391eddSTaniya Das 	},
313506391eddSTaniya Das };
313606391eddSTaniya Das 
3137cfb8282eSAmit Nischal static struct clk_branch gcc_cpuss_dvm_bus_clk = {
3138cfb8282eSAmit Nischal 	.halt_reg = 0x48190,
3139cfb8282eSAmit Nischal 	.halt_check = BRANCH_HALT,
3140cfb8282eSAmit Nischal 	.clkr = {
3141cfb8282eSAmit Nischal 		.enable_reg = 0x48190,
3142cfb8282eSAmit Nischal 		.enable_mask = BIT(0),
3143cfb8282eSAmit Nischal 		.hw.init = &(struct clk_init_data){
3144cfb8282eSAmit Nischal 			.name = "gcc_cpuss_dvm_bus_clk",
3145cfb8282eSAmit Nischal 			.flags = CLK_IS_CRITICAL,
3146cfb8282eSAmit Nischal 			.ops = &clk_branch2_ops,
3147cfb8282eSAmit Nischal 		},
3148cfb8282eSAmit Nischal 	},
3149cfb8282eSAmit Nischal };
3150cfb8282eSAmit Nischal 
3151cfb8282eSAmit Nischal static struct clk_branch gcc_cpuss_gnoc_clk = {
3152cfb8282eSAmit Nischal 	.halt_reg = 0x48004,
3153cfb8282eSAmit Nischal 	.halt_check = BRANCH_HALT_VOTED,
3154cfb8282eSAmit Nischal 	.hwcg_reg = 0x48004,
3155cfb8282eSAmit Nischal 	.hwcg_bit = 1,
3156cfb8282eSAmit Nischal 	.clkr = {
3157cfb8282eSAmit Nischal 		.enable_reg = 0x52004,
3158cfb8282eSAmit Nischal 		.enable_mask = BIT(22),
3159cfb8282eSAmit Nischal 		.hw.init = &(struct clk_init_data){
3160cfb8282eSAmit Nischal 			.name = "gcc_cpuss_gnoc_clk",
3161cfb8282eSAmit Nischal 			.flags = CLK_IS_CRITICAL,
3162cfb8282eSAmit Nischal 			.ops = &clk_branch2_ops,
3163cfb8282eSAmit Nischal 		},
3164cfb8282eSAmit Nischal 	},
3165cfb8282eSAmit Nischal };
3166cfb8282eSAmit Nischal 
31678d3e5b9cSTaniya Das /* TODO: Remove after DTS updated to protect these */
31688d3e5b9cSTaniya Das #ifdef CONFIG_SDM_LPASSCC_845
31698d3e5b9cSTaniya Das static struct clk_branch gcc_lpass_q6_axi_clk = {
31708d3e5b9cSTaniya Das 	.halt_reg = 0x47000,
31718d3e5b9cSTaniya Das 	.halt_check = BRANCH_HALT,
31728d3e5b9cSTaniya Das 	.clkr = {
31738d3e5b9cSTaniya Das 		.enable_reg = 0x47000,
31748d3e5b9cSTaniya Das 		.enable_mask = BIT(0),
31758d3e5b9cSTaniya Das 		.hw.init = &(struct clk_init_data){
31768d3e5b9cSTaniya Das 			.name = "gcc_lpass_q6_axi_clk",
31778d3e5b9cSTaniya Das 			.flags = CLK_IS_CRITICAL,
31788d3e5b9cSTaniya Das 			.ops = &clk_branch2_ops,
31798d3e5b9cSTaniya Das 		},
31808d3e5b9cSTaniya Das 	},
31818d3e5b9cSTaniya Das };
31828d3e5b9cSTaniya Das 
31838d3e5b9cSTaniya Das static struct clk_branch gcc_lpass_sway_clk = {
31848d3e5b9cSTaniya Das 	.halt_reg = 0x47008,
31858d3e5b9cSTaniya Das 	.halt_check = BRANCH_HALT,
31868d3e5b9cSTaniya Das 	.clkr = {
31878d3e5b9cSTaniya Das 		.enable_reg = 0x47008,
31888d3e5b9cSTaniya Das 		.enable_mask = BIT(0),
31898d3e5b9cSTaniya Das 		.hw.init = &(struct clk_init_data){
31908d3e5b9cSTaniya Das 			.name = "gcc_lpass_sway_clk",
31918d3e5b9cSTaniya Das 			.flags = CLK_IS_CRITICAL,
31928d3e5b9cSTaniya Das 			.ops = &clk_branch2_ops,
31938d3e5b9cSTaniya Das 		},
31948d3e5b9cSTaniya Das 	},
31958d3e5b9cSTaniya Das };
31968d3e5b9cSTaniya Das #endif
31978d3e5b9cSTaniya Das 
319806391eddSTaniya Das static struct gdsc pcie_0_gdsc = {
319906391eddSTaniya Das 	.gdscr = 0x6b004,
320006391eddSTaniya Das 	.pd = {
320106391eddSTaniya Das 		.name = "pcie_0_gdsc",
320206391eddSTaniya Das 	},
320306391eddSTaniya Das 	.pwrsts = PWRSTS_OFF_ON,
320406391eddSTaniya Das 	.flags = POLL_CFG_GDSCR,
320506391eddSTaniya Das };
320606391eddSTaniya Das 
320706391eddSTaniya Das static struct gdsc pcie_1_gdsc = {
320806391eddSTaniya Das 	.gdscr = 0x8d004,
320906391eddSTaniya Das 	.pd = {
321006391eddSTaniya Das 		.name = "pcie_1_gdsc",
321106391eddSTaniya Das 	},
321206391eddSTaniya Das 	.pwrsts = PWRSTS_OFF_ON,
321306391eddSTaniya Das 	.flags = POLL_CFG_GDSCR,
321406391eddSTaniya Das };
321506391eddSTaniya Das 
321606391eddSTaniya Das static struct gdsc ufs_card_gdsc = {
321706391eddSTaniya Das 	.gdscr = 0x75004,
321806391eddSTaniya Das 	.pd = {
321906391eddSTaniya Das 		.name = "ufs_card_gdsc",
322006391eddSTaniya Das 	},
322106391eddSTaniya Das 	.pwrsts = PWRSTS_OFF_ON,
322206391eddSTaniya Das 	.flags = POLL_CFG_GDSCR,
322306391eddSTaniya Das };
322406391eddSTaniya Das 
322506391eddSTaniya Das static struct gdsc ufs_phy_gdsc = {
322606391eddSTaniya Das 	.gdscr = 0x77004,
322706391eddSTaniya Das 	.pd = {
322806391eddSTaniya Das 		.name = "ufs_phy_gdsc",
322906391eddSTaniya Das 	},
323006391eddSTaniya Das 	.pwrsts = PWRSTS_OFF_ON,
323106391eddSTaniya Das 	.flags = POLL_CFG_GDSCR,
323206391eddSTaniya Das };
323306391eddSTaniya Das 
323406391eddSTaniya Das static struct gdsc usb30_prim_gdsc = {
323506391eddSTaniya Das 	.gdscr = 0xf004,
323606391eddSTaniya Das 	.pd = {
323706391eddSTaniya Das 		.name = "usb30_prim_gdsc",
323806391eddSTaniya Das 	},
323906391eddSTaniya Das 	.pwrsts = PWRSTS_OFF_ON,
324006391eddSTaniya Das 	.flags = POLL_CFG_GDSCR,
324106391eddSTaniya Das };
324206391eddSTaniya Das 
324306391eddSTaniya Das static struct gdsc usb30_sec_gdsc = {
324406391eddSTaniya Das 	.gdscr = 0x10004,
324506391eddSTaniya Das 	.pd = {
324606391eddSTaniya Das 		.name = "usb30_sec_gdsc",
324706391eddSTaniya Das 	},
324806391eddSTaniya Das 	.pwrsts = PWRSTS_OFF_ON,
324906391eddSTaniya Das 	.flags = POLL_CFG_GDSCR,
325006391eddSTaniya Das };
325106391eddSTaniya Das 
325206391eddSTaniya Das static struct gdsc hlos1_vote_aggre_noc_mmu_audio_tbu_gdsc = {
325306391eddSTaniya Das 	.gdscr = 0x7d030,
325406391eddSTaniya Das 	.pd = {
325506391eddSTaniya Das 		.name = "hlos1_vote_aggre_noc_mmu_audio_tbu_gdsc",
325606391eddSTaniya Das 	},
325706391eddSTaniya Das 	.pwrsts = PWRSTS_OFF_ON,
325806391eddSTaniya Das };
325906391eddSTaniya Das 
326006391eddSTaniya Das static struct gdsc hlos1_vote_aggre_noc_mmu_pcie_tbu_gdsc = {
326106391eddSTaniya Das 	.gdscr = 0x7d03c,
326206391eddSTaniya Das 	.pd = {
326306391eddSTaniya Das 		.name = "hlos1_vote_aggre_noc_mmu_pcie_tbu_gdsc",
326406391eddSTaniya Das 	},
326506391eddSTaniya Das 	.pwrsts = PWRSTS_OFF_ON,
326606391eddSTaniya Das };
326706391eddSTaniya Das 
326806391eddSTaniya Das static struct gdsc hlos1_vote_aggre_noc_mmu_tbu1_gdsc = {
326906391eddSTaniya Das 	.gdscr = 0x7d034,
327006391eddSTaniya Das 	.pd = {
327106391eddSTaniya Das 		.name = "hlos1_vote_aggre_noc_mmu_tbu1_gdsc",
327206391eddSTaniya Das 	},
327306391eddSTaniya Das 	.pwrsts = PWRSTS_OFF_ON,
327406391eddSTaniya Das };
327506391eddSTaniya Das 
327606391eddSTaniya Das static struct gdsc hlos1_vote_aggre_noc_mmu_tbu2_gdsc = {
327706391eddSTaniya Das 	.gdscr = 0x7d038,
327806391eddSTaniya Das 	.pd = {
327906391eddSTaniya Das 		.name = "hlos1_vote_aggre_noc_mmu_tbu2_gdsc",
328006391eddSTaniya Das 	},
328106391eddSTaniya Das 	.pwrsts = PWRSTS_OFF_ON,
328206391eddSTaniya Das };
328306391eddSTaniya Das 
328406391eddSTaniya Das static struct gdsc hlos1_vote_mmnoc_mmu_tbu_hf0_gdsc = {
328506391eddSTaniya Das 	.gdscr = 0x7d040,
328606391eddSTaniya Das 	.pd = {
328706391eddSTaniya Das 		.name = "hlos1_vote_mmnoc_mmu_tbu_hf0_gdsc",
328806391eddSTaniya Das 	},
328906391eddSTaniya Das 	.pwrsts = PWRSTS_OFF_ON,
329006391eddSTaniya Das };
329106391eddSTaniya Das 
329206391eddSTaniya Das static struct gdsc hlos1_vote_mmnoc_mmu_tbu_hf1_gdsc = {
329306391eddSTaniya Das 	.gdscr = 0x7d048,
329406391eddSTaniya Das 	.pd = {
329506391eddSTaniya Das 		.name = "hlos1_vote_mmnoc_mmu_tbu_hf1_gdsc",
329606391eddSTaniya Das 	},
329706391eddSTaniya Das 	.pwrsts = PWRSTS_OFF_ON,
329806391eddSTaniya Das };
329906391eddSTaniya Das 
330006391eddSTaniya Das static struct gdsc hlos1_vote_mmnoc_mmu_tbu_sf_gdsc = {
330106391eddSTaniya Das 	.gdscr = 0x7d044,
330206391eddSTaniya Das 	.pd = {
330306391eddSTaniya Das 		.name = "hlos1_vote_mmnoc_mmu_tbu_sf_gdsc",
330406391eddSTaniya Das 	},
330506391eddSTaniya Das 	.pwrsts = PWRSTS_OFF_ON,
330606391eddSTaniya Das };
330706391eddSTaniya Das 
330806391eddSTaniya Das static struct clk_regmap *gcc_sdm845_clocks[] = {
330906391eddSTaniya Das 	[GCC_AGGRE_NOC_PCIE_TBU_CLK] = &gcc_aggre_noc_pcie_tbu_clk.clkr,
331006391eddSTaniya Das 	[GCC_AGGRE_UFS_CARD_AXI_CLK] = &gcc_aggre_ufs_card_axi_clk.clkr,
331106391eddSTaniya Das 	[GCC_AGGRE_UFS_PHY_AXI_CLK] = &gcc_aggre_ufs_phy_axi_clk.clkr,
331206391eddSTaniya Das 	[GCC_AGGRE_USB3_PRIM_AXI_CLK] = &gcc_aggre_usb3_prim_axi_clk.clkr,
331306391eddSTaniya Das 	[GCC_AGGRE_USB3_SEC_AXI_CLK] = &gcc_aggre_usb3_sec_axi_clk.clkr,
331406391eddSTaniya Das 	[GCC_APC_VS_CLK] = &gcc_apc_vs_clk.clkr,
331506391eddSTaniya Das 	[GCC_BOOT_ROM_AHB_CLK] = &gcc_boot_rom_ahb_clk.clkr,
331606391eddSTaniya Das 	[GCC_CAMERA_AHB_CLK] = &gcc_camera_ahb_clk.clkr,
331706391eddSTaniya Das 	[GCC_CAMERA_AXI_CLK] = &gcc_camera_axi_clk.clkr,
331806391eddSTaniya Das 	[GCC_CAMERA_XO_CLK] = &gcc_camera_xo_clk.clkr,
331906391eddSTaniya Das 	[GCC_CE1_AHB_CLK] = &gcc_ce1_ahb_clk.clkr,
332006391eddSTaniya Das 	[GCC_CE1_AXI_CLK] = &gcc_ce1_axi_clk.clkr,
332106391eddSTaniya Das 	[GCC_CE1_CLK] = &gcc_ce1_clk.clkr,
332206391eddSTaniya Das 	[GCC_CFG_NOC_USB3_PRIM_AXI_CLK] = &gcc_cfg_noc_usb3_prim_axi_clk.clkr,
332306391eddSTaniya Das 	[GCC_CFG_NOC_USB3_SEC_AXI_CLK] = &gcc_cfg_noc_usb3_sec_axi_clk.clkr,
332406391eddSTaniya Das 	[GCC_CPUSS_AHB_CLK] = &gcc_cpuss_ahb_clk.clkr,
332506391eddSTaniya Das 	[GCC_CPUSS_AHB_CLK_SRC] = &gcc_cpuss_ahb_clk_src.clkr,
332606391eddSTaniya Das 	[GCC_CPUSS_RBCPR_CLK] = &gcc_cpuss_rbcpr_clk.clkr,
332706391eddSTaniya Das 	[GCC_CPUSS_RBCPR_CLK_SRC] = &gcc_cpuss_rbcpr_clk_src.clkr,
332806391eddSTaniya Das 	[GCC_DDRSS_GPU_AXI_CLK] = &gcc_ddrss_gpu_axi_clk.clkr,
332906391eddSTaniya Das 	[GCC_DISP_AHB_CLK] = &gcc_disp_ahb_clk.clkr,
333006391eddSTaniya Das 	[GCC_DISP_AXI_CLK] = &gcc_disp_axi_clk.clkr,
333106391eddSTaniya Das 	[GCC_DISP_GPLL0_CLK_SRC] = &gcc_disp_gpll0_clk_src.clkr,
333206391eddSTaniya Das 	[GCC_DISP_GPLL0_DIV_CLK_SRC] = &gcc_disp_gpll0_div_clk_src.clkr,
333306391eddSTaniya Das 	[GCC_DISP_XO_CLK] = &gcc_disp_xo_clk.clkr,
333406391eddSTaniya Das 	[GCC_GP1_CLK] = &gcc_gp1_clk.clkr,
333506391eddSTaniya Das 	[GCC_GP1_CLK_SRC] = &gcc_gp1_clk_src.clkr,
333606391eddSTaniya Das 	[GCC_GP2_CLK] = &gcc_gp2_clk.clkr,
333706391eddSTaniya Das 	[GCC_GP2_CLK_SRC] = &gcc_gp2_clk_src.clkr,
333806391eddSTaniya Das 	[GCC_GP3_CLK] = &gcc_gp3_clk.clkr,
333906391eddSTaniya Das 	[GCC_GP3_CLK_SRC] = &gcc_gp3_clk_src.clkr,
334006391eddSTaniya Das 	[GCC_GPU_CFG_AHB_CLK] = &gcc_gpu_cfg_ahb_clk.clkr,
334106391eddSTaniya Das 	[GCC_GPU_GPLL0_CLK_SRC] = &gcc_gpu_gpll0_clk_src.clkr,
334206391eddSTaniya Das 	[GCC_GPU_GPLL0_DIV_CLK_SRC] = &gcc_gpu_gpll0_div_clk_src.clkr,
334306391eddSTaniya Das 	[GCC_GPU_IREF_CLK] = &gcc_gpu_iref_clk.clkr,
334406391eddSTaniya Das 	[GCC_GPU_MEMNOC_GFX_CLK] = &gcc_gpu_memnoc_gfx_clk.clkr,
334506391eddSTaniya Das 	[GCC_GPU_SNOC_DVM_GFX_CLK] = &gcc_gpu_snoc_dvm_gfx_clk.clkr,
334606391eddSTaniya Das 	[GCC_GPU_VS_CLK] = &gcc_gpu_vs_clk.clkr,
334706391eddSTaniya Das 	[GCC_MSS_AXIS2_CLK] = &gcc_mss_axis2_clk.clkr,
334806391eddSTaniya Das 	[GCC_MSS_CFG_AHB_CLK] = &gcc_mss_cfg_ahb_clk.clkr,
334906391eddSTaniya Das 	[GCC_MSS_GPLL0_DIV_CLK_SRC] = &gcc_mss_gpll0_div_clk_src.clkr,
335006391eddSTaniya Das 	[GCC_MSS_MFAB_AXIS_CLK] = &gcc_mss_mfab_axis_clk.clkr,
335106391eddSTaniya Das 	[GCC_MSS_Q6_MEMNOC_AXI_CLK] = &gcc_mss_q6_memnoc_axi_clk.clkr,
335206391eddSTaniya Das 	[GCC_MSS_SNOC_AXI_CLK] = &gcc_mss_snoc_axi_clk.clkr,
335306391eddSTaniya Das 	[GCC_MSS_VS_CLK] = &gcc_mss_vs_clk.clkr,
335406391eddSTaniya Das 	[GCC_PCIE_0_AUX_CLK] = &gcc_pcie_0_aux_clk.clkr,
335506391eddSTaniya Das 	[GCC_PCIE_0_AUX_CLK_SRC] = &gcc_pcie_0_aux_clk_src.clkr,
335606391eddSTaniya Das 	[GCC_PCIE_0_CFG_AHB_CLK] = &gcc_pcie_0_cfg_ahb_clk.clkr,
335706391eddSTaniya Das 	[GCC_PCIE_0_CLKREF_CLK] = &gcc_pcie_0_clkref_clk.clkr,
335806391eddSTaniya Das 	[GCC_PCIE_0_MSTR_AXI_CLK] = &gcc_pcie_0_mstr_axi_clk.clkr,
335906391eddSTaniya Das 	[GCC_PCIE_0_PIPE_CLK] = &gcc_pcie_0_pipe_clk.clkr,
336006391eddSTaniya Das 	[GCC_PCIE_0_SLV_AXI_CLK] = &gcc_pcie_0_slv_axi_clk.clkr,
336106391eddSTaniya Das 	[GCC_PCIE_0_SLV_Q2A_AXI_CLK] = &gcc_pcie_0_slv_q2a_axi_clk.clkr,
336206391eddSTaniya Das 	[GCC_PCIE_1_AUX_CLK] = &gcc_pcie_1_aux_clk.clkr,
336306391eddSTaniya Das 	[GCC_PCIE_1_AUX_CLK_SRC] = &gcc_pcie_1_aux_clk_src.clkr,
336406391eddSTaniya Das 	[GCC_PCIE_1_CFG_AHB_CLK] = &gcc_pcie_1_cfg_ahb_clk.clkr,
336506391eddSTaniya Das 	[GCC_PCIE_1_CLKREF_CLK] = &gcc_pcie_1_clkref_clk.clkr,
336606391eddSTaniya Das 	[GCC_PCIE_1_MSTR_AXI_CLK] = &gcc_pcie_1_mstr_axi_clk.clkr,
336706391eddSTaniya Das 	[GCC_PCIE_1_PIPE_CLK] = &gcc_pcie_1_pipe_clk.clkr,
336806391eddSTaniya Das 	[GCC_PCIE_1_SLV_AXI_CLK] = &gcc_pcie_1_slv_axi_clk.clkr,
336906391eddSTaniya Das 	[GCC_PCIE_1_SLV_Q2A_AXI_CLK] = &gcc_pcie_1_slv_q2a_axi_clk.clkr,
337006391eddSTaniya Das 	[GCC_PCIE_PHY_AUX_CLK] = &gcc_pcie_phy_aux_clk.clkr,
337106391eddSTaniya Das 	[GCC_PCIE_PHY_REFGEN_CLK] = &gcc_pcie_phy_refgen_clk.clkr,
337206391eddSTaniya Das 	[GCC_PCIE_PHY_REFGEN_CLK_SRC] = &gcc_pcie_phy_refgen_clk_src.clkr,
337306391eddSTaniya Das 	[GCC_PDM2_CLK] = &gcc_pdm2_clk.clkr,
337406391eddSTaniya Das 	[GCC_PDM2_CLK_SRC] = &gcc_pdm2_clk_src.clkr,
337506391eddSTaniya Das 	[GCC_PDM_AHB_CLK] = &gcc_pdm_ahb_clk.clkr,
337606391eddSTaniya Das 	[GCC_PDM_XO4_CLK] = &gcc_pdm_xo4_clk.clkr,
337706391eddSTaniya Das 	[GCC_PRNG_AHB_CLK] = &gcc_prng_ahb_clk.clkr,
337806391eddSTaniya Das 	[GCC_QMIP_CAMERA_AHB_CLK] = &gcc_qmip_camera_ahb_clk.clkr,
337906391eddSTaniya Das 	[GCC_QMIP_DISP_AHB_CLK] = &gcc_qmip_disp_ahb_clk.clkr,
338006391eddSTaniya Das 	[GCC_QMIP_VIDEO_AHB_CLK] = &gcc_qmip_video_ahb_clk.clkr,
338106391eddSTaniya Das 	[GCC_QUPV3_WRAP0_S0_CLK] = &gcc_qupv3_wrap0_s0_clk.clkr,
338206391eddSTaniya Das 	[GCC_QUPV3_WRAP0_S0_CLK_SRC] = &gcc_qupv3_wrap0_s0_clk_src.clkr,
338306391eddSTaniya Das 	[GCC_QUPV3_WRAP0_S1_CLK] = &gcc_qupv3_wrap0_s1_clk.clkr,
338406391eddSTaniya Das 	[GCC_QUPV3_WRAP0_S1_CLK_SRC] = &gcc_qupv3_wrap0_s1_clk_src.clkr,
338506391eddSTaniya Das 	[GCC_QUPV3_WRAP0_S2_CLK] = &gcc_qupv3_wrap0_s2_clk.clkr,
338606391eddSTaniya Das 	[GCC_QUPV3_WRAP0_S2_CLK_SRC] = &gcc_qupv3_wrap0_s2_clk_src.clkr,
338706391eddSTaniya Das 	[GCC_QUPV3_WRAP0_S3_CLK] = &gcc_qupv3_wrap0_s3_clk.clkr,
338806391eddSTaniya Das 	[GCC_QUPV3_WRAP0_S3_CLK_SRC] = &gcc_qupv3_wrap0_s3_clk_src.clkr,
338906391eddSTaniya Das 	[GCC_QUPV3_WRAP0_S4_CLK] = &gcc_qupv3_wrap0_s4_clk.clkr,
339006391eddSTaniya Das 	[GCC_QUPV3_WRAP0_S4_CLK_SRC] = &gcc_qupv3_wrap0_s4_clk_src.clkr,
339106391eddSTaniya Das 	[GCC_QUPV3_WRAP0_S5_CLK] = &gcc_qupv3_wrap0_s5_clk.clkr,
339206391eddSTaniya Das 	[GCC_QUPV3_WRAP0_S5_CLK_SRC] = &gcc_qupv3_wrap0_s5_clk_src.clkr,
339306391eddSTaniya Das 	[GCC_QUPV3_WRAP0_S6_CLK] = &gcc_qupv3_wrap0_s6_clk.clkr,
339406391eddSTaniya Das 	[GCC_QUPV3_WRAP0_S6_CLK_SRC] = &gcc_qupv3_wrap0_s6_clk_src.clkr,
339506391eddSTaniya Das 	[GCC_QUPV3_WRAP0_S7_CLK] = &gcc_qupv3_wrap0_s7_clk.clkr,
339606391eddSTaniya Das 	[GCC_QUPV3_WRAP0_S7_CLK_SRC] = &gcc_qupv3_wrap0_s7_clk_src.clkr,
339706391eddSTaniya Das 	[GCC_QUPV3_WRAP1_S0_CLK] = &gcc_qupv3_wrap1_s0_clk.clkr,
339806391eddSTaniya Das 	[GCC_QUPV3_WRAP1_S0_CLK_SRC] = &gcc_qupv3_wrap1_s0_clk_src.clkr,
339906391eddSTaniya Das 	[GCC_QUPV3_WRAP1_S1_CLK] = &gcc_qupv3_wrap1_s1_clk.clkr,
340006391eddSTaniya Das 	[GCC_QUPV3_WRAP1_S1_CLK_SRC] = &gcc_qupv3_wrap1_s1_clk_src.clkr,
340106391eddSTaniya Das 	[GCC_QUPV3_WRAP1_S2_CLK] = &gcc_qupv3_wrap1_s2_clk.clkr,
340206391eddSTaniya Das 	[GCC_QUPV3_WRAP1_S2_CLK_SRC] = &gcc_qupv3_wrap1_s2_clk_src.clkr,
340306391eddSTaniya Das 	[GCC_QUPV3_WRAP1_S3_CLK] = &gcc_qupv3_wrap1_s3_clk.clkr,
340406391eddSTaniya Das 	[GCC_QUPV3_WRAP1_S3_CLK_SRC] = &gcc_qupv3_wrap1_s3_clk_src.clkr,
340506391eddSTaniya Das 	[GCC_QUPV3_WRAP1_S4_CLK] = &gcc_qupv3_wrap1_s4_clk.clkr,
340606391eddSTaniya Das 	[GCC_QUPV3_WRAP1_S4_CLK_SRC] = &gcc_qupv3_wrap1_s4_clk_src.clkr,
340706391eddSTaniya Das 	[GCC_QUPV3_WRAP1_S5_CLK] = &gcc_qupv3_wrap1_s5_clk.clkr,
340806391eddSTaniya Das 	[GCC_QUPV3_WRAP1_S5_CLK_SRC] = &gcc_qupv3_wrap1_s5_clk_src.clkr,
340906391eddSTaniya Das 	[GCC_QUPV3_WRAP1_S6_CLK] = &gcc_qupv3_wrap1_s6_clk.clkr,
341006391eddSTaniya Das 	[GCC_QUPV3_WRAP1_S6_CLK_SRC] = &gcc_qupv3_wrap1_s6_clk_src.clkr,
341106391eddSTaniya Das 	[GCC_QUPV3_WRAP1_S7_CLK] = &gcc_qupv3_wrap1_s7_clk.clkr,
341206391eddSTaniya Das 	[GCC_QUPV3_WRAP1_S7_CLK_SRC] = &gcc_qupv3_wrap1_s7_clk_src.clkr,
341306391eddSTaniya Das 	[GCC_QUPV3_WRAP_0_M_AHB_CLK] = &gcc_qupv3_wrap_0_m_ahb_clk.clkr,
341406391eddSTaniya Das 	[GCC_QUPV3_WRAP_0_S_AHB_CLK] = &gcc_qupv3_wrap_0_s_ahb_clk.clkr,
341506391eddSTaniya Das 	[GCC_QUPV3_WRAP_1_M_AHB_CLK] = &gcc_qupv3_wrap_1_m_ahb_clk.clkr,
341606391eddSTaniya Das 	[GCC_QUPV3_WRAP_1_S_AHB_CLK] = &gcc_qupv3_wrap_1_s_ahb_clk.clkr,
341706391eddSTaniya Das 	[GCC_SDCC2_AHB_CLK] = &gcc_sdcc2_ahb_clk.clkr,
341806391eddSTaniya Das 	[GCC_SDCC2_APPS_CLK] = &gcc_sdcc2_apps_clk.clkr,
341906391eddSTaniya Das 	[GCC_SDCC2_APPS_CLK_SRC] = &gcc_sdcc2_apps_clk_src.clkr,
342006391eddSTaniya Das 	[GCC_SDCC4_AHB_CLK] = &gcc_sdcc4_ahb_clk.clkr,
342106391eddSTaniya Das 	[GCC_SDCC4_APPS_CLK] = &gcc_sdcc4_apps_clk.clkr,
342206391eddSTaniya Das 	[GCC_SDCC4_APPS_CLK_SRC] = &gcc_sdcc4_apps_clk_src.clkr,
342306391eddSTaniya Das 	[GCC_SYS_NOC_CPUSS_AHB_CLK] = &gcc_sys_noc_cpuss_ahb_clk.clkr,
342406391eddSTaniya Das 	[GCC_TSIF_AHB_CLK] = &gcc_tsif_ahb_clk.clkr,
342506391eddSTaniya Das 	[GCC_TSIF_INACTIVITY_TIMERS_CLK] =
342606391eddSTaniya Das 					&gcc_tsif_inactivity_timers_clk.clkr,
342706391eddSTaniya Das 	[GCC_TSIF_REF_CLK] = &gcc_tsif_ref_clk.clkr,
342806391eddSTaniya Das 	[GCC_TSIF_REF_CLK_SRC] = &gcc_tsif_ref_clk_src.clkr,
342906391eddSTaniya Das 	[GCC_UFS_CARD_AHB_CLK] = &gcc_ufs_card_ahb_clk.clkr,
343006391eddSTaniya Das 	[GCC_UFS_CARD_AXI_CLK] = &gcc_ufs_card_axi_clk.clkr,
343106391eddSTaniya Das 	[GCC_UFS_CARD_AXI_CLK_SRC] = &gcc_ufs_card_axi_clk_src.clkr,
343206391eddSTaniya Das 	[GCC_UFS_CARD_CLKREF_CLK] = &gcc_ufs_card_clkref_clk.clkr,
343306391eddSTaniya Das 	[GCC_UFS_CARD_ICE_CORE_CLK] = &gcc_ufs_card_ice_core_clk.clkr,
343406391eddSTaniya Das 	[GCC_UFS_CARD_ICE_CORE_CLK_SRC] = &gcc_ufs_card_ice_core_clk_src.clkr,
343506391eddSTaniya Das 	[GCC_UFS_CARD_PHY_AUX_CLK] = &gcc_ufs_card_phy_aux_clk.clkr,
343606391eddSTaniya Das 	[GCC_UFS_CARD_PHY_AUX_CLK_SRC] = &gcc_ufs_card_phy_aux_clk_src.clkr,
343706391eddSTaniya Das 	[GCC_UFS_CARD_RX_SYMBOL_0_CLK] = &gcc_ufs_card_rx_symbol_0_clk.clkr,
343806391eddSTaniya Das 	[GCC_UFS_CARD_RX_SYMBOL_1_CLK] = &gcc_ufs_card_rx_symbol_1_clk.clkr,
343906391eddSTaniya Das 	[GCC_UFS_CARD_TX_SYMBOL_0_CLK] = &gcc_ufs_card_tx_symbol_0_clk.clkr,
344006391eddSTaniya Das 	[GCC_UFS_CARD_UNIPRO_CORE_CLK] = &gcc_ufs_card_unipro_core_clk.clkr,
344106391eddSTaniya Das 	[GCC_UFS_CARD_UNIPRO_CORE_CLK_SRC] =
344206391eddSTaniya Das 					&gcc_ufs_card_unipro_core_clk_src.clkr,
344306391eddSTaniya Das 	[GCC_UFS_MEM_CLKREF_CLK] = &gcc_ufs_mem_clkref_clk.clkr,
344406391eddSTaniya Das 	[GCC_UFS_PHY_AHB_CLK] = &gcc_ufs_phy_ahb_clk.clkr,
344506391eddSTaniya Das 	[GCC_UFS_PHY_AXI_CLK] = &gcc_ufs_phy_axi_clk.clkr,
344606391eddSTaniya Das 	[GCC_UFS_PHY_AXI_CLK_SRC] = &gcc_ufs_phy_axi_clk_src.clkr,
344706391eddSTaniya Das 	[GCC_UFS_PHY_ICE_CORE_CLK] = &gcc_ufs_phy_ice_core_clk.clkr,
344806391eddSTaniya Das 	[GCC_UFS_PHY_ICE_CORE_CLK_SRC] = &gcc_ufs_phy_ice_core_clk_src.clkr,
344906391eddSTaniya Das 	[GCC_UFS_PHY_PHY_AUX_CLK] = &gcc_ufs_phy_phy_aux_clk.clkr,
345006391eddSTaniya Das 	[GCC_UFS_PHY_PHY_AUX_CLK_SRC] = &gcc_ufs_phy_phy_aux_clk_src.clkr,
345106391eddSTaniya Das 	[GCC_UFS_PHY_RX_SYMBOL_0_CLK] = &gcc_ufs_phy_rx_symbol_0_clk.clkr,
345206391eddSTaniya Das 	[GCC_UFS_PHY_RX_SYMBOL_1_CLK] = &gcc_ufs_phy_rx_symbol_1_clk.clkr,
345306391eddSTaniya Das 	[GCC_UFS_PHY_TX_SYMBOL_0_CLK] = &gcc_ufs_phy_tx_symbol_0_clk.clkr,
345406391eddSTaniya Das 	[GCC_UFS_PHY_UNIPRO_CORE_CLK] = &gcc_ufs_phy_unipro_core_clk.clkr,
345506391eddSTaniya Das 	[GCC_UFS_PHY_UNIPRO_CORE_CLK_SRC] =
345606391eddSTaniya Das 					&gcc_ufs_phy_unipro_core_clk_src.clkr,
345706391eddSTaniya Das 	[GCC_USB30_PRIM_MASTER_CLK] = &gcc_usb30_prim_master_clk.clkr,
345806391eddSTaniya Das 	[GCC_USB30_PRIM_MASTER_CLK_SRC] = &gcc_usb30_prim_master_clk_src.clkr,
345906391eddSTaniya Das 	[GCC_USB30_PRIM_MOCK_UTMI_CLK] = &gcc_usb30_prim_mock_utmi_clk.clkr,
346006391eddSTaniya Das 	[GCC_USB30_PRIM_MOCK_UTMI_CLK_SRC] =
346106391eddSTaniya Das 					&gcc_usb30_prim_mock_utmi_clk_src.clkr,
346206391eddSTaniya Das 	[GCC_USB30_PRIM_SLEEP_CLK] = &gcc_usb30_prim_sleep_clk.clkr,
346306391eddSTaniya Das 	[GCC_USB30_SEC_MASTER_CLK] = &gcc_usb30_sec_master_clk.clkr,
346406391eddSTaniya Das 	[GCC_USB30_SEC_MASTER_CLK_SRC] = &gcc_usb30_sec_master_clk_src.clkr,
346506391eddSTaniya Das 	[GCC_USB30_SEC_MOCK_UTMI_CLK] = &gcc_usb30_sec_mock_utmi_clk.clkr,
346606391eddSTaniya Das 	[GCC_USB30_SEC_MOCK_UTMI_CLK_SRC] =
346706391eddSTaniya Das 					&gcc_usb30_sec_mock_utmi_clk_src.clkr,
346806391eddSTaniya Das 	[GCC_USB30_SEC_SLEEP_CLK] = &gcc_usb30_sec_sleep_clk.clkr,
346906391eddSTaniya Das 	[GCC_USB3_PRIM_CLKREF_CLK] = &gcc_usb3_prim_clkref_clk.clkr,
347006391eddSTaniya Das 	[GCC_USB3_PRIM_PHY_AUX_CLK] = &gcc_usb3_prim_phy_aux_clk.clkr,
347106391eddSTaniya Das 	[GCC_USB3_PRIM_PHY_AUX_CLK_SRC] = &gcc_usb3_prim_phy_aux_clk_src.clkr,
347206391eddSTaniya Das 	[GCC_USB3_PRIM_PHY_COM_AUX_CLK] = &gcc_usb3_prim_phy_com_aux_clk.clkr,
347306391eddSTaniya Das 	[GCC_USB3_PRIM_PHY_PIPE_CLK] = &gcc_usb3_prim_phy_pipe_clk.clkr,
347406391eddSTaniya Das 	[GCC_USB3_SEC_CLKREF_CLK] = &gcc_usb3_sec_clkref_clk.clkr,
347506391eddSTaniya Das 	[GCC_USB3_SEC_PHY_AUX_CLK] = &gcc_usb3_sec_phy_aux_clk.clkr,
347606391eddSTaniya Das 	[GCC_USB3_SEC_PHY_AUX_CLK_SRC] = &gcc_usb3_sec_phy_aux_clk_src.clkr,
347706391eddSTaniya Das 	[GCC_USB3_SEC_PHY_COM_AUX_CLK] = &gcc_usb3_sec_phy_com_aux_clk.clkr,
347806391eddSTaniya Das 	[GCC_USB3_SEC_PHY_PIPE_CLK] = &gcc_usb3_sec_phy_pipe_clk.clkr,
347906391eddSTaniya Das 	[GCC_USB_PHY_CFG_AHB2PHY_CLK] = &gcc_usb_phy_cfg_ahb2phy_clk.clkr,
348006391eddSTaniya Das 	[GCC_VDDA_VS_CLK] = &gcc_vdda_vs_clk.clkr,
348106391eddSTaniya Das 	[GCC_VDDCX_VS_CLK] = &gcc_vddcx_vs_clk.clkr,
348206391eddSTaniya Das 	[GCC_VDDMX_VS_CLK] = &gcc_vddmx_vs_clk.clkr,
348306391eddSTaniya Das 	[GCC_VIDEO_AHB_CLK] = &gcc_video_ahb_clk.clkr,
348406391eddSTaniya Das 	[GCC_VIDEO_AXI_CLK] = &gcc_video_axi_clk.clkr,
348506391eddSTaniya Das 	[GCC_VIDEO_XO_CLK] = &gcc_video_xo_clk.clkr,
348606391eddSTaniya Das 	[GCC_VS_CTRL_AHB_CLK] = &gcc_vs_ctrl_ahb_clk.clkr,
348706391eddSTaniya Das 	[GCC_VS_CTRL_CLK] = &gcc_vs_ctrl_clk.clkr,
348806391eddSTaniya Das 	[GCC_VS_CTRL_CLK_SRC] = &gcc_vs_ctrl_clk_src.clkr,
348906391eddSTaniya Das 	[GCC_VSENSOR_CLK_SRC] = &gcc_vsensor_clk_src.clkr,
349006391eddSTaniya Das 	[GPLL0] = &gpll0.clkr,
349106391eddSTaniya Das 	[GPLL0_OUT_EVEN] = &gpll0_out_even.clkr,
349206391eddSTaniya Das 	[GPLL4] = &gpll4.clkr,
3493cfb8282eSAmit Nischal 	[GCC_CPUSS_DVM_BUS_CLK] = &gcc_cpuss_dvm_bus_clk.clkr,
3494cfb8282eSAmit Nischal 	[GCC_CPUSS_GNOC_CLK] = &gcc_cpuss_gnoc_clk.clkr,
34954f83d9b8SDouglas Anderson 	[GCC_QSPI_CORE_CLK_SRC] = &gcc_qspi_core_clk_src.clkr,
34964f83d9b8SDouglas Anderson 	[GCC_QSPI_CORE_CLK] = &gcc_qspi_core_clk.clkr,
34974f83d9b8SDouglas Anderson 	[GCC_QSPI_CNOC_PERIPH_AHB_CLK] = &gcc_qspi_cnoc_periph_ahb_clk.clkr,
34988d3e5b9cSTaniya Das #ifdef CONFIG_SDM_LPASSCC_845
34998d3e5b9cSTaniya Das 	[GCC_LPASS_Q6_AXI_CLK] = &gcc_lpass_q6_axi_clk.clkr,
35008d3e5b9cSTaniya Das 	[GCC_LPASS_SWAY_CLK] = &gcc_lpass_sway_clk.clkr,
35018d3e5b9cSTaniya Das #endif
350206391eddSTaniya Das };
350306391eddSTaniya Das 
350406391eddSTaniya Das static const struct qcom_reset_map gcc_sdm845_resets[] = {
350506391eddSTaniya Das 	[GCC_MMSS_BCR] = { 0xb000 },
350606391eddSTaniya Das 	[GCC_PCIE_0_BCR] = { 0x6b000 },
350706391eddSTaniya Das 	[GCC_PCIE_1_BCR] = { 0x8d000 },
350806391eddSTaniya Das 	[GCC_PCIE_PHY_BCR] = { 0x6f000 },
350906391eddSTaniya Das 	[GCC_PDM_BCR] = { 0x33000 },
351006391eddSTaniya Das 	[GCC_PRNG_BCR] = { 0x34000 },
351106391eddSTaniya Das 	[GCC_QUPV3_WRAPPER_0_BCR] = { 0x17000 },
351206391eddSTaniya Das 	[GCC_QUPV3_WRAPPER_1_BCR] = { 0x18000 },
351306391eddSTaniya Das 	[GCC_QUSB2PHY_PRIM_BCR] = { 0x12000 },
351406391eddSTaniya Das 	[GCC_QUSB2PHY_SEC_BCR] = { 0x12004 },
351506391eddSTaniya Das 	[GCC_SDCC2_BCR] = { 0x14000 },
351606391eddSTaniya Das 	[GCC_SDCC4_BCR] = { 0x16000 },
351706391eddSTaniya Das 	[GCC_TSIF_BCR] = { 0x36000 },
351806391eddSTaniya Das 	[GCC_UFS_CARD_BCR] = { 0x75000 },
351906391eddSTaniya Das 	[GCC_UFS_PHY_BCR] = { 0x77000 },
352006391eddSTaniya Das 	[GCC_USB30_PRIM_BCR] = { 0xf000 },
352106391eddSTaniya Das 	[GCC_USB30_SEC_BCR] = { 0x10000 },
352206391eddSTaniya Das 	[GCC_USB3_PHY_PRIM_BCR] = { 0x50000 },
352306391eddSTaniya Das 	[GCC_USB3PHY_PHY_PRIM_BCR] = { 0x50004 },
352406391eddSTaniya Das 	[GCC_USB3_DP_PHY_PRIM_BCR] = { 0x50008 },
352506391eddSTaniya Das 	[GCC_USB3_PHY_SEC_BCR] = { 0x5000c },
352606391eddSTaniya Das 	[GCC_USB3PHY_PHY_SEC_BCR] = { 0x50010 },
352706391eddSTaniya Das 	[GCC_USB3_DP_PHY_SEC_BCR] = { 0x50014 },
352806391eddSTaniya Das 	[GCC_USB_PHY_CFG_AHB2PHY_BCR] = { 0x6a000 },
352906391eddSTaniya Das 	[GCC_PCIE_0_PHY_BCR] = { 0x6c01c },
353006391eddSTaniya Das 	[GCC_PCIE_1_PHY_BCR] = { 0x8e01c },
353106391eddSTaniya Das };
353206391eddSTaniya Das 
353306391eddSTaniya Das static struct gdsc *gcc_sdm845_gdscs[] = {
353406391eddSTaniya Das 	[PCIE_0_GDSC] = &pcie_0_gdsc,
353506391eddSTaniya Das 	[PCIE_1_GDSC] = &pcie_1_gdsc,
353606391eddSTaniya Das 	[UFS_CARD_GDSC] = &ufs_card_gdsc,
353706391eddSTaniya Das 	[UFS_PHY_GDSC] = &ufs_phy_gdsc,
353806391eddSTaniya Das 	[USB30_PRIM_GDSC] = &usb30_prim_gdsc,
353906391eddSTaniya Das 	[USB30_SEC_GDSC] = &usb30_sec_gdsc,
354006391eddSTaniya Das 	[HLOS1_VOTE_AGGRE_NOC_MMU_AUDIO_TBU_GDSC] =
354106391eddSTaniya Das 			&hlos1_vote_aggre_noc_mmu_audio_tbu_gdsc,
354206391eddSTaniya Das 	[HLOS1_VOTE_AGGRE_NOC_MMU_PCIE_TBU_GDSC] =
354306391eddSTaniya Das 			&hlos1_vote_aggre_noc_mmu_pcie_tbu_gdsc,
354406391eddSTaniya Das 	[HLOS1_VOTE_AGGRE_NOC_MMU_TBU1_GDSC] =
354506391eddSTaniya Das 			&hlos1_vote_aggre_noc_mmu_tbu1_gdsc,
354606391eddSTaniya Das 	[HLOS1_VOTE_AGGRE_NOC_MMU_TBU2_GDSC] =
354706391eddSTaniya Das 			&hlos1_vote_aggre_noc_mmu_tbu2_gdsc,
354806391eddSTaniya Das 	[HLOS1_VOTE_MMNOC_MMU_TBU_HF0_GDSC] =
354906391eddSTaniya Das 			&hlos1_vote_mmnoc_mmu_tbu_hf0_gdsc,
355006391eddSTaniya Das 	[HLOS1_VOTE_MMNOC_MMU_TBU_HF1_GDSC] =
355106391eddSTaniya Das 			&hlos1_vote_mmnoc_mmu_tbu_hf1_gdsc,
355206391eddSTaniya Das 	[HLOS1_VOTE_MMNOC_MMU_TBU_SF_GDSC] = &hlos1_vote_mmnoc_mmu_tbu_sf_gdsc,
355306391eddSTaniya Das };
355406391eddSTaniya Das 
355506391eddSTaniya Das static const struct regmap_config gcc_sdm845_regmap_config = {
355606391eddSTaniya Das 	.reg_bits	= 32,
355706391eddSTaniya Das 	.reg_stride	= 4,
355806391eddSTaniya Das 	.val_bits	= 32,
355906391eddSTaniya Das 	.max_register	= 0x182090,
356006391eddSTaniya Das 	.fast_io	= true,
356106391eddSTaniya Das };
356206391eddSTaniya Das 
356306391eddSTaniya Das static const struct qcom_cc_desc gcc_sdm845_desc = {
356406391eddSTaniya Das 	.config = &gcc_sdm845_regmap_config,
356506391eddSTaniya Das 	.clks = gcc_sdm845_clocks,
356606391eddSTaniya Das 	.num_clks = ARRAY_SIZE(gcc_sdm845_clocks),
356706391eddSTaniya Das 	.resets = gcc_sdm845_resets,
356806391eddSTaniya Das 	.num_resets = ARRAY_SIZE(gcc_sdm845_resets),
356906391eddSTaniya Das 	.gdscs = gcc_sdm845_gdscs,
357006391eddSTaniya Das 	.num_gdscs = ARRAY_SIZE(gcc_sdm845_gdscs),
357106391eddSTaniya Das };
357206391eddSTaniya Das 
357306391eddSTaniya Das static const struct of_device_id gcc_sdm845_match_table[] = {
357406391eddSTaniya Das 	{ .compatible = "qcom,gcc-sdm845" },
357506391eddSTaniya Das 	{ }
357606391eddSTaniya Das };
357706391eddSTaniya Das MODULE_DEVICE_TABLE(of, gcc_sdm845_match_table);
357806391eddSTaniya Das 
35798b69c6dbSTaniya Das static const struct clk_rcg_dfs_data gcc_dfs_clocks[] = {
35808b69c6dbSTaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s0_clk),
35818b69c6dbSTaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s1_clk),
35828b69c6dbSTaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s2_clk),
35838b69c6dbSTaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s3_clk),
35848b69c6dbSTaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s4_clk),
35858b69c6dbSTaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s5_clk),
35868b69c6dbSTaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s6_clk),
35878b69c6dbSTaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s7_clk),
35888b69c6dbSTaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s0_clk),
35898b69c6dbSTaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s1_clk),
35908b69c6dbSTaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s2_clk),
35918b69c6dbSTaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s3_clk),
35928b69c6dbSTaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s4_clk),
35938b69c6dbSTaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s5_clk),
35948b69c6dbSTaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s6_clk),
35958b69c6dbSTaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s7_clk),
35968b69c6dbSTaniya Das };
35978b69c6dbSTaniya Das 
359806391eddSTaniya Das static int gcc_sdm845_probe(struct platform_device *pdev)
359906391eddSTaniya Das {
360006391eddSTaniya Das 	struct regmap *regmap;
36018b69c6dbSTaniya Das 	int ret;
360206391eddSTaniya Das 
360306391eddSTaniya Das 	regmap = qcom_cc_map(pdev, &gcc_sdm845_desc);
360406391eddSTaniya Das 	if (IS_ERR(regmap))
360506391eddSTaniya Das 		return PTR_ERR(regmap);
360606391eddSTaniya Das 
360706391eddSTaniya Das 	/* Disable the GPLL0 active input to MMSS and GPU via MISC registers */
360806391eddSTaniya Das 	regmap_update_bits(regmap, 0x09ffc, 0x3, 0x3);
360906391eddSTaniya Das 	regmap_update_bits(regmap, 0x71028, 0x3, 0x3);
361006391eddSTaniya Das 
36118b69c6dbSTaniya Das 	ret = qcom_cc_register_rcg_dfs(regmap, gcc_dfs_clocks,
36128b69c6dbSTaniya Das 					ARRAY_SIZE(gcc_dfs_clocks));
36138b69c6dbSTaniya Das 	if (ret)
36148b69c6dbSTaniya Das 		return ret;
36158b69c6dbSTaniya Das 
361606391eddSTaniya Das 	return qcom_cc_really_probe(pdev, &gcc_sdm845_desc, regmap);
361706391eddSTaniya Das }
361806391eddSTaniya Das 
361906391eddSTaniya Das static struct platform_driver gcc_sdm845_driver = {
362006391eddSTaniya Das 	.probe		= gcc_sdm845_probe,
362106391eddSTaniya Das 	.driver		= {
362206391eddSTaniya Das 		.name	= "gcc-sdm845",
362306391eddSTaniya Das 		.of_match_table = gcc_sdm845_match_table,
362406391eddSTaniya Das 	},
362506391eddSTaniya Das };
362606391eddSTaniya Das 
362706391eddSTaniya Das static int __init gcc_sdm845_init(void)
362806391eddSTaniya Das {
362906391eddSTaniya Das 	return platform_driver_register(&gcc_sdm845_driver);
363006391eddSTaniya Das }
363106391eddSTaniya Das subsys_initcall(gcc_sdm845_init);
363206391eddSTaniya Das 
363306391eddSTaniya Das static void __exit gcc_sdm845_exit(void)
363406391eddSTaniya Das {
363506391eddSTaniya Das 	platform_driver_unregister(&gcc_sdm845_driver);
363606391eddSTaniya Das }
363706391eddSTaniya Das module_exit(gcc_sdm845_exit);
363806391eddSTaniya Das 
363906391eddSTaniya Das MODULE_DESCRIPTION("QTI GCC SDM845 Driver");
364006391eddSTaniya Das MODULE_LICENSE("GPL v2");
364106391eddSTaniya Das MODULE_ALIAS("platform:gcc-sdm845");
3642