162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright (c) 2018-2019, The Linux Foundation. All rights reserved.
462306a36Sopenharmony_ci * Copyright (c) 2023, Danila Tikhonov <danila@jiaxyga.com>
562306a36Sopenharmony_ci * Copyright (c) 2023, David Wronek <davidwronek@gmail.com>
662306a36Sopenharmony_ci */
762306a36Sopenharmony_ci
862306a36Sopenharmony_ci#include <linux/clk-provider.h>
962306a36Sopenharmony_ci#include <linux/err.h>
1062306a36Sopenharmony_ci#include <linux/kernel.h>
1162306a36Sopenharmony_ci#include <linux/mod_devicetable.h>
1262306a36Sopenharmony_ci#include <linux/module.h>
1362306a36Sopenharmony_ci#include <linux/platform_device.h>
1462306a36Sopenharmony_ci#include <linux/regmap.h>
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_ci#include <dt-bindings/clock/qcom,sm7150-gcc.h>
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ci#include "clk-alpha-pll.h"
1962306a36Sopenharmony_ci#include "clk-branch.h"
2062306a36Sopenharmony_ci#include "clk-rcg.h"
2162306a36Sopenharmony_ci#include "clk-regmap.h"
2262306a36Sopenharmony_ci#include "common.h"
2362306a36Sopenharmony_ci#include "gdsc.h"
2462306a36Sopenharmony_ci#include "reset.h"
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_cienum {
2762306a36Sopenharmony_ci	DT_BI_TCXO,
2862306a36Sopenharmony_ci	DT_BI_TCXO_AO,
2962306a36Sopenharmony_ci	DT_SLEEP_CLK
3062306a36Sopenharmony_ci};
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_cienum {
3362306a36Sopenharmony_ci	P_BI_TCXO,
3462306a36Sopenharmony_ci	P_GPLL0_OUT_EVEN,
3562306a36Sopenharmony_ci	P_GPLL0_OUT_MAIN,
3662306a36Sopenharmony_ci	P_GPLL6_OUT_MAIN,
3762306a36Sopenharmony_ci	P_GPLL7_OUT_MAIN,
3862306a36Sopenharmony_ci	P_SLEEP_CLK,
3962306a36Sopenharmony_ci};
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_cistatic struct clk_alpha_pll gpll0 = {
4262306a36Sopenharmony_ci	.offset = 0x0,
4362306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
4462306a36Sopenharmony_ci	.clkr = {
4562306a36Sopenharmony_ci		.enable_reg = 0x52000,
4662306a36Sopenharmony_ci		.enable_mask = BIT(0),
4762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
4862306a36Sopenharmony_ci			.name = "gpll0",
4962306a36Sopenharmony_ci			.parent_data = &(const struct clk_parent_data){
5062306a36Sopenharmony_ci				.index = DT_BI_TCXO,
5162306a36Sopenharmony_ci			},
5262306a36Sopenharmony_ci			.num_parents = 1,
5362306a36Sopenharmony_ci			.ops = &clk_alpha_pll_fixed_fabia_ops,
5462306a36Sopenharmony_ci		},
5562306a36Sopenharmony_ci	},
5662306a36Sopenharmony_ci};
5762306a36Sopenharmony_ci
5862306a36Sopenharmony_cistatic const struct clk_div_table post_div_table_fabia_even[] = {
5962306a36Sopenharmony_ci	{ 0x0, 1 },
6062306a36Sopenharmony_ci	{ 0x1, 2 },
6162306a36Sopenharmony_ci	{ 0x3, 4 },
6262306a36Sopenharmony_ci	{ 0x7, 8 },
6362306a36Sopenharmony_ci	{ }
6462306a36Sopenharmony_ci};
6562306a36Sopenharmony_ci
6662306a36Sopenharmony_cistatic struct clk_alpha_pll_postdiv gpll0_out_even = {
6762306a36Sopenharmony_ci	.offset = 0x0,
6862306a36Sopenharmony_ci	.post_div_shift = 8,
6962306a36Sopenharmony_ci	.post_div_table = post_div_table_fabia_even,
7062306a36Sopenharmony_ci	.num_post_div = ARRAY_SIZE(post_div_table_fabia_even),
7162306a36Sopenharmony_ci	.width = 4,
7262306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
7362306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
7462306a36Sopenharmony_ci		.name = "gpll0_out_even",
7562306a36Sopenharmony_ci		.parent_hws = (const struct clk_hw*[]){
7662306a36Sopenharmony_ci			&gpll0.clkr.hw,
7762306a36Sopenharmony_ci		},
7862306a36Sopenharmony_ci		.num_parents = 1,
7962306a36Sopenharmony_ci		.ops = &clk_alpha_pll_postdiv_fabia_ops,
8062306a36Sopenharmony_ci	},
8162306a36Sopenharmony_ci};
8262306a36Sopenharmony_ci
8362306a36Sopenharmony_cistatic struct clk_fixed_factor gcc_pll0_main_div_cdiv = {
8462306a36Sopenharmony_ci	.mult = 1,
8562306a36Sopenharmony_ci	.div = 2,
8662306a36Sopenharmony_ci	.hw.init = &(struct clk_init_data){
8762306a36Sopenharmony_ci		.name = "gcc_pll0_main_div_cdiv",
8862306a36Sopenharmony_ci		.parent_hws = (const struct clk_hw*[]){
8962306a36Sopenharmony_ci			&gpll0.clkr.hw,
9062306a36Sopenharmony_ci		},
9162306a36Sopenharmony_ci		.num_parents = 1,
9262306a36Sopenharmony_ci		.ops = &clk_fixed_factor_ops,
9362306a36Sopenharmony_ci	},
9462306a36Sopenharmony_ci};
9562306a36Sopenharmony_ci
9662306a36Sopenharmony_cistatic struct clk_alpha_pll gpll6 = {
9762306a36Sopenharmony_ci	.offset = 0x13000,
9862306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
9962306a36Sopenharmony_ci	.clkr = {
10062306a36Sopenharmony_ci		.enable_reg = 0x52000,
10162306a36Sopenharmony_ci		.enable_mask = BIT(6),
10262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
10362306a36Sopenharmony_ci			.name = "gpll6",
10462306a36Sopenharmony_ci			.parent_data = &(const struct clk_parent_data){
10562306a36Sopenharmony_ci				.index = DT_BI_TCXO,
10662306a36Sopenharmony_ci			},
10762306a36Sopenharmony_ci			.num_parents = 1,
10862306a36Sopenharmony_ci			.ops = &clk_alpha_pll_fixed_fabia_ops,
10962306a36Sopenharmony_ci		},
11062306a36Sopenharmony_ci	},
11162306a36Sopenharmony_ci};
11262306a36Sopenharmony_ci
11362306a36Sopenharmony_cistatic struct clk_alpha_pll gpll7 = {
11462306a36Sopenharmony_ci	.offset = 0x27000,
11562306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
11662306a36Sopenharmony_ci	.clkr = {
11762306a36Sopenharmony_ci		.enable_reg = 0x52000,
11862306a36Sopenharmony_ci		.enable_mask = BIT(7),
11962306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
12062306a36Sopenharmony_ci			.name = "gpll7",
12162306a36Sopenharmony_ci			.parent_data = &(const struct clk_parent_data){
12262306a36Sopenharmony_ci				.index = DT_BI_TCXO,
12362306a36Sopenharmony_ci			},
12462306a36Sopenharmony_ci			.num_parents = 1,
12562306a36Sopenharmony_ci			.ops = &clk_alpha_pll_fixed_fabia_ops,
12662306a36Sopenharmony_ci		},
12762306a36Sopenharmony_ci	},
12862306a36Sopenharmony_ci};
12962306a36Sopenharmony_ci
13062306a36Sopenharmony_cistatic const struct parent_map gcc_parent_map_0[] = {
13162306a36Sopenharmony_ci	{ P_BI_TCXO, 0 },
13262306a36Sopenharmony_ci	{ P_GPLL0_OUT_MAIN, 1 },
13362306a36Sopenharmony_ci	{ P_GPLL0_OUT_EVEN, 6 },
13462306a36Sopenharmony_ci};
13562306a36Sopenharmony_ci
13662306a36Sopenharmony_cistatic const struct clk_parent_data gcc_parent_data_0[] = {
13762306a36Sopenharmony_ci	{ .index = DT_BI_TCXO },
13862306a36Sopenharmony_ci	{ .hw = &gpll0.clkr.hw },
13962306a36Sopenharmony_ci	{ .hw = &gpll0_out_even.clkr.hw },
14062306a36Sopenharmony_ci};
14162306a36Sopenharmony_cistatic const struct clk_parent_data gcc_parent_data_0_ao[] = {
14262306a36Sopenharmony_ci	{ .index = DT_BI_TCXO_AO },
14362306a36Sopenharmony_ci	{ .hw = &gpll0.clkr.hw },
14462306a36Sopenharmony_ci	{ .hw = &gpll0_out_even.clkr.hw },
14562306a36Sopenharmony_ci};
14662306a36Sopenharmony_ci
14762306a36Sopenharmony_cistatic const struct parent_map gcc_parent_map_1[] = {
14862306a36Sopenharmony_ci	{ P_BI_TCXO, 0 },
14962306a36Sopenharmony_ci	{ P_GPLL0_OUT_MAIN, 1 },
15062306a36Sopenharmony_ci	{ P_SLEEP_CLK, 5 },
15162306a36Sopenharmony_ci	{ P_GPLL0_OUT_EVEN, 6 },
15262306a36Sopenharmony_ci};
15362306a36Sopenharmony_ci
15462306a36Sopenharmony_cistatic const struct clk_parent_data gcc_parent_data_1[] = {
15562306a36Sopenharmony_ci	{ .index = DT_BI_TCXO },
15662306a36Sopenharmony_ci	{ .hw = &gpll0.clkr.hw },
15762306a36Sopenharmony_ci	{ .index = DT_SLEEP_CLK },
15862306a36Sopenharmony_ci	{ .hw = &gpll0_out_even.clkr.hw },
15962306a36Sopenharmony_ci};
16062306a36Sopenharmony_ci
16162306a36Sopenharmony_cistatic const struct parent_map gcc_parent_map_2[] = {
16262306a36Sopenharmony_ci	{ P_BI_TCXO, 0 },
16362306a36Sopenharmony_ci	{ P_GPLL0_OUT_MAIN, 1 },
16462306a36Sopenharmony_ci};
16562306a36Sopenharmony_ci
16662306a36Sopenharmony_cistatic const struct clk_parent_data gcc_parent_data_2[] = {
16762306a36Sopenharmony_ci	{ .index = DT_BI_TCXO },
16862306a36Sopenharmony_ci	{ .hw = &gpll0.clkr.hw },
16962306a36Sopenharmony_ci};
17062306a36Sopenharmony_ci
17162306a36Sopenharmony_cistatic const struct clk_parent_data gcc_parent_data_2_ao[] = {
17262306a36Sopenharmony_ci	{ .index = DT_BI_TCXO_AO },
17362306a36Sopenharmony_ci	{ .hw = &gpll0.clkr.hw },
17462306a36Sopenharmony_ci};
17562306a36Sopenharmony_ci
17662306a36Sopenharmony_cistatic const struct parent_map gcc_parent_map_3[] = {
17762306a36Sopenharmony_ci	{ P_BI_TCXO, 0 },
17862306a36Sopenharmony_ci	{ P_SLEEP_CLK, 5 },
17962306a36Sopenharmony_ci};
18062306a36Sopenharmony_ci
18162306a36Sopenharmony_cistatic const struct clk_parent_data gcc_parent_data_3[] = {
18262306a36Sopenharmony_ci	{ .index = DT_BI_TCXO },
18362306a36Sopenharmony_ci	{ .index = DT_SLEEP_CLK },
18462306a36Sopenharmony_ci};
18562306a36Sopenharmony_ci
18662306a36Sopenharmony_cistatic const struct parent_map gcc_parent_map_4[] = {
18762306a36Sopenharmony_ci	{ P_BI_TCXO, 0 },
18862306a36Sopenharmony_ci};
18962306a36Sopenharmony_ci
19062306a36Sopenharmony_cistatic const struct clk_parent_data gcc_parent_data_4[] = {
19162306a36Sopenharmony_ci	{ .index = DT_BI_TCXO },
19262306a36Sopenharmony_ci};
19362306a36Sopenharmony_ci
19462306a36Sopenharmony_cistatic const struct parent_map gcc_parent_map_5[] = {
19562306a36Sopenharmony_ci	{ P_BI_TCXO, 0 },
19662306a36Sopenharmony_ci	{ P_GPLL0_OUT_MAIN, 1 },
19762306a36Sopenharmony_ci	{ P_GPLL6_OUT_MAIN, 2 },
19862306a36Sopenharmony_ci	{ P_GPLL0_OUT_EVEN, 6 },
19962306a36Sopenharmony_ci};
20062306a36Sopenharmony_ci
20162306a36Sopenharmony_cistatic const struct clk_parent_data gcc_parent_data_5[] = {
20262306a36Sopenharmony_ci	{ .index = DT_BI_TCXO },
20362306a36Sopenharmony_ci	{ .hw = &gpll0.clkr.hw },
20462306a36Sopenharmony_ci	{ .hw = &gpll6.clkr.hw },
20562306a36Sopenharmony_ci	{ .hw = &gpll0_out_even.clkr.hw },
20662306a36Sopenharmony_ci};
20762306a36Sopenharmony_ci
20862306a36Sopenharmony_cistatic const struct parent_map gcc_parent_map_6[] = {
20962306a36Sopenharmony_ci	{ P_BI_TCXO, 0 },
21062306a36Sopenharmony_ci	{ P_GPLL0_OUT_MAIN, 1 },
21162306a36Sopenharmony_ci	{ P_GPLL7_OUT_MAIN, 3 },
21262306a36Sopenharmony_ci	{ P_GPLL0_OUT_EVEN, 6 },
21362306a36Sopenharmony_ci};
21462306a36Sopenharmony_ci
21562306a36Sopenharmony_cistatic const struct clk_parent_data gcc_parent_data_6[] = {
21662306a36Sopenharmony_ci	{ .index = DT_BI_TCXO },
21762306a36Sopenharmony_ci	{ .hw = &gpll0.clkr.hw },
21862306a36Sopenharmony_ci	{ .hw = &gpll7.clkr.hw },
21962306a36Sopenharmony_ci	{ .hw = &gpll0_out_even.clkr.hw },
22062306a36Sopenharmony_ci};
22162306a36Sopenharmony_ci
22262306a36Sopenharmony_cistatic const struct parent_map gcc_parent_map_7[] = {
22362306a36Sopenharmony_ci	{ P_BI_TCXO, 0 },
22462306a36Sopenharmony_ci	{ P_GPLL0_OUT_MAIN, 1 },
22562306a36Sopenharmony_ci	{ P_GPLL0_OUT_EVEN, 6 },
22662306a36Sopenharmony_ci};
22762306a36Sopenharmony_ci
22862306a36Sopenharmony_cistatic const struct clk_parent_data gcc_parent_data_7[] = {
22962306a36Sopenharmony_ci	{ .index = DT_BI_TCXO },
23062306a36Sopenharmony_ci	{ .hw = &gpll0.clkr.hw },
23162306a36Sopenharmony_ci	{ .hw = &gpll0_out_even.clkr.hw },
23262306a36Sopenharmony_ci};
23362306a36Sopenharmony_ci
23462306a36Sopenharmony_cistatic const struct parent_map gcc_parent_map_8[] = {
23562306a36Sopenharmony_ci	{ P_BI_TCXO, 0 },
23662306a36Sopenharmony_ci	{ P_GPLL0_OUT_MAIN, 1 },
23762306a36Sopenharmony_ci};
23862306a36Sopenharmony_ci
23962306a36Sopenharmony_cistatic const struct clk_parent_data gcc_parent_data_8[] = {
24062306a36Sopenharmony_ci	{ .index = DT_BI_TCXO },
24162306a36Sopenharmony_ci	{ .hw = &gpll0.clkr.hw },
24262306a36Sopenharmony_ci};
24362306a36Sopenharmony_ci
24462306a36Sopenharmony_cistatic const struct freq_tbl ftbl_gcc_cpuss_ahb_clk_src[] = {
24562306a36Sopenharmony_ci	F(19200000, P_BI_TCXO, 1, 0, 0),
24662306a36Sopenharmony_ci	{ }
24762306a36Sopenharmony_ci};
24862306a36Sopenharmony_ci
24962306a36Sopenharmony_cistatic struct clk_rcg2 gcc_cpuss_ahb_clk_src = {
25062306a36Sopenharmony_ci	.cmd_rcgr = 0x48014,
25162306a36Sopenharmony_ci	.mnd_width = 0,
25262306a36Sopenharmony_ci	.hid_width = 5,
25362306a36Sopenharmony_ci	.parent_map = gcc_parent_map_0,
25462306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_cpuss_ahb_clk_src,
25562306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
25662306a36Sopenharmony_ci		.name = "gcc_cpuss_ahb_clk_src",
25762306a36Sopenharmony_ci		.parent_data = gcc_parent_data_0_ao,
25862306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_0_ao),
25962306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
26062306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
26162306a36Sopenharmony_ci	},
26262306a36Sopenharmony_ci};
26362306a36Sopenharmony_ci
26462306a36Sopenharmony_cistatic const struct freq_tbl ftbl_gcc_cpuss_rbcpr_clk_src[] = {
26562306a36Sopenharmony_ci	F(19200000, P_BI_TCXO, 1, 0, 0),
26662306a36Sopenharmony_ci	{ }
26762306a36Sopenharmony_ci};
26862306a36Sopenharmony_ci
26962306a36Sopenharmony_cistatic struct clk_rcg2 gcc_cpuss_rbcpr_clk_src = {
27062306a36Sopenharmony_ci	.cmd_rcgr = 0x4815c,
27162306a36Sopenharmony_ci	.mnd_width = 0,
27262306a36Sopenharmony_ci	.hid_width = 5,
27362306a36Sopenharmony_ci	.parent_map = gcc_parent_map_2,
27462306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_cpuss_rbcpr_clk_src,
27562306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
27662306a36Sopenharmony_ci		.name = "gcc_cpuss_rbcpr_clk_src",
27762306a36Sopenharmony_ci		.parent_data = gcc_parent_data_2_ao,
27862306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_2_ao),
27962306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
28062306a36Sopenharmony_ci	},
28162306a36Sopenharmony_ci};
28262306a36Sopenharmony_ci
28362306a36Sopenharmony_cistatic const struct freq_tbl ftbl_gcc_gp1_clk_src[] = {
28462306a36Sopenharmony_ci	F(19200000, P_BI_TCXO, 1, 0, 0),
28562306a36Sopenharmony_ci	F(25000000, P_GPLL0_OUT_EVEN, 12, 0, 0),
28662306a36Sopenharmony_ci	F(50000000, P_GPLL0_OUT_EVEN, 6, 0, 0),
28762306a36Sopenharmony_ci	F(100000000, P_GPLL0_OUT_MAIN, 6, 0, 0),
28862306a36Sopenharmony_ci	F(200000000, P_GPLL0_OUT_MAIN, 3, 0, 0),
28962306a36Sopenharmony_ci	{ }
29062306a36Sopenharmony_ci};
29162306a36Sopenharmony_ci
29262306a36Sopenharmony_cistatic struct clk_rcg2 gcc_gp1_clk_src = {
29362306a36Sopenharmony_ci	.cmd_rcgr = 0x64004,
29462306a36Sopenharmony_ci	.mnd_width = 8,
29562306a36Sopenharmony_ci	.hid_width = 5,
29662306a36Sopenharmony_ci	.parent_map = gcc_parent_map_1,
29762306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_gp1_clk_src,
29862306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
29962306a36Sopenharmony_ci		.name = "gcc_gp1_clk_src",
30062306a36Sopenharmony_ci		.parent_data = gcc_parent_data_1,
30162306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_1),
30262306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
30362306a36Sopenharmony_ci	},
30462306a36Sopenharmony_ci};
30562306a36Sopenharmony_ci
30662306a36Sopenharmony_cistatic struct clk_rcg2 gcc_gp2_clk_src = {
30762306a36Sopenharmony_ci	.cmd_rcgr = 0x65004,
30862306a36Sopenharmony_ci	.mnd_width = 8,
30962306a36Sopenharmony_ci	.hid_width = 5,
31062306a36Sopenharmony_ci	.parent_map = gcc_parent_map_1,
31162306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_gp1_clk_src,
31262306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
31362306a36Sopenharmony_ci		.name = "gcc_gp2_clk_src",
31462306a36Sopenharmony_ci		.parent_data = gcc_parent_data_1,
31562306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_1),
31662306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
31762306a36Sopenharmony_ci	},
31862306a36Sopenharmony_ci};
31962306a36Sopenharmony_ci
32062306a36Sopenharmony_cistatic struct clk_rcg2 gcc_gp3_clk_src = {
32162306a36Sopenharmony_ci	.cmd_rcgr = 0x66004,
32262306a36Sopenharmony_ci	.mnd_width = 8,
32362306a36Sopenharmony_ci	.hid_width = 5,
32462306a36Sopenharmony_ci	.parent_map = gcc_parent_map_1,
32562306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_gp1_clk_src,
32662306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
32762306a36Sopenharmony_ci		.name = "gcc_gp3_clk_src",
32862306a36Sopenharmony_ci		.parent_data = gcc_parent_data_1,
32962306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_1),
33062306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
33162306a36Sopenharmony_ci	},
33262306a36Sopenharmony_ci};
33362306a36Sopenharmony_ci
33462306a36Sopenharmony_cistatic const struct freq_tbl ftbl_gcc_pcie_0_aux_clk_src[] = {
33562306a36Sopenharmony_ci	F(9600000, P_BI_TCXO, 2, 0, 0),
33662306a36Sopenharmony_ci	F(19200000, P_BI_TCXO, 1, 0, 0),
33762306a36Sopenharmony_ci	{ }
33862306a36Sopenharmony_ci};
33962306a36Sopenharmony_ci
34062306a36Sopenharmony_cistatic struct clk_rcg2 gcc_pcie_0_aux_clk_src = {
34162306a36Sopenharmony_ci	.cmd_rcgr = 0x6b028,
34262306a36Sopenharmony_ci	.mnd_width = 16,
34362306a36Sopenharmony_ci	.hid_width = 5,
34462306a36Sopenharmony_ci	.parent_map = gcc_parent_map_3,
34562306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
34662306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
34762306a36Sopenharmony_ci		.name = "gcc_pcie_0_aux_clk_src",
34862306a36Sopenharmony_ci		.parent_data = gcc_parent_data_3,
34962306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_3),
35062306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
35162306a36Sopenharmony_ci	},
35262306a36Sopenharmony_ci};
35362306a36Sopenharmony_ci
35462306a36Sopenharmony_cistatic const struct freq_tbl ftbl_gcc_pcie_phy_refgen_clk_src[] = {
35562306a36Sopenharmony_ci	F(19200000, P_BI_TCXO, 1, 0, 0),
35662306a36Sopenharmony_ci	F(100000000, P_GPLL0_OUT_MAIN, 6, 0, 0),
35762306a36Sopenharmony_ci	{ }
35862306a36Sopenharmony_ci};
35962306a36Sopenharmony_ci
36062306a36Sopenharmony_cistatic struct clk_rcg2 gcc_pcie_phy_refgen_clk_src = {
36162306a36Sopenharmony_ci	.cmd_rcgr = 0x6f014,
36262306a36Sopenharmony_ci	.mnd_width = 0,
36362306a36Sopenharmony_ci	.hid_width = 5,
36462306a36Sopenharmony_ci	.parent_map = gcc_parent_map_0,
36562306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_pcie_phy_refgen_clk_src,
36662306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
36762306a36Sopenharmony_ci		.name = "gcc_pcie_phy_refgen_clk_src",
36862306a36Sopenharmony_ci		.parent_data = gcc_parent_data_0,
36962306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
37062306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
37162306a36Sopenharmony_ci	},
37262306a36Sopenharmony_ci};
37362306a36Sopenharmony_ci
37462306a36Sopenharmony_cistatic const struct freq_tbl ftbl_gcc_pdm2_clk_src[] = {
37562306a36Sopenharmony_ci	F(19200000, P_BI_TCXO, 1, 0, 0),
37662306a36Sopenharmony_ci	F(60000000, P_GPLL0_OUT_MAIN, 10, 0, 0),
37762306a36Sopenharmony_ci	{ }
37862306a36Sopenharmony_ci};
37962306a36Sopenharmony_ci
38062306a36Sopenharmony_cistatic struct clk_rcg2 gcc_pdm2_clk_src = {
38162306a36Sopenharmony_ci	.cmd_rcgr = 0x33010,
38262306a36Sopenharmony_ci	.mnd_width = 0,
38362306a36Sopenharmony_ci	.hid_width = 5,
38462306a36Sopenharmony_ci	.parent_map = gcc_parent_map_0,
38562306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_pdm2_clk_src,
38662306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
38762306a36Sopenharmony_ci		.name = "gcc_pdm2_clk_src",
38862306a36Sopenharmony_ci		.parent_data = gcc_parent_data_0,
38962306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
39062306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
39162306a36Sopenharmony_ci	},
39262306a36Sopenharmony_ci};
39362306a36Sopenharmony_ci
39462306a36Sopenharmony_cistatic const struct freq_tbl ftbl_gcc_qupv3_wrap0_s0_clk_src[] = {
39562306a36Sopenharmony_ci	F(7372800, P_GPLL0_OUT_EVEN, 1, 384, 15625),
39662306a36Sopenharmony_ci	F(14745600, P_GPLL0_OUT_EVEN, 1, 768, 15625),
39762306a36Sopenharmony_ci	F(19200000, P_BI_TCXO, 1, 0, 0),
39862306a36Sopenharmony_ci	F(29491200, P_GPLL0_OUT_EVEN, 1, 1536, 15625),
39962306a36Sopenharmony_ci	F(32000000, P_GPLL0_OUT_EVEN, 1, 8, 75),
40062306a36Sopenharmony_ci	F(48000000, P_GPLL0_OUT_EVEN, 1, 4, 25),
40162306a36Sopenharmony_ci	F(64000000, P_GPLL0_OUT_EVEN, 1, 16, 75),
40262306a36Sopenharmony_ci	F(80000000, P_GPLL0_OUT_EVEN, 1, 4, 15),
40362306a36Sopenharmony_ci	F(96000000, P_GPLL0_OUT_EVEN, 1, 8, 25),
40462306a36Sopenharmony_ci	F(100000000, P_GPLL0_OUT_EVEN, 3, 0, 0),
40562306a36Sopenharmony_ci	F(102400000, P_GPLL0_OUT_EVEN, 1, 128, 375),
40662306a36Sopenharmony_ci	F(112000000, P_GPLL0_OUT_EVEN, 1, 28, 75),
40762306a36Sopenharmony_ci	F(117964800, P_GPLL0_OUT_EVEN, 1, 6144, 15625),
40862306a36Sopenharmony_ci	F(120000000, P_GPLL0_OUT_EVEN, 2.5, 0, 0),
40962306a36Sopenharmony_ci	F(128000000, P_GPLL0_OUT_MAIN, 1, 16, 75),
41062306a36Sopenharmony_ci	{ }
41162306a36Sopenharmony_ci};
41262306a36Sopenharmony_ci
41362306a36Sopenharmony_cistatic struct clk_init_data gcc_qupv3_wrap0_s0_clk_src_init = {
41462306a36Sopenharmony_ci	.name = "gcc_qupv3_wrap0_s0_clk_src",
41562306a36Sopenharmony_ci	.parent_data = gcc_parent_data_0,
41662306a36Sopenharmony_ci	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
41762306a36Sopenharmony_ci	.ops = &clk_rcg2_ops,
41862306a36Sopenharmony_ci};
41962306a36Sopenharmony_ci
42062306a36Sopenharmony_cistatic struct clk_rcg2 gcc_qupv3_wrap0_s0_clk_src = {
42162306a36Sopenharmony_ci	.cmd_rcgr = 0x17034,
42262306a36Sopenharmony_ci	.mnd_width = 16,
42362306a36Sopenharmony_ci	.hid_width = 5,
42462306a36Sopenharmony_ci	.parent_map = gcc_parent_map_0,
42562306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
42662306a36Sopenharmony_ci	.clkr.hw.init = &gcc_qupv3_wrap0_s0_clk_src_init,
42762306a36Sopenharmony_ci};
42862306a36Sopenharmony_ci
42962306a36Sopenharmony_cistatic struct clk_init_data gcc_qupv3_wrap0_s1_clk_src_init = {
43062306a36Sopenharmony_ci	.name = "gcc_qupv3_wrap0_s1_clk_src",
43162306a36Sopenharmony_ci	.parent_data = gcc_parent_data_0,
43262306a36Sopenharmony_ci	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
43362306a36Sopenharmony_ci	.ops = &clk_rcg2_ops,
43462306a36Sopenharmony_ci};
43562306a36Sopenharmony_ci
43662306a36Sopenharmony_cistatic struct clk_rcg2 gcc_qupv3_wrap0_s1_clk_src = {
43762306a36Sopenharmony_ci	.cmd_rcgr = 0x17164,
43862306a36Sopenharmony_ci	.mnd_width = 16,
43962306a36Sopenharmony_ci	.hid_width = 5,
44062306a36Sopenharmony_ci	.parent_map = gcc_parent_map_0,
44162306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
44262306a36Sopenharmony_ci	.clkr.hw.init = &gcc_qupv3_wrap0_s1_clk_src_init,
44362306a36Sopenharmony_ci};
44462306a36Sopenharmony_ci
44562306a36Sopenharmony_cistatic struct clk_init_data gcc_qupv3_wrap0_s2_clk_src_init = {
44662306a36Sopenharmony_ci	.name = "gcc_qupv3_wrap0_s2_clk_src",
44762306a36Sopenharmony_ci	.parent_data = gcc_parent_data_0,
44862306a36Sopenharmony_ci	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
44962306a36Sopenharmony_ci	.ops = &clk_rcg2_ops,
45062306a36Sopenharmony_ci};
45162306a36Sopenharmony_ci
45262306a36Sopenharmony_cistatic struct clk_rcg2 gcc_qupv3_wrap0_s2_clk_src = {
45362306a36Sopenharmony_ci	.cmd_rcgr = 0x17294,
45462306a36Sopenharmony_ci	.mnd_width = 16,
45562306a36Sopenharmony_ci	.hid_width = 5,
45662306a36Sopenharmony_ci	.parent_map = gcc_parent_map_0,
45762306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
45862306a36Sopenharmony_ci	.clkr.hw.init = &gcc_qupv3_wrap0_s2_clk_src_init,
45962306a36Sopenharmony_ci};
46062306a36Sopenharmony_ci
46162306a36Sopenharmony_cistatic struct clk_init_data gcc_qupv3_wrap0_s3_clk_src_init = {
46262306a36Sopenharmony_ci	.name = "gcc_qupv3_wrap0_s3_clk_src",
46362306a36Sopenharmony_ci	.parent_data = gcc_parent_data_0,
46462306a36Sopenharmony_ci	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
46562306a36Sopenharmony_ci	.ops = &clk_rcg2_ops,
46662306a36Sopenharmony_ci};
46762306a36Sopenharmony_ci
46862306a36Sopenharmony_cistatic struct clk_rcg2 gcc_qupv3_wrap0_s3_clk_src = {
46962306a36Sopenharmony_ci	.cmd_rcgr = 0x173c4,
47062306a36Sopenharmony_ci	.mnd_width = 16,
47162306a36Sopenharmony_ci	.hid_width = 5,
47262306a36Sopenharmony_ci	.parent_map = gcc_parent_map_0,
47362306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
47462306a36Sopenharmony_ci	.clkr.hw.init = &gcc_qupv3_wrap0_s3_clk_src_init,
47562306a36Sopenharmony_ci};
47662306a36Sopenharmony_ci
47762306a36Sopenharmony_cistatic struct clk_init_data gcc_qupv3_wrap0_s4_clk_src_init = {
47862306a36Sopenharmony_ci	.name = "gcc_qupv3_wrap0_s4_clk_src",
47962306a36Sopenharmony_ci	.parent_data = gcc_parent_data_0,
48062306a36Sopenharmony_ci	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
48162306a36Sopenharmony_ci	.ops = &clk_rcg2_ops,
48262306a36Sopenharmony_ci};
48362306a36Sopenharmony_ci
48462306a36Sopenharmony_cistatic struct clk_rcg2 gcc_qupv3_wrap0_s4_clk_src = {
48562306a36Sopenharmony_ci	.cmd_rcgr = 0x174f4,
48662306a36Sopenharmony_ci	.mnd_width = 16,
48762306a36Sopenharmony_ci	.hid_width = 5,
48862306a36Sopenharmony_ci	.parent_map = gcc_parent_map_0,
48962306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
49062306a36Sopenharmony_ci	.clkr.hw.init = &gcc_qupv3_wrap0_s4_clk_src_init,
49162306a36Sopenharmony_ci};
49262306a36Sopenharmony_ci
49362306a36Sopenharmony_cistatic struct clk_init_data gcc_qupv3_wrap0_s5_clk_src_init = {
49462306a36Sopenharmony_ci	.name = "gcc_qupv3_wrap0_s5_clk_src",
49562306a36Sopenharmony_ci	.parent_data = gcc_parent_data_0,
49662306a36Sopenharmony_ci	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
49762306a36Sopenharmony_ci	.ops = &clk_rcg2_ops,
49862306a36Sopenharmony_ci};
49962306a36Sopenharmony_ci
50062306a36Sopenharmony_cistatic struct clk_rcg2 gcc_qupv3_wrap0_s5_clk_src = {
50162306a36Sopenharmony_ci	.cmd_rcgr = 0x17624,
50262306a36Sopenharmony_ci	.mnd_width = 16,
50362306a36Sopenharmony_ci	.hid_width = 5,
50462306a36Sopenharmony_ci	.parent_map = gcc_parent_map_0,
50562306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
50662306a36Sopenharmony_ci	.clkr.hw.init = &gcc_qupv3_wrap0_s5_clk_src_init,
50762306a36Sopenharmony_ci};
50862306a36Sopenharmony_ci
50962306a36Sopenharmony_cistatic struct clk_init_data gcc_qupv3_wrap0_s6_clk_src_init = {
51062306a36Sopenharmony_ci	.name = "gcc_qupv3_wrap0_s6_clk_src",
51162306a36Sopenharmony_ci	.parent_data = gcc_parent_data_0,
51262306a36Sopenharmony_ci	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
51362306a36Sopenharmony_ci	.flags = CLK_SET_RATE_PARENT,
51462306a36Sopenharmony_ci	.ops = &clk_rcg2_ops,
51562306a36Sopenharmony_ci};
51662306a36Sopenharmony_ci
51762306a36Sopenharmony_cistatic struct clk_rcg2 gcc_qupv3_wrap0_s6_clk_src = {
51862306a36Sopenharmony_ci	.cmd_rcgr = 0x17754,
51962306a36Sopenharmony_ci	.mnd_width = 16,
52062306a36Sopenharmony_ci	.hid_width = 5,
52162306a36Sopenharmony_ci	.parent_map = gcc_parent_map_0,
52262306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
52362306a36Sopenharmony_ci	.clkr.hw.init = &gcc_qupv3_wrap0_s6_clk_src_init,
52462306a36Sopenharmony_ci};
52562306a36Sopenharmony_ci
52662306a36Sopenharmony_cistatic struct clk_init_data gcc_qupv3_wrap0_s7_clk_src_init = {
52762306a36Sopenharmony_ci	.name = "gcc_qupv3_wrap0_s7_clk_src",
52862306a36Sopenharmony_ci	.parent_data = gcc_parent_data_0,
52962306a36Sopenharmony_ci	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
53062306a36Sopenharmony_ci	.flags = CLK_SET_RATE_PARENT,
53162306a36Sopenharmony_ci	.ops = &clk_rcg2_ops,
53262306a36Sopenharmony_ci};
53362306a36Sopenharmony_ci
53462306a36Sopenharmony_cistatic struct clk_rcg2 gcc_qupv3_wrap0_s7_clk_src = {
53562306a36Sopenharmony_ci	.cmd_rcgr = 0x17884,
53662306a36Sopenharmony_ci	.mnd_width = 16,
53762306a36Sopenharmony_ci	.hid_width = 5,
53862306a36Sopenharmony_ci	.parent_map = gcc_parent_map_0,
53962306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
54062306a36Sopenharmony_ci	.clkr.hw.init = &gcc_qupv3_wrap0_s7_clk_src_init,
54162306a36Sopenharmony_ci};
54262306a36Sopenharmony_ci
54362306a36Sopenharmony_cistatic struct clk_init_data gcc_qupv3_wrap1_s0_clk_src_init = {
54462306a36Sopenharmony_ci	.name = "gcc_qupv3_wrap1_s0_clk_src",
54562306a36Sopenharmony_ci	.parent_data = gcc_parent_data_0,
54662306a36Sopenharmony_ci	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
54762306a36Sopenharmony_ci	.ops = &clk_rcg2_ops,
54862306a36Sopenharmony_ci};
54962306a36Sopenharmony_ci
55062306a36Sopenharmony_cistatic struct clk_rcg2 gcc_qupv3_wrap1_s0_clk_src = {
55162306a36Sopenharmony_ci	.cmd_rcgr = 0x18018,
55262306a36Sopenharmony_ci	.mnd_width = 16,
55362306a36Sopenharmony_ci	.hid_width = 5,
55462306a36Sopenharmony_ci	.parent_map = gcc_parent_map_0,
55562306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
55662306a36Sopenharmony_ci	.clkr.hw.init = &gcc_qupv3_wrap1_s0_clk_src_init,
55762306a36Sopenharmony_ci};
55862306a36Sopenharmony_ci
55962306a36Sopenharmony_cistatic struct clk_init_data gcc_qupv3_wrap1_s1_clk_src_init = {
56062306a36Sopenharmony_ci	.name = "gcc_qupv3_wrap1_s1_clk_src",
56162306a36Sopenharmony_ci	.parent_data = gcc_parent_data_0,
56262306a36Sopenharmony_ci	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
56362306a36Sopenharmony_ci	.ops = &clk_rcg2_ops,
56462306a36Sopenharmony_ci};
56562306a36Sopenharmony_ci
56662306a36Sopenharmony_cistatic struct clk_rcg2 gcc_qupv3_wrap1_s1_clk_src = {
56762306a36Sopenharmony_ci	.cmd_rcgr = 0x18148,
56862306a36Sopenharmony_ci	.mnd_width = 16,
56962306a36Sopenharmony_ci	.hid_width = 5,
57062306a36Sopenharmony_ci	.parent_map = gcc_parent_map_0,
57162306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
57262306a36Sopenharmony_ci	.clkr.hw.init = &gcc_qupv3_wrap1_s1_clk_src_init,
57362306a36Sopenharmony_ci};
57462306a36Sopenharmony_ci
57562306a36Sopenharmony_cistatic struct clk_init_data gcc_qupv3_wrap1_s2_clk_src_init = {
57662306a36Sopenharmony_ci	.name = "gcc_qupv3_wrap1_s2_clk_src",
57762306a36Sopenharmony_ci	.parent_data = gcc_parent_data_0,
57862306a36Sopenharmony_ci	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
57962306a36Sopenharmony_ci	.ops = &clk_rcg2_ops,
58062306a36Sopenharmony_ci};
58162306a36Sopenharmony_ci
58262306a36Sopenharmony_cistatic struct clk_rcg2 gcc_qupv3_wrap1_s2_clk_src = {
58362306a36Sopenharmony_ci	.cmd_rcgr = 0x18278,
58462306a36Sopenharmony_ci	.mnd_width = 16,
58562306a36Sopenharmony_ci	.hid_width = 5,
58662306a36Sopenharmony_ci	.parent_map = gcc_parent_map_0,
58762306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
58862306a36Sopenharmony_ci	.clkr.hw.init = &gcc_qupv3_wrap1_s2_clk_src_init,
58962306a36Sopenharmony_ci};
59062306a36Sopenharmony_ci
59162306a36Sopenharmony_cistatic struct clk_init_data gcc_qupv3_wrap1_s3_clk_src_init = {
59262306a36Sopenharmony_ci	.name = "gcc_qupv3_wrap1_s3_clk_src",
59362306a36Sopenharmony_ci	.parent_data = gcc_parent_data_0,
59462306a36Sopenharmony_ci	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
59562306a36Sopenharmony_ci	.ops = &clk_rcg2_ops,
59662306a36Sopenharmony_ci};
59762306a36Sopenharmony_ci
59862306a36Sopenharmony_cistatic struct clk_rcg2 gcc_qupv3_wrap1_s3_clk_src = {
59962306a36Sopenharmony_ci	.cmd_rcgr = 0x183a8,
60062306a36Sopenharmony_ci	.mnd_width = 16,
60162306a36Sopenharmony_ci	.hid_width = 5,
60262306a36Sopenharmony_ci	.parent_map = gcc_parent_map_0,
60362306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
60462306a36Sopenharmony_ci	.clkr.hw.init = &gcc_qupv3_wrap1_s3_clk_src_init,
60562306a36Sopenharmony_ci};
60662306a36Sopenharmony_ci
60762306a36Sopenharmony_cistatic struct clk_init_data gcc_qupv3_wrap1_s4_clk_src_init = {
60862306a36Sopenharmony_ci	.name = "gcc_qupv3_wrap1_s4_clk_src",
60962306a36Sopenharmony_ci	.parent_data = gcc_parent_data_0,
61062306a36Sopenharmony_ci	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
61162306a36Sopenharmony_ci	.ops = &clk_rcg2_ops,
61262306a36Sopenharmony_ci};
61362306a36Sopenharmony_ci
61462306a36Sopenharmony_cistatic struct clk_rcg2 gcc_qupv3_wrap1_s4_clk_src = {
61562306a36Sopenharmony_ci	.cmd_rcgr = 0x184d8,
61662306a36Sopenharmony_ci	.mnd_width = 16,
61762306a36Sopenharmony_ci	.hid_width = 5,
61862306a36Sopenharmony_ci	.parent_map = gcc_parent_map_0,
61962306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
62062306a36Sopenharmony_ci	.clkr.hw.init = &gcc_qupv3_wrap1_s4_clk_src_init,
62162306a36Sopenharmony_ci};
62262306a36Sopenharmony_ci
62362306a36Sopenharmony_cistatic struct clk_init_data gcc_qupv3_wrap1_s5_clk_src_init = {
62462306a36Sopenharmony_ci	.name = "gcc_qupv3_wrap1_s5_clk_src",
62562306a36Sopenharmony_ci	.parent_data = gcc_parent_data_0,
62662306a36Sopenharmony_ci	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
62762306a36Sopenharmony_ci	.ops = &clk_rcg2_ops,
62862306a36Sopenharmony_ci};
62962306a36Sopenharmony_ci
63062306a36Sopenharmony_cistatic struct clk_rcg2 gcc_qupv3_wrap1_s5_clk_src = {
63162306a36Sopenharmony_ci	.cmd_rcgr = 0x18608,
63262306a36Sopenharmony_ci	.mnd_width = 16,
63362306a36Sopenharmony_ci	.hid_width = 5,
63462306a36Sopenharmony_ci	.parent_map = gcc_parent_map_0,
63562306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
63662306a36Sopenharmony_ci	.clkr.hw.init = &gcc_qupv3_wrap1_s5_clk_src_init,
63762306a36Sopenharmony_ci};
63862306a36Sopenharmony_ci
63962306a36Sopenharmony_cistatic struct clk_init_data gcc_qupv3_wrap1_s6_clk_src_init = {
64062306a36Sopenharmony_ci	.name = "gcc_qupv3_wrap1_s6_clk_src",
64162306a36Sopenharmony_ci	.parent_data = gcc_parent_data_0,
64262306a36Sopenharmony_ci	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
64362306a36Sopenharmony_ci	.ops = &clk_rcg2_ops,
64462306a36Sopenharmony_ci};
64562306a36Sopenharmony_ci
64662306a36Sopenharmony_cistatic struct clk_rcg2 gcc_qupv3_wrap1_s6_clk_src = {
64762306a36Sopenharmony_ci	.cmd_rcgr = 0x18738,
64862306a36Sopenharmony_ci	.mnd_width = 16,
64962306a36Sopenharmony_ci	.hid_width = 5,
65062306a36Sopenharmony_ci	.parent_map = gcc_parent_map_0,
65162306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
65262306a36Sopenharmony_ci	.clkr.hw.init = &gcc_qupv3_wrap1_s6_clk_src_init,
65362306a36Sopenharmony_ci};
65462306a36Sopenharmony_ci
65562306a36Sopenharmony_cistatic struct clk_init_data gcc_qupv3_wrap1_s7_clk_src_init = {
65662306a36Sopenharmony_ci	.name = "gcc_qupv3_wrap1_s7_clk_src",
65762306a36Sopenharmony_ci	.parent_data = gcc_parent_data_0,
65862306a36Sopenharmony_ci	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
65962306a36Sopenharmony_ci	.ops = &clk_rcg2_ops,
66062306a36Sopenharmony_ci};
66162306a36Sopenharmony_ci
66262306a36Sopenharmony_cistatic struct clk_rcg2 gcc_qupv3_wrap1_s7_clk_src = {
66362306a36Sopenharmony_ci	.cmd_rcgr = 0x18868,
66462306a36Sopenharmony_ci	.mnd_width = 16,
66562306a36Sopenharmony_ci	.hid_width = 5,
66662306a36Sopenharmony_ci	.parent_map = gcc_parent_map_0,
66762306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
66862306a36Sopenharmony_ci	.clkr.hw.init = &gcc_qupv3_wrap1_s7_clk_src_init,
66962306a36Sopenharmony_ci};
67062306a36Sopenharmony_ci
67162306a36Sopenharmony_cistatic const struct freq_tbl ftbl_gcc_sdcc1_apps_clk_src[] = {
67262306a36Sopenharmony_ci	F(144000, P_BI_TCXO, 16, 3, 25),
67362306a36Sopenharmony_ci	F(400000, P_BI_TCXO, 12, 1, 4),
67462306a36Sopenharmony_ci	F(19200000, P_BI_TCXO, 1, 0, 0),
67562306a36Sopenharmony_ci	F(20000000, P_GPLL0_OUT_EVEN, 5, 1, 3),
67662306a36Sopenharmony_ci	F(25000000, P_GPLL0_OUT_EVEN, 6, 1, 2),
67762306a36Sopenharmony_ci	F(50000000, P_GPLL0_OUT_EVEN, 6, 0, 0),
67862306a36Sopenharmony_ci	F(100000000, P_GPLL0_OUT_EVEN, 3, 0, 0),
67962306a36Sopenharmony_ci	F(192000000, P_GPLL6_OUT_MAIN, 2, 0, 0),
68062306a36Sopenharmony_ci	F(384000000, P_GPLL6_OUT_MAIN, 1, 0, 0),
68162306a36Sopenharmony_ci	{ }
68262306a36Sopenharmony_ci};
68362306a36Sopenharmony_ci
68462306a36Sopenharmony_cistatic struct clk_rcg2 gcc_sdcc1_apps_clk_src = {
68562306a36Sopenharmony_ci	.cmd_rcgr = 0x12028,
68662306a36Sopenharmony_ci	.mnd_width = 8,
68762306a36Sopenharmony_ci	.hid_width = 5,
68862306a36Sopenharmony_ci	.parent_map = gcc_parent_map_5,
68962306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_sdcc1_apps_clk_src,
69062306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
69162306a36Sopenharmony_ci		.name = "gcc_sdcc1_apps_clk_src",
69262306a36Sopenharmony_ci		.parent_data = gcc_parent_data_5,
69362306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_5),
69462306a36Sopenharmony_ci		.ops = &clk_rcg2_floor_ops,
69562306a36Sopenharmony_ci	},
69662306a36Sopenharmony_ci};
69762306a36Sopenharmony_ci
69862306a36Sopenharmony_cistatic const struct freq_tbl ftbl_gcc_sdcc1_ice_core_clk_src[] = {
69962306a36Sopenharmony_ci	F(75000000, P_GPLL0_OUT_EVEN, 4, 0, 0),
70062306a36Sopenharmony_ci	F(150000000, P_GPLL0_OUT_MAIN, 4, 0, 0),
70162306a36Sopenharmony_ci	F(200000000, P_GPLL0_OUT_MAIN, 3, 0, 0),
70262306a36Sopenharmony_ci	F(300000000, P_GPLL0_OUT_MAIN, 2, 0, 0),
70362306a36Sopenharmony_ci	{ }
70462306a36Sopenharmony_ci};
70562306a36Sopenharmony_ci
70662306a36Sopenharmony_cistatic struct clk_rcg2 gcc_sdcc1_ice_core_clk_src = {
70762306a36Sopenharmony_ci	.cmd_rcgr = 0x12010,
70862306a36Sopenharmony_ci	.mnd_width = 0,
70962306a36Sopenharmony_ci	.hid_width = 5,
71062306a36Sopenharmony_ci	.parent_map = gcc_parent_map_0,
71162306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_sdcc1_ice_core_clk_src,
71262306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
71362306a36Sopenharmony_ci		.name = "gcc_sdcc1_ice_core_clk_src",
71462306a36Sopenharmony_ci		.parent_data = gcc_parent_data_0,
71562306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
71662306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
71762306a36Sopenharmony_ci	},
71862306a36Sopenharmony_ci};
71962306a36Sopenharmony_ci
72062306a36Sopenharmony_cistatic const struct freq_tbl ftbl_gcc_sdcc2_apps_clk_src[] = {
72162306a36Sopenharmony_ci	F(400000, P_BI_TCXO, 12, 1, 4),
72262306a36Sopenharmony_ci	F(9600000, P_BI_TCXO, 2, 0, 0),
72362306a36Sopenharmony_ci	F(19200000, P_BI_TCXO, 1, 0, 0),
72462306a36Sopenharmony_ci	F(25000000, P_GPLL0_OUT_EVEN, 12, 0, 0),
72562306a36Sopenharmony_ci	F(50000000, P_GPLL0_OUT_EVEN, 6, 0, 0),
72662306a36Sopenharmony_ci	F(100000000, P_GPLL0_OUT_MAIN, 6, 0, 0),
72762306a36Sopenharmony_ci	F(208000000, P_GPLL7_OUT_MAIN, 4, 0, 0),
72862306a36Sopenharmony_ci	{ }
72962306a36Sopenharmony_ci};
73062306a36Sopenharmony_ci
73162306a36Sopenharmony_cistatic struct clk_rcg2 gcc_sdcc2_apps_clk_src = {
73262306a36Sopenharmony_ci	.cmd_rcgr = 0x1400c,
73362306a36Sopenharmony_ci	.mnd_width = 8,
73462306a36Sopenharmony_ci	.hid_width = 5,
73562306a36Sopenharmony_ci	.parent_map = gcc_parent_map_6,
73662306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_sdcc2_apps_clk_src,
73762306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
73862306a36Sopenharmony_ci		.name = "gcc_sdcc2_apps_clk_src",
73962306a36Sopenharmony_ci		.parent_data = gcc_parent_data_6,
74062306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_6),
74162306a36Sopenharmony_ci		.ops = &clk_rcg2_floor_ops,
74262306a36Sopenharmony_ci		.flags = CLK_OPS_PARENT_ENABLE,
74362306a36Sopenharmony_ci	},
74462306a36Sopenharmony_ci};
74562306a36Sopenharmony_ci
74662306a36Sopenharmony_cistatic const struct freq_tbl ftbl_gcc_sdcc4_apps_clk_src[] = {
74762306a36Sopenharmony_ci	F(400000, P_BI_TCXO, 12, 1, 4),
74862306a36Sopenharmony_ci	F(9600000, P_BI_TCXO, 2, 0, 0),
74962306a36Sopenharmony_ci	F(19200000, P_BI_TCXO, 1, 0, 0),
75062306a36Sopenharmony_ci	F(25000000, P_GPLL0_OUT_EVEN, 12, 0, 0),
75162306a36Sopenharmony_ci	F(33333333, P_GPLL0_OUT_EVEN, 9, 0, 0),
75262306a36Sopenharmony_ci	F(50000000, P_GPLL0_OUT_MAIN, 12, 0, 0),
75362306a36Sopenharmony_ci	F(100000000, P_GPLL0_OUT_MAIN, 6, 0, 0),
75462306a36Sopenharmony_ci	{ }
75562306a36Sopenharmony_ci};
75662306a36Sopenharmony_ci
75762306a36Sopenharmony_cistatic struct clk_rcg2 gcc_sdcc4_apps_clk_src = {
75862306a36Sopenharmony_ci	.cmd_rcgr = 0x1600c,
75962306a36Sopenharmony_ci	.mnd_width = 8,
76062306a36Sopenharmony_ci	.hid_width = 5,
76162306a36Sopenharmony_ci	.parent_map = gcc_parent_map_0,
76262306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_sdcc4_apps_clk_src,
76362306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
76462306a36Sopenharmony_ci		.name = "gcc_sdcc4_apps_clk_src",
76562306a36Sopenharmony_ci		.parent_data = gcc_parent_data_0,
76662306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
76762306a36Sopenharmony_ci		.ops = &clk_rcg2_floor_ops,
76862306a36Sopenharmony_ci	},
76962306a36Sopenharmony_ci};
77062306a36Sopenharmony_ci
77162306a36Sopenharmony_cistatic const struct freq_tbl ftbl_gcc_tsif_ref_clk_src[] = {
77262306a36Sopenharmony_ci	F(105495, P_BI_TCXO, 2, 1, 91),
77362306a36Sopenharmony_ci	{ }
77462306a36Sopenharmony_ci};
77562306a36Sopenharmony_ci
77662306a36Sopenharmony_cistatic struct clk_rcg2 gcc_tsif_ref_clk_src = {
77762306a36Sopenharmony_ci	.cmd_rcgr = 0x36010,
77862306a36Sopenharmony_ci	.mnd_width = 8,
77962306a36Sopenharmony_ci	.hid_width = 5,
78062306a36Sopenharmony_ci	.parent_map = gcc_parent_map_7,
78162306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_tsif_ref_clk_src,
78262306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
78362306a36Sopenharmony_ci		.name = "gcc_tsif_ref_clk_src",
78462306a36Sopenharmony_ci		.parent_data = gcc_parent_data_7,
78562306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_7),
78662306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
78762306a36Sopenharmony_ci	},
78862306a36Sopenharmony_ci};
78962306a36Sopenharmony_ci
79062306a36Sopenharmony_cistatic const struct freq_tbl ftbl_gcc_ufs_phy_axi_clk_src[] = {
79162306a36Sopenharmony_ci	F(25000000, P_GPLL0_OUT_EVEN, 12, 0, 0),
79262306a36Sopenharmony_ci	F(50000000, P_GPLL0_OUT_EVEN, 6, 0, 0),
79362306a36Sopenharmony_ci	F(100000000, P_GPLL0_OUT_MAIN, 6, 0, 0),
79462306a36Sopenharmony_ci	F(200000000, P_GPLL0_OUT_MAIN, 3, 0, 0),
79562306a36Sopenharmony_ci	F(240000000, P_GPLL0_OUT_MAIN, 2.5, 0, 0),
79662306a36Sopenharmony_ci	{ }
79762306a36Sopenharmony_ci};
79862306a36Sopenharmony_ci
79962306a36Sopenharmony_cistatic struct clk_rcg2 gcc_ufs_phy_axi_clk_src = {
80062306a36Sopenharmony_ci	.cmd_rcgr = 0x77020,
80162306a36Sopenharmony_ci	.mnd_width = 8,
80262306a36Sopenharmony_ci	.hid_width = 5,
80362306a36Sopenharmony_ci	.parent_map = gcc_parent_map_0,
80462306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_ufs_phy_axi_clk_src,
80562306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
80662306a36Sopenharmony_ci		.name = "gcc_ufs_phy_axi_clk_src",
80762306a36Sopenharmony_ci		.parent_data = gcc_parent_data_0,
80862306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
80962306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
81062306a36Sopenharmony_ci	},
81162306a36Sopenharmony_ci};
81262306a36Sopenharmony_ci
81362306a36Sopenharmony_cistatic const struct freq_tbl ftbl_gcc_ufs_phy_ice_core_clk_src[] = {
81462306a36Sopenharmony_ci	F(37500000, P_GPLL0_OUT_EVEN, 8, 0, 0),
81562306a36Sopenharmony_ci	F(75000000, P_GPLL0_OUT_EVEN, 4, 0, 0),
81662306a36Sopenharmony_ci	F(150000000, P_GPLL0_OUT_MAIN, 4, 0, 0),
81762306a36Sopenharmony_ci	F(300000000, P_GPLL0_OUT_MAIN, 2, 0, 0),
81862306a36Sopenharmony_ci	{ }
81962306a36Sopenharmony_ci};
82062306a36Sopenharmony_ci
82162306a36Sopenharmony_cistatic struct clk_rcg2 gcc_ufs_phy_ice_core_clk_src = {
82262306a36Sopenharmony_ci	.cmd_rcgr = 0x77048,
82362306a36Sopenharmony_ci	.mnd_width = 0,
82462306a36Sopenharmony_ci	.hid_width = 5,
82562306a36Sopenharmony_ci	.parent_map = gcc_parent_map_0,
82662306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_ufs_phy_ice_core_clk_src,
82762306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
82862306a36Sopenharmony_ci		.name = "gcc_ufs_phy_ice_core_clk_src",
82962306a36Sopenharmony_ci		.parent_data = gcc_parent_data_0,
83062306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
83162306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
83262306a36Sopenharmony_ci	},
83362306a36Sopenharmony_ci};
83462306a36Sopenharmony_ci
83562306a36Sopenharmony_cistatic struct clk_rcg2 gcc_ufs_phy_phy_aux_clk_src = {
83662306a36Sopenharmony_ci	.cmd_rcgr = 0x77098,
83762306a36Sopenharmony_ci	.mnd_width = 0,
83862306a36Sopenharmony_ci	.hid_width = 5,
83962306a36Sopenharmony_ci	.parent_map = gcc_parent_map_4,
84062306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
84162306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
84262306a36Sopenharmony_ci		.name = "gcc_ufs_phy_phy_aux_clk_src",
84362306a36Sopenharmony_ci		.parent_data = gcc_parent_data_4,
84462306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_4),
84562306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
84662306a36Sopenharmony_ci	},
84762306a36Sopenharmony_ci};
84862306a36Sopenharmony_ci
84962306a36Sopenharmony_cistatic const struct freq_tbl ftbl_gcc_ufs_phy_unipro_core_clk_src[] = {
85062306a36Sopenharmony_ci	F(37500000, P_GPLL0_OUT_EVEN, 8, 0, 0),
85162306a36Sopenharmony_ci	F(75000000, P_GPLL0_OUT_MAIN, 8, 0, 0),
85262306a36Sopenharmony_ci	F(150000000, P_GPLL0_OUT_MAIN, 4, 0, 0),
85362306a36Sopenharmony_ci	{ }
85462306a36Sopenharmony_ci};
85562306a36Sopenharmony_ci
85662306a36Sopenharmony_cistatic struct clk_rcg2 gcc_ufs_phy_unipro_core_clk_src = {
85762306a36Sopenharmony_ci	.cmd_rcgr = 0x77060,
85862306a36Sopenharmony_ci	.mnd_width = 0,
85962306a36Sopenharmony_ci	.hid_width = 5,
86062306a36Sopenharmony_ci	.parent_map = gcc_parent_map_0,
86162306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_ufs_phy_unipro_core_clk_src,
86262306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
86362306a36Sopenharmony_ci		.name = "gcc_ufs_phy_unipro_core_clk_src",
86462306a36Sopenharmony_ci		.parent_data = gcc_parent_data_0,
86562306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
86662306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
86762306a36Sopenharmony_ci	},
86862306a36Sopenharmony_ci};
86962306a36Sopenharmony_ci
87062306a36Sopenharmony_cistatic const struct freq_tbl ftbl_gcc_usb30_prim_master_clk_src[] = {
87162306a36Sopenharmony_ci	F(66666667, P_GPLL0_OUT_EVEN, 4.5, 0, 0),
87262306a36Sopenharmony_ci	F(133333333, P_GPLL0_OUT_MAIN, 4.5, 0, 0),
87362306a36Sopenharmony_ci	F(200000000, P_GPLL0_OUT_MAIN, 3, 0, 0),
87462306a36Sopenharmony_ci	F(240000000, P_GPLL0_OUT_MAIN, 2.5, 0, 0),
87562306a36Sopenharmony_ci	{ }
87662306a36Sopenharmony_ci};
87762306a36Sopenharmony_ci
87862306a36Sopenharmony_cistatic struct clk_rcg2 gcc_usb30_prim_master_clk_src = {
87962306a36Sopenharmony_ci	.cmd_rcgr = 0xf01c,
88062306a36Sopenharmony_ci	.mnd_width = 8,
88162306a36Sopenharmony_ci	.hid_width = 5,
88262306a36Sopenharmony_ci	.parent_map = gcc_parent_map_0,
88362306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_usb30_prim_master_clk_src,
88462306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
88562306a36Sopenharmony_ci		.name = "gcc_usb30_prim_master_clk_src",
88662306a36Sopenharmony_ci		.parent_data = gcc_parent_data_0,
88762306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
88862306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
88962306a36Sopenharmony_ci	},
89062306a36Sopenharmony_ci};
89162306a36Sopenharmony_ci
89262306a36Sopenharmony_cistatic const struct freq_tbl ftbl_gcc_usb30_prim_mock_utmi_clk_src[] = {
89362306a36Sopenharmony_ci	F(19200000, P_BI_TCXO, 1, 0, 0),
89462306a36Sopenharmony_ci	F(20000000, P_GPLL0_OUT_EVEN, 15, 0, 0),
89562306a36Sopenharmony_ci	F(40000000, P_GPLL0_OUT_EVEN, 7.5, 0, 0),
89662306a36Sopenharmony_ci	F(60000000, P_GPLL0_OUT_MAIN, 10, 0, 0),
89762306a36Sopenharmony_ci	{ }
89862306a36Sopenharmony_ci};
89962306a36Sopenharmony_ci
90062306a36Sopenharmony_cistatic struct clk_rcg2 gcc_usb30_prim_mock_utmi_clk_src = {
90162306a36Sopenharmony_ci	.cmd_rcgr = 0xf034,
90262306a36Sopenharmony_ci	.mnd_width = 0,
90362306a36Sopenharmony_ci	.hid_width = 5,
90462306a36Sopenharmony_ci	.parent_map = gcc_parent_map_0,
90562306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_usb30_prim_mock_utmi_clk_src,
90662306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
90762306a36Sopenharmony_ci		.name = "gcc_usb30_prim_mock_utmi_clk_src",
90862306a36Sopenharmony_ci		.parent_data = gcc_parent_data_0,
90962306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
91062306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
91162306a36Sopenharmony_ci	},
91262306a36Sopenharmony_ci};
91362306a36Sopenharmony_ci
91462306a36Sopenharmony_cistatic const struct freq_tbl ftbl_gcc_usb3_prim_phy_aux_clk_src[] = {
91562306a36Sopenharmony_ci	F(19200000, P_BI_TCXO, 1, 0, 0),
91662306a36Sopenharmony_ci	{ }
91762306a36Sopenharmony_ci};
91862306a36Sopenharmony_ci
91962306a36Sopenharmony_cistatic struct clk_rcg2 gcc_usb3_prim_phy_aux_clk_src = {
92062306a36Sopenharmony_ci	.cmd_rcgr = 0xf060,
92162306a36Sopenharmony_ci	.mnd_width = 0,
92262306a36Sopenharmony_ci	.hid_width = 5,
92362306a36Sopenharmony_ci	.parent_map = gcc_parent_map_3,
92462306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_usb3_prim_phy_aux_clk_src,
92562306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
92662306a36Sopenharmony_ci		.name = "gcc_usb3_prim_phy_aux_clk_src",
92762306a36Sopenharmony_ci		.parent_data = gcc_parent_data_3,
92862306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_3),
92962306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
93062306a36Sopenharmony_ci	},
93162306a36Sopenharmony_ci};
93262306a36Sopenharmony_ci
93362306a36Sopenharmony_cistatic struct clk_rcg2 gcc_vs_ctrl_clk_src = {
93462306a36Sopenharmony_ci	.cmd_rcgr = 0x7a030,
93562306a36Sopenharmony_ci	.mnd_width = 0,
93662306a36Sopenharmony_ci	.hid_width = 5,
93762306a36Sopenharmony_ci	.parent_map = gcc_parent_map_2,
93862306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_usb3_prim_phy_aux_clk_src,
93962306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
94062306a36Sopenharmony_ci		.name = "gcc_vs_ctrl_clk_src",
94162306a36Sopenharmony_ci		.parent_data = gcc_parent_data_2,
94262306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_2),
94362306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
94462306a36Sopenharmony_ci	},
94562306a36Sopenharmony_ci};
94662306a36Sopenharmony_ci
94762306a36Sopenharmony_cistatic const struct freq_tbl ftbl_gcc_vsensor_clk_src[] = {
94862306a36Sopenharmony_ci	F(19200000, P_BI_TCXO, 1, 0, 0),
94962306a36Sopenharmony_ci	F(300000000, P_GPLL0_OUT_MAIN, 2, 0, 0),
95062306a36Sopenharmony_ci	F(600000000, P_GPLL0_OUT_MAIN, 1, 0, 0),
95162306a36Sopenharmony_ci	{ }
95262306a36Sopenharmony_ci};
95362306a36Sopenharmony_ci
95462306a36Sopenharmony_cistatic struct clk_rcg2 gcc_vsensor_clk_src = {
95562306a36Sopenharmony_ci	.cmd_rcgr = 0x7a018,
95662306a36Sopenharmony_ci	.mnd_width = 0,
95762306a36Sopenharmony_ci	.hid_width = 5,
95862306a36Sopenharmony_ci	.parent_map = gcc_parent_map_8,
95962306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_vsensor_clk_src,
96062306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
96162306a36Sopenharmony_ci		.name = "gcc_vsensor_clk_src",
96262306a36Sopenharmony_ci		.parent_data = gcc_parent_data_8,
96362306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_8),
96462306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
96562306a36Sopenharmony_ci	},
96662306a36Sopenharmony_ci};
96762306a36Sopenharmony_ci
96862306a36Sopenharmony_cistatic struct clk_branch gcc_aggre_noc_pcie_tbu_clk = {
96962306a36Sopenharmony_ci	.halt_reg = 0x2800c,
97062306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
97162306a36Sopenharmony_ci	.clkr = {
97262306a36Sopenharmony_ci		.enable_reg = 0x2800c,
97362306a36Sopenharmony_ci		.enable_mask = BIT(0),
97462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
97562306a36Sopenharmony_ci			.name = "gcc_aggre_noc_pcie_tbu_clk",
97662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
97762306a36Sopenharmony_ci		},
97862306a36Sopenharmony_ci	},
97962306a36Sopenharmony_ci};
98062306a36Sopenharmony_ci
98162306a36Sopenharmony_cistatic struct clk_branch gcc_aggre_ufs_phy_axi_clk = {
98262306a36Sopenharmony_ci	.halt_reg = 0x82024,
98362306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
98462306a36Sopenharmony_ci	.hwcg_reg = 0x82024,
98562306a36Sopenharmony_ci	.hwcg_bit = 1,
98662306a36Sopenharmony_ci	.clkr = {
98762306a36Sopenharmony_ci		.enable_reg = 0x82024,
98862306a36Sopenharmony_ci		.enable_mask = BIT(0),
98962306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
99062306a36Sopenharmony_ci			.name = "gcc_aggre_ufs_phy_axi_clk",
99162306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
99262306a36Sopenharmony_ci				&gcc_ufs_phy_axi_clk_src.clkr.hw,
99362306a36Sopenharmony_ci			},
99462306a36Sopenharmony_ci			.num_parents = 1,
99562306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
99662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
99762306a36Sopenharmony_ci		},
99862306a36Sopenharmony_ci	},
99962306a36Sopenharmony_ci};
100062306a36Sopenharmony_ci
100162306a36Sopenharmony_cistatic struct clk_branch gcc_aggre_ufs_phy_axi_hw_ctl_clk = {
100262306a36Sopenharmony_ci	.halt_reg = 0x82024,
100362306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
100462306a36Sopenharmony_ci	.hwcg_reg = 0x82024,
100562306a36Sopenharmony_ci	.hwcg_bit = 1,
100662306a36Sopenharmony_ci	.clkr = {
100762306a36Sopenharmony_ci		.enable_reg = 0x82024,
100862306a36Sopenharmony_ci		.enable_mask = BIT(1),
100962306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
101062306a36Sopenharmony_ci			.name = "gcc_aggre_ufs_phy_axi_hw_ctl_clk",
101162306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
101262306a36Sopenharmony_ci				&gcc_aggre_ufs_phy_axi_clk.clkr.hw,
101362306a36Sopenharmony_ci			},
101462306a36Sopenharmony_ci			.num_parents = 1,
101562306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
101662306a36Sopenharmony_ci			.ops = &clk_branch_simple_ops,
101762306a36Sopenharmony_ci		},
101862306a36Sopenharmony_ci	},
101962306a36Sopenharmony_ci};
102062306a36Sopenharmony_ci
102162306a36Sopenharmony_cistatic struct clk_branch gcc_aggre_usb3_prim_axi_clk = {
102262306a36Sopenharmony_ci	.halt_reg = 0x8201c,
102362306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
102462306a36Sopenharmony_ci	.clkr = {
102562306a36Sopenharmony_ci		.enable_reg = 0x8201c,
102662306a36Sopenharmony_ci		.enable_mask = BIT(0),
102762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
102862306a36Sopenharmony_ci			.name = "gcc_aggre_usb3_prim_axi_clk",
102962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
103062306a36Sopenharmony_ci				&gcc_usb30_prim_master_clk_src.clkr.hw,
103162306a36Sopenharmony_ci			},
103262306a36Sopenharmony_ci			.num_parents = 1,
103362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
103462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
103562306a36Sopenharmony_ci		},
103662306a36Sopenharmony_ci	},
103762306a36Sopenharmony_ci};
103862306a36Sopenharmony_ci
103962306a36Sopenharmony_cistatic struct clk_branch gcc_apc_vs_clk = {
104062306a36Sopenharmony_ci	.halt_reg = 0x7a050,
104162306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
104262306a36Sopenharmony_ci	.clkr = {
104362306a36Sopenharmony_ci		.enable_reg = 0x7a050,
104462306a36Sopenharmony_ci		.enable_mask = BIT(0),
104562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
104662306a36Sopenharmony_ci			.name = "gcc_apc_vs_clk",
104762306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
104862306a36Sopenharmony_ci				&gcc_vsensor_clk_src.clkr.hw,
104962306a36Sopenharmony_ci			},
105062306a36Sopenharmony_ci			.num_parents = 1,
105162306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
105262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
105362306a36Sopenharmony_ci		},
105462306a36Sopenharmony_ci	},
105562306a36Sopenharmony_ci};
105662306a36Sopenharmony_ci
105762306a36Sopenharmony_cistatic struct clk_branch gcc_boot_rom_ahb_clk = {
105862306a36Sopenharmony_ci	.halt_reg = 0x38004,
105962306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
106062306a36Sopenharmony_ci	.hwcg_reg = 0x38004,
106162306a36Sopenharmony_ci	.hwcg_bit = 1,
106262306a36Sopenharmony_ci	.clkr = {
106362306a36Sopenharmony_ci		.enable_reg = 0x52004,
106462306a36Sopenharmony_ci		.enable_mask = BIT(10),
106562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
106662306a36Sopenharmony_ci			.name = "gcc_boot_rom_ahb_clk",
106762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
106862306a36Sopenharmony_ci		},
106962306a36Sopenharmony_ci	},
107062306a36Sopenharmony_ci};
107162306a36Sopenharmony_ci
107262306a36Sopenharmony_cistatic struct clk_branch gcc_camera_hf_axi_clk = {
107362306a36Sopenharmony_ci	.halt_reg = 0xb020,
107462306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
107562306a36Sopenharmony_ci	.clkr = {
107662306a36Sopenharmony_ci		.enable_reg = 0xb020,
107762306a36Sopenharmony_ci		.enable_mask = BIT(0),
107862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
107962306a36Sopenharmony_ci			.name = "gcc_camera_hf_axi_clk",
108062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
108162306a36Sopenharmony_ci		},
108262306a36Sopenharmony_ci	},
108362306a36Sopenharmony_ci};
108462306a36Sopenharmony_ci
108562306a36Sopenharmony_cistatic struct clk_branch gcc_camera_sf_axi_clk = {
108662306a36Sopenharmony_ci	.halt_reg = 0xb06c,
108762306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
108862306a36Sopenharmony_ci	.clkr = {
108962306a36Sopenharmony_ci		.enable_reg = 0xb06c,
109062306a36Sopenharmony_ci		.enable_mask = BIT(0),
109162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
109262306a36Sopenharmony_ci			.name = "gcc_camera_sf_axi_clk",
109362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
109462306a36Sopenharmony_ci		},
109562306a36Sopenharmony_ci	},
109662306a36Sopenharmony_ci};
109762306a36Sopenharmony_ci
109862306a36Sopenharmony_cistatic struct clk_branch gcc_ce1_ahb_clk = {
109962306a36Sopenharmony_ci	.halt_reg = 0x4100c,
110062306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
110162306a36Sopenharmony_ci	.hwcg_reg = 0x4100c,
110262306a36Sopenharmony_ci	.hwcg_bit = 1,
110362306a36Sopenharmony_ci	.clkr = {
110462306a36Sopenharmony_ci		.enable_reg = 0x52004,
110562306a36Sopenharmony_ci		.enable_mask = BIT(3),
110662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
110762306a36Sopenharmony_ci			.name = "gcc_ce1_ahb_clk",
110862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
110962306a36Sopenharmony_ci		},
111062306a36Sopenharmony_ci	},
111162306a36Sopenharmony_ci};
111262306a36Sopenharmony_ci
111362306a36Sopenharmony_cistatic struct clk_branch gcc_ce1_axi_clk = {
111462306a36Sopenharmony_ci	.halt_reg = 0x41008,
111562306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
111662306a36Sopenharmony_ci	.clkr = {
111762306a36Sopenharmony_ci		.enable_reg = 0x52004,
111862306a36Sopenharmony_ci		.enable_mask = BIT(4),
111962306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
112062306a36Sopenharmony_ci			.name = "gcc_ce1_axi_clk",
112162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
112262306a36Sopenharmony_ci		},
112362306a36Sopenharmony_ci	},
112462306a36Sopenharmony_ci};
112562306a36Sopenharmony_ci
112662306a36Sopenharmony_cistatic struct clk_branch gcc_ce1_clk = {
112762306a36Sopenharmony_ci	.halt_reg = 0x41004,
112862306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
112962306a36Sopenharmony_ci	.clkr = {
113062306a36Sopenharmony_ci		.enable_reg = 0x52004,
113162306a36Sopenharmony_ci		.enable_mask = BIT(5),
113262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
113362306a36Sopenharmony_ci			.name = "gcc_ce1_clk",
113462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
113562306a36Sopenharmony_ci		},
113662306a36Sopenharmony_ci	},
113762306a36Sopenharmony_ci};
113862306a36Sopenharmony_ci
113962306a36Sopenharmony_cistatic struct clk_branch gcc_cfg_noc_usb3_prim_axi_clk = {
114062306a36Sopenharmony_ci	.halt_reg = 0x502c,
114162306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
114262306a36Sopenharmony_ci	.clkr = {
114362306a36Sopenharmony_ci		.enable_reg = 0x502c,
114462306a36Sopenharmony_ci		.enable_mask = BIT(0),
114562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
114662306a36Sopenharmony_ci			.name = "gcc_cfg_noc_usb3_prim_axi_clk",
114762306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
114862306a36Sopenharmony_ci				&gcc_usb30_prim_master_clk_src.clkr.hw,
114962306a36Sopenharmony_ci			},
115062306a36Sopenharmony_ci			.num_parents = 1,
115162306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
115262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
115362306a36Sopenharmony_ci		},
115462306a36Sopenharmony_ci	},
115562306a36Sopenharmony_ci};
115662306a36Sopenharmony_ci
115762306a36Sopenharmony_cistatic struct clk_branch gcc_cpuss_ahb_clk = {
115862306a36Sopenharmony_ci	.halt_reg = 0x48000,
115962306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
116062306a36Sopenharmony_ci	.clkr = {
116162306a36Sopenharmony_ci		.enable_reg = 0x52004,
116262306a36Sopenharmony_ci		.enable_mask = BIT(21),
116362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
116462306a36Sopenharmony_ci			.name = "gcc_cpuss_ahb_clk",
116562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
116662306a36Sopenharmony_ci				&gcc_cpuss_ahb_clk_src.clkr.hw,
116762306a36Sopenharmony_ci			},
116862306a36Sopenharmony_ci			.num_parents = 1,
116962306a36Sopenharmony_ci			.flags = CLK_IS_CRITICAL | CLK_SET_RATE_PARENT,
117062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
117162306a36Sopenharmony_ci		},
117262306a36Sopenharmony_ci	},
117362306a36Sopenharmony_ci};
117462306a36Sopenharmony_ci
117562306a36Sopenharmony_cistatic struct clk_branch gcc_cpuss_rbcpr_clk = {
117662306a36Sopenharmony_ci	.halt_reg = 0x48008,
117762306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
117862306a36Sopenharmony_ci	.clkr = {
117962306a36Sopenharmony_ci		.enable_reg = 0x48008,
118062306a36Sopenharmony_ci		.enable_mask = BIT(0),
118162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
118262306a36Sopenharmony_ci			.name = "gcc_cpuss_rbcpr_clk",
118362306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
118462306a36Sopenharmony_ci				&gcc_cpuss_rbcpr_clk_src.clkr.hw,
118562306a36Sopenharmony_ci			},
118662306a36Sopenharmony_ci			.num_parents = 1,
118762306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
118862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
118962306a36Sopenharmony_ci		},
119062306a36Sopenharmony_ci	},
119162306a36Sopenharmony_ci};
119262306a36Sopenharmony_ci
119362306a36Sopenharmony_cistatic struct clk_branch gcc_ddrss_gpu_axi_clk = {
119462306a36Sopenharmony_ci	.halt_reg = 0x4452c,
119562306a36Sopenharmony_ci	.halt_check = BRANCH_VOTED,
119662306a36Sopenharmony_ci	.clkr = {
119762306a36Sopenharmony_ci		.enable_reg = 0x4452c,
119862306a36Sopenharmony_ci		.enable_mask = BIT(0),
119962306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
120062306a36Sopenharmony_ci			.name = "gcc_ddrss_gpu_axi_clk",
120162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
120262306a36Sopenharmony_ci		},
120362306a36Sopenharmony_ci	},
120462306a36Sopenharmony_ci};
120562306a36Sopenharmony_ci
120662306a36Sopenharmony_ci
120762306a36Sopenharmony_cistatic struct clk_branch gcc_disp_gpll0_clk_src = {
120862306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_DELAY,
120962306a36Sopenharmony_ci	.clkr = {
121062306a36Sopenharmony_ci		.enable_reg = 0x52004,
121162306a36Sopenharmony_ci		.enable_mask = BIT(18),
121262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
121362306a36Sopenharmony_ci			.name = "gcc_disp_gpll0_clk_src",
121462306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
121562306a36Sopenharmony_ci				&gpll0.clkr.hw,
121662306a36Sopenharmony_ci			},
121762306a36Sopenharmony_ci			.num_parents = 1,
121862306a36Sopenharmony_ci			.ops = &clk_branch2_aon_ops,
121962306a36Sopenharmony_ci		},
122062306a36Sopenharmony_ci	},
122162306a36Sopenharmony_ci};
122262306a36Sopenharmony_ci
122362306a36Sopenharmony_cistatic struct clk_branch gcc_disp_gpll0_div_clk_src = {
122462306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_DELAY,
122562306a36Sopenharmony_ci	.clkr = {
122662306a36Sopenharmony_ci		.enable_reg = 0x52004,
122762306a36Sopenharmony_ci		.enable_mask = BIT(19),
122862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
122962306a36Sopenharmony_ci			.name = "gcc_disp_gpll0_div_clk_src",
123062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
123162306a36Sopenharmony_ci				&gcc_pll0_main_div_cdiv.hw,
123262306a36Sopenharmony_ci			},
123362306a36Sopenharmony_ci			.num_parents = 1,
123462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
123562306a36Sopenharmony_ci		},
123662306a36Sopenharmony_ci	},
123762306a36Sopenharmony_ci};
123862306a36Sopenharmony_ci
123962306a36Sopenharmony_cistatic struct clk_branch gcc_disp_hf_axi_clk = {
124062306a36Sopenharmony_ci	.halt_reg = 0xb024,
124162306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
124262306a36Sopenharmony_ci	.clkr = {
124362306a36Sopenharmony_ci		.enable_reg = 0xb024,
124462306a36Sopenharmony_ci		.enable_mask = BIT(0),
124562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
124662306a36Sopenharmony_ci			.name = "gcc_disp_hf_axi_clk",
124762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
124862306a36Sopenharmony_ci		},
124962306a36Sopenharmony_ci	},
125062306a36Sopenharmony_ci};
125162306a36Sopenharmony_ci
125262306a36Sopenharmony_cistatic struct clk_branch gcc_disp_sf_axi_clk = {
125362306a36Sopenharmony_ci	.halt_reg = 0xb070,
125462306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
125562306a36Sopenharmony_ci	.clkr = {
125662306a36Sopenharmony_ci		.enable_reg = 0xb070,
125762306a36Sopenharmony_ci		.enable_mask = BIT(0),
125862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
125962306a36Sopenharmony_ci			.name = "gcc_disp_sf_axi_clk",
126062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
126162306a36Sopenharmony_ci		},
126262306a36Sopenharmony_ci	},
126362306a36Sopenharmony_ci};
126462306a36Sopenharmony_ci
126562306a36Sopenharmony_ci
126662306a36Sopenharmony_cistatic struct clk_branch gcc_gp1_clk = {
126762306a36Sopenharmony_ci	.halt_reg = 0x64000,
126862306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
126962306a36Sopenharmony_ci	.clkr = {
127062306a36Sopenharmony_ci		.enable_reg = 0x64000,
127162306a36Sopenharmony_ci		.enable_mask = BIT(0),
127262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
127362306a36Sopenharmony_ci			.name = "gcc_gp1_clk",
127462306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
127562306a36Sopenharmony_ci				&gcc_gp1_clk_src.clkr.hw,
127662306a36Sopenharmony_ci			},
127762306a36Sopenharmony_ci			.num_parents = 1,
127862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
127962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
128062306a36Sopenharmony_ci		},
128162306a36Sopenharmony_ci	},
128262306a36Sopenharmony_ci};
128362306a36Sopenharmony_ci
128462306a36Sopenharmony_cistatic struct clk_branch gcc_gp2_clk = {
128562306a36Sopenharmony_ci	.halt_reg = 0x65000,
128662306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
128762306a36Sopenharmony_ci	.clkr = {
128862306a36Sopenharmony_ci		.enable_reg = 0x65000,
128962306a36Sopenharmony_ci		.enable_mask = BIT(0),
129062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
129162306a36Sopenharmony_ci			.name = "gcc_gp2_clk",
129262306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
129362306a36Sopenharmony_ci				&gcc_gp2_clk_src.clkr.hw,
129462306a36Sopenharmony_ci			},
129562306a36Sopenharmony_ci			.num_parents = 1,
129662306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
129762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
129862306a36Sopenharmony_ci		},
129962306a36Sopenharmony_ci	},
130062306a36Sopenharmony_ci};
130162306a36Sopenharmony_ci
130262306a36Sopenharmony_cistatic struct clk_branch gcc_gp3_clk = {
130362306a36Sopenharmony_ci	.halt_reg = 0x66000,
130462306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
130562306a36Sopenharmony_ci	.clkr = {
130662306a36Sopenharmony_ci		.enable_reg = 0x66000,
130762306a36Sopenharmony_ci		.enable_mask = BIT(0),
130862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
130962306a36Sopenharmony_ci			.name = "gcc_gp3_clk",
131062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
131162306a36Sopenharmony_ci				&gcc_gp3_clk_src.clkr.hw,
131262306a36Sopenharmony_ci			},
131362306a36Sopenharmony_ci			.num_parents = 1,
131462306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
131562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
131662306a36Sopenharmony_ci		},
131762306a36Sopenharmony_ci	},
131862306a36Sopenharmony_ci};
131962306a36Sopenharmony_ci
132062306a36Sopenharmony_cistatic struct clk_branch gcc_gpu_gpll0_clk_src = {
132162306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_DELAY,
132262306a36Sopenharmony_ci	.clkr = {
132362306a36Sopenharmony_ci		.enable_reg = 0x52004,
132462306a36Sopenharmony_ci		.enable_mask = BIT(15),
132562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
132662306a36Sopenharmony_ci			.name = "gcc_gpu_gpll0_clk_src",
132762306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
132862306a36Sopenharmony_ci				&gpll0.clkr.hw,
132962306a36Sopenharmony_ci			},
133062306a36Sopenharmony_ci			.num_parents = 1,
133162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
133262306a36Sopenharmony_ci		},
133362306a36Sopenharmony_ci	},
133462306a36Sopenharmony_ci};
133562306a36Sopenharmony_ci
133662306a36Sopenharmony_cistatic struct clk_branch gcc_gpu_gpll0_div_clk_src = {
133762306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_DELAY,
133862306a36Sopenharmony_ci	.clkr = {
133962306a36Sopenharmony_ci		.enable_reg = 0x52004,
134062306a36Sopenharmony_ci		.enable_mask = BIT(16),
134162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
134262306a36Sopenharmony_ci			.name = "gcc_gpu_gpll0_div_clk_src",
134362306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
134462306a36Sopenharmony_ci				&gcc_pll0_main_div_cdiv.hw,
134562306a36Sopenharmony_ci			},
134662306a36Sopenharmony_ci			.num_parents = 1,
134762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
134862306a36Sopenharmony_ci		},
134962306a36Sopenharmony_ci	},
135062306a36Sopenharmony_ci};
135162306a36Sopenharmony_ci
135262306a36Sopenharmony_cistatic struct clk_branch gcc_gpu_memnoc_gfx_clk = {
135362306a36Sopenharmony_ci	.halt_reg = 0x7100c,
135462306a36Sopenharmony_ci	.halt_check = BRANCH_VOTED,
135562306a36Sopenharmony_ci	.clkr = {
135662306a36Sopenharmony_ci		.enable_reg = 0x7100c,
135762306a36Sopenharmony_ci		.enable_mask = BIT(0),
135862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
135962306a36Sopenharmony_ci			.name = "gcc_gpu_memnoc_gfx_clk",
136062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
136162306a36Sopenharmony_ci		},
136262306a36Sopenharmony_ci	},
136362306a36Sopenharmony_ci};
136462306a36Sopenharmony_ci
136562306a36Sopenharmony_cistatic struct clk_branch gcc_gpu_snoc_dvm_gfx_clk = {
136662306a36Sopenharmony_ci	.halt_reg = 0x71018,
136762306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
136862306a36Sopenharmony_ci	.clkr = {
136962306a36Sopenharmony_ci		.enable_reg = 0x71018,
137062306a36Sopenharmony_ci		.enable_mask = BIT(0),
137162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
137262306a36Sopenharmony_ci			.name = "gcc_gpu_snoc_dvm_gfx_clk",
137362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
137462306a36Sopenharmony_ci		},
137562306a36Sopenharmony_ci	},
137662306a36Sopenharmony_ci};
137762306a36Sopenharmony_ci
137862306a36Sopenharmony_cistatic struct clk_branch gcc_gpu_vs_clk = {
137962306a36Sopenharmony_ci	.halt_reg = 0x7a04c,
138062306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
138162306a36Sopenharmony_ci	.clkr = {
138262306a36Sopenharmony_ci		.enable_reg = 0x7a04c,
138362306a36Sopenharmony_ci		.enable_mask = BIT(0),
138462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
138562306a36Sopenharmony_ci			.name = "gcc_gpu_vs_clk",
138662306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
138762306a36Sopenharmony_ci				&gcc_vsensor_clk_src.clkr.hw,
138862306a36Sopenharmony_ci			},
138962306a36Sopenharmony_ci			.num_parents = 1,
139062306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
139162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
139262306a36Sopenharmony_ci		},
139362306a36Sopenharmony_ci	},
139462306a36Sopenharmony_ci};
139562306a36Sopenharmony_ci
139662306a36Sopenharmony_cistatic struct clk_branch gcc_npu_axi_clk = {
139762306a36Sopenharmony_ci	.halt_reg = 0x4d008,
139862306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
139962306a36Sopenharmony_ci	.clkr = {
140062306a36Sopenharmony_ci		.enable_reg = 0x4d008,
140162306a36Sopenharmony_ci		.enable_mask = BIT(0),
140262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
140362306a36Sopenharmony_ci			.name = "gcc_npu_axi_clk",
140462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
140562306a36Sopenharmony_ci		},
140662306a36Sopenharmony_ci	},
140762306a36Sopenharmony_ci};
140862306a36Sopenharmony_ci
140962306a36Sopenharmony_cistatic struct clk_branch gcc_npu_cfg_ahb_clk = {
141062306a36Sopenharmony_ci	.halt_reg = 0x4d004,
141162306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
141262306a36Sopenharmony_ci	.hwcg_reg = 0x4d004,
141362306a36Sopenharmony_ci	.hwcg_bit = 1,
141462306a36Sopenharmony_ci	.clkr = {
141562306a36Sopenharmony_ci		.enable_reg = 0x4d004,
141662306a36Sopenharmony_ci		.enable_mask = BIT(0),
141762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
141862306a36Sopenharmony_ci			.name = "gcc_npu_cfg_ahb_clk",
141962306a36Sopenharmony_ci			.flags = CLK_IS_CRITICAL,
142062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
142162306a36Sopenharmony_ci		},
142262306a36Sopenharmony_ci	},
142362306a36Sopenharmony_ci};
142462306a36Sopenharmony_ci
142562306a36Sopenharmony_cistatic struct clk_branch gcc_npu_gpll0_clk_src = {
142662306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_DELAY,
142762306a36Sopenharmony_ci	.clkr = {
142862306a36Sopenharmony_ci		.enable_reg = 0x52004,
142962306a36Sopenharmony_ci		.enable_mask = BIT(25),
143062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
143162306a36Sopenharmony_ci			.name = "gcc_npu_gpll0_clk_src",
143262306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
143362306a36Sopenharmony_ci				&gpll0.clkr.hw,
143462306a36Sopenharmony_ci			},
143562306a36Sopenharmony_ci			.num_parents = 1,
143662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
143762306a36Sopenharmony_ci		},
143862306a36Sopenharmony_ci	},
143962306a36Sopenharmony_ci};
144062306a36Sopenharmony_ci
144162306a36Sopenharmony_cistatic struct clk_branch gcc_npu_gpll0_div_clk_src = {
144262306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_DELAY,
144362306a36Sopenharmony_ci	.clkr = {
144462306a36Sopenharmony_ci		.enable_reg = 0x52004,
144562306a36Sopenharmony_ci		.enable_mask = BIT(26),
144662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
144762306a36Sopenharmony_ci			.name = "gcc_npu_gpll0_div_clk_src",
144862306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
144962306a36Sopenharmony_ci				&gcc_pll0_main_div_cdiv.hw,
145062306a36Sopenharmony_ci			},
145162306a36Sopenharmony_ci			.num_parents = 1,
145262306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
145362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
145462306a36Sopenharmony_ci		},
145562306a36Sopenharmony_ci	},
145662306a36Sopenharmony_ci};
145762306a36Sopenharmony_ci
145862306a36Sopenharmony_cistatic struct clk_branch gcc_pcie_0_aux_clk = {
145962306a36Sopenharmony_ci	.halt_reg = 0x6b01c,
146062306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
146162306a36Sopenharmony_ci	.clkr = {
146262306a36Sopenharmony_ci		.enable_reg = 0x5200c,
146362306a36Sopenharmony_ci		.enable_mask = BIT(3),
146462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
146562306a36Sopenharmony_ci			.name = "gcc_pcie_0_aux_clk",
146662306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
146762306a36Sopenharmony_ci				&gcc_pcie_0_aux_clk_src.clkr.hw,
146862306a36Sopenharmony_ci			},
146962306a36Sopenharmony_ci			.num_parents = 1,
147062306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
147162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
147262306a36Sopenharmony_ci		},
147362306a36Sopenharmony_ci	},
147462306a36Sopenharmony_ci};
147562306a36Sopenharmony_ci
147662306a36Sopenharmony_cistatic struct clk_branch gcc_pcie_0_cfg_ahb_clk = {
147762306a36Sopenharmony_ci	.halt_reg = 0x6b018,
147862306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
147962306a36Sopenharmony_ci	.hwcg_reg = 0x6b018,
148062306a36Sopenharmony_ci	.hwcg_bit = 1,
148162306a36Sopenharmony_ci	.clkr = {
148262306a36Sopenharmony_ci		.enable_reg = 0x5200c,
148362306a36Sopenharmony_ci		.enable_mask = BIT(2),
148462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
148562306a36Sopenharmony_ci			.name = "gcc_pcie_0_cfg_ahb_clk",
148662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
148762306a36Sopenharmony_ci		},
148862306a36Sopenharmony_ci	},
148962306a36Sopenharmony_ci};
149062306a36Sopenharmony_ci
149162306a36Sopenharmony_cistatic struct clk_branch gcc_pcie_0_clkref_clk = {
149262306a36Sopenharmony_ci	.halt_reg = 0x8c008,
149362306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
149462306a36Sopenharmony_ci	.clkr = {
149562306a36Sopenharmony_ci		.enable_reg = 0x8c008,
149662306a36Sopenharmony_ci		.enable_mask = BIT(0),
149762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
149862306a36Sopenharmony_ci			.name = "gcc_pcie_0_clkref_clk",
149962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
150062306a36Sopenharmony_ci		},
150162306a36Sopenharmony_ci	},
150262306a36Sopenharmony_ci};
150362306a36Sopenharmony_ci
150462306a36Sopenharmony_cistatic struct clk_branch gcc_pcie_0_mstr_axi_clk = {
150562306a36Sopenharmony_ci	.halt_reg = 0x6b014,
150662306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
150762306a36Sopenharmony_ci	.clkr = {
150862306a36Sopenharmony_ci		.enable_reg = 0x5200c,
150962306a36Sopenharmony_ci		.enable_mask = BIT(1),
151062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
151162306a36Sopenharmony_ci			.name = "gcc_pcie_0_mstr_axi_clk",
151262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
151362306a36Sopenharmony_ci		},
151462306a36Sopenharmony_ci	},
151562306a36Sopenharmony_ci};
151662306a36Sopenharmony_ci
151762306a36Sopenharmony_cistatic struct clk_branch gcc_pcie_0_pipe_clk = {
151862306a36Sopenharmony_ci	.halt_reg = 0x6b020,
151962306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_SKIP,
152062306a36Sopenharmony_ci	.clkr = {
152162306a36Sopenharmony_ci		.enable_reg = 0x5200c,
152262306a36Sopenharmony_ci		.enable_mask = BIT(4),
152362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
152462306a36Sopenharmony_ci			.name = "gcc_pcie_0_pipe_clk",
152562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
152662306a36Sopenharmony_ci		},
152762306a36Sopenharmony_ci	},
152862306a36Sopenharmony_ci};
152962306a36Sopenharmony_ci
153062306a36Sopenharmony_cistatic struct clk_branch gcc_pcie_0_slv_axi_clk = {
153162306a36Sopenharmony_ci	.halt_reg = 0x6b010,
153262306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
153362306a36Sopenharmony_ci	.hwcg_reg = 0x6b010,
153462306a36Sopenharmony_ci	.hwcg_bit = 1,
153562306a36Sopenharmony_ci	.clkr = {
153662306a36Sopenharmony_ci		.enable_reg = 0x5200c,
153762306a36Sopenharmony_ci		.enable_mask = BIT(0),
153862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
153962306a36Sopenharmony_ci			.name = "gcc_pcie_0_slv_axi_clk",
154062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
154162306a36Sopenharmony_ci		},
154262306a36Sopenharmony_ci	},
154362306a36Sopenharmony_ci};
154462306a36Sopenharmony_ci
154562306a36Sopenharmony_cistatic struct clk_branch gcc_pcie_0_slv_q2a_axi_clk = {
154662306a36Sopenharmony_ci	.halt_reg = 0x6b00c,
154762306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
154862306a36Sopenharmony_ci	.clkr = {
154962306a36Sopenharmony_ci		.enable_reg = 0x5200c,
155062306a36Sopenharmony_ci		.enable_mask = BIT(5),
155162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
155262306a36Sopenharmony_ci			.name = "gcc_pcie_0_slv_q2a_axi_clk",
155362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
155462306a36Sopenharmony_ci		},
155562306a36Sopenharmony_ci	},
155662306a36Sopenharmony_ci};
155762306a36Sopenharmony_ci
155862306a36Sopenharmony_cistatic struct clk_branch gcc_pcie_phy_aux_clk = {
155962306a36Sopenharmony_ci	.halt_reg = 0x6f004,
156062306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
156162306a36Sopenharmony_ci	.clkr = {
156262306a36Sopenharmony_ci		.enable_reg = 0x6f004,
156362306a36Sopenharmony_ci		.enable_mask = BIT(0),
156462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
156562306a36Sopenharmony_ci			.name = "gcc_pcie_phy_aux_clk",
156662306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
156762306a36Sopenharmony_ci				&gcc_pcie_0_aux_clk_src.clkr.hw,
156862306a36Sopenharmony_ci			},
156962306a36Sopenharmony_ci			.num_parents = 1,
157062306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
157162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
157262306a36Sopenharmony_ci		},
157362306a36Sopenharmony_ci	},
157462306a36Sopenharmony_ci};
157562306a36Sopenharmony_ci
157662306a36Sopenharmony_cistatic struct clk_branch gcc_pcie_phy_refgen_clk = {
157762306a36Sopenharmony_ci	.halt_reg = 0x6f02c,
157862306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
157962306a36Sopenharmony_ci	.clkr = {
158062306a36Sopenharmony_ci		.enable_reg = 0x6f02c,
158162306a36Sopenharmony_ci		.enable_mask = BIT(0),
158262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
158362306a36Sopenharmony_ci			.name = "gcc_pcie_phy_refgen_clk",
158462306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
158562306a36Sopenharmony_ci				&gcc_pcie_phy_refgen_clk_src.clkr.hw,
158662306a36Sopenharmony_ci			},
158762306a36Sopenharmony_ci			.num_parents = 1,
158862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
158962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
159062306a36Sopenharmony_ci		},
159162306a36Sopenharmony_ci	},
159262306a36Sopenharmony_ci};
159362306a36Sopenharmony_ci
159462306a36Sopenharmony_cistatic struct clk_branch gcc_pdm2_clk = {
159562306a36Sopenharmony_ci	.halt_reg = 0x3300c,
159662306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
159762306a36Sopenharmony_ci	.clkr = {
159862306a36Sopenharmony_ci		.enable_reg = 0x3300c,
159962306a36Sopenharmony_ci		.enable_mask = BIT(0),
160062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
160162306a36Sopenharmony_ci			.name = "gcc_pdm2_clk",
160262306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
160362306a36Sopenharmony_ci				&gcc_pdm2_clk_src.clkr.hw,
160462306a36Sopenharmony_ci			},
160562306a36Sopenharmony_ci			.num_parents = 1,
160662306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
160762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
160862306a36Sopenharmony_ci		},
160962306a36Sopenharmony_ci	},
161062306a36Sopenharmony_ci};
161162306a36Sopenharmony_ci
161262306a36Sopenharmony_cistatic struct clk_branch gcc_pdm_ahb_clk = {
161362306a36Sopenharmony_ci	.halt_reg = 0x33004,
161462306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
161562306a36Sopenharmony_ci	.hwcg_reg = 0x33004,
161662306a36Sopenharmony_ci	.hwcg_bit = 1,
161762306a36Sopenharmony_ci	.clkr = {
161862306a36Sopenharmony_ci		.enable_reg = 0x33004,
161962306a36Sopenharmony_ci		.enable_mask = BIT(0),
162062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
162162306a36Sopenharmony_ci			.name = "gcc_pdm_ahb_clk",
162262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
162362306a36Sopenharmony_ci		},
162462306a36Sopenharmony_ci	},
162562306a36Sopenharmony_ci};
162662306a36Sopenharmony_ci
162762306a36Sopenharmony_cistatic struct clk_branch gcc_pdm_xo4_clk = {
162862306a36Sopenharmony_ci	.halt_reg = 0x33008,
162962306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
163062306a36Sopenharmony_ci	.clkr = {
163162306a36Sopenharmony_ci		.enable_reg = 0x33008,
163262306a36Sopenharmony_ci		.enable_mask = BIT(0),
163362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
163462306a36Sopenharmony_ci			.name = "gcc_pdm_xo4_clk",
163562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
163662306a36Sopenharmony_ci		},
163762306a36Sopenharmony_ci	},
163862306a36Sopenharmony_ci};
163962306a36Sopenharmony_ci
164062306a36Sopenharmony_cistatic struct clk_branch gcc_prng_ahb_clk = {
164162306a36Sopenharmony_ci	.halt_reg = 0x34004,
164262306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
164362306a36Sopenharmony_ci	.hwcg_reg = 0x34004,
164462306a36Sopenharmony_ci	.hwcg_bit = 1,
164562306a36Sopenharmony_ci	.clkr = {
164662306a36Sopenharmony_ci		.enable_reg = 0x52004,
164762306a36Sopenharmony_ci		.enable_mask = BIT(13),
164862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
164962306a36Sopenharmony_ci			.name = "gcc_prng_ahb_clk",
165062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
165162306a36Sopenharmony_ci		},
165262306a36Sopenharmony_ci	},
165362306a36Sopenharmony_ci};
165462306a36Sopenharmony_ci
165562306a36Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap0_core_2x_clk = {
165662306a36Sopenharmony_ci	.halt_reg = 0x17014,
165762306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
165862306a36Sopenharmony_ci	.clkr = {
165962306a36Sopenharmony_ci		.enable_reg = 0x5200c,
166062306a36Sopenharmony_ci		.enable_mask = BIT(9),
166162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
166262306a36Sopenharmony_ci			.name = "gcc_qupv3_wrap0_core_2x_clk",
166362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
166462306a36Sopenharmony_ci		},
166562306a36Sopenharmony_ci	},
166662306a36Sopenharmony_ci};
166762306a36Sopenharmony_ci
166862306a36Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap0_core_clk = {
166962306a36Sopenharmony_ci	.halt_reg = 0x1700c,
167062306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
167162306a36Sopenharmony_ci	.clkr = {
167262306a36Sopenharmony_ci		.enable_reg = 0x5200c,
167362306a36Sopenharmony_ci		.enable_mask = BIT(8),
167462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
167562306a36Sopenharmony_ci			.name = "gcc_qupv3_wrap0_core_clk",
167662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
167762306a36Sopenharmony_ci		},
167862306a36Sopenharmony_ci	},
167962306a36Sopenharmony_ci};
168062306a36Sopenharmony_ci
168162306a36Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap0_s0_clk = {
168262306a36Sopenharmony_ci	.halt_reg = 0x17030,
168362306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
168462306a36Sopenharmony_ci	.clkr = {
168562306a36Sopenharmony_ci		.enable_reg = 0x5200c,
168662306a36Sopenharmony_ci		.enable_mask = BIT(10),
168762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
168862306a36Sopenharmony_ci			.name = "gcc_qupv3_wrap0_s0_clk",
168962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
169062306a36Sopenharmony_ci				&gcc_qupv3_wrap0_s0_clk_src.clkr.hw,
169162306a36Sopenharmony_ci			},
169262306a36Sopenharmony_ci			.num_parents = 1,
169362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
169462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
169562306a36Sopenharmony_ci		},
169662306a36Sopenharmony_ci	},
169762306a36Sopenharmony_ci};
169862306a36Sopenharmony_ci
169962306a36Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap0_s1_clk = {
170062306a36Sopenharmony_ci	.halt_reg = 0x17160,
170162306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
170262306a36Sopenharmony_ci	.clkr = {
170362306a36Sopenharmony_ci		.enable_reg = 0x5200c,
170462306a36Sopenharmony_ci		.enable_mask = BIT(11),
170562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
170662306a36Sopenharmony_ci			.name = "gcc_qupv3_wrap0_s1_clk",
170762306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
170862306a36Sopenharmony_ci				&gcc_qupv3_wrap0_s1_clk_src.clkr.hw,
170962306a36Sopenharmony_ci			},
171062306a36Sopenharmony_ci			.num_parents = 1,
171162306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
171262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
171362306a36Sopenharmony_ci		},
171462306a36Sopenharmony_ci	},
171562306a36Sopenharmony_ci};
171662306a36Sopenharmony_ci
171762306a36Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap0_s2_clk = {
171862306a36Sopenharmony_ci	.halt_reg = 0x17290,
171962306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
172062306a36Sopenharmony_ci	.clkr = {
172162306a36Sopenharmony_ci		.enable_reg = 0x5200c,
172262306a36Sopenharmony_ci		.enable_mask = BIT(12),
172362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
172462306a36Sopenharmony_ci			.name = "gcc_qupv3_wrap0_s2_clk",
172562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
172662306a36Sopenharmony_ci				&gcc_qupv3_wrap0_s2_clk_src.clkr.hw,
172762306a36Sopenharmony_ci			},
172862306a36Sopenharmony_ci			.num_parents = 1,
172962306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
173062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
173162306a36Sopenharmony_ci		},
173262306a36Sopenharmony_ci	},
173362306a36Sopenharmony_ci};
173462306a36Sopenharmony_ci
173562306a36Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap0_s3_clk = {
173662306a36Sopenharmony_ci	.halt_reg = 0x173c0,
173762306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
173862306a36Sopenharmony_ci	.clkr = {
173962306a36Sopenharmony_ci		.enable_reg = 0x5200c,
174062306a36Sopenharmony_ci		.enable_mask = BIT(13),
174162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
174262306a36Sopenharmony_ci			.name = "gcc_qupv3_wrap0_s3_clk",
174362306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
174462306a36Sopenharmony_ci				&gcc_qupv3_wrap0_s3_clk_src.clkr.hw,
174562306a36Sopenharmony_ci			},
174662306a36Sopenharmony_ci			.num_parents = 1,
174762306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
174862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
174962306a36Sopenharmony_ci		},
175062306a36Sopenharmony_ci	},
175162306a36Sopenharmony_ci};
175262306a36Sopenharmony_ci
175362306a36Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap0_s4_clk = {
175462306a36Sopenharmony_ci	.halt_reg = 0x174f0,
175562306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
175662306a36Sopenharmony_ci	.clkr = {
175762306a36Sopenharmony_ci		.enable_reg = 0x5200c,
175862306a36Sopenharmony_ci		.enable_mask = BIT(14),
175962306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
176062306a36Sopenharmony_ci			.name = "gcc_qupv3_wrap0_s4_clk",
176162306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
176262306a36Sopenharmony_ci				&gcc_qupv3_wrap0_s4_clk_src.clkr.hw,
176362306a36Sopenharmony_ci			},
176462306a36Sopenharmony_ci			.num_parents = 1,
176562306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
176662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
176762306a36Sopenharmony_ci		},
176862306a36Sopenharmony_ci	},
176962306a36Sopenharmony_ci};
177062306a36Sopenharmony_ci
177162306a36Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap0_s5_clk = {
177262306a36Sopenharmony_ci	.halt_reg = 0x17620,
177362306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
177462306a36Sopenharmony_ci	.clkr = {
177562306a36Sopenharmony_ci		.enable_reg = 0x5200c,
177662306a36Sopenharmony_ci		.enable_mask = BIT(15),
177762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
177862306a36Sopenharmony_ci			.name = "gcc_qupv3_wrap0_s5_clk",
177962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
178062306a36Sopenharmony_ci				&gcc_qupv3_wrap0_s5_clk_src.clkr.hw,
178162306a36Sopenharmony_ci			},
178262306a36Sopenharmony_ci			.num_parents = 1,
178362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
178462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
178562306a36Sopenharmony_ci		},
178662306a36Sopenharmony_ci	},
178762306a36Sopenharmony_ci};
178862306a36Sopenharmony_ci
178962306a36Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap0_s6_clk = {
179062306a36Sopenharmony_ci	.halt_reg = 0x17750,
179162306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
179262306a36Sopenharmony_ci	.clkr = {
179362306a36Sopenharmony_ci		.enable_reg = 0x5200c,
179462306a36Sopenharmony_ci		.enable_mask = BIT(16),
179562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
179662306a36Sopenharmony_ci			.name = "gcc_qupv3_wrap0_s6_clk",
179762306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
179862306a36Sopenharmony_ci				&gcc_qupv3_wrap0_s6_clk_src.clkr.hw,
179962306a36Sopenharmony_ci			},
180062306a36Sopenharmony_ci			.num_parents = 1,
180162306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
180262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
180362306a36Sopenharmony_ci		},
180462306a36Sopenharmony_ci	},
180562306a36Sopenharmony_ci};
180662306a36Sopenharmony_ci
180762306a36Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap0_s7_clk = {
180862306a36Sopenharmony_ci	.halt_reg = 0x17880,
180962306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
181062306a36Sopenharmony_ci	.clkr = {
181162306a36Sopenharmony_ci		.enable_reg = 0x5200c,
181262306a36Sopenharmony_ci		.enable_mask = BIT(17),
181362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
181462306a36Sopenharmony_ci			.name = "gcc_qupv3_wrap0_s7_clk",
181562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
181662306a36Sopenharmony_ci				&gcc_qupv3_wrap0_s7_clk_src.clkr.hw,
181762306a36Sopenharmony_ci			},
181862306a36Sopenharmony_ci			.num_parents = 1,
181962306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
182062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
182162306a36Sopenharmony_ci		},
182262306a36Sopenharmony_ci	},
182362306a36Sopenharmony_ci};
182462306a36Sopenharmony_ci
182562306a36Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap1_core_2x_clk = {
182662306a36Sopenharmony_ci	.halt_reg = 0x18004,
182762306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
182862306a36Sopenharmony_ci	.clkr = {
182962306a36Sopenharmony_ci		.enable_reg = 0x5200c,
183062306a36Sopenharmony_ci		.enable_mask = BIT(18),
183162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
183262306a36Sopenharmony_ci			.name = "gcc_qupv3_wrap1_core_2x_clk",
183362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
183462306a36Sopenharmony_ci		},
183562306a36Sopenharmony_ci	},
183662306a36Sopenharmony_ci};
183762306a36Sopenharmony_ci
183862306a36Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap1_core_clk = {
183962306a36Sopenharmony_ci	.halt_reg = 0x18008,
184062306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
184162306a36Sopenharmony_ci	.clkr = {
184262306a36Sopenharmony_ci		.enable_reg = 0x5200c,
184362306a36Sopenharmony_ci		.enable_mask = BIT(19),
184462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
184562306a36Sopenharmony_ci			.name = "gcc_qupv3_wrap1_core_clk",
184662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
184762306a36Sopenharmony_ci		},
184862306a36Sopenharmony_ci	},
184962306a36Sopenharmony_ci};
185062306a36Sopenharmony_ci
185162306a36Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap1_s0_clk = {
185262306a36Sopenharmony_ci	.halt_reg = 0x18014,
185362306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
185462306a36Sopenharmony_ci	.clkr = {
185562306a36Sopenharmony_ci		.enable_reg = 0x5200c,
185662306a36Sopenharmony_ci		.enable_mask = BIT(22),
185762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
185862306a36Sopenharmony_ci			.name = "gcc_qupv3_wrap1_s0_clk",
185962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
186062306a36Sopenharmony_ci				&gcc_qupv3_wrap1_s0_clk_src.clkr.hw,
186162306a36Sopenharmony_ci			},
186262306a36Sopenharmony_ci			.num_parents = 1,
186362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
186462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
186562306a36Sopenharmony_ci		},
186662306a36Sopenharmony_ci	},
186762306a36Sopenharmony_ci};
186862306a36Sopenharmony_ci
186962306a36Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap1_s1_clk = {
187062306a36Sopenharmony_ci	.halt_reg = 0x18144,
187162306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
187262306a36Sopenharmony_ci	.clkr = {
187362306a36Sopenharmony_ci		.enable_reg = 0x5200c,
187462306a36Sopenharmony_ci		.enable_mask = BIT(23),
187562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
187662306a36Sopenharmony_ci			.name = "gcc_qupv3_wrap1_s1_clk",
187762306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
187862306a36Sopenharmony_ci				&gcc_qupv3_wrap1_s1_clk_src.clkr.hw,
187962306a36Sopenharmony_ci			},
188062306a36Sopenharmony_ci			.num_parents = 1,
188162306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
188262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
188362306a36Sopenharmony_ci		},
188462306a36Sopenharmony_ci	},
188562306a36Sopenharmony_ci};
188662306a36Sopenharmony_ci
188762306a36Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap1_s2_clk = {
188862306a36Sopenharmony_ci	.halt_reg = 0x18274,
188962306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
189062306a36Sopenharmony_ci	.clkr = {
189162306a36Sopenharmony_ci		.enable_reg = 0x5200c,
189262306a36Sopenharmony_ci		.enable_mask = BIT(24),
189362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
189462306a36Sopenharmony_ci			.name = "gcc_qupv3_wrap1_s2_clk",
189562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
189662306a36Sopenharmony_ci				&gcc_qupv3_wrap1_s2_clk_src.clkr.hw,
189762306a36Sopenharmony_ci			},
189862306a36Sopenharmony_ci			.num_parents = 1,
189962306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
190062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
190162306a36Sopenharmony_ci		},
190262306a36Sopenharmony_ci	},
190362306a36Sopenharmony_ci};
190462306a36Sopenharmony_ci
190562306a36Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap1_s3_clk = {
190662306a36Sopenharmony_ci	.halt_reg = 0x183a4,
190762306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
190862306a36Sopenharmony_ci	.clkr = {
190962306a36Sopenharmony_ci		.enable_reg = 0x5200c,
191062306a36Sopenharmony_ci		.enable_mask = BIT(25),
191162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
191262306a36Sopenharmony_ci			.name = "gcc_qupv3_wrap1_s3_clk",
191362306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
191462306a36Sopenharmony_ci				&gcc_qupv3_wrap1_s3_clk_src.clkr.hw,
191562306a36Sopenharmony_ci			},
191662306a36Sopenharmony_ci			.num_parents = 1,
191762306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
191862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
191962306a36Sopenharmony_ci		},
192062306a36Sopenharmony_ci	},
192162306a36Sopenharmony_ci};
192262306a36Sopenharmony_ci
192362306a36Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap1_s4_clk = {
192462306a36Sopenharmony_ci	.halt_reg = 0x184d4,
192562306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
192662306a36Sopenharmony_ci	.clkr = {
192762306a36Sopenharmony_ci		.enable_reg = 0x5200c,
192862306a36Sopenharmony_ci		.enable_mask = BIT(26),
192962306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
193062306a36Sopenharmony_ci			.name = "gcc_qupv3_wrap1_s4_clk",
193162306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
193262306a36Sopenharmony_ci				&gcc_qupv3_wrap1_s4_clk_src.clkr.hw,
193362306a36Sopenharmony_ci			},
193462306a36Sopenharmony_ci			.num_parents = 1,
193562306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
193662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
193762306a36Sopenharmony_ci		},
193862306a36Sopenharmony_ci	},
193962306a36Sopenharmony_ci};
194062306a36Sopenharmony_ci
194162306a36Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap1_s5_clk = {
194262306a36Sopenharmony_ci	.halt_reg = 0x18604,
194362306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
194462306a36Sopenharmony_ci	.clkr = {
194562306a36Sopenharmony_ci		.enable_reg = 0x5200c,
194662306a36Sopenharmony_ci		.enable_mask = BIT(27),
194762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
194862306a36Sopenharmony_ci			.name = "gcc_qupv3_wrap1_s5_clk",
194962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
195062306a36Sopenharmony_ci				&gcc_qupv3_wrap1_s5_clk_src.clkr.hw,
195162306a36Sopenharmony_ci			},
195262306a36Sopenharmony_ci			.num_parents = 1,
195362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
195462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
195562306a36Sopenharmony_ci		},
195662306a36Sopenharmony_ci	},
195762306a36Sopenharmony_ci};
195862306a36Sopenharmony_ci
195962306a36Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap1_s6_clk = {
196062306a36Sopenharmony_ci	.halt_reg = 0x18734,
196162306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
196262306a36Sopenharmony_ci	.clkr = {
196362306a36Sopenharmony_ci		.enable_reg = 0x5200c,
196462306a36Sopenharmony_ci		.enable_mask = BIT(28),
196562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
196662306a36Sopenharmony_ci			.name = "gcc_qupv3_wrap1_s6_clk",
196762306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
196862306a36Sopenharmony_ci				&gcc_qupv3_wrap1_s6_clk_src.clkr.hw,
196962306a36Sopenharmony_ci			},
197062306a36Sopenharmony_ci			.num_parents = 1,
197162306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
197262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
197362306a36Sopenharmony_ci		},
197462306a36Sopenharmony_ci	},
197562306a36Sopenharmony_ci};
197662306a36Sopenharmony_ci
197762306a36Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap1_s7_clk = {
197862306a36Sopenharmony_ci	.halt_reg = 0x18864,
197962306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
198062306a36Sopenharmony_ci	.clkr = {
198162306a36Sopenharmony_ci		.enable_reg = 0x5200c,
198262306a36Sopenharmony_ci		.enable_mask = BIT(29),
198362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
198462306a36Sopenharmony_ci			.name = "gcc_qupv3_wrap1_s7_clk",
198562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
198662306a36Sopenharmony_ci				&gcc_qupv3_wrap1_s7_clk_src.clkr.hw,
198762306a36Sopenharmony_ci			},
198862306a36Sopenharmony_ci			.num_parents = 1,
198962306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
199062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
199162306a36Sopenharmony_ci		},
199262306a36Sopenharmony_ci	},
199362306a36Sopenharmony_ci};
199462306a36Sopenharmony_ci
199562306a36Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap_0_m_ahb_clk = {
199662306a36Sopenharmony_ci	.halt_reg = 0x17004,
199762306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
199862306a36Sopenharmony_ci	.clkr = {
199962306a36Sopenharmony_ci		.enable_reg = 0x5200c,
200062306a36Sopenharmony_ci		.enable_mask = BIT(6),
200162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
200262306a36Sopenharmony_ci			.name = "gcc_qupv3_wrap_0_m_ahb_clk",
200362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
200462306a36Sopenharmony_ci		},
200562306a36Sopenharmony_ci	},
200662306a36Sopenharmony_ci};
200762306a36Sopenharmony_ci
200862306a36Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap_0_s_ahb_clk = {
200962306a36Sopenharmony_ci	.halt_reg = 0x17008,
201062306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
201162306a36Sopenharmony_ci	.hwcg_reg = 0x17008,
201262306a36Sopenharmony_ci	.hwcg_bit = 1,
201362306a36Sopenharmony_ci	.clkr = {
201462306a36Sopenharmony_ci		.enable_reg = 0x5200c,
201562306a36Sopenharmony_ci		.enable_mask = BIT(7),
201662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
201762306a36Sopenharmony_ci			.name = "gcc_qupv3_wrap_0_s_ahb_clk",
201862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
201962306a36Sopenharmony_ci		},
202062306a36Sopenharmony_ci	},
202162306a36Sopenharmony_ci};
202262306a36Sopenharmony_ci
202362306a36Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap_1_m_ahb_clk = {
202462306a36Sopenharmony_ci	.halt_reg = 0x1800c,
202562306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
202662306a36Sopenharmony_ci	.clkr = {
202762306a36Sopenharmony_ci		.enable_reg = 0x5200c,
202862306a36Sopenharmony_ci		.enable_mask = BIT(20),
202962306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
203062306a36Sopenharmony_ci			.name = "gcc_qupv3_wrap_1_m_ahb_clk",
203162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
203262306a36Sopenharmony_ci		},
203362306a36Sopenharmony_ci	},
203462306a36Sopenharmony_ci};
203562306a36Sopenharmony_ci
203662306a36Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap_1_s_ahb_clk = {
203762306a36Sopenharmony_ci	.halt_reg = 0x18010,
203862306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
203962306a36Sopenharmony_ci	.hwcg_reg = 0x18010,
204062306a36Sopenharmony_ci	.hwcg_bit = 1,
204162306a36Sopenharmony_ci	.clkr = {
204262306a36Sopenharmony_ci		.enable_reg = 0x5200c,
204362306a36Sopenharmony_ci		.enable_mask = BIT(21),
204462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
204562306a36Sopenharmony_ci			.name = "gcc_qupv3_wrap_1_s_ahb_clk",
204662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
204762306a36Sopenharmony_ci		},
204862306a36Sopenharmony_ci	},
204962306a36Sopenharmony_ci};
205062306a36Sopenharmony_ci
205162306a36Sopenharmony_cistatic struct clk_branch gcc_sdcc1_ahb_clk = {
205262306a36Sopenharmony_ci	.halt_reg = 0x12008,
205362306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
205462306a36Sopenharmony_ci	.clkr = {
205562306a36Sopenharmony_ci		.enable_reg = 0x12008,
205662306a36Sopenharmony_ci		.enable_mask = BIT(0),
205762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
205862306a36Sopenharmony_ci			.name = "gcc_sdcc1_ahb_clk",
205962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
206062306a36Sopenharmony_ci		},
206162306a36Sopenharmony_ci	},
206262306a36Sopenharmony_ci};
206362306a36Sopenharmony_ci
206462306a36Sopenharmony_cistatic struct clk_branch gcc_sdcc1_apps_clk = {
206562306a36Sopenharmony_ci	.halt_reg = 0x1200c,
206662306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
206762306a36Sopenharmony_ci	.clkr = {
206862306a36Sopenharmony_ci		.enable_reg = 0x1200c,
206962306a36Sopenharmony_ci		.enable_mask = BIT(0),
207062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
207162306a36Sopenharmony_ci			.name = "gcc_sdcc1_apps_clk",
207262306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
207362306a36Sopenharmony_ci				&gcc_sdcc1_apps_clk_src.clkr.hw,
207462306a36Sopenharmony_ci			},
207562306a36Sopenharmony_ci			.num_parents = 1,
207662306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
207762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
207862306a36Sopenharmony_ci		},
207962306a36Sopenharmony_ci	},
208062306a36Sopenharmony_ci};
208162306a36Sopenharmony_ci
208262306a36Sopenharmony_cistatic struct clk_branch gcc_sdcc1_ice_core_clk = {
208362306a36Sopenharmony_ci	.halt_reg = 0x12040,
208462306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
208562306a36Sopenharmony_ci	.clkr = {
208662306a36Sopenharmony_ci		.enable_reg = 0x12040,
208762306a36Sopenharmony_ci		.enable_mask = BIT(0),
208862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
208962306a36Sopenharmony_ci			.name = "gcc_sdcc1_ice_core_clk",
209062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
209162306a36Sopenharmony_ci				&gcc_sdcc1_ice_core_clk_src.clkr.hw,
209262306a36Sopenharmony_ci			},
209362306a36Sopenharmony_ci			.num_parents = 1,
209462306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
209562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
209662306a36Sopenharmony_ci		},
209762306a36Sopenharmony_ci	},
209862306a36Sopenharmony_ci};
209962306a36Sopenharmony_ci
210062306a36Sopenharmony_cistatic struct clk_branch gcc_sdcc2_ahb_clk = {
210162306a36Sopenharmony_ci	.halt_reg = 0x14008,
210262306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
210362306a36Sopenharmony_ci	.clkr = {
210462306a36Sopenharmony_ci		.enable_reg = 0x14008,
210562306a36Sopenharmony_ci		.enable_mask = BIT(0),
210662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
210762306a36Sopenharmony_ci			.name = "gcc_sdcc2_ahb_clk",
210862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
210962306a36Sopenharmony_ci		},
211062306a36Sopenharmony_ci	},
211162306a36Sopenharmony_ci};
211262306a36Sopenharmony_ci
211362306a36Sopenharmony_cistatic struct clk_branch gcc_sdcc2_apps_clk = {
211462306a36Sopenharmony_ci	.halt_reg = 0x14004,
211562306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
211662306a36Sopenharmony_ci	.clkr = {
211762306a36Sopenharmony_ci		.enable_reg = 0x14004,
211862306a36Sopenharmony_ci		.enable_mask = BIT(0),
211962306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
212062306a36Sopenharmony_ci			.name = "gcc_sdcc2_apps_clk",
212162306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
212262306a36Sopenharmony_ci				&gcc_sdcc2_apps_clk_src.clkr.hw,
212362306a36Sopenharmony_ci			},
212462306a36Sopenharmony_ci			.num_parents = 1,
212562306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
212662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
212762306a36Sopenharmony_ci		},
212862306a36Sopenharmony_ci	},
212962306a36Sopenharmony_ci};
213062306a36Sopenharmony_ci
213162306a36Sopenharmony_cistatic struct clk_branch gcc_sdcc4_ahb_clk = {
213262306a36Sopenharmony_ci	.halt_reg = 0x16008,
213362306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
213462306a36Sopenharmony_ci	.clkr = {
213562306a36Sopenharmony_ci		.enable_reg = 0x16008,
213662306a36Sopenharmony_ci		.enable_mask = BIT(0),
213762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
213862306a36Sopenharmony_ci			.name = "gcc_sdcc4_ahb_clk",
213962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
214062306a36Sopenharmony_ci		},
214162306a36Sopenharmony_ci	},
214262306a36Sopenharmony_ci};
214362306a36Sopenharmony_ci
214462306a36Sopenharmony_cistatic struct clk_branch gcc_sdcc4_apps_clk = {
214562306a36Sopenharmony_ci	.halt_reg = 0x16004,
214662306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
214762306a36Sopenharmony_ci	.clkr = {
214862306a36Sopenharmony_ci		.enable_reg = 0x16004,
214962306a36Sopenharmony_ci		.enable_mask = BIT(0),
215062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
215162306a36Sopenharmony_ci			.name = "gcc_sdcc4_apps_clk",
215262306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
215362306a36Sopenharmony_ci				&gcc_sdcc4_apps_clk_src.clkr.hw,
215462306a36Sopenharmony_ci			},
215562306a36Sopenharmony_ci			.num_parents = 1,
215662306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
215762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
215862306a36Sopenharmony_ci		},
215962306a36Sopenharmony_ci	},
216062306a36Sopenharmony_ci};
216162306a36Sopenharmony_ci
216262306a36Sopenharmony_cistatic struct clk_branch gcc_sys_noc_cpuss_ahb_clk = {
216362306a36Sopenharmony_ci	.halt_reg = 0x4144,
216462306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
216562306a36Sopenharmony_ci	.clkr = {
216662306a36Sopenharmony_ci		.enable_reg = 0x52004,
216762306a36Sopenharmony_ci		.enable_mask = BIT(0),
216862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
216962306a36Sopenharmony_ci			.name = "gcc_sys_noc_cpuss_ahb_clk",
217062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
217162306a36Sopenharmony_ci				&gcc_cpuss_ahb_clk_src.clkr.hw,
217262306a36Sopenharmony_ci			},
217362306a36Sopenharmony_ci			.num_parents = 1,
217462306a36Sopenharmony_ci			.flags = CLK_IS_CRITICAL | CLK_SET_RATE_PARENT,
217562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
217662306a36Sopenharmony_ci		},
217762306a36Sopenharmony_ci	},
217862306a36Sopenharmony_ci};
217962306a36Sopenharmony_ci
218062306a36Sopenharmony_cistatic struct clk_branch gcc_tsif_ahb_clk = {
218162306a36Sopenharmony_ci	.halt_reg = 0x36004,
218262306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
218362306a36Sopenharmony_ci	.clkr = {
218462306a36Sopenharmony_ci		.enable_reg = 0x36004,
218562306a36Sopenharmony_ci		.enable_mask = BIT(0),
218662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
218762306a36Sopenharmony_ci			.name = "gcc_tsif_ahb_clk",
218862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
218962306a36Sopenharmony_ci		},
219062306a36Sopenharmony_ci	},
219162306a36Sopenharmony_ci};
219262306a36Sopenharmony_ci
219362306a36Sopenharmony_cistatic struct clk_branch gcc_tsif_inactivity_timers_clk = {
219462306a36Sopenharmony_ci	.halt_reg = 0x3600c,
219562306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
219662306a36Sopenharmony_ci	.clkr = {
219762306a36Sopenharmony_ci		.enable_reg = 0x3600c,
219862306a36Sopenharmony_ci		.enable_mask = BIT(0),
219962306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
220062306a36Sopenharmony_ci			.name = "gcc_tsif_inactivity_timers_clk",
220162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
220262306a36Sopenharmony_ci		},
220362306a36Sopenharmony_ci	},
220462306a36Sopenharmony_ci};
220562306a36Sopenharmony_ci
220662306a36Sopenharmony_cistatic struct clk_branch gcc_tsif_ref_clk = {
220762306a36Sopenharmony_ci	.halt_reg = 0x36008,
220862306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
220962306a36Sopenharmony_ci	.clkr = {
221062306a36Sopenharmony_ci		.enable_reg = 0x36008,
221162306a36Sopenharmony_ci		.enable_mask = BIT(0),
221262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
221362306a36Sopenharmony_ci			.name = "gcc_tsif_ref_clk",
221462306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
221562306a36Sopenharmony_ci				&gcc_tsif_ref_clk_src.clkr.hw,
221662306a36Sopenharmony_ci			},
221762306a36Sopenharmony_ci			.num_parents = 1,
221862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
221962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
222062306a36Sopenharmony_ci		},
222162306a36Sopenharmony_ci	},
222262306a36Sopenharmony_ci};
222362306a36Sopenharmony_ci
222462306a36Sopenharmony_cistatic struct clk_branch gcc_ufs_mem_clkref_clk = {
222562306a36Sopenharmony_ci	.halt_reg = 0x8c000,
222662306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
222762306a36Sopenharmony_ci	.clkr = {
222862306a36Sopenharmony_ci		.enable_reg = 0x8c000,
222962306a36Sopenharmony_ci		.enable_mask = BIT(0),
223062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
223162306a36Sopenharmony_ci			.name = "gcc_ufs_mem_clkref_clk",
223262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
223362306a36Sopenharmony_ci		},
223462306a36Sopenharmony_ci	},
223562306a36Sopenharmony_ci};
223662306a36Sopenharmony_ci
223762306a36Sopenharmony_cistatic struct clk_branch gcc_ufs_phy_ahb_clk = {
223862306a36Sopenharmony_ci	.halt_reg = 0x77014,
223962306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
224062306a36Sopenharmony_ci	.hwcg_reg = 0x77014,
224162306a36Sopenharmony_ci	.hwcg_bit = 1,
224262306a36Sopenharmony_ci	.clkr = {
224362306a36Sopenharmony_ci		.enable_reg = 0x77014,
224462306a36Sopenharmony_ci		.enable_mask = BIT(0),
224562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
224662306a36Sopenharmony_ci			.name = "gcc_ufs_phy_ahb_clk",
224762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
224862306a36Sopenharmony_ci		},
224962306a36Sopenharmony_ci	},
225062306a36Sopenharmony_ci};
225162306a36Sopenharmony_ci
225262306a36Sopenharmony_cistatic struct clk_branch gcc_ufs_phy_axi_clk = {
225362306a36Sopenharmony_ci	.halt_reg = 0x77038,
225462306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
225562306a36Sopenharmony_ci	.hwcg_reg = 0x77038,
225662306a36Sopenharmony_ci	.hwcg_bit = 1,
225762306a36Sopenharmony_ci	.clkr = {
225862306a36Sopenharmony_ci		.enable_reg = 0x77038,
225962306a36Sopenharmony_ci		.enable_mask = BIT(0),
226062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
226162306a36Sopenharmony_ci			.name = "gcc_ufs_phy_axi_clk",
226262306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
226362306a36Sopenharmony_ci				&gcc_ufs_phy_axi_clk_src.clkr.hw,
226462306a36Sopenharmony_ci			},
226562306a36Sopenharmony_ci			.num_parents = 1,
226662306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
226762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
226862306a36Sopenharmony_ci		},
226962306a36Sopenharmony_ci	},
227062306a36Sopenharmony_ci};
227162306a36Sopenharmony_ci
227262306a36Sopenharmony_cistatic struct clk_branch gcc_ufs_phy_axi_hw_ctl_clk = {
227362306a36Sopenharmony_ci	.halt_reg = 0x77038,
227462306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
227562306a36Sopenharmony_ci	.hwcg_reg = 0x77038,
227662306a36Sopenharmony_ci	.hwcg_bit = 1,
227762306a36Sopenharmony_ci	.clkr = {
227862306a36Sopenharmony_ci		.enable_reg = 0x77038,
227962306a36Sopenharmony_ci		.enable_mask = BIT(1),
228062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
228162306a36Sopenharmony_ci			.name = "gcc_ufs_phy_axi_hw_ctl_clk",
228262306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
228362306a36Sopenharmony_ci				&gcc_ufs_phy_axi_clk.clkr.hw,
228462306a36Sopenharmony_ci			},
228562306a36Sopenharmony_ci			.num_parents = 1,
228662306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
228762306a36Sopenharmony_ci			.ops = &clk_branch_simple_ops,
228862306a36Sopenharmony_ci		},
228962306a36Sopenharmony_ci	},
229062306a36Sopenharmony_ci};
229162306a36Sopenharmony_ci
229262306a36Sopenharmony_cistatic struct clk_branch gcc_ufs_phy_ice_core_clk = {
229362306a36Sopenharmony_ci	.halt_reg = 0x77090,
229462306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
229562306a36Sopenharmony_ci	.hwcg_reg = 0x77090,
229662306a36Sopenharmony_ci	.hwcg_bit = 1,
229762306a36Sopenharmony_ci	.clkr = {
229862306a36Sopenharmony_ci		.enable_reg = 0x77090,
229962306a36Sopenharmony_ci		.enable_mask = BIT(0),
230062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
230162306a36Sopenharmony_ci			.name = "gcc_ufs_phy_ice_core_clk",
230262306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
230362306a36Sopenharmony_ci				&gcc_ufs_phy_ice_core_clk_src.clkr.hw,
230462306a36Sopenharmony_ci			},
230562306a36Sopenharmony_ci			.num_parents = 1,
230662306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
230762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
230862306a36Sopenharmony_ci		},
230962306a36Sopenharmony_ci	},
231062306a36Sopenharmony_ci};
231162306a36Sopenharmony_ci
231262306a36Sopenharmony_cistatic struct clk_branch gcc_ufs_phy_ice_core_hw_ctl_clk = {
231362306a36Sopenharmony_ci	.halt_reg = 0x77090,
231462306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
231562306a36Sopenharmony_ci	.hwcg_reg = 0x77090,
231662306a36Sopenharmony_ci	.hwcg_bit = 1,
231762306a36Sopenharmony_ci	.clkr = {
231862306a36Sopenharmony_ci		.enable_reg = 0x77090,
231962306a36Sopenharmony_ci		.enable_mask = BIT(1),
232062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
232162306a36Sopenharmony_ci			.name = "gcc_ufs_phy_ice_core_hw_ctl_clk",
232262306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
232362306a36Sopenharmony_ci				&gcc_ufs_phy_ice_core_clk.clkr.hw,
232462306a36Sopenharmony_ci			},
232562306a36Sopenharmony_ci			.num_parents = 1,
232662306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
232762306a36Sopenharmony_ci			.ops = &clk_branch_simple_ops,
232862306a36Sopenharmony_ci		},
232962306a36Sopenharmony_ci	},
233062306a36Sopenharmony_ci};
233162306a36Sopenharmony_ci
233262306a36Sopenharmony_cistatic struct clk_branch gcc_ufs_phy_phy_aux_clk = {
233362306a36Sopenharmony_ci	.halt_reg = 0x77094,
233462306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
233562306a36Sopenharmony_ci	.hwcg_reg = 0x77094,
233662306a36Sopenharmony_ci	.hwcg_bit = 1,
233762306a36Sopenharmony_ci	.clkr = {
233862306a36Sopenharmony_ci		.enable_reg = 0x77094,
233962306a36Sopenharmony_ci		.enable_mask = BIT(0),
234062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
234162306a36Sopenharmony_ci			.name = "gcc_ufs_phy_phy_aux_clk",
234262306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
234362306a36Sopenharmony_ci				&gcc_ufs_phy_phy_aux_clk_src.clkr.hw,
234462306a36Sopenharmony_ci			},
234562306a36Sopenharmony_ci			.num_parents = 1,
234662306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
234762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
234862306a36Sopenharmony_ci		},
234962306a36Sopenharmony_ci	},
235062306a36Sopenharmony_ci};
235162306a36Sopenharmony_ci
235262306a36Sopenharmony_cistatic struct clk_branch gcc_ufs_phy_phy_aux_hw_ctl_clk = {
235362306a36Sopenharmony_ci	.halt_reg = 0x77094,
235462306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
235562306a36Sopenharmony_ci	.hwcg_reg = 0x77094,
235662306a36Sopenharmony_ci	.hwcg_bit = 1,
235762306a36Sopenharmony_ci	.clkr = {
235862306a36Sopenharmony_ci		.enable_reg = 0x77094,
235962306a36Sopenharmony_ci		.enable_mask = BIT(1),
236062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
236162306a36Sopenharmony_ci			.name = "gcc_ufs_phy_phy_aux_hw_ctl_clk",
236262306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
236362306a36Sopenharmony_ci				&gcc_ufs_phy_phy_aux_clk.clkr.hw,
236462306a36Sopenharmony_ci			},
236562306a36Sopenharmony_ci			.num_parents = 1,
236662306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
236762306a36Sopenharmony_ci			.ops = &clk_branch_simple_ops,
236862306a36Sopenharmony_ci		},
236962306a36Sopenharmony_ci	},
237062306a36Sopenharmony_ci};
237162306a36Sopenharmony_ci
237262306a36Sopenharmony_cistatic struct clk_branch gcc_ufs_phy_rx_symbol_0_clk = {
237362306a36Sopenharmony_ci	.halt_reg = 0x7701c,
237462306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_SKIP,
237562306a36Sopenharmony_ci	.clkr = {
237662306a36Sopenharmony_ci		.enable_reg = 0x7701c,
237762306a36Sopenharmony_ci		.enable_mask = BIT(0),
237862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
237962306a36Sopenharmony_ci			.name = "gcc_ufs_phy_rx_symbol_0_clk",
238062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
238162306a36Sopenharmony_ci		},
238262306a36Sopenharmony_ci	},
238362306a36Sopenharmony_ci};
238462306a36Sopenharmony_ci
238562306a36Sopenharmony_cistatic struct clk_branch gcc_ufs_phy_tx_symbol_0_clk = {
238662306a36Sopenharmony_ci	.halt_reg = 0x77018,
238762306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_SKIP,
238862306a36Sopenharmony_ci	.clkr = {
238962306a36Sopenharmony_ci		.enable_reg = 0x77018,
239062306a36Sopenharmony_ci		.enable_mask = BIT(0),
239162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
239262306a36Sopenharmony_ci			.name = "gcc_ufs_phy_tx_symbol_0_clk",
239362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
239462306a36Sopenharmony_ci		},
239562306a36Sopenharmony_ci	},
239662306a36Sopenharmony_ci};
239762306a36Sopenharmony_ci
239862306a36Sopenharmony_cistatic struct clk_branch gcc_ufs_phy_unipro_core_clk = {
239962306a36Sopenharmony_ci	.halt_reg = 0x7708c,
240062306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
240162306a36Sopenharmony_ci	.hwcg_reg = 0x7708c,
240262306a36Sopenharmony_ci	.hwcg_bit = 1,
240362306a36Sopenharmony_ci	.clkr = {
240462306a36Sopenharmony_ci		.enable_reg = 0x7708c,
240562306a36Sopenharmony_ci		.enable_mask = BIT(0),
240662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
240762306a36Sopenharmony_ci			.name = "gcc_ufs_phy_unipro_core_clk",
240862306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
240962306a36Sopenharmony_ci				&gcc_ufs_phy_unipro_core_clk_src.clkr.hw,
241062306a36Sopenharmony_ci			},
241162306a36Sopenharmony_ci			.num_parents = 1,
241262306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
241362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
241462306a36Sopenharmony_ci		},
241562306a36Sopenharmony_ci	},
241662306a36Sopenharmony_ci};
241762306a36Sopenharmony_ci
241862306a36Sopenharmony_cistatic struct clk_branch gcc_ufs_phy_unipro_core_hw_ctl_clk = {
241962306a36Sopenharmony_ci	.halt_reg = 0x7708c,
242062306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
242162306a36Sopenharmony_ci	.hwcg_reg = 0x7708c,
242262306a36Sopenharmony_ci	.hwcg_bit = 1,
242362306a36Sopenharmony_ci	.clkr = {
242462306a36Sopenharmony_ci		.enable_reg = 0x7708c,
242562306a36Sopenharmony_ci		.enable_mask = BIT(1),
242662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
242762306a36Sopenharmony_ci			.name = "gcc_ufs_phy_unipro_core_hw_ctl_clk",
242862306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
242962306a36Sopenharmony_ci				&gcc_ufs_phy_unipro_core_clk.clkr.hw,
243062306a36Sopenharmony_ci			},
243162306a36Sopenharmony_ci			.num_parents = 1,
243262306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
243362306a36Sopenharmony_ci			.ops = &clk_branch_simple_ops,
243462306a36Sopenharmony_ci		},
243562306a36Sopenharmony_ci	},
243662306a36Sopenharmony_ci};
243762306a36Sopenharmony_ci
243862306a36Sopenharmony_cistatic struct clk_branch gcc_usb30_prim_master_clk = {
243962306a36Sopenharmony_ci	.halt_reg = 0xf010,
244062306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
244162306a36Sopenharmony_ci	.clkr = {
244262306a36Sopenharmony_ci		.enable_reg = 0xf010,
244362306a36Sopenharmony_ci		.enable_mask = BIT(0),
244462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
244562306a36Sopenharmony_ci			.name = "gcc_usb30_prim_master_clk",
244662306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
244762306a36Sopenharmony_ci				&gcc_usb30_prim_master_clk_src.clkr.hw,
244862306a36Sopenharmony_ci			},
244962306a36Sopenharmony_ci			.num_parents = 1,
245062306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
245162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
245262306a36Sopenharmony_ci		},
245362306a36Sopenharmony_ci	},
245462306a36Sopenharmony_ci};
245562306a36Sopenharmony_ci
245662306a36Sopenharmony_cistatic struct clk_branch gcc_usb30_prim_mock_utmi_clk = {
245762306a36Sopenharmony_ci	.halt_reg = 0xf018,
245862306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
245962306a36Sopenharmony_ci	.clkr = {
246062306a36Sopenharmony_ci		.enable_reg = 0xf018,
246162306a36Sopenharmony_ci		.enable_mask = BIT(0),
246262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
246362306a36Sopenharmony_ci			.name = "gcc_usb30_prim_mock_utmi_clk",
246462306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
246562306a36Sopenharmony_ci				&gcc_usb30_prim_mock_utmi_clk_src.clkr.hw,
246662306a36Sopenharmony_ci			},
246762306a36Sopenharmony_ci			.num_parents = 1,
246862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
246962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
247062306a36Sopenharmony_ci		},
247162306a36Sopenharmony_ci	},
247262306a36Sopenharmony_ci};
247362306a36Sopenharmony_ci
247462306a36Sopenharmony_cistatic struct clk_branch gcc_usb30_prim_sleep_clk = {
247562306a36Sopenharmony_ci	.halt_reg = 0xf014,
247662306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
247762306a36Sopenharmony_ci	.clkr = {
247862306a36Sopenharmony_ci		.enable_reg = 0xf014,
247962306a36Sopenharmony_ci		.enable_mask = BIT(0),
248062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
248162306a36Sopenharmony_ci			.name = "gcc_usb30_prim_sleep_clk",
248262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
248362306a36Sopenharmony_ci		},
248462306a36Sopenharmony_ci	},
248562306a36Sopenharmony_ci};
248662306a36Sopenharmony_ci
248762306a36Sopenharmony_cistatic struct clk_branch gcc_usb3_prim_clkref_clk = {
248862306a36Sopenharmony_ci	.halt_reg = 0x8c010,
248962306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
249062306a36Sopenharmony_ci	.clkr = {
249162306a36Sopenharmony_ci		.enable_reg = 0x8c010,
249262306a36Sopenharmony_ci		.enable_mask = BIT(0),
249362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
249462306a36Sopenharmony_ci			.name = "gcc_usb3_prim_clkref_clk",
249562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
249662306a36Sopenharmony_ci		},
249762306a36Sopenharmony_ci	},
249862306a36Sopenharmony_ci};
249962306a36Sopenharmony_ci
250062306a36Sopenharmony_cistatic struct clk_branch gcc_usb3_prim_phy_aux_clk = {
250162306a36Sopenharmony_ci	.halt_reg = 0xf050,
250262306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
250362306a36Sopenharmony_ci	.clkr = {
250462306a36Sopenharmony_ci		.enable_reg = 0xf050,
250562306a36Sopenharmony_ci		.enable_mask = BIT(0),
250662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
250762306a36Sopenharmony_ci			.name = "gcc_usb3_prim_phy_aux_clk",
250862306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
250962306a36Sopenharmony_ci				&gcc_usb3_prim_phy_aux_clk_src.clkr.hw,
251062306a36Sopenharmony_ci			},
251162306a36Sopenharmony_ci			.num_parents = 1,
251262306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
251362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
251462306a36Sopenharmony_ci		},
251562306a36Sopenharmony_ci	},
251662306a36Sopenharmony_ci};
251762306a36Sopenharmony_ci
251862306a36Sopenharmony_cistatic struct clk_branch gcc_usb3_prim_phy_com_aux_clk = {
251962306a36Sopenharmony_ci	.halt_reg = 0xf054,
252062306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
252162306a36Sopenharmony_ci	.clkr = {
252262306a36Sopenharmony_ci		.enable_reg = 0xf054,
252362306a36Sopenharmony_ci		.enable_mask = BIT(0),
252462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
252562306a36Sopenharmony_ci			.name = "gcc_usb3_prim_phy_com_aux_clk",
252662306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
252762306a36Sopenharmony_ci				&gcc_usb3_prim_phy_aux_clk_src.clkr.hw,
252862306a36Sopenharmony_ci			},
252962306a36Sopenharmony_ci			.num_parents = 1,
253062306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
253162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
253262306a36Sopenharmony_ci		},
253362306a36Sopenharmony_ci	},
253462306a36Sopenharmony_ci};
253562306a36Sopenharmony_ci
253662306a36Sopenharmony_cistatic struct clk_branch gcc_usb3_prim_phy_pipe_clk = {
253762306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_SKIP,
253862306a36Sopenharmony_ci	.clkr = {
253962306a36Sopenharmony_ci		.enable_reg = 0xf058,
254062306a36Sopenharmony_ci		.enable_mask = BIT(0),
254162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
254262306a36Sopenharmony_ci			.name = "gcc_usb3_prim_phy_pipe_clk",
254362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
254462306a36Sopenharmony_ci		},
254562306a36Sopenharmony_ci	},
254662306a36Sopenharmony_ci};
254762306a36Sopenharmony_ci
254862306a36Sopenharmony_cistatic struct clk_branch gcc_usb_phy_cfg_ahb2phy_clk = {
254962306a36Sopenharmony_ci	.halt_reg = 0x6a004,
255062306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
255162306a36Sopenharmony_ci	.hwcg_reg = 0x6a004,
255262306a36Sopenharmony_ci	.hwcg_bit = 1,
255362306a36Sopenharmony_ci	.clkr = {
255462306a36Sopenharmony_ci		.enable_reg = 0x6a004,
255562306a36Sopenharmony_ci		.enable_mask = BIT(0),
255662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
255762306a36Sopenharmony_ci			.name = "gcc_usb_phy_cfg_ahb2phy_clk",
255862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
255962306a36Sopenharmony_ci		},
256062306a36Sopenharmony_ci	},
256162306a36Sopenharmony_ci};
256262306a36Sopenharmony_ci
256362306a36Sopenharmony_cistatic struct clk_branch gcc_vdda_vs_clk = {
256462306a36Sopenharmony_ci	.halt_reg = 0x7a00c,
256562306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
256662306a36Sopenharmony_ci	.clkr = {
256762306a36Sopenharmony_ci		.enable_reg = 0x7a00c,
256862306a36Sopenharmony_ci		.enable_mask = BIT(0),
256962306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
257062306a36Sopenharmony_ci			.name = "gcc_vdda_vs_clk",
257162306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
257262306a36Sopenharmony_ci				&gcc_vsensor_clk_src.clkr.hw,
257362306a36Sopenharmony_ci			},
257462306a36Sopenharmony_ci			.num_parents = 1,
257562306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
257662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
257762306a36Sopenharmony_ci		},
257862306a36Sopenharmony_ci	},
257962306a36Sopenharmony_ci};
258062306a36Sopenharmony_ci
258162306a36Sopenharmony_cistatic struct clk_branch gcc_vddcx_vs_clk = {
258262306a36Sopenharmony_ci	.halt_reg = 0x7a004,
258362306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
258462306a36Sopenharmony_ci	.clkr = {
258562306a36Sopenharmony_ci		.enable_reg = 0x7a004,
258662306a36Sopenharmony_ci		.enable_mask = BIT(0),
258762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
258862306a36Sopenharmony_ci			.name = "gcc_vddcx_vs_clk",
258962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
259062306a36Sopenharmony_ci				&gcc_vsensor_clk_src.clkr.hw,
259162306a36Sopenharmony_ci			},
259262306a36Sopenharmony_ci			.num_parents = 1,
259362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
259462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
259562306a36Sopenharmony_ci		},
259662306a36Sopenharmony_ci	},
259762306a36Sopenharmony_ci};
259862306a36Sopenharmony_ci
259962306a36Sopenharmony_cistatic struct clk_branch gcc_vddmx_vs_clk = {
260062306a36Sopenharmony_ci	.halt_reg = 0x7a008,
260162306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
260262306a36Sopenharmony_ci	.clkr = {
260362306a36Sopenharmony_ci		.enable_reg = 0x7a008,
260462306a36Sopenharmony_ci		.enable_mask = BIT(0),
260562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
260662306a36Sopenharmony_ci			.name = "gcc_vddmx_vs_clk",
260762306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
260862306a36Sopenharmony_ci				&gcc_vsensor_clk_src.clkr.hw,
260962306a36Sopenharmony_ci			},
261062306a36Sopenharmony_ci			.num_parents = 1,
261162306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
261262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
261362306a36Sopenharmony_ci		},
261462306a36Sopenharmony_ci	},
261562306a36Sopenharmony_ci};
261662306a36Sopenharmony_ci
261762306a36Sopenharmony_ci
261862306a36Sopenharmony_cistatic struct clk_branch gcc_video_axi_clk = {
261962306a36Sopenharmony_ci	.halt_reg = 0xb01c,
262062306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
262162306a36Sopenharmony_ci	.clkr = {
262262306a36Sopenharmony_ci		.enable_reg = 0xb01c,
262362306a36Sopenharmony_ci		.enable_mask = BIT(0),
262462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
262562306a36Sopenharmony_ci			.name = "gcc_video_axi_clk",
262662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
262762306a36Sopenharmony_ci		},
262862306a36Sopenharmony_ci	},
262962306a36Sopenharmony_ci};
263062306a36Sopenharmony_ci
263162306a36Sopenharmony_cistatic struct clk_branch gcc_vs_ctrl_ahb_clk = {
263262306a36Sopenharmony_ci	.halt_reg = 0x7a014,
263362306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
263462306a36Sopenharmony_ci	.hwcg_reg = 0x7a014,
263562306a36Sopenharmony_ci	.hwcg_bit = 1,
263662306a36Sopenharmony_ci	.clkr = {
263762306a36Sopenharmony_ci		.enable_reg = 0x7a014,
263862306a36Sopenharmony_ci		.enable_mask = BIT(0),
263962306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
264062306a36Sopenharmony_ci			.name = "gcc_vs_ctrl_ahb_clk",
264162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
264262306a36Sopenharmony_ci		},
264362306a36Sopenharmony_ci	},
264462306a36Sopenharmony_ci};
264562306a36Sopenharmony_ci
264662306a36Sopenharmony_cistatic struct clk_branch gcc_vs_ctrl_clk = {
264762306a36Sopenharmony_ci	.halt_reg = 0x7a010,
264862306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
264962306a36Sopenharmony_ci	.clkr = {
265062306a36Sopenharmony_ci		.enable_reg = 0x7a010,
265162306a36Sopenharmony_ci		.enable_mask = BIT(0),
265262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
265362306a36Sopenharmony_ci			.name = "gcc_vs_ctrl_clk",
265462306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
265562306a36Sopenharmony_ci				&gcc_vs_ctrl_clk_src.clkr.hw,
265662306a36Sopenharmony_ci			},
265762306a36Sopenharmony_ci			.num_parents = 1,
265862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
265962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
266062306a36Sopenharmony_ci		},
266162306a36Sopenharmony_ci	},
266262306a36Sopenharmony_ci};
266362306a36Sopenharmony_ci
266462306a36Sopenharmony_cistatic struct gdsc pcie_0_gdsc = {
266562306a36Sopenharmony_ci	.gdscr = 0x6b004,
266662306a36Sopenharmony_ci	.pd = {
266762306a36Sopenharmony_ci		.name = "pcie_0_gdsc",
266862306a36Sopenharmony_ci	},
266962306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
267062306a36Sopenharmony_ci};
267162306a36Sopenharmony_ci
267262306a36Sopenharmony_cistatic struct gdsc ufs_phy_gdsc = {
267362306a36Sopenharmony_ci	.gdscr = 0x77004,
267462306a36Sopenharmony_ci	.pd = {
267562306a36Sopenharmony_ci		.name = "ufs_phy_gdsc",
267662306a36Sopenharmony_ci	},
267762306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
267862306a36Sopenharmony_ci};
267962306a36Sopenharmony_ci
268062306a36Sopenharmony_cistatic struct gdsc usb30_prim_gdsc = {
268162306a36Sopenharmony_ci	.gdscr = 0xf004,
268262306a36Sopenharmony_ci	.pd = {
268362306a36Sopenharmony_ci		.name = "usb30_prim_gdsc",
268462306a36Sopenharmony_ci	},
268562306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
268662306a36Sopenharmony_ci};
268762306a36Sopenharmony_ci
268862306a36Sopenharmony_cistatic struct gdsc hlos1_vote_aggre_noc_mmu_audio_tbu_gdsc = {
268962306a36Sopenharmony_ci	.gdscr = 0x7d030,
269062306a36Sopenharmony_ci	.pd = {
269162306a36Sopenharmony_ci		.name = "hlos1_vote_aggre_noc_mmu_audio_tbu_gdsc",
269262306a36Sopenharmony_ci	},
269362306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
269462306a36Sopenharmony_ci	.flags = VOTABLE,
269562306a36Sopenharmony_ci};
269662306a36Sopenharmony_ci
269762306a36Sopenharmony_cistatic struct gdsc hlos1_vote_aggre_noc_mmu_pcie_tbu_gdsc = {
269862306a36Sopenharmony_ci	.gdscr = 0x7d03c,
269962306a36Sopenharmony_ci	.pd = {
270062306a36Sopenharmony_ci		.name = "hlos1_vote_aggre_noc_mmu_pcie_tbu_gdsc",
270162306a36Sopenharmony_ci	},
270262306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
270362306a36Sopenharmony_ci	.flags = VOTABLE,
270462306a36Sopenharmony_ci};
270562306a36Sopenharmony_ci
270662306a36Sopenharmony_cistatic struct gdsc hlos1_vote_aggre_noc_mmu_tbu1_gdsc = {
270762306a36Sopenharmony_ci	.gdscr = 0x7d034,
270862306a36Sopenharmony_ci	.pd = {
270962306a36Sopenharmony_ci		.name = "hlos1_vote_aggre_noc_mmu_tbu1_gdsc",
271062306a36Sopenharmony_ci	},
271162306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
271262306a36Sopenharmony_ci	.flags = VOTABLE,
271362306a36Sopenharmony_ci};
271462306a36Sopenharmony_ci
271562306a36Sopenharmony_cistatic struct gdsc hlos1_vote_aggre_noc_mmu_tbu2_gdsc = {
271662306a36Sopenharmony_ci	.gdscr = 0x7d038,
271762306a36Sopenharmony_ci	.pd = {
271862306a36Sopenharmony_ci		.name = "hlos1_vote_aggre_noc_mmu_tbu2_gdsc",
271962306a36Sopenharmony_ci	},
272062306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
272162306a36Sopenharmony_ci	.flags = VOTABLE,
272262306a36Sopenharmony_ci};
272362306a36Sopenharmony_ci
272462306a36Sopenharmony_cistatic struct gdsc hlos1_vote_mmnoc_mmu_tbu_hf0_gdsc = {
272562306a36Sopenharmony_ci	.gdscr = 0x7d040,
272662306a36Sopenharmony_ci	.pd = {
272762306a36Sopenharmony_ci		.name = "hlos1_vote_mmnoc_mmu_tbu_hf0_gdsc",
272862306a36Sopenharmony_ci	},
272962306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
273062306a36Sopenharmony_ci	.flags = VOTABLE,
273162306a36Sopenharmony_ci};
273262306a36Sopenharmony_ci
273362306a36Sopenharmony_cistatic struct gdsc hlos1_vote_mmnoc_mmu_tbu_hf1_gdsc = {
273462306a36Sopenharmony_ci	.gdscr = 0x7d048,
273562306a36Sopenharmony_ci	.pd = {
273662306a36Sopenharmony_ci		.name = "hlos1_vote_mmnoc_mmu_tbu_hf1_gdsc",
273762306a36Sopenharmony_ci	},
273862306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
273962306a36Sopenharmony_ci	.flags = VOTABLE,
274062306a36Sopenharmony_ci};
274162306a36Sopenharmony_ci
274262306a36Sopenharmony_cistatic struct gdsc hlos1_vote_mmnoc_mmu_tbu_sf_gdsc = {
274362306a36Sopenharmony_ci	.gdscr = 0x7d044,
274462306a36Sopenharmony_ci	.pd = {
274562306a36Sopenharmony_ci		.name = "hlos1_vote_mmnoc_mmu_tbu_sf_gdsc",
274662306a36Sopenharmony_ci	},
274762306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
274862306a36Sopenharmony_ci	.flags = VOTABLE,
274962306a36Sopenharmony_ci};
275062306a36Sopenharmony_ci
275162306a36Sopenharmony_cistatic struct clk_hw *gcc_sm7150_hws[] = {
275262306a36Sopenharmony_ci	[GCC_GPLL0_MAIN_DIV_CDIV] = &gcc_pll0_main_div_cdiv.hw,
275362306a36Sopenharmony_ci};
275462306a36Sopenharmony_ci
275562306a36Sopenharmony_cistatic struct clk_regmap *gcc_sm7150_clocks[] = {
275662306a36Sopenharmony_ci	[GCC_AGGRE_NOC_PCIE_TBU_CLK] = &gcc_aggre_noc_pcie_tbu_clk.clkr,
275762306a36Sopenharmony_ci	[GCC_AGGRE_UFS_PHY_AXI_CLK] = &gcc_aggre_ufs_phy_axi_clk.clkr,
275862306a36Sopenharmony_ci	[GCC_AGGRE_UFS_PHY_AXI_HW_CTL_CLK] =
275962306a36Sopenharmony_ci		&gcc_aggre_ufs_phy_axi_hw_ctl_clk.clkr,
276062306a36Sopenharmony_ci	[GCC_AGGRE_USB3_PRIM_AXI_CLK] = &gcc_aggre_usb3_prim_axi_clk.clkr,
276162306a36Sopenharmony_ci	[GCC_APC_VS_CLK] = &gcc_apc_vs_clk.clkr,
276262306a36Sopenharmony_ci	[GCC_BOOT_ROM_AHB_CLK] = &gcc_boot_rom_ahb_clk.clkr,
276362306a36Sopenharmony_ci	[GCC_CAMERA_HF_AXI_CLK] = &gcc_camera_hf_axi_clk.clkr,
276462306a36Sopenharmony_ci	[GCC_CAMERA_SF_AXI_CLK] = &gcc_camera_sf_axi_clk.clkr,
276562306a36Sopenharmony_ci	[GCC_CE1_AHB_CLK] = &gcc_ce1_ahb_clk.clkr,
276662306a36Sopenharmony_ci	[GCC_CE1_AXI_CLK] = &gcc_ce1_axi_clk.clkr,
276762306a36Sopenharmony_ci	[GCC_CE1_CLK] = &gcc_ce1_clk.clkr,
276862306a36Sopenharmony_ci	[GCC_CFG_NOC_USB3_PRIM_AXI_CLK] = &gcc_cfg_noc_usb3_prim_axi_clk.clkr,
276962306a36Sopenharmony_ci	[GCC_CPUSS_AHB_CLK] = &gcc_cpuss_ahb_clk.clkr,
277062306a36Sopenharmony_ci	[GCC_CPUSS_AHB_CLK_SRC] = &gcc_cpuss_ahb_clk_src.clkr,
277162306a36Sopenharmony_ci	[GCC_CPUSS_RBCPR_CLK] = &gcc_cpuss_rbcpr_clk.clkr,
277262306a36Sopenharmony_ci	[GCC_CPUSS_RBCPR_CLK_SRC] = &gcc_cpuss_rbcpr_clk_src.clkr,
277362306a36Sopenharmony_ci	[GCC_DDRSS_GPU_AXI_CLK] = &gcc_ddrss_gpu_axi_clk.clkr,
277462306a36Sopenharmony_ci	[GCC_DISP_GPLL0_CLK_SRC] = &gcc_disp_gpll0_clk_src.clkr,
277562306a36Sopenharmony_ci	[GCC_DISP_GPLL0_DIV_CLK_SRC] = &gcc_disp_gpll0_div_clk_src.clkr,
277662306a36Sopenharmony_ci	[GCC_DISP_HF_AXI_CLK] = &gcc_disp_hf_axi_clk.clkr,
277762306a36Sopenharmony_ci	[GCC_DISP_SF_AXI_CLK] = &gcc_disp_sf_axi_clk.clkr,
277862306a36Sopenharmony_ci	[GCC_GP1_CLK] = &gcc_gp1_clk.clkr,
277962306a36Sopenharmony_ci	[GCC_GP1_CLK_SRC] = &gcc_gp1_clk_src.clkr,
278062306a36Sopenharmony_ci	[GCC_GP2_CLK] = &gcc_gp2_clk.clkr,
278162306a36Sopenharmony_ci	[GCC_GP2_CLK_SRC] = &gcc_gp2_clk_src.clkr,
278262306a36Sopenharmony_ci	[GCC_GP3_CLK] = &gcc_gp3_clk.clkr,
278362306a36Sopenharmony_ci	[GCC_GP3_CLK_SRC] = &gcc_gp3_clk_src.clkr,
278462306a36Sopenharmony_ci	[GCC_GPU_GPLL0_CLK_SRC] = &gcc_gpu_gpll0_clk_src.clkr,
278562306a36Sopenharmony_ci	[GCC_GPU_GPLL0_DIV_CLK_SRC] = &gcc_gpu_gpll0_div_clk_src.clkr,
278662306a36Sopenharmony_ci	[GCC_GPU_MEMNOC_GFX_CLK] = &gcc_gpu_memnoc_gfx_clk.clkr,
278762306a36Sopenharmony_ci	[GCC_GPU_SNOC_DVM_GFX_CLK] = &gcc_gpu_snoc_dvm_gfx_clk.clkr,
278862306a36Sopenharmony_ci	[GCC_GPU_VS_CLK] = &gcc_gpu_vs_clk.clkr,
278962306a36Sopenharmony_ci	[GCC_NPU_AXI_CLK] = &gcc_npu_axi_clk.clkr,
279062306a36Sopenharmony_ci	[GCC_NPU_CFG_AHB_CLK] = &gcc_npu_cfg_ahb_clk.clkr,
279162306a36Sopenharmony_ci	[GCC_NPU_GPLL0_CLK_SRC] = &gcc_npu_gpll0_clk_src.clkr,
279262306a36Sopenharmony_ci	[GCC_NPU_GPLL0_DIV_CLK_SRC] = &gcc_npu_gpll0_div_clk_src.clkr,
279362306a36Sopenharmony_ci	[GCC_PCIE_0_AUX_CLK] = &gcc_pcie_0_aux_clk.clkr,
279462306a36Sopenharmony_ci	[GCC_PCIE_0_AUX_CLK_SRC] = &gcc_pcie_0_aux_clk_src.clkr,
279562306a36Sopenharmony_ci	[GCC_PCIE_0_CFG_AHB_CLK] = &gcc_pcie_0_cfg_ahb_clk.clkr,
279662306a36Sopenharmony_ci	[GCC_PCIE_0_CLKREF_CLK] = &gcc_pcie_0_clkref_clk.clkr,
279762306a36Sopenharmony_ci	[GCC_PCIE_0_MSTR_AXI_CLK] = &gcc_pcie_0_mstr_axi_clk.clkr,
279862306a36Sopenharmony_ci	[GCC_PCIE_0_PIPE_CLK] = &gcc_pcie_0_pipe_clk.clkr,
279962306a36Sopenharmony_ci	[GCC_PCIE_0_SLV_AXI_CLK] = &gcc_pcie_0_slv_axi_clk.clkr,
280062306a36Sopenharmony_ci	[GCC_PCIE_0_SLV_Q2A_AXI_CLK] = &gcc_pcie_0_slv_q2a_axi_clk.clkr,
280162306a36Sopenharmony_ci	[GCC_PCIE_PHY_AUX_CLK] = &gcc_pcie_phy_aux_clk.clkr,
280262306a36Sopenharmony_ci	[GCC_PCIE_PHY_REFGEN_CLK] = &gcc_pcie_phy_refgen_clk.clkr,
280362306a36Sopenharmony_ci	[GCC_PCIE_PHY_REFGEN_CLK_SRC] = &gcc_pcie_phy_refgen_clk_src.clkr,
280462306a36Sopenharmony_ci	[GCC_PDM2_CLK] = &gcc_pdm2_clk.clkr,
280562306a36Sopenharmony_ci	[GCC_PDM2_CLK_SRC] = &gcc_pdm2_clk_src.clkr,
280662306a36Sopenharmony_ci	[GCC_PDM_AHB_CLK] = &gcc_pdm_ahb_clk.clkr,
280762306a36Sopenharmony_ci	[GCC_PDM_XO4_CLK] = &gcc_pdm_xo4_clk.clkr,
280862306a36Sopenharmony_ci	[GCC_PRNG_AHB_CLK] = &gcc_prng_ahb_clk.clkr,
280962306a36Sopenharmony_ci	[GCC_QUPV3_WRAP0_CORE_2X_CLK] = &gcc_qupv3_wrap0_core_2x_clk.clkr,
281062306a36Sopenharmony_ci	[GCC_QUPV3_WRAP0_CORE_CLK] = &gcc_qupv3_wrap0_core_clk.clkr,
281162306a36Sopenharmony_ci	[GCC_QUPV3_WRAP0_S0_CLK] = &gcc_qupv3_wrap0_s0_clk.clkr,
281262306a36Sopenharmony_ci	[GCC_QUPV3_WRAP0_S0_CLK_SRC] = &gcc_qupv3_wrap0_s0_clk_src.clkr,
281362306a36Sopenharmony_ci	[GCC_QUPV3_WRAP0_S1_CLK] = &gcc_qupv3_wrap0_s1_clk.clkr,
281462306a36Sopenharmony_ci	[GCC_QUPV3_WRAP0_S1_CLK_SRC] = &gcc_qupv3_wrap0_s1_clk_src.clkr,
281562306a36Sopenharmony_ci	[GCC_QUPV3_WRAP0_S2_CLK] = &gcc_qupv3_wrap0_s2_clk.clkr,
281662306a36Sopenharmony_ci	[GCC_QUPV3_WRAP0_S2_CLK_SRC] = &gcc_qupv3_wrap0_s2_clk_src.clkr,
281762306a36Sopenharmony_ci	[GCC_QUPV3_WRAP0_S3_CLK] = &gcc_qupv3_wrap0_s3_clk.clkr,
281862306a36Sopenharmony_ci	[GCC_QUPV3_WRAP0_S3_CLK_SRC] = &gcc_qupv3_wrap0_s3_clk_src.clkr,
281962306a36Sopenharmony_ci	[GCC_QUPV3_WRAP0_S4_CLK] = &gcc_qupv3_wrap0_s4_clk.clkr,
282062306a36Sopenharmony_ci	[GCC_QUPV3_WRAP0_S4_CLK_SRC] = &gcc_qupv3_wrap0_s4_clk_src.clkr,
282162306a36Sopenharmony_ci	[GCC_QUPV3_WRAP0_S5_CLK] = &gcc_qupv3_wrap0_s5_clk.clkr,
282262306a36Sopenharmony_ci	[GCC_QUPV3_WRAP0_S5_CLK_SRC] = &gcc_qupv3_wrap0_s5_clk_src.clkr,
282362306a36Sopenharmony_ci	[GCC_QUPV3_WRAP0_S6_CLK] = &gcc_qupv3_wrap0_s6_clk.clkr,
282462306a36Sopenharmony_ci	[GCC_QUPV3_WRAP0_S6_CLK_SRC] = &gcc_qupv3_wrap0_s6_clk_src.clkr,
282562306a36Sopenharmony_ci	[GCC_QUPV3_WRAP0_S7_CLK] = &gcc_qupv3_wrap0_s7_clk.clkr,
282662306a36Sopenharmony_ci	[GCC_QUPV3_WRAP0_S7_CLK_SRC] = &gcc_qupv3_wrap0_s7_clk_src.clkr,
282762306a36Sopenharmony_ci	[GCC_QUPV3_WRAP1_CORE_2X_CLK] = &gcc_qupv3_wrap1_core_2x_clk.clkr,
282862306a36Sopenharmony_ci	[GCC_QUPV3_WRAP1_CORE_CLK] = &gcc_qupv3_wrap1_core_clk.clkr,
282962306a36Sopenharmony_ci	[GCC_QUPV3_WRAP1_S0_CLK] = &gcc_qupv3_wrap1_s0_clk.clkr,
283062306a36Sopenharmony_ci	[GCC_QUPV3_WRAP1_S0_CLK_SRC] = &gcc_qupv3_wrap1_s0_clk_src.clkr,
283162306a36Sopenharmony_ci	[GCC_QUPV3_WRAP1_S1_CLK] = &gcc_qupv3_wrap1_s1_clk.clkr,
283262306a36Sopenharmony_ci	[GCC_QUPV3_WRAP1_S1_CLK_SRC] = &gcc_qupv3_wrap1_s1_clk_src.clkr,
283362306a36Sopenharmony_ci	[GCC_QUPV3_WRAP1_S2_CLK] = &gcc_qupv3_wrap1_s2_clk.clkr,
283462306a36Sopenharmony_ci	[GCC_QUPV3_WRAP1_S2_CLK_SRC] = &gcc_qupv3_wrap1_s2_clk_src.clkr,
283562306a36Sopenharmony_ci	[GCC_QUPV3_WRAP1_S3_CLK] = &gcc_qupv3_wrap1_s3_clk.clkr,
283662306a36Sopenharmony_ci	[GCC_QUPV3_WRAP1_S3_CLK_SRC] = &gcc_qupv3_wrap1_s3_clk_src.clkr,
283762306a36Sopenharmony_ci	[GCC_QUPV3_WRAP1_S4_CLK] = &gcc_qupv3_wrap1_s4_clk.clkr,
283862306a36Sopenharmony_ci	[GCC_QUPV3_WRAP1_S4_CLK_SRC] = &gcc_qupv3_wrap1_s4_clk_src.clkr,
283962306a36Sopenharmony_ci	[GCC_QUPV3_WRAP1_S5_CLK] = &gcc_qupv3_wrap1_s5_clk.clkr,
284062306a36Sopenharmony_ci	[GCC_QUPV3_WRAP1_S5_CLK_SRC] = &gcc_qupv3_wrap1_s5_clk_src.clkr,
284162306a36Sopenharmony_ci	[GCC_QUPV3_WRAP1_S6_CLK] = &gcc_qupv3_wrap1_s6_clk.clkr,
284262306a36Sopenharmony_ci	[GCC_QUPV3_WRAP1_S6_CLK_SRC] = &gcc_qupv3_wrap1_s6_clk_src.clkr,
284362306a36Sopenharmony_ci	[GCC_QUPV3_WRAP1_S7_CLK] = &gcc_qupv3_wrap1_s7_clk.clkr,
284462306a36Sopenharmony_ci	[GCC_QUPV3_WRAP1_S7_CLK_SRC] = &gcc_qupv3_wrap1_s7_clk_src.clkr,
284562306a36Sopenharmony_ci	[GCC_QUPV3_WRAP_0_M_AHB_CLK] = &gcc_qupv3_wrap_0_m_ahb_clk.clkr,
284662306a36Sopenharmony_ci	[GCC_QUPV3_WRAP_0_S_AHB_CLK] = &gcc_qupv3_wrap_0_s_ahb_clk.clkr,
284762306a36Sopenharmony_ci	[GCC_QUPV3_WRAP_1_M_AHB_CLK] = &gcc_qupv3_wrap_1_m_ahb_clk.clkr,
284862306a36Sopenharmony_ci	[GCC_QUPV3_WRAP_1_S_AHB_CLK] = &gcc_qupv3_wrap_1_s_ahb_clk.clkr,
284962306a36Sopenharmony_ci	[GCC_SDCC1_AHB_CLK] = &gcc_sdcc1_ahb_clk.clkr,
285062306a36Sopenharmony_ci	[GCC_SDCC1_APPS_CLK] = &gcc_sdcc1_apps_clk.clkr,
285162306a36Sopenharmony_ci	[GCC_SDCC1_APPS_CLK_SRC] = &gcc_sdcc1_apps_clk_src.clkr,
285262306a36Sopenharmony_ci	[GCC_SDCC1_ICE_CORE_CLK] = &gcc_sdcc1_ice_core_clk.clkr,
285362306a36Sopenharmony_ci	[GCC_SDCC1_ICE_CORE_CLK_SRC] = &gcc_sdcc1_ice_core_clk_src.clkr,
285462306a36Sopenharmony_ci	[GCC_SDCC2_AHB_CLK] = &gcc_sdcc2_ahb_clk.clkr,
285562306a36Sopenharmony_ci	[GCC_SDCC2_APPS_CLK] = &gcc_sdcc2_apps_clk.clkr,
285662306a36Sopenharmony_ci	[GCC_SDCC2_APPS_CLK_SRC] = &gcc_sdcc2_apps_clk_src.clkr,
285762306a36Sopenharmony_ci	[GCC_SDCC4_AHB_CLK] = &gcc_sdcc4_ahb_clk.clkr,
285862306a36Sopenharmony_ci	[GCC_SDCC4_APPS_CLK] = &gcc_sdcc4_apps_clk.clkr,
285962306a36Sopenharmony_ci	[GCC_SDCC4_APPS_CLK_SRC] = &gcc_sdcc4_apps_clk_src.clkr,
286062306a36Sopenharmony_ci	[GCC_SYS_NOC_CPUSS_AHB_CLK] = &gcc_sys_noc_cpuss_ahb_clk.clkr,
286162306a36Sopenharmony_ci	[GCC_TSIF_AHB_CLK] = &gcc_tsif_ahb_clk.clkr,
286262306a36Sopenharmony_ci	[GCC_TSIF_INACTIVITY_TIMERS_CLK] = &gcc_tsif_inactivity_timers_clk.clkr,
286362306a36Sopenharmony_ci	[GCC_TSIF_REF_CLK] = &gcc_tsif_ref_clk.clkr,
286462306a36Sopenharmony_ci	[GCC_TSIF_REF_CLK_SRC] = &gcc_tsif_ref_clk_src.clkr,
286562306a36Sopenharmony_ci	[GCC_UFS_MEM_CLKREF_CLK] = &gcc_ufs_mem_clkref_clk.clkr,
286662306a36Sopenharmony_ci	[GCC_UFS_PHY_AHB_CLK] = &gcc_ufs_phy_ahb_clk.clkr,
286762306a36Sopenharmony_ci	[GCC_UFS_PHY_AXI_CLK] = &gcc_ufs_phy_axi_clk.clkr,
286862306a36Sopenharmony_ci	[GCC_UFS_PHY_AXI_CLK_SRC] = &gcc_ufs_phy_axi_clk_src.clkr,
286962306a36Sopenharmony_ci	[GCC_UFS_PHY_AXI_HW_CTL_CLK] = &gcc_ufs_phy_axi_hw_ctl_clk.clkr,
287062306a36Sopenharmony_ci	[GCC_UFS_PHY_ICE_CORE_CLK] = &gcc_ufs_phy_ice_core_clk.clkr,
287162306a36Sopenharmony_ci	[GCC_UFS_PHY_ICE_CORE_CLK_SRC] = &gcc_ufs_phy_ice_core_clk_src.clkr,
287262306a36Sopenharmony_ci	[GCC_UFS_PHY_ICE_CORE_HW_CTL_CLK] =
287362306a36Sopenharmony_ci		&gcc_ufs_phy_ice_core_hw_ctl_clk.clkr,
287462306a36Sopenharmony_ci	[GCC_UFS_PHY_PHY_AUX_CLK] = &gcc_ufs_phy_phy_aux_clk.clkr,
287562306a36Sopenharmony_ci	[GCC_UFS_PHY_PHY_AUX_CLK_SRC] = &gcc_ufs_phy_phy_aux_clk_src.clkr,
287662306a36Sopenharmony_ci	[GCC_UFS_PHY_PHY_AUX_HW_CTL_CLK] = &gcc_ufs_phy_phy_aux_hw_ctl_clk.clkr,
287762306a36Sopenharmony_ci	[GCC_UFS_PHY_RX_SYMBOL_0_CLK] = &gcc_ufs_phy_rx_symbol_0_clk.clkr,
287862306a36Sopenharmony_ci	[GCC_UFS_PHY_TX_SYMBOL_0_CLK] = &gcc_ufs_phy_tx_symbol_0_clk.clkr,
287962306a36Sopenharmony_ci	[GCC_UFS_PHY_UNIPRO_CORE_CLK] = &gcc_ufs_phy_unipro_core_clk.clkr,
288062306a36Sopenharmony_ci	[GCC_UFS_PHY_UNIPRO_CORE_CLK_SRC] =
288162306a36Sopenharmony_ci		&gcc_ufs_phy_unipro_core_clk_src.clkr,
288262306a36Sopenharmony_ci	[GCC_UFS_PHY_UNIPRO_CORE_HW_CTL_CLK] =
288362306a36Sopenharmony_ci		&gcc_ufs_phy_unipro_core_hw_ctl_clk.clkr,
288462306a36Sopenharmony_ci	[GCC_USB30_PRIM_MASTER_CLK] = &gcc_usb30_prim_master_clk.clkr,
288562306a36Sopenharmony_ci	[GCC_USB30_PRIM_MASTER_CLK_SRC] = &gcc_usb30_prim_master_clk_src.clkr,
288662306a36Sopenharmony_ci	[GCC_USB30_PRIM_MOCK_UTMI_CLK] = &gcc_usb30_prim_mock_utmi_clk.clkr,
288762306a36Sopenharmony_ci	[GCC_USB30_PRIM_MOCK_UTMI_CLK_SRC] =
288862306a36Sopenharmony_ci		&gcc_usb30_prim_mock_utmi_clk_src.clkr,
288962306a36Sopenharmony_ci	[GCC_USB30_PRIM_SLEEP_CLK] = &gcc_usb30_prim_sleep_clk.clkr,
289062306a36Sopenharmony_ci	[GCC_USB3_PRIM_CLKREF_CLK] = &gcc_usb3_prim_clkref_clk.clkr,
289162306a36Sopenharmony_ci	[GCC_USB3_PRIM_PHY_AUX_CLK] = &gcc_usb3_prim_phy_aux_clk.clkr,
289262306a36Sopenharmony_ci	[GCC_USB3_PRIM_PHY_AUX_CLK_SRC] = &gcc_usb3_prim_phy_aux_clk_src.clkr,
289362306a36Sopenharmony_ci	[GCC_USB3_PRIM_PHY_COM_AUX_CLK] = &gcc_usb3_prim_phy_com_aux_clk.clkr,
289462306a36Sopenharmony_ci	[GCC_USB3_PRIM_PHY_PIPE_CLK] = &gcc_usb3_prim_phy_pipe_clk.clkr,
289562306a36Sopenharmony_ci	[GCC_USB_PHY_CFG_AHB2PHY_CLK] = &gcc_usb_phy_cfg_ahb2phy_clk.clkr,
289662306a36Sopenharmony_ci	[GCC_VDDA_VS_CLK] = &gcc_vdda_vs_clk.clkr,
289762306a36Sopenharmony_ci	[GCC_VDDCX_VS_CLK] = &gcc_vddcx_vs_clk.clkr,
289862306a36Sopenharmony_ci	[GCC_VDDMX_VS_CLK] = &gcc_vddmx_vs_clk.clkr,
289962306a36Sopenharmony_ci	[GCC_VIDEO_AXI_CLK] = &gcc_video_axi_clk.clkr,
290062306a36Sopenharmony_ci	[GCC_VS_CTRL_AHB_CLK] = &gcc_vs_ctrl_ahb_clk.clkr,
290162306a36Sopenharmony_ci	[GCC_VS_CTRL_CLK] = &gcc_vs_ctrl_clk.clkr,
290262306a36Sopenharmony_ci	[GCC_VS_CTRL_CLK_SRC] = &gcc_vs_ctrl_clk_src.clkr,
290362306a36Sopenharmony_ci	[GCC_VSENSOR_CLK_SRC] = &gcc_vsensor_clk_src.clkr,
290462306a36Sopenharmony_ci	[GPLL0] = &gpll0.clkr,
290562306a36Sopenharmony_ci	[GPLL0_OUT_EVEN] = &gpll0_out_even.clkr,
290662306a36Sopenharmony_ci	[GPLL6] = &gpll6.clkr,
290762306a36Sopenharmony_ci	[GPLL7] = &gpll7.clkr,
290862306a36Sopenharmony_ci};
290962306a36Sopenharmony_ci
291062306a36Sopenharmony_cistatic const struct qcom_reset_map gcc_sm7150_resets[] = {
291162306a36Sopenharmony_ci	[GCC_PCIE_0_BCR] = { 0x6b000 },
291262306a36Sopenharmony_ci	[GCC_PCIE_PHY_BCR] = { 0x6f000 },
291362306a36Sopenharmony_ci	[GCC_PCIE_PHY_COM_BCR] = { 0x6f010 },
291462306a36Sopenharmony_ci	[GCC_UFS_PHY_BCR] = { 0x77000 },
291562306a36Sopenharmony_ci	[GCC_USB30_PRIM_BCR] = { 0xf000 },
291662306a36Sopenharmony_ci	[GCC_USB3_DP_PHY_PRIM_BCR] = { 0x50008 },
291762306a36Sopenharmony_ci	[GCC_USB3_DP_PHY_SEC_BCR] = { 0x50014 },
291862306a36Sopenharmony_ci	[GCC_USB3_PHY_PRIM_BCR] = { 0x50000 },
291962306a36Sopenharmony_ci	[GCC_USB3_PHY_SEC_BCR] = { 0x5000c },
292062306a36Sopenharmony_ci	[GCC_QUSB2PHY_PRIM_BCR] = { 0x26000 },
292162306a36Sopenharmony_ci	[GCC_VIDEO_AXI_CLK_BCR] = { 0xb01c, 2 },
292262306a36Sopenharmony_ci};
292362306a36Sopenharmony_ci
292462306a36Sopenharmony_cistatic const struct clk_rcg_dfs_data gcc_sm7150_dfs_desc[] = {
292562306a36Sopenharmony_ci	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s0_clk_src),
292662306a36Sopenharmony_ci	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s1_clk_src),
292762306a36Sopenharmony_ci	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s2_clk_src),
292862306a36Sopenharmony_ci	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s3_clk_src),
292962306a36Sopenharmony_ci	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s4_clk_src),
293062306a36Sopenharmony_ci	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s5_clk_src),
293162306a36Sopenharmony_ci	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s6_clk_src),
293262306a36Sopenharmony_ci	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s7_clk_src),
293362306a36Sopenharmony_ci	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s0_clk_src),
293462306a36Sopenharmony_ci	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s1_clk_src),
293562306a36Sopenharmony_ci	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s2_clk_src),
293662306a36Sopenharmony_ci	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s3_clk_src),
293762306a36Sopenharmony_ci	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s4_clk_src),
293862306a36Sopenharmony_ci	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s5_clk_src),
293962306a36Sopenharmony_ci	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s6_clk_src),
294062306a36Sopenharmony_ci	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s7_clk_src),
294162306a36Sopenharmony_ci};
294262306a36Sopenharmony_ci
294362306a36Sopenharmony_cistatic struct gdsc *gcc_sm7150_gdscs[] = {
294462306a36Sopenharmony_ci	[PCIE_0_GDSC] = &pcie_0_gdsc,
294562306a36Sopenharmony_ci	[UFS_PHY_GDSC] = &ufs_phy_gdsc,
294662306a36Sopenharmony_ci	[USB30_PRIM_GDSC] = &usb30_prim_gdsc,
294762306a36Sopenharmony_ci	[HLOS1_VOTE_AGGRE_NOC_MMU_AUDIO_TBU_GDSC] =
294862306a36Sopenharmony_ci			&hlos1_vote_aggre_noc_mmu_audio_tbu_gdsc,
294962306a36Sopenharmony_ci	[HLOS1_VOTE_AGGRE_NOC_MMU_PCIE_TBU_GDSC] =
295062306a36Sopenharmony_ci			&hlos1_vote_aggre_noc_mmu_pcie_tbu_gdsc,
295162306a36Sopenharmony_ci	[HLOS1_VOTE_AGGRE_NOC_MMU_TBU1_GDSC] =
295262306a36Sopenharmony_ci			&hlos1_vote_aggre_noc_mmu_tbu1_gdsc,
295362306a36Sopenharmony_ci	[HLOS1_VOTE_AGGRE_NOC_MMU_TBU2_GDSC] =
295462306a36Sopenharmony_ci			&hlos1_vote_aggre_noc_mmu_tbu2_gdsc,
295562306a36Sopenharmony_ci	[HLOS1_VOTE_MMNOC_MMU_TBU_HF0_GDSC] =
295662306a36Sopenharmony_ci			&hlos1_vote_mmnoc_mmu_tbu_hf0_gdsc,
295762306a36Sopenharmony_ci	[HLOS1_VOTE_MMNOC_MMU_TBU_HF1_GDSC] =
295862306a36Sopenharmony_ci			&hlos1_vote_mmnoc_mmu_tbu_hf1_gdsc,
295962306a36Sopenharmony_ci	[HLOS1_VOTE_MMNOC_MMU_TBU_SF_GDSC] = &hlos1_vote_mmnoc_mmu_tbu_sf_gdsc,
296062306a36Sopenharmony_ci};
296162306a36Sopenharmony_ci
296262306a36Sopenharmony_cistatic const struct regmap_config gcc_sm7150_regmap_config = {
296362306a36Sopenharmony_ci	.reg_bits	= 32,
296462306a36Sopenharmony_ci	.reg_stride	= 4,
296562306a36Sopenharmony_ci	.val_bits	= 32,
296662306a36Sopenharmony_ci	.max_register	= 0x1820b0,
296762306a36Sopenharmony_ci	.fast_io	= true,
296862306a36Sopenharmony_ci};
296962306a36Sopenharmony_ci
297062306a36Sopenharmony_cistatic const struct qcom_cc_desc gcc_sm7150_desc = {
297162306a36Sopenharmony_ci	.config = &gcc_sm7150_regmap_config,
297262306a36Sopenharmony_ci	.clk_hws = gcc_sm7150_hws,
297362306a36Sopenharmony_ci	.num_clk_hws = ARRAY_SIZE(gcc_sm7150_hws),
297462306a36Sopenharmony_ci	.clks = gcc_sm7150_clocks,
297562306a36Sopenharmony_ci	.num_clks = ARRAY_SIZE(gcc_sm7150_clocks),
297662306a36Sopenharmony_ci	.resets = gcc_sm7150_resets,
297762306a36Sopenharmony_ci	.num_resets = ARRAY_SIZE(gcc_sm7150_resets),
297862306a36Sopenharmony_ci	.gdscs = gcc_sm7150_gdscs,
297962306a36Sopenharmony_ci	.num_gdscs = ARRAY_SIZE(gcc_sm7150_gdscs),
298062306a36Sopenharmony_ci};
298162306a36Sopenharmony_ci
298262306a36Sopenharmony_cistatic const struct of_device_id gcc_sm7150_match_table[] = {
298362306a36Sopenharmony_ci	{ .compatible = "qcom,sm7150-gcc" },
298462306a36Sopenharmony_ci	{ }
298562306a36Sopenharmony_ci};
298662306a36Sopenharmony_ciMODULE_DEVICE_TABLE(of, gcc_sm7150_match_table);
298762306a36Sopenharmony_ci
298862306a36Sopenharmony_cistatic int gcc_sm7150_probe(struct platform_device *pdev)
298962306a36Sopenharmony_ci{
299062306a36Sopenharmony_ci	struct regmap *regmap;
299162306a36Sopenharmony_ci	int ret;
299262306a36Sopenharmony_ci
299362306a36Sopenharmony_ci	regmap = qcom_cc_map(pdev, &gcc_sm7150_desc);
299462306a36Sopenharmony_ci	if (IS_ERR(regmap))
299562306a36Sopenharmony_ci		return PTR_ERR(regmap);
299662306a36Sopenharmony_ci
299762306a36Sopenharmony_ci	/*
299862306a36Sopenharmony_ci	 * Disable the GPLL0 active input to MM blocks, NPU
299962306a36Sopenharmony_ci	 * and GPU via MISC registers.
300062306a36Sopenharmony_ci	 */
300162306a36Sopenharmony_ci	regmap_update_bits(regmap, 0x09ffc, 0x3, 0x3);
300262306a36Sopenharmony_ci	regmap_update_bits(regmap, 0x4d110, 0x3, 0x3);
300362306a36Sopenharmony_ci	regmap_update_bits(regmap, 0x71028, 0x3, 0x3);
300462306a36Sopenharmony_ci
300562306a36Sopenharmony_ci	/*
300662306a36Sopenharmony_ci	 * Keep the critical clocks always-ON
300762306a36Sopenharmony_ci	 * GCC_CPUSS_GNOC_CLK, GCC_VIDEO_AHB_CLK, GCC_CAMERA_AHB_CLK,
300862306a36Sopenharmony_ci	 * GCC_DISP_AHB_CLK, GCC_CAMERA_XO_CLK, GCC_VIDEO_XO_CLK,
300962306a36Sopenharmony_ci	 * GCC_DISP_XO_CLK, GCC_GPU_CFG_AHB_CLK
301062306a36Sopenharmony_ci	 */
301162306a36Sopenharmony_ci	regmap_update_bits(regmap, 0x48004, BIT(0), BIT(0));
301262306a36Sopenharmony_ci	regmap_update_bits(regmap, 0x0b004, BIT(0), BIT(0));
301362306a36Sopenharmony_ci	regmap_update_bits(regmap, 0x0b008, BIT(0), BIT(0));
301462306a36Sopenharmony_ci	regmap_update_bits(regmap, 0x0b00c, BIT(0), BIT(0));
301562306a36Sopenharmony_ci	regmap_update_bits(regmap, 0x0b02c, BIT(0), BIT(0));
301662306a36Sopenharmony_ci	regmap_update_bits(regmap, 0x0b028, BIT(0), BIT(0));
301762306a36Sopenharmony_ci	regmap_update_bits(regmap, 0x0b030, BIT(0), BIT(0));
301862306a36Sopenharmony_ci	regmap_update_bits(regmap, 0x71004, BIT(0), BIT(0));
301962306a36Sopenharmony_ci
302062306a36Sopenharmony_ci	ret = qcom_cc_register_rcg_dfs(regmap, gcc_sm7150_dfs_desc,
302162306a36Sopenharmony_ci					ARRAY_SIZE(gcc_sm7150_dfs_desc));
302262306a36Sopenharmony_ci	if (ret)
302362306a36Sopenharmony_ci		return ret;
302462306a36Sopenharmony_ci
302562306a36Sopenharmony_ci	return qcom_cc_really_probe(pdev, &gcc_sm7150_desc, regmap);
302662306a36Sopenharmony_ci}
302762306a36Sopenharmony_ci
302862306a36Sopenharmony_cistatic struct platform_driver gcc_sm7150_driver = {
302962306a36Sopenharmony_ci	.probe = gcc_sm7150_probe,
303062306a36Sopenharmony_ci	.driver = {
303162306a36Sopenharmony_ci		.name = "gcc-sm7150",
303262306a36Sopenharmony_ci		.of_match_table = gcc_sm7150_match_table,
303362306a36Sopenharmony_ci	},
303462306a36Sopenharmony_ci};
303562306a36Sopenharmony_ci
303662306a36Sopenharmony_cistatic int __init gcc_sm7150_init(void)
303762306a36Sopenharmony_ci{
303862306a36Sopenharmony_ci	return platform_driver_register(&gcc_sm7150_driver);
303962306a36Sopenharmony_ci}
304062306a36Sopenharmony_cisubsys_initcall(gcc_sm7150_init);
304162306a36Sopenharmony_ci
304262306a36Sopenharmony_cistatic void __exit gcc_sm7150_exit(void)
304362306a36Sopenharmony_ci{
304462306a36Sopenharmony_ci	platform_driver_unregister(&gcc_sm7150_driver);
304562306a36Sopenharmony_ci}
304662306a36Sopenharmony_cimodule_exit(gcc_sm7150_exit);
304762306a36Sopenharmony_ci
304862306a36Sopenharmony_ciMODULE_DESCRIPTION("Qualcomm SM7150 Global Clock Controller");
304962306a36Sopenharmony_ciMODULE_LICENSE("GPL");
3050