162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright (c) 2018, The Linux Foundation. All rights reserved.
462306a36Sopenharmony_ci */
562306a36Sopenharmony_ci
662306a36Sopenharmony_ci#include <linux/kernel.h>
762306a36Sopenharmony_ci#include <linux/platform_device.h>
862306a36Sopenharmony_ci#include <linux/module.h>
962306a36Sopenharmony_ci#include <linux/of.h>
1062306a36Sopenharmony_ci#include <linux/clk-provider.h>
1162306a36Sopenharmony_ci#include <linux/regmap.h>
1262306a36Sopenharmony_ci#include <linux/reset-controller.h>
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ci#include <dt-bindings/clock/qcom,gcc-qcs404.h>
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_ci#include "clk-alpha-pll.h"
1762306a36Sopenharmony_ci#include "clk-branch.h"
1862306a36Sopenharmony_ci#include "clk-pll.h"
1962306a36Sopenharmony_ci#include "clk-rcg.h"
2062306a36Sopenharmony_ci#include "clk-regmap.h"
2162306a36Sopenharmony_ci#include "common.h"
2262306a36Sopenharmony_ci#include "gdsc.h"
2362306a36Sopenharmony_ci#include "reset.h"
2462306a36Sopenharmony_ci
2562306a36Sopenharmony_cienum {
2662306a36Sopenharmony_ci	DT_XO,
2762306a36Sopenharmony_ci	DT_SLEEP_CLK,
2862306a36Sopenharmony_ci	DT_PCIE_0_PIPE_CLK,
2962306a36Sopenharmony_ci	DT_DSI0_PHY_PLL_OUT_DSICLK,
3062306a36Sopenharmony_ci	DT_DSI0_PHY_PLL_OUT_BYTECLK,
3162306a36Sopenharmony_ci	DT_HDMI_PHY_PLL_CLK,
3262306a36Sopenharmony_ci};
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_cienum {
3562306a36Sopenharmony_ci	P_DSI0_PHY_PLL_OUT_BYTECLK,
3662306a36Sopenharmony_ci	P_DSI0_PHY_PLL_OUT_DSICLK,
3762306a36Sopenharmony_ci	P_GPLL0_OUT_MAIN,
3862306a36Sopenharmony_ci	P_GPLL1_OUT_MAIN,
3962306a36Sopenharmony_ci	P_GPLL3_OUT_MAIN,
4062306a36Sopenharmony_ci	P_GPLL4_OUT_MAIN,
4162306a36Sopenharmony_ci	P_GPLL6_OUT_AUX,
4262306a36Sopenharmony_ci	P_HDMI_PHY_PLL_CLK,
4362306a36Sopenharmony_ci	P_PCIE_0_PIPE_CLK,
4462306a36Sopenharmony_ci	P_SLEEP_CLK,
4562306a36Sopenharmony_ci	P_XO,
4662306a36Sopenharmony_ci};
4762306a36Sopenharmony_ci
4862306a36Sopenharmony_cistatic const struct parent_map gcc_parent_map_1[] = {
4962306a36Sopenharmony_ci	{ P_XO, 0 },
5062306a36Sopenharmony_ci};
5162306a36Sopenharmony_ci
5262306a36Sopenharmony_cistatic const struct clk_parent_data gcc_parent_data_1[] = {
5362306a36Sopenharmony_ci	{ .index = DT_XO, .name = "xo-board" },
5462306a36Sopenharmony_ci};
5562306a36Sopenharmony_ci
5662306a36Sopenharmony_cistatic struct clk_fixed_factor cxo = {
5762306a36Sopenharmony_ci	.mult = 1,
5862306a36Sopenharmony_ci	.div = 1,
5962306a36Sopenharmony_ci	.hw.init = &(struct clk_init_data){
6062306a36Sopenharmony_ci		.name = "cxo",
6162306a36Sopenharmony_ci		.parent_data = gcc_parent_data_1,
6262306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_1),
6362306a36Sopenharmony_ci		.ops = &clk_fixed_factor_ops,
6462306a36Sopenharmony_ci	},
6562306a36Sopenharmony_ci};
6662306a36Sopenharmony_ci
6762306a36Sopenharmony_cistatic struct clk_alpha_pll gpll0_sleep_clk_src = {
6862306a36Sopenharmony_ci	.offset = 0x21000,
6962306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
7062306a36Sopenharmony_ci	.clkr = {
7162306a36Sopenharmony_ci		.enable_reg = 0x45008,
7262306a36Sopenharmony_ci		.enable_mask = BIT(23),
7362306a36Sopenharmony_ci		.enable_is_inverted = true,
7462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
7562306a36Sopenharmony_ci			.name = "gpll0_sleep_clk_src",
7662306a36Sopenharmony_ci			.parent_data = gcc_parent_data_1,
7762306a36Sopenharmony_ci			.num_parents = ARRAY_SIZE(gcc_parent_data_1),
7862306a36Sopenharmony_ci			.ops = &clk_alpha_pll_ops,
7962306a36Sopenharmony_ci		},
8062306a36Sopenharmony_ci	},
8162306a36Sopenharmony_ci};
8262306a36Sopenharmony_ci
8362306a36Sopenharmony_cistatic struct clk_alpha_pll gpll0_out_main = {
8462306a36Sopenharmony_ci	.offset = 0x21000,
8562306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
8662306a36Sopenharmony_ci	.flags = SUPPORTS_FSM_MODE,
8762306a36Sopenharmony_ci	.clkr = {
8862306a36Sopenharmony_ci		.enable_reg = 0x45000,
8962306a36Sopenharmony_ci		.enable_mask = BIT(0),
9062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
9162306a36Sopenharmony_ci			.name = "gpll0_out_main",
9262306a36Sopenharmony_ci			.parent_data = gcc_parent_data_1,
9362306a36Sopenharmony_ci			.num_parents = ARRAY_SIZE(gcc_parent_data_1),
9462306a36Sopenharmony_ci			.ops = &clk_alpha_pll_ops,
9562306a36Sopenharmony_ci		},
9662306a36Sopenharmony_ci	},
9762306a36Sopenharmony_ci};
9862306a36Sopenharmony_ci
9962306a36Sopenharmony_cistatic struct clk_alpha_pll gpll0_ao_out_main = {
10062306a36Sopenharmony_ci	.offset = 0x21000,
10162306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
10262306a36Sopenharmony_ci	.flags = SUPPORTS_FSM_MODE,
10362306a36Sopenharmony_ci	.clkr = {
10462306a36Sopenharmony_ci		.enable_reg = 0x45000,
10562306a36Sopenharmony_ci		.enable_mask = BIT(0),
10662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
10762306a36Sopenharmony_ci			.name = "gpll0_ao_out_main",
10862306a36Sopenharmony_ci			.parent_data = gcc_parent_data_1,
10962306a36Sopenharmony_ci			.num_parents = ARRAY_SIZE(gcc_parent_data_1),
11062306a36Sopenharmony_ci			.flags = CLK_IS_CRITICAL,
11162306a36Sopenharmony_ci			.ops = &clk_alpha_pll_fixed_ops,
11262306a36Sopenharmony_ci		},
11362306a36Sopenharmony_ci	},
11462306a36Sopenharmony_ci};
11562306a36Sopenharmony_ci
11662306a36Sopenharmony_cistatic struct clk_alpha_pll gpll1_out_main = {
11762306a36Sopenharmony_ci	.offset = 0x20000,
11862306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
11962306a36Sopenharmony_ci	.clkr = {
12062306a36Sopenharmony_ci		.enable_reg = 0x45000,
12162306a36Sopenharmony_ci		.enable_mask = BIT(1),
12262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
12362306a36Sopenharmony_ci			.name = "gpll1_out_main",
12462306a36Sopenharmony_ci			.parent_data = gcc_parent_data_1,
12562306a36Sopenharmony_ci			.num_parents = ARRAY_SIZE(gcc_parent_data_1),
12662306a36Sopenharmony_ci			.ops = &clk_alpha_pll_ops,
12762306a36Sopenharmony_ci		},
12862306a36Sopenharmony_ci	},
12962306a36Sopenharmony_ci};
13062306a36Sopenharmony_ci
13162306a36Sopenharmony_ci/* 930MHz configuration */
13262306a36Sopenharmony_cistatic const struct alpha_pll_config gpll3_config = {
13362306a36Sopenharmony_ci	.l = 48,
13462306a36Sopenharmony_ci	.alpha = 0x0,
13562306a36Sopenharmony_ci	.alpha_en_mask = BIT(24),
13662306a36Sopenharmony_ci	.post_div_mask = 0xf << 8,
13762306a36Sopenharmony_ci	.post_div_val = 0x1 << 8,
13862306a36Sopenharmony_ci	.vco_mask = 0x3 << 20,
13962306a36Sopenharmony_ci	.main_output_mask = 0x1,
14062306a36Sopenharmony_ci	.config_ctl_val = 0x4001055b,
14162306a36Sopenharmony_ci};
14262306a36Sopenharmony_ci
14362306a36Sopenharmony_cistatic const struct pll_vco gpll3_vco[] = {
14462306a36Sopenharmony_ci	{ 700000000, 1400000000, 0 },
14562306a36Sopenharmony_ci};
14662306a36Sopenharmony_ci
14762306a36Sopenharmony_cistatic struct clk_alpha_pll gpll3_out_main = {
14862306a36Sopenharmony_ci	.offset = 0x22000,
14962306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
15062306a36Sopenharmony_ci	.vco_table = gpll3_vco,
15162306a36Sopenharmony_ci	.num_vco = ARRAY_SIZE(gpll3_vco),
15262306a36Sopenharmony_ci	.clkr = {
15362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
15462306a36Sopenharmony_ci			.name = "gpll3_out_main",
15562306a36Sopenharmony_ci			.parent_data = gcc_parent_data_1,
15662306a36Sopenharmony_ci			.num_parents = ARRAY_SIZE(gcc_parent_data_1),
15762306a36Sopenharmony_ci			.ops = &clk_alpha_pll_ops,
15862306a36Sopenharmony_ci		},
15962306a36Sopenharmony_ci	},
16062306a36Sopenharmony_ci};
16162306a36Sopenharmony_ci
16262306a36Sopenharmony_cistatic struct clk_alpha_pll gpll4_out_main = {
16362306a36Sopenharmony_ci	.offset = 0x24000,
16462306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
16562306a36Sopenharmony_ci	.clkr = {
16662306a36Sopenharmony_ci		.enable_reg = 0x45000,
16762306a36Sopenharmony_ci		.enable_mask = BIT(5),
16862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
16962306a36Sopenharmony_ci			.name = "gpll4_out_main",
17062306a36Sopenharmony_ci			.parent_data = gcc_parent_data_1,
17162306a36Sopenharmony_ci			.num_parents = ARRAY_SIZE(gcc_parent_data_1),
17262306a36Sopenharmony_ci			.ops = &clk_alpha_pll_ops,
17362306a36Sopenharmony_ci		},
17462306a36Sopenharmony_ci	},
17562306a36Sopenharmony_ci};
17662306a36Sopenharmony_ci
17762306a36Sopenharmony_cistatic struct clk_pll gpll6 = {
17862306a36Sopenharmony_ci	.l_reg = 0x37004,
17962306a36Sopenharmony_ci	.m_reg = 0x37008,
18062306a36Sopenharmony_ci	.n_reg = 0x3700C,
18162306a36Sopenharmony_ci	.config_reg = 0x37014,
18262306a36Sopenharmony_ci	.mode_reg = 0x37000,
18362306a36Sopenharmony_ci	.status_reg = 0x3701C,
18462306a36Sopenharmony_ci	.status_bit = 17,
18562306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
18662306a36Sopenharmony_ci		.name = "gpll6",
18762306a36Sopenharmony_ci		.parent_data = gcc_parent_data_1,
18862306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_1),
18962306a36Sopenharmony_ci		.ops = &clk_pll_ops,
19062306a36Sopenharmony_ci	},
19162306a36Sopenharmony_ci};
19262306a36Sopenharmony_ci
19362306a36Sopenharmony_cistatic struct clk_regmap gpll6_out_aux = {
19462306a36Sopenharmony_ci	.enable_reg = 0x45000,
19562306a36Sopenharmony_ci	.enable_mask = BIT(7),
19662306a36Sopenharmony_ci	.hw.init = &(struct clk_init_data){
19762306a36Sopenharmony_ci		.name = "gpll6_out_aux",
19862306a36Sopenharmony_ci		.parent_hws = (const struct clk_hw*[]) {
19962306a36Sopenharmony_ci			&gpll6.clkr.hw,
20062306a36Sopenharmony_ci		},
20162306a36Sopenharmony_ci		.num_parents = 1,
20262306a36Sopenharmony_ci		.ops = &clk_pll_vote_ops,
20362306a36Sopenharmony_ci	},
20462306a36Sopenharmony_ci};
20562306a36Sopenharmony_ci
20662306a36Sopenharmony_cistatic const struct parent_map gcc_parent_map_0[] = {
20762306a36Sopenharmony_ci	{ P_XO, 0 },
20862306a36Sopenharmony_ci	{ P_GPLL0_OUT_MAIN, 1 },
20962306a36Sopenharmony_ci};
21062306a36Sopenharmony_ci
21162306a36Sopenharmony_cistatic const struct clk_parent_data gcc_parent_data_0[] = {
21262306a36Sopenharmony_ci	{ .index = DT_XO, .name = "xo-board" },
21362306a36Sopenharmony_ci	{ .hw = &gpll0_out_main.clkr.hw },
21462306a36Sopenharmony_ci};
21562306a36Sopenharmony_ci
21662306a36Sopenharmony_cistatic const struct clk_parent_data gcc_parent_data_ao_0[] = {
21762306a36Sopenharmony_ci	{ .index = DT_XO, .name = "xo-board" },
21862306a36Sopenharmony_ci	{ .hw = &gpll0_ao_out_main.clkr.hw },
21962306a36Sopenharmony_ci};
22062306a36Sopenharmony_ci
22162306a36Sopenharmony_cistatic const struct parent_map gcc_parent_map_2[] = {
22262306a36Sopenharmony_ci	{ P_XO, 0 },
22362306a36Sopenharmony_ci	{ P_GPLL0_OUT_MAIN, 1 },
22462306a36Sopenharmony_ci	{ P_GPLL6_OUT_AUX, 2 },
22562306a36Sopenharmony_ci	{ P_SLEEP_CLK, 6 },
22662306a36Sopenharmony_ci};
22762306a36Sopenharmony_ci
22862306a36Sopenharmony_cistatic const struct clk_parent_data gcc_parent_data_2[] = {
22962306a36Sopenharmony_ci	{ .index = DT_XO, .name = "xo-board" },
23062306a36Sopenharmony_ci	{ .hw = &gpll0_out_main.clkr.hw },
23162306a36Sopenharmony_ci	{ .hw = &gpll6_out_aux.hw },
23262306a36Sopenharmony_ci	{ .index = DT_SLEEP_CLK, .name = "sleep_clk" },
23362306a36Sopenharmony_ci};
23462306a36Sopenharmony_ci
23562306a36Sopenharmony_cistatic const struct parent_map gcc_parent_map_3[] = {
23662306a36Sopenharmony_ci	{ P_XO, 0 },
23762306a36Sopenharmony_ci	{ P_GPLL0_OUT_MAIN, 1 },
23862306a36Sopenharmony_ci	{ P_GPLL6_OUT_AUX, 2 },
23962306a36Sopenharmony_ci};
24062306a36Sopenharmony_ci
24162306a36Sopenharmony_cistatic const struct clk_parent_data gcc_parent_data_3[] = {
24262306a36Sopenharmony_ci	{ .index = DT_XO, .name = "xo-board" },
24362306a36Sopenharmony_ci	{ .hw = &gpll0_out_main.clkr.hw },
24462306a36Sopenharmony_ci	{ .hw = &gpll6_out_aux.hw },
24562306a36Sopenharmony_ci};
24662306a36Sopenharmony_ci
24762306a36Sopenharmony_cistatic const struct parent_map gcc_parent_map_4[] = {
24862306a36Sopenharmony_ci	{ P_XO, 0 },
24962306a36Sopenharmony_ci	{ P_GPLL1_OUT_MAIN, 1 },
25062306a36Sopenharmony_ci};
25162306a36Sopenharmony_ci
25262306a36Sopenharmony_cistatic const struct clk_parent_data gcc_parent_data_4[] = {
25362306a36Sopenharmony_ci	{ .index = DT_XO, .name = "xo-board" },
25462306a36Sopenharmony_ci	{ .hw = &gpll1_out_main.clkr.hw },
25562306a36Sopenharmony_ci};
25662306a36Sopenharmony_ci
25762306a36Sopenharmony_cistatic const struct parent_map gcc_parent_map_5[] = {
25862306a36Sopenharmony_ci	{ P_XO, 0 },
25962306a36Sopenharmony_ci	{ P_DSI0_PHY_PLL_OUT_BYTECLK, 1 },
26062306a36Sopenharmony_ci};
26162306a36Sopenharmony_ci
26262306a36Sopenharmony_cistatic const struct clk_parent_data gcc_parent_data_5[] = {
26362306a36Sopenharmony_ci	{ .index = DT_XO, .name = "xo-board" },
26462306a36Sopenharmony_ci	{ .index = DT_DSI0_PHY_PLL_OUT_BYTECLK, .name = "dsi0pllbyte" },
26562306a36Sopenharmony_ci};
26662306a36Sopenharmony_ci
26762306a36Sopenharmony_cistatic const struct parent_map gcc_parent_map_6[] = {
26862306a36Sopenharmony_ci	{ P_XO, 0 },
26962306a36Sopenharmony_ci	{ P_DSI0_PHY_PLL_OUT_BYTECLK, 2 },
27062306a36Sopenharmony_ci};
27162306a36Sopenharmony_ci
27262306a36Sopenharmony_cistatic const struct clk_parent_data gcc_parent_data_6[] = {
27362306a36Sopenharmony_ci	{ .index = DT_XO, .name = "xo-board" },
27462306a36Sopenharmony_ci	{ .index = DT_DSI0_PHY_PLL_OUT_BYTECLK, .name = "dsi0pllbyte" },
27562306a36Sopenharmony_ci};
27662306a36Sopenharmony_ci
27762306a36Sopenharmony_cistatic const struct parent_map gcc_parent_map_7[] = {
27862306a36Sopenharmony_ci	{ P_XO, 0 },
27962306a36Sopenharmony_ci	{ P_GPLL0_OUT_MAIN, 1 },
28062306a36Sopenharmony_ci	{ P_GPLL3_OUT_MAIN, 2 },
28162306a36Sopenharmony_ci	{ P_GPLL6_OUT_AUX, 3 },
28262306a36Sopenharmony_ci};
28362306a36Sopenharmony_ci
28462306a36Sopenharmony_cistatic const struct clk_parent_data gcc_parent_data_7[] = {
28562306a36Sopenharmony_ci	{ .index = DT_XO, .name = "xo-board" },
28662306a36Sopenharmony_ci	{ .hw = &gpll0_out_main.clkr.hw },
28762306a36Sopenharmony_ci	{ .hw = &gpll3_out_main.clkr.hw },
28862306a36Sopenharmony_ci	{ .hw = &gpll6_out_aux.hw },
28962306a36Sopenharmony_ci};
29062306a36Sopenharmony_ci
29162306a36Sopenharmony_cistatic const struct parent_map gcc_parent_map_8[] = {
29262306a36Sopenharmony_ci	{ P_XO, 0 },
29362306a36Sopenharmony_ci	{ P_HDMI_PHY_PLL_CLK, 1 },
29462306a36Sopenharmony_ci};
29562306a36Sopenharmony_ci
29662306a36Sopenharmony_cistatic const struct clk_parent_data gcc_parent_data_8[] = {
29762306a36Sopenharmony_ci	{ .index = DT_XO, .name = "xo-board" },
29862306a36Sopenharmony_ci	{ .index = DT_HDMI_PHY_PLL_CLK, .name = "hdmi_pll" },
29962306a36Sopenharmony_ci};
30062306a36Sopenharmony_ci
30162306a36Sopenharmony_cistatic const struct parent_map gcc_parent_map_9[] = {
30262306a36Sopenharmony_ci	{ P_XO, 0 },
30362306a36Sopenharmony_ci	{ P_GPLL0_OUT_MAIN, 1 },
30462306a36Sopenharmony_ci	{ P_DSI0_PHY_PLL_OUT_DSICLK, 2 },
30562306a36Sopenharmony_ci	{ P_GPLL6_OUT_AUX, 3 },
30662306a36Sopenharmony_ci};
30762306a36Sopenharmony_ci
30862306a36Sopenharmony_cistatic const struct clk_parent_data gcc_parent_data_9[] = {
30962306a36Sopenharmony_ci	{ .index = DT_XO, .name = "xo-board" },
31062306a36Sopenharmony_ci	{ .hw = &gpll0_out_main.clkr.hw },
31162306a36Sopenharmony_ci	{ .index = DT_DSI0_PHY_PLL_OUT_DSICLK, .name = "dsi0pll" },
31262306a36Sopenharmony_ci	{ .hw = &gpll6_out_aux.hw },
31362306a36Sopenharmony_ci};
31462306a36Sopenharmony_ci
31562306a36Sopenharmony_cistatic const struct parent_map gcc_parent_map_10[] = {
31662306a36Sopenharmony_ci	{ P_XO, 0 },
31762306a36Sopenharmony_ci	{ P_SLEEP_CLK, 1 },
31862306a36Sopenharmony_ci};
31962306a36Sopenharmony_ci
32062306a36Sopenharmony_cistatic const struct clk_parent_data gcc_parent_data_10[] = {
32162306a36Sopenharmony_ci	{ .index = DT_XO, .name = "xo-board" },
32262306a36Sopenharmony_ci	{ .index = DT_SLEEP_CLK, .name = "sleep_clk" },
32362306a36Sopenharmony_ci};
32462306a36Sopenharmony_ci
32562306a36Sopenharmony_cistatic const struct parent_map gcc_parent_map_11[] = {
32662306a36Sopenharmony_ci	{ P_XO, 0 },
32762306a36Sopenharmony_ci	{ P_PCIE_0_PIPE_CLK, 1 },
32862306a36Sopenharmony_ci};
32962306a36Sopenharmony_ci
33062306a36Sopenharmony_cistatic const struct clk_parent_data gcc_parent_data_11[] = {
33162306a36Sopenharmony_ci	{ .index = DT_XO, .name = "xo-board" },
33262306a36Sopenharmony_ci	{ .fw_name = "pcie_0_pipe_clk", .name = "pcie_0_pipe_clk" },
33362306a36Sopenharmony_ci};
33462306a36Sopenharmony_ci
33562306a36Sopenharmony_cistatic const struct parent_map gcc_parent_map_12[] = {
33662306a36Sopenharmony_ci	{ P_XO, 0 },
33762306a36Sopenharmony_ci	{ P_DSI0_PHY_PLL_OUT_DSICLK, 1 },
33862306a36Sopenharmony_ci};
33962306a36Sopenharmony_ci
34062306a36Sopenharmony_cistatic const struct clk_parent_data gcc_parent_data_12[] = {
34162306a36Sopenharmony_ci	{ .index = DT_XO, .name = "xo-board" },
34262306a36Sopenharmony_ci	{ .index = DT_DSI0_PHY_PLL_OUT_DSICLK, .name = "dsi0pll" },
34362306a36Sopenharmony_ci};
34462306a36Sopenharmony_ci
34562306a36Sopenharmony_cistatic const struct parent_map gcc_parent_map_13[] = {
34662306a36Sopenharmony_ci	{ P_XO, 0 },
34762306a36Sopenharmony_ci	{ P_GPLL0_OUT_MAIN, 1 },
34862306a36Sopenharmony_ci	{ P_GPLL4_OUT_MAIN, 2 },
34962306a36Sopenharmony_ci	{ P_GPLL6_OUT_AUX, 3 },
35062306a36Sopenharmony_ci};
35162306a36Sopenharmony_ci
35262306a36Sopenharmony_cistatic const struct clk_parent_data gcc_parent_data_13[] = {
35362306a36Sopenharmony_ci	{ .index = DT_XO, .name = "xo-board" },
35462306a36Sopenharmony_ci	{ .hw = &gpll0_out_main.clkr.hw },
35562306a36Sopenharmony_ci	{ .hw = &gpll4_out_main.clkr.hw },
35662306a36Sopenharmony_ci	{ .hw = &gpll6_out_aux.hw },
35762306a36Sopenharmony_ci};
35862306a36Sopenharmony_ci
35962306a36Sopenharmony_cistatic const struct parent_map gcc_parent_map_14[] = {
36062306a36Sopenharmony_ci	{ P_XO, 0 },
36162306a36Sopenharmony_ci	{ P_GPLL0_OUT_MAIN, 1 },
36262306a36Sopenharmony_ci};
36362306a36Sopenharmony_ci
36462306a36Sopenharmony_cistatic const struct clk_parent_data gcc_parent_data_14[] = {
36562306a36Sopenharmony_ci	{ .index = DT_XO, .name = "xo-board" },
36662306a36Sopenharmony_ci	{ .hw = &gpll0_out_main.clkr.hw },
36762306a36Sopenharmony_ci};
36862306a36Sopenharmony_ci
36962306a36Sopenharmony_cistatic const struct parent_map gcc_parent_map_15[] = {
37062306a36Sopenharmony_ci	{ P_XO, 0 },
37162306a36Sopenharmony_ci};
37262306a36Sopenharmony_ci
37362306a36Sopenharmony_cistatic const struct clk_parent_data gcc_parent_data_15[] = {
37462306a36Sopenharmony_ci	{ .index = DT_XO, .name = "xo-board" },
37562306a36Sopenharmony_ci};
37662306a36Sopenharmony_ci
37762306a36Sopenharmony_cistatic const struct parent_map gcc_parent_map_16[] = {
37862306a36Sopenharmony_ci	{ P_XO, 0 },
37962306a36Sopenharmony_ci	{ P_GPLL0_OUT_MAIN, 1 },
38062306a36Sopenharmony_ci};
38162306a36Sopenharmony_ci
38262306a36Sopenharmony_cistatic const struct clk_parent_data gcc_parent_data_16[] = {
38362306a36Sopenharmony_ci	{ .index = DT_XO, .name = "xo-board" },
38462306a36Sopenharmony_ci	{ .hw = &gpll0_out_main.clkr.hw },
38562306a36Sopenharmony_ci};
38662306a36Sopenharmony_ci
38762306a36Sopenharmony_cistatic const struct freq_tbl ftbl_apss_ahb_clk_src[] = {
38862306a36Sopenharmony_ci	F(19200000, P_XO, 1, 0, 0),
38962306a36Sopenharmony_ci	F(50000000, P_GPLL0_OUT_MAIN, 16, 0, 0),
39062306a36Sopenharmony_ci	F(100000000, P_GPLL0_OUT_MAIN, 8, 0, 0),
39162306a36Sopenharmony_ci	F(133333333, P_GPLL0_OUT_MAIN, 6, 0, 0),
39262306a36Sopenharmony_ci	{ }
39362306a36Sopenharmony_ci};
39462306a36Sopenharmony_ci
39562306a36Sopenharmony_cistatic struct clk_rcg2 apss_ahb_clk_src = {
39662306a36Sopenharmony_ci	.cmd_rcgr = 0x46000,
39762306a36Sopenharmony_ci	.mnd_width = 0,
39862306a36Sopenharmony_ci	.hid_width = 5,
39962306a36Sopenharmony_ci	.parent_map = gcc_parent_map_0,
40062306a36Sopenharmony_ci	.freq_tbl = ftbl_apss_ahb_clk_src,
40162306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
40262306a36Sopenharmony_ci		.name = "apss_ahb_clk_src",
40362306a36Sopenharmony_ci		.parent_data = gcc_parent_data_ao_0,
40462306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_ao_0),
40562306a36Sopenharmony_ci		.flags = CLK_IS_CRITICAL,
40662306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
40762306a36Sopenharmony_ci	},
40862306a36Sopenharmony_ci};
40962306a36Sopenharmony_ci
41062306a36Sopenharmony_cistatic const struct freq_tbl ftbl_blsp1_qup0_i2c_apps_clk_src[] = {
41162306a36Sopenharmony_ci	F(19200000, P_XO, 1, 0, 0),
41262306a36Sopenharmony_ci	F(50000000, P_GPLL0_OUT_MAIN, 16, 0, 0),
41362306a36Sopenharmony_ci	{ }
41462306a36Sopenharmony_ci};
41562306a36Sopenharmony_ci
41662306a36Sopenharmony_cistatic struct clk_rcg2 blsp1_qup0_i2c_apps_clk_src = {
41762306a36Sopenharmony_ci	.cmd_rcgr = 0x602c,
41862306a36Sopenharmony_ci	.mnd_width = 0,
41962306a36Sopenharmony_ci	.hid_width = 5,
42062306a36Sopenharmony_ci	.parent_map = gcc_parent_map_0,
42162306a36Sopenharmony_ci	.freq_tbl = ftbl_blsp1_qup0_i2c_apps_clk_src,
42262306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
42362306a36Sopenharmony_ci		.name = "blsp1_qup0_i2c_apps_clk_src",
42462306a36Sopenharmony_ci		.parent_data = gcc_parent_data_0,
42562306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
42662306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
42762306a36Sopenharmony_ci	},
42862306a36Sopenharmony_ci};
42962306a36Sopenharmony_ci
43062306a36Sopenharmony_cistatic const struct freq_tbl ftbl_blsp1_qup0_spi_apps_clk_src[] = {
43162306a36Sopenharmony_ci	F(960000, P_XO, 10, 1, 2),
43262306a36Sopenharmony_ci	F(4800000, P_XO, 4, 0, 0),
43362306a36Sopenharmony_ci	F(9600000, P_XO, 2, 0, 0),
43462306a36Sopenharmony_ci	F(16000000, P_GPLL0_OUT_MAIN, 10, 1, 5),
43562306a36Sopenharmony_ci	F(19200000, P_XO, 1, 0, 0),
43662306a36Sopenharmony_ci	F(25000000, P_GPLL0_OUT_MAIN, 16, 1, 2),
43762306a36Sopenharmony_ci	F(50000000, P_GPLL0_OUT_MAIN, 16, 0, 0),
43862306a36Sopenharmony_ci	{ }
43962306a36Sopenharmony_ci};
44062306a36Sopenharmony_ci
44162306a36Sopenharmony_cistatic struct clk_rcg2 blsp1_qup0_spi_apps_clk_src = {
44262306a36Sopenharmony_ci	.cmd_rcgr = 0x6034,
44362306a36Sopenharmony_ci	.mnd_width = 8,
44462306a36Sopenharmony_ci	.hid_width = 5,
44562306a36Sopenharmony_ci	.parent_map = gcc_parent_map_0,
44662306a36Sopenharmony_ci	.freq_tbl = ftbl_blsp1_qup0_spi_apps_clk_src,
44762306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
44862306a36Sopenharmony_ci		.name = "blsp1_qup0_spi_apps_clk_src",
44962306a36Sopenharmony_ci		.parent_data = gcc_parent_data_0,
45062306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
45162306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
45262306a36Sopenharmony_ci	},
45362306a36Sopenharmony_ci};
45462306a36Sopenharmony_ci
45562306a36Sopenharmony_cistatic struct clk_rcg2 blsp1_qup1_i2c_apps_clk_src = {
45662306a36Sopenharmony_ci	.cmd_rcgr = 0x200c,
45762306a36Sopenharmony_ci	.mnd_width = 0,
45862306a36Sopenharmony_ci	.hid_width = 5,
45962306a36Sopenharmony_ci	.parent_map = gcc_parent_map_0,
46062306a36Sopenharmony_ci	.freq_tbl = ftbl_blsp1_qup0_i2c_apps_clk_src,
46162306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
46262306a36Sopenharmony_ci		.name = "blsp1_qup1_i2c_apps_clk_src",
46362306a36Sopenharmony_ci		.parent_data = gcc_parent_data_0,
46462306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
46562306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
46662306a36Sopenharmony_ci	},
46762306a36Sopenharmony_ci};
46862306a36Sopenharmony_ci
46962306a36Sopenharmony_cistatic const struct freq_tbl ftbl_blsp1_qup1_spi_apps_clk_src[] = {
47062306a36Sopenharmony_ci	F(960000,   P_XO, 10, 1, 2),
47162306a36Sopenharmony_ci	F(4800000,  P_XO, 4, 0, 0),
47262306a36Sopenharmony_ci	F(9600000,  P_XO, 2, 0, 0),
47362306a36Sopenharmony_ci	F(10480000, P_GPLL0_OUT_MAIN, 1, 3, 229),
47462306a36Sopenharmony_ci	F(16000000, P_GPLL0_OUT_MAIN, 10, 1, 5),
47562306a36Sopenharmony_ci	F(19200000, P_XO, 1, 0, 0),
47662306a36Sopenharmony_ci	F(20961000, P_GPLL0_OUT_MAIN, 1, 6, 229),
47762306a36Sopenharmony_ci	{ }
47862306a36Sopenharmony_ci};
47962306a36Sopenharmony_ci
48062306a36Sopenharmony_cistatic struct clk_rcg2 blsp1_qup1_spi_apps_clk_src = {
48162306a36Sopenharmony_ci	.cmd_rcgr = 0x2024,
48262306a36Sopenharmony_ci	.mnd_width = 8,
48362306a36Sopenharmony_ci	.hid_width = 5,
48462306a36Sopenharmony_ci	.parent_map = gcc_parent_map_0,
48562306a36Sopenharmony_ci	.freq_tbl = ftbl_blsp1_qup1_spi_apps_clk_src,
48662306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
48762306a36Sopenharmony_ci		.name = "blsp1_qup1_spi_apps_clk_src",
48862306a36Sopenharmony_ci		.parent_data = gcc_parent_data_0,
48962306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
49062306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
49162306a36Sopenharmony_ci	},
49262306a36Sopenharmony_ci};
49362306a36Sopenharmony_ci
49462306a36Sopenharmony_cistatic struct clk_rcg2 blsp1_qup2_i2c_apps_clk_src = {
49562306a36Sopenharmony_ci	.cmd_rcgr = 0x3000,
49662306a36Sopenharmony_ci	.mnd_width = 0,
49762306a36Sopenharmony_ci	.hid_width = 5,
49862306a36Sopenharmony_ci	.parent_map = gcc_parent_map_0,
49962306a36Sopenharmony_ci	.freq_tbl = ftbl_blsp1_qup0_i2c_apps_clk_src,
50062306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
50162306a36Sopenharmony_ci		.name = "blsp1_qup2_i2c_apps_clk_src",
50262306a36Sopenharmony_ci		.parent_data = gcc_parent_data_0,
50362306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
50462306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
50562306a36Sopenharmony_ci	},
50662306a36Sopenharmony_ci};
50762306a36Sopenharmony_ci
50862306a36Sopenharmony_cistatic const struct freq_tbl ftbl_blsp1_qup2_spi_apps_clk_src[] = {
50962306a36Sopenharmony_ci	F(960000,   P_XO, 10, 1, 2),
51062306a36Sopenharmony_ci	F(4800000,  P_XO, 4, 0, 0),
51162306a36Sopenharmony_ci	F(9600000,  P_XO, 2, 0, 0),
51262306a36Sopenharmony_ci	F(15000000, P_GPLL0_OUT_MAIN, 1,  3, 160),
51362306a36Sopenharmony_ci	F(16000000, P_GPLL0_OUT_MAIN, 10, 1, 5),
51462306a36Sopenharmony_ci	F(19200000, P_XO, 1, 0, 0),
51562306a36Sopenharmony_ci	F(25000000, P_GPLL0_OUT_MAIN, 16, 1, 2),
51662306a36Sopenharmony_ci	F(30000000, P_GPLL0_OUT_MAIN, 1,  3, 80),
51762306a36Sopenharmony_ci	{ }
51862306a36Sopenharmony_ci};
51962306a36Sopenharmony_ci
52062306a36Sopenharmony_cistatic struct clk_rcg2 blsp1_qup2_spi_apps_clk_src = {
52162306a36Sopenharmony_ci	.cmd_rcgr = 0x3014,
52262306a36Sopenharmony_ci	.mnd_width = 8,
52362306a36Sopenharmony_ci	.hid_width = 5,
52462306a36Sopenharmony_ci	.parent_map = gcc_parent_map_0,
52562306a36Sopenharmony_ci	.freq_tbl = ftbl_blsp1_qup2_spi_apps_clk_src,
52662306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
52762306a36Sopenharmony_ci		.name = "blsp1_qup2_spi_apps_clk_src",
52862306a36Sopenharmony_ci		.parent_data = gcc_parent_data_0,
52962306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
53062306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
53162306a36Sopenharmony_ci	},
53262306a36Sopenharmony_ci};
53362306a36Sopenharmony_ci
53462306a36Sopenharmony_cistatic struct clk_rcg2 blsp1_qup3_i2c_apps_clk_src = {
53562306a36Sopenharmony_ci	.cmd_rcgr = 0x4000,
53662306a36Sopenharmony_ci	.mnd_width = 0,
53762306a36Sopenharmony_ci	.hid_width = 5,
53862306a36Sopenharmony_ci	.parent_map = gcc_parent_map_0,
53962306a36Sopenharmony_ci	.freq_tbl = ftbl_blsp1_qup0_i2c_apps_clk_src,
54062306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
54162306a36Sopenharmony_ci		.name = "blsp1_qup3_i2c_apps_clk_src",
54262306a36Sopenharmony_ci		.parent_data = gcc_parent_data_0,
54362306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
54462306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
54562306a36Sopenharmony_ci	},
54662306a36Sopenharmony_ci};
54762306a36Sopenharmony_ci
54862306a36Sopenharmony_cistatic struct clk_rcg2 blsp1_qup3_spi_apps_clk_src = {
54962306a36Sopenharmony_ci	.cmd_rcgr = 0x4024,
55062306a36Sopenharmony_ci	.mnd_width = 8,
55162306a36Sopenharmony_ci	.hid_width = 5,
55262306a36Sopenharmony_ci	.parent_map = gcc_parent_map_0,
55362306a36Sopenharmony_ci	.freq_tbl = ftbl_blsp1_qup0_spi_apps_clk_src,
55462306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
55562306a36Sopenharmony_ci		.name = "blsp1_qup3_spi_apps_clk_src",
55662306a36Sopenharmony_ci		.parent_data = gcc_parent_data_0,
55762306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
55862306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
55962306a36Sopenharmony_ci	},
56062306a36Sopenharmony_ci};
56162306a36Sopenharmony_ci
56262306a36Sopenharmony_cistatic struct clk_rcg2 blsp1_qup4_i2c_apps_clk_src = {
56362306a36Sopenharmony_ci	.cmd_rcgr = 0x5000,
56462306a36Sopenharmony_ci	.mnd_width = 0,
56562306a36Sopenharmony_ci	.hid_width = 5,
56662306a36Sopenharmony_ci	.parent_map = gcc_parent_map_0,
56762306a36Sopenharmony_ci	.freq_tbl = ftbl_blsp1_qup0_i2c_apps_clk_src,
56862306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
56962306a36Sopenharmony_ci		.name = "blsp1_qup4_i2c_apps_clk_src",
57062306a36Sopenharmony_ci		.parent_data = gcc_parent_data_0,
57162306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
57262306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
57362306a36Sopenharmony_ci	},
57462306a36Sopenharmony_ci};
57562306a36Sopenharmony_ci
57662306a36Sopenharmony_cistatic struct clk_rcg2 blsp1_qup4_spi_apps_clk_src = {
57762306a36Sopenharmony_ci	.cmd_rcgr = 0x5024,
57862306a36Sopenharmony_ci	.mnd_width = 8,
57962306a36Sopenharmony_ci	.hid_width = 5,
58062306a36Sopenharmony_ci	.parent_map = gcc_parent_map_0,
58162306a36Sopenharmony_ci	.freq_tbl = ftbl_blsp1_qup0_spi_apps_clk_src,
58262306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
58362306a36Sopenharmony_ci		.name = "blsp1_qup4_spi_apps_clk_src",
58462306a36Sopenharmony_ci		.parent_data = gcc_parent_data_0,
58562306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
58662306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
58762306a36Sopenharmony_ci	},
58862306a36Sopenharmony_ci};
58962306a36Sopenharmony_ci
59062306a36Sopenharmony_cistatic const struct freq_tbl ftbl_blsp1_uart0_apps_clk_src[] = {
59162306a36Sopenharmony_ci	F(3686400, P_GPLL0_OUT_MAIN, 1, 72, 15625),
59262306a36Sopenharmony_ci	F(7372800, P_GPLL0_OUT_MAIN, 1, 144, 15625),
59362306a36Sopenharmony_ci	F(14745600, P_GPLL0_OUT_MAIN, 1, 288, 15625),
59462306a36Sopenharmony_ci	F(16000000, P_GPLL0_OUT_MAIN, 10, 1, 5),
59562306a36Sopenharmony_ci	F(19200000, P_XO, 1, 0, 0),
59662306a36Sopenharmony_ci	F(24000000, P_GPLL0_OUT_MAIN, 1, 3, 100),
59762306a36Sopenharmony_ci	F(25000000, P_GPLL0_OUT_MAIN, 16, 1, 2),
59862306a36Sopenharmony_ci	F(32000000, P_GPLL0_OUT_MAIN, 1, 1, 25),
59962306a36Sopenharmony_ci	F(40000000, P_GPLL0_OUT_MAIN, 1, 1, 20),
60062306a36Sopenharmony_ci	F(46400000, P_GPLL0_OUT_MAIN, 1, 29, 500),
60162306a36Sopenharmony_ci	F(48000000, P_GPLL0_OUT_MAIN, 1, 3, 50),
60262306a36Sopenharmony_ci	F(51200000, P_GPLL0_OUT_MAIN, 1, 8, 125),
60362306a36Sopenharmony_ci	F(56000000, P_GPLL0_OUT_MAIN, 1, 7, 100),
60462306a36Sopenharmony_ci	F(58982400, P_GPLL0_OUT_MAIN, 1, 1152, 15625),
60562306a36Sopenharmony_ci	F(60000000, P_GPLL0_OUT_MAIN, 1, 3, 40),
60662306a36Sopenharmony_ci	F(64000000, P_GPLL0_OUT_MAIN, 1, 2, 25),
60762306a36Sopenharmony_ci	{ }
60862306a36Sopenharmony_ci};
60962306a36Sopenharmony_ci
61062306a36Sopenharmony_cistatic struct clk_rcg2 blsp1_uart0_apps_clk_src = {
61162306a36Sopenharmony_ci	.cmd_rcgr = 0x600c,
61262306a36Sopenharmony_ci	.mnd_width = 16,
61362306a36Sopenharmony_ci	.hid_width = 5,
61462306a36Sopenharmony_ci	.parent_map = gcc_parent_map_0,
61562306a36Sopenharmony_ci	.freq_tbl = ftbl_blsp1_uart0_apps_clk_src,
61662306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
61762306a36Sopenharmony_ci		.name = "blsp1_uart0_apps_clk_src",
61862306a36Sopenharmony_ci		.parent_data = gcc_parent_data_0,
61962306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
62062306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
62162306a36Sopenharmony_ci	},
62262306a36Sopenharmony_ci};
62362306a36Sopenharmony_ci
62462306a36Sopenharmony_cistatic struct clk_rcg2 blsp1_uart1_apps_clk_src = {
62562306a36Sopenharmony_ci	.cmd_rcgr = 0x2044,
62662306a36Sopenharmony_ci	.mnd_width = 16,
62762306a36Sopenharmony_ci	.hid_width = 5,
62862306a36Sopenharmony_ci	.parent_map = gcc_parent_map_0,
62962306a36Sopenharmony_ci	.freq_tbl = ftbl_blsp1_uart0_apps_clk_src,
63062306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
63162306a36Sopenharmony_ci		.name = "blsp1_uart1_apps_clk_src",
63262306a36Sopenharmony_ci		.parent_data = gcc_parent_data_0,
63362306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
63462306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
63562306a36Sopenharmony_ci	},
63662306a36Sopenharmony_ci};
63762306a36Sopenharmony_ci
63862306a36Sopenharmony_cistatic struct clk_rcg2 blsp1_uart2_apps_clk_src = {
63962306a36Sopenharmony_ci	.cmd_rcgr = 0x3034,
64062306a36Sopenharmony_ci	.mnd_width = 16,
64162306a36Sopenharmony_ci	.hid_width = 5,
64262306a36Sopenharmony_ci	.parent_map = gcc_parent_map_0,
64362306a36Sopenharmony_ci	.freq_tbl = ftbl_blsp1_uart0_apps_clk_src,
64462306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
64562306a36Sopenharmony_ci		.name = "blsp1_uart2_apps_clk_src",
64662306a36Sopenharmony_ci		.parent_data = gcc_parent_data_0,
64762306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
64862306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
64962306a36Sopenharmony_ci	},
65062306a36Sopenharmony_ci};
65162306a36Sopenharmony_ci
65262306a36Sopenharmony_cistatic struct clk_rcg2 blsp1_uart3_apps_clk_src = {
65362306a36Sopenharmony_ci	.cmd_rcgr = 0x4014,
65462306a36Sopenharmony_ci	.mnd_width = 16,
65562306a36Sopenharmony_ci	.hid_width = 5,
65662306a36Sopenharmony_ci	.cfg_off = 0x20,
65762306a36Sopenharmony_ci	.parent_map = gcc_parent_map_0,
65862306a36Sopenharmony_ci	.freq_tbl = ftbl_blsp1_uart0_apps_clk_src,
65962306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
66062306a36Sopenharmony_ci		.name = "blsp1_uart3_apps_clk_src",
66162306a36Sopenharmony_ci		.parent_data = gcc_parent_data_0,
66262306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
66362306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
66462306a36Sopenharmony_ci	},
66562306a36Sopenharmony_ci};
66662306a36Sopenharmony_ci
66762306a36Sopenharmony_cistatic struct clk_rcg2 blsp2_qup0_i2c_apps_clk_src = {
66862306a36Sopenharmony_ci	.cmd_rcgr = 0xc00c,
66962306a36Sopenharmony_ci	.mnd_width = 0,
67062306a36Sopenharmony_ci	.hid_width = 5,
67162306a36Sopenharmony_ci	.parent_map = gcc_parent_map_0,
67262306a36Sopenharmony_ci	.freq_tbl = ftbl_blsp1_qup0_i2c_apps_clk_src,
67362306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
67462306a36Sopenharmony_ci		.name = "blsp2_qup0_i2c_apps_clk_src",
67562306a36Sopenharmony_ci		.parent_data = gcc_parent_data_0,
67662306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
67762306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
67862306a36Sopenharmony_ci	},
67962306a36Sopenharmony_ci};
68062306a36Sopenharmony_ci
68162306a36Sopenharmony_cistatic struct clk_rcg2 blsp2_qup0_spi_apps_clk_src = {
68262306a36Sopenharmony_ci	.cmd_rcgr = 0xc024,
68362306a36Sopenharmony_ci	.mnd_width = 8,
68462306a36Sopenharmony_ci	.hid_width = 5,
68562306a36Sopenharmony_ci	.parent_map = gcc_parent_map_0,
68662306a36Sopenharmony_ci	.freq_tbl = ftbl_blsp1_qup0_spi_apps_clk_src,
68762306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
68862306a36Sopenharmony_ci		.name = "blsp2_qup0_spi_apps_clk_src",
68962306a36Sopenharmony_ci		.parent_data = gcc_parent_data_0,
69062306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
69162306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
69262306a36Sopenharmony_ci	},
69362306a36Sopenharmony_ci};
69462306a36Sopenharmony_ci
69562306a36Sopenharmony_cistatic struct clk_rcg2 blsp2_uart0_apps_clk_src = {
69662306a36Sopenharmony_ci	.cmd_rcgr = 0xc044,
69762306a36Sopenharmony_ci	.mnd_width = 16,
69862306a36Sopenharmony_ci	.hid_width = 5,
69962306a36Sopenharmony_ci	.parent_map = gcc_parent_map_0,
70062306a36Sopenharmony_ci	.freq_tbl = ftbl_blsp1_uart0_apps_clk_src,
70162306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
70262306a36Sopenharmony_ci		.name = "blsp2_uart0_apps_clk_src",
70362306a36Sopenharmony_ci		.parent_data = gcc_parent_data_0,
70462306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
70562306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
70662306a36Sopenharmony_ci	},
70762306a36Sopenharmony_ci};
70862306a36Sopenharmony_ci
70962306a36Sopenharmony_cistatic struct clk_rcg2 byte0_clk_src = {
71062306a36Sopenharmony_ci	.cmd_rcgr = 0x4d044,
71162306a36Sopenharmony_ci	.mnd_width = 0,
71262306a36Sopenharmony_ci	.hid_width = 5,
71362306a36Sopenharmony_ci	.parent_map = gcc_parent_map_5,
71462306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
71562306a36Sopenharmony_ci		.name = "byte0_clk_src",
71662306a36Sopenharmony_ci		.parent_data = gcc_parent_data_5,
71762306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_5),
71862306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
71962306a36Sopenharmony_ci		.ops = &clk_byte2_ops,
72062306a36Sopenharmony_ci	},
72162306a36Sopenharmony_ci};
72262306a36Sopenharmony_ci
72362306a36Sopenharmony_cistatic const struct freq_tbl ftbl_emac_clk_src[] = {
72462306a36Sopenharmony_ci	F(5000000,   P_GPLL1_OUT_MAIN, 2, 1, 50),
72562306a36Sopenharmony_ci	F(50000000,  P_GPLL1_OUT_MAIN, 10, 0, 0),
72662306a36Sopenharmony_ci	F(125000000, P_GPLL1_OUT_MAIN, 4, 0, 0),
72762306a36Sopenharmony_ci	F(250000000, P_GPLL1_OUT_MAIN, 2, 0, 0),
72862306a36Sopenharmony_ci	{ }
72962306a36Sopenharmony_ci};
73062306a36Sopenharmony_ci
73162306a36Sopenharmony_cistatic struct clk_rcg2 emac_clk_src = {
73262306a36Sopenharmony_ci	.cmd_rcgr = 0x4e01c,
73362306a36Sopenharmony_ci	.mnd_width = 8,
73462306a36Sopenharmony_ci	.hid_width = 5,
73562306a36Sopenharmony_ci	.parent_map = gcc_parent_map_4,
73662306a36Sopenharmony_ci	.freq_tbl = ftbl_emac_clk_src,
73762306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
73862306a36Sopenharmony_ci		.name = "emac_clk_src",
73962306a36Sopenharmony_ci		.parent_data = gcc_parent_data_4,
74062306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_4),
74162306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
74262306a36Sopenharmony_ci	},
74362306a36Sopenharmony_ci};
74462306a36Sopenharmony_ci
74562306a36Sopenharmony_cistatic const struct freq_tbl ftbl_emac_ptp_clk_src[] = {
74662306a36Sopenharmony_ci	F(50000000,  P_GPLL1_OUT_MAIN, 10, 0, 0),
74762306a36Sopenharmony_ci	F(125000000, P_GPLL1_OUT_MAIN, 4, 0, 0),
74862306a36Sopenharmony_ci	F(250000000, P_GPLL1_OUT_MAIN, 2, 0, 0),
74962306a36Sopenharmony_ci	{ }
75062306a36Sopenharmony_ci};
75162306a36Sopenharmony_ci
75262306a36Sopenharmony_cistatic struct clk_rcg2 emac_ptp_clk_src = {
75362306a36Sopenharmony_ci	.cmd_rcgr = 0x4e014,
75462306a36Sopenharmony_ci	.mnd_width = 0,
75562306a36Sopenharmony_ci	.hid_width = 5,
75662306a36Sopenharmony_ci	.parent_map = gcc_parent_map_4,
75762306a36Sopenharmony_ci	.freq_tbl = ftbl_emac_ptp_clk_src,
75862306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
75962306a36Sopenharmony_ci		.name = "emac_ptp_clk_src",
76062306a36Sopenharmony_ci		.parent_data = gcc_parent_data_4,
76162306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_4),
76262306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
76362306a36Sopenharmony_ci	},
76462306a36Sopenharmony_ci};
76562306a36Sopenharmony_ci
76662306a36Sopenharmony_cistatic const struct freq_tbl ftbl_esc0_clk_src[] = {
76762306a36Sopenharmony_ci	F(19200000, P_XO, 1, 0, 0),
76862306a36Sopenharmony_ci	{ }
76962306a36Sopenharmony_ci};
77062306a36Sopenharmony_ci
77162306a36Sopenharmony_cistatic struct clk_rcg2 esc0_clk_src = {
77262306a36Sopenharmony_ci	.cmd_rcgr = 0x4d05c,
77362306a36Sopenharmony_ci	.mnd_width = 0,
77462306a36Sopenharmony_ci	.hid_width = 5,
77562306a36Sopenharmony_ci	.parent_map = gcc_parent_map_6,
77662306a36Sopenharmony_ci	.freq_tbl = ftbl_esc0_clk_src,
77762306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
77862306a36Sopenharmony_ci		.name = "esc0_clk_src",
77962306a36Sopenharmony_ci		.parent_data = gcc_parent_data_6,
78062306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_6),
78162306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
78262306a36Sopenharmony_ci	},
78362306a36Sopenharmony_ci};
78462306a36Sopenharmony_ci
78562306a36Sopenharmony_cistatic const struct freq_tbl ftbl_gfx3d_clk_src[] = {
78662306a36Sopenharmony_ci	F(19200000,  P_XO, 1, 0, 0),
78762306a36Sopenharmony_ci	F(50000000,  P_GPLL0_OUT_MAIN, 16, 0, 0),
78862306a36Sopenharmony_ci	F(80000000,  P_GPLL0_OUT_MAIN, 10, 0, 0),
78962306a36Sopenharmony_ci	F(100000000, P_GPLL0_OUT_MAIN, 8, 0, 0),
79062306a36Sopenharmony_ci	F(160000000, P_GPLL0_OUT_MAIN, 5, 0, 0),
79162306a36Sopenharmony_ci	F(200000000, P_GPLL0_OUT_MAIN, 4, 0, 0),
79262306a36Sopenharmony_ci	F(228571429, P_GPLL0_OUT_MAIN, 3.5, 0, 0),
79362306a36Sopenharmony_ci	F(240000000, P_GPLL6_OUT_AUX,  4.5, 0, 0),
79462306a36Sopenharmony_ci	F(266666667, P_GPLL0_OUT_MAIN, 3, 0, 0),
79562306a36Sopenharmony_ci	F(270000000, P_GPLL6_OUT_AUX,  4, 0, 0),
79662306a36Sopenharmony_ci	F(320000000, P_GPLL0_OUT_MAIN, 2.5, 0, 0),
79762306a36Sopenharmony_ci	F(400000000, P_GPLL0_OUT_MAIN, 2, 0, 0),
79862306a36Sopenharmony_ci	F(484800000, P_GPLL3_OUT_MAIN, 1, 0, 0),
79962306a36Sopenharmony_ci	F(523200000, P_GPLL3_OUT_MAIN, 1, 0, 0),
80062306a36Sopenharmony_ci	F(550000000, P_GPLL3_OUT_MAIN, 1, 0, 0),
80162306a36Sopenharmony_ci	F(598000000, P_GPLL3_OUT_MAIN, 1, 0, 0),
80262306a36Sopenharmony_ci	{ }
80362306a36Sopenharmony_ci};
80462306a36Sopenharmony_ci
80562306a36Sopenharmony_cistatic struct clk_rcg2 gfx3d_clk_src = {
80662306a36Sopenharmony_ci	.cmd_rcgr = 0x59000,
80762306a36Sopenharmony_ci	.mnd_width = 0,
80862306a36Sopenharmony_ci	.hid_width = 5,
80962306a36Sopenharmony_ci	.parent_map = gcc_parent_map_7,
81062306a36Sopenharmony_ci	.freq_tbl = ftbl_gfx3d_clk_src,
81162306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
81262306a36Sopenharmony_ci		.name = "gfx3d_clk_src",
81362306a36Sopenharmony_ci		.parent_data = gcc_parent_data_7,
81462306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_7),
81562306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
81662306a36Sopenharmony_ci	},
81762306a36Sopenharmony_ci};
81862306a36Sopenharmony_ci
81962306a36Sopenharmony_cistatic const struct freq_tbl ftbl_gp1_clk_src[] = {
82062306a36Sopenharmony_ci	F(19200000, P_XO, 1, 0, 0),
82162306a36Sopenharmony_ci	F(100000000, P_GPLL0_OUT_MAIN, 8, 0, 0),
82262306a36Sopenharmony_ci	F(200000000, P_GPLL0_OUT_MAIN, 4, 0, 0),
82362306a36Sopenharmony_ci	{ }
82462306a36Sopenharmony_ci};
82562306a36Sopenharmony_ci
82662306a36Sopenharmony_cistatic struct clk_rcg2 gp1_clk_src = {
82762306a36Sopenharmony_ci	.cmd_rcgr = 0x8004,
82862306a36Sopenharmony_ci	.mnd_width = 8,
82962306a36Sopenharmony_ci	.hid_width = 5,
83062306a36Sopenharmony_ci	.parent_map = gcc_parent_map_2,
83162306a36Sopenharmony_ci	.freq_tbl = ftbl_gp1_clk_src,
83262306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
83362306a36Sopenharmony_ci		.name = "gp1_clk_src",
83462306a36Sopenharmony_ci		.parent_data = gcc_parent_data_2,
83562306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_2),
83662306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
83762306a36Sopenharmony_ci	},
83862306a36Sopenharmony_ci};
83962306a36Sopenharmony_ci
84062306a36Sopenharmony_cistatic struct clk_rcg2 gp2_clk_src = {
84162306a36Sopenharmony_ci	.cmd_rcgr = 0x9004,
84262306a36Sopenharmony_ci	.mnd_width = 8,
84362306a36Sopenharmony_ci	.hid_width = 5,
84462306a36Sopenharmony_ci	.parent_map = gcc_parent_map_2,
84562306a36Sopenharmony_ci	.freq_tbl = ftbl_gp1_clk_src,
84662306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
84762306a36Sopenharmony_ci		.name = "gp2_clk_src",
84862306a36Sopenharmony_ci		.parent_data = gcc_parent_data_2,
84962306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_2),
85062306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
85162306a36Sopenharmony_ci	},
85262306a36Sopenharmony_ci};
85362306a36Sopenharmony_ci
85462306a36Sopenharmony_cistatic struct clk_rcg2 gp3_clk_src = {
85562306a36Sopenharmony_ci	.cmd_rcgr = 0xa004,
85662306a36Sopenharmony_ci	.mnd_width = 8,
85762306a36Sopenharmony_ci	.hid_width = 5,
85862306a36Sopenharmony_ci	.parent_map = gcc_parent_map_2,
85962306a36Sopenharmony_ci	.freq_tbl = ftbl_gp1_clk_src,
86062306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
86162306a36Sopenharmony_ci		.name = "gp3_clk_src",
86262306a36Sopenharmony_ci		.parent_data = gcc_parent_data_2,
86362306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_2),
86462306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
86562306a36Sopenharmony_ci	},
86662306a36Sopenharmony_ci};
86762306a36Sopenharmony_ci
86862306a36Sopenharmony_cistatic struct clk_rcg2 hdmi_app_clk_src = {
86962306a36Sopenharmony_ci	.cmd_rcgr = 0x4d0e4,
87062306a36Sopenharmony_ci	.mnd_width = 0,
87162306a36Sopenharmony_ci	.hid_width = 5,
87262306a36Sopenharmony_ci	.parent_map = gcc_parent_map_1,
87362306a36Sopenharmony_ci	.freq_tbl = ftbl_esc0_clk_src,
87462306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
87562306a36Sopenharmony_ci		.name = "hdmi_app_clk_src",
87662306a36Sopenharmony_ci		.parent_data = gcc_parent_data_1,
87762306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_1),
87862306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
87962306a36Sopenharmony_ci	},
88062306a36Sopenharmony_ci};
88162306a36Sopenharmony_ci
88262306a36Sopenharmony_cistatic struct clk_rcg2 hdmi_pclk_clk_src = {
88362306a36Sopenharmony_ci	.cmd_rcgr = 0x4d0dc,
88462306a36Sopenharmony_ci	.mnd_width = 0,
88562306a36Sopenharmony_ci	.hid_width = 5,
88662306a36Sopenharmony_ci	.parent_map = gcc_parent_map_8,
88762306a36Sopenharmony_ci	.freq_tbl = ftbl_esc0_clk_src,
88862306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
88962306a36Sopenharmony_ci		.name = "hdmi_pclk_clk_src",
89062306a36Sopenharmony_ci		.parent_data = gcc_parent_data_8,
89162306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_8),
89262306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
89362306a36Sopenharmony_ci	},
89462306a36Sopenharmony_ci};
89562306a36Sopenharmony_ci
89662306a36Sopenharmony_cistatic const struct freq_tbl ftbl_mdp_clk_src[] = {
89762306a36Sopenharmony_ci	F(50000000, P_GPLL0_OUT_MAIN, 16, 0, 0),
89862306a36Sopenharmony_ci	F(80000000, P_GPLL0_OUT_MAIN, 10, 0, 0),
89962306a36Sopenharmony_ci	F(100000000, P_GPLL0_OUT_MAIN, 8, 0, 0),
90062306a36Sopenharmony_ci	F(145454545, P_GPLL0_OUT_MAIN, 5.5, 0, 0),
90162306a36Sopenharmony_ci	F(160000000, P_GPLL0_OUT_MAIN, 5, 0, 0),
90262306a36Sopenharmony_ci	F(177777778, P_GPLL0_OUT_MAIN, 4.5, 0, 0),
90362306a36Sopenharmony_ci	F(200000000, P_GPLL0_OUT_MAIN, 4, 0, 0),
90462306a36Sopenharmony_ci	F(266666667, P_GPLL0_OUT_MAIN, 3, 0, 0),
90562306a36Sopenharmony_ci	F(320000000, P_GPLL0_OUT_MAIN, 2.5, 0, 0),
90662306a36Sopenharmony_ci	{ }
90762306a36Sopenharmony_ci};
90862306a36Sopenharmony_ci
90962306a36Sopenharmony_cistatic struct clk_rcg2 mdp_clk_src = {
91062306a36Sopenharmony_ci	.cmd_rcgr = 0x4d014,
91162306a36Sopenharmony_ci	.mnd_width = 0,
91262306a36Sopenharmony_ci	.hid_width = 5,
91362306a36Sopenharmony_ci	.parent_map = gcc_parent_map_9,
91462306a36Sopenharmony_ci	.freq_tbl = ftbl_mdp_clk_src,
91562306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
91662306a36Sopenharmony_ci		.name = "mdp_clk_src",
91762306a36Sopenharmony_ci		.parent_data = gcc_parent_data_9,
91862306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_9),
91962306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
92062306a36Sopenharmony_ci	},
92162306a36Sopenharmony_ci};
92262306a36Sopenharmony_ci
92362306a36Sopenharmony_cistatic const struct freq_tbl ftbl_pcie_0_aux_clk_src[] = {
92462306a36Sopenharmony_ci	F(1200000, P_XO, 16, 0, 0),
92562306a36Sopenharmony_ci	{ }
92662306a36Sopenharmony_ci};
92762306a36Sopenharmony_ci
92862306a36Sopenharmony_cistatic struct clk_rcg2 pcie_0_aux_clk_src = {
92962306a36Sopenharmony_ci	.cmd_rcgr = 0x3e024,
93062306a36Sopenharmony_ci	.mnd_width = 16,
93162306a36Sopenharmony_ci	.hid_width = 5,
93262306a36Sopenharmony_ci	.parent_map = gcc_parent_map_10,
93362306a36Sopenharmony_ci	.freq_tbl = ftbl_pcie_0_aux_clk_src,
93462306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
93562306a36Sopenharmony_ci		.name = "pcie_0_aux_clk_src",
93662306a36Sopenharmony_ci		.parent_data = gcc_parent_data_10,
93762306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_10),
93862306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
93962306a36Sopenharmony_ci	},
94062306a36Sopenharmony_ci};
94162306a36Sopenharmony_ci
94262306a36Sopenharmony_cistatic const struct freq_tbl ftbl_pcie_0_pipe_clk_src[] = {
94362306a36Sopenharmony_ci	F(19200000, P_XO, 1, 0, 0),
94462306a36Sopenharmony_ci	F(125000000, P_PCIE_0_PIPE_CLK, 2, 0, 0),
94562306a36Sopenharmony_ci	F(250000000, P_PCIE_0_PIPE_CLK, 1, 0, 0),
94662306a36Sopenharmony_ci	{ }
94762306a36Sopenharmony_ci};
94862306a36Sopenharmony_ci
94962306a36Sopenharmony_cistatic struct clk_rcg2 pcie_0_pipe_clk_src = {
95062306a36Sopenharmony_ci	.cmd_rcgr = 0x3e01c,
95162306a36Sopenharmony_ci	.mnd_width = 0,
95262306a36Sopenharmony_ci	.hid_width = 5,
95362306a36Sopenharmony_ci	.parent_map = gcc_parent_map_11,
95462306a36Sopenharmony_ci	.freq_tbl = ftbl_pcie_0_pipe_clk_src,
95562306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
95662306a36Sopenharmony_ci		.name = "pcie_0_pipe_clk_src",
95762306a36Sopenharmony_ci		.parent_data = gcc_parent_data_11,
95862306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_11),
95962306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
96062306a36Sopenharmony_ci	},
96162306a36Sopenharmony_ci};
96262306a36Sopenharmony_ci
96362306a36Sopenharmony_cistatic struct clk_rcg2 pclk0_clk_src = {
96462306a36Sopenharmony_ci	.cmd_rcgr = 0x4d000,
96562306a36Sopenharmony_ci	.mnd_width = 8,
96662306a36Sopenharmony_ci	.hid_width = 5,
96762306a36Sopenharmony_ci	.parent_map = gcc_parent_map_12,
96862306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
96962306a36Sopenharmony_ci		.name = "pclk0_clk_src",
97062306a36Sopenharmony_ci		.parent_data = gcc_parent_data_12,
97162306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_12),
97262306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
97362306a36Sopenharmony_ci		.ops = &clk_pixel_ops,
97462306a36Sopenharmony_ci	},
97562306a36Sopenharmony_ci};
97662306a36Sopenharmony_ci
97762306a36Sopenharmony_cistatic const struct freq_tbl ftbl_pdm2_clk_src[] = {
97862306a36Sopenharmony_ci	F(19200000, P_XO, 1, 0, 0),
97962306a36Sopenharmony_ci	F(64000000, P_GPLL0_OUT_MAIN, 12.5, 0, 0),
98062306a36Sopenharmony_ci	{ }
98162306a36Sopenharmony_ci};
98262306a36Sopenharmony_ci
98362306a36Sopenharmony_cistatic struct clk_rcg2 pdm2_clk_src = {
98462306a36Sopenharmony_ci	.cmd_rcgr = 0x44010,
98562306a36Sopenharmony_ci	.mnd_width = 0,
98662306a36Sopenharmony_ci	.hid_width = 5,
98762306a36Sopenharmony_ci	.parent_map = gcc_parent_map_0,
98862306a36Sopenharmony_ci	.freq_tbl = ftbl_pdm2_clk_src,
98962306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
99062306a36Sopenharmony_ci		.name = "pdm2_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_ops,
99462306a36Sopenharmony_ci	},
99562306a36Sopenharmony_ci};
99662306a36Sopenharmony_ci
99762306a36Sopenharmony_cistatic const struct freq_tbl ftbl_sdcc1_apps_clk_src[] = {
99862306a36Sopenharmony_ci	F(144000, P_XO, 16, 3, 25),
99962306a36Sopenharmony_ci	F(400000, P_XO, 12, 1, 4),
100062306a36Sopenharmony_ci	F(20000000, P_GPLL0_OUT_MAIN, 10, 1, 4),
100162306a36Sopenharmony_ci	F(25000000, P_GPLL0_OUT_MAIN, 16, 1, 2),
100262306a36Sopenharmony_ci	F(50000000, P_GPLL0_OUT_MAIN, 16, 0, 0),
100362306a36Sopenharmony_ci	F(100000000, P_GPLL0_OUT_MAIN, 8, 0, 0),
100462306a36Sopenharmony_ci	F(177777778, P_GPLL0_OUT_MAIN, 4.5, 0, 0),
100562306a36Sopenharmony_ci	F(192000000, P_GPLL4_OUT_MAIN, 6, 0, 0),
100662306a36Sopenharmony_ci	F(200000000, P_GPLL0_OUT_MAIN, 4, 0, 0),
100762306a36Sopenharmony_ci	F(384000000, P_GPLL4_OUT_MAIN, 3, 0, 0),
100862306a36Sopenharmony_ci	{ }
100962306a36Sopenharmony_ci};
101062306a36Sopenharmony_ci
101162306a36Sopenharmony_cistatic struct clk_rcg2 sdcc1_apps_clk_src = {
101262306a36Sopenharmony_ci	.cmd_rcgr = 0x42004,
101362306a36Sopenharmony_ci	.mnd_width = 8,
101462306a36Sopenharmony_ci	.hid_width = 5,
101562306a36Sopenharmony_ci	.parent_map = gcc_parent_map_13,
101662306a36Sopenharmony_ci	.freq_tbl = ftbl_sdcc1_apps_clk_src,
101762306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
101862306a36Sopenharmony_ci		.name = "sdcc1_apps_clk_src",
101962306a36Sopenharmony_ci		.parent_data = gcc_parent_data_13,
102062306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_13),
102162306a36Sopenharmony_ci		.ops = &clk_rcg2_floor_ops,
102262306a36Sopenharmony_ci	},
102362306a36Sopenharmony_ci};
102462306a36Sopenharmony_ci
102562306a36Sopenharmony_cistatic const struct freq_tbl ftbl_sdcc1_ice_core_clk_src[] = {
102662306a36Sopenharmony_ci	F(160000000, P_GPLL0_OUT_MAIN, 5, 0, 0),
102762306a36Sopenharmony_ci	F(266666667, P_GPLL0_OUT_MAIN, 3, 0, 0),
102862306a36Sopenharmony_ci	{ }
102962306a36Sopenharmony_ci};
103062306a36Sopenharmony_ci
103162306a36Sopenharmony_cistatic struct clk_rcg2 sdcc1_ice_core_clk_src = {
103262306a36Sopenharmony_ci	.cmd_rcgr = 0x5d000,
103362306a36Sopenharmony_ci	.mnd_width = 8,
103462306a36Sopenharmony_ci	.hid_width = 5,
103562306a36Sopenharmony_ci	.parent_map = gcc_parent_map_3,
103662306a36Sopenharmony_ci	.freq_tbl = ftbl_sdcc1_ice_core_clk_src,
103762306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
103862306a36Sopenharmony_ci		.name = "sdcc1_ice_core_clk_src",
103962306a36Sopenharmony_ci		.parent_data = gcc_parent_data_3,
104062306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_3),
104162306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
104262306a36Sopenharmony_ci	},
104362306a36Sopenharmony_ci};
104462306a36Sopenharmony_ci
104562306a36Sopenharmony_cistatic const struct freq_tbl ftbl_sdcc2_apps_clk_src[] = {
104662306a36Sopenharmony_ci	F(144000, P_XO, 16, 3, 25),
104762306a36Sopenharmony_ci	F(400000, P_XO, 12, 1, 4),
104862306a36Sopenharmony_ci	F(20000000, P_GPLL0_OUT_MAIN, 10, 1, 4),
104962306a36Sopenharmony_ci	F(25000000, P_GPLL0_OUT_MAIN, 16, 1, 2),
105062306a36Sopenharmony_ci	F(50000000, P_GPLL0_OUT_MAIN, 16, 0, 0),
105162306a36Sopenharmony_ci	F(100000000, P_GPLL0_OUT_MAIN, 8, 0, 0),
105262306a36Sopenharmony_ci	F(177777778, P_GPLL0_OUT_MAIN, 4.5, 0, 0),
105362306a36Sopenharmony_ci	F(200000000, P_GPLL0_OUT_MAIN, 4, 0, 0),
105462306a36Sopenharmony_ci	{ }
105562306a36Sopenharmony_ci};
105662306a36Sopenharmony_ci
105762306a36Sopenharmony_cistatic struct clk_rcg2 sdcc2_apps_clk_src = {
105862306a36Sopenharmony_ci	.cmd_rcgr = 0x43004,
105962306a36Sopenharmony_ci	.mnd_width = 8,
106062306a36Sopenharmony_ci	.hid_width = 5,
106162306a36Sopenharmony_ci	.parent_map = gcc_parent_map_14,
106262306a36Sopenharmony_ci	.freq_tbl = ftbl_sdcc2_apps_clk_src,
106362306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
106462306a36Sopenharmony_ci		.name = "sdcc2_apps_clk_src",
106562306a36Sopenharmony_ci		.parent_data = gcc_parent_data_14,
106662306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_14),
106762306a36Sopenharmony_ci		.ops = &clk_rcg2_floor_ops,
106862306a36Sopenharmony_ci	},
106962306a36Sopenharmony_ci};
107062306a36Sopenharmony_ci
107162306a36Sopenharmony_cistatic struct clk_rcg2 usb20_mock_utmi_clk_src = {
107262306a36Sopenharmony_ci	.cmd_rcgr = 0x41048,
107362306a36Sopenharmony_ci	.mnd_width = 0,
107462306a36Sopenharmony_ci	.hid_width = 5,
107562306a36Sopenharmony_ci	.parent_map = gcc_parent_map_1,
107662306a36Sopenharmony_ci	.freq_tbl = ftbl_esc0_clk_src,
107762306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
107862306a36Sopenharmony_ci		.name = "usb20_mock_utmi_clk_src",
107962306a36Sopenharmony_ci		.parent_data = gcc_parent_data_1,
108062306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_1),
108162306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
108262306a36Sopenharmony_ci	},
108362306a36Sopenharmony_ci};
108462306a36Sopenharmony_ci
108562306a36Sopenharmony_cistatic const struct freq_tbl ftbl_usb30_master_clk_src[] = {
108662306a36Sopenharmony_ci	F(19200000, P_XO, 1, 0, 0),
108762306a36Sopenharmony_ci	F(100000000, P_GPLL0_OUT_MAIN, 8, 0, 0),
108862306a36Sopenharmony_ci	F(200000000, P_GPLL0_OUT_MAIN, 4, 0, 0),
108962306a36Sopenharmony_ci	F(266666667, P_GPLL0_OUT_MAIN, 3, 0, 0),
109062306a36Sopenharmony_ci	{ }
109162306a36Sopenharmony_ci};
109262306a36Sopenharmony_ci
109362306a36Sopenharmony_cistatic struct clk_rcg2 usb30_master_clk_src = {
109462306a36Sopenharmony_ci	.cmd_rcgr = 0x39028,
109562306a36Sopenharmony_ci	.mnd_width = 8,
109662306a36Sopenharmony_ci	.hid_width = 5,
109762306a36Sopenharmony_ci	.parent_map = gcc_parent_map_0,
109862306a36Sopenharmony_ci	.freq_tbl = ftbl_usb30_master_clk_src,
109962306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
110062306a36Sopenharmony_ci		.name = "usb30_master_clk_src",
110162306a36Sopenharmony_ci		.parent_data = gcc_parent_data_0,
110262306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
110362306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
110462306a36Sopenharmony_ci	},
110562306a36Sopenharmony_ci};
110662306a36Sopenharmony_ci
110762306a36Sopenharmony_cistatic struct clk_rcg2 usb30_mock_utmi_clk_src = {
110862306a36Sopenharmony_ci	.cmd_rcgr = 0x3901c,
110962306a36Sopenharmony_ci	.mnd_width = 0,
111062306a36Sopenharmony_ci	.hid_width = 5,
111162306a36Sopenharmony_ci	.parent_map = gcc_parent_map_1,
111262306a36Sopenharmony_ci	.freq_tbl = ftbl_esc0_clk_src,
111362306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
111462306a36Sopenharmony_ci		.name = "usb30_mock_utmi_clk_src",
111562306a36Sopenharmony_ci		.parent_data = gcc_parent_data_1,
111662306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_1),
111762306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
111862306a36Sopenharmony_ci	},
111962306a36Sopenharmony_ci};
112062306a36Sopenharmony_ci
112162306a36Sopenharmony_cistatic struct clk_rcg2 usb3_phy_aux_clk_src = {
112262306a36Sopenharmony_ci	.cmd_rcgr = 0x3903c,
112362306a36Sopenharmony_ci	.mnd_width = 0,
112462306a36Sopenharmony_ci	.hid_width = 5,
112562306a36Sopenharmony_ci	.parent_map = gcc_parent_map_1,
112662306a36Sopenharmony_ci	.freq_tbl = ftbl_pcie_0_aux_clk_src,
112762306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
112862306a36Sopenharmony_ci		.name = "usb3_phy_aux_clk_src",
112962306a36Sopenharmony_ci		.parent_data = gcc_parent_data_1,
113062306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_1),
113162306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
113262306a36Sopenharmony_ci	},
113362306a36Sopenharmony_ci};
113462306a36Sopenharmony_ci
113562306a36Sopenharmony_cistatic const struct freq_tbl ftbl_usb_hs_system_clk_src[] = {
113662306a36Sopenharmony_ci	F(19200000, P_XO, 1, 0, 0),
113762306a36Sopenharmony_ci	F(80000000, P_GPLL0_OUT_MAIN, 10, 0, 0),
113862306a36Sopenharmony_ci	F(100000000, P_GPLL0_OUT_MAIN, 8, 0, 0),
113962306a36Sopenharmony_ci	F(133333333, P_GPLL0_OUT_MAIN, 6, 0, 0),
114062306a36Sopenharmony_ci	F(177777778, P_GPLL0_OUT_MAIN, 4.5, 0, 0),
114162306a36Sopenharmony_ci	{ }
114262306a36Sopenharmony_ci};
114362306a36Sopenharmony_ci
114462306a36Sopenharmony_cistatic struct clk_rcg2 usb_hs_system_clk_src = {
114562306a36Sopenharmony_ci	.cmd_rcgr = 0x41010,
114662306a36Sopenharmony_ci	.mnd_width = 0,
114762306a36Sopenharmony_ci	.hid_width = 5,
114862306a36Sopenharmony_ci	.parent_map = gcc_parent_map_3,
114962306a36Sopenharmony_ci	.freq_tbl = ftbl_usb_hs_system_clk_src,
115062306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
115162306a36Sopenharmony_ci		.name = "usb_hs_system_clk_src",
115262306a36Sopenharmony_ci		.parent_data = gcc_parent_data_3,
115362306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_3),
115462306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
115562306a36Sopenharmony_ci	},
115662306a36Sopenharmony_ci};
115762306a36Sopenharmony_ci
115862306a36Sopenharmony_cistatic struct clk_rcg2 vsync_clk_src = {
115962306a36Sopenharmony_ci	.cmd_rcgr = 0x4d02c,
116062306a36Sopenharmony_ci	.mnd_width = 0,
116162306a36Sopenharmony_ci	.hid_width = 5,
116262306a36Sopenharmony_ci	.parent_map = gcc_parent_map_15,
116362306a36Sopenharmony_ci	.freq_tbl = ftbl_esc0_clk_src,
116462306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
116562306a36Sopenharmony_ci		.name = "vsync_clk_src",
116662306a36Sopenharmony_ci		.parent_data = gcc_parent_data_15,
116762306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_15),
116862306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
116962306a36Sopenharmony_ci	},
117062306a36Sopenharmony_ci};
117162306a36Sopenharmony_ci
117262306a36Sopenharmony_cistatic const struct freq_tbl ftbl_cdsp_bimc_clk_src[] = {
117362306a36Sopenharmony_ci	F(19200000, P_XO, 1, 0, 0),
117462306a36Sopenharmony_ci	F(133333333, P_GPLL0_OUT_MAIN, 6, 0, 0),
117562306a36Sopenharmony_ci	F(266666667, P_GPLL0_OUT_MAIN, 3, 0, 0),
117662306a36Sopenharmony_ci	F(320000000, P_GPLL0_OUT_MAIN, 2.5, 0, 0),
117762306a36Sopenharmony_ci	{ }
117862306a36Sopenharmony_ci};
117962306a36Sopenharmony_ci
118062306a36Sopenharmony_cistatic struct clk_rcg2 cdsp_bimc_clk_src = {
118162306a36Sopenharmony_ci	.cmd_rcgr = 0x5e010,
118262306a36Sopenharmony_ci	.mnd_width = 0,
118362306a36Sopenharmony_ci	.hid_width = 5,
118462306a36Sopenharmony_ci	.parent_map = gcc_parent_map_16,
118562306a36Sopenharmony_ci	.freq_tbl = ftbl_cdsp_bimc_clk_src,
118662306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data) {
118762306a36Sopenharmony_ci		.name = "cdsp_bimc_clk_src",
118862306a36Sopenharmony_ci		.parent_data = gcc_parent_data_16,
118962306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_16),
119062306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
119162306a36Sopenharmony_ci	},
119262306a36Sopenharmony_ci};
119362306a36Sopenharmony_ci
119462306a36Sopenharmony_cistatic struct clk_branch gcc_apss_ahb_clk = {
119562306a36Sopenharmony_ci	.halt_reg = 0x4601c,
119662306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
119762306a36Sopenharmony_ci	.clkr = {
119862306a36Sopenharmony_ci		.enable_reg = 0x45004,
119962306a36Sopenharmony_ci		.enable_mask = BIT(14),
120062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
120162306a36Sopenharmony_ci			.name = "gcc_apss_ahb_clk",
120262306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
120362306a36Sopenharmony_ci				&apss_ahb_clk_src.clkr.hw,
120462306a36Sopenharmony_ci			},
120562306a36Sopenharmony_ci			.num_parents = 1,
120662306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
120762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
120862306a36Sopenharmony_ci		},
120962306a36Sopenharmony_ci	},
121062306a36Sopenharmony_ci};
121162306a36Sopenharmony_ci
121262306a36Sopenharmony_cistatic struct clk_branch gcc_apss_tcu_clk = {
121362306a36Sopenharmony_ci	.halt_reg = 0x5b004,
121462306a36Sopenharmony_ci	.halt_check = BRANCH_VOTED,
121562306a36Sopenharmony_ci	.clkr = {
121662306a36Sopenharmony_ci		.enable_reg = 0x4500c,
121762306a36Sopenharmony_ci		.enable_mask = BIT(1),
121862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
121962306a36Sopenharmony_ci			.name = "gcc_apss_tcu_clk",
122062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
122162306a36Sopenharmony_ci		},
122262306a36Sopenharmony_ci	},
122362306a36Sopenharmony_ci};
122462306a36Sopenharmony_ci
122562306a36Sopenharmony_cistatic struct clk_branch gcc_bimc_gfx_clk = {
122662306a36Sopenharmony_ci	.halt_reg = 0x59034,
122762306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
122862306a36Sopenharmony_ci	.clkr = {
122962306a36Sopenharmony_ci		.enable_reg = 0x59034,
123062306a36Sopenharmony_ci		.enable_mask = BIT(0),
123162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
123262306a36Sopenharmony_ci			.name = "gcc_bimc_gfx_clk",
123362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
123462306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
123562306a36Sopenharmony_ci				&gcc_apss_tcu_clk.clkr.hw,
123662306a36Sopenharmony_ci			},
123762306a36Sopenharmony_ci
123862306a36Sopenharmony_ci		},
123962306a36Sopenharmony_ci	},
124062306a36Sopenharmony_ci};
124162306a36Sopenharmony_ci
124262306a36Sopenharmony_cistatic struct clk_branch gcc_bimc_gpu_clk = {
124362306a36Sopenharmony_ci	.halt_reg = 0x59030,
124462306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
124562306a36Sopenharmony_ci	.clkr = {
124662306a36Sopenharmony_ci		.enable_reg = 0x59030,
124762306a36Sopenharmony_ci		.enable_mask = BIT(0),
124862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
124962306a36Sopenharmony_ci			.name = "gcc_bimc_gpu_clk",
125062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
125162306a36Sopenharmony_ci		},
125262306a36Sopenharmony_ci	},
125362306a36Sopenharmony_ci};
125462306a36Sopenharmony_ci
125562306a36Sopenharmony_cistatic struct clk_branch gcc_bimc_cdsp_clk = {
125662306a36Sopenharmony_ci	.halt_reg = 0x31030,
125762306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
125862306a36Sopenharmony_ci	.clkr = {
125962306a36Sopenharmony_ci		.enable_reg = 0x31030,
126062306a36Sopenharmony_ci		.enable_mask = BIT(0),
126162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
126262306a36Sopenharmony_ci			.name = "gcc_bimc_cdsp_clk",
126362306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
126462306a36Sopenharmony_ci				&cdsp_bimc_clk_src.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_bimc_mdss_clk = {
127462306a36Sopenharmony_ci	.halt_reg = 0x31038,
127562306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
127662306a36Sopenharmony_ci	.clkr = {
127762306a36Sopenharmony_ci		.enable_reg = 0x31038,
127862306a36Sopenharmony_ci		.enable_mask = BIT(0),
127962306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
128062306a36Sopenharmony_ci			.name = "gcc_bimc_mdss_clk",
128162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
128262306a36Sopenharmony_ci		},
128362306a36Sopenharmony_ci	},
128462306a36Sopenharmony_ci};
128562306a36Sopenharmony_ci
128662306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_ahb_clk = {
128762306a36Sopenharmony_ci	.halt_reg = 0x1008,
128862306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
128962306a36Sopenharmony_ci	.clkr = {
129062306a36Sopenharmony_ci		.enable_reg = 0x45004,
129162306a36Sopenharmony_ci		.enable_mask = BIT(10),
129262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
129362306a36Sopenharmony_ci			.name = "gcc_blsp1_ahb_clk",
129462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
129562306a36Sopenharmony_ci		},
129662306a36Sopenharmony_ci	},
129762306a36Sopenharmony_ci};
129862306a36Sopenharmony_ci
129962306a36Sopenharmony_cistatic struct clk_branch gcc_dcc_clk = {
130062306a36Sopenharmony_ci	.halt_reg = 0x77004,
130162306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
130262306a36Sopenharmony_ci	.clkr = {
130362306a36Sopenharmony_ci		.enable_reg = 0x77004,
130462306a36Sopenharmony_ci		.enable_mask = BIT(0),
130562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
130662306a36Sopenharmony_ci			.name = "gcc_dcc_clk",
130762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
130862306a36Sopenharmony_ci		},
130962306a36Sopenharmony_ci	},
131062306a36Sopenharmony_ci};
131162306a36Sopenharmony_ci
131262306a36Sopenharmony_cistatic struct clk_branch gcc_dcc_xo_clk = {
131362306a36Sopenharmony_ci	.halt_reg = 0x77008,
131462306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
131562306a36Sopenharmony_ci	.clkr = {
131662306a36Sopenharmony_ci		.enable_reg = 0x77008,
131762306a36Sopenharmony_ci		.enable_mask = BIT(0),
131862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
131962306a36Sopenharmony_ci			.name = "gcc_dcc_xo_clk",
132062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
132162306a36Sopenharmony_ci		},
132262306a36Sopenharmony_ci	},
132362306a36Sopenharmony_ci};
132462306a36Sopenharmony_ci
132562306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_qup0_i2c_apps_clk = {
132662306a36Sopenharmony_ci	.halt_reg = 0x6028,
132762306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
132862306a36Sopenharmony_ci	.clkr = {
132962306a36Sopenharmony_ci		.enable_reg = 0x6028,
133062306a36Sopenharmony_ci		.enable_mask = BIT(0),
133162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
133262306a36Sopenharmony_ci			.name = "gcc_blsp1_qup0_i2c_apps_clk",
133362306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
133462306a36Sopenharmony_ci				&blsp1_qup0_i2c_apps_clk_src.clkr.hw,
133562306a36Sopenharmony_ci			},
133662306a36Sopenharmony_ci			.num_parents = 1,
133762306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
133862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
133962306a36Sopenharmony_ci		},
134062306a36Sopenharmony_ci	},
134162306a36Sopenharmony_ci};
134262306a36Sopenharmony_ci
134362306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_qup0_spi_apps_clk = {
134462306a36Sopenharmony_ci	.halt_reg = 0x6024,
134562306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
134662306a36Sopenharmony_ci	.clkr = {
134762306a36Sopenharmony_ci		.enable_reg = 0x6024,
134862306a36Sopenharmony_ci		.enable_mask = BIT(0),
134962306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
135062306a36Sopenharmony_ci			.name = "gcc_blsp1_qup0_spi_apps_clk",
135162306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
135262306a36Sopenharmony_ci				&blsp1_qup0_spi_apps_clk_src.clkr.hw,
135362306a36Sopenharmony_ci			},
135462306a36Sopenharmony_ci			.num_parents = 1,
135562306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
135662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
135762306a36Sopenharmony_ci		},
135862306a36Sopenharmony_ci	},
135962306a36Sopenharmony_ci};
136062306a36Sopenharmony_ci
136162306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_qup1_i2c_apps_clk = {
136262306a36Sopenharmony_ci	.halt_reg = 0x2008,
136362306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
136462306a36Sopenharmony_ci	.clkr = {
136562306a36Sopenharmony_ci		.enable_reg = 0x2008,
136662306a36Sopenharmony_ci		.enable_mask = BIT(0),
136762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
136862306a36Sopenharmony_ci			.name = "gcc_blsp1_qup1_i2c_apps_clk",
136962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
137062306a36Sopenharmony_ci				&blsp1_qup1_i2c_apps_clk_src.clkr.hw,
137162306a36Sopenharmony_ci			},
137262306a36Sopenharmony_ci			.num_parents = 1,
137362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
137462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
137562306a36Sopenharmony_ci		},
137662306a36Sopenharmony_ci	},
137762306a36Sopenharmony_ci};
137862306a36Sopenharmony_ci
137962306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_qup1_spi_apps_clk = {
138062306a36Sopenharmony_ci	.halt_reg = 0x2004,
138162306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
138262306a36Sopenharmony_ci	.clkr = {
138362306a36Sopenharmony_ci		.enable_reg = 0x2004,
138462306a36Sopenharmony_ci		.enable_mask = BIT(0),
138562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
138662306a36Sopenharmony_ci			.name = "gcc_blsp1_qup1_spi_apps_clk",
138762306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
138862306a36Sopenharmony_ci				&blsp1_qup1_spi_apps_clk_src.clkr.hw,
138962306a36Sopenharmony_ci			},
139062306a36Sopenharmony_ci			.num_parents = 1,
139162306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
139262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
139362306a36Sopenharmony_ci		},
139462306a36Sopenharmony_ci	},
139562306a36Sopenharmony_ci};
139662306a36Sopenharmony_ci
139762306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_qup2_i2c_apps_clk = {
139862306a36Sopenharmony_ci	.halt_reg = 0x3010,
139962306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
140062306a36Sopenharmony_ci	.clkr = {
140162306a36Sopenharmony_ci		.enable_reg = 0x3010,
140262306a36Sopenharmony_ci		.enable_mask = BIT(0),
140362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
140462306a36Sopenharmony_ci			.name = "gcc_blsp1_qup2_i2c_apps_clk",
140562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
140662306a36Sopenharmony_ci				&blsp1_qup2_i2c_apps_clk_src.clkr.hw,
140762306a36Sopenharmony_ci			},
140862306a36Sopenharmony_ci			.num_parents = 1,
140962306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
141062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
141162306a36Sopenharmony_ci		},
141262306a36Sopenharmony_ci	},
141362306a36Sopenharmony_ci};
141462306a36Sopenharmony_ci
141562306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_qup2_spi_apps_clk = {
141662306a36Sopenharmony_ci	.halt_reg = 0x300c,
141762306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
141862306a36Sopenharmony_ci	.clkr = {
141962306a36Sopenharmony_ci		.enable_reg = 0x300c,
142062306a36Sopenharmony_ci		.enable_mask = BIT(0),
142162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
142262306a36Sopenharmony_ci			.name = "gcc_blsp1_qup2_spi_apps_clk",
142362306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
142462306a36Sopenharmony_ci				&blsp1_qup2_spi_apps_clk_src.clkr.hw,
142562306a36Sopenharmony_ci			},
142662306a36Sopenharmony_ci			.num_parents = 1,
142762306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
142862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
142962306a36Sopenharmony_ci		},
143062306a36Sopenharmony_ci	},
143162306a36Sopenharmony_ci};
143262306a36Sopenharmony_ci
143362306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_qup3_i2c_apps_clk = {
143462306a36Sopenharmony_ci	.halt_reg = 0x4020,
143562306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
143662306a36Sopenharmony_ci	.clkr = {
143762306a36Sopenharmony_ci		.enable_reg = 0x4020,
143862306a36Sopenharmony_ci		.enable_mask = BIT(0),
143962306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
144062306a36Sopenharmony_ci			.name = "gcc_blsp1_qup3_i2c_apps_clk",
144162306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
144262306a36Sopenharmony_ci				&blsp1_qup3_i2c_apps_clk_src.clkr.hw,
144362306a36Sopenharmony_ci			},
144462306a36Sopenharmony_ci			.num_parents = 1,
144562306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
144662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
144762306a36Sopenharmony_ci		},
144862306a36Sopenharmony_ci	},
144962306a36Sopenharmony_ci};
145062306a36Sopenharmony_ci
145162306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_qup3_spi_apps_clk = {
145262306a36Sopenharmony_ci	.halt_reg = 0x401c,
145362306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
145462306a36Sopenharmony_ci	.clkr = {
145562306a36Sopenharmony_ci		.enable_reg = 0x401c,
145662306a36Sopenharmony_ci		.enable_mask = BIT(0),
145762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
145862306a36Sopenharmony_ci			.name = "gcc_blsp1_qup3_spi_apps_clk",
145962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
146062306a36Sopenharmony_ci				&blsp1_qup3_spi_apps_clk_src.clkr.hw,
146162306a36Sopenharmony_ci			},
146262306a36Sopenharmony_ci			.num_parents = 1,
146362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
146462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
146562306a36Sopenharmony_ci		},
146662306a36Sopenharmony_ci	},
146762306a36Sopenharmony_ci};
146862306a36Sopenharmony_ci
146962306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_qup4_i2c_apps_clk = {
147062306a36Sopenharmony_ci	.halt_reg = 0x5020,
147162306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
147262306a36Sopenharmony_ci	.clkr = {
147362306a36Sopenharmony_ci		.enable_reg = 0x5020,
147462306a36Sopenharmony_ci		.enable_mask = BIT(0),
147562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
147662306a36Sopenharmony_ci			.name = "gcc_blsp1_qup4_i2c_apps_clk",
147762306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
147862306a36Sopenharmony_ci				&blsp1_qup4_i2c_apps_clk_src.clkr.hw,
147962306a36Sopenharmony_ci			},
148062306a36Sopenharmony_ci			.num_parents = 1,
148162306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
148262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
148362306a36Sopenharmony_ci		},
148462306a36Sopenharmony_ci	},
148562306a36Sopenharmony_ci};
148662306a36Sopenharmony_ci
148762306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_qup4_spi_apps_clk = {
148862306a36Sopenharmony_ci	.halt_reg = 0x501c,
148962306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
149062306a36Sopenharmony_ci	.clkr = {
149162306a36Sopenharmony_ci		.enable_reg = 0x501c,
149262306a36Sopenharmony_ci		.enable_mask = BIT(0),
149362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
149462306a36Sopenharmony_ci			.name = "gcc_blsp1_qup4_spi_apps_clk",
149562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
149662306a36Sopenharmony_ci				&blsp1_qup4_spi_apps_clk_src.clkr.hw,
149762306a36Sopenharmony_ci			},
149862306a36Sopenharmony_ci			.num_parents = 1,
149962306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
150062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
150162306a36Sopenharmony_ci		},
150262306a36Sopenharmony_ci	},
150362306a36Sopenharmony_ci};
150462306a36Sopenharmony_ci
150562306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_uart0_apps_clk = {
150662306a36Sopenharmony_ci	.halt_reg = 0x6004,
150762306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
150862306a36Sopenharmony_ci	.clkr = {
150962306a36Sopenharmony_ci		.enable_reg = 0x6004,
151062306a36Sopenharmony_ci		.enable_mask = BIT(0),
151162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
151262306a36Sopenharmony_ci			.name = "gcc_blsp1_uart0_apps_clk",
151362306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
151462306a36Sopenharmony_ci				&blsp1_uart0_apps_clk_src.clkr.hw,
151562306a36Sopenharmony_ci			},
151662306a36Sopenharmony_ci			.num_parents = 1,
151762306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
151862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
151962306a36Sopenharmony_ci		},
152062306a36Sopenharmony_ci	},
152162306a36Sopenharmony_ci};
152262306a36Sopenharmony_ci
152362306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_uart1_apps_clk = {
152462306a36Sopenharmony_ci	.halt_reg = 0x203c,
152562306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
152662306a36Sopenharmony_ci	.clkr = {
152762306a36Sopenharmony_ci		.enable_reg = 0x203c,
152862306a36Sopenharmony_ci		.enable_mask = BIT(0),
152962306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
153062306a36Sopenharmony_ci			.name = "gcc_blsp1_uart1_apps_clk",
153162306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
153262306a36Sopenharmony_ci				&blsp1_uart1_apps_clk_src.clkr.hw,
153362306a36Sopenharmony_ci			},
153462306a36Sopenharmony_ci			.num_parents = 1,
153562306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
153662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
153762306a36Sopenharmony_ci		},
153862306a36Sopenharmony_ci	},
153962306a36Sopenharmony_ci};
154062306a36Sopenharmony_ci
154162306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_uart2_apps_clk = {
154262306a36Sopenharmony_ci	.halt_reg = 0x302c,
154362306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
154462306a36Sopenharmony_ci	.clkr = {
154562306a36Sopenharmony_ci		.enable_reg = 0x302c,
154662306a36Sopenharmony_ci		.enable_mask = BIT(0),
154762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
154862306a36Sopenharmony_ci			.name = "gcc_blsp1_uart2_apps_clk",
154962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
155062306a36Sopenharmony_ci				&blsp1_uart2_apps_clk_src.clkr.hw,
155162306a36Sopenharmony_ci			},
155262306a36Sopenharmony_ci			.num_parents = 1,
155362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
155462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
155562306a36Sopenharmony_ci		},
155662306a36Sopenharmony_ci	},
155762306a36Sopenharmony_ci};
155862306a36Sopenharmony_ci
155962306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_uart3_apps_clk = {
156062306a36Sopenharmony_ci	.halt_reg = 0x400c,
156162306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
156262306a36Sopenharmony_ci	.clkr = {
156362306a36Sopenharmony_ci		.enable_reg = 0x400c,
156462306a36Sopenharmony_ci		.enable_mask = BIT(0),
156562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
156662306a36Sopenharmony_ci			.name = "gcc_blsp1_uart3_apps_clk",
156762306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
156862306a36Sopenharmony_ci				&blsp1_uart3_apps_clk_src.clkr.hw,
156962306a36Sopenharmony_ci			},
157062306a36Sopenharmony_ci			.num_parents = 1,
157162306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
157262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
157362306a36Sopenharmony_ci		},
157462306a36Sopenharmony_ci	},
157562306a36Sopenharmony_ci};
157662306a36Sopenharmony_ci
157762306a36Sopenharmony_cistatic struct clk_branch gcc_blsp2_ahb_clk = {
157862306a36Sopenharmony_ci	.halt_reg = 0xb008,
157962306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
158062306a36Sopenharmony_ci	.clkr = {
158162306a36Sopenharmony_ci		.enable_reg = 0x45004,
158262306a36Sopenharmony_ci		.enable_mask = BIT(20),
158362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
158462306a36Sopenharmony_ci			.name = "gcc_blsp2_ahb_clk",
158562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
158662306a36Sopenharmony_ci		},
158762306a36Sopenharmony_ci	},
158862306a36Sopenharmony_ci};
158962306a36Sopenharmony_ci
159062306a36Sopenharmony_cistatic struct clk_branch gcc_blsp2_qup0_i2c_apps_clk = {
159162306a36Sopenharmony_ci	.halt_reg = 0xc008,
159262306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
159362306a36Sopenharmony_ci	.clkr = {
159462306a36Sopenharmony_ci		.enable_reg = 0xc008,
159562306a36Sopenharmony_ci		.enable_mask = BIT(0),
159662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
159762306a36Sopenharmony_ci			.name = "gcc_blsp2_qup0_i2c_apps_clk",
159862306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
159962306a36Sopenharmony_ci				&blsp2_qup0_i2c_apps_clk_src.clkr.hw,
160062306a36Sopenharmony_ci			},
160162306a36Sopenharmony_ci			.num_parents = 1,
160262306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
160362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
160462306a36Sopenharmony_ci		},
160562306a36Sopenharmony_ci	},
160662306a36Sopenharmony_ci};
160762306a36Sopenharmony_ci
160862306a36Sopenharmony_cistatic struct clk_branch gcc_blsp2_qup0_spi_apps_clk = {
160962306a36Sopenharmony_ci	.halt_reg = 0xc004,
161062306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
161162306a36Sopenharmony_ci	.clkr = {
161262306a36Sopenharmony_ci		.enable_reg = 0xc004,
161362306a36Sopenharmony_ci		.enable_mask = BIT(0),
161462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
161562306a36Sopenharmony_ci			.name = "gcc_blsp2_qup0_spi_apps_clk",
161662306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
161762306a36Sopenharmony_ci				&blsp2_qup0_spi_apps_clk_src.clkr.hw,
161862306a36Sopenharmony_ci			},
161962306a36Sopenharmony_ci			.num_parents = 1,
162062306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
162162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
162262306a36Sopenharmony_ci		},
162362306a36Sopenharmony_ci	},
162462306a36Sopenharmony_ci};
162562306a36Sopenharmony_ci
162662306a36Sopenharmony_cistatic struct clk_branch gcc_blsp2_uart0_apps_clk = {
162762306a36Sopenharmony_ci	.halt_reg = 0xc03c,
162862306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
162962306a36Sopenharmony_ci	.clkr = {
163062306a36Sopenharmony_ci		.enable_reg = 0xc03c,
163162306a36Sopenharmony_ci		.enable_mask = BIT(0),
163262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
163362306a36Sopenharmony_ci			.name = "gcc_blsp2_uart0_apps_clk",
163462306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
163562306a36Sopenharmony_ci				&blsp2_uart0_apps_clk_src.clkr.hw,
163662306a36Sopenharmony_ci			},
163762306a36Sopenharmony_ci			.num_parents = 1,
163862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
163962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
164062306a36Sopenharmony_ci		},
164162306a36Sopenharmony_ci	},
164262306a36Sopenharmony_ci};
164362306a36Sopenharmony_ci
164462306a36Sopenharmony_cistatic struct clk_branch gcc_boot_rom_ahb_clk = {
164562306a36Sopenharmony_ci	.halt_reg = 0x1300c,
164662306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
164762306a36Sopenharmony_ci	.clkr = {
164862306a36Sopenharmony_ci		.enable_reg = 0x45004,
164962306a36Sopenharmony_ci		.enable_mask = BIT(7),
165062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
165162306a36Sopenharmony_ci			.name = "gcc_boot_rom_ahb_clk",
165262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
165362306a36Sopenharmony_ci		},
165462306a36Sopenharmony_ci	},
165562306a36Sopenharmony_ci};
165662306a36Sopenharmony_ci
165762306a36Sopenharmony_cistatic struct clk_branch gcc_crypto_ahb_clk = {
165862306a36Sopenharmony_ci	.halt_reg = 0x16024,
165962306a36Sopenharmony_ci	.halt_check = BRANCH_VOTED,
166062306a36Sopenharmony_ci	.clkr = {
166162306a36Sopenharmony_ci		.enable_reg = 0x45004,
166262306a36Sopenharmony_ci		.enable_mask = BIT(0),
166362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
166462306a36Sopenharmony_ci			.name = "gcc_crypto_ahb_clk",
166562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
166662306a36Sopenharmony_ci		},
166762306a36Sopenharmony_ci	},
166862306a36Sopenharmony_ci};
166962306a36Sopenharmony_ci
167062306a36Sopenharmony_cistatic struct clk_branch gcc_crypto_axi_clk = {
167162306a36Sopenharmony_ci	.halt_reg = 0x16020,
167262306a36Sopenharmony_ci	.halt_check = BRANCH_VOTED,
167362306a36Sopenharmony_ci	.clkr = {
167462306a36Sopenharmony_ci		.enable_reg = 0x45004,
167562306a36Sopenharmony_ci		.enable_mask = BIT(1),
167662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
167762306a36Sopenharmony_ci			.name = "gcc_crypto_axi_clk",
167862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
167962306a36Sopenharmony_ci		},
168062306a36Sopenharmony_ci	},
168162306a36Sopenharmony_ci};
168262306a36Sopenharmony_ci
168362306a36Sopenharmony_cistatic struct clk_branch gcc_crypto_clk = {
168462306a36Sopenharmony_ci	.halt_reg = 0x1601c,
168562306a36Sopenharmony_ci	.halt_check = BRANCH_VOTED,
168662306a36Sopenharmony_ci	.clkr = {
168762306a36Sopenharmony_ci		.enable_reg = 0x45004,
168862306a36Sopenharmony_ci		.enable_mask = BIT(2),
168962306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
169062306a36Sopenharmony_ci			.name = "gcc_crypto_clk",
169162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
169262306a36Sopenharmony_ci		},
169362306a36Sopenharmony_ci	},
169462306a36Sopenharmony_ci};
169562306a36Sopenharmony_ci
169662306a36Sopenharmony_cistatic struct clk_branch gcc_eth_axi_clk = {
169762306a36Sopenharmony_ci	.halt_reg = 0x4e010,
169862306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
169962306a36Sopenharmony_ci	.clkr = {
170062306a36Sopenharmony_ci		.enable_reg = 0x4e010,
170162306a36Sopenharmony_ci		.enable_mask = BIT(0),
170262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
170362306a36Sopenharmony_ci			.name = "gcc_eth_axi_clk",
170462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
170562306a36Sopenharmony_ci		},
170662306a36Sopenharmony_ci	},
170762306a36Sopenharmony_ci};
170862306a36Sopenharmony_ci
170962306a36Sopenharmony_cistatic struct clk_branch gcc_eth_ptp_clk = {
171062306a36Sopenharmony_ci	.halt_reg = 0x4e004,
171162306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
171262306a36Sopenharmony_ci	.clkr = {
171362306a36Sopenharmony_ci		.enable_reg = 0x4e004,
171462306a36Sopenharmony_ci		.enable_mask = BIT(0),
171562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
171662306a36Sopenharmony_ci			.name = "gcc_eth_ptp_clk",
171762306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
171862306a36Sopenharmony_ci				&emac_ptp_clk_src.clkr.hw,
171962306a36Sopenharmony_ci			},
172062306a36Sopenharmony_ci			.num_parents = 1,
172162306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
172262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
172362306a36Sopenharmony_ci		},
172462306a36Sopenharmony_ci	},
172562306a36Sopenharmony_ci};
172662306a36Sopenharmony_ci
172762306a36Sopenharmony_cistatic struct clk_branch gcc_eth_rgmii_clk = {
172862306a36Sopenharmony_ci	.halt_reg = 0x4e008,
172962306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
173062306a36Sopenharmony_ci	.clkr = {
173162306a36Sopenharmony_ci		.enable_reg = 0x4e008,
173262306a36Sopenharmony_ci		.enable_mask = BIT(0),
173362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
173462306a36Sopenharmony_ci			.name = "gcc_eth_rgmii_clk",
173562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
173662306a36Sopenharmony_ci				&emac_clk_src.clkr.hw,
173762306a36Sopenharmony_ci			},
173862306a36Sopenharmony_ci			.num_parents = 1,
173962306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
174062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
174162306a36Sopenharmony_ci		},
174262306a36Sopenharmony_ci	},
174362306a36Sopenharmony_ci};
174462306a36Sopenharmony_ci
174562306a36Sopenharmony_cistatic struct clk_branch gcc_eth_slave_ahb_clk = {
174662306a36Sopenharmony_ci	.halt_reg = 0x4e00c,
174762306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
174862306a36Sopenharmony_ci	.clkr = {
174962306a36Sopenharmony_ci		.enable_reg = 0x4e00c,
175062306a36Sopenharmony_ci		.enable_mask = BIT(0),
175162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
175262306a36Sopenharmony_ci			.name = "gcc_eth_slave_ahb_clk",
175362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
175462306a36Sopenharmony_ci		},
175562306a36Sopenharmony_ci	},
175662306a36Sopenharmony_ci};
175762306a36Sopenharmony_ci
175862306a36Sopenharmony_cistatic struct clk_branch gcc_geni_ir_s_clk = {
175962306a36Sopenharmony_ci	.halt_reg = 0xf008,
176062306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
176162306a36Sopenharmony_ci	.clkr = {
176262306a36Sopenharmony_ci		.enable_reg = 0xf008,
176362306a36Sopenharmony_ci		.enable_mask = BIT(0),
176462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
176562306a36Sopenharmony_ci			.name = "gcc_geni_ir_s_clk",
176662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
176762306a36Sopenharmony_ci		},
176862306a36Sopenharmony_ci	},
176962306a36Sopenharmony_ci};
177062306a36Sopenharmony_ci
177162306a36Sopenharmony_cistatic struct clk_branch gcc_geni_ir_h_clk = {
177262306a36Sopenharmony_ci	.halt_reg = 0xf004,
177362306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
177462306a36Sopenharmony_ci	.clkr = {
177562306a36Sopenharmony_ci		.enable_reg = 0xf004,
177662306a36Sopenharmony_ci		.enable_mask = BIT(0),
177762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
177862306a36Sopenharmony_ci			.name = "gcc_geni_ir_h_clk",
177962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
178062306a36Sopenharmony_ci		},
178162306a36Sopenharmony_ci	},
178262306a36Sopenharmony_ci};
178362306a36Sopenharmony_ci
178462306a36Sopenharmony_cistatic struct clk_branch gcc_gfx_tcu_clk = {
178562306a36Sopenharmony_ci	.halt_reg = 0x12020,
178662306a36Sopenharmony_ci	.halt_check = BRANCH_VOTED,
178762306a36Sopenharmony_ci	.clkr = {
178862306a36Sopenharmony_ci		.enable_reg = 0x4500C,
178962306a36Sopenharmony_ci		.enable_mask = BIT(2),
179062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
179162306a36Sopenharmony_ci			.name = "gcc_gfx_tcu_clk",
179262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
179362306a36Sopenharmony_ci		},
179462306a36Sopenharmony_ci	},
179562306a36Sopenharmony_ci};
179662306a36Sopenharmony_ci
179762306a36Sopenharmony_cistatic struct clk_branch gcc_gfx_tbu_clk = {
179862306a36Sopenharmony_ci	.halt_reg = 0x12010,
179962306a36Sopenharmony_ci	.halt_check = BRANCH_VOTED,
180062306a36Sopenharmony_ci	.clkr = {
180162306a36Sopenharmony_ci		.enable_reg = 0x4500C,
180262306a36Sopenharmony_ci		.enable_mask = BIT(3),
180362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
180462306a36Sopenharmony_ci			.name = "gcc_gfx_tbu_clk",
180562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
180662306a36Sopenharmony_ci		},
180762306a36Sopenharmony_ci	},
180862306a36Sopenharmony_ci};
180962306a36Sopenharmony_ci
181062306a36Sopenharmony_cistatic struct clk_branch gcc_cdsp_tbu_clk = {
181162306a36Sopenharmony_ci	.halt_reg = 0x1203c,
181262306a36Sopenharmony_ci	.halt_check = BRANCH_VOTED,
181362306a36Sopenharmony_ci	.clkr = {
181462306a36Sopenharmony_ci		.enable_reg = 0x13020,
181562306a36Sopenharmony_ci		.enable_mask = BIT(9),
181662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
181762306a36Sopenharmony_ci			.name = "gcc_cdsp_tbu_clk",
181862306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
181962306a36Sopenharmony_ci				&cdsp_bimc_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_gp1_clk = {
182962306a36Sopenharmony_ci	.halt_reg = 0x8000,
183062306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
183162306a36Sopenharmony_ci	.clkr = {
183262306a36Sopenharmony_ci		.enable_reg = 0x8000,
183362306a36Sopenharmony_ci		.enable_mask = BIT(0),
183462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
183562306a36Sopenharmony_ci			.name = "gcc_gp1_clk",
183662306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
183762306a36Sopenharmony_ci				&gp1_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_gp2_clk = {
184762306a36Sopenharmony_ci	.halt_reg = 0x9000,
184862306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
184962306a36Sopenharmony_ci	.clkr = {
185062306a36Sopenharmony_ci		.enable_reg = 0x9000,
185162306a36Sopenharmony_ci		.enable_mask = BIT(0),
185262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
185362306a36Sopenharmony_ci			.name = "gcc_gp2_clk",
185462306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
185562306a36Sopenharmony_ci				&gp2_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_gp3_clk = {
186562306a36Sopenharmony_ci	.halt_reg = 0xa000,
186662306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
186762306a36Sopenharmony_ci	.clkr = {
186862306a36Sopenharmony_ci		.enable_reg = 0xa000,
186962306a36Sopenharmony_ci		.enable_mask = BIT(0),
187062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
187162306a36Sopenharmony_ci			.name = "gcc_gp3_clk",
187262306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
187362306a36Sopenharmony_ci				&gp3_clk_src.clkr.hw,
187462306a36Sopenharmony_ci			},
187562306a36Sopenharmony_ci			.num_parents = 1,
187662306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
187762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
187862306a36Sopenharmony_ci		},
187962306a36Sopenharmony_ci	},
188062306a36Sopenharmony_ci};
188162306a36Sopenharmony_ci
188262306a36Sopenharmony_cistatic struct clk_branch gcc_gtcu_ahb_clk = {
188362306a36Sopenharmony_ci	.halt_reg = 0x12044,
188462306a36Sopenharmony_ci	.halt_check = BRANCH_VOTED,
188562306a36Sopenharmony_ci	.clkr = {
188662306a36Sopenharmony_ci		.enable_reg = 0x4500c,
188762306a36Sopenharmony_ci		.enable_mask = BIT(13),
188862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
188962306a36Sopenharmony_ci			.name = "gcc_gtcu_ahb_clk",
189062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
189162306a36Sopenharmony_ci		},
189262306a36Sopenharmony_ci	},
189362306a36Sopenharmony_ci};
189462306a36Sopenharmony_ci
189562306a36Sopenharmony_cistatic struct clk_branch gcc_mdp_tbu_clk = {
189662306a36Sopenharmony_ci	.halt_reg = 0x1201c,
189762306a36Sopenharmony_ci	.halt_check = BRANCH_VOTED,
189862306a36Sopenharmony_ci	.clkr = {
189962306a36Sopenharmony_ci		.enable_reg = 0x4500c,
190062306a36Sopenharmony_ci		.enable_mask = BIT(4),
190162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
190262306a36Sopenharmony_ci			.name = "gcc_mdp_tbu_clk",
190362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
190462306a36Sopenharmony_ci		},
190562306a36Sopenharmony_ci	},
190662306a36Sopenharmony_ci};
190762306a36Sopenharmony_ci
190862306a36Sopenharmony_cistatic struct clk_branch gcc_mdss_ahb_clk = {
190962306a36Sopenharmony_ci	.halt_reg = 0x4d07c,
191062306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
191162306a36Sopenharmony_ci	.clkr = {
191262306a36Sopenharmony_ci		.enable_reg = 0x4d07c,
191362306a36Sopenharmony_ci		.enable_mask = BIT(0),
191462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
191562306a36Sopenharmony_ci			.name = "gcc_mdss_ahb_clk",
191662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
191762306a36Sopenharmony_ci		},
191862306a36Sopenharmony_ci	},
191962306a36Sopenharmony_ci};
192062306a36Sopenharmony_ci
192162306a36Sopenharmony_cistatic struct clk_branch gcc_mdss_axi_clk = {
192262306a36Sopenharmony_ci	.halt_reg = 0x4d080,
192362306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
192462306a36Sopenharmony_ci	.clkr = {
192562306a36Sopenharmony_ci		.enable_reg = 0x4d080,
192662306a36Sopenharmony_ci		.enable_mask = BIT(0),
192762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
192862306a36Sopenharmony_ci			.name = "gcc_mdss_axi_clk",
192962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
193062306a36Sopenharmony_ci		},
193162306a36Sopenharmony_ci	},
193262306a36Sopenharmony_ci};
193362306a36Sopenharmony_ci
193462306a36Sopenharmony_cistatic struct clk_branch gcc_mdss_byte0_clk = {
193562306a36Sopenharmony_ci	.halt_reg = 0x4d094,
193662306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
193762306a36Sopenharmony_ci	.clkr = {
193862306a36Sopenharmony_ci		.enable_reg = 0x4d094,
193962306a36Sopenharmony_ci		.enable_mask = BIT(0),
194062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
194162306a36Sopenharmony_ci			.name = "gcc_mdss_byte0_clk",
194262306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
194362306a36Sopenharmony_ci				&byte0_clk_src.clkr.hw,
194462306a36Sopenharmony_ci			},
194562306a36Sopenharmony_ci			.num_parents = 1,
194662306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
194762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
194862306a36Sopenharmony_ci		},
194962306a36Sopenharmony_ci	},
195062306a36Sopenharmony_ci};
195162306a36Sopenharmony_ci
195262306a36Sopenharmony_cistatic struct clk_branch gcc_mdss_esc0_clk = {
195362306a36Sopenharmony_ci	.halt_reg = 0x4d098,
195462306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
195562306a36Sopenharmony_ci	.clkr = {
195662306a36Sopenharmony_ci		.enable_reg = 0x4d098,
195762306a36Sopenharmony_ci		.enable_mask = BIT(0),
195862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
195962306a36Sopenharmony_ci			.name = "gcc_mdss_esc0_clk",
196062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
196162306a36Sopenharmony_ci				&esc0_clk_src.clkr.hw,
196262306a36Sopenharmony_ci			},
196362306a36Sopenharmony_ci			.num_parents = 1,
196462306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
196562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
196662306a36Sopenharmony_ci		},
196762306a36Sopenharmony_ci	},
196862306a36Sopenharmony_ci};
196962306a36Sopenharmony_ci
197062306a36Sopenharmony_cistatic struct clk_branch gcc_mdss_hdmi_app_clk = {
197162306a36Sopenharmony_ci	.halt_reg = 0x4d0d8,
197262306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
197362306a36Sopenharmony_ci	.clkr = {
197462306a36Sopenharmony_ci		.enable_reg = 0x4d0d8,
197562306a36Sopenharmony_ci		.enable_mask = BIT(0),
197662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
197762306a36Sopenharmony_ci			.name = "gcc_mdss_hdmi_app_clk",
197862306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
197962306a36Sopenharmony_ci				&hdmi_app_clk_src.clkr.hw,
198062306a36Sopenharmony_ci			},
198162306a36Sopenharmony_ci			.num_parents = 1,
198262306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
198362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
198462306a36Sopenharmony_ci		},
198562306a36Sopenharmony_ci	},
198662306a36Sopenharmony_ci};
198762306a36Sopenharmony_ci
198862306a36Sopenharmony_cistatic struct clk_branch gcc_mdss_hdmi_pclk_clk = {
198962306a36Sopenharmony_ci	.halt_reg = 0x4d0d4,
199062306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
199162306a36Sopenharmony_ci	.clkr = {
199262306a36Sopenharmony_ci		.enable_reg = 0x4d0d4,
199362306a36Sopenharmony_ci		.enable_mask = BIT(0),
199462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
199562306a36Sopenharmony_ci			.name = "gcc_mdss_hdmi_pclk_clk",
199662306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
199762306a36Sopenharmony_ci				&hdmi_pclk_clk_src.clkr.hw,
199862306a36Sopenharmony_ci			},
199962306a36Sopenharmony_ci			.num_parents = 1,
200062306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
200162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
200262306a36Sopenharmony_ci		},
200362306a36Sopenharmony_ci	},
200462306a36Sopenharmony_ci};
200562306a36Sopenharmony_ci
200662306a36Sopenharmony_cistatic struct clk_branch gcc_mdss_mdp_clk = {
200762306a36Sopenharmony_ci	.halt_reg = 0x4d088,
200862306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
200962306a36Sopenharmony_ci	.clkr = {
201062306a36Sopenharmony_ci		.enable_reg = 0x4d088,
201162306a36Sopenharmony_ci		.enable_mask = BIT(0),
201262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
201362306a36Sopenharmony_ci			.name = "gcc_mdss_mdp_clk",
201462306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
201562306a36Sopenharmony_ci				&mdp_clk_src.clkr.hw,
201662306a36Sopenharmony_ci			},
201762306a36Sopenharmony_ci			.num_parents = 1,
201862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
201962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
202062306a36Sopenharmony_ci		},
202162306a36Sopenharmony_ci	},
202262306a36Sopenharmony_ci};
202362306a36Sopenharmony_ci
202462306a36Sopenharmony_cistatic struct clk_branch gcc_mdss_pclk0_clk = {
202562306a36Sopenharmony_ci	.halt_reg = 0x4d084,
202662306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
202762306a36Sopenharmony_ci	.clkr = {
202862306a36Sopenharmony_ci		.enable_reg = 0x4d084,
202962306a36Sopenharmony_ci		.enable_mask = BIT(0),
203062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
203162306a36Sopenharmony_ci			.name = "gcc_mdss_pclk0_clk",
203262306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
203362306a36Sopenharmony_ci				&pclk0_clk_src.clkr.hw,
203462306a36Sopenharmony_ci			},
203562306a36Sopenharmony_ci			.num_parents = 1,
203662306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
203762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
203862306a36Sopenharmony_ci		},
203962306a36Sopenharmony_ci	},
204062306a36Sopenharmony_ci};
204162306a36Sopenharmony_ci
204262306a36Sopenharmony_cistatic struct clk_branch gcc_mdss_vsync_clk = {
204362306a36Sopenharmony_ci	.halt_reg = 0x4d090,
204462306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
204562306a36Sopenharmony_ci	.clkr = {
204662306a36Sopenharmony_ci		.enable_reg = 0x4d090,
204762306a36Sopenharmony_ci		.enable_mask = BIT(0),
204862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
204962306a36Sopenharmony_ci			.name = "gcc_mdss_vsync_clk",
205062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
205162306a36Sopenharmony_ci				&vsync_clk_src.clkr.hw,
205262306a36Sopenharmony_ci			},
205362306a36Sopenharmony_ci			.num_parents = 1,
205462306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
205562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
205662306a36Sopenharmony_ci		},
205762306a36Sopenharmony_ci	},
205862306a36Sopenharmony_ci};
205962306a36Sopenharmony_ci
206062306a36Sopenharmony_cistatic struct clk_branch gcc_oxili_ahb_clk = {
206162306a36Sopenharmony_ci	.halt_reg = 0x59028,
206262306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
206362306a36Sopenharmony_ci	.clkr = {
206462306a36Sopenharmony_ci		.enable_reg = 0x59028,
206562306a36Sopenharmony_ci		.enable_mask = BIT(0),
206662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
206762306a36Sopenharmony_ci			.name = "gcc_oxili_ahb_clk",
206862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
206962306a36Sopenharmony_ci		},
207062306a36Sopenharmony_ci	},
207162306a36Sopenharmony_ci};
207262306a36Sopenharmony_ci
207362306a36Sopenharmony_cistatic struct clk_branch gcc_oxili_gfx3d_clk = {
207462306a36Sopenharmony_ci	.halt_reg = 0x59020,
207562306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
207662306a36Sopenharmony_ci	.clkr = {
207762306a36Sopenharmony_ci		.enable_reg = 0x59020,
207862306a36Sopenharmony_ci		.enable_mask = BIT(0),
207962306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
208062306a36Sopenharmony_ci			.name = "gcc_oxili_gfx3d_clk",
208162306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
208262306a36Sopenharmony_ci				&gfx3d_clk_src.clkr.hw,
208362306a36Sopenharmony_ci			},
208462306a36Sopenharmony_ci			.num_parents = 1,
208562306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
208662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
208762306a36Sopenharmony_ci		},
208862306a36Sopenharmony_ci	},
208962306a36Sopenharmony_ci};
209062306a36Sopenharmony_ci
209162306a36Sopenharmony_cistatic struct clk_branch gcc_pcie_0_aux_clk = {
209262306a36Sopenharmony_ci	.halt_reg = 0x3e014,
209362306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
209462306a36Sopenharmony_ci	.clkr = {
209562306a36Sopenharmony_ci		.enable_reg = 0x45004,
209662306a36Sopenharmony_ci		.enable_mask = BIT(27),
209762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
209862306a36Sopenharmony_ci			.name = "gcc_pcie_0_aux_clk",
209962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
210062306a36Sopenharmony_ci				&pcie_0_aux_clk_src.clkr.hw,
210162306a36Sopenharmony_ci			},
210262306a36Sopenharmony_ci			.num_parents = 1,
210362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
210462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
210562306a36Sopenharmony_ci		},
210662306a36Sopenharmony_ci	},
210762306a36Sopenharmony_ci};
210862306a36Sopenharmony_ci
210962306a36Sopenharmony_cistatic struct clk_branch gcc_pcie_0_cfg_ahb_clk = {
211062306a36Sopenharmony_ci	.halt_reg = 0x3e008,
211162306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
211262306a36Sopenharmony_ci	.clkr = {
211362306a36Sopenharmony_ci		.enable_reg = 0x45004,
211462306a36Sopenharmony_ci		.enable_mask = BIT(11),
211562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
211662306a36Sopenharmony_ci			.name = "gcc_pcie_0_cfg_ahb_clk",
211762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
211862306a36Sopenharmony_ci		},
211962306a36Sopenharmony_ci	},
212062306a36Sopenharmony_ci};
212162306a36Sopenharmony_ci
212262306a36Sopenharmony_cistatic struct clk_branch gcc_pcie_0_mstr_axi_clk = {
212362306a36Sopenharmony_ci	.halt_reg = 0x3e018,
212462306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
212562306a36Sopenharmony_ci	.clkr = {
212662306a36Sopenharmony_ci		.enable_reg = 0x45004,
212762306a36Sopenharmony_ci		.enable_mask = BIT(18),
212862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
212962306a36Sopenharmony_ci			.name = "gcc_pcie_0_mstr_axi_clk",
213062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
213162306a36Sopenharmony_ci		},
213262306a36Sopenharmony_ci	},
213362306a36Sopenharmony_ci};
213462306a36Sopenharmony_ci
213562306a36Sopenharmony_cistatic struct clk_branch gcc_pcie_0_pipe_clk = {
213662306a36Sopenharmony_ci	.halt_reg = 0x3e00c,
213762306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
213862306a36Sopenharmony_ci	.clkr = {
213962306a36Sopenharmony_ci		.enable_reg = 0x45004,
214062306a36Sopenharmony_ci		.enable_mask = BIT(28),
214162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
214262306a36Sopenharmony_ci			.name = "gcc_pcie_0_pipe_clk",
214362306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
214462306a36Sopenharmony_ci				&pcie_0_pipe_clk_src.clkr.hw,
214562306a36Sopenharmony_ci			},
214662306a36Sopenharmony_ci			.num_parents = 1,
214762306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
214862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
214962306a36Sopenharmony_ci		},
215062306a36Sopenharmony_ci	},
215162306a36Sopenharmony_ci};
215262306a36Sopenharmony_ci
215362306a36Sopenharmony_cistatic struct clk_branch gcc_pcie_0_slv_axi_clk = {
215462306a36Sopenharmony_ci	.halt_reg = 0x3e010,
215562306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
215662306a36Sopenharmony_ci	.clkr = {
215762306a36Sopenharmony_ci		.enable_reg = 0x45004,
215862306a36Sopenharmony_ci		.enable_mask = BIT(22),
215962306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
216062306a36Sopenharmony_ci			.name = "gcc_pcie_0_slv_axi_clk",
216162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
216262306a36Sopenharmony_ci		},
216362306a36Sopenharmony_ci	},
216462306a36Sopenharmony_ci};
216562306a36Sopenharmony_ci
216662306a36Sopenharmony_cistatic struct clk_branch gcc_pcnoc_usb2_clk = {
216762306a36Sopenharmony_ci	.halt_reg = 0x27008,
216862306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
216962306a36Sopenharmony_ci	.clkr = {
217062306a36Sopenharmony_ci		.enable_reg = 0x27008,
217162306a36Sopenharmony_ci		.enable_mask = BIT(0),
217262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
217362306a36Sopenharmony_ci			.name = "gcc_pcnoc_usb2_clk",
217462306a36Sopenharmony_ci			.flags = CLK_IS_CRITICAL,
217562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
217662306a36Sopenharmony_ci		},
217762306a36Sopenharmony_ci	},
217862306a36Sopenharmony_ci};
217962306a36Sopenharmony_ci
218062306a36Sopenharmony_cistatic struct clk_branch gcc_pcnoc_usb3_clk = {
218162306a36Sopenharmony_ci	.halt_reg = 0x2700c,
218262306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
218362306a36Sopenharmony_ci	.clkr = {
218462306a36Sopenharmony_ci		.enable_reg = 0x2700c,
218562306a36Sopenharmony_ci		.enable_mask = BIT(0),
218662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
218762306a36Sopenharmony_ci			.name = "gcc_pcnoc_usb3_clk",
218862306a36Sopenharmony_ci			.flags = CLK_IS_CRITICAL,
218962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
219062306a36Sopenharmony_ci		},
219162306a36Sopenharmony_ci	},
219262306a36Sopenharmony_ci};
219362306a36Sopenharmony_ci
219462306a36Sopenharmony_cistatic struct clk_branch gcc_pdm2_clk = {
219562306a36Sopenharmony_ci	.halt_reg = 0x4400c,
219662306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
219762306a36Sopenharmony_ci	.clkr = {
219862306a36Sopenharmony_ci		.enable_reg = 0x4400c,
219962306a36Sopenharmony_ci		.enable_mask = BIT(0),
220062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
220162306a36Sopenharmony_ci			.name = "gcc_pdm2_clk",
220262306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
220362306a36Sopenharmony_ci				&pdm2_clk_src.clkr.hw,
220462306a36Sopenharmony_ci			},
220562306a36Sopenharmony_ci			.num_parents = 1,
220662306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
220762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
220862306a36Sopenharmony_ci		},
220962306a36Sopenharmony_ci	},
221062306a36Sopenharmony_ci};
221162306a36Sopenharmony_ci
221262306a36Sopenharmony_cistatic struct clk_branch gcc_pdm_ahb_clk = {
221362306a36Sopenharmony_ci	.halt_reg = 0x44004,
221462306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
221562306a36Sopenharmony_ci	.clkr = {
221662306a36Sopenharmony_ci		.enable_reg = 0x44004,
221762306a36Sopenharmony_ci		.enable_mask = BIT(0),
221862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
221962306a36Sopenharmony_ci			.name = "gcc_pdm_ahb_clk",
222062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
222162306a36Sopenharmony_ci		},
222262306a36Sopenharmony_ci	},
222362306a36Sopenharmony_ci};
222462306a36Sopenharmony_ci
222562306a36Sopenharmony_cistatic struct clk_branch gcc_prng_ahb_clk = {
222662306a36Sopenharmony_ci	.halt_reg = 0x13004,
222762306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
222862306a36Sopenharmony_ci	.clkr = {
222962306a36Sopenharmony_ci		.enable_reg = 0x45004,
223062306a36Sopenharmony_ci		.enable_mask = BIT(8),
223162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
223262306a36Sopenharmony_ci			.name = "gcc_prng_ahb_clk",
223362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
223462306a36Sopenharmony_ci		},
223562306a36Sopenharmony_ci	},
223662306a36Sopenharmony_ci};
223762306a36Sopenharmony_ci
223862306a36Sopenharmony_ci/* PWM clks do not have XO as parent as src clk is a balance root */
223962306a36Sopenharmony_cistatic struct clk_branch gcc_pwm0_xo512_clk = {
224062306a36Sopenharmony_ci	.halt_reg = 0x44018,
224162306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
224262306a36Sopenharmony_ci	.clkr = {
224362306a36Sopenharmony_ci		.enable_reg = 0x44018,
224462306a36Sopenharmony_ci		.enable_mask = BIT(0),
224562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
224662306a36Sopenharmony_ci			.name = "gcc_pwm0_xo512_clk",
224762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
224862306a36Sopenharmony_ci		},
224962306a36Sopenharmony_ci	},
225062306a36Sopenharmony_ci};
225162306a36Sopenharmony_ci
225262306a36Sopenharmony_cistatic struct clk_branch gcc_pwm1_xo512_clk = {
225362306a36Sopenharmony_ci	.halt_reg = 0x49004,
225462306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
225562306a36Sopenharmony_ci	.clkr = {
225662306a36Sopenharmony_ci		.enable_reg = 0x49004,
225762306a36Sopenharmony_ci		.enable_mask = BIT(0),
225862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
225962306a36Sopenharmony_ci			.name = "gcc_pwm1_xo512_clk",
226062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
226162306a36Sopenharmony_ci		},
226262306a36Sopenharmony_ci	},
226362306a36Sopenharmony_ci};
226462306a36Sopenharmony_ci
226562306a36Sopenharmony_cistatic struct clk_branch gcc_pwm2_xo512_clk = {
226662306a36Sopenharmony_ci	.halt_reg = 0x4a004,
226762306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
226862306a36Sopenharmony_ci	.clkr = {
226962306a36Sopenharmony_ci		.enable_reg = 0x4a004,
227062306a36Sopenharmony_ci		.enable_mask = BIT(0),
227162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
227262306a36Sopenharmony_ci			.name = "gcc_pwm2_xo512_clk",
227362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
227462306a36Sopenharmony_ci		},
227562306a36Sopenharmony_ci	},
227662306a36Sopenharmony_ci};
227762306a36Sopenharmony_ci
227862306a36Sopenharmony_cistatic struct clk_branch gcc_qdss_dap_clk = {
227962306a36Sopenharmony_ci	.halt_reg = 0x29084,
228062306a36Sopenharmony_ci	.halt_check = BRANCH_VOTED,
228162306a36Sopenharmony_ci	.clkr = {
228262306a36Sopenharmony_ci		.enable_reg = 0x45004,
228362306a36Sopenharmony_ci		.enable_mask = BIT(21),
228462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
228562306a36Sopenharmony_ci			.name = "gcc_qdss_dap_clk",
228662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
228762306a36Sopenharmony_ci		},
228862306a36Sopenharmony_ci	},
228962306a36Sopenharmony_ci};
229062306a36Sopenharmony_ci
229162306a36Sopenharmony_cistatic struct clk_branch gcc_sdcc1_ahb_clk = {
229262306a36Sopenharmony_ci	.halt_reg = 0x4201c,
229362306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
229462306a36Sopenharmony_ci	.clkr = {
229562306a36Sopenharmony_ci		.enable_reg = 0x4201c,
229662306a36Sopenharmony_ci		.enable_mask = BIT(0),
229762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
229862306a36Sopenharmony_ci			.name = "gcc_sdcc1_ahb_clk",
229962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
230062306a36Sopenharmony_ci		},
230162306a36Sopenharmony_ci	},
230262306a36Sopenharmony_ci};
230362306a36Sopenharmony_ci
230462306a36Sopenharmony_cistatic struct clk_branch gcc_sdcc1_apps_clk = {
230562306a36Sopenharmony_ci	.halt_reg = 0x42018,
230662306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
230762306a36Sopenharmony_ci	.clkr = {
230862306a36Sopenharmony_ci		.enable_reg = 0x42018,
230962306a36Sopenharmony_ci		.enable_mask = BIT(0),
231062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
231162306a36Sopenharmony_ci			.name = "gcc_sdcc1_apps_clk",
231262306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
231362306a36Sopenharmony_ci				&sdcc1_apps_clk_src.clkr.hw,
231462306a36Sopenharmony_ci			},
231562306a36Sopenharmony_ci			.num_parents = 1,
231662306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
231762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
231862306a36Sopenharmony_ci		},
231962306a36Sopenharmony_ci	},
232062306a36Sopenharmony_ci};
232162306a36Sopenharmony_ci
232262306a36Sopenharmony_cistatic struct clk_branch gcc_sdcc1_ice_core_clk = {
232362306a36Sopenharmony_ci	.halt_reg = 0x5d014,
232462306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
232562306a36Sopenharmony_ci	.clkr = {
232662306a36Sopenharmony_ci		.enable_reg = 0x5d014,
232762306a36Sopenharmony_ci		.enable_mask = BIT(0),
232862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
232962306a36Sopenharmony_ci			.name = "gcc_sdcc1_ice_core_clk",
233062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
233162306a36Sopenharmony_ci				&sdcc1_ice_core_clk_src.clkr.hw,
233262306a36Sopenharmony_ci			},
233362306a36Sopenharmony_ci			.num_parents = 1,
233462306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
233562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
233662306a36Sopenharmony_ci		},
233762306a36Sopenharmony_ci	},
233862306a36Sopenharmony_ci};
233962306a36Sopenharmony_ci
234062306a36Sopenharmony_cistatic struct clk_branch gcc_cdsp_cfg_ahb_clk = {
234162306a36Sopenharmony_ci	.halt_reg = 0x5e004,
234262306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
234362306a36Sopenharmony_ci	.clkr = {
234462306a36Sopenharmony_ci		.enable_reg = 0x5e004,
234562306a36Sopenharmony_ci		.enable_mask = BIT(0),
234662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
234762306a36Sopenharmony_ci			.name = "gcc_cdsp_cfg_ahb_cbcr",
234862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
234962306a36Sopenharmony_ci		},
235062306a36Sopenharmony_ci	},
235162306a36Sopenharmony_ci};
235262306a36Sopenharmony_ci
235362306a36Sopenharmony_cistatic struct clk_branch gcc_sdcc2_ahb_clk = {
235462306a36Sopenharmony_ci	.halt_reg = 0x4301c,
235562306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
235662306a36Sopenharmony_ci	.clkr = {
235762306a36Sopenharmony_ci		.enable_reg = 0x4301c,
235862306a36Sopenharmony_ci		.enable_mask = BIT(0),
235962306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
236062306a36Sopenharmony_ci			.name = "gcc_sdcc2_ahb_clk",
236162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
236262306a36Sopenharmony_ci		},
236362306a36Sopenharmony_ci	},
236462306a36Sopenharmony_ci};
236562306a36Sopenharmony_ci
236662306a36Sopenharmony_cistatic struct clk_branch gcc_sdcc2_apps_clk = {
236762306a36Sopenharmony_ci	.halt_reg = 0x43018,
236862306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
236962306a36Sopenharmony_ci	.clkr = {
237062306a36Sopenharmony_ci		.enable_reg = 0x43018,
237162306a36Sopenharmony_ci		.enable_mask = BIT(0),
237262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
237362306a36Sopenharmony_ci			.name = "gcc_sdcc2_apps_clk",
237462306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
237562306a36Sopenharmony_ci				&sdcc2_apps_clk_src.clkr.hw,
237662306a36Sopenharmony_ci			},
237762306a36Sopenharmony_ci			.num_parents = 1,
237862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
237962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
238062306a36Sopenharmony_ci		},
238162306a36Sopenharmony_ci	},
238262306a36Sopenharmony_ci};
238362306a36Sopenharmony_ci
238462306a36Sopenharmony_cistatic struct clk_branch gcc_smmu_cfg_clk = {
238562306a36Sopenharmony_ci	.halt_reg = 0x12038,
238662306a36Sopenharmony_ci	.halt_check = BRANCH_VOTED,
238762306a36Sopenharmony_ci	.clkr = {
238862306a36Sopenharmony_ci		.enable_reg = 0x3600C,
238962306a36Sopenharmony_ci		.enable_mask = BIT(12),
239062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
239162306a36Sopenharmony_ci			.name = "gcc_smmu_cfg_clk",
239262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
239362306a36Sopenharmony_ci		},
239462306a36Sopenharmony_ci	},
239562306a36Sopenharmony_ci};
239662306a36Sopenharmony_ci
239762306a36Sopenharmony_cistatic struct clk_branch gcc_sys_noc_usb3_clk = {
239862306a36Sopenharmony_ci	.halt_reg = 0x26014,
239962306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
240062306a36Sopenharmony_ci	.clkr = {
240162306a36Sopenharmony_ci		.enable_reg = 0x26014,
240262306a36Sopenharmony_ci		.enable_mask = BIT(0),
240362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
240462306a36Sopenharmony_ci			.name = "gcc_sys_noc_usb3_clk",
240562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
240662306a36Sopenharmony_ci				&usb30_master_clk_src.clkr.hw,
240762306a36Sopenharmony_ci			},
240862306a36Sopenharmony_ci			.num_parents = 1,
240962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
241062306a36Sopenharmony_ci		},
241162306a36Sopenharmony_ci	},
241262306a36Sopenharmony_ci};
241362306a36Sopenharmony_ci
241462306a36Sopenharmony_cistatic struct clk_branch gcc_usb_hs_inactivity_timers_clk = {
241562306a36Sopenharmony_ci	.halt_reg = 0x4100C,
241662306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
241762306a36Sopenharmony_ci	.clkr = {
241862306a36Sopenharmony_ci		.enable_reg = 0x4100C,
241962306a36Sopenharmony_ci		.enable_mask = BIT(0),
242062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
242162306a36Sopenharmony_ci			.name = "gcc_usb_hs_inactivity_timers_clk",
242262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
242362306a36Sopenharmony_ci		},
242462306a36Sopenharmony_ci	},
242562306a36Sopenharmony_ci};
242662306a36Sopenharmony_ci
242762306a36Sopenharmony_cistatic struct clk_branch gcc_usb20_mock_utmi_clk = {
242862306a36Sopenharmony_ci	.halt_reg = 0x41044,
242962306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
243062306a36Sopenharmony_ci	.clkr = {
243162306a36Sopenharmony_ci		.enable_reg = 0x41044,
243262306a36Sopenharmony_ci		.enable_mask = BIT(0),
243362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
243462306a36Sopenharmony_ci			.name = "gcc_usb20_mock_utmi_clk",
243562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
243662306a36Sopenharmony_ci				&usb20_mock_utmi_clk_src.clkr.hw,
243762306a36Sopenharmony_ci			},
243862306a36Sopenharmony_ci			.num_parents = 1,
243962306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
244062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
244162306a36Sopenharmony_ci		},
244262306a36Sopenharmony_ci	},
244362306a36Sopenharmony_ci};
244462306a36Sopenharmony_ci
244562306a36Sopenharmony_cistatic struct clk_branch gcc_usb2a_phy_sleep_clk = {
244662306a36Sopenharmony_ci	.halt_reg = 0x4102c,
244762306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
244862306a36Sopenharmony_ci	.clkr = {
244962306a36Sopenharmony_ci		.enable_reg = 0x4102c,
245062306a36Sopenharmony_ci		.enable_mask = BIT(0),
245162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
245262306a36Sopenharmony_ci			.name = "gcc_usb2a_phy_sleep_clk",
245362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
245462306a36Sopenharmony_ci		},
245562306a36Sopenharmony_ci	},
245662306a36Sopenharmony_ci};
245762306a36Sopenharmony_ci
245862306a36Sopenharmony_cistatic struct clk_branch gcc_usb30_master_clk = {
245962306a36Sopenharmony_ci	.halt_reg = 0x3900c,
246062306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
246162306a36Sopenharmony_ci	.clkr = {
246262306a36Sopenharmony_ci		.enable_reg = 0x3900c,
246362306a36Sopenharmony_ci		.enable_mask = BIT(0),
246462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
246562306a36Sopenharmony_ci			.name = "gcc_usb30_master_clk",
246662306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
246762306a36Sopenharmony_ci				&usb30_master_clk_src.clkr.hw,
246862306a36Sopenharmony_ci			},
246962306a36Sopenharmony_ci			.num_parents = 1,
247062306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
247162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
247262306a36Sopenharmony_ci		},
247362306a36Sopenharmony_ci	},
247462306a36Sopenharmony_ci};
247562306a36Sopenharmony_ci
247662306a36Sopenharmony_cistatic struct clk_branch gcc_usb30_mock_utmi_clk = {
247762306a36Sopenharmony_ci	.halt_reg = 0x39014,
247862306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
247962306a36Sopenharmony_ci	.clkr = {
248062306a36Sopenharmony_ci		.enable_reg = 0x39014,
248162306a36Sopenharmony_ci		.enable_mask = BIT(0),
248262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
248362306a36Sopenharmony_ci			.name = "gcc_usb30_mock_utmi_clk",
248462306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
248562306a36Sopenharmony_ci				&usb30_mock_utmi_clk_src.clkr.hw,
248662306a36Sopenharmony_ci			},
248762306a36Sopenharmony_ci			.num_parents = 1,
248862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
248962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
249062306a36Sopenharmony_ci		},
249162306a36Sopenharmony_ci	},
249262306a36Sopenharmony_ci};
249362306a36Sopenharmony_ci
249462306a36Sopenharmony_cistatic struct clk_branch gcc_usb30_sleep_clk = {
249562306a36Sopenharmony_ci	.halt_reg = 0x39010,
249662306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
249762306a36Sopenharmony_ci	.clkr = {
249862306a36Sopenharmony_ci		.enable_reg = 0x39010,
249962306a36Sopenharmony_ci		.enable_mask = BIT(0),
250062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
250162306a36Sopenharmony_ci			.name = "gcc_usb30_sleep_clk",
250262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
250362306a36Sopenharmony_ci		},
250462306a36Sopenharmony_ci	},
250562306a36Sopenharmony_ci};
250662306a36Sopenharmony_ci
250762306a36Sopenharmony_cistatic struct clk_branch gcc_usb3_phy_aux_clk = {
250862306a36Sopenharmony_ci	.halt_reg = 0x39044,
250962306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
251062306a36Sopenharmony_ci	.clkr = {
251162306a36Sopenharmony_ci		.enable_reg = 0x39044,
251262306a36Sopenharmony_ci		.enable_mask = BIT(0),
251362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
251462306a36Sopenharmony_ci			.name = "gcc_usb3_phy_aux_clk",
251562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
251662306a36Sopenharmony_ci				&usb3_phy_aux_clk_src.clkr.hw,
251762306a36Sopenharmony_ci			},
251862306a36Sopenharmony_ci			.num_parents = 1,
251962306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
252062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
252162306a36Sopenharmony_ci		},
252262306a36Sopenharmony_ci	},
252362306a36Sopenharmony_ci};
252462306a36Sopenharmony_ci
252562306a36Sopenharmony_cistatic struct clk_branch gcc_usb3_phy_pipe_clk = {
252662306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_SKIP,
252762306a36Sopenharmony_ci	.clkr = {
252862306a36Sopenharmony_ci		.enable_reg = 0x39018,
252962306a36Sopenharmony_ci		.enable_mask = BIT(0),
253062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
253162306a36Sopenharmony_ci			.name = "gcc_usb3_phy_pipe_clk",
253262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
253362306a36Sopenharmony_ci		},
253462306a36Sopenharmony_ci	},
253562306a36Sopenharmony_ci};
253662306a36Sopenharmony_ci
253762306a36Sopenharmony_cistatic struct clk_branch gcc_usb_hs_phy_cfg_ahb_clk = {
253862306a36Sopenharmony_ci	.halt_reg = 0x41030,
253962306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
254062306a36Sopenharmony_ci	.clkr = {
254162306a36Sopenharmony_ci		.enable_reg = 0x41030,
254262306a36Sopenharmony_ci		.enable_mask = BIT(0),
254362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
254462306a36Sopenharmony_ci			.name = "gcc_usb_hs_phy_cfg_ahb_clk",
254562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
254662306a36Sopenharmony_ci		},
254762306a36Sopenharmony_ci	},
254862306a36Sopenharmony_ci};
254962306a36Sopenharmony_ci
255062306a36Sopenharmony_cistatic struct clk_branch gcc_usb_hs_system_clk = {
255162306a36Sopenharmony_ci	.halt_reg = 0x41004,
255262306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
255362306a36Sopenharmony_ci	.clkr = {
255462306a36Sopenharmony_ci		.enable_reg = 0x41004,
255562306a36Sopenharmony_ci		.enable_mask = BIT(0),
255662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
255762306a36Sopenharmony_ci			.name = "gcc_usb_hs_system_clk",
255862306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
255962306a36Sopenharmony_ci				&usb_hs_system_clk_src.clkr.hw,
256062306a36Sopenharmony_ci			},
256162306a36Sopenharmony_ci			.num_parents = 1,
256262306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
256362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
256462306a36Sopenharmony_ci		},
256562306a36Sopenharmony_ci	},
256662306a36Sopenharmony_ci};
256762306a36Sopenharmony_ci
256862306a36Sopenharmony_cistatic struct clk_branch gcc_wdsp_q6ss_ahbs_clk = {
256962306a36Sopenharmony_ci	.halt_reg = 0x1e004,
257062306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
257162306a36Sopenharmony_ci	.clkr = {
257262306a36Sopenharmony_ci		.enable_reg = 0x1e004,
257362306a36Sopenharmony_ci		.enable_mask = BIT(0),
257462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
257562306a36Sopenharmony_ci			.name = "gcc_wdsp_q6ss_ahbs_clk",
257662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
257762306a36Sopenharmony_ci		},
257862306a36Sopenharmony_ci	},
257962306a36Sopenharmony_ci};
258062306a36Sopenharmony_ci
258162306a36Sopenharmony_cistatic struct clk_branch gcc_wdsp_q6ss_axim_clk = {
258262306a36Sopenharmony_ci	.halt_reg = 0x1e008,
258362306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
258462306a36Sopenharmony_ci	.clkr = {
258562306a36Sopenharmony_ci		.enable_reg = 0x1e008,
258662306a36Sopenharmony_ci		.enable_mask = BIT(0),
258762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
258862306a36Sopenharmony_ci			.name = "gcc_wdsp_q6ss_axim_clk",
258962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
259062306a36Sopenharmony_ci		},
259162306a36Sopenharmony_ci	},
259262306a36Sopenharmony_ci};
259362306a36Sopenharmony_ci
259462306a36Sopenharmony_cistatic struct gdsc mdss_gdsc = {
259562306a36Sopenharmony_ci	.gdscr = 0x4d078,
259662306a36Sopenharmony_ci	.pd = {
259762306a36Sopenharmony_ci		.name = "mdss",
259862306a36Sopenharmony_ci	},
259962306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
260062306a36Sopenharmony_ci};
260162306a36Sopenharmony_ci
260262306a36Sopenharmony_cistatic struct gdsc oxili_gdsc = {
260362306a36Sopenharmony_ci	.gdscr = 0x5901c,
260462306a36Sopenharmony_ci	.pd = {
260562306a36Sopenharmony_ci		.name = "oxili",
260662306a36Sopenharmony_ci	},
260762306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
260862306a36Sopenharmony_ci};
260962306a36Sopenharmony_ci
261062306a36Sopenharmony_cistatic struct clk_hw *gcc_qcs404_hws[] = {
261162306a36Sopenharmony_ci	&cxo.hw,
261262306a36Sopenharmony_ci};
261362306a36Sopenharmony_ci
261462306a36Sopenharmony_cistatic struct clk_regmap *gcc_qcs404_clocks[] = {
261562306a36Sopenharmony_ci	[GCC_APSS_AHB_CLK_SRC] = &apss_ahb_clk_src.clkr,
261662306a36Sopenharmony_ci	[GCC_BLSP1_QUP0_I2C_APPS_CLK_SRC] = &blsp1_qup0_i2c_apps_clk_src.clkr,
261762306a36Sopenharmony_ci	[GCC_BLSP1_QUP0_SPI_APPS_CLK_SRC] = &blsp1_qup0_spi_apps_clk_src.clkr,
261862306a36Sopenharmony_ci	[GCC_BLSP1_QUP1_I2C_APPS_CLK_SRC] = &blsp1_qup1_i2c_apps_clk_src.clkr,
261962306a36Sopenharmony_ci	[GCC_BLSP1_QUP1_SPI_APPS_CLK_SRC] = &blsp1_qup1_spi_apps_clk_src.clkr,
262062306a36Sopenharmony_ci	[GCC_BLSP1_QUP2_I2C_APPS_CLK_SRC] = &blsp1_qup2_i2c_apps_clk_src.clkr,
262162306a36Sopenharmony_ci	[GCC_BLSP1_QUP2_SPI_APPS_CLK_SRC] = &blsp1_qup2_spi_apps_clk_src.clkr,
262262306a36Sopenharmony_ci	[GCC_BLSP1_QUP3_I2C_APPS_CLK_SRC] = &blsp1_qup3_i2c_apps_clk_src.clkr,
262362306a36Sopenharmony_ci	[GCC_BLSP1_QUP3_SPI_APPS_CLK_SRC] = &blsp1_qup3_spi_apps_clk_src.clkr,
262462306a36Sopenharmony_ci	[GCC_BLSP1_QUP4_I2C_APPS_CLK_SRC] = &blsp1_qup4_i2c_apps_clk_src.clkr,
262562306a36Sopenharmony_ci	[GCC_BLSP1_QUP4_SPI_APPS_CLK_SRC] = &blsp1_qup4_spi_apps_clk_src.clkr,
262662306a36Sopenharmony_ci	[GCC_BLSP1_UART0_APPS_CLK_SRC] = &blsp1_uart0_apps_clk_src.clkr,
262762306a36Sopenharmony_ci	[GCC_BLSP1_UART1_APPS_CLK_SRC] = &blsp1_uart1_apps_clk_src.clkr,
262862306a36Sopenharmony_ci	[GCC_BLSP1_UART2_APPS_CLK_SRC] = &blsp1_uart2_apps_clk_src.clkr,
262962306a36Sopenharmony_ci	[GCC_BLSP1_UART3_APPS_CLK_SRC] = &blsp1_uart3_apps_clk_src.clkr,
263062306a36Sopenharmony_ci	[GCC_BLSP2_QUP0_I2C_APPS_CLK_SRC] = &blsp2_qup0_i2c_apps_clk_src.clkr,
263162306a36Sopenharmony_ci	[GCC_BLSP2_QUP0_SPI_APPS_CLK_SRC] = &blsp2_qup0_spi_apps_clk_src.clkr,
263262306a36Sopenharmony_ci	[GCC_BLSP2_UART0_APPS_CLK_SRC] = &blsp2_uart0_apps_clk_src.clkr,
263362306a36Sopenharmony_ci	[GCC_BYTE0_CLK_SRC] = &byte0_clk_src.clkr,
263462306a36Sopenharmony_ci	[GCC_EMAC_CLK_SRC] = &emac_clk_src.clkr,
263562306a36Sopenharmony_ci	[GCC_EMAC_PTP_CLK_SRC] = &emac_ptp_clk_src.clkr,
263662306a36Sopenharmony_ci	[GCC_ESC0_CLK_SRC] = &esc0_clk_src.clkr,
263762306a36Sopenharmony_ci	[GCC_APSS_AHB_CLK] = &gcc_apss_ahb_clk.clkr,
263862306a36Sopenharmony_ci	[GCC_BIMC_GFX_CLK] = &gcc_bimc_gfx_clk.clkr,
263962306a36Sopenharmony_ci	[GCC_BIMC_CDSP_CLK] = &gcc_bimc_cdsp_clk.clkr,
264062306a36Sopenharmony_ci	[GCC_BIMC_MDSS_CLK] = &gcc_bimc_mdss_clk.clkr,
264162306a36Sopenharmony_ci	[GCC_BLSP1_AHB_CLK] = &gcc_blsp1_ahb_clk.clkr,
264262306a36Sopenharmony_ci	[GCC_BLSP1_QUP0_I2C_APPS_CLK] = &gcc_blsp1_qup0_i2c_apps_clk.clkr,
264362306a36Sopenharmony_ci	[GCC_BLSP1_QUP0_SPI_APPS_CLK] = &gcc_blsp1_qup0_spi_apps_clk.clkr,
264462306a36Sopenharmony_ci	[GCC_BLSP1_QUP1_I2C_APPS_CLK] = &gcc_blsp1_qup1_i2c_apps_clk.clkr,
264562306a36Sopenharmony_ci	[GCC_BLSP1_QUP1_SPI_APPS_CLK] = &gcc_blsp1_qup1_spi_apps_clk.clkr,
264662306a36Sopenharmony_ci	[GCC_BLSP1_QUP2_I2C_APPS_CLK] = &gcc_blsp1_qup2_i2c_apps_clk.clkr,
264762306a36Sopenharmony_ci	[GCC_BLSP1_QUP2_SPI_APPS_CLK] = &gcc_blsp1_qup2_spi_apps_clk.clkr,
264862306a36Sopenharmony_ci	[GCC_BLSP1_QUP3_I2C_APPS_CLK] = &gcc_blsp1_qup3_i2c_apps_clk.clkr,
264962306a36Sopenharmony_ci	[GCC_BLSP1_QUP3_SPI_APPS_CLK] = &gcc_blsp1_qup3_spi_apps_clk.clkr,
265062306a36Sopenharmony_ci	[GCC_BLSP1_QUP4_I2C_APPS_CLK] = &gcc_blsp1_qup4_i2c_apps_clk.clkr,
265162306a36Sopenharmony_ci	[GCC_BLSP1_QUP4_SPI_APPS_CLK] = &gcc_blsp1_qup4_spi_apps_clk.clkr,
265262306a36Sopenharmony_ci	[GCC_BLSP1_UART0_APPS_CLK] = &gcc_blsp1_uart0_apps_clk.clkr,
265362306a36Sopenharmony_ci	[GCC_BLSP1_UART1_APPS_CLK] = &gcc_blsp1_uart1_apps_clk.clkr,
265462306a36Sopenharmony_ci	[GCC_BLSP1_UART2_APPS_CLK] = &gcc_blsp1_uart2_apps_clk.clkr,
265562306a36Sopenharmony_ci	[GCC_BLSP1_UART3_APPS_CLK] = &gcc_blsp1_uart3_apps_clk.clkr,
265662306a36Sopenharmony_ci	[GCC_BLSP2_AHB_CLK] = &gcc_blsp2_ahb_clk.clkr,
265762306a36Sopenharmony_ci	[GCC_BLSP2_QUP0_I2C_APPS_CLK] = &gcc_blsp2_qup0_i2c_apps_clk.clkr,
265862306a36Sopenharmony_ci	[GCC_BLSP2_QUP0_SPI_APPS_CLK] = &gcc_blsp2_qup0_spi_apps_clk.clkr,
265962306a36Sopenharmony_ci	[GCC_BLSP2_UART0_APPS_CLK] = &gcc_blsp2_uart0_apps_clk.clkr,
266062306a36Sopenharmony_ci	[GCC_BOOT_ROM_AHB_CLK] = &gcc_boot_rom_ahb_clk.clkr,
266162306a36Sopenharmony_ci	[GCC_ETH_AXI_CLK] = &gcc_eth_axi_clk.clkr,
266262306a36Sopenharmony_ci	[GCC_ETH_PTP_CLK] = &gcc_eth_ptp_clk.clkr,
266362306a36Sopenharmony_ci	[GCC_ETH_RGMII_CLK] = &gcc_eth_rgmii_clk.clkr,
266462306a36Sopenharmony_ci	[GCC_ETH_SLAVE_AHB_CLK] = &gcc_eth_slave_ahb_clk.clkr,
266562306a36Sopenharmony_ci	[GCC_GENI_IR_S_CLK] = &gcc_geni_ir_s_clk.clkr,
266662306a36Sopenharmony_ci	[GCC_GENI_IR_H_CLK] = &gcc_geni_ir_h_clk.clkr,
266762306a36Sopenharmony_ci	[GCC_GP1_CLK] = &gcc_gp1_clk.clkr,
266862306a36Sopenharmony_ci	[GCC_GP2_CLK] = &gcc_gp2_clk.clkr,
266962306a36Sopenharmony_ci	[GCC_GP3_CLK] = &gcc_gp3_clk.clkr,
267062306a36Sopenharmony_ci	[GCC_MDSS_AHB_CLK] = &gcc_mdss_ahb_clk.clkr,
267162306a36Sopenharmony_ci	[GCC_MDSS_AXI_CLK] = &gcc_mdss_axi_clk.clkr,
267262306a36Sopenharmony_ci	[GCC_MDSS_BYTE0_CLK] = &gcc_mdss_byte0_clk.clkr,
267362306a36Sopenharmony_ci	[GCC_MDSS_ESC0_CLK] = &gcc_mdss_esc0_clk.clkr,
267462306a36Sopenharmony_ci	[GCC_MDSS_HDMI_APP_CLK] = &gcc_mdss_hdmi_app_clk.clkr,
267562306a36Sopenharmony_ci	[GCC_MDSS_HDMI_PCLK_CLK] = &gcc_mdss_hdmi_pclk_clk.clkr,
267662306a36Sopenharmony_ci	[GCC_MDSS_MDP_CLK] = &gcc_mdss_mdp_clk.clkr,
267762306a36Sopenharmony_ci	[GCC_MDSS_PCLK0_CLK] = &gcc_mdss_pclk0_clk.clkr,
267862306a36Sopenharmony_ci	[GCC_MDSS_VSYNC_CLK] = &gcc_mdss_vsync_clk.clkr,
267962306a36Sopenharmony_ci	[GCC_OXILI_AHB_CLK] = &gcc_oxili_ahb_clk.clkr,
268062306a36Sopenharmony_ci	[GCC_OXILI_GFX3D_CLK] = &gcc_oxili_gfx3d_clk.clkr,
268162306a36Sopenharmony_ci	[GCC_PCIE_0_AUX_CLK] = &gcc_pcie_0_aux_clk.clkr,
268262306a36Sopenharmony_ci	[GCC_PCIE_0_CFG_AHB_CLK] = &gcc_pcie_0_cfg_ahb_clk.clkr,
268362306a36Sopenharmony_ci	[GCC_PCIE_0_MSTR_AXI_CLK] = &gcc_pcie_0_mstr_axi_clk.clkr,
268462306a36Sopenharmony_ci	[GCC_PCIE_0_PIPE_CLK] = &gcc_pcie_0_pipe_clk.clkr,
268562306a36Sopenharmony_ci	[GCC_PCIE_0_SLV_AXI_CLK] = &gcc_pcie_0_slv_axi_clk.clkr,
268662306a36Sopenharmony_ci	[GCC_PCNOC_USB2_CLK] = &gcc_pcnoc_usb2_clk.clkr,
268762306a36Sopenharmony_ci	[GCC_PCNOC_USB3_CLK] = &gcc_pcnoc_usb3_clk.clkr,
268862306a36Sopenharmony_ci	[GCC_PDM2_CLK] = &gcc_pdm2_clk.clkr,
268962306a36Sopenharmony_ci	[GCC_PDM_AHB_CLK] = &gcc_pdm_ahb_clk.clkr,
269062306a36Sopenharmony_ci	[GCC_PRNG_AHB_CLK] = &gcc_prng_ahb_clk.clkr,
269162306a36Sopenharmony_ci	[GCC_PWM0_XO512_CLK] = &gcc_pwm0_xo512_clk.clkr,
269262306a36Sopenharmony_ci	[GCC_PWM1_XO512_CLK] = &gcc_pwm1_xo512_clk.clkr,
269362306a36Sopenharmony_ci	[GCC_PWM2_XO512_CLK] = &gcc_pwm2_xo512_clk.clkr,
269462306a36Sopenharmony_ci	[GCC_SDCC1_AHB_CLK] = &gcc_sdcc1_ahb_clk.clkr,
269562306a36Sopenharmony_ci	[GCC_SDCC1_APPS_CLK] = &gcc_sdcc1_apps_clk.clkr,
269662306a36Sopenharmony_ci	[GCC_SDCC1_ICE_CORE_CLK] = &gcc_sdcc1_ice_core_clk.clkr,
269762306a36Sopenharmony_ci	[GCC_CDSP_CFG_AHB_CLK] = &gcc_cdsp_cfg_ahb_clk.clkr,
269862306a36Sopenharmony_ci	[GCC_SDCC2_AHB_CLK] = &gcc_sdcc2_ahb_clk.clkr,
269962306a36Sopenharmony_ci	[GCC_SDCC2_APPS_CLK] = &gcc_sdcc2_apps_clk.clkr,
270062306a36Sopenharmony_ci	[GCC_SYS_NOC_USB3_CLK] = &gcc_sys_noc_usb3_clk.clkr,
270162306a36Sopenharmony_ci	[GCC_USB20_MOCK_UTMI_CLK] = &gcc_usb20_mock_utmi_clk.clkr,
270262306a36Sopenharmony_ci	[GCC_USB2A_PHY_SLEEP_CLK] = &gcc_usb2a_phy_sleep_clk.clkr,
270362306a36Sopenharmony_ci	[GCC_USB30_MASTER_CLK] = &gcc_usb30_master_clk.clkr,
270462306a36Sopenharmony_ci	[GCC_USB30_MOCK_UTMI_CLK] = &gcc_usb30_mock_utmi_clk.clkr,
270562306a36Sopenharmony_ci	[GCC_USB30_SLEEP_CLK] = &gcc_usb30_sleep_clk.clkr,
270662306a36Sopenharmony_ci	[GCC_USB3_PHY_AUX_CLK] = &gcc_usb3_phy_aux_clk.clkr,
270762306a36Sopenharmony_ci	[GCC_USB3_PHY_PIPE_CLK] = &gcc_usb3_phy_pipe_clk.clkr,
270862306a36Sopenharmony_ci	[GCC_USB_HS_PHY_CFG_AHB_CLK] = &gcc_usb_hs_phy_cfg_ahb_clk.clkr,
270962306a36Sopenharmony_ci	[GCC_USB_HS_SYSTEM_CLK] = &gcc_usb_hs_system_clk.clkr,
271062306a36Sopenharmony_ci	[GCC_GFX3D_CLK_SRC] = &gfx3d_clk_src.clkr,
271162306a36Sopenharmony_ci	[GCC_GP1_CLK_SRC] = &gp1_clk_src.clkr,
271262306a36Sopenharmony_ci	[GCC_GP2_CLK_SRC] = &gp2_clk_src.clkr,
271362306a36Sopenharmony_ci	[GCC_GP3_CLK_SRC] = &gp3_clk_src.clkr,
271462306a36Sopenharmony_ci	[GCC_GPLL0_OUT_MAIN] = &gpll0_out_main.clkr,
271562306a36Sopenharmony_ci	[GCC_GPLL0_AO_OUT_MAIN] = &gpll0_ao_out_main.clkr,
271662306a36Sopenharmony_ci	[GCC_GPLL0_SLEEP_CLK_SRC] = &gpll0_sleep_clk_src.clkr,
271762306a36Sopenharmony_ci	[GCC_GPLL1_OUT_MAIN] = &gpll1_out_main.clkr,
271862306a36Sopenharmony_ci	[GCC_GPLL3_OUT_MAIN] = &gpll3_out_main.clkr,
271962306a36Sopenharmony_ci	[GCC_GPLL4_OUT_MAIN] = &gpll4_out_main.clkr,
272062306a36Sopenharmony_ci	[GCC_GPLL6] = &gpll6.clkr,
272162306a36Sopenharmony_ci	[GCC_GPLL6_OUT_AUX] = &gpll6_out_aux,
272262306a36Sopenharmony_ci	[GCC_HDMI_APP_CLK_SRC] = &hdmi_app_clk_src.clkr,
272362306a36Sopenharmony_ci	[GCC_HDMI_PCLK_CLK_SRC] = &hdmi_pclk_clk_src.clkr,
272462306a36Sopenharmony_ci	[GCC_MDP_CLK_SRC] = &mdp_clk_src.clkr,
272562306a36Sopenharmony_ci	[GCC_PCIE_0_AUX_CLK_SRC] = &pcie_0_aux_clk_src.clkr,
272662306a36Sopenharmony_ci	[GCC_PCIE_0_PIPE_CLK_SRC] = &pcie_0_pipe_clk_src.clkr,
272762306a36Sopenharmony_ci	[GCC_PCLK0_CLK_SRC] = &pclk0_clk_src.clkr,
272862306a36Sopenharmony_ci	[GCC_PDM2_CLK_SRC] = &pdm2_clk_src.clkr,
272962306a36Sopenharmony_ci	[GCC_SDCC1_APPS_CLK_SRC] = &sdcc1_apps_clk_src.clkr,
273062306a36Sopenharmony_ci	[GCC_SDCC1_ICE_CORE_CLK_SRC] = &sdcc1_ice_core_clk_src.clkr,
273162306a36Sopenharmony_ci	[GCC_SDCC2_APPS_CLK_SRC] = &sdcc2_apps_clk_src.clkr,
273262306a36Sopenharmony_ci	[GCC_USB20_MOCK_UTMI_CLK_SRC] = &usb20_mock_utmi_clk_src.clkr,
273362306a36Sopenharmony_ci	[GCC_USB30_MASTER_CLK_SRC] = &usb30_master_clk_src.clkr,
273462306a36Sopenharmony_ci	[GCC_USB30_MOCK_UTMI_CLK_SRC] = &usb30_mock_utmi_clk_src.clkr,
273562306a36Sopenharmony_ci	[GCC_USB3_PHY_AUX_CLK_SRC] = &usb3_phy_aux_clk_src.clkr,
273662306a36Sopenharmony_ci	[GCC_USB_HS_SYSTEM_CLK_SRC] = &usb_hs_system_clk_src.clkr,
273762306a36Sopenharmony_ci	[GCC_VSYNC_CLK_SRC] = &vsync_clk_src.clkr,
273862306a36Sopenharmony_ci	[GCC_CDSP_BIMC_CLK_SRC] = &cdsp_bimc_clk_src.clkr,
273962306a36Sopenharmony_ci	[GCC_USB_HS_INACTIVITY_TIMERS_CLK] =
274062306a36Sopenharmony_ci			&gcc_usb_hs_inactivity_timers_clk.clkr,
274162306a36Sopenharmony_ci	[GCC_BIMC_GPU_CLK] = &gcc_bimc_gpu_clk.clkr,
274262306a36Sopenharmony_ci	[GCC_GTCU_AHB_CLK] = &gcc_gtcu_ahb_clk.clkr,
274362306a36Sopenharmony_ci	[GCC_GFX_TCU_CLK] = &gcc_gfx_tcu_clk.clkr,
274462306a36Sopenharmony_ci	[GCC_GFX_TBU_CLK] = &gcc_gfx_tbu_clk.clkr,
274562306a36Sopenharmony_ci	[GCC_SMMU_CFG_CLK] = &gcc_smmu_cfg_clk.clkr,
274662306a36Sopenharmony_ci	[GCC_APSS_TCU_CLK] = &gcc_apss_tcu_clk.clkr,
274762306a36Sopenharmony_ci	[GCC_CDSP_TBU_CLK] = &gcc_cdsp_tbu_clk.clkr,
274862306a36Sopenharmony_ci	[GCC_CRYPTO_AHB_CLK] = &gcc_crypto_ahb_clk.clkr,
274962306a36Sopenharmony_ci	[GCC_CRYPTO_AXI_CLK] = &gcc_crypto_axi_clk.clkr,
275062306a36Sopenharmony_ci	[GCC_CRYPTO_CLK] = &gcc_crypto_clk.clkr,
275162306a36Sopenharmony_ci	[GCC_MDP_TBU_CLK] = &gcc_mdp_tbu_clk.clkr,
275262306a36Sopenharmony_ci	[GCC_QDSS_DAP_CLK] = &gcc_qdss_dap_clk.clkr,
275362306a36Sopenharmony_ci	[GCC_DCC_CLK] = &gcc_dcc_clk.clkr,
275462306a36Sopenharmony_ci	[GCC_DCC_XO_CLK] = &gcc_dcc_xo_clk.clkr,
275562306a36Sopenharmony_ci	[GCC_WCSS_Q6_AHB_CLK] = &gcc_wdsp_q6ss_ahbs_clk.clkr,
275662306a36Sopenharmony_ci	[GCC_WCSS_Q6_AXIM_CLK] =  &gcc_wdsp_q6ss_axim_clk.clkr,
275762306a36Sopenharmony_ci
275862306a36Sopenharmony_ci};
275962306a36Sopenharmony_ci
276062306a36Sopenharmony_cistatic struct gdsc *gcc_qcs404_gdscs[] = {
276162306a36Sopenharmony_ci	[MDSS_GDSC] = &mdss_gdsc,
276262306a36Sopenharmony_ci	[OXILI_GDSC] = &oxili_gdsc,
276362306a36Sopenharmony_ci};
276462306a36Sopenharmony_ci
276562306a36Sopenharmony_cistatic const struct qcom_reset_map gcc_qcs404_resets[] = {
276662306a36Sopenharmony_ci	[GCC_GENI_IR_BCR] = { 0x0F000 },
276762306a36Sopenharmony_ci	[GCC_CDSP_RESTART] = { 0x18000 },
276862306a36Sopenharmony_ci	[GCC_USB_HS_BCR] = { 0x41000 },
276962306a36Sopenharmony_ci	[GCC_USB2_HS_PHY_ONLY_BCR] = { 0x41034 },
277062306a36Sopenharmony_ci	[GCC_QUSB2_PHY_BCR] = { 0x4103c },
277162306a36Sopenharmony_ci	[GCC_USB_HS_PHY_CFG_AHB_BCR] = { 0x0000c, 1 },
277262306a36Sopenharmony_ci	[GCC_USB2A_PHY_BCR] = { 0x0000c, 0 },
277362306a36Sopenharmony_ci	[GCC_USB3_PHY_BCR] = { 0x39004 },
277462306a36Sopenharmony_ci	[GCC_USB_30_BCR] = { 0x39000 },
277562306a36Sopenharmony_ci	[GCC_USB3PHY_PHY_BCR] = { 0x39008 },
277662306a36Sopenharmony_ci	[GCC_PCIE_0_BCR] = { 0x3e000 },
277762306a36Sopenharmony_ci	[GCC_PCIE_0_PHY_BCR] = { 0x3e004 },
277862306a36Sopenharmony_ci	[GCC_PCIE_0_LINK_DOWN_BCR] = { 0x3e038 },
277962306a36Sopenharmony_ci	[GCC_PCIEPHY_0_PHY_BCR] = { 0x3e03c },
278062306a36Sopenharmony_ci	[GCC_PCIE_0_AXI_MASTER_STICKY_ARES] = { 0x3e040, 6},
278162306a36Sopenharmony_ci	[GCC_PCIE_0_AHB_ARES] = { 0x3e040, 5 },
278262306a36Sopenharmony_ci	[GCC_PCIE_0_AXI_SLAVE_ARES] = { 0x3e040, 4 },
278362306a36Sopenharmony_ci	[GCC_PCIE_0_AXI_MASTER_ARES] = { 0x3e040, 3 },
278462306a36Sopenharmony_ci	[GCC_PCIE_0_CORE_STICKY_ARES] = { 0x3e040, 2 },
278562306a36Sopenharmony_ci	[GCC_PCIE_0_SLEEP_ARES] = { 0x3e040, 1 },
278662306a36Sopenharmony_ci	[GCC_PCIE_0_PIPE_ARES] = { 0x3e040, 0 },
278762306a36Sopenharmony_ci	[GCC_EMAC_BCR] = { 0x4e000 },
278862306a36Sopenharmony_ci	[GCC_WDSP_RESTART] = {0x19000},
278962306a36Sopenharmony_ci};
279062306a36Sopenharmony_ci
279162306a36Sopenharmony_cistatic const struct regmap_config gcc_qcs404_regmap_config = {
279262306a36Sopenharmony_ci	.reg_bits	= 32,
279362306a36Sopenharmony_ci	.reg_stride	= 4,
279462306a36Sopenharmony_ci	.val_bits	= 32,
279562306a36Sopenharmony_ci	.max_register	= 0x7f000,
279662306a36Sopenharmony_ci	.fast_io	= true,
279762306a36Sopenharmony_ci};
279862306a36Sopenharmony_ci
279962306a36Sopenharmony_cistatic const struct qcom_cc_desc gcc_qcs404_desc = {
280062306a36Sopenharmony_ci	.config = &gcc_qcs404_regmap_config,
280162306a36Sopenharmony_ci	.clks = gcc_qcs404_clocks,
280262306a36Sopenharmony_ci	.num_clks = ARRAY_SIZE(gcc_qcs404_clocks),
280362306a36Sopenharmony_ci	.resets = gcc_qcs404_resets,
280462306a36Sopenharmony_ci	.num_resets = ARRAY_SIZE(gcc_qcs404_resets),
280562306a36Sopenharmony_ci	.clk_hws = gcc_qcs404_hws,
280662306a36Sopenharmony_ci	.num_clk_hws = ARRAY_SIZE(gcc_qcs404_hws),
280762306a36Sopenharmony_ci	.gdscs = gcc_qcs404_gdscs,
280862306a36Sopenharmony_ci	.num_gdscs = ARRAY_SIZE(gcc_qcs404_gdscs),
280962306a36Sopenharmony_ci};
281062306a36Sopenharmony_ci
281162306a36Sopenharmony_cistatic const struct of_device_id gcc_qcs404_match_table[] = {
281262306a36Sopenharmony_ci	{ .compatible = "qcom,gcc-qcs404" },
281362306a36Sopenharmony_ci	{ }
281462306a36Sopenharmony_ci};
281562306a36Sopenharmony_ciMODULE_DEVICE_TABLE(of, gcc_qcs404_match_table);
281662306a36Sopenharmony_ci
281762306a36Sopenharmony_cistatic int gcc_qcs404_probe(struct platform_device *pdev)
281862306a36Sopenharmony_ci{
281962306a36Sopenharmony_ci	struct regmap *regmap;
282062306a36Sopenharmony_ci
282162306a36Sopenharmony_ci	regmap = qcom_cc_map(pdev, &gcc_qcs404_desc);
282262306a36Sopenharmony_ci	if (IS_ERR(regmap))
282362306a36Sopenharmony_ci		return PTR_ERR(regmap);
282462306a36Sopenharmony_ci
282562306a36Sopenharmony_ci	clk_alpha_pll_configure(&gpll3_out_main, regmap, &gpll3_config);
282662306a36Sopenharmony_ci
282762306a36Sopenharmony_ci	return qcom_cc_really_probe(pdev, &gcc_qcs404_desc, regmap);
282862306a36Sopenharmony_ci}
282962306a36Sopenharmony_ci
283062306a36Sopenharmony_cistatic struct platform_driver gcc_qcs404_driver = {
283162306a36Sopenharmony_ci	.probe = gcc_qcs404_probe,
283262306a36Sopenharmony_ci	.driver = {
283362306a36Sopenharmony_ci		.name = "gcc-qcs404",
283462306a36Sopenharmony_ci		.of_match_table = gcc_qcs404_match_table,
283562306a36Sopenharmony_ci	},
283662306a36Sopenharmony_ci};
283762306a36Sopenharmony_ci
283862306a36Sopenharmony_cistatic int __init gcc_qcs404_init(void)
283962306a36Sopenharmony_ci{
284062306a36Sopenharmony_ci	return platform_driver_register(&gcc_qcs404_driver);
284162306a36Sopenharmony_ci}
284262306a36Sopenharmony_cicore_initcall(gcc_qcs404_init);
284362306a36Sopenharmony_ci
284462306a36Sopenharmony_cistatic void __exit gcc_qcs404_exit(void)
284562306a36Sopenharmony_ci{
284662306a36Sopenharmony_ci	platform_driver_unregister(&gcc_qcs404_driver);
284762306a36Sopenharmony_ci}
284862306a36Sopenharmony_cimodule_exit(gcc_qcs404_exit);
284962306a36Sopenharmony_ci
285062306a36Sopenharmony_ciMODULE_DESCRIPTION("Qualcomm GCC QCS404 Driver");
285162306a36Sopenharmony_ciMODULE_LICENSE("GPL v2");
2852