162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright (c) 2022-2023, Qualcomm Innovation Center, Inc. All rights reserved.
462306a36Sopenharmony_ci */
562306a36Sopenharmony_ci
662306a36Sopenharmony_ci#include <linux/clk-provider.h>
762306a36Sopenharmony_ci#include <linux/module.h>
862306a36Sopenharmony_ci#include <linux/of.h>
962306a36Sopenharmony_ci#include <linux/platform_device.h>
1062306a36Sopenharmony_ci#include <linux/regmap.h>
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ci#include <dt-bindings/clock/qcom,qdu1000-gcc.h>
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ci#include "clk-alpha-pll.h"
1562306a36Sopenharmony_ci#include "clk-branch.h"
1662306a36Sopenharmony_ci#include "clk-rcg.h"
1762306a36Sopenharmony_ci#include "clk-regmap.h"
1862306a36Sopenharmony_ci#include "clk-regmap-divider.h"
1962306a36Sopenharmony_ci#include "clk-regmap-mux.h"
2062306a36Sopenharmony_ci#include "clk-regmap-phy-mux.h"
2162306a36Sopenharmony_ci#include "gdsc.h"
2262306a36Sopenharmony_ci#include "reset.h"
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_cienum {
2562306a36Sopenharmony_ci	P_BI_TCXO,
2662306a36Sopenharmony_ci	P_GCC_GPLL0_OUT_EVEN,
2762306a36Sopenharmony_ci	P_GCC_GPLL0_OUT_MAIN,
2862306a36Sopenharmony_ci	P_GCC_GPLL1_OUT_MAIN,
2962306a36Sopenharmony_ci	P_GCC_GPLL2_OUT_MAIN,
3062306a36Sopenharmony_ci	P_GCC_GPLL3_OUT_MAIN,
3162306a36Sopenharmony_ci	P_GCC_GPLL4_OUT_MAIN,
3262306a36Sopenharmony_ci	P_GCC_GPLL5_OUT_MAIN,
3362306a36Sopenharmony_ci	P_GCC_GPLL6_OUT_MAIN,
3462306a36Sopenharmony_ci	P_GCC_GPLL7_OUT_MAIN,
3562306a36Sopenharmony_ci	P_GCC_GPLL8_OUT_MAIN,
3662306a36Sopenharmony_ci	P_PCIE_0_PHY_AUX_CLK,
3762306a36Sopenharmony_ci	P_PCIE_0_PIPE_CLK,
3862306a36Sopenharmony_ci	P_SLEEP_CLK,
3962306a36Sopenharmony_ci	P_USB3_PHY_WRAPPER_GCC_USB30_PIPE_CLK,
4062306a36Sopenharmony_ci};
4162306a36Sopenharmony_ci
4262306a36Sopenharmony_cienum {
4362306a36Sopenharmony_ci	DT_TCXO_IDX,
4462306a36Sopenharmony_ci	DT_SLEEP_CLK_IDX,
4562306a36Sopenharmony_ci	DT_PCIE_0_PIPE_CLK_IDX,
4662306a36Sopenharmony_ci	DT_PCIE_0_PHY_AUX_CLK_IDX,
4762306a36Sopenharmony_ci	DT_USB3_PHY_WRAPPER_PIPE_CLK_IDX,
4862306a36Sopenharmony_ci};
4962306a36Sopenharmony_ci
5062306a36Sopenharmony_cistatic struct clk_alpha_pll gcc_gpll0 = {
5162306a36Sopenharmony_ci	.offset = 0x0,
5262306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_EVO],
5362306a36Sopenharmony_ci	.clkr = {
5462306a36Sopenharmony_ci		.enable_reg = 0x62018,
5562306a36Sopenharmony_ci		.enable_mask = BIT(0),
5662306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
5762306a36Sopenharmony_ci			.name = "gcc_gpll0",
5862306a36Sopenharmony_ci			.parent_data = &(const struct clk_parent_data) {
5962306a36Sopenharmony_ci				.index = DT_TCXO_IDX,
6062306a36Sopenharmony_ci			},
6162306a36Sopenharmony_ci			.num_parents = 1,
6262306a36Sopenharmony_ci			.ops = &clk_alpha_pll_fixed_lucid_evo_ops,
6362306a36Sopenharmony_ci		},
6462306a36Sopenharmony_ci	},
6562306a36Sopenharmony_ci};
6662306a36Sopenharmony_ci
6762306a36Sopenharmony_cistatic const struct clk_div_table post_div_table_gcc_gpll0_out_even[] = {
6862306a36Sopenharmony_ci	{ 0x1, 2 }
6962306a36Sopenharmony_ci};
7062306a36Sopenharmony_ci
7162306a36Sopenharmony_cistatic struct clk_alpha_pll_postdiv gcc_gpll0_out_even = {
7262306a36Sopenharmony_ci	.offset = 0x0,
7362306a36Sopenharmony_ci	.post_div_shift = 10,
7462306a36Sopenharmony_ci	.post_div_table = post_div_table_gcc_gpll0_out_even,
7562306a36Sopenharmony_ci	.num_post_div = ARRAY_SIZE(post_div_table_gcc_gpll0_out_even),
7662306a36Sopenharmony_ci	.width = 4,
7762306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_EVO],
7862306a36Sopenharmony_ci	.clkr.hw.init = &(const struct clk_init_data) {
7962306a36Sopenharmony_ci		.name = "gcc_gpll0_out_even",
8062306a36Sopenharmony_ci		.parent_hws = (const struct clk_hw*[]) {
8162306a36Sopenharmony_ci			&gcc_gpll0.clkr.hw,
8262306a36Sopenharmony_ci		},
8362306a36Sopenharmony_ci		.num_parents = 1,
8462306a36Sopenharmony_ci		.ops = &clk_alpha_pll_postdiv_lucid_evo_ops,
8562306a36Sopenharmony_ci	},
8662306a36Sopenharmony_ci};
8762306a36Sopenharmony_ci
8862306a36Sopenharmony_cistatic struct clk_alpha_pll gcc_gpll1 = {
8962306a36Sopenharmony_ci	.offset = 0x1000,
9062306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_EVO],
9162306a36Sopenharmony_ci	.clkr = {
9262306a36Sopenharmony_ci		.enable_reg = 0x62018,
9362306a36Sopenharmony_ci		.enable_mask = BIT(1),
9462306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
9562306a36Sopenharmony_ci			.name = "gcc_gpll1",
9662306a36Sopenharmony_ci			.parent_data = &(const struct clk_parent_data) {
9762306a36Sopenharmony_ci				.index = DT_TCXO_IDX,
9862306a36Sopenharmony_ci			},
9962306a36Sopenharmony_ci			.num_parents = 1,
10062306a36Sopenharmony_ci			.ops = &clk_alpha_pll_fixed_lucid_evo_ops,
10162306a36Sopenharmony_ci		},
10262306a36Sopenharmony_ci	},
10362306a36Sopenharmony_ci};
10462306a36Sopenharmony_ci
10562306a36Sopenharmony_cistatic struct clk_alpha_pll_postdiv gcc_gpll1_out_even = {
10662306a36Sopenharmony_ci	.offset = 0x1000,
10762306a36Sopenharmony_ci	.post_div_shift = 10,
10862306a36Sopenharmony_ci	.post_div_table = post_div_table_gcc_gpll0_out_even,
10962306a36Sopenharmony_ci	.num_post_div = ARRAY_SIZE(post_div_table_gcc_gpll0_out_even),
11062306a36Sopenharmony_ci	.width = 4,
11162306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_EVO],
11262306a36Sopenharmony_ci	.clkr.hw.init = &(const struct clk_init_data) {
11362306a36Sopenharmony_ci		.name = "gcc_gpll1_out_even",
11462306a36Sopenharmony_ci		.parent_hws = (const struct clk_hw*[]) {
11562306a36Sopenharmony_ci			&gcc_gpll1.clkr.hw,
11662306a36Sopenharmony_ci		},
11762306a36Sopenharmony_ci		.num_parents = 1,
11862306a36Sopenharmony_ci		.ops = &clk_alpha_pll_postdiv_lucid_evo_ops,
11962306a36Sopenharmony_ci	},
12062306a36Sopenharmony_ci};
12162306a36Sopenharmony_ci
12262306a36Sopenharmony_cistatic struct clk_alpha_pll gcc_gpll2 = {
12362306a36Sopenharmony_ci	.offset = 0x2000,
12462306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_EVO],
12562306a36Sopenharmony_ci	.clkr = {
12662306a36Sopenharmony_ci		.enable_reg = 0x62018,
12762306a36Sopenharmony_ci		.enable_mask = BIT(2),
12862306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
12962306a36Sopenharmony_ci			.name = "gcc_gpll2",
13062306a36Sopenharmony_ci			.parent_data = &(const struct clk_parent_data) {
13162306a36Sopenharmony_ci				.index = DT_TCXO_IDX,
13262306a36Sopenharmony_ci			},
13362306a36Sopenharmony_ci			.num_parents = 1,
13462306a36Sopenharmony_ci			.ops = &clk_alpha_pll_fixed_lucid_evo_ops,
13562306a36Sopenharmony_ci		},
13662306a36Sopenharmony_ci	},
13762306a36Sopenharmony_ci};
13862306a36Sopenharmony_ci
13962306a36Sopenharmony_cistatic struct clk_alpha_pll_postdiv gcc_gpll2_out_even = {
14062306a36Sopenharmony_ci	.offset = 0x2000,
14162306a36Sopenharmony_ci	.post_div_shift = 10,
14262306a36Sopenharmony_ci	.post_div_table = post_div_table_gcc_gpll0_out_even,
14362306a36Sopenharmony_ci	.num_post_div = ARRAY_SIZE(post_div_table_gcc_gpll0_out_even),
14462306a36Sopenharmony_ci	.width = 4,
14562306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_EVO],
14662306a36Sopenharmony_ci	.clkr.hw.init = &(const struct clk_init_data) {
14762306a36Sopenharmony_ci		.name = "gcc_gpll2_out_even",
14862306a36Sopenharmony_ci		.parent_hws = (const struct clk_hw*[]) {
14962306a36Sopenharmony_ci			&gcc_gpll2.clkr.hw,
15062306a36Sopenharmony_ci		},
15162306a36Sopenharmony_ci		.num_parents = 1,
15262306a36Sopenharmony_ci		.ops = &clk_alpha_pll_postdiv_lucid_evo_ops,
15362306a36Sopenharmony_ci	},
15462306a36Sopenharmony_ci};
15562306a36Sopenharmony_ci
15662306a36Sopenharmony_cistatic struct clk_alpha_pll gcc_gpll3 = {
15762306a36Sopenharmony_ci	.offset = 0x3000,
15862306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_EVO],
15962306a36Sopenharmony_ci	.clkr = {
16062306a36Sopenharmony_ci		.enable_reg = 0x62018,
16162306a36Sopenharmony_ci		.enable_mask = BIT(3),
16262306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
16362306a36Sopenharmony_ci			.name = "gcc_gpll3",
16462306a36Sopenharmony_ci			.parent_data = &(const struct clk_parent_data) {
16562306a36Sopenharmony_ci				.index = DT_TCXO_IDX,
16662306a36Sopenharmony_ci			},
16762306a36Sopenharmony_ci			.num_parents = 1,
16862306a36Sopenharmony_ci			.ops = &clk_alpha_pll_fixed_lucid_evo_ops,
16962306a36Sopenharmony_ci		},
17062306a36Sopenharmony_ci	},
17162306a36Sopenharmony_ci};
17262306a36Sopenharmony_ci
17362306a36Sopenharmony_cistatic struct clk_alpha_pll gcc_gpll4 = {
17462306a36Sopenharmony_ci	.offset = 0x4000,
17562306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_EVO],
17662306a36Sopenharmony_ci	.clkr = {
17762306a36Sopenharmony_ci		.enable_reg = 0x62018,
17862306a36Sopenharmony_ci		.enable_mask = BIT(4),
17962306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
18062306a36Sopenharmony_ci			.name = "gcc_gpll4",
18162306a36Sopenharmony_ci			.parent_data = &(const struct clk_parent_data) {
18262306a36Sopenharmony_ci				.index = DT_TCXO_IDX,
18362306a36Sopenharmony_ci			},
18462306a36Sopenharmony_ci			.num_parents = 1,
18562306a36Sopenharmony_ci			.ops = &clk_alpha_pll_fixed_lucid_evo_ops,
18662306a36Sopenharmony_ci		},
18762306a36Sopenharmony_ci	},
18862306a36Sopenharmony_ci};
18962306a36Sopenharmony_ci
19062306a36Sopenharmony_cistatic struct clk_alpha_pll gcc_gpll5 = {
19162306a36Sopenharmony_ci	.offset = 0x5000,
19262306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_EVO],
19362306a36Sopenharmony_ci	.clkr = {
19462306a36Sopenharmony_ci		.enable_reg = 0x62018,
19562306a36Sopenharmony_ci		.enable_mask = BIT(5),
19662306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
19762306a36Sopenharmony_ci			.name = "gcc_gpll5",
19862306a36Sopenharmony_ci			.parent_data = &(const struct clk_parent_data) {
19962306a36Sopenharmony_ci				.index = DT_TCXO_IDX,
20062306a36Sopenharmony_ci			},
20162306a36Sopenharmony_ci			.num_parents = 1,
20262306a36Sopenharmony_ci			.ops = &clk_alpha_pll_fixed_lucid_evo_ops,
20362306a36Sopenharmony_ci		},
20462306a36Sopenharmony_ci	},
20562306a36Sopenharmony_ci};
20662306a36Sopenharmony_ci
20762306a36Sopenharmony_cistatic struct clk_alpha_pll_postdiv gcc_gpll5_out_even = {
20862306a36Sopenharmony_ci	.offset = 0x5000,
20962306a36Sopenharmony_ci	.post_div_shift = 10,
21062306a36Sopenharmony_ci	.post_div_table = post_div_table_gcc_gpll0_out_even,
21162306a36Sopenharmony_ci	.num_post_div = ARRAY_SIZE(post_div_table_gcc_gpll0_out_even),
21262306a36Sopenharmony_ci	.width = 4,
21362306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_EVO],
21462306a36Sopenharmony_ci	.clkr.hw.init = &(const struct clk_init_data) {
21562306a36Sopenharmony_ci		.name = "gcc_gpll5_out_even",
21662306a36Sopenharmony_ci		.parent_hws = (const struct clk_hw*[]) {
21762306a36Sopenharmony_ci			&gcc_gpll5.clkr.hw,
21862306a36Sopenharmony_ci		},
21962306a36Sopenharmony_ci		.num_parents = 1,
22062306a36Sopenharmony_ci		.ops = &clk_alpha_pll_postdiv_lucid_evo_ops,
22162306a36Sopenharmony_ci	},
22262306a36Sopenharmony_ci};
22362306a36Sopenharmony_ci
22462306a36Sopenharmony_cistatic struct clk_alpha_pll gcc_gpll6 = {
22562306a36Sopenharmony_ci	.offset = 0x6000,
22662306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_EVO],
22762306a36Sopenharmony_ci	.clkr = {
22862306a36Sopenharmony_ci		.enable_reg = 0x62018,
22962306a36Sopenharmony_ci		.enable_mask = BIT(6),
23062306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
23162306a36Sopenharmony_ci			.name = "gcc_gpll6",
23262306a36Sopenharmony_ci			.parent_data = &(const struct clk_parent_data) {
23362306a36Sopenharmony_ci				.index = DT_TCXO_IDX,
23462306a36Sopenharmony_ci			},
23562306a36Sopenharmony_ci			.num_parents = 1,
23662306a36Sopenharmony_ci			.ops = &clk_alpha_pll_fixed_lucid_evo_ops,
23762306a36Sopenharmony_ci		},
23862306a36Sopenharmony_ci	},
23962306a36Sopenharmony_ci};
24062306a36Sopenharmony_ci
24162306a36Sopenharmony_cistatic struct clk_alpha_pll gcc_gpll7 = {
24262306a36Sopenharmony_ci	.offset = 0x7000,
24362306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_EVO],
24462306a36Sopenharmony_ci	.clkr = {
24562306a36Sopenharmony_ci		.enable_reg = 0x62018,
24662306a36Sopenharmony_ci		.enable_mask = BIT(7),
24762306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
24862306a36Sopenharmony_ci			.name = "gcc_gpll7",
24962306a36Sopenharmony_ci			.parent_data = &(const struct clk_parent_data) {
25062306a36Sopenharmony_ci				.index = DT_TCXO_IDX,
25162306a36Sopenharmony_ci			},
25262306a36Sopenharmony_ci			.num_parents = 1,
25362306a36Sopenharmony_ci			.ops = &clk_alpha_pll_fixed_lucid_evo_ops,
25462306a36Sopenharmony_ci		},
25562306a36Sopenharmony_ci	},
25662306a36Sopenharmony_ci};
25762306a36Sopenharmony_ci
25862306a36Sopenharmony_cistatic struct clk_alpha_pll gcc_gpll8 = {
25962306a36Sopenharmony_ci	.offset = 0x8000,
26062306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_EVO],
26162306a36Sopenharmony_ci	.clkr = {
26262306a36Sopenharmony_ci		.enable_reg = 0x62018,
26362306a36Sopenharmony_ci		.enable_mask = BIT(8),
26462306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
26562306a36Sopenharmony_ci			.name = "gcc_gpll8",
26662306a36Sopenharmony_ci			.parent_data = &(const struct clk_parent_data) {
26762306a36Sopenharmony_ci				.index = DT_TCXO_IDX,
26862306a36Sopenharmony_ci			},
26962306a36Sopenharmony_ci			.num_parents = 1,
27062306a36Sopenharmony_ci			.ops = &clk_alpha_pll_fixed_lucid_evo_ops,
27162306a36Sopenharmony_ci		},
27262306a36Sopenharmony_ci	},
27362306a36Sopenharmony_ci};
27462306a36Sopenharmony_ci
27562306a36Sopenharmony_cistatic const struct parent_map gcc_parent_map_0[] = {
27662306a36Sopenharmony_ci	{ P_BI_TCXO, 0 },
27762306a36Sopenharmony_ci	{ P_GCC_GPLL0_OUT_MAIN, 1 },
27862306a36Sopenharmony_ci	{ P_GCC_GPLL0_OUT_EVEN, 6 },
27962306a36Sopenharmony_ci};
28062306a36Sopenharmony_ci
28162306a36Sopenharmony_cistatic const struct clk_parent_data gcc_parent_data_0[] = {
28262306a36Sopenharmony_ci	{ .index = DT_TCXO_IDX },
28362306a36Sopenharmony_ci	{ .hw = &gcc_gpll0.clkr.hw },
28462306a36Sopenharmony_ci	{ .hw = &gcc_gpll0_out_even.clkr.hw },
28562306a36Sopenharmony_ci};
28662306a36Sopenharmony_ci
28762306a36Sopenharmony_cistatic const struct parent_map gcc_parent_map_1[] = {
28862306a36Sopenharmony_ci	{ P_BI_TCXO, 0 },
28962306a36Sopenharmony_ci	{ P_GCC_GPLL0_OUT_MAIN, 1 },
29062306a36Sopenharmony_ci	{ P_SLEEP_CLK, 5 },
29162306a36Sopenharmony_ci	{ P_GCC_GPLL0_OUT_EVEN, 6 },
29262306a36Sopenharmony_ci};
29362306a36Sopenharmony_ci
29462306a36Sopenharmony_cistatic const struct clk_parent_data gcc_parent_data_1[] = {
29562306a36Sopenharmony_ci	{ .index = DT_TCXO_IDX },
29662306a36Sopenharmony_ci	{ .hw = &gcc_gpll0.clkr.hw },
29762306a36Sopenharmony_ci	{ .index = DT_SLEEP_CLK_IDX },
29862306a36Sopenharmony_ci	{ .hw = &gcc_gpll0_out_even.clkr.hw },
29962306a36Sopenharmony_ci};
30062306a36Sopenharmony_ci
30162306a36Sopenharmony_cistatic const struct parent_map gcc_parent_map_2[] = {
30262306a36Sopenharmony_ci	{ P_BI_TCXO, 0 },
30362306a36Sopenharmony_ci	{ P_GCC_GPLL0_OUT_MAIN, 1 },
30462306a36Sopenharmony_ci	{ P_GCC_GPLL5_OUT_MAIN, 3 },
30562306a36Sopenharmony_ci	{ P_GCC_GPLL4_OUT_MAIN, 5 },
30662306a36Sopenharmony_ci};
30762306a36Sopenharmony_ci
30862306a36Sopenharmony_cistatic const struct clk_parent_data gcc_parent_data_2[] = {
30962306a36Sopenharmony_ci	{ .index = DT_TCXO_IDX },
31062306a36Sopenharmony_ci	{ .hw = &gcc_gpll0.clkr.hw },
31162306a36Sopenharmony_ci	{ .hw = &gcc_gpll5.clkr.hw },
31262306a36Sopenharmony_ci	{ .hw = &gcc_gpll4.clkr.hw },
31362306a36Sopenharmony_ci};
31462306a36Sopenharmony_ci
31562306a36Sopenharmony_cistatic const struct parent_map gcc_parent_map_3[] = {
31662306a36Sopenharmony_ci	{ P_BI_TCXO, 0 },
31762306a36Sopenharmony_ci	{ P_SLEEP_CLK, 5 },
31862306a36Sopenharmony_ci};
31962306a36Sopenharmony_ci
32062306a36Sopenharmony_cistatic const struct clk_parent_data gcc_parent_data_3[] = {
32162306a36Sopenharmony_ci	{ .index = DT_TCXO_IDX },
32262306a36Sopenharmony_ci	{ .index = DT_SLEEP_CLK_IDX },
32362306a36Sopenharmony_ci};
32462306a36Sopenharmony_ci
32562306a36Sopenharmony_cistatic const struct parent_map gcc_parent_map_4[] = {
32662306a36Sopenharmony_ci	{ P_BI_TCXO, 0 },
32762306a36Sopenharmony_ci	{ P_GCC_GPLL0_OUT_MAIN, 1 },
32862306a36Sopenharmony_ci	{ P_GCC_GPLL2_OUT_MAIN, 2 },
32962306a36Sopenharmony_ci	{ P_GCC_GPLL5_OUT_MAIN, 3 },
33062306a36Sopenharmony_ci	{ P_GCC_GPLL1_OUT_MAIN, 4 },
33162306a36Sopenharmony_ci	{ P_GCC_GPLL4_OUT_MAIN, 5 },
33262306a36Sopenharmony_ci	{ P_GCC_GPLL3_OUT_MAIN, 6 },
33362306a36Sopenharmony_ci};
33462306a36Sopenharmony_ci
33562306a36Sopenharmony_cistatic const struct clk_parent_data gcc_parent_data_4[] = {
33662306a36Sopenharmony_ci	{ .index = DT_TCXO_IDX },
33762306a36Sopenharmony_ci	{ .hw = &gcc_gpll0.clkr.hw },
33862306a36Sopenharmony_ci	{ .hw = &gcc_gpll2.clkr.hw },
33962306a36Sopenharmony_ci	{ .hw = &gcc_gpll5.clkr.hw },
34062306a36Sopenharmony_ci	{ .hw = &gcc_gpll1.clkr.hw },
34162306a36Sopenharmony_ci	{ .hw = &gcc_gpll4.clkr.hw },
34262306a36Sopenharmony_ci	{ .hw = &gcc_gpll3.clkr.hw },
34362306a36Sopenharmony_ci};
34462306a36Sopenharmony_ci
34562306a36Sopenharmony_cistatic const struct parent_map gcc_parent_map_5[] = {
34662306a36Sopenharmony_ci	{ P_BI_TCXO, 0 },
34762306a36Sopenharmony_ci	{ P_GCC_GPLL0_OUT_MAIN, 1 },
34862306a36Sopenharmony_ci	{ P_GCC_GPLL2_OUT_MAIN, 2 },
34962306a36Sopenharmony_ci	{ P_GCC_GPLL6_OUT_MAIN, 3 },
35062306a36Sopenharmony_ci	{ P_GCC_GPLL1_OUT_MAIN, 4 },
35162306a36Sopenharmony_ci	{ P_GCC_GPLL4_OUT_MAIN, 5 },
35262306a36Sopenharmony_ci	{ P_GCC_GPLL3_OUT_MAIN, 6 },
35362306a36Sopenharmony_ci};
35462306a36Sopenharmony_ci
35562306a36Sopenharmony_cistatic const struct clk_parent_data gcc_parent_data_5[] = {
35662306a36Sopenharmony_ci	{ .index = DT_TCXO_IDX },
35762306a36Sopenharmony_ci	{ .hw = &gcc_gpll0.clkr.hw },
35862306a36Sopenharmony_ci	{ .hw = &gcc_gpll2.clkr.hw },
35962306a36Sopenharmony_ci	{ .hw = &gcc_gpll6.clkr.hw },
36062306a36Sopenharmony_ci	{ .hw = &gcc_gpll1.clkr.hw },
36162306a36Sopenharmony_ci	{ .hw = &gcc_gpll4.clkr.hw },
36262306a36Sopenharmony_ci	{ .hw = &gcc_gpll3.clkr.hw },
36362306a36Sopenharmony_ci};
36462306a36Sopenharmony_ci
36562306a36Sopenharmony_cistatic const struct parent_map gcc_parent_map_6[] = {
36662306a36Sopenharmony_ci	{ P_PCIE_0_PHY_AUX_CLK, 0 },
36762306a36Sopenharmony_ci	{ P_BI_TCXO, 2 },
36862306a36Sopenharmony_ci};
36962306a36Sopenharmony_ci
37062306a36Sopenharmony_cistatic const struct clk_parent_data gcc_parent_data_6[] = {
37162306a36Sopenharmony_ci	{ .index = DT_PCIE_0_PHY_AUX_CLK_IDX },
37262306a36Sopenharmony_ci	{ .index = DT_TCXO_IDX },
37362306a36Sopenharmony_ci};
37462306a36Sopenharmony_ci
37562306a36Sopenharmony_cistatic const struct parent_map gcc_parent_map_8[] = {
37662306a36Sopenharmony_ci	{ P_BI_TCXO, 0 },
37762306a36Sopenharmony_ci	{ P_GCC_GPLL0_OUT_MAIN, 1 },
37862306a36Sopenharmony_ci	{ P_GCC_GPLL8_OUT_MAIN, 2 },
37962306a36Sopenharmony_ci	{ P_GCC_GPLL5_OUT_MAIN, 3 },
38062306a36Sopenharmony_ci	{ P_GCC_GPLL4_OUT_MAIN, 5 },
38162306a36Sopenharmony_ci};
38262306a36Sopenharmony_ci
38362306a36Sopenharmony_cistatic const struct clk_parent_data gcc_parent_data_8[] = {
38462306a36Sopenharmony_ci	{ .index = DT_TCXO_IDX },
38562306a36Sopenharmony_ci	{ .hw = &gcc_gpll0.clkr.hw },
38662306a36Sopenharmony_ci	{ .hw = &gcc_gpll8.clkr.hw },
38762306a36Sopenharmony_ci	{ .hw = &gcc_gpll5.clkr.hw },
38862306a36Sopenharmony_ci	{ .hw = &gcc_gpll4.clkr.hw },
38962306a36Sopenharmony_ci};
39062306a36Sopenharmony_ci
39162306a36Sopenharmony_cistatic const struct parent_map gcc_parent_map_9[] = {
39262306a36Sopenharmony_ci	{ P_BI_TCXO, 0 },
39362306a36Sopenharmony_ci	{ P_GCC_GPLL0_OUT_MAIN, 1 },
39462306a36Sopenharmony_ci	{ P_GCC_GPLL2_OUT_MAIN, 2 },
39562306a36Sopenharmony_ci	{ P_GCC_GPLL5_OUT_MAIN, 3 },
39662306a36Sopenharmony_ci	{ P_GCC_GPLL7_OUT_MAIN, 4 },
39762306a36Sopenharmony_ci	{ P_GCC_GPLL4_OUT_MAIN, 5 },
39862306a36Sopenharmony_ci};
39962306a36Sopenharmony_ci
40062306a36Sopenharmony_cistatic const struct clk_parent_data gcc_parent_data_9[] = {
40162306a36Sopenharmony_ci	{ .index = DT_TCXO_IDX },
40262306a36Sopenharmony_ci	{ .hw = &gcc_gpll0.clkr.hw },
40362306a36Sopenharmony_ci	{ .hw = &gcc_gpll2.clkr.hw },
40462306a36Sopenharmony_ci	{ .hw = &gcc_gpll5.clkr.hw },
40562306a36Sopenharmony_ci	{ .hw = &gcc_gpll7.clkr.hw },
40662306a36Sopenharmony_ci	{ .hw = &gcc_gpll4.clkr.hw },
40762306a36Sopenharmony_ci};
40862306a36Sopenharmony_ci
40962306a36Sopenharmony_cistatic const struct parent_map gcc_parent_map_10[] = {
41062306a36Sopenharmony_ci	{ P_USB3_PHY_WRAPPER_GCC_USB30_PIPE_CLK, 0 },
41162306a36Sopenharmony_ci	{ P_BI_TCXO, 2 },
41262306a36Sopenharmony_ci};
41362306a36Sopenharmony_ci
41462306a36Sopenharmony_cistatic const struct clk_parent_data gcc_parent_data_10[] = {
41562306a36Sopenharmony_ci	{ .index = DT_USB3_PHY_WRAPPER_PIPE_CLK_IDX },
41662306a36Sopenharmony_ci	{ .index = DT_TCXO_IDX },
41762306a36Sopenharmony_ci};
41862306a36Sopenharmony_ci
41962306a36Sopenharmony_cistatic struct clk_regmap_mux gcc_pcie_0_phy_aux_clk_src = {
42062306a36Sopenharmony_ci	.reg = 0x9d080,
42162306a36Sopenharmony_ci	.shift = 0,
42262306a36Sopenharmony_ci	.width = 2,
42362306a36Sopenharmony_ci	.parent_map = gcc_parent_map_6,
42462306a36Sopenharmony_ci	.clkr = {
42562306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
42662306a36Sopenharmony_ci			.name = "gcc_pcie_0_phy_aux_clk_src",
42762306a36Sopenharmony_ci			.parent_data = gcc_parent_data_6,
42862306a36Sopenharmony_ci			.num_parents = ARRAY_SIZE(gcc_parent_data_6),
42962306a36Sopenharmony_ci			.ops = &clk_regmap_mux_closest_ops,
43062306a36Sopenharmony_ci		},
43162306a36Sopenharmony_ci	},
43262306a36Sopenharmony_ci};
43362306a36Sopenharmony_ci
43462306a36Sopenharmony_cistatic struct clk_regmap_phy_mux gcc_pcie_0_pipe_clk_src = {
43562306a36Sopenharmony_ci	.reg = 0x9d064,
43662306a36Sopenharmony_ci	.clkr = {
43762306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
43862306a36Sopenharmony_ci			.name = "gcc_pcie_0_pipe_clk_src",
43962306a36Sopenharmony_ci			.parent_data = &(const struct clk_parent_data){
44062306a36Sopenharmony_ci				.index = DT_PCIE_0_PIPE_CLK_IDX,
44162306a36Sopenharmony_ci			},
44262306a36Sopenharmony_ci			.num_parents = 1,
44362306a36Sopenharmony_ci			.ops = &clk_regmap_phy_mux_ops,
44462306a36Sopenharmony_ci		},
44562306a36Sopenharmony_ci	},
44662306a36Sopenharmony_ci};
44762306a36Sopenharmony_ci
44862306a36Sopenharmony_cistatic struct clk_regmap_mux gcc_usb3_prim_phy_pipe_clk_src = {
44962306a36Sopenharmony_ci	.reg = 0x4906c,
45062306a36Sopenharmony_ci	.shift = 0,
45162306a36Sopenharmony_ci	.width = 2,
45262306a36Sopenharmony_ci	.parent_map = gcc_parent_map_10,
45362306a36Sopenharmony_ci	.clkr = {
45462306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
45562306a36Sopenharmony_ci			.name = "gcc_usb3_prim_phy_pipe_clk_src",
45662306a36Sopenharmony_ci			.parent_data = gcc_parent_data_10,
45762306a36Sopenharmony_ci			.num_parents = ARRAY_SIZE(gcc_parent_data_10),
45862306a36Sopenharmony_ci			.ops = &clk_regmap_mux_closest_ops,
45962306a36Sopenharmony_ci		},
46062306a36Sopenharmony_ci	},
46162306a36Sopenharmony_ci};
46262306a36Sopenharmony_ci
46362306a36Sopenharmony_cistatic const struct freq_tbl ftbl_gcc_aggre_noc_ecpri_dma_clk_src[] = {
46462306a36Sopenharmony_ci	F(466500000, P_GCC_GPLL5_OUT_MAIN, 2, 0, 0),
46562306a36Sopenharmony_ci	F(500000000, P_GCC_GPLL2_OUT_MAIN, 2, 0, 0),
46662306a36Sopenharmony_ci	{ }
46762306a36Sopenharmony_ci};
46862306a36Sopenharmony_ci
46962306a36Sopenharmony_cistatic struct clk_rcg2 gcc_aggre_noc_ecpri_dma_clk_src = {
47062306a36Sopenharmony_ci	.cmd_rcgr = 0x92020,
47162306a36Sopenharmony_ci	.mnd_width = 0,
47262306a36Sopenharmony_ci	.hid_width = 5,
47362306a36Sopenharmony_ci	.parent_map = gcc_parent_map_4,
47462306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_aggre_noc_ecpri_dma_clk_src,
47562306a36Sopenharmony_ci	.clkr.hw.init = &(const struct clk_init_data) {
47662306a36Sopenharmony_ci		.name = "gcc_aggre_noc_ecpri_dma_clk_src",
47762306a36Sopenharmony_ci		.parent_data = gcc_parent_data_4,
47862306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_4),
47962306a36Sopenharmony_ci		.ops = &clk_rcg2_shared_ops,
48062306a36Sopenharmony_ci	},
48162306a36Sopenharmony_ci};
48262306a36Sopenharmony_ci
48362306a36Sopenharmony_cistatic const struct freq_tbl ftbl_gcc_aggre_noc_ecpri_gsi_clk_src[] = {
48462306a36Sopenharmony_ci	F(250000000, P_GCC_GPLL2_OUT_MAIN, 4, 0, 0),
48562306a36Sopenharmony_ci	F(300000000, P_GCC_GPLL0_OUT_MAIN, 2, 0, 0),
48662306a36Sopenharmony_ci	{ }
48762306a36Sopenharmony_ci};
48862306a36Sopenharmony_ci
48962306a36Sopenharmony_cistatic struct clk_rcg2 gcc_aggre_noc_ecpri_gsi_clk_src = {
49062306a36Sopenharmony_ci	.cmd_rcgr = 0x92038,
49162306a36Sopenharmony_ci	.mnd_width = 0,
49262306a36Sopenharmony_ci	.hid_width = 5,
49362306a36Sopenharmony_ci	.parent_map = gcc_parent_map_5,
49462306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_aggre_noc_ecpri_gsi_clk_src,
49562306a36Sopenharmony_ci	.clkr.hw.init = &(const struct clk_init_data) {
49662306a36Sopenharmony_ci		.name = "gcc_aggre_noc_ecpri_gsi_clk_src",
49762306a36Sopenharmony_ci		.parent_data = gcc_parent_data_5,
49862306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_5),
49962306a36Sopenharmony_ci		.ops = &clk_rcg2_shared_ops,
50062306a36Sopenharmony_ci	},
50162306a36Sopenharmony_ci};
50262306a36Sopenharmony_ci
50362306a36Sopenharmony_cistatic const struct freq_tbl ftbl_gcc_gp1_clk_src[] = {
50462306a36Sopenharmony_ci	F(200000000, P_GCC_GPLL0_OUT_MAIN, 3, 0, 0),
50562306a36Sopenharmony_ci	{ }
50662306a36Sopenharmony_ci};
50762306a36Sopenharmony_ci
50862306a36Sopenharmony_cistatic struct clk_rcg2 gcc_gp1_clk_src = {
50962306a36Sopenharmony_ci	.cmd_rcgr = 0x74004,
51062306a36Sopenharmony_ci	.mnd_width = 16,
51162306a36Sopenharmony_ci	.hid_width = 5,
51262306a36Sopenharmony_ci	.parent_map = gcc_parent_map_1,
51362306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_gp1_clk_src,
51462306a36Sopenharmony_ci	.clkr.hw.init = &(const struct clk_init_data) {
51562306a36Sopenharmony_ci		.name = "gcc_gp1_clk_src",
51662306a36Sopenharmony_ci		.parent_data = gcc_parent_data_1,
51762306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_1),
51862306a36Sopenharmony_ci		.ops = &clk_rcg2_shared_ops,
51962306a36Sopenharmony_ci	},
52062306a36Sopenharmony_ci};
52162306a36Sopenharmony_ci
52262306a36Sopenharmony_cistatic struct clk_rcg2 gcc_gp2_clk_src = {
52362306a36Sopenharmony_ci	.cmd_rcgr = 0x75004,
52462306a36Sopenharmony_ci	.mnd_width = 16,
52562306a36Sopenharmony_ci	.hid_width = 5,
52662306a36Sopenharmony_ci	.parent_map = gcc_parent_map_1,
52762306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_gp1_clk_src,
52862306a36Sopenharmony_ci	.clkr.hw.init = &(const struct clk_init_data) {
52962306a36Sopenharmony_ci		.name = "gcc_gp2_clk_src",
53062306a36Sopenharmony_ci		.parent_data = gcc_parent_data_1,
53162306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_1),
53262306a36Sopenharmony_ci		.ops = &clk_rcg2_shared_ops,
53362306a36Sopenharmony_ci	},
53462306a36Sopenharmony_ci};
53562306a36Sopenharmony_ci
53662306a36Sopenharmony_cistatic struct clk_rcg2 gcc_gp3_clk_src = {
53762306a36Sopenharmony_ci	.cmd_rcgr = 0x76004,
53862306a36Sopenharmony_ci	.mnd_width = 16,
53962306a36Sopenharmony_ci	.hid_width = 5,
54062306a36Sopenharmony_ci	.parent_map = gcc_parent_map_1,
54162306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_gp1_clk_src,
54262306a36Sopenharmony_ci	.clkr.hw.init = &(const struct clk_init_data) {
54362306a36Sopenharmony_ci		.name = "gcc_gp3_clk_src",
54462306a36Sopenharmony_ci		.parent_data = gcc_parent_data_1,
54562306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_1),
54662306a36Sopenharmony_ci		.ops = &clk_rcg2_shared_ops,
54762306a36Sopenharmony_ci	},
54862306a36Sopenharmony_ci};
54962306a36Sopenharmony_ci
55062306a36Sopenharmony_cistatic const struct freq_tbl ftbl_gcc_pcie_0_aux_clk_src[] = {
55162306a36Sopenharmony_ci	F(19200000, P_BI_TCXO, 1, 0, 0),
55262306a36Sopenharmony_ci	{ }
55362306a36Sopenharmony_ci};
55462306a36Sopenharmony_ci
55562306a36Sopenharmony_cistatic struct clk_rcg2 gcc_pcie_0_aux_clk_src = {
55662306a36Sopenharmony_ci	.cmd_rcgr = 0x9d068,
55762306a36Sopenharmony_ci	.mnd_width = 16,
55862306a36Sopenharmony_ci	.hid_width = 5,
55962306a36Sopenharmony_ci	.parent_map = gcc_parent_map_3,
56062306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
56162306a36Sopenharmony_ci	.clkr.hw.init = &(const struct clk_init_data) {
56262306a36Sopenharmony_ci		.name = "gcc_pcie_0_aux_clk_src",
56362306a36Sopenharmony_ci		.parent_data = gcc_parent_data_3,
56462306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_3),
56562306a36Sopenharmony_ci		.ops = &clk_rcg2_shared_ops,
56662306a36Sopenharmony_ci	},
56762306a36Sopenharmony_ci};
56862306a36Sopenharmony_ci
56962306a36Sopenharmony_cistatic const struct freq_tbl ftbl_gcc_pcie_0_phy_rchng_clk_src[] = {
57062306a36Sopenharmony_ci	F(19200000, P_BI_TCXO, 1, 0, 0),
57162306a36Sopenharmony_ci	F(100000000, P_GCC_GPLL0_OUT_EVEN, 3, 0, 0),
57262306a36Sopenharmony_ci	{ }
57362306a36Sopenharmony_ci};
57462306a36Sopenharmony_ci
57562306a36Sopenharmony_cistatic struct clk_rcg2 gcc_pcie_0_phy_rchng_clk_src = {
57662306a36Sopenharmony_ci	.cmd_rcgr = 0x9d04c,
57762306a36Sopenharmony_ci	.mnd_width = 0,
57862306a36Sopenharmony_ci	.hid_width = 5,
57962306a36Sopenharmony_ci	.parent_map = gcc_parent_map_0,
58062306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src,
58162306a36Sopenharmony_ci	.clkr.hw.init = &(const struct clk_init_data) {
58262306a36Sopenharmony_ci		.name = "gcc_pcie_0_phy_rchng_clk_src",
58362306a36Sopenharmony_ci		.parent_data = gcc_parent_data_0,
58462306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
58562306a36Sopenharmony_ci		.ops = &clk_rcg2_shared_ops,
58662306a36Sopenharmony_ci	},
58762306a36Sopenharmony_ci};
58862306a36Sopenharmony_ci
58962306a36Sopenharmony_cistatic const struct freq_tbl ftbl_gcc_pdm2_clk_src[] = {
59062306a36Sopenharmony_ci	F(60000000, P_GCC_GPLL0_OUT_MAIN, 10, 0, 0),
59162306a36Sopenharmony_ci	{ }
59262306a36Sopenharmony_ci};
59362306a36Sopenharmony_ci
59462306a36Sopenharmony_cistatic struct clk_rcg2 gcc_pdm2_clk_src = {
59562306a36Sopenharmony_ci	.cmd_rcgr = 0x43010,
59662306a36Sopenharmony_ci	.mnd_width = 0,
59762306a36Sopenharmony_ci	.hid_width = 5,
59862306a36Sopenharmony_ci	.parent_map = gcc_parent_map_0,
59962306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_pdm2_clk_src,
60062306a36Sopenharmony_ci	.clkr.hw.init = &(const struct clk_init_data) {
60162306a36Sopenharmony_ci		.name = "gcc_pdm2_clk_src",
60262306a36Sopenharmony_ci		.parent_data = gcc_parent_data_0,
60362306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
60462306a36Sopenharmony_ci		.ops = &clk_rcg2_shared_ops,
60562306a36Sopenharmony_ci	},
60662306a36Sopenharmony_ci};
60762306a36Sopenharmony_ci
60862306a36Sopenharmony_cistatic const struct freq_tbl ftbl_gcc_qupv3_wrap0_s0_clk_src[] = {
60962306a36Sopenharmony_ci	F(7372800, P_GCC_GPLL0_OUT_EVEN, 1, 384, 15625),
61062306a36Sopenharmony_ci	F(14745600, P_GCC_GPLL0_OUT_EVEN, 1, 768, 15625),
61162306a36Sopenharmony_ci	F(19200000, P_BI_TCXO, 1, 0, 0),
61262306a36Sopenharmony_ci	F(29491200, P_GCC_GPLL0_OUT_EVEN, 1, 1536, 15625),
61362306a36Sopenharmony_ci	F(32000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 75),
61462306a36Sopenharmony_ci	F(48000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 25),
61562306a36Sopenharmony_ci	F(64000000, P_GCC_GPLL0_OUT_EVEN, 1, 16, 75),
61662306a36Sopenharmony_ci	F(80000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 15),
61762306a36Sopenharmony_ci	F(96000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 25),
61862306a36Sopenharmony_ci	F(100000000, P_GCC_GPLL0_OUT_MAIN, 6, 0, 0),
61962306a36Sopenharmony_ci	{ }
62062306a36Sopenharmony_ci};
62162306a36Sopenharmony_ci
62262306a36Sopenharmony_cistatic struct clk_init_data gcc_qupv3_wrap0_s0_clk_src_init = {
62362306a36Sopenharmony_ci	.name = "gcc_qupv3_wrap0_s0_clk_src",
62462306a36Sopenharmony_ci	.parent_data = gcc_parent_data_0,
62562306a36Sopenharmony_ci	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
62662306a36Sopenharmony_ci	.ops = &clk_rcg2_shared_ops,
62762306a36Sopenharmony_ci};
62862306a36Sopenharmony_ci
62962306a36Sopenharmony_cistatic struct clk_rcg2 gcc_qupv3_wrap0_s0_clk_src = {
63062306a36Sopenharmony_ci	.cmd_rcgr = 0x27154,
63162306a36Sopenharmony_ci	.mnd_width = 16,
63262306a36Sopenharmony_ci	.hid_width = 5,
63362306a36Sopenharmony_ci	.parent_map = gcc_parent_map_0,
63462306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
63562306a36Sopenharmony_ci	.clkr.hw.init = &gcc_qupv3_wrap0_s0_clk_src_init,
63662306a36Sopenharmony_ci};
63762306a36Sopenharmony_ci
63862306a36Sopenharmony_cistatic struct clk_init_data gcc_qupv3_wrap0_s1_clk_src_init = {
63962306a36Sopenharmony_ci	.name = "gcc_qupv3_wrap0_s1_clk_src",
64062306a36Sopenharmony_ci	.parent_data = gcc_parent_data_0,
64162306a36Sopenharmony_ci	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
64262306a36Sopenharmony_ci	.ops = &clk_rcg2_shared_ops,
64362306a36Sopenharmony_ci};
64462306a36Sopenharmony_ci
64562306a36Sopenharmony_cistatic struct clk_rcg2 gcc_qupv3_wrap0_s1_clk_src = {
64662306a36Sopenharmony_ci	.cmd_rcgr = 0x27288,
64762306a36Sopenharmony_ci	.mnd_width = 16,
64862306a36Sopenharmony_ci	.hid_width = 5,
64962306a36Sopenharmony_ci	.parent_map = gcc_parent_map_0,
65062306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
65162306a36Sopenharmony_ci	.clkr.hw.init = &gcc_qupv3_wrap0_s1_clk_src_init,
65262306a36Sopenharmony_ci};
65362306a36Sopenharmony_ci
65462306a36Sopenharmony_cistatic struct clk_init_data gcc_qupv3_wrap0_s2_clk_src_init = {
65562306a36Sopenharmony_ci	.name = "gcc_qupv3_wrap0_s2_clk_src",
65662306a36Sopenharmony_ci	.parent_data = gcc_parent_data_0,
65762306a36Sopenharmony_ci	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
65862306a36Sopenharmony_ci	.ops = &clk_rcg2_shared_ops,
65962306a36Sopenharmony_ci};
66062306a36Sopenharmony_ci
66162306a36Sopenharmony_cistatic struct clk_rcg2 gcc_qupv3_wrap0_s2_clk_src = {
66262306a36Sopenharmony_ci	.cmd_rcgr = 0x273bc,
66362306a36Sopenharmony_ci	.mnd_width = 16,
66462306a36Sopenharmony_ci	.hid_width = 5,
66562306a36Sopenharmony_ci	.parent_map = gcc_parent_map_0,
66662306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
66762306a36Sopenharmony_ci	.clkr.hw.init = &gcc_qupv3_wrap0_s2_clk_src_init,
66862306a36Sopenharmony_ci};
66962306a36Sopenharmony_ci
67062306a36Sopenharmony_cistatic struct clk_init_data gcc_qupv3_wrap0_s3_clk_src_init = {
67162306a36Sopenharmony_ci	.name = "gcc_qupv3_wrap0_s3_clk_src",
67262306a36Sopenharmony_ci	.parent_data = gcc_parent_data_0,
67362306a36Sopenharmony_ci	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
67462306a36Sopenharmony_ci	.ops = &clk_rcg2_shared_ops,
67562306a36Sopenharmony_ci};
67662306a36Sopenharmony_ci
67762306a36Sopenharmony_cistatic struct clk_rcg2 gcc_qupv3_wrap0_s3_clk_src = {
67862306a36Sopenharmony_ci	.cmd_rcgr = 0x274f0,
67962306a36Sopenharmony_ci	.mnd_width = 16,
68062306a36Sopenharmony_ci	.hid_width = 5,
68162306a36Sopenharmony_ci	.parent_map = gcc_parent_map_0,
68262306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
68362306a36Sopenharmony_ci	.clkr.hw.init = &gcc_qupv3_wrap0_s3_clk_src_init,
68462306a36Sopenharmony_ci};
68562306a36Sopenharmony_ci
68662306a36Sopenharmony_cistatic struct clk_init_data gcc_qupv3_wrap0_s4_clk_src_init = {
68762306a36Sopenharmony_ci	.name = "gcc_qupv3_wrap0_s4_clk_src",
68862306a36Sopenharmony_ci	.parent_data = gcc_parent_data_0,
68962306a36Sopenharmony_ci	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
69062306a36Sopenharmony_ci	.ops = &clk_rcg2_shared_ops,
69162306a36Sopenharmony_ci};
69262306a36Sopenharmony_ci
69362306a36Sopenharmony_cistatic struct clk_rcg2 gcc_qupv3_wrap0_s4_clk_src = {
69462306a36Sopenharmony_ci	.cmd_rcgr = 0x27624,
69562306a36Sopenharmony_ci	.mnd_width = 16,
69662306a36Sopenharmony_ci	.hid_width = 5,
69762306a36Sopenharmony_ci	.parent_map = gcc_parent_map_0,
69862306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
69962306a36Sopenharmony_ci	.clkr.hw.init = &gcc_qupv3_wrap0_s4_clk_src_init,
70062306a36Sopenharmony_ci};
70162306a36Sopenharmony_ci
70262306a36Sopenharmony_cistatic const struct freq_tbl ftbl_gcc_qupv3_wrap0_s5_clk_src[] = {
70362306a36Sopenharmony_ci	F(100000000, P_GCC_GPLL0_OUT_MAIN, 6, 0, 0),
70462306a36Sopenharmony_ci	{ }
70562306a36Sopenharmony_ci};
70662306a36Sopenharmony_ci
70762306a36Sopenharmony_cistatic struct clk_init_data gcc_qupv3_wrap0_s5_clk_src_init = {
70862306a36Sopenharmony_ci	.name = "gcc_qupv3_wrap0_s5_clk_src",
70962306a36Sopenharmony_ci	.parent_data = gcc_parent_data_0,
71062306a36Sopenharmony_ci	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
71162306a36Sopenharmony_ci	.ops = &clk_rcg2_shared_ops,
71262306a36Sopenharmony_ci};
71362306a36Sopenharmony_ci
71462306a36Sopenharmony_cistatic struct clk_rcg2 gcc_qupv3_wrap0_s5_clk_src = {
71562306a36Sopenharmony_ci	.cmd_rcgr = 0x27758,
71662306a36Sopenharmony_ci	.mnd_width = 16,
71762306a36Sopenharmony_ci	.hid_width = 5,
71862306a36Sopenharmony_ci	.parent_map = gcc_parent_map_0,
71962306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_qupv3_wrap0_s5_clk_src,
72062306a36Sopenharmony_ci	.clkr.hw.init = &gcc_qupv3_wrap0_s5_clk_src_init,
72162306a36Sopenharmony_ci};
72262306a36Sopenharmony_ci
72362306a36Sopenharmony_cistatic struct clk_init_data gcc_qupv3_wrap0_s6_clk_src_init = {
72462306a36Sopenharmony_ci	.name = "gcc_qupv3_wrap0_s6_clk_src",
72562306a36Sopenharmony_ci	.parent_data = gcc_parent_data_0,
72662306a36Sopenharmony_ci	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
72762306a36Sopenharmony_ci	.ops = &clk_rcg2_shared_ops,
72862306a36Sopenharmony_ci};
72962306a36Sopenharmony_ci
73062306a36Sopenharmony_cistatic struct clk_rcg2 gcc_qupv3_wrap0_s6_clk_src = {
73162306a36Sopenharmony_ci	.cmd_rcgr = 0x2788c,
73262306a36Sopenharmony_ci	.mnd_width = 16,
73362306a36Sopenharmony_ci	.hid_width = 5,
73462306a36Sopenharmony_ci	.parent_map = gcc_parent_map_0,
73562306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
73662306a36Sopenharmony_ci	.clkr.hw.init = &gcc_qupv3_wrap0_s6_clk_src_init,
73762306a36Sopenharmony_ci};
73862306a36Sopenharmony_ci
73962306a36Sopenharmony_cistatic struct clk_init_data gcc_qupv3_wrap0_s7_clk_src_init = {
74062306a36Sopenharmony_ci	.name = "gcc_qupv3_wrap0_s7_clk_src",
74162306a36Sopenharmony_ci	.parent_data = gcc_parent_data_0,
74262306a36Sopenharmony_ci	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
74362306a36Sopenharmony_ci	.ops = &clk_rcg2_shared_ops,
74462306a36Sopenharmony_ci};
74562306a36Sopenharmony_ci
74662306a36Sopenharmony_cistatic struct clk_rcg2 gcc_qupv3_wrap0_s7_clk_src = {
74762306a36Sopenharmony_ci	.cmd_rcgr = 0x279c0,
74862306a36Sopenharmony_ci	.mnd_width = 16,
74962306a36Sopenharmony_ci	.hid_width = 5,
75062306a36Sopenharmony_ci	.parent_map = gcc_parent_map_0,
75162306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
75262306a36Sopenharmony_ci	.clkr.hw.init = &gcc_qupv3_wrap0_s7_clk_src_init,
75362306a36Sopenharmony_ci};
75462306a36Sopenharmony_ci
75562306a36Sopenharmony_cistatic struct clk_init_data gcc_qupv3_wrap1_s0_clk_src_init = {
75662306a36Sopenharmony_ci	.name = "gcc_qupv3_wrap1_s0_clk_src",
75762306a36Sopenharmony_ci	.parent_data = gcc_parent_data_0,
75862306a36Sopenharmony_ci	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
75962306a36Sopenharmony_ci	.ops = &clk_rcg2_shared_ops,
76062306a36Sopenharmony_ci};
76162306a36Sopenharmony_ci
76262306a36Sopenharmony_cistatic struct clk_rcg2 gcc_qupv3_wrap1_s0_clk_src = {
76362306a36Sopenharmony_ci	.cmd_rcgr = 0x28154,
76462306a36Sopenharmony_ci	.mnd_width = 16,
76562306a36Sopenharmony_ci	.hid_width = 5,
76662306a36Sopenharmony_ci	.parent_map = gcc_parent_map_0,
76762306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
76862306a36Sopenharmony_ci	.clkr.hw.init = &gcc_qupv3_wrap1_s0_clk_src_init,
76962306a36Sopenharmony_ci};
77062306a36Sopenharmony_ci
77162306a36Sopenharmony_cistatic struct clk_init_data gcc_qupv3_wrap1_s1_clk_src_init = {
77262306a36Sopenharmony_ci	.name = "gcc_qupv3_wrap1_s1_clk_src",
77362306a36Sopenharmony_ci	.parent_data = gcc_parent_data_0,
77462306a36Sopenharmony_ci	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
77562306a36Sopenharmony_ci	.ops = &clk_rcg2_shared_ops,
77662306a36Sopenharmony_ci};
77762306a36Sopenharmony_ci
77862306a36Sopenharmony_cistatic struct clk_rcg2 gcc_qupv3_wrap1_s1_clk_src = {
77962306a36Sopenharmony_ci	.cmd_rcgr = 0x28288,
78062306a36Sopenharmony_ci	.mnd_width = 16,
78162306a36Sopenharmony_ci	.hid_width = 5,
78262306a36Sopenharmony_ci	.parent_map = gcc_parent_map_0,
78362306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
78462306a36Sopenharmony_ci	.clkr.hw.init = &gcc_qupv3_wrap1_s1_clk_src_init,
78562306a36Sopenharmony_ci};
78662306a36Sopenharmony_ci
78762306a36Sopenharmony_cistatic struct clk_init_data gcc_qupv3_wrap1_s2_clk_src_init = {
78862306a36Sopenharmony_ci	.name = "gcc_qupv3_wrap1_s2_clk_src",
78962306a36Sopenharmony_ci	.parent_data = gcc_parent_data_0,
79062306a36Sopenharmony_ci	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
79162306a36Sopenharmony_ci	.ops = &clk_rcg2_shared_ops,
79262306a36Sopenharmony_ci};
79362306a36Sopenharmony_ci
79462306a36Sopenharmony_cistatic struct clk_rcg2 gcc_qupv3_wrap1_s2_clk_src = {
79562306a36Sopenharmony_ci	.cmd_rcgr = 0x283bc,
79662306a36Sopenharmony_ci	.mnd_width = 16,
79762306a36Sopenharmony_ci	.hid_width = 5,
79862306a36Sopenharmony_ci	.parent_map = gcc_parent_map_0,
79962306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
80062306a36Sopenharmony_ci	.clkr.hw.init = &gcc_qupv3_wrap1_s2_clk_src_init,
80162306a36Sopenharmony_ci};
80262306a36Sopenharmony_ci
80362306a36Sopenharmony_cistatic struct clk_init_data gcc_qupv3_wrap1_s3_clk_src_init = {
80462306a36Sopenharmony_ci	.name = "gcc_qupv3_wrap1_s3_clk_src",
80562306a36Sopenharmony_ci	.parent_data = gcc_parent_data_0,
80662306a36Sopenharmony_ci	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
80762306a36Sopenharmony_ci	.ops = &clk_rcg2_shared_ops,
80862306a36Sopenharmony_ci};
80962306a36Sopenharmony_ci
81062306a36Sopenharmony_cistatic struct clk_rcg2 gcc_qupv3_wrap1_s3_clk_src = {
81162306a36Sopenharmony_ci	.cmd_rcgr = 0x284f0,
81262306a36Sopenharmony_ci	.mnd_width = 16,
81362306a36Sopenharmony_ci	.hid_width = 5,
81462306a36Sopenharmony_ci	.parent_map = gcc_parent_map_0,
81562306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
81662306a36Sopenharmony_ci	.clkr.hw.init = &gcc_qupv3_wrap1_s3_clk_src_init,
81762306a36Sopenharmony_ci};
81862306a36Sopenharmony_ci
81962306a36Sopenharmony_cistatic struct clk_init_data gcc_qupv3_wrap1_s4_clk_src_init = {
82062306a36Sopenharmony_ci	.name = "gcc_qupv3_wrap1_s4_clk_src",
82162306a36Sopenharmony_ci	.parent_data = gcc_parent_data_0,
82262306a36Sopenharmony_ci	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
82362306a36Sopenharmony_ci	.ops = &clk_rcg2_shared_ops,
82462306a36Sopenharmony_ci};
82562306a36Sopenharmony_ci
82662306a36Sopenharmony_cistatic struct clk_rcg2 gcc_qupv3_wrap1_s4_clk_src = {
82762306a36Sopenharmony_ci	.cmd_rcgr = 0x28624,
82862306a36Sopenharmony_ci	.mnd_width = 16,
82962306a36Sopenharmony_ci	.hid_width = 5,
83062306a36Sopenharmony_ci	.parent_map = gcc_parent_map_0,
83162306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
83262306a36Sopenharmony_ci	.clkr.hw.init = &gcc_qupv3_wrap1_s4_clk_src_init,
83362306a36Sopenharmony_ci};
83462306a36Sopenharmony_ci
83562306a36Sopenharmony_cistatic struct clk_init_data gcc_qupv3_wrap1_s5_clk_src_init = {
83662306a36Sopenharmony_ci	.name = "gcc_qupv3_wrap1_s5_clk_src",
83762306a36Sopenharmony_ci	.parent_data = gcc_parent_data_0,
83862306a36Sopenharmony_ci	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
83962306a36Sopenharmony_ci	.ops = &clk_rcg2_shared_ops,
84062306a36Sopenharmony_ci};
84162306a36Sopenharmony_ci
84262306a36Sopenharmony_cistatic struct clk_rcg2 gcc_qupv3_wrap1_s5_clk_src = {
84362306a36Sopenharmony_ci	.cmd_rcgr = 0x28758,
84462306a36Sopenharmony_ci	.mnd_width = 16,
84562306a36Sopenharmony_ci	.hid_width = 5,
84662306a36Sopenharmony_ci	.parent_map = gcc_parent_map_0,
84762306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
84862306a36Sopenharmony_ci	.clkr.hw.init = &gcc_qupv3_wrap1_s5_clk_src_init,
84962306a36Sopenharmony_ci};
85062306a36Sopenharmony_ci
85162306a36Sopenharmony_cistatic struct clk_init_data gcc_qupv3_wrap1_s6_clk_src_init = {
85262306a36Sopenharmony_ci	.name = "gcc_qupv3_wrap1_s6_clk_src",
85362306a36Sopenharmony_ci	.parent_data = gcc_parent_data_0,
85462306a36Sopenharmony_ci	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
85562306a36Sopenharmony_ci	.ops = &clk_rcg2_shared_ops,
85662306a36Sopenharmony_ci};
85762306a36Sopenharmony_ci
85862306a36Sopenharmony_cistatic struct clk_rcg2 gcc_qupv3_wrap1_s6_clk_src = {
85962306a36Sopenharmony_ci	.cmd_rcgr = 0x2888c,
86062306a36Sopenharmony_ci	.mnd_width = 16,
86162306a36Sopenharmony_ci	.hid_width = 5,
86262306a36Sopenharmony_ci	.parent_map = gcc_parent_map_0,
86362306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
86462306a36Sopenharmony_ci	.clkr.hw.init = &gcc_qupv3_wrap1_s6_clk_src_init,
86562306a36Sopenharmony_ci};
86662306a36Sopenharmony_ci
86762306a36Sopenharmony_cistatic struct clk_init_data gcc_qupv3_wrap1_s7_clk_src_init = {
86862306a36Sopenharmony_ci	.name = "gcc_qupv3_wrap1_s7_clk_src",
86962306a36Sopenharmony_ci	.parent_data = gcc_parent_data_0,
87062306a36Sopenharmony_ci	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
87162306a36Sopenharmony_ci	.ops = &clk_rcg2_shared_ops,
87262306a36Sopenharmony_ci};
87362306a36Sopenharmony_ci
87462306a36Sopenharmony_cistatic struct clk_rcg2 gcc_qupv3_wrap1_s7_clk_src = {
87562306a36Sopenharmony_ci	.cmd_rcgr = 0x289c0,
87662306a36Sopenharmony_ci	.mnd_width = 16,
87762306a36Sopenharmony_ci	.hid_width = 5,
87862306a36Sopenharmony_ci	.parent_map = gcc_parent_map_0,
87962306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
88062306a36Sopenharmony_ci	.clkr.hw.init = &gcc_qupv3_wrap1_s7_clk_src_init,
88162306a36Sopenharmony_ci};
88262306a36Sopenharmony_ci
88362306a36Sopenharmony_cistatic const struct freq_tbl ftbl_gcc_sdcc5_apps_clk_src[] = {
88462306a36Sopenharmony_ci	F(144000, P_BI_TCXO, 16, 3, 25),
88562306a36Sopenharmony_ci	F(400000, P_BI_TCXO, 12, 1, 4),
88662306a36Sopenharmony_ci	F(19200000, P_BI_TCXO, 1, 0, 0),
88762306a36Sopenharmony_ci	F(20000000, P_GCC_GPLL0_OUT_MAIN, 10, 1, 3),
88862306a36Sopenharmony_ci	F(25000000, P_GCC_GPLL0_OUT_MAIN, 12, 1, 2),
88962306a36Sopenharmony_ci	F(50000000, P_GCC_GPLL0_OUT_MAIN, 12, 0, 0),
89062306a36Sopenharmony_ci	F(100000000, P_GCC_GPLL0_OUT_MAIN, 6, 0, 0),
89162306a36Sopenharmony_ci	F(192000000, P_GCC_GPLL8_OUT_MAIN, 4, 0, 0),
89262306a36Sopenharmony_ci	F(300000000, P_GCC_GPLL0_OUT_MAIN, 2, 0, 0),
89362306a36Sopenharmony_ci	F(384000000, P_GCC_GPLL8_OUT_MAIN, 2, 0, 0),
89462306a36Sopenharmony_ci	{ }
89562306a36Sopenharmony_ci};
89662306a36Sopenharmony_ci
89762306a36Sopenharmony_cistatic struct clk_rcg2 gcc_sdcc5_apps_clk_src = {
89862306a36Sopenharmony_ci	.cmd_rcgr = 0x3b034,
89962306a36Sopenharmony_ci	.mnd_width = 8,
90062306a36Sopenharmony_ci	.hid_width = 5,
90162306a36Sopenharmony_ci	.parent_map = gcc_parent_map_8,
90262306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_sdcc5_apps_clk_src,
90362306a36Sopenharmony_ci	.clkr.hw.init = &(const struct clk_init_data) {
90462306a36Sopenharmony_ci		.name = "gcc_sdcc5_apps_clk_src",
90562306a36Sopenharmony_ci		.parent_data = gcc_parent_data_8,
90662306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_8),
90762306a36Sopenharmony_ci		.ops = &clk_rcg2_floor_ops,
90862306a36Sopenharmony_ci	},
90962306a36Sopenharmony_ci};
91062306a36Sopenharmony_ci
91162306a36Sopenharmony_cistatic const struct freq_tbl ftbl_gcc_sdcc5_ice_core_clk_src[] = {
91262306a36Sopenharmony_ci	F(300000000, P_GCC_GPLL0_OUT_MAIN, 2, 0, 0),
91362306a36Sopenharmony_ci	{ }
91462306a36Sopenharmony_ci};
91562306a36Sopenharmony_ci
91662306a36Sopenharmony_cistatic struct clk_rcg2 gcc_sdcc5_ice_core_clk_src = {
91762306a36Sopenharmony_ci	.cmd_rcgr = 0x3b01c,
91862306a36Sopenharmony_ci	.mnd_width = 0,
91962306a36Sopenharmony_ci	.hid_width = 5,
92062306a36Sopenharmony_ci	.parent_map = gcc_parent_map_2,
92162306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_sdcc5_ice_core_clk_src,
92262306a36Sopenharmony_ci	.clkr.hw.init = &(const struct clk_init_data) {
92362306a36Sopenharmony_ci		.name = "gcc_sdcc5_ice_core_clk_src",
92462306a36Sopenharmony_ci		.parent_data = gcc_parent_data_2,
92562306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_2),
92662306a36Sopenharmony_ci		.ops = &clk_rcg2_floor_ops,
92762306a36Sopenharmony_ci	},
92862306a36Sopenharmony_ci};
92962306a36Sopenharmony_ci
93062306a36Sopenharmony_cistatic struct clk_rcg2 gcc_sm_bus_xo_clk_src = {
93162306a36Sopenharmony_ci	.cmd_rcgr = 0x5b00c,
93262306a36Sopenharmony_ci	.mnd_width = 0,
93362306a36Sopenharmony_ci	.hid_width = 5,
93462306a36Sopenharmony_ci	.parent_map = gcc_parent_map_2,
93562306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
93662306a36Sopenharmony_ci	.clkr.hw.init = &(const struct clk_init_data) {
93762306a36Sopenharmony_ci		.name = "gcc_sm_bus_xo_clk_src",
93862306a36Sopenharmony_ci		.parent_data = gcc_parent_data_2,
93962306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_2),
94062306a36Sopenharmony_ci		.ops = &clk_rcg2_shared_ops,
94162306a36Sopenharmony_ci	},
94262306a36Sopenharmony_ci};
94362306a36Sopenharmony_ci
94462306a36Sopenharmony_cistatic const struct freq_tbl ftbl_gcc_tsc_clk_src[] = {
94562306a36Sopenharmony_ci	F(500000000, P_GCC_GPLL7_OUT_MAIN, 2, 0, 0),
94662306a36Sopenharmony_ci	{ }
94762306a36Sopenharmony_ci};
94862306a36Sopenharmony_ci
94962306a36Sopenharmony_cistatic struct clk_rcg2 gcc_tsc_clk_src = {
95062306a36Sopenharmony_ci	.cmd_rcgr = 0x57010,
95162306a36Sopenharmony_ci	.mnd_width = 0,
95262306a36Sopenharmony_ci	.hid_width = 5,
95362306a36Sopenharmony_ci	.parent_map = gcc_parent_map_9,
95462306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_tsc_clk_src,
95562306a36Sopenharmony_ci	.clkr.hw.init = &(const struct clk_init_data) {
95662306a36Sopenharmony_ci		.name = "gcc_tsc_clk_src",
95762306a36Sopenharmony_ci		.parent_data = gcc_parent_data_9,
95862306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_9),
95962306a36Sopenharmony_ci		.ops = &clk_rcg2_shared_ops,
96062306a36Sopenharmony_ci	},
96162306a36Sopenharmony_ci};
96262306a36Sopenharmony_ci
96362306a36Sopenharmony_cistatic const struct freq_tbl ftbl_gcc_usb30_prim_master_clk_src[] = {
96462306a36Sopenharmony_ci	F(200000000, P_GCC_GPLL0_OUT_MAIN, 3, 0, 0),
96562306a36Sopenharmony_ci	F(240000000, P_GCC_GPLL0_OUT_MAIN, 2.5, 0, 0),
96662306a36Sopenharmony_ci	{ }
96762306a36Sopenharmony_ci};
96862306a36Sopenharmony_ci
96962306a36Sopenharmony_cistatic struct clk_rcg2 gcc_usb30_prim_master_clk_src = {
97062306a36Sopenharmony_ci	.cmd_rcgr = 0x49028,
97162306a36Sopenharmony_ci	.mnd_width = 8,
97262306a36Sopenharmony_ci	.hid_width = 5,
97362306a36Sopenharmony_ci	.parent_map = gcc_parent_map_0,
97462306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_usb30_prim_master_clk_src,
97562306a36Sopenharmony_ci	.clkr.hw.init = &(const struct clk_init_data) {
97662306a36Sopenharmony_ci		.name = "gcc_usb30_prim_master_clk_src",
97762306a36Sopenharmony_ci		.parent_data = gcc_parent_data_0,
97862306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
97962306a36Sopenharmony_ci		.ops = &clk_rcg2_shared_ops,
98062306a36Sopenharmony_ci	},
98162306a36Sopenharmony_ci};
98262306a36Sopenharmony_ci
98362306a36Sopenharmony_cistatic struct clk_rcg2 gcc_usb30_prim_mock_utmi_clk_src = {
98462306a36Sopenharmony_ci	.cmd_rcgr = 0x49044,
98562306a36Sopenharmony_ci	.mnd_width = 0,
98662306a36Sopenharmony_ci	.hid_width = 5,
98762306a36Sopenharmony_ci	.parent_map = gcc_parent_map_0,
98862306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
98962306a36Sopenharmony_ci	.clkr.hw.init = &(const struct clk_init_data) {
99062306a36Sopenharmony_ci		.name = "gcc_usb30_prim_mock_utmi_clk_src",
99162306a36Sopenharmony_ci		.parent_data = gcc_parent_data_0,
99262306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
99362306a36Sopenharmony_ci		.ops = &clk_rcg2_shared_ops,
99462306a36Sopenharmony_ci	},
99562306a36Sopenharmony_ci};
99662306a36Sopenharmony_ci
99762306a36Sopenharmony_cistatic struct clk_rcg2 gcc_usb3_prim_phy_aux_clk_src = {
99862306a36Sopenharmony_ci	.cmd_rcgr = 0x49070,
99962306a36Sopenharmony_ci	.mnd_width = 0,
100062306a36Sopenharmony_ci	.hid_width = 5,
100162306a36Sopenharmony_ci	.parent_map = gcc_parent_map_3,
100262306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
100362306a36Sopenharmony_ci	.clkr.hw.init = &(const struct clk_init_data) {
100462306a36Sopenharmony_ci		.name = "gcc_usb3_prim_phy_aux_clk_src",
100562306a36Sopenharmony_ci		.parent_data = gcc_parent_data_3,
100662306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_3),
100762306a36Sopenharmony_ci		.ops = &clk_rcg2_shared_ops,
100862306a36Sopenharmony_ci	},
100962306a36Sopenharmony_ci};
101062306a36Sopenharmony_ci
101162306a36Sopenharmony_cistatic struct clk_regmap_div gcc_usb30_prim_mock_utmi_postdiv_clk_src = {
101262306a36Sopenharmony_ci	.reg = 0x4905c,
101362306a36Sopenharmony_ci	.shift = 0,
101462306a36Sopenharmony_ci	.width = 4,
101562306a36Sopenharmony_ci	.clkr.hw.init = &(const struct clk_init_data) {
101662306a36Sopenharmony_ci		.name = "gcc_usb30_prim_mock_utmi_postdiv_clk_src",
101762306a36Sopenharmony_ci		.parent_hws = (const struct clk_hw*[]) {
101862306a36Sopenharmony_ci			&gcc_usb30_prim_mock_utmi_clk_src.clkr.hw,
101962306a36Sopenharmony_ci		},
102062306a36Sopenharmony_ci		.num_parents = 1,
102162306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
102262306a36Sopenharmony_ci		.ops = &clk_regmap_div_ro_ops,
102362306a36Sopenharmony_ci	},
102462306a36Sopenharmony_ci};
102562306a36Sopenharmony_ci
102662306a36Sopenharmony_cistatic struct clk_branch gcc_aggre_noc_ecpri_dma_clk = {
102762306a36Sopenharmony_ci	.halt_reg = 0x92008,
102862306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
102962306a36Sopenharmony_ci	.hwcg_reg = 0x92008,
103062306a36Sopenharmony_ci	.hwcg_bit = 1,
103162306a36Sopenharmony_ci	.clkr = {
103262306a36Sopenharmony_ci		.enable_reg = 0x92008,
103362306a36Sopenharmony_ci		.enable_mask = BIT(0),
103462306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
103562306a36Sopenharmony_ci			.name = "gcc_aggre_noc_ecpri_dma_clk",
103662306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
103762306a36Sopenharmony_ci				&gcc_aggre_noc_ecpri_dma_clk_src.clkr.hw,
103862306a36Sopenharmony_ci			},
103962306a36Sopenharmony_ci			.num_parents = 1,
104062306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
104162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
104262306a36Sopenharmony_ci		},
104362306a36Sopenharmony_ci	},
104462306a36Sopenharmony_ci};
104562306a36Sopenharmony_ci
104662306a36Sopenharmony_cistatic struct clk_branch gcc_aggre_noc_ecpri_gsi_clk = {
104762306a36Sopenharmony_ci	.halt_reg = 0x9201c,
104862306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
104962306a36Sopenharmony_ci	.hwcg_reg = 0x9201c,
105062306a36Sopenharmony_ci	.hwcg_bit = 1,
105162306a36Sopenharmony_ci	.clkr = {
105262306a36Sopenharmony_ci		.enable_reg = 0x9201c,
105362306a36Sopenharmony_ci		.enable_mask = BIT(0),
105462306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
105562306a36Sopenharmony_ci			.name = "gcc_aggre_noc_ecpri_gsi_clk",
105662306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
105762306a36Sopenharmony_ci				&gcc_aggre_noc_ecpri_gsi_clk_src.clkr.hw,
105862306a36Sopenharmony_ci			},
105962306a36Sopenharmony_ci			.num_parents = 1,
106062306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
106162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
106262306a36Sopenharmony_ci		},
106362306a36Sopenharmony_ci	},
106462306a36Sopenharmony_ci};
106562306a36Sopenharmony_ci
106662306a36Sopenharmony_cistatic struct clk_branch gcc_boot_rom_ahb_clk = {
106762306a36Sopenharmony_ci	.halt_reg = 0x48004,
106862306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
106962306a36Sopenharmony_ci	.hwcg_reg = 0x48004,
107062306a36Sopenharmony_ci	.hwcg_bit = 1,
107162306a36Sopenharmony_ci	.clkr = {
107262306a36Sopenharmony_ci		.enable_reg = 0x62000,
107362306a36Sopenharmony_ci		.enable_mask = BIT(10),
107462306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
107562306a36Sopenharmony_ci			.name = "gcc_boot_rom_ahb_clk",
107662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
107762306a36Sopenharmony_ci		},
107862306a36Sopenharmony_ci	},
107962306a36Sopenharmony_ci};
108062306a36Sopenharmony_ci
108162306a36Sopenharmony_cistatic struct clk_branch gcc_cfg_noc_ecpri_cc_ahb_clk = {
108262306a36Sopenharmony_ci	.halt_reg = 0x3e004,
108362306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
108462306a36Sopenharmony_ci	.hwcg_reg = 0x3e004,
108562306a36Sopenharmony_ci	.hwcg_bit = 1,
108662306a36Sopenharmony_ci	.clkr = {
108762306a36Sopenharmony_ci		.enable_reg = 0x3e004,
108862306a36Sopenharmony_ci		.enable_mask = BIT(0),
108962306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
109062306a36Sopenharmony_ci			.name = "gcc_cfg_noc_ecpri_cc_ahb_clk",
109162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
109262306a36Sopenharmony_ci		},
109362306a36Sopenharmony_ci	},
109462306a36Sopenharmony_ci};
109562306a36Sopenharmony_ci
109662306a36Sopenharmony_cistatic struct clk_branch gcc_cfg_noc_usb3_prim_axi_clk = {
109762306a36Sopenharmony_ci	.halt_reg = 0x8401c,
109862306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
109962306a36Sopenharmony_ci	.hwcg_reg = 0x8401c,
110062306a36Sopenharmony_ci	.hwcg_bit = 1,
110162306a36Sopenharmony_ci	.clkr = {
110262306a36Sopenharmony_ci		.enable_reg = 0x8401c,
110362306a36Sopenharmony_ci		.enable_mask = BIT(0),
110462306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
110562306a36Sopenharmony_ci			.name = "gcc_cfg_noc_usb3_prim_axi_clk",
110662306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
110762306a36Sopenharmony_ci				&gcc_usb30_prim_master_clk_src.clkr.hw,
110862306a36Sopenharmony_ci			},
110962306a36Sopenharmony_ci			.num_parents = 1,
111062306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
111162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
111262306a36Sopenharmony_ci		},
111362306a36Sopenharmony_ci	},
111462306a36Sopenharmony_ci};
111562306a36Sopenharmony_ci
111662306a36Sopenharmony_cistatic struct clk_branch gcc_ddrss_ecpri_dma_clk = {
111762306a36Sopenharmony_ci	.halt_reg = 0x54030,
111862306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
111962306a36Sopenharmony_ci	.hwcg_reg = 0x54030,
112062306a36Sopenharmony_ci	.hwcg_bit = 1,
112162306a36Sopenharmony_ci	.clkr = {
112262306a36Sopenharmony_ci		.enable_reg = 0x54030,
112362306a36Sopenharmony_ci		.enable_mask = BIT(0),
112462306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
112562306a36Sopenharmony_ci			.name = "gcc_ddrss_ecpri_dma_clk",
112662306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
112762306a36Sopenharmony_ci				&gcc_aggre_noc_ecpri_dma_clk_src.clkr.hw,
112862306a36Sopenharmony_ci			},
112962306a36Sopenharmony_ci			.num_parents = 1,
113062306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
113162306a36Sopenharmony_ci			.ops = &clk_branch2_aon_ops,
113262306a36Sopenharmony_ci		},
113362306a36Sopenharmony_ci	},
113462306a36Sopenharmony_ci};
113562306a36Sopenharmony_ci
113662306a36Sopenharmony_cistatic struct clk_branch gcc_ddrss_ecpri_gsi_clk = {
113762306a36Sopenharmony_ci	.halt_reg = 0x54298,
113862306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
113962306a36Sopenharmony_ci	.hwcg_reg = 0x54298,
114062306a36Sopenharmony_ci	.hwcg_bit = 1,
114162306a36Sopenharmony_ci	.clkr = {
114262306a36Sopenharmony_ci		.enable_reg = 0x54298,
114362306a36Sopenharmony_ci		.enable_mask = BIT(0),
114462306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
114562306a36Sopenharmony_ci			.name = "gcc_ddrss_ecpri_gsi_clk",
114662306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
114762306a36Sopenharmony_ci				&gcc_aggre_noc_ecpri_gsi_clk_src.clkr.hw,
114862306a36Sopenharmony_ci			},
114962306a36Sopenharmony_ci			.num_parents = 1,
115062306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
115162306a36Sopenharmony_ci			.ops = &clk_branch2_aon_ops,
115262306a36Sopenharmony_ci		},
115362306a36Sopenharmony_ci	},
115462306a36Sopenharmony_ci};
115562306a36Sopenharmony_ci
115662306a36Sopenharmony_cistatic struct clk_branch gcc_ecpri_ahb_clk = {
115762306a36Sopenharmony_ci	.halt_reg = 0x3a008,
115862306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
115962306a36Sopenharmony_ci	.hwcg_reg = 0x3a008,
116062306a36Sopenharmony_ci	.hwcg_bit = 1,
116162306a36Sopenharmony_ci	.clkr = {
116262306a36Sopenharmony_ci		.enable_reg = 0x3a008,
116362306a36Sopenharmony_ci		.enable_mask = BIT(0),
116462306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
116562306a36Sopenharmony_ci			.name = "gcc_ecpri_ahb_clk",
116662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
116762306a36Sopenharmony_ci		},
116862306a36Sopenharmony_ci	},
116962306a36Sopenharmony_ci};
117062306a36Sopenharmony_ci
117162306a36Sopenharmony_cistatic struct clk_branch gcc_ecpri_cc_gpll0_clk_src = {
117262306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_DELAY,
117362306a36Sopenharmony_ci	.clkr = {
117462306a36Sopenharmony_ci		.enable_reg = 0x62010,
117562306a36Sopenharmony_ci		.enable_mask = BIT(0),
117662306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
117762306a36Sopenharmony_ci			.name = "gcc_ecpri_cc_gpll0_clk_src",
117862306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
117962306a36Sopenharmony_ci				&gcc_gpll0.clkr.hw,
118062306a36Sopenharmony_ci			},
118162306a36Sopenharmony_ci			.num_parents = 1,
118262306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
118362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
118462306a36Sopenharmony_ci		},
118562306a36Sopenharmony_ci	},
118662306a36Sopenharmony_ci};
118762306a36Sopenharmony_ci
118862306a36Sopenharmony_cistatic struct clk_branch gcc_ecpri_cc_gpll1_even_clk_src = {
118962306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_DELAY,
119062306a36Sopenharmony_ci	.clkr = {
119162306a36Sopenharmony_ci		.enable_reg = 0x62010,
119262306a36Sopenharmony_ci		.enable_mask = BIT(1),
119362306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
119462306a36Sopenharmony_ci			.name = "gcc_ecpri_cc_gpll1_even_clk_src",
119562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
119662306a36Sopenharmony_ci				&gcc_gpll1_out_even.clkr.hw,
119762306a36Sopenharmony_ci			},
119862306a36Sopenharmony_ci			.num_parents = 1,
119962306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
120062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
120162306a36Sopenharmony_ci		},
120262306a36Sopenharmony_ci	},
120362306a36Sopenharmony_ci};
120462306a36Sopenharmony_ci
120562306a36Sopenharmony_cistatic struct clk_branch gcc_ecpri_cc_gpll2_even_clk_src = {
120662306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_DELAY,
120762306a36Sopenharmony_ci	.clkr = {
120862306a36Sopenharmony_ci		.enable_reg = 0x62010,
120962306a36Sopenharmony_ci		.enable_mask = BIT(2),
121062306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
121162306a36Sopenharmony_ci			.name = "gcc_ecpri_cc_gpll2_even_clk_src",
121262306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
121362306a36Sopenharmony_ci				&gcc_gpll2_out_even.clkr.hw,
121462306a36Sopenharmony_ci			},
121562306a36Sopenharmony_ci			.num_parents = 1,
121662306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
121762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
121862306a36Sopenharmony_ci		},
121962306a36Sopenharmony_ci	},
122062306a36Sopenharmony_ci};
122162306a36Sopenharmony_ci
122262306a36Sopenharmony_cistatic struct clk_branch gcc_ecpri_cc_gpll3_clk_src = {
122362306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_DELAY,
122462306a36Sopenharmony_ci	.clkr = {
122562306a36Sopenharmony_ci		.enable_reg = 0x62010,
122662306a36Sopenharmony_ci		.enable_mask = BIT(3),
122762306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
122862306a36Sopenharmony_ci			.name = "gcc_ecpri_cc_gpll3_clk_src",
122962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
123062306a36Sopenharmony_ci				&gcc_gpll3.clkr.hw,
123162306a36Sopenharmony_ci			},
123262306a36Sopenharmony_ci			.num_parents = 1,
123362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
123462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
123562306a36Sopenharmony_ci		},
123662306a36Sopenharmony_ci	},
123762306a36Sopenharmony_ci};
123862306a36Sopenharmony_ci
123962306a36Sopenharmony_cistatic struct clk_branch gcc_ecpri_cc_gpll4_clk_src = {
124062306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_DELAY,
124162306a36Sopenharmony_ci	.clkr = {
124262306a36Sopenharmony_ci		.enable_reg = 0x62010,
124362306a36Sopenharmony_ci		.enable_mask = BIT(4),
124462306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
124562306a36Sopenharmony_ci			.name = "gcc_ecpri_cc_gpll4_clk_src",
124662306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
124762306a36Sopenharmony_ci				&gcc_gpll4.clkr.hw,
124862306a36Sopenharmony_ci			},
124962306a36Sopenharmony_ci			.num_parents = 1,
125062306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
125162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
125262306a36Sopenharmony_ci		},
125362306a36Sopenharmony_ci	},
125462306a36Sopenharmony_ci};
125562306a36Sopenharmony_ci
125662306a36Sopenharmony_cistatic struct clk_branch gcc_ecpri_cc_gpll5_even_clk_src = {
125762306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_DELAY,
125862306a36Sopenharmony_ci	.clkr = {
125962306a36Sopenharmony_ci		.enable_reg = 0x62010,
126062306a36Sopenharmony_ci		.enable_mask = BIT(5),
126162306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
126262306a36Sopenharmony_ci			.name = "gcc_ecpri_cc_gpll5_even_clk_src",
126362306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
126462306a36Sopenharmony_ci				&gcc_gpll5_out_even.clkr.hw,
126562306a36Sopenharmony_ci			},
126662306a36Sopenharmony_ci			.num_parents = 1,
126762306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
126862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
126962306a36Sopenharmony_ci		},
127062306a36Sopenharmony_ci	},
127162306a36Sopenharmony_ci};
127262306a36Sopenharmony_ci
127362306a36Sopenharmony_cistatic struct clk_branch gcc_ecpri_xo_clk = {
127462306a36Sopenharmony_ci	.halt_reg = 0x3a004,
127562306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
127662306a36Sopenharmony_ci	.clkr = {
127762306a36Sopenharmony_ci		.enable_reg = 0x3a004,
127862306a36Sopenharmony_ci		.enable_mask = BIT(0),
127962306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
128062306a36Sopenharmony_ci			.name = "gcc_ecpri_xo_clk",
128162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
128262306a36Sopenharmony_ci		},
128362306a36Sopenharmony_ci	},
128462306a36Sopenharmony_ci};
128562306a36Sopenharmony_ci
128662306a36Sopenharmony_cistatic struct clk_branch gcc_eth_100g_c2c_hm_apb_clk = {
128762306a36Sopenharmony_ci	.halt_reg = 0x39010,
128862306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
128962306a36Sopenharmony_ci	.clkr = {
129062306a36Sopenharmony_ci		.enable_reg = 0x39010,
129162306a36Sopenharmony_ci		.enable_mask = BIT(0),
129262306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
129362306a36Sopenharmony_ci			.name = "gcc_eth_100g_c2c_hm_apb_clk",
129462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
129562306a36Sopenharmony_ci		},
129662306a36Sopenharmony_ci	},
129762306a36Sopenharmony_ci};
129862306a36Sopenharmony_ci
129962306a36Sopenharmony_cistatic struct clk_branch gcc_eth_100g_fh_hm_apb_0_clk = {
130062306a36Sopenharmony_ci	.halt_reg = 0x39004,
130162306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
130262306a36Sopenharmony_ci	.clkr = {
130362306a36Sopenharmony_ci		.enable_reg = 0x39004,
130462306a36Sopenharmony_ci		.enable_mask = BIT(0),
130562306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
130662306a36Sopenharmony_ci			.name = "gcc_eth_100g_fh_hm_apb_0_clk",
130762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
130862306a36Sopenharmony_ci		},
130962306a36Sopenharmony_ci	},
131062306a36Sopenharmony_ci};
131162306a36Sopenharmony_ci
131262306a36Sopenharmony_cistatic struct clk_branch gcc_eth_100g_fh_hm_apb_1_clk = {
131362306a36Sopenharmony_ci	.halt_reg = 0x39008,
131462306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
131562306a36Sopenharmony_ci	.clkr = {
131662306a36Sopenharmony_ci		.enable_reg = 0x39008,
131762306a36Sopenharmony_ci		.enable_mask = BIT(0),
131862306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
131962306a36Sopenharmony_ci			.name = "gcc_eth_100g_fh_hm_apb_1_clk",
132062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
132162306a36Sopenharmony_ci		},
132262306a36Sopenharmony_ci	},
132362306a36Sopenharmony_ci};
132462306a36Sopenharmony_ci
132562306a36Sopenharmony_cistatic struct clk_branch gcc_eth_100g_fh_hm_apb_2_clk = {
132662306a36Sopenharmony_ci	.halt_reg = 0x3900c,
132762306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
132862306a36Sopenharmony_ci	.clkr = {
132962306a36Sopenharmony_ci		.enable_reg = 0x3900c,
133062306a36Sopenharmony_ci		.enable_mask = BIT(0),
133162306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
133262306a36Sopenharmony_ci			.name = "gcc_eth_100g_fh_hm_apb_2_clk",
133362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
133462306a36Sopenharmony_ci		},
133562306a36Sopenharmony_ci	},
133662306a36Sopenharmony_ci};
133762306a36Sopenharmony_ci
133862306a36Sopenharmony_cistatic struct clk_branch gcc_eth_dbg_c2c_hm_apb_clk = {
133962306a36Sopenharmony_ci	.halt_reg = 0x39014,
134062306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
134162306a36Sopenharmony_ci	.clkr = {
134262306a36Sopenharmony_ci		.enable_reg = 0x39014,
134362306a36Sopenharmony_ci		.enable_mask = BIT(0),
134462306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
134562306a36Sopenharmony_ci			.name = "gcc_eth_dbg_c2c_hm_apb_clk",
134662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
134762306a36Sopenharmony_ci		},
134862306a36Sopenharmony_ci	},
134962306a36Sopenharmony_ci};
135062306a36Sopenharmony_ci
135162306a36Sopenharmony_cistatic struct clk_branch gcc_eth_dbg_snoc_axi_clk = {
135262306a36Sopenharmony_ci	.halt_reg = 0x3901c,
135362306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
135462306a36Sopenharmony_ci	.hwcg_reg = 0x3901c,
135562306a36Sopenharmony_ci	.hwcg_bit = 1,
135662306a36Sopenharmony_ci	.clkr = {
135762306a36Sopenharmony_ci		.enable_reg = 0x3901c,
135862306a36Sopenharmony_ci		.enable_mask = BIT(0),
135962306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
136062306a36Sopenharmony_ci			.name = "gcc_eth_dbg_snoc_axi_clk",
136162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
136262306a36Sopenharmony_ci		},
136362306a36Sopenharmony_ci	},
136462306a36Sopenharmony_ci};
136562306a36Sopenharmony_ci
136662306a36Sopenharmony_cistatic struct clk_branch gcc_gemnoc_pcie_qx_clk = {
136762306a36Sopenharmony_ci	.halt_reg = 0x5402c,
136862306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
136962306a36Sopenharmony_ci	.hwcg_reg = 0x5402c,
137062306a36Sopenharmony_ci	.hwcg_bit = 1,
137162306a36Sopenharmony_ci	.clkr = {
137262306a36Sopenharmony_ci		.enable_reg = 0x62008,
137362306a36Sopenharmony_ci		.enable_mask = BIT(0),
137462306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
137562306a36Sopenharmony_ci			.name = "gcc_gemnoc_pcie_qx_clk",
137662306a36Sopenharmony_ci			.ops = &clk_branch2_aon_ops,
137762306a36Sopenharmony_ci		},
137862306a36Sopenharmony_ci	},
137962306a36Sopenharmony_ci};
138062306a36Sopenharmony_ci
138162306a36Sopenharmony_cistatic struct clk_branch gcc_gp1_clk = {
138262306a36Sopenharmony_ci	.halt_reg = 0x74000,
138362306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
138462306a36Sopenharmony_ci	.clkr = {
138562306a36Sopenharmony_ci		.enable_reg = 0x74000,
138662306a36Sopenharmony_ci		.enable_mask = BIT(0),
138762306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
138862306a36Sopenharmony_ci			.name = "gcc_gp1_clk",
138962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
139062306a36Sopenharmony_ci				&gcc_gp1_clk_src.clkr.hw,
139162306a36Sopenharmony_ci			},
139262306a36Sopenharmony_ci			.num_parents = 1,
139362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
139462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
139562306a36Sopenharmony_ci		},
139662306a36Sopenharmony_ci	},
139762306a36Sopenharmony_ci};
139862306a36Sopenharmony_ci
139962306a36Sopenharmony_cistatic struct clk_branch gcc_gp2_clk = {
140062306a36Sopenharmony_ci	.halt_reg = 0x75000,
140162306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
140262306a36Sopenharmony_ci	.clkr = {
140362306a36Sopenharmony_ci		.enable_reg = 0x75000,
140462306a36Sopenharmony_ci		.enable_mask = BIT(0),
140562306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
140662306a36Sopenharmony_ci			.name = "gcc_gp2_clk",
140762306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
140862306a36Sopenharmony_ci				&gcc_gp2_clk_src.clkr.hw,
140962306a36Sopenharmony_ci			},
141062306a36Sopenharmony_ci			.num_parents = 1,
141162306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
141262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
141362306a36Sopenharmony_ci		},
141462306a36Sopenharmony_ci	},
141562306a36Sopenharmony_ci};
141662306a36Sopenharmony_ci
141762306a36Sopenharmony_cistatic struct clk_branch gcc_gp3_clk = {
141862306a36Sopenharmony_ci	.halt_reg = 0x76000,
141962306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
142062306a36Sopenharmony_ci	.clkr = {
142162306a36Sopenharmony_ci		.enable_reg = 0x76000,
142262306a36Sopenharmony_ci		.enable_mask = BIT(0),
142362306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
142462306a36Sopenharmony_ci			.name = "gcc_gp3_clk",
142562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
142662306a36Sopenharmony_ci				&gcc_gp3_clk_src.clkr.hw,
142762306a36Sopenharmony_ci			},
142862306a36Sopenharmony_ci			.num_parents = 1,
142962306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
143062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
143162306a36Sopenharmony_ci		},
143262306a36Sopenharmony_ci	},
143362306a36Sopenharmony_ci};
143462306a36Sopenharmony_ci
143562306a36Sopenharmony_cistatic struct clk_branch gcc_pcie_0_aux_clk = {
143662306a36Sopenharmony_ci	.halt_reg = 0x9d030,
143762306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
143862306a36Sopenharmony_ci	.hwcg_reg = 0x9d030,
143962306a36Sopenharmony_ci	.hwcg_bit = 1,
144062306a36Sopenharmony_ci	.clkr = {
144162306a36Sopenharmony_ci		.enable_reg = 0x62000,
144262306a36Sopenharmony_ci		.enable_mask = BIT(29),
144362306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
144462306a36Sopenharmony_ci			.name = "gcc_pcie_0_aux_clk",
144562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
144662306a36Sopenharmony_ci				&gcc_pcie_0_aux_clk_src.clkr.hw,
144762306a36Sopenharmony_ci			},
144862306a36Sopenharmony_ci			.num_parents = 1,
144962306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
145062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
145162306a36Sopenharmony_ci		},
145262306a36Sopenharmony_ci	},
145362306a36Sopenharmony_ci};
145462306a36Sopenharmony_ci
145562306a36Sopenharmony_cistatic struct clk_branch gcc_pcie_0_cfg_ahb_clk = {
145662306a36Sopenharmony_ci	.halt_reg = 0x9d02c,
145762306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
145862306a36Sopenharmony_ci	.hwcg_reg = 0x9d02c,
145962306a36Sopenharmony_ci	.hwcg_bit = 1,
146062306a36Sopenharmony_ci	.clkr = {
146162306a36Sopenharmony_ci		.enable_reg = 0x62000,
146262306a36Sopenharmony_ci		.enable_mask = BIT(28),
146362306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
146462306a36Sopenharmony_ci			.name = "gcc_pcie_0_cfg_ahb_clk",
146562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
146662306a36Sopenharmony_ci		},
146762306a36Sopenharmony_ci	},
146862306a36Sopenharmony_ci};
146962306a36Sopenharmony_ci
147062306a36Sopenharmony_cistatic struct clk_branch gcc_pcie_0_clkref_en = {
147162306a36Sopenharmony_ci	.halt_reg = 0x9c004,
147262306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
147362306a36Sopenharmony_ci	.clkr = {
147462306a36Sopenharmony_ci		.enable_reg = 0x9c004,
147562306a36Sopenharmony_ci		.enable_mask = BIT(0),
147662306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
147762306a36Sopenharmony_ci			.name = "gcc_pcie_0_clkref_en",
147862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
147962306a36Sopenharmony_ci		},
148062306a36Sopenharmony_ci	},
148162306a36Sopenharmony_ci};
148262306a36Sopenharmony_ci
148362306a36Sopenharmony_cistatic struct clk_branch gcc_pcie_0_mstr_axi_clk = {
148462306a36Sopenharmony_ci	.halt_reg = 0x9d024,
148562306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_SKIP,
148662306a36Sopenharmony_ci	.hwcg_reg = 0x9d024,
148762306a36Sopenharmony_ci	.hwcg_bit = 1,
148862306a36Sopenharmony_ci	.clkr = {
148962306a36Sopenharmony_ci		.enable_reg = 0x62000,
149062306a36Sopenharmony_ci		.enable_mask = BIT(27),
149162306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
149262306a36Sopenharmony_ci			.name = "gcc_pcie_0_mstr_axi_clk",
149362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
149462306a36Sopenharmony_ci		},
149562306a36Sopenharmony_ci	},
149662306a36Sopenharmony_ci};
149762306a36Sopenharmony_ci
149862306a36Sopenharmony_cistatic struct clk_branch gcc_pcie_0_phy_aux_clk = {
149962306a36Sopenharmony_ci	.halt_reg = 0x9d038,
150062306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
150162306a36Sopenharmony_ci	.hwcg_reg = 0x9d038,
150262306a36Sopenharmony_ci	.hwcg_bit = 1,
150362306a36Sopenharmony_ci	.clkr = {
150462306a36Sopenharmony_ci		.enable_reg = 0x62000,
150562306a36Sopenharmony_ci		.enable_mask = BIT(24),
150662306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
150762306a36Sopenharmony_ci			.name = "gcc_pcie_0_phy_aux_clk",
150862306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
150962306a36Sopenharmony_ci				&gcc_pcie_0_phy_aux_clk_src.clkr.hw,
151062306a36Sopenharmony_ci			},
151162306a36Sopenharmony_ci			.num_parents = 1,
151262306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
151362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
151462306a36Sopenharmony_ci		},
151562306a36Sopenharmony_ci	},
151662306a36Sopenharmony_ci};
151762306a36Sopenharmony_ci
151862306a36Sopenharmony_cistatic struct clk_branch gcc_pcie_0_phy_rchng_clk = {
151962306a36Sopenharmony_ci	.halt_reg = 0x9d048,
152062306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
152162306a36Sopenharmony_ci	.hwcg_reg = 0x9d048,
152262306a36Sopenharmony_ci	.hwcg_bit = 1,
152362306a36Sopenharmony_ci	.clkr = {
152462306a36Sopenharmony_ci		.enable_reg = 0x62000,
152562306a36Sopenharmony_ci		.enable_mask = BIT(23),
152662306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
152762306a36Sopenharmony_ci			.name = "gcc_pcie_0_phy_rchng_clk",
152862306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
152962306a36Sopenharmony_ci				&gcc_pcie_0_phy_rchng_clk_src.clkr.hw,
153062306a36Sopenharmony_ci			},
153162306a36Sopenharmony_ci			.num_parents = 1,
153262306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
153362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
153462306a36Sopenharmony_ci		},
153562306a36Sopenharmony_ci	},
153662306a36Sopenharmony_ci};
153762306a36Sopenharmony_ci
153862306a36Sopenharmony_cistatic struct clk_branch gcc_pcie_0_pipe_clk = {
153962306a36Sopenharmony_ci	.halt_reg = 0x9d040,
154062306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
154162306a36Sopenharmony_ci	.hwcg_reg = 0x9d040,
154262306a36Sopenharmony_ci	.hwcg_bit = 1,
154362306a36Sopenharmony_ci	.clkr = {
154462306a36Sopenharmony_ci		.enable_reg = 0x62000,
154562306a36Sopenharmony_ci		.enable_mask = BIT(30),
154662306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
154762306a36Sopenharmony_ci			.name = "gcc_pcie_0_pipe_clk",
154862306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
154962306a36Sopenharmony_ci				&gcc_pcie_0_pipe_clk_src.clkr.hw,
155062306a36Sopenharmony_ci			},
155162306a36Sopenharmony_ci			.num_parents = 1,
155262306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
155362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
155462306a36Sopenharmony_ci		},
155562306a36Sopenharmony_ci	},
155662306a36Sopenharmony_ci};
155762306a36Sopenharmony_ci
155862306a36Sopenharmony_cistatic struct clk_branch gcc_pcie_0_slv_axi_clk = {
155962306a36Sopenharmony_ci	.halt_reg = 0x9d01c,
156062306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
156162306a36Sopenharmony_ci	.hwcg_reg = 0x9d01c,
156262306a36Sopenharmony_ci	.hwcg_bit = 1,
156362306a36Sopenharmony_ci	.clkr = {
156462306a36Sopenharmony_ci		.enable_reg = 0x62000,
156562306a36Sopenharmony_ci		.enable_mask = BIT(26),
156662306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
156762306a36Sopenharmony_ci			.name = "gcc_pcie_0_slv_axi_clk",
156862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
156962306a36Sopenharmony_ci		},
157062306a36Sopenharmony_ci	},
157162306a36Sopenharmony_ci};
157262306a36Sopenharmony_ci
157362306a36Sopenharmony_cistatic struct clk_branch gcc_pcie_0_slv_q2a_axi_clk = {
157462306a36Sopenharmony_ci	.halt_reg = 0x9d018,
157562306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
157662306a36Sopenharmony_ci	.hwcg_reg = 0x9d018,
157762306a36Sopenharmony_ci	.hwcg_bit = 1,
157862306a36Sopenharmony_ci	.clkr = {
157962306a36Sopenharmony_ci		.enable_reg = 0x62000,
158062306a36Sopenharmony_ci		.enable_mask = BIT(25),
158162306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
158262306a36Sopenharmony_ci			.name = "gcc_pcie_0_slv_q2a_axi_clk",
158362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
158462306a36Sopenharmony_ci		},
158562306a36Sopenharmony_ci	},
158662306a36Sopenharmony_ci};
158762306a36Sopenharmony_ci
158862306a36Sopenharmony_cistatic struct clk_branch gcc_pdm2_clk = {
158962306a36Sopenharmony_ci	.halt_reg = 0x4300c,
159062306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
159162306a36Sopenharmony_ci	.clkr = {
159262306a36Sopenharmony_ci		.enable_reg = 0x4300c,
159362306a36Sopenharmony_ci		.enable_mask = BIT(0),
159462306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
159562306a36Sopenharmony_ci			.name = "gcc_pdm2_clk",
159662306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
159762306a36Sopenharmony_ci				&gcc_pdm2_clk_src.clkr.hw,
159862306a36Sopenharmony_ci			},
159962306a36Sopenharmony_ci			.num_parents = 1,
160062306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
160162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
160262306a36Sopenharmony_ci		},
160362306a36Sopenharmony_ci	},
160462306a36Sopenharmony_ci};
160562306a36Sopenharmony_ci
160662306a36Sopenharmony_cistatic struct clk_branch gcc_pdm_ahb_clk = {
160762306a36Sopenharmony_ci	.halt_reg = 0x43004,
160862306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
160962306a36Sopenharmony_ci	.hwcg_reg = 0x43004,
161062306a36Sopenharmony_ci	.hwcg_bit = 1,
161162306a36Sopenharmony_ci	.clkr = {
161262306a36Sopenharmony_ci		.enable_reg = 0x43004,
161362306a36Sopenharmony_ci		.enable_mask = BIT(0),
161462306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
161562306a36Sopenharmony_ci			.name = "gcc_pdm_ahb_clk",
161662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
161762306a36Sopenharmony_ci		},
161862306a36Sopenharmony_ci	},
161962306a36Sopenharmony_ci};
162062306a36Sopenharmony_ci
162162306a36Sopenharmony_cistatic struct clk_branch gcc_pdm_xo4_clk = {
162262306a36Sopenharmony_ci	.halt_reg = 0x43008,
162362306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
162462306a36Sopenharmony_ci	.clkr = {
162562306a36Sopenharmony_ci		.enable_reg = 0x43008,
162662306a36Sopenharmony_ci		.enable_mask = BIT(0),
162762306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
162862306a36Sopenharmony_ci			.name = "gcc_pdm_xo4_clk",
162962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
163062306a36Sopenharmony_ci		},
163162306a36Sopenharmony_ci	},
163262306a36Sopenharmony_ci};
163362306a36Sopenharmony_ci
163462306a36Sopenharmony_cistatic struct clk_branch gcc_qmip_anoc_pcie_clk = {
163562306a36Sopenharmony_ci	.halt_reg = 0x84044,
163662306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
163762306a36Sopenharmony_ci	.hwcg_reg = 0x84044,
163862306a36Sopenharmony_ci	.hwcg_bit = 1,
163962306a36Sopenharmony_ci	.clkr = {
164062306a36Sopenharmony_ci		.enable_reg = 0x84044,
164162306a36Sopenharmony_ci		.enable_mask = BIT(0),
164262306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
164362306a36Sopenharmony_ci			.name = "gcc_qmip_anoc_pcie_clk",
164462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
164562306a36Sopenharmony_ci		},
164662306a36Sopenharmony_ci	},
164762306a36Sopenharmony_ci};
164862306a36Sopenharmony_ci
164962306a36Sopenharmony_cistatic struct clk_branch gcc_qmip_ecpri_dma0_clk = {
165062306a36Sopenharmony_ci	.halt_reg = 0x84038,
165162306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
165262306a36Sopenharmony_ci	.hwcg_reg = 0x84038,
165362306a36Sopenharmony_ci	.hwcg_bit = 1,
165462306a36Sopenharmony_ci	.clkr = {
165562306a36Sopenharmony_ci		.enable_reg = 0x84038,
165662306a36Sopenharmony_ci		.enable_mask = BIT(0),
165762306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
165862306a36Sopenharmony_ci			.name = "gcc_qmip_ecpri_dma0_clk",
165962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
166062306a36Sopenharmony_ci		},
166162306a36Sopenharmony_ci	},
166262306a36Sopenharmony_ci};
166362306a36Sopenharmony_ci
166462306a36Sopenharmony_cistatic struct clk_branch gcc_qmip_ecpri_dma1_clk = {
166562306a36Sopenharmony_ci	.halt_reg = 0x8403c,
166662306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
166762306a36Sopenharmony_ci	.hwcg_reg = 0x8403c,
166862306a36Sopenharmony_ci	.hwcg_bit = 1,
166962306a36Sopenharmony_ci	.clkr = {
167062306a36Sopenharmony_ci		.enable_reg = 0x8403c,
167162306a36Sopenharmony_ci		.enable_mask = BIT(0),
167262306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
167362306a36Sopenharmony_ci			.name = "gcc_qmip_ecpri_dma1_clk",
167462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
167562306a36Sopenharmony_ci		},
167662306a36Sopenharmony_ci	},
167762306a36Sopenharmony_ci};
167862306a36Sopenharmony_ci
167962306a36Sopenharmony_cistatic struct clk_branch gcc_qmip_ecpri_gsi_clk = {
168062306a36Sopenharmony_ci	.halt_reg = 0x84040,
168162306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
168262306a36Sopenharmony_ci	.hwcg_reg = 0x84040,
168362306a36Sopenharmony_ci	.hwcg_bit = 1,
168462306a36Sopenharmony_ci	.clkr = {
168562306a36Sopenharmony_ci		.enable_reg = 0x84040,
168662306a36Sopenharmony_ci		.enable_mask = BIT(0),
168762306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
168862306a36Sopenharmony_ci			.name = "gcc_qmip_ecpri_gsi_clk",
168962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
169062306a36Sopenharmony_ci		},
169162306a36Sopenharmony_ci	},
169262306a36Sopenharmony_ci};
169362306a36Sopenharmony_ci
169462306a36Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap0_core_2x_clk = {
169562306a36Sopenharmony_ci	.halt_reg = 0x27018,
169662306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
169762306a36Sopenharmony_ci	.clkr = {
169862306a36Sopenharmony_ci		.enable_reg = 0x62008,
169962306a36Sopenharmony_ci		.enable_mask = BIT(9),
170062306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
170162306a36Sopenharmony_ci			.name = "gcc_qupv3_wrap0_core_2x_clk",
170262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
170362306a36Sopenharmony_ci		},
170462306a36Sopenharmony_ci	},
170562306a36Sopenharmony_ci};
170662306a36Sopenharmony_ci
170762306a36Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap0_core_clk = {
170862306a36Sopenharmony_ci	.halt_reg = 0x2700c,
170962306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
171062306a36Sopenharmony_ci	.clkr = {
171162306a36Sopenharmony_ci		.enable_reg = 0x62008,
171262306a36Sopenharmony_ci		.enable_mask = BIT(8),
171362306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
171462306a36Sopenharmony_ci			.name = "gcc_qupv3_wrap0_core_clk",
171562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
171662306a36Sopenharmony_ci		},
171762306a36Sopenharmony_ci	},
171862306a36Sopenharmony_ci};
171962306a36Sopenharmony_ci
172062306a36Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap0_s0_clk = {
172162306a36Sopenharmony_ci	.halt_reg = 0x2714c,
172262306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
172362306a36Sopenharmony_ci	.clkr = {
172462306a36Sopenharmony_ci		.enable_reg = 0x62008,
172562306a36Sopenharmony_ci		.enable_mask = BIT(10),
172662306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
172762306a36Sopenharmony_ci			.name = "gcc_qupv3_wrap0_s0_clk",
172862306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
172962306a36Sopenharmony_ci				&gcc_qupv3_wrap0_s0_clk_src.clkr.hw,
173062306a36Sopenharmony_ci			},
173162306a36Sopenharmony_ci			.num_parents = 1,
173262306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
173362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
173462306a36Sopenharmony_ci		},
173562306a36Sopenharmony_ci	},
173662306a36Sopenharmony_ci};
173762306a36Sopenharmony_ci
173862306a36Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap0_s1_clk = {
173962306a36Sopenharmony_ci	.halt_reg = 0x27280,
174062306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
174162306a36Sopenharmony_ci	.clkr = {
174262306a36Sopenharmony_ci		.enable_reg = 0x62008,
174362306a36Sopenharmony_ci		.enable_mask = BIT(11),
174462306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
174562306a36Sopenharmony_ci			.name = "gcc_qupv3_wrap0_s1_clk",
174662306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
174762306a36Sopenharmony_ci				&gcc_qupv3_wrap0_s1_clk_src.clkr.hw,
174862306a36Sopenharmony_ci			},
174962306a36Sopenharmony_ci			.num_parents = 1,
175062306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
175162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
175262306a36Sopenharmony_ci		},
175362306a36Sopenharmony_ci	},
175462306a36Sopenharmony_ci};
175562306a36Sopenharmony_ci
175662306a36Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap0_s2_clk = {
175762306a36Sopenharmony_ci	.halt_reg = 0x273b4,
175862306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
175962306a36Sopenharmony_ci	.clkr = {
176062306a36Sopenharmony_ci		.enable_reg = 0x62008,
176162306a36Sopenharmony_ci		.enable_mask = BIT(12),
176262306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
176362306a36Sopenharmony_ci			.name = "gcc_qupv3_wrap0_s2_clk",
176462306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
176562306a36Sopenharmony_ci				&gcc_qupv3_wrap0_s2_clk_src.clkr.hw,
176662306a36Sopenharmony_ci			},
176762306a36Sopenharmony_ci			.num_parents = 1,
176862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
176962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
177062306a36Sopenharmony_ci		},
177162306a36Sopenharmony_ci	},
177262306a36Sopenharmony_ci};
177362306a36Sopenharmony_ci
177462306a36Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap0_s3_clk = {
177562306a36Sopenharmony_ci	.halt_reg = 0x274e8,
177662306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
177762306a36Sopenharmony_ci	.clkr = {
177862306a36Sopenharmony_ci		.enable_reg = 0x62008,
177962306a36Sopenharmony_ci		.enable_mask = BIT(13),
178062306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
178162306a36Sopenharmony_ci			.name = "gcc_qupv3_wrap0_s3_clk",
178262306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
178362306a36Sopenharmony_ci				&gcc_qupv3_wrap0_s3_clk_src.clkr.hw,
178462306a36Sopenharmony_ci			},
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_qupv3_wrap0_s4_clk = {
179362306a36Sopenharmony_ci	.halt_reg = 0x2761c,
179462306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
179562306a36Sopenharmony_ci	.clkr = {
179662306a36Sopenharmony_ci		.enable_reg = 0x62008,
179762306a36Sopenharmony_ci		.enable_mask = BIT(14),
179862306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
179962306a36Sopenharmony_ci			.name = "gcc_qupv3_wrap0_s4_clk",
180062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
180162306a36Sopenharmony_ci				&gcc_qupv3_wrap0_s4_clk_src.clkr.hw,
180262306a36Sopenharmony_ci			},
180362306a36Sopenharmony_ci			.num_parents = 1,
180462306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
180562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
180662306a36Sopenharmony_ci		},
180762306a36Sopenharmony_ci	},
180862306a36Sopenharmony_ci};
180962306a36Sopenharmony_ci
181062306a36Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap0_s5_clk = {
181162306a36Sopenharmony_ci	.halt_reg = 0x27750,
181262306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
181362306a36Sopenharmony_ci	.clkr = {
181462306a36Sopenharmony_ci		.enable_reg = 0x62008,
181562306a36Sopenharmony_ci		.enable_mask = BIT(15),
181662306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
181762306a36Sopenharmony_ci			.name = "gcc_qupv3_wrap0_s5_clk",
181862306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
181962306a36Sopenharmony_ci				&gcc_qupv3_wrap0_s5_clk_src.clkr.hw,
182062306a36Sopenharmony_ci			},
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_qupv3_wrap0_s6_clk = {
182962306a36Sopenharmony_ci	.halt_reg = 0x27884,
183062306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
183162306a36Sopenharmony_ci	.clkr = {
183262306a36Sopenharmony_ci		.enable_reg = 0x62008,
183362306a36Sopenharmony_ci		.enable_mask = BIT(16),
183462306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
183562306a36Sopenharmony_ci			.name = "gcc_qupv3_wrap0_s6_clk",
183662306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
183762306a36Sopenharmony_ci				&gcc_qupv3_wrap0_s6_clk_src.clkr.hw,
183862306a36Sopenharmony_ci			},
183962306a36Sopenharmony_ci			.num_parents = 1,
184062306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
184162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
184262306a36Sopenharmony_ci		},
184362306a36Sopenharmony_ci	},
184462306a36Sopenharmony_ci};
184562306a36Sopenharmony_ci
184662306a36Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap0_s7_clk = {
184762306a36Sopenharmony_ci	.halt_reg = 0x279b8,
184862306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
184962306a36Sopenharmony_ci	.clkr = {
185062306a36Sopenharmony_ci		.enable_reg = 0x62008,
185162306a36Sopenharmony_ci		.enable_mask = BIT(17),
185262306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
185362306a36Sopenharmony_ci			.name = "gcc_qupv3_wrap0_s7_clk",
185462306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
185562306a36Sopenharmony_ci				&gcc_qupv3_wrap0_s7_clk_src.clkr.hw,
185662306a36Sopenharmony_ci			},
185762306a36Sopenharmony_ci			.num_parents = 1,
185862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
185962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
186062306a36Sopenharmony_ci		},
186162306a36Sopenharmony_ci	},
186262306a36Sopenharmony_ci};
186362306a36Sopenharmony_ci
186462306a36Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap1_core_2x_clk = {
186562306a36Sopenharmony_ci	.halt_reg = 0x28018,
186662306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
186762306a36Sopenharmony_ci	.clkr = {
186862306a36Sopenharmony_ci		.enable_reg = 0x62008,
186962306a36Sopenharmony_ci		.enable_mask = BIT(18),
187062306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
187162306a36Sopenharmony_ci			.name = "gcc_qupv3_wrap1_core_2x_clk",
187262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
187362306a36Sopenharmony_ci		},
187462306a36Sopenharmony_ci	},
187562306a36Sopenharmony_ci};
187662306a36Sopenharmony_ci
187762306a36Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap1_core_clk = {
187862306a36Sopenharmony_ci	.halt_reg = 0x2800c,
187962306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
188062306a36Sopenharmony_ci	.clkr = {
188162306a36Sopenharmony_ci		.enable_reg = 0x62008,
188262306a36Sopenharmony_ci		.enable_mask = BIT(19),
188362306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
188462306a36Sopenharmony_ci			.name = "gcc_qupv3_wrap1_core_clk",
188562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
188662306a36Sopenharmony_ci		},
188762306a36Sopenharmony_ci	},
188862306a36Sopenharmony_ci};
188962306a36Sopenharmony_ci
189062306a36Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap1_s0_clk = {
189162306a36Sopenharmony_ci	.halt_reg = 0x2814c,
189262306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
189362306a36Sopenharmony_ci	.clkr = {
189462306a36Sopenharmony_ci		.enable_reg = 0x62008,
189562306a36Sopenharmony_ci		.enable_mask = BIT(22),
189662306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
189762306a36Sopenharmony_ci			.name = "gcc_qupv3_wrap1_s0_clk",
189862306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
189962306a36Sopenharmony_ci				&gcc_qupv3_wrap1_s0_clk_src.clkr.hw,
190062306a36Sopenharmony_ci			},
190162306a36Sopenharmony_ci			.num_parents = 1,
190262306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
190362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
190462306a36Sopenharmony_ci		},
190562306a36Sopenharmony_ci	},
190662306a36Sopenharmony_ci};
190762306a36Sopenharmony_ci
190862306a36Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap1_s1_clk = {
190962306a36Sopenharmony_ci	.halt_reg = 0x28280,
191062306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
191162306a36Sopenharmony_ci	.clkr = {
191262306a36Sopenharmony_ci		.enable_reg = 0x62008,
191362306a36Sopenharmony_ci		.enable_mask = BIT(23),
191462306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
191562306a36Sopenharmony_ci			.name = "gcc_qupv3_wrap1_s1_clk",
191662306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
191762306a36Sopenharmony_ci				&gcc_qupv3_wrap1_s1_clk_src.clkr.hw,
191862306a36Sopenharmony_ci			},
191962306a36Sopenharmony_ci			.num_parents = 1,
192062306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
192162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
192262306a36Sopenharmony_ci		},
192362306a36Sopenharmony_ci	},
192462306a36Sopenharmony_ci};
192562306a36Sopenharmony_ci
192662306a36Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap1_s2_clk = {
192762306a36Sopenharmony_ci	.halt_reg = 0x283b4,
192862306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
192962306a36Sopenharmony_ci	.clkr = {
193062306a36Sopenharmony_ci		.enable_reg = 0x62008,
193162306a36Sopenharmony_ci		.enable_mask = BIT(24),
193262306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
193362306a36Sopenharmony_ci			.name = "gcc_qupv3_wrap1_s2_clk",
193462306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
193562306a36Sopenharmony_ci				&gcc_qupv3_wrap1_s2_clk_src.clkr.hw,
193662306a36Sopenharmony_ci			},
193762306a36Sopenharmony_ci			.num_parents = 1,
193862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
193962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
194062306a36Sopenharmony_ci		},
194162306a36Sopenharmony_ci	},
194262306a36Sopenharmony_ci};
194362306a36Sopenharmony_ci
194462306a36Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap1_s3_clk = {
194562306a36Sopenharmony_ci	.halt_reg = 0x284e8,
194662306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
194762306a36Sopenharmony_ci	.clkr = {
194862306a36Sopenharmony_ci		.enable_reg = 0x62008,
194962306a36Sopenharmony_ci		.enable_mask = BIT(25),
195062306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
195162306a36Sopenharmony_ci			.name = "gcc_qupv3_wrap1_s3_clk",
195262306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
195362306a36Sopenharmony_ci				&gcc_qupv3_wrap1_s3_clk_src.clkr.hw,
195462306a36Sopenharmony_ci			},
195562306a36Sopenharmony_ci			.num_parents = 1,
195662306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
195762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
195862306a36Sopenharmony_ci		},
195962306a36Sopenharmony_ci	},
196062306a36Sopenharmony_ci};
196162306a36Sopenharmony_ci
196262306a36Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap1_s4_clk = {
196362306a36Sopenharmony_ci	.halt_reg = 0x2861c,
196462306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
196562306a36Sopenharmony_ci	.clkr = {
196662306a36Sopenharmony_ci		.enable_reg = 0x62008,
196762306a36Sopenharmony_ci		.enable_mask = BIT(26),
196862306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
196962306a36Sopenharmony_ci			.name = "gcc_qupv3_wrap1_s4_clk",
197062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
197162306a36Sopenharmony_ci				&gcc_qupv3_wrap1_s4_clk_src.clkr.hw,
197262306a36Sopenharmony_ci			},
197362306a36Sopenharmony_ci			.num_parents = 1,
197462306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
197562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
197662306a36Sopenharmony_ci		},
197762306a36Sopenharmony_ci	},
197862306a36Sopenharmony_ci};
197962306a36Sopenharmony_ci
198062306a36Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap1_s5_clk = {
198162306a36Sopenharmony_ci	.halt_reg = 0x28750,
198262306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
198362306a36Sopenharmony_ci	.clkr = {
198462306a36Sopenharmony_ci		.enable_reg = 0x62008,
198562306a36Sopenharmony_ci		.enable_mask = BIT(27),
198662306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
198762306a36Sopenharmony_ci			.name = "gcc_qupv3_wrap1_s5_clk",
198862306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
198962306a36Sopenharmony_ci				&gcc_qupv3_wrap1_s5_clk_src.clkr.hw,
199062306a36Sopenharmony_ci			},
199162306a36Sopenharmony_ci			.num_parents = 1,
199262306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
199362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
199462306a36Sopenharmony_ci		},
199562306a36Sopenharmony_ci	},
199662306a36Sopenharmony_ci};
199762306a36Sopenharmony_ci
199862306a36Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap1_s6_clk = {
199962306a36Sopenharmony_ci	.halt_reg = 0x28884,
200062306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
200162306a36Sopenharmony_ci	.clkr = {
200262306a36Sopenharmony_ci		.enable_reg = 0x62008,
200362306a36Sopenharmony_ci		.enable_mask = BIT(28),
200462306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
200562306a36Sopenharmony_ci			.name = "gcc_qupv3_wrap1_s6_clk",
200662306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
200762306a36Sopenharmony_ci				&gcc_qupv3_wrap1_s6_clk_src.clkr.hw,
200862306a36Sopenharmony_ci			},
200962306a36Sopenharmony_ci			.num_parents = 1,
201062306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
201162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
201262306a36Sopenharmony_ci		},
201362306a36Sopenharmony_ci	},
201462306a36Sopenharmony_ci};
201562306a36Sopenharmony_ci
201662306a36Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap1_s7_clk = {
201762306a36Sopenharmony_ci	.halt_reg = 0x289b8,
201862306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
201962306a36Sopenharmony_ci	.clkr = {
202062306a36Sopenharmony_ci		.enable_reg = 0x62008,
202162306a36Sopenharmony_ci		.enable_mask = BIT(29),
202262306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
202362306a36Sopenharmony_ci			.name = "gcc_qupv3_wrap1_s7_clk",
202462306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
202562306a36Sopenharmony_ci				&gcc_qupv3_wrap1_s7_clk_src.clkr.hw,
202662306a36Sopenharmony_ci			},
202762306a36Sopenharmony_ci			.num_parents = 1,
202862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
202962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
203062306a36Sopenharmony_ci		},
203162306a36Sopenharmony_ci	},
203262306a36Sopenharmony_ci};
203362306a36Sopenharmony_ci
203462306a36Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap_0_m_ahb_clk = {
203562306a36Sopenharmony_ci	.halt_reg = 0x27004,
203662306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
203762306a36Sopenharmony_ci	.hwcg_reg = 0x27004,
203862306a36Sopenharmony_ci	.hwcg_bit = 1,
203962306a36Sopenharmony_ci	.clkr = {
204062306a36Sopenharmony_ci		.enable_reg = 0x62008,
204162306a36Sopenharmony_ci		.enable_mask = BIT(6),
204262306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
204362306a36Sopenharmony_ci			.name = "gcc_qupv3_wrap_0_m_ahb_clk",
204462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
204562306a36Sopenharmony_ci		},
204662306a36Sopenharmony_ci	},
204762306a36Sopenharmony_ci};
204862306a36Sopenharmony_ci
204962306a36Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap_0_s_ahb_clk = {
205062306a36Sopenharmony_ci	.halt_reg = 0x27008,
205162306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
205262306a36Sopenharmony_ci	.hwcg_reg = 0x27008,
205362306a36Sopenharmony_ci	.hwcg_bit = 1,
205462306a36Sopenharmony_ci	.clkr = {
205562306a36Sopenharmony_ci		.enable_reg = 0x62008,
205662306a36Sopenharmony_ci		.enable_mask = BIT(7),
205762306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
205862306a36Sopenharmony_ci			.name = "gcc_qupv3_wrap_0_s_ahb_clk",
205962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
206062306a36Sopenharmony_ci		},
206162306a36Sopenharmony_ci	},
206262306a36Sopenharmony_ci};
206362306a36Sopenharmony_ci
206462306a36Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap_1_m_ahb_clk = {
206562306a36Sopenharmony_ci	.halt_reg = 0x28004,
206662306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
206762306a36Sopenharmony_ci	.hwcg_reg = 0x28004,
206862306a36Sopenharmony_ci	.hwcg_bit = 1,
206962306a36Sopenharmony_ci	.clkr = {
207062306a36Sopenharmony_ci		.enable_reg = 0x62008,
207162306a36Sopenharmony_ci		.enable_mask = BIT(20),
207262306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
207362306a36Sopenharmony_ci			.name = "gcc_qupv3_wrap_1_m_ahb_clk",
207462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
207562306a36Sopenharmony_ci		},
207662306a36Sopenharmony_ci	},
207762306a36Sopenharmony_ci};
207862306a36Sopenharmony_ci
207962306a36Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap_1_s_ahb_clk = {
208062306a36Sopenharmony_ci	.halt_reg = 0x28008,
208162306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
208262306a36Sopenharmony_ci	.hwcg_reg = 0x28008,
208362306a36Sopenharmony_ci	.hwcg_bit = 1,
208462306a36Sopenharmony_ci	.clkr = {
208562306a36Sopenharmony_ci		.enable_reg = 0x62008,
208662306a36Sopenharmony_ci		.enable_mask = BIT(21),
208762306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
208862306a36Sopenharmony_ci			.name = "gcc_qupv3_wrap_1_s_ahb_clk",
208962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
209062306a36Sopenharmony_ci		},
209162306a36Sopenharmony_ci	},
209262306a36Sopenharmony_ci};
209362306a36Sopenharmony_ci
209462306a36Sopenharmony_cistatic struct clk_branch gcc_sdcc5_ahb_clk = {
209562306a36Sopenharmony_ci	.halt_reg = 0x3b00c,
209662306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
209762306a36Sopenharmony_ci	.clkr = {
209862306a36Sopenharmony_ci		.enable_reg = 0x3b00c,
209962306a36Sopenharmony_ci		.enable_mask = BIT(0),
210062306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
210162306a36Sopenharmony_ci			.name = "gcc_sdcc5_ahb_clk",
210262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
210362306a36Sopenharmony_ci		},
210462306a36Sopenharmony_ci	},
210562306a36Sopenharmony_ci};
210662306a36Sopenharmony_ci
210762306a36Sopenharmony_cistatic struct clk_branch gcc_sdcc5_apps_clk = {
210862306a36Sopenharmony_ci	.halt_reg = 0x3b004,
210962306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
211062306a36Sopenharmony_ci	.clkr = {
211162306a36Sopenharmony_ci		.enable_reg = 0x3b004,
211262306a36Sopenharmony_ci		.enable_mask = BIT(0),
211362306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
211462306a36Sopenharmony_ci			.name = "gcc_sdcc5_apps_clk",
211562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
211662306a36Sopenharmony_ci				&gcc_sdcc5_apps_clk_src.clkr.hw,
211762306a36Sopenharmony_ci			},
211862306a36Sopenharmony_ci			.num_parents = 1,
211962306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
212062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
212162306a36Sopenharmony_ci		},
212262306a36Sopenharmony_ci	},
212362306a36Sopenharmony_ci};
212462306a36Sopenharmony_ci
212562306a36Sopenharmony_cistatic struct clk_branch gcc_sdcc5_ice_core_clk = {
212662306a36Sopenharmony_ci	.halt_reg = 0x3b010,
212762306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
212862306a36Sopenharmony_ci	.clkr = {
212962306a36Sopenharmony_ci		.enable_reg = 0x3b010,
213062306a36Sopenharmony_ci		.enable_mask = BIT(0),
213162306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
213262306a36Sopenharmony_ci			.name = "gcc_sdcc5_ice_core_clk",
213362306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
213462306a36Sopenharmony_ci				&gcc_sdcc5_ice_core_clk_src.clkr.hw,
213562306a36Sopenharmony_ci			},
213662306a36Sopenharmony_ci			.num_parents = 1,
213762306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
213862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
213962306a36Sopenharmony_ci		},
214062306a36Sopenharmony_ci	},
214162306a36Sopenharmony_ci};
214262306a36Sopenharmony_ci
214362306a36Sopenharmony_cistatic struct clk_branch gcc_sm_bus_ahb_clk = {
214462306a36Sopenharmony_ci	.halt_reg = 0x5b004,
214562306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
214662306a36Sopenharmony_ci	.clkr = {
214762306a36Sopenharmony_ci		.enable_reg = 0x5b004,
214862306a36Sopenharmony_ci		.enable_mask = BIT(0),
214962306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
215062306a36Sopenharmony_ci			.name = "gcc_sm_bus_ahb_clk",
215162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
215262306a36Sopenharmony_ci		},
215362306a36Sopenharmony_ci	},
215462306a36Sopenharmony_ci};
215562306a36Sopenharmony_ci
215662306a36Sopenharmony_cistatic struct clk_branch gcc_sm_bus_xo_clk = {
215762306a36Sopenharmony_ci	.halt_reg = 0x5b008,
215862306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
215962306a36Sopenharmony_ci	.clkr = {
216062306a36Sopenharmony_ci		.enable_reg = 0x5b008,
216162306a36Sopenharmony_ci		.enable_mask = BIT(0),
216262306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
216362306a36Sopenharmony_ci			.name = "gcc_sm_bus_xo_clk",
216462306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
216562306a36Sopenharmony_ci				&gcc_sm_bus_xo_clk_src.clkr.hw,
216662306a36Sopenharmony_ci			},
216762306a36Sopenharmony_ci			.num_parents = 1,
216862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
216962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
217062306a36Sopenharmony_ci		},
217162306a36Sopenharmony_ci	},
217262306a36Sopenharmony_ci};
217362306a36Sopenharmony_ci
217462306a36Sopenharmony_cistatic struct clk_branch gcc_snoc_cnoc_gemnoc_pcie_qx_clk = {
217562306a36Sopenharmony_ci	.halt_reg = 0x9200c,
217662306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_SKIP,
217762306a36Sopenharmony_ci	.hwcg_reg = 0x9200c,
217862306a36Sopenharmony_ci	.hwcg_bit = 1,
217962306a36Sopenharmony_ci	.clkr = {
218062306a36Sopenharmony_ci		.enable_reg = 0x62000,
218162306a36Sopenharmony_ci		.enable_mask = BIT(11),
218262306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
218362306a36Sopenharmony_ci			.name = "gcc_snoc_cnoc_gemnoc_pcie_qx_clk",
218462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
218562306a36Sopenharmony_ci		},
218662306a36Sopenharmony_ci	},
218762306a36Sopenharmony_ci};
218862306a36Sopenharmony_ci
218962306a36Sopenharmony_cistatic struct clk_branch gcc_snoc_cnoc_gemnoc_pcie_south_qx_clk = {
219062306a36Sopenharmony_ci	.halt_reg = 0x92010,
219162306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_SKIP,
219262306a36Sopenharmony_ci	.hwcg_reg = 0x92010,
219362306a36Sopenharmony_ci	.hwcg_bit = 1,
219462306a36Sopenharmony_ci	.clkr = {
219562306a36Sopenharmony_ci		.enable_reg = 0x62000,
219662306a36Sopenharmony_ci		.enable_mask = BIT(12),
219762306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
219862306a36Sopenharmony_ci			.name = "gcc_snoc_cnoc_gemnoc_pcie_south_qx_clk",
219962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
220062306a36Sopenharmony_ci		},
220162306a36Sopenharmony_ci	},
220262306a36Sopenharmony_ci};
220362306a36Sopenharmony_ci
220462306a36Sopenharmony_cistatic struct clk_branch gcc_snoc_cnoc_pcie_qx_clk = {
220562306a36Sopenharmony_ci	.halt_reg = 0x84030,
220662306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
220762306a36Sopenharmony_ci	.clkr = {
220862306a36Sopenharmony_ci		.enable_reg = 0x84030,
220962306a36Sopenharmony_ci		.enable_mask = BIT(0),
221062306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
221162306a36Sopenharmony_ci			.name = "gcc_snoc_cnoc_pcie_qx_clk",
221262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
221362306a36Sopenharmony_ci		},
221462306a36Sopenharmony_ci	},
221562306a36Sopenharmony_ci};
221662306a36Sopenharmony_ci
221762306a36Sopenharmony_cistatic struct clk_branch gcc_snoc_pcie_sf_center_qx_clk = {
221862306a36Sopenharmony_ci	.halt_reg = 0x92014,
221962306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_SKIP,
222062306a36Sopenharmony_ci	.hwcg_reg = 0x92014,
222162306a36Sopenharmony_ci	.hwcg_bit = 1,
222262306a36Sopenharmony_ci	.clkr = {
222362306a36Sopenharmony_ci		.enable_reg = 0x62000,
222462306a36Sopenharmony_ci		.enable_mask = BIT(19),
222562306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
222662306a36Sopenharmony_ci			.name = "gcc_snoc_pcie_sf_center_qx_clk",
222762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
222862306a36Sopenharmony_ci		},
222962306a36Sopenharmony_ci	},
223062306a36Sopenharmony_ci};
223162306a36Sopenharmony_ci
223262306a36Sopenharmony_cistatic struct clk_branch gcc_snoc_pcie_sf_south_qx_clk = {
223362306a36Sopenharmony_ci	.halt_reg = 0x92018,
223462306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_SKIP,
223562306a36Sopenharmony_ci	.hwcg_reg = 0x92018,
223662306a36Sopenharmony_ci	.hwcg_bit = 1,
223762306a36Sopenharmony_ci	.clkr = {
223862306a36Sopenharmony_ci		.enable_reg = 0x62000,
223962306a36Sopenharmony_ci		.enable_mask = BIT(22),
224062306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
224162306a36Sopenharmony_ci			.name = "gcc_snoc_pcie_sf_south_qx_clk",
224262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
224362306a36Sopenharmony_ci		},
224462306a36Sopenharmony_ci	},
224562306a36Sopenharmony_ci};
224662306a36Sopenharmony_ci
224762306a36Sopenharmony_cistatic struct clk_branch gcc_tsc_cfg_ahb_clk = {
224862306a36Sopenharmony_ci	.halt_reg = 0x5700c,
224962306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
225062306a36Sopenharmony_ci	.clkr = {
225162306a36Sopenharmony_ci		.enable_reg = 0x5700c,
225262306a36Sopenharmony_ci		.enable_mask = BIT(0),
225362306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
225462306a36Sopenharmony_ci			.name = "gcc_tsc_cfg_ahb_clk",
225562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
225662306a36Sopenharmony_ci		},
225762306a36Sopenharmony_ci	},
225862306a36Sopenharmony_ci};
225962306a36Sopenharmony_ci
226062306a36Sopenharmony_cistatic struct clk_branch gcc_tsc_cntr_clk = {
226162306a36Sopenharmony_ci	.halt_reg = 0x57004,
226262306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
226362306a36Sopenharmony_ci	.clkr = {
226462306a36Sopenharmony_ci		.enable_reg = 0x57004,
226562306a36Sopenharmony_ci		.enable_mask = BIT(0),
226662306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
226762306a36Sopenharmony_ci			.name = "gcc_tsc_cntr_clk",
226862306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
226962306a36Sopenharmony_ci				&gcc_tsc_clk_src.clkr.hw,
227062306a36Sopenharmony_ci			},
227162306a36Sopenharmony_ci			.num_parents = 1,
227262306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
227362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
227462306a36Sopenharmony_ci		},
227562306a36Sopenharmony_ci	},
227662306a36Sopenharmony_ci};
227762306a36Sopenharmony_ci
227862306a36Sopenharmony_cistatic struct clk_branch gcc_tsc_etu_clk = {
227962306a36Sopenharmony_ci	.halt_reg = 0x57008,
228062306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
228162306a36Sopenharmony_ci	.clkr = {
228262306a36Sopenharmony_ci		.enable_reg = 0x57008,
228362306a36Sopenharmony_ci		.enable_mask = BIT(0),
228462306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
228562306a36Sopenharmony_ci			.name = "gcc_tsc_etu_clk",
228662306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
228762306a36Sopenharmony_ci				&gcc_tsc_clk_src.clkr.hw,
228862306a36Sopenharmony_ci			},
228962306a36Sopenharmony_ci			.num_parents = 1,
229062306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
229162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
229262306a36Sopenharmony_ci		},
229362306a36Sopenharmony_ci	},
229462306a36Sopenharmony_ci};
229562306a36Sopenharmony_ci
229662306a36Sopenharmony_cistatic struct clk_branch gcc_usb2_clkref_en = {
229762306a36Sopenharmony_ci	.halt_reg = 0x9c008,
229862306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
229962306a36Sopenharmony_ci	.clkr = {
230062306a36Sopenharmony_ci		.enable_reg = 0x9c008,
230162306a36Sopenharmony_ci		.enable_mask = BIT(0),
230262306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
230362306a36Sopenharmony_ci			.name = "gcc_usb2_clkref_en",
230462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
230562306a36Sopenharmony_ci		},
230662306a36Sopenharmony_ci	},
230762306a36Sopenharmony_ci};
230862306a36Sopenharmony_ci
230962306a36Sopenharmony_cistatic struct clk_branch gcc_usb30_prim_master_clk = {
231062306a36Sopenharmony_ci	.halt_reg = 0x49018,
231162306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
231262306a36Sopenharmony_ci	.clkr = {
231362306a36Sopenharmony_ci		.enable_reg = 0x49018,
231462306a36Sopenharmony_ci		.enable_mask = BIT(0),
231562306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
231662306a36Sopenharmony_ci			.name = "gcc_usb30_prim_master_clk",
231762306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
231862306a36Sopenharmony_ci				&gcc_usb30_prim_master_clk_src.clkr.hw,
231962306a36Sopenharmony_ci			},
232062306a36Sopenharmony_ci			.num_parents = 1,
232162306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
232262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
232362306a36Sopenharmony_ci		},
232462306a36Sopenharmony_ci	},
232562306a36Sopenharmony_ci};
232662306a36Sopenharmony_ci
232762306a36Sopenharmony_cistatic struct clk_branch gcc_usb30_prim_mock_utmi_clk = {
232862306a36Sopenharmony_ci	.halt_reg = 0x49024,
232962306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
233062306a36Sopenharmony_ci	.clkr = {
233162306a36Sopenharmony_ci		.enable_reg = 0x49024,
233262306a36Sopenharmony_ci		.enable_mask = BIT(0),
233362306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
233462306a36Sopenharmony_ci			.name = "gcc_usb30_prim_mock_utmi_clk",
233562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
233662306a36Sopenharmony_ci				&gcc_usb30_prim_mock_utmi_postdiv_clk_src.clkr.hw,
233762306a36Sopenharmony_ci			},
233862306a36Sopenharmony_ci			.num_parents = 1,
233962306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
234062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
234162306a36Sopenharmony_ci		},
234262306a36Sopenharmony_ci	},
234362306a36Sopenharmony_ci};
234462306a36Sopenharmony_ci
234562306a36Sopenharmony_cistatic struct clk_branch gcc_usb30_prim_sleep_clk = {
234662306a36Sopenharmony_ci	.halt_reg = 0x49020,
234762306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
234862306a36Sopenharmony_ci	.clkr = {
234962306a36Sopenharmony_ci		.enable_reg = 0x49020,
235062306a36Sopenharmony_ci		.enable_mask = BIT(0),
235162306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
235262306a36Sopenharmony_ci			.name = "gcc_usb30_prim_sleep_clk",
235362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
235462306a36Sopenharmony_ci		},
235562306a36Sopenharmony_ci	},
235662306a36Sopenharmony_ci};
235762306a36Sopenharmony_ci
235862306a36Sopenharmony_cistatic struct clk_branch gcc_usb3_prim_phy_aux_clk = {
235962306a36Sopenharmony_ci	.halt_reg = 0x49060,
236062306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
236162306a36Sopenharmony_ci	.clkr = {
236262306a36Sopenharmony_ci		.enable_reg = 0x49060,
236362306a36Sopenharmony_ci		.enable_mask = BIT(0),
236462306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
236562306a36Sopenharmony_ci			.name = "gcc_usb3_prim_phy_aux_clk",
236662306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
236762306a36Sopenharmony_ci				&gcc_usb3_prim_phy_aux_clk_src.clkr.hw,
236862306a36Sopenharmony_ci			},
236962306a36Sopenharmony_ci			.num_parents = 1,
237062306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
237162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
237262306a36Sopenharmony_ci		},
237362306a36Sopenharmony_ci	},
237462306a36Sopenharmony_ci};
237562306a36Sopenharmony_ci
237662306a36Sopenharmony_cistatic struct clk_branch gcc_usb3_prim_phy_com_aux_clk = {
237762306a36Sopenharmony_ci	.halt_reg = 0x49064,
237862306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
237962306a36Sopenharmony_ci	.clkr = {
238062306a36Sopenharmony_ci		.enable_reg = 0x49064,
238162306a36Sopenharmony_ci		.enable_mask = BIT(0),
238262306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
238362306a36Sopenharmony_ci			.name = "gcc_usb3_prim_phy_com_aux_clk",
238462306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
238562306a36Sopenharmony_ci				&gcc_usb3_prim_phy_aux_clk_src.clkr.hw,
238662306a36Sopenharmony_ci			},
238762306a36Sopenharmony_ci			.num_parents = 1,
238862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
238962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
239062306a36Sopenharmony_ci		},
239162306a36Sopenharmony_ci	},
239262306a36Sopenharmony_ci};
239362306a36Sopenharmony_ci
239462306a36Sopenharmony_cistatic struct clk_branch gcc_usb3_prim_phy_pipe_clk = {
239562306a36Sopenharmony_ci	.halt_reg = 0x49068,
239662306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_DELAY,
239762306a36Sopenharmony_ci	.hwcg_reg = 0x49068,
239862306a36Sopenharmony_ci	.hwcg_bit = 1,
239962306a36Sopenharmony_ci	.clkr = {
240062306a36Sopenharmony_ci		.enable_reg = 0x49068,
240162306a36Sopenharmony_ci		.enable_mask = BIT(0),
240262306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
240362306a36Sopenharmony_ci			.name = "gcc_usb3_prim_phy_pipe_clk",
240462306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
240562306a36Sopenharmony_ci				&gcc_usb3_prim_phy_pipe_clk_src.clkr.hw,
240662306a36Sopenharmony_ci			},
240762306a36Sopenharmony_ci			.num_parents = 1,
240862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
240962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
241062306a36Sopenharmony_ci		},
241162306a36Sopenharmony_ci	},
241262306a36Sopenharmony_ci};
241362306a36Sopenharmony_ci
241462306a36Sopenharmony_cistatic struct gdsc pcie_0_gdsc = {
241562306a36Sopenharmony_ci	.gdscr = 0x9d004,
241662306a36Sopenharmony_ci	.en_rest_wait_val = 0x2,
241762306a36Sopenharmony_ci	.en_few_wait_val = 0x2,
241862306a36Sopenharmony_ci	.clk_dis_wait_val = 0xf,
241962306a36Sopenharmony_ci	.pd = {
242062306a36Sopenharmony_ci		.name = "gcc_pcie_0_gdsc",
242162306a36Sopenharmony_ci	},
242262306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
242362306a36Sopenharmony_ci};
242462306a36Sopenharmony_ci
242562306a36Sopenharmony_cistatic struct gdsc pcie_0_phy_gdsc = {
242662306a36Sopenharmony_ci	.gdscr = 0x7c004,
242762306a36Sopenharmony_ci	.en_rest_wait_val = 0x2,
242862306a36Sopenharmony_ci	.en_few_wait_val = 0x2,
242962306a36Sopenharmony_ci	.clk_dis_wait_val = 0x2,
243062306a36Sopenharmony_ci	.pd = {
243162306a36Sopenharmony_ci		.name = "gcc_pcie_0_phy_gdsc",
243262306a36Sopenharmony_ci	},
243362306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
243462306a36Sopenharmony_ci};
243562306a36Sopenharmony_ci
243662306a36Sopenharmony_cistatic struct gdsc usb30_prim_gdsc = {
243762306a36Sopenharmony_ci	.gdscr = 0x49004,
243862306a36Sopenharmony_ci	.en_rest_wait_val = 0x2,
243962306a36Sopenharmony_ci	.en_few_wait_val = 0x2,
244062306a36Sopenharmony_ci	.clk_dis_wait_val = 0xf,
244162306a36Sopenharmony_ci	.pd = {
244262306a36Sopenharmony_ci		.name = "gcc_usb30_prim_gdsc",
244362306a36Sopenharmony_ci	},
244462306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
244562306a36Sopenharmony_ci};
244662306a36Sopenharmony_ci
244762306a36Sopenharmony_cistatic struct clk_regmap *gcc_qdu1000_clocks[] = {
244862306a36Sopenharmony_ci	[GCC_AGGRE_NOC_ECPRI_DMA_CLK] = &gcc_aggre_noc_ecpri_dma_clk.clkr,
244962306a36Sopenharmony_ci	[GCC_AGGRE_NOC_ECPRI_DMA_CLK_SRC] = &gcc_aggre_noc_ecpri_dma_clk_src.clkr,
245062306a36Sopenharmony_ci	[GCC_AGGRE_NOC_ECPRI_GSI_CLK_SRC] = &gcc_aggre_noc_ecpri_gsi_clk_src.clkr,
245162306a36Sopenharmony_ci	[GCC_BOOT_ROM_AHB_CLK] = &gcc_boot_rom_ahb_clk.clkr,
245262306a36Sopenharmony_ci	[GCC_CFG_NOC_ECPRI_CC_AHB_CLK] = &gcc_cfg_noc_ecpri_cc_ahb_clk.clkr,
245362306a36Sopenharmony_ci	[GCC_CFG_NOC_USB3_PRIM_AXI_CLK] = &gcc_cfg_noc_usb3_prim_axi_clk.clkr,
245462306a36Sopenharmony_ci	[GCC_DDRSS_ECPRI_DMA_CLK] = &gcc_ddrss_ecpri_dma_clk.clkr,
245562306a36Sopenharmony_ci	[GCC_ECPRI_AHB_CLK] = &gcc_ecpri_ahb_clk.clkr,
245662306a36Sopenharmony_ci	[GCC_ECPRI_CC_GPLL0_CLK_SRC] = &gcc_ecpri_cc_gpll0_clk_src.clkr,
245762306a36Sopenharmony_ci	[GCC_ECPRI_CC_GPLL1_EVEN_CLK_SRC] = &gcc_ecpri_cc_gpll1_even_clk_src.clkr,
245862306a36Sopenharmony_ci	[GCC_ECPRI_CC_GPLL2_EVEN_CLK_SRC] = &gcc_ecpri_cc_gpll2_even_clk_src.clkr,
245962306a36Sopenharmony_ci	[GCC_ECPRI_CC_GPLL3_CLK_SRC] = &gcc_ecpri_cc_gpll3_clk_src.clkr,
246062306a36Sopenharmony_ci	[GCC_ECPRI_CC_GPLL4_CLK_SRC] = &gcc_ecpri_cc_gpll4_clk_src.clkr,
246162306a36Sopenharmony_ci	[GCC_ECPRI_CC_GPLL5_EVEN_CLK_SRC] = &gcc_ecpri_cc_gpll5_even_clk_src.clkr,
246262306a36Sopenharmony_ci	[GCC_ECPRI_XO_CLK] = &gcc_ecpri_xo_clk.clkr,
246362306a36Sopenharmony_ci	[GCC_ETH_DBG_SNOC_AXI_CLK] = &gcc_eth_dbg_snoc_axi_clk.clkr,
246462306a36Sopenharmony_ci	[GCC_GEMNOC_PCIE_QX_CLK] = &gcc_gemnoc_pcie_qx_clk.clkr,
246562306a36Sopenharmony_ci	[GCC_GP1_CLK] = &gcc_gp1_clk.clkr,
246662306a36Sopenharmony_ci	[GCC_GP1_CLK_SRC] = &gcc_gp1_clk_src.clkr,
246762306a36Sopenharmony_ci	[GCC_GP2_CLK] = &gcc_gp2_clk.clkr,
246862306a36Sopenharmony_ci	[GCC_GP2_CLK_SRC] = &gcc_gp2_clk_src.clkr,
246962306a36Sopenharmony_ci	[GCC_GP3_CLK] = &gcc_gp3_clk.clkr,
247062306a36Sopenharmony_ci	[GCC_GP3_CLK_SRC] = &gcc_gp3_clk_src.clkr,
247162306a36Sopenharmony_ci	[GCC_GPLL0] = &gcc_gpll0.clkr,
247262306a36Sopenharmony_ci	[GCC_GPLL0_OUT_EVEN] = &gcc_gpll0_out_even.clkr,
247362306a36Sopenharmony_ci	[GCC_GPLL1] = &gcc_gpll1.clkr,
247462306a36Sopenharmony_ci	[GCC_GPLL2] = &gcc_gpll2.clkr,
247562306a36Sopenharmony_ci	[GCC_GPLL2_OUT_EVEN] = &gcc_gpll2_out_even.clkr,
247662306a36Sopenharmony_ci	[GCC_GPLL3] = &gcc_gpll3.clkr,
247762306a36Sopenharmony_ci	[GCC_GPLL4] = &gcc_gpll4.clkr,
247862306a36Sopenharmony_ci	[GCC_GPLL5] = &gcc_gpll5.clkr,
247962306a36Sopenharmony_ci	[GCC_GPLL5_OUT_EVEN] = &gcc_gpll5_out_even.clkr,
248062306a36Sopenharmony_ci	[GCC_GPLL6] = &gcc_gpll6.clkr,
248162306a36Sopenharmony_ci	[GCC_GPLL7] = &gcc_gpll7.clkr,
248262306a36Sopenharmony_ci	[GCC_GPLL8] = &gcc_gpll8.clkr,
248362306a36Sopenharmony_ci	[GCC_PCIE_0_AUX_CLK] = &gcc_pcie_0_aux_clk.clkr,
248462306a36Sopenharmony_ci	[GCC_PCIE_0_AUX_CLK_SRC] = &gcc_pcie_0_aux_clk_src.clkr,
248562306a36Sopenharmony_ci	[GCC_PCIE_0_CFG_AHB_CLK] = &gcc_pcie_0_cfg_ahb_clk.clkr,
248662306a36Sopenharmony_ci	[GCC_PCIE_0_CLKREF_EN] = &gcc_pcie_0_clkref_en.clkr,
248762306a36Sopenharmony_ci	[GCC_PCIE_0_MSTR_AXI_CLK] = &gcc_pcie_0_mstr_axi_clk.clkr,
248862306a36Sopenharmony_ci	[GCC_PCIE_0_PHY_AUX_CLK] = &gcc_pcie_0_phy_aux_clk.clkr,
248962306a36Sopenharmony_ci	[GCC_PCIE_0_PHY_RCHNG_CLK] = &gcc_pcie_0_phy_rchng_clk.clkr,
249062306a36Sopenharmony_ci	[GCC_PCIE_0_PHY_RCHNG_CLK_SRC] = &gcc_pcie_0_phy_rchng_clk_src.clkr,
249162306a36Sopenharmony_ci	[GCC_PCIE_0_PIPE_CLK] = &gcc_pcie_0_pipe_clk.clkr,
249262306a36Sopenharmony_ci	[GCC_PCIE_0_SLV_AXI_CLK] = &gcc_pcie_0_slv_axi_clk.clkr,
249362306a36Sopenharmony_ci	[GCC_PCIE_0_SLV_Q2A_AXI_CLK] = &gcc_pcie_0_slv_q2a_axi_clk.clkr,
249462306a36Sopenharmony_ci	[GCC_PDM2_CLK] = &gcc_pdm2_clk.clkr,
249562306a36Sopenharmony_ci	[GCC_PDM2_CLK_SRC] = &gcc_pdm2_clk_src.clkr,
249662306a36Sopenharmony_ci	[GCC_PDM_AHB_CLK] = &gcc_pdm_ahb_clk.clkr,
249762306a36Sopenharmony_ci	[GCC_PDM_XO4_CLK] = &gcc_pdm_xo4_clk.clkr,
249862306a36Sopenharmony_ci	[GCC_QMIP_ANOC_PCIE_CLK] = &gcc_qmip_anoc_pcie_clk.clkr,
249962306a36Sopenharmony_ci	[GCC_QMIP_ECPRI_DMA0_CLK] = &gcc_qmip_ecpri_dma0_clk.clkr,
250062306a36Sopenharmony_ci	[GCC_QMIP_ECPRI_DMA1_CLK] = &gcc_qmip_ecpri_dma1_clk.clkr,
250162306a36Sopenharmony_ci	[GCC_QMIP_ECPRI_GSI_CLK] = &gcc_qmip_ecpri_gsi_clk.clkr,
250262306a36Sopenharmony_ci	[GCC_QUPV3_WRAP0_CORE_2X_CLK] = &gcc_qupv3_wrap0_core_2x_clk.clkr,
250362306a36Sopenharmony_ci	[GCC_QUPV3_WRAP0_CORE_CLK] = &gcc_qupv3_wrap0_core_clk.clkr,
250462306a36Sopenharmony_ci	[GCC_QUPV3_WRAP0_S0_CLK] = &gcc_qupv3_wrap0_s0_clk.clkr,
250562306a36Sopenharmony_ci	[GCC_QUPV3_WRAP0_S0_CLK_SRC] = &gcc_qupv3_wrap0_s0_clk_src.clkr,
250662306a36Sopenharmony_ci	[GCC_QUPV3_WRAP0_S1_CLK] = &gcc_qupv3_wrap0_s1_clk.clkr,
250762306a36Sopenharmony_ci	[GCC_QUPV3_WRAP0_S1_CLK_SRC] = &gcc_qupv3_wrap0_s1_clk_src.clkr,
250862306a36Sopenharmony_ci	[GCC_QUPV3_WRAP0_S2_CLK] = &gcc_qupv3_wrap0_s2_clk.clkr,
250962306a36Sopenharmony_ci	[GCC_QUPV3_WRAP0_S2_CLK_SRC] = &gcc_qupv3_wrap0_s2_clk_src.clkr,
251062306a36Sopenharmony_ci	[GCC_QUPV3_WRAP0_S3_CLK] = &gcc_qupv3_wrap0_s3_clk.clkr,
251162306a36Sopenharmony_ci	[GCC_QUPV3_WRAP0_S3_CLK_SRC] = &gcc_qupv3_wrap0_s3_clk_src.clkr,
251262306a36Sopenharmony_ci	[GCC_QUPV3_WRAP0_S4_CLK] = &gcc_qupv3_wrap0_s4_clk.clkr,
251362306a36Sopenharmony_ci	[GCC_QUPV3_WRAP0_S4_CLK_SRC] = &gcc_qupv3_wrap0_s4_clk_src.clkr,
251462306a36Sopenharmony_ci	[GCC_QUPV3_WRAP0_S5_CLK] = &gcc_qupv3_wrap0_s5_clk.clkr,
251562306a36Sopenharmony_ci	[GCC_QUPV3_WRAP0_S5_CLK_SRC] = &gcc_qupv3_wrap0_s5_clk_src.clkr,
251662306a36Sopenharmony_ci	[GCC_QUPV3_WRAP0_S6_CLK] = &gcc_qupv3_wrap0_s6_clk.clkr,
251762306a36Sopenharmony_ci	[GCC_QUPV3_WRAP0_S6_CLK_SRC] = &gcc_qupv3_wrap0_s6_clk_src.clkr,
251862306a36Sopenharmony_ci	[GCC_QUPV3_WRAP0_S7_CLK] = &gcc_qupv3_wrap0_s7_clk.clkr,
251962306a36Sopenharmony_ci	[GCC_QUPV3_WRAP0_S7_CLK_SRC] = &gcc_qupv3_wrap0_s7_clk_src.clkr,
252062306a36Sopenharmony_ci	[GCC_QUPV3_WRAP1_CORE_2X_CLK] = &gcc_qupv3_wrap1_core_2x_clk.clkr,
252162306a36Sopenharmony_ci	[GCC_QUPV3_WRAP1_CORE_CLK] = &gcc_qupv3_wrap1_core_clk.clkr,
252262306a36Sopenharmony_ci	[GCC_QUPV3_WRAP1_S0_CLK] = &gcc_qupv3_wrap1_s0_clk.clkr,
252362306a36Sopenharmony_ci	[GCC_QUPV3_WRAP1_S0_CLK_SRC] = &gcc_qupv3_wrap1_s0_clk_src.clkr,
252462306a36Sopenharmony_ci	[GCC_QUPV3_WRAP1_S1_CLK] = &gcc_qupv3_wrap1_s1_clk.clkr,
252562306a36Sopenharmony_ci	[GCC_QUPV3_WRAP1_S1_CLK_SRC] = &gcc_qupv3_wrap1_s1_clk_src.clkr,
252662306a36Sopenharmony_ci	[GCC_QUPV3_WRAP1_S2_CLK] = &gcc_qupv3_wrap1_s2_clk.clkr,
252762306a36Sopenharmony_ci	[GCC_QUPV3_WRAP1_S2_CLK_SRC] = &gcc_qupv3_wrap1_s2_clk_src.clkr,
252862306a36Sopenharmony_ci	[GCC_QUPV3_WRAP1_S3_CLK] = &gcc_qupv3_wrap1_s3_clk.clkr,
252962306a36Sopenharmony_ci	[GCC_QUPV3_WRAP1_S3_CLK_SRC] = &gcc_qupv3_wrap1_s3_clk_src.clkr,
253062306a36Sopenharmony_ci	[GCC_QUPV3_WRAP1_S4_CLK] = &gcc_qupv3_wrap1_s4_clk.clkr,
253162306a36Sopenharmony_ci	[GCC_QUPV3_WRAP1_S4_CLK_SRC] = &gcc_qupv3_wrap1_s4_clk_src.clkr,
253262306a36Sopenharmony_ci	[GCC_QUPV3_WRAP1_S5_CLK] = &gcc_qupv3_wrap1_s5_clk.clkr,
253362306a36Sopenharmony_ci	[GCC_QUPV3_WRAP1_S5_CLK_SRC] = &gcc_qupv3_wrap1_s5_clk_src.clkr,
253462306a36Sopenharmony_ci	[GCC_QUPV3_WRAP1_S6_CLK] = &gcc_qupv3_wrap1_s6_clk.clkr,
253562306a36Sopenharmony_ci	[GCC_QUPV3_WRAP1_S6_CLK_SRC] = &gcc_qupv3_wrap1_s6_clk_src.clkr,
253662306a36Sopenharmony_ci	[GCC_QUPV3_WRAP1_S7_CLK] = &gcc_qupv3_wrap1_s7_clk.clkr,
253762306a36Sopenharmony_ci	[GCC_QUPV3_WRAP1_S7_CLK_SRC] = &gcc_qupv3_wrap1_s7_clk_src.clkr,
253862306a36Sopenharmony_ci	[GCC_QUPV3_WRAP_0_M_AHB_CLK] = &gcc_qupv3_wrap_0_m_ahb_clk.clkr,
253962306a36Sopenharmony_ci	[GCC_QUPV3_WRAP_0_S_AHB_CLK] = &gcc_qupv3_wrap_0_s_ahb_clk.clkr,
254062306a36Sopenharmony_ci	[GCC_QUPV3_WRAP_1_M_AHB_CLK] = &gcc_qupv3_wrap_1_m_ahb_clk.clkr,
254162306a36Sopenharmony_ci	[GCC_QUPV3_WRAP_1_S_AHB_CLK] = &gcc_qupv3_wrap_1_s_ahb_clk.clkr,
254262306a36Sopenharmony_ci	[GCC_SDCC5_AHB_CLK] = &gcc_sdcc5_ahb_clk.clkr,
254362306a36Sopenharmony_ci	[GCC_SDCC5_APPS_CLK] = &gcc_sdcc5_apps_clk.clkr,
254462306a36Sopenharmony_ci	[GCC_SDCC5_APPS_CLK_SRC] = &gcc_sdcc5_apps_clk_src.clkr,
254562306a36Sopenharmony_ci	[GCC_SDCC5_ICE_CORE_CLK] = &gcc_sdcc5_ice_core_clk.clkr,
254662306a36Sopenharmony_ci	[GCC_SDCC5_ICE_CORE_CLK_SRC] = &gcc_sdcc5_ice_core_clk_src.clkr,
254762306a36Sopenharmony_ci	[GCC_SM_BUS_AHB_CLK] = &gcc_sm_bus_ahb_clk.clkr,
254862306a36Sopenharmony_ci	[GCC_SM_BUS_XO_CLK] = &gcc_sm_bus_xo_clk.clkr,
254962306a36Sopenharmony_ci	[GCC_SM_BUS_XO_CLK_SRC] = &gcc_sm_bus_xo_clk_src.clkr,
255062306a36Sopenharmony_ci	[GCC_SNOC_CNOC_GEMNOC_PCIE_QX_CLK] = &gcc_snoc_cnoc_gemnoc_pcie_qx_clk.clkr,
255162306a36Sopenharmony_ci	[GCC_SNOC_CNOC_GEMNOC_PCIE_SOUTH_QX_CLK] = &gcc_snoc_cnoc_gemnoc_pcie_south_qx_clk.clkr,
255262306a36Sopenharmony_ci	[GCC_SNOC_CNOC_PCIE_QX_CLK] = &gcc_snoc_cnoc_pcie_qx_clk.clkr,
255362306a36Sopenharmony_ci	[GCC_SNOC_PCIE_SF_CENTER_QX_CLK] = &gcc_snoc_pcie_sf_center_qx_clk.clkr,
255462306a36Sopenharmony_ci	[GCC_SNOC_PCIE_SF_SOUTH_QX_CLK] = &gcc_snoc_pcie_sf_south_qx_clk.clkr,
255562306a36Sopenharmony_ci	[GCC_TSC_CFG_AHB_CLK] = &gcc_tsc_cfg_ahb_clk.clkr,
255662306a36Sopenharmony_ci	[GCC_TSC_CLK_SRC] = &gcc_tsc_clk_src.clkr,
255762306a36Sopenharmony_ci	[GCC_TSC_CNTR_CLK] = &gcc_tsc_cntr_clk.clkr,
255862306a36Sopenharmony_ci	[GCC_TSC_ETU_CLK] = &gcc_tsc_etu_clk.clkr,
255962306a36Sopenharmony_ci	[GCC_USB2_CLKREF_EN] = &gcc_usb2_clkref_en.clkr,
256062306a36Sopenharmony_ci	[GCC_USB30_PRIM_MASTER_CLK] = &gcc_usb30_prim_master_clk.clkr,
256162306a36Sopenharmony_ci	[GCC_USB30_PRIM_MASTER_CLK_SRC] = &gcc_usb30_prim_master_clk_src.clkr,
256262306a36Sopenharmony_ci	[GCC_USB30_PRIM_MOCK_UTMI_CLK] = &gcc_usb30_prim_mock_utmi_clk.clkr,
256362306a36Sopenharmony_ci	[GCC_USB30_PRIM_MOCK_UTMI_CLK_SRC] = &gcc_usb30_prim_mock_utmi_clk_src.clkr,
256462306a36Sopenharmony_ci	[GCC_USB30_PRIM_MOCK_UTMI_POSTDIV_CLK_SRC] = &gcc_usb30_prim_mock_utmi_postdiv_clk_src.clkr,
256562306a36Sopenharmony_ci	[GCC_USB30_PRIM_SLEEP_CLK] = &gcc_usb30_prim_sleep_clk.clkr,
256662306a36Sopenharmony_ci	[GCC_USB3_PRIM_PHY_AUX_CLK] = &gcc_usb3_prim_phy_aux_clk.clkr,
256762306a36Sopenharmony_ci	[GCC_USB3_PRIM_PHY_AUX_CLK_SRC] = &gcc_usb3_prim_phy_aux_clk_src.clkr,
256862306a36Sopenharmony_ci	[GCC_USB3_PRIM_PHY_COM_AUX_CLK] = &gcc_usb3_prim_phy_com_aux_clk.clkr,
256962306a36Sopenharmony_ci	[GCC_USB3_PRIM_PHY_PIPE_CLK] = &gcc_usb3_prim_phy_pipe_clk.clkr,
257062306a36Sopenharmony_ci	[GCC_USB3_PRIM_PHY_PIPE_CLK_SRC] = &gcc_usb3_prim_phy_pipe_clk_src.clkr,
257162306a36Sopenharmony_ci	[GCC_ETH_100G_C2C_HM_APB_CLK] = &gcc_eth_100g_c2c_hm_apb_clk.clkr,
257262306a36Sopenharmony_ci	[GCC_ETH_100G_FH_HM_APB_0_CLK] = &gcc_eth_100g_fh_hm_apb_0_clk.clkr,
257362306a36Sopenharmony_ci	[GCC_ETH_100G_FH_HM_APB_1_CLK] = &gcc_eth_100g_fh_hm_apb_1_clk.clkr,
257462306a36Sopenharmony_ci	[GCC_ETH_100G_FH_HM_APB_2_CLK] = &gcc_eth_100g_fh_hm_apb_2_clk.clkr,
257562306a36Sopenharmony_ci	[GCC_ETH_DBG_C2C_HM_APB_CLK] = &gcc_eth_dbg_c2c_hm_apb_clk.clkr,
257662306a36Sopenharmony_ci	[GCC_AGGRE_NOC_ECPRI_GSI_CLK] = &gcc_aggre_noc_ecpri_gsi_clk.clkr,
257762306a36Sopenharmony_ci	[GCC_PCIE_0_PHY_AUX_CLK_SRC] = &gcc_pcie_0_phy_aux_clk_src.clkr,
257862306a36Sopenharmony_ci	[GCC_PCIE_0_PIPE_CLK_SRC] = &gcc_pcie_0_pipe_clk_src.clkr,
257962306a36Sopenharmony_ci	[GCC_GPLL1_OUT_EVEN] = &gcc_gpll1_out_even.clkr,
258062306a36Sopenharmony_ci	[GCC_DDRSS_ECPRI_GSI_CLK] = &gcc_ddrss_ecpri_gsi_clk.clkr,
258162306a36Sopenharmony_ci};
258262306a36Sopenharmony_ci
258362306a36Sopenharmony_cistatic struct gdsc *gcc_qdu1000_gdscs[] = {
258462306a36Sopenharmony_ci	[PCIE_0_GDSC] = &pcie_0_gdsc,
258562306a36Sopenharmony_ci	[PCIE_0_PHY_GDSC] = &pcie_0_phy_gdsc,
258662306a36Sopenharmony_ci	[USB30_PRIM_GDSC] = &usb30_prim_gdsc,
258762306a36Sopenharmony_ci};
258862306a36Sopenharmony_ci
258962306a36Sopenharmony_cistatic const struct qcom_reset_map gcc_qdu1000_resets[] = {
259062306a36Sopenharmony_ci	[GCC_ECPRI_CC_BCR] = { 0x3e000 },
259162306a36Sopenharmony_ci	[GCC_ECPRI_SS_BCR] = { 0x3a000 },
259262306a36Sopenharmony_ci	[GCC_ETH_WRAPPER_BCR] = { 0x39000 },
259362306a36Sopenharmony_ci	[GCC_PCIE_0_BCR] = { 0x9d000 },
259462306a36Sopenharmony_ci	[GCC_PCIE_0_LINK_DOWN_BCR] = { 0x9e014 },
259562306a36Sopenharmony_ci	[GCC_PCIE_0_NOCSR_COM_PHY_BCR] = { 0x9e020 },
259662306a36Sopenharmony_ci	[GCC_PCIE_0_PHY_BCR] = { 0x7c000 },
259762306a36Sopenharmony_ci	[GCC_PCIE_0_PHY_NOCSR_COM_PHY_BCR] = { 0x9e000 },
259862306a36Sopenharmony_ci	[GCC_PCIE_PHY_CFG_AHB_BCR] = { 0x7f00c },
259962306a36Sopenharmony_ci	[GCC_PCIE_PHY_COM_BCR] = { 0x7f010 },
260062306a36Sopenharmony_ci	[GCC_PDM_BCR] = { 0x43000 },
260162306a36Sopenharmony_ci	[GCC_QUPV3_WRAPPER_0_BCR] = { 0x27000 },
260262306a36Sopenharmony_ci	[GCC_QUPV3_WRAPPER_1_BCR] = { 0x28000 },
260362306a36Sopenharmony_ci	[GCC_QUSB2PHY_PRIM_BCR] = { 0x22000 },
260462306a36Sopenharmony_ci	[GCC_QUSB2PHY_SEC_BCR] = { 0x22004 },
260562306a36Sopenharmony_ci	[GCC_SDCC5_BCR] = { 0x3b000 },
260662306a36Sopenharmony_ci	[GCC_TSC_BCR] = { 0x57000 },
260762306a36Sopenharmony_ci	[GCC_USB30_PRIM_BCR] = { 0x49000 },
260862306a36Sopenharmony_ci	[GCC_USB3_DP_PHY_PRIM_BCR] = { 0x60008 },
260962306a36Sopenharmony_ci	[GCC_USB3_DP_PHY_SEC_BCR] = { 0x60014 },
261062306a36Sopenharmony_ci	[GCC_USB3_PHY_PRIM_BCR] = { 0x60000 },
261162306a36Sopenharmony_ci	[GCC_USB3_PHY_SEC_BCR] = { 0x6000c },
261262306a36Sopenharmony_ci	[GCC_USB3PHY_PHY_PRIM_BCR] = { 0x60004 },
261362306a36Sopenharmony_ci	[GCC_USB3PHY_PHY_SEC_BCR] = { 0x60010 },
261462306a36Sopenharmony_ci	[GCC_USB_PHY_CFG_AHB2PHY_BCR] = { 0x7a000 },
261562306a36Sopenharmony_ci};
261662306a36Sopenharmony_ci
261762306a36Sopenharmony_cistatic const struct clk_rcg_dfs_data gcc_dfs_clocks[] = {
261862306a36Sopenharmony_ci	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s0_clk_src),
261962306a36Sopenharmony_ci	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s1_clk_src),
262062306a36Sopenharmony_ci	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s2_clk_src),
262162306a36Sopenharmony_ci	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s3_clk_src),
262262306a36Sopenharmony_ci	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s4_clk_src),
262362306a36Sopenharmony_ci	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s5_clk_src),
262462306a36Sopenharmony_ci	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s6_clk_src),
262562306a36Sopenharmony_ci	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s7_clk_src),
262662306a36Sopenharmony_ci	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s0_clk_src),
262762306a36Sopenharmony_ci	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s1_clk_src),
262862306a36Sopenharmony_ci	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s2_clk_src),
262962306a36Sopenharmony_ci	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s3_clk_src),
263062306a36Sopenharmony_ci	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s4_clk_src),
263162306a36Sopenharmony_ci	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s5_clk_src),
263262306a36Sopenharmony_ci	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s6_clk_src),
263362306a36Sopenharmony_ci	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s7_clk_src),
263462306a36Sopenharmony_ci};
263562306a36Sopenharmony_ci
263662306a36Sopenharmony_cistatic const struct regmap_config gcc_qdu1000_regmap_config = {
263762306a36Sopenharmony_ci	.reg_bits = 32,
263862306a36Sopenharmony_ci	.reg_stride = 4,
263962306a36Sopenharmony_ci	.val_bits = 32,
264062306a36Sopenharmony_ci	.max_register = 0x1f41f0,
264162306a36Sopenharmony_ci	.fast_io = true,
264262306a36Sopenharmony_ci};
264362306a36Sopenharmony_ci
264462306a36Sopenharmony_cistatic const struct qcom_cc_desc gcc_qdu1000_desc = {
264562306a36Sopenharmony_ci	.config = &gcc_qdu1000_regmap_config,
264662306a36Sopenharmony_ci	.clks = gcc_qdu1000_clocks,
264762306a36Sopenharmony_ci	.num_clks = ARRAY_SIZE(gcc_qdu1000_clocks),
264862306a36Sopenharmony_ci	.resets = gcc_qdu1000_resets,
264962306a36Sopenharmony_ci	.num_resets = ARRAY_SIZE(gcc_qdu1000_resets),
265062306a36Sopenharmony_ci	.gdscs = gcc_qdu1000_gdscs,
265162306a36Sopenharmony_ci	.num_gdscs = ARRAY_SIZE(gcc_qdu1000_gdscs),
265262306a36Sopenharmony_ci};
265362306a36Sopenharmony_ci
265462306a36Sopenharmony_cistatic const struct of_device_id gcc_qdu1000_match_table[] = {
265562306a36Sopenharmony_ci	{ .compatible = "qcom,qdu1000-gcc" },
265662306a36Sopenharmony_ci	{ }
265762306a36Sopenharmony_ci};
265862306a36Sopenharmony_ciMODULE_DEVICE_TABLE(of, gcc_qdu1000_match_table);
265962306a36Sopenharmony_ci
266062306a36Sopenharmony_cistatic int gcc_qdu1000_probe(struct platform_device *pdev)
266162306a36Sopenharmony_ci{
266262306a36Sopenharmony_ci	struct regmap *regmap;
266362306a36Sopenharmony_ci	int ret;
266462306a36Sopenharmony_ci
266562306a36Sopenharmony_ci	regmap = qcom_cc_map(pdev, &gcc_qdu1000_desc);
266662306a36Sopenharmony_ci	if (IS_ERR(regmap))
266762306a36Sopenharmony_ci		return PTR_ERR(regmap);
266862306a36Sopenharmony_ci
266962306a36Sopenharmony_ci	/* Update FORCE_MEM_CORE_ON for gcc_pcie_0_mstr_axi_clk */
267062306a36Sopenharmony_ci	regmap_update_bits(regmap, 0x9d024, BIT(14), BIT(14));
267162306a36Sopenharmony_ci
267262306a36Sopenharmony_ci	ret = qcom_cc_register_rcg_dfs(regmap, gcc_dfs_clocks,
267362306a36Sopenharmony_ci				       ARRAY_SIZE(gcc_dfs_clocks));
267462306a36Sopenharmony_ci	if (ret)
267562306a36Sopenharmony_ci		return ret;
267662306a36Sopenharmony_ci
267762306a36Sopenharmony_ci	ret = qcom_cc_really_probe(pdev, &gcc_qdu1000_desc, regmap);
267862306a36Sopenharmony_ci	if (ret)
267962306a36Sopenharmony_ci		return dev_err_probe(&pdev->dev, ret, "Failed to register GCC clocks\n");
268062306a36Sopenharmony_ci
268162306a36Sopenharmony_ci	return ret;
268262306a36Sopenharmony_ci}
268362306a36Sopenharmony_ci
268462306a36Sopenharmony_cistatic struct platform_driver gcc_qdu1000_driver = {
268562306a36Sopenharmony_ci	.probe = gcc_qdu1000_probe,
268662306a36Sopenharmony_ci	.driver = {
268762306a36Sopenharmony_ci		.name = "gcc-qdu1000",
268862306a36Sopenharmony_ci		.of_match_table = gcc_qdu1000_match_table,
268962306a36Sopenharmony_ci	},
269062306a36Sopenharmony_ci};
269162306a36Sopenharmony_ci
269262306a36Sopenharmony_cistatic int __init gcc_qdu1000_init(void)
269362306a36Sopenharmony_ci{
269462306a36Sopenharmony_ci	return platform_driver_register(&gcc_qdu1000_driver);
269562306a36Sopenharmony_ci}
269662306a36Sopenharmony_cisubsys_initcall(gcc_qdu1000_init);
269762306a36Sopenharmony_ci
269862306a36Sopenharmony_cistatic void __exit gcc_qdu1000_exit(void)
269962306a36Sopenharmony_ci{
270062306a36Sopenharmony_ci	platform_driver_unregister(&gcc_qdu1000_driver);
270162306a36Sopenharmony_ci}
270262306a36Sopenharmony_cimodule_exit(gcc_qdu1000_exit);
270362306a36Sopenharmony_ci
270462306a36Sopenharmony_ciMODULE_DESCRIPTION("QTI GCC QDU1000 Driver");
270562306a36Sopenharmony_ciMODULE_LICENSE("GPL");
2706