162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright (c) 2020, The Linux Foundation. All rights reserved.
462306a36Sopenharmony_ci */
562306a36Sopenharmony_ci
662306a36Sopenharmony_ci#include <linux/clk-provider.h>
762306a36Sopenharmony_ci#include <linux/err.h>
862306a36Sopenharmony_ci#include <linux/kernel.h>
962306a36Sopenharmony_ci#include <linux/module.h>
1062306a36Sopenharmony_ci#include <linux/platform_device.h>
1162306a36Sopenharmony_ci#include <linux/regmap.h>
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ci#include <dt-bindings/clock/qcom,gcc-qcm2290.h>
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ci#include "clk-alpha-pll.h"
1662306a36Sopenharmony_ci#include "clk-branch.h"
1762306a36Sopenharmony_ci#include "clk-rcg.h"
1862306a36Sopenharmony_ci#include "clk-regmap-divider.h"
1962306a36Sopenharmony_ci#include "common.h"
2062306a36Sopenharmony_ci#include "gdsc.h"
2162306a36Sopenharmony_ci#include "reset.h"
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_cienum {
2462306a36Sopenharmony_ci	P_BI_TCXO,
2562306a36Sopenharmony_ci	P_GPLL0_OUT_AUX2,
2662306a36Sopenharmony_ci	P_GPLL0_OUT_EARLY,
2762306a36Sopenharmony_ci	P_GPLL10_OUT_MAIN,
2862306a36Sopenharmony_ci	P_GPLL11_OUT_AUX,
2962306a36Sopenharmony_ci	P_GPLL11_OUT_AUX2,
3062306a36Sopenharmony_ci	P_GPLL11_OUT_MAIN,
3162306a36Sopenharmony_ci	P_GPLL3_OUT_EARLY,
3262306a36Sopenharmony_ci	P_GPLL3_OUT_MAIN,
3362306a36Sopenharmony_ci	P_GPLL4_OUT_MAIN,
3462306a36Sopenharmony_ci	P_GPLL5_OUT_MAIN,
3562306a36Sopenharmony_ci	P_GPLL6_OUT_EARLY,
3662306a36Sopenharmony_ci	P_GPLL6_OUT_MAIN,
3762306a36Sopenharmony_ci	P_GPLL7_OUT_MAIN,
3862306a36Sopenharmony_ci	P_GPLL8_OUT_EARLY,
3962306a36Sopenharmony_ci	P_GPLL8_OUT_MAIN,
4062306a36Sopenharmony_ci	P_GPLL9_OUT_EARLY,
4162306a36Sopenharmony_ci	P_GPLL9_OUT_MAIN,
4262306a36Sopenharmony_ci	P_SLEEP_CLK,
4362306a36Sopenharmony_ci};
4462306a36Sopenharmony_ci
4562306a36Sopenharmony_cistatic const struct pll_vco brammo_vco[] = {
4662306a36Sopenharmony_ci	{ 500000000, 1250000000, 0 },
4762306a36Sopenharmony_ci};
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_cistatic const struct pll_vco default_vco[] = {
5062306a36Sopenharmony_ci	{ 500000000, 1000000000, 2 },
5162306a36Sopenharmony_ci};
5262306a36Sopenharmony_ci
5362306a36Sopenharmony_cistatic const struct pll_vco spark_vco[] = {
5462306a36Sopenharmony_ci	{ 750000000, 1500000000, 1 },
5562306a36Sopenharmony_ci};
5662306a36Sopenharmony_ci
5762306a36Sopenharmony_cistatic struct clk_alpha_pll gpll0 = {
5862306a36Sopenharmony_ci	.offset = 0x0,
5962306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT_EVO],
6062306a36Sopenharmony_ci	.clkr = {
6162306a36Sopenharmony_ci		.enable_reg = 0x79000,
6262306a36Sopenharmony_ci		.enable_mask = BIT(0),
6362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
6462306a36Sopenharmony_ci			.name = "gpll0",
6562306a36Sopenharmony_ci			.parent_data = &(const struct clk_parent_data){
6662306a36Sopenharmony_ci				.fw_name = "bi_tcxo",
6762306a36Sopenharmony_ci			},
6862306a36Sopenharmony_ci			.num_parents = 1,
6962306a36Sopenharmony_ci			.ops = &clk_alpha_pll_ops,
7062306a36Sopenharmony_ci		},
7162306a36Sopenharmony_ci	},
7262306a36Sopenharmony_ci};
7362306a36Sopenharmony_ci
7462306a36Sopenharmony_cistatic const struct clk_div_table post_div_table_gpll0_out_aux2[] = {
7562306a36Sopenharmony_ci	{ 0x1, 2 },
7662306a36Sopenharmony_ci	{ }
7762306a36Sopenharmony_ci};
7862306a36Sopenharmony_ci
7962306a36Sopenharmony_cistatic struct clk_alpha_pll_postdiv gpll0_out_aux2 = {
8062306a36Sopenharmony_ci	.offset = 0x0,
8162306a36Sopenharmony_ci	.post_div_shift = 8,
8262306a36Sopenharmony_ci	.post_div_table = post_div_table_gpll0_out_aux2,
8362306a36Sopenharmony_ci	.num_post_div = ARRAY_SIZE(post_div_table_gpll0_out_aux2),
8462306a36Sopenharmony_ci	.width = 4,
8562306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT_EVO],
8662306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
8762306a36Sopenharmony_ci		.name = "gpll0_out_aux2",
8862306a36Sopenharmony_ci		.parent_hws = (const struct clk_hw *[]){ &gpll0.clkr.hw },
8962306a36Sopenharmony_ci		.num_parents = 1,
9062306a36Sopenharmony_ci		.ops = &clk_alpha_pll_postdiv_ro_ops,
9162306a36Sopenharmony_ci	},
9262306a36Sopenharmony_ci};
9362306a36Sopenharmony_ci
9462306a36Sopenharmony_cistatic struct clk_alpha_pll gpll1 = {
9562306a36Sopenharmony_ci	.offset = 0x1000,
9662306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT_EVO],
9762306a36Sopenharmony_ci	.clkr = {
9862306a36Sopenharmony_ci		.enable_reg = 0x79000,
9962306a36Sopenharmony_ci		.enable_mask = BIT(1),
10062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
10162306a36Sopenharmony_ci			.name = "gpll1",
10262306a36Sopenharmony_ci			.parent_data = &(const struct clk_parent_data){
10362306a36Sopenharmony_ci				.fw_name = "bi_tcxo",
10462306a36Sopenharmony_ci			},
10562306a36Sopenharmony_ci			.num_parents = 1,
10662306a36Sopenharmony_ci			.ops = &clk_alpha_pll_ops,
10762306a36Sopenharmony_ci		},
10862306a36Sopenharmony_ci	},
10962306a36Sopenharmony_ci};
11062306a36Sopenharmony_ci
11162306a36Sopenharmony_ci/* 1152MHz configuration */
11262306a36Sopenharmony_cistatic const struct alpha_pll_config gpll10_config = {
11362306a36Sopenharmony_ci	.l = 0x3c,
11462306a36Sopenharmony_ci	.alpha = 0x0,
11562306a36Sopenharmony_ci	.vco_val = 0x1 << 20,
11662306a36Sopenharmony_ci	.vco_mask = GENMASK(21, 20),
11762306a36Sopenharmony_ci	.main_output_mask = BIT(0),
11862306a36Sopenharmony_ci	.config_ctl_val = 0x4001055B,
11962306a36Sopenharmony_ci	.test_ctl_hi1_val = 0x1,
12062306a36Sopenharmony_ci};
12162306a36Sopenharmony_ci
12262306a36Sopenharmony_cistatic struct clk_alpha_pll gpll10 = {
12362306a36Sopenharmony_ci	.offset = 0xa000,
12462306a36Sopenharmony_ci	.vco_table = spark_vco,
12562306a36Sopenharmony_ci	.num_vco = ARRAY_SIZE(spark_vco),
12662306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT_EVO],
12762306a36Sopenharmony_ci	.clkr = {
12862306a36Sopenharmony_ci		.enable_reg = 0x79000,
12962306a36Sopenharmony_ci		.enable_mask = BIT(10),
13062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
13162306a36Sopenharmony_ci			.name = "gpll10",
13262306a36Sopenharmony_ci			.parent_data = &(const struct clk_parent_data){
13362306a36Sopenharmony_ci				.fw_name = "bi_tcxo",
13462306a36Sopenharmony_ci			},
13562306a36Sopenharmony_ci			.num_parents = 1,
13662306a36Sopenharmony_ci			.ops = &clk_alpha_pll_ops,
13762306a36Sopenharmony_ci		},
13862306a36Sopenharmony_ci	},
13962306a36Sopenharmony_ci};
14062306a36Sopenharmony_ci
14162306a36Sopenharmony_ci/* 532MHz configuration */
14262306a36Sopenharmony_cistatic const struct alpha_pll_config gpll11_config = {
14362306a36Sopenharmony_ci	.l = 0x1B,
14462306a36Sopenharmony_ci	.alpha = 0x55555555,
14562306a36Sopenharmony_ci	.alpha_hi = 0xB5,
14662306a36Sopenharmony_ci	.alpha_en_mask = BIT(24),
14762306a36Sopenharmony_ci	.vco_val = 0x2 << 20,
14862306a36Sopenharmony_ci	.vco_mask = GENMASK(21, 20),
14962306a36Sopenharmony_ci	.main_output_mask = BIT(0),
15062306a36Sopenharmony_ci	.config_ctl_val = 0x4001055B,
15162306a36Sopenharmony_ci	.test_ctl_hi1_val = 0x1,
15262306a36Sopenharmony_ci};
15362306a36Sopenharmony_ci
15462306a36Sopenharmony_cistatic struct clk_alpha_pll gpll11 = {
15562306a36Sopenharmony_ci	.offset = 0xb000,
15662306a36Sopenharmony_ci	.vco_table = default_vco,
15762306a36Sopenharmony_ci	.num_vco = ARRAY_SIZE(default_vco),
15862306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT_EVO],
15962306a36Sopenharmony_ci	.flags = SUPPORTS_DYNAMIC_UPDATE,
16062306a36Sopenharmony_ci	.clkr = {
16162306a36Sopenharmony_ci		.enable_reg = 0x79000,
16262306a36Sopenharmony_ci		.enable_mask = BIT(11),
16362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
16462306a36Sopenharmony_ci			.name = "gpll11",
16562306a36Sopenharmony_ci			.parent_data = &(const struct clk_parent_data){
16662306a36Sopenharmony_ci				.fw_name = "bi_tcxo",
16762306a36Sopenharmony_ci			},
16862306a36Sopenharmony_ci			.num_parents = 1,
16962306a36Sopenharmony_ci			.ops = &clk_alpha_pll_ops,
17062306a36Sopenharmony_ci		},
17162306a36Sopenharmony_ci	},
17262306a36Sopenharmony_ci};
17362306a36Sopenharmony_ci
17462306a36Sopenharmony_cistatic struct clk_alpha_pll gpll3 = {
17562306a36Sopenharmony_ci	.offset = 0x3000,
17662306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT_EVO],
17762306a36Sopenharmony_ci	.clkr = {
17862306a36Sopenharmony_ci		.enable_reg = 0x79000,
17962306a36Sopenharmony_ci		.enable_mask = BIT(3),
18062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
18162306a36Sopenharmony_ci			.name = "gpll3",
18262306a36Sopenharmony_ci			.parent_data = &(const struct clk_parent_data){
18362306a36Sopenharmony_ci				.fw_name = "bi_tcxo",
18462306a36Sopenharmony_ci			},
18562306a36Sopenharmony_ci			.num_parents = 1,
18662306a36Sopenharmony_ci			.ops = &clk_alpha_pll_ops,
18762306a36Sopenharmony_ci		},
18862306a36Sopenharmony_ci	},
18962306a36Sopenharmony_ci};
19062306a36Sopenharmony_ci
19162306a36Sopenharmony_cistatic const struct clk_div_table post_div_table_gpll3_out_main[] = {
19262306a36Sopenharmony_ci	{ 0x1, 2 },
19362306a36Sopenharmony_ci	{ }
19462306a36Sopenharmony_ci};
19562306a36Sopenharmony_ci
19662306a36Sopenharmony_cistatic struct clk_alpha_pll_postdiv gpll3_out_main = {
19762306a36Sopenharmony_ci	.offset = 0x3000,
19862306a36Sopenharmony_ci	.post_div_shift = 8,
19962306a36Sopenharmony_ci	.post_div_table = post_div_table_gpll3_out_main,
20062306a36Sopenharmony_ci	.num_post_div = ARRAY_SIZE(post_div_table_gpll3_out_main),
20162306a36Sopenharmony_ci	.width = 4,
20262306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT_EVO],
20362306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
20462306a36Sopenharmony_ci		.name = "gpll3_out_main",
20562306a36Sopenharmony_ci		.parent_hws = (const struct clk_hw *[]){ &gpll3.clkr.hw },
20662306a36Sopenharmony_ci		.num_parents = 1,
20762306a36Sopenharmony_ci		.ops = &clk_alpha_pll_postdiv_ro_ops,
20862306a36Sopenharmony_ci	},
20962306a36Sopenharmony_ci};
21062306a36Sopenharmony_ci
21162306a36Sopenharmony_cistatic struct clk_alpha_pll gpll4 = {
21262306a36Sopenharmony_ci	.offset = 0x4000,
21362306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT_EVO],
21462306a36Sopenharmony_ci	.clkr = {
21562306a36Sopenharmony_ci		.enable_reg = 0x79000,
21662306a36Sopenharmony_ci		.enable_mask = BIT(4),
21762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
21862306a36Sopenharmony_ci			.name = "gpll4",
21962306a36Sopenharmony_ci			.parent_data = &(const struct clk_parent_data){
22062306a36Sopenharmony_ci				.fw_name = "bi_tcxo",
22162306a36Sopenharmony_ci			},
22262306a36Sopenharmony_ci			.num_parents = 1,
22362306a36Sopenharmony_ci			.ops = &clk_alpha_pll_ops,
22462306a36Sopenharmony_ci		},
22562306a36Sopenharmony_ci	},
22662306a36Sopenharmony_ci};
22762306a36Sopenharmony_ci
22862306a36Sopenharmony_cistatic struct clk_alpha_pll gpll5 = {
22962306a36Sopenharmony_ci	.offset = 0x5000,
23062306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT_EVO],
23162306a36Sopenharmony_ci	.clkr = {
23262306a36Sopenharmony_ci		.enable_reg = 0x79000,
23362306a36Sopenharmony_ci		.enable_mask = BIT(5),
23462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
23562306a36Sopenharmony_ci			.name = "gpll5",
23662306a36Sopenharmony_ci			.parent_data = &(const struct clk_parent_data){
23762306a36Sopenharmony_ci				.fw_name = "bi_tcxo",
23862306a36Sopenharmony_ci			},
23962306a36Sopenharmony_ci			.num_parents = 1,
24062306a36Sopenharmony_ci			.ops = &clk_alpha_pll_ops,
24162306a36Sopenharmony_ci		},
24262306a36Sopenharmony_ci	},
24362306a36Sopenharmony_ci};
24462306a36Sopenharmony_ci
24562306a36Sopenharmony_cistatic struct clk_alpha_pll gpll6 = {
24662306a36Sopenharmony_ci	.offset = 0x6000,
24762306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT_EVO],
24862306a36Sopenharmony_ci	.clkr = {
24962306a36Sopenharmony_ci		.enable_reg = 0x79000,
25062306a36Sopenharmony_ci		.enable_mask = BIT(6),
25162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
25262306a36Sopenharmony_ci			.name = "gpll6",
25362306a36Sopenharmony_ci			.parent_data = &(const struct clk_parent_data){
25462306a36Sopenharmony_ci				.fw_name = "bi_tcxo",
25562306a36Sopenharmony_ci			},
25662306a36Sopenharmony_ci			.num_parents = 1,
25762306a36Sopenharmony_ci			.ops = &clk_alpha_pll_ops,
25862306a36Sopenharmony_ci		},
25962306a36Sopenharmony_ci	},
26062306a36Sopenharmony_ci};
26162306a36Sopenharmony_ci
26262306a36Sopenharmony_cistatic const struct clk_div_table post_div_table_gpll6_out_main[] = {
26362306a36Sopenharmony_ci	{ 0x1, 2 },
26462306a36Sopenharmony_ci	{ }
26562306a36Sopenharmony_ci};
26662306a36Sopenharmony_ci
26762306a36Sopenharmony_cistatic struct clk_alpha_pll_postdiv gpll6_out_main = {
26862306a36Sopenharmony_ci	.offset = 0x6000,
26962306a36Sopenharmony_ci	.post_div_shift = 8,
27062306a36Sopenharmony_ci	.post_div_table = post_div_table_gpll6_out_main,
27162306a36Sopenharmony_ci	.num_post_div = ARRAY_SIZE(post_div_table_gpll6_out_main),
27262306a36Sopenharmony_ci	.width = 4,
27362306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT_EVO],
27462306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
27562306a36Sopenharmony_ci		.name = "gpll6_out_main",
27662306a36Sopenharmony_ci		.parent_hws = (const struct clk_hw *[]){ &gpll6.clkr.hw },
27762306a36Sopenharmony_ci		.num_parents = 1,
27862306a36Sopenharmony_ci		.ops = &clk_alpha_pll_postdiv_ro_ops,
27962306a36Sopenharmony_ci	},
28062306a36Sopenharmony_ci};
28162306a36Sopenharmony_ci
28262306a36Sopenharmony_cistatic struct clk_alpha_pll gpll7 = {
28362306a36Sopenharmony_ci	.offset = 0x7000,
28462306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT_EVO],
28562306a36Sopenharmony_ci	.clkr = {
28662306a36Sopenharmony_ci		.enable_reg = 0x79000,
28762306a36Sopenharmony_ci		.enable_mask = BIT(7),
28862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
28962306a36Sopenharmony_ci			.name = "gpll7",
29062306a36Sopenharmony_ci			.parent_data = &(const struct clk_parent_data){
29162306a36Sopenharmony_ci				.fw_name = "bi_tcxo",
29262306a36Sopenharmony_ci			},
29362306a36Sopenharmony_ci			.num_parents = 1,
29462306a36Sopenharmony_ci			.ops = &clk_alpha_pll_ops,
29562306a36Sopenharmony_ci		},
29662306a36Sopenharmony_ci	},
29762306a36Sopenharmony_ci};
29862306a36Sopenharmony_ci
29962306a36Sopenharmony_ci/* 533.2MHz configuration */
30062306a36Sopenharmony_cistatic const struct alpha_pll_config gpll8_config = {
30162306a36Sopenharmony_ci	.l = 0x1B,
30262306a36Sopenharmony_ci	.alpha = 0x55555555,
30362306a36Sopenharmony_ci	.alpha_hi = 0xC5,
30462306a36Sopenharmony_ci	.alpha_en_mask = BIT(24),
30562306a36Sopenharmony_ci	.vco_val = 0x2 << 20,
30662306a36Sopenharmony_ci	.vco_mask = GENMASK(21, 20),
30762306a36Sopenharmony_ci	.main_output_mask = BIT(0),
30862306a36Sopenharmony_ci	.early_output_mask = BIT(3),
30962306a36Sopenharmony_ci	.post_div_val = 0x1 << 8,
31062306a36Sopenharmony_ci	.post_div_mask = GENMASK(11, 8),
31162306a36Sopenharmony_ci	.config_ctl_val = 0x4001055B,
31262306a36Sopenharmony_ci	.test_ctl_hi1_val = 0x1,
31362306a36Sopenharmony_ci};
31462306a36Sopenharmony_ci
31562306a36Sopenharmony_cistatic struct clk_alpha_pll gpll8 = {
31662306a36Sopenharmony_ci	.offset = 0x8000,
31762306a36Sopenharmony_ci	.vco_table = default_vco,
31862306a36Sopenharmony_ci	.num_vco = ARRAY_SIZE(default_vco),
31962306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT_EVO],
32062306a36Sopenharmony_ci	.flags = SUPPORTS_DYNAMIC_UPDATE,
32162306a36Sopenharmony_ci	.clkr = {
32262306a36Sopenharmony_ci		.enable_reg = 0x79000,
32362306a36Sopenharmony_ci		.enable_mask = BIT(8),
32462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
32562306a36Sopenharmony_ci			.name = "gpll8",
32662306a36Sopenharmony_ci			.parent_data = &(const struct clk_parent_data){
32762306a36Sopenharmony_ci				.fw_name = "bi_tcxo",
32862306a36Sopenharmony_ci			},
32962306a36Sopenharmony_ci			.num_parents = 1,
33062306a36Sopenharmony_ci			.ops = &clk_alpha_pll_ops,
33162306a36Sopenharmony_ci		},
33262306a36Sopenharmony_ci	},
33362306a36Sopenharmony_ci};
33462306a36Sopenharmony_ci
33562306a36Sopenharmony_cistatic const struct clk_div_table post_div_table_gpll8_out_main[] = {
33662306a36Sopenharmony_ci	{ 0x1, 2 },
33762306a36Sopenharmony_ci	{ }
33862306a36Sopenharmony_ci};
33962306a36Sopenharmony_ci
34062306a36Sopenharmony_cistatic struct clk_alpha_pll_postdiv gpll8_out_main = {
34162306a36Sopenharmony_ci	.offset = 0x8000,
34262306a36Sopenharmony_ci	.post_div_shift = 8,
34362306a36Sopenharmony_ci	.post_div_table = post_div_table_gpll8_out_main,
34462306a36Sopenharmony_ci	.num_post_div = ARRAY_SIZE(post_div_table_gpll8_out_main),
34562306a36Sopenharmony_ci	.width = 4,
34662306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT_EVO],
34762306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
34862306a36Sopenharmony_ci		.name = "gpll8_out_main",
34962306a36Sopenharmony_ci		.parent_hws = (const struct clk_hw *[]){ &gpll8.clkr.hw },
35062306a36Sopenharmony_ci		.num_parents = 1,
35162306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
35262306a36Sopenharmony_ci		.ops = &clk_alpha_pll_postdiv_ro_ops,
35362306a36Sopenharmony_ci	},
35462306a36Sopenharmony_ci};
35562306a36Sopenharmony_ci
35662306a36Sopenharmony_ci/* 1152MHz configuration */
35762306a36Sopenharmony_cistatic const struct alpha_pll_config gpll9_config = {
35862306a36Sopenharmony_ci	.l = 0x3C,
35962306a36Sopenharmony_ci	.alpha = 0x0,
36062306a36Sopenharmony_ci	.post_div_val = 0x1 << 8,
36162306a36Sopenharmony_ci	.post_div_mask = GENMASK(9, 8),
36262306a36Sopenharmony_ci	.main_output_mask = BIT(0),
36362306a36Sopenharmony_ci	.early_output_mask = BIT(3),
36462306a36Sopenharmony_ci	.config_ctl_val = 0x00004289,
36562306a36Sopenharmony_ci	.test_ctl_val = 0x08000000,
36662306a36Sopenharmony_ci};
36762306a36Sopenharmony_ci
36862306a36Sopenharmony_cistatic struct clk_alpha_pll gpll9 = {
36962306a36Sopenharmony_ci	.offset = 0x9000,
37062306a36Sopenharmony_ci	.vco_table = brammo_vco,
37162306a36Sopenharmony_ci	.num_vco = ARRAY_SIZE(brammo_vco),
37262306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_BRAMMO_EVO],
37362306a36Sopenharmony_ci	.clkr = {
37462306a36Sopenharmony_ci		.enable_reg = 0x79000,
37562306a36Sopenharmony_ci		.enable_mask = BIT(9),
37662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
37762306a36Sopenharmony_ci			.name = "gpll9",
37862306a36Sopenharmony_ci			.parent_data = &(const struct clk_parent_data){
37962306a36Sopenharmony_ci				.fw_name = "bi_tcxo",
38062306a36Sopenharmony_ci			},
38162306a36Sopenharmony_ci			.num_parents = 1,
38262306a36Sopenharmony_ci			.ops = &clk_alpha_pll_ops,
38362306a36Sopenharmony_ci		},
38462306a36Sopenharmony_ci	},
38562306a36Sopenharmony_ci};
38662306a36Sopenharmony_ci
38762306a36Sopenharmony_cistatic const struct clk_div_table post_div_table_gpll9_out_main[] = {
38862306a36Sopenharmony_ci	{ 0x1, 2 },
38962306a36Sopenharmony_ci	{ }
39062306a36Sopenharmony_ci};
39162306a36Sopenharmony_ci
39262306a36Sopenharmony_cistatic struct clk_alpha_pll_postdiv gpll9_out_main = {
39362306a36Sopenharmony_ci	.offset = 0x9000,
39462306a36Sopenharmony_ci	.post_div_shift = 8,
39562306a36Sopenharmony_ci	.post_div_table = post_div_table_gpll9_out_main,
39662306a36Sopenharmony_ci	.num_post_div = ARRAY_SIZE(post_div_table_gpll9_out_main),
39762306a36Sopenharmony_ci	.width = 2,
39862306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_BRAMMO_EVO],
39962306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
40062306a36Sopenharmony_ci		.name = "gpll9_out_main",
40162306a36Sopenharmony_ci		.parent_hws = (const struct clk_hw *[]){ &gpll9.clkr.hw },
40262306a36Sopenharmony_ci		.num_parents = 1,
40362306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
40462306a36Sopenharmony_ci		.ops = &clk_alpha_pll_postdiv_ro_ops,
40562306a36Sopenharmony_ci	},
40662306a36Sopenharmony_ci};
40762306a36Sopenharmony_ci
40862306a36Sopenharmony_cistatic const struct parent_map gcc_parent_map_0[] = {
40962306a36Sopenharmony_ci	{ P_BI_TCXO, 0 },
41062306a36Sopenharmony_ci	{ P_GPLL0_OUT_EARLY, 1 },
41162306a36Sopenharmony_ci	{ P_GPLL0_OUT_AUX2, 2 },
41262306a36Sopenharmony_ci};
41362306a36Sopenharmony_ci
41462306a36Sopenharmony_cistatic const struct clk_parent_data gcc_parents_0[] = {
41562306a36Sopenharmony_ci	{ .fw_name = "bi_tcxo" },
41662306a36Sopenharmony_ci	{ .hw = &gpll0.clkr.hw },
41762306a36Sopenharmony_ci	{ .hw = &gpll0_out_aux2.clkr.hw },
41862306a36Sopenharmony_ci};
41962306a36Sopenharmony_ci
42062306a36Sopenharmony_cistatic const struct parent_map gcc_parent_map_1[] = {
42162306a36Sopenharmony_ci	{ P_BI_TCXO, 0 },
42262306a36Sopenharmony_ci	{ P_GPLL0_OUT_EARLY, 1 },
42362306a36Sopenharmony_ci	{ P_GPLL0_OUT_AUX2, 2 },
42462306a36Sopenharmony_ci	{ P_GPLL6_OUT_MAIN, 4 },
42562306a36Sopenharmony_ci};
42662306a36Sopenharmony_ci
42762306a36Sopenharmony_cistatic const struct clk_parent_data gcc_parents_1[] = {
42862306a36Sopenharmony_ci	{ .fw_name = "bi_tcxo" },
42962306a36Sopenharmony_ci	{ .hw = &gpll0.clkr.hw },
43062306a36Sopenharmony_ci	{ .hw = &gpll0_out_aux2.clkr.hw },
43162306a36Sopenharmony_ci	{ .hw = &gpll6_out_main.clkr.hw },
43262306a36Sopenharmony_ci};
43362306a36Sopenharmony_ci
43462306a36Sopenharmony_cistatic const struct parent_map gcc_parent_map_2[] = {
43562306a36Sopenharmony_ci	{ P_BI_TCXO, 0 },
43662306a36Sopenharmony_ci	{ P_GPLL0_OUT_EARLY, 1 },
43762306a36Sopenharmony_ci	{ P_GPLL0_OUT_AUX2, 2 },
43862306a36Sopenharmony_ci	{ P_SLEEP_CLK, 5 },
43962306a36Sopenharmony_ci};
44062306a36Sopenharmony_ci
44162306a36Sopenharmony_cistatic const struct clk_parent_data gcc_parents_2[] = {
44262306a36Sopenharmony_ci	{ .fw_name = "bi_tcxo" },
44362306a36Sopenharmony_ci	{ .hw = &gpll0.clkr.hw },
44462306a36Sopenharmony_ci	{ .hw = &gpll0_out_aux2.clkr.hw },
44562306a36Sopenharmony_ci	{ .fw_name = "sleep_clk" },
44662306a36Sopenharmony_ci};
44762306a36Sopenharmony_ci
44862306a36Sopenharmony_cistatic const struct parent_map gcc_parent_map_3[] = {
44962306a36Sopenharmony_ci	{ P_BI_TCXO, 0 },
45062306a36Sopenharmony_ci	{ P_GPLL0_OUT_EARLY, 1 },
45162306a36Sopenharmony_ci	{ P_GPLL9_OUT_EARLY, 2 },
45262306a36Sopenharmony_ci	{ P_GPLL10_OUT_MAIN, 3 },
45362306a36Sopenharmony_ci	{ P_GPLL9_OUT_MAIN, 5 },
45462306a36Sopenharmony_ci	{ P_GPLL3_OUT_MAIN, 6 },
45562306a36Sopenharmony_ci};
45662306a36Sopenharmony_ci
45762306a36Sopenharmony_cistatic const struct clk_parent_data gcc_parents_3[] = {
45862306a36Sopenharmony_ci	{ .fw_name = "bi_tcxo" },
45962306a36Sopenharmony_ci	{ .hw = &gpll0.clkr.hw },
46062306a36Sopenharmony_ci	{ .hw = &gpll9.clkr.hw },
46162306a36Sopenharmony_ci	{ .hw = &gpll10.clkr.hw },
46262306a36Sopenharmony_ci	{ .hw = &gpll9_out_main.clkr.hw },
46362306a36Sopenharmony_ci	{ .hw = &gpll3_out_main.clkr.hw },
46462306a36Sopenharmony_ci};
46562306a36Sopenharmony_ci
46662306a36Sopenharmony_cistatic const struct parent_map gcc_parent_map_4[] = {
46762306a36Sopenharmony_ci	{ P_BI_TCXO, 0 },
46862306a36Sopenharmony_ci	{ P_GPLL0_OUT_EARLY, 1 },
46962306a36Sopenharmony_ci	{ P_GPLL0_OUT_AUX2, 2 },
47062306a36Sopenharmony_ci	{ P_GPLL10_OUT_MAIN, 3 },
47162306a36Sopenharmony_ci	{ P_GPLL4_OUT_MAIN, 5 },
47262306a36Sopenharmony_ci	{ P_GPLL3_OUT_EARLY, 6 },
47362306a36Sopenharmony_ci};
47462306a36Sopenharmony_ci
47562306a36Sopenharmony_cistatic const struct clk_parent_data gcc_parents_4[] = {
47662306a36Sopenharmony_ci	{ .fw_name = "bi_tcxo" },
47762306a36Sopenharmony_ci	{ .hw = &gpll0.clkr.hw },
47862306a36Sopenharmony_ci	{ .hw = &gpll0_out_aux2.clkr.hw },
47962306a36Sopenharmony_ci	{ .hw = &gpll10.clkr.hw },
48062306a36Sopenharmony_ci	{ .hw = &gpll4.clkr.hw },
48162306a36Sopenharmony_ci	{ .hw = &gpll3.clkr.hw },
48262306a36Sopenharmony_ci};
48362306a36Sopenharmony_ci
48462306a36Sopenharmony_cistatic const struct parent_map gcc_parent_map_5[] = {
48562306a36Sopenharmony_ci	{ P_BI_TCXO, 0 },
48662306a36Sopenharmony_ci	{ P_GPLL0_OUT_EARLY, 1 },
48762306a36Sopenharmony_ci	{ P_GPLL0_OUT_AUX2, 2 },
48862306a36Sopenharmony_ci	{ P_GPLL4_OUT_MAIN, 5 },
48962306a36Sopenharmony_ci	{ P_GPLL3_OUT_MAIN, 6 },
49062306a36Sopenharmony_ci};
49162306a36Sopenharmony_ci
49262306a36Sopenharmony_cistatic const struct clk_parent_data gcc_parents_5[] = {
49362306a36Sopenharmony_ci	{ .fw_name = "bi_tcxo" },
49462306a36Sopenharmony_ci	{ .hw = &gpll0.clkr.hw },
49562306a36Sopenharmony_ci	{ .hw = &gpll0_out_aux2.clkr.hw },
49662306a36Sopenharmony_ci	{ .hw = &gpll4.clkr.hw },
49762306a36Sopenharmony_ci	{ .hw = &gpll3_out_main.clkr.hw },
49862306a36Sopenharmony_ci};
49962306a36Sopenharmony_ci
50062306a36Sopenharmony_cistatic const struct parent_map gcc_parent_map_6[] = {
50162306a36Sopenharmony_ci	{ P_BI_TCXO, 0 },
50262306a36Sopenharmony_ci	{ P_GPLL0_OUT_EARLY, 1 },
50362306a36Sopenharmony_ci	{ P_GPLL8_OUT_EARLY, 2 },
50462306a36Sopenharmony_ci	{ P_GPLL10_OUT_MAIN, 3 },
50562306a36Sopenharmony_ci	{ P_GPLL8_OUT_MAIN, 4 },
50662306a36Sopenharmony_ci	{ P_GPLL9_OUT_MAIN, 5 },
50762306a36Sopenharmony_ci	{ P_GPLL3_OUT_EARLY, 6 },
50862306a36Sopenharmony_ci};
50962306a36Sopenharmony_ci
51062306a36Sopenharmony_cistatic const struct clk_parent_data gcc_parents_6[] = {
51162306a36Sopenharmony_ci	{ .fw_name = "bi_tcxo" },
51262306a36Sopenharmony_ci	{ .hw = &gpll0.clkr.hw },
51362306a36Sopenharmony_ci	{ .hw = &gpll8.clkr.hw },
51462306a36Sopenharmony_ci	{ .hw = &gpll10.clkr.hw },
51562306a36Sopenharmony_ci	{ .hw = &gpll8_out_main.clkr.hw },
51662306a36Sopenharmony_ci	{ .hw = &gpll9_out_main.clkr.hw },
51762306a36Sopenharmony_ci	{ .hw = &gpll3.clkr.hw },
51862306a36Sopenharmony_ci};
51962306a36Sopenharmony_ci
52062306a36Sopenharmony_cistatic const struct parent_map gcc_parent_map_7[] = {
52162306a36Sopenharmony_ci	{ P_BI_TCXO, 0 },
52262306a36Sopenharmony_ci	{ P_GPLL0_OUT_EARLY, 1 },
52362306a36Sopenharmony_ci	{ P_GPLL8_OUT_EARLY, 2 },
52462306a36Sopenharmony_ci	{ P_GPLL10_OUT_MAIN, 3 },
52562306a36Sopenharmony_ci	{ P_GPLL8_OUT_MAIN, 4 },
52662306a36Sopenharmony_ci	{ P_GPLL9_OUT_MAIN, 5 },
52762306a36Sopenharmony_ci	{ P_GPLL3_OUT_MAIN, 6 },
52862306a36Sopenharmony_ci};
52962306a36Sopenharmony_ci
53062306a36Sopenharmony_cistatic const struct clk_parent_data gcc_parents_7[] = {
53162306a36Sopenharmony_ci	{ .fw_name = "bi_tcxo" },
53262306a36Sopenharmony_ci	{ .hw = &gpll0.clkr.hw },
53362306a36Sopenharmony_ci	{ .hw = &gpll8.clkr.hw },
53462306a36Sopenharmony_ci	{ .hw = &gpll10.clkr.hw },
53562306a36Sopenharmony_ci	{ .hw = &gpll8_out_main.clkr.hw },
53662306a36Sopenharmony_ci	{ .hw = &gpll9_out_main.clkr.hw },
53762306a36Sopenharmony_ci	{ .hw = &gpll3_out_main.clkr.hw },
53862306a36Sopenharmony_ci};
53962306a36Sopenharmony_ci
54062306a36Sopenharmony_cistatic const struct parent_map gcc_parent_map_8[] = {
54162306a36Sopenharmony_ci	{ P_BI_TCXO, 0 },
54262306a36Sopenharmony_ci	{ P_GPLL0_OUT_EARLY, 1 },
54362306a36Sopenharmony_ci	{ P_GPLL8_OUT_EARLY, 2 },
54462306a36Sopenharmony_ci	{ P_GPLL10_OUT_MAIN, 3 },
54562306a36Sopenharmony_ci	{ P_GPLL6_OUT_MAIN, 4 },
54662306a36Sopenharmony_ci	{ P_GPLL9_OUT_MAIN, 5 },
54762306a36Sopenharmony_ci	{ P_GPLL3_OUT_EARLY, 6 },
54862306a36Sopenharmony_ci};
54962306a36Sopenharmony_ci
55062306a36Sopenharmony_cistatic const struct clk_parent_data gcc_parents_8[] = {
55162306a36Sopenharmony_ci	{ .fw_name = "bi_tcxo" },
55262306a36Sopenharmony_ci	{ .hw = &gpll0.clkr.hw },
55362306a36Sopenharmony_ci	{ .hw = &gpll8.clkr.hw },
55462306a36Sopenharmony_ci	{ .hw = &gpll10.clkr.hw },
55562306a36Sopenharmony_ci	{ .hw = &gpll6_out_main.clkr.hw },
55662306a36Sopenharmony_ci	{ .hw = &gpll9_out_main.clkr.hw },
55762306a36Sopenharmony_ci	{ .hw = &gpll3.clkr.hw },
55862306a36Sopenharmony_ci};
55962306a36Sopenharmony_ci
56062306a36Sopenharmony_cistatic const struct parent_map gcc_parent_map_9[] = {
56162306a36Sopenharmony_ci	{ P_BI_TCXO, 0 },
56262306a36Sopenharmony_ci	{ P_GPLL0_OUT_EARLY, 1 },
56362306a36Sopenharmony_ci	{ P_GPLL0_OUT_AUX2, 2 },
56462306a36Sopenharmony_ci	{ P_GPLL10_OUT_MAIN, 3 },
56562306a36Sopenharmony_ci	{ P_GPLL8_OUT_MAIN, 4 },
56662306a36Sopenharmony_ci	{ P_GPLL9_OUT_MAIN, 5 },
56762306a36Sopenharmony_ci	{ P_GPLL3_OUT_EARLY, 6 },
56862306a36Sopenharmony_ci};
56962306a36Sopenharmony_ci
57062306a36Sopenharmony_cistatic const struct clk_parent_data gcc_parents_9[] = {
57162306a36Sopenharmony_ci	{ .fw_name = "bi_tcxo" },
57262306a36Sopenharmony_ci	{ .hw = &gpll0.clkr.hw },
57362306a36Sopenharmony_ci	{ .hw = &gpll0_out_aux2.clkr.hw },
57462306a36Sopenharmony_ci	{ .hw = &gpll10.clkr.hw },
57562306a36Sopenharmony_ci	{ .hw = &gpll8_out_main.clkr.hw },
57662306a36Sopenharmony_ci	{ .hw = &gpll9_out_main.clkr.hw },
57762306a36Sopenharmony_ci	{ .hw = &gpll3.clkr.hw },
57862306a36Sopenharmony_ci};
57962306a36Sopenharmony_ci
58062306a36Sopenharmony_cistatic const struct parent_map gcc_parent_map_10[] = {
58162306a36Sopenharmony_ci	{ P_BI_TCXO, 0 },
58262306a36Sopenharmony_ci	{ P_GPLL0_OUT_EARLY, 1 },
58362306a36Sopenharmony_ci	{ P_GPLL8_OUT_EARLY, 2 },
58462306a36Sopenharmony_ci	{ P_GPLL10_OUT_MAIN, 3 },
58562306a36Sopenharmony_ci	{ P_GPLL6_OUT_EARLY, 5 },
58662306a36Sopenharmony_ci	{ P_GPLL3_OUT_MAIN, 6 },
58762306a36Sopenharmony_ci};
58862306a36Sopenharmony_ci
58962306a36Sopenharmony_cistatic const struct clk_parent_data gcc_parents_10[] = {
59062306a36Sopenharmony_ci	{ .fw_name = "bi_tcxo" },
59162306a36Sopenharmony_ci	{ .hw = &gpll0.clkr.hw },
59262306a36Sopenharmony_ci	{ .hw = &gpll8.clkr.hw },
59362306a36Sopenharmony_ci	{ .hw = &gpll10.clkr.hw },
59462306a36Sopenharmony_ci	{ .hw = &gpll6.clkr.hw },
59562306a36Sopenharmony_ci	{ .hw = &gpll3_out_main.clkr.hw },
59662306a36Sopenharmony_ci};
59762306a36Sopenharmony_ci
59862306a36Sopenharmony_cistatic const struct parent_map gcc_parent_map_12[] = {
59962306a36Sopenharmony_ci	{ P_BI_TCXO, 0 },
60062306a36Sopenharmony_ci	{ P_GPLL0_OUT_EARLY, 1 },
60162306a36Sopenharmony_ci	{ P_GPLL0_OUT_AUX2, 2 },
60262306a36Sopenharmony_ci	{ P_GPLL7_OUT_MAIN, 3 },
60362306a36Sopenharmony_ci	{ P_GPLL4_OUT_MAIN, 5 },
60462306a36Sopenharmony_ci};
60562306a36Sopenharmony_ci
60662306a36Sopenharmony_cistatic const struct clk_parent_data gcc_parents_12[] = {
60762306a36Sopenharmony_ci	{ .fw_name = "bi_tcxo" },
60862306a36Sopenharmony_ci	{ .hw = &gpll0.clkr.hw },
60962306a36Sopenharmony_ci	{ .hw = &gpll0_out_aux2.clkr.hw },
61062306a36Sopenharmony_ci	{ .hw = &gpll7.clkr.hw },
61162306a36Sopenharmony_ci	{ .hw = &gpll4.clkr.hw },
61262306a36Sopenharmony_ci};
61362306a36Sopenharmony_ci
61462306a36Sopenharmony_cistatic const struct parent_map gcc_parent_map_13[] = {
61562306a36Sopenharmony_ci	{ P_BI_TCXO, 0 },
61662306a36Sopenharmony_ci	{ P_SLEEP_CLK, 5 },
61762306a36Sopenharmony_ci};
61862306a36Sopenharmony_ci
61962306a36Sopenharmony_cistatic const struct clk_parent_data gcc_parents_13[] = {
62062306a36Sopenharmony_ci	{ .fw_name = "bi_tcxo" },
62162306a36Sopenharmony_ci	{ .fw_name = "sleep_clk" },
62262306a36Sopenharmony_ci};
62362306a36Sopenharmony_ci
62462306a36Sopenharmony_cistatic const struct parent_map gcc_parent_map_14[] = {
62562306a36Sopenharmony_ci	{ P_BI_TCXO, 0 },
62662306a36Sopenharmony_ci	{ P_GPLL11_OUT_MAIN, 1 },
62762306a36Sopenharmony_ci	{ P_GPLL11_OUT_AUX, 2 },
62862306a36Sopenharmony_ci	{ P_GPLL11_OUT_AUX2, 3 },
62962306a36Sopenharmony_ci};
63062306a36Sopenharmony_ci
63162306a36Sopenharmony_cistatic const struct clk_parent_data gcc_parents_14[] = {
63262306a36Sopenharmony_ci	{ .fw_name = "bi_tcxo" },
63362306a36Sopenharmony_ci	{ .hw = &gpll11.clkr.hw },
63462306a36Sopenharmony_ci	{ .hw = &gpll11.clkr.hw },
63562306a36Sopenharmony_ci	{ .hw = &gpll11.clkr.hw },
63662306a36Sopenharmony_ci};
63762306a36Sopenharmony_ci
63862306a36Sopenharmony_cistatic const struct freq_tbl ftbl_gcc_usb30_prim_mock_utmi_clk_src[] = {
63962306a36Sopenharmony_ci	F(19200000, P_BI_TCXO, 1, 0, 0),
64062306a36Sopenharmony_ci	{ }
64162306a36Sopenharmony_ci};
64262306a36Sopenharmony_ci
64362306a36Sopenharmony_cistatic struct clk_rcg2 gcc_usb30_prim_mock_utmi_clk_src = {
64462306a36Sopenharmony_ci	.cmd_rcgr = 0x1a034,
64562306a36Sopenharmony_ci	.mnd_width = 0,
64662306a36Sopenharmony_ci	.hid_width = 5,
64762306a36Sopenharmony_ci	.parent_map = gcc_parent_map_0,
64862306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_usb30_prim_mock_utmi_clk_src,
64962306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
65062306a36Sopenharmony_ci		.name = "gcc_usb30_prim_mock_utmi_clk_src",
65162306a36Sopenharmony_ci		.parent_data = gcc_parents_0,
65262306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parents_0),
65362306a36Sopenharmony_ci		.ops = &clk_rcg2_shared_ops,
65462306a36Sopenharmony_ci	},
65562306a36Sopenharmony_ci};
65662306a36Sopenharmony_ci
65762306a36Sopenharmony_cistatic struct clk_regmap_div gcc_usb30_prim_mock_utmi_postdiv = {
65862306a36Sopenharmony_ci	.reg = 0x1a04c,
65962306a36Sopenharmony_ci	.shift = 0,
66062306a36Sopenharmony_ci	.width = 2,
66162306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data) {
66262306a36Sopenharmony_ci		.name = "gcc_usb30_prim_mock_utmi_postdiv",
66362306a36Sopenharmony_ci		.parent_hws = (const struct clk_hw *[])
66462306a36Sopenharmony_ci				{ &gcc_usb30_prim_mock_utmi_clk_src.clkr.hw },
66562306a36Sopenharmony_ci		.num_parents = 1,
66662306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
66762306a36Sopenharmony_ci		.ops = &clk_regmap_div_ro_ops,
66862306a36Sopenharmony_ci	},
66962306a36Sopenharmony_ci};
67062306a36Sopenharmony_ci
67162306a36Sopenharmony_cistatic const struct freq_tbl ftbl_gcc_camss_axi_clk_src[] = {
67262306a36Sopenharmony_ci	F(19200000, P_BI_TCXO, 1, 0, 0),
67362306a36Sopenharmony_ci	F(150000000, P_GPLL0_OUT_AUX2, 2, 0, 0),
67462306a36Sopenharmony_ci	F(200000000, P_GPLL0_OUT_AUX2, 1.5, 0, 0),
67562306a36Sopenharmony_ci	F(300000000, P_GPLL0_OUT_AUX2, 1, 0, 0),
67662306a36Sopenharmony_ci	{ }
67762306a36Sopenharmony_ci};
67862306a36Sopenharmony_ci
67962306a36Sopenharmony_cistatic struct clk_rcg2 gcc_camss_axi_clk_src = {
68062306a36Sopenharmony_ci	.cmd_rcgr = 0x5802c,
68162306a36Sopenharmony_ci	.mnd_width = 0,
68262306a36Sopenharmony_ci	.hid_width = 5,
68362306a36Sopenharmony_ci	.parent_map = gcc_parent_map_4,
68462306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_camss_axi_clk_src,
68562306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
68662306a36Sopenharmony_ci		.name = "gcc_camss_axi_clk_src",
68762306a36Sopenharmony_ci		.parent_data = gcc_parents_4,
68862306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parents_4),
68962306a36Sopenharmony_ci		.ops = &clk_rcg2_shared_ops,
69062306a36Sopenharmony_ci	},
69162306a36Sopenharmony_ci};
69262306a36Sopenharmony_ci
69362306a36Sopenharmony_cistatic const struct freq_tbl ftbl_gcc_camss_cci_clk_src[] = {
69462306a36Sopenharmony_ci	F(19200000, P_BI_TCXO, 1, 0, 0),
69562306a36Sopenharmony_ci	F(37500000, P_GPLL0_OUT_AUX2, 8, 0, 0),
69662306a36Sopenharmony_ci	{ }
69762306a36Sopenharmony_ci};
69862306a36Sopenharmony_ci
69962306a36Sopenharmony_cistatic struct clk_rcg2 gcc_camss_cci_clk_src = {
70062306a36Sopenharmony_ci	.cmd_rcgr = 0x56000,
70162306a36Sopenharmony_ci	.mnd_width = 0,
70262306a36Sopenharmony_ci	.hid_width = 5,
70362306a36Sopenharmony_ci	.parent_map = gcc_parent_map_9,
70462306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_camss_cci_clk_src,
70562306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
70662306a36Sopenharmony_ci		.name = "gcc_camss_cci_clk_src",
70762306a36Sopenharmony_ci		.parent_data = gcc_parents_9,
70862306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parents_9),
70962306a36Sopenharmony_ci		.ops = &clk_rcg2_shared_ops,
71062306a36Sopenharmony_ci	},
71162306a36Sopenharmony_ci};
71262306a36Sopenharmony_ci
71362306a36Sopenharmony_cistatic const struct freq_tbl ftbl_gcc_camss_csi0phytimer_clk_src[] = {
71462306a36Sopenharmony_ci	F(19200000, P_BI_TCXO, 1, 0, 0),
71562306a36Sopenharmony_ci	F(100000000, P_GPLL0_OUT_AUX2, 3, 0, 0),
71662306a36Sopenharmony_ci	F(200000000, P_GPLL0_OUT_AUX2, 1.5, 0, 0),
71762306a36Sopenharmony_ci	F(268800000, P_GPLL4_OUT_MAIN, 3, 0, 0),
71862306a36Sopenharmony_ci	{ }
71962306a36Sopenharmony_ci};
72062306a36Sopenharmony_ci
72162306a36Sopenharmony_cistatic struct clk_rcg2 gcc_camss_csi0phytimer_clk_src = {
72262306a36Sopenharmony_ci	.cmd_rcgr = 0x45000,
72362306a36Sopenharmony_ci	.mnd_width = 0,
72462306a36Sopenharmony_ci	.hid_width = 5,
72562306a36Sopenharmony_ci	.parent_map = gcc_parent_map_5,
72662306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_camss_csi0phytimer_clk_src,
72762306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
72862306a36Sopenharmony_ci		.name = "gcc_camss_csi0phytimer_clk_src",
72962306a36Sopenharmony_ci		.parent_data = gcc_parents_5,
73062306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parents_5),
73162306a36Sopenharmony_ci		.ops = &clk_rcg2_shared_ops,
73262306a36Sopenharmony_ci	},
73362306a36Sopenharmony_ci};
73462306a36Sopenharmony_ci
73562306a36Sopenharmony_cistatic struct clk_rcg2 gcc_camss_csi1phytimer_clk_src = {
73662306a36Sopenharmony_ci	.cmd_rcgr = 0x4501c,
73762306a36Sopenharmony_ci	.mnd_width = 0,
73862306a36Sopenharmony_ci	.hid_width = 5,
73962306a36Sopenharmony_ci	.parent_map = gcc_parent_map_5,
74062306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_camss_csi0phytimer_clk_src,
74162306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
74262306a36Sopenharmony_ci		.name = "gcc_camss_csi1phytimer_clk_src",
74362306a36Sopenharmony_ci		.parent_data = gcc_parents_5,
74462306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parents_5),
74562306a36Sopenharmony_ci		.ops = &clk_rcg2_shared_ops,
74662306a36Sopenharmony_ci	},
74762306a36Sopenharmony_ci};
74862306a36Sopenharmony_ci
74962306a36Sopenharmony_cistatic const struct freq_tbl ftbl_gcc_camss_mclk0_clk_src[] = {
75062306a36Sopenharmony_ci	F(19200000, P_BI_TCXO, 1, 0, 0),
75162306a36Sopenharmony_ci	F(24000000, P_GPLL9_OUT_MAIN, 1, 1, 24),
75262306a36Sopenharmony_ci	F(64000000, P_GPLL9_OUT_EARLY, 9, 1, 2),
75362306a36Sopenharmony_ci	{ }
75462306a36Sopenharmony_ci};
75562306a36Sopenharmony_ci
75662306a36Sopenharmony_cistatic struct clk_rcg2 gcc_camss_mclk0_clk_src = {
75762306a36Sopenharmony_ci	.cmd_rcgr = 0x51000,
75862306a36Sopenharmony_ci	.mnd_width = 8,
75962306a36Sopenharmony_ci	.hid_width = 5,
76062306a36Sopenharmony_ci	.parent_map = gcc_parent_map_3,
76162306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_camss_mclk0_clk_src,
76262306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
76362306a36Sopenharmony_ci		.name = "gcc_camss_mclk0_clk_src",
76462306a36Sopenharmony_ci		.parent_data = gcc_parents_3,
76562306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parents_3),
76662306a36Sopenharmony_ci		.flags = CLK_OPS_PARENT_ENABLE,
76762306a36Sopenharmony_ci		.ops = &clk_rcg2_shared_ops,
76862306a36Sopenharmony_ci	},
76962306a36Sopenharmony_ci};
77062306a36Sopenharmony_ci
77162306a36Sopenharmony_cistatic struct clk_rcg2 gcc_camss_mclk1_clk_src = {
77262306a36Sopenharmony_ci	.cmd_rcgr = 0x5101c,
77362306a36Sopenharmony_ci	.mnd_width = 8,
77462306a36Sopenharmony_ci	.hid_width = 5,
77562306a36Sopenharmony_ci	.parent_map = gcc_parent_map_3,
77662306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_camss_mclk0_clk_src,
77762306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
77862306a36Sopenharmony_ci		.name = "gcc_camss_mclk1_clk_src",
77962306a36Sopenharmony_ci		.parent_data = gcc_parents_3,
78062306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parents_3),
78162306a36Sopenharmony_ci		.flags = CLK_OPS_PARENT_ENABLE,
78262306a36Sopenharmony_ci		.ops = &clk_rcg2_shared_ops,
78362306a36Sopenharmony_ci	},
78462306a36Sopenharmony_ci};
78562306a36Sopenharmony_ci
78662306a36Sopenharmony_cistatic struct clk_rcg2 gcc_camss_mclk2_clk_src = {
78762306a36Sopenharmony_ci	.cmd_rcgr = 0x51038,
78862306a36Sopenharmony_ci	.mnd_width = 8,
78962306a36Sopenharmony_ci	.hid_width = 5,
79062306a36Sopenharmony_ci	.parent_map = gcc_parent_map_3,
79162306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_camss_mclk0_clk_src,
79262306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
79362306a36Sopenharmony_ci		.name = "gcc_camss_mclk2_clk_src",
79462306a36Sopenharmony_ci		.parent_data = gcc_parents_3,
79562306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parents_3),
79662306a36Sopenharmony_ci		.flags = CLK_OPS_PARENT_ENABLE,
79762306a36Sopenharmony_ci		.ops = &clk_rcg2_shared_ops,
79862306a36Sopenharmony_ci	},
79962306a36Sopenharmony_ci};
80062306a36Sopenharmony_ci
80162306a36Sopenharmony_cistatic struct clk_rcg2 gcc_camss_mclk3_clk_src = {
80262306a36Sopenharmony_ci	.cmd_rcgr = 0x51054,
80362306a36Sopenharmony_ci	.mnd_width = 8,
80462306a36Sopenharmony_ci	.hid_width = 5,
80562306a36Sopenharmony_ci	.parent_map = gcc_parent_map_3,
80662306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_camss_mclk0_clk_src,
80762306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
80862306a36Sopenharmony_ci		.name = "gcc_camss_mclk3_clk_src",
80962306a36Sopenharmony_ci		.parent_data = gcc_parents_3,
81062306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parents_3),
81162306a36Sopenharmony_ci		.flags = CLK_OPS_PARENT_ENABLE,
81262306a36Sopenharmony_ci		.ops = &clk_rcg2_shared_ops,
81362306a36Sopenharmony_ci	},
81462306a36Sopenharmony_ci};
81562306a36Sopenharmony_ci
81662306a36Sopenharmony_cistatic const struct freq_tbl ftbl_gcc_camss_ope_ahb_clk_src[] = {
81762306a36Sopenharmony_ci	F(19200000, P_BI_TCXO, 1, 0, 0),
81862306a36Sopenharmony_ci	F(171428571, P_GPLL0_OUT_EARLY, 3.5, 0, 0),
81962306a36Sopenharmony_ci	F(240000000, P_GPLL0_OUT_EARLY, 2.5, 0, 0),
82062306a36Sopenharmony_ci	{ }
82162306a36Sopenharmony_ci};
82262306a36Sopenharmony_ci
82362306a36Sopenharmony_cistatic struct clk_rcg2 gcc_camss_ope_ahb_clk_src = {
82462306a36Sopenharmony_ci	.cmd_rcgr = 0x55024,
82562306a36Sopenharmony_ci	.mnd_width = 0,
82662306a36Sopenharmony_ci	.hid_width = 5,
82762306a36Sopenharmony_ci	.parent_map = gcc_parent_map_6,
82862306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_camss_ope_ahb_clk_src,
82962306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
83062306a36Sopenharmony_ci		.name = "gcc_camss_ope_ahb_clk_src",
83162306a36Sopenharmony_ci		.parent_data = gcc_parents_6,
83262306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parents_6),
83362306a36Sopenharmony_ci		.ops = &clk_rcg2_shared_ops,
83462306a36Sopenharmony_ci	},
83562306a36Sopenharmony_ci};
83662306a36Sopenharmony_ci
83762306a36Sopenharmony_cistatic const struct freq_tbl ftbl_gcc_camss_ope_clk_src[] = {
83862306a36Sopenharmony_ci	F(19200000, P_BI_TCXO, 1, 0, 0),
83962306a36Sopenharmony_ci	F(200000000, P_GPLL8_OUT_MAIN, 2, 0, 0),
84062306a36Sopenharmony_ci	F(266600000, P_GPLL8_OUT_MAIN, 1, 0, 0),
84162306a36Sopenharmony_ci	F(465000000, P_GPLL8_OUT_MAIN, 1, 0, 0),
84262306a36Sopenharmony_ci	F(580000000, P_GPLL8_OUT_EARLY, 1, 0, 0),
84362306a36Sopenharmony_ci	{ }
84462306a36Sopenharmony_ci};
84562306a36Sopenharmony_ci
84662306a36Sopenharmony_cistatic struct clk_rcg2 gcc_camss_ope_clk_src = {
84762306a36Sopenharmony_ci	.cmd_rcgr = 0x55004,
84862306a36Sopenharmony_ci	.mnd_width = 0,
84962306a36Sopenharmony_ci	.hid_width = 5,
85062306a36Sopenharmony_ci	.parent_map = gcc_parent_map_6,
85162306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_camss_ope_clk_src,
85262306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
85362306a36Sopenharmony_ci		.name = "gcc_camss_ope_clk_src",
85462306a36Sopenharmony_ci		.parent_data = gcc_parents_6,
85562306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parents_6),
85662306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
85762306a36Sopenharmony_ci		.ops = &clk_rcg2_shared_ops,
85862306a36Sopenharmony_ci	},
85962306a36Sopenharmony_ci};
86062306a36Sopenharmony_ci
86162306a36Sopenharmony_cistatic const struct freq_tbl ftbl_gcc_camss_tfe_0_clk_src[] = {
86262306a36Sopenharmony_ci	F(19200000, P_BI_TCXO, 1, 0, 0),
86362306a36Sopenharmony_ci	F(128000000, P_GPLL10_OUT_MAIN, 9, 0, 0),
86462306a36Sopenharmony_ci	F(135529412, P_GPLL10_OUT_MAIN, 8.5, 0, 0),
86562306a36Sopenharmony_ci	F(144000000, P_GPLL10_OUT_MAIN, 8, 0, 0),
86662306a36Sopenharmony_ci	F(153600000, P_GPLL10_OUT_MAIN, 7.5, 0, 0),
86762306a36Sopenharmony_ci	F(164571429, P_GPLL10_OUT_MAIN, 7, 0, 0),
86862306a36Sopenharmony_ci	F(177230769, P_GPLL10_OUT_MAIN, 6.5, 0, 0),
86962306a36Sopenharmony_ci	F(192000000, P_GPLL10_OUT_MAIN, 6, 0, 0),
87062306a36Sopenharmony_ci	F(209454545, P_GPLL10_OUT_MAIN, 5.5, 0, 0),
87162306a36Sopenharmony_ci	F(230400000, P_GPLL10_OUT_MAIN, 5, 0, 0),
87262306a36Sopenharmony_ci	F(256000000, P_GPLL10_OUT_MAIN, 4.5, 0, 0),
87362306a36Sopenharmony_ci	F(288000000, P_GPLL10_OUT_MAIN, 4, 0, 0),
87462306a36Sopenharmony_ci	F(329142857, P_GPLL10_OUT_MAIN, 3.5, 0, 0),
87562306a36Sopenharmony_ci	F(384000000, P_GPLL10_OUT_MAIN, 3, 0, 0),
87662306a36Sopenharmony_ci	F(460800000, P_GPLL10_OUT_MAIN, 2.5, 0, 0),
87762306a36Sopenharmony_ci	F(576000000, P_GPLL10_OUT_MAIN, 2, 0, 0),
87862306a36Sopenharmony_ci	{ }
87962306a36Sopenharmony_ci};
88062306a36Sopenharmony_ci
88162306a36Sopenharmony_cistatic struct clk_rcg2 gcc_camss_tfe_0_clk_src = {
88262306a36Sopenharmony_ci	.cmd_rcgr = 0x52004,
88362306a36Sopenharmony_ci	.mnd_width = 8,
88462306a36Sopenharmony_ci	.hid_width = 5,
88562306a36Sopenharmony_ci	.parent_map = gcc_parent_map_7,
88662306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_camss_tfe_0_clk_src,
88762306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
88862306a36Sopenharmony_ci		.name = "gcc_camss_tfe_0_clk_src",
88962306a36Sopenharmony_ci		.parent_data = gcc_parents_7,
89062306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parents_7),
89162306a36Sopenharmony_ci		.ops = &clk_rcg2_shared_ops,
89262306a36Sopenharmony_ci	},
89362306a36Sopenharmony_ci};
89462306a36Sopenharmony_ci
89562306a36Sopenharmony_cistatic const struct freq_tbl ftbl_gcc_camss_tfe_0_csid_clk_src[] = {
89662306a36Sopenharmony_ci	F(19200000, P_BI_TCXO, 1, 0, 0),
89762306a36Sopenharmony_ci	F(120000000, P_GPLL0_OUT_EARLY, 5, 0, 0),
89862306a36Sopenharmony_ci	F(192000000, P_GPLL6_OUT_MAIN, 2, 0, 0),
89962306a36Sopenharmony_ci	F(240000000, P_GPLL0_OUT_EARLY, 2.5, 0, 0),
90062306a36Sopenharmony_ci	F(384000000, P_GPLL6_OUT_MAIN, 1, 0, 0),
90162306a36Sopenharmony_ci	F(426400000, P_GPLL3_OUT_EARLY, 2.5, 0, 0),
90262306a36Sopenharmony_ci	{ }
90362306a36Sopenharmony_ci};
90462306a36Sopenharmony_ci
90562306a36Sopenharmony_cistatic struct clk_rcg2 gcc_camss_tfe_0_csid_clk_src = {
90662306a36Sopenharmony_ci	.cmd_rcgr = 0x52094,
90762306a36Sopenharmony_ci	.mnd_width = 0,
90862306a36Sopenharmony_ci	.hid_width = 5,
90962306a36Sopenharmony_ci	.parent_map = gcc_parent_map_8,
91062306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_camss_tfe_0_csid_clk_src,
91162306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
91262306a36Sopenharmony_ci		.name = "gcc_camss_tfe_0_csid_clk_src",
91362306a36Sopenharmony_ci		.parent_data = gcc_parents_8,
91462306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parents_8),
91562306a36Sopenharmony_ci		.ops = &clk_rcg2_shared_ops,
91662306a36Sopenharmony_ci	},
91762306a36Sopenharmony_ci};
91862306a36Sopenharmony_ci
91962306a36Sopenharmony_cistatic struct clk_rcg2 gcc_camss_tfe_1_clk_src = {
92062306a36Sopenharmony_ci	.cmd_rcgr = 0x52024,
92162306a36Sopenharmony_ci	.mnd_width = 8,
92262306a36Sopenharmony_ci	.hid_width = 5,
92362306a36Sopenharmony_ci	.parent_map = gcc_parent_map_7,
92462306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_camss_tfe_0_clk_src,
92562306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
92662306a36Sopenharmony_ci		.name = "gcc_camss_tfe_1_clk_src",
92762306a36Sopenharmony_ci		.parent_data = gcc_parents_7,
92862306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parents_7),
92962306a36Sopenharmony_ci		.ops = &clk_rcg2_shared_ops,
93062306a36Sopenharmony_ci	},
93162306a36Sopenharmony_ci};
93262306a36Sopenharmony_ci
93362306a36Sopenharmony_cistatic struct clk_rcg2 gcc_camss_tfe_1_csid_clk_src = {
93462306a36Sopenharmony_ci	.cmd_rcgr = 0x520b4,
93562306a36Sopenharmony_ci	.mnd_width = 0,
93662306a36Sopenharmony_ci	.hid_width = 5,
93762306a36Sopenharmony_ci	.parent_map = gcc_parent_map_8,
93862306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_camss_tfe_0_csid_clk_src,
93962306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
94062306a36Sopenharmony_ci		.name = "gcc_camss_tfe_1_csid_clk_src",
94162306a36Sopenharmony_ci		.parent_data = gcc_parents_8,
94262306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parents_8),
94362306a36Sopenharmony_ci		.ops = &clk_rcg2_shared_ops,
94462306a36Sopenharmony_ci	},
94562306a36Sopenharmony_ci};
94662306a36Sopenharmony_ci
94762306a36Sopenharmony_cistatic const struct freq_tbl ftbl_gcc_camss_tfe_cphy_rx_clk_src[] = {
94862306a36Sopenharmony_ci	F(19200000, P_BI_TCXO, 1, 0, 0),
94962306a36Sopenharmony_ci	F(240000000, P_GPLL0_OUT_EARLY, 2.5, 0, 0),
95062306a36Sopenharmony_ci	F(341333333, P_GPLL6_OUT_EARLY, 1, 4, 9),
95162306a36Sopenharmony_ci	F(384000000, P_GPLL6_OUT_EARLY, 2, 0, 0),
95262306a36Sopenharmony_ci	{ }
95362306a36Sopenharmony_ci};
95462306a36Sopenharmony_ci
95562306a36Sopenharmony_cistatic struct clk_rcg2 gcc_camss_tfe_cphy_rx_clk_src = {
95662306a36Sopenharmony_ci	.cmd_rcgr = 0x52064,
95762306a36Sopenharmony_ci	.mnd_width = 16,
95862306a36Sopenharmony_ci	.hid_width = 5,
95962306a36Sopenharmony_ci	.parent_map = gcc_parent_map_10,
96062306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_camss_tfe_cphy_rx_clk_src,
96162306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
96262306a36Sopenharmony_ci		.name = "gcc_camss_tfe_cphy_rx_clk_src",
96362306a36Sopenharmony_ci		.parent_data = gcc_parents_10,
96462306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parents_10),
96562306a36Sopenharmony_ci		.flags = CLK_OPS_PARENT_ENABLE,
96662306a36Sopenharmony_ci		.ops = &clk_rcg2_shared_ops,
96762306a36Sopenharmony_ci	},
96862306a36Sopenharmony_ci};
96962306a36Sopenharmony_ci
97062306a36Sopenharmony_cistatic const struct freq_tbl ftbl_gcc_camss_top_ahb_clk_src[] = {
97162306a36Sopenharmony_ci	F(19200000, P_BI_TCXO, 1, 0, 0),
97262306a36Sopenharmony_ci	F(40000000, P_GPLL0_OUT_AUX2, 7.5, 0, 0),
97362306a36Sopenharmony_ci	F(80000000, P_GPLL0_OUT_EARLY, 7.5, 0, 0),
97462306a36Sopenharmony_ci	{ }
97562306a36Sopenharmony_ci};
97662306a36Sopenharmony_ci
97762306a36Sopenharmony_cistatic struct clk_rcg2 gcc_camss_top_ahb_clk_src = {
97862306a36Sopenharmony_ci	.cmd_rcgr = 0x58010,
97962306a36Sopenharmony_ci	.mnd_width = 0,
98062306a36Sopenharmony_ci	.hid_width = 5,
98162306a36Sopenharmony_ci	.parent_map = gcc_parent_map_4,
98262306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_camss_top_ahb_clk_src,
98362306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
98462306a36Sopenharmony_ci		.name = "gcc_camss_top_ahb_clk_src",
98562306a36Sopenharmony_ci		.parent_data = gcc_parents_4,
98662306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parents_4),
98762306a36Sopenharmony_ci		.ops = &clk_rcg2_shared_ops,
98862306a36Sopenharmony_ci	},
98962306a36Sopenharmony_ci};
99062306a36Sopenharmony_ci
99162306a36Sopenharmony_cistatic const struct freq_tbl ftbl_gcc_gp1_clk_src[] = {
99262306a36Sopenharmony_ci	F(25000000, P_GPLL0_OUT_AUX2, 12, 0, 0),
99362306a36Sopenharmony_ci	F(50000000, P_GPLL0_OUT_AUX2, 6, 0, 0),
99462306a36Sopenharmony_ci	F(100000000, P_GPLL0_OUT_AUX2, 3, 0, 0),
99562306a36Sopenharmony_ci	F(200000000, P_GPLL0_OUT_AUX2, 1.5, 0, 0),
99662306a36Sopenharmony_ci	{ }
99762306a36Sopenharmony_ci};
99862306a36Sopenharmony_ci
99962306a36Sopenharmony_cistatic struct clk_rcg2 gcc_gp1_clk_src = {
100062306a36Sopenharmony_ci	.cmd_rcgr = 0x4d004,
100162306a36Sopenharmony_ci	.mnd_width = 8,
100262306a36Sopenharmony_ci	.hid_width = 5,
100362306a36Sopenharmony_ci	.parent_map = gcc_parent_map_2,
100462306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_gp1_clk_src,
100562306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
100662306a36Sopenharmony_ci		.name = "gcc_gp1_clk_src",
100762306a36Sopenharmony_ci		.parent_data = gcc_parents_2,
100862306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parents_2),
100962306a36Sopenharmony_ci		.ops = &clk_rcg2_shared_ops,
101062306a36Sopenharmony_ci	},
101162306a36Sopenharmony_ci};
101262306a36Sopenharmony_ci
101362306a36Sopenharmony_cistatic struct clk_rcg2 gcc_gp2_clk_src = {
101462306a36Sopenharmony_ci	.cmd_rcgr = 0x4e004,
101562306a36Sopenharmony_ci	.mnd_width = 8,
101662306a36Sopenharmony_ci	.hid_width = 5,
101762306a36Sopenharmony_ci	.parent_map = gcc_parent_map_2,
101862306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_gp1_clk_src,
101962306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
102062306a36Sopenharmony_ci		.name = "gcc_gp2_clk_src",
102162306a36Sopenharmony_ci		.parent_data = gcc_parents_2,
102262306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parents_2),
102362306a36Sopenharmony_ci		.ops = &clk_rcg2_shared_ops,
102462306a36Sopenharmony_ci	},
102562306a36Sopenharmony_ci};
102662306a36Sopenharmony_ci
102762306a36Sopenharmony_cistatic struct clk_rcg2 gcc_gp3_clk_src = {
102862306a36Sopenharmony_ci	.cmd_rcgr = 0x4f004,
102962306a36Sopenharmony_ci	.mnd_width = 8,
103062306a36Sopenharmony_ci	.hid_width = 5,
103162306a36Sopenharmony_ci	.parent_map = gcc_parent_map_2,
103262306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_gp1_clk_src,
103362306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
103462306a36Sopenharmony_ci		.name = "gcc_gp3_clk_src",
103562306a36Sopenharmony_ci		.parent_data = gcc_parents_2,
103662306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parents_2),
103762306a36Sopenharmony_ci		.ops = &clk_rcg2_shared_ops,
103862306a36Sopenharmony_ci	},
103962306a36Sopenharmony_ci};
104062306a36Sopenharmony_ci
104162306a36Sopenharmony_cistatic const struct freq_tbl ftbl_gcc_pdm2_clk_src[] = {
104262306a36Sopenharmony_ci	F(19200000, P_BI_TCXO, 1, 0, 0),
104362306a36Sopenharmony_ci	F(60000000, P_GPLL0_OUT_AUX2, 5, 0, 0),
104462306a36Sopenharmony_ci	{ }
104562306a36Sopenharmony_ci};
104662306a36Sopenharmony_ci
104762306a36Sopenharmony_cistatic struct clk_rcg2 gcc_pdm2_clk_src = {
104862306a36Sopenharmony_ci	.cmd_rcgr = 0x20010,
104962306a36Sopenharmony_ci	.mnd_width = 0,
105062306a36Sopenharmony_ci	.hid_width = 5,
105162306a36Sopenharmony_ci	.parent_map = gcc_parent_map_0,
105262306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_pdm2_clk_src,
105362306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
105462306a36Sopenharmony_ci		.name = "gcc_pdm2_clk_src",
105562306a36Sopenharmony_ci		.parent_data = gcc_parents_0,
105662306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parents_0),
105762306a36Sopenharmony_ci		.ops = &clk_rcg2_shared_ops,
105862306a36Sopenharmony_ci	},
105962306a36Sopenharmony_ci};
106062306a36Sopenharmony_ci
106162306a36Sopenharmony_cistatic const struct freq_tbl ftbl_gcc_qupv3_wrap0_s0_clk_src[] = {
106262306a36Sopenharmony_ci	F(7372800, P_GPLL0_OUT_AUX2, 1, 384, 15625),
106362306a36Sopenharmony_ci	F(14745600, P_GPLL0_OUT_AUX2, 1, 768, 15625),
106462306a36Sopenharmony_ci	F(19200000, P_BI_TCXO, 1, 0, 0),
106562306a36Sopenharmony_ci	F(29491200, P_GPLL0_OUT_AUX2, 1, 1536, 15625),
106662306a36Sopenharmony_ci	F(32000000, P_GPLL0_OUT_AUX2, 1, 8, 75),
106762306a36Sopenharmony_ci	F(48000000, P_GPLL0_OUT_AUX2, 1, 4, 25),
106862306a36Sopenharmony_ci	F(64000000, P_GPLL0_OUT_AUX2, 1, 16, 75),
106962306a36Sopenharmony_ci	F(75000000, P_GPLL0_OUT_AUX2, 4, 0, 0),
107062306a36Sopenharmony_ci	F(80000000, P_GPLL0_OUT_AUX2, 1, 4, 15),
107162306a36Sopenharmony_ci	F(96000000, P_GPLL0_OUT_AUX2, 1, 8, 25),
107262306a36Sopenharmony_ci	F(100000000, P_GPLL0_OUT_AUX2, 3, 0, 0),
107362306a36Sopenharmony_ci	F(102400000, P_GPLL0_OUT_AUX2, 1, 128, 375),
107462306a36Sopenharmony_ci	F(112000000, P_GPLL0_OUT_AUX2, 1, 28, 75),
107562306a36Sopenharmony_ci	F(117964800, P_GPLL0_OUT_AUX2, 1, 6144, 15625),
107662306a36Sopenharmony_ci	F(120000000, P_GPLL0_OUT_AUX2, 2.5, 0, 0),
107762306a36Sopenharmony_ci	F(128000000, P_GPLL6_OUT_MAIN, 3, 0, 0),
107862306a36Sopenharmony_ci	{ }
107962306a36Sopenharmony_ci};
108062306a36Sopenharmony_ci
108162306a36Sopenharmony_cistatic struct clk_init_data gcc_qupv3_wrap0_s0_clk_src_init = {
108262306a36Sopenharmony_ci	.name = "gcc_qupv3_wrap0_s0_clk_src",
108362306a36Sopenharmony_ci	.parent_data = gcc_parents_1,
108462306a36Sopenharmony_ci	.num_parents = ARRAY_SIZE(gcc_parents_1),
108562306a36Sopenharmony_ci	.ops = &clk_rcg2_shared_ops,
108662306a36Sopenharmony_ci};
108762306a36Sopenharmony_ci
108862306a36Sopenharmony_cistatic struct clk_rcg2 gcc_qupv3_wrap0_s0_clk_src = {
108962306a36Sopenharmony_ci	.cmd_rcgr = 0x1f148,
109062306a36Sopenharmony_ci	.mnd_width = 16,
109162306a36Sopenharmony_ci	.hid_width = 5,
109262306a36Sopenharmony_ci	.parent_map = gcc_parent_map_1,
109362306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
109462306a36Sopenharmony_ci	.clkr.hw.init = &gcc_qupv3_wrap0_s0_clk_src_init,
109562306a36Sopenharmony_ci};
109662306a36Sopenharmony_ci
109762306a36Sopenharmony_cistatic struct clk_init_data gcc_qupv3_wrap0_s1_clk_src_init = {
109862306a36Sopenharmony_ci	.name = "gcc_qupv3_wrap0_s1_clk_src",
109962306a36Sopenharmony_ci	.parent_data = gcc_parents_1,
110062306a36Sopenharmony_ci	.num_parents = ARRAY_SIZE(gcc_parents_1),
110162306a36Sopenharmony_ci	.ops = &clk_rcg2_shared_ops,
110262306a36Sopenharmony_ci};
110362306a36Sopenharmony_ci
110462306a36Sopenharmony_cistatic struct clk_rcg2 gcc_qupv3_wrap0_s1_clk_src = {
110562306a36Sopenharmony_ci	.cmd_rcgr = 0x1f278,
110662306a36Sopenharmony_ci	.mnd_width = 16,
110762306a36Sopenharmony_ci	.hid_width = 5,
110862306a36Sopenharmony_ci	.parent_map = gcc_parent_map_1,
110962306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
111062306a36Sopenharmony_ci	.clkr.hw.init = &gcc_qupv3_wrap0_s1_clk_src_init,
111162306a36Sopenharmony_ci};
111262306a36Sopenharmony_ci
111362306a36Sopenharmony_cistatic struct clk_init_data gcc_qupv3_wrap0_s2_clk_src_init = {
111462306a36Sopenharmony_ci	.name = "gcc_qupv3_wrap0_s2_clk_src",
111562306a36Sopenharmony_ci	.parent_data = gcc_parents_1,
111662306a36Sopenharmony_ci	.num_parents = ARRAY_SIZE(gcc_parents_1),
111762306a36Sopenharmony_ci	.ops = &clk_rcg2_shared_ops,
111862306a36Sopenharmony_ci};
111962306a36Sopenharmony_ci
112062306a36Sopenharmony_cistatic struct clk_rcg2 gcc_qupv3_wrap0_s2_clk_src = {
112162306a36Sopenharmony_ci	.cmd_rcgr = 0x1f3a8,
112262306a36Sopenharmony_ci	.mnd_width = 16,
112362306a36Sopenharmony_ci	.hid_width = 5,
112462306a36Sopenharmony_ci	.parent_map = gcc_parent_map_1,
112562306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
112662306a36Sopenharmony_ci	.clkr.hw.init = &gcc_qupv3_wrap0_s2_clk_src_init,
112762306a36Sopenharmony_ci};
112862306a36Sopenharmony_ci
112962306a36Sopenharmony_cistatic struct clk_init_data gcc_qupv3_wrap0_s3_clk_src_init = {
113062306a36Sopenharmony_ci	.name = "gcc_qupv3_wrap0_s3_clk_src",
113162306a36Sopenharmony_ci	.parent_data = gcc_parents_1,
113262306a36Sopenharmony_ci	.num_parents = ARRAY_SIZE(gcc_parents_1),
113362306a36Sopenharmony_ci	.ops = &clk_rcg2_shared_ops,
113462306a36Sopenharmony_ci};
113562306a36Sopenharmony_ci
113662306a36Sopenharmony_cistatic struct clk_rcg2 gcc_qupv3_wrap0_s3_clk_src = {
113762306a36Sopenharmony_ci	.cmd_rcgr = 0x1f4d8,
113862306a36Sopenharmony_ci	.mnd_width = 16,
113962306a36Sopenharmony_ci	.hid_width = 5,
114062306a36Sopenharmony_ci	.parent_map = gcc_parent_map_1,
114162306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
114262306a36Sopenharmony_ci	.clkr.hw.init = &gcc_qupv3_wrap0_s3_clk_src_init,
114362306a36Sopenharmony_ci};
114462306a36Sopenharmony_ci
114562306a36Sopenharmony_cistatic struct clk_init_data gcc_qupv3_wrap0_s4_clk_src_init = {
114662306a36Sopenharmony_ci	.name = "gcc_qupv3_wrap0_s4_clk_src",
114762306a36Sopenharmony_ci	.parent_data = gcc_parents_1,
114862306a36Sopenharmony_ci	.num_parents = ARRAY_SIZE(gcc_parents_1),
114962306a36Sopenharmony_ci	.ops = &clk_rcg2_shared_ops,
115062306a36Sopenharmony_ci};
115162306a36Sopenharmony_ci
115262306a36Sopenharmony_cistatic struct clk_rcg2 gcc_qupv3_wrap0_s4_clk_src = {
115362306a36Sopenharmony_ci	.cmd_rcgr = 0x1f608,
115462306a36Sopenharmony_ci	.mnd_width = 16,
115562306a36Sopenharmony_ci	.hid_width = 5,
115662306a36Sopenharmony_ci	.parent_map = gcc_parent_map_1,
115762306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
115862306a36Sopenharmony_ci	.clkr.hw.init = &gcc_qupv3_wrap0_s4_clk_src_init,
115962306a36Sopenharmony_ci};
116062306a36Sopenharmony_ci
116162306a36Sopenharmony_cistatic struct clk_init_data gcc_qupv3_wrap0_s5_clk_src_init = {
116262306a36Sopenharmony_ci	.name = "gcc_qupv3_wrap0_s5_clk_src",
116362306a36Sopenharmony_ci	.parent_data = gcc_parents_1,
116462306a36Sopenharmony_ci	.num_parents = ARRAY_SIZE(gcc_parents_1),
116562306a36Sopenharmony_ci	.ops = &clk_rcg2_shared_ops,
116662306a36Sopenharmony_ci};
116762306a36Sopenharmony_ci
116862306a36Sopenharmony_cistatic struct clk_rcg2 gcc_qupv3_wrap0_s5_clk_src = {
116962306a36Sopenharmony_ci	.cmd_rcgr = 0x1f738,
117062306a36Sopenharmony_ci	.mnd_width = 16,
117162306a36Sopenharmony_ci	.hid_width = 5,
117262306a36Sopenharmony_ci	.parent_map = gcc_parent_map_1,
117362306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
117462306a36Sopenharmony_ci	.clkr.hw.init = &gcc_qupv3_wrap0_s5_clk_src_init,
117562306a36Sopenharmony_ci};
117662306a36Sopenharmony_ci
117762306a36Sopenharmony_cistatic const struct freq_tbl ftbl_gcc_sdcc1_apps_clk_src[] = {
117862306a36Sopenharmony_ci	F(144000, P_BI_TCXO, 16, 3, 25),
117962306a36Sopenharmony_ci	F(400000, P_BI_TCXO, 12, 1, 4),
118062306a36Sopenharmony_ci	F(20000000, P_GPLL0_OUT_AUX2, 5, 1, 3),
118162306a36Sopenharmony_ci	F(25000000, P_GPLL0_OUT_AUX2, 6, 1, 2),
118262306a36Sopenharmony_ci	F(50000000, P_GPLL0_OUT_AUX2, 6, 0, 0),
118362306a36Sopenharmony_ci	F(100000000, P_GPLL0_OUT_AUX2, 3, 0, 0),
118462306a36Sopenharmony_ci	F(192000000, P_GPLL6_OUT_MAIN, 2, 0, 0),
118562306a36Sopenharmony_ci	F(384000000, P_GPLL6_OUT_MAIN, 1, 0, 0),
118662306a36Sopenharmony_ci	{ }
118762306a36Sopenharmony_ci};
118862306a36Sopenharmony_ci
118962306a36Sopenharmony_cistatic struct clk_rcg2 gcc_sdcc1_apps_clk_src = {
119062306a36Sopenharmony_ci	.cmd_rcgr = 0x38028,
119162306a36Sopenharmony_ci	.mnd_width = 8,
119262306a36Sopenharmony_ci	.hid_width = 5,
119362306a36Sopenharmony_ci	.parent_map = gcc_parent_map_1,
119462306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_sdcc1_apps_clk_src,
119562306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
119662306a36Sopenharmony_ci		.name = "gcc_sdcc1_apps_clk_src",
119762306a36Sopenharmony_ci		.parent_data = gcc_parents_1,
119862306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parents_1),
119962306a36Sopenharmony_ci		.ops = &clk_rcg2_floor_ops,
120062306a36Sopenharmony_ci	},
120162306a36Sopenharmony_ci};
120262306a36Sopenharmony_ci
120362306a36Sopenharmony_cistatic const struct freq_tbl ftbl_gcc_sdcc1_ice_core_clk_src[] = {
120462306a36Sopenharmony_ci	F(75000000, P_GPLL0_OUT_AUX2, 4, 0, 0),
120562306a36Sopenharmony_ci	F(100000000, P_GPLL0_OUT_AUX2, 3, 0, 0),
120662306a36Sopenharmony_ci	F(150000000, P_GPLL0_OUT_AUX2, 2, 0, 0),
120762306a36Sopenharmony_ci	F(200000000, P_GPLL0_OUT_EARLY, 3, 0, 0),
120862306a36Sopenharmony_ci	F(300000000, P_GPLL0_OUT_AUX2, 1, 0, 0),
120962306a36Sopenharmony_ci	{ }
121062306a36Sopenharmony_ci};
121162306a36Sopenharmony_ci
121262306a36Sopenharmony_cistatic struct clk_rcg2 gcc_sdcc1_ice_core_clk_src = {
121362306a36Sopenharmony_ci	.cmd_rcgr = 0x38010,
121462306a36Sopenharmony_ci	.mnd_width = 0,
121562306a36Sopenharmony_ci	.hid_width = 5,
121662306a36Sopenharmony_ci	.parent_map = gcc_parent_map_0,
121762306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_sdcc1_ice_core_clk_src,
121862306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
121962306a36Sopenharmony_ci		.name = "gcc_sdcc1_ice_core_clk_src",
122062306a36Sopenharmony_ci		.parent_data = gcc_parents_0,
122162306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parents_0),
122262306a36Sopenharmony_ci		.ops = &clk_rcg2_shared_ops,
122362306a36Sopenharmony_ci	},
122462306a36Sopenharmony_ci};
122562306a36Sopenharmony_ci
122662306a36Sopenharmony_cistatic const struct freq_tbl ftbl_gcc_sdcc2_apps_clk_src[] = {
122762306a36Sopenharmony_ci	F(400000, P_BI_TCXO, 12, 1, 4),
122862306a36Sopenharmony_ci	F(19200000, P_BI_TCXO, 1, 0, 0),
122962306a36Sopenharmony_ci	F(25000000, P_GPLL0_OUT_AUX2, 12, 0, 0),
123062306a36Sopenharmony_ci	F(50000000, P_GPLL0_OUT_AUX2, 6, 0, 0),
123162306a36Sopenharmony_ci	F(100000000, P_GPLL0_OUT_AUX2, 3, 0, 0),
123262306a36Sopenharmony_ci	F(202000000, P_GPLL7_OUT_MAIN, 4, 0, 0),
123362306a36Sopenharmony_ci	{ }
123462306a36Sopenharmony_ci};
123562306a36Sopenharmony_ci
123662306a36Sopenharmony_cistatic struct clk_rcg2 gcc_sdcc2_apps_clk_src = {
123762306a36Sopenharmony_ci	.cmd_rcgr = 0x1e00c,
123862306a36Sopenharmony_ci	.mnd_width = 8,
123962306a36Sopenharmony_ci	.hid_width = 5,
124062306a36Sopenharmony_ci	.parent_map = gcc_parent_map_12,
124162306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_sdcc2_apps_clk_src,
124262306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
124362306a36Sopenharmony_ci		.name = "gcc_sdcc2_apps_clk_src",
124462306a36Sopenharmony_ci		.parent_data = gcc_parents_12,
124562306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parents_12),
124662306a36Sopenharmony_ci		.ops = &clk_rcg2_floor_ops,
124762306a36Sopenharmony_ci		.flags = CLK_OPS_PARENT_ENABLE,
124862306a36Sopenharmony_ci	},
124962306a36Sopenharmony_ci};
125062306a36Sopenharmony_ci
125162306a36Sopenharmony_cistatic const struct freq_tbl ftbl_gcc_usb30_prim_master_clk_src[] = {
125262306a36Sopenharmony_ci	F(66666667, P_GPLL0_OUT_AUX2, 4.5, 0, 0),
125362306a36Sopenharmony_ci	F(133333333, P_GPLL0_OUT_EARLY, 4.5, 0, 0),
125462306a36Sopenharmony_ci	F(200000000, P_GPLL0_OUT_EARLY, 3, 0, 0),
125562306a36Sopenharmony_ci	F(240000000, P_GPLL0_OUT_EARLY, 2.5, 0, 0),
125662306a36Sopenharmony_ci	{ }
125762306a36Sopenharmony_ci};
125862306a36Sopenharmony_ci
125962306a36Sopenharmony_cistatic struct clk_rcg2 gcc_usb30_prim_master_clk_src = {
126062306a36Sopenharmony_ci	.cmd_rcgr = 0x1a01c,
126162306a36Sopenharmony_ci	.mnd_width = 8,
126262306a36Sopenharmony_ci	.hid_width = 5,
126362306a36Sopenharmony_ci	.parent_map = gcc_parent_map_0,
126462306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_usb30_prim_master_clk_src,
126562306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
126662306a36Sopenharmony_ci		.name = "gcc_usb30_prim_master_clk_src",
126762306a36Sopenharmony_ci		.parent_data = gcc_parents_0,
126862306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parents_0),
126962306a36Sopenharmony_ci		.ops = &clk_rcg2_shared_ops,
127062306a36Sopenharmony_ci	},
127162306a36Sopenharmony_ci};
127262306a36Sopenharmony_ci
127362306a36Sopenharmony_cistatic struct clk_rcg2 gcc_usb3_prim_phy_aux_clk_src = {
127462306a36Sopenharmony_ci	.cmd_rcgr = 0x1a060,
127562306a36Sopenharmony_ci	.mnd_width = 0,
127662306a36Sopenharmony_ci	.hid_width = 5,
127762306a36Sopenharmony_ci	.parent_map = gcc_parent_map_13,
127862306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_usb30_prim_mock_utmi_clk_src,
127962306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
128062306a36Sopenharmony_ci		.name = "gcc_usb3_prim_phy_aux_clk_src",
128162306a36Sopenharmony_ci		.parent_data = gcc_parents_13,
128262306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parents_13),
128362306a36Sopenharmony_ci		.ops = &clk_rcg2_shared_ops,
128462306a36Sopenharmony_ci	},
128562306a36Sopenharmony_ci};
128662306a36Sopenharmony_ci
128762306a36Sopenharmony_cistatic const struct freq_tbl ftbl_gcc_video_venus_clk_src[] = {
128862306a36Sopenharmony_ci	F(133333333, P_GPLL11_OUT_MAIN, 4.5, 0, 0),
128962306a36Sopenharmony_ci	F(240000000, P_GPLL11_OUT_MAIN, 2.5, 0, 0),
129062306a36Sopenharmony_ci	F(300000000, P_GPLL11_OUT_MAIN, 2, 0, 0),
129162306a36Sopenharmony_ci	F(384000000, P_GPLL11_OUT_MAIN, 2, 0, 0),
129262306a36Sopenharmony_ci	{ }
129362306a36Sopenharmony_ci};
129462306a36Sopenharmony_ci
129562306a36Sopenharmony_cistatic struct clk_rcg2 gcc_video_venus_clk_src = {
129662306a36Sopenharmony_ci	.cmd_rcgr = 0x58060,
129762306a36Sopenharmony_ci	.mnd_width = 0,
129862306a36Sopenharmony_ci	.hid_width = 5,
129962306a36Sopenharmony_ci	.parent_map = gcc_parent_map_14,
130062306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_video_venus_clk_src,
130162306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
130262306a36Sopenharmony_ci		.name = "gcc_video_venus_clk_src",
130362306a36Sopenharmony_ci		.parent_data = gcc_parents_14,
130462306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parents_14),
130562306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
130662306a36Sopenharmony_ci		.ops = &clk_rcg2_shared_ops,
130762306a36Sopenharmony_ci	},
130862306a36Sopenharmony_ci};
130962306a36Sopenharmony_ci
131062306a36Sopenharmony_cistatic struct clk_branch gcc_ahb2phy_csi_clk = {
131162306a36Sopenharmony_ci	.halt_reg = 0x1d004,
131262306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_DELAY,
131362306a36Sopenharmony_ci	.hwcg_reg = 0x1d004,
131462306a36Sopenharmony_ci	.hwcg_bit = 1,
131562306a36Sopenharmony_ci	.clkr = {
131662306a36Sopenharmony_ci		.enable_reg = 0x1d004,
131762306a36Sopenharmony_ci		.enable_mask = BIT(0),
131862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
131962306a36Sopenharmony_ci			.name = "gcc_ahb2phy_csi_clk",
132062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
132162306a36Sopenharmony_ci		},
132262306a36Sopenharmony_ci	},
132362306a36Sopenharmony_ci};
132462306a36Sopenharmony_ci
132562306a36Sopenharmony_cistatic struct clk_branch gcc_ahb2phy_usb_clk = {
132662306a36Sopenharmony_ci	.halt_reg = 0x1d008,
132762306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
132862306a36Sopenharmony_ci	.hwcg_reg = 0x1d008,
132962306a36Sopenharmony_ci	.hwcg_bit = 1,
133062306a36Sopenharmony_ci	.clkr = {
133162306a36Sopenharmony_ci		.enable_reg = 0x1d008,
133262306a36Sopenharmony_ci		.enable_mask = BIT(0),
133362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
133462306a36Sopenharmony_ci			.name = "gcc_ahb2phy_usb_clk",
133562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
133662306a36Sopenharmony_ci		},
133762306a36Sopenharmony_ci	},
133862306a36Sopenharmony_ci};
133962306a36Sopenharmony_ci
134062306a36Sopenharmony_cistatic struct clk_branch gcc_bimc_gpu_axi_clk = {
134162306a36Sopenharmony_ci	.halt_reg = 0x71154,
134262306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_DELAY,
134362306a36Sopenharmony_ci	.hwcg_reg = 0x71154,
134462306a36Sopenharmony_ci	.hwcg_bit = 1,
134562306a36Sopenharmony_ci	.clkr = {
134662306a36Sopenharmony_ci		.enable_reg = 0x71154,
134762306a36Sopenharmony_ci		.enable_mask = BIT(0),
134862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
134962306a36Sopenharmony_ci			.name = "gcc_bimc_gpu_axi_clk",
135062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
135162306a36Sopenharmony_ci		},
135262306a36Sopenharmony_ci	},
135362306a36Sopenharmony_ci};
135462306a36Sopenharmony_ci
135562306a36Sopenharmony_cistatic struct clk_branch gcc_boot_rom_ahb_clk = {
135662306a36Sopenharmony_ci	.halt_reg = 0x23004,
135762306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
135862306a36Sopenharmony_ci	.hwcg_reg = 0x23004,
135962306a36Sopenharmony_ci	.hwcg_bit = 1,
136062306a36Sopenharmony_ci	.clkr = {
136162306a36Sopenharmony_ci		.enable_reg = 0x79004,
136262306a36Sopenharmony_ci		.enable_mask = BIT(10),
136362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
136462306a36Sopenharmony_ci			.name = "gcc_boot_rom_ahb_clk",
136562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
136662306a36Sopenharmony_ci		},
136762306a36Sopenharmony_ci	},
136862306a36Sopenharmony_ci};
136962306a36Sopenharmony_ci
137062306a36Sopenharmony_cistatic struct clk_branch gcc_cam_throttle_nrt_clk = {
137162306a36Sopenharmony_ci	.halt_reg = 0x17070,
137262306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
137362306a36Sopenharmony_ci	.hwcg_reg = 0x17070,
137462306a36Sopenharmony_ci	.hwcg_bit = 1,
137562306a36Sopenharmony_ci	.clkr = {
137662306a36Sopenharmony_ci		.enable_reg = 0x79004,
137762306a36Sopenharmony_ci		.enable_mask = BIT(27),
137862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
137962306a36Sopenharmony_ci			.name = "gcc_cam_throttle_nrt_clk",
138062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
138162306a36Sopenharmony_ci		},
138262306a36Sopenharmony_ci	},
138362306a36Sopenharmony_ci};
138462306a36Sopenharmony_ci
138562306a36Sopenharmony_cistatic struct clk_branch gcc_cam_throttle_rt_clk = {
138662306a36Sopenharmony_ci	.halt_reg = 0x1706c,
138762306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
138862306a36Sopenharmony_ci	.hwcg_reg = 0x1706c,
138962306a36Sopenharmony_ci	.hwcg_bit = 1,
139062306a36Sopenharmony_ci	.clkr = {
139162306a36Sopenharmony_ci		.enable_reg = 0x79004,
139262306a36Sopenharmony_ci		.enable_mask = BIT(26),
139362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
139462306a36Sopenharmony_ci			.name = "gcc_cam_throttle_rt_clk",
139562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
139662306a36Sopenharmony_ci		},
139762306a36Sopenharmony_ci	},
139862306a36Sopenharmony_ci};
139962306a36Sopenharmony_ci
140062306a36Sopenharmony_cistatic struct clk_branch gcc_camera_ahb_clk = {
140162306a36Sopenharmony_ci	.halt_reg = 0x17008,
140262306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_DELAY,
140362306a36Sopenharmony_ci	.hwcg_reg = 0x17008,
140462306a36Sopenharmony_ci	.hwcg_bit = 1,
140562306a36Sopenharmony_ci	.clkr = {
140662306a36Sopenharmony_ci		.enable_reg = 0x17008,
140762306a36Sopenharmony_ci		.enable_mask = BIT(0),
140862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
140962306a36Sopenharmony_ci			.name = "gcc_camera_ahb_clk",
141062306a36Sopenharmony_ci			.flags = CLK_IS_CRITICAL,
141162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
141262306a36Sopenharmony_ci		},
141362306a36Sopenharmony_ci	},
141462306a36Sopenharmony_ci};
141562306a36Sopenharmony_ci
141662306a36Sopenharmony_cistatic struct clk_branch gcc_camera_xo_clk = {
141762306a36Sopenharmony_ci	.halt_reg = 0x17028,
141862306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
141962306a36Sopenharmony_ci	.clkr = {
142062306a36Sopenharmony_ci		.enable_reg = 0x17028,
142162306a36Sopenharmony_ci		.enable_mask = BIT(0),
142262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
142362306a36Sopenharmony_ci			.name = "gcc_camera_xo_clk",
142462306a36Sopenharmony_ci			.flags = CLK_IS_CRITICAL,
142562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
142662306a36Sopenharmony_ci		},
142762306a36Sopenharmony_ci	},
142862306a36Sopenharmony_ci};
142962306a36Sopenharmony_ci
143062306a36Sopenharmony_cistatic struct clk_branch gcc_camss_axi_clk = {
143162306a36Sopenharmony_ci	.halt_reg = 0x58044,
143262306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
143362306a36Sopenharmony_ci	.clkr = {
143462306a36Sopenharmony_ci		.enable_reg = 0x58044,
143562306a36Sopenharmony_ci		.enable_mask = BIT(0),
143662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
143762306a36Sopenharmony_ci			.name = "gcc_camss_axi_clk",
143862306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[])
143962306a36Sopenharmony_ci					{ &gcc_camss_axi_clk_src.clkr.hw },
144062306a36Sopenharmony_ci			.num_parents = 1,
144162306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
144262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
144362306a36Sopenharmony_ci		},
144462306a36Sopenharmony_ci	},
144562306a36Sopenharmony_ci};
144662306a36Sopenharmony_ci
144762306a36Sopenharmony_cistatic struct clk_branch gcc_camss_camnoc_atb_clk = {
144862306a36Sopenharmony_ci	.halt_reg = 0x5804c,
144962306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_DELAY,
145062306a36Sopenharmony_ci	.hwcg_reg = 0x5804c,
145162306a36Sopenharmony_ci	.hwcg_bit = 1,
145262306a36Sopenharmony_ci	.clkr = {
145362306a36Sopenharmony_ci		.enable_reg = 0x5804c,
145462306a36Sopenharmony_ci		.enable_mask = BIT(0),
145562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
145662306a36Sopenharmony_ci			.name = "gcc_camss_camnoc_atb_clk",
145762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
145862306a36Sopenharmony_ci		},
145962306a36Sopenharmony_ci	},
146062306a36Sopenharmony_ci};
146162306a36Sopenharmony_ci
146262306a36Sopenharmony_cistatic struct clk_branch gcc_camss_camnoc_nts_xo_clk = {
146362306a36Sopenharmony_ci	.halt_reg = 0x58050,
146462306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_DELAY,
146562306a36Sopenharmony_ci	.hwcg_reg = 0x58050,
146662306a36Sopenharmony_ci	.hwcg_bit = 1,
146762306a36Sopenharmony_ci	.clkr = {
146862306a36Sopenharmony_ci		.enable_reg = 0x58050,
146962306a36Sopenharmony_ci		.enable_mask = BIT(0),
147062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
147162306a36Sopenharmony_ci			.name = "gcc_camss_camnoc_nts_xo_clk",
147262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
147362306a36Sopenharmony_ci		},
147462306a36Sopenharmony_ci	},
147562306a36Sopenharmony_ci};
147662306a36Sopenharmony_ci
147762306a36Sopenharmony_cistatic struct clk_branch gcc_camss_cci_0_clk = {
147862306a36Sopenharmony_ci	.halt_reg = 0x56018,
147962306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
148062306a36Sopenharmony_ci	.clkr = {
148162306a36Sopenharmony_ci		.enable_reg = 0x56018,
148262306a36Sopenharmony_ci		.enable_mask = BIT(0),
148362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
148462306a36Sopenharmony_ci			.name = "gcc_camss_cci_0_clk",
148562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[])
148662306a36Sopenharmony_ci					{ &gcc_camss_cci_clk_src.clkr.hw },
148762306a36Sopenharmony_ci			.num_parents = 1,
148862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
148962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
149062306a36Sopenharmony_ci		},
149162306a36Sopenharmony_ci	},
149262306a36Sopenharmony_ci};
149362306a36Sopenharmony_ci
149462306a36Sopenharmony_cistatic struct clk_branch gcc_camss_cphy_0_clk = {
149562306a36Sopenharmony_ci	.halt_reg = 0x52088,
149662306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
149762306a36Sopenharmony_ci	.clkr = {
149862306a36Sopenharmony_ci		.enable_reg = 0x52088,
149962306a36Sopenharmony_ci		.enable_mask = BIT(0),
150062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
150162306a36Sopenharmony_ci			.name = "gcc_camss_cphy_0_clk",
150262306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[])
150362306a36Sopenharmony_ci				{ &gcc_camss_tfe_cphy_rx_clk_src.clkr.hw },
150462306a36Sopenharmony_ci			.num_parents = 1,
150562306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
150662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
150762306a36Sopenharmony_ci		},
150862306a36Sopenharmony_ci	},
150962306a36Sopenharmony_ci};
151062306a36Sopenharmony_ci
151162306a36Sopenharmony_cistatic struct clk_branch gcc_camss_cphy_1_clk = {
151262306a36Sopenharmony_ci	.halt_reg = 0x5208c,
151362306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
151462306a36Sopenharmony_ci	.clkr = {
151562306a36Sopenharmony_ci		.enable_reg = 0x5208c,
151662306a36Sopenharmony_ci		.enable_mask = BIT(0),
151762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
151862306a36Sopenharmony_ci			.name = "gcc_camss_cphy_1_clk",
151962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[])
152062306a36Sopenharmony_ci				{ &gcc_camss_tfe_cphy_rx_clk_src.clkr.hw },
152162306a36Sopenharmony_ci			.num_parents = 1,
152262306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
152362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
152462306a36Sopenharmony_ci		},
152562306a36Sopenharmony_ci	},
152662306a36Sopenharmony_ci};
152762306a36Sopenharmony_ci
152862306a36Sopenharmony_cistatic struct clk_branch gcc_camss_csi0phytimer_clk = {
152962306a36Sopenharmony_ci	.halt_reg = 0x45018,
153062306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
153162306a36Sopenharmony_ci	.clkr = {
153262306a36Sopenharmony_ci		.enable_reg = 0x45018,
153362306a36Sopenharmony_ci		.enable_mask = BIT(0),
153462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
153562306a36Sopenharmony_ci			.name = "gcc_camss_csi0phytimer_clk",
153662306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[])
153762306a36Sopenharmony_ci				{ &gcc_camss_csi0phytimer_clk_src.clkr.hw },
153862306a36Sopenharmony_ci			.num_parents = 1,
153962306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
154062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
154162306a36Sopenharmony_ci		},
154262306a36Sopenharmony_ci	},
154362306a36Sopenharmony_ci};
154462306a36Sopenharmony_ci
154562306a36Sopenharmony_cistatic struct clk_branch gcc_camss_csi1phytimer_clk = {
154662306a36Sopenharmony_ci	.halt_reg = 0x45034,
154762306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
154862306a36Sopenharmony_ci	.clkr = {
154962306a36Sopenharmony_ci		.enable_reg = 0x45034,
155062306a36Sopenharmony_ci		.enable_mask = BIT(0),
155162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
155262306a36Sopenharmony_ci			.name = "gcc_camss_csi1phytimer_clk",
155362306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[])
155462306a36Sopenharmony_ci				{ &gcc_camss_csi1phytimer_clk_src.clkr.hw },
155562306a36Sopenharmony_ci			.num_parents = 1,
155662306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
155762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
155862306a36Sopenharmony_ci		},
155962306a36Sopenharmony_ci	},
156062306a36Sopenharmony_ci};
156162306a36Sopenharmony_ci
156262306a36Sopenharmony_cistatic struct clk_branch gcc_camss_mclk0_clk = {
156362306a36Sopenharmony_ci	.halt_reg = 0x51018,
156462306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
156562306a36Sopenharmony_ci	.clkr = {
156662306a36Sopenharmony_ci		.enable_reg = 0x51018,
156762306a36Sopenharmony_ci		.enable_mask = BIT(0),
156862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
156962306a36Sopenharmony_ci			.name = "gcc_camss_mclk0_clk",
157062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[])
157162306a36Sopenharmony_ci					{ &gcc_camss_mclk0_clk_src.clkr.hw },
157262306a36Sopenharmony_ci			.num_parents = 1,
157362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
157462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
157562306a36Sopenharmony_ci		},
157662306a36Sopenharmony_ci	},
157762306a36Sopenharmony_ci};
157862306a36Sopenharmony_ci
157962306a36Sopenharmony_cistatic struct clk_branch gcc_camss_mclk1_clk = {
158062306a36Sopenharmony_ci	.halt_reg = 0x51034,
158162306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
158262306a36Sopenharmony_ci	.clkr = {
158362306a36Sopenharmony_ci		.enable_reg = 0x51034,
158462306a36Sopenharmony_ci		.enable_mask = BIT(0),
158562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
158662306a36Sopenharmony_ci			.name = "gcc_camss_mclk1_clk",
158762306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[])
158862306a36Sopenharmony_ci					{ &gcc_camss_mclk1_clk_src.clkr.hw },
158962306a36Sopenharmony_ci			.num_parents = 1,
159062306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
159162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
159262306a36Sopenharmony_ci		},
159362306a36Sopenharmony_ci	},
159462306a36Sopenharmony_ci};
159562306a36Sopenharmony_ci
159662306a36Sopenharmony_cistatic struct clk_branch gcc_camss_mclk2_clk = {
159762306a36Sopenharmony_ci	.halt_reg = 0x51050,
159862306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
159962306a36Sopenharmony_ci	.clkr = {
160062306a36Sopenharmony_ci		.enable_reg = 0x51050,
160162306a36Sopenharmony_ci		.enable_mask = BIT(0),
160262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
160362306a36Sopenharmony_ci			.name = "gcc_camss_mclk2_clk",
160462306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[])
160562306a36Sopenharmony_ci					{ &gcc_camss_mclk2_clk_src.clkr.hw },
160662306a36Sopenharmony_ci			.num_parents = 1,
160762306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
160862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
160962306a36Sopenharmony_ci		},
161062306a36Sopenharmony_ci	},
161162306a36Sopenharmony_ci};
161262306a36Sopenharmony_ci
161362306a36Sopenharmony_cistatic struct clk_branch gcc_camss_mclk3_clk = {
161462306a36Sopenharmony_ci	.halt_reg = 0x5106c,
161562306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
161662306a36Sopenharmony_ci	.clkr = {
161762306a36Sopenharmony_ci		.enable_reg = 0x5106c,
161862306a36Sopenharmony_ci		.enable_mask = BIT(0),
161962306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
162062306a36Sopenharmony_ci			.name = "gcc_camss_mclk3_clk",
162162306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[])
162262306a36Sopenharmony_ci					{ &gcc_camss_mclk3_clk_src.clkr.hw },
162362306a36Sopenharmony_ci			.num_parents = 1,
162462306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
162562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
162662306a36Sopenharmony_ci		},
162762306a36Sopenharmony_ci	},
162862306a36Sopenharmony_ci};
162962306a36Sopenharmony_ci
163062306a36Sopenharmony_cistatic struct clk_branch gcc_camss_nrt_axi_clk = {
163162306a36Sopenharmony_ci	.halt_reg = 0x58054,
163262306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
163362306a36Sopenharmony_ci	.clkr = {
163462306a36Sopenharmony_ci		.enable_reg = 0x58054,
163562306a36Sopenharmony_ci		.enable_mask = BIT(0),
163662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
163762306a36Sopenharmony_ci			.name = "gcc_camss_nrt_axi_clk",
163862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
163962306a36Sopenharmony_ci		},
164062306a36Sopenharmony_ci	},
164162306a36Sopenharmony_ci};
164262306a36Sopenharmony_ci
164362306a36Sopenharmony_cistatic struct clk_branch gcc_camss_ope_ahb_clk = {
164462306a36Sopenharmony_ci	.halt_reg = 0x5503c,
164562306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
164662306a36Sopenharmony_ci	.clkr = {
164762306a36Sopenharmony_ci		.enable_reg = 0x5503c,
164862306a36Sopenharmony_ci		.enable_mask = BIT(0),
164962306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
165062306a36Sopenharmony_ci			.name = "gcc_camss_ope_ahb_clk",
165162306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[])
165262306a36Sopenharmony_ci					{ &gcc_camss_ope_ahb_clk_src.clkr.hw },
165362306a36Sopenharmony_ci			.num_parents = 1,
165462306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
165562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
165662306a36Sopenharmony_ci		},
165762306a36Sopenharmony_ci	},
165862306a36Sopenharmony_ci};
165962306a36Sopenharmony_ci
166062306a36Sopenharmony_cistatic struct clk_branch gcc_camss_ope_clk = {
166162306a36Sopenharmony_ci	.halt_reg = 0x5501c,
166262306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
166362306a36Sopenharmony_ci	.clkr = {
166462306a36Sopenharmony_ci		.enable_reg = 0x5501c,
166562306a36Sopenharmony_ci		.enable_mask = BIT(0),
166662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
166762306a36Sopenharmony_ci			.name = "gcc_camss_ope_clk",
166862306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[])
166962306a36Sopenharmony_ci					{ &gcc_camss_ope_clk_src.clkr.hw },
167062306a36Sopenharmony_ci			.num_parents = 1,
167162306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
167262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
167362306a36Sopenharmony_ci		},
167462306a36Sopenharmony_ci	},
167562306a36Sopenharmony_ci};
167662306a36Sopenharmony_ci
167762306a36Sopenharmony_cistatic struct clk_branch gcc_camss_rt_axi_clk = {
167862306a36Sopenharmony_ci	.halt_reg = 0x5805c,
167962306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
168062306a36Sopenharmony_ci	.clkr = {
168162306a36Sopenharmony_ci		.enable_reg = 0x5805c,
168262306a36Sopenharmony_ci		.enable_mask = BIT(0),
168362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
168462306a36Sopenharmony_ci			.name = "gcc_camss_rt_axi_clk",
168562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
168662306a36Sopenharmony_ci		},
168762306a36Sopenharmony_ci	},
168862306a36Sopenharmony_ci};
168962306a36Sopenharmony_ci
169062306a36Sopenharmony_cistatic struct clk_branch gcc_camss_tfe_0_clk = {
169162306a36Sopenharmony_ci	.halt_reg = 0x5201c,
169262306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
169362306a36Sopenharmony_ci	.clkr = {
169462306a36Sopenharmony_ci		.enable_reg = 0x5201c,
169562306a36Sopenharmony_ci		.enable_mask = BIT(0),
169662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
169762306a36Sopenharmony_ci			.name = "gcc_camss_tfe_0_clk",
169862306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[])
169962306a36Sopenharmony_ci					{ &gcc_camss_tfe_0_clk_src.clkr.hw },
170062306a36Sopenharmony_ci			.num_parents = 1,
170162306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
170262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
170362306a36Sopenharmony_ci		},
170462306a36Sopenharmony_ci	},
170562306a36Sopenharmony_ci};
170662306a36Sopenharmony_ci
170762306a36Sopenharmony_cistatic struct clk_branch gcc_camss_tfe_0_cphy_rx_clk = {
170862306a36Sopenharmony_ci	.halt_reg = 0x5207c,
170962306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
171062306a36Sopenharmony_ci	.clkr = {
171162306a36Sopenharmony_ci		.enable_reg = 0x5207c,
171262306a36Sopenharmony_ci		.enable_mask = BIT(0),
171362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
171462306a36Sopenharmony_ci			.name = "gcc_camss_tfe_0_cphy_rx_clk",
171562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[])
171662306a36Sopenharmony_ci				{ &gcc_camss_tfe_cphy_rx_clk_src.clkr.hw },
171762306a36Sopenharmony_ci			.num_parents = 1,
171862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
171962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
172062306a36Sopenharmony_ci		},
172162306a36Sopenharmony_ci	},
172262306a36Sopenharmony_ci};
172362306a36Sopenharmony_ci
172462306a36Sopenharmony_cistatic struct clk_branch gcc_camss_tfe_0_csid_clk = {
172562306a36Sopenharmony_ci	.halt_reg = 0x520ac,
172662306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
172762306a36Sopenharmony_ci	.clkr = {
172862306a36Sopenharmony_ci		.enable_reg = 0x520ac,
172962306a36Sopenharmony_ci		.enable_mask = BIT(0),
173062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
173162306a36Sopenharmony_ci			.name = "gcc_camss_tfe_0_csid_clk",
173262306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[])
173362306a36Sopenharmony_ci				{ &gcc_camss_tfe_0_csid_clk_src.clkr.hw },
173462306a36Sopenharmony_ci			.num_parents = 1,
173562306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
173662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
173762306a36Sopenharmony_ci		},
173862306a36Sopenharmony_ci	},
173962306a36Sopenharmony_ci};
174062306a36Sopenharmony_ci
174162306a36Sopenharmony_cistatic struct clk_branch gcc_camss_tfe_1_clk = {
174262306a36Sopenharmony_ci	.halt_reg = 0x5203c,
174362306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
174462306a36Sopenharmony_ci	.clkr = {
174562306a36Sopenharmony_ci		.enable_reg = 0x5203c,
174662306a36Sopenharmony_ci		.enable_mask = BIT(0),
174762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
174862306a36Sopenharmony_ci			.name = "gcc_camss_tfe_1_clk",
174962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[])
175062306a36Sopenharmony_ci					{ &gcc_camss_tfe_1_clk_src.clkr.hw },
175162306a36Sopenharmony_ci			.num_parents = 1,
175262306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
175362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
175462306a36Sopenharmony_ci		},
175562306a36Sopenharmony_ci	},
175662306a36Sopenharmony_ci};
175762306a36Sopenharmony_ci
175862306a36Sopenharmony_cistatic struct clk_branch gcc_camss_tfe_1_cphy_rx_clk = {
175962306a36Sopenharmony_ci	.halt_reg = 0x52080,
176062306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
176162306a36Sopenharmony_ci	.clkr = {
176262306a36Sopenharmony_ci		.enable_reg = 0x52080,
176362306a36Sopenharmony_ci		.enable_mask = BIT(0),
176462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
176562306a36Sopenharmony_ci			.name = "gcc_camss_tfe_1_cphy_rx_clk",
176662306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[])
176762306a36Sopenharmony_ci				{ &gcc_camss_tfe_cphy_rx_clk_src.clkr.hw },
176862306a36Sopenharmony_ci			.num_parents = 1,
176962306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
177062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
177162306a36Sopenharmony_ci		},
177262306a36Sopenharmony_ci	},
177362306a36Sopenharmony_ci};
177462306a36Sopenharmony_ci
177562306a36Sopenharmony_cistatic struct clk_branch gcc_camss_tfe_1_csid_clk = {
177662306a36Sopenharmony_ci	.halt_reg = 0x520cc,
177762306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
177862306a36Sopenharmony_ci	.clkr = {
177962306a36Sopenharmony_ci		.enable_reg = 0x520cc,
178062306a36Sopenharmony_ci		.enable_mask = BIT(0),
178162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
178262306a36Sopenharmony_ci			.name = "gcc_camss_tfe_1_csid_clk",
178362306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[])
178462306a36Sopenharmony_ci				{ &gcc_camss_tfe_1_csid_clk_src.clkr.hw },
178562306a36Sopenharmony_ci			.num_parents = 1,
178662306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
178762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
178862306a36Sopenharmony_ci		},
178962306a36Sopenharmony_ci	},
179062306a36Sopenharmony_ci};
179162306a36Sopenharmony_ci
179262306a36Sopenharmony_cistatic struct clk_branch gcc_camss_top_ahb_clk = {
179362306a36Sopenharmony_ci	.halt_reg = 0x58028,
179462306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
179562306a36Sopenharmony_ci	.clkr = {
179662306a36Sopenharmony_ci		.enable_reg = 0x58028,
179762306a36Sopenharmony_ci		.enable_mask = BIT(0),
179862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
179962306a36Sopenharmony_ci			.name = "gcc_camss_top_ahb_clk",
180062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[])
180162306a36Sopenharmony_ci					{ &gcc_camss_top_ahb_clk_src.clkr.hw },
180262306a36Sopenharmony_ci			.num_parents = 1,
180362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
180462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
180562306a36Sopenharmony_ci		},
180662306a36Sopenharmony_ci	},
180762306a36Sopenharmony_ci};
180862306a36Sopenharmony_ci
180962306a36Sopenharmony_cistatic struct clk_branch gcc_cfg_noc_usb3_prim_axi_clk = {
181062306a36Sopenharmony_ci	.halt_reg = 0x1a084,
181162306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
181262306a36Sopenharmony_ci	.hwcg_reg = 0x1a084,
181362306a36Sopenharmony_ci	.hwcg_bit = 1,
181462306a36Sopenharmony_ci	.clkr = {
181562306a36Sopenharmony_ci		.enable_reg = 0x1a084,
181662306a36Sopenharmony_ci		.enable_mask = BIT(0),
181762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
181862306a36Sopenharmony_ci			.name = "gcc_cfg_noc_usb3_prim_axi_clk",
181962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[])
182062306a36Sopenharmony_ci				{ &gcc_usb30_prim_master_clk_src.clkr.hw },
182162306a36Sopenharmony_ci			.num_parents = 1,
182262306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
182362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
182462306a36Sopenharmony_ci		},
182562306a36Sopenharmony_ci	},
182662306a36Sopenharmony_ci};
182762306a36Sopenharmony_ci
182862306a36Sopenharmony_cistatic struct clk_branch gcc_disp_ahb_clk = {
182962306a36Sopenharmony_ci	.halt_reg = 0x1700c,
183062306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
183162306a36Sopenharmony_ci	.hwcg_reg = 0x1700c,
183262306a36Sopenharmony_ci	.hwcg_bit = 1,
183362306a36Sopenharmony_ci	.clkr = {
183462306a36Sopenharmony_ci		.enable_reg = 0x1700c,
183562306a36Sopenharmony_ci		.enable_mask = BIT(0),
183662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
183762306a36Sopenharmony_ci			.name = "gcc_disp_ahb_clk",
183862306a36Sopenharmony_ci			.flags = CLK_IS_CRITICAL,
183962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
184062306a36Sopenharmony_ci		},
184162306a36Sopenharmony_ci	},
184262306a36Sopenharmony_ci};
184362306a36Sopenharmony_ci
184462306a36Sopenharmony_cistatic struct clk_regmap_div gcc_disp_gpll0_clk_src = {
184562306a36Sopenharmony_ci	.reg = 0x17058,
184662306a36Sopenharmony_ci	.shift = 0,
184762306a36Sopenharmony_ci	.width = 2,
184862306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data) {
184962306a36Sopenharmony_ci		.name = "gcc_disp_gpll0_clk_src",
185062306a36Sopenharmony_ci		.parent_hws = (const struct clk_hw *[]){ &gpll0.clkr.hw },
185162306a36Sopenharmony_ci		.num_parents = 1,
185262306a36Sopenharmony_ci		.ops = &clk_regmap_div_ops,
185362306a36Sopenharmony_ci	},
185462306a36Sopenharmony_ci};
185562306a36Sopenharmony_ci
185662306a36Sopenharmony_cistatic struct clk_branch gcc_disp_gpll0_div_clk_src = {
185762306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_DELAY,
185862306a36Sopenharmony_ci	.clkr = {
185962306a36Sopenharmony_ci		.enable_reg = 0x79004,
186062306a36Sopenharmony_ci		.enable_mask = BIT(20),
186162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
186262306a36Sopenharmony_ci			.name = "gcc_disp_gpll0_div_clk_src",
186362306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[])
186462306a36Sopenharmony_ci					{ &gcc_disp_gpll0_clk_src.clkr.hw },
186562306a36Sopenharmony_ci			.num_parents = 1,
186662306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
186762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
186862306a36Sopenharmony_ci		},
186962306a36Sopenharmony_ci	},
187062306a36Sopenharmony_ci};
187162306a36Sopenharmony_ci
187262306a36Sopenharmony_cistatic struct clk_branch gcc_disp_hf_axi_clk = {
187362306a36Sopenharmony_ci	.halt_reg = 0x17020,
187462306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
187562306a36Sopenharmony_ci	.hwcg_reg = 0x17020,
187662306a36Sopenharmony_ci	.hwcg_bit = 1,
187762306a36Sopenharmony_ci	.clkr = {
187862306a36Sopenharmony_ci		.enable_reg = 0x17020,
187962306a36Sopenharmony_ci		.enable_mask = BIT(0),
188062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
188162306a36Sopenharmony_ci			.name = "gcc_disp_hf_axi_clk",
188262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
188362306a36Sopenharmony_ci		},
188462306a36Sopenharmony_ci	},
188562306a36Sopenharmony_ci};
188662306a36Sopenharmony_ci
188762306a36Sopenharmony_cistatic struct clk_branch gcc_disp_throttle_core_clk = {
188862306a36Sopenharmony_ci	.halt_reg = 0x17064,
188962306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
189062306a36Sopenharmony_ci	.hwcg_reg = 0x17064,
189162306a36Sopenharmony_ci	.hwcg_bit = 1,
189262306a36Sopenharmony_ci	.clkr = {
189362306a36Sopenharmony_ci		.enable_reg = 0x7900c,
189462306a36Sopenharmony_ci		.enable_mask = BIT(5),
189562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
189662306a36Sopenharmony_ci			.name = "gcc_disp_throttle_core_clk",
189762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
189862306a36Sopenharmony_ci		},
189962306a36Sopenharmony_ci	},
190062306a36Sopenharmony_ci};
190162306a36Sopenharmony_ci
190262306a36Sopenharmony_cistatic struct clk_branch gcc_disp_xo_clk = {
190362306a36Sopenharmony_ci	.halt_reg = 0x1702c,
190462306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
190562306a36Sopenharmony_ci	.clkr = {
190662306a36Sopenharmony_ci		.enable_reg = 0x1702c,
190762306a36Sopenharmony_ci		.enable_mask = BIT(0),
190862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
190962306a36Sopenharmony_ci			.name = "gcc_disp_xo_clk",
191062306a36Sopenharmony_ci			.flags = CLK_IS_CRITICAL,
191162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
191262306a36Sopenharmony_ci		},
191362306a36Sopenharmony_ci	},
191462306a36Sopenharmony_ci};
191562306a36Sopenharmony_ci
191662306a36Sopenharmony_cistatic struct clk_branch gcc_gp1_clk = {
191762306a36Sopenharmony_ci	.halt_reg = 0x4d000,
191862306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
191962306a36Sopenharmony_ci	.clkr = {
192062306a36Sopenharmony_ci		.enable_reg = 0x4d000,
192162306a36Sopenharmony_ci		.enable_mask = BIT(0),
192262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
192362306a36Sopenharmony_ci			.name = "gcc_gp1_clk",
192462306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[])
192562306a36Sopenharmony_ci					{ &gcc_gp1_clk_src.clkr.hw },
192662306a36Sopenharmony_ci			.num_parents = 1,
192762306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
192862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
192962306a36Sopenharmony_ci		},
193062306a36Sopenharmony_ci	},
193162306a36Sopenharmony_ci};
193262306a36Sopenharmony_ci
193362306a36Sopenharmony_cistatic struct clk_branch gcc_gp2_clk = {
193462306a36Sopenharmony_ci	.halt_reg = 0x4e000,
193562306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
193662306a36Sopenharmony_ci	.clkr = {
193762306a36Sopenharmony_ci		.enable_reg = 0x4e000,
193862306a36Sopenharmony_ci		.enable_mask = BIT(0),
193962306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
194062306a36Sopenharmony_ci			.name = "gcc_gp2_clk",
194162306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[])
194262306a36Sopenharmony_ci					{ &gcc_gp2_clk_src.clkr.hw },
194362306a36Sopenharmony_ci			.num_parents = 1,
194462306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
194562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
194662306a36Sopenharmony_ci		},
194762306a36Sopenharmony_ci	},
194862306a36Sopenharmony_ci};
194962306a36Sopenharmony_ci
195062306a36Sopenharmony_cistatic struct clk_branch gcc_gp3_clk = {
195162306a36Sopenharmony_ci	.halt_reg = 0x4f000,
195262306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
195362306a36Sopenharmony_ci	.clkr = {
195462306a36Sopenharmony_ci		.enable_reg = 0x4f000,
195562306a36Sopenharmony_ci		.enable_mask = BIT(0),
195662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
195762306a36Sopenharmony_ci			.name = "gcc_gp3_clk",
195862306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[])
195962306a36Sopenharmony_ci					{ &gcc_gp3_clk_src.clkr.hw },
196062306a36Sopenharmony_ci			.num_parents = 1,
196162306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
196262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
196362306a36Sopenharmony_ci		},
196462306a36Sopenharmony_ci	},
196562306a36Sopenharmony_ci};
196662306a36Sopenharmony_ci
196762306a36Sopenharmony_cistatic struct clk_branch gcc_gpu_cfg_ahb_clk = {
196862306a36Sopenharmony_ci	.halt_reg = 0x36004,
196962306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
197062306a36Sopenharmony_ci	.hwcg_reg = 0x36004,
197162306a36Sopenharmony_ci	.hwcg_bit = 1,
197262306a36Sopenharmony_ci	.clkr = {
197362306a36Sopenharmony_ci		.enable_reg = 0x36004,
197462306a36Sopenharmony_ci		.enable_mask = BIT(0),
197562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
197662306a36Sopenharmony_ci			.name = "gcc_gpu_cfg_ahb_clk",
197762306a36Sopenharmony_ci			.flags = CLK_IS_CRITICAL,
197862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
197962306a36Sopenharmony_ci		},
198062306a36Sopenharmony_ci	},
198162306a36Sopenharmony_ci};
198262306a36Sopenharmony_ci
198362306a36Sopenharmony_cistatic struct clk_branch gcc_gpu_gpll0_clk_src = {
198462306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_DELAY,
198562306a36Sopenharmony_ci	.clkr = {
198662306a36Sopenharmony_ci		.enable_reg = 0x79004,
198762306a36Sopenharmony_ci		.enable_mask = BIT(15),
198862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
198962306a36Sopenharmony_ci			.name = "gcc_gpu_gpll0_clk_src",
199062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[])
199162306a36Sopenharmony_ci					{ &gpll0.clkr.hw },
199262306a36Sopenharmony_ci			.num_parents = 1,
199362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
199462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
199562306a36Sopenharmony_ci		},
199662306a36Sopenharmony_ci	},
199762306a36Sopenharmony_ci};
199862306a36Sopenharmony_ci
199962306a36Sopenharmony_cistatic struct clk_branch gcc_gpu_gpll0_div_clk_src = {
200062306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_DELAY,
200162306a36Sopenharmony_ci	.clkr = {
200262306a36Sopenharmony_ci		.enable_reg = 0x79004,
200362306a36Sopenharmony_ci		.enable_mask = BIT(16),
200462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
200562306a36Sopenharmony_ci			.name = "gcc_gpu_gpll0_div_clk_src",
200662306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[])
200762306a36Sopenharmony_ci					{ &gpll0_out_aux2.clkr.hw },
200862306a36Sopenharmony_ci			.num_parents = 1,
200962306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
201062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
201162306a36Sopenharmony_ci		},
201262306a36Sopenharmony_ci	},
201362306a36Sopenharmony_ci};
201462306a36Sopenharmony_ci
201562306a36Sopenharmony_cistatic struct clk_branch gcc_gpu_iref_clk = {
201662306a36Sopenharmony_ci	.halt_reg = 0x36100,
201762306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_DELAY,
201862306a36Sopenharmony_ci	.clkr = {
201962306a36Sopenharmony_ci		.enable_reg = 0x36100,
202062306a36Sopenharmony_ci		.enable_mask = BIT(0),
202162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
202262306a36Sopenharmony_ci			.name = "gcc_gpu_iref_clk",
202362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
202462306a36Sopenharmony_ci		},
202562306a36Sopenharmony_ci	},
202662306a36Sopenharmony_ci};
202762306a36Sopenharmony_ci
202862306a36Sopenharmony_cistatic struct clk_branch gcc_gpu_memnoc_gfx_clk = {
202962306a36Sopenharmony_ci	.halt_reg = 0x3600c,
203062306a36Sopenharmony_ci	.halt_check = BRANCH_VOTED,
203162306a36Sopenharmony_ci	.hwcg_reg = 0x3600c,
203262306a36Sopenharmony_ci	.hwcg_bit = 1,
203362306a36Sopenharmony_ci	.clkr = {
203462306a36Sopenharmony_ci		.enable_reg = 0x3600c,
203562306a36Sopenharmony_ci		.enable_mask = BIT(0),
203662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
203762306a36Sopenharmony_ci			.name = "gcc_gpu_memnoc_gfx_clk",
203862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
203962306a36Sopenharmony_ci		},
204062306a36Sopenharmony_ci	},
204162306a36Sopenharmony_ci};
204262306a36Sopenharmony_ci
204362306a36Sopenharmony_cistatic struct clk_branch gcc_gpu_snoc_dvm_gfx_clk = {
204462306a36Sopenharmony_ci	.halt_reg = 0x36018,
204562306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
204662306a36Sopenharmony_ci	.clkr = {
204762306a36Sopenharmony_ci		.enable_reg = 0x36018,
204862306a36Sopenharmony_ci		.enable_mask = BIT(0),
204962306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
205062306a36Sopenharmony_ci			.name = "gcc_gpu_snoc_dvm_gfx_clk",
205162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
205262306a36Sopenharmony_ci		},
205362306a36Sopenharmony_ci	},
205462306a36Sopenharmony_ci};
205562306a36Sopenharmony_ci
205662306a36Sopenharmony_cistatic struct clk_branch gcc_gpu_throttle_core_clk = {
205762306a36Sopenharmony_ci	.halt_reg = 0x36048,
205862306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
205962306a36Sopenharmony_ci	.hwcg_reg = 0x36048,
206062306a36Sopenharmony_ci	.hwcg_bit = 1,
206162306a36Sopenharmony_ci	.clkr = {
206262306a36Sopenharmony_ci		.enable_reg = 0x79004,
206362306a36Sopenharmony_ci		.enable_mask = BIT(31),
206462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
206562306a36Sopenharmony_ci			.name = "gcc_gpu_throttle_core_clk",
206662306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
206762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
206862306a36Sopenharmony_ci		},
206962306a36Sopenharmony_ci	},
207062306a36Sopenharmony_ci};
207162306a36Sopenharmony_ci
207262306a36Sopenharmony_cistatic struct clk_branch gcc_pdm2_clk = {
207362306a36Sopenharmony_ci	.halt_reg = 0x2000c,
207462306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
207562306a36Sopenharmony_ci	.clkr = {
207662306a36Sopenharmony_ci		.enable_reg = 0x2000c,
207762306a36Sopenharmony_ci		.enable_mask = BIT(0),
207862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
207962306a36Sopenharmony_ci			.name = "gcc_pdm2_clk",
208062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[])
208162306a36Sopenharmony_ci					{ &gcc_pdm2_clk_src.clkr.hw },
208262306a36Sopenharmony_ci			.num_parents = 1,
208362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
208462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
208562306a36Sopenharmony_ci		},
208662306a36Sopenharmony_ci	},
208762306a36Sopenharmony_ci};
208862306a36Sopenharmony_ci
208962306a36Sopenharmony_cistatic struct clk_branch gcc_pdm_ahb_clk = {
209062306a36Sopenharmony_ci	.halt_reg = 0x20004,
209162306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
209262306a36Sopenharmony_ci	.hwcg_reg = 0x20004,
209362306a36Sopenharmony_ci	.hwcg_bit = 1,
209462306a36Sopenharmony_ci	.clkr = {
209562306a36Sopenharmony_ci		.enable_reg = 0x20004,
209662306a36Sopenharmony_ci		.enable_mask = BIT(0),
209762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
209862306a36Sopenharmony_ci			.name = "gcc_pdm_ahb_clk",
209962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
210062306a36Sopenharmony_ci		},
210162306a36Sopenharmony_ci	},
210262306a36Sopenharmony_ci};
210362306a36Sopenharmony_ci
210462306a36Sopenharmony_cistatic struct clk_branch gcc_pdm_xo4_clk = {
210562306a36Sopenharmony_ci	.halt_reg = 0x20008,
210662306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
210762306a36Sopenharmony_ci	.clkr = {
210862306a36Sopenharmony_ci		.enable_reg = 0x20008,
210962306a36Sopenharmony_ci		.enable_mask = BIT(0),
211062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
211162306a36Sopenharmony_ci			.name = "gcc_pdm_xo4_clk",
211262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
211362306a36Sopenharmony_ci		},
211462306a36Sopenharmony_ci	},
211562306a36Sopenharmony_ci};
211662306a36Sopenharmony_ci
211762306a36Sopenharmony_cistatic struct clk_branch gcc_pwm0_xo512_clk = {
211862306a36Sopenharmony_ci	.halt_reg = 0x2002c,
211962306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
212062306a36Sopenharmony_ci	.clkr = {
212162306a36Sopenharmony_ci		.enable_reg = 0x2002c,
212262306a36Sopenharmony_ci		.enable_mask = BIT(0),
212362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
212462306a36Sopenharmony_ci			.name = "gcc_pwm0_xo512_clk",
212562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
212662306a36Sopenharmony_ci		},
212762306a36Sopenharmony_ci	},
212862306a36Sopenharmony_ci};
212962306a36Sopenharmony_ci
213062306a36Sopenharmony_cistatic struct clk_branch gcc_qmip_camera_nrt_ahb_clk = {
213162306a36Sopenharmony_ci	.halt_reg = 0x17014,
213262306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
213362306a36Sopenharmony_ci	.hwcg_reg = 0x17014,
213462306a36Sopenharmony_ci	.hwcg_bit = 1,
213562306a36Sopenharmony_ci	.clkr = {
213662306a36Sopenharmony_ci		.enable_reg = 0x7900c,
213762306a36Sopenharmony_ci		.enable_mask = BIT(0),
213862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
213962306a36Sopenharmony_ci			.name = "gcc_qmip_camera_nrt_ahb_clk",
214062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
214162306a36Sopenharmony_ci		},
214262306a36Sopenharmony_ci	},
214362306a36Sopenharmony_ci};
214462306a36Sopenharmony_ci
214562306a36Sopenharmony_cistatic struct clk_branch gcc_qmip_camera_rt_ahb_clk = {
214662306a36Sopenharmony_ci	.halt_reg = 0x17060,
214762306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
214862306a36Sopenharmony_ci	.hwcg_reg = 0x17060,
214962306a36Sopenharmony_ci	.hwcg_bit = 1,
215062306a36Sopenharmony_ci	.clkr = {
215162306a36Sopenharmony_ci		.enable_reg = 0x7900c,
215262306a36Sopenharmony_ci		.enable_mask = BIT(2),
215362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
215462306a36Sopenharmony_ci			.name = "gcc_qmip_camera_rt_ahb_clk",
215562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
215662306a36Sopenharmony_ci		},
215762306a36Sopenharmony_ci	},
215862306a36Sopenharmony_ci};
215962306a36Sopenharmony_ci
216062306a36Sopenharmony_cistatic struct clk_branch gcc_qmip_disp_ahb_clk = {
216162306a36Sopenharmony_ci	.halt_reg = 0x17018,
216262306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
216362306a36Sopenharmony_ci	.hwcg_reg = 0x17018,
216462306a36Sopenharmony_ci	.hwcg_bit = 1,
216562306a36Sopenharmony_ci	.clkr = {
216662306a36Sopenharmony_ci		.enable_reg = 0x7900c,
216762306a36Sopenharmony_ci		.enable_mask = BIT(1),
216862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
216962306a36Sopenharmony_ci			.name = "gcc_qmip_disp_ahb_clk",
217062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
217162306a36Sopenharmony_ci		},
217262306a36Sopenharmony_ci	},
217362306a36Sopenharmony_ci};
217462306a36Sopenharmony_ci
217562306a36Sopenharmony_cistatic struct clk_branch gcc_qmip_gpu_cfg_ahb_clk = {
217662306a36Sopenharmony_ci	.halt_reg = 0x36040,
217762306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
217862306a36Sopenharmony_ci	.hwcg_reg = 0x36040,
217962306a36Sopenharmony_ci	.hwcg_bit = 1,
218062306a36Sopenharmony_ci	.clkr = {
218162306a36Sopenharmony_ci		.enable_reg = 0x7900c,
218262306a36Sopenharmony_ci		.enable_mask = BIT(4),
218362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
218462306a36Sopenharmony_ci			.name = "gcc_qmip_gpu_cfg_ahb_clk",
218562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
218662306a36Sopenharmony_ci		},
218762306a36Sopenharmony_ci	},
218862306a36Sopenharmony_ci};
218962306a36Sopenharmony_ci
219062306a36Sopenharmony_cistatic struct clk_branch gcc_qmip_video_vcodec_ahb_clk = {
219162306a36Sopenharmony_ci	.halt_reg = 0x17010,
219262306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
219362306a36Sopenharmony_ci	.hwcg_reg = 0x17010,
219462306a36Sopenharmony_ci	.hwcg_bit = 1,
219562306a36Sopenharmony_ci	.clkr = {
219662306a36Sopenharmony_ci		.enable_reg = 0x79004,
219762306a36Sopenharmony_ci		.enable_mask = BIT(25),
219862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
219962306a36Sopenharmony_ci			.name = "gcc_qmip_video_vcodec_ahb_clk",
220062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
220162306a36Sopenharmony_ci		},
220262306a36Sopenharmony_ci	},
220362306a36Sopenharmony_ci};
220462306a36Sopenharmony_ci
220562306a36Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap0_core_2x_clk = {
220662306a36Sopenharmony_ci	.halt_reg = 0x1f014,
220762306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
220862306a36Sopenharmony_ci	.clkr = {
220962306a36Sopenharmony_ci		.enable_reg = 0x7900c,
221062306a36Sopenharmony_ci		.enable_mask = BIT(9),
221162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
221262306a36Sopenharmony_ci			.name = "gcc_qupv3_wrap0_core_2x_clk",
221362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
221462306a36Sopenharmony_ci		},
221562306a36Sopenharmony_ci	},
221662306a36Sopenharmony_ci};
221762306a36Sopenharmony_ci
221862306a36Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap0_core_clk = {
221962306a36Sopenharmony_ci	.halt_reg = 0x1f00c,
222062306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
222162306a36Sopenharmony_ci	.clkr = {
222262306a36Sopenharmony_ci		.enable_reg = 0x7900c,
222362306a36Sopenharmony_ci		.enable_mask = BIT(8),
222462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
222562306a36Sopenharmony_ci			.name = "gcc_qupv3_wrap0_core_clk",
222662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
222762306a36Sopenharmony_ci		},
222862306a36Sopenharmony_ci	},
222962306a36Sopenharmony_ci};
223062306a36Sopenharmony_ci
223162306a36Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap0_s0_clk = {
223262306a36Sopenharmony_ci	.halt_reg = 0x1f144,
223362306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
223462306a36Sopenharmony_ci	.clkr = {
223562306a36Sopenharmony_ci		.enable_reg = 0x7900c,
223662306a36Sopenharmony_ci		.enable_mask = BIT(10),
223762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
223862306a36Sopenharmony_ci			.name = "gcc_qupv3_wrap0_s0_clk",
223962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[])
224062306a36Sopenharmony_ci					{ &gcc_qupv3_wrap0_s0_clk_src.clkr.hw },
224162306a36Sopenharmony_ci			.num_parents = 1,
224262306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
224362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
224462306a36Sopenharmony_ci		},
224562306a36Sopenharmony_ci	},
224662306a36Sopenharmony_ci};
224762306a36Sopenharmony_ci
224862306a36Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap0_s1_clk = {
224962306a36Sopenharmony_ci	.halt_reg = 0x1f274,
225062306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
225162306a36Sopenharmony_ci	.clkr = {
225262306a36Sopenharmony_ci		.enable_reg = 0x7900c,
225362306a36Sopenharmony_ci		.enable_mask = BIT(11),
225462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
225562306a36Sopenharmony_ci			.name = "gcc_qupv3_wrap0_s1_clk",
225662306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[])
225762306a36Sopenharmony_ci					{ &gcc_qupv3_wrap0_s1_clk_src.clkr.hw },
225862306a36Sopenharmony_ci			.num_parents = 1,
225962306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
226062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
226162306a36Sopenharmony_ci		},
226262306a36Sopenharmony_ci	},
226362306a36Sopenharmony_ci};
226462306a36Sopenharmony_ci
226562306a36Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap0_s2_clk = {
226662306a36Sopenharmony_ci	.halt_reg = 0x1f3a4,
226762306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
226862306a36Sopenharmony_ci	.clkr = {
226962306a36Sopenharmony_ci		.enable_reg = 0x7900c,
227062306a36Sopenharmony_ci		.enable_mask = BIT(12),
227162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
227262306a36Sopenharmony_ci			.name = "gcc_qupv3_wrap0_s2_clk",
227362306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[])
227462306a36Sopenharmony_ci					{ &gcc_qupv3_wrap0_s2_clk_src.clkr.hw },
227562306a36Sopenharmony_ci			.num_parents = 1,
227662306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
227762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
227862306a36Sopenharmony_ci		},
227962306a36Sopenharmony_ci	},
228062306a36Sopenharmony_ci};
228162306a36Sopenharmony_ci
228262306a36Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap0_s3_clk = {
228362306a36Sopenharmony_ci	.halt_reg = 0x1f4d4,
228462306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
228562306a36Sopenharmony_ci	.clkr = {
228662306a36Sopenharmony_ci		.enable_reg = 0x7900c,
228762306a36Sopenharmony_ci		.enable_mask = BIT(13),
228862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
228962306a36Sopenharmony_ci			.name = "gcc_qupv3_wrap0_s3_clk",
229062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[])
229162306a36Sopenharmony_ci					{ &gcc_qupv3_wrap0_s3_clk_src.clkr.hw },
229262306a36Sopenharmony_ci			.num_parents = 1,
229362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
229462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
229562306a36Sopenharmony_ci		},
229662306a36Sopenharmony_ci	},
229762306a36Sopenharmony_ci};
229862306a36Sopenharmony_ci
229962306a36Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap0_s4_clk = {
230062306a36Sopenharmony_ci	.halt_reg = 0x1f604,
230162306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
230262306a36Sopenharmony_ci	.clkr = {
230362306a36Sopenharmony_ci		.enable_reg = 0x7900c,
230462306a36Sopenharmony_ci		.enable_mask = BIT(14),
230562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
230662306a36Sopenharmony_ci			.name = "gcc_qupv3_wrap0_s4_clk",
230762306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[])
230862306a36Sopenharmony_ci					{ &gcc_qupv3_wrap0_s4_clk_src.clkr.hw },
230962306a36Sopenharmony_ci			.num_parents = 1,
231062306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
231162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
231262306a36Sopenharmony_ci		},
231362306a36Sopenharmony_ci	},
231462306a36Sopenharmony_ci};
231562306a36Sopenharmony_ci
231662306a36Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap0_s5_clk = {
231762306a36Sopenharmony_ci	.halt_reg = 0x1f734,
231862306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
231962306a36Sopenharmony_ci	.clkr = {
232062306a36Sopenharmony_ci		.enable_reg = 0x7900c,
232162306a36Sopenharmony_ci		.enable_mask = BIT(15),
232262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
232362306a36Sopenharmony_ci			.name = "gcc_qupv3_wrap0_s5_clk",
232462306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[])
232562306a36Sopenharmony_ci					{ &gcc_qupv3_wrap0_s5_clk_src.clkr.hw },
232662306a36Sopenharmony_ci			.num_parents = 1,
232762306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
232862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
232962306a36Sopenharmony_ci		},
233062306a36Sopenharmony_ci	},
233162306a36Sopenharmony_ci};
233262306a36Sopenharmony_ci
233362306a36Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap_0_m_ahb_clk = {
233462306a36Sopenharmony_ci	.halt_reg = 0x1f004,
233562306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
233662306a36Sopenharmony_ci	.hwcg_reg = 0x1f004,
233762306a36Sopenharmony_ci	.hwcg_bit = 1,
233862306a36Sopenharmony_ci	.clkr = {
233962306a36Sopenharmony_ci		.enable_reg = 0x7900c,
234062306a36Sopenharmony_ci		.enable_mask = BIT(6),
234162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
234262306a36Sopenharmony_ci			.name = "gcc_qupv3_wrap_0_m_ahb_clk",
234362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
234462306a36Sopenharmony_ci		},
234562306a36Sopenharmony_ci	},
234662306a36Sopenharmony_ci};
234762306a36Sopenharmony_ci
234862306a36Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap_0_s_ahb_clk = {
234962306a36Sopenharmony_ci	.halt_reg = 0x1f008,
235062306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
235162306a36Sopenharmony_ci	.hwcg_reg = 0x1f008,
235262306a36Sopenharmony_ci	.hwcg_bit = 1,
235362306a36Sopenharmony_ci	.clkr = {
235462306a36Sopenharmony_ci		.enable_reg = 0x7900c,
235562306a36Sopenharmony_ci		.enable_mask = BIT(7),
235662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
235762306a36Sopenharmony_ci			.name = "gcc_qupv3_wrap_0_s_ahb_clk",
235862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
235962306a36Sopenharmony_ci		},
236062306a36Sopenharmony_ci	},
236162306a36Sopenharmony_ci};
236262306a36Sopenharmony_ci
236362306a36Sopenharmony_cistatic struct clk_branch gcc_sdcc1_ahb_clk = {
236462306a36Sopenharmony_ci	.halt_reg = 0x38008,
236562306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
236662306a36Sopenharmony_ci	.clkr = {
236762306a36Sopenharmony_ci		.enable_reg = 0x38008,
236862306a36Sopenharmony_ci		.enable_mask = BIT(0),
236962306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
237062306a36Sopenharmony_ci			.name = "gcc_sdcc1_ahb_clk",
237162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
237262306a36Sopenharmony_ci		},
237362306a36Sopenharmony_ci	},
237462306a36Sopenharmony_ci};
237562306a36Sopenharmony_ci
237662306a36Sopenharmony_cistatic struct clk_branch gcc_sdcc1_apps_clk = {
237762306a36Sopenharmony_ci	.halt_reg = 0x38004,
237862306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
237962306a36Sopenharmony_ci	.clkr = {
238062306a36Sopenharmony_ci		.enable_reg = 0x38004,
238162306a36Sopenharmony_ci		.enable_mask = BIT(0),
238262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
238362306a36Sopenharmony_ci			.name = "gcc_sdcc1_apps_clk",
238462306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[])
238562306a36Sopenharmony_ci					{ &gcc_sdcc1_apps_clk_src.clkr.hw },
238662306a36Sopenharmony_ci			.num_parents = 1,
238762306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
238862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
238962306a36Sopenharmony_ci		},
239062306a36Sopenharmony_ci	},
239162306a36Sopenharmony_ci};
239262306a36Sopenharmony_ci
239362306a36Sopenharmony_cistatic struct clk_branch gcc_sdcc1_ice_core_clk = {
239462306a36Sopenharmony_ci	.halt_reg = 0x3800c,
239562306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
239662306a36Sopenharmony_ci	.hwcg_reg = 0x3800c,
239762306a36Sopenharmony_ci	.hwcg_bit = 1,
239862306a36Sopenharmony_ci	.clkr = {
239962306a36Sopenharmony_ci		.enable_reg = 0x3800c,
240062306a36Sopenharmony_ci		.enable_mask = BIT(0),
240162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
240262306a36Sopenharmony_ci			.name = "gcc_sdcc1_ice_core_clk",
240362306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[])
240462306a36Sopenharmony_ci					{ &gcc_sdcc1_ice_core_clk_src.clkr.hw },
240562306a36Sopenharmony_ci			.num_parents = 1,
240662306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
240762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
240862306a36Sopenharmony_ci		},
240962306a36Sopenharmony_ci	},
241062306a36Sopenharmony_ci};
241162306a36Sopenharmony_ci
241262306a36Sopenharmony_cistatic struct clk_branch gcc_sdcc2_ahb_clk = {
241362306a36Sopenharmony_ci	.halt_reg = 0x1e008,
241462306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
241562306a36Sopenharmony_ci	.clkr = {
241662306a36Sopenharmony_ci		.enable_reg = 0x1e008,
241762306a36Sopenharmony_ci		.enable_mask = BIT(0),
241862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
241962306a36Sopenharmony_ci			.name = "gcc_sdcc2_ahb_clk",
242062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
242162306a36Sopenharmony_ci		},
242262306a36Sopenharmony_ci	},
242362306a36Sopenharmony_ci};
242462306a36Sopenharmony_ci
242562306a36Sopenharmony_cistatic struct clk_branch gcc_sdcc2_apps_clk = {
242662306a36Sopenharmony_ci	.halt_reg = 0x1e004,
242762306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
242862306a36Sopenharmony_ci	.clkr = {
242962306a36Sopenharmony_ci		.enable_reg = 0x1e004,
243062306a36Sopenharmony_ci		.enable_mask = BIT(0),
243162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
243262306a36Sopenharmony_ci			.name = "gcc_sdcc2_apps_clk",
243362306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[])
243462306a36Sopenharmony_ci					{ &gcc_sdcc2_apps_clk_src.clkr.hw },
243562306a36Sopenharmony_ci			.num_parents = 1,
243662306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
243762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
243862306a36Sopenharmony_ci		},
243962306a36Sopenharmony_ci	},
244062306a36Sopenharmony_ci};
244162306a36Sopenharmony_ci
244262306a36Sopenharmony_cistatic struct clk_branch gcc_sys_noc_cpuss_ahb_clk = {
244362306a36Sopenharmony_ci	.halt_reg = 0x2b06c,
244462306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
244562306a36Sopenharmony_ci	.hwcg_reg = 0x2b06c,
244662306a36Sopenharmony_ci	.hwcg_bit = 1,
244762306a36Sopenharmony_ci	.clkr = {
244862306a36Sopenharmony_ci		.enable_reg = 0x79004,
244962306a36Sopenharmony_ci		.enable_mask = BIT(0),
245062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
245162306a36Sopenharmony_ci			.name = "gcc_sys_noc_cpuss_ahb_clk",
245262306a36Sopenharmony_ci			.flags = CLK_IS_CRITICAL,
245362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
245462306a36Sopenharmony_ci		},
245562306a36Sopenharmony_ci	},
245662306a36Sopenharmony_ci};
245762306a36Sopenharmony_ci
245862306a36Sopenharmony_cistatic struct clk_branch gcc_sys_noc_usb3_prim_axi_clk = {
245962306a36Sopenharmony_ci	.halt_reg = 0x1a080,
246062306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
246162306a36Sopenharmony_ci	.hwcg_reg = 0x1a080,
246262306a36Sopenharmony_ci	.hwcg_bit = 1,
246362306a36Sopenharmony_ci	.clkr = {
246462306a36Sopenharmony_ci		.enable_reg = 0x1a080,
246562306a36Sopenharmony_ci		.enable_mask = BIT(0),
246662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
246762306a36Sopenharmony_ci			.name = "gcc_sys_noc_usb3_prim_axi_clk",
246862306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[])
246962306a36Sopenharmony_ci				{ &gcc_usb30_prim_master_clk_src.clkr.hw },
247062306a36Sopenharmony_ci			.num_parents = 1,
247162306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
247262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
247362306a36Sopenharmony_ci		},
247462306a36Sopenharmony_ci	},
247562306a36Sopenharmony_ci};
247662306a36Sopenharmony_ci
247762306a36Sopenharmony_cistatic struct clk_branch gcc_usb30_prim_master_clk = {
247862306a36Sopenharmony_ci	.halt_reg = 0x1a010,
247962306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
248062306a36Sopenharmony_ci	.clkr = {
248162306a36Sopenharmony_ci		.enable_reg = 0x1a010,
248262306a36Sopenharmony_ci		.enable_mask = BIT(0),
248362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
248462306a36Sopenharmony_ci			.name = "gcc_usb30_prim_master_clk",
248562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[])
248662306a36Sopenharmony_ci				{ &gcc_usb30_prim_master_clk_src.clkr.hw },
248762306a36Sopenharmony_ci			.num_parents = 1,
248862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
248962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
249062306a36Sopenharmony_ci		},
249162306a36Sopenharmony_ci	},
249262306a36Sopenharmony_ci};
249362306a36Sopenharmony_ci
249462306a36Sopenharmony_cistatic struct clk_branch gcc_usb30_prim_mock_utmi_clk = {
249562306a36Sopenharmony_ci	.halt_reg = 0x1a018,
249662306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
249762306a36Sopenharmony_ci	.clkr = {
249862306a36Sopenharmony_ci		.enable_reg = 0x1a018,
249962306a36Sopenharmony_ci		.enable_mask = BIT(0),
250062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
250162306a36Sopenharmony_ci			.name = "gcc_usb30_prim_mock_utmi_clk",
250262306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[])
250362306a36Sopenharmony_ci				{ &gcc_usb30_prim_mock_utmi_postdiv.clkr.hw },
250462306a36Sopenharmony_ci			.num_parents = 1,
250562306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
250662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
250762306a36Sopenharmony_ci		},
250862306a36Sopenharmony_ci	},
250962306a36Sopenharmony_ci};
251062306a36Sopenharmony_ci
251162306a36Sopenharmony_cistatic struct clk_branch gcc_usb30_prim_sleep_clk = {
251262306a36Sopenharmony_ci	.halt_reg = 0x1a014,
251362306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
251462306a36Sopenharmony_ci	.clkr = {
251562306a36Sopenharmony_ci		.enable_reg = 0x1a014,
251662306a36Sopenharmony_ci		.enable_mask = BIT(0),
251762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
251862306a36Sopenharmony_ci			.name = "gcc_usb30_prim_sleep_clk",
251962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
252062306a36Sopenharmony_ci		},
252162306a36Sopenharmony_ci	},
252262306a36Sopenharmony_ci};
252362306a36Sopenharmony_ci
252462306a36Sopenharmony_cistatic struct clk_branch gcc_usb3_prim_clkref_clk = {
252562306a36Sopenharmony_ci	.halt_reg = 0x9f000,
252662306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
252762306a36Sopenharmony_ci	.clkr = {
252862306a36Sopenharmony_ci		.enable_reg = 0x9f000,
252962306a36Sopenharmony_ci		.enable_mask = BIT(0),
253062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
253162306a36Sopenharmony_ci			.name = "gcc_usb3_prim_clkref_clk",
253262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
253362306a36Sopenharmony_ci		},
253462306a36Sopenharmony_ci	},
253562306a36Sopenharmony_ci};
253662306a36Sopenharmony_ci
253762306a36Sopenharmony_cistatic struct clk_branch gcc_usb3_prim_phy_com_aux_clk = {
253862306a36Sopenharmony_ci	.halt_reg = 0x1a054,
253962306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
254062306a36Sopenharmony_ci	.clkr = {
254162306a36Sopenharmony_ci		.enable_reg = 0x1a054,
254262306a36Sopenharmony_ci		.enable_mask = BIT(0),
254362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
254462306a36Sopenharmony_ci			.name = "gcc_usb3_prim_phy_com_aux_clk",
254562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[])
254662306a36Sopenharmony_ci				{ &gcc_usb3_prim_phy_aux_clk_src.clkr.hw },
254762306a36Sopenharmony_ci			.num_parents = 1,
254862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
254962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
255062306a36Sopenharmony_ci		},
255162306a36Sopenharmony_ci	},
255262306a36Sopenharmony_ci};
255362306a36Sopenharmony_ci
255462306a36Sopenharmony_cistatic struct clk_branch gcc_usb3_prim_phy_pipe_clk = {
255562306a36Sopenharmony_ci	.halt_reg = 0x1a058,
255662306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_SKIP,
255762306a36Sopenharmony_ci	.hwcg_reg = 0x1a058,
255862306a36Sopenharmony_ci	.hwcg_bit = 1,
255962306a36Sopenharmony_ci	.clkr = {
256062306a36Sopenharmony_ci		.enable_reg = 0x1a058,
256162306a36Sopenharmony_ci		.enable_mask = BIT(0),
256262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
256362306a36Sopenharmony_ci			.name = "gcc_usb3_prim_phy_pipe_clk",
256462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
256562306a36Sopenharmony_ci		},
256662306a36Sopenharmony_ci	},
256762306a36Sopenharmony_ci};
256862306a36Sopenharmony_ci
256962306a36Sopenharmony_cistatic struct clk_branch gcc_vcodec0_axi_clk = {
257062306a36Sopenharmony_ci	.halt_reg = 0x6e008,
257162306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
257262306a36Sopenharmony_ci	.clkr = {
257362306a36Sopenharmony_ci		.enable_reg = 0x6e008,
257462306a36Sopenharmony_ci		.enable_mask = BIT(0),
257562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
257662306a36Sopenharmony_ci			.name = "gcc_vcodec0_axi_clk",
257762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
257862306a36Sopenharmony_ci		},
257962306a36Sopenharmony_ci	},
258062306a36Sopenharmony_ci};
258162306a36Sopenharmony_ci
258262306a36Sopenharmony_cistatic struct clk_branch gcc_venus_ahb_clk = {
258362306a36Sopenharmony_ci	.halt_reg = 0x6e010,
258462306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
258562306a36Sopenharmony_ci	.clkr = {
258662306a36Sopenharmony_ci		.enable_reg = 0x6e010,
258762306a36Sopenharmony_ci		.enable_mask = BIT(0),
258862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
258962306a36Sopenharmony_ci			.name = "gcc_venus_ahb_clk",
259062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
259162306a36Sopenharmony_ci		},
259262306a36Sopenharmony_ci	},
259362306a36Sopenharmony_ci};
259462306a36Sopenharmony_ci
259562306a36Sopenharmony_cistatic struct clk_branch gcc_venus_ctl_axi_clk = {
259662306a36Sopenharmony_ci	.halt_reg = 0x6e004,
259762306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
259862306a36Sopenharmony_ci	.clkr = {
259962306a36Sopenharmony_ci		.enable_reg = 0x6e004,
260062306a36Sopenharmony_ci		.enable_mask = BIT(0),
260162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
260262306a36Sopenharmony_ci			.name = "gcc_venus_ctl_axi_clk",
260362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
260462306a36Sopenharmony_ci		},
260562306a36Sopenharmony_ci	},
260662306a36Sopenharmony_ci};
260762306a36Sopenharmony_ci
260862306a36Sopenharmony_cistatic struct clk_branch gcc_video_ahb_clk = {
260962306a36Sopenharmony_ci	.halt_reg = 0x17004,
261062306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
261162306a36Sopenharmony_ci	.hwcg_reg = 0x17004,
261262306a36Sopenharmony_ci	.hwcg_bit = 1,
261362306a36Sopenharmony_ci	.clkr = {
261462306a36Sopenharmony_ci		.enable_reg = 0x17004,
261562306a36Sopenharmony_ci		.enable_mask = BIT(0),
261662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
261762306a36Sopenharmony_ci			.name = "gcc_video_ahb_clk",
261862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
261962306a36Sopenharmony_ci		},
262062306a36Sopenharmony_ci	},
262162306a36Sopenharmony_ci};
262262306a36Sopenharmony_ci
262362306a36Sopenharmony_cistatic struct clk_branch gcc_video_axi0_clk = {
262462306a36Sopenharmony_ci	.halt_reg = 0x1701c,
262562306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
262662306a36Sopenharmony_ci	.hwcg_reg = 0x1701c,
262762306a36Sopenharmony_ci	.hwcg_bit = 1,
262862306a36Sopenharmony_ci	.clkr = {
262962306a36Sopenharmony_ci		.enable_reg = 0x1701c,
263062306a36Sopenharmony_ci		.enable_mask = BIT(0),
263162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
263262306a36Sopenharmony_ci			.name = "gcc_video_axi0_clk",
263362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
263462306a36Sopenharmony_ci		},
263562306a36Sopenharmony_ci	},
263662306a36Sopenharmony_ci};
263762306a36Sopenharmony_ci
263862306a36Sopenharmony_cistatic struct clk_branch gcc_video_throttle_core_clk = {
263962306a36Sopenharmony_ci	.halt_reg = 0x17068,
264062306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
264162306a36Sopenharmony_ci	.hwcg_reg = 0x17068,
264262306a36Sopenharmony_ci	.hwcg_bit = 1,
264362306a36Sopenharmony_ci	.clkr = {
264462306a36Sopenharmony_ci		.enable_reg = 0x79004,
264562306a36Sopenharmony_ci		.enable_mask = BIT(28),
264662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
264762306a36Sopenharmony_ci			.name = "gcc_video_throttle_core_clk",
264862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
264962306a36Sopenharmony_ci		},
265062306a36Sopenharmony_ci	},
265162306a36Sopenharmony_ci};
265262306a36Sopenharmony_ci
265362306a36Sopenharmony_cistatic struct clk_branch gcc_video_vcodec0_sys_clk = {
265462306a36Sopenharmony_ci	.halt_reg = 0x580a4,
265562306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_DELAY,
265662306a36Sopenharmony_ci	.hwcg_reg = 0x580a4,
265762306a36Sopenharmony_ci	.hwcg_bit = 1,
265862306a36Sopenharmony_ci	.clkr = {
265962306a36Sopenharmony_ci		.enable_reg = 0x580a4,
266062306a36Sopenharmony_ci		.enable_mask = BIT(0),
266162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
266262306a36Sopenharmony_ci			.name = "gcc_video_vcodec0_sys_clk",
266362306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[])
266462306a36Sopenharmony_ci					{ &gcc_video_venus_clk_src.clkr.hw },
266562306a36Sopenharmony_ci			.num_parents = 1,
266662306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
266762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
266862306a36Sopenharmony_ci		},
266962306a36Sopenharmony_ci	},
267062306a36Sopenharmony_ci};
267162306a36Sopenharmony_ci
267262306a36Sopenharmony_cistatic struct clk_branch gcc_video_venus_ctl_clk = {
267362306a36Sopenharmony_ci	.halt_reg = 0x5808c,
267462306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
267562306a36Sopenharmony_ci	.clkr = {
267662306a36Sopenharmony_ci		.enable_reg = 0x5808c,
267762306a36Sopenharmony_ci		.enable_mask = BIT(0),
267862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
267962306a36Sopenharmony_ci			.name = "gcc_video_venus_ctl_clk",
268062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[])
268162306a36Sopenharmony_ci					{ &gcc_video_venus_clk_src.clkr.hw },
268262306a36Sopenharmony_ci			.num_parents = 1,
268362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
268462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
268562306a36Sopenharmony_ci		},
268662306a36Sopenharmony_ci	},
268762306a36Sopenharmony_ci};
268862306a36Sopenharmony_ci
268962306a36Sopenharmony_cistatic struct clk_branch gcc_video_xo_clk = {
269062306a36Sopenharmony_ci	.halt_reg = 0x17024,
269162306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
269262306a36Sopenharmony_ci	.clkr = {
269362306a36Sopenharmony_ci		.enable_reg = 0x17024,
269462306a36Sopenharmony_ci		.enable_mask = BIT(0),
269562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
269662306a36Sopenharmony_ci			.name = "gcc_video_xo_clk",
269762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
269862306a36Sopenharmony_ci		},
269962306a36Sopenharmony_ci	},
270062306a36Sopenharmony_ci};
270162306a36Sopenharmony_ci
270262306a36Sopenharmony_cistatic struct gdsc gcc_camss_top_gdsc = {
270362306a36Sopenharmony_ci	.gdscr = 0x58004,
270462306a36Sopenharmony_ci	.pd = {
270562306a36Sopenharmony_ci		.name = "gcc_camss_top",
270662306a36Sopenharmony_ci	},
270762306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
270862306a36Sopenharmony_ci};
270962306a36Sopenharmony_ci
271062306a36Sopenharmony_cistatic struct gdsc gcc_usb30_prim_gdsc = {
271162306a36Sopenharmony_ci	.gdscr = 0x1a004,
271262306a36Sopenharmony_ci	.pd = {
271362306a36Sopenharmony_ci		.name = "gcc_usb30_prim",
271462306a36Sopenharmony_ci	},
271562306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
271662306a36Sopenharmony_ci};
271762306a36Sopenharmony_ci
271862306a36Sopenharmony_cistatic struct gdsc gcc_vcodec0_gdsc = {
271962306a36Sopenharmony_ci	.gdscr = 0x58098,
272062306a36Sopenharmony_ci	.pd = {
272162306a36Sopenharmony_ci		.name = "gcc_vcodec0",
272262306a36Sopenharmony_ci	},
272362306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
272462306a36Sopenharmony_ci};
272562306a36Sopenharmony_ci
272662306a36Sopenharmony_cistatic struct gdsc gcc_venus_gdsc = {
272762306a36Sopenharmony_ci	.gdscr = 0x5807c,
272862306a36Sopenharmony_ci	.pd = {
272962306a36Sopenharmony_ci		.name = "gcc_venus",
273062306a36Sopenharmony_ci	},
273162306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
273262306a36Sopenharmony_ci};
273362306a36Sopenharmony_ci
273462306a36Sopenharmony_cistatic struct gdsc hlos1_vote_turing_mmu_tbu1_gdsc = {
273562306a36Sopenharmony_ci	.gdscr = 0x7d060,
273662306a36Sopenharmony_ci	.pd = {
273762306a36Sopenharmony_ci		.name = "hlos1_vote_turing_mmu_tbu1",
273862306a36Sopenharmony_ci	},
273962306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
274062306a36Sopenharmony_ci	.flags = VOTABLE,
274162306a36Sopenharmony_ci};
274262306a36Sopenharmony_ci
274362306a36Sopenharmony_cistatic struct gdsc hlos1_vote_turing_mmu_tbu0_gdsc = {
274462306a36Sopenharmony_ci	.gdscr = 0x7d07c,
274562306a36Sopenharmony_ci	.pd = {
274662306a36Sopenharmony_ci		.name = "hlos1_vote_turing_mmu_tbu0",
274762306a36Sopenharmony_ci	},
274862306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
274962306a36Sopenharmony_ci	.flags = VOTABLE,
275062306a36Sopenharmony_ci};
275162306a36Sopenharmony_ci
275262306a36Sopenharmony_cistatic struct gdsc hlos1_vote_mm_snoc_mmu_tbu_rt_gdsc = {
275362306a36Sopenharmony_ci	.gdscr = 0x7d074,
275462306a36Sopenharmony_ci	.pd = {
275562306a36Sopenharmony_ci		.name = "hlos1_vote_mm_snoc_mmu_tbu_rt",
275662306a36Sopenharmony_ci	},
275762306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
275862306a36Sopenharmony_ci	.flags = VOTABLE,
275962306a36Sopenharmony_ci};
276062306a36Sopenharmony_ci
276162306a36Sopenharmony_cistatic struct gdsc hlos1_vote_mm_snoc_mmu_tbu_nrt_gdsc = {
276262306a36Sopenharmony_ci	.gdscr = 0x7d078,
276362306a36Sopenharmony_ci	.pd = {
276462306a36Sopenharmony_ci		.name = "hlos1_vote_mm_snoc_mmu_tbu_nrt",
276562306a36Sopenharmony_ci	},
276662306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
276762306a36Sopenharmony_ci	.flags = VOTABLE,
276862306a36Sopenharmony_ci};
276962306a36Sopenharmony_ci
277062306a36Sopenharmony_cistatic struct clk_regmap *gcc_qcm2290_clocks[] = {
277162306a36Sopenharmony_ci	[GCC_AHB2PHY_CSI_CLK] = &gcc_ahb2phy_csi_clk.clkr,
277262306a36Sopenharmony_ci	[GCC_AHB2PHY_USB_CLK] = &gcc_ahb2phy_usb_clk.clkr,
277362306a36Sopenharmony_ci	[GCC_BIMC_GPU_AXI_CLK] = &gcc_bimc_gpu_axi_clk.clkr,
277462306a36Sopenharmony_ci	[GCC_BOOT_ROM_AHB_CLK] = &gcc_boot_rom_ahb_clk.clkr,
277562306a36Sopenharmony_ci	[GCC_CAM_THROTTLE_NRT_CLK] = &gcc_cam_throttle_nrt_clk.clkr,
277662306a36Sopenharmony_ci	[GCC_CAM_THROTTLE_RT_CLK] = &gcc_cam_throttle_rt_clk.clkr,
277762306a36Sopenharmony_ci	[GCC_CAMERA_AHB_CLK] = &gcc_camera_ahb_clk.clkr,
277862306a36Sopenharmony_ci	[GCC_CAMERA_XO_CLK] = &gcc_camera_xo_clk.clkr,
277962306a36Sopenharmony_ci	[GCC_CAMSS_AXI_CLK] = &gcc_camss_axi_clk.clkr,
278062306a36Sopenharmony_ci	[GCC_CAMSS_AXI_CLK_SRC] = &gcc_camss_axi_clk_src.clkr,
278162306a36Sopenharmony_ci	[GCC_CAMSS_CAMNOC_ATB_CLK] = &gcc_camss_camnoc_atb_clk.clkr,
278262306a36Sopenharmony_ci	[GCC_CAMSS_CAMNOC_NTS_XO_CLK] = &gcc_camss_camnoc_nts_xo_clk.clkr,
278362306a36Sopenharmony_ci	[GCC_CAMSS_CCI_0_CLK] = &gcc_camss_cci_0_clk.clkr,
278462306a36Sopenharmony_ci	[GCC_CAMSS_CCI_CLK_SRC] = &gcc_camss_cci_clk_src.clkr,
278562306a36Sopenharmony_ci	[GCC_CAMSS_CPHY_0_CLK] = &gcc_camss_cphy_0_clk.clkr,
278662306a36Sopenharmony_ci	[GCC_CAMSS_CPHY_1_CLK] = &gcc_camss_cphy_1_clk.clkr,
278762306a36Sopenharmony_ci	[GCC_CAMSS_CSI0PHYTIMER_CLK] = &gcc_camss_csi0phytimer_clk.clkr,
278862306a36Sopenharmony_ci	[GCC_CAMSS_CSI0PHYTIMER_CLK_SRC] = &gcc_camss_csi0phytimer_clk_src.clkr,
278962306a36Sopenharmony_ci	[GCC_CAMSS_CSI1PHYTIMER_CLK] = &gcc_camss_csi1phytimer_clk.clkr,
279062306a36Sopenharmony_ci	[GCC_CAMSS_CSI1PHYTIMER_CLK_SRC] = &gcc_camss_csi1phytimer_clk_src.clkr,
279162306a36Sopenharmony_ci	[GCC_CAMSS_MCLK0_CLK] = &gcc_camss_mclk0_clk.clkr,
279262306a36Sopenharmony_ci	[GCC_CAMSS_MCLK0_CLK_SRC] = &gcc_camss_mclk0_clk_src.clkr,
279362306a36Sopenharmony_ci	[GCC_CAMSS_MCLK1_CLK] = &gcc_camss_mclk1_clk.clkr,
279462306a36Sopenharmony_ci	[GCC_CAMSS_MCLK1_CLK_SRC] = &gcc_camss_mclk1_clk_src.clkr,
279562306a36Sopenharmony_ci	[GCC_CAMSS_MCLK2_CLK] = &gcc_camss_mclk2_clk.clkr,
279662306a36Sopenharmony_ci	[GCC_CAMSS_MCLK2_CLK_SRC] = &gcc_camss_mclk2_clk_src.clkr,
279762306a36Sopenharmony_ci	[GCC_CAMSS_MCLK3_CLK] = &gcc_camss_mclk3_clk.clkr,
279862306a36Sopenharmony_ci	[GCC_CAMSS_MCLK3_CLK_SRC] = &gcc_camss_mclk3_clk_src.clkr,
279962306a36Sopenharmony_ci	[GCC_CAMSS_NRT_AXI_CLK] = &gcc_camss_nrt_axi_clk.clkr,
280062306a36Sopenharmony_ci	[GCC_CAMSS_OPE_AHB_CLK] = &gcc_camss_ope_ahb_clk.clkr,
280162306a36Sopenharmony_ci	[GCC_CAMSS_OPE_AHB_CLK_SRC] = &gcc_camss_ope_ahb_clk_src.clkr,
280262306a36Sopenharmony_ci	[GCC_CAMSS_OPE_CLK] = &gcc_camss_ope_clk.clkr,
280362306a36Sopenharmony_ci	[GCC_CAMSS_OPE_CLK_SRC] = &gcc_camss_ope_clk_src.clkr,
280462306a36Sopenharmony_ci	[GCC_CAMSS_RT_AXI_CLK] = &gcc_camss_rt_axi_clk.clkr,
280562306a36Sopenharmony_ci	[GCC_CAMSS_TFE_0_CLK] = &gcc_camss_tfe_0_clk.clkr,
280662306a36Sopenharmony_ci	[GCC_CAMSS_TFE_0_CLK_SRC] = &gcc_camss_tfe_0_clk_src.clkr,
280762306a36Sopenharmony_ci	[GCC_CAMSS_TFE_0_CPHY_RX_CLK] = &gcc_camss_tfe_0_cphy_rx_clk.clkr,
280862306a36Sopenharmony_ci	[GCC_CAMSS_TFE_0_CSID_CLK] = &gcc_camss_tfe_0_csid_clk.clkr,
280962306a36Sopenharmony_ci	[GCC_CAMSS_TFE_0_CSID_CLK_SRC] = &gcc_camss_tfe_0_csid_clk_src.clkr,
281062306a36Sopenharmony_ci	[GCC_CAMSS_TFE_1_CLK] = &gcc_camss_tfe_1_clk.clkr,
281162306a36Sopenharmony_ci	[GCC_CAMSS_TFE_1_CLK_SRC] = &gcc_camss_tfe_1_clk_src.clkr,
281262306a36Sopenharmony_ci	[GCC_CAMSS_TFE_1_CPHY_RX_CLK] = &gcc_camss_tfe_1_cphy_rx_clk.clkr,
281362306a36Sopenharmony_ci	[GCC_CAMSS_TFE_1_CSID_CLK] = &gcc_camss_tfe_1_csid_clk.clkr,
281462306a36Sopenharmony_ci	[GCC_CAMSS_TFE_1_CSID_CLK_SRC] = &gcc_camss_tfe_1_csid_clk_src.clkr,
281562306a36Sopenharmony_ci	[GCC_CAMSS_TFE_CPHY_RX_CLK_SRC] = &gcc_camss_tfe_cphy_rx_clk_src.clkr,
281662306a36Sopenharmony_ci	[GCC_CAMSS_TOP_AHB_CLK] = &gcc_camss_top_ahb_clk.clkr,
281762306a36Sopenharmony_ci	[GCC_CAMSS_TOP_AHB_CLK_SRC] = &gcc_camss_top_ahb_clk_src.clkr,
281862306a36Sopenharmony_ci	[GCC_CFG_NOC_USB3_PRIM_AXI_CLK] = &gcc_cfg_noc_usb3_prim_axi_clk.clkr,
281962306a36Sopenharmony_ci	[GCC_DISP_AHB_CLK] = &gcc_disp_ahb_clk.clkr,
282062306a36Sopenharmony_ci	[GCC_DISP_GPLL0_CLK_SRC] = &gcc_disp_gpll0_clk_src.clkr,
282162306a36Sopenharmony_ci	[GCC_DISP_GPLL0_DIV_CLK_SRC] = &gcc_disp_gpll0_div_clk_src.clkr,
282262306a36Sopenharmony_ci	[GCC_DISP_HF_AXI_CLK] = &gcc_disp_hf_axi_clk.clkr,
282362306a36Sopenharmony_ci	[GCC_DISP_THROTTLE_CORE_CLK] = &gcc_disp_throttle_core_clk.clkr,
282462306a36Sopenharmony_ci	[GCC_DISP_XO_CLK] = &gcc_disp_xo_clk.clkr,
282562306a36Sopenharmony_ci	[GCC_GP1_CLK] = &gcc_gp1_clk.clkr,
282662306a36Sopenharmony_ci	[GCC_GP1_CLK_SRC] = &gcc_gp1_clk_src.clkr,
282762306a36Sopenharmony_ci	[GCC_GP2_CLK] = &gcc_gp2_clk.clkr,
282862306a36Sopenharmony_ci	[GCC_GP2_CLK_SRC] = &gcc_gp2_clk_src.clkr,
282962306a36Sopenharmony_ci	[GCC_GP3_CLK] = &gcc_gp3_clk.clkr,
283062306a36Sopenharmony_ci	[GCC_GP3_CLK_SRC] = &gcc_gp3_clk_src.clkr,
283162306a36Sopenharmony_ci	[GCC_GPU_CFG_AHB_CLK] = &gcc_gpu_cfg_ahb_clk.clkr,
283262306a36Sopenharmony_ci	[GCC_GPU_GPLL0_CLK_SRC] = &gcc_gpu_gpll0_clk_src.clkr,
283362306a36Sopenharmony_ci	[GCC_GPU_GPLL0_DIV_CLK_SRC] = &gcc_gpu_gpll0_div_clk_src.clkr,
283462306a36Sopenharmony_ci	[GCC_GPU_IREF_CLK] = &gcc_gpu_iref_clk.clkr,
283562306a36Sopenharmony_ci	[GCC_GPU_MEMNOC_GFX_CLK] = &gcc_gpu_memnoc_gfx_clk.clkr,
283662306a36Sopenharmony_ci	[GCC_GPU_SNOC_DVM_GFX_CLK] = &gcc_gpu_snoc_dvm_gfx_clk.clkr,
283762306a36Sopenharmony_ci	[GCC_GPU_THROTTLE_CORE_CLK] = &gcc_gpu_throttle_core_clk.clkr,
283862306a36Sopenharmony_ci	[GCC_PDM2_CLK] = &gcc_pdm2_clk.clkr,
283962306a36Sopenharmony_ci	[GCC_PDM2_CLK_SRC] = &gcc_pdm2_clk_src.clkr,
284062306a36Sopenharmony_ci	[GCC_PDM_AHB_CLK] = &gcc_pdm_ahb_clk.clkr,
284162306a36Sopenharmony_ci	[GCC_PDM_XO4_CLK] = &gcc_pdm_xo4_clk.clkr,
284262306a36Sopenharmony_ci	[GCC_PWM0_XO512_CLK] = &gcc_pwm0_xo512_clk.clkr,
284362306a36Sopenharmony_ci	[GCC_QMIP_CAMERA_NRT_AHB_CLK] = &gcc_qmip_camera_nrt_ahb_clk.clkr,
284462306a36Sopenharmony_ci	[GCC_QMIP_CAMERA_RT_AHB_CLK] = &gcc_qmip_camera_rt_ahb_clk.clkr,
284562306a36Sopenharmony_ci	[GCC_QMIP_DISP_AHB_CLK] = &gcc_qmip_disp_ahb_clk.clkr,
284662306a36Sopenharmony_ci	[GCC_QMIP_GPU_CFG_AHB_CLK] = &gcc_qmip_gpu_cfg_ahb_clk.clkr,
284762306a36Sopenharmony_ci	[GCC_QMIP_VIDEO_VCODEC_AHB_CLK] = &gcc_qmip_video_vcodec_ahb_clk.clkr,
284862306a36Sopenharmony_ci	[GCC_QUPV3_WRAP0_CORE_2X_CLK] = &gcc_qupv3_wrap0_core_2x_clk.clkr,
284962306a36Sopenharmony_ci	[GCC_QUPV3_WRAP0_CORE_CLK] = &gcc_qupv3_wrap0_core_clk.clkr,
285062306a36Sopenharmony_ci	[GCC_QUPV3_WRAP0_S0_CLK] = &gcc_qupv3_wrap0_s0_clk.clkr,
285162306a36Sopenharmony_ci	[GCC_QUPV3_WRAP0_S0_CLK_SRC] = &gcc_qupv3_wrap0_s0_clk_src.clkr,
285262306a36Sopenharmony_ci	[GCC_QUPV3_WRAP0_S1_CLK] = &gcc_qupv3_wrap0_s1_clk.clkr,
285362306a36Sopenharmony_ci	[GCC_QUPV3_WRAP0_S1_CLK_SRC] = &gcc_qupv3_wrap0_s1_clk_src.clkr,
285462306a36Sopenharmony_ci	[GCC_QUPV3_WRAP0_S2_CLK] = &gcc_qupv3_wrap0_s2_clk.clkr,
285562306a36Sopenharmony_ci	[GCC_QUPV3_WRAP0_S2_CLK_SRC] = &gcc_qupv3_wrap0_s2_clk_src.clkr,
285662306a36Sopenharmony_ci	[GCC_QUPV3_WRAP0_S3_CLK] = &gcc_qupv3_wrap0_s3_clk.clkr,
285762306a36Sopenharmony_ci	[GCC_QUPV3_WRAP0_S3_CLK_SRC] = &gcc_qupv3_wrap0_s3_clk_src.clkr,
285862306a36Sopenharmony_ci	[GCC_QUPV3_WRAP0_S4_CLK] = &gcc_qupv3_wrap0_s4_clk.clkr,
285962306a36Sopenharmony_ci	[GCC_QUPV3_WRAP0_S4_CLK_SRC] = &gcc_qupv3_wrap0_s4_clk_src.clkr,
286062306a36Sopenharmony_ci	[GCC_QUPV3_WRAP0_S5_CLK] = &gcc_qupv3_wrap0_s5_clk.clkr,
286162306a36Sopenharmony_ci	[GCC_QUPV3_WRAP0_S5_CLK_SRC] = &gcc_qupv3_wrap0_s5_clk_src.clkr,
286262306a36Sopenharmony_ci	[GCC_QUPV3_WRAP_0_M_AHB_CLK] = &gcc_qupv3_wrap_0_m_ahb_clk.clkr,
286362306a36Sopenharmony_ci	[GCC_QUPV3_WRAP_0_S_AHB_CLK] = &gcc_qupv3_wrap_0_s_ahb_clk.clkr,
286462306a36Sopenharmony_ci	[GCC_SDCC1_AHB_CLK] = &gcc_sdcc1_ahb_clk.clkr,
286562306a36Sopenharmony_ci	[GCC_SDCC1_APPS_CLK] = &gcc_sdcc1_apps_clk.clkr,
286662306a36Sopenharmony_ci	[GCC_SDCC1_APPS_CLK_SRC] = &gcc_sdcc1_apps_clk_src.clkr,
286762306a36Sopenharmony_ci	[GCC_SDCC1_ICE_CORE_CLK] = &gcc_sdcc1_ice_core_clk.clkr,
286862306a36Sopenharmony_ci	[GCC_SDCC1_ICE_CORE_CLK_SRC] = &gcc_sdcc1_ice_core_clk_src.clkr,
286962306a36Sopenharmony_ci	[GCC_SDCC2_AHB_CLK] = &gcc_sdcc2_ahb_clk.clkr,
287062306a36Sopenharmony_ci	[GCC_SDCC2_APPS_CLK] = &gcc_sdcc2_apps_clk.clkr,
287162306a36Sopenharmony_ci	[GCC_SDCC2_APPS_CLK_SRC] = &gcc_sdcc2_apps_clk_src.clkr,
287262306a36Sopenharmony_ci	[GCC_SYS_NOC_CPUSS_AHB_CLK] = &gcc_sys_noc_cpuss_ahb_clk.clkr,
287362306a36Sopenharmony_ci	[GCC_SYS_NOC_USB3_PRIM_AXI_CLK] = &gcc_sys_noc_usb3_prim_axi_clk.clkr,
287462306a36Sopenharmony_ci	[GCC_USB30_PRIM_MASTER_CLK] = &gcc_usb30_prim_master_clk.clkr,
287562306a36Sopenharmony_ci	[GCC_USB30_PRIM_MASTER_CLK_SRC] = &gcc_usb30_prim_master_clk_src.clkr,
287662306a36Sopenharmony_ci	[GCC_USB30_PRIM_MOCK_UTMI_CLK] = &gcc_usb30_prim_mock_utmi_clk.clkr,
287762306a36Sopenharmony_ci	[GCC_USB30_PRIM_MOCK_UTMI_CLK_SRC] =
287862306a36Sopenharmony_ci		&gcc_usb30_prim_mock_utmi_clk_src.clkr,
287962306a36Sopenharmony_ci	[GCC_USB30_PRIM_MOCK_UTMI_POSTDIV] =
288062306a36Sopenharmony_ci		&gcc_usb30_prim_mock_utmi_postdiv.clkr,
288162306a36Sopenharmony_ci	[GCC_USB30_PRIM_SLEEP_CLK] = &gcc_usb30_prim_sleep_clk.clkr,
288262306a36Sopenharmony_ci	[GCC_USB3_PRIM_CLKREF_CLK] = &gcc_usb3_prim_clkref_clk.clkr,
288362306a36Sopenharmony_ci	[GCC_USB3_PRIM_PHY_AUX_CLK_SRC] = &gcc_usb3_prim_phy_aux_clk_src.clkr,
288462306a36Sopenharmony_ci	[GCC_USB3_PRIM_PHY_COM_AUX_CLK] = &gcc_usb3_prim_phy_com_aux_clk.clkr,
288562306a36Sopenharmony_ci	[GCC_USB3_PRIM_PHY_PIPE_CLK] = &gcc_usb3_prim_phy_pipe_clk.clkr,
288662306a36Sopenharmony_ci	[GCC_VCODEC0_AXI_CLK] = &gcc_vcodec0_axi_clk.clkr,
288762306a36Sopenharmony_ci	[GCC_VENUS_AHB_CLK] = &gcc_venus_ahb_clk.clkr,
288862306a36Sopenharmony_ci	[GCC_VENUS_CTL_AXI_CLK] = &gcc_venus_ctl_axi_clk.clkr,
288962306a36Sopenharmony_ci	[GCC_VIDEO_AHB_CLK] = &gcc_video_ahb_clk.clkr,
289062306a36Sopenharmony_ci	[GCC_VIDEO_AXI0_CLK] = &gcc_video_axi0_clk.clkr,
289162306a36Sopenharmony_ci	[GCC_VIDEO_THROTTLE_CORE_CLK] = &gcc_video_throttle_core_clk.clkr,
289262306a36Sopenharmony_ci	[GCC_VIDEO_VCODEC0_SYS_CLK] = &gcc_video_vcodec0_sys_clk.clkr,
289362306a36Sopenharmony_ci	[GCC_VIDEO_VENUS_CLK_SRC] = &gcc_video_venus_clk_src.clkr,
289462306a36Sopenharmony_ci	[GCC_VIDEO_VENUS_CTL_CLK] = &gcc_video_venus_ctl_clk.clkr,
289562306a36Sopenharmony_ci	[GCC_VIDEO_XO_CLK] = &gcc_video_xo_clk.clkr,
289662306a36Sopenharmony_ci	[GPLL0] = &gpll0.clkr,
289762306a36Sopenharmony_ci	[GPLL0_OUT_AUX2] = &gpll0_out_aux2.clkr,
289862306a36Sopenharmony_ci	[GPLL1] = &gpll1.clkr,
289962306a36Sopenharmony_ci	[GPLL10] = &gpll10.clkr,
290062306a36Sopenharmony_ci	[GPLL11] = &gpll11.clkr,
290162306a36Sopenharmony_ci	[GPLL3] = &gpll3.clkr,
290262306a36Sopenharmony_ci	[GPLL3_OUT_MAIN] = &gpll3_out_main.clkr,
290362306a36Sopenharmony_ci	[GPLL4] = &gpll4.clkr,
290462306a36Sopenharmony_ci	[GPLL5] = &gpll5.clkr,
290562306a36Sopenharmony_ci	[GPLL6] = &gpll6.clkr,
290662306a36Sopenharmony_ci	[GPLL6_OUT_MAIN] = &gpll6_out_main.clkr,
290762306a36Sopenharmony_ci	[GPLL7] = &gpll7.clkr,
290862306a36Sopenharmony_ci	[GPLL8] = &gpll8.clkr,
290962306a36Sopenharmony_ci	[GPLL8_OUT_MAIN] = &gpll8_out_main.clkr,
291062306a36Sopenharmony_ci	[GPLL9] = &gpll9.clkr,
291162306a36Sopenharmony_ci	[GPLL9_OUT_MAIN] = &gpll9_out_main.clkr,
291262306a36Sopenharmony_ci};
291362306a36Sopenharmony_ci
291462306a36Sopenharmony_cistatic const struct qcom_reset_map gcc_qcm2290_resets[] = {
291562306a36Sopenharmony_ci	[GCC_CAMSS_OPE_BCR] = { 0x55000 },
291662306a36Sopenharmony_ci	[GCC_CAMSS_TFE_BCR] = { 0x52000 },
291762306a36Sopenharmony_ci	[GCC_CAMSS_TOP_BCR] = { 0x58000 },
291862306a36Sopenharmony_ci	[GCC_GPU_BCR] = { 0x36000 },
291962306a36Sopenharmony_ci	[GCC_MMSS_BCR] = { 0x17000 },
292062306a36Sopenharmony_ci	[GCC_PDM_BCR] = { 0x20000 },
292162306a36Sopenharmony_ci	[GCC_QUPV3_WRAPPER_0_BCR] = { 0x1f000 },
292262306a36Sopenharmony_ci	[GCC_QUSB2PHY_PRIM_BCR] = { 0x1c000 },
292362306a36Sopenharmony_ci	[GCC_SDCC1_BCR] = { 0x38000 },
292462306a36Sopenharmony_ci	[GCC_SDCC2_BCR] = { 0x1e000 },
292562306a36Sopenharmony_ci	[GCC_USB30_PRIM_BCR] = { 0x1a000 },
292662306a36Sopenharmony_ci	[GCC_USB3_PHY_PRIM_SP0_BCR] = { 0x1b000 },
292762306a36Sopenharmony_ci	[GCC_USB3PHY_PHY_PRIM_SP0_BCR] = { 0x1b008 },
292862306a36Sopenharmony_ci	[GCC_USB_PHY_CFG_AHB2PHY_BCR] = { 0x1d000 },
292962306a36Sopenharmony_ci	[GCC_VCODEC0_BCR] = { 0x58094 },
293062306a36Sopenharmony_ci	[GCC_VENUS_BCR] = { 0x58078 },
293162306a36Sopenharmony_ci	[GCC_VIDEO_INTERFACE_BCR] = { 0x6e000 },
293262306a36Sopenharmony_ci};
293362306a36Sopenharmony_ci
293462306a36Sopenharmony_cistatic struct gdsc *gcc_qcm2290_gdscs[] = {
293562306a36Sopenharmony_ci	[GCC_CAMSS_TOP_GDSC] = &gcc_camss_top_gdsc,
293662306a36Sopenharmony_ci	[GCC_USB30_PRIM_GDSC] = &gcc_usb30_prim_gdsc,
293762306a36Sopenharmony_ci	[GCC_VCODEC0_GDSC] = &gcc_vcodec0_gdsc,
293862306a36Sopenharmony_ci	[GCC_VENUS_GDSC] = &gcc_venus_gdsc,
293962306a36Sopenharmony_ci	[HLOS1_VOTE_TURING_MMU_TBU1_GDSC] = &hlos1_vote_turing_mmu_tbu1_gdsc,
294062306a36Sopenharmony_ci	[HLOS1_VOTE_TURING_MMU_TBU0_GDSC] = &hlos1_vote_turing_mmu_tbu0_gdsc,
294162306a36Sopenharmony_ci	[HLOS1_VOTE_MM_SNOC_MMU_TBU_RT_GDSC] = &hlos1_vote_mm_snoc_mmu_tbu_rt_gdsc,
294262306a36Sopenharmony_ci	[HLOS1_VOTE_MM_SNOC_MMU_TBU_NRT_GDSC] = &hlos1_vote_mm_snoc_mmu_tbu_nrt_gdsc,
294362306a36Sopenharmony_ci};
294462306a36Sopenharmony_ci
294562306a36Sopenharmony_cistatic const struct clk_rcg_dfs_data gcc_dfs_clocks[] = {
294662306a36Sopenharmony_ci	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s0_clk_src),
294762306a36Sopenharmony_ci	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s1_clk_src),
294862306a36Sopenharmony_ci	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s2_clk_src),
294962306a36Sopenharmony_ci	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s3_clk_src),
295062306a36Sopenharmony_ci	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s4_clk_src),
295162306a36Sopenharmony_ci	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s5_clk_src),
295262306a36Sopenharmony_ci};
295362306a36Sopenharmony_ci
295462306a36Sopenharmony_cistatic const struct regmap_config gcc_qcm2290_regmap_config = {
295562306a36Sopenharmony_ci	.reg_bits = 32,
295662306a36Sopenharmony_ci	.reg_stride = 4,
295762306a36Sopenharmony_ci	.val_bits = 32,
295862306a36Sopenharmony_ci	.max_register = 0xc7000,
295962306a36Sopenharmony_ci	.fast_io = true,
296062306a36Sopenharmony_ci};
296162306a36Sopenharmony_ci
296262306a36Sopenharmony_cistatic const struct qcom_cc_desc gcc_qcm2290_desc = {
296362306a36Sopenharmony_ci	.config = &gcc_qcm2290_regmap_config,
296462306a36Sopenharmony_ci	.clks = gcc_qcm2290_clocks,
296562306a36Sopenharmony_ci	.num_clks = ARRAY_SIZE(gcc_qcm2290_clocks),
296662306a36Sopenharmony_ci	.resets = gcc_qcm2290_resets,
296762306a36Sopenharmony_ci	.num_resets = ARRAY_SIZE(gcc_qcm2290_resets),
296862306a36Sopenharmony_ci	.gdscs = gcc_qcm2290_gdscs,
296962306a36Sopenharmony_ci	.num_gdscs = ARRAY_SIZE(gcc_qcm2290_gdscs),
297062306a36Sopenharmony_ci};
297162306a36Sopenharmony_ci
297262306a36Sopenharmony_cistatic const struct of_device_id gcc_qcm2290_match_table[] = {
297362306a36Sopenharmony_ci	{ .compatible = "qcom,gcc-qcm2290" },
297462306a36Sopenharmony_ci	{ }
297562306a36Sopenharmony_ci};
297662306a36Sopenharmony_ciMODULE_DEVICE_TABLE(of, gcc_qcm2290_match_table);
297762306a36Sopenharmony_ci
297862306a36Sopenharmony_cistatic int gcc_qcm2290_probe(struct platform_device *pdev)
297962306a36Sopenharmony_ci{
298062306a36Sopenharmony_ci	struct regmap *regmap;
298162306a36Sopenharmony_ci	int ret;
298262306a36Sopenharmony_ci
298362306a36Sopenharmony_ci	regmap = qcom_cc_map(pdev, &gcc_qcm2290_desc);
298462306a36Sopenharmony_ci	if (IS_ERR(regmap))
298562306a36Sopenharmony_ci		return PTR_ERR(regmap);
298662306a36Sopenharmony_ci
298762306a36Sopenharmony_ci	ret = qcom_cc_register_rcg_dfs(regmap, gcc_dfs_clocks,
298862306a36Sopenharmony_ci				       ARRAY_SIZE(gcc_dfs_clocks));
298962306a36Sopenharmony_ci	if (ret)
299062306a36Sopenharmony_ci		return ret;
299162306a36Sopenharmony_ci
299262306a36Sopenharmony_ci	clk_alpha_pll_configure(&gpll10, regmap, &gpll10_config);
299362306a36Sopenharmony_ci	clk_alpha_pll_configure(&gpll11, regmap, &gpll11_config);
299462306a36Sopenharmony_ci	clk_alpha_pll_configure(&gpll8, regmap, &gpll8_config);
299562306a36Sopenharmony_ci	clk_alpha_pll_configure(&gpll9, regmap, &gpll9_config);
299662306a36Sopenharmony_ci
299762306a36Sopenharmony_ci	return qcom_cc_really_probe(pdev, &gcc_qcm2290_desc, regmap);
299862306a36Sopenharmony_ci}
299962306a36Sopenharmony_ci
300062306a36Sopenharmony_cistatic struct platform_driver gcc_qcm2290_driver = {
300162306a36Sopenharmony_ci	.probe = gcc_qcm2290_probe,
300262306a36Sopenharmony_ci	.driver = {
300362306a36Sopenharmony_ci		.name = "gcc-qcm2290",
300462306a36Sopenharmony_ci		.of_match_table = gcc_qcm2290_match_table,
300562306a36Sopenharmony_ci	},
300662306a36Sopenharmony_ci};
300762306a36Sopenharmony_ci
300862306a36Sopenharmony_cistatic int __init gcc_qcm2290_init(void)
300962306a36Sopenharmony_ci{
301062306a36Sopenharmony_ci	return platform_driver_register(&gcc_qcm2290_driver);
301162306a36Sopenharmony_ci}
301262306a36Sopenharmony_cisubsys_initcall(gcc_qcm2290_init);
301362306a36Sopenharmony_ci
301462306a36Sopenharmony_cistatic void __exit gcc_qcm2290_exit(void)
301562306a36Sopenharmony_ci{
301662306a36Sopenharmony_ci	platform_driver_unregister(&gcc_qcm2290_driver);
301762306a36Sopenharmony_ci}
301862306a36Sopenharmony_cimodule_exit(gcc_qcm2290_exit);
301962306a36Sopenharmony_ci
302062306a36Sopenharmony_ciMODULE_DESCRIPTION("QTI GCC QCM2290 Driver");
302162306a36Sopenharmony_ciMODULE_LICENSE("GPL v2");
3022