xref: /openbmc/linux/drivers/clk/qcom/gcc-sc7180.c (revision 6d37a8d192830267e6b10a6d57ae28d2e89097e7)
117269568STaniya Das // SPDX-License-Identifier: GPL-2.0-only
217269568STaniya Das /*
3253a0af5STaniya Das  * Copyright (c) 2019-2020, The Linux Foundation. All rights reserved.
417269568STaniya Das  */
517269568STaniya Das 
617269568STaniya Das #include <linux/clk-provider.h>
717269568STaniya Das #include <linux/err.h>
817269568STaniya Das #include <linux/kernel.h>
917269568STaniya Das #include <linux/module.h>
1017269568STaniya Das #include <linux/of.h>
1117269568STaniya Das #include <linux/of_device.h>
1217269568STaniya Das #include <linux/regmap.h>
1317269568STaniya Das 
1417269568STaniya Das #include <dt-bindings/clock/qcom,gcc-sc7180.h>
1517269568STaniya Das 
1617269568STaniya Das #include "clk-alpha-pll.h"
1717269568STaniya Das #include "clk-branch.h"
1817269568STaniya Das #include "clk-rcg.h"
1917269568STaniya Das #include "clk-regmap.h"
2017269568STaniya Das #include "common.h"
2117269568STaniya Das #include "gdsc.h"
2217269568STaniya Das #include "reset.h"
2317269568STaniya Das 
2417269568STaniya Das enum {
2517269568STaniya Das 	P_BI_TCXO,
2617269568STaniya Das 	P_CORE_BI_PLL_TEST_SE,
2717269568STaniya Das 	P_GPLL0_OUT_EVEN,
2817269568STaniya Das 	P_GPLL0_OUT_MAIN,
2917269568STaniya Das 	P_GPLL1_OUT_MAIN,
3017269568STaniya Das 	P_GPLL4_OUT_MAIN,
3117269568STaniya Das 	P_GPLL6_OUT_MAIN,
3217269568STaniya Das 	P_GPLL7_OUT_MAIN,
3317269568STaniya Das 	P_SLEEP_CLK,
3417269568STaniya Das };
3517269568STaniya Das 
3617269568STaniya Das static struct clk_alpha_pll gpll0 = {
3717269568STaniya Das 	.offset = 0x0,
3817269568STaniya Das 	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
3917269568STaniya Das 	.clkr = {
4017269568STaniya Das 		.enable_reg = 0x52010,
4117269568STaniya Das 		.enable_mask = BIT(0),
4217269568STaniya Das 		.hw.init = &(struct clk_init_data){
4317269568STaniya Das 			.name = "gpll0",
4417269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
4517269568STaniya Das 				.fw_name = "bi_tcxo",
4617269568STaniya Das 				.name = "bi_tcxo",
4717269568STaniya Das 			},
4817269568STaniya Das 			.num_parents = 1,
4917269568STaniya Das 			.ops = &clk_alpha_pll_fixed_fabia_ops,
5017269568STaniya Das 		},
5117269568STaniya Das 	},
5217269568STaniya Das };
5317269568STaniya Das 
5417269568STaniya Das static const struct clk_div_table post_div_table_gpll0_out_even[] = {
5517269568STaniya Das 	{ 0x1, 2 },
5617269568STaniya Das 	{ }
5717269568STaniya Das };
5817269568STaniya Das 
5917269568STaniya Das static struct clk_alpha_pll_postdiv gpll0_out_even = {
6017269568STaniya Das 	.offset = 0x0,
6117269568STaniya Das 	.post_div_shift = 8,
6217269568STaniya Das 	.post_div_table = post_div_table_gpll0_out_even,
6317269568STaniya Das 	.num_post_div = ARRAY_SIZE(post_div_table_gpll0_out_even),
6417269568STaniya Das 	.width = 4,
6517269568STaniya Das 	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
6617269568STaniya Das 	.clkr.hw.init = &(struct clk_init_data){
6717269568STaniya Das 		.name = "gpll0_out_even",
6817269568STaniya Das 		.parent_data = &(const struct clk_parent_data){
6917269568STaniya Das 			.hw = &gpll0.clkr.hw,
7017269568STaniya Das 		},
7117269568STaniya Das 		.num_parents = 1,
7217269568STaniya Das 		.ops = &clk_alpha_pll_postdiv_fabia_ops,
7317269568STaniya Das 	},
7417269568STaniya Das };
7517269568STaniya Das 
7617269568STaniya Das static struct clk_fixed_factor gcc_pll0_main_div_cdiv = {
7717269568STaniya Das 	.mult = 1,
7817269568STaniya Das 	.div = 2,
7917269568STaniya Das 	.hw.init = &(struct clk_init_data){
8017269568STaniya Das 		.name = "gcc_pll0_main_div_cdiv",
8117269568STaniya Das 		.parent_data = &(const struct clk_parent_data){
8217269568STaniya Das 			.hw = &gpll0.clkr.hw,
8317269568STaniya Das 		},
8417269568STaniya Das 		.num_parents = 1,
8517269568STaniya Das 		.ops = &clk_fixed_factor_ops,
8617269568STaniya Das 	},
8717269568STaniya Das };
8817269568STaniya Das 
8917269568STaniya Das static struct clk_alpha_pll gpll1 = {
9017269568STaniya Das 	.offset = 0x01000,
9117269568STaniya Das 	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
9217269568STaniya Das 	.clkr = {
9317269568STaniya Das 		.enable_reg = 0x52010,
9417269568STaniya Das 		.enable_mask = BIT(1),
9517269568STaniya Das 		.hw.init = &(struct clk_init_data){
9617269568STaniya Das 			.name = "gpll1",
9717269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
9817269568STaniya Das 				.fw_name = "bi_tcxo",
9917269568STaniya Das 				.name = "bi_tcxo",
10017269568STaniya Das 			},
10117269568STaniya Das 			.num_parents = 1,
10217269568STaniya Das 			.ops = &clk_alpha_pll_fixed_fabia_ops,
10317269568STaniya Das 		},
10417269568STaniya Das 	},
10517269568STaniya Das };
10617269568STaniya Das 
10717269568STaniya Das static struct clk_alpha_pll gpll4 = {
10817269568STaniya Das 	.offset = 0x76000,
10917269568STaniya Das 	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
11017269568STaniya Das 	.clkr = {
11117269568STaniya Das 		.enable_reg = 0x52010,
11217269568STaniya Das 		.enable_mask = BIT(4),
11317269568STaniya Das 		.hw.init = &(struct clk_init_data){
11417269568STaniya Das 			.name = "gpll4",
11517269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
11617269568STaniya Das 				.fw_name = "bi_tcxo",
11717269568STaniya Das 				.name = "bi_tcxo",
11817269568STaniya Das 			},
11917269568STaniya Das 			.num_parents = 1,
12017269568STaniya Das 			.ops = &clk_alpha_pll_fixed_fabia_ops,
12117269568STaniya Das 		},
12217269568STaniya Das 	},
12317269568STaniya Das };
12417269568STaniya Das 
12517269568STaniya Das static struct clk_alpha_pll gpll6 = {
12617269568STaniya Das 	.offset = 0x13000,
12717269568STaniya Das 	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
12817269568STaniya Das 	.clkr = {
12917269568STaniya Das 		.enable_reg = 0x52010,
13017269568STaniya Das 		.enable_mask = BIT(6),
13117269568STaniya Das 		.hw.init = &(struct clk_init_data){
13217269568STaniya Das 			.name = "gpll6",
13317269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
13417269568STaniya Das 				.fw_name = "bi_tcxo",
13517269568STaniya Das 				.name = "bi_tcxo",
13617269568STaniya Das 			},
13717269568STaniya Das 			.num_parents = 1,
13817269568STaniya Das 			.ops = &clk_alpha_pll_fixed_fabia_ops,
13917269568STaniya Das 		},
14017269568STaniya Das 	},
14117269568STaniya Das };
14217269568STaniya Das 
14317269568STaniya Das static struct clk_alpha_pll gpll7 = {
14417269568STaniya Das 	.offset = 0x27000,
14517269568STaniya Das 	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
14617269568STaniya Das 	.clkr = {
14717269568STaniya Das 		.enable_reg = 0x52010,
14817269568STaniya Das 		.enable_mask = BIT(7),
14917269568STaniya Das 		.hw.init = &(struct clk_init_data){
15017269568STaniya Das 			.name = "gpll7",
15117269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
15217269568STaniya Das 				.fw_name = "bi_tcxo",
15317269568STaniya Das 				.name = "bi_tcxo",
15417269568STaniya Das 			},
15517269568STaniya Das 			.num_parents = 1,
15617269568STaniya Das 			.ops = &clk_alpha_pll_fixed_fabia_ops,
15717269568STaniya Das 		},
15817269568STaniya Das 	},
15917269568STaniya Das };
16017269568STaniya Das 
16117269568STaniya Das static const struct parent_map gcc_parent_map_0[] = {
16217269568STaniya Das 	{ P_BI_TCXO, 0 },
16317269568STaniya Das 	{ P_GPLL0_OUT_MAIN, 1 },
16417269568STaniya Das 	{ P_GPLL0_OUT_EVEN, 6 },
16517269568STaniya Das 	{ P_CORE_BI_PLL_TEST_SE, 7 },
16617269568STaniya Das };
16717269568STaniya Das 
16817269568STaniya Das static const struct clk_parent_data gcc_parent_data_0[] = {
16917269568STaniya Das 	{ .fw_name = "bi_tcxo", .name = "bi_tcxo" },
17017269568STaniya Das 	{ .hw = &gpll0.clkr.hw },
17117269568STaniya Das 	{ .hw = &gpll0_out_even.clkr.hw },
17217269568STaniya Das 	{ .fw_name = "core_bi_pll_test_se", .name = "core_bi_pll_test_se" },
17317269568STaniya Das };
17417269568STaniya Das 
17517269568STaniya Das static const struct clk_parent_data gcc_parent_data_0_ao[] = {
17617269568STaniya Das 	{ .fw_name = "bi_tcxo_ao", .name = "bi_tcxo_ao" },
17717269568STaniya Das 	{ .hw = &gpll0.clkr.hw },
17817269568STaniya Das 	{ .hw = &gpll0_out_even.clkr.hw },
17917269568STaniya Das 	{ .fw_name = "core_bi_pll_test_se", .name = "core_bi_pll_test_se" },
18017269568STaniya Das };
18117269568STaniya Das 
18217269568STaniya Das static const struct parent_map gcc_parent_map_1[] = {
18317269568STaniya Das 	{ P_BI_TCXO, 0 },
18417269568STaniya Das 	{ P_GPLL0_OUT_MAIN, 1 },
18517269568STaniya Das 	{ P_GPLL6_OUT_MAIN, 2 },
18617269568STaniya Das 	{ P_GPLL0_OUT_EVEN, 6 },
18717269568STaniya Das 	{ P_CORE_BI_PLL_TEST_SE, 7 },
18817269568STaniya Das };
18917269568STaniya Das 
19017269568STaniya Das static const struct clk_parent_data gcc_parent_data_1[] = {
19117269568STaniya Das 	{ .fw_name = "bi_tcxo", .name = "bi_tcxo" },
19217269568STaniya Das 	{ .hw = &gpll0.clkr.hw },
19317269568STaniya Das 	{ .hw = &gpll6.clkr.hw },
19417269568STaniya Das 	{ .hw = &gpll0_out_even.clkr.hw },
19517269568STaniya Das 	{ .fw_name = "core_bi_pll_test_se", .name = "core_bi_pll_test_se" },
19617269568STaniya Das };
19717269568STaniya Das 
19817269568STaniya Das static const struct parent_map gcc_parent_map_2[] = {
19917269568STaniya Das 	{ P_BI_TCXO, 0 },
20017269568STaniya Das 	{ P_GPLL0_OUT_MAIN, 1 },
20117269568STaniya Das 	{ P_GPLL1_OUT_MAIN, 4 },
20217269568STaniya Das 	{ P_GPLL4_OUT_MAIN, 5 },
20317269568STaniya Das 	{ P_GPLL0_OUT_EVEN, 6 },
20417269568STaniya Das 	{ P_CORE_BI_PLL_TEST_SE, 7 },
20517269568STaniya Das };
20617269568STaniya Das 
20717269568STaniya Das static const struct clk_parent_data gcc_parent_data_2[] = {
20817269568STaniya Das 	{ .fw_name = "bi_tcxo", .name = "bi_tcxo" },
20917269568STaniya Das 	{ .hw = &gpll0.clkr.hw },
21017269568STaniya Das 	{ .hw = &gpll1.clkr.hw },
21117269568STaniya Das 	{ .hw = &gpll4.clkr.hw },
21217269568STaniya Das 	{ .hw = &gpll0_out_even.clkr.hw },
21317269568STaniya Das 	{ .fw_name = "core_bi_pll_test_se", .name = "core_bi_pll_test_se" },
21417269568STaniya Das };
21517269568STaniya Das 
21617269568STaniya Das static const struct parent_map gcc_parent_map_3[] = {
21717269568STaniya Das 	{ P_BI_TCXO, 0 },
21817269568STaniya Das 	{ P_GPLL0_OUT_MAIN, 1 },
21917269568STaniya Das 	{ P_CORE_BI_PLL_TEST_SE, 7 },
22017269568STaniya Das };
22117269568STaniya Das 
22217269568STaniya Das static const struct clk_parent_data gcc_parent_data_3[] = {
22317269568STaniya Das 	{ .fw_name = "bi_tcxo", .name = "bi_tcxo" },
22417269568STaniya Das 	{ .hw = &gpll0.clkr.hw },
22517269568STaniya Das 	{ .fw_name = "core_bi_pll_test_se", .name = "core_bi_pll_test_se" },
22617269568STaniya Das };
22717269568STaniya Das 
22817269568STaniya Das static const struct parent_map gcc_parent_map_4[] = {
22917269568STaniya Das 	{ P_BI_TCXO, 0 },
23017269568STaniya Das 	{ P_GPLL0_OUT_MAIN, 1 },
23117269568STaniya Das 	{ P_SLEEP_CLK, 5 },
23217269568STaniya Das 	{ P_GPLL0_OUT_EVEN, 6 },
23317269568STaniya Das 	{ P_CORE_BI_PLL_TEST_SE, 7 },
23417269568STaniya Das };
23517269568STaniya Das 
23617269568STaniya Das static const struct clk_parent_data gcc_parent_data_4[] = {
23717269568STaniya Das 	{ .fw_name = "bi_tcxo", .name = "bi_tcxo" },
23817269568STaniya Das 	{ .hw = &gpll0.clkr.hw },
23917269568STaniya Das 	{ .fw_name = "sleep_clk", .name = "sleep_clk" },
24017269568STaniya Das 	{ .hw = &gpll0_out_even.clkr.hw },
24117269568STaniya Das 	{ .fw_name = "core_bi_pll_test_se", .name = "core_bi_pll_test_se" },
24217269568STaniya Das };
24317269568STaniya Das 
24417269568STaniya Das static const struct parent_map gcc_parent_map_5[] = {
24517269568STaniya Das 	{ P_BI_TCXO, 0 },
24617269568STaniya Das 	{ P_GPLL0_OUT_MAIN, 1 },
24717269568STaniya Das 	{ P_GPLL7_OUT_MAIN, 3 },
24817269568STaniya Das 	{ P_GPLL0_OUT_EVEN, 6 },
24917269568STaniya Das 	{ P_CORE_BI_PLL_TEST_SE, 7 },
25017269568STaniya Das };
25117269568STaniya Das 
25217269568STaniya Das static const struct clk_parent_data gcc_parent_data_5[] = {
25317269568STaniya Das 	{ .fw_name = "bi_tcxo", .name = "bi_tcxo" },
25417269568STaniya Das 	{ .hw = &gpll0.clkr.hw },
25517269568STaniya Das 	{ .hw = &gpll7.clkr.hw },
25617269568STaniya Das 	{ .hw = &gpll0_out_even.clkr.hw },
25717269568STaniya Das 	{ .fw_name = "core_bi_pll_test_se", .name = "core_bi_pll_test_se" },
25817269568STaniya Das };
25917269568STaniya Das 
26017269568STaniya Das static const struct parent_map gcc_parent_map_6[] = {
26117269568STaniya Das 	{ P_BI_TCXO, 0 },
26217269568STaniya Das 	{ P_GPLL0_OUT_MAIN, 1 },
26317269568STaniya Das 	{ P_SLEEP_CLK, 5 },
26417269568STaniya Das 	{ P_CORE_BI_PLL_TEST_SE, 7 },
26517269568STaniya Das };
26617269568STaniya Das 
26717269568STaniya Das static const struct clk_parent_data gcc_parent_data_6[] = {
26817269568STaniya Das 	{ .fw_name = "bi_tcxo", .name = "bi_tcxo" },
26917269568STaniya Das 	{ .hw = &gpll0.clkr.hw },
27017269568STaniya Das 	{ .fw_name = "sleep_clk", .name = "sleep_clk" },
27117269568STaniya Das 	{ .fw_name = "core_bi_pll_test_se", .name = "core_bi_pll_test_se" },
27217269568STaniya Das };
27317269568STaniya Das 
27417269568STaniya Das static const struct freq_tbl ftbl_gcc_cpuss_ahb_clk_src[] = {
27517269568STaniya Das 	F(19200000, P_BI_TCXO, 1, 0, 0),
27617269568STaniya Das 	{ }
27717269568STaniya Das };
27817269568STaniya Das 
27917269568STaniya Das static struct clk_rcg2 gcc_cpuss_ahb_clk_src = {
28017269568STaniya Das 	.cmd_rcgr = 0x48014,
28117269568STaniya Das 	.mnd_width = 0,
28217269568STaniya Das 	.hid_width = 5,
28317269568STaniya Das 	.parent_map = gcc_parent_map_0,
28417269568STaniya Das 	.freq_tbl = ftbl_gcc_cpuss_ahb_clk_src,
28517269568STaniya Das 	.clkr.hw.init = &(struct clk_init_data){
28617269568STaniya Das 		.name = "gcc_cpuss_ahb_clk_src",
28717269568STaniya Das 		.parent_data = gcc_parent_data_0_ao,
28817269568STaniya Das 		.num_parents = 4,
28917269568STaniya Das 		.flags = CLK_SET_RATE_PARENT,
29017269568STaniya Das 		.ops = &clk_rcg2_ops,
29117269568STaniya Das 		},
29217269568STaniya Das };
29317269568STaniya Das 
29417269568STaniya Das static const struct freq_tbl ftbl_gcc_gp1_clk_src[] = {
29517269568STaniya Das 	F(19200000, P_BI_TCXO, 1, 0, 0),
29617269568STaniya Das 	F(25000000, P_GPLL0_OUT_EVEN, 12, 0, 0),
29717269568STaniya Das 	F(50000000, P_GPLL0_OUT_EVEN, 6, 0, 0),
29817269568STaniya Das 	F(100000000, P_GPLL0_OUT_EVEN, 3, 0, 0),
29917269568STaniya Das 	F(200000000, P_GPLL0_OUT_EVEN, 1.5, 0, 0),
30017269568STaniya Das 	{ }
30117269568STaniya Das };
30217269568STaniya Das 
30317269568STaniya Das static struct clk_rcg2 gcc_gp1_clk_src = {
30417269568STaniya Das 	.cmd_rcgr = 0x64004,
30517269568STaniya Das 	.mnd_width = 8,
30617269568STaniya Das 	.hid_width = 5,
30717269568STaniya Das 	.parent_map = gcc_parent_map_4,
30817269568STaniya Das 	.freq_tbl = ftbl_gcc_gp1_clk_src,
30917269568STaniya Das 	.clkr.hw.init = &(struct clk_init_data){
31017269568STaniya Das 		.name = "gcc_gp1_clk_src",
31117269568STaniya Das 		.parent_data = gcc_parent_data_4,
31217269568STaniya Das 		.num_parents = 5,
31317269568STaniya Das 		.ops = &clk_rcg2_ops,
31417269568STaniya Das 	},
31517269568STaniya Das };
31617269568STaniya Das 
31717269568STaniya Das static struct clk_rcg2 gcc_gp2_clk_src = {
31817269568STaniya Das 	.cmd_rcgr = 0x65004,
31917269568STaniya Das 	.mnd_width = 8,
32017269568STaniya Das 	.hid_width = 5,
32117269568STaniya Das 	.parent_map = gcc_parent_map_4,
32217269568STaniya Das 	.freq_tbl = ftbl_gcc_gp1_clk_src,
32317269568STaniya Das 	.clkr.hw.init = &(struct clk_init_data){
32417269568STaniya Das 		.name = "gcc_gp2_clk_src",
32517269568STaniya Das 		.parent_data = gcc_parent_data_4,
32617269568STaniya Das 		.num_parents = 5,
32717269568STaniya Das 		.ops = &clk_rcg2_ops,
32817269568STaniya Das 	},
32917269568STaniya Das };
33017269568STaniya Das 
33117269568STaniya Das static struct clk_rcg2 gcc_gp3_clk_src = {
33217269568STaniya Das 	.cmd_rcgr = 0x66004,
33317269568STaniya Das 	.mnd_width = 8,
33417269568STaniya Das 	.hid_width = 5,
33517269568STaniya Das 	.parent_map = gcc_parent_map_4,
33617269568STaniya Das 	.freq_tbl = ftbl_gcc_gp1_clk_src,
33717269568STaniya Das 	.clkr.hw.init = &(struct clk_init_data){
33817269568STaniya Das 		.name = "gcc_gp3_clk_src",
33917269568STaniya Das 		.parent_data = gcc_parent_data_4,
34017269568STaniya Das 		.num_parents = 5,
34117269568STaniya Das 		.ops = &clk_rcg2_ops,
34217269568STaniya Das 	},
34317269568STaniya Das };
34417269568STaniya Das 
34517269568STaniya Das static const struct freq_tbl ftbl_gcc_pdm2_clk_src[] = {
34617269568STaniya Das 	F(19200000, P_BI_TCXO, 1, 0, 0),
34717269568STaniya Das 	F(60000000, P_GPLL0_OUT_EVEN, 5, 0, 0),
34817269568STaniya Das 	{ }
34917269568STaniya Das };
35017269568STaniya Das 
35117269568STaniya Das static struct clk_rcg2 gcc_pdm2_clk_src = {
35217269568STaniya Das 	.cmd_rcgr = 0x33010,
35317269568STaniya Das 	.mnd_width = 0,
35417269568STaniya Das 	.hid_width = 5,
35517269568STaniya Das 	.parent_map = gcc_parent_map_0,
35617269568STaniya Das 	.freq_tbl = ftbl_gcc_pdm2_clk_src,
35717269568STaniya Das 	.clkr.hw.init = &(struct clk_init_data){
35817269568STaniya Das 		.name = "gcc_pdm2_clk_src",
35917269568STaniya Das 		.parent_data = gcc_parent_data_0,
36017269568STaniya Das 		.num_parents = 4,
36117269568STaniya Das 		.ops = &clk_rcg2_ops,
36217269568STaniya Das 	},
36317269568STaniya Das };
36417269568STaniya Das 
36517269568STaniya Das static const struct freq_tbl ftbl_gcc_qspi_core_clk_src[] = {
36617269568STaniya Das 	F(75000000, P_GPLL0_OUT_EVEN, 4, 0, 0),
36717269568STaniya Das 	F(150000000, P_GPLL0_OUT_EVEN, 2, 0, 0),
36817269568STaniya Das 	F(300000000, P_GPLL0_OUT_EVEN, 1, 0, 0),
36917269568STaniya Das 	{ }
37017269568STaniya Das };
37117269568STaniya Das 
37217269568STaniya Das static struct clk_rcg2 gcc_qspi_core_clk_src = {
37317269568STaniya Das 	.cmd_rcgr = 0x4b00c,
37417269568STaniya Das 	.mnd_width = 0,
37517269568STaniya Das 	.hid_width = 5,
37617269568STaniya Das 	.parent_map = gcc_parent_map_2,
37717269568STaniya Das 	.freq_tbl = ftbl_gcc_qspi_core_clk_src,
37817269568STaniya Das 	.clkr.hw.init = &(struct clk_init_data){
37917269568STaniya Das 		.name = "gcc_qspi_core_clk_src",
38017269568STaniya Das 		.parent_data = gcc_parent_data_2,
38117269568STaniya Das 		.num_parents = 6,
38217269568STaniya Das 		.ops = &clk_rcg2_ops,
38317269568STaniya Das 	},
38417269568STaniya Das };
38517269568STaniya Das 
38617269568STaniya Das static const struct freq_tbl ftbl_gcc_qupv3_wrap0_s0_clk_src[] = {
38717269568STaniya Das 	F(7372800, P_GPLL0_OUT_EVEN, 1, 384, 15625),
38817269568STaniya Das 	F(14745600, P_GPLL0_OUT_EVEN, 1, 768, 15625),
38917269568STaniya Das 	F(19200000, P_BI_TCXO, 1, 0, 0),
39017269568STaniya Das 	F(29491200, P_GPLL0_OUT_EVEN, 1, 1536, 15625),
39117269568STaniya Das 	F(32000000, P_GPLL0_OUT_EVEN, 1, 8, 75),
39217269568STaniya Das 	F(48000000, P_GPLL0_OUT_EVEN, 1, 4, 25),
3931b70061fSTaniya Das 	F(51200000, P_GPLL6_OUT_MAIN, 7.5, 0, 0),
39417269568STaniya Das 	F(64000000, P_GPLL0_OUT_EVEN, 1, 16, 75),
39517269568STaniya Das 	F(75000000, P_GPLL0_OUT_EVEN, 4, 0, 0),
39617269568STaniya Das 	F(80000000, P_GPLL0_OUT_EVEN, 1, 4, 15),
39717269568STaniya Das 	F(96000000, P_GPLL0_OUT_EVEN, 1, 8, 25),
39817269568STaniya Das 	F(100000000, P_GPLL0_OUT_EVEN, 3, 0, 0),
39917269568STaniya Das 	F(102400000, P_GPLL0_OUT_EVEN, 1, 128, 375),
40017269568STaniya Das 	F(112000000, P_GPLL0_OUT_EVEN, 1, 28, 75),
40117269568STaniya Das 	F(117964800, P_GPLL0_OUT_EVEN, 1, 6144, 15625),
40217269568STaniya Das 	F(120000000, P_GPLL0_OUT_EVEN, 2.5, 0, 0),
40317269568STaniya Das 	F(128000000, P_GPLL6_OUT_MAIN, 3, 0, 0),
40417269568STaniya Das 	{ }
40517269568STaniya Das };
40617269568STaniya Das 
40717269568STaniya Das static struct clk_init_data gcc_qupv3_wrap0_s0_clk_src_init = {
40817269568STaniya Das 	.name = "gcc_qupv3_wrap0_s0_clk_src",
4091b70061fSTaniya Das 	.parent_data = gcc_parent_data_1,
4101b70061fSTaniya Das 	.num_parents = ARRAY_SIZE(gcc_parent_data_1),
41117269568STaniya Das 	.ops = &clk_rcg2_ops,
41217269568STaniya Das };
41317269568STaniya Das 
41417269568STaniya Das static struct clk_rcg2 gcc_qupv3_wrap0_s0_clk_src = {
41517269568STaniya Das 	.cmd_rcgr = 0x17034,
41617269568STaniya Das 	.mnd_width = 16,
41717269568STaniya Das 	.hid_width = 5,
4181b70061fSTaniya Das 	.parent_map = gcc_parent_map_1,
41917269568STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
42017269568STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap0_s0_clk_src_init,
42117269568STaniya Das };
42217269568STaniya Das 
42317269568STaniya Das static struct clk_init_data gcc_qupv3_wrap0_s1_clk_src_init = {
42417269568STaniya Das 	.name = "gcc_qupv3_wrap0_s1_clk_src",
4251b70061fSTaniya Das 	.parent_data = gcc_parent_data_1,
4261b70061fSTaniya Das 	.num_parents = ARRAY_SIZE(gcc_parent_data_1),
42717269568STaniya Das 	.ops = &clk_rcg2_ops,
42817269568STaniya Das };
42917269568STaniya Das 
43017269568STaniya Das static struct clk_rcg2 gcc_qupv3_wrap0_s1_clk_src = {
43117269568STaniya Das 	.cmd_rcgr = 0x17164,
43217269568STaniya Das 	.mnd_width = 16,
43317269568STaniya Das 	.hid_width = 5,
4341b70061fSTaniya Das 	.parent_map = gcc_parent_map_1,
43517269568STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
43617269568STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap0_s1_clk_src_init,
43717269568STaniya Das };
43817269568STaniya Das 
43917269568STaniya Das static struct clk_init_data gcc_qupv3_wrap0_s2_clk_src_init = {
44017269568STaniya Das 	.name = "gcc_qupv3_wrap0_s2_clk_src",
4411b70061fSTaniya Das 	.parent_data = gcc_parent_data_1,
4421b70061fSTaniya Das 	.num_parents = ARRAY_SIZE(gcc_parent_data_1),
44317269568STaniya Das 	.ops = &clk_rcg2_ops,
44417269568STaniya Das };
44517269568STaniya Das 
44617269568STaniya Das static struct clk_rcg2 gcc_qupv3_wrap0_s2_clk_src = {
44717269568STaniya Das 	.cmd_rcgr = 0x17294,
44817269568STaniya Das 	.mnd_width = 16,
44917269568STaniya Das 	.hid_width = 5,
4501b70061fSTaniya Das 	.parent_map = gcc_parent_map_1,
45117269568STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
45217269568STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap0_s2_clk_src_init,
45317269568STaniya Das };
45417269568STaniya Das 
45517269568STaniya Das static struct clk_init_data gcc_qupv3_wrap0_s3_clk_src_init = {
45617269568STaniya Das 	.name = "gcc_qupv3_wrap0_s3_clk_src",
4571b70061fSTaniya Das 	.parent_data = gcc_parent_data_1,
4581b70061fSTaniya Das 	.num_parents = ARRAY_SIZE(gcc_parent_data_1),
45917269568STaniya Das 	.ops = &clk_rcg2_ops,
46017269568STaniya Das };
46117269568STaniya Das 
46217269568STaniya Das static struct clk_rcg2 gcc_qupv3_wrap0_s3_clk_src = {
46317269568STaniya Das 	.cmd_rcgr = 0x173c4,
46417269568STaniya Das 	.mnd_width = 16,
46517269568STaniya Das 	.hid_width = 5,
4661b70061fSTaniya Das 	.parent_map = gcc_parent_map_1,
46717269568STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
46817269568STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap0_s3_clk_src_init,
46917269568STaniya Das };
47017269568STaniya Das 
47117269568STaniya Das static struct clk_init_data gcc_qupv3_wrap0_s4_clk_src_init = {
47217269568STaniya Das 	.name = "gcc_qupv3_wrap0_s4_clk_src",
4731b70061fSTaniya Das 	.parent_data = gcc_parent_data_1,
4741b70061fSTaniya Das 	.num_parents = ARRAY_SIZE(gcc_parent_data_1),
47517269568STaniya Das 	.ops = &clk_rcg2_ops,
47617269568STaniya Das };
47717269568STaniya Das 
47817269568STaniya Das static struct clk_rcg2 gcc_qupv3_wrap0_s4_clk_src = {
47917269568STaniya Das 	.cmd_rcgr = 0x174f4,
48017269568STaniya Das 	.mnd_width = 16,
48117269568STaniya Das 	.hid_width = 5,
4821b70061fSTaniya Das 	.parent_map = gcc_parent_map_1,
48317269568STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
48417269568STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap0_s4_clk_src_init,
48517269568STaniya Das };
48617269568STaniya Das 
48717269568STaniya Das static struct clk_init_data gcc_qupv3_wrap0_s5_clk_src_init = {
48817269568STaniya Das 	.name = "gcc_qupv3_wrap0_s5_clk_src",
4891b70061fSTaniya Das 	.parent_data = gcc_parent_data_1,
4901b70061fSTaniya Das 	.num_parents = ARRAY_SIZE(gcc_parent_data_1),
49117269568STaniya Das 	.ops = &clk_rcg2_ops,
49217269568STaniya Das };
49317269568STaniya Das 
49417269568STaniya Das static struct clk_rcg2 gcc_qupv3_wrap0_s5_clk_src = {
49517269568STaniya Das 	.cmd_rcgr = 0x17624,
49617269568STaniya Das 	.mnd_width = 16,
49717269568STaniya Das 	.hid_width = 5,
4981b70061fSTaniya Das 	.parent_map = gcc_parent_map_1,
49917269568STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
50017269568STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap0_s5_clk_src_init,
50117269568STaniya Das };
50217269568STaniya Das 
50317269568STaniya Das static struct clk_init_data gcc_qupv3_wrap1_s0_clk_src_init = {
50417269568STaniya Das 	.name = "gcc_qupv3_wrap1_s0_clk_src",
5051b70061fSTaniya Das 	.parent_data = gcc_parent_data_1,
5061b70061fSTaniya Das 	.num_parents = ARRAY_SIZE(gcc_parent_data_1),
50717269568STaniya Das 	.ops = &clk_rcg2_ops,
50817269568STaniya Das };
50917269568STaniya Das 
51017269568STaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s0_clk_src = {
51117269568STaniya Das 	.cmd_rcgr = 0x18018,
51217269568STaniya Das 	.mnd_width = 16,
51317269568STaniya Das 	.hid_width = 5,
5141b70061fSTaniya Das 	.parent_map = gcc_parent_map_1,
51517269568STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
51617269568STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap1_s0_clk_src_init,
51717269568STaniya Das };
51817269568STaniya Das 
51917269568STaniya Das static struct clk_init_data gcc_qupv3_wrap1_s1_clk_src_init = {
52017269568STaniya Das 	.name = "gcc_qupv3_wrap1_s1_clk_src",
5211b70061fSTaniya Das 	.parent_data = gcc_parent_data_1,
5221b70061fSTaniya Das 	.num_parents = ARRAY_SIZE(gcc_parent_data_1),
52317269568STaniya Das 	.ops = &clk_rcg2_ops,
52417269568STaniya Das };
52517269568STaniya Das 
52617269568STaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s1_clk_src = {
52717269568STaniya Das 	.cmd_rcgr = 0x18148,
52817269568STaniya Das 	.mnd_width = 16,
52917269568STaniya Das 	.hid_width = 5,
5301b70061fSTaniya Das 	.parent_map = gcc_parent_map_1,
53117269568STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
53217269568STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap1_s1_clk_src_init,
53317269568STaniya Das };
53417269568STaniya Das 
53517269568STaniya Das static struct clk_init_data gcc_qupv3_wrap1_s2_clk_src_init = {
53617269568STaniya Das 	.name = "gcc_qupv3_wrap1_s2_clk_src",
5371b70061fSTaniya Das 	.parent_data = gcc_parent_data_1,
5381b70061fSTaniya Das 	.num_parents = ARRAY_SIZE(gcc_parent_data_1),
53917269568STaniya Das 	.ops = &clk_rcg2_ops,
54017269568STaniya Das };
54117269568STaniya Das 
54217269568STaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s2_clk_src = {
54317269568STaniya Das 	.cmd_rcgr = 0x18278,
54417269568STaniya Das 	.mnd_width = 16,
54517269568STaniya Das 	.hid_width = 5,
5461b70061fSTaniya Das 	.parent_map = gcc_parent_map_1,
54717269568STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
54817269568STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap1_s2_clk_src_init,
54917269568STaniya Das };
55017269568STaniya Das 
55117269568STaniya Das static struct clk_init_data gcc_qupv3_wrap1_s3_clk_src_init = {
55217269568STaniya Das 	.name = "gcc_qupv3_wrap1_s3_clk_src",
5531b70061fSTaniya Das 	.parent_data = gcc_parent_data_1,
5541b70061fSTaniya Das 	.num_parents = ARRAY_SIZE(gcc_parent_data_1),
55517269568STaniya Das 	.ops = &clk_rcg2_ops,
55617269568STaniya Das };
55717269568STaniya Das 
55817269568STaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s3_clk_src = {
55917269568STaniya Das 	.cmd_rcgr = 0x183a8,
56017269568STaniya Das 	.mnd_width = 16,
56117269568STaniya Das 	.hid_width = 5,
5621b70061fSTaniya Das 	.parent_map = gcc_parent_map_1,
56317269568STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
56417269568STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap1_s3_clk_src_init,
56517269568STaniya Das };
56617269568STaniya Das 
56717269568STaniya Das static struct clk_init_data gcc_qupv3_wrap1_s4_clk_src_init = {
56817269568STaniya Das 	.name = "gcc_qupv3_wrap1_s4_clk_src",
5691b70061fSTaniya Das 	.parent_data = gcc_parent_data_1,
5701b70061fSTaniya Das 	.num_parents = ARRAY_SIZE(gcc_parent_data_1),
57117269568STaniya Das 	.ops = &clk_rcg2_ops,
57217269568STaniya Das };
57317269568STaniya Das 
57417269568STaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s4_clk_src = {
57517269568STaniya Das 	.cmd_rcgr = 0x184d8,
57617269568STaniya Das 	.mnd_width = 16,
57717269568STaniya Das 	.hid_width = 5,
5781b70061fSTaniya Das 	.parent_map = gcc_parent_map_1,
57917269568STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
58017269568STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap1_s4_clk_src_init,
58117269568STaniya Das };
58217269568STaniya Das 
58317269568STaniya Das static struct clk_init_data gcc_qupv3_wrap1_s5_clk_src_init = {
58417269568STaniya Das 	.name = "gcc_qupv3_wrap1_s5_clk_src",
5851b70061fSTaniya Das 	.parent_data = gcc_parent_data_1,
5861b70061fSTaniya Das 	.num_parents = ARRAY_SIZE(gcc_parent_data_1),
58717269568STaniya Das 	.ops = &clk_rcg2_ops,
58817269568STaniya Das };
58917269568STaniya Das 
59017269568STaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s5_clk_src = {
59117269568STaniya Das 	.cmd_rcgr = 0x18608,
59217269568STaniya Das 	.mnd_width = 16,
59317269568STaniya Das 	.hid_width = 5,
5941b70061fSTaniya Das 	.parent_map = gcc_parent_map_1,
59517269568STaniya Das 	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
59617269568STaniya Das 	.clkr.hw.init = &gcc_qupv3_wrap1_s5_clk_src_init,
59717269568STaniya Das };
59817269568STaniya Das 
59917269568STaniya Das 
60017269568STaniya Das static const struct freq_tbl ftbl_gcc_sdcc1_apps_clk_src[] = {
60117269568STaniya Das 	F(144000, P_BI_TCXO, 16, 3, 25),
60217269568STaniya Das 	F(400000, P_BI_TCXO, 12, 1, 4),
60317269568STaniya Das 	F(19200000, P_BI_TCXO, 1, 0, 0),
60417269568STaniya Das 	F(20000000, P_GPLL0_OUT_EVEN, 5, 1, 3),
60517269568STaniya Das 	F(25000000, P_GPLL0_OUT_EVEN, 6, 1, 2),
60617269568STaniya Das 	F(50000000, P_GPLL0_OUT_EVEN, 6, 0, 0),
60717269568STaniya Das 	F(100000000, P_GPLL0_OUT_EVEN, 3, 0, 0),
60817269568STaniya Das 	F(192000000, P_GPLL6_OUT_MAIN, 2, 0, 0),
60917269568STaniya Das 	F(384000000, P_GPLL6_OUT_MAIN, 1, 0, 0),
61017269568STaniya Das 	{ }
61117269568STaniya Das };
61217269568STaniya Das 
61317269568STaniya Das static struct clk_rcg2 gcc_sdcc1_apps_clk_src = {
61417269568STaniya Das 	.cmd_rcgr = 0x12028,
61517269568STaniya Das 	.mnd_width = 8,
61617269568STaniya Das 	.hid_width = 5,
61717269568STaniya Das 	.parent_map = gcc_parent_map_1,
61817269568STaniya Das 	.freq_tbl = ftbl_gcc_sdcc1_apps_clk_src,
61917269568STaniya Das 	.clkr.hw.init = &(struct clk_init_data){
62017269568STaniya Das 		.name = "gcc_sdcc1_apps_clk_src",
62117269568STaniya Das 		.parent_data = gcc_parent_data_1,
62217269568STaniya Das 		.num_parents = 5,
62317269568STaniya Das 		.ops = &clk_rcg2_ops,
62417269568STaniya Das 	},
62517269568STaniya Das };
62617269568STaniya Das 
62717269568STaniya Das static const struct freq_tbl ftbl_gcc_sdcc1_ice_core_clk_src[] = {
62817269568STaniya Das 	F(100000000, P_GPLL0_OUT_EVEN, 3, 0, 0),
62917269568STaniya Das 	F(150000000, P_GPLL0_OUT_EVEN, 2, 0, 0),
63017269568STaniya Das 	F(200000000, P_GPLL0_OUT_MAIN, 3, 0, 0),
63117269568STaniya Das 	F(300000000, P_GPLL0_OUT_EVEN, 1, 0, 0),
63217269568STaniya Das 	{ }
63317269568STaniya Das };
63417269568STaniya Das 
63517269568STaniya Das static struct clk_rcg2 gcc_sdcc1_ice_core_clk_src = {
63617269568STaniya Das 	.cmd_rcgr = 0x12010,
63717269568STaniya Das 	.mnd_width = 0,
63817269568STaniya Das 	.hid_width = 5,
63917269568STaniya Das 	.parent_map = gcc_parent_map_0,
64017269568STaniya Das 	.freq_tbl = ftbl_gcc_sdcc1_ice_core_clk_src,
64117269568STaniya Das 	.clkr.hw.init = &(struct clk_init_data){
64217269568STaniya Das 		.name = "gcc_sdcc1_ice_core_clk_src",
64317269568STaniya Das 		.parent_data = gcc_parent_data_0,
64417269568STaniya Das 		.num_parents = 4,
645*6d37a8d1SDouglas Anderson 		.ops = &clk_rcg2_floor_ops,
64617269568STaniya Das 	},
64717269568STaniya Das };
64817269568STaniya Das 
64917269568STaniya Das static const struct freq_tbl ftbl_gcc_sdcc2_apps_clk_src[] = {
65017269568STaniya Das 	F(400000, P_BI_TCXO, 12, 1, 4),
65117269568STaniya Das 	F(9600000, P_BI_TCXO, 2, 0, 0),
65217269568STaniya Das 	F(19200000, P_BI_TCXO, 1, 0, 0),
65317269568STaniya Das 	F(25000000, P_GPLL0_OUT_EVEN, 12, 0, 0),
65417269568STaniya Das 	F(100000000, P_GPLL0_OUT_EVEN, 3, 0, 0),
65517269568STaniya Das 	F(202000000, P_GPLL7_OUT_MAIN, 4, 0, 0),
65617269568STaniya Das 	{ }
65717269568STaniya Das };
65817269568STaniya Das 
65917269568STaniya Das static struct clk_rcg2 gcc_sdcc2_apps_clk_src = {
66017269568STaniya Das 	.cmd_rcgr = 0x1400c,
66117269568STaniya Das 	.mnd_width = 8,
66217269568STaniya Das 	.hid_width = 5,
66317269568STaniya Das 	.parent_map = gcc_parent_map_5,
66417269568STaniya Das 	.freq_tbl = ftbl_gcc_sdcc2_apps_clk_src,
66517269568STaniya Das 	.clkr.hw.init = &(struct clk_init_data){
66617269568STaniya Das 		.name = "gcc_sdcc2_apps_clk_src",
66717269568STaniya Das 		.parent_data = gcc_parent_data_5,
66817269568STaniya Das 		.num_parents = 5,
669*6d37a8d1SDouglas Anderson 		.ops = &clk_rcg2_floor_ops,
67017269568STaniya Das 	},
67117269568STaniya Das };
67217269568STaniya Das 
67317269568STaniya Das static const struct freq_tbl ftbl_gcc_ufs_phy_axi_clk_src[] = {
67417269568STaniya Das 	F(25000000, P_GPLL0_OUT_EVEN, 12, 0, 0),
67517269568STaniya Das 	F(50000000, P_GPLL0_OUT_EVEN, 6, 0, 0),
67617269568STaniya Das 	F(100000000, P_GPLL0_OUT_EVEN, 3, 0, 0),
67717269568STaniya Das 	F(200000000, P_GPLL0_OUT_MAIN, 3, 0, 0),
67817269568STaniya Das 	F(240000000, P_GPLL0_OUT_MAIN, 2.5, 0, 0),
67917269568STaniya Das 	{ }
68017269568STaniya Das };
68117269568STaniya Das 
68217269568STaniya Das static struct clk_rcg2 gcc_ufs_phy_axi_clk_src = {
68317269568STaniya Das 	.cmd_rcgr = 0x77020,
68417269568STaniya Das 	.mnd_width = 8,
68517269568STaniya Das 	.hid_width = 5,
68617269568STaniya Das 	.parent_map = gcc_parent_map_0,
68717269568STaniya Das 	.freq_tbl = ftbl_gcc_ufs_phy_axi_clk_src,
68817269568STaniya Das 	.clkr.hw.init = &(struct clk_init_data){
68917269568STaniya Das 		.name = "gcc_ufs_phy_axi_clk_src",
69017269568STaniya Das 		.parent_data = gcc_parent_data_0,
69117269568STaniya Das 		.num_parents = 4,
69217269568STaniya Das 		.ops = &clk_rcg2_ops,
69317269568STaniya Das 	},
69417269568STaniya Das };
69517269568STaniya Das 
69617269568STaniya Das static const struct freq_tbl ftbl_gcc_ufs_phy_ice_core_clk_src[] = {
69717269568STaniya Das 	F(37500000, P_GPLL0_OUT_EVEN, 8, 0, 0),
69817269568STaniya Das 	F(75000000, P_GPLL0_OUT_EVEN, 4, 0, 0),
69917269568STaniya Das 	F(150000000, P_GPLL0_OUT_EVEN, 2, 0, 0),
70017269568STaniya Das 	F(300000000, P_GPLL0_OUT_EVEN, 1, 0, 0),
70117269568STaniya Das 	{ }
70217269568STaniya Das };
70317269568STaniya Das 
70417269568STaniya Das static struct clk_rcg2 gcc_ufs_phy_ice_core_clk_src = {
70517269568STaniya Das 	.cmd_rcgr = 0x77048,
70617269568STaniya Das 	.mnd_width = 0,
70717269568STaniya Das 	.hid_width = 5,
70817269568STaniya Das 	.parent_map = gcc_parent_map_0,
70917269568STaniya Das 	.freq_tbl = ftbl_gcc_ufs_phy_ice_core_clk_src,
71017269568STaniya Das 	.clkr.hw.init = &(struct clk_init_data){
71117269568STaniya Das 		.name = "gcc_ufs_phy_ice_core_clk_src",
71217269568STaniya Das 		.parent_data = gcc_parent_data_0,
71317269568STaniya Das 		.num_parents = 4,
71417269568STaniya Das 		.ops = &clk_rcg2_ops,
71517269568STaniya Das 	},
71617269568STaniya Das };
71717269568STaniya Das 
71817269568STaniya Das static const struct freq_tbl ftbl_gcc_ufs_phy_phy_aux_clk_src[] = {
71917269568STaniya Das 	F(9600000, P_BI_TCXO, 2, 0, 0),
72017269568STaniya Das 	F(19200000, P_BI_TCXO, 1, 0, 0),
72117269568STaniya Das 	{ }
72217269568STaniya Das };
72317269568STaniya Das 
72417269568STaniya Das static struct clk_rcg2 gcc_ufs_phy_phy_aux_clk_src = {
72517269568STaniya Das 	.cmd_rcgr = 0x77098,
72617269568STaniya Das 	.mnd_width = 0,
72717269568STaniya Das 	.hid_width = 5,
72817269568STaniya Das 	.parent_map = gcc_parent_map_3,
72917269568STaniya Das 	.freq_tbl = ftbl_gcc_ufs_phy_phy_aux_clk_src,
73017269568STaniya Das 	.clkr.hw.init = &(struct clk_init_data){
73117269568STaniya Das 		.name = "gcc_ufs_phy_phy_aux_clk_src",
73217269568STaniya Das 		.parent_data = gcc_parent_data_3,
73317269568STaniya Das 		.num_parents = 3,
73417269568STaniya Das 		.ops = &clk_rcg2_ops,
73517269568STaniya Das 	},
73617269568STaniya Das };
73717269568STaniya Das 
73817269568STaniya Das static const struct freq_tbl ftbl_gcc_ufs_phy_unipro_core_clk_src[] = {
73917269568STaniya Das 	F(37500000, P_GPLL0_OUT_EVEN, 8, 0, 0),
74017269568STaniya Das 	F(75000000, P_GPLL0_OUT_EVEN, 4, 0, 0),
74117269568STaniya Das 	F(150000000, P_GPLL0_OUT_EVEN, 2, 0, 0),
74217269568STaniya Das 	{ }
74317269568STaniya Das };
74417269568STaniya Das 
74517269568STaniya Das static struct clk_rcg2 gcc_ufs_phy_unipro_core_clk_src = {
74617269568STaniya Das 	.cmd_rcgr = 0x77060,
74717269568STaniya Das 	.mnd_width = 0,
74817269568STaniya Das 	.hid_width = 5,
74917269568STaniya Das 	.parent_map = gcc_parent_map_0,
75017269568STaniya Das 	.freq_tbl = ftbl_gcc_ufs_phy_unipro_core_clk_src,
75117269568STaniya Das 	.clkr.hw.init = &(struct clk_init_data){
75217269568STaniya Das 		.name = "gcc_ufs_phy_unipro_core_clk_src",
75317269568STaniya Das 		.parent_data = gcc_parent_data_0,
75417269568STaniya Das 		.num_parents = 4,
75517269568STaniya Das 		.ops = &clk_rcg2_ops,
75617269568STaniya Das 	},
75717269568STaniya Das };
75817269568STaniya Das 
75917269568STaniya Das static const struct freq_tbl ftbl_gcc_usb30_prim_master_clk_src[] = {
76017269568STaniya Das 	F(66666667, P_GPLL0_OUT_EVEN, 4.5, 0, 0),
76117269568STaniya Das 	F(133333333, P_GPLL0_OUT_MAIN, 4.5, 0, 0),
76217269568STaniya Das 	F(200000000, P_GPLL0_OUT_MAIN, 3, 0, 0),
76317269568STaniya Das 	F(240000000, P_GPLL0_OUT_MAIN, 2.5, 0, 0),
76417269568STaniya Das 	{ }
76517269568STaniya Das };
76617269568STaniya Das 
76717269568STaniya Das static struct clk_rcg2 gcc_usb30_prim_master_clk_src = {
76817269568STaniya Das 	.cmd_rcgr = 0xf01c,
76917269568STaniya Das 	.mnd_width = 8,
77017269568STaniya Das 	.hid_width = 5,
77117269568STaniya Das 	.parent_map = gcc_parent_map_0,
77217269568STaniya Das 	.freq_tbl = ftbl_gcc_usb30_prim_master_clk_src,
77317269568STaniya Das 	.clkr.hw.init = &(struct clk_init_data){
77417269568STaniya Das 		.name = "gcc_usb30_prim_master_clk_src",
77517269568STaniya Das 		.parent_data = gcc_parent_data_0,
77617269568STaniya Das 		.num_parents = 4,
77717269568STaniya Das 		.ops = &clk_rcg2_ops,
77817269568STaniya Das 	},
77917269568STaniya Das };
78017269568STaniya Das 
78117269568STaniya Das static const struct freq_tbl ftbl_gcc_usb30_prim_mock_utmi_clk_src[] = {
78217269568STaniya Das 	F(19200000, P_BI_TCXO, 1, 0, 0),
78317269568STaniya Das 	F(20000000, P_GPLL0_OUT_EVEN, 15, 0, 0),
78417269568STaniya Das 	{ }
78517269568STaniya Das };
78617269568STaniya Das 
78717269568STaniya Das static struct clk_rcg2 gcc_usb30_prim_mock_utmi_clk_src = {
78817269568STaniya Das 	.cmd_rcgr = 0xf034,
78917269568STaniya Das 	.mnd_width = 0,
79017269568STaniya Das 	.hid_width = 5,
79117269568STaniya Das 	.parent_map = gcc_parent_map_0,
79217269568STaniya Das 	.freq_tbl = ftbl_gcc_usb30_prim_mock_utmi_clk_src,
79317269568STaniya Das 	.clkr.hw.init = &(struct clk_init_data){
79417269568STaniya Das 		.name = "gcc_usb30_prim_mock_utmi_clk_src",
79517269568STaniya Das 		.parent_data = gcc_parent_data_0,
79617269568STaniya Das 		.num_parents = 4,
79717269568STaniya Das 		.ops = &clk_rcg2_ops,
79817269568STaniya Das 	},
79917269568STaniya Das };
80017269568STaniya Das 
80117269568STaniya Das static const struct freq_tbl ftbl_gcc_usb3_prim_phy_aux_clk_src[] = {
80217269568STaniya Das 	F(19200000, P_BI_TCXO, 1, 0, 0),
80317269568STaniya Das 	{ }
80417269568STaniya Das };
80517269568STaniya Das 
80617269568STaniya Das static struct clk_rcg2 gcc_usb3_prim_phy_aux_clk_src = {
80717269568STaniya Das 	.cmd_rcgr = 0xf060,
80817269568STaniya Das 	.mnd_width = 0,
80917269568STaniya Das 	.hid_width = 5,
81017269568STaniya Das 	.parent_map = gcc_parent_map_6,
81117269568STaniya Das 	.freq_tbl = ftbl_gcc_usb3_prim_phy_aux_clk_src,
81217269568STaniya Das 	.clkr.hw.init = &(struct clk_init_data){
81317269568STaniya Das 		.name = "gcc_usb3_prim_phy_aux_clk_src",
81417269568STaniya Das 		.parent_data = gcc_parent_data_6,
81517269568STaniya Das 		.num_parents = 4,
81617269568STaniya Das 		.ops = &clk_rcg2_ops,
81717269568STaniya Das 	},
81817269568STaniya Das };
81917269568STaniya Das 
820bd4bb225STaniya Das static const struct freq_tbl ftbl_gcc_sec_ctrl_clk_src[] = {
821bd4bb225STaniya Das 	F(4800000, P_BI_TCXO, 4, 0, 0),
822bd4bb225STaniya Das 	F(19200000, P_BI_TCXO, 1, 0, 0),
823bd4bb225STaniya Das 	{ }
824bd4bb225STaniya Das };
825bd4bb225STaniya Das 
826bd4bb225STaniya Das static struct clk_rcg2 gcc_sec_ctrl_clk_src = {
827bd4bb225STaniya Das 	.cmd_rcgr = 0x3d030,
828bd4bb225STaniya Das 	.mnd_width = 0,
829bd4bb225STaniya Das 	.hid_width = 5,
830bd4bb225STaniya Das 	.parent_map = gcc_parent_map_3,
831bd4bb225STaniya Das 	.freq_tbl = ftbl_gcc_sec_ctrl_clk_src,
832bd4bb225STaniya Das 	.clkr.hw.init = &(struct clk_init_data){
833bd4bb225STaniya Das 		.name = "gcc_sec_ctrl_clk_src",
834bd4bb225STaniya Das 		.parent_data = gcc_parent_data_3,
835bd4bb225STaniya Das 		.num_parents = ARRAY_SIZE(gcc_parent_data_3),
836bd4bb225STaniya Das 		.ops = &clk_rcg2_ops,
837bd4bb225STaniya Das 	},
838bd4bb225STaniya Das };
839bd4bb225STaniya Das 
84017269568STaniya Das static struct clk_branch gcc_aggre_ufs_phy_axi_clk = {
84117269568STaniya Das 	.halt_reg = 0x82024,
84217269568STaniya Das 	.halt_check = BRANCH_HALT_DELAY,
84317269568STaniya Das 	.hwcg_reg = 0x82024,
84417269568STaniya Das 	.hwcg_bit = 1,
84517269568STaniya Das 	.clkr = {
84617269568STaniya Das 		.enable_reg = 0x82024,
84717269568STaniya Das 		.enable_mask = BIT(0),
84817269568STaniya Das 		.hw.init = &(struct clk_init_data){
84917269568STaniya Das 			.name = "gcc_aggre_ufs_phy_axi_clk",
85017269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
85117269568STaniya Das 				.hw = &gcc_ufs_phy_axi_clk_src.clkr.hw,
85217269568STaniya Das 			},
85317269568STaniya Das 			.num_parents = 1,
85417269568STaniya Das 			.flags = CLK_SET_RATE_PARENT,
85517269568STaniya Das 			.ops = &clk_branch2_ops,
85617269568STaniya Das 		},
85717269568STaniya Das 	},
85817269568STaniya Das };
85917269568STaniya Das 
86017269568STaniya Das static struct clk_branch gcc_aggre_usb3_prim_axi_clk = {
86117269568STaniya Das 	.halt_reg = 0x8201c,
86217269568STaniya Das 	.halt_check = BRANCH_HALT,
86317269568STaniya Das 	.clkr = {
86417269568STaniya Das 		.enable_reg = 0x8201c,
86517269568STaniya Das 		.enable_mask = BIT(0),
86617269568STaniya Das 		.hw.init = &(struct clk_init_data){
86717269568STaniya Das 			.name = "gcc_aggre_usb3_prim_axi_clk",
86817269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
86917269568STaniya Das 				.hw = &gcc_usb30_prim_master_clk_src.clkr.hw,
87017269568STaniya Das 			},
87117269568STaniya Das 			.num_parents = 1,
87217269568STaniya Das 			.flags = CLK_SET_RATE_PARENT,
87317269568STaniya Das 			.ops = &clk_branch2_ops,
87417269568STaniya Das 		},
87517269568STaniya Das 	},
87617269568STaniya Das };
87717269568STaniya Das 
87817269568STaniya Das static struct clk_branch gcc_boot_rom_ahb_clk = {
87917269568STaniya Das 	.halt_reg = 0x38004,
88017269568STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
88117269568STaniya Das 	.hwcg_reg = 0x38004,
88217269568STaniya Das 	.hwcg_bit = 1,
88317269568STaniya Das 	.clkr = {
88417269568STaniya Das 		.enable_reg = 0x52000,
88517269568STaniya Das 		.enable_mask = BIT(10),
88617269568STaniya Das 		.hw.init = &(struct clk_init_data){
88717269568STaniya Das 			.name = "gcc_boot_rom_ahb_clk",
88817269568STaniya Das 			.ops = &clk_branch2_ops,
88917269568STaniya Das 		},
89017269568STaniya Das 	},
89117269568STaniya Das };
89217269568STaniya Das 
89317269568STaniya Das static struct clk_branch gcc_camera_ahb_clk = {
89417269568STaniya Das 	.halt_reg = 0xb008,
89517269568STaniya Das 	.halt_check = BRANCH_HALT,
89617269568STaniya Das 	.hwcg_reg = 0xb008,
89717269568STaniya Das 	.hwcg_bit = 1,
89817269568STaniya Das 	.clkr = {
89917269568STaniya Das 		.enable_reg = 0xb008,
90017269568STaniya Das 		.enable_mask = BIT(0),
90117269568STaniya Das 		.hw.init = &(struct clk_init_data){
90217269568STaniya Das 			.name = "gcc_camera_ahb_clk",
90317269568STaniya Das 			.ops = &clk_branch2_ops,
90417269568STaniya Das 		},
90517269568STaniya Das 	},
90617269568STaniya Das };
90717269568STaniya Das 
90817269568STaniya Das static struct clk_branch gcc_camera_hf_axi_clk = {
90917269568STaniya Das 	.halt_reg = 0xb020,
91017269568STaniya Das 	.halt_check = BRANCH_HALT,
91117269568STaniya Das 	.clkr = {
91217269568STaniya Das 		.enable_reg = 0xb020,
91317269568STaniya Das 		.enable_mask = BIT(0),
91417269568STaniya Das 		.hw.init = &(struct clk_init_data){
91517269568STaniya Das 			.name = "gcc_camera_hf_axi_clk",
91617269568STaniya Das 			.ops = &clk_branch2_ops,
91717269568STaniya Das 		},
91817269568STaniya Das 	},
91917269568STaniya Das };
92017269568STaniya Das 
92117269568STaniya Das static struct clk_branch gcc_camera_throttle_hf_axi_clk = {
92217269568STaniya Das 	.halt_reg = 0xb080,
92317269568STaniya Das 	.halt_check = BRANCH_HALT,
92417269568STaniya Das 	.hwcg_reg = 0xb080,
92517269568STaniya Das 	.hwcg_bit = 1,
92617269568STaniya Das 	.clkr = {
92717269568STaniya Das 		.enable_reg = 0xb080,
92817269568STaniya Das 		.enable_mask = BIT(0),
92917269568STaniya Das 		.hw.init = &(struct clk_init_data){
93017269568STaniya Das 			.name = "gcc_camera_throttle_hf_axi_clk",
93117269568STaniya Das 			.ops = &clk_branch2_ops,
93217269568STaniya Das 		},
93317269568STaniya Das 	},
93417269568STaniya Das };
93517269568STaniya Das 
93617269568STaniya Das static struct clk_branch gcc_camera_xo_clk = {
93717269568STaniya Das 	.halt_reg = 0xb02c,
93817269568STaniya Das 	.halt_check = BRANCH_HALT,
93917269568STaniya Das 	.clkr = {
94017269568STaniya Das 		.enable_reg = 0xb02c,
94117269568STaniya Das 		.enable_mask = BIT(0),
94217269568STaniya Das 		.hw.init = &(struct clk_init_data){
94317269568STaniya Das 			.name = "gcc_camera_xo_clk",
94417269568STaniya Das 			.ops = &clk_branch2_ops,
94517269568STaniya Das 		},
94617269568STaniya Das 	},
94717269568STaniya Das };
94817269568STaniya Das 
94917269568STaniya Das static struct clk_branch gcc_ce1_ahb_clk = {
95017269568STaniya Das 	.halt_reg = 0x4100c,
95117269568STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
95217269568STaniya Das 	.hwcg_reg = 0x4100c,
95317269568STaniya Das 	.hwcg_bit = 1,
95417269568STaniya Das 	.clkr = {
95517269568STaniya Das 		.enable_reg = 0x52000,
95617269568STaniya Das 		.enable_mask = BIT(3),
95717269568STaniya Das 		.hw.init = &(struct clk_init_data){
95817269568STaniya Das 			.name = "gcc_ce1_ahb_clk",
95917269568STaniya Das 			.ops = &clk_branch2_ops,
96017269568STaniya Das 		},
96117269568STaniya Das 	},
96217269568STaniya Das };
96317269568STaniya Das 
96417269568STaniya Das static struct clk_branch gcc_ce1_axi_clk = {
96517269568STaniya Das 	.halt_reg = 0x41008,
96617269568STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
96717269568STaniya Das 	.clkr = {
96817269568STaniya Das 		.enable_reg = 0x52000,
96917269568STaniya Das 		.enable_mask = BIT(4),
97017269568STaniya Das 		.hw.init = &(struct clk_init_data){
97117269568STaniya Das 			.name = "gcc_ce1_axi_clk",
97217269568STaniya Das 			.ops = &clk_branch2_ops,
97317269568STaniya Das 		},
97417269568STaniya Das 	},
97517269568STaniya Das };
97617269568STaniya Das 
97717269568STaniya Das static struct clk_branch gcc_ce1_clk = {
97817269568STaniya Das 	.halt_reg = 0x41004,
97917269568STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
98017269568STaniya Das 	.clkr = {
98117269568STaniya Das 		.enable_reg = 0x52000,
98217269568STaniya Das 		.enable_mask = BIT(5),
98317269568STaniya Das 		.hw.init = &(struct clk_init_data){
98417269568STaniya Das 			.name = "gcc_ce1_clk",
98517269568STaniya Das 			.ops = &clk_branch2_ops,
98617269568STaniya Das 		},
98717269568STaniya Das 	},
98817269568STaniya Das };
98917269568STaniya Das 
99017269568STaniya Das static struct clk_branch gcc_cfg_noc_usb3_prim_axi_clk = {
99117269568STaniya Das 	.halt_reg = 0x502c,
99217269568STaniya Das 	.halt_check = BRANCH_HALT,
99317269568STaniya Das 	.clkr = {
99417269568STaniya Das 		.enable_reg = 0x502c,
99517269568STaniya Das 		.enable_mask = BIT(0),
99617269568STaniya Das 		.hw.init = &(struct clk_init_data){
99717269568STaniya Das 			.name = "gcc_cfg_noc_usb3_prim_axi_clk",
99817269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
99917269568STaniya Das 				.hw = &gcc_usb30_prim_master_clk_src.clkr.hw,
100017269568STaniya Das 			},
100117269568STaniya Das 			.num_parents = 1,
100217269568STaniya Das 			.flags = CLK_SET_RATE_PARENT,
100317269568STaniya Das 			.ops = &clk_branch2_ops,
100417269568STaniya Das 		},
100517269568STaniya Das 	},
100617269568STaniya Das };
100717269568STaniya Das 
100817269568STaniya Das /* For CPUSS functionality the AHB clock needs to be left enabled */
100917269568STaniya Das static struct clk_branch gcc_cpuss_ahb_clk = {
101017269568STaniya Das 	.halt_reg = 0x48000,
101117269568STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
101217269568STaniya Das 	.clkr = {
101317269568STaniya Das 		.enable_reg = 0x52000,
101417269568STaniya Das 		.enable_mask = BIT(21),
101517269568STaniya Das 		.hw.init = &(struct clk_init_data){
101617269568STaniya Das 			.name = "gcc_cpuss_ahb_clk",
101717269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
101817269568STaniya Das 				.hw = &gcc_cpuss_ahb_clk_src.clkr.hw,
101917269568STaniya Das 			},
102017269568STaniya Das 			.num_parents = 1,
102117269568STaniya Das 			.flags = CLK_IS_CRITICAL | CLK_SET_RATE_PARENT,
102217269568STaniya Das 			.ops = &clk_branch2_ops,
102317269568STaniya Das 		},
102417269568STaniya Das 	},
102517269568STaniya Das };
102617269568STaniya Das 
102717269568STaniya Das static struct clk_branch gcc_cpuss_rbcpr_clk = {
102817269568STaniya Das 	.halt_reg = 0x48008,
102917269568STaniya Das 	.halt_check = BRANCH_HALT,
103017269568STaniya Das 	.clkr = {
103117269568STaniya Das 		.enable_reg = 0x48008,
103217269568STaniya Das 		.enable_mask = BIT(0),
103317269568STaniya Das 		.hw.init = &(struct clk_init_data){
103417269568STaniya Das 			.name = "gcc_cpuss_rbcpr_clk",
103517269568STaniya Das 			.ops = &clk_branch2_ops,
103617269568STaniya Das 		},
103717269568STaniya Das 	},
103817269568STaniya Das };
103917269568STaniya Das 
104017269568STaniya Das static struct clk_branch gcc_ddrss_gpu_axi_clk = {
104117269568STaniya Das 	.halt_reg = 0x4452c,
104217269568STaniya Das 	.halt_check = BRANCH_VOTED,
104317269568STaniya Das 	.clkr = {
104417269568STaniya Das 		.enable_reg = 0x4452c,
104517269568STaniya Das 		.enable_mask = BIT(0),
104617269568STaniya Das 		.hw.init = &(struct clk_init_data){
104717269568STaniya Das 			.name = "gcc_ddrss_gpu_axi_clk",
104817269568STaniya Das 			.ops = &clk_branch2_ops,
104917269568STaniya Das 		},
105017269568STaniya Das 	},
105117269568STaniya Das };
105217269568STaniya Das 
105317269568STaniya Das static struct clk_branch gcc_disp_gpll0_clk_src = {
105417269568STaniya Das 	.halt_check = BRANCH_HALT_DELAY,
105517269568STaniya Das 	.clkr = {
105617269568STaniya Das 		.enable_reg = 0x52000,
105717269568STaniya Das 		.enable_mask = BIT(18),
105817269568STaniya Das 		.hw.init = &(struct clk_init_data){
105917269568STaniya Das 			.name = "gcc_disp_gpll0_clk_src",
106017269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
106117269568STaniya Das 				.hw = &gpll0.clkr.hw,
106217269568STaniya Das 			},
106317269568STaniya Das 			.num_parents = 1,
10649c3df2b1STaniya Das 			.ops = &clk_branch2_aon_ops,
106517269568STaniya Das 		},
106617269568STaniya Das 	},
106717269568STaniya Das };
106817269568STaniya Das 
106917269568STaniya Das static struct clk_branch gcc_disp_gpll0_div_clk_src = {
107017269568STaniya Das 	.halt_check = BRANCH_HALT_DELAY,
107117269568STaniya Das 	.clkr = {
107217269568STaniya Das 		.enable_reg = 0x52000,
107317269568STaniya Das 		.enable_mask = BIT(19),
107417269568STaniya Das 		.hw.init = &(struct clk_init_data){
107517269568STaniya Das 			.name = "gcc_disp_gpll0_div_clk_src",
107617269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
107717269568STaniya Das 				.hw = &gcc_pll0_main_div_cdiv.hw,
107817269568STaniya Das 			},
107917269568STaniya Das 			.num_parents = 1,
108017269568STaniya Das 			.ops = &clk_branch2_ops,
108117269568STaniya Das 		},
108217269568STaniya Das 	},
108317269568STaniya Das };
108417269568STaniya Das 
108517269568STaniya Das static struct clk_branch gcc_disp_hf_axi_clk = {
108617269568STaniya Das 	.halt_reg = 0xb024,
108717269568STaniya Das 	.halt_check = BRANCH_HALT,
108817269568STaniya Das 	.clkr = {
108917269568STaniya Das 		.enable_reg = 0xb024,
109017269568STaniya Das 		.enable_mask = BIT(0),
109117269568STaniya Das 		.hw.init = &(struct clk_init_data){
109217269568STaniya Das 			.name = "gcc_disp_hf_axi_clk",
109317269568STaniya Das 			.ops = &clk_branch2_ops,
109417269568STaniya Das 		},
109517269568STaniya Das 	},
109617269568STaniya Das };
109717269568STaniya Das 
109817269568STaniya Das static struct clk_branch gcc_disp_throttle_hf_axi_clk = {
109917269568STaniya Das 	.halt_reg = 0xb084,
110017269568STaniya Das 	.halt_check = BRANCH_HALT,
110117269568STaniya Das 	.hwcg_reg = 0xb084,
110217269568STaniya Das 	.hwcg_bit = 1,
110317269568STaniya Das 	.clkr = {
110417269568STaniya Das 		.enable_reg = 0xb084,
110517269568STaniya Das 		.enable_mask = BIT(0),
110617269568STaniya Das 		.hw.init = &(struct clk_init_data){
110717269568STaniya Das 			.name = "gcc_disp_throttle_hf_axi_clk",
110817269568STaniya Das 			.ops = &clk_branch2_ops,
110917269568STaniya Das 		},
111017269568STaniya Das 	},
111117269568STaniya Das };
111217269568STaniya Das 
111317269568STaniya Das static struct clk_branch gcc_disp_xo_clk = {
111417269568STaniya Das 	.halt_reg = 0xb030,
111517269568STaniya Das 	.halt_check = BRANCH_HALT,
111617269568STaniya Das 	.clkr = {
111717269568STaniya Das 		.enable_reg = 0xb030,
111817269568STaniya Das 		.enable_mask = BIT(0),
111917269568STaniya Das 		.hw.init = &(struct clk_init_data){
112017269568STaniya Das 			.name = "gcc_disp_xo_clk",
112117269568STaniya Das 			.ops = &clk_branch2_ops,
112217269568STaniya Das 		},
112317269568STaniya Das 	},
112417269568STaniya Das };
112517269568STaniya Das 
112617269568STaniya Das static struct clk_branch gcc_gp1_clk = {
112717269568STaniya Das 	.halt_reg = 0x64000,
112817269568STaniya Das 	.halt_check = BRANCH_HALT,
112917269568STaniya Das 	.clkr = {
113017269568STaniya Das 		.enable_reg = 0x64000,
113117269568STaniya Das 		.enable_mask = BIT(0),
113217269568STaniya Das 		.hw.init = &(struct clk_init_data){
113317269568STaniya Das 			.name = "gcc_gp1_clk",
113417269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
113517269568STaniya Das 				.hw = &gcc_gp1_clk_src.clkr.hw,
113617269568STaniya Das 			},
113717269568STaniya Das 			.num_parents = 1,
113817269568STaniya Das 			.flags = CLK_SET_RATE_PARENT,
113917269568STaniya Das 			.ops = &clk_branch2_ops,
114017269568STaniya Das 		},
114117269568STaniya Das 	},
114217269568STaniya Das };
114317269568STaniya Das 
114417269568STaniya Das static struct clk_branch gcc_gp2_clk = {
114517269568STaniya Das 	.halt_reg = 0x65000,
114617269568STaniya Das 	.halt_check = BRANCH_HALT,
114717269568STaniya Das 	.clkr = {
114817269568STaniya Das 		.enable_reg = 0x65000,
114917269568STaniya Das 		.enable_mask = BIT(0),
115017269568STaniya Das 		.hw.init = &(struct clk_init_data){
115117269568STaniya Das 			.name = "gcc_gp2_clk",
115217269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
115317269568STaniya Das 				.hw = &gcc_gp2_clk_src.clkr.hw,
115417269568STaniya Das 			},
115517269568STaniya Das 			.num_parents = 1,
115617269568STaniya Das 			.flags = CLK_SET_RATE_PARENT,
115717269568STaniya Das 			.ops = &clk_branch2_ops,
115817269568STaniya Das 		},
115917269568STaniya Das 	},
116017269568STaniya Das };
116117269568STaniya Das 
116217269568STaniya Das static struct clk_branch gcc_gp3_clk = {
116317269568STaniya Das 	.halt_reg = 0x66000,
116417269568STaniya Das 	.halt_check = BRANCH_HALT,
116517269568STaniya Das 	.clkr = {
116617269568STaniya Das 		.enable_reg = 0x66000,
116717269568STaniya Das 		.enable_mask = BIT(0),
116817269568STaniya Das 		.hw.init = &(struct clk_init_data){
116917269568STaniya Das 			.name = "gcc_gp3_clk",
117017269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
117117269568STaniya Das 				.hw = &gcc_gp3_clk_src.clkr.hw,
117217269568STaniya Das 			},
117317269568STaniya Das 			.num_parents = 1,
117417269568STaniya Das 			.flags = CLK_SET_RATE_PARENT,
117517269568STaniya Das 			.ops = &clk_branch2_ops,
117617269568STaniya Das 		},
117717269568STaniya Das 	},
117817269568STaniya Das };
117917269568STaniya Das 
118017269568STaniya Das static struct clk_branch gcc_gpu_gpll0_clk_src = {
118117269568STaniya Das 	.halt_check = BRANCH_HALT_DELAY,
118217269568STaniya Das 	.clkr = {
118317269568STaniya Das 		.enable_reg = 0x52000,
118417269568STaniya Das 		.enable_mask = BIT(15),
118517269568STaniya Das 		.hw.init = &(struct clk_init_data){
118617269568STaniya Das 			.name = "gcc_gpu_gpll0_clk_src",
118717269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
118817269568STaniya Das 				.hw = &gpll0.clkr.hw,
118917269568STaniya Das 			},
119017269568STaniya Das 			.num_parents = 1,
119117269568STaniya Das 			.ops = &clk_branch2_ops,
119217269568STaniya Das 		},
119317269568STaniya Das 	},
119417269568STaniya Das };
119517269568STaniya Das 
119617269568STaniya Das static struct clk_branch gcc_gpu_gpll0_div_clk_src = {
119717269568STaniya Das 	.halt_check = BRANCH_HALT_DELAY,
119817269568STaniya Das 	.clkr = {
119917269568STaniya Das 		.enable_reg = 0x52000,
120017269568STaniya Das 		.enable_mask = BIT(16),
120117269568STaniya Das 		.hw.init = &(struct clk_init_data){
120217269568STaniya Das 			.name = "gcc_gpu_gpll0_div_clk_src",
120317269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
120417269568STaniya Das 				.hw = &gcc_pll0_main_div_cdiv.hw,
120517269568STaniya Das 			},
120617269568STaniya Das 			.num_parents = 1,
120717269568STaniya Das 			.ops = &clk_branch2_ops,
120817269568STaniya Das 		},
120917269568STaniya Das 	},
121017269568STaniya Das };
121117269568STaniya Das 
121217269568STaniya Das static struct clk_branch gcc_gpu_memnoc_gfx_clk = {
121317269568STaniya Das 	.halt_reg = 0x7100c,
121417269568STaniya Das 	.halt_check = BRANCH_VOTED,
121517269568STaniya Das 	.clkr = {
121617269568STaniya Das 		.enable_reg = 0x7100c,
121717269568STaniya Das 		.enable_mask = BIT(0),
121817269568STaniya Das 		.hw.init = &(struct clk_init_data){
121917269568STaniya Das 			.name = "gcc_gpu_memnoc_gfx_clk",
122017269568STaniya Das 			.ops = &clk_branch2_ops,
122117269568STaniya Das 		},
122217269568STaniya Das 	},
122317269568STaniya Das };
122417269568STaniya Das 
122517269568STaniya Das static struct clk_branch gcc_gpu_snoc_dvm_gfx_clk = {
122617269568STaniya Das 	.halt_reg = 0x71018,
122717269568STaniya Das 	.halt_check = BRANCH_HALT,
122817269568STaniya Das 	.clkr = {
122917269568STaniya Das 		.enable_reg = 0x71018,
123017269568STaniya Das 		.enable_mask = BIT(0),
123117269568STaniya Das 		.hw.init = &(struct clk_init_data){
123217269568STaniya Das 			.name = "gcc_gpu_snoc_dvm_gfx_clk",
123317269568STaniya Das 			.ops = &clk_branch2_ops,
123417269568STaniya Das 		},
123517269568STaniya Das 	},
123617269568STaniya Das };
123717269568STaniya Das 
123817269568STaniya Das static struct clk_branch gcc_npu_axi_clk = {
123917269568STaniya Das 	.halt_reg = 0x4d008,
124017269568STaniya Das 	.halt_check = BRANCH_HALT,
124117269568STaniya Das 	.clkr = {
124217269568STaniya Das 		.enable_reg = 0x4d008,
124317269568STaniya Das 		.enable_mask = BIT(0),
124417269568STaniya Das 		.hw.init = &(struct clk_init_data){
124517269568STaniya Das 			.name = "gcc_npu_axi_clk",
124617269568STaniya Das 			.ops = &clk_branch2_ops,
124717269568STaniya Das 		},
124817269568STaniya Das 	},
124917269568STaniya Das };
125017269568STaniya Das 
125117269568STaniya Das static struct clk_branch gcc_npu_bwmon_axi_clk = {
125217269568STaniya Das 	.halt_reg = 0x73008,
125317269568STaniya Das 	.halt_check = BRANCH_HALT,
125417269568STaniya Das 	.clkr = {
125517269568STaniya Das 		.enable_reg = 0x73008,
125617269568STaniya Das 		.enable_mask = BIT(0),
125717269568STaniya Das 		.hw.init = &(struct clk_init_data){
125817269568STaniya Das 			.name = "gcc_npu_bwmon_axi_clk",
125917269568STaniya Das 			.ops = &clk_branch2_ops,
126017269568STaniya Das 		},
126117269568STaniya Das 	},
126217269568STaniya Das };
126317269568STaniya Das 
126417269568STaniya Das static struct clk_branch gcc_npu_bwmon_dma_cfg_ahb_clk = {
126517269568STaniya Das 	.halt_reg = 0x73018,
126617269568STaniya Das 	.halt_check = BRANCH_HALT,
126717269568STaniya Das 	.clkr = {
126817269568STaniya Das 		.enable_reg = 0x73018,
126917269568STaniya Das 		.enable_mask = BIT(0),
127017269568STaniya Das 		.hw.init = &(struct clk_init_data){
127117269568STaniya Das 			.name = "gcc_npu_bwmon_dma_cfg_ahb_clk",
127217269568STaniya Das 			.ops = &clk_branch2_ops,
127317269568STaniya Das 		},
127417269568STaniya Das 	},
127517269568STaniya Das };
127617269568STaniya Das 
127717269568STaniya Das static struct clk_branch gcc_npu_bwmon_dsp_cfg_ahb_clk = {
127817269568STaniya Das 	.halt_reg = 0x7301c,
127917269568STaniya Das 	.halt_check = BRANCH_HALT,
128017269568STaniya Das 	.clkr = {
128117269568STaniya Das 		.enable_reg = 0x7301c,
128217269568STaniya Das 		.enable_mask = BIT(0),
128317269568STaniya Das 		.hw.init = &(struct clk_init_data){
128417269568STaniya Das 			.name = "gcc_npu_bwmon_dsp_cfg_ahb_clk",
128517269568STaniya Das 			.ops = &clk_branch2_ops,
128617269568STaniya Das 		},
128717269568STaniya Das 	},
128817269568STaniya Das };
128917269568STaniya Das 
129017269568STaniya Das static struct clk_branch gcc_npu_cfg_ahb_clk = {
129117269568STaniya Das 	.halt_reg = 0x4d004,
129217269568STaniya Das 	.halt_check = BRANCH_HALT,
129317269568STaniya Das 	.hwcg_reg = 0x4d004,
129417269568STaniya Das 	.hwcg_bit = 1,
129517269568STaniya Das 	.clkr = {
129617269568STaniya Das 		.enable_reg = 0x4d004,
129717269568STaniya Das 		.enable_mask = BIT(0),
129817269568STaniya Das 		.hw.init = &(struct clk_init_data){
129917269568STaniya Das 			.name = "gcc_npu_cfg_ahb_clk",
130017269568STaniya Das 			.ops = &clk_branch2_ops,
130117269568STaniya Das 		},
130217269568STaniya Das 	},
130317269568STaniya Das };
130417269568STaniya Das 
130517269568STaniya Das static struct clk_branch gcc_npu_dma_clk = {
130617269568STaniya Das 	.halt_reg = 0x4d1a0,
130717269568STaniya Das 	.halt_check = BRANCH_HALT,
130817269568STaniya Das 	.hwcg_reg = 0x4d1a0,
130917269568STaniya Das 	.hwcg_bit = 1,
131017269568STaniya Das 	.clkr = {
131117269568STaniya Das 		.enable_reg = 0x4d1a0,
131217269568STaniya Das 		.enable_mask = BIT(0),
131317269568STaniya Das 		.hw.init = &(struct clk_init_data){
131417269568STaniya Das 			.name = "gcc_npu_dma_clk",
131517269568STaniya Das 			.ops = &clk_branch2_ops,
131617269568STaniya Das 		},
131717269568STaniya Das 	},
131817269568STaniya Das };
131917269568STaniya Das 
132017269568STaniya Das static struct clk_branch gcc_npu_gpll0_clk_src = {
132117269568STaniya Das 	.halt_check = BRANCH_HALT_DELAY,
132217269568STaniya Das 	.clkr = {
132317269568STaniya Das 		.enable_reg = 0x52000,
132417269568STaniya Das 		.enable_mask = BIT(25),
132517269568STaniya Das 		.hw.init = &(struct clk_init_data){
132617269568STaniya Das 			.name = "gcc_npu_gpll0_clk_src",
132717269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
132817269568STaniya Das 				.hw = &gpll0.clkr.hw,
132917269568STaniya Das 			},
133017269568STaniya Das 			.num_parents = 1,
133117269568STaniya Das 			.ops = &clk_branch2_ops,
133217269568STaniya Das 		},
133317269568STaniya Das 	},
133417269568STaniya Das };
133517269568STaniya Das 
133617269568STaniya Das static struct clk_branch gcc_npu_gpll0_div_clk_src = {
133717269568STaniya Das 	.halt_check = BRANCH_HALT_DELAY,
133817269568STaniya Das 	.clkr = {
133917269568STaniya Das 		.enable_reg = 0x52000,
134017269568STaniya Das 		.enable_mask = BIT(26),
134117269568STaniya Das 		.hw.init = &(struct clk_init_data){
134217269568STaniya Das 			.name = "gcc_npu_gpll0_div_clk_src",
134317269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
134417269568STaniya Das 				.hw = &gcc_pll0_main_div_cdiv.hw,
134517269568STaniya Das 			},
134617269568STaniya Das 			.num_parents = 1,
134717269568STaniya Das 			.flags = CLK_SET_RATE_PARENT,
134817269568STaniya Das 			.ops = &clk_branch2_ops,
134917269568STaniya Das 		},
135017269568STaniya Das 	},
135117269568STaniya Das };
135217269568STaniya Das 
135317269568STaniya Das static struct clk_branch gcc_pdm2_clk = {
135417269568STaniya Das 	.halt_reg = 0x3300c,
135517269568STaniya Das 	.halt_check = BRANCH_HALT,
135617269568STaniya Das 	.clkr = {
135717269568STaniya Das 		.enable_reg = 0x3300c,
135817269568STaniya Das 		.enable_mask = BIT(0),
135917269568STaniya Das 		.hw.init = &(struct clk_init_data){
136017269568STaniya Das 			.name = "gcc_pdm2_clk",
136117269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
136217269568STaniya Das 				.hw = &gcc_pdm2_clk_src.clkr.hw,
136317269568STaniya Das 			},
136417269568STaniya Das 			.num_parents = 1,
136517269568STaniya Das 			.flags = CLK_SET_RATE_PARENT,
136617269568STaniya Das 			.ops = &clk_branch2_ops,
136717269568STaniya Das 		},
136817269568STaniya Das 	},
136917269568STaniya Das };
137017269568STaniya Das 
137117269568STaniya Das static struct clk_branch gcc_pdm_ahb_clk = {
137217269568STaniya Das 	.halt_reg = 0x33004,
137317269568STaniya Das 	.halt_check = BRANCH_HALT,
137417269568STaniya Das 	.hwcg_reg = 0x33004,
137517269568STaniya Das 	.hwcg_bit = 1,
137617269568STaniya Das 	.clkr = {
137717269568STaniya Das 		.enable_reg = 0x33004,
137817269568STaniya Das 		.enable_mask = BIT(0),
137917269568STaniya Das 		.hw.init = &(struct clk_init_data){
138017269568STaniya Das 			.name = "gcc_pdm_ahb_clk",
138117269568STaniya Das 			.ops = &clk_branch2_ops,
138217269568STaniya Das 		},
138317269568STaniya Das 	},
138417269568STaniya Das };
138517269568STaniya Das 
138617269568STaniya Das static struct clk_branch gcc_pdm_xo4_clk = {
138717269568STaniya Das 	.halt_reg = 0x33008,
138817269568STaniya Das 	.halt_check = BRANCH_HALT,
138917269568STaniya Das 	.clkr = {
139017269568STaniya Das 		.enable_reg = 0x33008,
139117269568STaniya Das 		.enable_mask = BIT(0),
139217269568STaniya Das 		.hw.init = &(struct clk_init_data){
139317269568STaniya Das 			.name = "gcc_pdm_xo4_clk",
139417269568STaniya Das 			.ops = &clk_branch2_ops,
139517269568STaniya Das 		},
139617269568STaniya Das 	},
139717269568STaniya Das };
139817269568STaniya Das 
139917269568STaniya Das static struct clk_branch gcc_prng_ahb_clk = {
140017269568STaniya Das 	.halt_reg = 0x34004,
140117269568STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
140217269568STaniya Das 	.hwcg_reg = 0x34004,
140317269568STaniya Das 	.hwcg_bit = 1,
140417269568STaniya Das 	.clkr = {
140517269568STaniya Das 		.enable_reg = 0x52000,
140617269568STaniya Das 		.enable_mask = BIT(13),
140717269568STaniya Das 		.hw.init = &(struct clk_init_data){
140817269568STaniya Das 			.name = "gcc_prng_ahb_clk",
140917269568STaniya Das 			.ops = &clk_branch2_ops,
141017269568STaniya Das 		},
141117269568STaniya Das 	},
141217269568STaniya Das };
141317269568STaniya Das 
141417269568STaniya Das static struct clk_branch gcc_qspi_cnoc_periph_ahb_clk = {
141517269568STaniya Das 	.halt_reg = 0x4b004,
141617269568STaniya Das 	.halt_check = BRANCH_HALT,
141717269568STaniya Das 	.hwcg_reg = 0x4b004,
141817269568STaniya Das 	.hwcg_bit = 1,
141917269568STaniya Das 	.clkr = {
142017269568STaniya Das 		.enable_reg = 0x4b004,
142117269568STaniya Das 		.enable_mask = BIT(0),
142217269568STaniya Das 		.hw.init = &(struct clk_init_data){
142317269568STaniya Das 			.name = "gcc_qspi_cnoc_periph_ahb_clk",
142417269568STaniya Das 			.ops = &clk_branch2_ops,
142517269568STaniya Das 		},
142617269568STaniya Das 	},
142717269568STaniya Das };
142817269568STaniya Das 
142917269568STaniya Das static struct clk_branch gcc_qspi_core_clk = {
143017269568STaniya Das 	.halt_reg = 0x4b008,
143117269568STaniya Das 	.halt_check = BRANCH_HALT,
143217269568STaniya Das 	.clkr = {
143317269568STaniya Das 		.enable_reg = 0x4b008,
143417269568STaniya Das 		.enable_mask = BIT(0),
143517269568STaniya Das 		.hw.init = &(struct clk_init_data){
143617269568STaniya Das 			.name = "gcc_qspi_core_clk",
143717269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
143817269568STaniya Das 				.hw = &gcc_qspi_core_clk_src.clkr.hw,
143917269568STaniya Das 			},
144017269568STaniya Das 			.num_parents = 1,
144117269568STaniya Das 			.flags = CLK_SET_RATE_PARENT,
144217269568STaniya Das 			.ops = &clk_branch2_ops,
144317269568STaniya Das 		},
144417269568STaniya Das 	},
144517269568STaniya Das };
144617269568STaniya Das 
144717269568STaniya Das static struct clk_branch gcc_qupv3_wrap0_core_2x_clk = {
144817269568STaniya Das 	.halt_reg = 0x17014,
144917269568STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
145017269568STaniya Das 	.clkr = {
145117269568STaniya Das 		.enable_reg = 0x52008,
145217269568STaniya Das 		.enable_mask = BIT(9),
145317269568STaniya Das 		.hw.init = &(struct clk_init_data){
145417269568STaniya Das 			.name = "gcc_qupv3_wrap0_core_2x_clk",
145517269568STaniya Das 			.ops = &clk_branch2_ops,
145617269568STaniya Das 		},
145717269568STaniya Das 	},
145817269568STaniya Das };
145917269568STaniya Das 
146017269568STaniya Das static struct clk_branch gcc_qupv3_wrap0_core_clk = {
146117269568STaniya Das 	.halt_reg = 0x1700c,
146217269568STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
146317269568STaniya Das 	.clkr = {
146417269568STaniya Das 		.enable_reg = 0x52008,
146517269568STaniya Das 		.enable_mask = BIT(8),
146617269568STaniya Das 		.hw.init = &(struct clk_init_data){
146717269568STaniya Das 			.name = "gcc_qupv3_wrap0_core_clk",
146817269568STaniya Das 			.ops = &clk_branch2_ops,
146917269568STaniya Das 		},
147017269568STaniya Das 	},
147117269568STaniya Das };
147217269568STaniya Das 
147317269568STaniya Das static struct clk_branch gcc_qupv3_wrap0_s0_clk = {
147417269568STaniya Das 	.halt_reg = 0x17030,
147517269568STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
147617269568STaniya Das 	.clkr = {
147717269568STaniya Das 		.enable_reg = 0x52008,
147817269568STaniya Das 		.enable_mask = BIT(10),
147917269568STaniya Das 		.hw.init = &(struct clk_init_data){
148017269568STaniya Das 			.name = "gcc_qupv3_wrap0_s0_clk",
148117269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
148217269568STaniya Das 				.hw = &gcc_qupv3_wrap0_s0_clk_src.clkr.hw,
148317269568STaniya Das 			},
148417269568STaniya Das 			.num_parents = 1,
148517269568STaniya Das 			.flags = CLK_SET_RATE_PARENT,
148617269568STaniya Das 			.ops = &clk_branch2_ops,
148717269568STaniya Das 		},
148817269568STaniya Das 	},
148917269568STaniya Das };
149017269568STaniya Das 
149117269568STaniya Das static struct clk_branch gcc_qupv3_wrap0_s1_clk = {
149217269568STaniya Das 	.halt_reg = 0x17160,
149317269568STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
149417269568STaniya Das 	.clkr = {
149517269568STaniya Das 		.enable_reg = 0x52008,
149617269568STaniya Das 		.enable_mask = BIT(11),
149717269568STaniya Das 		.hw.init = &(struct clk_init_data){
149817269568STaniya Das 			.name = "gcc_qupv3_wrap0_s1_clk",
149917269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
150017269568STaniya Das 				.hw = &gcc_qupv3_wrap0_s1_clk_src.clkr.hw,
150117269568STaniya Das 			},
150217269568STaniya Das 			.num_parents = 1,
150317269568STaniya Das 			.flags = CLK_SET_RATE_PARENT,
150417269568STaniya Das 			.ops = &clk_branch2_ops,
150517269568STaniya Das 		},
150617269568STaniya Das 	},
150717269568STaniya Das };
150817269568STaniya Das 
150917269568STaniya Das static struct clk_branch gcc_qupv3_wrap0_s2_clk = {
151017269568STaniya Das 	.halt_reg = 0x17290,
151117269568STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
151217269568STaniya Das 	.clkr = {
151317269568STaniya Das 		.enable_reg = 0x52008,
151417269568STaniya Das 		.enable_mask = BIT(12),
151517269568STaniya Das 		.hw.init = &(struct clk_init_data){
151617269568STaniya Das 			.name = "gcc_qupv3_wrap0_s2_clk",
151717269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
151817269568STaniya Das 				.hw = &gcc_qupv3_wrap0_s2_clk_src.clkr.hw,
151917269568STaniya Das 			},
152017269568STaniya Das 			.num_parents = 1,
152117269568STaniya Das 			.flags = CLK_SET_RATE_PARENT,
152217269568STaniya Das 			.ops = &clk_branch2_ops,
152317269568STaniya Das 		},
152417269568STaniya Das 	},
152517269568STaniya Das };
152617269568STaniya Das 
152717269568STaniya Das static struct clk_branch gcc_qupv3_wrap0_s3_clk = {
152817269568STaniya Das 	.halt_reg = 0x173c0,
152917269568STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
153017269568STaniya Das 	.clkr = {
153117269568STaniya Das 		.enable_reg = 0x52008,
153217269568STaniya Das 		.enable_mask = BIT(13),
153317269568STaniya Das 		.hw.init = &(struct clk_init_data){
153417269568STaniya Das 			.name = "gcc_qupv3_wrap0_s3_clk",
153517269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
153617269568STaniya Das 				.hw = &gcc_qupv3_wrap0_s3_clk_src.clkr.hw,
153717269568STaniya Das 			},
153817269568STaniya Das 			.num_parents = 1,
153917269568STaniya Das 			.flags = CLK_SET_RATE_PARENT,
154017269568STaniya Das 			.ops = &clk_branch2_ops,
154117269568STaniya Das 		},
154217269568STaniya Das 	},
154317269568STaniya Das };
154417269568STaniya Das 
154517269568STaniya Das static struct clk_branch gcc_qupv3_wrap0_s4_clk = {
154617269568STaniya Das 	.halt_reg = 0x174f0,
154717269568STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
154817269568STaniya Das 	.clkr = {
154917269568STaniya Das 		.enable_reg = 0x52008,
155017269568STaniya Das 		.enable_mask = BIT(14),
155117269568STaniya Das 		.hw.init = &(struct clk_init_data){
155217269568STaniya Das 			.name = "gcc_qupv3_wrap0_s4_clk",
155317269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
155417269568STaniya Das 				.hw = &gcc_qupv3_wrap0_s4_clk_src.clkr.hw,
155517269568STaniya Das 			},
155617269568STaniya Das 			.num_parents = 1,
155717269568STaniya Das 			.flags = CLK_SET_RATE_PARENT,
155817269568STaniya Das 			.ops = &clk_branch2_ops,
155917269568STaniya Das 		},
156017269568STaniya Das 	},
156117269568STaniya Das };
156217269568STaniya Das 
156317269568STaniya Das static struct clk_branch gcc_qupv3_wrap0_s5_clk = {
156417269568STaniya Das 	.halt_reg = 0x17620,
156517269568STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
156617269568STaniya Das 	.clkr = {
156717269568STaniya Das 		.enable_reg = 0x52008,
156817269568STaniya Das 		.enable_mask = BIT(15),
156917269568STaniya Das 		.hw.init = &(struct clk_init_data){
157017269568STaniya Das 			.name = "gcc_qupv3_wrap0_s5_clk",
157117269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
157217269568STaniya Das 				.hw = &gcc_qupv3_wrap0_s5_clk_src.clkr.hw,
157317269568STaniya Das 			},
157417269568STaniya Das 			.num_parents = 1,
157517269568STaniya Das 			.flags = CLK_SET_RATE_PARENT,
157617269568STaniya Das 			.ops = &clk_branch2_ops,
157717269568STaniya Das 		},
157817269568STaniya Das 	},
157917269568STaniya Das };
158017269568STaniya Das 
158117269568STaniya Das static struct clk_branch gcc_qupv3_wrap1_core_2x_clk = {
158217269568STaniya Das 	.halt_reg = 0x18004,
158317269568STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
158417269568STaniya Das 	.clkr = {
158517269568STaniya Das 		.enable_reg = 0x52008,
158617269568STaniya Das 		.enable_mask = BIT(18),
158717269568STaniya Das 		.hw.init = &(struct clk_init_data){
158817269568STaniya Das 			.name = "gcc_qupv3_wrap1_core_2x_clk",
158917269568STaniya Das 			.ops = &clk_branch2_ops,
159017269568STaniya Das 		},
159117269568STaniya Das 	},
159217269568STaniya Das };
159317269568STaniya Das 
159417269568STaniya Das static struct clk_branch gcc_qupv3_wrap1_core_clk = {
159517269568STaniya Das 	.halt_reg = 0x18008,
159617269568STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
159717269568STaniya Das 	.clkr = {
159817269568STaniya Das 		.enable_reg = 0x52008,
159917269568STaniya Das 		.enable_mask = BIT(19),
160017269568STaniya Das 		.hw.init = &(struct clk_init_data){
160117269568STaniya Das 			.name = "gcc_qupv3_wrap1_core_clk",
160217269568STaniya Das 			.ops = &clk_branch2_ops,
160317269568STaniya Das 		},
160417269568STaniya Das 	},
160517269568STaniya Das };
160617269568STaniya Das 
160717269568STaniya Das static struct clk_branch gcc_qupv3_wrap1_s0_clk = {
160817269568STaniya Das 	.halt_reg = 0x18014,
160917269568STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
161017269568STaniya Das 	.clkr = {
161117269568STaniya Das 		.enable_reg = 0x52008,
161217269568STaniya Das 		.enable_mask = BIT(22),
161317269568STaniya Das 		.hw.init = &(struct clk_init_data){
161417269568STaniya Das 			.name = "gcc_qupv3_wrap1_s0_clk",
161517269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
161617269568STaniya Das 				.hw = &gcc_qupv3_wrap1_s0_clk_src.clkr.hw,
161717269568STaniya Das 			},
161817269568STaniya Das 			.num_parents = 1,
161917269568STaniya Das 			.flags = CLK_SET_RATE_PARENT,
162017269568STaniya Das 			.ops = &clk_branch2_ops,
162117269568STaniya Das 		},
162217269568STaniya Das 	},
162317269568STaniya Das };
162417269568STaniya Das 
162517269568STaniya Das static struct clk_branch gcc_qupv3_wrap1_s1_clk = {
162617269568STaniya Das 	.halt_reg = 0x18144,
162717269568STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
162817269568STaniya Das 	.clkr = {
162917269568STaniya Das 		.enable_reg = 0x52008,
163017269568STaniya Das 		.enable_mask = BIT(23),
163117269568STaniya Das 		.hw.init = &(struct clk_init_data){
163217269568STaniya Das 			.name = "gcc_qupv3_wrap1_s1_clk",
163317269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
163417269568STaniya Das 				.hw = &gcc_qupv3_wrap1_s1_clk_src.clkr.hw,
163517269568STaniya Das 			},
163617269568STaniya Das 			.num_parents = 1,
163717269568STaniya Das 			.flags = CLK_SET_RATE_PARENT,
163817269568STaniya Das 			.ops = &clk_branch2_ops,
163917269568STaniya Das 		},
164017269568STaniya Das 	},
164117269568STaniya Das };
164217269568STaniya Das 
164317269568STaniya Das static struct clk_branch gcc_qupv3_wrap1_s2_clk = {
164417269568STaniya Das 	.halt_reg = 0x18274,
164517269568STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
164617269568STaniya Das 	.clkr = {
164717269568STaniya Das 		.enable_reg = 0x52008,
164817269568STaniya Das 		.enable_mask = BIT(24),
164917269568STaniya Das 		.hw.init = &(struct clk_init_data){
165017269568STaniya Das 			.name = "gcc_qupv3_wrap1_s2_clk",
165117269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
165217269568STaniya Das 				.hw = &gcc_qupv3_wrap1_s2_clk_src.clkr.hw,
165317269568STaniya Das 			},
165417269568STaniya Das 			.num_parents = 1,
165517269568STaniya Das 			.flags = CLK_SET_RATE_PARENT,
165617269568STaniya Das 			.ops = &clk_branch2_ops,
165717269568STaniya Das 		},
165817269568STaniya Das 	},
165917269568STaniya Das };
166017269568STaniya Das 
166117269568STaniya Das static struct clk_branch gcc_qupv3_wrap1_s3_clk = {
166217269568STaniya Das 	.halt_reg = 0x183a4,
166317269568STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
166417269568STaniya Das 	.clkr = {
166517269568STaniya Das 		.enable_reg = 0x52008,
166617269568STaniya Das 		.enable_mask = BIT(25),
166717269568STaniya Das 		.hw.init = &(struct clk_init_data){
166817269568STaniya Das 			.name = "gcc_qupv3_wrap1_s3_clk",
166917269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
167017269568STaniya Das 				.hw = &gcc_qupv3_wrap1_s3_clk_src.clkr.hw,
167117269568STaniya Das 			},
167217269568STaniya Das 			.num_parents = 1,
167317269568STaniya Das 			.flags = CLK_SET_RATE_PARENT,
167417269568STaniya Das 			.ops = &clk_branch2_ops,
167517269568STaniya Das 		},
167617269568STaniya Das 	},
167717269568STaniya Das };
167817269568STaniya Das 
167917269568STaniya Das static struct clk_branch gcc_qupv3_wrap1_s4_clk = {
168017269568STaniya Das 	.halt_reg = 0x184d4,
168117269568STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
168217269568STaniya Das 	.clkr = {
168317269568STaniya Das 		.enable_reg = 0x52008,
168417269568STaniya Das 		.enable_mask = BIT(26),
168517269568STaniya Das 		.hw.init = &(struct clk_init_data){
168617269568STaniya Das 			.name = "gcc_qupv3_wrap1_s4_clk",
168717269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
168817269568STaniya Das 				.hw = &gcc_qupv3_wrap1_s4_clk_src.clkr.hw,
168917269568STaniya Das 			},
169017269568STaniya Das 			.num_parents = 1,
169117269568STaniya Das 			.flags = CLK_SET_RATE_PARENT,
169217269568STaniya Das 			.ops = &clk_branch2_ops,
169317269568STaniya Das 		},
169417269568STaniya Das 	},
169517269568STaniya Das };
169617269568STaniya Das 
169717269568STaniya Das static struct clk_branch gcc_qupv3_wrap1_s5_clk = {
169817269568STaniya Das 	.halt_reg = 0x18604,
169917269568STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
170017269568STaniya Das 	.clkr = {
170117269568STaniya Das 		.enable_reg = 0x52008,
170217269568STaniya Das 		.enable_mask = BIT(27),
170317269568STaniya Das 		.hw.init = &(struct clk_init_data){
170417269568STaniya Das 			.name = "gcc_qupv3_wrap1_s5_clk",
170517269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
170617269568STaniya Das 				.hw = &gcc_qupv3_wrap1_s5_clk_src.clkr.hw,
170717269568STaniya Das 			},
170817269568STaniya Das 			.num_parents = 1,
170917269568STaniya Das 			.flags = CLK_SET_RATE_PARENT,
171017269568STaniya Das 			.ops = &clk_branch2_ops,
171117269568STaniya Das 		},
171217269568STaniya Das 	},
171317269568STaniya Das };
171417269568STaniya Das 
171517269568STaniya Das static struct clk_branch gcc_qupv3_wrap_0_m_ahb_clk = {
171617269568STaniya Das 	.halt_reg = 0x17004,
171717269568STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
171817269568STaniya Das 	.clkr = {
171917269568STaniya Das 		.enable_reg = 0x52008,
172017269568STaniya Das 		.enable_mask = BIT(6),
172117269568STaniya Das 		.hw.init = &(struct clk_init_data){
172217269568STaniya Das 			.name = "gcc_qupv3_wrap_0_m_ahb_clk",
172317269568STaniya Das 			.ops = &clk_branch2_ops,
172417269568STaniya Das 		},
172517269568STaniya Das 	},
172617269568STaniya Das };
172717269568STaniya Das 
172817269568STaniya Das static struct clk_branch gcc_qupv3_wrap_0_s_ahb_clk = {
172917269568STaniya Das 	.halt_reg = 0x17008,
173017269568STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
173117269568STaniya Das 	.hwcg_reg = 0x17008,
173217269568STaniya Das 	.hwcg_bit = 1,
173317269568STaniya Das 	.clkr = {
173417269568STaniya Das 		.enable_reg = 0x52008,
173517269568STaniya Das 		.enable_mask = BIT(7),
173617269568STaniya Das 		.hw.init = &(struct clk_init_data){
173717269568STaniya Das 			.name = "gcc_qupv3_wrap_0_s_ahb_clk",
173817269568STaniya Das 			.ops = &clk_branch2_ops,
173917269568STaniya Das 		},
174017269568STaniya Das 	},
174117269568STaniya Das };
174217269568STaniya Das 
174317269568STaniya Das static struct clk_branch gcc_qupv3_wrap_1_m_ahb_clk = {
174417269568STaniya Das 	.halt_reg = 0x1800c,
174517269568STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
174617269568STaniya Das 	.clkr = {
174717269568STaniya Das 		.enable_reg = 0x52008,
174817269568STaniya Das 		.enable_mask = BIT(20),
174917269568STaniya Das 		.hw.init = &(struct clk_init_data){
175017269568STaniya Das 			.name = "gcc_qupv3_wrap_1_m_ahb_clk",
175117269568STaniya Das 			.ops = &clk_branch2_ops,
175217269568STaniya Das 		},
175317269568STaniya Das 	},
175417269568STaniya Das };
175517269568STaniya Das 
175617269568STaniya Das static struct clk_branch gcc_qupv3_wrap_1_s_ahb_clk = {
175717269568STaniya Das 	.halt_reg = 0x18010,
175817269568STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
175917269568STaniya Das 	.hwcg_reg = 0x18010,
176017269568STaniya Das 	.hwcg_bit = 1,
176117269568STaniya Das 	.clkr = {
176217269568STaniya Das 		.enable_reg = 0x52008,
176317269568STaniya Das 		.enable_mask = BIT(21),
176417269568STaniya Das 		.hw.init = &(struct clk_init_data){
176517269568STaniya Das 			.name = "gcc_qupv3_wrap_1_s_ahb_clk",
176617269568STaniya Das 			.ops = &clk_branch2_ops,
176717269568STaniya Das 		},
176817269568STaniya Das 	},
176917269568STaniya Das };
177017269568STaniya Das 
177117269568STaniya Das static struct clk_branch gcc_sdcc1_ahb_clk = {
177217269568STaniya Das 	.halt_reg = 0x12008,
177317269568STaniya Das 	.halt_check = BRANCH_HALT,
177417269568STaniya Das 	.clkr = {
177517269568STaniya Das 		.enable_reg = 0x12008,
177617269568STaniya Das 		.enable_mask = BIT(0),
177717269568STaniya Das 		.hw.init = &(struct clk_init_data){
177817269568STaniya Das 			.name = "gcc_sdcc1_ahb_clk",
177917269568STaniya Das 			.ops = &clk_branch2_ops,
178017269568STaniya Das 		},
178117269568STaniya Das 	},
178217269568STaniya Das };
178317269568STaniya Das 
178417269568STaniya Das static struct clk_branch gcc_sdcc1_apps_clk = {
178517269568STaniya Das 	.halt_reg = 0x1200c,
178617269568STaniya Das 	.halt_check = BRANCH_HALT,
178717269568STaniya Das 	.clkr = {
178817269568STaniya Das 		.enable_reg = 0x1200c,
178917269568STaniya Das 		.enable_mask = BIT(0),
179017269568STaniya Das 		.hw.init = &(struct clk_init_data){
179117269568STaniya Das 			.name = "gcc_sdcc1_apps_clk",
179217269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
179317269568STaniya Das 				.hw = &gcc_sdcc1_apps_clk_src.clkr.hw,
179417269568STaniya Das 			},
179517269568STaniya Das 			.num_parents = 1,
179617269568STaniya Das 			.flags = CLK_SET_RATE_PARENT,
179717269568STaniya Das 			.ops = &clk_branch2_ops,
179817269568STaniya Das 		},
179917269568STaniya Das 	},
180017269568STaniya Das };
180117269568STaniya Das 
180217269568STaniya Das static struct clk_branch gcc_sdcc1_ice_core_clk = {
180317269568STaniya Das 	.halt_reg = 0x12040,
180417269568STaniya Das 	.halt_check = BRANCH_HALT,
180517269568STaniya Das 	.clkr = {
180617269568STaniya Das 		.enable_reg = 0x12040,
180717269568STaniya Das 		.enable_mask = BIT(0),
180817269568STaniya Das 		.hw.init = &(struct clk_init_data){
180917269568STaniya Das 			.name = "gcc_sdcc1_ice_core_clk",
181017269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
181117269568STaniya Das 				.hw = &gcc_sdcc1_ice_core_clk_src.clkr.hw,
181217269568STaniya Das 			},
181317269568STaniya Das 			.num_parents = 1,
181417269568STaniya Das 			.flags = CLK_SET_RATE_PARENT,
181517269568STaniya Das 			.ops = &clk_branch2_ops,
181617269568STaniya Das 		},
181717269568STaniya Das 	},
181817269568STaniya Das };
181917269568STaniya Das 
182017269568STaniya Das static struct clk_branch gcc_sdcc2_ahb_clk = {
182117269568STaniya Das 	.halt_reg = 0x14008,
182217269568STaniya Das 	.halt_check = BRANCH_HALT,
182317269568STaniya Das 	.clkr = {
182417269568STaniya Das 		.enable_reg = 0x14008,
182517269568STaniya Das 		.enable_mask = BIT(0),
182617269568STaniya Das 		.hw.init = &(struct clk_init_data){
182717269568STaniya Das 			.name = "gcc_sdcc2_ahb_clk",
182817269568STaniya Das 			.ops = &clk_branch2_ops,
182917269568STaniya Das 		},
183017269568STaniya Das 	},
183117269568STaniya Das };
183217269568STaniya Das 
183317269568STaniya Das static struct clk_branch gcc_sdcc2_apps_clk = {
183417269568STaniya Das 	.halt_reg = 0x14004,
183517269568STaniya Das 	.halt_check = BRANCH_HALT,
183617269568STaniya Das 	.clkr = {
183717269568STaniya Das 		.enable_reg = 0x14004,
183817269568STaniya Das 		.enable_mask = BIT(0),
183917269568STaniya Das 		.hw.init = &(struct clk_init_data){
184017269568STaniya Das 			.name = "gcc_sdcc2_apps_clk",
184117269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
184217269568STaniya Das 				.hw = &gcc_sdcc2_apps_clk_src.clkr.hw,
184317269568STaniya Das 			},
184417269568STaniya Das 			.num_parents = 1,
184517269568STaniya Das 			.flags = CLK_SET_RATE_PARENT,
184617269568STaniya Das 			.ops = &clk_branch2_ops,
184717269568STaniya Das 		},
184817269568STaniya Das 	},
184917269568STaniya Das };
185017269568STaniya Das 
185117269568STaniya Das /* For CPUSS functionality the SYS NOC clock needs to be left enabled */
185217269568STaniya Das static struct clk_branch gcc_sys_noc_cpuss_ahb_clk = {
185317269568STaniya Das 	.halt_reg = 0x4144,
185417269568STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
185517269568STaniya Das 	.clkr = {
185617269568STaniya Das 		.enable_reg = 0x52000,
185717269568STaniya Das 		.enable_mask = BIT(0),
185817269568STaniya Das 		.hw.init = &(struct clk_init_data){
185917269568STaniya Das 			.name = "gcc_sys_noc_cpuss_ahb_clk",
186017269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
186117269568STaniya Das 				.hw = &gcc_cpuss_ahb_clk_src.clkr.hw,
186217269568STaniya Das 			},
186317269568STaniya Das 			.num_parents = 1,
186417269568STaniya Das 			.flags = CLK_IS_CRITICAL | CLK_SET_RATE_PARENT,
186517269568STaniya Das 			.ops = &clk_branch2_ops,
186617269568STaniya Das 		},
186717269568STaniya Das 	},
186817269568STaniya Das };
186917269568STaniya Das 
187017269568STaniya Das static struct clk_branch gcc_ufs_mem_clkref_clk = {
187117269568STaniya Das 	.halt_reg = 0x8c000,
187217269568STaniya Das 	.halt_check = BRANCH_HALT,
187317269568STaniya Das 	.clkr = {
187417269568STaniya Das 		.enable_reg = 0x8c000,
187517269568STaniya Das 		.enable_mask = BIT(0),
187617269568STaniya Das 		.hw.init = &(struct clk_init_data){
187717269568STaniya Das 			.name = "gcc_ufs_mem_clkref_clk",
187817269568STaniya Das 			.ops = &clk_branch2_ops,
187917269568STaniya Das 		},
188017269568STaniya Das 	},
188117269568STaniya Das };
188217269568STaniya Das 
188317269568STaniya Das static struct clk_branch gcc_ufs_phy_ahb_clk = {
188417269568STaniya Das 	.halt_reg = 0x77014,
188517269568STaniya Das 	.halt_check = BRANCH_HALT,
188617269568STaniya Das 	.hwcg_reg = 0x77014,
188717269568STaniya Das 	.hwcg_bit = 1,
188817269568STaniya Das 	.clkr = {
188917269568STaniya Das 		.enable_reg = 0x77014,
189017269568STaniya Das 		.enable_mask = BIT(0),
189117269568STaniya Das 		.hw.init = &(struct clk_init_data){
189217269568STaniya Das 			.name = "gcc_ufs_phy_ahb_clk",
189317269568STaniya Das 			.ops = &clk_branch2_ops,
189417269568STaniya Das 		},
189517269568STaniya Das 	},
189617269568STaniya Das };
189717269568STaniya Das 
189817269568STaniya Das static struct clk_branch gcc_ufs_phy_axi_clk = {
189917269568STaniya Das 	.halt_reg = 0x77038,
190017269568STaniya Das 	.halt_check = BRANCH_HALT,
190117269568STaniya Das 	.hwcg_reg = 0x77038,
190217269568STaniya Das 	.hwcg_bit = 1,
190317269568STaniya Das 	.clkr = {
190417269568STaniya Das 		.enable_reg = 0x77038,
190517269568STaniya Das 		.enable_mask = BIT(0),
190617269568STaniya Das 		.hw.init = &(struct clk_init_data){
190717269568STaniya Das 			.name = "gcc_ufs_phy_axi_clk",
190817269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
190917269568STaniya Das 				.hw = &gcc_ufs_phy_axi_clk_src.clkr.hw,
191017269568STaniya Das 			},
191117269568STaniya Das 			.num_parents = 1,
191217269568STaniya Das 			.flags = CLK_SET_RATE_PARENT,
191317269568STaniya Das 			.ops = &clk_branch2_ops,
191417269568STaniya Das 		},
191517269568STaniya Das 	},
191617269568STaniya Das };
191717269568STaniya Das 
191817269568STaniya Das static struct clk_branch gcc_ufs_phy_ice_core_clk = {
191917269568STaniya Das 	.halt_reg = 0x77090,
192017269568STaniya Das 	.halt_check = BRANCH_HALT,
192117269568STaniya Das 	.hwcg_reg = 0x77090,
192217269568STaniya Das 	.hwcg_bit = 1,
192317269568STaniya Das 	.clkr = {
192417269568STaniya Das 		.enable_reg = 0x77090,
192517269568STaniya Das 		.enable_mask = BIT(0),
192617269568STaniya Das 		.hw.init = &(struct clk_init_data){
192717269568STaniya Das 			.name = "gcc_ufs_phy_ice_core_clk",
192817269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
192917269568STaniya Das 				.hw = &gcc_ufs_phy_ice_core_clk_src.clkr.hw,
193017269568STaniya Das 			},
193117269568STaniya Das 			.num_parents = 1,
193217269568STaniya Das 			.flags = CLK_SET_RATE_PARENT,
193317269568STaniya Das 			.ops = &clk_branch2_ops,
193417269568STaniya Das 		},
193517269568STaniya Das 	},
193617269568STaniya Das };
193717269568STaniya Das 
193817269568STaniya Das static struct clk_branch gcc_ufs_phy_phy_aux_clk = {
193917269568STaniya Das 	.halt_reg = 0x77094,
194017269568STaniya Das 	.halt_check = BRANCH_HALT,
194117269568STaniya Das 	.hwcg_reg = 0x77094,
194217269568STaniya Das 	.hwcg_bit = 1,
194317269568STaniya Das 	.clkr = {
194417269568STaniya Das 		.enable_reg = 0x77094,
194517269568STaniya Das 		.enable_mask = BIT(0),
194617269568STaniya Das 		.hw.init = &(struct clk_init_data){
194717269568STaniya Das 			.name = "gcc_ufs_phy_phy_aux_clk",
194817269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
194917269568STaniya Das 				.hw = &gcc_ufs_phy_phy_aux_clk_src.clkr.hw,
195017269568STaniya Das 			},
195117269568STaniya Das 			.num_parents = 1,
195217269568STaniya Das 			.flags = CLK_SET_RATE_PARENT,
195317269568STaniya Das 			.ops = &clk_branch2_ops,
195417269568STaniya Das 		},
195517269568STaniya Das 	},
195617269568STaniya Das };
195717269568STaniya Das 
195817269568STaniya Das static struct clk_branch gcc_ufs_phy_rx_symbol_0_clk = {
195917269568STaniya Das 	.halt_reg = 0x7701c,
196017269568STaniya Das 	.halt_check = BRANCH_HALT_SKIP,
196117269568STaniya Das 	.clkr = {
196217269568STaniya Das 		.enable_reg = 0x7701c,
196317269568STaniya Das 		.enable_mask = BIT(0),
196417269568STaniya Das 		.hw.init = &(struct clk_init_data){
196517269568STaniya Das 			.name = "gcc_ufs_phy_rx_symbol_0_clk",
196617269568STaniya Das 			.ops = &clk_branch2_ops,
196717269568STaniya Das 		},
196817269568STaniya Das 	},
196917269568STaniya Das };
197017269568STaniya Das 
197117269568STaniya Das static struct clk_branch gcc_ufs_phy_tx_symbol_0_clk = {
197217269568STaniya Das 	.halt_reg = 0x77018,
197317269568STaniya Das 	.halt_check = BRANCH_HALT_SKIP,
197417269568STaniya Das 	.clkr = {
197517269568STaniya Das 		.enable_reg = 0x77018,
197617269568STaniya Das 		.enable_mask = BIT(0),
197717269568STaniya Das 		.hw.init = &(struct clk_init_data){
197817269568STaniya Das 			.name = "gcc_ufs_phy_tx_symbol_0_clk",
197917269568STaniya Das 			.ops = &clk_branch2_ops,
198017269568STaniya Das 		},
198117269568STaniya Das 	},
198217269568STaniya Das };
198317269568STaniya Das 
198417269568STaniya Das static struct clk_branch gcc_ufs_phy_unipro_core_clk = {
198517269568STaniya Das 	.halt_reg = 0x7708c,
198617269568STaniya Das 	.halt_check = BRANCH_HALT,
198717269568STaniya Das 	.hwcg_reg = 0x7708c,
198817269568STaniya Das 	.hwcg_bit = 1,
198917269568STaniya Das 	.clkr = {
199017269568STaniya Das 		.enable_reg = 0x7708c,
199117269568STaniya Das 		.enable_mask = BIT(0),
199217269568STaniya Das 		.hw.init = &(struct clk_init_data){
199317269568STaniya Das 			.name = "gcc_ufs_phy_unipro_core_clk",
199417269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
199517269568STaniya Das 				.hw = &gcc_ufs_phy_unipro_core_clk_src.clkr.hw,
199617269568STaniya Das 			},
199717269568STaniya Das 			.num_parents = 1,
199817269568STaniya Das 			.flags = CLK_SET_RATE_PARENT,
199917269568STaniya Das 			.ops = &clk_branch2_ops,
200017269568STaniya Das 		},
200117269568STaniya Das 	},
200217269568STaniya Das };
200317269568STaniya Das 
200417269568STaniya Das static struct clk_branch gcc_usb30_prim_master_clk = {
200517269568STaniya Das 	.halt_reg = 0xf010,
200617269568STaniya Das 	.halt_check = BRANCH_HALT,
200717269568STaniya Das 	.clkr = {
200817269568STaniya Das 		.enable_reg = 0xf010,
200917269568STaniya Das 		.enable_mask = BIT(0),
201017269568STaniya Das 		.hw.init = &(struct clk_init_data){
201117269568STaniya Das 			.name = "gcc_usb30_prim_master_clk",
201217269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
201317269568STaniya Das 				.hw = &gcc_usb30_prim_master_clk_src.clkr.hw,
201417269568STaniya Das 			},
201517269568STaniya Das 			.num_parents = 1,
201617269568STaniya Das 			.flags = CLK_SET_RATE_PARENT,
201717269568STaniya Das 			.ops = &clk_branch2_ops,
201817269568STaniya Das 		},
201917269568STaniya Das 	},
202017269568STaniya Das };
202117269568STaniya Das 
202217269568STaniya Das static struct clk_branch gcc_usb30_prim_mock_utmi_clk = {
202317269568STaniya Das 	.halt_reg = 0xf018,
202417269568STaniya Das 	.halt_check = BRANCH_HALT,
202517269568STaniya Das 	.clkr = {
202617269568STaniya Das 		.enable_reg = 0xf018,
202717269568STaniya Das 		.enable_mask = BIT(0),
202817269568STaniya Das 		.hw.init = &(struct clk_init_data){
202917269568STaniya Das 			.name = "gcc_usb30_prim_mock_utmi_clk",
203017269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
203117269568STaniya Das 				.hw =
203217269568STaniya Das 				&gcc_usb30_prim_mock_utmi_clk_src.clkr.hw,
203317269568STaniya Das 			},
203417269568STaniya Das 			.num_parents = 1,
203517269568STaniya Das 			.flags = CLK_SET_RATE_PARENT,
203617269568STaniya Das 			.ops = &clk_branch2_ops,
203717269568STaniya Das 		},
203817269568STaniya Das 	},
203917269568STaniya Das };
204017269568STaniya Das 
204117269568STaniya Das static struct clk_branch gcc_usb30_prim_sleep_clk = {
204217269568STaniya Das 	.halt_reg = 0xf014,
204317269568STaniya Das 	.halt_check = BRANCH_HALT,
204417269568STaniya Das 	.clkr = {
204517269568STaniya Das 		.enable_reg = 0xf014,
204617269568STaniya Das 		.enable_mask = BIT(0),
204717269568STaniya Das 		.hw.init = &(struct clk_init_data){
204817269568STaniya Das 			.name = "gcc_usb30_prim_sleep_clk",
204917269568STaniya Das 			.ops = &clk_branch2_ops,
205017269568STaniya Das 		},
205117269568STaniya Das 	},
205217269568STaniya Das };
205317269568STaniya Das 
205417269568STaniya Das static struct clk_branch gcc_usb3_prim_clkref_clk = {
205517269568STaniya Das 	.halt_reg = 0x8c010,
205617269568STaniya Das 	.halt_check = BRANCH_HALT,
205717269568STaniya Das 	.clkr = {
205817269568STaniya Das 		.enable_reg = 0x8c010,
205917269568STaniya Das 		.enable_mask = BIT(0),
206017269568STaniya Das 		.hw.init = &(struct clk_init_data){
206117269568STaniya Das 			.name = "gcc_usb3_prim_clkref_clk",
206217269568STaniya Das 			.ops = &clk_branch2_ops,
206317269568STaniya Das 		},
206417269568STaniya Das 	},
206517269568STaniya Das };
206617269568STaniya Das 
206717269568STaniya Das static struct clk_branch gcc_usb3_prim_phy_aux_clk = {
206817269568STaniya Das 	.halt_reg = 0xf050,
206917269568STaniya Das 	.halt_check = BRANCH_HALT,
207017269568STaniya Das 	.clkr = {
207117269568STaniya Das 		.enable_reg = 0xf050,
207217269568STaniya Das 		.enable_mask = BIT(0),
207317269568STaniya Das 		.hw.init = &(struct clk_init_data){
207417269568STaniya Das 			.name = "gcc_usb3_prim_phy_aux_clk",
207517269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
207617269568STaniya Das 				.hw = &gcc_usb3_prim_phy_aux_clk_src.clkr.hw,
207717269568STaniya Das 			},
207817269568STaniya Das 			.num_parents = 1,
207917269568STaniya Das 			.flags = CLK_SET_RATE_PARENT,
208017269568STaniya Das 			.ops = &clk_branch2_ops,
208117269568STaniya Das 		},
208217269568STaniya Das 	},
208317269568STaniya Das };
208417269568STaniya Das 
208517269568STaniya Das static struct clk_branch gcc_usb3_prim_phy_com_aux_clk = {
208617269568STaniya Das 	.halt_reg = 0xf054,
208717269568STaniya Das 	.halt_check = BRANCH_HALT,
208817269568STaniya Das 	.clkr = {
208917269568STaniya Das 		.enable_reg = 0xf054,
209017269568STaniya Das 		.enable_mask = BIT(0),
209117269568STaniya Das 		.hw.init = &(struct clk_init_data){
209217269568STaniya Das 			.name = "gcc_usb3_prim_phy_com_aux_clk",
209317269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
209417269568STaniya Das 				.hw = &gcc_usb3_prim_phy_aux_clk_src.clkr.hw,
209517269568STaniya Das 			},
209617269568STaniya Das 			.num_parents = 1,
209717269568STaniya Das 			.flags = CLK_SET_RATE_PARENT,
209817269568STaniya Das 			.ops = &clk_branch2_ops,
209917269568STaniya Das 		},
210017269568STaniya Das 	},
210117269568STaniya Das };
210217269568STaniya Das 
210317269568STaniya Das static struct clk_branch gcc_usb3_prim_phy_pipe_clk = {
210417269568STaniya Das 	.halt_reg = 0xf058,
210517269568STaniya Das 	.halt_check = BRANCH_HALT_SKIP,
210617269568STaniya Das 	.clkr = {
210717269568STaniya Das 		.enable_reg = 0xf058,
210817269568STaniya Das 		.enable_mask = BIT(0),
210917269568STaniya Das 		.hw.init = &(struct clk_init_data){
211017269568STaniya Das 			.name = "gcc_usb3_prim_phy_pipe_clk",
211117269568STaniya Das 			.ops = &clk_branch2_ops,
211217269568STaniya Das 		},
211317269568STaniya Das 	},
211417269568STaniya Das };
211517269568STaniya Das 
211617269568STaniya Das static struct clk_branch gcc_usb_phy_cfg_ahb2phy_clk = {
211717269568STaniya Das 	.halt_reg = 0x6a004,
211817269568STaniya Das 	.halt_check = BRANCH_HALT,
211917269568STaniya Das 	.hwcg_reg = 0x6a004,
212017269568STaniya Das 	.hwcg_bit = 1,
212117269568STaniya Das 	.clkr = {
212217269568STaniya Das 		.enable_reg = 0x6a004,
212317269568STaniya Das 		.enable_mask = BIT(0),
212417269568STaniya Das 		.hw.init = &(struct clk_init_data){
212517269568STaniya Das 			.name = "gcc_usb_phy_cfg_ahb2phy_clk",
212617269568STaniya Das 			.ops = &clk_branch2_ops,
212717269568STaniya Das 		},
212817269568STaniya Das 	},
212917269568STaniya Das };
213017269568STaniya Das 
213117269568STaniya Das static struct clk_branch gcc_video_axi_clk = {
213217269568STaniya Das 	.halt_reg = 0xb01c,
213317269568STaniya Das 	.halt_check = BRANCH_HALT,
213417269568STaniya Das 	.clkr = {
213517269568STaniya Das 		.enable_reg = 0xb01c,
213617269568STaniya Das 		.enable_mask = BIT(0),
213717269568STaniya Das 		.hw.init = &(struct clk_init_data){
213817269568STaniya Das 			.name = "gcc_video_axi_clk",
213917269568STaniya Das 			.ops = &clk_branch2_ops,
214017269568STaniya Das 		},
214117269568STaniya Das 	},
214217269568STaniya Das };
214317269568STaniya Das 
214417269568STaniya Das static struct clk_branch gcc_video_gpll0_div_clk_src = {
214517269568STaniya Das 	.halt_check = BRANCH_HALT_DELAY,
214617269568STaniya Das 	.clkr = {
214717269568STaniya Das 		.enable_reg = 0x52000,
214817269568STaniya Das 		.enable_mask = BIT(20),
214917269568STaniya Das 		.hw.init = &(struct clk_init_data){
215017269568STaniya Das 			.name = "gcc_video_gpll0_div_clk_src",
215117269568STaniya Das 			.parent_data = &(const struct clk_parent_data){
215217269568STaniya Das 				.hw = &gcc_pll0_main_div_cdiv.hw,
215317269568STaniya Das 			},
215417269568STaniya Das 			.num_parents = 1,
215517269568STaniya Das 			.flags = CLK_SET_RATE_PARENT,
215617269568STaniya Das 			.ops = &clk_branch2_ops,
215717269568STaniya Das 		},
215817269568STaniya Das 	},
215917269568STaniya Das };
216017269568STaniya Das 
216117269568STaniya Das static struct clk_branch gcc_video_throttle_axi_clk = {
216217269568STaniya Das 	.halt_reg = 0xb07c,
216317269568STaniya Das 	.halt_check = BRANCH_HALT,
216417269568STaniya Das 	.hwcg_reg = 0xb07c,
216517269568STaniya Das 	.hwcg_bit = 1,
216617269568STaniya Das 	.clkr = {
216717269568STaniya Das 		.enable_reg = 0xb07c,
216817269568STaniya Das 		.enable_mask = BIT(0),
216917269568STaniya Das 		.hw.init = &(struct clk_init_data){
217017269568STaniya Das 			.name = "gcc_video_throttle_axi_clk",
217117269568STaniya Das 			.ops = &clk_branch2_ops,
217217269568STaniya Das 		},
217317269568STaniya Das 	},
217417269568STaniya Das };
217517269568STaniya Das 
217617269568STaniya Das static struct clk_branch gcc_video_xo_clk = {
217717269568STaniya Das 	.halt_reg = 0xb028,
217817269568STaniya Das 	.halt_check = BRANCH_HALT,
217917269568STaniya Das 	.clkr = {
218017269568STaniya Das 		.enable_reg = 0xb028,
218117269568STaniya Das 		.enable_mask = BIT(0),
218217269568STaniya Das 		.hw.init = &(struct clk_init_data){
218317269568STaniya Das 			.name = "gcc_video_xo_clk",
218417269568STaniya Das 			.ops = &clk_branch2_ops,
218517269568STaniya Das 		},
218617269568STaniya Das 	},
218717269568STaniya Das };
218817269568STaniya Das 
2189253a0af5STaniya Das static struct clk_branch gcc_mss_cfg_ahb_clk = {
2190253a0af5STaniya Das 	.halt_reg = 0x8a000,
2191253a0af5STaniya Das 	.halt_check = BRANCH_HALT,
2192253a0af5STaniya Das 	.clkr = {
2193253a0af5STaniya Das 		.enable_reg = 0x8a000,
2194253a0af5STaniya Das 		.enable_mask = BIT(0),
2195253a0af5STaniya Das 		.hw.init = &(struct clk_init_data){
2196253a0af5STaniya Das 			.name = "gcc_mss_cfg_ahb_clk",
2197253a0af5STaniya Das 			.ops = &clk_branch2_ops,
2198253a0af5STaniya Das 		},
2199253a0af5STaniya Das 	},
2200253a0af5STaniya Das };
2201253a0af5STaniya Das 
2202253a0af5STaniya Das static struct clk_branch gcc_mss_mfab_axis_clk = {
2203253a0af5STaniya Das 	.halt_reg = 0x8a004,
2204253a0af5STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2205253a0af5STaniya Das 	.clkr = {
2206253a0af5STaniya Das 		.enable_reg = 0x8a004,
2207253a0af5STaniya Das 		.enable_mask = BIT(0),
2208253a0af5STaniya Das 		.hw.init = &(struct clk_init_data){
2209253a0af5STaniya Das 			.name = "gcc_mss_mfab_axis_clk",
2210253a0af5STaniya Das 			.ops = &clk_branch2_ops,
2211253a0af5STaniya Das 		},
2212253a0af5STaniya Das 	},
2213253a0af5STaniya Das };
2214253a0af5STaniya Das 
2215253a0af5STaniya Das static struct clk_branch gcc_mss_nav_axi_clk = {
2216253a0af5STaniya Das 	.halt_reg = 0x8a00c,
2217253a0af5STaniya Das 	.halt_check = BRANCH_HALT_VOTED,
2218253a0af5STaniya Das 	.clkr = {
2219253a0af5STaniya Das 		.enable_reg = 0x8a00c,
2220253a0af5STaniya Das 		.enable_mask = BIT(0),
2221253a0af5STaniya Das 		.hw.init = &(struct clk_init_data){
2222253a0af5STaniya Das 			.name = "gcc_mss_nav_axi_clk",
2223253a0af5STaniya Das 			.ops = &clk_branch2_ops,
2224253a0af5STaniya Das 		},
2225253a0af5STaniya Das 	},
2226253a0af5STaniya Das };
2227253a0af5STaniya Das 
2228253a0af5STaniya Das static struct clk_branch gcc_mss_snoc_axi_clk = {
2229253a0af5STaniya Das 	.halt_reg = 0x8a150,
2230253a0af5STaniya Das 	.halt_check = BRANCH_HALT,
2231253a0af5STaniya Das 	.clkr = {
2232253a0af5STaniya Das 		.enable_reg = 0x8a150,
2233253a0af5STaniya Das 		.enable_mask = BIT(0),
2234253a0af5STaniya Das 		.hw.init = &(struct clk_init_data){
2235253a0af5STaniya Das 			.name = "gcc_mss_snoc_axi_clk",
2236253a0af5STaniya Das 			.ops = &clk_branch2_ops,
2237253a0af5STaniya Das 		},
2238253a0af5STaniya Das 	},
2239253a0af5STaniya Das };
2240253a0af5STaniya Das 
2241253a0af5STaniya Das static struct clk_branch gcc_mss_q6_memnoc_axi_clk = {
2242253a0af5STaniya Das 	.halt_reg = 0x8a154,
2243253a0af5STaniya Das 	.halt_check = BRANCH_HALT,
2244253a0af5STaniya Das 	.clkr = {
2245253a0af5STaniya Das 		.enable_reg = 0x8a154,
2246253a0af5STaniya Das 		.enable_mask = BIT(0),
2247253a0af5STaniya Das 		.hw.init = &(struct clk_init_data){
2248253a0af5STaniya Das 			.name = "gcc_mss_q6_memnoc_axi_clk",
2249253a0af5STaniya Das 			.ops = &clk_branch2_ops,
2250253a0af5STaniya Das 		},
2251253a0af5STaniya Das 	},
2252253a0af5STaniya Das };
2253253a0af5STaniya Das 
225447110b6aSTaniya Das static struct clk_branch gcc_lpass_cfg_noc_sway_clk = {
225547110b6aSTaniya Das 	.halt_reg = 0x47018,
225647110b6aSTaniya Das 	.halt_check = BRANCH_HALT_DELAY,
225747110b6aSTaniya Das 	.clkr = {
225847110b6aSTaniya Das 		.enable_reg = 0x47018,
225947110b6aSTaniya Das 		.enable_mask = BIT(0),
226047110b6aSTaniya Das 		.hw.init = &(struct clk_init_data){
226147110b6aSTaniya Das 			.name = "gcc_lpass_cfg_noc_sway_clk",
226247110b6aSTaniya Das 			.ops = &clk_branch2_ops,
226347110b6aSTaniya Das 		},
226447110b6aSTaniya Das 	},
226547110b6aSTaniya Das };
226647110b6aSTaniya Das 
226717269568STaniya Das static struct gdsc ufs_phy_gdsc = {
226817269568STaniya Das 	.gdscr = 0x77004,
226917269568STaniya Das 	.pd = {
227017269568STaniya Das 		.name = "ufs_phy_gdsc",
227117269568STaniya Das 	},
227217269568STaniya Das 	.pwrsts = PWRSTS_OFF_ON,
227317269568STaniya Das };
227417269568STaniya Das 
227517269568STaniya Das static struct gdsc usb30_prim_gdsc = {
227617269568STaniya Das 	.gdscr = 0x0f004,
227717269568STaniya Das 	.pd = {
227817269568STaniya Das 		.name = "usb30_prim_gdsc",
227917269568STaniya Das 	},
228017269568STaniya Das 	.pwrsts = PWRSTS_OFF_ON,
228117269568STaniya Das };
228217269568STaniya Das 
228317269568STaniya Das static struct gdsc hlos1_vote_mmnoc_mmu_tbu_hf0_gdsc = {
228417269568STaniya Das 	.gdscr = 0x7d040,
228517269568STaniya Das 	.pd = {
228617269568STaniya Das 		.name = "hlos1_vote_mmnoc_mmu_tbu_hf0_gdsc",
228717269568STaniya Das 	},
22888d20c39fSMatthias Kaehlcke 	.pwrsts = PWRSTS_OFF_ON,
22898d20c39fSMatthias Kaehlcke 	.flags = VOTABLE,
229017269568STaniya Das };
229117269568STaniya Das 
229217269568STaniya Das static struct gdsc hlos1_vote_mmnoc_mmu_tbu_sf_gdsc = {
229317269568STaniya Das 	.gdscr = 0x7d044,
229417269568STaniya Das 	.pd = {
229517269568STaniya Das 		.name = "hlos1_vote_mmnoc_mmu_tbu_sf_gdsc",
229617269568STaniya Das 	},
22978d20c39fSMatthias Kaehlcke 	.pwrsts = PWRSTS_OFF_ON,
22988d20c39fSMatthias Kaehlcke 	.flags = VOTABLE,
229917269568STaniya Das };
230017269568STaniya Das 
230117269568STaniya Das static struct gdsc *gcc_sc7180_gdscs[] = {
230217269568STaniya Das 	[UFS_PHY_GDSC] = &ufs_phy_gdsc,
230317269568STaniya Das 	[USB30_PRIM_GDSC] = &usb30_prim_gdsc,
230417269568STaniya Das 	[HLOS1_VOTE_MMNOC_MMU_TBU_HF0_GDSC] =
230517269568STaniya Das 					&hlos1_vote_mmnoc_mmu_tbu_hf0_gdsc,
230617269568STaniya Das 	[HLOS1_VOTE_MMNOC_MMU_TBU_SF_GDSC] =
230717269568STaniya Das 					&hlos1_vote_mmnoc_mmu_tbu_sf_gdsc,
230817269568STaniya Das };
230917269568STaniya Das 
231017269568STaniya Das 
231117269568STaniya Das static struct clk_hw *gcc_sc7180_hws[] = {
231217269568STaniya Das 	[GCC_GPLL0_MAIN_DIV_CDIV] = &gcc_pll0_main_div_cdiv.hw,
231317269568STaniya Das };
231417269568STaniya Das 
231517269568STaniya Das static struct clk_regmap *gcc_sc7180_clocks[] = {
231617269568STaniya Das 	[GCC_AGGRE_UFS_PHY_AXI_CLK] = &gcc_aggre_ufs_phy_axi_clk.clkr,
231717269568STaniya Das 	[GCC_AGGRE_USB3_PRIM_AXI_CLK] = &gcc_aggre_usb3_prim_axi_clk.clkr,
231817269568STaniya Das 	[GCC_BOOT_ROM_AHB_CLK] = &gcc_boot_rom_ahb_clk.clkr,
231917269568STaniya Das 	[GCC_CAMERA_AHB_CLK] = &gcc_camera_ahb_clk.clkr,
232017269568STaniya Das 	[GCC_CAMERA_HF_AXI_CLK] = &gcc_camera_hf_axi_clk.clkr,
232117269568STaniya Das 	[GCC_CAMERA_THROTTLE_HF_AXI_CLK] = &gcc_camera_throttle_hf_axi_clk.clkr,
232217269568STaniya Das 	[GCC_CAMERA_XO_CLK] = &gcc_camera_xo_clk.clkr,
232317269568STaniya Das 	[GCC_CE1_AHB_CLK] = &gcc_ce1_ahb_clk.clkr,
232417269568STaniya Das 	[GCC_CE1_AXI_CLK] = &gcc_ce1_axi_clk.clkr,
232517269568STaniya Das 	[GCC_CE1_CLK] = &gcc_ce1_clk.clkr,
232617269568STaniya Das 	[GCC_CFG_NOC_USB3_PRIM_AXI_CLK] = &gcc_cfg_noc_usb3_prim_axi_clk.clkr,
232717269568STaniya Das 	[GCC_CPUSS_AHB_CLK] = &gcc_cpuss_ahb_clk.clkr,
232817269568STaniya Das 	[GCC_CPUSS_AHB_CLK_SRC] = &gcc_cpuss_ahb_clk_src.clkr,
232917269568STaniya Das 	[GCC_CPUSS_RBCPR_CLK] = &gcc_cpuss_rbcpr_clk.clkr,
233017269568STaniya Das 	[GCC_DDRSS_GPU_AXI_CLK] = &gcc_ddrss_gpu_axi_clk.clkr,
233117269568STaniya Das 	[GCC_DISP_GPLL0_CLK_SRC] = &gcc_disp_gpll0_clk_src.clkr,
233217269568STaniya Das 	[GCC_DISP_GPLL0_DIV_CLK_SRC] = &gcc_disp_gpll0_div_clk_src.clkr,
233317269568STaniya Das 	[GCC_DISP_HF_AXI_CLK] = &gcc_disp_hf_axi_clk.clkr,
233417269568STaniya Das 	[GCC_DISP_THROTTLE_HF_AXI_CLK] = &gcc_disp_throttle_hf_axi_clk.clkr,
233517269568STaniya Das 	[GCC_DISP_XO_CLK] = &gcc_disp_xo_clk.clkr,
233617269568STaniya Das 	[GCC_GP1_CLK] = &gcc_gp1_clk.clkr,
233717269568STaniya Das 	[GCC_GP1_CLK_SRC] = &gcc_gp1_clk_src.clkr,
233817269568STaniya Das 	[GCC_GP2_CLK] = &gcc_gp2_clk.clkr,
233917269568STaniya Das 	[GCC_GP2_CLK_SRC] = &gcc_gp2_clk_src.clkr,
234017269568STaniya Das 	[GCC_GP3_CLK] = &gcc_gp3_clk.clkr,
234117269568STaniya Das 	[GCC_GP3_CLK_SRC] = &gcc_gp3_clk_src.clkr,
234217269568STaniya Das 	[GCC_GPU_GPLL0_CLK_SRC] = &gcc_gpu_gpll0_clk_src.clkr,
234317269568STaniya Das 	[GCC_GPU_GPLL0_DIV_CLK_SRC] = &gcc_gpu_gpll0_div_clk_src.clkr,
234417269568STaniya Das 	[GCC_GPU_MEMNOC_GFX_CLK] = &gcc_gpu_memnoc_gfx_clk.clkr,
234517269568STaniya Das 	[GCC_GPU_SNOC_DVM_GFX_CLK] = &gcc_gpu_snoc_dvm_gfx_clk.clkr,
234617269568STaniya Das 	[GCC_NPU_AXI_CLK] = &gcc_npu_axi_clk.clkr,
234717269568STaniya Das 	[GCC_NPU_BWMON_AXI_CLK] = &gcc_npu_bwmon_axi_clk.clkr,
234817269568STaniya Das 	[GCC_NPU_BWMON_DMA_CFG_AHB_CLK] = &gcc_npu_bwmon_dma_cfg_ahb_clk.clkr,
234917269568STaniya Das 	[GCC_NPU_BWMON_DSP_CFG_AHB_CLK] = &gcc_npu_bwmon_dsp_cfg_ahb_clk.clkr,
235017269568STaniya Das 	[GCC_NPU_CFG_AHB_CLK] = &gcc_npu_cfg_ahb_clk.clkr,
235117269568STaniya Das 	[GCC_NPU_DMA_CLK] = &gcc_npu_dma_clk.clkr,
235217269568STaniya Das 	[GCC_NPU_GPLL0_CLK_SRC] = &gcc_npu_gpll0_clk_src.clkr,
235317269568STaniya Das 	[GCC_NPU_GPLL0_DIV_CLK_SRC] = &gcc_npu_gpll0_div_clk_src.clkr,
235417269568STaniya Das 	[GCC_PDM2_CLK] = &gcc_pdm2_clk.clkr,
235517269568STaniya Das 	[GCC_PDM2_CLK_SRC] = &gcc_pdm2_clk_src.clkr,
235617269568STaniya Das 	[GCC_PDM_AHB_CLK] = &gcc_pdm_ahb_clk.clkr,
235717269568STaniya Das 	[GCC_PDM_XO4_CLK] = &gcc_pdm_xo4_clk.clkr,
235817269568STaniya Das 	[GCC_PRNG_AHB_CLK] = &gcc_prng_ahb_clk.clkr,
235917269568STaniya Das 	[GCC_QSPI_CNOC_PERIPH_AHB_CLK] = &gcc_qspi_cnoc_periph_ahb_clk.clkr,
236017269568STaniya Das 	[GCC_QSPI_CORE_CLK] = &gcc_qspi_core_clk.clkr,
236117269568STaniya Das 	[GCC_QSPI_CORE_CLK_SRC] = &gcc_qspi_core_clk_src.clkr,
236217269568STaniya Das 	[GCC_QUPV3_WRAP0_CORE_2X_CLK] = &gcc_qupv3_wrap0_core_2x_clk.clkr,
236317269568STaniya Das 	[GCC_QUPV3_WRAP0_CORE_CLK] = &gcc_qupv3_wrap0_core_clk.clkr,
236417269568STaniya Das 	[GCC_QUPV3_WRAP0_S0_CLK] = &gcc_qupv3_wrap0_s0_clk.clkr,
236517269568STaniya Das 	[GCC_QUPV3_WRAP0_S0_CLK_SRC] = &gcc_qupv3_wrap0_s0_clk_src.clkr,
236617269568STaniya Das 	[GCC_QUPV3_WRAP0_S1_CLK] = &gcc_qupv3_wrap0_s1_clk.clkr,
236717269568STaniya Das 	[GCC_QUPV3_WRAP0_S1_CLK_SRC] = &gcc_qupv3_wrap0_s1_clk_src.clkr,
236817269568STaniya Das 	[GCC_QUPV3_WRAP0_S2_CLK] = &gcc_qupv3_wrap0_s2_clk.clkr,
236917269568STaniya Das 	[GCC_QUPV3_WRAP0_S2_CLK_SRC] = &gcc_qupv3_wrap0_s2_clk_src.clkr,
237017269568STaniya Das 	[GCC_QUPV3_WRAP0_S3_CLK] = &gcc_qupv3_wrap0_s3_clk.clkr,
237117269568STaniya Das 	[GCC_QUPV3_WRAP0_S3_CLK_SRC] = &gcc_qupv3_wrap0_s3_clk_src.clkr,
237217269568STaniya Das 	[GCC_QUPV3_WRAP0_S4_CLK] = &gcc_qupv3_wrap0_s4_clk.clkr,
237317269568STaniya Das 	[GCC_QUPV3_WRAP0_S4_CLK_SRC] = &gcc_qupv3_wrap0_s4_clk_src.clkr,
237417269568STaniya Das 	[GCC_QUPV3_WRAP0_S5_CLK] = &gcc_qupv3_wrap0_s5_clk.clkr,
237517269568STaniya Das 	[GCC_QUPV3_WRAP0_S5_CLK_SRC] = &gcc_qupv3_wrap0_s5_clk_src.clkr,
237617269568STaniya Das 	[GCC_QUPV3_WRAP1_CORE_2X_CLK] = &gcc_qupv3_wrap1_core_2x_clk.clkr,
237717269568STaniya Das 	[GCC_QUPV3_WRAP1_CORE_CLK] = &gcc_qupv3_wrap1_core_clk.clkr,
237817269568STaniya Das 	[GCC_QUPV3_WRAP1_S0_CLK] = &gcc_qupv3_wrap1_s0_clk.clkr,
237917269568STaniya Das 	[GCC_QUPV3_WRAP1_S0_CLK_SRC] = &gcc_qupv3_wrap1_s0_clk_src.clkr,
238017269568STaniya Das 	[GCC_QUPV3_WRAP1_S1_CLK] = &gcc_qupv3_wrap1_s1_clk.clkr,
238117269568STaniya Das 	[GCC_QUPV3_WRAP1_S1_CLK_SRC] = &gcc_qupv3_wrap1_s1_clk_src.clkr,
238217269568STaniya Das 	[GCC_QUPV3_WRAP1_S2_CLK] = &gcc_qupv3_wrap1_s2_clk.clkr,
238317269568STaniya Das 	[GCC_QUPV3_WRAP1_S2_CLK_SRC] = &gcc_qupv3_wrap1_s2_clk_src.clkr,
238417269568STaniya Das 	[GCC_QUPV3_WRAP1_S3_CLK] = &gcc_qupv3_wrap1_s3_clk.clkr,
238517269568STaniya Das 	[GCC_QUPV3_WRAP1_S3_CLK_SRC] = &gcc_qupv3_wrap1_s3_clk_src.clkr,
238617269568STaniya Das 	[GCC_QUPV3_WRAP1_S4_CLK] = &gcc_qupv3_wrap1_s4_clk.clkr,
238717269568STaniya Das 	[GCC_QUPV3_WRAP1_S4_CLK_SRC] = &gcc_qupv3_wrap1_s4_clk_src.clkr,
238817269568STaniya Das 	[GCC_QUPV3_WRAP1_S5_CLK] = &gcc_qupv3_wrap1_s5_clk.clkr,
238917269568STaniya Das 	[GCC_QUPV3_WRAP1_S5_CLK_SRC] = &gcc_qupv3_wrap1_s5_clk_src.clkr,
239017269568STaniya Das 	[GCC_QUPV3_WRAP_0_M_AHB_CLK] = &gcc_qupv3_wrap_0_m_ahb_clk.clkr,
239117269568STaniya Das 	[GCC_QUPV3_WRAP_0_S_AHB_CLK] = &gcc_qupv3_wrap_0_s_ahb_clk.clkr,
239217269568STaniya Das 	[GCC_QUPV3_WRAP_1_M_AHB_CLK] = &gcc_qupv3_wrap_1_m_ahb_clk.clkr,
239317269568STaniya Das 	[GCC_QUPV3_WRAP_1_S_AHB_CLK] = &gcc_qupv3_wrap_1_s_ahb_clk.clkr,
239417269568STaniya Das 	[GCC_SDCC1_AHB_CLK] = &gcc_sdcc1_ahb_clk.clkr,
239517269568STaniya Das 	[GCC_SDCC1_APPS_CLK] = &gcc_sdcc1_apps_clk.clkr,
239617269568STaniya Das 	[GCC_SDCC1_APPS_CLK_SRC] = &gcc_sdcc1_apps_clk_src.clkr,
239717269568STaniya Das 	[GCC_SDCC1_ICE_CORE_CLK] = &gcc_sdcc1_ice_core_clk.clkr,
239817269568STaniya Das 	[GCC_SDCC1_ICE_CORE_CLK_SRC] = &gcc_sdcc1_ice_core_clk_src.clkr,
239917269568STaniya Das 	[GCC_SDCC2_AHB_CLK] = &gcc_sdcc2_ahb_clk.clkr,
240017269568STaniya Das 	[GCC_SDCC2_APPS_CLK] = &gcc_sdcc2_apps_clk.clkr,
240117269568STaniya Das 	[GCC_SDCC2_APPS_CLK_SRC] = &gcc_sdcc2_apps_clk_src.clkr,
240217269568STaniya Das 	[GCC_SYS_NOC_CPUSS_AHB_CLK] = &gcc_sys_noc_cpuss_ahb_clk.clkr,
240317269568STaniya Das 	[GCC_UFS_MEM_CLKREF_CLK] = &gcc_ufs_mem_clkref_clk.clkr,
240417269568STaniya Das 	[GCC_UFS_PHY_AHB_CLK] = &gcc_ufs_phy_ahb_clk.clkr,
240517269568STaniya Das 	[GCC_UFS_PHY_AXI_CLK] = &gcc_ufs_phy_axi_clk.clkr,
240617269568STaniya Das 	[GCC_UFS_PHY_AXI_CLK_SRC] = &gcc_ufs_phy_axi_clk_src.clkr,
240717269568STaniya Das 	[GCC_UFS_PHY_ICE_CORE_CLK] = &gcc_ufs_phy_ice_core_clk.clkr,
240817269568STaniya Das 	[GCC_UFS_PHY_ICE_CORE_CLK_SRC] = &gcc_ufs_phy_ice_core_clk_src.clkr,
240917269568STaniya Das 	[GCC_UFS_PHY_PHY_AUX_CLK] = &gcc_ufs_phy_phy_aux_clk.clkr,
241017269568STaniya Das 	[GCC_UFS_PHY_PHY_AUX_CLK_SRC] = &gcc_ufs_phy_phy_aux_clk_src.clkr,
241117269568STaniya Das 	[GCC_UFS_PHY_RX_SYMBOL_0_CLK] = &gcc_ufs_phy_rx_symbol_0_clk.clkr,
241217269568STaniya Das 	[GCC_UFS_PHY_TX_SYMBOL_0_CLK] = &gcc_ufs_phy_tx_symbol_0_clk.clkr,
241317269568STaniya Das 	[GCC_UFS_PHY_UNIPRO_CORE_CLK] = &gcc_ufs_phy_unipro_core_clk.clkr,
241417269568STaniya Das 	[GCC_UFS_PHY_UNIPRO_CORE_CLK_SRC] =
241517269568STaniya Das 		&gcc_ufs_phy_unipro_core_clk_src.clkr,
241617269568STaniya Das 	[GCC_USB30_PRIM_MASTER_CLK] = &gcc_usb30_prim_master_clk.clkr,
241717269568STaniya Das 	[GCC_USB30_PRIM_MASTER_CLK_SRC] = &gcc_usb30_prim_master_clk_src.clkr,
241817269568STaniya Das 	[GCC_USB30_PRIM_MOCK_UTMI_CLK] = &gcc_usb30_prim_mock_utmi_clk.clkr,
241917269568STaniya Das 	[GCC_USB30_PRIM_MOCK_UTMI_CLK_SRC] =
242017269568STaniya Das 		&gcc_usb30_prim_mock_utmi_clk_src.clkr,
242117269568STaniya Das 	[GCC_USB30_PRIM_SLEEP_CLK] = &gcc_usb30_prim_sleep_clk.clkr,
242217269568STaniya Das 	[GCC_USB3_PRIM_CLKREF_CLK] = &gcc_usb3_prim_clkref_clk.clkr,
242317269568STaniya Das 	[GCC_USB3_PRIM_PHY_AUX_CLK] = &gcc_usb3_prim_phy_aux_clk.clkr,
242417269568STaniya Das 	[GCC_USB3_PRIM_PHY_AUX_CLK_SRC] = &gcc_usb3_prim_phy_aux_clk_src.clkr,
242517269568STaniya Das 	[GCC_USB3_PRIM_PHY_COM_AUX_CLK] = &gcc_usb3_prim_phy_com_aux_clk.clkr,
242617269568STaniya Das 	[GCC_USB3_PRIM_PHY_PIPE_CLK] = &gcc_usb3_prim_phy_pipe_clk.clkr,
242717269568STaniya Das 	[GCC_USB_PHY_CFG_AHB2PHY_CLK] = &gcc_usb_phy_cfg_ahb2phy_clk.clkr,
242817269568STaniya Das 	[GCC_VIDEO_AXI_CLK] = &gcc_video_axi_clk.clkr,
242917269568STaniya Das 	[GCC_VIDEO_GPLL0_DIV_CLK_SRC] = &gcc_video_gpll0_div_clk_src.clkr,
243017269568STaniya Das 	[GCC_VIDEO_THROTTLE_AXI_CLK] = &gcc_video_throttle_axi_clk.clkr,
243117269568STaniya Das 	[GCC_VIDEO_XO_CLK] = &gcc_video_xo_clk.clkr,
243217269568STaniya Das 	[GPLL0] = &gpll0.clkr,
243317269568STaniya Das 	[GPLL0_OUT_EVEN] = &gpll0_out_even.clkr,
243417269568STaniya Das 	[GPLL6] = &gpll6.clkr,
243517269568STaniya Das 	[GPLL7] = &gpll7.clkr,
243617269568STaniya Das 	[GPLL4] = &gpll4.clkr,
243717269568STaniya Das 	[GPLL1] = &gpll1.clkr,
2438253a0af5STaniya Das 	[GCC_MSS_CFG_AHB_CLK] = &gcc_mss_cfg_ahb_clk.clkr,
2439253a0af5STaniya Das 	[GCC_MSS_MFAB_AXIS_CLK] = &gcc_mss_mfab_axis_clk.clkr,
2440253a0af5STaniya Das 	[GCC_MSS_NAV_AXI_CLK] = &gcc_mss_nav_axi_clk.clkr,
2441253a0af5STaniya Das 	[GCC_MSS_Q6_MEMNOC_AXI_CLK] = &gcc_mss_q6_memnoc_axi_clk.clkr,
2442253a0af5STaniya Das 	[GCC_MSS_SNOC_AXI_CLK] = &gcc_mss_snoc_axi_clk.clkr,
2443bd4bb225STaniya Das 	[GCC_SEC_CTRL_CLK_SRC] = &gcc_sec_ctrl_clk_src.clkr,
244447110b6aSTaniya Das 	[GCC_LPASS_CFG_NOC_SWAY_CLK] = &gcc_lpass_cfg_noc_sway_clk.clkr,
244517269568STaniya Das };
244617269568STaniya Das 
244717269568STaniya Das static const struct qcom_reset_map gcc_sc7180_resets[] = {
244817269568STaniya Das 	[GCC_QUSB2PHY_PRIM_BCR] = { 0x26000 },
244917269568STaniya Das 	[GCC_QUSB2PHY_SEC_BCR] = { 0x26004 },
245017269568STaniya Das 	[GCC_UFS_PHY_BCR] = { 0x77000 },
245117269568STaniya Das 	[GCC_USB30_PRIM_BCR] = { 0xf000 },
245217269568STaniya Das 	[GCC_USB3_PHY_PRIM_BCR] = { 0x50000 },
245317269568STaniya Das 	[GCC_USB3PHY_PHY_PRIM_BCR] = { 0x50004 },
245417269568STaniya Das 	[GCC_USB3_PHY_SEC_BCR] = { 0x5000c },
245517269568STaniya Das 	[GCC_USB3_DP_PHY_PRIM_BCR] = { 0x50008 },
245617269568STaniya Das 	[GCC_USB3PHY_PHY_SEC_BCR] = { 0x50010 },
245717269568STaniya Das 	[GCC_USB3_DP_PHY_SEC_BCR] = { 0x50014 },
245817269568STaniya Das 	[GCC_USB_PHY_CFG_AHB2PHY_BCR] = { 0x6a000 },
245917269568STaniya Das };
246017269568STaniya Das 
246117269568STaniya Das static struct clk_rcg_dfs_data gcc_dfs_clocks[] = {
246217269568STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s0_clk_src),
246317269568STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s1_clk_src),
246417269568STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s2_clk_src),
246517269568STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s3_clk_src),
246617269568STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s4_clk_src),
246717269568STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s5_clk_src),
246817269568STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s0_clk_src),
246917269568STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s1_clk_src),
247017269568STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s2_clk_src),
247117269568STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s3_clk_src),
247217269568STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s4_clk_src),
247317269568STaniya Das 	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s5_clk_src),
247417269568STaniya Das };
247517269568STaniya Das 
247617269568STaniya Das static const struct regmap_config gcc_sc7180_regmap_config = {
247717269568STaniya Das 	.reg_bits = 32,
247817269568STaniya Das 	.reg_stride = 4,
247917269568STaniya Das 	.val_bits = 32,
248017269568STaniya Das 	.max_register = 0x18208c,
248117269568STaniya Das 	.fast_io = true,
248217269568STaniya Das };
248317269568STaniya Das 
248417269568STaniya Das static const struct qcom_cc_desc gcc_sc7180_desc = {
248517269568STaniya Das 	.config = &gcc_sc7180_regmap_config,
248617269568STaniya Das 	.clk_hws = gcc_sc7180_hws,
248717269568STaniya Das 	.num_clk_hws = ARRAY_SIZE(gcc_sc7180_hws),
248817269568STaniya Das 	.clks = gcc_sc7180_clocks,
248917269568STaniya Das 	.num_clks = ARRAY_SIZE(gcc_sc7180_clocks),
249017269568STaniya Das 	.resets = gcc_sc7180_resets,
249117269568STaniya Das 	.num_resets = ARRAY_SIZE(gcc_sc7180_resets),
249217269568STaniya Das 	.gdscs = gcc_sc7180_gdscs,
249317269568STaniya Das 	.num_gdscs = ARRAY_SIZE(gcc_sc7180_gdscs),
249417269568STaniya Das };
249517269568STaniya Das 
249617269568STaniya Das static const struct of_device_id gcc_sc7180_match_table[] = {
249717269568STaniya Das 	{ .compatible = "qcom,gcc-sc7180" },
249817269568STaniya Das 	{ }
249917269568STaniya Das };
250017269568STaniya Das MODULE_DEVICE_TABLE(of, gcc_sc7180_match_table);
250117269568STaniya Das 
250217269568STaniya Das static int gcc_sc7180_probe(struct platform_device *pdev)
250317269568STaniya Das {
250417269568STaniya Das 	struct regmap *regmap;
250517269568STaniya Das 	int ret;
250617269568STaniya Das 
250717269568STaniya Das 	regmap = qcom_cc_map(pdev, &gcc_sc7180_desc);
250817269568STaniya Das 	if (IS_ERR(regmap))
250917269568STaniya Das 		return PTR_ERR(regmap);
251017269568STaniya Das 
251117269568STaniya Das 	/*
251217269568STaniya Das 	 * Disable the GPLL0 active input to MM blocks, NPU
251317269568STaniya Das 	 * and GPU via MISC registers.
251417269568STaniya Das 	 */
251517269568STaniya Das 	regmap_update_bits(regmap, 0x09ffc, 0x3, 0x3);
251617269568STaniya Das 	regmap_update_bits(regmap, 0x4d110, 0x3, 0x3);
251717269568STaniya Das 	regmap_update_bits(regmap, 0x71028, 0x3, 0x3);
251817269568STaniya Das 
251917269568STaniya Das 	/*
252017269568STaniya Das 	 * Keep the clocks always-ON
252117269568STaniya Das 	 * GCC_CPUSS_GNOC_CLK, GCC_VIDEO_AHB_CLK, GCC_DISP_AHB_CLK
252217269568STaniya Das 	 * GCC_GPU_CFG_AHB_CLK
252317269568STaniya Das 	 */
252417269568STaniya Das 	regmap_update_bits(regmap, 0x48004, BIT(0), BIT(0));
252517269568STaniya Das 	regmap_update_bits(regmap, 0x0b004, BIT(0), BIT(0));
252617269568STaniya Das 	regmap_update_bits(regmap, 0x0b00c, BIT(0), BIT(0));
252717269568STaniya Das 	regmap_update_bits(regmap, 0x71004, BIT(0), BIT(0));
252817269568STaniya Das 
252917269568STaniya Das 	ret = qcom_cc_register_rcg_dfs(regmap, gcc_dfs_clocks,
253017269568STaniya Das 					ARRAY_SIZE(gcc_dfs_clocks));
253117269568STaniya Das 	if (ret)
253217269568STaniya Das 		return ret;
253317269568STaniya Das 
253417269568STaniya Das 	return qcom_cc_really_probe(pdev, &gcc_sc7180_desc, regmap);
253517269568STaniya Das }
253617269568STaniya Das 
253717269568STaniya Das static struct platform_driver gcc_sc7180_driver = {
253817269568STaniya Das 	.probe = gcc_sc7180_probe,
253917269568STaniya Das 	.driver = {
254017269568STaniya Das 		.name = "gcc-sc7180",
254117269568STaniya Das 		.of_match_table = gcc_sc7180_match_table,
254217269568STaniya Das 	},
254317269568STaniya Das };
254417269568STaniya Das 
254517269568STaniya Das static int __init gcc_sc7180_init(void)
254617269568STaniya Das {
254717269568STaniya Das 	return platform_driver_register(&gcc_sc7180_driver);
254817269568STaniya Das }
254917269568STaniya Das core_initcall(gcc_sc7180_init);
255017269568STaniya Das 
255117269568STaniya Das static void __exit gcc_sc7180_exit(void)
255217269568STaniya Das {
255317269568STaniya Das 	platform_driver_unregister(&gcc_sc7180_driver);
255417269568STaniya Das }
255517269568STaniya Das module_exit(gcc_sc7180_exit);
255617269568STaniya Das 
255717269568STaniya Das MODULE_DESCRIPTION("QTI GCC SC7180 Driver");
255817269568STaniya Das MODULE_LICENSE("GPL v2");
2559