162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Qualcomm Global Clock Controller driver for MSM8956/76
462306a36Sopenharmony_ci *
562306a36Sopenharmony_ci * Copyright (c) 2016-2021, AngeloGioacchino Del Regno
662306a36Sopenharmony_ci *                     <angelogioacchino.delregno@somainline.org>
762306a36Sopenharmony_ci *
862306a36Sopenharmony_ci * Driver cleanup and modernization
962306a36Sopenharmony_ci * Copyright (c) 2021, Konrad Dybcio <konrad.dybcio@somainline.org>
1062306a36Sopenharmony_ci *                     Marijn Suijten <marijn.suijten@somainline.org>
1162306a36Sopenharmony_ci *
1262306a36Sopenharmony_ci */
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ci#include <linux/clk-provider.h>
1562306a36Sopenharmony_ci#include <linux/err.h>
1662306a36Sopenharmony_ci#include <linux/kernel.h>
1762306a36Sopenharmony_ci#include <linux/module.h>
1862306a36Sopenharmony_ci#include <linux/of.h>
1962306a36Sopenharmony_ci#include <linux/platform_device.h>
2062306a36Sopenharmony_ci#include <linux/regmap.h>
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_ci#include <dt-bindings/clock/qcom,gcc-msm8976.h>
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_ci#include "clk-pll.h"
2562306a36Sopenharmony_ci#include "clk-branch.h"
2662306a36Sopenharmony_ci#include "clk-rcg.h"
2762306a36Sopenharmony_ci#include "common.h"
2862306a36Sopenharmony_ci#include "gdsc.h"
2962306a36Sopenharmony_ci#include "reset.h"
3062306a36Sopenharmony_ci
3162306a36Sopenharmony_cienum {
3262306a36Sopenharmony_ci	P_GPLL0_OUT_MAIN,
3362306a36Sopenharmony_ci	P_GPLL0_AUX,
3462306a36Sopenharmony_ci	P_GPLL0_OUT,
3562306a36Sopenharmony_ci	P_GPLL0_OUT_M,
3662306a36Sopenharmony_ci	P_GPLL0_OUT_MDP,
3762306a36Sopenharmony_ci	P_GPLL2_AUX,
3862306a36Sopenharmony_ci	P_GPLL2_OUT,
3962306a36Sopenharmony_ci	P_GPLL4_OUT_MAIN,
4062306a36Sopenharmony_ci	P_GPLL4_AUX,
4162306a36Sopenharmony_ci	P_GPLL4_OUT,
4262306a36Sopenharmony_ci	P_GPLL4_GFX3D,
4362306a36Sopenharmony_ci	P_GPLL6_OUT_MAIN,
4462306a36Sopenharmony_ci	P_GPLL6_AUX,
4562306a36Sopenharmony_ci	P_GPLL6_OUT,
4662306a36Sopenharmony_ci	P_GPLL6_GFX3D,
4762306a36Sopenharmony_ci	P_DSI0PLL,
4862306a36Sopenharmony_ci	P_DSI1PLL,
4962306a36Sopenharmony_ci	P_DSI0PLL_BYTE,
5062306a36Sopenharmony_ci	P_DSI1PLL_BYTE,
5162306a36Sopenharmony_ci	P_XO_A,
5262306a36Sopenharmony_ci	P_XO,
5362306a36Sopenharmony_ci};
5462306a36Sopenharmony_ci
5562306a36Sopenharmony_cistatic struct clk_pll gpll0 = {
5662306a36Sopenharmony_ci	.l_reg = 0x21004,
5762306a36Sopenharmony_ci	.m_reg = 0x21008,
5862306a36Sopenharmony_ci	.n_reg = 0x2100c,
5962306a36Sopenharmony_ci	.config_reg = 0x21014,
6062306a36Sopenharmony_ci	.mode_reg = 0x21000,
6162306a36Sopenharmony_ci	.status_reg = 0x2101c,
6262306a36Sopenharmony_ci	.status_bit = 17,
6362306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
6462306a36Sopenharmony_ci		.name = "gpll0",
6562306a36Sopenharmony_ci		.parent_data = &(const struct clk_parent_data){
6662306a36Sopenharmony_ci			.fw_name = "xo",
6762306a36Sopenharmony_ci		},
6862306a36Sopenharmony_ci		.num_parents = 1,
6962306a36Sopenharmony_ci		.ops = &clk_pll_ops,
7062306a36Sopenharmony_ci	},
7162306a36Sopenharmony_ci};
7262306a36Sopenharmony_ci
7362306a36Sopenharmony_cistatic struct clk_regmap gpll0_vote = {
7462306a36Sopenharmony_ci	.enable_reg = 0x45000,
7562306a36Sopenharmony_ci	.enable_mask = BIT(0),
7662306a36Sopenharmony_ci	.hw.init = &(struct clk_init_data){
7762306a36Sopenharmony_ci		.name = "gpll0_vote",
7862306a36Sopenharmony_ci		.parent_hws = (const struct clk_hw *[]) {
7962306a36Sopenharmony_ci			&gpll0.clkr.hw,
8062306a36Sopenharmony_ci		},
8162306a36Sopenharmony_ci		.num_parents = 1,
8262306a36Sopenharmony_ci		/* This clock is required for other ones to function. */
8362306a36Sopenharmony_ci		.flags = CLK_IS_CRITICAL,
8462306a36Sopenharmony_ci		.ops = &clk_pll_vote_ops,
8562306a36Sopenharmony_ci	},
8662306a36Sopenharmony_ci};
8762306a36Sopenharmony_ci
8862306a36Sopenharmony_cistatic struct clk_pll gpll2 = {
8962306a36Sopenharmony_ci	.l_reg = 0x4a004,
9062306a36Sopenharmony_ci	.m_reg = 0x4a008,
9162306a36Sopenharmony_ci	.n_reg = 0x4a00c,
9262306a36Sopenharmony_ci	.config_reg = 0x4a014,
9362306a36Sopenharmony_ci	.mode_reg = 0x4a000,
9462306a36Sopenharmony_ci	.status_reg = 0x4a01c,
9562306a36Sopenharmony_ci	.status_bit = 17,
9662306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
9762306a36Sopenharmony_ci		.name = "gpll2",
9862306a36Sopenharmony_ci		.parent_data = &(const struct clk_parent_data){
9962306a36Sopenharmony_ci			.fw_name = "xo",
10062306a36Sopenharmony_ci		},
10162306a36Sopenharmony_ci		.num_parents = 1,
10262306a36Sopenharmony_ci		.ops = &clk_pll_ops,
10362306a36Sopenharmony_ci	},
10462306a36Sopenharmony_ci};
10562306a36Sopenharmony_ci
10662306a36Sopenharmony_cistatic struct clk_regmap gpll2_vote = {
10762306a36Sopenharmony_ci	.enable_reg = 0x45000,
10862306a36Sopenharmony_ci	.enable_mask = BIT(2),
10962306a36Sopenharmony_ci	.hw.init = &(struct clk_init_data){
11062306a36Sopenharmony_ci		.name = "gpll2_vote",
11162306a36Sopenharmony_ci		.parent_hws = (const struct clk_hw *[]) {
11262306a36Sopenharmony_ci			&gpll2.clkr.hw,
11362306a36Sopenharmony_ci		},
11462306a36Sopenharmony_ci		.num_parents = 1,
11562306a36Sopenharmony_ci		.ops = &clk_pll_vote_ops,
11662306a36Sopenharmony_ci	},
11762306a36Sopenharmony_ci};
11862306a36Sopenharmony_ci
11962306a36Sopenharmony_cistatic const struct pll_freq_tbl gpll3_freq_tbl[] = {
12062306a36Sopenharmony_ci	{ 1100000000, 57, 7, 24, 0 },
12162306a36Sopenharmony_ci	{ }
12262306a36Sopenharmony_ci};
12362306a36Sopenharmony_ci
12462306a36Sopenharmony_cistatic struct clk_pll gpll3 = {
12562306a36Sopenharmony_ci	.l_reg = 0x22004,
12662306a36Sopenharmony_ci	.m_reg = 0x22008,
12762306a36Sopenharmony_ci	.n_reg = 0x2200c,
12862306a36Sopenharmony_ci	.config_reg = 0x22010,
12962306a36Sopenharmony_ci	.mode_reg = 0x22000,
13062306a36Sopenharmony_ci	.status_reg = 0x22024,
13162306a36Sopenharmony_ci	.status_bit = 17,
13262306a36Sopenharmony_ci	.freq_tbl = gpll3_freq_tbl,
13362306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data) {
13462306a36Sopenharmony_ci		.name = "gpll3",
13562306a36Sopenharmony_ci		.parent_data = &(const struct clk_parent_data){
13662306a36Sopenharmony_ci			.fw_name = "xo",
13762306a36Sopenharmony_ci		},
13862306a36Sopenharmony_ci		.num_parents = 1,
13962306a36Sopenharmony_ci		.ops = &clk_pll_ops,
14062306a36Sopenharmony_ci	},
14162306a36Sopenharmony_ci};
14262306a36Sopenharmony_ci
14362306a36Sopenharmony_cistatic struct clk_regmap gpll3_vote = {
14462306a36Sopenharmony_ci	.enable_reg = 0x45000,
14562306a36Sopenharmony_ci	.enable_mask = BIT(4),
14662306a36Sopenharmony_ci	.hw.init = &(struct clk_init_data){
14762306a36Sopenharmony_ci		.name = "gpll3_vote",
14862306a36Sopenharmony_ci		.parent_hws = (const struct clk_hw *[]) {
14962306a36Sopenharmony_ci			&gpll3.clkr.hw,
15062306a36Sopenharmony_ci		},
15162306a36Sopenharmony_ci		.num_parents = 1,
15262306a36Sopenharmony_ci		.ops = &clk_pll_vote_ops,
15362306a36Sopenharmony_ci	},
15462306a36Sopenharmony_ci};
15562306a36Sopenharmony_ci
15662306a36Sopenharmony_ci/* GPLL3 at 1100MHz, main output enabled. */
15762306a36Sopenharmony_cistatic const struct pll_config gpll3_config = {
15862306a36Sopenharmony_ci	.l = 57,
15962306a36Sopenharmony_ci	.m = 7,
16062306a36Sopenharmony_ci	.n = 24,
16162306a36Sopenharmony_ci	.vco_val = 0x0,
16262306a36Sopenharmony_ci	.vco_mask = 0x3 << 20,
16362306a36Sopenharmony_ci	.pre_div_val = 0x0,
16462306a36Sopenharmony_ci	.pre_div_mask = 0x7 << 12,
16562306a36Sopenharmony_ci	.post_div_val = 0x0,
16662306a36Sopenharmony_ci	.post_div_mask = 0x3 << 8,
16762306a36Sopenharmony_ci	.mn_ena_mask = BIT(24),
16862306a36Sopenharmony_ci	.main_output_mask = BIT(0),
16962306a36Sopenharmony_ci	.aux_output_mask = BIT(1),
17062306a36Sopenharmony_ci};
17162306a36Sopenharmony_ci
17262306a36Sopenharmony_cistatic struct clk_pll gpll4 = {
17362306a36Sopenharmony_ci	.l_reg = 0x24004,
17462306a36Sopenharmony_ci	.m_reg = 0x24008,
17562306a36Sopenharmony_ci	.n_reg = 0x2400c,
17662306a36Sopenharmony_ci	.config_reg = 0x24018,
17762306a36Sopenharmony_ci	.mode_reg = 0x24000,
17862306a36Sopenharmony_ci	.status_reg = 0x24024,
17962306a36Sopenharmony_ci	.status_bit = 17,
18062306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
18162306a36Sopenharmony_ci		.name = "gpll4",
18262306a36Sopenharmony_ci		.parent_data = &(const struct clk_parent_data){
18362306a36Sopenharmony_ci			.fw_name = "xo",
18462306a36Sopenharmony_ci		},
18562306a36Sopenharmony_ci		.num_parents = 1,
18662306a36Sopenharmony_ci		.ops = &clk_pll_ops,
18762306a36Sopenharmony_ci	},
18862306a36Sopenharmony_ci};
18962306a36Sopenharmony_ci
19062306a36Sopenharmony_cistatic struct clk_regmap gpll4_vote = {
19162306a36Sopenharmony_ci	.enable_reg = 0x45000,
19262306a36Sopenharmony_ci	.enable_mask = BIT(5),
19362306a36Sopenharmony_ci	.hw.init = &(struct clk_init_data){
19462306a36Sopenharmony_ci		.name = "gpll4_vote",
19562306a36Sopenharmony_ci		.parent_hws = (const struct clk_hw *[]) {
19662306a36Sopenharmony_ci			&gpll4.clkr.hw,
19762306a36Sopenharmony_ci		},
19862306a36Sopenharmony_ci		.num_parents = 1,
19962306a36Sopenharmony_ci		.ops = &clk_pll_vote_ops,
20062306a36Sopenharmony_ci	},
20162306a36Sopenharmony_ci};
20262306a36Sopenharmony_ci
20362306a36Sopenharmony_cistatic struct clk_pll gpll6 = {
20462306a36Sopenharmony_ci	.mode_reg = 0x37000,
20562306a36Sopenharmony_ci	.l_reg = 0x37004,
20662306a36Sopenharmony_ci	.m_reg = 0x37008,
20762306a36Sopenharmony_ci	.n_reg = 0x3700c,
20862306a36Sopenharmony_ci	.config_reg = 0x37014,
20962306a36Sopenharmony_ci	.status_reg = 0x3701c,
21062306a36Sopenharmony_ci	.status_bit = 17,
21162306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
21262306a36Sopenharmony_ci		.name = "gpll6",
21362306a36Sopenharmony_ci		.parent_data = &(const struct clk_parent_data){
21462306a36Sopenharmony_ci			.fw_name = "xo",
21562306a36Sopenharmony_ci		},
21662306a36Sopenharmony_ci		.num_parents = 1,
21762306a36Sopenharmony_ci		.ops = &clk_pll_ops,
21862306a36Sopenharmony_ci	},
21962306a36Sopenharmony_ci};
22062306a36Sopenharmony_ci
22162306a36Sopenharmony_cistatic struct clk_regmap gpll6_vote = {
22262306a36Sopenharmony_ci	.enable_reg = 0x45000,
22362306a36Sopenharmony_ci	.enable_mask = BIT(7),
22462306a36Sopenharmony_ci	.hw.init = &(struct clk_init_data){
22562306a36Sopenharmony_ci		.name = "gpll6_vote",
22662306a36Sopenharmony_ci		.parent_hws = (const struct clk_hw *[]) {
22762306a36Sopenharmony_ci			&gpll6.clkr.hw,
22862306a36Sopenharmony_ci		},
22962306a36Sopenharmony_ci		.num_parents = 1,
23062306a36Sopenharmony_ci		.ops = &clk_pll_vote_ops,
23162306a36Sopenharmony_ci	},
23262306a36Sopenharmony_ci};
23362306a36Sopenharmony_ci
23462306a36Sopenharmony_cistatic const struct parent_map gcc_parent_map_1[] = {
23562306a36Sopenharmony_ci	{ P_XO, 0 },
23662306a36Sopenharmony_ci	{ P_GPLL0_OUT_MAIN, 1 },
23762306a36Sopenharmony_ci	{ P_GPLL4_OUT, 2 },
23862306a36Sopenharmony_ci};
23962306a36Sopenharmony_ci
24062306a36Sopenharmony_cistatic const struct clk_parent_data gcc_parent_data_1[] = {
24162306a36Sopenharmony_ci	{ .fw_name = "xo" },
24262306a36Sopenharmony_ci	{ .hw = &gpll0_vote.hw },
24362306a36Sopenharmony_ci	{ .hw = &gpll4_vote.hw },
24462306a36Sopenharmony_ci};
24562306a36Sopenharmony_ci
24662306a36Sopenharmony_cistatic const struct parent_map gcc_parent_map_v1_1[] = {
24762306a36Sopenharmony_ci	{ P_XO, 0 },
24862306a36Sopenharmony_ci	{ P_GPLL0_OUT_MAIN, 1 },
24962306a36Sopenharmony_ci	{ P_GPLL2_OUT, 4 },
25062306a36Sopenharmony_ci};
25162306a36Sopenharmony_ci
25262306a36Sopenharmony_cistatic const struct clk_parent_data gcc_parent_data_v1_1[] = {
25362306a36Sopenharmony_ci	{ .fw_name = "xo" },
25462306a36Sopenharmony_ci	{ .hw = &gpll0_vote.hw },
25562306a36Sopenharmony_ci	{ .hw = &gpll2_vote.hw },
25662306a36Sopenharmony_ci};
25762306a36Sopenharmony_ci
25862306a36Sopenharmony_cistatic const struct parent_map gcc_parent_map_2[] = {
25962306a36Sopenharmony_ci	{ P_XO, 0 },
26062306a36Sopenharmony_ci	{ P_GPLL0_OUT_MAIN, 1 },
26162306a36Sopenharmony_ci	{ P_GPLL2_AUX, 3 },
26262306a36Sopenharmony_ci	{ P_GPLL4_OUT, 2 },
26362306a36Sopenharmony_ci};
26462306a36Sopenharmony_ci
26562306a36Sopenharmony_cistatic const struct clk_parent_data gcc_parent_data_2[] = {
26662306a36Sopenharmony_ci	{ .fw_name = "xo" },
26762306a36Sopenharmony_ci	{ .hw = &gpll0_vote.hw },
26862306a36Sopenharmony_ci	{ .hw = &gpll2_vote.hw },
26962306a36Sopenharmony_ci	{ .hw = &gpll4_vote.hw },
27062306a36Sopenharmony_ci};
27162306a36Sopenharmony_ci
27262306a36Sopenharmony_cistatic const struct parent_map gcc_parent_map_3[] = {
27362306a36Sopenharmony_ci	{ P_XO, 0 },
27462306a36Sopenharmony_ci	{ P_GPLL0_OUT_MAIN, 1 },
27562306a36Sopenharmony_ci	{ P_GPLL2_AUX, 3 },
27662306a36Sopenharmony_ci	{ P_GPLL6_AUX, 2 },
27762306a36Sopenharmony_ci};
27862306a36Sopenharmony_ci
27962306a36Sopenharmony_cistatic const struct clk_parent_data gcc_parent_data_3[] = {
28062306a36Sopenharmony_ci	{ .fw_name = "xo" },
28162306a36Sopenharmony_ci	{ .hw = &gpll0_vote.hw },
28262306a36Sopenharmony_ci	{ .hw = &gpll2_vote.hw },
28362306a36Sopenharmony_ci	{ .hw = &gpll6_vote.hw },
28462306a36Sopenharmony_ci};
28562306a36Sopenharmony_ci
28662306a36Sopenharmony_cistatic const struct parent_map gcc_parent_map_4[] = {
28762306a36Sopenharmony_ci	{ P_XO, 0 },
28862306a36Sopenharmony_ci	{ P_GPLL0_OUT_MAIN, 1 },
28962306a36Sopenharmony_ci};
29062306a36Sopenharmony_ci
29162306a36Sopenharmony_cistatic const struct parent_map gcc_parent_map_4_fs[] = {
29262306a36Sopenharmony_ci	{ P_XO, 0 },
29362306a36Sopenharmony_ci	{ P_GPLL0_OUT, 2 },
29462306a36Sopenharmony_ci};
29562306a36Sopenharmony_ci
29662306a36Sopenharmony_cistatic const struct parent_map gcc_parent_map_5[] = {
29762306a36Sopenharmony_ci	{ P_XO, 0 },
29862306a36Sopenharmony_ci	{ P_GPLL4_OUT, 2 },
29962306a36Sopenharmony_ci	{ P_GPLL6_OUT_MAIN, 1 },
30062306a36Sopenharmony_ci};
30162306a36Sopenharmony_ci
30262306a36Sopenharmony_cistatic const struct clk_parent_data gcc_parent_data_5[] = {
30362306a36Sopenharmony_ci	{ .fw_name = "xo" },
30462306a36Sopenharmony_ci	{ .hw = &gpll4_vote.hw },
30562306a36Sopenharmony_ci	{ .hw = &gpll6_vote.hw },
30662306a36Sopenharmony_ci};
30762306a36Sopenharmony_ci
30862306a36Sopenharmony_cistatic const struct parent_map gcc_parent_map_6[] = {
30962306a36Sopenharmony_ci	{ P_XO, 0 },
31062306a36Sopenharmony_ci	{ P_GPLL0_OUT_MAIN, 1 },
31162306a36Sopenharmony_ci	{ P_GPLL4_OUT_MAIN, 5 },
31262306a36Sopenharmony_ci};
31362306a36Sopenharmony_ci
31462306a36Sopenharmony_cistatic const struct clk_parent_data gcc_parent_data_6[] = {
31562306a36Sopenharmony_ci	{ .fw_name = "xo" },
31662306a36Sopenharmony_ci	{ .hw = &gpll0_vote.hw },
31762306a36Sopenharmony_ci	{ .hw = &gpll4_vote.hw },
31862306a36Sopenharmony_ci};
31962306a36Sopenharmony_ci
32062306a36Sopenharmony_cistatic const struct parent_map gcc_parent_map_7_mdp[] = {
32162306a36Sopenharmony_ci	{ P_XO, 0 },
32262306a36Sopenharmony_ci	{ P_GPLL6_OUT, 3 },
32362306a36Sopenharmony_ci	{ P_GPLL0_OUT_MDP, 6 },
32462306a36Sopenharmony_ci};
32562306a36Sopenharmony_ci
32662306a36Sopenharmony_cistatic const struct clk_parent_data gcc_parent_data_7_mdp[] = {
32762306a36Sopenharmony_ci	{ .fw_name = "xo" },
32862306a36Sopenharmony_ci	{ .hw = &gpll6_vote.hw },
32962306a36Sopenharmony_ci	{ .hw = &gpll0_vote.hw },
33062306a36Sopenharmony_ci};
33162306a36Sopenharmony_ci
33262306a36Sopenharmony_cistatic const struct parent_map gcc_parent_map_7[] = {
33362306a36Sopenharmony_ci	{ P_GPLL0_OUT_MAIN, 1 },
33462306a36Sopenharmony_ci	{ P_GPLL6_OUT, 3 },
33562306a36Sopenharmony_ci};
33662306a36Sopenharmony_ci
33762306a36Sopenharmony_cistatic const struct clk_hw * gcc_parent_hws_7[] = {
33862306a36Sopenharmony_ci	&gpll0_vote.hw,
33962306a36Sopenharmony_ci	&gpll6_vote.hw,
34062306a36Sopenharmony_ci};
34162306a36Sopenharmony_ci
34262306a36Sopenharmony_cistatic const struct parent_map gcc_parent_map_8[] = {
34362306a36Sopenharmony_ci	{ P_XO, 0 },
34462306a36Sopenharmony_ci	{ P_GPLL0_OUT_MAIN, 1 },
34562306a36Sopenharmony_ci};
34662306a36Sopenharmony_ci
34762306a36Sopenharmony_cistatic const struct clk_parent_data gcc_parent_data_4_8[] = {
34862306a36Sopenharmony_ci	{ .fw_name = "xo" },
34962306a36Sopenharmony_ci	{ .hw = &gpll0_vote.hw },
35062306a36Sopenharmony_ci};
35162306a36Sopenharmony_ci
35262306a36Sopenharmony_cistatic const struct parent_map gcc_parent_map_8_a[] = {
35362306a36Sopenharmony_ci	{ P_XO_A, 0 },
35462306a36Sopenharmony_ci	{ P_GPLL0_OUT_MAIN, 1 },
35562306a36Sopenharmony_ci};
35662306a36Sopenharmony_ci
35762306a36Sopenharmony_cistatic const struct clk_parent_data gcc_parent_data_8_a[] = {
35862306a36Sopenharmony_ci	{ .fw_name = "xo_a" },
35962306a36Sopenharmony_ci	{ .hw = &gpll0_vote.hw },
36062306a36Sopenharmony_ci};
36162306a36Sopenharmony_ci
36262306a36Sopenharmony_cistatic const struct parent_map gcc_parent_map_8_gp[] = {
36362306a36Sopenharmony_ci	{ P_GPLL0_OUT_MAIN, 1 },
36462306a36Sopenharmony_ci};
36562306a36Sopenharmony_ci
36662306a36Sopenharmony_cistatic const struct clk_hw *gcc_parent_hws_8_gp[] = {
36762306a36Sopenharmony_ci	&gpll0_vote.hw,
36862306a36Sopenharmony_ci};
36962306a36Sopenharmony_ci
37062306a36Sopenharmony_cistatic const struct parent_map gcc_parent_map_9[] = {
37162306a36Sopenharmony_ci	{ P_XO, 0 },
37262306a36Sopenharmony_ci	{ P_GPLL6_OUT_MAIN, 6 },
37362306a36Sopenharmony_ci};
37462306a36Sopenharmony_ci
37562306a36Sopenharmony_cistatic const struct clk_parent_data gcc_parent_data_9[] = {
37662306a36Sopenharmony_ci	{ .fw_name = "xo" },
37762306a36Sopenharmony_ci	{ .hw = &gpll6_vote.hw },
37862306a36Sopenharmony_ci};
37962306a36Sopenharmony_ci
38062306a36Sopenharmony_cistatic const struct parent_map gcc_parent_map_10[] = {
38162306a36Sopenharmony_ci	{ P_XO, 0 },
38262306a36Sopenharmony_ci};
38362306a36Sopenharmony_ci
38462306a36Sopenharmony_cistatic const struct clk_parent_data gcc_parent_data_10[] = {
38562306a36Sopenharmony_ci	{ .fw_name = "xo" },
38662306a36Sopenharmony_ci};
38762306a36Sopenharmony_ci
38862306a36Sopenharmony_cistatic const struct parent_map gcc_parent_map_sdcc_ice[] = {
38962306a36Sopenharmony_ci	{ P_XO, 0 },
39062306a36Sopenharmony_ci	{ P_GPLL0_OUT_M, 3 },
39162306a36Sopenharmony_ci};
39262306a36Sopenharmony_ci
39362306a36Sopenharmony_cistatic const struct parent_map gcc_parent_map_cci[] = {
39462306a36Sopenharmony_ci	{ P_XO, 0 },
39562306a36Sopenharmony_ci	{ P_GPLL0_AUX, 2 },
39662306a36Sopenharmony_ci};
39762306a36Sopenharmony_ci
39862306a36Sopenharmony_cistatic const struct parent_map gcc_parent_map_cpp[] = {
39962306a36Sopenharmony_ci	{ P_XO, 0 },
40062306a36Sopenharmony_ci	{ P_GPLL0_OUT_MAIN, 1 },
40162306a36Sopenharmony_ci	{ P_GPLL4_AUX, 3 },
40262306a36Sopenharmony_ci};
40362306a36Sopenharmony_ci
40462306a36Sopenharmony_cistatic const struct parent_map gcc_parent_map_mdss_pix0[] = {
40562306a36Sopenharmony_ci	{ P_XO, 0 },
40662306a36Sopenharmony_ci	{ P_DSI0PLL, 1 },
40762306a36Sopenharmony_ci};
40862306a36Sopenharmony_ci
40962306a36Sopenharmony_cistatic const struct clk_parent_data gcc_parent_data_mdss_pix0[] = {
41062306a36Sopenharmony_ci	{ .fw_name = "xo" },
41162306a36Sopenharmony_ci	{ .fw_name = "dsi0pll" },
41262306a36Sopenharmony_ci};
41362306a36Sopenharmony_ci
41462306a36Sopenharmony_cistatic const struct parent_map gcc_parent_map_mdss_pix1[] = {
41562306a36Sopenharmony_ci	{ P_XO, 0 },
41662306a36Sopenharmony_ci	{ P_DSI0PLL, 3 },
41762306a36Sopenharmony_ci	{ P_DSI1PLL, 1 },
41862306a36Sopenharmony_ci};
41962306a36Sopenharmony_ci
42062306a36Sopenharmony_cistatic const struct clk_parent_data gcc_parent_data_mdss_pix1[] = {
42162306a36Sopenharmony_ci	{ .fw_name = "xo" },
42262306a36Sopenharmony_ci	{ .fw_name = "dsi0pll" },
42362306a36Sopenharmony_ci	{ .fw_name = "dsi1pll" },
42462306a36Sopenharmony_ci};
42562306a36Sopenharmony_ci
42662306a36Sopenharmony_cistatic const struct parent_map gcc_parent_map_mdss_byte0[] = {
42762306a36Sopenharmony_ci	{ P_XO, 0 },
42862306a36Sopenharmony_ci	{ P_DSI0PLL_BYTE, 1 },
42962306a36Sopenharmony_ci};
43062306a36Sopenharmony_ci
43162306a36Sopenharmony_cistatic const struct clk_parent_data gcc_parent_data_mdss_byte0[] = {
43262306a36Sopenharmony_ci	{ .fw_name = "xo" },
43362306a36Sopenharmony_ci	{ .fw_name = "dsi0pllbyte" },
43462306a36Sopenharmony_ci};
43562306a36Sopenharmony_ci
43662306a36Sopenharmony_cistatic const struct parent_map gcc_parent_map_mdss_byte1[] = {
43762306a36Sopenharmony_ci	{ P_XO, 0 },
43862306a36Sopenharmony_ci	{ P_DSI0PLL_BYTE, 3 },
43962306a36Sopenharmony_ci	{ P_DSI1PLL_BYTE, 1 },
44062306a36Sopenharmony_ci};
44162306a36Sopenharmony_ci
44262306a36Sopenharmony_cistatic const struct clk_parent_data gcc_parent_data_mdss_byte1[] = {
44362306a36Sopenharmony_ci	{ .fw_name = "xo" },
44462306a36Sopenharmony_ci	{ .fw_name = "dsi0pllbyte" },
44562306a36Sopenharmony_ci	{ .fw_name = "dsi1pllbyte" },
44662306a36Sopenharmony_ci};
44762306a36Sopenharmony_ci
44862306a36Sopenharmony_cistatic const struct parent_map gcc_parent_map_gfx3d[] = {
44962306a36Sopenharmony_ci	{ P_XO, 0 },
45062306a36Sopenharmony_ci	{ P_GPLL0_OUT_MAIN, 1 },
45162306a36Sopenharmony_ci	{ P_GPLL4_GFX3D, 5 },
45262306a36Sopenharmony_ci	{ P_GPLL6_GFX3D, 3 },
45362306a36Sopenharmony_ci};
45462306a36Sopenharmony_ci
45562306a36Sopenharmony_cistatic const struct clk_parent_data gcc_parent_data_gfx3d[] = {
45662306a36Sopenharmony_ci	{ .fw_name = "xo" },
45762306a36Sopenharmony_ci	{ .hw = &gpll0_vote.hw },
45862306a36Sopenharmony_ci	{ .hw = &gpll4_vote.hw },
45962306a36Sopenharmony_ci	{ .hw = &gpll6_vote.hw },
46062306a36Sopenharmony_ci};
46162306a36Sopenharmony_ci
46262306a36Sopenharmony_cistatic const struct freq_tbl ftbl_aps_0_clk_src[] = {
46362306a36Sopenharmony_ci	F(19200000, P_XO, 1, 0, 0),
46462306a36Sopenharmony_ci	F(300000000, P_GPLL4_OUT, 4, 0, 0),
46562306a36Sopenharmony_ci	F(540000000, P_GPLL6_OUT_MAIN, 2, 0, 0),
46662306a36Sopenharmony_ci	{ }
46762306a36Sopenharmony_ci};
46862306a36Sopenharmony_ci
46962306a36Sopenharmony_cistatic struct clk_rcg2 aps_0_clk_src = {
47062306a36Sopenharmony_ci	.cmd_rcgr = 0x78008,
47162306a36Sopenharmony_ci	.hid_width = 5,
47262306a36Sopenharmony_ci	.parent_map = gcc_parent_map_5,
47362306a36Sopenharmony_ci	.freq_tbl = ftbl_aps_0_clk_src,
47462306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
47562306a36Sopenharmony_ci		.name = "aps_0_clk_src",
47662306a36Sopenharmony_ci		.parent_data = gcc_parent_data_5,
47762306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_5),
47862306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
47962306a36Sopenharmony_ci	},
48062306a36Sopenharmony_ci};
48162306a36Sopenharmony_ci
48262306a36Sopenharmony_cistatic const struct freq_tbl ftbl_aps_1_clk_src[] = {
48362306a36Sopenharmony_ci	F(19200000, P_XO, 1, 0, 0),
48462306a36Sopenharmony_ci	F(300000000, P_GPLL4_OUT, 4, 0, 0),
48562306a36Sopenharmony_ci	F(540000000, P_GPLL6_OUT_MAIN, 2, 0, 0),
48662306a36Sopenharmony_ci	{ }
48762306a36Sopenharmony_ci};
48862306a36Sopenharmony_ci
48962306a36Sopenharmony_cistatic struct clk_rcg2 aps_1_clk_src = {
49062306a36Sopenharmony_ci	.cmd_rcgr = 0x79008,
49162306a36Sopenharmony_ci	.hid_width = 5,
49262306a36Sopenharmony_ci	.parent_map = gcc_parent_map_5,
49362306a36Sopenharmony_ci	.freq_tbl = ftbl_aps_1_clk_src,
49462306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
49562306a36Sopenharmony_ci		.name = "aps_1_clk_src",
49662306a36Sopenharmony_ci		.parent_data = gcc_parent_data_5,
49762306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_5),
49862306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
49962306a36Sopenharmony_ci	},
50062306a36Sopenharmony_ci};
50162306a36Sopenharmony_ci
50262306a36Sopenharmony_cistatic const struct freq_tbl ftbl_apss_ahb_clk_src[] = {
50362306a36Sopenharmony_ci	F(19200000, P_XO_A, 1, 0, 0),
50462306a36Sopenharmony_ci	F(50000000, P_GPLL0_OUT_MAIN, 16, 0, 0),
50562306a36Sopenharmony_ci	F(88890000, P_GPLL0_OUT_MAIN, 9, 0, 0),
50662306a36Sopenharmony_ci	F(100000000, P_GPLL0_OUT_MAIN, 8, 0, 0),
50762306a36Sopenharmony_ci	{ }
50862306a36Sopenharmony_ci};
50962306a36Sopenharmony_ci
51062306a36Sopenharmony_cistatic struct clk_rcg2 apss_ahb_clk_src = {
51162306a36Sopenharmony_ci	.cmd_rcgr = 0x46000,
51262306a36Sopenharmony_ci	.hid_width = 5,
51362306a36Sopenharmony_ci	.parent_map = gcc_parent_map_8_a,
51462306a36Sopenharmony_ci	.freq_tbl = ftbl_apss_ahb_clk_src,
51562306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
51662306a36Sopenharmony_ci		.name = "apss_ahb_clk_src",
51762306a36Sopenharmony_ci		.parent_data = gcc_parent_data_8_a,
51862306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_8_a),
51962306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
52062306a36Sopenharmony_ci		/*
52162306a36Sopenharmony_ci		 * This clock allows the CPUs to communicate with
52262306a36Sopenharmony_ci		 * the rest of the SoC. Without it, the brain will
52362306a36Sopenharmony_ci		 * operate without the rest of the body.
52462306a36Sopenharmony_ci		 */
52562306a36Sopenharmony_ci		.flags = CLK_IS_CRITICAL,
52662306a36Sopenharmony_ci	},
52762306a36Sopenharmony_ci};
52862306a36Sopenharmony_ci
52962306a36Sopenharmony_cistatic const struct freq_tbl ftbl_blsp_i2c_apps_clk_src[] = {
53062306a36Sopenharmony_ci	F(19200000, P_XO, 1, 0, 0),
53162306a36Sopenharmony_ci	F(50000000, P_GPLL0_OUT_MAIN, 16, 0, 0),
53262306a36Sopenharmony_ci	{ }
53362306a36Sopenharmony_ci};
53462306a36Sopenharmony_ci
53562306a36Sopenharmony_cistatic struct clk_rcg2 blsp1_qup1_i2c_apps_clk_src = {
53662306a36Sopenharmony_ci	.cmd_rcgr = 0x200c,
53762306a36Sopenharmony_ci	.hid_width = 5,
53862306a36Sopenharmony_ci	.parent_map = gcc_parent_map_8,
53962306a36Sopenharmony_ci	.freq_tbl = ftbl_blsp_i2c_apps_clk_src,
54062306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
54162306a36Sopenharmony_ci		.name = "blsp1_qup1_i2c_apps_clk_src",
54262306a36Sopenharmony_ci		.parent_data = gcc_parent_data_4_8,
54362306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_4_8),
54462306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
54562306a36Sopenharmony_ci	},
54662306a36Sopenharmony_ci};
54762306a36Sopenharmony_ci
54862306a36Sopenharmony_cistatic const struct freq_tbl ftbl_blsp_spi_apps_clk_src[] = {
54962306a36Sopenharmony_ci	F(960000, P_XO, 10, 1, 2),
55062306a36Sopenharmony_ci	F(4800000, P_XO, 4, 0, 0),
55162306a36Sopenharmony_ci	F(9600000, P_XO, 2, 0, 0),
55262306a36Sopenharmony_ci	F(16000000, P_GPLL0_OUT_MAIN, 10, 1, 5),
55362306a36Sopenharmony_ci	F(19200000, P_XO, 1, 0, 0),
55462306a36Sopenharmony_ci	F(25000000, P_GPLL0_OUT_MAIN, 16, 1, 2),
55562306a36Sopenharmony_ci	F(50000000, P_GPLL0_OUT_MAIN, 16, 0, 0),
55662306a36Sopenharmony_ci	{ }
55762306a36Sopenharmony_ci};
55862306a36Sopenharmony_ci
55962306a36Sopenharmony_cistatic struct clk_rcg2 blsp1_qup1_spi_apps_clk_src = {
56062306a36Sopenharmony_ci	.cmd_rcgr = 0x2024,
56162306a36Sopenharmony_ci	.mnd_width = 8,
56262306a36Sopenharmony_ci	.hid_width = 5,
56362306a36Sopenharmony_ci	.parent_map = gcc_parent_map_8,
56462306a36Sopenharmony_ci	.freq_tbl = ftbl_blsp_spi_apps_clk_src,
56562306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
56662306a36Sopenharmony_ci		.name = "blsp1_qup1_spi_apps_clk_src",
56762306a36Sopenharmony_ci		.parent_data = gcc_parent_data_4_8,
56862306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_4_8),
56962306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
57062306a36Sopenharmony_ci	},
57162306a36Sopenharmony_ci};
57262306a36Sopenharmony_ci
57362306a36Sopenharmony_cistatic struct clk_rcg2 blsp1_qup2_i2c_apps_clk_src = {
57462306a36Sopenharmony_ci	.cmd_rcgr = 0x3000,
57562306a36Sopenharmony_ci	.hid_width = 5,
57662306a36Sopenharmony_ci	.parent_map = gcc_parent_map_8,
57762306a36Sopenharmony_ci	.freq_tbl = ftbl_blsp_i2c_apps_clk_src,
57862306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
57962306a36Sopenharmony_ci		.name = "blsp1_qup2_i2c_apps_clk_src",
58062306a36Sopenharmony_ci		.parent_data = gcc_parent_data_4_8,
58162306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_4_8),
58262306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
58362306a36Sopenharmony_ci	},
58462306a36Sopenharmony_ci};
58562306a36Sopenharmony_ci
58662306a36Sopenharmony_cistatic struct clk_rcg2 blsp1_qup2_spi_apps_clk_src = {
58762306a36Sopenharmony_ci	.cmd_rcgr = 0x3014,
58862306a36Sopenharmony_ci	.mnd_width = 8,
58962306a36Sopenharmony_ci	.hid_width = 5,
59062306a36Sopenharmony_ci	.parent_map = gcc_parent_map_8,
59162306a36Sopenharmony_ci	.freq_tbl = ftbl_blsp_spi_apps_clk_src,
59262306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
59362306a36Sopenharmony_ci		.name = "blsp1_qup2_spi_apps_clk_src",
59462306a36Sopenharmony_ci		.parent_data = gcc_parent_data_4_8,
59562306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_4_8),
59662306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
59762306a36Sopenharmony_ci	},
59862306a36Sopenharmony_ci};
59962306a36Sopenharmony_ci
60062306a36Sopenharmony_cistatic struct clk_rcg2 blsp1_qup3_i2c_apps_clk_src = {
60162306a36Sopenharmony_ci	.cmd_rcgr = 0x4000,
60262306a36Sopenharmony_ci	.hid_width = 5,
60362306a36Sopenharmony_ci	.parent_map = gcc_parent_map_8,
60462306a36Sopenharmony_ci	.freq_tbl = ftbl_blsp_i2c_apps_clk_src,
60562306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
60662306a36Sopenharmony_ci		.name = "blsp1_qup3_i2c_apps_clk_src",
60762306a36Sopenharmony_ci		.parent_data = gcc_parent_data_4_8,
60862306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_4_8),
60962306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
61062306a36Sopenharmony_ci	},
61162306a36Sopenharmony_ci};
61262306a36Sopenharmony_ci
61362306a36Sopenharmony_cistatic struct clk_rcg2 blsp1_qup3_spi_apps_clk_src = {
61462306a36Sopenharmony_ci	.cmd_rcgr = 0x4024,
61562306a36Sopenharmony_ci	.mnd_width = 8,
61662306a36Sopenharmony_ci	.hid_width = 5,
61762306a36Sopenharmony_ci	.parent_map = gcc_parent_map_8,
61862306a36Sopenharmony_ci	.freq_tbl = ftbl_blsp_spi_apps_clk_src,
61962306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
62062306a36Sopenharmony_ci		.name = "blsp1_qup3_spi_apps_clk_src",
62162306a36Sopenharmony_ci		.parent_data = gcc_parent_data_4_8,
62262306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_4_8),
62362306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
62462306a36Sopenharmony_ci	},
62562306a36Sopenharmony_ci};
62662306a36Sopenharmony_ci
62762306a36Sopenharmony_cistatic struct clk_rcg2 blsp1_qup4_i2c_apps_clk_src = {
62862306a36Sopenharmony_ci	.cmd_rcgr = 0x5000,
62962306a36Sopenharmony_ci	.hid_width = 5,
63062306a36Sopenharmony_ci	.parent_map = gcc_parent_map_8,
63162306a36Sopenharmony_ci	.freq_tbl = ftbl_blsp_i2c_apps_clk_src,
63262306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
63362306a36Sopenharmony_ci		.name = "blsp1_qup4_i2c_apps_clk_src",
63462306a36Sopenharmony_ci		.parent_data = gcc_parent_data_4_8,
63562306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_4_8),
63662306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
63762306a36Sopenharmony_ci	},
63862306a36Sopenharmony_ci};
63962306a36Sopenharmony_ci
64062306a36Sopenharmony_cistatic struct clk_rcg2 blsp1_qup4_spi_apps_clk_src = {
64162306a36Sopenharmony_ci	.cmd_rcgr = 0x5024,
64262306a36Sopenharmony_ci	.mnd_width = 8,
64362306a36Sopenharmony_ci	.hid_width = 5,
64462306a36Sopenharmony_ci	.parent_map = gcc_parent_map_8,
64562306a36Sopenharmony_ci	.freq_tbl = ftbl_blsp_spi_apps_clk_src,
64662306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
64762306a36Sopenharmony_ci		.name = "blsp1_qup4_spi_apps_clk_src",
64862306a36Sopenharmony_ci		.parent_data = gcc_parent_data_4_8,
64962306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_4_8),
65062306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
65162306a36Sopenharmony_ci	},
65262306a36Sopenharmony_ci};
65362306a36Sopenharmony_ci
65462306a36Sopenharmony_cistatic const struct freq_tbl ftbl_blsp_uart_apps_clk_src[] = {
65562306a36Sopenharmony_ci	F(3686400, P_GPLL0_OUT_MAIN, 1, 72, 15625),
65662306a36Sopenharmony_ci	F(7372800, P_GPLL0_OUT_MAIN, 1, 144, 15625),
65762306a36Sopenharmony_ci	F(14745600, P_GPLL0_OUT_MAIN, 1, 288, 15625),
65862306a36Sopenharmony_ci	F(16000000, P_GPLL0_OUT_MAIN, 10, 1, 5),
65962306a36Sopenharmony_ci	F(19200000, P_XO, 1, 0, 0),
66062306a36Sopenharmony_ci	F(24000000, P_GPLL0_OUT_MAIN, 1, 3, 100),
66162306a36Sopenharmony_ci	F(25000000, P_GPLL0_OUT_MAIN, 16, 1, 2),
66262306a36Sopenharmony_ci	F(32000000, P_GPLL0_OUT_MAIN, 1, 1, 25),
66362306a36Sopenharmony_ci	F(40000000, P_GPLL0_OUT_MAIN, 1, 1, 20),
66462306a36Sopenharmony_ci	F(46400000, P_GPLL0_OUT_MAIN, 1, 29, 500),
66562306a36Sopenharmony_ci	F(48000000, P_GPLL0_OUT_MAIN, 1, 3, 50),
66662306a36Sopenharmony_ci	F(51200000, P_GPLL0_OUT_MAIN, 1, 8, 125),
66762306a36Sopenharmony_ci	F(56000000, P_GPLL0_OUT_MAIN, 1, 7, 100),
66862306a36Sopenharmony_ci	F(58982400, P_GPLL0_OUT_MAIN, 1, 1152, 15625),
66962306a36Sopenharmony_ci	F(60000000, P_GPLL0_OUT_MAIN, 1, 3, 40),
67062306a36Sopenharmony_ci	F(64000000, P_GPLL0_OUT_MAIN, 1, 2, 25),
67162306a36Sopenharmony_ci	{ }
67262306a36Sopenharmony_ci};
67362306a36Sopenharmony_ci
67462306a36Sopenharmony_cistatic struct clk_rcg2 blsp1_uart1_apps_clk_src = {
67562306a36Sopenharmony_ci	.cmd_rcgr = 0x2044,
67662306a36Sopenharmony_ci	.mnd_width = 16,
67762306a36Sopenharmony_ci	.hid_width = 5,
67862306a36Sopenharmony_ci	.parent_map = gcc_parent_map_8,
67962306a36Sopenharmony_ci	.freq_tbl = ftbl_blsp_uart_apps_clk_src,
68062306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
68162306a36Sopenharmony_ci		.name = "blsp1_uart1_apps_clk_src",
68262306a36Sopenharmony_ci		.parent_data = gcc_parent_data_4_8,
68362306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_4_8),
68462306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
68562306a36Sopenharmony_ci	},
68662306a36Sopenharmony_ci};
68762306a36Sopenharmony_ci
68862306a36Sopenharmony_cistatic struct clk_rcg2 blsp1_uart2_apps_clk_src = {
68962306a36Sopenharmony_ci	.cmd_rcgr = 0x3034,
69062306a36Sopenharmony_ci	.mnd_width = 16,
69162306a36Sopenharmony_ci	.hid_width = 5,
69262306a36Sopenharmony_ci	.parent_map = gcc_parent_map_8,
69362306a36Sopenharmony_ci	.freq_tbl = ftbl_blsp_uart_apps_clk_src,
69462306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
69562306a36Sopenharmony_ci		.name = "blsp1_uart2_apps_clk_src",
69662306a36Sopenharmony_ci		.parent_data = gcc_parent_data_4_8,
69762306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_4_8),
69862306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
69962306a36Sopenharmony_ci	},
70062306a36Sopenharmony_ci};
70162306a36Sopenharmony_ci
70262306a36Sopenharmony_cistatic struct clk_rcg2 blsp2_qup1_i2c_apps_clk_src = {
70362306a36Sopenharmony_ci	.cmd_rcgr = 0xc00c,
70462306a36Sopenharmony_ci	.hid_width = 5,
70562306a36Sopenharmony_ci	.parent_map = gcc_parent_map_8,
70662306a36Sopenharmony_ci	.freq_tbl = ftbl_blsp_i2c_apps_clk_src,
70762306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
70862306a36Sopenharmony_ci		.name = "blsp2_qup1_i2c_apps_clk_src",
70962306a36Sopenharmony_ci		.parent_data = gcc_parent_data_4_8,
71062306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_4_8),
71162306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
71262306a36Sopenharmony_ci	},
71362306a36Sopenharmony_ci};
71462306a36Sopenharmony_ci
71562306a36Sopenharmony_cistatic struct clk_rcg2 blsp2_qup1_spi_apps_clk_src = {
71662306a36Sopenharmony_ci	.cmd_rcgr = 0xc024,
71762306a36Sopenharmony_ci	.mnd_width = 8,
71862306a36Sopenharmony_ci	.hid_width = 5,
71962306a36Sopenharmony_ci	.parent_map = gcc_parent_map_8,
72062306a36Sopenharmony_ci	.freq_tbl = ftbl_blsp_spi_apps_clk_src,
72162306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
72262306a36Sopenharmony_ci		.name = "blsp2_qup1_spi_apps_clk_src",
72362306a36Sopenharmony_ci		.parent_data = gcc_parent_data_4_8,
72462306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_4_8),
72562306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
72662306a36Sopenharmony_ci	},
72762306a36Sopenharmony_ci};
72862306a36Sopenharmony_ci
72962306a36Sopenharmony_cistatic struct clk_rcg2 blsp2_qup2_i2c_apps_clk_src = {
73062306a36Sopenharmony_ci	.cmd_rcgr = 0xd000,
73162306a36Sopenharmony_ci	.hid_width = 5,
73262306a36Sopenharmony_ci	.parent_map = gcc_parent_map_8,
73362306a36Sopenharmony_ci	.freq_tbl = ftbl_blsp_i2c_apps_clk_src,
73462306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
73562306a36Sopenharmony_ci		.name = "blsp2_qup2_i2c_apps_clk_src",
73662306a36Sopenharmony_ci		.parent_data = gcc_parent_data_4_8,
73762306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_4_8),
73862306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
73962306a36Sopenharmony_ci	},
74062306a36Sopenharmony_ci};
74162306a36Sopenharmony_ci
74262306a36Sopenharmony_cistatic struct clk_rcg2 blsp2_qup2_spi_apps_clk_src = {
74362306a36Sopenharmony_ci	.cmd_rcgr = 0xd014,
74462306a36Sopenharmony_ci	.mnd_width = 8,
74562306a36Sopenharmony_ci	.hid_width = 5,
74662306a36Sopenharmony_ci	.parent_map = gcc_parent_map_8,
74762306a36Sopenharmony_ci	.freq_tbl = ftbl_blsp_spi_apps_clk_src,
74862306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
74962306a36Sopenharmony_ci		.name = "blsp2_qup2_spi_apps_clk_src",
75062306a36Sopenharmony_ci		.parent_data = gcc_parent_data_4_8,
75162306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_4_8),
75262306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
75362306a36Sopenharmony_ci	},
75462306a36Sopenharmony_ci};
75562306a36Sopenharmony_ci
75662306a36Sopenharmony_cistatic struct clk_rcg2 blsp2_qup3_i2c_apps_clk_src = {
75762306a36Sopenharmony_ci	.cmd_rcgr = 0xf000,
75862306a36Sopenharmony_ci	.hid_width = 5,
75962306a36Sopenharmony_ci	.parent_map = gcc_parent_map_8,
76062306a36Sopenharmony_ci	.freq_tbl = ftbl_blsp_i2c_apps_clk_src,
76162306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
76262306a36Sopenharmony_ci		.name = "blsp2_qup3_i2c_apps_clk_src",
76362306a36Sopenharmony_ci		.parent_data = gcc_parent_data_4_8,
76462306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_4_8),
76562306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
76662306a36Sopenharmony_ci	},
76762306a36Sopenharmony_ci};
76862306a36Sopenharmony_ci
76962306a36Sopenharmony_cistatic struct clk_rcg2 blsp2_qup3_spi_apps_clk_src = {
77062306a36Sopenharmony_ci	.cmd_rcgr = 0xf024,
77162306a36Sopenharmony_ci	.mnd_width = 8,
77262306a36Sopenharmony_ci	.hid_width = 5,
77362306a36Sopenharmony_ci	.parent_map = gcc_parent_map_8,
77462306a36Sopenharmony_ci	.freq_tbl = ftbl_blsp_spi_apps_clk_src,
77562306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
77662306a36Sopenharmony_ci		.name = "blsp2_qup3_spi_apps_clk_src",
77762306a36Sopenharmony_ci		.parent_data = gcc_parent_data_4_8,
77862306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_4_8),
77962306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
78062306a36Sopenharmony_ci	},
78162306a36Sopenharmony_ci};
78262306a36Sopenharmony_ci
78362306a36Sopenharmony_cistatic struct clk_rcg2 blsp2_qup4_i2c_apps_clk_src = {
78462306a36Sopenharmony_ci	.cmd_rcgr = 0x18000,
78562306a36Sopenharmony_ci	.hid_width = 5,
78662306a36Sopenharmony_ci	.parent_map = gcc_parent_map_8,
78762306a36Sopenharmony_ci	.freq_tbl = ftbl_blsp_i2c_apps_clk_src,
78862306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
78962306a36Sopenharmony_ci		.name = "blsp2_qup4_i2c_apps_clk_src",
79062306a36Sopenharmony_ci		.parent_data = gcc_parent_data_4_8,
79162306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_4_8),
79262306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
79362306a36Sopenharmony_ci	},
79462306a36Sopenharmony_ci};
79562306a36Sopenharmony_ci
79662306a36Sopenharmony_cistatic struct clk_rcg2 blsp2_qup4_spi_apps_clk_src = {
79762306a36Sopenharmony_ci	.cmd_rcgr = 0x18024,
79862306a36Sopenharmony_ci	.mnd_width = 8,
79962306a36Sopenharmony_ci	.hid_width = 5,
80062306a36Sopenharmony_ci	.parent_map = gcc_parent_map_8,
80162306a36Sopenharmony_ci	.freq_tbl = ftbl_blsp_spi_apps_clk_src,
80262306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
80362306a36Sopenharmony_ci		.name = "blsp2_qup4_spi_apps_clk_src",
80462306a36Sopenharmony_ci		.parent_data = gcc_parent_data_4_8,
80562306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_4_8),
80662306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
80762306a36Sopenharmony_ci	},
80862306a36Sopenharmony_ci};
80962306a36Sopenharmony_ci
81062306a36Sopenharmony_cistatic struct clk_rcg2 blsp2_uart1_apps_clk_src = {
81162306a36Sopenharmony_ci	.cmd_rcgr = 0xc044,
81262306a36Sopenharmony_ci	.mnd_width = 16,
81362306a36Sopenharmony_ci	.hid_width = 5,
81462306a36Sopenharmony_ci	.parent_map = gcc_parent_map_8,
81562306a36Sopenharmony_ci	.freq_tbl = ftbl_blsp_uart_apps_clk_src,
81662306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
81762306a36Sopenharmony_ci		.name = "blsp2_uart1_apps_clk_src",
81862306a36Sopenharmony_ci		.parent_data = gcc_parent_data_4_8,
81962306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_4_8),
82062306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
82162306a36Sopenharmony_ci	},
82262306a36Sopenharmony_ci};
82362306a36Sopenharmony_ci
82462306a36Sopenharmony_cistatic struct clk_rcg2 blsp2_uart2_apps_clk_src = {
82562306a36Sopenharmony_ci	.cmd_rcgr = 0xd034,
82662306a36Sopenharmony_ci	.mnd_width = 16,
82762306a36Sopenharmony_ci	.hid_width = 5,
82862306a36Sopenharmony_ci	.parent_map = gcc_parent_map_8,
82962306a36Sopenharmony_ci	.freq_tbl = ftbl_blsp_uart_apps_clk_src,
83062306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
83162306a36Sopenharmony_ci		.name = "blsp2_uart2_apps_clk_src",
83262306a36Sopenharmony_ci		.parent_data = gcc_parent_data_4_8,
83362306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_4_8),
83462306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
83562306a36Sopenharmony_ci	},
83662306a36Sopenharmony_ci};
83762306a36Sopenharmony_ci
83862306a36Sopenharmony_cistatic const struct freq_tbl ftbl_cci_clk_src[] = {
83962306a36Sopenharmony_ci	F(19200000, P_XO, 1, 0, 0),
84062306a36Sopenharmony_ci	F(37500000, P_GPLL0_AUX, 1, 3, 64),
84162306a36Sopenharmony_ci	{ }
84262306a36Sopenharmony_ci};
84362306a36Sopenharmony_ci
84462306a36Sopenharmony_cistatic struct clk_rcg2 cci_clk_src = {
84562306a36Sopenharmony_ci	.cmd_rcgr = 0x51000,
84662306a36Sopenharmony_ci	.mnd_width = 8,
84762306a36Sopenharmony_ci	.hid_width = 5,
84862306a36Sopenharmony_ci	.parent_map = gcc_parent_map_cci,
84962306a36Sopenharmony_ci	.freq_tbl = ftbl_cci_clk_src,
85062306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
85162306a36Sopenharmony_ci		.name = "cci_clk_src",
85262306a36Sopenharmony_ci		.parent_data = gcc_parent_data_4_8,
85362306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_4_8),
85462306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
85562306a36Sopenharmony_ci	},
85662306a36Sopenharmony_ci};
85762306a36Sopenharmony_ci
85862306a36Sopenharmony_cistatic const struct freq_tbl ftbl_cpp_clk_src[] = {
85962306a36Sopenharmony_ci	F(160000000, P_GPLL0_OUT_MAIN, 5, 0, 0),
86062306a36Sopenharmony_ci	F(240000000, P_GPLL4_AUX, 5, 0, 0),
86162306a36Sopenharmony_ci	F(320000000, P_GPLL0_OUT_MAIN, 2.5, 0, 0),
86262306a36Sopenharmony_ci	F(400000000, P_GPLL0_OUT_MAIN, 2, 0, 0),
86362306a36Sopenharmony_ci	F(480000000, P_GPLL4_AUX, 2.5, 0, 0),
86462306a36Sopenharmony_ci	{ }
86562306a36Sopenharmony_ci};
86662306a36Sopenharmony_ci
86762306a36Sopenharmony_cistatic struct clk_rcg2 cpp_clk_src = {
86862306a36Sopenharmony_ci	.cmd_rcgr = 0x58018,
86962306a36Sopenharmony_ci	.hid_width = 5,
87062306a36Sopenharmony_ci	.parent_map = gcc_parent_map_cpp,
87162306a36Sopenharmony_ci	.freq_tbl = ftbl_cpp_clk_src,
87262306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
87362306a36Sopenharmony_ci		.name = "cpp_clk_src",
87462306a36Sopenharmony_ci		.parent_data = gcc_parent_data_6,
87562306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_6),
87662306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
87762306a36Sopenharmony_ci	},
87862306a36Sopenharmony_ci};
87962306a36Sopenharmony_ci
88062306a36Sopenharmony_cistatic const struct freq_tbl ftbl_csi0_clk_src[] = {
88162306a36Sopenharmony_ci	F(100000000, P_GPLL0_OUT_MAIN, 8, 0, 0),
88262306a36Sopenharmony_ci	F(200000000, P_GPLL0_OUT_MAIN, 4, 0, 0),
88362306a36Sopenharmony_ci	F(266670000, P_GPLL0_OUT_MAIN, 3, 0, 0),
88462306a36Sopenharmony_ci	{ }
88562306a36Sopenharmony_ci};
88662306a36Sopenharmony_ci
88762306a36Sopenharmony_cistatic struct clk_rcg2 csi0_clk_src = {
88862306a36Sopenharmony_ci	.cmd_rcgr = 0x4e020,
88962306a36Sopenharmony_ci	.hid_width = 5,
89062306a36Sopenharmony_ci	.parent_map = gcc_parent_map_8,
89162306a36Sopenharmony_ci	.freq_tbl = ftbl_csi0_clk_src,
89262306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
89362306a36Sopenharmony_ci		.name = "csi0_clk_src",
89462306a36Sopenharmony_ci		.parent_data = gcc_parent_data_4_8,
89562306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_4_8),
89662306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
89762306a36Sopenharmony_ci	},
89862306a36Sopenharmony_ci};
89962306a36Sopenharmony_ci
90062306a36Sopenharmony_cistatic const struct freq_tbl ftbl_csi1_clk_src[] = {
90162306a36Sopenharmony_ci	F(100000000, P_GPLL0_OUT_MAIN, 8, 0, 0),
90262306a36Sopenharmony_ci	F(200000000, P_GPLL0_OUT_MAIN, 4, 0, 0),
90362306a36Sopenharmony_ci	F(266670000, P_GPLL0_OUT_MAIN, 3, 0, 0),
90462306a36Sopenharmony_ci	{ }
90562306a36Sopenharmony_ci};
90662306a36Sopenharmony_ci
90762306a36Sopenharmony_cistatic struct clk_rcg2 csi1_clk_src = {
90862306a36Sopenharmony_ci	.cmd_rcgr = 0x4f020,
90962306a36Sopenharmony_ci	.hid_width = 5,
91062306a36Sopenharmony_ci	.parent_map = gcc_parent_map_8,
91162306a36Sopenharmony_ci	.freq_tbl = ftbl_csi1_clk_src,
91262306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
91362306a36Sopenharmony_ci		.name = "csi1_clk_src",
91462306a36Sopenharmony_ci		.parent_data = gcc_parent_data_4_8,
91562306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_4_8),
91662306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
91762306a36Sopenharmony_ci	},
91862306a36Sopenharmony_ci};
91962306a36Sopenharmony_ci
92062306a36Sopenharmony_cistatic const struct freq_tbl ftbl_csi2_clk_src[] = {
92162306a36Sopenharmony_ci	F(100000000, P_GPLL0_OUT_MAIN, 8, 0, 0),
92262306a36Sopenharmony_ci	F(200000000, P_GPLL0_OUT_MAIN, 4, 0, 0),
92362306a36Sopenharmony_ci	F(266670000, P_GPLL0_OUT_MAIN, 3, 0, 0),
92462306a36Sopenharmony_ci	{ }
92562306a36Sopenharmony_ci};
92662306a36Sopenharmony_ci
92762306a36Sopenharmony_cistatic struct clk_rcg2 csi2_clk_src = {
92862306a36Sopenharmony_ci	.cmd_rcgr = 0x3c020,
92962306a36Sopenharmony_ci	.hid_width = 5,
93062306a36Sopenharmony_ci	.parent_map = gcc_parent_map_8,
93162306a36Sopenharmony_ci	.freq_tbl = ftbl_csi2_clk_src,
93262306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
93362306a36Sopenharmony_ci		.name = "csi2_clk_src",
93462306a36Sopenharmony_ci		.parent_data = gcc_parent_data_4_8,
93562306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_4_8),
93662306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
93762306a36Sopenharmony_ci	},
93862306a36Sopenharmony_ci};
93962306a36Sopenharmony_ci
94062306a36Sopenharmony_cistatic const struct freq_tbl ftbl_camss_gp0_clk_src[] = {
94162306a36Sopenharmony_ci	F(100000000, P_GPLL0_OUT_MAIN, 8, 0, 0),
94262306a36Sopenharmony_ci	F(200000000, P_GPLL0_OUT_MAIN, 4, 0, 0),
94362306a36Sopenharmony_ci	F(266670000, P_GPLL0_OUT_MAIN, 3, 0, 0),
94462306a36Sopenharmony_ci	{ }
94562306a36Sopenharmony_ci};
94662306a36Sopenharmony_ci
94762306a36Sopenharmony_cistatic struct clk_rcg2 camss_gp0_clk_src = {
94862306a36Sopenharmony_ci	.cmd_rcgr = 0x54000,
94962306a36Sopenharmony_ci	.mnd_width = 8,
95062306a36Sopenharmony_ci	.hid_width = 5,
95162306a36Sopenharmony_ci	.parent_map = gcc_parent_map_8_gp,
95262306a36Sopenharmony_ci	.freq_tbl = ftbl_camss_gp0_clk_src,
95362306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
95462306a36Sopenharmony_ci		.name = "camss_gp0_clk_src",
95562306a36Sopenharmony_ci		.parent_hws = gcc_parent_hws_8_gp,
95662306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_hws_8_gp),
95762306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
95862306a36Sopenharmony_ci	},
95962306a36Sopenharmony_ci};
96062306a36Sopenharmony_ci
96162306a36Sopenharmony_cistatic const struct freq_tbl ftbl_camss_gp1_clk_src[] = {
96262306a36Sopenharmony_ci	F(100000000, P_GPLL0_OUT_MAIN, 8, 0, 0),
96362306a36Sopenharmony_ci	F(200000000, P_GPLL0_OUT_MAIN, 4, 0, 0),
96462306a36Sopenharmony_ci	F(266670000, P_GPLL0_OUT_MAIN, 3, 0, 0),
96562306a36Sopenharmony_ci	{ }
96662306a36Sopenharmony_ci};
96762306a36Sopenharmony_ci
96862306a36Sopenharmony_cistatic struct clk_rcg2 camss_gp1_clk_src = {
96962306a36Sopenharmony_ci	.cmd_rcgr = 0x55000,
97062306a36Sopenharmony_ci	.mnd_width = 8,
97162306a36Sopenharmony_ci	.hid_width = 5,
97262306a36Sopenharmony_ci	.parent_map = gcc_parent_map_8_gp,
97362306a36Sopenharmony_ci	.freq_tbl = ftbl_camss_gp1_clk_src,
97462306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
97562306a36Sopenharmony_ci		.name = "camss_gp1_clk_src",
97662306a36Sopenharmony_ci		.parent_hws = gcc_parent_hws_8_gp,
97762306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_hws_8_gp),
97862306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
97962306a36Sopenharmony_ci	},
98062306a36Sopenharmony_ci};
98162306a36Sopenharmony_ci
98262306a36Sopenharmony_cistatic const struct freq_tbl ftbl_jpeg0_clk_src[] = {
98362306a36Sopenharmony_ci	F(133330000, P_GPLL0_OUT_MAIN, 6, 0, 0),
98462306a36Sopenharmony_ci	F(200000000, P_GPLL0_OUT_MAIN, 4, 0, 0),
98562306a36Sopenharmony_ci	F(266666667, P_GPLL0_OUT_MAIN, 3, 0, 0),
98662306a36Sopenharmony_ci	F(320000000, P_GPLL0_OUT_MAIN, 2.5, 0, 0),
98762306a36Sopenharmony_ci	{ }
98862306a36Sopenharmony_ci};
98962306a36Sopenharmony_ci
99062306a36Sopenharmony_cistatic struct clk_rcg2 jpeg0_clk_src = {
99162306a36Sopenharmony_ci	.cmd_rcgr = 0x57000,
99262306a36Sopenharmony_ci	.hid_width = 5,
99362306a36Sopenharmony_ci	.parent_map = gcc_parent_map_6,
99462306a36Sopenharmony_ci	.freq_tbl = ftbl_jpeg0_clk_src,
99562306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
99662306a36Sopenharmony_ci		.name = "jpeg0_clk_src",
99762306a36Sopenharmony_ci		.parent_data = gcc_parent_data_6,
99862306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_6),
99962306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
100062306a36Sopenharmony_ci	},
100162306a36Sopenharmony_ci};
100262306a36Sopenharmony_ci
100362306a36Sopenharmony_cistatic const struct freq_tbl ftbl_mclk_clk_src[] = {
100462306a36Sopenharmony_ci	F(8000000, P_GPLL0_OUT_MAIN, 1, 1, 100),
100562306a36Sopenharmony_ci	F(24000000, P_GPLL6_OUT, 1, 1, 45),
100662306a36Sopenharmony_ci	F(66670000, P_GPLL0_OUT_MAIN, 12, 0, 0),
100762306a36Sopenharmony_ci	{ }
100862306a36Sopenharmony_ci};
100962306a36Sopenharmony_ci
101062306a36Sopenharmony_cistatic struct clk_rcg2 mclk0_clk_src = {
101162306a36Sopenharmony_ci	.cmd_rcgr = 0x52000,
101262306a36Sopenharmony_ci	.mnd_width = 8,
101362306a36Sopenharmony_ci	.hid_width = 5,
101462306a36Sopenharmony_ci	.parent_map = gcc_parent_map_7,
101562306a36Sopenharmony_ci	.freq_tbl = ftbl_mclk_clk_src,
101662306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
101762306a36Sopenharmony_ci		.name = "mclk0_clk_src",
101862306a36Sopenharmony_ci		.parent_hws = gcc_parent_hws_7,
101962306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_hws_7),
102062306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
102162306a36Sopenharmony_ci	},
102262306a36Sopenharmony_ci};
102362306a36Sopenharmony_ci
102462306a36Sopenharmony_cistatic struct clk_rcg2 mclk1_clk_src = {
102562306a36Sopenharmony_ci	.cmd_rcgr = 0x53000,
102662306a36Sopenharmony_ci	.mnd_width = 8,
102762306a36Sopenharmony_ci	.hid_width = 5,
102862306a36Sopenharmony_ci	.parent_map = gcc_parent_map_7,
102962306a36Sopenharmony_ci	.freq_tbl = ftbl_mclk_clk_src,
103062306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
103162306a36Sopenharmony_ci		.name = "mclk1_clk_src",
103262306a36Sopenharmony_ci		.parent_hws = gcc_parent_hws_7,
103362306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_hws_7),
103462306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
103562306a36Sopenharmony_ci	},
103662306a36Sopenharmony_ci};
103762306a36Sopenharmony_ci
103862306a36Sopenharmony_cistatic struct clk_rcg2 mclk2_clk_src = {
103962306a36Sopenharmony_ci	.cmd_rcgr = 0x5c000,
104062306a36Sopenharmony_ci	.mnd_width = 8,
104162306a36Sopenharmony_ci	.hid_width = 5,
104262306a36Sopenharmony_ci	.parent_map = gcc_parent_map_7,
104362306a36Sopenharmony_ci	.freq_tbl = ftbl_mclk_clk_src,
104462306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
104562306a36Sopenharmony_ci		.name = "mclk2_clk_src",
104662306a36Sopenharmony_ci		.parent_hws = gcc_parent_hws_7,
104762306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_hws_7),
104862306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
104962306a36Sopenharmony_ci	},
105062306a36Sopenharmony_ci};
105162306a36Sopenharmony_ci
105262306a36Sopenharmony_cistatic const struct freq_tbl ftbl_csi0phytimer_clk_src[] = {
105362306a36Sopenharmony_ci	F(100000000, P_GPLL0_OUT_MAIN, 8, 0, 0),
105462306a36Sopenharmony_ci	F(200000000, P_GPLL0_OUT_MAIN, 4, 0, 0),
105562306a36Sopenharmony_ci	F(266670000, P_GPLL0_OUT_MAIN, 3, 0, 0),
105662306a36Sopenharmony_ci	{ }
105762306a36Sopenharmony_ci};
105862306a36Sopenharmony_ci
105962306a36Sopenharmony_cistatic struct clk_rcg2 csi0phytimer_clk_src = {
106062306a36Sopenharmony_ci	.cmd_rcgr = 0x4e000,
106162306a36Sopenharmony_ci	.hid_width = 5,
106262306a36Sopenharmony_ci	.parent_map = gcc_parent_map_8,
106362306a36Sopenharmony_ci	.freq_tbl = ftbl_csi0phytimer_clk_src,
106462306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
106562306a36Sopenharmony_ci		.name = "csi0phytimer_clk_src",
106662306a36Sopenharmony_ci		.parent_data = gcc_parent_data_4_8,
106762306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_4_8),
106862306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
106962306a36Sopenharmony_ci	},
107062306a36Sopenharmony_ci};
107162306a36Sopenharmony_ci
107262306a36Sopenharmony_cistatic const struct freq_tbl ftbl_csi1phytimer_clk_src[] = {
107362306a36Sopenharmony_ci	F(100000000, P_GPLL0_OUT_MAIN, 8, 0, 0),
107462306a36Sopenharmony_ci	F(200000000, P_GPLL0_OUT_MAIN, 4, 0, 0),
107562306a36Sopenharmony_ci	F(266670000, P_GPLL0_OUT_MAIN, 3, 0, 0),
107662306a36Sopenharmony_ci	{ }
107762306a36Sopenharmony_ci};
107862306a36Sopenharmony_ci
107962306a36Sopenharmony_cistatic struct clk_rcg2 csi1phytimer_clk_src = {
108062306a36Sopenharmony_ci	.cmd_rcgr = 0x4f000,
108162306a36Sopenharmony_ci	.hid_width = 5,
108262306a36Sopenharmony_ci	.parent_map = gcc_parent_map_8,
108362306a36Sopenharmony_ci	.freq_tbl = ftbl_csi1phytimer_clk_src,
108462306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
108562306a36Sopenharmony_ci		.name = "csi1phytimer_clk_src",
108662306a36Sopenharmony_ci		.parent_data = gcc_parent_data_4_8,
108762306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_4_8),
108862306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
108962306a36Sopenharmony_ci	},
109062306a36Sopenharmony_ci};
109162306a36Sopenharmony_ci
109262306a36Sopenharmony_cistatic const struct freq_tbl ftbl_camss_top_ahb_clk_src[] = {
109362306a36Sopenharmony_ci	F(40000000, P_GPLL0_OUT_MAIN, 10, 1, 2),
109462306a36Sopenharmony_ci	F(80000000, P_GPLL0_OUT_MAIN, 10, 0, 0),
109562306a36Sopenharmony_ci	{ }
109662306a36Sopenharmony_ci};
109762306a36Sopenharmony_ci
109862306a36Sopenharmony_cistatic struct clk_rcg2 camss_top_ahb_clk_src = {
109962306a36Sopenharmony_ci	.cmd_rcgr = 0x5a000,
110062306a36Sopenharmony_ci	.mnd_width = 8,
110162306a36Sopenharmony_ci	.hid_width = 5,
110262306a36Sopenharmony_ci	.parent_map = gcc_parent_map_8,
110362306a36Sopenharmony_ci	.freq_tbl = ftbl_camss_top_ahb_clk_src,
110462306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
110562306a36Sopenharmony_ci		.name = "camss_top_ahb_clk_src",
110662306a36Sopenharmony_ci		.parent_data = gcc_parent_data_4_8,
110762306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_4_8),
110862306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
110962306a36Sopenharmony_ci	},
111062306a36Sopenharmony_ci};
111162306a36Sopenharmony_ci
111262306a36Sopenharmony_cistatic const struct freq_tbl ftbl_vfe0_clk_src[] = {
111362306a36Sopenharmony_ci	F(50000000, P_GPLL0_OUT_MAIN, 16, 0, 0),
111462306a36Sopenharmony_ci	F(80000000, P_GPLL0_OUT_MAIN, 10, 0, 0),
111562306a36Sopenharmony_ci	F(100000000, P_GPLL0_OUT_MAIN, 8, 0, 0),
111662306a36Sopenharmony_ci	F(133333333, P_GPLL0_OUT_MAIN, 6, 0, 0),
111762306a36Sopenharmony_ci	F(160000000, P_GPLL0_OUT_MAIN, 5, 0, 0),
111862306a36Sopenharmony_ci	F(177777778, P_GPLL0_OUT_MAIN, 4.5, 0, 0),
111962306a36Sopenharmony_ci	F(200000000, P_GPLL0_OUT_MAIN, 4, 0, 0),
112062306a36Sopenharmony_ci	F(266666667, P_GPLL0_OUT_MAIN, 3, 0, 0),
112162306a36Sopenharmony_ci	F(300000000, P_GPLL4_OUT, 4, 0, 0),
112262306a36Sopenharmony_ci	F(320000000, P_GPLL0_OUT_MAIN, 2.5, 0, 0),
112362306a36Sopenharmony_ci	F(466000000, P_GPLL2_AUX, 2, 0, 0),
112462306a36Sopenharmony_ci	{ }
112562306a36Sopenharmony_ci};
112662306a36Sopenharmony_ci
112762306a36Sopenharmony_cistatic struct clk_rcg2 vfe0_clk_src = {
112862306a36Sopenharmony_ci	.cmd_rcgr = 0x58000,
112962306a36Sopenharmony_ci	.hid_width = 5,
113062306a36Sopenharmony_ci	.parent_map = gcc_parent_map_2,
113162306a36Sopenharmony_ci	.freq_tbl = ftbl_vfe0_clk_src,
113262306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
113362306a36Sopenharmony_ci		.name = "vfe0_clk_src",
113462306a36Sopenharmony_ci		.parent_data = gcc_parent_data_2,
113562306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_2),
113662306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
113762306a36Sopenharmony_ci	},
113862306a36Sopenharmony_ci};
113962306a36Sopenharmony_ci
114062306a36Sopenharmony_cistatic const struct freq_tbl ftbl_vfe1_clk_src[] = {
114162306a36Sopenharmony_ci	F(50000000, P_GPLL0_OUT_MAIN, 16, 0, 0),
114262306a36Sopenharmony_ci	F(80000000, P_GPLL0_OUT_MAIN, 10, 0, 0),
114362306a36Sopenharmony_ci	F(100000000, P_GPLL0_OUT_MAIN, 8, 0, 0),
114462306a36Sopenharmony_ci	F(133333333, P_GPLL0_OUT_MAIN, 6, 0, 0),
114562306a36Sopenharmony_ci	F(160000000, P_GPLL0_OUT_MAIN, 5, 0, 0),
114662306a36Sopenharmony_ci	F(177777778, P_GPLL0_OUT_MAIN, 4.5, 0, 0),
114762306a36Sopenharmony_ci	F(200000000, P_GPLL0_OUT_MAIN, 4, 0, 0),
114862306a36Sopenharmony_ci	F(266666667, P_GPLL0_OUT_MAIN, 3, 0, 0),
114962306a36Sopenharmony_ci	F(300000000, P_GPLL4_OUT, 4, 0, 0),
115062306a36Sopenharmony_ci	F(320000000, P_GPLL0_OUT_MAIN, 2.5, 0, 0),
115162306a36Sopenharmony_ci	F(466000000, P_GPLL2_AUX, 2, 0, 0),
115262306a36Sopenharmony_ci	{ }
115362306a36Sopenharmony_ci};
115462306a36Sopenharmony_ci
115562306a36Sopenharmony_cistatic struct clk_rcg2 vfe1_clk_src = {
115662306a36Sopenharmony_ci	.cmd_rcgr = 0x58054,
115762306a36Sopenharmony_ci	.hid_width = 5,
115862306a36Sopenharmony_ci	.parent_map = gcc_parent_map_2,
115962306a36Sopenharmony_ci	.freq_tbl = ftbl_vfe1_clk_src,
116062306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
116162306a36Sopenharmony_ci		.name = "vfe1_clk_src",
116262306a36Sopenharmony_ci		.parent_data = gcc_parent_data_2,
116362306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_2),
116462306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
116562306a36Sopenharmony_ci	},
116662306a36Sopenharmony_ci};
116762306a36Sopenharmony_ci
116862306a36Sopenharmony_cistatic const struct freq_tbl ftbl_crypto_clk_src[] = {
116962306a36Sopenharmony_ci	F(50000000, P_GPLL0_OUT_MAIN, 16, 0, 0),
117062306a36Sopenharmony_ci	F(80000000, P_GPLL0_OUT_MAIN, 10, 0, 0),
117162306a36Sopenharmony_ci	F(100000000, P_GPLL0_OUT_MAIN, 8, 0, 0),
117262306a36Sopenharmony_ci	F(160000000, P_GPLL0_OUT_MAIN, 5, 0, 0),
117362306a36Sopenharmony_ci	{ }
117462306a36Sopenharmony_ci};
117562306a36Sopenharmony_ci
117662306a36Sopenharmony_cistatic struct clk_rcg2 crypto_clk_src = {
117762306a36Sopenharmony_ci	.cmd_rcgr = 0x16004,
117862306a36Sopenharmony_ci	.hid_width = 5,
117962306a36Sopenharmony_ci	.parent_map = gcc_parent_map_8,
118062306a36Sopenharmony_ci	.freq_tbl = ftbl_crypto_clk_src,
118162306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
118262306a36Sopenharmony_ci		.name = "crypto_clk_src",
118362306a36Sopenharmony_ci		.parent_data = gcc_parent_data_4_8,
118462306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_4_8),
118562306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
118662306a36Sopenharmony_ci	},
118762306a36Sopenharmony_ci};
118862306a36Sopenharmony_ci
118962306a36Sopenharmony_cistatic const struct freq_tbl ftbl_gp1_clk_src[] = {
119062306a36Sopenharmony_ci	F(19200000, P_XO, 1, 0, 0),
119162306a36Sopenharmony_ci	{ }
119262306a36Sopenharmony_ci};
119362306a36Sopenharmony_ci
119462306a36Sopenharmony_cistatic struct clk_rcg2 gp1_clk_src = {
119562306a36Sopenharmony_ci	.cmd_rcgr = 0x8004,
119662306a36Sopenharmony_ci	.mnd_width = 8,
119762306a36Sopenharmony_ci	.hid_width = 5,
119862306a36Sopenharmony_ci	.parent_map = gcc_parent_map_8_gp,
119962306a36Sopenharmony_ci	.freq_tbl = ftbl_gp1_clk_src,
120062306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
120162306a36Sopenharmony_ci		.name = "gp1_clk_src",
120262306a36Sopenharmony_ci		.parent_hws = (const struct clk_hw *[]) {
120362306a36Sopenharmony_ci			&gpll0_vote.hw,
120462306a36Sopenharmony_ci		},
120562306a36Sopenharmony_ci		.num_parents = 1,
120662306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
120762306a36Sopenharmony_ci	},
120862306a36Sopenharmony_ci};
120962306a36Sopenharmony_ci
121062306a36Sopenharmony_cistatic const struct freq_tbl ftbl_gp2_clk_src[] = {
121162306a36Sopenharmony_ci	F(19200000, P_XO, 1, 0, 0),
121262306a36Sopenharmony_ci	{ }
121362306a36Sopenharmony_ci};
121462306a36Sopenharmony_ci
121562306a36Sopenharmony_cistatic struct clk_rcg2 gp2_clk_src = {
121662306a36Sopenharmony_ci	.cmd_rcgr = 0x9004,
121762306a36Sopenharmony_ci	.mnd_width = 8,
121862306a36Sopenharmony_ci	.hid_width = 5,
121962306a36Sopenharmony_ci	.parent_map = gcc_parent_map_8_gp,
122062306a36Sopenharmony_ci	.freq_tbl = ftbl_gp2_clk_src,
122162306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
122262306a36Sopenharmony_ci		.name = "gp2_clk_src",
122362306a36Sopenharmony_ci		.parent_hws = (const struct clk_hw *[]) {
122462306a36Sopenharmony_ci			&gpll0_vote.hw,
122562306a36Sopenharmony_ci		},
122662306a36Sopenharmony_ci		.num_parents = 1,
122762306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
122862306a36Sopenharmony_ci	},
122962306a36Sopenharmony_ci};
123062306a36Sopenharmony_ci
123162306a36Sopenharmony_cistatic const struct freq_tbl ftbl_gp3_clk_src[] = {
123262306a36Sopenharmony_ci	F(19200000, P_XO, 1, 0, 0),
123362306a36Sopenharmony_ci	{ }
123462306a36Sopenharmony_ci};
123562306a36Sopenharmony_ci
123662306a36Sopenharmony_cistatic struct clk_rcg2 gp3_clk_src = {
123762306a36Sopenharmony_ci	.cmd_rcgr = 0xa004,
123862306a36Sopenharmony_ci	.mnd_width = 8,
123962306a36Sopenharmony_ci	.hid_width = 5,
124062306a36Sopenharmony_ci	.parent_map = gcc_parent_map_8_gp,
124162306a36Sopenharmony_ci	.freq_tbl = ftbl_gp3_clk_src,
124262306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
124362306a36Sopenharmony_ci		.name = "gp3_clk_src",
124462306a36Sopenharmony_ci		.parent_hws = (const struct clk_hw *[]) {
124562306a36Sopenharmony_ci			&gpll0_vote.hw,
124662306a36Sopenharmony_ci		},
124762306a36Sopenharmony_ci		.num_parents = 1,
124862306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
124962306a36Sopenharmony_ci	},
125062306a36Sopenharmony_ci};
125162306a36Sopenharmony_ci
125262306a36Sopenharmony_cistatic struct clk_rcg2 byte0_clk_src = {
125362306a36Sopenharmony_ci	.cmd_rcgr = 0x4d044,
125462306a36Sopenharmony_ci	.mnd_width = 0,
125562306a36Sopenharmony_ci	.hid_width = 5,
125662306a36Sopenharmony_ci	.parent_map = gcc_parent_map_mdss_byte0,
125762306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
125862306a36Sopenharmony_ci		.name = "byte0_clk_src",
125962306a36Sopenharmony_ci		.parent_data = gcc_parent_data_mdss_byte0,
126062306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_mdss_byte0),
126162306a36Sopenharmony_ci		.ops = &clk_byte2_ops,
126262306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
126362306a36Sopenharmony_ci	},
126462306a36Sopenharmony_ci};
126562306a36Sopenharmony_ci
126662306a36Sopenharmony_cistatic struct clk_rcg2 byte1_clk_src = {
126762306a36Sopenharmony_ci	.cmd_rcgr = 0x4d0b0,
126862306a36Sopenharmony_ci	.mnd_width = 0,
126962306a36Sopenharmony_ci	.hid_width = 5,
127062306a36Sopenharmony_ci	.parent_map = gcc_parent_map_mdss_byte1,
127162306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
127262306a36Sopenharmony_ci		.name = "byte1_clk_src",
127362306a36Sopenharmony_ci		.parent_data = gcc_parent_data_mdss_byte1,
127462306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_mdss_byte1),
127562306a36Sopenharmony_ci		.ops = &clk_byte2_ops,
127662306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
127762306a36Sopenharmony_ci	},
127862306a36Sopenharmony_ci};
127962306a36Sopenharmony_ci
128062306a36Sopenharmony_cistatic const struct freq_tbl ftbl_esc0_1_clk_src[] = {
128162306a36Sopenharmony_ci	F(19200000, P_XO, 1, 0, 0),
128262306a36Sopenharmony_ci	{ }
128362306a36Sopenharmony_ci};
128462306a36Sopenharmony_ci
128562306a36Sopenharmony_cistatic struct clk_rcg2 esc0_clk_src = {
128662306a36Sopenharmony_ci	.cmd_rcgr = 0x4d05c,
128762306a36Sopenharmony_ci	.hid_width = 5,
128862306a36Sopenharmony_ci	.freq_tbl = ftbl_esc0_1_clk_src,
128962306a36Sopenharmony_ci	.parent_map = gcc_parent_map_mdss_byte0,
129062306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
129162306a36Sopenharmony_ci		.name = "esc0_clk_src",
129262306a36Sopenharmony_ci		.parent_data = gcc_parent_data_mdss_byte0,
129362306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_mdss_byte0),
129462306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
129562306a36Sopenharmony_ci	},
129662306a36Sopenharmony_ci};
129762306a36Sopenharmony_ci
129862306a36Sopenharmony_cistatic struct clk_rcg2 esc1_clk_src = {
129962306a36Sopenharmony_ci	.cmd_rcgr = 0x4d0a8,
130062306a36Sopenharmony_ci	.hid_width = 5,
130162306a36Sopenharmony_ci	.freq_tbl = ftbl_esc0_1_clk_src,
130262306a36Sopenharmony_ci	.parent_map = gcc_parent_map_mdss_byte1,
130362306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
130462306a36Sopenharmony_ci		.name = "esc1_clk_src",
130562306a36Sopenharmony_ci		.parent_data = gcc_parent_data_mdss_byte1,
130662306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_mdss_byte1),
130762306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
130862306a36Sopenharmony_ci	},
130962306a36Sopenharmony_ci};
131062306a36Sopenharmony_ci
131162306a36Sopenharmony_cistatic const struct freq_tbl ftbl_mdp_clk_src[] = {
131262306a36Sopenharmony_ci	F(50000000, P_GPLL0_OUT_MDP, 16, 0, 0),
131362306a36Sopenharmony_ci	F(80000000, P_GPLL0_OUT_MDP, 10, 0, 0),
131462306a36Sopenharmony_ci	F(100000000, P_GPLL0_OUT_MDP, 8, 0, 0),
131562306a36Sopenharmony_ci	F(145454545, P_GPLL0_OUT_MDP, 5.5, 0, 0),
131662306a36Sopenharmony_ci	F(160000000, P_GPLL0_OUT_MDP, 5, 0, 0),
131762306a36Sopenharmony_ci	F(177777778, P_GPLL0_OUT_MDP, 4.5, 0, 0),
131862306a36Sopenharmony_ci	F(200000000, P_GPLL0_OUT_MDP, 4, 0, 0),
131962306a36Sopenharmony_ci	F(270000000, P_GPLL6_OUT, 4, 0, 0),
132062306a36Sopenharmony_ci	F(320000000, P_GPLL0_OUT_MDP, 2.5, 0, 0),
132162306a36Sopenharmony_ci	F(360000000, P_GPLL6_OUT, 3, 0, 0),
132262306a36Sopenharmony_ci	{ }
132362306a36Sopenharmony_ci};
132462306a36Sopenharmony_ci
132562306a36Sopenharmony_cistatic struct clk_rcg2 mdp_clk_src = {
132662306a36Sopenharmony_ci	.cmd_rcgr = 0x4d014,
132762306a36Sopenharmony_ci	.hid_width = 5,
132862306a36Sopenharmony_ci	.parent_map = gcc_parent_map_7_mdp,
132962306a36Sopenharmony_ci	.freq_tbl = ftbl_mdp_clk_src,
133062306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
133162306a36Sopenharmony_ci		.name = "mdp_clk_src",
133262306a36Sopenharmony_ci		.parent_data = gcc_parent_data_7_mdp,
133362306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_7_mdp),
133462306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
133562306a36Sopenharmony_ci	},
133662306a36Sopenharmony_ci};
133762306a36Sopenharmony_ci
133862306a36Sopenharmony_cistatic struct clk_rcg2 pclk0_clk_src = {
133962306a36Sopenharmony_ci	.cmd_rcgr = 0x4d000,
134062306a36Sopenharmony_ci	.mnd_width = 8,
134162306a36Sopenharmony_ci	.hid_width = 5,
134262306a36Sopenharmony_ci	.parent_map = gcc_parent_map_mdss_pix0,
134362306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
134462306a36Sopenharmony_ci		.name = "pclk0_clk_src",
134562306a36Sopenharmony_ci		.parent_data = gcc_parent_data_mdss_pix0,
134662306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_mdss_pix0),
134762306a36Sopenharmony_ci		.ops = &clk_pixel_ops,
134862306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
134962306a36Sopenharmony_ci	},
135062306a36Sopenharmony_ci};
135162306a36Sopenharmony_ci
135262306a36Sopenharmony_cistatic struct clk_rcg2 pclk1_clk_src = {
135362306a36Sopenharmony_ci	.cmd_rcgr = 0x4d0b8,
135462306a36Sopenharmony_ci	.mnd_width = 8,
135562306a36Sopenharmony_ci	.hid_width = 5,
135662306a36Sopenharmony_ci	.parent_map = gcc_parent_map_mdss_pix1,
135762306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
135862306a36Sopenharmony_ci		.name = "pclk1_clk_src",
135962306a36Sopenharmony_ci		.parent_data = gcc_parent_data_mdss_pix1,
136062306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_mdss_pix1),
136162306a36Sopenharmony_ci		.ops = &clk_pixel_ops,
136262306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
136362306a36Sopenharmony_ci	},
136462306a36Sopenharmony_ci};
136562306a36Sopenharmony_ci
136662306a36Sopenharmony_cistatic const struct freq_tbl ftbl_vsync_clk_src[] = {
136762306a36Sopenharmony_ci	F(19200000, P_XO, 1, 0, 0),
136862306a36Sopenharmony_ci	{ }
136962306a36Sopenharmony_ci};
137062306a36Sopenharmony_ci
137162306a36Sopenharmony_cistatic struct clk_rcg2 vsync_clk_src = {
137262306a36Sopenharmony_ci	.cmd_rcgr = 0x4d02c,
137362306a36Sopenharmony_ci	.hid_width = 5,
137462306a36Sopenharmony_ci	.parent_map = gcc_parent_map_10,
137562306a36Sopenharmony_ci	.freq_tbl = ftbl_vsync_clk_src,
137662306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
137762306a36Sopenharmony_ci		.name = "vsync_clk_src",
137862306a36Sopenharmony_ci		.parent_data = gcc_parent_data_10,
137962306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_10),
138062306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
138162306a36Sopenharmony_ci	},
138262306a36Sopenharmony_ci};
138362306a36Sopenharmony_ci
138462306a36Sopenharmony_cistatic const struct freq_tbl ftbl_gfx3d_clk_src[] = {
138562306a36Sopenharmony_ci	F(19200000, P_XO, 1, 0, 0),
138662306a36Sopenharmony_ci	F(50000000, P_GPLL0_OUT_MAIN, 16, 0, 0),
138762306a36Sopenharmony_ci	F(80000000, P_GPLL0_OUT_MAIN, 10, 0, 0),
138862306a36Sopenharmony_ci	F(100000000, P_GPLL0_OUT_MAIN, 8, 0, 0),
138962306a36Sopenharmony_ci	F(133333333, P_GPLL0_OUT_MAIN, 6, 0, 0),
139062306a36Sopenharmony_ci	F(160000000, P_GPLL0_OUT_MAIN, 5, 0, 0),
139162306a36Sopenharmony_ci	F(200000000, P_GPLL0_OUT_MAIN, 4, 0, 0),
139262306a36Sopenharmony_ci	F(228571429, P_GPLL0_OUT_MAIN, 3.5, 0, 0),
139362306a36Sopenharmony_ci	F(240000000, P_GPLL6_GFX3D, 4.5, 0, 0),
139462306a36Sopenharmony_ci	F(266666667, P_GPLL0_OUT_MAIN, 3, 0, 0),
139562306a36Sopenharmony_ci	F(300000000, P_GPLL4_GFX3D, 4, 0, 0),
139662306a36Sopenharmony_ci	F(360000000, P_GPLL6_GFX3D, 3, 0, 0),
139762306a36Sopenharmony_ci	F(400000000, P_GPLL0_OUT_MAIN, 2, 0, 0),
139862306a36Sopenharmony_ci	F(432000000, P_GPLL6_GFX3D, 2.5, 0, 0),
139962306a36Sopenharmony_ci	F(480000000, P_GPLL4_GFX3D, 2.5, 0, 0),
140062306a36Sopenharmony_ci	F(540000000, P_GPLL6_GFX3D, 2, 0, 0),
140162306a36Sopenharmony_ci	F(600000000, P_GPLL4_GFX3D, 2, 0, 0),
140262306a36Sopenharmony_ci	{ }
140362306a36Sopenharmony_ci};
140462306a36Sopenharmony_ci
140562306a36Sopenharmony_cistatic const struct clk_init_data gfx3d_clk_params = {
140662306a36Sopenharmony_ci	.name = "gfx3d_clk_src",
140762306a36Sopenharmony_ci	.parent_data = gcc_parent_data_gfx3d,
140862306a36Sopenharmony_ci	.num_parents = ARRAY_SIZE(gcc_parent_data_gfx3d),
140962306a36Sopenharmony_ci	.ops = &clk_rcg2_ops,
141062306a36Sopenharmony_ci};
141162306a36Sopenharmony_ci
141262306a36Sopenharmony_cistatic struct clk_rcg2 gfx3d_clk_src = {
141362306a36Sopenharmony_ci	.cmd_rcgr = 0x59000,
141462306a36Sopenharmony_ci	.hid_width = 5,
141562306a36Sopenharmony_ci	.parent_map = gcc_parent_map_gfx3d,
141662306a36Sopenharmony_ci	.freq_tbl = ftbl_gfx3d_clk_src,
141762306a36Sopenharmony_ci	.clkr.hw.init = &gfx3d_clk_params,
141862306a36Sopenharmony_ci};
141962306a36Sopenharmony_ci
142062306a36Sopenharmony_cistatic const struct freq_tbl ftbl_pdm2_clk_src[] = {
142162306a36Sopenharmony_ci	F(64000000, P_GPLL0_OUT_MAIN, 12.5, 0, 0),
142262306a36Sopenharmony_ci	{ }
142362306a36Sopenharmony_ci};
142462306a36Sopenharmony_ci
142562306a36Sopenharmony_cistatic struct clk_rcg2 pdm2_clk_src = {
142662306a36Sopenharmony_ci	.cmd_rcgr = 0x44010,
142762306a36Sopenharmony_ci	.hid_width = 5,
142862306a36Sopenharmony_ci	.parent_map = gcc_parent_map_8,
142962306a36Sopenharmony_ci	.freq_tbl = ftbl_pdm2_clk_src,
143062306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
143162306a36Sopenharmony_ci		.name = "pdm2_clk_src",
143262306a36Sopenharmony_ci		.parent_data = gcc_parent_data_4_8,
143362306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_4_8),
143462306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
143562306a36Sopenharmony_ci	},
143662306a36Sopenharmony_ci};
143762306a36Sopenharmony_ci
143862306a36Sopenharmony_cistatic const struct freq_tbl ftbl_rbcpr_gfx_clk_src[] = {
143962306a36Sopenharmony_ci	F(19200000, P_XO, 1, 0, 0),
144062306a36Sopenharmony_ci	F(50000000, P_GPLL0_OUT_MAIN, 16, 0, 0),
144162306a36Sopenharmony_ci	{ }
144262306a36Sopenharmony_ci};
144362306a36Sopenharmony_ci
144462306a36Sopenharmony_cistatic struct clk_rcg2 rbcpr_gfx_clk_src = {
144562306a36Sopenharmony_ci	.cmd_rcgr = 0x3a00c,
144662306a36Sopenharmony_ci	.hid_width = 5,
144762306a36Sopenharmony_ci	.parent_map = gcc_parent_map_8,
144862306a36Sopenharmony_ci	.freq_tbl = ftbl_rbcpr_gfx_clk_src,
144962306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
145062306a36Sopenharmony_ci		.name = "rbcpr_gfx_clk_src",
145162306a36Sopenharmony_ci		.parent_data = gcc_parent_data_4_8,
145262306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_4_8),
145362306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
145462306a36Sopenharmony_ci	},
145562306a36Sopenharmony_ci};
145662306a36Sopenharmony_ci
145762306a36Sopenharmony_cistatic const struct freq_tbl ftbl_sdcc1_apps_clk_src[] = {
145862306a36Sopenharmony_ci	F(144000, P_XO, 16, 3, 25),
145962306a36Sopenharmony_ci	F(400000, P_XO, 12, 1, 4),
146062306a36Sopenharmony_ci	F(20000000, P_GPLL0_OUT_MAIN, 10, 1, 4),
146162306a36Sopenharmony_ci	F(25000000, P_GPLL0_OUT_MAIN, 16, 1, 2),
146262306a36Sopenharmony_ci	F(50000000, P_GPLL0_OUT_MAIN, 16, 0, 0),
146362306a36Sopenharmony_ci	F(100000000, P_GPLL0_OUT_MAIN, 8, 0, 0),
146462306a36Sopenharmony_ci	F(177777778, P_GPLL0_OUT_MAIN, 4.5, 0, 0),
146562306a36Sopenharmony_ci	F(200000000, P_GPLL0_OUT_MAIN, 4, 0, 0),
146662306a36Sopenharmony_ci	F(342850000, P_GPLL4_OUT, 3.5, 0, 0),
146762306a36Sopenharmony_ci	F(400000000, P_GPLL4_OUT, 3, 0, 0),
146862306a36Sopenharmony_ci	{ }
146962306a36Sopenharmony_ci};
147062306a36Sopenharmony_ci
147162306a36Sopenharmony_cistatic const struct freq_tbl ftbl_sdcc1_8976_v1_1_apps_clk_src[] = {
147262306a36Sopenharmony_ci	F(144000, P_XO, 16, 3, 25),
147362306a36Sopenharmony_ci	F(400000, P_XO, 12, 1, 4),
147462306a36Sopenharmony_ci	F(20000000, P_GPLL0_OUT_MAIN, 10, 1, 4),
147562306a36Sopenharmony_ci	F(25000000, P_GPLL0_OUT_MAIN, 16, 1, 2),
147662306a36Sopenharmony_ci	F(50000000, P_GPLL0_OUT_MAIN, 16, 0, 0),
147762306a36Sopenharmony_ci	F(100000000, P_GPLL0_OUT_MAIN, 8, 0, 0),
147862306a36Sopenharmony_ci	F(177777778, P_GPLL0_OUT_MAIN, 4.5, 0, 0),
147962306a36Sopenharmony_ci	F(200000000, P_GPLL0_OUT_MAIN, 4, 0, 0),
148062306a36Sopenharmony_ci	F(186400000, P_GPLL2_OUT, 5, 0, 0),
148162306a36Sopenharmony_ci	F(372800000, P_GPLL2_OUT, 2.5, 0, 0),
148262306a36Sopenharmony_ci	{ }
148362306a36Sopenharmony_ci};
148462306a36Sopenharmony_ci
148562306a36Sopenharmony_cistatic const struct clk_init_data sdcc1_apps_clk_src_8976v1_1_init = {
148662306a36Sopenharmony_ci	.name = "sdcc1_apps_clk_src",
148762306a36Sopenharmony_ci	.parent_data = gcc_parent_data_v1_1,
148862306a36Sopenharmony_ci	.num_parents = ARRAY_SIZE(gcc_parent_data_v1_1),
148962306a36Sopenharmony_ci	.ops = &clk_rcg2_floor_ops,
149062306a36Sopenharmony_ci};
149162306a36Sopenharmony_ci
149262306a36Sopenharmony_cistatic struct clk_rcg2 sdcc1_apps_clk_src = {
149362306a36Sopenharmony_ci	.cmd_rcgr = 0x42004,
149462306a36Sopenharmony_ci	.mnd_width = 8,
149562306a36Sopenharmony_ci	.hid_width = 5,
149662306a36Sopenharmony_ci	.parent_map = gcc_parent_map_1,
149762306a36Sopenharmony_ci	.freq_tbl = ftbl_sdcc1_apps_clk_src,
149862306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
149962306a36Sopenharmony_ci		.name = "sdcc1_apps_clk_src",
150062306a36Sopenharmony_ci		.parent_data = gcc_parent_data_1,
150162306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_1),
150262306a36Sopenharmony_ci		.ops = &clk_rcg2_floor_ops,
150362306a36Sopenharmony_ci	},
150462306a36Sopenharmony_ci};
150562306a36Sopenharmony_ci
150662306a36Sopenharmony_cistatic const struct freq_tbl ftbl_sdcc1_ice_core_clk_src[] = {
150762306a36Sopenharmony_ci	F(100000000, P_GPLL0_OUT_M, 8, 0, 0),
150862306a36Sopenharmony_ci	F(200000000, P_GPLL0_OUT_M, 4, 0, 0),
150962306a36Sopenharmony_ci	{ }
151062306a36Sopenharmony_ci};
151162306a36Sopenharmony_ci
151262306a36Sopenharmony_cistatic struct clk_rcg2 sdcc1_ice_core_clk_src = {
151362306a36Sopenharmony_ci	.cmd_rcgr = 0x5d000,
151462306a36Sopenharmony_ci	.mnd_width = 8,
151562306a36Sopenharmony_ci	.hid_width = 5,
151662306a36Sopenharmony_ci	.parent_map = gcc_parent_map_sdcc_ice,
151762306a36Sopenharmony_ci	.freq_tbl = ftbl_sdcc1_ice_core_clk_src,
151862306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
151962306a36Sopenharmony_ci		.name = "sdcc1_ice_core_clk_src",
152062306a36Sopenharmony_ci		.parent_data = gcc_parent_data_4_8,
152162306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_4_8),
152262306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
152362306a36Sopenharmony_ci	},
152462306a36Sopenharmony_ci};
152562306a36Sopenharmony_ci
152662306a36Sopenharmony_cistatic const struct freq_tbl ftbl_sdcc2_4_apps_clk_src[] = {
152762306a36Sopenharmony_ci	F(144000, P_XO, 16, 3, 25),
152862306a36Sopenharmony_ci	F(400000, P_XO, 12, 1, 4),
152962306a36Sopenharmony_ci	F(20000000, P_GPLL0_OUT_MAIN, 10, 1, 4),
153062306a36Sopenharmony_ci	F(25000000, P_GPLL0_OUT_MAIN, 16, 1, 2),
153162306a36Sopenharmony_ci	F(40000000, P_GPLL0_OUT_MAIN, 10, 1, 2),
153262306a36Sopenharmony_ci	F(50000000, P_GPLL0_OUT_MAIN, 16, 0, 0),
153362306a36Sopenharmony_ci	F(80000000, P_GPLL0_OUT_MAIN, 10, 0, 0),
153462306a36Sopenharmony_ci	F(100000000, P_GPLL0_OUT_MAIN, 8, 0, 0),
153562306a36Sopenharmony_ci	F(177777778, P_GPLL0_OUT_MAIN, 4.5, 0, 0),
153662306a36Sopenharmony_ci	F(200000000, P_GPLL0_OUT_MAIN, 4, 0, 0),
153762306a36Sopenharmony_ci	{ }
153862306a36Sopenharmony_ci};
153962306a36Sopenharmony_ci
154062306a36Sopenharmony_cistatic struct clk_rcg2 sdcc2_apps_clk_src = {
154162306a36Sopenharmony_ci	.cmd_rcgr = 0x43004,
154262306a36Sopenharmony_ci	.mnd_width = 8,
154362306a36Sopenharmony_ci	.hid_width = 5,
154462306a36Sopenharmony_ci	.parent_map = gcc_parent_map_4,
154562306a36Sopenharmony_ci	.freq_tbl = ftbl_sdcc2_4_apps_clk_src,
154662306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
154762306a36Sopenharmony_ci		.name = "sdcc2_apps_clk_src",
154862306a36Sopenharmony_ci		.parent_data = gcc_parent_data_4_8,
154962306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_4_8),
155062306a36Sopenharmony_ci		.ops = &clk_rcg2_floor_ops,
155162306a36Sopenharmony_ci	},
155262306a36Sopenharmony_ci};
155362306a36Sopenharmony_ci
155462306a36Sopenharmony_cistatic struct clk_rcg2 sdcc3_apps_clk_src = {
155562306a36Sopenharmony_ci	.cmd_rcgr = 0x39004,
155662306a36Sopenharmony_ci	.mnd_width = 8,
155762306a36Sopenharmony_ci	.hid_width = 5,
155862306a36Sopenharmony_ci	.parent_map = gcc_parent_map_4,
155962306a36Sopenharmony_ci	.freq_tbl = ftbl_sdcc2_4_apps_clk_src,
156062306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
156162306a36Sopenharmony_ci		.name = "sdcc3_apps_clk_src",
156262306a36Sopenharmony_ci		.parent_data = gcc_parent_data_4_8,
156362306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_4_8),
156462306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
156562306a36Sopenharmony_ci	},
156662306a36Sopenharmony_ci};
156762306a36Sopenharmony_ci
156862306a36Sopenharmony_cistatic const struct freq_tbl ftbl_usb_fs_ic_clk_src[] = {
156962306a36Sopenharmony_ci	F(60000000, P_GPLL6_OUT_MAIN, 6, 1, 3),
157062306a36Sopenharmony_ci	{ }
157162306a36Sopenharmony_ci};
157262306a36Sopenharmony_ci
157362306a36Sopenharmony_cistatic struct clk_rcg2 usb_fs_ic_clk_src = {
157462306a36Sopenharmony_ci	.cmd_rcgr = 0x3f034,
157562306a36Sopenharmony_ci	.mnd_width = 8,
157662306a36Sopenharmony_ci	.hid_width = 5,
157762306a36Sopenharmony_ci	.parent_map = gcc_parent_map_9,
157862306a36Sopenharmony_ci	.freq_tbl = ftbl_usb_fs_ic_clk_src,
157962306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
158062306a36Sopenharmony_ci		.name = "usb_fs_ic_clk_src",
158162306a36Sopenharmony_ci		.parent_data = gcc_parent_data_9,
158262306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_9),
158362306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
158462306a36Sopenharmony_ci	},
158562306a36Sopenharmony_ci};
158662306a36Sopenharmony_ci
158762306a36Sopenharmony_cistatic const struct freq_tbl ftbl_usb_fs_system_clk_src[] = {
158862306a36Sopenharmony_ci	F(64000000, P_GPLL0_OUT, 12.5, 0, 0),
158962306a36Sopenharmony_ci	{ }
159062306a36Sopenharmony_ci};
159162306a36Sopenharmony_ci
159262306a36Sopenharmony_cistatic struct clk_rcg2 usb_fs_system_clk_src = {
159362306a36Sopenharmony_ci	.cmd_rcgr = 0x3f010,
159462306a36Sopenharmony_ci	.mnd_width = 8,
159562306a36Sopenharmony_ci	.hid_width = 5,
159662306a36Sopenharmony_ci	.parent_map = gcc_parent_map_4_fs,
159762306a36Sopenharmony_ci	.freq_tbl = ftbl_usb_fs_system_clk_src,
159862306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
159962306a36Sopenharmony_ci		.name = "usb_fs_system_clk_src",
160062306a36Sopenharmony_ci		.parent_data = gcc_parent_data_4_8,
160162306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_4_8),
160262306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
160362306a36Sopenharmony_ci	},
160462306a36Sopenharmony_ci};
160562306a36Sopenharmony_ci
160662306a36Sopenharmony_cistatic const struct freq_tbl ftbl_usb_hs_system_clk_src[] = {
160762306a36Sopenharmony_ci	F(57140000, P_GPLL0_OUT_MAIN, 14, 0, 0),
160862306a36Sopenharmony_ci	F(100000000, P_GPLL0_OUT_MAIN, 8, 0, 0),
160962306a36Sopenharmony_ci	F(133333333, P_GPLL0_OUT_MAIN, 6, 0, 0),
161062306a36Sopenharmony_ci	F(177780000, P_GPLL0_OUT_MAIN, 4.5, 0, 0),
161162306a36Sopenharmony_ci	{ }
161262306a36Sopenharmony_ci};
161362306a36Sopenharmony_ci
161462306a36Sopenharmony_cistatic struct clk_rcg2 usb_hs_system_clk_src = {
161562306a36Sopenharmony_ci	.cmd_rcgr = 0x41010,
161662306a36Sopenharmony_ci	.hid_width = 5,
161762306a36Sopenharmony_ci	.parent_map = gcc_parent_map_4,
161862306a36Sopenharmony_ci	.freq_tbl = ftbl_usb_hs_system_clk_src,
161962306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
162062306a36Sopenharmony_ci		.name = "usb_hs_system_clk_src",
162162306a36Sopenharmony_ci		.parent_data = gcc_parent_data_4_8,
162262306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_4_8),
162362306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
162462306a36Sopenharmony_ci	},
162562306a36Sopenharmony_ci};
162662306a36Sopenharmony_ci
162762306a36Sopenharmony_cistatic const struct freq_tbl ftbl_vcodec0_clk_src[] = {
162862306a36Sopenharmony_ci	F(72727200, P_GPLL0_OUT_MAIN, 11, 0, 0),
162962306a36Sopenharmony_ci	F(80000000, P_GPLL0_OUT_MAIN, 10, 0, 0),
163062306a36Sopenharmony_ci	F(100000000, P_GPLL0_OUT_MAIN, 8, 0, 0),
163162306a36Sopenharmony_ci	F(133333333, P_GPLL0_OUT_MAIN, 6, 0, 0),
163262306a36Sopenharmony_ci	F(228570000, P_GPLL0_OUT_MAIN, 3.5, 0, 0),
163362306a36Sopenharmony_ci	F(310667000, P_GPLL2_AUX, 3, 0, 0),
163462306a36Sopenharmony_ci	F(360000000, P_GPLL6_AUX, 3, 0, 0),
163562306a36Sopenharmony_ci	F(400000000, P_GPLL0_OUT_MAIN, 2, 0, 0),
163662306a36Sopenharmony_ci	F(466000000, P_GPLL2_AUX, 2, 0, 0),
163762306a36Sopenharmony_ci	{ }
163862306a36Sopenharmony_ci};
163962306a36Sopenharmony_ci
164062306a36Sopenharmony_cistatic struct clk_rcg2 vcodec0_clk_src = {
164162306a36Sopenharmony_ci	.cmd_rcgr = 0x4c000,
164262306a36Sopenharmony_ci	.mnd_width = 8,
164362306a36Sopenharmony_ci	.hid_width = 5,
164462306a36Sopenharmony_ci	.parent_map = gcc_parent_map_3,
164562306a36Sopenharmony_ci	.freq_tbl = ftbl_vcodec0_clk_src,
164662306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
164762306a36Sopenharmony_ci		.name = "vcodec0_clk_src",
164862306a36Sopenharmony_ci		.parent_data = gcc_parent_data_3,
164962306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_parent_data_3),
165062306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
165162306a36Sopenharmony_ci	},
165262306a36Sopenharmony_ci};
165362306a36Sopenharmony_ci
165462306a36Sopenharmony_cistatic struct clk_branch gcc_aps_0_clk = {
165562306a36Sopenharmony_ci	.halt_reg = 0x78004,
165662306a36Sopenharmony_ci	.clkr = {
165762306a36Sopenharmony_ci		.enable_reg = 0x78004,
165862306a36Sopenharmony_ci		.enable_mask = BIT(0),
165962306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
166062306a36Sopenharmony_ci			.name = "gcc_aps_0_clk",
166162306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
166262306a36Sopenharmony_ci				&aps_0_clk_src.clkr.hw,
166362306a36Sopenharmony_ci			},
166462306a36Sopenharmony_ci			.num_parents = 1,
166562306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
166662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
166762306a36Sopenharmony_ci		},
166862306a36Sopenharmony_ci	},
166962306a36Sopenharmony_ci};
167062306a36Sopenharmony_ci
167162306a36Sopenharmony_cistatic struct clk_branch gcc_aps_1_clk = {
167262306a36Sopenharmony_ci	.halt_reg = 0x79004,
167362306a36Sopenharmony_ci	.clkr = {
167462306a36Sopenharmony_ci		.enable_reg = 0x79004,
167562306a36Sopenharmony_ci		.enable_mask = BIT(0),
167662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
167762306a36Sopenharmony_ci			.name = "gcc_aps_1_clk",
167862306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
167962306a36Sopenharmony_ci				&aps_1_clk_src.clkr.hw,
168062306a36Sopenharmony_ci			},
168162306a36Sopenharmony_ci			.num_parents = 1,
168262306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
168362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
168462306a36Sopenharmony_ci		},
168562306a36Sopenharmony_ci	},
168662306a36Sopenharmony_ci};
168762306a36Sopenharmony_ci
168862306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_qup1_i2c_apps_clk = {
168962306a36Sopenharmony_ci	.halt_reg = 0x2008,
169062306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
169162306a36Sopenharmony_ci	.clkr = {
169262306a36Sopenharmony_ci		.enable_reg = 0x2008,
169362306a36Sopenharmony_ci		.enable_mask = BIT(0),
169462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
169562306a36Sopenharmony_ci			.name = "gcc_blsp1_qup1_i2c_apps_clk",
169662306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
169762306a36Sopenharmony_ci				&blsp1_qup1_i2c_apps_clk_src.clkr.hw,
169862306a36Sopenharmony_ci			},
169962306a36Sopenharmony_ci			.num_parents = 1,
170062306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
170162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
170262306a36Sopenharmony_ci		},
170362306a36Sopenharmony_ci	},
170462306a36Sopenharmony_ci};
170562306a36Sopenharmony_ci
170662306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_qup1_spi_apps_clk = {
170762306a36Sopenharmony_ci	.halt_reg = 0x2004,
170862306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
170962306a36Sopenharmony_ci	.clkr = {
171062306a36Sopenharmony_ci		.enable_reg = 0x2004,
171162306a36Sopenharmony_ci		.enable_mask = BIT(0),
171262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
171362306a36Sopenharmony_ci			.name = "gcc_blsp1_qup1_spi_apps_clk",
171462306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
171562306a36Sopenharmony_ci				&blsp1_qup1_spi_apps_clk_src.clkr.hw,
171662306a36Sopenharmony_ci			},
171762306a36Sopenharmony_ci			.num_parents = 1,
171862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
171962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
172062306a36Sopenharmony_ci		},
172162306a36Sopenharmony_ci	},
172262306a36Sopenharmony_ci};
172362306a36Sopenharmony_ci
172462306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_qup2_i2c_apps_clk = {
172562306a36Sopenharmony_ci	.halt_reg = 0x3010,
172662306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
172762306a36Sopenharmony_ci	.clkr = {
172862306a36Sopenharmony_ci		.enable_reg = 0x3010,
172962306a36Sopenharmony_ci		.enable_mask = BIT(0),
173062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
173162306a36Sopenharmony_ci			.name = "gcc_blsp1_qup2_i2c_apps_clk",
173262306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
173362306a36Sopenharmony_ci				&blsp1_qup2_i2c_apps_clk_src.clkr.hw,
173462306a36Sopenharmony_ci			},
173562306a36Sopenharmony_ci			.num_parents = 1,
173662306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
173762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
173862306a36Sopenharmony_ci		},
173962306a36Sopenharmony_ci	},
174062306a36Sopenharmony_ci};
174162306a36Sopenharmony_ci
174262306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_qup2_spi_apps_clk = {
174362306a36Sopenharmony_ci	.halt_reg = 0x300c,
174462306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
174562306a36Sopenharmony_ci	.clkr = {
174662306a36Sopenharmony_ci		.enable_reg = 0x300c,
174762306a36Sopenharmony_ci		.enable_mask = BIT(0),
174862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
174962306a36Sopenharmony_ci			.name = "gcc_blsp1_qup2_spi_apps_clk",
175062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
175162306a36Sopenharmony_ci				&blsp1_qup2_spi_apps_clk_src.clkr.hw,
175262306a36Sopenharmony_ci			},
175362306a36Sopenharmony_ci			.num_parents = 1,
175462306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
175562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
175662306a36Sopenharmony_ci		},
175762306a36Sopenharmony_ci	},
175862306a36Sopenharmony_ci};
175962306a36Sopenharmony_ci
176062306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_qup3_i2c_apps_clk = {
176162306a36Sopenharmony_ci	.halt_reg = 0x4020,
176262306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
176362306a36Sopenharmony_ci	.clkr = {
176462306a36Sopenharmony_ci		.enable_reg = 0x4020,
176562306a36Sopenharmony_ci		.enable_mask = BIT(0),
176662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
176762306a36Sopenharmony_ci			.name = "gcc_blsp1_qup3_i2c_apps_clk",
176862306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
176962306a36Sopenharmony_ci				&blsp1_qup3_i2c_apps_clk_src.clkr.hw,
177062306a36Sopenharmony_ci			},
177162306a36Sopenharmony_ci			.num_parents = 1,
177262306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
177362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
177462306a36Sopenharmony_ci		},
177562306a36Sopenharmony_ci	},
177662306a36Sopenharmony_ci};
177762306a36Sopenharmony_ci
177862306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_qup3_spi_apps_clk = {
177962306a36Sopenharmony_ci	.halt_reg = 0x401c,
178062306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
178162306a36Sopenharmony_ci	.clkr = {
178262306a36Sopenharmony_ci		.enable_reg = 0x401c,
178362306a36Sopenharmony_ci		.enable_mask = BIT(0),
178462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
178562306a36Sopenharmony_ci			.name = "gcc_blsp1_qup3_spi_apps_clk",
178662306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
178762306a36Sopenharmony_ci				&blsp1_qup3_spi_apps_clk_src.clkr.hw,
178862306a36Sopenharmony_ci			},
178962306a36Sopenharmony_ci			.num_parents = 1,
179062306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
179162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
179262306a36Sopenharmony_ci		},
179362306a36Sopenharmony_ci	},
179462306a36Sopenharmony_ci};
179562306a36Sopenharmony_ci
179662306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_qup4_i2c_apps_clk = {
179762306a36Sopenharmony_ci	.halt_reg = 0x5020,
179862306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
179962306a36Sopenharmony_ci	.clkr = {
180062306a36Sopenharmony_ci		.enable_reg = 0x5020,
180162306a36Sopenharmony_ci		.enable_mask = BIT(0),
180262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
180362306a36Sopenharmony_ci			.name = "gcc_blsp1_qup4_i2c_apps_clk",
180462306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
180562306a36Sopenharmony_ci				&blsp1_qup4_i2c_apps_clk_src.clkr.hw,
180662306a36Sopenharmony_ci			},
180762306a36Sopenharmony_ci			.num_parents = 1,
180862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
180962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
181062306a36Sopenharmony_ci		},
181162306a36Sopenharmony_ci	},
181262306a36Sopenharmony_ci};
181362306a36Sopenharmony_ci
181462306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_qup4_spi_apps_clk = {
181562306a36Sopenharmony_ci	.halt_reg = 0x501c,
181662306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
181762306a36Sopenharmony_ci	.clkr = {
181862306a36Sopenharmony_ci		.enable_reg = 0x501c,
181962306a36Sopenharmony_ci		.enable_mask = BIT(0),
182062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
182162306a36Sopenharmony_ci			.name = "gcc_blsp1_qup4_spi_apps_clk",
182262306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
182362306a36Sopenharmony_ci				&blsp1_qup4_spi_apps_clk_src.clkr.hw,
182462306a36Sopenharmony_ci			},
182562306a36Sopenharmony_ci			.num_parents = 1,
182662306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
182762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
182862306a36Sopenharmony_ci		},
182962306a36Sopenharmony_ci	},
183062306a36Sopenharmony_ci};
183162306a36Sopenharmony_ci
183262306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_uart1_apps_clk = {
183362306a36Sopenharmony_ci	.halt_reg = 0x203c,
183462306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
183562306a36Sopenharmony_ci	.clkr = {
183662306a36Sopenharmony_ci		.enable_reg = 0x203c,
183762306a36Sopenharmony_ci		.enable_mask = BIT(0),
183862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
183962306a36Sopenharmony_ci			.name = "gcc_blsp1_uart1_apps_clk",
184062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
184162306a36Sopenharmony_ci				&blsp1_uart1_apps_clk_src.clkr.hw,
184262306a36Sopenharmony_ci			},
184362306a36Sopenharmony_ci			.num_parents = 1,
184462306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
184562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
184662306a36Sopenharmony_ci		},
184762306a36Sopenharmony_ci	},
184862306a36Sopenharmony_ci};
184962306a36Sopenharmony_ci
185062306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_uart2_apps_clk = {
185162306a36Sopenharmony_ci	.halt_reg = 0x302c,
185262306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
185362306a36Sopenharmony_ci	.clkr = {
185462306a36Sopenharmony_ci		.enable_reg = 0x302c,
185562306a36Sopenharmony_ci		.enable_mask = BIT(0),
185662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
185762306a36Sopenharmony_ci			.name = "gcc_blsp1_uart2_apps_clk",
185862306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
185962306a36Sopenharmony_ci				&blsp1_uart2_apps_clk_src.clkr.hw,
186062306a36Sopenharmony_ci			},
186162306a36Sopenharmony_ci			.num_parents = 1,
186262306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
186362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
186462306a36Sopenharmony_ci		},
186562306a36Sopenharmony_ci	},
186662306a36Sopenharmony_ci};
186762306a36Sopenharmony_ci
186862306a36Sopenharmony_cistatic struct clk_branch gcc_blsp2_qup1_i2c_apps_clk = {
186962306a36Sopenharmony_ci	.halt_reg = 0xc008,
187062306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
187162306a36Sopenharmony_ci	.clkr = {
187262306a36Sopenharmony_ci		.enable_reg = 0xc008,
187362306a36Sopenharmony_ci		.enable_mask = BIT(0),
187462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
187562306a36Sopenharmony_ci			.name = "gcc_blsp2_qup1_i2c_apps_clk",
187662306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
187762306a36Sopenharmony_ci				&blsp2_qup1_i2c_apps_clk_src.clkr.hw,
187862306a36Sopenharmony_ci			},
187962306a36Sopenharmony_ci			.num_parents = 1,
188062306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
188162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
188262306a36Sopenharmony_ci		},
188362306a36Sopenharmony_ci	},
188462306a36Sopenharmony_ci};
188562306a36Sopenharmony_ci
188662306a36Sopenharmony_cistatic struct clk_branch gcc_blsp2_qup1_spi_apps_clk = {
188762306a36Sopenharmony_ci	.halt_reg = 0xc004,
188862306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
188962306a36Sopenharmony_ci	.clkr = {
189062306a36Sopenharmony_ci		.enable_reg = 0xc004,
189162306a36Sopenharmony_ci		.enable_mask = BIT(0),
189262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
189362306a36Sopenharmony_ci			.name = "gcc_blsp2_qup1_spi_apps_clk",
189462306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
189562306a36Sopenharmony_ci				&blsp2_qup1_spi_apps_clk_src.clkr.hw,
189662306a36Sopenharmony_ci			},
189762306a36Sopenharmony_ci			.num_parents = 1,
189862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
189962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
190062306a36Sopenharmony_ci		},
190162306a36Sopenharmony_ci	},
190262306a36Sopenharmony_ci};
190362306a36Sopenharmony_ci
190462306a36Sopenharmony_cistatic struct clk_branch gcc_blsp2_qup2_i2c_apps_clk = {
190562306a36Sopenharmony_ci	.halt_reg = 0xd010,
190662306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
190762306a36Sopenharmony_ci	.clkr = {
190862306a36Sopenharmony_ci		.enable_reg = 0xd010,
190962306a36Sopenharmony_ci		.enable_mask = BIT(0),
191062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
191162306a36Sopenharmony_ci			.name = "gcc_blsp2_qup2_i2c_apps_clk",
191262306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
191362306a36Sopenharmony_ci				&blsp2_qup2_i2c_apps_clk_src.clkr.hw,
191462306a36Sopenharmony_ci			},
191562306a36Sopenharmony_ci			.num_parents = 1,
191662306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
191762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
191862306a36Sopenharmony_ci		},
191962306a36Sopenharmony_ci	},
192062306a36Sopenharmony_ci};
192162306a36Sopenharmony_ci
192262306a36Sopenharmony_cistatic struct clk_branch gcc_blsp2_qup2_spi_apps_clk = {
192362306a36Sopenharmony_ci	.halt_reg = 0xd00c,
192462306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
192562306a36Sopenharmony_ci	.clkr = {
192662306a36Sopenharmony_ci		.enable_reg = 0xd00c,
192762306a36Sopenharmony_ci		.enable_mask = BIT(0),
192862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
192962306a36Sopenharmony_ci			.name = "gcc_blsp2_qup2_spi_apps_clk",
193062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
193162306a36Sopenharmony_ci				&blsp2_qup2_spi_apps_clk_src.clkr.hw,
193262306a36Sopenharmony_ci			},
193362306a36Sopenharmony_ci			.num_parents = 1,
193462306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
193562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
193662306a36Sopenharmony_ci		},
193762306a36Sopenharmony_ci	},
193862306a36Sopenharmony_ci};
193962306a36Sopenharmony_ci
194062306a36Sopenharmony_cistatic struct clk_branch gcc_blsp2_qup3_i2c_apps_clk = {
194162306a36Sopenharmony_ci	.halt_reg = 0xf020,
194262306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
194362306a36Sopenharmony_ci	.clkr = {
194462306a36Sopenharmony_ci		.enable_reg = 0xf020,
194562306a36Sopenharmony_ci		.enable_mask = BIT(0),
194662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
194762306a36Sopenharmony_ci			.name = "gcc_blsp2_qup3_i2c_apps_clk",
194862306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
194962306a36Sopenharmony_ci				&blsp2_qup3_i2c_apps_clk_src.clkr.hw,
195062306a36Sopenharmony_ci			},
195162306a36Sopenharmony_ci			.num_parents = 1,
195262306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
195362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
195462306a36Sopenharmony_ci		},
195562306a36Sopenharmony_ci	},
195662306a36Sopenharmony_ci};
195762306a36Sopenharmony_ci
195862306a36Sopenharmony_cistatic struct clk_branch gcc_blsp2_qup3_spi_apps_clk = {
195962306a36Sopenharmony_ci	.halt_reg = 0xf01c,
196062306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
196162306a36Sopenharmony_ci	.clkr = {
196262306a36Sopenharmony_ci		.enable_reg = 0xf01c,
196362306a36Sopenharmony_ci		.enable_mask = BIT(0),
196462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
196562306a36Sopenharmony_ci			.name = "gcc_blsp2_qup3_spi_apps_clk",
196662306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
196762306a36Sopenharmony_ci				&blsp2_qup3_spi_apps_clk_src.clkr.hw,
196862306a36Sopenharmony_ci			},
196962306a36Sopenharmony_ci			.num_parents = 1,
197062306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
197162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
197262306a36Sopenharmony_ci		},
197362306a36Sopenharmony_ci	},
197462306a36Sopenharmony_ci};
197562306a36Sopenharmony_ci
197662306a36Sopenharmony_cistatic struct clk_branch gcc_blsp2_qup4_i2c_apps_clk = {
197762306a36Sopenharmony_ci	.halt_reg = 0x18020,
197862306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
197962306a36Sopenharmony_ci	.clkr = {
198062306a36Sopenharmony_ci		.enable_reg = 0x18020,
198162306a36Sopenharmony_ci		.enable_mask = BIT(0),
198262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
198362306a36Sopenharmony_ci			.name = "gcc_blsp2_qup4_i2c_apps_clk",
198462306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
198562306a36Sopenharmony_ci				&blsp2_qup4_i2c_apps_clk_src.clkr.hw,
198662306a36Sopenharmony_ci			},
198762306a36Sopenharmony_ci			.num_parents = 1,
198862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
198962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
199062306a36Sopenharmony_ci		},
199162306a36Sopenharmony_ci	},
199262306a36Sopenharmony_ci};
199362306a36Sopenharmony_ci
199462306a36Sopenharmony_cistatic struct clk_branch gcc_blsp2_qup4_spi_apps_clk = {
199562306a36Sopenharmony_ci	.halt_reg = 0x1801c,
199662306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
199762306a36Sopenharmony_ci	.clkr = {
199862306a36Sopenharmony_ci		.enable_reg = 0x1801c,
199962306a36Sopenharmony_ci		.enable_mask = BIT(0),
200062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
200162306a36Sopenharmony_ci			.name = "gcc_blsp2_qup4_spi_apps_clk",
200262306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
200362306a36Sopenharmony_ci				&blsp2_qup4_spi_apps_clk_src.clkr.hw,
200462306a36Sopenharmony_ci			},
200562306a36Sopenharmony_ci			.num_parents = 1,
200662306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
200762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
200862306a36Sopenharmony_ci		},
200962306a36Sopenharmony_ci	},
201062306a36Sopenharmony_ci};
201162306a36Sopenharmony_ci
201262306a36Sopenharmony_cistatic struct clk_branch gcc_blsp2_uart1_apps_clk = {
201362306a36Sopenharmony_ci	.halt_reg = 0xc03c,
201462306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
201562306a36Sopenharmony_ci	.clkr = {
201662306a36Sopenharmony_ci		.enable_reg = 0xc03c,
201762306a36Sopenharmony_ci		.enable_mask = BIT(0),
201862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
201962306a36Sopenharmony_ci			.name = "gcc_blsp2_uart1_apps_clk",
202062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
202162306a36Sopenharmony_ci				&blsp2_uart1_apps_clk_src.clkr.hw,
202262306a36Sopenharmony_ci			},
202362306a36Sopenharmony_ci			.num_parents = 1,
202462306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
202562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
202662306a36Sopenharmony_ci		},
202762306a36Sopenharmony_ci	},
202862306a36Sopenharmony_ci};
202962306a36Sopenharmony_ci
203062306a36Sopenharmony_cistatic struct clk_branch gcc_blsp2_uart2_apps_clk = {
203162306a36Sopenharmony_ci	.halt_reg = 0xd02c,
203262306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
203362306a36Sopenharmony_ci	.clkr = {
203462306a36Sopenharmony_ci		.enable_reg = 0xd02c,
203562306a36Sopenharmony_ci		.enable_mask = BIT(0),
203662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
203762306a36Sopenharmony_ci			.name = "gcc_blsp2_uart2_apps_clk",
203862306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
203962306a36Sopenharmony_ci				&blsp2_uart2_apps_clk_src.clkr.hw,
204062306a36Sopenharmony_ci			},
204162306a36Sopenharmony_ci			.num_parents = 1,
204262306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
204362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
204462306a36Sopenharmony_ci		},
204562306a36Sopenharmony_ci	},
204662306a36Sopenharmony_ci};
204762306a36Sopenharmony_ci
204862306a36Sopenharmony_cistatic struct clk_branch gcc_camss_cci_ahb_clk = {
204962306a36Sopenharmony_ci	.halt_reg = 0x5101c,
205062306a36Sopenharmony_ci	.clkr = {
205162306a36Sopenharmony_ci		.enable_reg = 0x5101c,
205262306a36Sopenharmony_ci		.enable_mask = BIT(0),
205362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
205462306a36Sopenharmony_ci			.name = "gcc_camss_cci_ahb_clk",
205562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
205662306a36Sopenharmony_ci				&camss_top_ahb_clk_src.clkr.hw,
205762306a36Sopenharmony_ci			},
205862306a36Sopenharmony_ci			.num_parents = 1,
205962306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
206062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
206162306a36Sopenharmony_ci		},
206262306a36Sopenharmony_ci	},
206362306a36Sopenharmony_ci};
206462306a36Sopenharmony_ci
206562306a36Sopenharmony_cistatic struct clk_branch gcc_camss_cci_clk = {
206662306a36Sopenharmony_ci	.halt_reg = 0x51018,
206762306a36Sopenharmony_ci	.clkr = {
206862306a36Sopenharmony_ci		.enable_reg = 0x51018,
206962306a36Sopenharmony_ci		.enable_mask = BIT(0),
207062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
207162306a36Sopenharmony_ci			.name = "gcc_camss_cci_clk",
207262306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
207362306a36Sopenharmony_ci				&cci_clk_src.clkr.hw,
207462306a36Sopenharmony_ci			},
207562306a36Sopenharmony_ci			.num_parents = 1,
207662306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
207762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
207862306a36Sopenharmony_ci		},
207962306a36Sopenharmony_ci	},
208062306a36Sopenharmony_ci};
208162306a36Sopenharmony_ci
208262306a36Sopenharmony_cistatic struct clk_branch gcc_camss_cpp_ahb_clk = {
208362306a36Sopenharmony_ci	.halt_reg = 0x58040,
208462306a36Sopenharmony_ci	.clkr = {
208562306a36Sopenharmony_ci		.enable_reg = 0x58040,
208662306a36Sopenharmony_ci		.enable_mask = BIT(0),
208762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
208862306a36Sopenharmony_ci			.name = "gcc_camss_cpp_ahb_clk",
208962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
209062306a36Sopenharmony_ci				&camss_top_ahb_clk_src.clkr.hw,
209162306a36Sopenharmony_ci			},
209262306a36Sopenharmony_ci			.num_parents = 1,
209362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
209462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
209562306a36Sopenharmony_ci		},
209662306a36Sopenharmony_ci	},
209762306a36Sopenharmony_ci};
209862306a36Sopenharmony_ci
209962306a36Sopenharmony_cistatic struct clk_branch gcc_camss_cpp_axi_clk = {
210062306a36Sopenharmony_ci	.halt_reg = 0x58064,
210162306a36Sopenharmony_ci	.clkr = {
210262306a36Sopenharmony_ci		.enable_reg = 0x58064,
210362306a36Sopenharmony_ci		.enable_mask = BIT(0),
210462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
210562306a36Sopenharmony_ci			.name = "gcc_camss_cpp_axi_clk",
210662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
210762306a36Sopenharmony_ci		},
210862306a36Sopenharmony_ci	},
210962306a36Sopenharmony_ci};
211062306a36Sopenharmony_ci
211162306a36Sopenharmony_cistatic struct clk_branch gcc_camss_cpp_clk = {
211262306a36Sopenharmony_ci	.halt_reg = 0x5803c,
211362306a36Sopenharmony_ci	.clkr = {
211462306a36Sopenharmony_ci		.enable_reg = 0x5803c,
211562306a36Sopenharmony_ci		.enable_mask = BIT(0),
211662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
211762306a36Sopenharmony_ci			.name = "gcc_camss_cpp_clk",
211862306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
211962306a36Sopenharmony_ci				&cpp_clk_src.clkr.hw,
212062306a36Sopenharmony_ci			},
212162306a36Sopenharmony_ci			.num_parents = 1,
212262306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
212362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
212462306a36Sopenharmony_ci		},
212562306a36Sopenharmony_ci	},
212662306a36Sopenharmony_ci};
212762306a36Sopenharmony_ci
212862306a36Sopenharmony_cistatic struct clk_branch gcc_camss_csi0_ahb_clk = {
212962306a36Sopenharmony_ci	.halt_reg = 0x4e040,
213062306a36Sopenharmony_ci	.clkr = {
213162306a36Sopenharmony_ci		.enable_reg = 0x4e040,
213262306a36Sopenharmony_ci		.enable_mask = BIT(0),
213362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
213462306a36Sopenharmony_ci			.name = "gcc_camss_csi0_ahb_clk",
213562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
213662306a36Sopenharmony_ci				&camss_top_ahb_clk_src.clkr.hw,
213762306a36Sopenharmony_ci			},
213862306a36Sopenharmony_ci			.num_parents = 1,
213962306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
214062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
214162306a36Sopenharmony_ci		},
214262306a36Sopenharmony_ci	},
214362306a36Sopenharmony_ci};
214462306a36Sopenharmony_ci
214562306a36Sopenharmony_cistatic struct clk_branch gcc_camss_csi0_clk = {
214662306a36Sopenharmony_ci	.halt_reg = 0x4e03c,
214762306a36Sopenharmony_ci	.clkr = {
214862306a36Sopenharmony_ci		.enable_reg = 0x4e03c,
214962306a36Sopenharmony_ci		.enable_mask = BIT(0),
215062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
215162306a36Sopenharmony_ci			.name = "gcc_camss_csi0_clk",
215262306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
215362306a36Sopenharmony_ci				&csi0_clk_src.clkr.hw,
215462306a36Sopenharmony_ci			},
215562306a36Sopenharmony_ci			.num_parents = 1,
215662306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
215762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
215862306a36Sopenharmony_ci		},
215962306a36Sopenharmony_ci	},
216062306a36Sopenharmony_ci};
216162306a36Sopenharmony_ci
216262306a36Sopenharmony_cistatic struct clk_branch gcc_camss_csi0phy_clk = {
216362306a36Sopenharmony_ci	.halt_reg = 0x4e048,
216462306a36Sopenharmony_ci	.clkr = {
216562306a36Sopenharmony_ci		.enable_reg = 0x4e048,
216662306a36Sopenharmony_ci		.enable_mask = BIT(0),
216762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
216862306a36Sopenharmony_ci			.name = "gcc_camss_csi0phy_clk",
216962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
217062306a36Sopenharmony_ci				&csi0_clk_src.clkr.hw,
217162306a36Sopenharmony_ci			},
217262306a36Sopenharmony_ci			.num_parents = 1,
217362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
217462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
217562306a36Sopenharmony_ci		},
217662306a36Sopenharmony_ci	},
217762306a36Sopenharmony_ci};
217862306a36Sopenharmony_ci
217962306a36Sopenharmony_cistatic struct clk_branch gcc_camss_csi0pix_clk = {
218062306a36Sopenharmony_ci	.halt_reg = 0x4e058,
218162306a36Sopenharmony_ci	.clkr = {
218262306a36Sopenharmony_ci		.enable_reg = 0x4e058,
218362306a36Sopenharmony_ci		.enable_mask = BIT(0),
218462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
218562306a36Sopenharmony_ci			.name = "gcc_camss_csi0pix_clk",
218662306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
218762306a36Sopenharmony_ci				&csi0_clk_src.clkr.hw,
218862306a36Sopenharmony_ci			},
218962306a36Sopenharmony_ci			.num_parents = 1,
219062306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
219162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
219262306a36Sopenharmony_ci		},
219362306a36Sopenharmony_ci	},
219462306a36Sopenharmony_ci};
219562306a36Sopenharmony_ci
219662306a36Sopenharmony_cistatic struct clk_branch gcc_camss_csi0rdi_clk = {
219762306a36Sopenharmony_ci	.halt_reg = 0x4e050,
219862306a36Sopenharmony_ci	.clkr = {
219962306a36Sopenharmony_ci		.enable_reg = 0x4e050,
220062306a36Sopenharmony_ci		.enable_mask = BIT(0),
220162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
220262306a36Sopenharmony_ci			.name = "gcc_camss_csi0rdi_clk",
220362306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
220462306a36Sopenharmony_ci				&csi0_clk_src.clkr.hw,
220562306a36Sopenharmony_ci			},
220662306a36Sopenharmony_ci			.num_parents = 1,
220762306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
220862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
220962306a36Sopenharmony_ci		},
221062306a36Sopenharmony_ci	},
221162306a36Sopenharmony_ci};
221262306a36Sopenharmony_ci
221362306a36Sopenharmony_cistatic struct clk_branch gcc_camss_csi1_ahb_clk = {
221462306a36Sopenharmony_ci	.halt_reg = 0x4f040,
221562306a36Sopenharmony_ci	.clkr = {
221662306a36Sopenharmony_ci		.enable_reg = 0x4f040,
221762306a36Sopenharmony_ci		.enable_mask = BIT(0),
221862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
221962306a36Sopenharmony_ci			.name = "gcc_camss_csi1_ahb_clk",
222062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
222162306a36Sopenharmony_ci				&camss_top_ahb_clk_src.clkr.hw,
222262306a36Sopenharmony_ci			},
222362306a36Sopenharmony_ci			.num_parents = 1,
222462306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
222562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
222662306a36Sopenharmony_ci		},
222762306a36Sopenharmony_ci	},
222862306a36Sopenharmony_ci};
222962306a36Sopenharmony_ci
223062306a36Sopenharmony_cistatic struct clk_branch gcc_camss_csi1_clk = {
223162306a36Sopenharmony_ci	.halt_reg = 0x4f03c,
223262306a36Sopenharmony_ci	.clkr = {
223362306a36Sopenharmony_ci		.enable_reg = 0x4f03c,
223462306a36Sopenharmony_ci		.enable_mask = BIT(0),
223562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
223662306a36Sopenharmony_ci			.name = "gcc_camss_csi1_clk",
223762306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
223862306a36Sopenharmony_ci				&csi1_clk_src.clkr.hw,
223962306a36Sopenharmony_ci			},
224062306a36Sopenharmony_ci			.num_parents = 1,
224162306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
224262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
224362306a36Sopenharmony_ci		},
224462306a36Sopenharmony_ci	},
224562306a36Sopenharmony_ci};
224662306a36Sopenharmony_ci
224762306a36Sopenharmony_cistatic struct clk_branch gcc_camss_csi1phy_clk = {
224862306a36Sopenharmony_ci	.halt_reg = 0x4f048,
224962306a36Sopenharmony_ci	.clkr = {
225062306a36Sopenharmony_ci		.enable_reg = 0x4f048,
225162306a36Sopenharmony_ci		.enable_mask = BIT(0),
225262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
225362306a36Sopenharmony_ci			.name = "gcc_camss_csi1phy_clk",
225462306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
225562306a36Sopenharmony_ci				&csi1_clk_src.clkr.hw,
225662306a36Sopenharmony_ci			},
225762306a36Sopenharmony_ci			.num_parents = 1,
225862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
225962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
226062306a36Sopenharmony_ci		},
226162306a36Sopenharmony_ci	},
226262306a36Sopenharmony_ci};
226362306a36Sopenharmony_ci
226462306a36Sopenharmony_cistatic struct clk_branch gcc_camss_csi1pix_clk = {
226562306a36Sopenharmony_ci	.halt_reg = 0x4f058,
226662306a36Sopenharmony_ci	.clkr = {
226762306a36Sopenharmony_ci		.enable_reg = 0x4f058,
226862306a36Sopenharmony_ci		.enable_mask = BIT(0),
226962306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
227062306a36Sopenharmony_ci			.name = "gcc_camss_csi1pix_clk",
227162306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
227262306a36Sopenharmony_ci				&csi1_clk_src.clkr.hw,
227362306a36Sopenharmony_ci			},
227462306a36Sopenharmony_ci			.num_parents = 1,
227562306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
227662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
227762306a36Sopenharmony_ci		},
227862306a36Sopenharmony_ci	},
227962306a36Sopenharmony_ci};
228062306a36Sopenharmony_ci
228162306a36Sopenharmony_cistatic struct clk_branch gcc_camss_csi1rdi_clk = {
228262306a36Sopenharmony_ci	.halt_reg = 0x4f050,
228362306a36Sopenharmony_ci	.clkr = {
228462306a36Sopenharmony_ci		.enable_reg = 0x4f050,
228562306a36Sopenharmony_ci		.enable_mask = BIT(0),
228662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
228762306a36Sopenharmony_ci			.name = "gcc_camss_csi1rdi_clk",
228862306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
228962306a36Sopenharmony_ci				&csi1_clk_src.clkr.hw,
229062306a36Sopenharmony_ci			},
229162306a36Sopenharmony_ci			.num_parents = 1,
229262306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
229362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
229462306a36Sopenharmony_ci		},
229562306a36Sopenharmony_ci	},
229662306a36Sopenharmony_ci};
229762306a36Sopenharmony_ci
229862306a36Sopenharmony_cistatic struct clk_branch gcc_camss_csi2_ahb_clk = {
229962306a36Sopenharmony_ci	.halt_reg = 0x3c040,
230062306a36Sopenharmony_ci	.clkr = {
230162306a36Sopenharmony_ci		.enable_reg = 0x3c040,
230262306a36Sopenharmony_ci		.enable_mask = BIT(0),
230362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
230462306a36Sopenharmony_ci			.name = "gcc_camss_csi2_ahb_clk",
230562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
230662306a36Sopenharmony_ci				&camss_top_ahb_clk_src.clkr.hw,
230762306a36Sopenharmony_ci			},
230862306a36Sopenharmony_ci			.num_parents = 1,
230962306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
231062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
231162306a36Sopenharmony_ci		},
231262306a36Sopenharmony_ci	},
231362306a36Sopenharmony_ci};
231462306a36Sopenharmony_ci
231562306a36Sopenharmony_cistatic struct clk_branch gcc_camss_csi2_clk = {
231662306a36Sopenharmony_ci	.halt_reg = 0x3c03c,
231762306a36Sopenharmony_ci	.clkr = {
231862306a36Sopenharmony_ci		.enable_reg = 0x3c03c,
231962306a36Sopenharmony_ci		.enable_mask = BIT(0),
232062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
232162306a36Sopenharmony_ci			.name = "gcc_camss_csi2_clk",
232262306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
232362306a36Sopenharmony_ci				&csi2_clk_src.clkr.hw,
232462306a36Sopenharmony_ci			},
232562306a36Sopenharmony_ci			.num_parents = 1,
232662306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
232762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
232862306a36Sopenharmony_ci		},
232962306a36Sopenharmony_ci	},
233062306a36Sopenharmony_ci};
233162306a36Sopenharmony_ci
233262306a36Sopenharmony_cistatic struct clk_branch gcc_camss_csi2phy_clk = {
233362306a36Sopenharmony_ci	.halt_reg = 0x3c048,
233462306a36Sopenharmony_ci	.clkr = {
233562306a36Sopenharmony_ci		.enable_reg = 0x3c048,
233662306a36Sopenharmony_ci		.enable_mask = BIT(0),
233762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
233862306a36Sopenharmony_ci			.name = "gcc_camss_csi2phy_clk",
233962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
234062306a36Sopenharmony_ci				&csi2_clk_src.clkr.hw,
234162306a36Sopenharmony_ci			},
234262306a36Sopenharmony_ci			.num_parents = 1,
234362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
234462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
234562306a36Sopenharmony_ci		},
234662306a36Sopenharmony_ci	},
234762306a36Sopenharmony_ci};
234862306a36Sopenharmony_ci
234962306a36Sopenharmony_cistatic struct clk_branch gcc_camss_csi2pix_clk = {
235062306a36Sopenharmony_ci	.halt_reg = 0x3c058,
235162306a36Sopenharmony_ci	.clkr = {
235262306a36Sopenharmony_ci		.enable_reg = 0x3c058,
235362306a36Sopenharmony_ci		.enable_mask = BIT(0),
235462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
235562306a36Sopenharmony_ci			.name = "gcc_camss_csi2pix_clk",
235662306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
235762306a36Sopenharmony_ci				&csi2_clk_src.clkr.hw,
235862306a36Sopenharmony_ci			},
235962306a36Sopenharmony_ci			.num_parents = 1,
236062306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
236162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
236262306a36Sopenharmony_ci		},
236362306a36Sopenharmony_ci	},
236462306a36Sopenharmony_ci};
236562306a36Sopenharmony_ci
236662306a36Sopenharmony_cistatic struct clk_branch gcc_camss_csi2rdi_clk = {
236762306a36Sopenharmony_ci	.halt_reg = 0x3c050,
236862306a36Sopenharmony_ci	.clkr = {
236962306a36Sopenharmony_ci		.enable_reg = 0x3c050,
237062306a36Sopenharmony_ci		.enable_mask = BIT(0),
237162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
237262306a36Sopenharmony_ci			.name = "gcc_camss_csi2rdi_clk",
237362306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
237462306a36Sopenharmony_ci				&csi2_clk_src.clkr.hw,
237562306a36Sopenharmony_ci			},
237662306a36Sopenharmony_ci			.num_parents = 1,
237762306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
237862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
237962306a36Sopenharmony_ci		},
238062306a36Sopenharmony_ci	},
238162306a36Sopenharmony_ci};
238262306a36Sopenharmony_ci
238362306a36Sopenharmony_cistatic struct clk_branch gcc_camss_csi_vfe0_clk = {
238462306a36Sopenharmony_ci	.halt_reg = 0x58050,
238562306a36Sopenharmony_ci	.clkr = {
238662306a36Sopenharmony_ci		.enable_reg = 0x58050,
238762306a36Sopenharmony_ci		.enable_mask = BIT(0),
238862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
238962306a36Sopenharmony_ci			.name = "gcc_camss_csi_vfe0_clk",
239062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
239162306a36Sopenharmony_ci				&vfe0_clk_src.clkr.hw,
239262306a36Sopenharmony_ci			},
239362306a36Sopenharmony_ci			.num_parents = 1,
239462306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
239562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
239662306a36Sopenharmony_ci		},
239762306a36Sopenharmony_ci	},
239862306a36Sopenharmony_ci};
239962306a36Sopenharmony_ci
240062306a36Sopenharmony_cistatic struct clk_branch gcc_camss_csi_vfe1_clk = {
240162306a36Sopenharmony_ci	.halt_reg = 0x58074,
240262306a36Sopenharmony_ci	.clkr = {
240362306a36Sopenharmony_ci		.enable_reg = 0x58074,
240462306a36Sopenharmony_ci		.enable_mask = BIT(0),
240562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
240662306a36Sopenharmony_ci			.name = "gcc_camss_csi_vfe1_clk",
240762306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
240862306a36Sopenharmony_ci				&vfe1_clk_src.clkr.hw,
240962306a36Sopenharmony_ci			},
241062306a36Sopenharmony_ci			.num_parents = 1,
241162306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
241262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
241362306a36Sopenharmony_ci		},
241462306a36Sopenharmony_ci	},
241562306a36Sopenharmony_ci};
241662306a36Sopenharmony_ci
241762306a36Sopenharmony_cistatic struct clk_branch gcc_camss_gp0_clk = {
241862306a36Sopenharmony_ci	.halt_reg = 0x54018,
241962306a36Sopenharmony_ci	.clkr = {
242062306a36Sopenharmony_ci		.enable_reg = 0x54018,
242162306a36Sopenharmony_ci		.enable_mask = BIT(0),
242262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
242362306a36Sopenharmony_ci			.name = "gcc_camss_gp0_clk",
242462306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
242562306a36Sopenharmony_ci				&camss_gp0_clk_src.clkr.hw,
242662306a36Sopenharmony_ci			},
242762306a36Sopenharmony_ci			.num_parents = 1,
242862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
242962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
243062306a36Sopenharmony_ci		},
243162306a36Sopenharmony_ci	},
243262306a36Sopenharmony_ci};
243362306a36Sopenharmony_ci
243462306a36Sopenharmony_cistatic struct clk_branch gcc_camss_gp1_clk = {
243562306a36Sopenharmony_ci	.halt_reg = 0x55018,
243662306a36Sopenharmony_ci	.clkr = {
243762306a36Sopenharmony_ci		.enable_reg = 0x55018,
243862306a36Sopenharmony_ci		.enable_mask = BIT(0),
243962306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
244062306a36Sopenharmony_ci			.name = "gcc_camss_gp1_clk",
244162306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
244262306a36Sopenharmony_ci				&camss_gp1_clk_src.clkr.hw,
244362306a36Sopenharmony_ci			},
244462306a36Sopenharmony_ci			.num_parents = 1,
244562306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
244662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
244762306a36Sopenharmony_ci		},
244862306a36Sopenharmony_ci	},
244962306a36Sopenharmony_ci};
245062306a36Sopenharmony_ci
245162306a36Sopenharmony_cistatic struct clk_branch gcc_camss_ispif_ahb_clk = {
245262306a36Sopenharmony_ci	.halt_reg = 0x50004,
245362306a36Sopenharmony_ci	.clkr = {
245462306a36Sopenharmony_ci		.enable_reg = 0x50004,
245562306a36Sopenharmony_ci		.enable_mask = BIT(0),
245662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
245762306a36Sopenharmony_ci			.name = "gcc_camss_ispif_ahb_clk",
245862306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
245962306a36Sopenharmony_ci				&camss_top_ahb_clk_src.clkr.hw,
246062306a36Sopenharmony_ci			},
246162306a36Sopenharmony_ci			.num_parents = 1,
246262306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
246362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
246462306a36Sopenharmony_ci		},
246562306a36Sopenharmony_ci	},
246662306a36Sopenharmony_ci};
246762306a36Sopenharmony_ci
246862306a36Sopenharmony_cistatic struct clk_branch gcc_camss_jpeg0_clk = {
246962306a36Sopenharmony_ci	.halt_reg = 0x57020,
247062306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
247162306a36Sopenharmony_ci	.clkr = {
247262306a36Sopenharmony_ci		.enable_reg = 0x57020,
247362306a36Sopenharmony_ci		.enable_mask = BIT(0),
247462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
247562306a36Sopenharmony_ci			.name = "gcc_camss_jpeg0_clk",
247662306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
247762306a36Sopenharmony_ci				&jpeg0_clk_src.clkr.hw,
247862306a36Sopenharmony_ci			},
247962306a36Sopenharmony_ci			.num_parents = 1,
248062306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
248162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
248262306a36Sopenharmony_ci		},
248362306a36Sopenharmony_ci	},
248462306a36Sopenharmony_ci};
248562306a36Sopenharmony_ci
248662306a36Sopenharmony_cistatic struct clk_branch gcc_camss_jpeg_ahb_clk = {
248762306a36Sopenharmony_ci	.halt_reg = 0x57024,
248862306a36Sopenharmony_ci	.clkr = {
248962306a36Sopenharmony_ci		.enable_reg = 0x57024,
249062306a36Sopenharmony_ci		.enable_mask = BIT(0),
249162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
249262306a36Sopenharmony_ci			.name = "gcc_camss_jpeg_ahb_clk",
249362306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
249462306a36Sopenharmony_ci				&camss_top_ahb_clk_src.clkr.hw,
249562306a36Sopenharmony_ci			},
249662306a36Sopenharmony_ci			.num_parents = 1,
249762306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
249862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
249962306a36Sopenharmony_ci		},
250062306a36Sopenharmony_ci	},
250162306a36Sopenharmony_ci};
250262306a36Sopenharmony_ci
250362306a36Sopenharmony_cistatic struct clk_branch gcc_camss_jpeg_axi_clk = {
250462306a36Sopenharmony_ci	.halt_reg = 0x57028,
250562306a36Sopenharmony_ci	.clkr = {
250662306a36Sopenharmony_ci		.enable_reg = 0x57028,
250762306a36Sopenharmony_ci		.enable_mask = BIT(0),
250862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
250962306a36Sopenharmony_ci			.name = "gcc_camss_jpeg_axi_clk",
251062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
251162306a36Sopenharmony_ci		},
251262306a36Sopenharmony_ci	},
251362306a36Sopenharmony_ci};
251462306a36Sopenharmony_ci
251562306a36Sopenharmony_cistatic struct clk_branch gcc_camss_mclk0_clk = {
251662306a36Sopenharmony_ci	.halt_reg = 0x52018,
251762306a36Sopenharmony_ci	.clkr = {
251862306a36Sopenharmony_ci		.enable_reg = 0x52018,
251962306a36Sopenharmony_ci		.enable_mask = BIT(0),
252062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
252162306a36Sopenharmony_ci			.name = "gcc_camss_mclk0_clk",
252262306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
252362306a36Sopenharmony_ci				&mclk0_clk_src.clkr.hw,
252462306a36Sopenharmony_ci			},
252562306a36Sopenharmony_ci			.num_parents = 1,
252662306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
252762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
252862306a36Sopenharmony_ci		},
252962306a36Sopenharmony_ci	},
253062306a36Sopenharmony_ci};
253162306a36Sopenharmony_ci
253262306a36Sopenharmony_cistatic struct clk_branch gcc_camss_mclk1_clk = {
253362306a36Sopenharmony_ci	.halt_reg = 0x53018,
253462306a36Sopenharmony_ci	.clkr = {
253562306a36Sopenharmony_ci		.enable_reg = 0x53018,
253662306a36Sopenharmony_ci		.enable_mask = BIT(0),
253762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
253862306a36Sopenharmony_ci			.name = "gcc_camss_mclk1_clk",
253962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
254062306a36Sopenharmony_ci				&mclk1_clk_src.clkr.hw,
254162306a36Sopenharmony_ci			},
254262306a36Sopenharmony_ci			.num_parents = 1,
254362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
254462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
254562306a36Sopenharmony_ci		},
254662306a36Sopenharmony_ci	},
254762306a36Sopenharmony_ci};
254862306a36Sopenharmony_ci
254962306a36Sopenharmony_cistatic struct clk_branch gcc_camss_mclk2_clk = {
255062306a36Sopenharmony_ci	.halt_reg = 0x5c018,
255162306a36Sopenharmony_ci	.clkr = {
255262306a36Sopenharmony_ci		.enable_reg = 0x5c018,
255362306a36Sopenharmony_ci		.enable_mask = BIT(0),
255462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
255562306a36Sopenharmony_ci			.name = "gcc_camss_mclk2_clk",
255662306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
255762306a36Sopenharmony_ci				&mclk2_clk_src.clkr.hw,
255862306a36Sopenharmony_ci			},
255962306a36Sopenharmony_ci			.num_parents = 1,
256062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
256162306a36Sopenharmony_ci		},
256262306a36Sopenharmony_ci	},
256362306a36Sopenharmony_ci};
256462306a36Sopenharmony_ci
256562306a36Sopenharmony_cistatic struct clk_branch gcc_camss_micro_ahb_clk = {
256662306a36Sopenharmony_ci	.halt_reg = 0x5600c,
256762306a36Sopenharmony_ci	.clkr = {
256862306a36Sopenharmony_ci		.enable_reg = 0x5600c,
256962306a36Sopenharmony_ci		.enable_mask = BIT(0),
257062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
257162306a36Sopenharmony_ci			.name = "gcc_camss_micro_ahb_clk",
257262306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
257362306a36Sopenharmony_ci				&camss_top_ahb_clk_src.clkr.hw,
257462306a36Sopenharmony_ci			},
257562306a36Sopenharmony_ci			.num_parents = 1,
257662306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
257762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
257862306a36Sopenharmony_ci		},
257962306a36Sopenharmony_ci	},
258062306a36Sopenharmony_ci};
258162306a36Sopenharmony_ci
258262306a36Sopenharmony_cistatic struct clk_branch gcc_camss_csi0phytimer_clk = {
258362306a36Sopenharmony_ci	.halt_reg = 0x4e01c,
258462306a36Sopenharmony_ci	.clkr = {
258562306a36Sopenharmony_ci		.enable_reg = 0x4e01c,
258662306a36Sopenharmony_ci		.enable_mask = BIT(0),
258762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
258862306a36Sopenharmony_ci			.name = "gcc_camss_csi0phytimer_clk",
258962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
259062306a36Sopenharmony_ci				&csi0phytimer_clk_src.clkr.hw,
259162306a36Sopenharmony_ci			},
259262306a36Sopenharmony_ci			.num_parents = 1,
259362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
259462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
259562306a36Sopenharmony_ci		},
259662306a36Sopenharmony_ci	},
259762306a36Sopenharmony_ci};
259862306a36Sopenharmony_ci
259962306a36Sopenharmony_cistatic struct clk_branch gcc_camss_csi1phytimer_clk = {
260062306a36Sopenharmony_ci	.halt_reg = 0x4f01c,
260162306a36Sopenharmony_ci	.clkr = {
260262306a36Sopenharmony_ci		.enable_reg = 0x4f01c,
260362306a36Sopenharmony_ci		.enable_mask = BIT(0),
260462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
260562306a36Sopenharmony_ci			.name = "gcc_camss_csi1phytimer_clk",
260662306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
260762306a36Sopenharmony_ci				&csi1phytimer_clk_src.clkr.hw,
260862306a36Sopenharmony_ci			},
260962306a36Sopenharmony_ci			.num_parents = 1,
261062306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
261162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
261262306a36Sopenharmony_ci		},
261362306a36Sopenharmony_ci	},
261462306a36Sopenharmony_ci};
261562306a36Sopenharmony_ci
261662306a36Sopenharmony_cistatic struct clk_branch gcc_camss_ahb_clk = {
261762306a36Sopenharmony_ci	.halt_reg = 0x56004,
261862306a36Sopenharmony_ci	.clkr = {
261962306a36Sopenharmony_ci		.enable_reg = 0x56004,
262062306a36Sopenharmony_ci		.enable_mask = BIT(0),
262162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
262262306a36Sopenharmony_ci			.name = "gcc_camss_ahb_clk",
262362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
262462306a36Sopenharmony_ci		},
262562306a36Sopenharmony_ci	},
262662306a36Sopenharmony_ci};
262762306a36Sopenharmony_ci
262862306a36Sopenharmony_cistatic struct clk_branch gcc_camss_top_ahb_clk = {
262962306a36Sopenharmony_ci	.halt_reg = 0x5a014,
263062306a36Sopenharmony_ci	.clkr = {
263162306a36Sopenharmony_ci		.enable_reg = 0x5a014,
263262306a36Sopenharmony_ci		.enable_mask = BIT(0),
263362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
263462306a36Sopenharmony_ci			.name = "gcc_camss_top_ahb_clk",
263562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
263662306a36Sopenharmony_ci				&camss_top_ahb_clk_src.clkr.hw,
263762306a36Sopenharmony_ci			},
263862306a36Sopenharmony_ci			.num_parents = 1,
263962306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
264062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
264162306a36Sopenharmony_ci		},
264262306a36Sopenharmony_ci	},
264362306a36Sopenharmony_ci};
264462306a36Sopenharmony_ci
264562306a36Sopenharmony_cistatic struct clk_branch gcc_camss_vfe0_clk = {
264662306a36Sopenharmony_ci	.halt_reg = 0x58038,
264762306a36Sopenharmony_ci	.clkr = {
264862306a36Sopenharmony_ci		.enable_reg = 0x58038,
264962306a36Sopenharmony_ci		.enable_mask = BIT(0),
265062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
265162306a36Sopenharmony_ci			.name = "gcc_camss_vfe0_clk",
265262306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
265362306a36Sopenharmony_ci				&vfe0_clk_src.clkr.hw,
265462306a36Sopenharmony_ci			},
265562306a36Sopenharmony_ci			.num_parents = 1,
265662306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
265762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
265862306a36Sopenharmony_ci		},
265962306a36Sopenharmony_ci	},
266062306a36Sopenharmony_ci};
266162306a36Sopenharmony_ci
266262306a36Sopenharmony_cistatic struct clk_branch gcc_camss_vfe_ahb_clk = {
266362306a36Sopenharmony_ci	.halt_reg = 0x58044,
266462306a36Sopenharmony_ci	.clkr = {
266562306a36Sopenharmony_ci		.enable_reg = 0x58044,
266662306a36Sopenharmony_ci		.enable_mask = BIT(0),
266762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
266862306a36Sopenharmony_ci			.name = "gcc_camss_vfe_ahb_clk",
266962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
267062306a36Sopenharmony_ci				&camss_top_ahb_clk_src.clkr.hw,
267162306a36Sopenharmony_ci			},
267262306a36Sopenharmony_ci			.num_parents = 1,
267362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
267462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
267562306a36Sopenharmony_ci		},
267662306a36Sopenharmony_ci	},
267762306a36Sopenharmony_ci};
267862306a36Sopenharmony_ci
267962306a36Sopenharmony_cistatic struct clk_branch gcc_camss_vfe_axi_clk = {
268062306a36Sopenharmony_ci	.halt_reg = 0x58048,
268162306a36Sopenharmony_ci	.clkr = {
268262306a36Sopenharmony_ci		.enable_reg = 0x58048,
268362306a36Sopenharmony_ci		.enable_mask = BIT(0),
268462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
268562306a36Sopenharmony_ci			.name = "gcc_camss_vfe_axi_clk",
268662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
268762306a36Sopenharmony_ci		},
268862306a36Sopenharmony_ci	},
268962306a36Sopenharmony_ci};
269062306a36Sopenharmony_ci
269162306a36Sopenharmony_cistatic struct clk_branch gcc_camss_vfe1_ahb_clk = {
269262306a36Sopenharmony_ci	.halt_reg = 0x58060,
269362306a36Sopenharmony_ci	.clkr = {
269462306a36Sopenharmony_ci		.enable_reg = 0x58060,
269562306a36Sopenharmony_ci		.enable_mask = BIT(0),
269662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
269762306a36Sopenharmony_ci			.name = "gcc_camss_vfe1_ahb_clk",
269862306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
269962306a36Sopenharmony_ci				&camss_top_ahb_clk_src.clkr.hw,
270062306a36Sopenharmony_ci			},
270162306a36Sopenharmony_ci			.num_parents = 1,
270262306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
270362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
270462306a36Sopenharmony_ci		},
270562306a36Sopenharmony_ci	},
270662306a36Sopenharmony_ci};
270762306a36Sopenharmony_ci
270862306a36Sopenharmony_cistatic struct clk_branch gcc_camss_vfe1_axi_clk = {
270962306a36Sopenharmony_ci	.halt_reg = 0x58068,
271062306a36Sopenharmony_ci	.clkr = {
271162306a36Sopenharmony_ci		.enable_reg = 0x58068,
271262306a36Sopenharmony_ci		.enable_mask = BIT(0),
271362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
271462306a36Sopenharmony_ci			.name = "gcc_camss_vfe1_axi_clk",
271562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
271662306a36Sopenharmony_ci		},
271762306a36Sopenharmony_ci	},
271862306a36Sopenharmony_ci};
271962306a36Sopenharmony_ci
272062306a36Sopenharmony_cistatic struct clk_branch gcc_camss_vfe1_clk = {
272162306a36Sopenharmony_ci	.halt_reg = 0x5805c,
272262306a36Sopenharmony_ci	.clkr = {
272362306a36Sopenharmony_ci		.enable_reg = 0x5805c,
272462306a36Sopenharmony_ci		.enable_mask = BIT(0),
272562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
272662306a36Sopenharmony_ci			.name = "gcc_camss_vfe1_clk",
272762306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
272862306a36Sopenharmony_ci				&vfe1_clk_src.clkr.hw,
272962306a36Sopenharmony_ci			},
273062306a36Sopenharmony_ci			.num_parents = 1,
273162306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
273262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
273362306a36Sopenharmony_ci		},
273462306a36Sopenharmony_ci	},
273562306a36Sopenharmony_ci};
273662306a36Sopenharmony_ci
273762306a36Sopenharmony_cistatic struct clk_branch gcc_dcc_clk = {
273862306a36Sopenharmony_ci	.halt_reg = 0x77004,
273962306a36Sopenharmony_ci	.clkr = {
274062306a36Sopenharmony_ci		.enable_reg = 0x77004,
274162306a36Sopenharmony_ci		.enable_mask = BIT(0),
274262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
274362306a36Sopenharmony_ci			.name = "gcc_dcc_clk",
274462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
274562306a36Sopenharmony_ci		},
274662306a36Sopenharmony_ci	},
274762306a36Sopenharmony_ci};
274862306a36Sopenharmony_ci
274962306a36Sopenharmony_cistatic struct clk_branch gcc_oxili_gmem_clk = {
275062306a36Sopenharmony_ci	.halt_reg = 0x59024,
275162306a36Sopenharmony_ci	.clkr = {
275262306a36Sopenharmony_ci		.enable_reg = 0x59024,
275362306a36Sopenharmony_ci		.enable_mask = BIT(0),
275462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
275562306a36Sopenharmony_ci			.name = "gcc_oxili_gmem_clk",
275662306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
275762306a36Sopenharmony_ci				&gfx3d_clk_src.clkr.hw,
275862306a36Sopenharmony_ci			},
275962306a36Sopenharmony_ci			.num_parents = 1,
276062306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
276162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
276262306a36Sopenharmony_ci		},
276362306a36Sopenharmony_ci	},
276462306a36Sopenharmony_ci};
276562306a36Sopenharmony_ci
276662306a36Sopenharmony_cistatic struct clk_branch gcc_gp1_clk = {
276762306a36Sopenharmony_ci	.halt_reg = 0x8000,
276862306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
276962306a36Sopenharmony_ci	.clkr = {
277062306a36Sopenharmony_ci		.enable_reg = 0x8000,
277162306a36Sopenharmony_ci		.enable_mask = BIT(0),
277262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
277362306a36Sopenharmony_ci			.name = "gcc_gp1_clk",
277462306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
277562306a36Sopenharmony_ci				&gp1_clk_src.clkr.hw,
277662306a36Sopenharmony_ci			},
277762306a36Sopenharmony_ci			.num_parents = 1,
277862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
277962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
278062306a36Sopenharmony_ci		},
278162306a36Sopenharmony_ci	},
278262306a36Sopenharmony_ci};
278362306a36Sopenharmony_ci
278462306a36Sopenharmony_cistatic struct clk_branch gcc_gp2_clk = {
278562306a36Sopenharmony_ci	.halt_reg = 0x9000,
278662306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
278762306a36Sopenharmony_ci	.clkr = {
278862306a36Sopenharmony_ci		.enable_reg = 0x9000,
278962306a36Sopenharmony_ci		.enable_mask = BIT(0),
279062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
279162306a36Sopenharmony_ci			.name = "gcc_gp2_clk",
279262306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
279362306a36Sopenharmony_ci				&gp2_clk_src.clkr.hw,
279462306a36Sopenharmony_ci			},
279562306a36Sopenharmony_ci			.num_parents = 1,
279662306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
279762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
279862306a36Sopenharmony_ci		},
279962306a36Sopenharmony_ci	},
280062306a36Sopenharmony_ci};
280162306a36Sopenharmony_ci
280262306a36Sopenharmony_cistatic struct clk_branch gcc_gp3_clk = {
280362306a36Sopenharmony_ci	.halt_reg = 0xa000,
280462306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
280562306a36Sopenharmony_ci	.clkr = {
280662306a36Sopenharmony_ci		.enable_reg = 0xa000,
280762306a36Sopenharmony_ci		.enable_mask = BIT(0),
280862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
280962306a36Sopenharmony_ci			.name = "gcc_gp3_clk",
281062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
281162306a36Sopenharmony_ci				&gp3_clk_src.clkr.hw,
281262306a36Sopenharmony_ci			},
281362306a36Sopenharmony_ci			.num_parents = 1,
281462306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
281562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
281662306a36Sopenharmony_ci		},
281762306a36Sopenharmony_ci	},
281862306a36Sopenharmony_ci};
281962306a36Sopenharmony_ci
282062306a36Sopenharmony_cistatic struct clk_branch gcc_mdss_ahb_clk = {
282162306a36Sopenharmony_ci	.halt_reg = 0x4d07c,
282262306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
282362306a36Sopenharmony_ci	.clkr = {
282462306a36Sopenharmony_ci		.enable_reg = 0x4d07c,
282562306a36Sopenharmony_ci		.enable_mask = BIT(0),
282662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
282762306a36Sopenharmony_ci			.name = "gcc_mdss_ahb_clk",
282862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
282962306a36Sopenharmony_ci		},
283062306a36Sopenharmony_ci	},
283162306a36Sopenharmony_ci};
283262306a36Sopenharmony_ci
283362306a36Sopenharmony_cistatic struct clk_branch gcc_mdss_axi_clk = {
283462306a36Sopenharmony_ci	.halt_reg = 0x4d080,
283562306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
283662306a36Sopenharmony_ci	.clkr = {
283762306a36Sopenharmony_ci		.enable_reg = 0x4d080,
283862306a36Sopenharmony_ci		.enable_mask = BIT(0),
283962306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
284062306a36Sopenharmony_ci			.name = "gcc_mdss_axi_clk",
284162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
284262306a36Sopenharmony_ci		},
284362306a36Sopenharmony_ci	},
284462306a36Sopenharmony_ci};
284562306a36Sopenharmony_ci
284662306a36Sopenharmony_cistatic struct clk_branch gcc_mdss_byte0_clk = {
284762306a36Sopenharmony_ci	.halt_reg = 0x4d094,
284862306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
284962306a36Sopenharmony_ci	.clkr = {
285062306a36Sopenharmony_ci		.enable_reg = 0x4d094,
285162306a36Sopenharmony_ci		.enable_mask = BIT(0),
285262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
285362306a36Sopenharmony_ci			.name = "gcc_mdss_byte0_clk",
285462306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
285562306a36Sopenharmony_ci				&byte0_clk_src.clkr.hw,
285662306a36Sopenharmony_ci			},
285762306a36Sopenharmony_ci			.num_parents = 1,
285862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
285962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
286062306a36Sopenharmony_ci		},
286162306a36Sopenharmony_ci	},
286262306a36Sopenharmony_ci};
286362306a36Sopenharmony_ci
286462306a36Sopenharmony_cistatic struct clk_branch gcc_mdss_byte1_clk = {
286562306a36Sopenharmony_ci	.halt_reg = 0x4d0a0,
286662306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
286762306a36Sopenharmony_ci	.clkr = {
286862306a36Sopenharmony_ci		.enable_reg = 0x4d0a0,
286962306a36Sopenharmony_ci		.enable_mask = BIT(0),
287062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
287162306a36Sopenharmony_ci			.name = "gcc_mdss_byte1_clk",
287262306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
287362306a36Sopenharmony_ci				&byte1_clk_src.clkr.hw,
287462306a36Sopenharmony_ci			},
287562306a36Sopenharmony_ci			.num_parents = 1,
287662306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
287762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
287862306a36Sopenharmony_ci		},
287962306a36Sopenharmony_ci	},
288062306a36Sopenharmony_ci};
288162306a36Sopenharmony_ci
288262306a36Sopenharmony_cistatic struct clk_branch gcc_mdss_esc0_clk = {
288362306a36Sopenharmony_ci	.halt_reg = 0x4d098,
288462306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
288562306a36Sopenharmony_ci	.clkr = {
288662306a36Sopenharmony_ci		.enable_reg = 0x4d098,
288762306a36Sopenharmony_ci		.enable_mask = BIT(0),
288862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
288962306a36Sopenharmony_ci			.name = "gcc_mdss_esc0_clk",
289062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
289162306a36Sopenharmony_ci				&esc0_clk_src.clkr.hw,
289262306a36Sopenharmony_ci			},
289362306a36Sopenharmony_ci			.num_parents = 1,
289462306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
289562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
289662306a36Sopenharmony_ci		},
289762306a36Sopenharmony_ci	},
289862306a36Sopenharmony_ci};
289962306a36Sopenharmony_ci
290062306a36Sopenharmony_cistatic struct clk_branch gcc_mdss_esc1_clk = {
290162306a36Sopenharmony_ci	.halt_reg = 0x4d09c,
290262306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
290362306a36Sopenharmony_ci	.clkr = {
290462306a36Sopenharmony_ci		.enable_reg = 0x4d09c,
290562306a36Sopenharmony_ci		.enable_mask = BIT(0),
290662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
290762306a36Sopenharmony_ci			.name = "gcc_mdss_esc1_clk",
290862306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
290962306a36Sopenharmony_ci				&esc1_clk_src.clkr.hw,
291062306a36Sopenharmony_ci			},
291162306a36Sopenharmony_ci			.num_parents = 1,
291262306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
291362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
291462306a36Sopenharmony_ci		},
291562306a36Sopenharmony_ci	},
291662306a36Sopenharmony_ci};
291762306a36Sopenharmony_ci
291862306a36Sopenharmony_cistatic struct clk_branch gcc_mdss_mdp_clk = {
291962306a36Sopenharmony_ci	.halt_reg = 0x4d088,
292062306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
292162306a36Sopenharmony_ci	.clkr = {
292262306a36Sopenharmony_ci		.enable_reg = 0x4d088,
292362306a36Sopenharmony_ci		.enable_mask = BIT(0),
292462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
292562306a36Sopenharmony_ci			.name = "gcc_mdss_mdp_clk",
292662306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
292762306a36Sopenharmony_ci				&mdp_clk_src.clkr.hw,
292862306a36Sopenharmony_ci			},
292962306a36Sopenharmony_ci			.num_parents = 1,
293062306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
293162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
293262306a36Sopenharmony_ci		},
293362306a36Sopenharmony_ci	},
293462306a36Sopenharmony_ci};
293562306a36Sopenharmony_ci
293662306a36Sopenharmony_cistatic struct clk_branch gcc_mdss_pclk0_clk = {
293762306a36Sopenharmony_ci	.halt_reg = 0x4d084,
293862306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
293962306a36Sopenharmony_ci	.clkr = {
294062306a36Sopenharmony_ci		.enable_reg = 0x4d084,
294162306a36Sopenharmony_ci		.enable_mask = BIT(0),
294262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
294362306a36Sopenharmony_ci			.name = "gcc_mdss_pclk0_clk",
294462306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
294562306a36Sopenharmony_ci				&pclk0_clk_src.clkr.hw,
294662306a36Sopenharmony_ci			},
294762306a36Sopenharmony_ci			.num_parents = 1,
294862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
294962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
295062306a36Sopenharmony_ci		},
295162306a36Sopenharmony_ci	},
295262306a36Sopenharmony_ci};
295362306a36Sopenharmony_ci
295462306a36Sopenharmony_cistatic struct clk_branch gcc_mdss_pclk1_clk = {
295562306a36Sopenharmony_ci	.halt_reg = 0x4d0a4,
295662306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
295762306a36Sopenharmony_ci	.clkr = {
295862306a36Sopenharmony_ci		.enable_reg = 0x4d0a4,
295962306a36Sopenharmony_ci		.enable_mask = BIT(0),
296062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
296162306a36Sopenharmony_ci			.name = "gcc_mdss_pclk1_clk",
296262306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
296362306a36Sopenharmony_ci				&pclk1_clk_src.clkr.hw,
296462306a36Sopenharmony_ci			},
296562306a36Sopenharmony_ci			.num_parents = 1,
296662306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
296762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
296862306a36Sopenharmony_ci		},
296962306a36Sopenharmony_ci	},
297062306a36Sopenharmony_ci};
297162306a36Sopenharmony_ci
297262306a36Sopenharmony_cistatic struct clk_branch gcc_mdss_vsync_clk = {
297362306a36Sopenharmony_ci	.halt_reg = 0x4d090,
297462306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
297562306a36Sopenharmony_ci	.clkr = {
297662306a36Sopenharmony_ci		.enable_reg = 0x4d090,
297762306a36Sopenharmony_ci		.enable_mask = BIT(0),
297862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
297962306a36Sopenharmony_ci			.name = "gcc_mdss_vsync_clk",
298062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
298162306a36Sopenharmony_ci				&vsync_clk_src.clkr.hw,
298262306a36Sopenharmony_ci			},
298362306a36Sopenharmony_ci			.num_parents = 1,
298462306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
298562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
298662306a36Sopenharmony_ci		},
298762306a36Sopenharmony_ci	},
298862306a36Sopenharmony_ci};
298962306a36Sopenharmony_ci
299062306a36Sopenharmony_cistatic struct clk_branch gcc_mss_cfg_ahb_clk = {
299162306a36Sopenharmony_ci	.halt_reg = 0x49000,
299262306a36Sopenharmony_ci	.clkr = {
299362306a36Sopenharmony_ci		.enable_reg = 0x49000,
299462306a36Sopenharmony_ci		.enable_mask = BIT(0),
299562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
299662306a36Sopenharmony_ci			.name = "gcc_mss_cfg_ahb_clk",
299762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
299862306a36Sopenharmony_ci		},
299962306a36Sopenharmony_ci	},
300062306a36Sopenharmony_ci};
300162306a36Sopenharmony_ci
300262306a36Sopenharmony_cistatic struct clk_branch gcc_mss_q6_bimc_axi_clk = {
300362306a36Sopenharmony_ci	.halt_reg = 0x49004,
300462306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
300562306a36Sopenharmony_ci	.clkr = {
300662306a36Sopenharmony_ci		.enable_reg = 0x49004,
300762306a36Sopenharmony_ci		.enable_mask = BIT(0),
300862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
300962306a36Sopenharmony_ci			.name = "gcc_mss_q6_bimc_axi_clk",
301062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
301162306a36Sopenharmony_ci		},
301262306a36Sopenharmony_ci	},
301362306a36Sopenharmony_ci};
301462306a36Sopenharmony_ci
301562306a36Sopenharmony_cistatic struct clk_branch gcc_bimc_gfx_clk = {
301662306a36Sopenharmony_ci	.halt_reg = 0x59048,
301762306a36Sopenharmony_ci	.clkr = {
301862306a36Sopenharmony_ci		.enable_reg = 0x59048,
301962306a36Sopenharmony_ci		.enable_mask = BIT(0),
302062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
302162306a36Sopenharmony_ci			.name = "gcc_bimc_gfx_clk",
302262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
302362306a36Sopenharmony_ci		},
302462306a36Sopenharmony_ci	},
302562306a36Sopenharmony_ci};
302662306a36Sopenharmony_ci
302762306a36Sopenharmony_cistatic struct clk_branch gcc_oxili_ahb_clk = {
302862306a36Sopenharmony_ci	.halt_reg = 0x59028,
302962306a36Sopenharmony_ci	.clkr = {
303062306a36Sopenharmony_ci		.enable_reg = 0x59028,
303162306a36Sopenharmony_ci		.enable_mask = BIT(0),
303262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
303362306a36Sopenharmony_ci			.name = "gcc_oxili_ahb_clk",
303462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
303562306a36Sopenharmony_ci		},
303662306a36Sopenharmony_ci	},
303762306a36Sopenharmony_ci};
303862306a36Sopenharmony_ci
303962306a36Sopenharmony_cistatic struct clk_branch gcc_oxili_aon_clk = {
304062306a36Sopenharmony_ci	.halt_reg = 0x59044,
304162306a36Sopenharmony_ci	.clkr = {
304262306a36Sopenharmony_ci		.enable_reg = 0x59044,
304362306a36Sopenharmony_ci		.enable_mask = BIT(0),
304462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
304562306a36Sopenharmony_ci			.name = "gcc_oxili_aon_clk",
304662306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
304762306a36Sopenharmony_ci				&gfx3d_clk_src.clkr.hw,
304862306a36Sopenharmony_ci			},
304962306a36Sopenharmony_ci			.num_parents = 1,
305062306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
305162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
305262306a36Sopenharmony_ci		},
305362306a36Sopenharmony_ci	},
305462306a36Sopenharmony_ci};
305562306a36Sopenharmony_ci
305662306a36Sopenharmony_cistatic struct clk_branch gcc_oxili_gfx3d_clk = {
305762306a36Sopenharmony_ci	.halt_reg = 0x59020,
305862306a36Sopenharmony_ci	.clkr = {
305962306a36Sopenharmony_ci		.enable_reg = 0x59020,
306062306a36Sopenharmony_ci		.enable_mask = BIT(0),
306162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
306262306a36Sopenharmony_ci			.name = "gcc_oxili_gfx3d_clk",
306362306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
306462306a36Sopenharmony_ci				&gfx3d_clk_src.clkr.hw,
306562306a36Sopenharmony_ci			},
306662306a36Sopenharmony_ci			.num_parents = 1,
306762306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
306862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
306962306a36Sopenharmony_ci		},
307062306a36Sopenharmony_ci	},
307162306a36Sopenharmony_ci};
307262306a36Sopenharmony_ci
307362306a36Sopenharmony_cistatic struct clk_branch gcc_oxili_timer_clk = {
307462306a36Sopenharmony_ci	.halt_reg = 0x59040,
307562306a36Sopenharmony_ci	.clkr = {
307662306a36Sopenharmony_ci		.enable_reg = 0x59040,
307762306a36Sopenharmony_ci		.enable_mask = BIT(0),
307862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
307962306a36Sopenharmony_ci			.name = "gcc_oxili_timer_clk",
308062306a36Sopenharmony_ci			.parent_data = &(const struct clk_parent_data){
308162306a36Sopenharmony_ci				.fw_name = "xo",
308262306a36Sopenharmony_ci			},
308362306a36Sopenharmony_ci			.num_parents = 1,
308462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
308562306a36Sopenharmony_ci		},
308662306a36Sopenharmony_ci	},
308762306a36Sopenharmony_ci};
308862306a36Sopenharmony_ci
308962306a36Sopenharmony_cistatic struct clk_branch gcc_pdm2_clk = {
309062306a36Sopenharmony_ci	.halt_reg = 0x4400c,
309162306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
309262306a36Sopenharmony_ci	.clkr = {
309362306a36Sopenharmony_ci		.enable_reg = 0x4400c,
309462306a36Sopenharmony_ci		.enable_mask = BIT(0),
309562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
309662306a36Sopenharmony_ci			.name = "gcc_pdm2_clk",
309762306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
309862306a36Sopenharmony_ci				&pdm2_clk_src.clkr.hw,
309962306a36Sopenharmony_ci			},
310062306a36Sopenharmony_ci			.num_parents = 1,
310162306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
310262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
310362306a36Sopenharmony_ci		},
310462306a36Sopenharmony_ci	},
310562306a36Sopenharmony_ci};
310662306a36Sopenharmony_ci
310762306a36Sopenharmony_cistatic struct clk_branch gcc_pdm_ahb_clk = {
310862306a36Sopenharmony_ci	.halt_reg = 0x44004,
310962306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
311062306a36Sopenharmony_ci	.clkr = {
311162306a36Sopenharmony_ci		.enable_reg = 0x44004,
311262306a36Sopenharmony_ci		.enable_mask = BIT(0),
311362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
311462306a36Sopenharmony_ci			.name = "gcc_pdm_ahb_clk",
311562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
311662306a36Sopenharmony_ci		},
311762306a36Sopenharmony_ci	},
311862306a36Sopenharmony_ci};
311962306a36Sopenharmony_ci
312062306a36Sopenharmony_cistatic struct clk_branch gcc_rbcpr_gfx_ahb_clk = {
312162306a36Sopenharmony_ci	.halt_reg = 0x3a008,
312262306a36Sopenharmony_ci	.clkr = {
312362306a36Sopenharmony_ci		.enable_reg = 0x3a008,
312462306a36Sopenharmony_ci		.enable_mask = BIT(0),
312562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
312662306a36Sopenharmony_ci			.name = "gcc_rbcpr_gfx_ahb_clk",
312762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
312862306a36Sopenharmony_ci		},
312962306a36Sopenharmony_ci	},
313062306a36Sopenharmony_ci};
313162306a36Sopenharmony_ci
313262306a36Sopenharmony_cistatic struct clk_branch gcc_rbcpr_gfx_clk = {
313362306a36Sopenharmony_ci	.halt_reg = 0x3a004,
313462306a36Sopenharmony_ci	.clkr = {
313562306a36Sopenharmony_ci		.enable_reg = 0x3a004,
313662306a36Sopenharmony_ci		.enable_mask = BIT(0),
313762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
313862306a36Sopenharmony_ci			.name = "gcc_rbcpr_gfx_clk",
313962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
314062306a36Sopenharmony_ci				&rbcpr_gfx_clk_src.clkr.hw,
314162306a36Sopenharmony_ci			},
314262306a36Sopenharmony_ci			.num_parents = 1,
314362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
314462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
314562306a36Sopenharmony_ci		},
314662306a36Sopenharmony_ci	},
314762306a36Sopenharmony_ci};
314862306a36Sopenharmony_ci
314962306a36Sopenharmony_cistatic struct clk_branch gcc_sdcc1_ahb_clk = {
315062306a36Sopenharmony_ci	.halt_reg = 0x4201c,
315162306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
315262306a36Sopenharmony_ci	.clkr = {
315362306a36Sopenharmony_ci		.enable_reg = 0x4201c,
315462306a36Sopenharmony_ci		.enable_mask = BIT(0),
315562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
315662306a36Sopenharmony_ci			.name = "gcc_sdcc1_ahb_clk",
315762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
315862306a36Sopenharmony_ci		},
315962306a36Sopenharmony_ci	},
316062306a36Sopenharmony_ci};
316162306a36Sopenharmony_ci
316262306a36Sopenharmony_cistatic struct clk_branch gcc_sdcc1_apps_clk = {
316362306a36Sopenharmony_ci	.halt_reg = 0x42018,
316462306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
316562306a36Sopenharmony_ci	.clkr = {
316662306a36Sopenharmony_ci		.enable_reg = 0x42018,
316762306a36Sopenharmony_ci		.enable_mask = BIT(0),
316862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
316962306a36Sopenharmony_ci			.name = "gcc_sdcc1_apps_clk",
317062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
317162306a36Sopenharmony_ci				&sdcc1_apps_clk_src.clkr.hw,
317262306a36Sopenharmony_ci			},
317362306a36Sopenharmony_ci			.num_parents = 1,
317462306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
317562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
317662306a36Sopenharmony_ci		},
317762306a36Sopenharmony_ci	},
317862306a36Sopenharmony_ci};
317962306a36Sopenharmony_ci
318062306a36Sopenharmony_cistatic struct clk_branch gcc_sdcc1_ice_core_clk = {
318162306a36Sopenharmony_ci	.halt_reg = 0x5d014,
318262306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
318362306a36Sopenharmony_ci	.clkr = {
318462306a36Sopenharmony_ci		.enable_reg = 0x5d014,
318562306a36Sopenharmony_ci		.enable_mask = BIT(0),
318662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
318762306a36Sopenharmony_ci			.name = "gcc_sdcc1_ice_core_clk",
318862306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
318962306a36Sopenharmony_ci				&sdcc1_ice_core_clk_src.clkr.hw,
319062306a36Sopenharmony_ci			},
319162306a36Sopenharmony_ci			.num_parents = 1,
319262306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
319362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
319462306a36Sopenharmony_ci		},
319562306a36Sopenharmony_ci	},
319662306a36Sopenharmony_ci};
319762306a36Sopenharmony_ci
319862306a36Sopenharmony_cistatic struct clk_branch gcc_sdcc2_ahb_clk = {
319962306a36Sopenharmony_ci	.halt_reg = 0x4301c,
320062306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
320162306a36Sopenharmony_ci	.clkr = {
320262306a36Sopenharmony_ci		.enable_reg = 0x4301c,
320362306a36Sopenharmony_ci		.enable_mask = BIT(0),
320462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
320562306a36Sopenharmony_ci			.name = "gcc_sdcc2_ahb_clk",
320662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
320762306a36Sopenharmony_ci		},
320862306a36Sopenharmony_ci	},
320962306a36Sopenharmony_ci};
321062306a36Sopenharmony_ci
321162306a36Sopenharmony_cistatic struct clk_branch gcc_sdcc2_apps_clk = {
321262306a36Sopenharmony_ci	.halt_reg = 0x43018,
321362306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
321462306a36Sopenharmony_ci	.clkr = {
321562306a36Sopenharmony_ci		.enable_reg = 0x43018,
321662306a36Sopenharmony_ci		.enable_mask = BIT(0),
321762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
321862306a36Sopenharmony_ci			.name = "gcc_sdcc2_apps_clk",
321962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
322062306a36Sopenharmony_ci				&sdcc2_apps_clk_src.clkr.hw,
322162306a36Sopenharmony_ci			},
322262306a36Sopenharmony_ci			.num_parents = 1,
322362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
322462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
322562306a36Sopenharmony_ci		},
322662306a36Sopenharmony_ci	},
322762306a36Sopenharmony_ci};
322862306a36Sopenharmony_ci
322962306a36Sopenharmony_cistatic struct clk_branch gcc_sdcc3_ahb_clk = {
323062306a36Sopenharmony_ci	.halt_reg = 0x3901c,
323162306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
323262306a36Sopenharmony_ci	.clkr = {
323362306a36Sopenharmony_ci		.enable_reg = 0x3901c,
323462306a36Sopenharmony_ci		.enable_mask = BIT(0),
323562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
323662306a36Sopenharmony_ci			.name = "gcc_sdcc3_ahb_clk",
323762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
323862306a36Sopenharmony_ci		},
323962306a36Sopenharmony_ci	},
324062306a36Sopenharmony_ci};
324162306a36Sopenharmony_ci
324262306a36Sopenharmony_cistatic struct clk_branch gcc_sdcc3_apps_clk = {
324362306a36Sopenharmony_ci	.halt_reg = 0x39018,
324462306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
324562306a36Sopenharmony_ci	.clkr = {
324662306a36Sopenharmony_ci		.enable_reg = 0x39018,
324762306a36Sopenharmony_ci		.enable_mask = BIT(0),
324862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
324962306a36Sopenharmony_ci			.name = "gcc_sdcc3_apps_clk",
325062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
325162306a36Sopenharmony_ci				&sdcc3_apps_clk_src.clkr.hw,
325262306a36Sopenharmony_ci			},
325362306a36Sopenharmony_ci			.num_parents = 1,
325462306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
325562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
325662306a36Sopenharmony_ci		},
325762306a36Sopenharmony_ci	},
325862306a36Sopenharmony_ci};
325962306a36Sopenharmony_ci
326062306a36Sopenharmony_cistatic struct clk_branch gcc_usb2a_phy_sleep_clk = {
326162306a36Sopenharmony_ci	.halt_reg = 0x4102c,
326262306a36Sopenharmony_ci	.clkr = {
326362306a36Sopenharmony_ci		.enable_reg = 0x4102c,
326462306a36Sopenharmony_ci		.enable_mask = BIT(0),
326562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
326662306a36Sopenharmony_ci			.name = "gcc_usb2a_phy_sleep_clk",
326762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
326862306a36Sopenharmony_ci		},
326962306a36Sopenharmony_ci	},
327062306a36Sopenharmony_ci};
327162306a36Sopenharmony_ci
327262306a36Sopenharmony_cistatic struct clk_branch gcc_usb_hs_phy_cfg_ahb_clk = {
327362306a36Sopenharmony_ci	.halt_reg = 0x41030,
327462306a36Sopenharmony_ci	.clkr = {
327562306a36Sopenharmony_ci		.enable_reg = 0x41030,
327662306a36Sopenharmony_ci		.enable_mask = BIT(0),
327762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
327862306a36Sopenharmony_ci			.name = "gcc_usb_hs_phy_cfg_ahb_clk",
327962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
328062306a36Sopenharmony_ci		},
328162306a36Sopenharmony_ci	},
328262306a36Sopenharmony_ci};
328362306a36Sopenharmony_ci
328462306a36Sopenharmony_cistatic struct clk_branch gcc_usb_fs_ahb_clk = {
328562306a36Sopenharmony_ci	.halt_reg = 0x3f008,
328662306a36Sopenharmony_ci	.clkr = {
328762306a36Sopenharmony_ci		.enable_reg = 0x3f008,
328862306a36Sopenharmony_ci		.enable_mask = BIT(0),
328962306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
329062306a36Sopenharmony_ci			.name = "gcc_usb_fs_ahb_clk",
329162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
329262306a36Sopenharmony_ci		},
329362306a36Sopenharmony_ci	},
329462306a36Sopenharmony_ci};
329562306a36Sopenharmony_ci
329662306a36Sopenharmony_cistatic struct clk_branch gcc_usb_fs_ic_clk = {
329762306a36Sopenharmony_ci	.halt_reg = 0x3f030,
329862306a36Sopenharmony_ci	.clkr = {
329962306a36Sopenharmony_ci		.enable_reg = 0x3f030,
330062306a36Sopenharmony_ci		.enable_mask = BIT(0),
330162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
330262306a36Sopenharmony_ci			.name = "gcc_usb_fs_ic_clk",
330362306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
330462306a36Sopenharmony_ci				&usb_fs_ic_clk_src.clkr.hw,
330562306a36Sopenharmony_ci			},
330662306a36Sopenharmony_ci			.num_parents = 1,
330762306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
330862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
330962306a36Sopenharmony_ci		},
331062306a36Sopenharmony_ci	},
331162306a36Sopenharmony_ci};
331262306a36Sopenharmony_ci
331362306a36Sopenharmony_cistatic struct clk_branch gcc_usb_fs_system_clk = {
331462306a36Sopenharmony_ci	.halt_reg = 0x3f004,
331562306a36Sopenharmony_ci	.clkr = {
331662306a36Sopenharmony_ci		.enable_reg = 0x3f004,
331762306a36Sopenharmony_ci		.enable_mask = BIT(0),
331862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
331962306a36Sopenharmony_ci			.name = "gcc_usb_fs_system_clk",
332062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
332162306a36Sopenharmony_ci				&usb_fs_system_clk_src.clkr.hw,
332262306a36Sopenharmony_ci			},
332362306a36Sopenharmony_ci			.num_parents = 1,
332462306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
332562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
332662306a36Sopenharmony_ci		},
332762306a36Sopenharmony_ci	},
332862306a36Sopenharmony_ci};
332962306a36Sopenharmony_ci
333062306a36Sopenharmony_cistatic struct clk_branch gcc_usb_hs_ahb_clk = {
333162306a36Sopenharmony_ci	.halt_reg = 0x41008,
333262306a36Sopenharmony_ci	.clkr = {
333362306a36Sopenharmony_ci		.enable_reg = 0x41008,
333462306a36Sopenharmony_ci		.enable_mask = BIT(0),
333562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
333662306a36Sopenharmony_ci			.name = "gcc_usb_hs_ahb_clk",
333762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
333862306a36Sopenharmony_ci		},
333962306a36Sopenharmony_ci	},
334062306a36Sopenharmony_ci};
334162306a36Sopenharmony_ci
334262306a36Sopenharmony_cistatic struct clk_branch gcc_usb_hs_system_clk = {
334362306a36Sopenharmony_ci	.halt_reg = 0x41004,
334462306a36Sopenharmony_ci	.clkr = {
334562306a36Sopenharmony_ci		.enable_reg = 0x41004,
334662306a36Sopenharmony_ci		.enable_mask = BIT(0),
334762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
334862306a36Sopenharmony_ci			.name = "gcc_usb_hs_system_clk",
334962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
335062306a36Sopenharmony_ci				&usb_hs_system_clk_src.clkr.hw,
335162306a36Sopenharmony_ci			},
335262306a36Sopenharmony_ci			.num_parents = 1,
335362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
335462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
335562306a36Sopenharmony_ci		},
335662306a36Sopenharmony_ci	},
335762306a36Sopenharmony_ci};
335862306a36Sopenharmony_ci
335962306a36Sopenharmony_cistatic struct clk_branch gcc_venus0_ahb_clk = {
336062306a36Sopenharmony_ci	.halt_reg = 0x4c020,
336162306a36Sopenharmony_ci	.clkr = {
336262306a36Sopenharmony_ci		.enable_reg = 0x4c020,
336362306a36Sopenharmony_ci		.enable_mask = BIT(0),
336462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
336562306a36Sopenharmony_ci			.name = "gcc_venus0_ahb_clk",
336662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
336762306a36Sopenharmony_ci		},
336862306a36Sopenharmony_ci	},
336962306a36Sopenharmony_ci};
337062306a36Sopenharmony_ci
337162306a36Sopenharmony_cistatic struct clk_branch gcc_venus0_axi_clk = {
337262306a36Sopenharmony_ci	.halt_reg = 0x4c024,
337362306a36Sopenharmony_ci	.clkr = {
337462306a36Sopenharmony_ci		.enable_reg = 0x4c024,
337562306a36Sopenharmony_ci		.enable_mask = BIT(0),
337662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
337762306a36Sopenharmony_ci			.name = "gcc_venus0_axi_clk",
337862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
337962306a36Sopenharmony_ci		},
338062306a36Sopenharmony_ci	},
338162306a36Sopenharmony_ci};
338262306a36Sopenharmony_ci
338362306a36Sopenharmony_cistatic struct clk_branch gcc_venus0_core0_vcodec0_clk = {
338462306a36Sopenharmony_ci	.halt_reg = 0x4c02c,
338562306a36Sopenharmony_ci	.clkr = {
338662306a36Sopenharmony_ci		.enable_reg = 0x4c02c,
338762306a36Sopenharmony_ci		.enable_mask = BIT(0),
338862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
338962306a36Sopenharmony_ci			.name = "gcc_venus0_core0_vcodec0_clk",
339062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
339162306a36Sopenharmony_ci				&vcodec0_clk_src.clkr.hw,
339262306a36Sopenharmony_ci			},
339362306a36Sopenharmony_ci			.num_parents = 1,
339462306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
339562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
339662306a36Sopenharmony_ci		},
339762306a36Sopenharmony_ci	},
339862306a36Sopenharmony_ci};
339962306a36Sopenharmony_ci
340062306a36Sopenharmony_cistatic struct clk_branch gcc_venus0_core1_vcodec0_clk = {
340162306a36Sopenharmony_ci	.halt_reg = 0x4c034,
340262306a36Sopenharmony_ci	.clkr = {
340362306a36Sopenharmony_ci		.enable_reg = 0x4c034,
340462306a36Sopenharmony_ci		.enable_mask = BIT(0),
340562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
340662306a36Sopenharmony_ci			.name = "gcc_venus0_core1_vcodec0_clk",
340762306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
340862306a36Sopenharmony_ci				&vcodec0_clk_src.clkr.hw,
340962306a36Sopenharmony_ci			},
341062306a36Sopenharmony_ci			.num_parents = 1,
341162306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
341262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
341362306a36Sopenharmony_ci		},
341462306a36Sopenharmony_ci	},
341562306a36Sopenharmony_ci};
341662306a36Sopenharmony_ci
341762306a36Sopenharmony_cistatic struct clk_branch gcc_venus0_vcodec0_clk = {
341862306a36Sopenharmony_ci	.halt_reg = 0x4c01c,
341962306a36Sopenharmony_ci	.clkr = {
342062306a36Sopenharmony_ci		.enable_reg = 0x4c01c,
342162306a36Sopenharmony_ci		.enable_mask = BIT(0),
342262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
342362306a36Sopenharmony_ci			.name = "gcc_venus0_vcodec0_clk",
342462306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
342562306a36Sopenharmony_ci				&vcodec0_clk_src.clkr.hw,
342662306a36Sopenharmony_ci			},
342762306a36Sopenharmony_ci			.num_parents = 1,
342862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
342962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
343062306a36Sopenharmony_ci		},
343162306a36Sopenharmony_ci	},
343262306a36Sopenharmony_ci};
343362306a36Sopenharmony_ci
343462306a36Sopenharmony_ci/* Vote clocks */
343562306a36Sopenharmony_cistatic struct clk_branch gcc_apss_ahb_clk = {
343662306a36Sopenharmony_ci	.halt_reg = 0x4601c,
343762306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
343862306a36Sopenharmony_ci	.clkr = {
343962306a36Sopenharmony_ci		.enable_reg = 0x45004,
344062306a36Sopenharmony_ci		.enable_mask = BIT(14),
344162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
344262306a36Sopenharmony_ci			.name = "gcc_apss_ahb_clk",
344362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
344462306a36Sopenharmony_ci		},
344562306a36Sopenharmony_ci	},
344662306a36Sopenharmony_ci};
344762306a36Sopenharmony_ci
344862306a36Sopenharmony_cistatic struct clk_branch gcc_apss_axi_clk = {
344962306a36Sopenharmony_ci	.halt_reg = 0x46020,
345062306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
345162306a36Sopenharmony_ci	.clkr = {
345262306a36Sopenharmony_ci		.enable_reg = 0x45004,
345362306a36Sopenharmony_ci		.enable_mask = BIT(13),
345462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
345562306a36Sopenharmony_ci			.name = "gcc_apss_axi_clk",
345662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
345762306a36Sopenharmony_ci		},
345862306a36Sopenharmony_ci	},
345962306a36Sopenharmony_ci};
346062306a36Sopenharmony_ci
346162306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_ahb_clk = {
346262306a36Sopenharmony_ci	.halt_reg = 0x1008,
346362306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
346462306a36Sopenharmony_ci	.clkr = {
346562306a36Sopenharmony_ci		.enable_reg = 0x45004,
346662306a36Sopenharmony_ci		.enable_mask = BIT(10),
346762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
346862306a36Sopenharmony_ci			.name = "gcc_blsp1_ahb_clk",
346962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
347062306a36Sopenharmony_ci		},
347162306a36Sopenharmony_ci	},
347262306a36Sopenharmony_ci};
347362306a36Sopenharmony_ci
347462306a36Sopenharmony_cistatic struct clk_branch gcc_blsp2_ahb_clk = {
347562306a36Sopenharmony_ci	.halt_reg = 0xb008,
347662306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
347762306a36Sopenharmony_ci	.clkr = {
347862306a36Sopenharmony_ci		.enable_reg = 0x45004,
347962306a36Sopenharmony_ci		.enable_mask = BIT(20),
348062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
348162306a36Sopenharmony_ci			.name = "gcc_blsp2_ahb_clk",
348262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
348362306a36Sopenharmony_ci		},
348462306a36Sopenharmony_ci	},
348562306a36Sopenharmony_ci};
348662306a36Sopenharmony_ci
348762306a36Sopenharmony_cistatic struct clk_branch gcc_prng_ahb_clk = {
348862306a36Sopenharmony_ci	.halt_reg = 0x13004,
348962306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
349062306a36Sopenharmony_ci	.clkr = {
349162306a36Sopenharmony_ci		.enable_reg = 0x45004,
349262306a36Sopenharmony_ci		.enable_mask = BIT(8),
349362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
349462306a36Sopenharmony_ci			.name = "gcc_prng_ahb_clk",
349562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
349662306a36Sopenharmony_ci		},
349762306a36Sopenharmony_ci	},
349862306a36Sopenharmony_ci};
349962306a36Sopenharmony_ci
350062306a36Sopenharmony_cistatic struct clk_branch gcc_boot_rom_ahb_clk = {
350162306a36Sopenharmony_ci	.halt_reg = 0x1300c,
350262306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
350362306a36Sopenharmony_ci	.clkr = {
350462306a36Sopenharmony_ci		.enable_reg = 0x45004,
350562306a36Sopenharmony_ci		.enable_mask = BIT(7),
350662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
350762306a36Sopenharmony_ci			.name = "gcc_boot_rom_ahb_clk",
350862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
350962306a36Sopenharmony_ci		},
351062306a36Sopenharmony_ci	},
351162306a36Sopenharmony_ci};
351262306a36Sopenharmony_ci
351362306a36Sopenharmony_cistatic struct clk_branch gcc_crypto_ahb_clk = {
351462306a36Sopenharmony_ci	.halt_reg = 0x16024,
351562306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
351662306a36Sopenharmony_ci	.clkr = {
351762306a36Sopenharmony_ci		.enable_reg = 0x45004,
351862306a36Sopenharmony_ci		.enable_mask = BIT(0),
351962306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
352062306a36Sopenharmony_ci			.name = "gcc_crypto_ahb_clk",
352162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
352262306a36Sopenharmony_ci		},
352362306a36Sopenharmony_ci	},
352462306a36Sopenharmony_ci};
352562306a36Sopenharmony_ci
352662306a36Sopenharmony_cistatic struct clk_branch gcc_crypto_axi_clk = {
352762306a36Sopenharmony_ci	.halt_reg = 0x16020,
352862306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
352962306a36Sopenharmony_ci	.clkr = {
353062306a36Sopenharmony_ci		.enable_reg = 0x45004,
353162306a36Sopenharmony_ci		.enable_mask = BIT(1),
353262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
353362306a36Sopenharmony_ci			.name = "gcc_crypto_axi_clk",
353462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
353562306a36Sopenharmony_ci		},
353662306a36Sopenharmony_ci	},
353762306a36Sopenharmony_ci};
353862306a36Sopenharmony_ci
353962306a36Sopenharmony_cistatic struct clk_branch gcc_crypto_clk = {
354062306a36Sopenharmony_ci	.halt_reg = 0x1601c,
354162306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
354262306a36Sopenharmony_ci	.clkr = {
354362306a36Sopenharmony_ci		.enable_reg = 0x45004,
354462306a36Sopenharmony_ci		.enable_mask = BIT(2),
354562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
354662306a36Sopenharmony_ci			.name = "gcc_crypto_clk",
354762306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]) {
354862306a36Sopenharmony_ci				&crypto_clk_src.clkr.hw,
354962306a36Sopenharmony_ci			},
355062306a36Sopenharmony_ci			.num_parents = 1,
355162306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
355262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
355362306a36Sopenharmony_ci		},
355462306a36Sopenharmony_ci	},
355562306a36Sopenharmony_ci};
355662306a36Sopenharmony_ci
355762306a36Sopenharmony_cistatic struct clk_branch gcc_cpp_tbu_clk = {
355862306a36Sopenharmony_ci	.halt_reg = 0x12040,
355962306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
356062306a36Sopenharmony_ci	.clkr = {
356162306a36Sopenharmony_ci		.enable_reg = 0x4500c,
356262306a36Sopenharmony_ci		.enable_mask = BIT(14),
356362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
356462306a36Sopenharmony_ci			.name = "gcc_cpp_tbu_clk",
356562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
356662306a36Sopenharmony_ci		},
356762306a36Sopenharmony_ci	},
356862306a36Sopenharmony_ci};
356962306a36Sopenharmony_ci
357062306a36Sopenharmony_cistatic struct clk_branch gcc_gfx_1_tbu_clk = {
357162306a36Sopenharmony_ci	.halt_reg = 0x12098,
357262306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
357362306a36Sopenharmony_ci	.clkr = {
357462306a36Sopenharmony_ci		.enable_reg = 0x4500c,
357562306a36Sopenharmony_ci		.enable_mask = BIT(19),
357662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
357762306a36Sopenharmony_ci			.name = "gcc_gfx_1_tbu_clk",
357862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
357962306a36Sopenharmony_ci		},
358062306a36Sopenharmony_ci	},
358162306a36Sopenharmony_ci};
358262306a36Sopenharmony_ci
358362306a36Sopenharmony_cistatic struct clk_branch gcc_gfx_tbu_clk = {
358462306a36Sopenharmony_ci	.halt_reg = 0x12010,
358562306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
358662306a36Sopenharmony_ci	.clkr = {
358762306a36Sopenharmony_ci		.enable_reg = 0x4500c,
358862306a36Sopenharmony_ci		.enable_mask = BIT(3),
358962306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
359062306a36Sopenharmony_ci			.name = "gcc_gfx_tbu_clk",
359162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
359262306a36Sopenharmony_ci		},
359362306a36Sopenharmony_ci	},
359462306a36Sopenharmony_ci};
359562306a36Sopenharmony_ci
359662306a36Sopenharmony_cistatic struct clk_branch gcc_gfx_tcu_clk = {
359762306a36Sopenharmony_ci	.halt_reg = 0x12020,
359862306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
359962306a36Sopenharmony_ci	.clkr = {
360062306a36Sopenharmony_ci		.enable_reg = 0x4500c,
360162306a36Sopenharmony_ci		.enable_mask = BIT(2),
360262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
360362306a36Sopenharmony_ci			.name = "gcc_gfx_tcu_clk",
360462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
360562306a36Sopenharmony_ci		},
360662306a36Sopenharmony_ci	},
360762306a36Sopenharmony_ci};
360862306a36Sopenharmony_ci
360962306a36Sopenharmony_cistatic struct clk_branch gcc_apss_tcu_clk = {
361062306a36Sopenharmony_ci	.halt_reg = 0x12018,
361162306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
361262306a36Sopenharmony_ci	.clkr = {
361362306a36Sopenharmony_ci		.enable_reg = 0x4500c,
361462306a36Sopenharmony_ci		.enable_mask = BIT(1),
361562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
361662306a36Sopenharmony_ci			.name = "gcc_apss_tcu_clk",
361762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
361862306a36Sopenharmony_ci		},
361962306a36Sopenharmony_ci	},
362062306a36Sopenharmony_ci};
362162306a36Sopenharmony_ci
362262306a36Sopenharmony_cistatic struct clk_branch gcc_gtcu_ahb_clk = {
362362306a36Sopenharmony_ci	.halt_reg = 0x12044,
362462306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
362562306a36Sopenharmony_ci	.clkr = {
362662306a36Sopenharmony_ci		.enable_reg = 0x4500c,
362762306a36Sopenharmony_ci		.enable_mask = BIT(13),
362862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
362962306a36Sopenharmony_ci			.name = "gcc_gtcu_ahb_clk",
363062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
363162306a36Sopenharmony_ci		},
363262306a36Sopenharmony_ci	},
363362306a36Sopenharmony_ci};
363462306a36Sopenharmony_ci
363562306a36Sopenharmony_cistatic struct clk_branch gcc_jpeg_tbu_clk = {
363662306a36Sopenharmony_ci	.halt_reg = 0x12034,
363762306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
363862306a36Sopenharmony_ci	.clkr = {
363962306a36Sopenharmony_ci		.enable_reg = 0x4500c,
364062306a36Sopenharmony_ci		.enable_mask = BIT(10),
364162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
364262306a36Sopenharmony_ci			.name = "gcc_jpeg_tbu_clk",
364362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
364462306a36Sopenharmony_ci		},
364562306a36Sopenharmony_ci	},
364662306a36Sopenharmony_ci};
364762306a36Sopenharmony_ci
364862306a36Sopenharmony_cistatic struct clk_branch gcc_mdp_rt_tbu_clk = {
364962306a36Sopenharmony_ci	.halt_reg = 0x1204c,
365062306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
365162306a36Sopenharmony_ci	.clkr = {
365262306a36Sopenharmony_ci		.enable_reg = 0x4500c,
365362306a36Sopenharmony_ci		.enable_mask = BIT(15),
365462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
365562306a36Sopenharmony_ci			.name = "gcc_mdp_rt_tbu_clk",
365662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
365762306a36Sopenharmony_ci		},
365862306a36Sopenharmony_ci	},
365962306a36Sopenharmony_ci};
366062306a36Sopenharmony_ci
366162306a36Sopenharmony_cistatic struct clk_branch gcc_mdp_tbu_clk = {
366262306a36Sopenharmony_ci	.halt_reg = 0x1201c,
366362306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
366462306a36Sopenharmony_ci	.clkr = {
366562306a36Sopenharmony_ci		.enable_reg = 0x4500c,
366662306a36Sopenharmony_ci		.enable_mask = BIT(4),
366762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
366862306a36Sopenharmony_ci			.name = "gcc_mdp_tbu_clk",
366962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
367062306a36Sopenharmony_ci		},
367162306a36Sopenharmony_ci	},
367262306a36Sopenharmony_ci};
367362306a36Sopenharmony_ci
367462306a36Sopenharmony_cistatic struct clk_branch gcc_smmu_cfg_clk = {
367562306a36Sopenharmony_ci	.halt_reg = 0x12038,
367662306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
367762306a36Sopenharmony_ci	.clkr = {
367862306a36Sopenharmony_ci		.enable_reg = 0x4500c,
367962306a36Sopenharmony_ci		.enable_mask = BIT(12),
368062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
368162306a36Sopenharmony_ci			.name = "gcc_smmu_cfg_clk",
368262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
368362306a36Sopenharmony_ci		},
368462306a36Sopenharmony_ci	},
368562306a36Sopenharmony_ci};
368662306a36Sopenharmony_ci
368762306a36Sopenharmony_cistatic struct clk_branch gcc_venus_1_tbu_clk = {
368862306a36Sopenharmony_ci	.halt_reg = 0x1209c,
368962306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
369062306a36Sopenharmony_ci	.clkr = {
369162306a36Sopenharmony_ci		.enable_reg = 0x4500c,
369262306a36Sopenharmony_ci		.enable_mask = BIT(20),
369362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
369462306a36Sopenharmony_ci			.name = "gcc_venus_1_tbu_clk",
369562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
369662306a36Sopenharmony_ci		},
369762306a36Sopenharmony_ci	},
369862306a36Sopenharmony_ci};
369962306a36Sopenharmony_ci
370062306a36Sopenharmony_cistatic struct clk_branch gcc_venus_tbu_clk = {
370162306a36Sopenharmony_ci	.halt_reg = 0x12014,
370262306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
370362306a36Sopenharmony_ci	.clkr = {
370462306a36Sopenharmony_ci		.enable_reg = 0x4500c,
370562306a36Sopenharmony_ci		.enable_mask = BIT(5),
370662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
370762306a36Sopenharmony_ci			.name = "gcc_venus_tbu_clk",
370862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
370962306a36Sopenharmony_ci		},
371062306a36Sopenharmony_ci	},
371162306a36Sopenharmony_ci};
371262306a36Sopenharmony_ci
371362306a36Sopenharmony_cistatic struct clk_branch gcc_vfe1_tbu_clk = {
371462306a36Sopenharmony_ci	.halt_reg = 0x12090,
371562306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
371662306a36Sopenharmony_ci	.clkr = {
371762306a36Sopenharmony_ci		.enable_reg = 0x4500c,
371862306a36Sopenharmony_ci		.enable_mask = BIT(17),
371962306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
372062306a36Sopenharmony_ci			.name = "gcc_vfe1_tbu_clk",
372162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
372262306a36Sopenharmony_ci		},
372362306a36Sopenharmony_ci	},
372462306a36Sopenharmony_ci};
372562306a36Sopenharmony_ci
372662306a36Sopenharmony_cistatic struct clk_branch gcc_vfe_tbu_clk = {
372762306a36Sopenharmony_ci	.halt_reg = 0x1203c,
372862306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
372962306a36Sopenharmony_ci	.clkr = {
373062306a36Sopenharmony_ci		.enable_reg = 0x4500c,
373162306a36Sopenharmony_ci		.enable_mask = BIT(9),
373262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
373362306a36Sopenharmony_ci			.name = "gcc_vfe_tbu_clk",
373462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
373562306a36Sopenharmony_ci		},
373662306a36Sopenharmony_ci	},
373762306a36Sopenharmony_ci};
373862306a36Sopenharmony_ci
373962306a36Sopenharmony_cistatic struct gdsc venus_gdsc = {
374062306a36Sopenharmony_ci	.gdscr = 0x4c018,
374162306a36Sopenharmony_ci	.cxcs = (unsigned int []){ 0x4c024, 0x4c01c },
374262306a36Sopenharmony_ci	.cxc_count = 2,
374362306a36Sopenharmony_ci	.pd = {
374462306a36Sopenharmony_ci		.name = "venus_gdsc",
374562306a36Sopenharmony_ci	},
374662306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
374762306a36Sopenharmony_ci};
374862306a36Sopenharmony_ci
374962306a36Sopenharmony_cistatic struct gdsc venus_core0_gdsc = {
375062306a36Sopenharmony_ci	.gdscr = 0x4c028,
375162306a36Sopenharmony_ci	.cxcs = (unsigned int []){ 0x4c02c },
375262306a36Sopenharmony_ci	.cxc_count = 1,
375362306a36Sopenharmony_ci	.pd = {
375462306a36Sopenharmony_ci		.name = "venus_core0_gdsc",
375562306a36Sopenharmony_ci	},
375662306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
375762306a36Sopenharmony_ci};
375862306a36Sopenharmony_ci
375962306a36Sopenharmony_cistatic struct gdsc venus_core1_gdsc = {
376062306a36Sopenharmony_ci	.gdscr = 0x4c030,
376162306a36Sopenharmony_ci	.pd = {
376262306a36Sopenharmony_ci		.name = "venus_core1_gdsc",
376362306a36Sopenharmony_ci	},
376462306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
376562306a36Sopenharmony_ci};
376662306a36Sopenharmony_ci
376762306a36Sopenharmony_cistatic struct gdsc mdss_gdsc = {
376862306a36Sopenharmony_ci	.gdscr = 0x4d078,
376962306a36Sopenharmony_ci	.cxcs = (unsigned int []){ 0x4d080, 0x4d088 },
377062306a36Sopenharmony_ci	.cxc_count = 2,
377162306a36Sopenharmony_ci	.pd = {
377262306a36Sopenharmony_ci		.name = "mdss_gdsc",
377362306a36Sopenharmony_ci	},
377462306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
377562306a36Sopenharmony_ci};
377662306a36Sopenharmony_ci
377762306a36Sopenharmony_cistatic struct gdsc jpeg_gdsc = {
377862306a36Sopenharmony_ci	.gdscr = 0x5701c,
377962306a36Sopenharmony_ci	.cxcs = (unsigned int []){ 0x57020, 0x57028 },
378062306a36Sopenharmony_ci	.cxc_count = 2,
378162306a36Sopenharmony_ci	.pd = {
378262306a36Sopenharmony_ci		.name = "jpeg_gdsc",
378362306a36Sopenharmony_ci	},
378462306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
378562306a36Sopenharmony_ci};
378662306a36Sopenharmony_ci
378762306a36Sopenharmony_cistatic struct gdsc vfe0_gdsc = {
378862306a36Sopenharmony_ci	.gdscr = 0x58034,
378962306a36Sopenharmony_ci	.cxcs = (unsigned int []){ 0x58038, 0x58048, 0x5600c, 0x58050 },
379062306a36Sopenharmony_ci	.cxc_count = 4,
379162306a36Sopenharmony_ci	.pd = {
379262306a36Sopenharmony_ci		.name = "vfe0_gdsc",
379362306a36Sopenharmony_ci	},
379462306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
379562306a36Sopenharmony_ci};
379662306a36Sopenharmony_ci
379762306a36Sopenharmony_cistatic struct gdsc vfe1_gdsc = {
379862306a36Sopenharmony_ci	.gdscr = 0x5806c,
379962306a36Sopenharmony_ci	.cxcs = (unsigned int []){ 0x5805c, 0x58068, 0x5600c, 0x58074 },
380062306a36Sopenharmony_ci	.cxc_count = 4,
380162306a36Sopenharmony_ci	.pd = {
380262306a36Sopenharmony_ci		.name = "vfe1_gdsc",
380362306a36Sopenharmony_ci	},
380462306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
380562306a36Sopenharmony_ci};
380662306a36Sopenharmony_ci
380762306a36Sopenharmony_cistatic struct gdsc cpp_gdsc = {
380862306a36Sopenharmony_ci	.gdscr = 0x58078,
380962306a36Sopenharmony_ci	.cxcs = (unsigned int []){ 0x5803c, 0x58064 },
381062306a36Sopenharmony_ci	.cxc_count = 2,
381162306a36Sopenharmony_ci	.pd = {
381262306a36Sopenharmony_ci		.name = "cpp_gdsc",
381362306a36Sopenharmony_ci	},
381462306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
381562306a36Sopenharmony_ci};
381662306a36Sopenharmony_ci
381762306a36Sopenharmony_cistatic struct gdsc oxili_cx_gdsc = {
381862306a36Sopenharmony_ci	.gdscr = 0x5904c,
381962306a36Sopenharmony_ci	.cxcs = (unsigned int []){ 0x59020 },
382062306a36Sopenharmony_ci	.cxc_count = 1,
382162306a36Sopenharmony_ci	.pd = {
382262306a36Sopenharmony_ci		.name = "oxili_cx_gdsc",
382362306a36Sopenharmony_ci	},
382462306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
382562306a36Sopenharmony_ci	.flags = VOTABLE,
382662306a36Sopenharmony_ci};
382762306a36Sopenharmony_ci
382862306a36Sopenharmony_cistatic struct gdsc oxili_gx_gdsc = {
382962306a36Sopenharmony_ci	.gdscr = 0x5901c,
383062306a36Sopenharmony_ci	.clamp_io_ctrl = 0x5b00c,
383162306a36Sopenharmony_ci	.cxcs = (unsigned int []){ 0x59000, 0x59024 },
383262306a36Sopenharmony_ci	.cxc_count = 2,
383362306a36Sopenharmony_ci	.pd = {
383462306a36Sopenharmony_ci		.name = "oxili_gx_gdsc",
383562306a36Sopenharmony_ci	},
383662306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
383762306a36Sopenharmony_ci	.supply = "vdd_gfx",
383862306a36Sopenharmony_ci	.flags = CLAMP_IO,
383962306a36Sopenharmony_ci};
384062306a36Sopenharmony_ci
384162306a36Sopenharmony_cistatic struct clk_regmap *gcc_msm8976_clocks[] = {
384262306a36Sopenharmony_ci	[GPLL0] = &gpll0.clkr,
384362306a36Sopenharmony_ci	[GPLL2] = &gpll2.clkr,
384462306a36Sopenharmony_ci	[GPLL3] = &gpll3.clkr,
384562306a36Sopenharmony_ci	[GPLL4] = &gpll4.clkr,
384662306a36Sopenharmony_ci	[GPLL6] = &gpll6.clkr,
384762306a36Sopenharmony_ci	[GPLL0_CLK_SRC] = &gpll0_vote,
384862306a36Sopenharmony_ci	[GPLL2_CLK_SRC] = &gpll2_vote,
384962306a36Sopenharmony_ci	[GPLL3_CLK_SRC] = &gpll3_vote,
385062306a36Sopenharmony_ci	[GPLL4_CLK_SRC] = &gpll4_vote,
385162306a36Sopenharmony_ci	[GPLL6_CLK_SRC] = &gpll6_vote,
385262306a36Sopenharmony_ci	[GCC_BLSP1_QUP1_SPI_APPS_CLK] = &gcc_blsp1_qup1_spi_apps_clk.clkr,
385362306a36Sopenharmony_ci	[GCC_BLSP1_QUP1_I2C_APPS_CLK] = &gcc_blsp1_qup1_i2c_apps_clk.clkr,
385462306a36Sopenharmony_ci	[GCC_BLSP1_QUP2_I2C_APPS_CLK] = &gcc_blsp1_qup2_i2c_apps_clk.clkr,
385562306a36Sopenharmony_ci	[GCC_BLSP1_QUP2_SPI_APPS_CLK] = &gcc_blsp1_qup2_spi_apps_clk.clkr,
385662306a36Sopenharmony_ci	[GCC_BLSP1_QUP3_I2C_APPS_CLK] = &gcc_blsp1_qup3_i2c_apps_clk.clkr,
385762306a36Sopenharmony_ci	[GCC_BLSP1_QUP3_SPI_APPS_CLK] = &gcc_blsp1_qup3_spi_apps_clk.clkr,
385862306a36Sopenharmony_ci	[GCC_BLSP1_QUP4_I2C_APPS_CLK] = &gcc_blsp1_qup4_i2c_apps_clk.clkr,
385962306a36Sopenharmony_ci	[GCC_BLSP1_QUP4_SPI_APPS_CLK] = &gcc_blsp1_qup4_spi_apps_clk.clkr,
386062306a36Sopenharmony_ci	[GCC_BLSP1_UART1_APPS_CLK] = &gcc_blsp1_uart1_apps_clk.clkr,
386162306a36Sopenharmony_ci	[GCC_BLSP1_UART2_APPS_CLK] = &gcc_blsp1_uart2_apps_clk.clkr,
386262306a36Sopenharmony_ci	[GCC_BLSP2_QUP1_I2C_APPS_CLK] = &gcc_blsp2_qup1_i2c_apps_clk.clkr,
386362306a36Sopenharmony_ci	[GCC_BLSP2_QUP1_SPI_APPS_CLK] = &gcc_blsp2_qup1_spi_apps_clk.clkr,
386462306a36Sopenharmony_ci	[GCC_BLSP2_QUP2_I2C_APPS_CLK] = &gcc_blsp2_qup2_i2c_apps_clk.clkr,
386562306a36Sopenharmony_ci	[GCC_BLSP2_QUP2_SPI_APPS_CLK] = &gcc_blsp2_qup2_spi_apps_clk.clkr,
386662306a36Sopenharmony_ci	[GCC_BLSP2_QUP3_I2C_APPS_CLK] = &gcc_blsp2_qup3_i2c_apps_clk.clkr,
386762306a36Sopenharmony_ci	[GCC_BLSP2_QUP3_SPI_APPS_CLK] = &gcc_blsp2_qup3_spi_apps_clk.clkr,
386862306a36Sopenharmony_ci	[GCC_BLSP2_QUP4_I2C_APPS_CLK] = &gcc_blsp2_qup4_i2c_apps_clk.clkr,
386962306a36Sopenharmony_ci	[GCC_BLSP2_QUP4_SPI_APPS_CLK] = &gcc_blsp2_qup4_spi_apps_clk.clkr,
387062306a36Sopenharmony_ci	[GCC_BLSP2_UART1_APPS_CLK] = &gcc_blsp2_uart1_apps_clk.clkr,
387162306a36Sopenharmony_ci	[GCC_BLSP2_UART2_APPS_CLK] = &gcc_blsp2_uart2_apps_clk.clkr,
387262306a36Sopenharmony_ci	[GCC_CAMSS_CCI_AHB_CLK] = &gcc_camss_cci_ahb_clk.clkr,
387362306a36Sopenharmony_ci	[GCC_CAMSS_CCI_CLK] = &gcc_camss_cci_clk.clkr,
387462306a36Sopenharmony_ci	[GCC_CAMSS_CPP_AHB_CLK] = &gcc_camss_cpp_ahb_clk.clkr,
387562306a36Sopenharmony_ci	[GCC_CAMSS_CPP_AXI_CLK] = &gcc_camss_cpp_axi_clk.clkr,
387662306a36Sopenharmony_ci	[GCC_CAMSS_CPP_CLK] = &gcc_camss_cpp_clk.clkr,
387762306a36Sopenharmony_ci	[GCC_CAMSS_CSI0_AHB_CLK] = &gcc_camss_csi0_ahb_clk.clkr,
387862306a36Sopenharmony_ci	[GCC_CAMSS_CSI0_CLK] = &gcc_camss_csi0_clk.clkr,
387962306a36Sopenharmony_ci	[GCC_CAMSS_CSI0PHY_CLK] = &gcc_camss_csi0phy_clk.clkr,
388062306a36Sopenharmony_ci	[GCC_CAMSS_CSI0PIX_CLK] = &gcc_camss_csi0pix_clk.clkr,
388162306a36Sopenharmony_ci	[GCC_CAMSS_CSI0RDI_CLK] = &gcc_camss_csi0rdi_clk.clkr,
388262306a36Sopenharmony_ci	[GCC_CAMSS_CSI1_AHB_CLK] = &gcc_camss_csi1_ahb_clk.clkr,
388362306a36Sopenharmony_ci	[GCC_CAMSS_CSI1_CLK] = &gcc_camss_csi1_clk.clkr,
388462306a36Sopenharmony_ci	[GCC_CAMSS_CSI1PHY_CLK] = &gcc_camss_csi1phy_clk.clkr,
388562306a36Sopenharmony_ci	[GCC_CAMSS_CSI1PIX_CLK] = &gcc_camss_csi1pix_clk.clkr,
388662306a36Sopenharmony_ci	[GCC_CAMSS_CSI1RDI_CLK] = &gcc_camss_csi1rdi_clk.clkr,
388762306a36Sopenharmony_ci	[GCC_CAMSS_CSI2_AHB_CLK] = &gcc_camss_csi2_ahb_clk.clkr,
388862306a36Sopenharmony_ci	[GCC_CAMSS_CSI2_CLK] = &gcc_camss_csi2_clk.clkr,
388962306a36Sopenharmony_ci	[GCC_CAMSS_CSI2PHY_CLK] = &gcc_camss_csi2phy_clk.clkr,
389062306a36Sopenharmony_ci	[GCC_CAMSS_CSI2PIX_CLK] = &gcc_camss_csi2pix_clk.clkr,
389162306a36Sopenharmony_ci	[GCC_CAMSS_CSI2RDI_CLK] = &gcc_camss_csi2rdi_clk.clkr,
389262306a36Sopenharmony_ci	[GCC_CAMSS_CSI_VFE0_CLK] = &gcc_camss_csi_vfe0_clk.clkr,
389362306a36Sopenharmony_ci	[GCC_CAMSS_CSI_VFE1_CLK] = &gcc_camss_csi_vfe1_clk.clkr,
389462306a36Sopenharmony_ci	[GCC_CAMSS_GP0_CLK] = &gcc_camss_gp0_clk.clkr,
389562306a36Sopenharmony_ci	[GCC_CAMSS_GP1_CLK] = &gcc_camss_gp1_clk.clkr,
389662306a36Sopenharmony_ci	[GCC_CAMSS_ISPIF_AHB_CLK] = &gcc_camss_ispif_ahb_clk.clkr,
389762306a36Sopenharmony_ci	[GCC_CAMSS_JPEG0_CLK] = &gcc_camss_jpeg0_clk.clkr,
389862306a36Sopenharmony_ci	[GCC_CAMSS_JPEG_AHB_CLK] = &gcc_camss_jpeg_ahb_clk.clkr,
389962306a36Sopenharmony_ci	[GCC_CAMSS_JPEG_AXI_CLK] = &gcc_camss_jpeg_axi_clk.clkr,
390062306a36Sopenharmony_ci	[GCC_CAMSS_MCLK0_CLK] = &gcc_camss_mclk0_clk.clkr,
390162306a36Sopenharmony_ci	[GCC_CAMSS_MCLK1_CLK] = &gcc_camss_mclk1_clk.clkr,
390262306a36Sopenharmony_ci	[GCC_CAMSS_MCLK2_CLK] = &gcc_camss_mclk2_clk.clkr,
390362306a36Sopenharmony_ci	[GCC_CAMSS_MICRO_AHB_CLK] = &gcc_camss_micro_ahb_clk.clkr,
390462306a36Sopenharmony_ci	[GCC_CAMSS_CSI0PHYTIMER_CLK] = &gcc_camss_csi0phytimer_clk.clkr,
390562306a36Sopenharmony_ci	[GCC_CAMSS_CSI1PHYTIMER_CLK] = &gcc_camss_csi1phytimer_clk.clkr,
390662306a36Sopenharmony_ci	[GCC_CAMSS_AHB_CLK] = &gcc_camss_ahb_clk.clkr,
390762306a36Sopenharmony_ci	[GCC_CAMSS_TOP_AHB_CLK] = &gcc_camss_top_ahb_clk.clkr,
390862306a36Sopenharmony_ci	[GCC_CAMSS_VFE0_CLK] = &gcc_camss_vfe0_clk.clkr,
390962306a36Sopenharmony_ci	[GCC_CAMSS_VFE_AHB_CLK] = &gcc_camss_vfe_ahb_clk.clkr,
391062306a36Sopenharmony_ci	[GCC_CAMSS_VFE_AXI_CLK] = &gcc_camss_vfe_axi_clk.clkr,
391162306a36Sopenharmony_ci	[GCC_CAMSS_VFE1_AHB_CLK] = &gcc_camss_vfe1_ahb_clk.clkr,
391262306a36Sopenharmony_ci	[GCC_CAMSS_VFE1_AXI_CLK] = &gcc_camss_vfe1_axi_clk.clkr,
391362306a36Sopenharmony_ci	[GCC_CAMSS_VFE1_CLK] = &gcc_camss_vfe1_clk.clkr,
391462306a36Sopenharmony_ci	[GCC_DCC_CLK] = &gcc_dcc_clk.clkr,
391562306a36Sopenharmony_ci	[GCC_GP1_CLK] = &gcc_gp1_clk.clkr,
391662306a36Sopenharmony_ci	[GCC_GP2_CLK] = &gcc_gp2_clk.clkr,
391762306a36Sopenharmony_ci	[GCC_GP3_CLK] = &gcc_gp3_clk.clkr,
391862306a36Sopenharmony_ci	[GCC_MDSS_AHB_CLK] = &gcc_mdss_ahb_clk.clkr,
391962306a36Sopenharmony_ci	[GCC_MDSS_AXI_CLK] = &gcc_mdss_axi_clk.clkr,
392062306a36Sopenharmony_ci	[GCC_MDSS_ESC0_CLK] = &gcc_mdss_esc0_clk.clkr,
392162306a36Sopenharmony_ci	[GCC_MDSS_ESC1_CLK] = &gcc_mdss_esc1_clk.clkr,
392262306a36Sopenharmony_ci	[GCC_MDSS_MDP_CLK] = &gcc_mdss_mdp_clk.clkr,
392362306a36Sopenharmony_ci	[GCC_MDSS_VSYNC_CLK] = &gcc_mdss_vsync_clk.clkr,
392462306a36Sopenharmony_ci	[GCC_MSS_CFG_AHB_CLK] = &gcc_mss_cfg_ahb_clk.clkr,
392562306a36Sopenharmony_ci	[GCC_MSS_Q6_BIMC_AXI_CLK] = &gcc_mss_q6_bimc_axi_clk.clkr,
392662306a36Sopenharmony_ci	[GCC_PDM2_CLK] = &gcc_pdm2_clk.clkr,
392762306a36Sopenharmony_ci	[GCC_PRNG_AHB_CLK] = &gcc_prng_ahb_clk.clkr,
392862306a36Sopenharmony_ci	[GCC_PDM_AHB_CLK] = &gcc_pdm_ahb_clk.clkr,
392962306a36Sopenharmony_ci	[GCC_RBCPR_GFX_AHB_CLK] = &gcc_rbcpr_gfx_ahb_clk.clkr,
393062306a36Sopenharmony_ci	[GCC_RBCPR_GFX_CLK] = &gcc_rbcpr_gfx_clk.clkr,
393162306a36Sopenharmony_ci	[GCC_SDCC1_AHB_CLK] = &gcc_sdcc1_ahb_clk.clkr,
393262306a36Sopenharmony_ci	[GCC_SDCC1_APPS_CLK] = &gcc_sdcc1_apps_clk.clkr,
393362306a36Sopenharmony_ci	[GCC_SDCC1_ICE_CORE_CLK] = &gcc_sdcc1_ice_core_clk.clkr,
393462306a36Sopenharmony_ci	[GCC_SDCC2_AHB_CLK] = &gcc_sdcc2_ahb_clk.clkr,
393562306a36Sopenharmony_ci	[GCC_SDCC2_APPS_CLK] = &gcc_sdcc2_apps_clk.clkr,
393662306a36Sopenharmony_ci	[GCC_SDCC3_AHB_CLK] = &gcc_sdcc3_ahb_clk.clkr,
393762306a36Sopenharmony_ci	[GCC_SDCC3_APPS_CLK] = &gcc_sdcc3_apps_clk.clkr,
393862306a36Sopenharmony_ci	[GCC_USB2A_PHY_SLEEP_CLK] = &gcc_usb2a_phy_sleep_clk.clkr,
393962306a36Sopenharmony_ci	[GCC_USB_HS_PHY_CFG_AHB_CLK] = &gcc_usb_hs_phy_cfg_ahb_clk.clkr,
394062306a36Sopenharmony_ci	[GCC_USB_FS_AHB_CLK] = &gcc_usb_fs_ahb_clk.clkr,
394162306a36Sopenharmony_ci	[GCC_USB_FS_IC_CLK] = &gcc_usb_fs_ic_clk.clkr,
394262306a36Sopenharmony_ci	[GCC_USB_FS_SYSTEM_CLK] = &gcc_usb_fs_system_clk.clkr,
394362306a36Sopenharmony_ci	[GCC_USB_HS_AHB_CLK] = &gcc_usb_hs_ahb_clk.clkr,
394462306a36Sopenharmony_ci	[GCC_USB_HS_SYSTEM_CLK] = &gcc_usb_hs_system_clk.clkr,
394562306a36Sopenharmony_ci	[GCC_VENUS0_AHB_CLK] = &gcc_venus0_ahb_clk.clkr,
394662306a36Sopenharmony_ci	[GCC_VENUS0_AXI_CLK] = &gcc_venus0_axi_clk.clkr,
394762306a36Sopenharmony_ci	[GCC_VENUS0_CORE0_VCODEC0_CLK] = &gcc_venus0_core0_vcodec0_clk.clkr,
394862306a36Sopenharmony_ci	[GCC_VENUS0_CORE1_VCODEC0_CLK] = &gcc_venus0_core1_vcodec0_clk.clkr,
394962306a36Sopenharmony_ci	[GCC_VENUS0_VCODEC0_CLK] = &gcc_venus0_vcodec0_clk.clkr,
395062306a36Sopenharmony_ci	[GCC_APSS_AHB_CLK] = &gcc_apss_ahb_clk.clkr,
395162306a36Sopenharmony_ci	[GCC_APSS_AXI_CLK] = &gcc_apss_axi_clk.clkr,
395262306a36Sopenharmony_ci	[GCC_BLSP1_AHB_CLK] = &gcc_blsp1_ahb_clk.clkr,
395362306a36Sopenharmony_ci	[GCC_BLSP2_AHB_CLK] = &gcc_blsp2_ahb_clk.clkr,
395462306a36Sopenharmony_ci	[GCC_BOOT_ROM_AHB_CLK] = &gcc_boot_rom_ahb_clk.clkr,
395562306a36Sopenharmony_ci	[GCC_CRYPTO_AHB_CLK] = &gcc_crypto_ahb_clk.clkr,
395662306a36Sopenharmony_ci	[GCC_CRYPTO_AXI_CLK] = &gcc_crypto_axi_clk.clkr,
395762306a36Sopenharmony_ci	[GCC_CRYPTO_CLK] = &gcc_crypto_clk.clkr,
395862306a36Sopenharmony_ci	[GCC_CPP_TBU_CLK] = &gcc_cpp_tbu_clk.clkr,
395962306a36Sopenharmony_ci	[GCC_APSS_TCU_CLK] = &gcc_apss_tcu_clk.clkr,
396062306a36Sopenharmony_ci	[GCC_JPEG_TBU_CLK] = &gcc_jpeg_tbu_clk.clkr,
396162306a36Sopenharmony_ci	[GCC_MDP_RT_TBU_CLK] = &gcc_mdp_rt_tbu_clk.clkr,
396262306a36Sopenharmony_ci	[GCC_MDP_TBU_CLK] = &gcc_mdp_tbu_clk.clkr,
396362306a36Sopenharmony_ci	[GCC_SMMU_CFG_CLK] = &gcc_smmu_cfg_clk.clkr,
396462306a36Sopenharmony_ci	[GCC_VENUS_1_TBU_CLK] = &gcc_venus_1_tbu_clk.clkr,
396562306a36Sopenharmony_ci	[GCC_VENUS_TBU_CLK] = &gcc_venus_tbu_clk.clkr,
396662306a36Sopenharmony_ci	[GCC_VFE1_TBU_CLK] = &gcc_vfe1_tbu_clk.clkr,
396762306a36Sopenharmony_ci	[GCC_VFE_TBU_CLK] = &gcc_vfe_tbu_clk.clkr,
396862306a36Sopenharmony_ci	[GCC_APS_0_CLK] = &gcc_aps_0_clk.clkr,
396962306a36Sopenharmony_ci	[GCC_APS_1_CLK] = &gcc_aps_1_clk.clkr,
397062306a36Sopenharmony_ci	[APS_0_CLK_SRC] = &aps_0_clk_src.clkr,
397162306a36Sopenharmony_ci	[APS_1_CLK_SRC] = &aps_1_clk_src.clkr,
397262306a36Sopenharmony_ci	[APSS_AHB_CLK_SRC] = &apss_ahb_clk_src.clkr,
397362306a36Sopenharmony_ci	[BLSP1_QUP1_I2C_APPS_CLK_SRC] = &blsp1_qup1_i2c_apps_clk_src.clkr,
397462306a36Sopenharmony_ci	[BLSP1_QUP1_SPI_APPS_CLK_SRC] = &blsp1_qup1_spi_apps_clk_src.clkr,
397562306a36Sopenharmony_ci	[BLSP1_QUP2_I2C_APPS_CLK_SRC] = &blsp1_qup2_i2c_apps_clk_src.clkr,
397662306a36Sopenharmony_ci	[BLSP1_QUP2_SPI_APPS_CLK_SRC] = &blsp1_qup2_spi_apps_clk_src.clkr,
397762306a36Sopenharmony_ci	[BLSP1_QUP3_I2C_APPS_CLK_SRC] = &blsp1_qup3_i2c_apps_clk_src.clkr,
397862306a36Sopenharmony_ci	[BLSP1_QUP3_SPI_APPS_CLK_SRC] = &blsp1_qup3_spi_apps_clk_src.clkr,
397962306a36Sopenharmony_ci	[BLSP1_QUP4_I2C_APPS_CLK_SRC] = &blsp1_qup4_i2c_apps_clk_src.clkr,
398062306a36Sopenharmony_ci	[BLSP1_QUP4_SPI_APPS_CLK_SRC] = &blsp1_qup4_spi_apps_clk_src.clkr,
398162306a36Sopenharmony_ci	[BLSP1_UART1_APPS_CLK_SRC] = &blsp1_uart1_apps_clk_src.clkr,
398262306a36Sopenharmony_ci	[BLSP1_UART2_APPS_CLK_SRC] = &blsp1_uart2_apps_clk_src.clkr,
398362306a36Sopenharmony_ci	[BLSP2_QUP1_I2C_APPS_CLK_SRC] = &blsp2_qup1_i2c_apps_clk_src.clkr,
398462306a36Sopenharmony_ci	[BLSP2_QUP1_SPI_APPS_CLK_SRC] = &blsp2_qup1_spi_apps_clk_src.clkr,
398562306a36Sopenharmony_ci	[BLSP2_QUP2_I2C_APPS_CLK_SRC] = &blsp2_qup2_i2c_apps_clk_src.clkr,
398662306a36Sopenharmony_ci	[BLSP2_QUP2_SPI_APPS_CLK_SRC] = &blsp2_qup2_spi_apps_clk_src.clkr,
398762306a36Sopenharmony_ci	[BLSP2_QUP3_I2C_APPS_CLK_SRC] = &blsp2_qup3_i2c_apps_clk_src.clkr,
398862306a36Sopenharmony_ci	[BLSP2_QUP3_SPI_APPS_CLK_SRC] = &blsp2_qup3_spi_apps_clk_src.clkr,
398962306a36Sopenharmony_ci	[BLSP2_QUP4_I2C_APPS_CLK_SRC] = &blsp2_qup4_i2c_apps_clk_src.clkr,
399062306a36Sopenharmony_ci	[BLSP2_QUP4_SPI_APPS_CLK_SRC] = &blsp2_qup4_spi_apps_clk_src.clkr,
399162306a36Sopenharmony_ci	[BLSP2_UART1_APPS_CLK_SRC] = &blsp2_uart1_apps_clk_src.clkr,
399262306a36Sopenharmony_ci	[BLSP2_UART2_APPS_CLK_SRC] = &blsp2_uart2_apps_clk_src.clkr,
399362306a36Sopenharmony_ci	[CCI_CLK_SRC] = &cci_clk_src.clkr,
399462306a36Sopenharmony_ci	[CPP_CLK_SRC] = &cpp_clk_src.clkr,
399562306a36Sopenharmony_ci	[CSI0_CLK_SRC] = &csi0_clk_src.clkr,
399662306a36Sopenharmony_ci	[CSI1_CLK_SRC] = &csi1_clk_src.clkr,
399762306a36Sopenharmony_ci	[CSI2_CLK_SRC] = &csi2_clk_src.clkr,
399862306a36Sopenharmony_ci	[CAMSS_GP0_CLK_SRC] = &camss_gp0_clk_src.clkr,
399962306a36Sopenharmony_ci	[CAMSS_GP1_CLK_SRC] = &camss_gp1_clk_src.clkr,
400062306a36Sopenharmony_ci	[JPEG0_CLK_SRC] = &jpeg0_clk_src.clkr,
400162306a36Sopenharmony_ci	[MCLK0_CLK_SRC] = &mclk0_clk_src.clkr,
400262306a36Sopenharmony_ci	[MCLK1_CLK_SRC] = &mclk1_clk_src.clkr,
400362306a36Sopenharmony_ci	[MCLK2_CLK_SRC] = &mclk2_clk_src.clkr,
400462306a36Sopenharmony_ci	[CSI0PHYTIMER_CLK_SRC] = &csi0phytimer_clk_src.clkr,
400562306a36Sopenharmony_ci	[CSI1PHYTIMER_CLK_SRC] = &csi1phytimer_clk_src.clkr,
400662306a36Sopenharmony_ci	[CAMSS_TOP_AHB_CLK_SRC] = &camss_top_ahb_clk_src.clkr,
400762306a36Sopenharmony_ci	[VFE0_CLK_SRC] = &vfe0_clk_src.clkr,
400862306a36Sopenharmony_ci	[VFE1_CLK_SRC] = &vfe1_clk_src.clkr,
400962306a36Sopenharmony_ci	[CRYPTO_CLK_SRC] = &crypto_clk_src.clkr,
401062306a36Sopenharmony_ci	[GP1_CLK_SRC] = &gp1_clk_src.clkr,
401162306a36Sopenharmony_ci	[GP2_CLK_SRC] = &gp2_clk_src.clkr,
401262306a36Sopenharmony_ci	[GP3_CLK_SRC] = &gp3_clk_src.clkr,
401362306a36Sopenharmony_ci	[ESC0_CLK_SRC] = &esc0_clk_src.clkr,
401462306a36Sopenharmony_ci	[ESC1_CLK_SRC] = &esc1_clk_src.clkr,
401562306a36Sopenharmony_ci	[MDP_CLK_SRC] = &mdp_clk_src.clkr,
401662306a36Sopenharmony_ci	[VSYNC_CLK_SRC] = &vsync_clk_src.clkr,
401762306a36Sopenharmony_ci	[PDM2_CLK_SRC] = &pdm2_clk_src.clkr,
401862306a36Sopenharmony_ci	[RBCPR_GFX_CLK_SRC] = &rbcpr_gfx_clk_src.clkr,
401962306a36Sopenharmony_ci	[SDCC1_APPS_CLK_SRC] = &sdcc1_apps_clk_src.clkr,
402062306a36Sopenharmony_ci	[SDCC1_ICE_CORE_CLK_SRC] = &sdcc1_ice_core_clk_src.clkr,
402162306a36Sopenharmony_ci	[SDCC2_APPS_CLK_SRC] = &sdcc2_apps_clk_src.clkr,
402262306a36Sopenharmony_ci	[SDCC3_APPS_CLK_SRC] = &sdcc3_apps_clk_src.clkr,
402362306a36Sopenharmony_ci	[USB_FS_IC_CLK_SRC] = &usb_fs_ic_clk_src.clkr,
402462306a36Sopenharmony_ci	[USB_FS_SYSTEM_CLK_SRC] = &usb_fs_system_clk_src.clkr,
402562306a36Sopenharmony_ci	[USB_HS_SYSTEM_CLK_SRC] = &usb_hs_system_clk_src.clkr,
402662306a36Sopenharmony_ci	[VCODEC0_CLK_SRC] = &vcodec0_clk_src.clkr,
402762306a36Sopenharmony_ci	[GCC_MDSS_BYTE0_CLK_SRC] = &byte0_clk_src.clkr,
402862306a36Sopenharmony_ci	[GCC_MDSS_BYTE1_CLK_SRC] = &byte1_clk_src.clkr,
402962306a36Sopenharmony_ci	[GCC_MDSS_BYTE0_CLK] = &gcc_mdss_byte0_clk.clkr,
403062306a36Sopenharmony_ci	[GCC_MDSS_BYTE1_CLK] = &gcc_mdss_byte1_clk.clkr,
403162306a36Sopenharmony_ci	[GCC_MDSS_PCLK0_CLK_SRC] = &pclk0_clk_src.clkr,
403262306a36Sopenharmony_ci	[GCC_MDSS_PCLK1_CLK_SRC] = &pclk1_clk_src.clkr,
403362306a36Sopenharmony_ci	[GCC_MDSS_PCLK0_CLK] = &gcc_mdss_pclk0_clk.clkr,
403462306a36Sopenharmony_ci	[GCC_MDSS_PCLK1_CLK] = &gcc_mdss_pclk1_clk.clkr,
403562306a36Sopenharmony_ci	[GCC_GFX3D_CLK_SRC] = &gfx3d_clk_src.clkr,
403662306a36Sopenharmony_ci	[GCC_GFX3D_OXILI_CLK] = &gcc_oxili_gfx3d_clk.clkr,
403762306a36Sopenharmony_ci	[GCC_GFX3D_BIMC_CLK] = &gcc_bimc_gfx_clk.clkr,
403862306a36Sopenharmony_ci	[GCC_GFX3D_OXILI_AHB_CLK] = &gcc_oxili_ahb_clk.clkr,
403962306a36Sopenharmony_ci	[GCC_GFX3D_OXILI_AON_CLK] = &gcc_oxili_aon_clk.clkr,
404062306a36Sopenharmony_ci	[GCC_GFX3D_OXILI_GMEM_CLK] = &gcc_oxili_gmem_clk.clkr,
404162306a36Sopenharmony_ci	[GCC_GFX3D_OXILI_TIMER_CLK] = &gcc_oxili_timer_clk.clkr,
404262306a36Sopenharmony_ci	[GCC_GFX3D_TBU0_CLK] = &gcc_gfx_tbu_clk.clkr,
404362306a36Sopenharmony_ci	[GCC_GFX3D_TBU1_CLK] = &gcc_gfx_1_tbu_clk.clkr,
404462306a36Sopenharmony_ci	[GCC_GFX3D_TCU_CLK] = &gcc_gfx_tcu_clk.clkr,
404562306a36Sopenharmony_ci	[GCC_GFX3D_GTCU_AHB_CLK] = &gcc_gtcu_ahb_clk.clkr,
404662306a36Sopenharmony_ci};
404762306a36Sopenharmony_ci
404862306a36Sopenharmony_cistatic const struct qcom_reset_map gcc_msm8976_resets[] = {
404962306a36Sopenharmony_ci	[RST_CAMSS_MICRO_BCR]		= { 0x56008 },
405062306a36Sopenharmony_ci	[RST_USB_HS_BCR]		= { 0x41000 },
405162306a36Sopenharmony_ci	[RST_QUSB2_PHY_BCR]		= { 0x4103c },
405262306a36Sopenharmony_ci	[RST_USB2_HS_PHY_ONLY_BCR]	= { 0x41034 },
405362306a36Sopenharmony_ci	[RST_USB_HS_PHY_CFG_AHB_BCR]	= { 0x41038 },
405462306a36Sopenharmony_ci	[RST_USB_FS_BCR]		= { 0x3f000 },
405562306a36Sopenharmony_ci	[RST_CAMSS_CSI1PIX_BCR]		= { 0x4f054 },
405662306a36Sopenharmony_ci	[RST_CAMSS_CSI_VFE1_BCR]	= { 0x58070 },
405762306a36Sopenharmony_ci	[RST_CAMSS_VFE1_BCR]		= { 0x5807c },
405862306a36Sopenharmony_ci	[RST_CAMSS_CPP_BCR]		= { 0x58080 },
405962306a36Sopenharmony_ci	[RST_MSS_BCR]			= { 0x71000 },
406062306a36Sopenharmony_ci};
406162306a36Sopenharmony_ci
406262306a36Sopenharmony_cistatic struct gdsc *gcc_msm8976_gdscs[] = {
406362306a36Sopenharmony_ci	[VENUS_GDSC] = &venus_gdsc,
406462306a36Sopenharmony_ci	[VENUS_CORE0_GDSC] = &venus_core0_gdsc,
406562306a36Sopenharmony_ci	[VENUS_CORE1_GDSC] = &venus_core1_gdsc,
406662306a36Sopenharmony_ci	[MDSS_GDSC] = &mdss_gdsc,
406762306a36Sopenharmony_ci	[JPEG_GDSC] = &jpeg_gdsc,
406862306a36Sopenharmony_ci	[VFE0_GDSC] = &vfe0_gdsc,
406962306a36Sopenharmony_ci	[VFE1_GDSC] = &vfe1_gdsc,
407062306a36Sopenharmony_ci	[CPP_GDSC] = &cpp_gdsc,
407162306a36Sopenharmony_ci	[OXILI_GX_GDSC] = &oxili_gx_gdsc,
407262306a36Sopenharmony_ci	[OXILI_CX_GDSC] = &oxili_cx_gdsc,
407362306a36Sopenharmony_ci};
407462306a36Sopenharmony_ci
407562306a36Sopenharmony_cistatic const struct regmap_config gcc_msm8976_regmap_config = {
407662306a36Sopenharmony_ci	.reg_bits	= 32,
407762306a36Sopenharmony_ci	.reg_stride	= 4,
407862306a36Sopenharmony_ci	.val_bits	= 32,
407962306a36Sopenharmony_ci	.max_register	= 0x7fffc,
408062306a36Sopenharmony_ci	.fast_io	= true,
408162306a36Sopenharmony_ci};
408262306a36Sopenharmony_ci
408362306a36Sopenharmony_cistatic const struct qcom_cc_desc gcc_msm8976_desc = {
408462306a36Sopenharmony_ci	.config		= &gcc_msm8976_regmap_config,
408562306a36Sopenharmony_ci	.clks		= gcc_msm8976_clocks,
408662306a36Sopenharmony_ci	.num_clks	= ARRAY_SIZE(gcc_msm8976_clocks),
408762306a36Sopenharmony_ci	.resets		= gcc_msm8976_resets,
408862306a36Sopenharmony_ci	.num_resets	= ARRAY_SIZE(gcc_msm8976_resets),
408962306a36Sopenharmony_ci	.gdscs		= gcc_msm8976_gdscs,
409062306a36Sopenharmony_ci	.num_gdscs	= ARRAY_SIZE(gcc_msm8976_gdscs),
409162306a36Sopenharmony_ci};
409262306a36Sopenharmony_ci
409362306a36Sopenharmony_cistatic const struct of_device_id gcc_msm8976_match_table[] = {
409462306a36Sopenharmony_ci	{ .compatible = "qcom,gcc-msm8976" }, /* Also valid for 8x56 */
409562306a36Sopenharmony_ci	{ .compatible = "qcom,gcc-msm8976-v1.1" },
409662306a36Sopenharmony_ci	{ }
409762306a36Sopenharmony_ci};
409862306a36Sopenharmony_ciMODULE_DEVICE_TABLE(of, gcc_msm8976_match_table);
409962306a36Sopenharmony_ci
410062306a36Sopenharmony_cistatic int gcc_msm8976_probe(struct platform_device *pdev)
410162306a36Sopenharmony_ci{
410262306a36Sopenharmony_ci	struct regmap *regmap;
410362306a36Sopenharmony_ci	int ret;
410462306a36Sopenharmony_ci
410562306a36Sopenharmony_ci	if (of_device_is_compatible(pdev->dev.of_node, "qcom,gcc-msm8976-v1.1")) {
410662306a36Sopenharmony_ci		sdcc1_apps_clk_src.parent_map = gcc_parent_map_v1_1;
410762306a36Sopenharmony_ci		sdcc1_apps_clk_src.freq_tbl = ftbl_sdcc1_8976_v1_1_apps_clk_src;
410862306a36Sopenharmony_ci		sdcc1_apps_clk_src.clkr.hw.init = &sdcc1_apps_clk_src_8976v1_1_init;
410962306a36Sopenharmony_ci	}
411062306a36Sopenharmony_ci
411162306a36Sopenharmony_ci	regmap = qcom_cc_map(pdev, &gcc_msm8976_desc);
411262306a36Sopenharmony_ci	if (IS_ERR(regmap))
411362306a36Sopenharmony_ci		return PTR_ERR(regmap);
411462306a36Sopenharmony_ci
411562306a36Sopenharmony_ci	/* Set Sleep and Wakeup cycles to 0 for GMEM clock */
411662306a36Sopenharmony_ci	ret = regmap_update_bits(regmap, gcc_oxili_gmem_clk.clkr.enable_reg, 0xff0, 0);
411762306a36Sopenharmony_ci	if (ret)
411862306a36Sopenharmony_ci		return ret;
411962306a36Sopenharmony_ci
412062306a36Sopenharmony_ci	clk_pll_configure_sr_hpm_lp(&gpll3, regmap, &gpll3_config, true);
412162306a36Sopenharmony_ci
412262306a36Sopenharmony_ci	/* Enable AUX2 clock for APSS */
412362306a36Sopenharmony_ci	ret = regmap_update_bits(regmap, 0x60000, BIT(2), BIT(2));
412462306a36Sopenharmony_ci	if (ret)
412562306a36Sopenharmony_ci		return ret;
412662306a36Sopenharmony_ci
412762306a36Sopenharmony_ci	/* Set Sleep cycles to 0 for OXILI clock */
412862306a36Sopenharmony_ci	ret = regmap_update_bits(regmap, gcc_oxili_gfx3d_clk.clkr.enable_reg, 0xf0, 0);
412962306a36Sopenharmony_ci	if (ret)
413062306a36Sopenharmony_ci		return ret;
413162306a36Sopenharmony_ci
413262306a36Sopenharmony_ci	return qcom_cc_really_probe(pdev, &gcc_msm8976_desc, regmap);
413362306a36Sopenharmony_ci}
413462306a36Sopenharmony_ci
413562306a36Sopenharmony_cistatic struct platform_driver gcc_msm8976_driver = {
413662306a36Sopenharmony_ci	.probe = gcc_msm8976_probe,
413762306a36Sopenharmony_ci	.driver = {
413862306a36Sopenharmony_ci		.name = "qcom,gcc-msm8976",
413962306a36Sopenharmony_ci		.of_match_table = gcc_msm8976_match_table,
414062306a36Sopenharmony_ci	},
414162306a36Sopenharmony_ci};
414262306a36Sopenharmony_ci
414362306a36Sopenharmony_cistatic int __init gcc_msm8976_init(void)
414462306a36Sopenharmony_ci{
414562306a36Sopenharmony_ci	return platform_driver_register(&gcc_msm8976_driver);
414662306a36Sopenharmony_ci}
414762306a36Sopenharmony_cicore_initcall(gcc_msm8976_init);
414862306a36Sopenharmony_ci
414962306a36Sopenharmony_cistatic void __exit gcc_msm8976_exit(void)
415062306a36Sopenharmony_ci{
415162306a36Sopenharmony_ci	platform_driver_unregister(&gcc_msm8976_driver);
415262306a36Sopenharmony_ci}
415362306a36Sopenharmony_cimodule_exit(gcc_msm8976_exit);
415462306a36Sopenharmony_ci
415562306a36Sopenharmony_ciMODULE_AUTHOR("AngeloGioacchino Del Regno <angelogioacchino.delregno@somainline.org>");
415662306a36Sopenharmony_ciMODULE_LICENSE("GPL v2");
4157