162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright (C) 2022 Kernkonzept GmbH.
462306a36Sopenharmony_ci *
562306a36Sopenharmony_ci * Based on gcc-msm8916.c:
662306a36Sopenharmony_ci *   Copyright 2015 Linaro Limited
762306a36Sopenharmony_ci * adapted with data from clock-gcc-8909.c in Qualcomm's msm-3.18 release:
862306a36Sopenharmony_ci *   Copyright (c) 2014-2016, The Linux Foundation. All rights reserved.
962306a36Sopenharmony_ci */
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ci#include <linux/bitops.h>
1262306a36Sopenharmony_ci#include <linux/clk-provider.h>
1362306a36Sopenharmony_ci#include <linux/err.h>
1462306a36Sopenharmony_ci#include <linux/kernel.h>
1562306a36Sopenharmony_ci#include <linux/module.h>
1662306a36Sopenharmony_ci#include <linux/of.h>
1762306a36Sopenharmony_ci#include <linux/platform_device.h>
1862306a36Sopenharmony_ci#include <linux/regmap.h>
1962306a36Sopenharmony_ci#include <linux/reset-controller.h>
2062306a36Sopenharmony_ci
2162306a36Sopenharmony_ci#include <dt-bindings/clock/qcom,gcc-msm8909.h>
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ci#include "clk-alpha-pll.h"
2462306a36Sopenharmony_ci#include "clk-branch.h"
2562306a36Sopenharmony_ci#include "clk-pll.h"
2662306a36Sopenharmony_ci#include "clk-rcg.h"
2762306a36Sopenharmony_ci#include "clk-regmap.h"
2862306a36Sopenharmony_ci#include "common.h"
2962306a36Sopenharmony_ci#include "gdsc.h"
3062306a36Sopenharmony_ci#include "reset.h"
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ci/* Need to match the order of clocks in DT binding */
3362306a36Sopenharmony_cienum {
3462306a36Sopenharmony_ci	DT_XO,
3562306a36Sopenharmony_ci	DT_SLEEP_CLK,
3662306a36Sopenharmony_ci	DT_DSI0PLL,
3762306a36Sopenharmony_ci	DT_DSI0PLL_BYTE,
3862306a36Sopenharmony_ci};
3962306a36Sopenharmony_ci
4062306a36Sopenharmony_cienum {
4162306a36Sopenharmony_ci	P_XO,
4262306a36Sopenharmony_ci	P_SLEEP_CLK,
4362306a36Sopenharmony_ci	P_GPLL0,
4462306a36Sopenharmony_ci	P_GPLL1,
4562306a36Sopenharmony_ci	P_GPLL2,
4662306a36Sopenharmony_ci	P_BIMC,
4762306a36Sopenharmony_ci	P_DSI0PLL,
4862306a36Sopenharmony_ci	P_DSI0PLL_BYTE,
4962306a36Sopenharmony_ci};
5062306a36Sopenharmony_ci
5162306a36Sopenharmony_cistatic const struct parent_map gcc_xo_map[] = {
5262306a36Sopenharmony_ci	{ P_XO, 0 },
5362306a36Sopenharmony_ci};
5462306a36Sopenharmony_ci
5562306a36Sopenharmony_cistatic const struct clk_parent_data gcc_xo_data[] = {
5662306a36Sopenharmony_ci	{ .index = DT_XO },
5762306a36Sopenharmony_ci};
5862306a36Sopenharmony_ci
5962306a36Sopenharmony_cistatic const struct clk_parent_data gcc_sleep_clk_data[] = {
6062306a36Sopenharmony_ci	{ .index = DT_SLEEP_CLK },
6162306a36Sopenharmony_ci};
6262306a36Sopenharmony_ci
6362306a36Sopenharmony_cistatic struct clk_alpha_pll gpll0_early = {
6462306a36Sopenharmony_ci	.offset = 0x21000,
6562306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
6662306a36Sopenharmony_ci	.clkr = {
6762306a36Sopenharmony_ci		.enable_reg = 0x45000,
6862306a36Sopenharmony_ci		.enable_mask = BIT(0),
6962306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
7062306a36Sopenharmony_ci			.name = "gpll0_early",
7162306a36Sopenharmony_ci			.parent_data = gcc_xo_data,
7262306a36Sopenharmony_ci			.num_parents = ARRAY_SIZE(gcc_xo_data),
7362306a36Sopenharmony_ci			/* Avoid rate changes for shared clock */
7462306a36Sopenharmony_ci			.ops = &clk_alpha_pll_fixed_ops,
7562306a36Sopenharmony_ci		},
7662306a36Sopenharmony_ci	},
7762306a36Sopenharmony_ci};
7862306a36Sopenharmony_ci
7962306a36Sopenharmony_cistatic struct clk_alpha_pll_postdiv gpll0 = {
8062306a36Sopenharmony_ci	.offset = 0x21000,
8162306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
8262306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data) {
8362306a36Sopenharmony_ci		.name = "gpll0",
8462306a36Sopenharmony_ci		.parent_hws = (const struct clk_hw*[]) {
8562306a36Sopenharmony_ci			&gpll0_early.clkr.hw,
8662306a36Sopenharmony_ci		},
8762306a36Sopenharmony_ci		.num_parents = 1,
8862306a36Sopenharmony_ci		/* Avoid rate changes for shared clock */
8962306a36Sopenharmony_ci		.ops = &clk_alpha_pll_postdiv_ro_ops,
9062306a36Sopenharmony_ci	},
9162306a36Sopenharmony_ci};
9262306a36Sopenharmony_ci
9362306a36Sopenharmony_cistatic struct clk_pll gpll1 = {
9462306a36Sopenharmony_ci	.l_reg = 0x20004,
9562306a36Sopenharmony_ci	.m_reg = 0x20008,
9662306a36Sopenharmony_ci	.n_reg = 0x2000c,
9762306a36Sopenharmony_ci	.config_reg = 0x20010,
9862306a36Sopenharmony_ci	.mode_reg = 0x20000,
9962306a36Sopenharmony_ci	.status_reg = 0x2001c,
10062306a36Sopenharmony_ci	.status_bit = 17,
10162306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data) {
10262306a36Sopenharmony_ci		.name = "gpll1",
10362306a36Sopenharmony_ci		.parent_data = gcc_xo_data,
10462306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_xo_data),
10562306a36Sopenharmony_ci		.ops = &clk_pll_ops,
10662306a36Sopenharmony_ci	},
10762306a36Sopenharmony_ci};
10862306a36Sopenharmony_ci
10962306a36Sopenharmony_cistatic struct clk_regmap gpll1_vote = {
11062306a36Sopenharmony_ci	.enable_reg = 0x45000,
11162306a36Sopenharmony_ci	.enable_mask = BIT(1),
11262306a36Sopenharmony_ci	.hw.init = &(struct clk_init_data) {
11362306a36Sopenharmony_ci		.name = "gpll1_vote",
11462306a36Sopenharmony_ci		.parent_hws = (const struct clk_hw*[]) {
11562306a36Sopenharmony_ci			&gpll1.clkr.hw,
11662306a36Sopenharmony_ci		},
11762306a36Sopenharmony_ci		.num_parents = 1,
11862306a36Sopenharmony_ci		.ops = &clk_pll_vote_ops,
11962306a36Sopenharmony_ci	},
12062306a36Sopenharmony_ci};
12162306a36Sopenharmony_ci
12262306a36Sopenharmony_cistatic struct clk_alpha_pll gpll2_early = {
12362306a36Sopenharmony_ci	.offset = 0x25000,
12462306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
12562306a36Sopenharmony_ci	.clkr = {
12662306a36Sopenharmony_ci		.enable_reg = 0x45000,
12762306a36Sopenharmony_ci		.enable_mask = BIT(3),
12862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
12962306a36Sopenharmony_ci			.name = "gpll2_early",
13062306a36Sopenharmony_ci			.parent_data = gcc_xo_data,
13162306a36Sopenharmony_ci			.num_parents = ARRAY_SIZE(gcc_xo_data),
13262306a36Sopenharmony_ci			/* Avoid rate changes for shared clock */
13362306a36Sopenharmony_ci			.ops = &clk_alpha_pll_fixed_ops,
13462306a36Sopenharmony_ci		},
13562306a36Sopenharmony_ci	},
13662306a36Sopenharmony_ci};
13762306a36Sopenharmony_ci
13862306a36Sopenharmony_cistatic struct clk_alpha_pll_postdiv gpll2 = {
13962306a36Sopenharmony_ci	.offset = 0x25000,
14062306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
14162306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data) {
14262306a36Sopenharmony_ci		.name = "gpll2",
14362306a36Sopenharmony_ci		.parent_hws = (const struct clk_hw*[]) {
14462306a36Sopenharmony_ci			&gpll2_early.clkr.hw,
14562306a36Sopenharmony_ci		},
14662306a36Sopenharmony_ci		.num_parents = 1,
14762306a36Sopenharmony_ci		/* Avoid rate changes for shared clock */
14862306a36Sopenharmony_ci		.ops = &clk_alpha_pll_postdiv_ro_ops,
14962306a36Sopenharmony_ci	},
15062306a36Sopenharmony_ci};
15162306a36Sopenharmony_ci
15262306a36Sopenharmony_cistatic struct clk_alpha_pll bimc_pll_early = {
15362306a36Sopenharmony_ci	.offset = 0x23000,
15462306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
15562306a36Sopenharmony_ci	.clkr = {
15662306a36Sopenharmony_ci		.enable_reg = 0x45000,
15762306a36Sopenharmony_ci		.enable_mask = BIT(2),
15862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
15962306a36Sopenharmony_ci			.name = "bimc_pll_early",
16062306a36Sopenharmony_ci			.parent_data = gcc_xo_data,
16162306a36Sopenharmony_ci			.num_parents = ARRAY_SIZE(gcc_xo_data),
16262306a36Sopenharmony_ci			/* Avoid rate changes for shared clock */
16362306a36Sopenharmony_ci			.ops = &clk_alpha_pll_fixed_ops,
16462306a36Sopenharmony_ci		},
16562306a36Sopenharmony_ci	},
16662306a36Sopenharmony_ci};
16762306a36Sopenharmony_ci
16862306a36Sopenharmony_cistatic struct clk_alpha_pll_postdiv bimc_pll = {
16962306a36Sopenharmony_ci	.offset = 0x23000,
17062306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
17162306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data) {
17262306a36Sopenharmony_ci		.name = "bimc_pll",
17362306a36Sopenharmony_ci		.parent_hws = (const struct clk_hw*[]) {
17462306a36Sopenharmony_ci			&bimc_pll_early.clkr.hw,
17562306a36Sopenharmony_ci		},
17662306a36Sopenharmony_ci		.num_parents = 1,
17762306a36Sopenharmony_ci		/* Avoid rate changes for shared clock */
17862306a36Sopenharmony_ci		.ops = &clk_alpha_pll_postdiv_ro_ops,
17962306a36Sopenharmony_ci	},
18062306a36Sopenharmony_ci};
18162306a36Sopenharmony_ci
18262306a36Sopenharmony_cistatic const struct parent_map gcc_xo_gpll0_map[] = {
18362306a36Sopenharmony_ci	{ P_XO, 0 },
18462306a36Sopenharmony_ci	{ P_GPLL0, 1 },
18562306a36Sopenharmony_ci};
18662306a36Sopenharmony_ci
18762306a36Sopenharmony_cistatic const struct clk_parent_data gcc_xo_gpll0_data[] = {
18862306a36Sopenharmony_ci	{ .index = DT_XO },
18962306a36Sopenharmony_ci	{ .hw = &gpll0.clkr.hw },
19062306a36Sopenharmony_ci};
19162306a36Sopenharmony_ci
19262306a36Sopenharmony_cistatic const struct parent_map gcc_xo_gpll0_bimc_map[] = {
19362306a36Sopenharmony_ci	{ P_XO, 0 },
19462306a36Sopenharmony_ci	{ P_GPLL0, 1 },
19562306a36Sopenharmony_ci	{ P_BIMC, 2 },
19662306a36Sopenharmony_ci};
19762306a36Sopenharmony_ci
19862306a36Sopenharmony_cistatic const struct clk_parent_data gcc_xo_gpll0_bimc_data[] = {
19962306a36Sopenharmony_ci	{ .index = DT_XO },
20062306a36Sopenharmony_ci	{ .hw = &gpll0.clkr.hw },
20162306a36Sopenharmony_ci	{ .hw = &bimc_pll.clkr.hw },
20262306a36Sopenharmony_ci};
20362306a36Sopenharmony_ci
20462306a36Sopenharmony_cistatic const struct freq_tbl ftbl_apss_ahb_clk_src[] = {
20562306a36Sopenharmony_ci	F(19200000, P_XO, 1, 0, 0),
20662306a36Sopenharmony_ci	F(50000000, P_GPLL0, 16, 0, 0),
20762306a36Sopenharmony_ci	F(100000000, P_GPLL0, 8, 0, 0),
20862306a36Sopenharmony_ci	{ }
20962306a36Sopenharmony_ci};
21062306a36Sopenharmony_ci
21162306a36Sopenharmony_cistatic struct clk_rcg2 apss_ahb_clk_src = {
21262306a36Sopenharmony_ci	.cmd_rcgr = 0x46000,
21362306a36Sopenharmony_ci	.hid_width = 5,
21462306a36Sopenharmony_ci	.freq_tbl = ftbl_apss_ahb_clk_src,
21562306a36Sopenharmony_ci	.parent_map = gcc_xo_gpll0_map,
21662306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data) {
21762306a36Sopenharmony_ci		.name = "apss_ahb_clk_src",
21862306a36Sopenharmony_ci		.parent_data = gcc_xo_gpll0_data,
21962306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_xo_gpll0_data),
22062306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
22162306a36Sopenharmony_ci	}
22262306a36Sopenharmony_ci};
22362306a36Sopenharmony_ci
22462306a36Sopenharmony_cistatic struct clk_rcg2 bimc_ddr_clk_src = {
22562306a36Sopenharmony_ci	.cmd_rcgr = 0x32004,
22662306a36Sopenharmony_ci	.hid_width = 5,
22762306a36Sopenharmony_ci	.parent_map = gcc_xo_gpll0_bimc_map,
22862306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data) {
22962306a36Sopenharmony_ci		.name = "bimc_ddr_clk_src",
23062306a36Sopenharmony_ci		.parent_data = gcc_xo_gpll0_bimc_data,
23162306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_xo_gpll0_bimc_data),
23262306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
23362306a36Sopenharmony_ci		.flags = CLK_GET_RATE_NOCACHE,
23462306a36Sopenharmony_ci	},
23562306a36Sopenharmony_ci};
23662306a36Sopenharmony_ci
23762306a36Sopenharmony_cistatic struct clk_rcg2 bimc_gpu_clk_src = {
23862306a36Sopenharmony_ci	.cmd_rcgr = 0x31028,
23962306a36Sopenharmony_ci	.hid_width = 5,
24062306a36Sopenharmony_ci	.parent_map = gcc_xo_gpll0_bimc_map,
24162306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data) {
24262306a36Sopenharmony_ci		.name = "bimc_gpu_clk_src",
24362306a36Sopenharmony_ci		.parent_data = gcc_xo_gpll0_bimc_data,
24462306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_xo_gpll0_bimc_data),
24562306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
24662306a36Sopenharmony_ci		.flags = CLK_GET_RATE_NOCACHE,
24762306a36Sopenharmony_ci	},
24862306a36Sopenharmony_ci};
24962306a36Sopenharmony_ci
25062306a36Sopenharmony_cistatic const struct freq_tbl ftbl_blsp_i2c_apps_clk_src[] = {
25162306a36Sopenharmony_ci	F(19200000, P_XO, 1, 0, 0),
25262306a36Sopenharmony_ci	F(50000000, P_GPLL0, 16, 0, 0),
25362306a36Sopenharmony_ci	{ }
25462306a36Sopenharmony_ci};
25562306a36Sopenharmony_ci
25662306a36Sopenharmony_cistatic struct clk_rcg2 blsp1_qup1_i2c_apps_clk_src = {
25762306a36Sopenharmony_ci	.cmd_rcgr = 0x0200c,
25862306a36Sopenharmony_ci	.hid_width = 5,
25962306a36Sopenharmony_ci	.freq_tbl = ftbl_blsp_i2c_apps_clk_src,
26062306a36Sopenharmony_ci	.parent_map = gcc_xo_gpll0_map,
26162306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data) {
26262306a36Sopenharmony_ci		.name = "blsp1_qup1_i2c_apps_clk_src",
26362306a36Sopenharmony_ci		.parent_data = gcc_xo_gpll0_data,
26462306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_xo_gpll0_data),
26562306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
26662306a36Sopenharmony_ci	}
26762306a36Sopenharmony_ci};
26862306a36Sopenharmony_ci
26962306a36Sopenharmony_cistatic struct clk_rcg2 blsp1_qup2_i2c_apps_clk_src = {
27062306a36Sopenharmony_ci	.cmd_rcgr = 0x03000,
27162306a36Sopenharmony_ci	.hid_width = 5,
27262306a36Sopenharmony_ci	.freq_tbl = ftbl_blsp_i2c_apps_clk_src,
27362306a36Sopenharmony_ci	.parent_map = gcc_xo_gpll0_map,
27462306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data) {
27562306a36Sopenharmony_ci		.name = "blsp1_qup2_i2c_apps_clk_src",
27662306a36Sopenharmony_ci		.parent_data = gcc_xo_gpll0_data,
27762306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_xo_gpll0_data),
27862306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
27962306a36Sopenharmony_ci	}
28062306a36Sopenharmony_ci};
28162306a36Sopenharmony_ci
28262306a36Sopenharmony_cistatic struct clk_rcg2 blsp1_qup3_i2c_apps_clk_src = {
28362306a36Sopenharmony_ci	.cmd_rcgr = 0x04000,
28462306a36Sopenharmony_ci	.hid_width = 5,
28562306a36Sopenharmony_ci	.freq_tbl = ftbl_blsp_i2c_apps_clk_src,
28662306a36Sopenharmony_ci	.parent_map = gcc_xo_gpll0_map,
28762306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data) {
28862306a36Sopenharmony_ci		.name = "blsp1_qup3_i2c_apps_clk_src",
28962306a36Sopenharmony_ci		.parent_data = gcc_xo_gpll0_data,
29062306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_xo_gpll0_data),
29162306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
29262306a36Sopenharmony_ci	}
29362306a36Sopenharmony_ci};
29462306a36Sopenharmony_ci
29562306a36Sopenharmony_cistatic struct clk_rcg2 blsp1_qup4_i2c_apps_clk_src = {
29662306a36Sopenharmony_ci	.cmd_rcgr = 0x05000,
29762306a36Sopenharmony_ci	.hid_width = 5,
29862306a36Sopenharmony_ci	.freq_tbl = ftbl_blsp_i2c_apps_clk_src,
29962306a36Sopenharmony_ci	.parent_map = gcc_xo_gpll0_map,
30062306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data) {
30162306a36Sopenharmony_ci		.name = "blsp1_qup4_i2c_apps_clk_src",
30262306a36Sopenharmony_ci		.parent_data = gcc_xo_gpll0_data,
30362306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_xo_gpll0_data),
30462306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
30562306a36Sopenharmony_ci	}
30662306a36Sopenharmony_ci};
30762306a36Sopenharmony_ci
30862306a36Sopenharmony_cistatic struct clk_rcg2 blsp1_qup5_i2c_apps_clk_src = {
30962306a36Sopenharmony_ci	.cmd_rcgr = 0x06000,
31062306a36Sopenharmony_ci	.hid_width = 5,
31162306a36Sopenharmony_ci	.freq_tbl = ftbl_blsp_i2c_apps_clk_src,
31262306a36Sopenharmony_ci	.parent_map = gcc_xo_gpll0_map,
31362306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data) {
31462306a36Sopenharmony_ci		.name = "blsp1_qup5_i2c_apps_clk_src",
31562306a36Sopenharmony_ci		.parent_data = gcc_xo_gpll0_data,
31662306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_xo_gpll0_data),
31762306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
31862306a36Sopenharmony_ci	}
31962306a36Sopenharmony_ci};
32062306a36Sopenharmony_ci
32162306a36Sopenharmony_cistatic struct clk_rcg2 blsp1_qup6_i2c_apps_clk_src = {
32262306a36Sopenharmony_ci	.cmd_rcgr = 0x07000,
32362306a36Sopenharmony_ci	.hid_width = 5,
32462306a36Sopenharmony_ci	.freq_tbl = ftbl_blsp_i2c_apps_clk_src,
32562306a36Sopenharmony_ci	.parent_map = gcc_xo_gpll0_map,
32662306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data) {
32762306a36Sopenharmony_ci		.name = "blsp1_qup6_i2c_apps_clk_src",
32862306a36Sopenharmony_ci		.parent_data = gcc_xo_gpll0_data,
32962306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_xo_gpll0_data),
33062306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
33162306a36Sopenharmony_ci	}
33262306a36Sopenharmony_ci};
33362306a36Sopenharmony_ci
33462306a36Sopenharmony_cistatic const struct freq_tbl ftbl_blsp_spi_apps_clk_src[] = {
33562306a36Sopenharmony_ci	F(960000, P_XO, 10, 1, 2),
33662306a36Sopenharmony_ci	F(4800000, P_XO, 4, 0, 0),
33762306a36Sopenharmony_ci	F(9600000, P_XO, 2, 0, 0),
33862306a36Sopenharmony_ci	F(16000000, P_GPLL0, 10, 1, 5),
33962306a36Sopenharmony_ci	F(19200000, P_XO, 1, 0, 0),
34062306a36Sopenharmony_ci	F(25000000, P_GPLL0, 16, 1, 2),
34162306a36Sopenharmony_ci	F(50000000, P_GPLL0, 16, 0, 0),
34262306a36Sopenharmony_ci	{ }
34362306a36Sopenharmony_ci};
34462306a36Sopenharmony_ci
34562306a36Sopenharmony_cistatic struct clk_rcg2 blsp1_qup1_spi_apps_clk_src = {
34662306a36Sopenharmony_ci	.cmd_rcgr = 0x02024,
34762306a36Sopenharmony_ci	.hid_width = 5,
34862306a36Sopenharmony_ci	.mnd_width = 8,
34962306a36Sopenharmony_ci	.freq_tbl = ftbl_blsp_spi_apps_clk_src,
35062306a36Sopenharmony_ci	.parent_map = gcc_xo_gpll0_map,
35162306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data) {
35262306a36Sopenharmony_ci		.name = "blsp1_qup1_spi_apps_clk_src",
35362306a36Sopenharmony_ci		.parent_data = gcc_xo_gpll0_data,
35462306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_xo_gpll0_data),
35562306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
35662306a36Sopenharmony_ci	}
35762306a36Sopenharmony_ci};
35862306a36Sopenharmony_ci
35962306a36Sopenharmony_cistatic struct clk_rcg2 blsp1_qup2_spi_apps_clk_src = {
36062306a36Sopenharmony_ci	.cmd_rcgr = 0x03014,
36162306a36Sopenharmony_ci	.hid_width = 5,
36262306a36Sopenharmony_ci	.mnd_width = 8,
36362306a36Sopenharmony_ci	.freq_tbl = ftbl_blsp_spi_apps_clk_src,
36462306a36Sopenharmony_ci	.parent_map = gcc_xo_gpll0_map,
36562306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data) {
36662306a36Sopenharmony_ci		.name = "blsp1_qup2_spi_apps_clk_src",
36762306a36Sopenharmony_ci		.parent_data = gcc_xo_gpll0_data,
36862306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_xo_gpll0_data),
36962306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
37062306a36Sopenharmony_ci	}
37162306a36Sopenharmony_ci};
37262306a36Sopenharmony_ci
37362306a36Sopenharmony_cistatic struct clk_rcg2 blsp1_qup3_spi_apps_clk_src = {
37462306a36Sopenharmony_ci	.cmd_rcgr = 0x04024,
37562306a36Sopenharmony_ci	.hid_width = 5,
37662306a36Sopenharmony_ci	.mnd_width = 8,
37762306a36Sopenharmony_ci	.freq_tbl = ftbl_blsp_spi_apps_clk_src,
37862306a36Sopenharmony_ci	.parent_map = gcc_xo_gpll0_map,
37962306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data) {
38062306a36Sopenharmony_ci		.name = "blsp1_qup3_spi_apps_clk_src",
38162306a36Sopenharmony_ci		.parent_data = gcc_xo_gpll0_data,
38262306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_xo_gpll0_data),
38362306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
38462306a36Sopenharmony_ci	}
38562306a36Sopenharmony_ci};
38662306a36Sopenharmony_ci
38762306a36Sopenharmony_cistatic struct clk_rcg2 blsp1_qup4_spi_apps_clk_src = {
38862306a36Sopenharmony_ci	.cmd_rcgr = 0x05024,
38962306a36Sopenharmony_ci	.hid_width = 5,
39062306a36Sopenharmony_ci	.mnd_width = 8,
39162306a36Sopenharmony_ci	.freq_tbl = ftbl_blsp_spi_apps_clk_src,
39262306a36Sopenharmony_ci	.parent_map = gcc_xo_gpll0_map,
39362306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data) {
39462306a36Sopenharmony_ci		.name = "blsp1_qup4_spi_apps_clk_src",
39562306a36Sopenharmony_ci		.parent_data = gcc_xo_gpll0_data,
39662306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_xo_gpll0_data),
39762306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
39862306a36Sopenharmony_ci	}
39962306a36Sopenharmony_ci};
40062306a36Sopenharmony_ci
40162306a36Sopenharmony_cistatic struct clk_rcg2 blsp1_qup5_spi_apps_clk_src = {
40262306a36Sopenharmony_ci	.cmd_rcgr = 0x06024,
40362306a36Sopenharmony_ci	.hid_width = 5,
40462306a36Sopenharmony_ci	.mnd_width = 8,
40562306a36Sopenharmony_ci	.freq_tbl = ftbl_blsp_spi_apps_clk_src,
40662306a36Sopenharmony_ci	.parent_map = gcc_xo_gpll0_map,
40762306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data) {
40862306a36Sopenharmony_ci		.name = "blsp1_qup5_spi_apps_clk_src",
40962306a36Sopenharmony_ci		.parent_data = gcc_xo_gpll0_data,
41062306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_xo_gpll0_data),
41162306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
41262306a36Sopenharmony_ci	}
41362306a36Sopenharmony_ci};
41462306a36Sopenharmony_ci
41562306a36Sopenharmony_cistatic struct clk_rcg2 blsp1_qup6_spi_apps_clk_src = {
41662306a36Sopenharmony_ci	.cmd_rcgr = 0x07024,
41762306a36Sopenharmony_ci	.hid_width = 5,
41862306a36Sopenharmony_ci	.mnd_width = 8,
41962306a36Sopenharmony_ci	.freq_tbl = ftbl_blsp_spi_apps_clk_src,
42062306a36Sopenharmony_ci	.parent_map = gcc_xo_gpll0_map,
42162306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data) {
42262306a36Sopenharmony_ci		.name = "blsp1_qup6_spi_apps_clk_src",
42362306a36Sopenharmony_ci		.parent_data = gcc_xo_gpll0_data,
42462306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_xo_gpll0_data),
42562306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
42662306a36Sopenharmony_ci	}
42762306a36Sopenharmony_ci};
42862306a36Sopenharmony_ci
42962306a36Sopenharmony_cistatic const struct freq_tbl ftbl_blsp_uart_apps_clk_src[] = {
43062306a36Sopenharmony_ci	F(3686400, P_GPLL0, 1, 72, 15625),
43162306a36Sopenharmony_ci	F(7372800, P_GPLL0, 1, 144, 15625),
43262306a36Sopenharmony_ci	F(14745600, P_GPLL0, 1, 288, 15625),
43362306a36Sopenharmony_ci	F(16000000, P_GPLL0, 10, 1, 5),
43462306a36Sopenharmony_ci	F(19200000, P_XO, 1, 0, 0),
43562306a36Sopenharmony_ci	F(24000000, P_GPLL0, 1, 3, 100),
43662306a36Sopenharmony_ci	F(25000000, P_GPLL0, 16, 1, 2),
43762306a36Sopenharmony_ci	F(32000000, P_GPLL0, 1, 1, 25),
43862306a36Sopenharmony_ci	F(40000000, P_GPLL0, 1, 1, 20),
43962306a36Sopenharmony_ci	F(46400000, P_GPLL0, 1, 29, 500),
44062306a36Sopenharmony_ci	F(48000000, P_GPLL0, 1, 3, 50),
44162306a36Sopenharmony_ci	F(51200000, P_GPLL0, 1, 8, 125),
44262306a36Sopenharmony_ci	F(56000000, P_GPLL0, 1, 7, 100),
44362306a36Sopenharmony_ci	F(58982400, P_GPLL0, 1, 1152, 15625),
44462306a36Sopenharmony_ci	F(60000000, P_GPLL0, 1, 3, 40),
44562306a36Sopenharmony_ci	{ }
44662306a36Sopenharmony_ci};
44762306a36Sopenharmony_ci
44862306a36Sopenharmony_cistatic struct clk_rcg2 blsp1_uart1_apps_clk_src = {
44962306a36Sopenharmony_ci	.cmd_rcgr = 0x02044,
45062306a36Sopenharmony_ci	.hid_width = 5,
45162306a36Sopenharmony_ci	.mnd_width = 16,
45262306a36Sopenharmony_ci	.freq_tbl = ftbl_blsp_uart_apps_clk_src,
45362306a36Sopenharmony_ci	.parent_map = gcc_xo_gpll0_map,
45462306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data) {
45562306a36Sopenharmony_ci		.name = "blsp1_uart1_apps_clk_src",
45662306a36Sopenharmony_ci		.parent_data = gcc_xo_gpll0_data,
45762306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_xo_gpll0_data),
45862306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
45962306a36Sopenharmony_ci	}
46062306a36Sopenharmony_ci};
46162306a36Sopenharmony_ci
46262306a36Sopenharmony_cistatic struct clk_rcg2 blsp1_uart2_apps_clk_src = {
46362306a36Sopenharmony_ci	.cmd_rcgr = 0x03034,
46462306a36Sopenharmony_ci	.hid_width = 5,
46562306a36Sopenharmony_ci	.mnd_width = 16,
46662306a36Sopenharmony_ci	.freq_tbl = ftbl_blsp_uart_apps_clk_src,
46762306a36Sopenharmony_ci	.parent_map = gcc_xo_gpll0_map,
46862306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data) {
46962306a36Sopenharmony_ci		.name = "blsp1_uart2_apps_clk_src",
47062306a36Sopenharmony_ci		.parent_data = gcc_xo_gpll0_data,
47162306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_xo_gpll0_data),
47262306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
47362306a36Sopenharmony_ci	}
47462306a36Sopenharmony_ci};
47562306a36Sopenharmony_ci
47662306a36Sopenharmony_cistatic const struct parent_map gcc_byte0_map[] = {
47762306a36Sopenharmony_ci	{ P_XO, 0 },
47862306a36Sopenharmony_ci	{ P_DSI0PLL_BYTE, 1 },
47962306a36Sopenharmony_ci};
48062306a36Sopenharmony_ci
48162306a36Sopenharmony_cistatic const struct clk_parent_data gcc_byte_data[] = {
48262306a36Sopenharmony_ci	{ .index = DT_XO },
48362306a36Sopenharmony_ci	{ .index = DT_DSI0PLL_BYTE },
48462306a36Sopenharmony_ci};
48562306a36Sopenharmony_ci
48662306a36Sopenharmony_cistatic struct clk_rcg2 byte0_clk_src = {
48762306a36Sopenharmony_ci	.cmd_rcgr = 0x4d044,
48862306a36Sopenharmony_ci	.hid_width = 5,
48962306a36Sopenharmony_ci	.parent_map = gcc_byte0_map,
49062306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data) {
49162306a36Sopenharmony_ci		.name = "byte0_clk_src",
49262306a36Sopenharmony_ci		.parent_data = gcc_byte_data,
49362306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_byte_data),
49462306a36Sopenharmony_ci		.ops = &clk_byte2_ops,
49562306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
49662306a36Sopenharmony_ci	}
49762306a36Sopenharmony_ci};
49862306a36Sopenharmony_ci
49962306a36Sopenharmony_cistatic const struct freq_tbl ftbl_camss_gp_clk_src[] = {
50062306a36Sopenharmony_ci	F(100000000, P_GPLL0, 8, 0, 0),
50162306a36Sopenharmony_ci	F(200000000, P_GPLL0, 4, 0, 0),
50262306a36Sopenharmony_ci	{ }
50362306a36Sopenharmony_ci};
50462306a36Sopenharmony_ci
50562306a36Sopenharmony_cistatic struct clk_rcg2 camss_gp0_clk_src = {
50662306a36Sopenharmony_ci	.cmd_rcgr = 0x54000,
50762306a36Sopenharmony_ci	.hid_width = 5,
50862306a36Sopenharmony_ci	.mnd_width = 8,
50962306a36Sopenharmony_ci	.freq_tbl = ftbl_camss_gp_clk_src,
51062306a36Sopenharmony_ci	.parent_map = gcc_xo_gpll0_map,
51162306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data) {
51262306a36Sopenharmony_ci		.name = "camss_gp0_clk_src",
51362306a36Sopenharmony_ci		.parent_data = gcc_xo_gpll0_data,
51462306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_xo_gpll0_data),
51562306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
51662306a36Sopenharmony_ci	}
51762306a36Sopenharmony_ci};
51862306a36Sopenharmony_ci
51962306a36Sopenharmony_cistatic struct clk_rcg2 camss_gp1_clk_src = {
52062306a36Sopenharmony_ci	.cmd_rcgr = 0x55000,
52162306a36Sopenharmony_ci	.hid_width = 5,
52262306a36Sopenharmony_ci	.mnd_width = 8,
52362306a36Sopenharmony_ci	.freq_tbl = ftbl_camss_gp_clk_src,
52462306a36Sopenharmony_ci	.parent_map = gcc_xo_gpll0_map,
52562306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data) {
52662306a36Sopenharmony_ci		.name = "camss_gp1_clk_src",
52762306a36Sopenharmony_ci		.parent_data = gcc_xo_gpll0_data,
52862306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_xo_gpll0_data),
52962306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
53062306a36Sopenharmony_ci	}
53162306a36Sopenharmony_ci};
53262306a36Sopenharmony_ci
53362306a36Sopenharmony_cistatic const struct freq_tbl ftbl_camss_top_ahb_clk_src[] = {
53462306a36Sopenharmony_ci	F(40000000, P_GPLL0, 10, 1, 2),
53562306a36Sopenharmony_ci	F(80000000, P_GPLL0, 10, 0, 0),
53662306a36Sopenharmony_ci	{ }
53762306a36Sopenharmony_ci};
53862306a36Sopenharmony_ci
53962306a36Sopenharmony_cistatic struct clk_rcg2 camss_top_ahb_clk_src = {
54062306a36Sopenharmony_ci	.cmd_rcgr = 0x5a000,
54162306a36Sopenharmony_ci	.hid_width = 5,
54262306a36Sopenharmony_ci	.mnd_width = 8,
54362306a36Sopenharmony_ci	.freq_tbl = ftbl_camss_top_ahb_clk_src,
54462306a36Sopenharmony_ci	.parent_map = gcc_xo_gpll0_map,
54562306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data) {
54662306a36Sopenharmony_ci		.name = "camss_top_ahb_clk_src",
54762306a36Sopenharmony_ci		.parent_data = gcc_xo_gpll0_data,
54862306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_xo_gpll0_data),
54962306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
55062306a36Sopenharmony_ci	}
55162306a36Sopenharmony_ci};
55262306a36Sopenharmony_ci
55362306a36Sopenharmony_cistatic const struct freq_tbl ftbl_crypto_clk_src[] = {
55462306a36Sopenharmony_ci	F(50000000, P_GPLL0, 16, 0, 0),
55562306a36Sopenharmony_ci	F(80000000, P_GPLL0, 10, 0, 0),
55662306a36Sopenharmony_ci	F(100000000, P_GPLL0, 8, 0, 0),
55762306a36Sopenharmony_ci	F(160000000, P_GPLL0, 5, 0, 0),
55862306a36Sopenharmony_ci	{ }
55962306a36Sopenharmony_ci};
56062306a36Sopenharmony_ci
56162306a36Sopenharmony_cistatic struct clk_rcg2 crypto_clk_src = {
56262306a36Sopenharmony_ci	.cmd_rcgr = 0x16004,
56362306a36Sopenharmony_ci	.hid_width = 5,
56462306a36Sopenharmony_ci	.freq_tbl = ftbl_crypto_clk_src,
56562306a36Sopenharmony_ci	.parent_map = gcc_xo_gpll0_map,
56662306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data) {
56762306a36Sopenharmony_ci		.name = "crypto_clk_src",
56862306a36Sopenharmony_ci		.parent_data = gcc_xo_gpll0_data,
56962306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_xo_gpll0_data),
57062306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
57162306a36Sopenharmony_ci	}
57262306a36Sopenharmony_ci};
57362306a36Sopenharmony_ci
57462306a36Sopenharmony_cistatic const struct freq_tbl ftbl_csi_clk_src[] = {
57562306a36Sopenharmony_ci	F(100000000, P_GPLL0, 8, 0, 0),
57662306a36Sopenharmony_ci	F(200000000, P_GPLL0, 4, 0, 0),
57762306a36Sopenharmony_ci	{ }
57862306a36Sopenharmony_ci};
57962306a36Sopenharmony_ci
58062306a36Sopenharmony_cistatic struct clk_rcg2 csi0_clk_src = {
58162306a36Sopenharmony_ci	.cmd_rcgr = 0x4e020,
58262306a36Sopenharmony_ci	.hid_width = 5,
58362306a36Sopenharmony_ci	.freq_tbl = ftbl_csi_clk_src,
58462306a36Sopenharmony_ci	.parent_map = gcc_xo_gpll0_map,
58562306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data) {
58662306a36Sopenharmony_ci		.name = "csi0_clk_src",
58762306a36Sopenharmony_ci		.parent_data = gcc_xo_gpll0_data,
58862306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_xo_gpll0_map),
58962306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
59062306a36Sopenharmony_ci	}
59162306a36Sopenharmony_ci};
59262306a36Sopenharmony_ci
59362306a36Sopenharmony_cistatic struct clk_rcg2 csi1_clk_src = {
59462306a36Sopenharmony_ci	.cmd_rcgr = 0x4f020,
59562306a36Sopenharmony_ci	.hid_width = 5,
59662306a36Sopenharmony_ci	.freq_tbl = ftbl_csi_clk_src,
59762306a36Sopenharmony_ci	.parent_map = gcc_xo_gpll0_map,
59862306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data) {
59962306a36Sopenharmony_ci		.name = "csi1_clk_src",
60062306a36Sopenharmony_ci		.parent_data = gcc_xo_gpll0_data,
60162306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_xo_gpll0_data),
60262306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
60362306a36Sopenharmony_ci	}
60462306a36Sopenharmony_ci};
60562306a36Sopenharmony_ci
60662306a36Sopenharmony_cistatic const struct freq_tbl ftbl_csi_phytimer_clk_src[] = {
60762306a36Sopenharmony_ci	F(100000000, P_GPLL0, 8, 0, 0),
60862306a36Sopenharmony_ci	F(200000000, P_GPLL0, 4, 0, 0),
60962306a36Sopenharmony_ci	{ }
61062306a36Sopenharmony_ci};
61162306a36Sopenharmony_ci
61262306a36Sopenharmony_cistatic struct clk_rcg2 csi0phytimer_clk_src = {
61362306a36Sopenharmony_ci	.cmd_rcgr = 0x4e000,
61462306a36Sopenharmony_ci	.hid_width = 5,
61562306a36Sopenharmony_ci	.freq_tbl = ftbl_csi_phytimer_clk_src,
61662306a36Sopenharmony_ci	.parent_map = gcc_xo_gpll0_map,
61762306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data) {
61862306a36Sopenharmony_ci		.name = "csi0phytimer_clk_src",
61962306a36Sopenharmony_ci		.parent_data = gcc_xo_gpll0_data,
62062306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_xo_gpll0_data),
62162306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
62262306a36Sopenharmony_ci	}
62362306a36Sopenharmony_ci};
62462306a36Sopenharmony_ci
62562306a36Sopenharmony_cistatic const struct freq_tbl ftbl_esc0_clk_src[] = {
62662306a36Sopenharmony_ci	F(19200000, P_XO, 1, 0, 0),
62762306a36Sopenharmony_ci	{ }
62862306a36Sopenharmony_ci};
62962306a36Sopenharmony_ci
63062306a36Sopenharmony_cistatic struct clk_rcg2 esc0_clk_src = {
63162306a36Sopenharmony_ci	.cmd_rcgr = 0x4d05c,
63262306a36Sopenharmony_ci	.hid_width = 5,
63362306a36Sopenharmony_ci	.freq_tbl = ftbl_esc0_clk_src,
63462306a36Sopenharmony_ci	.parent_map = gcc_xo_map,
63562306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data) {
63662306a36Sopenharmony_ci		.name = "esc0_clk_src",
63762306a36Sopenharmony_ci		.parent_data = gcc_xo_data,
63862306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_xo_data),
63962306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
64062306a36Sopenharmony_ci	}
64162306a36Sopenharmony_ci};
64262306a36Sopenharmony_ci
64362306a36Sopenharmony_cistatic const struct parent_map gcc_gfx3d_map[] = {
64462306a36Sopenharmony_ci	{ P_XO, 0 },
64562306a36Sopenharmony_ci	{ P_GPLL0, 1 },
64662306a36Sopenharmony_ci	{ P_GPLL1, 2 },
64762306a36Sopenharmony_ci};
64862306a36Sopenharmony_ci
64962306a36Sopenharmony_cistatic const struct clk_parent_data gcc_gfx3d_data[] = {
65062306a36Sopenharmony_ci	{ .index = DT_XO },
65162306a36Sopenharmony_ci	{ .hw = &gpll0.clkr.hw },
65262306a36Sopenharmony_ci	{ .hw = &gpll1_vote.hw },
65362306a36Sopenharmony_ci};
65462306a36Sopenharmony_ci
65562306a36Sopenharmony_cistatic const struct freq_tbl ftbl_gfx3d_clk_src[] = {
65662306a36Sopenharmony_ci	F(19200000, P_XO, 1, 0, 0),
65762306a36Sopenharmony_ci	F(50000000, P_GPLL0, 16, 0, 0),
65862306a36Sopenharmony_ci	F(80000000, P_GPLL0, 10, 0, 0),
65962306a36Sopenharmony_ci	F(100000000, P_GPLL0, 8, 0, 0),
66062306a36Sopenharmony_ci	F(160000000, P_GPLL0, 5, 0, 0),
66162306a36Sopenharmony_ci	F(177780000, P_GPLL0, 4.5, 0, 0),
66262306a36Sopenharmony_ci	F(200000000, P_GPLL0, 4, 0, 0),
66362306a36Sopenharmony_ci	F(266670000, P_GPLL0, 3, 0, 0),
66462306a36Sopenharmony_ci	F(307200000, P_GPLL1, 4, 0, 0),
66562306a36Sopenharmony_ci	F(409600000, P_GPLL1, 3, 0, 0),
66662306a36Sopenharmony_ci	{ }
66762306a36Sopenharmony_ci};
66862306a36Sopenharmony_ci
66962306a36Sopenharmony_cistatic struct clk_rcg2 gfx3d_clk_src = {
67062306a36Sopenharmony_ci	.cmd_rcgr = 0x59000,
67162306a36Sopenharmony_ci	.hid_width = 5,
67262306a36Sopenharmony_ci	.freq_tbl = ftbl_gfx3d_clk_src,
67362306a36Sopenharmony_ci	.parent_map = gcc_gfx3d_map,
67462306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data) {
67562306a36Sopenharmony_ci		.name = "gfx3d_clk_src",
67662306a36Sopenharmony_ci		.parent_data = gcc_gfx3d_data,
67762306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_gfx3d_data),
67862306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
67962306a36Sopenharmony_ci	}
68062306a36Sopenharmony_ci};
68162306a36Sopenharmony_ci
68262306a36Sopenharmony_cistatic const struct freq_tbl ftbl_gp_clk_src[] = {
68362306a36Sopenharmony_ci	F(150000, P_XO, 1, 1, 128),
68462306a36Sopenharmony_ci	F(19200000, P_XO, 1, 0, 0),
68562306a36Sopenharmony_ci	{ }
68662306a36Sopenharmony_ci};
68762306a36Sopenharmony_ci
68862306a36Sopenharmony_cistatic struct clk_rcg2 gp1_clk_src = {
68962306a36Sopenharmony_ci	.cmd_rcgr = 0x08004,
69062306a36Sopenharmony_ci	.hid_width = 5,
69162306a36Sopenharmony_ci	.mnd_width = 8,
69262306a36Sopenharmony_ci	.freq_tbl = ftbl_gp_clk_src,
69362306a36Sopenharmony_ci	.parent_map = gcc_xo_map,
69462306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data) {
69562306a36Sopenharmony_ci		.name = "gp1_clk_src",
69662306a36Sopenharmony_ci		.parent_data = gcc_xo_data,
69762306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_xo_data),
69862306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
69962306a36Sopenharmony_ci	}
70062306a36Sopenharmony_ci};
70162306a36Sopenharmony_ci
70262306a36Sopenharmony_cistatic struct clk_rcg2 gp2_clk_src = {
70362306a36Sopenharmony_ci	.cmd_rcgr = 0x09004,
70462306a36Sopenharmony_ci	.hid_width = 5,
70562306a36Sopenharmony_ci	.mnd_width = 8,
70662306a36Sopenharmony_ci	.freq_tbl = ftbl_gp_clk_src,
70762306a36Sopenharmony_ci	.parent_map = gcc_xo_map,
70862306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data) {
70962306a36Sopenharmony_ci		.name = "gp2_clk_src",
71062306a36Sopenharmony_ci		.parent_data = gcc_xo_data,
71162306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_xo_data),
71262306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
71362306a36Sopenharmony_ci	}
71462306a36Sopenharmony_ci};
71562306a36Sopenharmony_ci
71662306a36Sopenharmony_cistatic struct clk_rcg2 gp3_clk_src = {
71762306a36Sopenharmony_ci	.cmd_rcgr = 0x0a004,
71862306a36Sopenharmony_ci	.hid_width = 5,
71962306a36Sopenharmony_ci	.mnd_width = 8,
72062306a36Sopenharmony_ci	.freq_tbl = ftbl_gp_clk_src,
72162306a36Sopenharmony_ci	.parent_map = gcc_xo_map,
72262306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data) {
72362306a36Sopenharmony_ci		.name = "gp3_clk_src",
72462306a36Sopenharmony_ci		.parent_data = gcc_xo_data,
72562306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_xo_data),
72662306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
72762306a36Sopenharmony_ci	}
72862306a36Sopenharmony_ci};
72962306a36Sopenharmony_ci
73062306a36Sopenharmony_cistatic const struct parent_map gcc_mclk_map[] = {
73162306a36Sopenharmony_ci	{ P_XO, 0 },
73262306a36Sopenharmony_ci	{ P_GPLL0, 1 },
73362306a36Sopenharmony_ci	{ P_GPLL2, 3 },
73462306a36Sopenharmony_ci};
73562306a36Sopenharmony_ci
73662306a36Sopenharmony_cistatic const struct clk_parent_data gcc_mclk_data[] = {
73762306a36Sopenharmony_ci	{ .index = DT_XO },
73862306a36Sopenharmony_ci	{ .hw = &gpll0.clkr.hw },
73962306a36Sopenharmony_ci	{ .hw = &gpll2.clkr.hw },
74062306a36Sopenharmony_ci};
74162306a36Sopenharmony_ci
74262306a36Sopenharmony_cistatic const struct freq_tbl ftbl_mclk_clk_src[] = {
74362306a36Sopenharmony_ci	F(24000000, P_GPLL2, 1, 1, 33),
74462306a36Sopenharmony_ci	F(66667000, P_GPLL0, 12, 0, 0),
74562306a36Sopenharmony_ci	{ }
74662306a36Sopenharmony_ci};
74762306a36Sopenharmony_ci
74862306a36Sopenharmony_cistatic struct clk_rcg2 mclk0_clk_src = {
74962306a36Sopenharmony_ci	.cmd_rcgr = 0x52000,
75062306a36Sopenharmony_ci	.hid_width = 5,
75162306a36Sopenharmony_ci	.mnd_width = 8,
75262306a36Sopenharmony_ci	.freq_tbl = ftbl_mclk_clk_src,
75362306a36Sopenharmony_ci	.parent_map = gcc_mclk_map,
75462306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data) {
75562306a36Sopenharmony_ci		.name = "mclk0_clk_src",
75662306a36Sopenharmony_ci		.parent_data = gcc_mclk_data,
75762306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_mclk_data),
75862306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
75962306a36Sopenharmony_ci	}
76062306a36Sopenharmony_ci};
76162306a36Sopenharmony_ci
76262306a36Sopenharmony_cistatic struct clk_rcg2 mclk1_clk_src = {
76362306a36Sopenharmony_ci	.cmd_rcgr = 0x53000,
76462306a36Sopenharmony_ci	.hid_width = 5,
76562306a36Sopenharmony_ci	.mnd_width = 8,
76662306a36Sopenharmony_ci	.freq_tbl = ftbl_mclk_clk_src,
76762306a36Sopenharmony_ci	.parent_map = gcc_mclk_map,
76862306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data) {
76962306a36Sopenharmony_ci		.name = "mclk1_clk_src",
77062306a36Sopenharmony_ci		.parent_data = gcc_mclk_data,
77162306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_mclk_data),
77262306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
77362306a36Sopenharmony_ci	}
77462306a36Sopenharmony_ci};
77562306a36Sopenharmony_ci
77662306a36Sopenharmony_cistatic const struct parent_map gcc_mdp_map[] = {
77762306a36Sopenharmony_ci	{ P_XO, 0 },
77862306a36Sopenharmony_ci	{ P_GPLL0, 1 },
77962306a36Sopenharmony_ci	{ P_GPLL1, 3 },
78062306a36Sopenharmony_ci};
78162306a36Sopenharmony_ci
78262306a36Sopenharmony_cistatic const struct clk_parent_data gcc_mdp_data[] = {
78362306a36Sopenharmony_ci	{ .index = DT_XO },
78462306a36Sopenharmony_ci	{ .hw = &gpll0.clkr.hw },
78562306a36Sopenharmony_ci	{ .hw = &gpll1_vote.hw },
78662306a36Sopenharmony_ci};
78762306a36Sopenharmony_ci
78862306a36Sopenharmony_cistatic const struct freq_tbl ftbl_mdp_clk_src[] = {
78962306a36Sopenharmony_ci	F(50000000, P_GPLL0, 16, 0, 0),
79062306a36Sopenharmony_ci	F(80000000, P_GPLL0, 10, 0, 0),
79162306a36Sopenharmony_ci	F(100000000, P_GPLL0, 8, 0, 0),
79262306a36Sopenharmony_ci	F(160000000, P_GPLL0, 5, 0, 0),
79362306a36Sopenharmony_ci	F(177780000, P_GPLL0, 4.5, 0, 0),
79462306a36Sopenharmony_ci	F(200000000, P_GPLL0, 4, 0, 0),
79562306a36Sopenharmony_ci	F(266670000, P_GPLL0, 3, 0, 0),
79662306a36Sopenharmony_ci	F(307200000, P_GPLL1, 4, 0, 0),
79762306a36Sopenharmony_ci	{ }
79862306a36Sopenharmony_ci};
79962306a36Sopenharmony_ci
80062306a36Sopenharmony_cistatic struct clk_rcg2 mdp_clk_src = {
80162306a36Sopenharmony_ci	.cmd_rcgr = 0x4d014,
80262306a36Sopenharmony_ci	.hid_width = 5,
80362306a36Sopenharmony_ci	.freq_tbl = ftbl_mdp_clk_src,
80462306a36Sopenharmony_ci	.parent_map = gcc_mdp_map,
80562306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data) {
80662306a36Sopenharmony_ci		.name = "mdp_clk_src",
80762306a36Sopenharmony_ci		.parent_data = gcc_mdp_data,
80862306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_mdp_data),
80962306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
81062306a36Sopenharmony_ci	}
81162306a36Sopenharmony_ci};
81262306a36Sopenharmony_ci
81362306a36Sopenharmony_cistatic const struct parent_map gcc_pclk0_map[] = {
81462306a36Sopenharmony_ci	{ P_XO, 0 },
81562306a36Sopenharmony_ci	{ P_DSI0PLL, 1 },
81662306a36Sopenharmony_ci};
81762306a36Sopenharmony_ci
81862306a36Sopenharmony_cistatic const struct clk_parent_data gcc_pclk_data[] = {
81962306a36Sopenharmony_ci	{ .index = DT_XO },
82062306a36Sopenharmony_ci	{ .index = DT_DSI0PLL },
82162306a36Sopenharmony_ci};
82262306a36Sopenharmony_ci
82362306a36Sopenharmony_cistatic struct clk_rcg2 pclk0_clk_src = {
82462306a36Sopenharmony_ci	.cmd_rcgr = 0x4d000,
82562306a36Sopenharmony_ci	.hid_width = 5,
82662306a36Sopenharmony_ci	.mnd_width = 8,
82762306a36Sopenharmony_ci	.parent_map = gcc_pclk0_map,
82862306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data) {
82962306a36Sopenharmony_ci		.name = "pclk0_clk_src",
83062306a36Sopenharmony_ci		.parent_data = gcc_pclk_data,
83162306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_pclk_data),
83262306a36Sopenharmony_ci		.ops = &clk_pixel_ops,
83362306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
83462306a36Sopenharmony_ci	}
83562306a36Sopenharmony_ci};
83662306a36Sopenharmony_ci
83762306a36Sopenharmony_cistatic struct clk_rcg2 pcnoc_bfdcd_clk_src = {
83862306a36Sopenharmony_ci	.cmd_rcgr = 0x27000,
83962306a36Sopenharmony_ci	.hid_width = 5,
84062306a36Sopenharmony_ci	.parent_map = gcc_xo_gpll0_bimc_map,
84162306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data) {
84262306a36Sopenharmony_ci		.name = "pcnoc_bfdcd_clk_src",
84362306a36Sopenharmony_ci		.parent_data = gcc_xo_gpll0_bimc_data,
84462306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_xo_gpll0_bimc_data),
84562306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
84662306a36Sopenharmony_ci	},
84762306a36Sopenharmony_ci};
84862306a36Sopenharmony_ci
84962306a36Sopenharmony_cistatic const struct freq_tbl ftbl_pdm2_clk_src[] = {
85062306a36Sopenharmony_ci	F(64000000, P_GPLL0, 12.5, 0, 0),
85162306a36Sopenharmony_ci	{ }
85262306a36Sopenharmony_ci};
85362306a36Sopenharmony_ci
85462306a36Sopenharmony_cistatic struct clk_rcg2 pdm2_clk_src = {
85562306a36Sopenharmony_ci	.cmd_rcgr = 0x44010,
85662306a36Sopenharmony_ci	.hid_width = 5,
85762306a36Sopenharmony_ci	.freq_tbl = ftbl_pdm2_clk_src,
85862306a36Sopenharmony_ci	.parent_map = gcc_xo_gpll0_map,
85962306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data) {
86062306a36Sopenharmony_ci		.name = "pdm2_clk_src",
86162306a36Sopenharmony_ci		.parent_data = gcc_xo_gpll0_data,
86262306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_xo_gpll0_data),
86362306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
86462306a36Sopenharmony_ci	}
86562306a36Sopenharmony_ci};
86662306a36Sopenharmony_ci
86762306a36Sopenharmony_cistatic const struct freq_tbl ftbl_gcc_sdcc1_2_apps_clk[] = {
86862306a36Sopenharmony_ci	F(144000, P_XO, 16, 3, 25),
86962306a36Sopenharmony_ci	F(400000, P_XO, 12, 1, 4),
87062306a36Sopenharmony_ci	F(20000000, P_GPLL0, 10, 1, 4),
87162306a36Sopenharmony_ci	F(25000000, P_GPLL0, 16, 1, 2),
87262306a36Sopenharmony_ci	F(50000000, P_GPLL0, 16, 0, 0),
87362306a36Sopenharmony_ci	F(100000000, P_GPLL0, 8, 0, 0),
87462306a36Sopenharmony_ci	F(177770000, P_GPLL0, 4.5, 0, 0),
87562306a36Sopenharmony_ci	F(200000000, P_GPLL0, 4, 0, 0),
87662306a36Sopenharmony_ci	{ }
87762306a36Sopenharmony_ci};
87862306a36Sopenharmony_ci
87962306a36Sopenharmony_cistatic struct clk_rcg2 sdcc1_apps_clk_src = {
88062306a36Sopenharmony_ci	.cmd_rcgr = 0x42004,
88162306a36Sopenharmony_ci	.hid_width = 5,
88262306a36Sopenharmony_ci	.mnd_width = 8,
88362306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_sdcc1_2_apps_clk,
88462306a36Sopenharmony_ci	.parent_map = gcc_xo_gpll0_map,
88562306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data) {
88662306a36Sopenharmony_ci		.name = "sdcc1_apps_clk_src",
88762306a36Sopenharmony_ci		.parent_data = gcc_xo_gpll0_data,
88862306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_xo_gpll0_data),
88962306a36Sopenharmony_ci		.ops = &clk_rcg2_floor_ops,
89062306a36Sopenharmony_ci	}
89162306a36Sopenharmony_ci};
89262306a36Sopenharmony_ci
89362306a36Sopenharmony_cistatic struct clk_rcg2 sdcc2_apps_clk_src = {
89462306a36Sopenharmony_ci	.cmd_rcgr = 0x43004,
89562306a36Sopenharmony_ci	.hid_width = 5,
89662306a36Sopenharmony_ci	.mnd_width = 8,
89762306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_sdcc1_2_apps_clk,
89862306a36Sopenharmony_ci	.parent_map = gcc_xo_gpll0_map,
89962306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data) {
90062306a36Sopenharmony_ci		.name = "sdcc2_apps_clk_src",
90162306a36Sopenharmony_ci		.parent_data = gcc_xo_gpll0_data,
90262306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_xo_gpll0_data),
90362306a36Sopenharmony_ci		.ops = &clk_rcg2_floor_ops,
90462306a36Sopenharmony_ci	}
90562306a36Sopenharmony_ci};
90662306a36Sopenharmony_ci
90762306a36Sopenharmony_cistatic struct clk_rcg2 system_noc_bfdcd_clk_src = {
90862306a36Sopenharmony_ci	.cmd_rcgr = 0x26004,
90962306a36Sopenharmony_ci	.hid_width = 5,
91062306a36Sopenharmony_ci	.parent_map = gcc_xo_gpll0_bimc_map,
91162306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data) {
91262306a36Sopenharmony_ci		.name = "system_noc_bfdcd_clk_src",
91362306a36Sopenharmony_ci		.parent_data = gcc_xo_gpll0_bimc_data,
91462306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_xo_gpll0_bimc_data),
91562306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
91662306a36Sopenharmony_ci	},
91762306a36Sopenharmony_ci};
91862306a36Sopenharmony_ci
91962306a36Sopenharmony_cistatic const struct freq_tbl ftbl_gcc_usb_hs_system_clk[] = {
92062306a36Sopenharmony_ci	F(57140000, P_GPLL0, 14, 0, 0),
92162306a36Sopenharmony_ci	F(80000000, P_GPLL0, 10, 0, 0),
92262306a36Sopenharmony_ci	F(100000000, P_GPLL0, 8, 0, 0),
92362306a36Sopenharmony_ci	{ }
92462306a36Sopenharmony_ci};
92562306a36Sopenharmony_ci
92662306a36Sopenharmony_cistatic struct clk_rcg2 usb_hs_system_clk_src = {
92762306a36Sopenharmony_ci	.cmd_rcgr = 0x41010,
92862306a36Sopenharmony_ci	.hid_width = 5,
92962306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_usb_hs_system_clk,
93062306a36Sopenharmony_ci	.parent_map = gcc_xo_gpll0_map,
93162306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data) {
93262306a36Sopenharmony_ci		.name = "usb_hs_system_clk_src",
93362306a36Sopenharmony_ci		.parent_data = gcc_xo_gpll0_data,
93462306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_xo_gpll0_data),
93562306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
93662306a36Sopenharmony_ci	}
93762306a36Sopenharmony_ci};
93862306a36Sopenharmony_ci
93962306a36Sopenharmony_cistatic const struct parent_map gcc_vcodec0_map[] = {
94062306a36Sopenharmony_ci	{ P_XO, 0 },
94162306a36Sopenharmony_ci	{ P_GPLL0, 1 },
94262306a36Sopenharmony_ci	{ P_GPLL1, 3 },
94362306a36Sopenharmony_ci};
94462306a36Sopenharmony_ci
94562306a36Sopenharmony_cistatic const struct clk_parent_data gcc_vcodec0_data[] = {
94662306a36Sopenharmony_ci	{ .index = DT_XO },
94762306a36Sopenharmony_ci	{ .hw = &gpll0.clkr.hw },
94862306a36Sopenharmony_ci	{ .hw = &gpll1_vote.hw },
94962306a36Sopenharmony_ci};
95062306a36Sopenharmony_ci
95162306a36Sopenharmony_cistatic const struct freq_tbl ftbl_vcodec0_clk_src[] = {
95262306a36Sopenharmony_ci	F(133330000, P_GPLL0, 6, 0, 0),
95362306a36Sopenharmony_ci	F(266670000, P_GPLL0, 3, 0, 0),
95462306a36Sopenharmony_ci	F(307200000, P_GPLL1, 4, 0, 0),
95562306a36Sopenharmony_ci	{ }
95662306a36Sopenharmony_ci};
95762306a36Sopenharmony_ci
95862306a36Sopenharmony_cistatic struct clk_rcg2 vcodec0_clk_src = {
95962306a36Sopenharmony_ci	.cmd_rcgr = 0x4c000,
96062306a36Sopenharmony_ci	.hid_width = 5,
96162306a36Sopenharmony_ci	.mnd_width = 8,
96262306a36Sopenharmony_ci	.freq_tbl = ftbl_vcodec0_clk_src,
96362306a36Sopenharmony_ci	.parent_map = gcc_vcodec0_map,
96462306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data) {
96562306a36Sopenharmony_ci		.name = "vcodec0_clk_src",
96662306a36Sopenharmony_ci		.parent_data = gcc_vcodec0_data,
96762306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_vcodec0_data),
96862306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
96962306a36Sopenharmony_ci	}
97062306a36Sopenharmony_ci};
97162306a36Sopenharmony_ci
97262306a36Sopenharmony_cistatic const struct freq_tbl ftbl_gcc_camss_vfe0_clk[] = {
97362306a36Sopenharmony_ci	F(50000000, P_GPLL0, 16, 0, 0),
97462306a36Sopenharmony_ci	F(80000000, P_GPLL0, 10, 0, 0),
97562306a36Sopenharmony_ci	F(100000000, P_GPLL0, 8, 0, 0),
97662306a36Sopenharmony_ci	F(133330000, P_GPLL0, 6, 0, 0),
97762306a36Sopenharmony_ci	F(160000000, P_GPLL0, 5, 0, 0),
97862306a36Sopenharmony_ci	F(177780000, P_GPLL0, 4.5, 0, 0),
97962306a36Sopenharmony_ci	F(200000000, P_GPLL0, 4, 0, 0),
98062306a36Sopenharmony_ci	F(266670000, P_GPLL0, 3, 0, 0),
98162306a36Sopenharmony_ci	F(320000000, P_GPLL0, 2.5, 0, 0),
98262306a36Sopenharmony_ci	{ }
98362306a36Sopenharmony_ci};
98462306a36Sopenharmony_ci
98562306a36Sopenharmony_cistatic struct clk_rcg2 vfe0_clk_src = {
98662306a36Sopenharmony_ci	.cmd_rcgr = 0x58000,
98762306a36Sopenharmony_ci	.hid_width = 5,
98862306a36Sopenharmony_ci	.freq_tbl = ftbl_gcc_camss_vfe0_clk,
98962306a36Sopenharmony_ci	.parent_map = gcc_xo_gpll0_map,
99062306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data) {
99162306a36Sopenharmony_ci		.name = "vfe0_clk_src",
99262306a36Sopenharmony_ci		.parent_data = gcc_xo_gpll0_data,
99362306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_xo_gpll0_data),
99462306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
99562306a36Sopenharmony_ci	}
99662306a36Sopenharmony_ci};
99762306a36Sopenharmony_ci
99862306a36Sopenharmony_cistatic const struct freq_tbl ftbl_vsync_clk_src[] = {
99962306a36Sopenharmony_ci	F(19200000, P_XO, 1, 0, 0),
100062306a36Sopenharmony_ci	{ }
100162306a36Sopenharmony_ci};
100262306a36Sopenharmony_ci
100362306a36Sopenharmony_cistatic struct clk_rcg2 vsync_clk_src = {
100462306a36Sopenharmony_ci	.cmd_rcgr = 0x4d02c,
100562306a36Sopenharmony_ci	.hid_width = 5,
100662306a36Sopenharmony_ci	.freq_tbl = ftbl_vsync_clk_src,
100762306a36Sopenharmony_ci	.parent_map = gcc_xo_map,
100862306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data) {
100962306a36Sopenharmony_ci		.name = "vsync_clk_src",
101062306a36Sopenharmony_ci		.parent_data = gcc_xo_data,
101162306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(gcc_xo_data),
101262306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
101362306a36Sopenharmony_ci	}
101462306a36Sopenharmony_ci};
101562306a36Sopenharmony_ci
101662306a36Sopenharmony_cistatic struct clk_branch gcc_apss_tcu_clk = {
101762306a36Sopenharmony_ci	.halt_reg = 0x12018,
101862306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
101962306a36Sopenharmony_ci	.clkr = {
102062306a36Sopenharmony_ci		.enable_reg = 0x4500c,
102162306a36Sopenharmony_ci		.enable_mask = BIT(1),
102262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
102362306a36Sopenharmony_ci			.name = "gcc_apss_tcu_clk",
102462306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
102562306a36Sopenharmony_ci				&bimc_ddr_clk_src.clkr.hw,
102662306a36Sopenharmony_ci			},
102762306a36Sopenharmony_ci			.num_parents = 1,
102862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
102962306a36Sopenharmony_ci		}
103062306a36Sopenharmony_ci	}
103162306a36Sopenharmony_ci};
103262306a36Sopenharmony_ci
103362306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_ahb_clk = {
103462306a36Sopenharmony_ci	.halt_reg = 0x01008,
103562306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
103662306a36Sopenharmony_ci	.clkr = {
103762306a36Sopenharmony_ci		.enable_reg = 0x45004,
103862306a36Sopenharmony_ci		.enable_mask = BIT(10),
103962306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
104062306a36Sopenharmony_ci			.name = "gcc_blsp1_ahb_clk",
104162306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
104262306a36Sopenharmony_ci				&pcnoc_bfdcd_clk_src.clkr.hw,
104362306a36Sopenharmony_ci			},
104462306a36Sopenharmony_ci			.num_parents = 1,
104562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
104662306a36Sopenharmony_ci		}
104762306a36Sopenharmony_ci	}
104862306a36Sopenharmony_ci};
104962306a36Sopenharmony_ci
105062306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_sleep_clk = {
105162306a36Sopenharmony_ci	.halt_reg = 0x01004,
105262306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
105362306a36Sopenharmony_ci	.clkr = {
105462306a36Sopenharmony_ci		.enable_reg = 0x45004,
105562306a36Sopenharmony_ci		.enable_mask = BIT(9),
105662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
105762306a36Sopenharmony_ci			.name = "gcc_blsp1_sleep_clk",
105862306a36Sopenharmony_ci			.parent_data = gcc_sleep_clk_data,
105962306a36Sopenharmony_ci			.num_parents = ARRAY_SIZE(gcc_sleep_clk_data),
106062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
106162306a36Sopenharmony_ci		}
106262306a36Sopenharmony_ci	}
106362306a36Sopenharmony_ci};
106462306a36Sopenharmony_ci
106562306a36Sopenharmony_cistatic struct clk_branch gcc_boot_rom_ahb_clk = {
106662306a36Sopenharmony_ci	.halt_reg = 0x1300c,
106762306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
106862306a36Sopenharmony_ci	.clkr = {
106962306a36Sopenharmony_ci		.enable_reg = 0x45004,
107062306a36Sopenharmony_ci		.enable_mask = BIT(7),
107162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
107262306a36Sopenharmony_ci			.name = "gcc_boot_rom_ahb_clk",
107362306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
107462306a36Sopenharmony_ci				&pcnoc_bfdcd_clk_src.clkr.hw,
107562306a36Sopenharmony_ci			},
107662306a36Sopenharmony_ci			.num_parents = 1,
107762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
107862306a36Sopenharmony_ci		}
107962306a36Sopenharmony_ci	}
108062306a36Sopenharmony_ci};
108162306a36Sopenharmony_ci
108262306a36Sopenharmony_cistatic struct clk_branch gcc_crypto_clk = {
108362306a36Sopenharmony_ci	.halt_reg = 0x1601c,
108462306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
108562306a36Sopenharmony_ci	.clkr = {
108662306a36Sopenharmony_ci		.enable_reg = 0x45004,
108762306a36Sopenharmony_ci		.enable_mask = BIT(2),
108862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
108962306a36Sopenharmony_ci			.name = "gcc_crypto_clk",
109062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
109162306a36Sopenharmony_ci				&crypto_clk_src.clkr.hw,
109262306a36Sopenharmony_ci			},
109362306a36Sopenharmony_ci			.num_parents = 1,
109462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
109562306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
109662306a36Sopenharmony_ci		}
109762306a36Sopenharmony_ci	}
109862306a36Sopenharmony_ci};
109962306a36Sopenharmony_ci
110062306a36Sopenharmony_cistatic struct clk_branch gcc_crypto_ahb_clk = {
110162306a36Sopenharmony_ci	.halt_reg = 0x16024,
110262306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
110362306a36Sopenharmony_ci	.clkr = {
110462306a36Sopenharmony_ci		.enable_reg = 0x45004,
110562306a36Sopenharmony_ci		.enable_mask = BIT(0),
110662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
110762306a36Sopenharmony_ci			.name = "gcc_crypto_ahb_clk",
110862306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
110962306a36Sopenharmony_ci				&pcnoc_bfdcd_clk_src.clkr.hw,
111062306a36Sopenharmony_ci			},
111162306a36Sopenharmony_ci			.num_parents = 1,
111262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
111362306a36Sopenharmony_ci		}
111462306a36Sopenharmony_ci	}
111562306a36Sopenharmony_ci};
111662306a36Sopenharmony_ci
111762306a36Sopenharmony_cistatic struct clk_branch gcc_crypto_axi_clk = {
111862306a36Sopenharmony_ci	.halt_reg = 0x16020,
111962306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
112062306a36Sopenharmony_ci	.clkr = {
112162306a36Sopenharmony_ci		.enable_reg = 0x45004,
112262306a36Sopenharmony_ci		.enable_mask = BIT(1),
112362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
112462306a36Sopenharmony_ci			.name = "gcc_crypto_axi_clk",
112562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
112662306a36Sopenharmony_ci				&pcnoc_bfdcd_clk_src.clkr.hw,
112762306a36Sopenharmony_ci			},
112862306a36Sopenharmony_ci			.num_parents = 1,
112962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
113062306a36Sopenharmony_ci		}
113162306a36Sopenharmony_ci	}
113262306a36Sopenharmony_ci};
113362306a36Sopenharmony_ci
113462306a36Sopenharmony_cistatic struct clk_branch gcc_gfx_tbu_clk = {
113562306a36Sopenharmony_ci	.halt_reg = 0x12010,
113662306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
113762306a36Sopenharmony_ci	.clkr = {
113862306a36Sopenharmony_ci		.enable_reg = 0x4500c,
113962306a36Sopenharmony_ci		.enable_mask = BIT(3),
114062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
114162306a36Sopenharmony_ci			.name = "gcc_gfx_tbu_clk",
114262306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
114362306a36Sopenharmony_ci				&bimc_ddr_clk_src.clkr.hw,
114462306a36Sopenharmony_ci			},
114562306a36Sopenharmony_ci			.num_parents = 1,
114662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
114762306a36Sopenharmony_ci		}
114862306a36Sopenharmony_ci	}
114962306a36Sopenharmony_ci};
115062306a36Sopenharmony_ci
115162306a36Sopenharmony_cistatic struct clk_branch gcc_gfx_tcu_clk = {
115262306a36Sopenharmony_ci	.halt_reg = 0x12020,
115362306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
115462306a36Sopenharmony_ci	.clkr = {
115562306a36Sopenharmony_ci		.enable_reg = 0x4500c,
115662306a36Sopenharmony_ci		.enable_mask = BIT(2),
115762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
115862306a36Sopenharmony_ci			.name = "gcc_gfx_tcu_clk",
115962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
116062306a36Sopenharmony_ci				&bimc_ddr_clk_src.clkr.hw,
116162306a36Sopenharmony_ci			},
116262306a36Sopenharmony_ci			.num_parents = 1,
116362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
116462306a36Sopenharmony_ci		}
116562306a36Sopenharmony_ci	}
116662306a36Sopenharmony_ci};
116762306a36Sopenharmony_ci
116862306a36Sopenharmony_cistatic struct clk_branch gcc_gtcu_ahb_clk = {
116962306a36Sopenharmony_ci	.halt_reg = 0x12044,
117062306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
117162306a36Sopenharmony_ci	.clkr = {
117262306a36Sopenharmony_ci		.enable_reg = 0x4500c,
117362306a36Sopenharmony_ci		.enable_mask = BIT(13),
117462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
117562306a36Sopenharmony_ci			.name = "gcc_gtcu_ahb_clk",
117662306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
117762306a36Sopenharmony_ci				&pcnoc_bfdcd_clk_src.clkr.hw,
117862306a36Sopenharmony_ci			},
117962306a36Sopenharmony_ci			.num_parents = 1,
118062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
118162306a36Sopenharmony_ci		}
118262306a36Sopenharmony_ci	}
118362306a36Sopenharmony_ci};
118462306a36Sopenharmony_ci
118562306a36Sopenharmony_cistatic struct clk_branch gcc_mdp_tbu_clk = {
118662306a36Sopenharmony_ci	.halt_reg = 0x1201c,
118762306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
118862306a36Sopenharmony_ci	.clkr = {
118962306a36Sopenharmony_ci		.enable_reg = 0x4500c,
119062306a36Sopenharmony_ci		.enable_mask = BIT(4),
119162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
119262306a36Sopenharmony_ci			.name = "gcc_mdp_tbu_clk",
119362306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
119462306a36Sopenharmony_ci				&system_noc_bfdcd_clk_src.clkr.hw,
119562306a36Sopenharmony_ci			},
119662306a36Sopenharmony_ci			.num_parents = 1,
119762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
119862306a36Sopenharmony_ci		}
119962306a36Sopenharmony_ci	}
120062306a36Sopenharmony_ci};
120162306a36Sopenharmony_ci
120262306a36Sopenharmony_cistatic struct clk_branch gcc_prng_ahb_clk = {
120362306a36Sopenharmony_ci	.halt_reg = 0x13004,
120462306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
120562306a36Sopenharmony_ci	.clkr = {
120662306a36Sopenharmony_ci		.enable_reg = 0x45004,
120762306a36Sopenharmony_ci		.enable_mask = BIT(8),
120862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
120962306a36Sopenharmony_ci			.name = "gcc_prng_ahb_clk",
121062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
121162306a36Sopenharmony_ci				&pcnoc_bfdcd_clk_src.clkr.hw,
121262306a36Sopenharmony_ci			},
121362306a36Sopenharmony_ci			.num_parents = 1,
121462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
121562306a36Sopenharmony_ci		}
121662306a36Sopenharmony_ci	}
121762306a36Sopenharmony_ci};
121862306a36Sopenharmony_ci
121962306a36Sopenharmony_cistatic struct clk_branch gcc_smmu_cfg_clk = {
122062306a36Sopenharmony_ci	.halt_reg = 0x12038,
122162306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
122262306a36Sopenharmony_ci	.clkr = {
122362306a36Sopenharmony_ci		.enable_reg = 0x4500c,
122462306a36Sopenharmony_ci		.enable_mask = BIT(12),
122562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
122662306a36Sopenharmony_ci			.name = "gcc_smmu_cfg_clk",
122762306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
122862306a36Sopenharmony_ci				&pcnoc_bfdcd_clk_src.clkr.hw,
122962306a36Sopenharmony_ci			},
123062306a36Sopenharmony_ci			.num_parents = 1,
123162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
123262306a36Sopenharmony_ci		}
123362306a36Sopenharmony_ci	}
123462306a36Sopenharmony_ci};
123562306a36Sopenharmony_ci
123662306a36Sopenharmony_cistatic struct clk_branch gcc_venus_tbu_clk = {
123762306a36Sopenharmony_ci	.halt_reg = 0x12014,
123862306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
123962306a36Sopenharmony_ci	.clkr = {
124062306a36Sopenharmony_ci		.enable_reg = 0x4500c,
124162306a36Sopenharmony_ci		.enable_mask = BIT(5),
124262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
124362306a36Sopenharmony_ci			.name = "gcc_venus_tbu_clk",
124462306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
124562306a36Sopenharmony_ci				&system_noc_bfdcd_clk_src.clkr.hw,
124662306a36Sopenharmony_ci			},
124762306a36Sopenharmony_ci			.num_parents = 1,
124862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
124962306a36Sopenharmony_ci		}
125062306a36Sopenharmony_ci	}
125162306a36Sopenharmony_ci};
125262306a36Sopenharmony_ci
125362306a36Sopenharmony_cistatic struct clk_branch gcc_vfe_tbu_clk = {
125462306a36Sopenharmony_ci	.halt_reg = 0x1203c,
125562306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
125662306a36Sopenharmony_ci	.clkr = {
125762306a36Sopenharmony_ci		.enable_reg = 0x4500c,
125862306a36Sopenharmony_ci		.enable_mask = BIT(9),
125962306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
126062306a36Sopenharmony_ci			.name = "gcc_vfe_tbu_clk",
126162306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
126262306a36Sopenharmony_ci				&system_noc_bfdcd_clk_src.clkr.hw,
126362306a36Sopenharmony_ci			},
126462306a36Sopenharmony_ci			.num_parents = 1,
126562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
126662306a36Sopenharmony_ci		}
126762306a36Sopenharmony_ci	}
126862306a36Sopenharmony_ci};
126962306a36Sopenharmony_ci
127062306a36Sopenharmony_cistatic struct clk_branch gcc_bimc_gfx_clk = {
127162306a36Sopenharmony_ci	.halt_reg = 0x31024,
127262306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
127362306a36Sopenharmony_ci	.clkr = {
127462306a36Sopenharmony_ci		.enable_reg = 0x31024,
127562306a36Sopenharmony_ci		.enable_mask = BIT(0),
127662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
127762306a36Sopenharmony_ci			.name = "gcc_bimc_gfx_clk",
127862306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
127962306a36Sopenharmony_ci				&bimc_gpu_clk_src.clkr.hw,
128062306a36Sopenharmony_ci			},
128162306a36Sopenharmony_ci			.num_parents = 1,
128262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
128362306a36Sopenharmony_ci		}
128462306a36Sopenharmony_ci	}
128562306a36Sopenharmony_ci};
128662306a36Sopenharmony_ci
128762306a36Sopenharmony_cistatic struct clk_branch gcc_bimc_gpu_clk = {
128862306a36Sopenharmony_ci	.halt_reg = 0x31040,
128962306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
129062306a36Sopenharmony_ci	.clkr = {
129162306a36Sopenharmony_ci		.enable_reg = 0x31040,
129262306a36Sopenharmony_ci		.enable_mask = BIT(0),
129362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
129462306a36Sopenharmony_ci			.name = "gcc_bimc_gpu_clk",
129562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
129662306a36Sopenharmony_ci				&bimc_gpu_clk_src.clkr.hw,
129762306a36Sopenharmony_ci			},
129862306a36Sopenharmony_ci			.num_parents = 1,
129962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
130062306a36Sopenharmony_ci		}
130162306a36Sopenharmony_ci	}
130262306a36Sopenharmony_ci};
130362306a36Sopenharmony_ci
130462306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_qup1_i2c_apps_clk = {
130562306a36Sopenharmony_ci	.halt_reg = 0x02008,
130662306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
130762306a36Sopenharmony_ci	.clkr = {
130862306a36Sopenharmony_ci		.enable_reg = 0x02008,
130962306a36Sopenharmony_ci		.enable_mask = BIT(0),
131062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
131162306a36Sopenharmony_ci			.name = "gcc_blsp1_qup1_i2c_apps_clk",
131262306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
131362306a36Sopenharmony_ci				&blsp1_qup1_i2c_apps_clk_src.clkr.hw,
131462306a36Sopenharmony_ci			},
131562306a36Sopenharmony_ci			.num_parents = 1,
131662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
131762306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
131862306a36Sopenharmony_ci		}
131962306a36Sopenharmony_ci	}
132062306a36Sopenharmony_ci};
132162306a36Sopenharmony_ci
132262306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_qup2_i2c_apps_clk = {
132362306a36Sopenharmony_ci	.halt_reg = 0x03010,
132462306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
132562306a36Sopenharmony_ci	.clkr = {
132662306a36Sopenharmony_ci		.enable_reg = 0x03010,
132762306a36Sopenharmony_ci		.enable_mask = BIT(0),
132862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
132962306a36Sopenharmony_ci			.name = "gcc_blsp1_qup2_i2c_apps_clk",
133062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
133162306a36Sopenharmony_ci				&blsp1_qup2_i2c_apps_clk_src.clkr.hw,
133262306a36Sopenharmony_ci			},
133362306a36Sopenharmony_ci			.num_parents = 1,
133462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
133562306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
133662306a36Sopenharmony_ci		}
133762306a36Sopenharmony_ci	}
133862306a36Sopenharmony_ci};
133962306a36Sopenharmony_ci
134062306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_qup3_i2c_apps_clk = {
134162306a36Sopenharmony_ci	.halt_reg = 0x04020,
134262306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
134362306a36Sopenharmony_ci	.clkr = {
134462306a36Sopenharmony_ci		.enable_reg = 0x04020,
134562306a36Sopenharmony_ci		.enable_mask = BIT(0),
134662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
134762306a36Sopenharmony_ci			.name = "gcc_blsp1_qup3_i2c_apps_clk",
134862306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
134962306a36Sopenharmony_ci				&blsp1_qup3_i2c_apps_clk_src.clkr.hw,
135062306a36Sopenharmony_ci			},
135162306a36Sopenharmony_ci			.num_parents = 1,
135262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
135362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
135462306a36Sopenharmony_ci		}
135562306a36Sopenharmony_ci	}
135662306a36Sopenharmony_ci};
135762306a36Sopenharmony_ci
135862306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_qup4_i2c_apps_clk = {
135962306a36Sopenharmony_ci	.halt_reg = 0x05020,
136062306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
136162306a36Sopenharmony_ci	.clkr = {
136262306a36Sopenharmony_ci		.enable_reg = 0x05020,
136362306a36Sopenharmony_ci		.enable_mask = BIT(0),
136462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
136562306a36Sopenharmony_ci			.name = "gcc_blsp1_qup4_i2c_apps_clk",
136662306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
136762306a36Sopenharmony_ci				&blsp1_qup4_i2c_apps_clk_src.clkr.hw,
136862306a36Sopenharmony_ci			},
136962306a36Sopenharmony_ci			.num_parents = 1,
137062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
137162306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
137262306a36Sopenharmony_ci		}
137362306a36Sopenharmony_ci	}
137462306a36Sopenharmony_ci};
137562306a36Sopenharmony_ci
137662306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_qup5_i2c_apps_clk = {
137762306a36Sopenharmony_ci	.halt_reg = 0x06020,
137862306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
137962306a36Sopenharmony_ci	.clkr = {
138062306a36Sopenharmony_ci		.enable_reg = 0x06020,
138162306a36Sopenharmony_ci		.enable_mask = BIT(0),
138262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
138362306a36Sopenharmony_ci			.name = "gcc_blsp1_qup5_i2c_apps_clk",
138462306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
138562306a36Sopenharmony_ci				&blsp1_qup5_i2c_apps_clk_src.clkr.hw,
138662306a36Sopenharmony_ci			},
138762306a36Sopenharmony_ci			.num_parents = 1,
138862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
138962306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
139062306a36Sopenharmony_ci		}
139162306a36Sopenharmony_ci	}
139262306a36Sopenharmony_ci};
139362306a36Sopenharmony_ci
139462306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_qup6_i2c_apps_clk = {
139562306a36Sopenharmony_ci	.halt_reg = 0x07020,
139662306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
139762306a36Sopenharmony_ci	.clkr = {
139862306a36Sopenharmony_ci		.enable_reg = 0x07020,
139962306a36Sopenharmony_ci		.enable_mask = BIT(0),
140062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
140162306a36Sopenharmony_ci			.name = "gcc_blsp1_qup6_i2c_apps_clk",
140262306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
140362306a36Sopenharmony_ci				&blsp1_qup6_i2c_apps_clk_src.clkr.hw,
140462306a36Sopenharmony_ci			},
140562306a36Sopenharmony_ci			.num_parents = 1,
140662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
140762306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
140862306a36Sopenharmony_ci		}
140962306a36Sopenharmony_ci	}
141062306a36Sopenharmony_ci};
141162306a36Sopenharmony_ci
141262306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_qup1_spi_apps_clk = {
141362306a36Sopenharmony_ci	.halt_reg = 0x02004,
141462306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
141562306a36Sopenharmony_ci	.clkr = {
141662306a36Sopenharmony_ci		.enable_reg = 0x02004,
141762306a36Sopenharmony_ci		.enable_mask = BIT(0),
141862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
141962306a36Sopenharmony_ci			.name = "gcc_blsp1_qup1_spi_apps_clk",
142062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
142162306a36Sopenharmony_ci				&blsp1_qup1_spi_apps_clk_src.clkr.hw,
142262306a36Sopenharmony_ci			},
142362306a36Sopenharmony_ci			.num_parents = 1,
142462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
142562306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
142662306a36Sopenharmony_ci		}
142762306a36Sopenharmony_ci	}
142862306a36Sopenharmony_ci};
142962306a36Sopenharmony_ci
143062306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_qup2_spi_apps_clk = {
143162306a36Sopenharmony_ci	.halt_reg = 0x0300c,
143262306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
143362306a36Sopenharmony_ci	.clkr = {
143462306a36Sopenharmony_ci		.enable_reg = 0x0300c,
143562306a36Sopenharmony_ci		.enable_mask = BIT(0),
143662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
143762306a36Sopenharmony_ci			.name = "gcc_blsp1_qup2_spi_apps_clk",
143862306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
143962306a36Sopenharmony_ci				&blsp1_qup2_spi_apps_clk_src.clkr.hw,
144062306a36Sopenharmony_ci			},
144162306a36Sopenharmony_ci			.num_parents = 1,
144262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
144362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
144462306a36Sopenharmony_ci		}
144562306a36Sopenharmony_ci	}
144662306a36Sopenharmony_ci};
144762306a36Sopenharmony_ci
144862306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_qup3_spi_apps_clk = {
144962306a36Sopenharmony_ci	.halt_reg = 0x0401c,
145062306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
145162306a36Sopenharmony_ci	.clkr = {
145262306a36Sopenharmony_ci		.enable_reg = 0x0401c,
145362306a36Sopenharmony_ci		.enable_mask = BIT(0),
145462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
145562306a36Sopenharmony_ci			.name = "gcc_blsp1_qup3_spi_apps_clk",
145662306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
145762306a36Sopenharmony_ci				&blsp1_qup3_spi_apps_clk_src.clkr.hw,
145862306a36Sopenharmony_ci			},
145962306a36Sopenharmony_ci			.num_parents = 1,
146062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
146162306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
146262306a36Sopenharmony_ci		}
146362306a36Sopenharmony_ci	}
146462306a36Sopenharmony_ci};
146562306a36Sopenharmony_ci
146662306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_qup4_spi_apps_clk = {
146762306a36Sopenharmony_ci	.halt_reg = 0x0501c,
146862306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
146962306a36Sopenharmony_ci	.clkr = {
147062306a36Sopenharmony_ci		.enable_reg = 0x0501c,
147162306a36Sopenharmony_ci		.enable_mask = BIT(0),
147262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
147362306a36Sopenharmony_ci			.name = "gcc_blsp1_qup4_spi_apps_clk",
147462306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
147562306a36Sopenharmony_ci				&blsp1_qup4_spi_apps_clk_src.clkr.hw,
147662306a36Sopenharmony_ci			},
147762306a36Sopenharmony_ci			.num_parents = 1,
147862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
147962306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
148062306a36Sopenharmony_ci		}
148162306a36Sopenharmony_ci	}
148262306a36Sopenharmony_ci};
148362306a36Sopenharmony_ci
148462306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_qup5_spi_apps_clk = {
148562306a36Sopenharmony_ci	.halt_reg = 0x0601c,
148662306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
148762306a36Sopenharmony_ci	.clkr = {
148862306a36Sopenharmony_ci		.enable_reg = 0x0601c,
148962306a36Sopenharmony_ci		.enable_mask = BIT(0),
149062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
149162306a36Sopenharmony_ci			.name = "gcc_blsp1_qup5_spi_apps_clk",
149262306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
149362306a36Sopenharmony_ci				&blsp1_qup5_spi_apps_clk_src.clkr.hw,
149462306a36Sopenharmony_ci			},
149562306a36Sopenharmony_ci			.num_parents = 1,
149662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
149762306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
149862306a36Sopenharmony_ci		}
149962306a36Sopenharmony_ci	}
150062306a36Sopenharmony_ci};
150162306a36Sopenharmony_ci
150262306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_qup6_spi_apps_clk = {
150362306a36Sopenharmony_ci	.halt_reg = 0x0701c,
150462306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
150562306a36Sopenharmony_ci	.clkr = {
150662306a36Sopenharmony_ci		.enable_reg = 0x0701c,
150762306a36Sopenharmony_ci		.enable_mask = BIT(0),
150862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
150962306a36Sopenharmony_ci			.name = "gcc_blsp1_qup6_spi_apps_clk",
151062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
151162306a36Sopenharmony_ci				&blsp1_qup6_spi_apps_clk_src.clkr.hw,
151262306a36Sopenharmony_ci			},
151362306a36Sopenharmony_ci			.num_parents = 1,
151462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
151562306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
151662306a36Sopenharmony_ci		}
151762306a36Sopenharmony_ci	}
151862306a36Sopenharmony_ci};
151962306a36Sopenharmony_ci
152062306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_uart1_apps_clk = {
152162306a36Sopenharmony_ci	.halt_reg = 0x0203c,
152262306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
152362306a36Sopenharmony_ci	.clkr = {
152462306a36Sopenharmony_ci		.enable_reg = 0x0203c,
152562306a36Sopenharmony_ci		.enable_mask = BIT(0),
152662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
152762306a36Sopenharmony_ci			.name = "gcc_blsp1_uart1_apps_clk",
152862306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
152962306a36Sopenharmony_ci				&blsp1_uart1_apps_clk_src.clkr.hw,
153062306a36Sopenharmony_ci			},
153162306a36Sopenharmony_ci			.num_parents = 1,
153262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
153362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
153462306a36Sopenharmony_ci		}
153562306a36Sopenharmony_ci	}
153662306a36Sopenharmony_ci};
153762306a36Sopenharmony_ci
153862306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_uart2_apps_clk = {
153962306a36Sopenharmony_ci	.halt_reg = 0x0302c,
154062306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
154162306a36Sopenharmony_ci	.clkr = {
154262306a36Sopenharmony_ci		.enable_reg = 0x0302c,
154362306a36Sopenharmony_ci		.enable_mask = BIT(0),
154462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
154562306a36Sopenharmony_ci			.name = "gcc_blsp1_uart2_apps_clk",
154662306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
154762306a36Sopenharmony_ci				&blsp1_uart2_apps_clk_src.clkr.hw,
154862306a36Sopenharmony_ci			},
154962306a36Sopenharmony_ci			.num_parents = 1,
155062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
155162306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
155262306a36Sopenharmony_ci		}
155362306a36Sopenharmony_ci	}
155462306a36Sopenharmony_ci};
155562306a36Sopenharmony_ci
155662306a36Sopenharmony_cistatic struct clk_branch gcc_camss_ahb_clk = {
155762306a36Sopenharmony_ci	.halt_reg = 0x5a014,
155862306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
155962306a36Sopenharmony_ci	.clkr = {
156062306a36Sopenharmony_ci		.enable_reg = 0x5a014,
156162306a36Sopenharmony_ci		.enable_mask = BIT(0),
156262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
156362306a36Sopenharmony_ci			.name = "gcc_camss_ahb_clk",
156462306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
156562306a36Sopenharmony_ci				&pcnoc_bfdcd_clk_src.clkr.hw,
156662306a36Sopenharmony_ci			},
156762306a36Sopenharmony_ci			.num_parents = 1,
156862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
156962306a36Sopenharmony_ci		}
157062306a36Sopenharmony_ci	}
157162306a36Sopenharmony_ci};
157262306a36Sopenharmony_ci
157362306a36Sopenharmony_cistatic struct clk_branch gcc_camss_csi0_clk = {
157462306a36Sopenharmony_ci	.halt_reg = 0x4e03c,
157562306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
157662306a36Sopenharmony_ci	.clkr = {
157762306a36Sopenharmony_ci		.enable_reg = 0x4e03c,
157862306a36Sopenharmony_ci		.enable_mask = BIT(0),
157962306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
158062306a36Sopenharmony_ci			.name = "gcc_camss_csi0_clk",
158162306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
158262306a36Sopenharmony_ci				&csi0_clk_src.clkr.hw,
158362306a36Sopenharmony_ci			},
158462306a36Sopenharmony_ci			.num_parents = 1,
158562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
158662306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
158762306a36Sopenharmony_ci		}
158862306a36Sopenharmony_ci	}
158962306a36Sopenharmony_ci};
159062306a36Sopenharmony_ci
159162306a36Sopenharmony_cistatic struct clk_branch gcc_camss_csi0_ahb_clk = {
159262306a36Sopenharmony_ci	.halt_reg = 0x4e040,
159362306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
159462306a36Sopenharmony_ci	.clkr = {
159562306a36Sopenharmony_ci		.enable_reg = 0x4e040,
159662306a36Sopenharmony_ci		.enable_mask = BIT(0),
159762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
159862306a36Sopenharmony_ci			.name = "gcc_camss_csi0_ahb_clk",
159962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
160062306a36Sopenharmony_ci				&camss_top_ahb_clk_src.clkr.hw,
160162306a36Sopenharmony_ci			},
160262306a36Sopenharmony_ci			.num_parents = 1,
160362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
160462306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
160562306a36Sopenharmony_ci		}
160662306a36Sopenharmony_ci	}
160762306a36Sopenharmony_ci};
160862306a36Sopenharmony_ci
160962306a36Sopenharmony_cistatic struct clk_branch gcc_camss_csi0phy_clk = {
161062306a36Sopenharmony_ci	.halt_reg = 0x4e048,
161162306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
161262306a36Sopenharmony_ci	.clkr = {
161362306a36Sopenharmony_ci		.enable_reg = 0x4e048,
161462306a36Sopenharmony_ci		.enable_mask = BIT(0),
161562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
161662306a36Sopenharmony_ci			.name = "gcc_camss_csi0phy_clk",
161762306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
161862306a36Sopenharmony_ci				&csi0_clk_src.clkr.hw,
161962306a36Sopenharmony_ci			},
162062306a36Sopenharmony_ci			.num_parents = 1,
162162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
162262306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
162362306a36Sopenharmony_ci		}
162462306a36Sopenharmony_ci	}
162562306a36Sopenharmony_ci};
162662306a36Sopenharmony_ci
162762306a36Sopenharmony_cistatic struct clk_branch gcc_camss_csi0phytimer_clk = {
162862306a36Sopenharmony_ci	.halt_reg = 0x4e01c,
162962306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
163062306a36Sopenharmony_ci	.clkr = {
163162306a36Sopenharmony_ci		.enable_reg = 0x4e01c,
163262306a36Sopenharmony_ci		.enable_mask = BIT(0),
163362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
163462306a36Sopenharmony_ci			.name = "gcc_camss_csi0phytimer_clk",
163562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
163662306a36Sopenharmony_ci				&csi0phytimer_clk_src.clkr.hw,
163762306a36Sopenharmony_ci			},
163862306a36Sopenharmony_ci			.num_parents = 1,
163962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
164062306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
164162306a36Sopenharmony_ci		}
164262306a36Sopenharmony_ci	}
164362306a36Sopenharmony_ci};
164462306a36Sopenharmony_ci
164562306a36Sopenharmony_cistatic struct clk_branch gcc_camss_csi0pix_clk = {
164662306a36Sopenharmony_ci	.halt_reg = 0x4e058,
164762306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
164862306a36Sopenharmony_ci	.clkr = {
164962306a36Sopenharmony_ci		.enable_reg = 0x4e058,
165062306a36Sopenharmony_ci		.enable_mask = BIT(0),
165162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
165262306a36Sopenharmony_ci			.name = "gcc_camss_csi0pix_clk",
165362306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
165462306a36Sopenharmony_ci				&csi0_clk_src.clkr.hw,
165562306a36Sopenharmony_ci			},
165662306a36Sopenharmony_ci			.num_parents = 1,
165762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
165862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
165962306a36Sopenharmony_ci		}
166062306a36Sopenharmony_ci	}
166162306a36Sopenharmony_ci};
166262306a36Sopenharmony_ci
166362306a36Sopenharmony_cistatic struct clk_branch gcc_camss_csi0rdi_clk = {
166462306a36Sopenharmony_ci	.halt_reg = 0x4e050,
166562306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
166662306a36Sopenharmony_ci	.clkr = {
166762306a36Sopenharmony_ci		.enable_reg = 0x4e050,
166862306a36Sopenharmony_ci		.enable_mask = BIT(0),
166962306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
167062306a36Sopenharmony_ci			.name = "gcc_camss_csi0rdi_clk",
167162306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
167262306a36Sopenharmony_ci				&csi0_clk_src.clkr.hw,
167362306a36Sopenharmony_ci			},
167462306a36Sopenharmony_ci			.num_parents = 1,
167562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
167662306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
167762306a36Sopenharmony_ci		}
167862306a36Sopenharmony_ci	}
167962306a36Sopenharmony_ci};
168062306a36Sopenharmony_ci
168162306a36Sopenharmony_cistatic struct clk_branch gcc_camss_csi1_clk = {
168262306a36Sopenharmony_ci	.halt_reg = 0x4f03c,
168362306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
168462306a36Sopenharmony_ci	.clkr = {
168562306a36Sopenharmony_ci		.enable_reg = 0x4f03c,
168662306a36Sopenharmony_ci		.enable_mask = BIT(0),
168762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
168862306a36Sopenharmony_ci			.name = "gcc_camss_csi1_clk",
168962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
169062306a36Sopenharmony_ci				&csi1_clk_src.clkr.hw,
169162306a36Sopenharmony_ci			},
169262306a36Sopenharmony_ci			.num_parents = 1,
169362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
169462306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
169562306a36Sopenharmony_ci		}
169662306a36Sopenharmony_ci	}
169762306a36Sopenharmony_ci};
169862306a36Sopenharmony_ci
169962306a36Sopenharmony_cistatic struct clk_branch gcc_camss_csi1_ahb_clk = {
170062306a36Sopenharmony_ci	.halt_reg = 0x4f040,
170162306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
170262306a36Sopenharmony_ci	.clkr = {
170362306a36Sopenharmony_ci		.enable_reg = 0x4f040,
170462306a36Sopenharmony_ci		.enable_mask = BIT(0),
170562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
170662306a36Sopenharmony_ci			.name = "gcc_camss_csi1_ahb_clk",
170762306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
170862306a36Sopenharmony_ci				&camss_top_ahb_clk_src.clkr.hw,
170962306a36Sopenharmony_ci			},
171062306a36Sopenharmony_ci			.num_parents = 1,
171162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
171262306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
171362306a36Sopenharmony_ci		}
171462306a36Sopenharmony_ci	}
171562306a36Sopenharmony_ci};
171662306a36Sopenharmony_ci
171762306a36Sopenharmony_cistatic struct clk_branch gcc_camss_csi1phy_clk = {
171862306a36Sopenharmony_ci	.halt_reg = 0x4f048,
171962306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
172062306a36Sopenharmony_ci	.clkr = {
172162306a36Sopenharmony_ci		.enable_reg = 0x4f048,
172262306a36Sopenharmony_ci		.enable_mask = BIT(0),
172362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
172462306a36Sopenharmony_ci			.name = "gcc_camss_csi1phy_clk",
172562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
172662306a36Sopenharmony_ci				&csi1_clk_src.clkr.hw,
172762306a36Sopenharmony_ci			},
172862306a36Sopenharmony_ci			.num_parents = 1,
172962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
173062306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
173162306a36Sopenharmony_ci		}
173262306a36Sopenharmony_ci	}
173362306a36Sopenharmony_ci};
173462306a36Sopenharmony_ci
173562306a36Sopenharmony_cistatic struct clk_branch gcc_camss_csi1pix_clk = {
173662306a36Sopenharmony_ci	.halt_reg = 0x4f058,
173762306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
173862306a36Sopenharmony_ci	.clkr = {
173962306a36Sopenharmony_ci		.enable_reg = 0x4f058,
174062306a36Sopenharmony_ci		.enable_mask = BIT(0),
174162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
174262306a36Sopenharmony_ci			.name = "gcc_camss_csi1pix_clk",
174362306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
174462306a36Sopenharmony_ci				&csi1_clk_src.clkr.hw,
174562306a36Sopenharmony_ci			},
174662306a36Sopenharmony_ci			.num_parents = 1,
174762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
174862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
174962306a36Sopenharmony_ci		}
175062306a36Sopenharmony_ci	}
175162306a36Sopenharmony_ci};
175262306a36Sopenharmony_ci
175362306a36Sopenharmony_cistatic struct clk_branch gcc_camss_csi1rdi_clk = {
175462306a36Sopenharmony_ci	.halt_reg = 0x4f050,
175562306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
175662306a36Sopenharmony_ci	.clkr = {
175762306a36Sopenharmony_ci		.enable_reg = 0x4f050,
175862306a36Sopenharmony_ci		.enable_mask = BIT(0),
175962306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
176062306a36Sopenharmony_ci			.name = "gcc_camss_csi1rdi_clk",
176162306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
176262306a36Sopenharmony_ci				&csi1_clk_src.clkr.hw,
176362306a36Sopenharmony_ci			},
176462306a36Sopenharmony_ci			.num_parents = 1,
176562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
176662306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
176762306a36Sopenharmony_ci		}
176862306a36Sopenharmony_ci	}
176962306a36Sopenharmony_ci};
177062306a36Sopenharmony_ci
177162306a36Sopenharmony_cistatic struct clk_branch gcc_camss_csi_vfe0_clk = {
177262306a36Sopenharmony_ci	.halt_reg = 0x58050,
177362306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
177462306a36Sopenharmony_ci	.clkr = {
177562306a36Sopenharmony_ci		.enable_reg = 0x58050,
177662306a36Sopenharmony_ci		.enable_mask = BIT(0),
177762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
177862306a36Sopenharmony_ci			.name = "gcc_camss_csi_vfe0_clk",
177962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
178062306a36Sopenharmony_ci				&vfe0_clk_src.clkr.hw,
178162306a36Sopenharmony_ci			},
178262306a36Sopenharmony_ci			.num_parents = 1,
178362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
178462306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
178562306a36Sopenharmony_ci		}
178662306a36Sopenharmony_ci	}
178762306a36Sopenharmony_ci};
178862306a36Sopenharmony_ci
178962306a36Sopenharmony_cistatic struct clk_branch gcc_camss_gp0_clk = {
179062306a36Sopenharmony_ci	.halt_reg = 0x54018,
179162306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
179262306a36Sopenharmony_ci	.clkr = {
179362306a36Sopenharmony_ci		.enable_reg = 0x54018,
179462306a36Sopenharmony_ci		.enable_mask = BIT(0),
179562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
179662306a36Sopenharmony_ci			.name = "gcc_camss_gp0_clk",
179762306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
179862306a36Sopenharmony_ci				&camss_gp0_clk_src.clkr.hw,
179962306a36Sopenharmony_ci			},
180062306a36Sopenharmony_ci			.num_parents = 1,
180162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
180262306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
180362306a36Sopenharmony_ci		}
180462306a36Sopenharmony_ci	}
180562306a36Sopenharmony_ci};
180662306a36Sopenharmony_ci
180762306a36Sopenharmony_cistatic struct clk_branch gcc_camss_gp1_clk = {
180862306a36Sopenharmony_ci	.halt_reg = 0x55018,
180962306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
181062306a36Sopenharmony_ci	.clkr = {
181162306a36Sopenharmony_ci		.enable_reg = 0x55018,
181262306a36Sopenharmony_ci		.enable_mask = BIT(0),
181362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
181462306a36Sopenharmony_ci			.name = "gcc_camss_gp1_clk",
181562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
181662306a36Sopenharmony_ci				&camss_gp1_clk_src.clkr.hw,
181762306a36Sopenharmony_ci			},
181862306a36Sopenharmony_ci			.num_parents = 1,
181962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
182062306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
182162306a36Sopenharmony_ci		}
182262306a36Sopenharmony_ci	}
182362306a36Sopenharmony_ci};
182462306a36Sopenharmony_ci
182562306a36Sopenharmony_cistatic struct clk_branch gcc_camss_ispif_ahb_clk = {
182662306a36Sopenharmony_ci	.halt_reg = 0x50004,
182762306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
182862306a36Sopenharmony_ci	.clkr = {
182962306a36Sopenharmony_ci		.enable_reg = 0x50004,
183062306a36Sopenharmony_ci		.enable_mask = BIT(0),
183162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
183262306a36Sopenharmony_ci			.name = "gcc_camss_ispif_ahb_clk",
183362306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
183462306a36Sopenharmony_ci				&camss_top_ahb_clk_src.clkr.hw,
183562306a36Sopenharmony_ci			},
183662306a36Sopenharmony_ci			.num_parents = 1,
183762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
183862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
183962306a36Sopenharmony_ci		}
184062306a36Sopenharmony_ci	}
184162306a36Sopenharmony_ci};
184262306a36Sopenharmony_ci
184362306a36Sopenharmony_cistatic struct clk_branch gcc_camss_mclk0_clk = {
184462306a36Sopenharmony_ci	.halt_reg = 0x52018,
184562306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
184662306a36Sopenharmony_ci	.clkr = {
184762306a36Sopenharmony_ci		.enable_reg = 0x52018,
184862306a36Sopenharmony_ci		.enable_mask = BIT(0),
184962306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
185062306a36Sopenharmony_ci			.name = "gcc_camss_mclk0_clk",
185162306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
185262306a36Sopenharmony_ci				&mclk0_clk_src.clkr.hw,
185362306a36Sopenharmony_ci			},
185462306a36Sopenharmony_ci			.num_parents = 1,
185562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
185662306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
185762306a36Sopenharmony_ci		}
185862306a36Sopenharmony_ci	}
185962306a36Sopenharmony_ci};
186062306a36Sopenharmony_ci
186162306a36Sopenharmony_cistatic struct clk_branch gcc_camss_mclk1_clk = {
186262306a36Sopenharmony_ci	.halt_reg = 0x53018,
186362306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
186462306a36Sopenharmony_ci	.clkr = {
186562306a36Sopenharmony_ci		.enable_reg = 0x53018,
186662306a36Sopenharmony_ci		.enable_mask = BIT(0),
186762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
186862306a36Sopenharmony_ci			.name = "gcc_camss_mclk1_clk",
186962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
187062306a36Sopenharmony_ci				&mclk1_clk_src.clkr.hw,
187162306a36Sopenharmony_ci			},
187262306a36Sopenharmony_ci			.num_parents = 1,
187362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
187462306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
187562306a36Sopenharmony_ci		}
187662306a36Sopenharmony_ci	}
187762306a36Sopenharmony_ci};
187862306a36Sopenharmony_ci
187962306a36Sopenharmony_cistatic struct clk_branch gcc_camss_top_ahb_clk = {
188062306a36Sopenharmony_ci	.halt_reg = 0x56004,
188162306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
188262306a36Sopenharmony_ci	.clkr = {
188362306a36Sopenharmony_ci		.enable_reg = 0x56004,
188462306a36Sopenharmony_ci		.enable_mask = BIT(0),
188562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
188662306a36Sopenharmony_ci			.name = "gcc_camss_top_ahb_clk",
188762306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
188862306a36Sopenharmony_ci				&camss_top_ahb_clk_src.clkr.hw,
188962306a36Sopenharmony_ci			},
189062306a36Sopenharmony_ci			.num_parents = 1,
189162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
189262306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
189362306a36Sopenharmony_ci		}
189462306a36Sopenharmony_ci	}
189562306a36Sopenharmony_ci};
189662306a36Sopenharmony_ci
189762306a36Sopenharmony_cistatic struct clk_branch gcc_camss_vfe0_clk = {
189862306a36Sopenharmony_ci	.halt_reg = 0x58038,
189962306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
190062306a36Sopenharmony_ci	.clkr = {
190162306a36Sopenharmony_ci		.enable_reg = 0x58038,
190262306a36Sopenharmony_ci		.enable_mask = BIT(0),
190362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
190462306a36Sopenharmony_ci			.name = "gcc_camss_vfe0_clk",
190562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
190662306a36Sopenharmony_ci				&vfe0_clk_src.clkr.hw,
190762306a36Sopenharmony_ci			},
190862306a36Sopenharmony_ci			.num_parents = 1,
190962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
191062306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
191162306a36Sopenharmony_ci		}
191262306a36Sopenharmony_ci	}
191362306a36Sopenharmony_ci};
191462306a36Sopenharmony_ci
191562306a36Sopenharmony_cistatic struct clk_branch gcc_camss_vfe_ahb_clk = {
191662306a36Sopenharmony_ci	.halt_reg = 0x58044,
191762306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
191862306a36Sopenharmony_ci	.clkr = {
191962306a36Sopenharmony_ci		.enable_reg = 0x58044,
192062306a36Sopenharmony_ci		.enable_mask = BIT(0),
192162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
192262306a36Sopenharmony_ci			.name = "gcc_camss_vfe_ahb_clk",
192362306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
192462306a36Sopenharmony_ci				&camss_top_ahb_clk_src.clkr.hw,
192562306a36Sopenharmony_ci			},
192662306a36Sopenharmony_ci			.num_parents = 1,
192762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
192862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
192962306a36Sopenharmony_ci		}
193062306a36Sopenharmony_ci	}
193162306a36Sopenharmony_ci};
193262306a36Sopenharmony_ci
193362306a36Sopenharmony_cistatic struct clk_branch gcc_camss_vfe_axi_clk = {
193462306a36Sopenharmony_ci	.halt_reg = 0x58048,
193562306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
193662306a36Sopenharmony_ci	.clkr = {
193762306a36Sopenharmony_ci		.enable_reg = 0x58048,
193862306a36Sopenharmony_ci		.enable_mask = BIT(0),
193962306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
194062306a36Sopenharmony_ci			.name = "gcc_camss_vfe_axi_clk",
194162306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
194262306a36Sopenharmony_ci				&system_noc_bfdcd_clk_src.clkr.hw,
194362306a36Sopenharmony_ci			},
194462306a36Sopenharmony_ci			.num_parents = 1,
194562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
194662306a36Sopenharmony_ci		}
194762306a36Sopenharmony_ci	}
194862306a36Sopenharmony_ci};
194962306a36Sopenharmony_ci
195062306a36Sopenharmony_cistatic struct clk_branch gcc_gp1_clk = {
195162306a36Sopenharmony_ci	.halt_reg = 0x08000,
195262306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
195362306a36Sopenharmony_ci	.clkr = {
195462306a36Sopenharmony_ci		.enable_reg = 0x08000,
195562306a36Sopenharmony_ci		.enable_mask = BIT(0),
195662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
195762306a36Sopenharmony_ci			.name = "gcc_gp1_clk",
195862306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
195962306a36Sopenharmony_ci				&gp1_clk_src.clkr.hw,
196062306a36Sopenharmony_ci			},
196162306a36Sopenharmony_ci			.num_parents = 1,
196262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
196362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
196462306a36Sopenharmony_ci		}
196562306a36Sopenharmony_ci	}
196662306a36Sopenharmony_ci};
196762306a36Sopenharmony_ci
196862306a36Sopenharmony_cistatic struct clk_branch gcc_gp2_clk = {
196962306a36Sopenharmony_ci	.halt_reg = 0x09000,
197062306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
197162306a36Sopenharmony_ci	.clkr = {
197262306a36Sopenharmony_ci		.enable_reg = 0x09000,
197362306a36Sopenharmony_ci		.enable_mask = BIT(0),
197462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
197562306a36Sopenharmony_ci			.name = "gcc_gp2_clk",
197662306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
197762306a36Sopenharmony_ci				&gp2_clk_src.clkr.hw,
197862306a36Sopenharmony_ci			},
197962306a36Sopenharmony_ci			.num_parents = 1,
198062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
198162306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
198262306a36Sopenharmony_ci		}
198362306a36Sopenharmony_ci	}
198462306a36Sopenharmony_ci};
198562306a36Sopenharmony_ci
198662306a36Sopenharmony_cistatic struct clk_branch gcc_gp3_clk = {
198762306a36Sopenharmony_ci	.halt_reg = 0x0a000,
198862306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
198962306a36Sopenharmony_ci	.clkr = {
199062306a36Sopenharmony_ci		.enable_reg = 0x0a000,
199162306a36Sopenharmony_ci		.enable_mask = BIT(0),
199262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
199362306a36Sopenharmony_ci			.name = "gcc_gp3_clk",
199462306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
199562306a36Sopenharmony_ci				&gp3_clk_src.clkr.hw,
199662306a36Sopenharmony_ci			},
199762306a36Sopenharmony_ci			.num_parents = 1,
199862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
199962306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
200062306a36Sopenharmony_ci		}
200162306a36Sopenharmony_ci	}
200262306a36Sopenharmony_ci};
200362306a36Sopenharmony_ci
200462306a36Sopenharmony_cistatic struct clk_branch gcc_mdss_ahb_clk = {
200562306a36Sopenharmony_ci	.halt_reg = 0x4d07c,
200662306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
200762306a36Sopenharmony_ci	.clkr = {
200862306a36Sopenharmony_ci		.enable_reg = 0x4d07c,
200962306a36Sopenharmony_ci		.enable_mask = BIT(0),
201062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
201162306a36Sopenharmony_ci			.name = "gcc_mdss_ahb_clk",
201262306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
201362306a36Sopenharmony_ci				&pcnoc_bfdcd_clk_src.clkr.hw,
201462306a36Sopenharmony_ci			},
201562306a36Sopenharmony_ci			.num_parents = 1,
201662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
201762306a36Sopenharmony_ci		}
201862306a36Sopenharmony_ci	}
201962306a36Sopenharmony_ci};
202062306a36Sopenharmony_ci
202162306a36Sopenharmony_cistatic struct clk_branch gcc_mdss_axi_clk = {
202262306a36Sopenharmony_ci	.halt_reg = 0x4d080,
202362306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
202462306a36Sopenharmony_ci	.clkr = {
202562306a36Sopenharmony_ci		.enable_reg = 0x4d080,
202662306a36Sopenharmony_ci		.enable_mask = BIT(0),
202762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
202862306a36Sopenharmony_ci			.name = "gcc_mdss_axi_clk",
202962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
203062306a36Sopenharmony_ci				&system_noc_bfdcd_clk_src.clkr.hw,
203162306a36Sopenharmony_ci			},
203262306a36Sopenharmony_ci			.num_parents = 1,
203362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
203462306a36Sopenharmony_ci		}
203562306a36Sopenharmony_ci	}
203662306a36Sopenharmony_ci};
203762306a36Sopenharmony_ci
203862306a36Sopenharmony_cistatic struct clk_branch gcc_mdss_byte0_clk = {
203962306a36Sopenharmony_ci	.halt_reg = 0x4d094,
204062306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
204162306a36Sopenharmony_ci	.clkr = {
204262306a36Sopenharmony_ci		.enable_reg = 0x4d094,
204362306a36Sopenharmony_ci		.enable_mask = BIT(0),
204462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
204562306a36Sopenharmony_ci			.name = "gcc_mdss_byte0_clk",
204662306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
204762306a36Sopenharmony_ci				&byte0_clk_src.clkr.hw,
204862306a36Sopenharmony_ci			},
204962306a36Sopenharmony_ci			.num_parents = 1,
205062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
205162306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
205262306a36Sopenharmony_ci		}
205362306a36Sopenharmony_ci	}
205462306a36Sopenharmony_ci};
205562306a36Sopenharmony_ci
205662306a36Sopenharmony_cistatic struct clk_branch gcc_mdss_esc0_clk = {
205762306a36Sopenharmony_ci	.halt_reg = 0x4d098,
205862306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
205962306a36Sopenharmony_ci	.clkr = {
206062306a36Sopenharmony_ci		.enable_reg = 0x4d098,
206162306a36Sopenharmony_ci		.enable_mask = BIT(0),
206262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
206362306a36Sopenharmony_ci			.name = "gcc_mdss_esc0_clk",
206462306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
206562306a36Sopenharmony_ci				&esc0_clk_src.clkr.hw,
206662306a36Sopenharmony_ci			},
206762306a36Sopenharmony_ci			.num_parents = 1,
206862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
206962306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
207062306a36Sopenharmony_ci		}
207162306a36Sopenharmony_ci	}
207262306a36Sopenharmony_ci};
207362306a36Sopenharmony_ci
207462306a36Sopenharmony_cistatic struct clk_branch gcc_mdss_mdp_clk = {
207562306a36Sopenharmony_ci	.halt_reg = 0x4d088,
207662306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
207762306a36Sopenharmony_ci	.clkr = {
207862306a36Sopenharmony_ci		.enable_reg = 0x4d088,
207962306a36Sopenharmony_ci		.enable_mask = BIT(0),
208062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
208162306a36Sopenharmony_ci			.name = "gcc_mdss_mdp_clk",
208262306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
208362306a36Sopenharmony_ci				&mdp_clk_src.clkr.hw,
208462306a36Sopenharmony_ci			},
208562306a36Sopenharmony_ci			.num_parents = 1,
208662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
208762306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
208862306a36Sopenharmony_ci		}
208962306a36Sopenharmony_ci	}
209062306a36Sopenharmony_ci};
209162306a36Sopenharmony_ci
209262306a36Sopenharmony_cistatic struct clk_branch gcc_mdss_pclk0_clk = {
209362306a36Sopenharmony_ci	.halt_reg = 0x4d084,
209462306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
209562306a36Sopenharmony_ci	.clkr = {
209662306a36Sopenharmony_ci		.enable_reg = 0x4d084,
209762306a36Sopenharmony_ci		.enable_mask = BIT(0),
209862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
209962306a36Sopenharmony_ci			.name = "gcc_mdss_pclk0_clk",
210062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
210162306a36Sopenharmony_ci				&pclk0_clk_src.clkr.hw,
210262306a36Sopenharmony_ci			},
210362306a36Sopenharmony_ci			.num_parents = 1,
210462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
210562306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
210662306a36Sopenharmony_ci		}
210762306a36Sopenharmony_ci	}
210862306a36Sopenharmony_ci};
210962306a36Sopenharmony_ci
211062306a36Sopenharmony_cistatic struct clk_branch gcc_mdss_vsync_clk = {
211162306a36Sopenharmony_ci	.halt_reg = 0x4d090,
211262306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
211362306a36Sopenharmony_ci	.clkr = {
211462306a36Sopenharmony_ci		.enable_reg = 0x4d090,
211562306a36Sopenharmony_ci		.enable_mask = BIT(0),
211662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
211762306a36Sopenharmony_ci			.name = "gcc_mdss_vsync_clk",
211862306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
211962306a36Sopenharmony_ci				&vsync_clk_src.clkr.hw,
212062306a36Sopenharmony_ci			},
212162306a36Sopenharmony_ci			.num_parents = 1,
212262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
212362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
212462306a36Sopenharmony_ci		}
212562306a36Sopenharmony_ci	}
212662306a36Sopenharmony_ci};
212762306a36Sopenharmony_ci
212862306a36Sopenharmony_cistatic struct clk_branch gcc_mss_cfg_ahb_clk = {
212962306a36Sopenharmony_ci	.halt_reg = 0x49000,
213062306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
213162306a36Sopenharmony_ci	.clkr = {
213262306a36Sopenharmony_ci		.enable_reg = 0x49000,
213362306a36Sopenharmony_ci		.enable_mask = BIT(0),
213462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
213562306a36Sopenharmony_ci			.name = "gcc_mss_cfg_ahb_clk",
213662306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
213762306a36Sopenharmony_ci				&pcnoc_bfdcd_clk_src.clkr.hw,
213862306a36Sopenharmony_ci			},
213962306a36Sopenharmony_ci			.num_parents = 1,
214062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
214162306a36Sopenharmony_ci		}
214262306a36Sopenharmony_ci	}
214362306a36Sopenharmony_ci};
214462306a36Sopenharmony_ci
214562306a36Sopenharmony_cistatic struct clk_branch gcc_mss_q6_bimc_axi_clk = {
214662306a36Sopenharmony_ci	.halt_reg = 0x49004,
214762306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
214862306a36Sopenharmony_ci	.clkr = {
214962306a36Sopenharmony_ci		.enable_reg = 0x49004,
215062306a36Sopenharmony_ci		.enable_mask = BIT(0),
215162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
215262306a36Sopenharmony_ci			.name = "gcc_mss_q6_bimc_axi_clk",
215362306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
215462306a36Sopenharmony_ci				&bimc_ddr_clk_src.clkr.hw,
215562306a36Sopenharmony_ci			},
215662306a36Sopenharmony_ci			.num_parents = 1,
215762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
215862306a36Sopenharmony_ci		}
215962306a36Sopenharmony_ci	}
216062306a36Sopenharmony_ci};
216162306a36Sopenharmony_ci
216262306a36Sopenharmony_cistatic struct clk_branch gcc_oxili_ahb_clk = {
216362306a36Sopenharmony_ci	.halt_reg = 0x59028,
216462306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
216562306a36Sopenharmony_ci	.clkr = {
216662306a36Sopenharmony_ci		.enable_reg = 0x59028,
216762306a36Sopenharmony_ci		.enable_mask = BIT(0),
216862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
216962306a36Sopenharmony_ci			.name = "gcc_oxili_ahb_clk",
217062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
217162306a36Sopenharmony_ci				&pcnoc_bfdcd_clk_src.clkr.hw,
217262306a36Sopenharmony_ci			},
217362306a36Sopenharmony_ci			.num_parents = 1,
217462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
217562306a36Sopenharmony_ci		}
217662306a36Sopenharmony_ci	}
217762306a36Sopenharmony_ci};
217862306a36Sopenharmony_ci
217962306a36Sopenharmony_cistatic struct clk_branch gcc_oxili_gfx3d_clk = {
218062306a36Sopenharmony_ci	.halt_reg = 0x59020,
218162306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
218262306a36Sopenharmony_ci	.clkr = {
218362306a36Sopenharmony_ci		.enable_reg = 0x59020,
218462306a36Sopenharmony_ci		.enable_mask = BIT(0),
218562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
218662306a36Sopenharmony_ci			.name = "gcc_oxili_gfx3d_clk",
218762306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
218862306a36Sopenharmony_ci				&gfx3d_clk_src.clkr.hw,
218962306a36Sopenharmony_ci			},
219062306a36Sopenharmony_ci			.num_parents = 1,
219162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
219262306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
219362306a36Sopenharmony_ci		}
219462306a36Sopenharmony_ci	}
219562306a36Sopenharmony_ci};
219662306a36Sopenharmony_ci
219762306a36Sopenharmony_cistatic struct clk_branch gcc_pdm2_clk = {
219862306a36Sopenharmony_ci	.halt_reg = 0x4400c,
219962306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
220062306a36Sopenharmony_ci	.clkr = {
220162306a36Sopenharmony_ci		.enable_reg = 0x4400c,
220262306a36Sopenharmony_ci		.enable_mask = BIT(0),
220362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
220462306a36Sopenharmony_ci			.name = "gcc_pdm2_clk",
220562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
220662306a36Sopenharmony_ci				&pdm2_clk_src.clkr.hw,
220762306a36Sopenharmony_ci			},
220862306a36Sopenharmony_ci			.num_parents = 1,
220962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
221062306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
221162306a36Sopenharmony_ci		}
221262306a36Sopenharmony_ci	}
221362306a36Sopenharmony_ci};
221462306a36Sopenharmony_ci
221562306a36Sopenharmony_cistatic struct clk_branch gcc_pdm_ahb_clk = {
221662306a36Sopenharmony_ci	.halt_reg = 0x44004,
221762306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
221862306a36Sopenharmony_ci	.clkr = {
221962306a36Sopenharmony_ci		.enable_reg = 0x44004,
222062306a36Sopenharmony_ci		.enable_mask = BIT(0),
222162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
222262306a36Sopenharmony_ci			.name = "gcc_pdm_ahb_clk",
222362306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
222462306a36Sopenharmony_ci				&pcnoc_bfdcd_clk_src.clkr.hw,
222562306a36Sopenharmony_ci			},
222662306a36Sopenharmony_ci			.num_parents = 1,
222762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
222862306a36Sopenharmony_ci		}
222962306a36Sopenharmony_ci	}
223062306a36Sopenharmony_ci};
223162306a36Sopenharmony_ci
223262306a36Sopenharmony_cistatic struct clk_branch gcc_sdcc1_ahb_clk = {
223362306a36Sopenharmony_ci	.halt_reg = 0x4201c,
223462306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
223562306a36Sopenharmony_ci	.clkr = {
223662306a36Sopenharmony_ci		.enable_reg = 0x4201c,
223762306a36Sopenharmony_ci		.enable_mask = BIT(0),
223862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
223962306a36Sopenharmony_ci			.name = "gcc_sdcc1_ahb_clk",
224062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
224162306a36Sopenharmony_ci				&pcnoc_bfdcd_clk_src.clkr.hw,
224262306a36Sopenharmony_ci			},
224362306a36Sopenharmony_ci			.num_parents = 1,
224462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
224562306a36Sopenharmony_ci		}
224662306a36Sopenharmony_ci	}
224762306a36Sopenharmony_ci};
224862306a36Sopenharmony_ci
224962306a36Sopenharmony_cistatic struct clk_branch gcc_sdcc1_apps_clk = {
225062306a36Sopenharmony_ci	.halt_reg = 0x42018,
225162306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
225262306a36Sopenharmony_ci	.clkr = {
225362306a36Sopenharmony_ci		.enable_reg = 0x42018,
225462306a36Sopenharmony_ci		.enable_mask = BIT(0),
225562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
225662306a36Sopenharmony_ci			.name = "gcc_sdcc1_apps_clk",
225762306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
225862306a36Sopenharmony_ci				&sdcc1_apps_clk_src.clkr.hw,
225962306a36Sopenharmony_ci			},
226062306a36Sopenharmony_ci			.num_parents = 1,
226162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
226262306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
226362306a36Sopenharmony_ci		}
226462306a36Sopenharmony_ci	}
226562306a36Sopenharmony_ci};
226662306a36Sopenharmony_ci
226762306a36Sopenharmony_cistatic struct clk_branch gcc_sdcc2_ahb_clk = {
226862306a36Sopenharmony_ci	.halt_reg = 0x4301c,
226962306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
227062306a36Sopenharmony_ci	.clkr = {
227162306a36Sopenharmony_ci		.enable_reg = 0x4301c,
227262306a36Sopenharmony_ci		.enable_mask = BIT(0),
227362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
227462306a36Sopenharmony_ci			.name = "gcc_sdcc2_ahb_clk",
227562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
227662306a36Sopenharmony_ci				&pcnoc_bfdcd_clk_src.clkr.hw,
227762306a36Sopenharmony_ci			},
227862306a36Sopenharmony_ci			.num_parents = 1,
227962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
228062306a36Sopenharmony_ci		}
228162306a36Sopenharmony_ci	}
228262306a36Sopenharmony_ci};
228362306a36Sopenharmony_ci
228462306a36Sopenharmony_cistatic struct clk_branch gcc_sdcc2_apps_clk = {
228562306a36Sopenharmony_ci	.halt_reg = 0x43018,
228662306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
228762306a36Sopenharmony_ci	.clkr = {
228862306a36Sopenharmony_ci		.enable_reg = 0x43018,
228962306a36Sopenharmony_ci		.enable_mask = BIT(0),
229062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
229162306a36Sopenharmony_ci			.name = "gcc_sdcc2_apps_clk",
229262306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
229362306a36Sopenharmony_ci				&sdcc2_apps_clk_src.clkr.hw,
229462306a36Sopenharmony_ci			},
229562306a36Sopenharmony_ci			.num_parents = 1,
229662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
229762306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
229862306a36Sopenharmony_ci		}
229962306a36Sopenharmony_ci	}
230062306a36Sopenharmony_ci};
230162306a36Sopenharmony_ci
230262306a36Sopenharmony_cistatic struct clk_branch gcc_usb2a_phy_sleep_clk = {
230362306a36Sopenharmony_ci	.halt_reg = 0x4102c,
230462306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
230562306a36Sopenharmony_ci	.clkr = {
230662306a36Sopenharmony_ci		.enable_reg = 0x4102c,
230762306a36Sopenharmony_ci		.enable_mask = BIT(0),
230862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
230962306a36Sopenharmony_ci			.name = "gcc_usb2a_phy_sleep_clk",
231062306a36Sopenharmony_ci			.parent_data = gcc_sleep_clk_data,
231162306a36Sopenharmony_ci			.num_parents = ARRAY_SIZE(gcc_sleep_clk_data),
231262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
231362306a36Sopenharmony_ci		}
231462306a36Sopenharmony_ci	}
231562306a36Sopenharmony_ci};
231662306a36Sopenharmony_ci
231762306a36Sopenharmony_cistatic struct clk_branch gcc_usb_hs_ahb_clk = {
231862306a36Sopenharmony_ci	.halt_reg = 0x41008,
231962306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
232062306a36Sopenharmony_ci	.clkr = {
232162306a36Sopenharmony_ci		.enable_reg = 0x41008,
232262306a36Sopenharmony_ci		.enable_mask = BIT(0),
232362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
232462306a36Sopenharmony_ci			.name = "gcc_usb_hs_ahb_clk",
232562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
232662306a36Sopenharmony_ci				&pcnoc_bfdcd_clk_src.clkr.hw,
232762306a36Sopenharmony_ci			},
232862306a36Sopenharmony_ci			.num_parents = 1,
232962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
233062306a36Sopenharmony_ci		}
233162306a36Sopenharmony_ci	}
233262306a36Sopenharmony_ci};
233362306a36Sopenharmony_ci
233462306a36Sopenharmony_cistatic struct clk_branch gcc_usb_hs_phy_cfg_ahb_clk = {
233562306a36Sopenharmony_ci	.halt_reg = 0x41030,
233662306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
233762306a36Sopenharmony_ci	.clkr = {
233862306a36Sopenharmony_ci		.enable_reg = 0x41030,
233962306a36Sopenharmony_ci		.enable_mask = BIT(0),
234062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
234162306a36Sopenharmony_ci			.name = "gcc_usb_hs_phy_cfg_ahb_clk",
234262306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
234362306a36Sopenharmony_ci				&pcnoc_bfdcd_clk_src.clkr.hw,
234462306a36Sopenharmony_ci			},
234562306a36Sopenharmony_ci			.num_parents = 1,
234662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
234762306a36Sopenharmony_ci		}
234862306a36Sopenharmony_ci	}
234962306a36Sopenharmony_ci};
235062306a36Sopenharmony_ci
235162306a36Sopenharmony_cistatic struct clk_branch gcc_usb_hs_system_clk = {
235262306a36Sopenharmony_ci	.halt_reg = 0x41004,
235362306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
235462306a36Sopenharmony_ci	.clkr = {
235562306a36Sopenharmony_ci		.enable_reg = 0x41004,
235662306a36Sopenharmony_ci		.enable_mask = BIT(0),
235762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
235862306a36Sopenharmony_ci			.name = "gcc_usb_hs_system_clk",
235962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
236062306a36Sopenharmony_ci				&usb_hs_system_clk_src.clkr.hw,
236162306a36Sopenharmony_ci			},
236262306a36Sopenharmony_ci			.num_parents = 1,
236362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
236462306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
236562306a36Sopenharmony_ci		}
236662306a36Sopenharmony_ci	}
236762306a36Sopenharmony_ci};
236862306a36Sopenharmony_ci
236962306a36Sopenharmony_cistatic struct clk_branch gcc_venus0_ahb_clk = {
237062306a36Sopenharmony_ci	.halt_reg = 0x4c020,
237162306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
237262306a36Sopenharmony_ci	.clkr = {
237362306a36Sopenharmony_ci		.enable_reg = 0x4c020,
237462306a36Sopenharmony_ci		.enable_mask = BIT(0),
237562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
237662306a36Sopenharmony_ci			.name = "gcc_venus0_ahb_clk",
237762306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
237862306a36Sopenharmony_ci				&pcnoc_bfdcd_clk_src.clkr.hw,
237962306a36Sopenharmony_ci			},
238062306a36Sopenharmony_ci			.num_parents = 1,
238162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
238262306a36Sopenharmony_ci		}
238362306a36Sopenharmony_ci	}
238462306a36Sopenharmony_ci};
238562306a36Sopenharmony_ci
238662306a36Sopenharmony_cistatic struct clk_branch gcc_venus0_axi_clk = {
238762306a36Sopenharmony_ci	.halt_reg = 0x4c024,
238862306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
238962306a36Sopenharmony_ci	.clkr = {
239062306a36Sopenharmony_ci		.enable_reg = 0x4c024,
239162306a36Sopenharmony_ci		.enable_mask = BIT(0),
239262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
239362306a36Sopenharmony_ci			.name = "gcc_venus0_axi_clk",
239462306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
239562306a36Sopenharmony_ci				&system_noc_bfdcd_clk_src.clkr.hw,
239662306a36Sopenharmony_ci			},
239762306a36Sopenharmony_ci			.num_parents = 1,
239862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
239962306a36Sopenharmony_ci		}
240062306a36Sopenharmony_ci	}
240162306a36Sopenharmony_ci};
240262306a36Sopenharmony_ci
240362306a36Sopenharmony_cistatic struct clk_branch gcc_venus0_core0_vcodec0_clk = {
240462306a36Sopenharmony_ci	.halt_reg = 0x4c02c,
240562306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
240662306a36Sopenharmony_ci	.clkr = {
240762306a36Sopenharmony_ci		.enable_reg = 0x4c02c,
240862306a36Sopenharmony_ci		.enable_mask = BIT(0),
240962306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
241062306a36Sopenharmony_ci			.name = "gcc_venus0_core0_vcodec0_clk",
241162306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
241262306a36Sopenharmony_ci				&vcodec0_clk_src.clkr.hw,
241362306a36Sopenharmony_ci			},
241462306a36Sopenharmony_ci			.num_parents = 1,
241562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
241662306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
241762306a36Sopenharmony_ci		}
241862306a36Sopenharmony_ci	}
241962306a36Sopenharmony_ci};
242062306a36Sopenharmony_ci
242162306a36Sopenharmony_cistatic struct clk_branch gcc_venus0_vcodec0_clk = {
242262306a36Sopenharmony_ci	.halt_reg = 0x4c01c,
242362306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
242462306a36Sopenharmony_ci	.clkr = {
242562306a36Sopenharmony_ci		.enable_reg = 0x4c01c,
242662306a36Sopenharmony_ci		.enable_mask = BIT(0),
242762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data) {
242862306a36Sopenharmony_ci			.name = "gcc_venus0_vcodec0_clk",
242962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
243062306a36Sopenharmony_ci				&vcodec0_clk_src.clkr.hw,
243162306a36Sopenharmony_ci			},
243262306a36Sopenharmony_ci			.num_parents = 1,
243362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
243462306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
243562306a36Sopenharmony_ci		}
243662306a36Sopenharmony_ci	}
243762306a36Sopenharmony_ci};
243862306a36Sopenharmony_ci
243962306a36Sopenharmony_cistatic struct gdsc mdss_gdsc = {
244062306a36Sopenharmony_ci	.gdscr = 0x4d078,
244162306a36Sopenharmony_ci	.cxcs = (unsigned int []) { 0x4d080, 0x4d088 },
244262306a36Sopenharmony_ci	.cxc_count = 2,
244362306a36Sopenharmony_ci	.pd = {
244462306a36Sopenharmony_ci		.name = "mdss_gdsc",
244562306a36Sopenharmony_ci	},
244662306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
244762306a36Sopenharmony_ci};
244862306a36Sopenharmony_ci
244962306a36Sopenharmony_cistatic struct gdsc oxili_gdsc = {
245062306a36Sopenharmony_ci	.gdscr = 0x5901c,
245162306a36Sopenharmony_ci	.cxcs = (unsigned int []) { 0x59020 },
245262306a36Sopenharmony_ci	.cxc_count = 1,
245362306a36Sopenharmony_ci	.pd = {
245462306a36Sopenharmony_ci		.name = "oxili_gdsc",
245562306a36Sopenharmony_ci	},
245662306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
245762306a36Sopenharmony_ci};
245862306a36Sopenharmony_ci
245962306a36Sopenharmony_cistatic struct gdsc venus_gdsc = {
246062306a36Sopenharmony_ci	.gdscr = 0x4c018,
246162306a36Sopenharmony_ci	.cxcs = (unsigned int []) { 0x4c024, 0x4c01c },
246262306a36Sopenharmony_ci	.cxc_count = 2,
246362306a36Sopenharmony_ci	.pd = {
246462306a36Sopenharmony_ci		.name = "venus_gdsc",
246562306a36Sopenharmony_ci	},
246662306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
246762306a36Sopenharmony_ci};
246862306a36Sopenharmony_ci
246962306a36Sopenharmony_cistatic struct gdsc venus_core0_gdsc = {
247062306a36Sopenharmony_ci	.gdscr = 0x4c028,
247162306a36Sopenharmony_ci	.cxcs = (unsigned int []) { 0x4c02c },
247262306a36Sopenharmony_ci	.cxc_count = 1,
247362306a36Sopenharmony_ci	.pd = {
247462306a36Sopenharmony_ci		.name = "venus_core0_gdsc",
247562306a36Sopenharmony_ci	},
247662306a36Sopenharmony_ci	.flags = HW_CTRL,
247762306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
247862306a36Sopenharmony_ci};
247962306a36Sopenharmony_ci
248062306a36Sopenharmony_cistatic struct gdsc vfe_gdsc = {
248162306a36Sopenharmony_ci	.gdscr = 0x58034,
248262306a36Sopenharmony_ci	.cxcs = (unsigned int []) { 0x58038, 0x58048, 0x58050 },
248362306a36Sopenharmony_ci	.cxc_count = 3,
248462306a36Sopenharmony_ci	.pd = {
248562306a36Sopenharmony_ci		.name = "vfe_gdsc",
248662306a36Sopenharmony_ci	},
248762306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
248862306a36Sopenharmony_ci};
248962306a36Sopenharmony_ci
249062306a36Sopenharmony_cistatic struct clk_regmap *gcc_msm8909_clocks[] = {
249162306a36Sopenharmony_ci	[GPLL0_EARLY] = &gpll0_early.clkr,
249262306a36Sopenharmony_ci	[GPLL0] = &gpll0.clkr,
249362306a36Sopenharmony_ci	[GPLL1] = &gpll1.clkr,
249462306a36Sopenharmony_ci	[GPLL1_VOTE] = &gpll1_vote,
249562306a36Sopenharmony_ci	[GPLL2_EARLY] = &gpll2_early.clkr,
249662306a36Sopenharmony_ci	[GPLL2] = &gpll2.clkr,
249762306a36Sopenharmony_ci	[BIMC_PLL_EARLY] = &bimc_pll_early.clkr,
249862306a36Sopenharmony_ci	[BIMC_PLL] = &bimc_pll.clkr,
249962306a36Sopenharmony_ci	[APSS_AHB_CLK_SRC] = &apss_ahb_clk_src.clkr,
250062306a36Sopenharmony_ci	[BIMC_DDR_CLK_SRC] = &bimc_ddr_clk_src.clkr,
250162306a36Sopenharmony_ci	[BIMC_GPU_CLK_SRC] = &bimc_gpu_clk_src.clkr,
250262306a36Sopenharmony_ci	[BLSP1_QUP1_I2C_APPS_CLK_SRC] = &blsp1_qup1_i2c_apps_clk_src.clkr,
250362306a36Sopenharmony_ci	[BLSP1_QUP1_SPI_APPS_CLK_SRC] = &blsp1_qup1_spi_apps_clk_src.clkr,
250462306a36Sopenharmony_ci	[BLSP1_QUP2_I2C_APPS_CLK_SRC] = &blsp1_qup2_i2c_apps_clk_src.clkr,
250562306a36Sopenharmony_ci	[BLSP1_QUP2_SPI_APPS_CLK_SRC] = &blsp1_qup2_spi_apps_clk_src.clkr,
250662306a36Sopenharmony_ci	[BLSP1_QUP3_I2C_APPS_CLK_SRC] = &blsp1_qup3_i2c_apps_clk_src.clkr,
250762306a36Sopenharmony_ci	[BLSP1_QUP3_SPI_APPS_CLK_SRC] = &blsp1_qup3_spi_apps_clk_src.clkr,
250862306a36Sopenharmony_ci	[BLSP1_QUP4_I2C_APPS_CLK_SRC] = &blsp1_qup4_i2c_apps_clk_src.clkr,
250962306a36Sopenharmony_ci	[BLSP1_QUP4_SPI_APPS_CLK_SRC] = &blsp1_qup4_spi_apps_clk_src.clkr,
251062306a36Sopenharmony_ci	[BLSP1_QUP5_I2C_APPS_CLK_SRC] = &blsp1_qup5_i2c_apps_clk_src.clkr,
251162306a36Sopenharmony_ci	[BLSP1_QUP5_SPI_APPS_CLK_SRC] = &blsp1_qup5_spi_apps_clk_src.clkr,
251262306a36Sopenharmony_ci	[BLSP1_QUP6_I2C_APPS_CLK_SRC] = &blsp1_qup6_i2c_apps_clk_src.clkr,
251362306a36Sopenharmony_ci	[BLSP1_QUP6_SPI_APPS_CLK_SRC] = &blsp1_qup6_spi_apps_clk_src.clkr,
251462306a36Sopenharmony_ci	[BLSP1_UART1_APPS_CLK_SRC] = &blsp1_uart1_apps_clk_src.clkr,
251562306a36Sopenharmony_ci	[BLSP1_UART2_APPS_CLK_SRC] = &blsp1_uart2_apps_clk_src.clkr,
251662306a36Sopenharmony_ci	[BYTE0_CLK_SRC] = &byte0_clk_src.clkr,
251762306a36Sopenharmony_ci	[CAMSS_GP0_CLK_SRC] = &camss_gp0_clk_src.clkr,
251862306a36Sopenharmony_ci	[CAMSS_GP1_CLK_SRC] = &camss_gp1_clk_src.clkr,
251962306a36Sopenharmony_ci	[CAMSS_TOP_AHB_CLK_SRC] = &camss_top_ahb_clk_src.clkr,
252062306a36Sopenharmony_ci	[CRYPTO_CLK_SRC] = &crypto_clk_src.clkr,
252162306a36Sopenharmony_ci	[CSI0_CLK_SRC] = &csi0_clk_src.clkr,
252262306a36Sopenharmony_ci	[CSI0PHYTIMER_CLK_SRC] = &csi0phytimer_clk_src.clkr,
252362306a36Sopenharmony_ci	[CSI1_CLK_SRC] = &csi1_clk_src.clkr,
252462306a36Sopenharmony_ci	[ESC0_CLK_SRC] = &esc0_clk_src.clkr,
252562306a36Sopenharmony_ci	[GFX3D_CLK_SRC] = &gfx3d_clk_src.clkr,
252662306a36Sopenharmony_ci	[GP1_CLK_SRC] = &gp1_clk_src.clkr,
252762306a36Sopenharmony_ci	[GP2_CLK_SRC] = &gp2_clk_src.clkr,
252862306a36Sopenharmony_ci	[GP3_CLK_SRC] = &gp3_clk_src.clkr,
252962306a36Sopenharmony_ci	[MCLK0_CLK_SRC] = &mclk0_clk_src.clkr,
253062306a36Sopenharmony_ci	[MCLK1_CLK_SRC] = &mclk1_clk_src.clkr,
253162306a36Sopenharmony_ci	[MDP_CLK_SRC] = &mdp_clk_src.clkr,
253262306a36Sopenharmony_ci	[PCLK0_CLK_SRC] = &pclk0_clk_src.clkr,
253362306a36Sopenharmony_ci	[PCNOC_BFDCD_CLK_SRC] = &pcnoc_bfdcd_clk_src.clkr,
253462306a36Sopenharmony_ci	[PDM2_CLK_SRC] = &pdm2_clk_src.clkr,
253562306a36Sopenharmony_ci	[SDCC1_APPS_CLK_SRC] = &sdcc1_apps_clk_src.clkr,
253662306a36Sopenharmony_ci	[SDCC2_APPS_CLK_SRC] = &sdcc2_apps_clk_src.clkr,
253762306a36Sopenharmony_ci	[SYSTEM_NOC_BFDCD_CLK_SRC] = &system_noc_bfdcd_clk_src.clkr,
253862306a36Sopenharmony_ci	[USB_HS_SYSTEM_CLK_SRC] = &usb_hs_system_clk_src.clkr,
253962306a36Sopenharmony_ci	[VCODEC0_CLK_SRC] = &vcodec0_clk_src.clkr,
254062306a36Sopenharmony_ci	[VFE0_CLK_SRC] = &vfe0_clk_src.clkr,
254162306a36Sopenharmony_ci	[VSYNC_CLK_SRC] = &vsync_clk_src.clkr,
254262306a36Sopenharmony_ci	[GCC_APSS_TCU_CLK] = &gcc_apss_tcu_clk.clkr,
254362306a36Sopenharmony_ci	[GCC_BLSP1_AHB_CLK] = &gcc_blsp1_ahb_clk.clkr,
254462306a36Sopenharmony_ci	[GCC_BLSP1_SLEEP_CLK] = &gcc_blsp1_sleep_clk.clkr,
254562306a36Sopenharmony_ci	[GCC_BOOT_ROM_AHB_CLK] = &gcc_boot_rom_ahb_clk.clkr,
254662306a36Sopenharmony_ci	[GCC_CRYPTO_CLK] = &gcc_crypto_clk.clkr,
254762306a36Sopenharmony_ci	[GCC_CRYPTO_AHB_CLK] = &gcc_crypto_ahb_clk.clkr,
254862306a36Sopenharmony_ci	[GCC_CRYPTO_AXI_CLK] = &gcc_crypto_axi_clk.clkr,
254962306a36Sopenharmony_ci	[GCC_GFX_TBU_CLK] = &gcc_gfx_tbu_clk.clkr,
255062306a36Sopenharmony_ci	[GCC_GFX_TCU_CLK] = &gcc_gfx_tcu_clk.clkr,
255162306a36Sopenharmony_ci	[GCC_GTCU_AHB_CLK] = &gcc_gtcu_ahb_clk.clkr,
255262306a36Sopenharmony_ci	[GCC_MDP_TBU_CLK] = &gcc_mdp_tbu_clk.clkr,
255362306a36Sopenharmony_ci	[GCC_PRNG_AHB_CLK] = &gcc_prng_ahb_clk.clkr,
255462306a36Sopenharmony_ci	[GCC_SMMU_CFG_CLK] = &gcc_smmu_cfg_clk.clkr,
255562306a36Sopenharmony_ci	[GCC_VENUS_TBU_CLK] = &gcc_venus_tbu_clk.clkr,
255662306a36Sopenharmony_ci	[GCC_VFE_TBU_CLK] = &gcc_vfe_tbu_clk.clkr,
255762306a36Sopenharmony_ci	[GCC_BIMC_GFX_CLK] = &gcc_bimc_gfx_clk.clkr,
255862306a36Sopenharmony_ci	[GCC_BIMC_GPU_CLK] = &gcc_bimc_gpu_clk.clkr,
255962306a36Sopenharmony_ci	[GCC_BLSP1_QUP1_I2C_APPS_CLK] = &gcc_blsp1_qup1_i2c_apps_clk.clkr,
256062306a36Sopenharmony_ci	[GCC_BLSP1_QUP1_SPI_APPS_CLK] = &gcc_blsp1_qup1_spi_apps_clk.clkr,
256162306a36Sopenharmony_ci	[GCC_BLSP1_QUP2_I2C_APPS_CLK] = &gcc_blsp1_qup2_i2c_apps_clk.clkr,
256262306a36Sopenharmony_ci	[GCC_BLSP1_QUP2_SPI_APPS_CLK] = &gcc_blsp1_qup2_spi_apps_clk.clkr,
256362306a36Sopenharmony_ci	[GCC_BLSP1_QUP3_I2C_APPS_CLK] = &gcc_blsp1_qup3_i2c_apps_clk.clkr,
256462306a36Sopenharmony_ci	[GCC_BLSP1_QUP3_SPI_APPS_CLK] = &gcc_blsp1_qup3_spi_apps_clk.clkr,
256562306a36Sopenharmony_ci	[GCC_BLSP1_QUP4_I2C_APPS_CLK] = &gcc_blsp1_qup4_i2c_apps_clk.clkr,
256662306a36Sopenharmony_ci	[GCC_BLSP1_QUP4_SPI_APPS_CLK] = &gcc_blsp1_qup4_spi_apps_clk.clkr,
256762306a36Sopenharmony_ci	[GCC_BLSP1_QUP5_I2C_APPS_CLK] = &gcc_blsp1_qup5_i2c_apps_clk.clkr,
256862306a36Sopenharmony_ci	[GCC_BLSP1_QUP5_SPI_APPS_CLK] = &gcc_blsp1_qup5_spi_apps_clk.clkr,
256962306a36Sopenharmony_ci	[GCC_BLSP1_QUP6_I2C_APPS_CLK] = &gcc_blsp1_qup6_i2c_apps_clk.clkr,
257062306a36Sopenharmony_ci	[GCC_BLSP1_QUP6_SPI_APPS_CLK] = &gcc_blsp1_qup6_spi_apps_clk.clkr,
257162306a36Sopenharmony_ci	[GCC_BLSP1_UART1_APPS_CLK] = &gcc_blsp1_uart1_apps_clk.clkr,
257262306a36Sopenharmony_ci	[GCC_BLSP1_UART2_APPS_CLK] = &gcc_blsp1_uart2_apps_clk.clkr,
257362306a36Sopenharmony_ci	[GCC_CAMSS_AHB_CLK] = &gcc_camss_ahb_clk.clkr,
257462306a36Sopenharmony_ci	[GCC_CAMSS_CSI0_CLK] = &gcc_camss_csi0_clk.clkr,
257562306a36Sopenharmony_ci	[GCC_CAMSS_CSI0_AHB_CLK] = &gcc_camss_csi0_ahb_clk.clkr,
257662306a36Sopenharmony_ci	[GCC_CAMSS_CSI0PHY_CLK] = &gcc_camss_csi0phy_clk.clkr,
257762306a36Sopenharmony_ci	[GCC_CAMSS_CSI0PHYTIMER_CLK] = &gcc_camss_csi0phytimer_clk.clkr,
257862306a36Sopenharmony_ci	[GCC_CAMSS_CSI0PIX_CLK] = &gcc_camss_csi0pix_clk.clkr,
257962306a36Sopenharmony_ci	[GCC_CAMSS_CSI0RDI_CLK] = &gcc_camss_csi0rdi_clk.clkr,
258062306a36Sopenharmony_ci	[GCC_CAMSS_CSI1_CLK] = &gcc_camss_csi1_clk.clkr,
258162306a36Sopenharmony_ci	[GCC_CAMSS_CSI1_AHB_CLK] = &gcc_camss_csi1_ahb_clk.clkr,
258262306a36Sopenharmony_ci	[GCC_CAMSS_CSI1PHY_CLK] = &gcc_camss_csi1phy_clk.clkr,
258362306a36Sopenharmony_ci	[GCC_CAMSS_CSI1PIX_CLK] = &gcc_camss_csi1pix_clk.clkr,
258462306a36Sopenharmony_ci	[GCC_CAMSS_CSI1RDI_CLK] = &gcc_camss_csi1rdi_clk.clkr,
258562306a36Sopenharmony_ci	[GCC_CAMSS_CSI_VFE0_CLK] = &gcc_camss_csi_vfe0_clk.clkr,
258662306a36Sopenharmony_ci	[GCC_CAMSS_GP0_CLK] = &gcc_camss_gp0_clk.clkr,
258762306a36Sopenharmony_ci	[GCC_CAMSS_GP1_CLK] = &gcc_camss_gp1_clk.clkr,
258862306a36Sopenharmony_ci	[GCC_CAMSS_ISPIF_AHB_CLK] = &gcc_camss_ispif_ahb_clk.clkr,
258962306a36Sopenharmony_ci	[GCC_CAMSS_MCLK0_CLK] = &gcc_camss_mclk0_clk.clkr,
259062306a36Sopenharmony_ci	[GCC_CAMSS_MCLK1_CLK] = &gcc_camss_mclk1_clk.clkr,
259162306a36Sopenharmony_ci	[GCC_CAMSS_TOP_AHB_CLK] = &gcc_camss_top_ahb_clk.clkr,
259262306a36Sopenharmony_ci	[GCC_CAMSS_VFE0_CLK] = &gcc_camss_vfe0_clk.clkr,
259362306a36Sopenharmony_ci	[GCC_CAMSS_VFE_AHB_CLK] = &gcc_camss_vfe_ahb_clk.clkr,
259462306a36Sopenharmony_ci	[GCC_CAMSS_VFE_AXI_CLK] = &gcc_camss_vfe_axi_clk.clkr,
259562306a36Sopenharmony_ci	[GCC_GP1_CLK] = &gcc_gp1_clk.clkr,
259662306a36Sopenharmony_ci	[GCC_GP2_CLK] = &gcc_gp2_clk.clkr,
259762306a36Sopenharmony_ci	[GCC_GP3_CLK] = &gcc_gp3_clk.clkr,
259862306a36Sopenharmony_ci	[GCC_MDSS_AHB_CLK] = &gcc_mdss_ahb_clk.clkr,
259962306a36Sopenharmony_ci	[GCC_MDSS_AXI_CLK] = &gcc_mdss_axi_clk.clkr,
260062306a36Sopenharmony_ci	[GCC_MDSS_BYTE0_CLK] = &gcc_mdss_byte0_clk.clkr,
260162306a36Sopenharmony_ci	[GCC_MDSS_ESC0_CLK] = &gcc_mdss_esc0_clk.clkr,
260262306a36Sopenharmony_ci	[GCC_MDSS_MDP_CLK] = &gcc_mdss_mdp_clk.clkr,
260362306a36Sopenharmony_ci	[GCC_MDSS_PCLK0_CLK] = &gcc_mdss_pclk0_clk.clkr,
260462306a36Sopenharmony_ci	[GCC_MDSS_VSYNC_CLK] = &gcc_mdss_vsync_clk.clkr,
260562306a36Sopenharmony_ci	[GCC_MSS_CFG_AHB_CLK] = &gcc_mss_cfg_ahb_clk.clkr,
260662306a36Sopenharmony_ci	[GCC_MSS_Q6_BIMC_AXI_CLK] = &gcc_mss_q6_bimc_axi_clk.clkr,
260762306a36Sopenharmony_ci	[GCC_OXILI_AHB_CLK] = &gcc_oxili_ahb_clk.clkr,
260862306a36Sopenharmony_ci	[GCC_OXILI_GFX3D_CLK] = &gcc_oxili_gfx3d_clk.clkr,
260962306a36Sopenharmony_ci	[GCC_PDM2_CLK] = &gcc_pdm2_clk.clkr,
261062306a36Sopenharmony_ci	[GCC_PDM_AHB_CLK] = &gcc_pdm_ahb_clk.clkr,
261162306a36Sopenharmony_ci	[GCC_SDCC1_AHB_CLK] = &gcc_sdcc1_ahb_clk.clkr,
261262306a36Sopenharmony_ci	[GCC_SDCC1_APPS_CLK] = &gcc_sdcc1_apps_clk.clkr,
261362306a36Sopenharmony_ci	[GCC_SDCC2_AHB_CLK] = &gcc_sdcc2_ahb_clk.clkr,
261462306a36Sopenharmony_ci	[GCC_SDCC2_APPS_CLK] = &gcc_sdcc2_apps_clk.clkr,
261562306a36Sopenharmony_ci	[GCC_USB2A_PHY_SLEEP_CLK] = &gcc_usb2a_phy_sleep_clk.clkr,
261662306a36Sopenharmony_ci	[GCC_USB_HS_AHB_CLK] = &gcc_usb_hs_ahb_clk.clkr,
261762306a36Sopenharmony_ci	[GCC_USB_HS_PHY_CFG_AHB_CLK] = &gcc_usb_hs_phy_cfg_ahb_clk.clkr,
261862306a36Sopenharmony_ci	[GCC_USB_HS_SYSTEM_CLK] = &gcc_usb_hs_system_clk.clkr,
261962306a36Sopenharmony_ci	[GCC_VENUS0_AHB_CLK] = &gcc_venus0_ahb_clk.clkr,
262062306a36Sopenharmony_ci	[GCC_VENUS0_AXI_CLK] = &gcc_venus0_axi_clk.clkr,
262162306a36Sopenharmony_ci	[GCC_VENUS0_CORE0_VCODEC0_CLK] = &gcc_venus0_core0_vcodec0_clk.clkr,
262262306a36Sopenharmony_ci	[GCC_VENUS0_VCODEC0_CLK] = &gcc_venus0_vcodec0_clk.clkr,
262362306a36Sopenharmony_ci};
262462306a36Sopenharmony_ci
262562306a36Sopenharmony_cistatic struct gdsc *gcc_msm8909_gdscs[] = {
262662306a36Sopenharmony_ci	[MDSS_GDSC] = &mdss_gdsc,
262762306a36Sopenharmony_ci	[OXILI_GDSC] = &oxili_gdsc,
262862306a36Sopenharmony_ci	[VENUS_GDSC] = &venus_gdsc,
262962306a36Sopenharmony_ci	[VENUS_CORE0_GDSC] = &venus_core0_gdsc,
263062306a36Sopenharmony_ci	[VFE_GDSC] = &vfe_gdsc,
263162306a36Sopenharmony_ci};
263262306a36Sopenharmony_ci
263362306a36Sopenharmony_cistatic const struct qcom_reset_map gcc_msm8909_resets[] = {
263462306a36Sopenharmony_ci	[GCC_AUDIO_CORE_BCR] = { 0x1c008 },
263562306a36Sopenharmony_ci	[GCC_BLSP1_BCR] = { 0x01000 },
263662306a36Sopenharmony_ci	[GCC_BLSP1_QUP1_BCR] = { 0x02000 },
263762306a36Sopenharmony_ci	[GCC_BLSP1_QUP2_BCR] = { 0x03008 },
263862306a36Sopenharmony_ci	[GCC_BLSP1_QUP3_BCR] = { 0x04018 },
263962306a36Sopenharmony_ci	[GCC_BLSP1_QUP4_BCR] = { 0x05018 },
264062306a36Sopenharmony_ci	[GCC_BLSP1_QUP5_BCR] = { 0x06018 },
264162306a36Sopenharmony_ci	[GCC_BLSP1_QUP6_BCR] = { 0x07018 },
264262306a36Sopenharmony_ci	[GCC_BLSP1_UART1_BCR] = { 0x02038 },
264362306a36Sopenharmony_ci	[GCC_BLSP1_UART2_BCR] = { 0x03028 },
264462306a36Sopenharmony_ci	[GCC_CAMSS_CSI0_BCR] = { 0x4e038 },
264562306a36Sopenharmony_ci	[GCC_CAMSS_CSI0PHY_BCR] = { 0x4e044 },
264662306a36Sopenharmony_ci	[GCC_CAMSS_CSI0PIX_BCR] = { 0x4e054 },
264762306a36Sopenharmony_ci	[GCC_CAMSS_CSI0RDI_BCR] = { 0x4e04c },
264862306a36Sopenharmony_ci	[GCC_CAMSS_CSI1_BCR] = { 0x4f038 },
264962306a36Sopenharmony_ci	[GCC_CAMSS_CSI1PHY_BCR] = { 0x4f044 },
265062306a36Sopenharmony_ci	[GCC_CAMSS_CSI1PIX_BCR] = { 0x4f054 },
265162306a36Sopenharmony_ci	[GCC_CAMSS_CSI1RDI_BCR] = { 0x4f04c },
265262306a36Sopenharmony_ci	[GCC_CAMSS_CSI_VFE0_BCR] = { 0x5804c },
265362306a36Sopenharmony_ci	[GCC_CAMSS_GP0_BCR] = { 0x54014 },
265462306a36Sopenharmony_ci	[GCC_CAMSS_GP1_BCR] = { 0x55014 },
265562306a36Sopenharmony_ci	[GCC_CAMSS_ISPIF_BCR] = { 0x50000 },
265662306a36Sopenharmony_ci	[GCC_CAMSS_MCLK0_BCR] = { 0x52014 },
265762306a36Sopenharmony_ci	[GCC_CAMSS_MCLK1_BCR] = { 0x53014 },
265862306a36Sopenharmony_ci	[GCC_CAMSS_PHY0_BCR] = { 0x4e018 },
265962306a36Sopenharmony_ci	[GCC_CAMSS_TOP_BCR] = { 0x56000 },
266062306a36Sopenharmony_ci	[GCC_CAMSS_TOP_AHB_BCR] = { 0x5a018 },
266162306a36Sopenharmony_ci	[GCC_CAMSS_VFE_BCR] = { 0x58030 },
266262306a36Sopenharmony_ci	[GCC_CRYPTO_BCR] = { 0x16000 },
266362306a36Sopenharmony_ci	[GCC_MDSS_BCR] = { 0x4d074 },
266462306a36Sopenharmony_ci	[GCC_OXILI_BCR] = { 0x59018 },
266562306a36Sopenharmony_ci	[GCC_PDM_BCR] = { 0x44000 },
266662306a36Sopenharmony_ci	[GCC_PRNG_BCR] = { 0x13000 },
266762306a36Sopenharmony_ci	[GCC_QUSB2_PHY_BCR] = { 0x4103c },
266862306a36Sopenharmony_ci	[GCC_SDCC1_BCR] = { 0x42000 },
266962306a36Sopenharmony_ci	[GCC_SDCC2_BCR] = { 0x43000 },
267062306a36Sopenharmony_ci	[GCC_ULT_AUDIO_BCR] = { 0x1c0b4 },
267162306a36Sopenharmony_ci	[GCC_USB2A_PHY_BCR] = { 0x41028 },
267262306a36Sopenharmony_ci	[GCC_USB2_HS_PHY_ONLY_BCR] = { .reg = 0x41034, .udelay = 15 },
267362306a36Sopenharmony_ci	[GCC_USB_HS_BCR] = { 0x41000 },
267462306a36Sopenharmony_ci	[GCC_VENUS0_BCR] = { 0x4c014 },
267562306a36Sopenharmony_ci	/* Subsystem Restart */
267662306a36Sopenharmony_ci	[GCC_MSS_RESTART] = { 0x3e000 },
267762306a36Sopenharmony_ci};
267862306a36Sopenharmony_ci
267962306a36Sopenharmony_cistatic const struct regmap_config gcc_msm8909_regmap_config = {
268062306a36Sopenharmony_ci	.reg_bits	= 32,
268162306a36Sopenharmony_ci	.reg_stride	= 4,
268262306a36Sopenharmony_ci	.val_bits	= 32,
268362306a36Sopenharmony_ci	.max_register	= 0x80000,
268462306a36Sopenharmony_ci	.fast_io	= true,
268562306a36Sopenharmony_ci};
268662306a36Sopenharmony_ci
268762306a36Sopenharmony_cistatic const struct qcom_cc_desc gcc_msm8909_desc = {
268862306a36Sopenharmony_ci	.config = &gcc_msm8909_regmap_config,
268962306a36Sopenharmony_ci	.clks = gcc_msm8909_clocks,
269062306a36Sopenharmony_ci	.num_clks = ARRAY_SIZE(gcc_msm8909_clocks),
269162306a36Sopenharmony_ci	.resets = gcc_msm8909_resets,
269262306a36Sopenharmony_ci	.num_resets = ARRAY_SIZE(gcc_msm8909_resets),
269362306a36Sopenharmony_ci	.gdscs = gcc_msm8909_gdscs,
269462306a36Sopenharmony_ci	.num_gdscs = ARRAY_SIZE(gcc_msm8909_gdscs),
269562306a36Sopenharmony_ci};
269662306a36Sopenharmony_ci
269762306a36Sopenharmony_cistatic const struct of_device_id gcc_msm8909_match_table[] = {
269862306a36Sopenharmony_ci	{ .compatible = "qcom,gcc-msm8909" },
269962306a36Sopenharmony_ci	{ }
270062306a36Sopenharmony_ci};
270162306a36Sopenharmony_ciMODULE_DEVICE_TABLE(of, gcc_msm8909_match_table);
270262306a36Sopenharmony_ci
270362306a36Sopenharmony_cistatic int gcc_msm8909_probe(struct platform_device *pdev)
270462306a36Sopenharmony_ci{
270562306a36Sopenharmony_ci	return qcom_cc_probe(pdev, &gcc_msm8909_desc);
270662306a36Sopenharmony_ci}
270762306a36Sopenharmony_ci
270862306a36Sopenharmony_cistatic struct platform_driver gcc_msm8909_driver = {
270962306a36Sopenharmony_ci	.probe		= gcc_msm8909_probe,
271062306a36Sopenharmony_ci	.driver		= {
271162306a36Sopenharmony_ci		.name	= "gcc-msm8909",
271262306a36Sopenharmony_ci		.of_match_table = gcc_msm8909_match_table,
271362306a36Sopenharmony_ci	},
271462306a36Sopenharmony_ci};
271562306a36Sopenharmony_ci
271662306a36Sopenharmony_cistatic int __init gcc_msm8909_init(void)
271762306a36Sopenharmony_ci{
271862306a36Sopenharmony_ci	return platform_driver_register(&gcc_msm8909_driver);
271962306a36Sopenharmony_ci}
272062306a36Sopenharmony_cicore_initcall(gcc_msm8909_init);
272162306a36Sopenharmony_ci
272262306a36Sopenharmony_cistatic void __exit gcc_msm8909_exit(void)
272362306a36Sopenharmony_ci{
272462306a36Sopenharmony_ci	platform_driver_unregister(&gcc_msm8909_driver);
272562306a36Sopenharmony_ci}
272662306a36Sopenharmony_cimodule_exit(gcc_msm8909_exit);
272762306a36Sopenharmony_ci
272862306a36Sopenharmony_ciMODULE_DESCRIPTION("Qualcomm GCC MSM8909 Driver");
272962306a36Sopenharmony_ciMODULE_LICENSE("GPL");
273062306a36Sopenharmony_ciMODULE_ALIAS("platform:gcc-msm8909");
2731