162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only
262306a36Sopenharmony_ci/*x
362306a36Sopenharmony_ci * Copyright (c) 2015, The Linux Foundation. All rights reserved.
462306a36Sopenharmony_ci */
562306a36Sopenharmony_ci
662306a36Sopenharmony_ci#include <linux/kernel.h>
762306a36Sopenharmony_ci#include <linux/bitops.h>
862306a36Sopenharmony_ci#include <linux/err.h>
962306a36Sopenharmony_ci#include <linux/platform_device.h>
1062306a36Sopenharmony_ci#include <linux/module.h>
1162306a36Sopenharmony_ci#include <linux/of.h>
1262306a36Sopenharmony_ci#include <linux/clk-provider.h>
1362306a36Sopenharmony_ci#include <linux/regmap.h>
1462306a36Sopenharmony_ci#include <linux/reset-controller.h>
1562306a36Sopenharmony_ci#include <linux/clk.h>
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ci#include <dt-bindings/clock/qcom,mmcc-msm8996.h>
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ci#include "common.h"
2062306a36Sopenharmony_ci#include "clk-regmap.h"
2162306a36Sopenharmony_ci#include "clk-regmap-divider.h"
2262306a36Sopenharmony_ci#include "clk-alpha-pll.h"
2362306a36Sopenharmony_ci#include "clk-rcg.h"
2462306a36Sopenharmony_ci#include "clk-branch.h"
2562306a36Sopenharmony_ci#include "reset.h"
2662306a36Sopenharmony_ci#include "gdsc.h"
2762306a36Sopenharmony_ci
2862306a36Sopenharmony_cienum {
2962306a36Sopenharmony_ci	P_XO,
3062306a36Sopenharmony_ci	P_MMPLL0,
3162306a36Sopenharmony_ci	P_GPLL0,
3262306a36Sopenharmony_ci	P_GPLL0_DIV,
3362306a36Sopenharmony_ci	P_MMPLL1,
3462306a36Sopenharmony_ci	P_MMPLL9,
3562306a36Sopenharmony_ci	P_MMPLL2,
3662306a36Sopenharmony_ci	P_MMPLL8,
3762306a36Sopenharmony_ci	P_MMPLL3,
3862306a36Sopenharmony_ci	P_DSI0PLL,
3962306a36Sopenharmony_ci	P_DSI1PLL,
4062306a36Sopenharmony_ci	P_MMPLL5,
4162306a36Sopenharmony_ci	P_HDMIPLL,
4262306a36Sopenharmony_ci	P_DSI0PLL_BYTE,
4362306a36Sopenharmony_ci	P_DSI1PLL_BYTE,
4462306a36Sopenharmony_ci	P_MMPLL4,
4562306a36Sopenharmony_ci};
4662306a36Sopenharmony_ci
4762306a36Sopenharmony_cistatic struct clk_fixed_factor gpll0_div = {
4862306a36Sopenharmony_ci	.mult = 1,
4962306a36Sopenharmony_ci	.div = 2,
5062306a36Sopenharmony_ci	.hw.init = &(struct clk_init_data){
5162306a36Sopenharmony_ci		.name = "gpll0_div",
5262306a36Sopenharmony_ci		.parent_data = (const struct clk_parent_data[]){
5362306a36Sopenharmony_ci			{ .fw_name = "gpll0", .name = "gpll0" },
5462306a36Sopenharmony_ci		},
5562306a36Sopenharmony_ci		.num_parents = 1,
5662306a36Sopenharmony_ci		.ops = &clk_fixed_factor_ops,
5762306a36Sopenharmony_ci	},
5862306a36Sopenharmony_ci};
5962306a36Sopenharmony_ci
6062306a36Sopenharmony_cistatic struct pll_vco mmpll_p_vco[] = {
6162306a36Sopenharmony_ci	{ 250000000, 500000000, 3 },
6262306a36Sopenharmony_ci	{ 500000000, 1000000000, 2 },
6362306a36Sopenharmony_ci	{ 1000000000, 1500000000, 1 },
6462306a36Sopenharmony_ci	{ 1500000000, 2000000000, 0 },
6562306a36Sopenharmony_ci};
6662306a36Sopenharmony_ci
6762306a36Sopenharmony_cistatic struct pll_vco mmpll_gfx_vco[] = {
6862306a36Sopenharmony_ci	{ 400000000, 1000000000, 2 },
6962306a36Sopenharmony_ci	{ 1000000000, 1500000000, 1 },
7062306a36Sopenharmony_ci	{ 1500000000, 2000000000, 0 },
7162306a36Sopenharmony_ci};
7262306a36Sopenharmony_ci
7362306a36Sopenharmony_cistatic struct pll_vco mmpll_t_vco[] = {
7462306a36Sopenharmony_ci	{ 500000000, 1500000000, 0 },
7562306a36Sopenharmony_ci};
7662306a36Sopenharmony_ci
7762306a36Sopenharmony_cistatic struct clk_alpha_pll mmpll0_early = {
7862306a36Sopenharmony_ci	.offset = 0x0,
7962306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
8062306a36Sopenharmony_ci	.vco_table = mmpll_p_vco,
8162306a36Sopenharmony_ci	.num_vco = ARRAY_SIZE(mmpll_p_vco),
8262306a36Sopenharmony_ci	.clkr = {
8362306a36Sopenharmony_ci		.enable_reg = 0x100,
8462306a36Sopenharmony_ci		.enable_mask = BIT(0),
8562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
8662306a36Sopenharmony_ci			.name = "mmpll0_early",
8762306a36Sopenharmony_ci			.parent_data = (const struct clk_parent_data[]){
8862306a36Sopenharmony_ci				{ .fw_name = "xo", .name = "xo_board" },
8962306a36Sopenharmony_ci			},
9062306a36Sopenharmony_ci			.num_parents = 1,
9162306a36Sopenharmony_ci			.ops = &clk_alpha_pll_ops,
9262306a36Sopenharmony_ci		},
9362306a36Sopenharmony_ci	},
9462306a36Sopenharmony_ci};
9562306a36Sopenharmony_ci
9662306a36Sopenharmony_cistatic struct clk_alpha_pll_postdiv mmpll0 = {
9762306a36Sopenharmony_ci	.offset = 0x0,
9862306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
9962306a36Sopenharmony_ci	.width = 4,
10062306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
10162306a36Sopenharmony_ci		.name = "mmpll0",
10262306a36Sopenharmony_ci		.parent_hws = (const struct clk_hw*[]){
10362306a36Sopenharmony_ci			&mmpll0_early.clkr.hw
10462306a36Sopenharmony_ci		},
10562306a36Sopenharmony_ci		.num_parents = 1,
10662306a36Sopenharmony_ci		.ops = &clk_alpha_pll_postdiv_ops,
10762306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
10862306a36Sopenharmony_ci	},
10962306a36Sopenharmony_ci};
11062306a36Sopenharmony_ci
11162306a36Sopenharmony_cistatic struct clk_alpha_pll mmpll1_early = {
11262306a36Sopenharmony_ci	.offset = 0x30,
11362306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
11462306a36Sopenharmony_ci	.vco_table = mmpll_p_vco,
11562306a36Sopenharmony_ci	.num_vco = ARRAY_SIZE(mmpll_p_vco),
11662306a36Sopenharmony_ci	.clkr = {
11762306a36Sopenharmony_ci		.enable_reg = 0x100,
11862306a36Sopenharmony_ci		.enable_mask = BIT(1),
11962306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
12062306a36Sopenharmony_ci			.name = "mmpll1_early",
12162306a36Sopenharmony_ci			.parent_data = (const struct clk_parent_data[]){
12262306a36Sopenharmony_ci				{ .fw_name = "xo", .name = "xo_board" },
12362306a36Sopenharmony_ci			},
12462306a36Sopenharmony_ci			.num_parents = 1,
12562306a36Sopenharmony_ci			.ops = &clk_alpha_pll_ops,
12662306a36Sopenharmony_ci		}
12762306a36Sopenharmony_ci	},
12862306a36Sopenharmony_ci};
12962306a36Sopenharmony_ci
13062306a36Sopenharmony_cistatic struct clk_alpha_pll_postdiv mmpll1 = {
13162306a36Sopenharmony_ci	.offset = 0x30,
13262306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
13362306a36Sopenharmony_ci	.width = 4,
13462306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
13562306a36Sopenharmony_ci		.name = "mmpll1",
13662306a36Sopenharmony_ci		.parent_hws = (const struct clk_hw*[]){
13762306a36Sopenharmony_ci			&mmpll1_early.clkr.hw
13862306a36Sopenharmony_ci		},
13962306a36Sopenharmony_ci		.num_parents = 1,
14062306a36Sopenharmony_ci		.ops = &clk_alpha_pll_postdiv_ops,
14162306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
14262306a36Sopenharmony_ci	},
14362306a36Sopenharmony_ci};
14462306a36Sopenharmony_ci
14562306a36Sopenharmony_cistatic struct clk_alpha_pll mmpll2_early = {
14662306a36Sopenharmony_ci	.offset = 0x4100,
14762306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
14862306a36Sopenharmony_ci	.vco_table = mmpll_gfx_vco,
14962306a36Sopenharmony_ci	.num_vco = ARRAY_SIZE(mmpll_gfx_vco),
15062306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
15162306a36Sopenharmony_ci		.name = "mmpll2_early",
15262306a36Sopenharmony_ci		.parent_data = (const struct clk_parent_data[]){
15362306a36Sopenharmony_ci			{ .fw_name = "xo", .name = "xo_board" },
15462306a36Sopenharmony_ci		},
15562306a36Sopenharmony_ci		.num_parents = 1,
15662306a36Sopenharmony_ci		.ops = &clk_alpha_pll_ops,
15762306a36Sopenharmony_ci	},
15862306a36Sopenharmony_ci};
15962306a36Sopenharmony_ci
16062306a36Sopenharmony_cistatic struct clk_alpha_pll_postdiv mmpll2 = {
16162306a36Sopenharmony_ci	.offset = 0x4100,
16262306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
16362306a36Sopenharmony_ci	.width = 4,
16462306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
16562306a36Sopenharmony_ci		.name = "mmpll2",
16662306a36Sopenharmony_ci		.parent_hws = (const struct clk_hw*[]){
16762306a36Sopenharmony_ci			&mmpll2_early.clkr.hw
16862306a36Sopenharmony_ci		},
16962306a36Sopenharmony_ci		.num_parents = 1,
17062306a36Sopenharmony_ci		.ops = &clk_alpha_pll_postdiv_ops,
17162306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
17262306a36Sopenharmony_ci	},
17362306a36Sopenharmony_ci};
17462306a36Sopenharmony_ci
17562306a36Sopenharmony_cistatic struct clk_alpha_pll mmpll3_early = {
17662306a36Sopenharmony_ci	.offset = 0x60,
17762306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
17862306a36Sopenharmony_ci	.vco_table = mmpll_p_vco,
17962306a36Sopenharmony_ci	.num_vco = ARRAY_SIZE(mmpll_p_vco),
18062306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
18162306a36Sopenharmony_ci		.name = "mmpll3_early",
18262306a36Sopenharmony_ci		.parent_data = (const struct clk_parent_data[]){
18362306a36Sopenharmony_ci			{ .fw_name = "xo", .name = "xo_board" },
18462306a36Sopenharmony_ci		},
18562306a36Sopenharmony_ci		.num_parents = 1,
18662306a36Sopenharmony_ci		.ops = &clk_alpha_pll_ops,
18762306a36Sopenharmony_ci	},
18862306a36Sopenharmony_ci};
18962306a36Sopenharmony_ci
19062306a36Sopenharmony_cistatic struct clk_alpha_pll_postdiv mmpll3 = {
19162306a36Sopenharmony_ci	.offset = 0x60,
19262306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
19362306a36Sopenharmony_ci	.width = 4,
19462306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
19562306a36Sopenharmony_ci		.name = "mmpll3",
19662306a36Sopenharmony_ci		.parent_hws = (const struct clk_hw*[]){
19762306a36Sopenharmony_ci			&mmpll3_early.clkr.hw
19862306a36Sopenharmony_ci		},
19962306a36Sopenharmony_ci		.num_parents = 1,
20062306a36Sopenharmony_ci		.ops = &clk_alpha_pll_postdiv_ops,
20162306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
20262306a36Sopenharmony_ci	},
20362306a36Sopenharmony_ci};
20462306a36Sopenharmony_ci
20562306a36Sopenharmony_cistatic struct clk_alpha_pll mmpll4_early = {
20662306a36Sopenharmony_ci	.offset = 0x90,
20762306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
20862306a36Sopenharmony_ci	.vco_table = mmpll_t_vco,
20962306a36Sopenharmony_ci	.num_vco = ARRAY_SIZE(mmpll_t_vco),
21062306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
21162306a36Sopenharmony_ci		.name = "mmpll4_early",
21262306a36Sopenharmony_ci		.parent_data = (const struct clk_parent_data[]){
21362306a36Sopenharmony_ci			{ .fw_name = "xo", .name = "xo_board" },
21462306a36Sopenharmony_ci		},
21562306a36Sopenharmony_ci		.num_parents = 1,
21662306a36Sopenharmony_ci		.ops = &clk_alpha_pll_ops,
21762306a36Sopenharmony_ci	},
21862306a36Sopenharmony_ci};
21962306a36Sopenharmony_ci
22062306a36Sopenharmony_cistatic struct clk_alpha_pll_postdiv mmpll4 = {
22162306a36Sopenharmony_ci	.offset = 0x90,
22262306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
22362306a36Sopenharmony_ci	.width = 2,
22462306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
22562306a36Sopenharmony_ci		.name = "mmpll4",
22662306a36Sopenharmony_ci		.parent_hws = (const struct clk_hw*[]){
22762306a36Sopenharmony_ci			&mmpll4_early.clkr.hw
22862306a36Sopenharmony_ci		},
22962306a36Sopenharmony_ci		.num_parents = 1,
23062306a36Sopenharmony_ci		.ops = &clk_alpha_pll_postdiv_ops,
23162306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
23262306a36Sopenharmony_ci	},
23362306a36Sopenharmony_ci};
23462306a36Sopenharmony_ci
23562306a36Sopenharmony_cistatic struct clk_alpha_pll mmpll5_early = {
23662306a36Sopenharmony_ci	.offset = 0xc0,
23762306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
23862306a36Sopenharmony_ci	.vco_table = mmpll_p_vco,
23962306a36Sopenharmony_ci	.num_vco = ARRAY_SIZE(mmpll_p_vco),
24062306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
24162306a36Sopenharmony_ci		.name = "mmpll5_early",
24262306a36Sopenharmony_ci		.parent_data = (const struct clk_parent_data[]){
24362306a36Sopenharmony_ci			{ .fw_name = "xo", .name = "xo_board" },
24462306a36Sopenharmony_ci		},
24562306a36Sopenharmony_ci		.num_parents = 1,
24662306a36Sopenharmony_ci		.ops = &clk_alpha_pll_ops,
24762306a36Sopenharmony_ci	},
24862306a36Sopenharmony_ci};
24962306a36Sopenharmony_ci
25062306a36Sopenharmony_cistatic struct clk_alpha_pll_postdiv mmpll5 = {
25162306a36Sopenharmony_ci	.offset = 0xc0,
25262306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
25362306a36Sopenharmony_ci	.width = 4,
25462306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
25562306a36Sopenharmony_ci		.name = "mmpll5",
25662306a36Sopenharmony_ci		.parent_hws = (const struct clk_hw*[]){
25762306a36Sopenharmony_ci			&mmpll5_early.clkr.hw
25862306a36Sopenharmony_ci		},
25962306a36Sopenharmony_ci		.num_parents = 1,
26062306a36Sopenharmony_ci		.ops = &clk_alpha_pll_postdiv_ops,
26162306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
26262306a36Sopenharmony_ci	},
26362306a36Sopenharmony_ci};
26462306a36Sopenharmony_ci
26562306a36Sopenharmony_cistatic struct clk_alpha_pll mmpll8_early = {
26662306a36Sopenharmony_ci	.offset = 0x4130,
26762306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
26862306a36Sopenharmony_ci	.vco_table = mmpll_gfx_vco,
26962306a36Sopenharmony_ci	.num_vco = ARRAY_SIZE(mmpll_gfx_vco),
27062306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
27162306a36Sopenharmony_ci		.name = "mmpll8_early",
27262306a36Sopenharmony_ci		.parent_data = (const struct clk_parent_data[]){
27362306a36Sopenharmony_ci			{ .fw_name = "xo", .name = "xo_board" },
27462306a36Sopenharmony_ci		},
27562306a36Sopenharmony_ci		.num_parents = 1,
27662306a36Sopenharmony_ci		.ops = &clk_alpha_pll_ops,
27762306a36Sopenharmony_ci	},
27862306a36Sopenharmony_ci};
27962306a36Sopenharmony_ci
28062306a36Sopenharmony_cistatic struct clk_alpha_pll_postdiv mmpll8 = {
28162306a36Sopenharmony_ci	.offset = 0x4130,
28262306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
28362306a36Sopenharmony_ci	.width = 4,
28462306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
28562306a36Sopenharmony_ci		.name = "mmpll8",
28662306a36Sopenharmony_ci		.parent_hws = (const struct clk_hw*[]){
28762306a36Sopenharmony_ci			&mmpll8_early.clkr.hw
28862306a36Sopenharmony_ci		},
28962306a36Sopenharmony_ci		.num_parents = 1,
29062306a36Sopenharmony_ci		.ops = &clk_alpha_pll_postdiv_ops,
29162306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
29262306a36Sopenharmony_ci	},
29362306a36Sopenharmony_ci};
29462306a36Sopenharmony_ci
29562306a36Sopenharmony_cistatic struct clk_alpha_pll mmpll9_early = {
29662306a36Sopenharmony_ci	.offset = 0x4200,
29762306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
29862306a36Sopenharmony_ci	.vco_table = mmpll_t_vco,
29962306a36Sopenharmony_ci	.num_vco = ARRAY_SIZE(mmpll_t_vco),
30062306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
30162306a36Sopenharmony_ci		.name = "mmpll9_early",
30262306a36Sopenharmony_ci		.parent_data = (const struct clk_parent_data[]){
30362306a36Sopenharmony_ci			{ .fw_name = "xo", .name = "xo_board" },
30462306a36Sopenharmony_ci		},
30562306a36Sopenharmony_ci		.num_parents = 1,
30662306a36Sopenharmony_ci		.ops = &clk_alpha_pll_ops,
30762306a36Sopenharmony_ci	},
30862306a36Sopenharmony_ci};
30962306a36Sopenharmony_ci
31062306a36Sopenharmony_cistatic struct clk_alpha_pll_postdiv mmpll9 = {
31162306a36Sopenharmony_ci	.offset = 0x4200,
31262306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
31362306a36Sopenharmony_ci	.width = 2,
31462306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
31562306a36Sopenharmony_ci		.name = "mmpll9",
31662306a36Sopenharmony_ci		.parent_hws = (const struct clk_hw*[]){
31762306a36Sopenharmony_ci			&mmpll9_early.clkr.hw
31862306a36Sopenharmony_ci		},
31962306a36Sopenharmony_ci		.num_parents = 1,
32062306a36Sopenharmony_ci		.ops = &clk_alpha_pll_postdiv_ops,
32162306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
32262306a36Sopenharmony_ci	},
32362306a36Sopenharmony_ci};
32462306a36Sopenharmony_ci
32562306a36Sopenharmony_cistatic const struct parent_map mmss_xo_hdmi_map[] = {
32662306a36Sopenharmony_ci	{ P_XO, 0 },
32762306a36Sopenharmony_ci	{ P_HDMIPLL, 1 }
32862306a36Sopenharmony_ci};
32962306a36Sopenharmony_ci
33062306a36Sopenharmony_cistatic const struct clk_parent_data mmss_xo_hdmi[] = {
33162306a36Sopenharmony_ci	{ .fw_name = "xo", .name = "xo_board" },
33262306a36Sopenharmony_ci	{ .fw_name = "hdmipll", .name = "hdmipll" }
33362306a36Sopenharmony_ci};
33462306a36Sopenharmony_ci
33562306a36Sopenharmony_cistatic const struct parent_map mmss_xo_dsi0pll_dsi1pll_map[] = {
33662306a36Sopenharmony_ci	{ P_XO, 0 },
33762306a36Sopenharmony_ci	{ P_DSI0PLL, 1 },
33862306a36Sopenharmony_ci	{ P_DSI1PLL, 2 }
33962306a36Sopenharmony_ci};
34062306a36Sopenharmony_ci
34162306a36Sopenharmony_cistatic const struct clk_parent_data mmss_xo_dsi0pll_dsi1pll[] = {
34262306a36Sopenharmony_ci	{ .fw_name = "xo", .name = "xo_board" },
34362306a36Sopenharmony_ci	{ .fw_name = "dsi0pll", .name = "dsi0pll" },
34462306a36Sopenharmony_ci	{ .fw_name = "dsi1pll", .name = "dsi1pll" }
34562306a36Sopenharmony_ci};
34662306a36Sopenharmony_ci
34762306a36Sopenharmony_cistatic const struct parent_map mmss_xo_gpll0_gpll0_div_map[] = {
34862306a36Sopenharmony_ci	{ P_XO, 0 },
34962306a36Sopenharmony_ci	{ P_GPLL0, 5 },
35062306a36Sopenharmony_ci	{ P_GPLL0_DIV, 6 }
35162306a36Sopenharmony_ci};
35262306a36Sopenharmony_ci
35362306a36Sopenharmony_cistatic const struct clk_parent_data mmss_xo_gpll0_gpll0_div[] = {
35462306a36Sopenharmony_ci	{ .fw_name = "xo", .name = "xo_board" },
35562306a36Sopenharmony_ci	{ .fw_name = "gpll0", .name = "gpll0" },
35662306a36Sopenharmony_ci	{ .hw = &gpll0_div.hw }
35762306a36Sopenharmony_ci};
35862306a36Sopenharmony_ci
35962306a36Sopenharmony_cistatic const struct parent_map mmss_xo_dsibyte_map[] = {
36062306a36Sopenharmony_ci	{ P_XO, 0 },
36162306a36Sopenharmony_ci	{ P_DSI0PLL_BYTE, 1 },
36262306a36Sopenharmony_ci	{ P_DSI1PLL_BYTE, 2 }
36362306a36Sopenharmony_ci};
36462306a36Sopenharmony_ci
36562306a36Sopenharmony_cistatic const struct clk_parent_data mmss_xo_dsibyte[] = {
36662306a36Sopenharmony_ci	{ .fw_name = "xo", .name = "xo_board" },
36762306a36Sopenharmony_ci	{ .fw_name = "dsi0pllbyte", .name = "dsi0pllbyte" },
36862306a36Sopenharmony_ci	{ .fw_name = "dsi1pllbyte", .name = "dsi1pllbyte" }
36962306a36Sopenharmony_ci};
37062306a36Sopenharmony_ci
37162306a36Sopenharmony_cistatic const struct parent_map mmss_xo_mmpll0_gpll0_gpll0_div_map[] = {
37262306a36Sopenharmony_ci	{ P_XO, 0 },
37362306a36Sopenharmony_ci	{ P_MMPLL0, 1 },
37462306a36Sopenharmony_ci	{ P_GPLL0, 5 },
37562306a36Sopenharmony_ci	{ P_GPLL0_DIV, 6 }
37662306a36Sopenharmony_ci};
37762306a36Sopenharmony_ci
37862306a36Sopenharmony_cistatic const struct clk_parent_data mmss_xo_mmpll0_gpll0_gpll0_div[] = {
37962306a36Sopenharmony_ci	{ .fw_name = "xo", .name = "xo_board" },
38062306a36Sopenharmony_ci	{ .hw = &mmpll0.clkr.hw },
38162306a36Sopenharmony_ci	{ .fw_name = "gpll0", .name = "gpll0" },
38262306a36Sopenharmony_ci	{ .hw = &gpll0_div.hw }
38362306a36Sopenharmony_ci};
38462306a36Sopenharmony_ci
38562306a36Sopenharmony_cistatic const struct parent_map mmss_xo_mmpll0_mmpll1_gpll0_gpll0_div_map[] = {
38662306a36Sopenharmony_ci	{ P_XO, 0 },
38762306a36Sopenharmony_ci	{ P_MMPLL0, 1 },
38862306a36Sopenharmony_ci	{ P_MMPLL1, 2 },
38962306a36Sopenharmony_ci	{ P_GPLL0, 5 },
39062306a36Sopenharmony_ci	{ P_GPLL0_DIV, 6 }
39162306a36Sopenharmony_ci};
39262306a36Sopenharmony_ci
39362306a36Sopenharmony_cistatic const struct clk_parent_data mmss_xo_mmpll0_mmpll1_gpll0_gpll0_div[] = {
39462306a36Sopenharmony_ci	{ .fw_name = "xo", .name = "xo_board" },
39562306a36Sopenharmony_ci	{ .hw = &mmpll0.clkr.hw },
39662306a36Sopenharmony_ci	{ .hw = &mmpll1.clkr.hw },
39762306a36Sopenharmony_ci	{ .fw_name = "gpll0", .name = "gpll0" },
39862306a36Sopenharmony_ci	{ .hw = &gpll0_div.hw }
39962306a36Sopenharmony_ci};
40062306a36Sopenharmony_ci
40162306a36Sopenharmony_cistatic const struct parent_map mmss_xo_mmpll0_mmpll3_gpll0_gpll0_div_map[] = {
40262306a36Sopenharmony_ci	{ P_XO, 0 },
40362306a36Sopenharmony_ci	{ P_MMPLL0, 1 },
40462306a36Sopenharmony_ci	{ P_MMPLL3, 3 },
40562306a36Sopenharmony_ci	{ P_GPLL0, 5 },
40662306a36Sopenharmony_ci	{ P_GPLL0_DIV, 6 }
40762306a36Sopenharmony_ci};
40862306a36Sopenharmony_ci
40962306a36Sopenharmony_cistatic const struct clk_parent_data mmss_xo_mmpll0_mmpll3_gpll0_gpll0_div[] = {
41062306a36Sopenharmony_ci	{ .fw_name = "xo", .name = "xo_board" },
41162306a36Sopenharmony_ci	{ .hw = &mmpll0.clkr.hw },
41262306a36Sopenharmony_ci	{ .hw = &mmpll3.clkr.hw },
41362306a36Sopenharmony_ci	{ .fw_name = "gpll0", .name = "gpll0" },
41462306a36Sopenharmony_ci	{ .hw = &gpll0_div.hw }
41562306a36Sopenharmony_ci};
41662306a36Sopenharmony_ci
41762306a36Sopenharmony_cistatic const struct parent_map mmss_xo_mmpll0_mmpll5_gpll0_gpll0_div_map[] = {
41862306a36Sopenharmony_ci	{ P_XO, 0 },
41962306a36Sopenharmony_ci	{ P_MMPLL0, 1 },
42062306a36Sopenharmony_ci	{ P_MMPLL5, 2 },
42162306a36Sopenharmony_ci	{ P_GPLL0, 5 },
42262306a36Sopenharmony_ci	{ P_GPLL0_DIV, 6 }
42362306a36Sopenharmony_ci};
42462306a36Sopenharmony_ci
42562306a36Sopenharmony_cistatic const struct clk_parent_data mmss_xo_mmpll0_mmpll5_gpll0_gpll0_div[] = {
42662306a36Sopenharmony_ci	{ .fw_name = "xo", .name = "xo_board" },
42762306a36Sopenharmony_ci	{ .hw = &mmpll0.clkr.hw },
42862306a36Sopenharmony_ci	{ .hw = &mmpll5.clkr.hw },
42962306a36Sopenharmony_ci	{ .fw_name = "gpll0", .name = "gpll0" },
43062306a36Sopenharmony_ci	{ .hw = &gpll0_div.hw }
43162306a36Sopenharmony_ci};
43262306a36Sopenharmony_ci
43362306a36Sopenharmony_cistatic const struct parent_map mmss_xo_mmpll0_mmpll4_gpll0_gpll0_div_map[] = {
43462306a36Sopenharmony_ci	{ P_XO, 0 },
43562306a36Sopenharmony_ci	{ P_MMPLL0, 1 },
43662306a36Sopenharmony_ci	{ P_MMPLL4, 3 },
43762306a36Sopenharmony_ci	{ P_GPLL0, 5 },
43862306a36Sopenharmony_ci	{ P_GPLL0_DIV, 6 }
43962306a36Sopenharmony_ci};
44062306a36Sopenharmony_ci
44162306a36Sopenharmony_cistatic const struct clk_parent_data mmss_xo_mmpll0_mmpll4_gpll0_gpll0_div[] = {
44262306a36Sopenharmony_ci	{ .fw_name = "xo", .name = "xo_board" },
44362306a36Sopenharmony_ci	{ .hw = &mmpll0.clkr.hw },
44462306a36Sopenharmony_ci	{ .hw = &mmpll4.clkr.hw },
44562306a36Sopenharmony_ci	{ .fw_name = "gpll0", .name = "gpll0" },
44662306a36Sopenharmony_ci	{ .hw = &gpll0_div.hw }
44762306a36Sopenharmony_ci};
44862306a36Sopenharmony_ci
44962306a36Sopenharmony_cistatic const struct parent_map mmss_xo_mmpll0_mmpll9_mmpll2_mmpll8_gpll0_map[] = {
45062306a36Sopenharmony_ci	{ P_XO, 0 },
45162306a36Sopenharmony_ci	{ P_MMPLL0, 1 },
45262306a36Sopenharmony_ci	{ P_MMPLL9, 2 },
45362306a36Sopenharmony_ci	{ P_MMPLL2, 3 },
45462306a36Sopenharmony_ci	{ P_MMPLL8, 4 },
45562306a36Sopenharmony_ci	{ P_GPLL0, 5 }
45662306a36Sopenharmony_ci};
45762306a36Sopenharmony_ci
45862306a36Sopenharmony_cistatic const struct clk_parent_data mmss_xo_mmpll0_mmpll9_mmpll2_mmpll8_gpll0[] = {
45962306a36Sopenharmony_ci	{ .fw_name = "xo", .name = "xo_board" },
46062306a36Sopenharmony_ci	{ .hw = &mmpll0.clkr.hw },
46162306a36Sopenharmony_ci	{ .hw = &mmpll9.clkr.hw },
46262306a36Sopenharmony_ci	{ .hw = &mmpll2.clkr.hw },
46362306a36Sopenharmony_ci	{ .hw = &mmpll8.clkr.hw },
46462306a36Sopenharmony_ci	{ .fw_name = "gpll0", .name = "gpll0" },
46562306a36Sopenharmony_ci};
46662306a36Sopenharmony_ci
46762306a36Sopenharmony_cistatic const struct parent_map mmss_xo_mmpll0_mmpll9_mmpll2_mmpll8_gpll0_gpll0_div_map[] = {
46862306a36Sopenharmony_ci	{ P_XO, 0 },
46962306a36Sopenharmony_ci	{ P_MMPLL0, 1 },
47062306a36Sopenharmony_ci	{ P_MMPLL9, 2 },
47162306a36Sopenharmony_ci	{ P_MMPLL2, 3 },
47262306a36Sopenharmony_ci	{ P_MMPLL8, 4 },
47362306a36Sopenharmony_ci	{ P_GPLL0, 5 },
47462306a36Sopenharmony_ci	{ P_GPLL0_DIV, 6 }
47562306a36Sopenharmony_ci};
47662306a36Sopenharmony_ci
47762306a36Sopenharmony_cistatic const struct clk_parent_data mmss_xo_mmpll0_mmpll9_mmpll2_mmpll8_gpll0_gpll0_div[] = {
47862306a36Sopenharmony_ci	{ .fw_name = "xo", .name = "xo_board" },
47962306a36Sopenharmony_ci	{ .hw = &mmpll0.clkr.hw },
48062306a36Sopenharmony_ci	{ .hw = &mmpll9.clkr.hw },
48162306a36Sopenharmony_ci	{ .hw = &mmpll2.clkr.hw },
48262306a36Sopenharmony_ci	{ .hw = &mmpll8.clkr.hw },
48362306a36Sopenharmony_ci	{ .fw_name = "gpll0", .name = "gpll0" },
48462306a36Sopenharmony_ci	{ .hw = &gpll0_div.hw }
48562306a36Sopenharmony_ci};
48662306a36Sopenharmony_ci
48762306a36Sopenharmony_cistatic const struct parent_map mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div_map[] = {
48862306a36Sopenharmony_ci	{ P_XO, 0 },
48962306a36Sopenharmony_ci	{ P_MMPLL0, 1 },
49062306a36Sopenharmony_ci	{ P_MMPLL1, 2 },
49162306a36Sopenharmony_ci	{ P_MMPLL4, 3 },
49262306a36Sopenharmony_ci	{ P_MMPLL3, 4 },
49362306a36Sopenharmony_ci	{ P_GPLL0, 5 },
49462306a36Sopenharmony_ci	{ P_GPLL0_DIV, 6 }
49562306a36Sopenharmony_ci};
49662306a36Sopenharmony_ci
49762306a36Sopenharmony_cistatic const struct clk_parent_data mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div[] = {
49862306a36Sopenharmony_ci	{ .fw_name = "xo", .name = "xo_board" },
49962306a36Sopenharmony_ci	{ .hw = &mmpll0.clkr.hw },
50062306a36Sopenharmony_ci	{ .hw = &mmpll1.clkr.hw },
50162306a36Sopenharmony_ci	{ .hw = &mmpll4.clkr.hw },
50262306a36Sopenharmony_ci	{ .hw = &mmpll3.clkr.hw },
50362306a36Sopenharmony_ci	{ .fw_name = "gpll0", .name = "gpll0" },
50462306a36Sopenharmony_ci	{ .hw = &gpll0_div.hw }
50562306a36Sopenharmony_ci};
50662306a36Sopenharmony_ci
50762306a36Sopenharmony_cistatic const struct freq_tbl ftbl_ahb_clk_src[] = {
50862306a36Sopenharmony_ci	F(19200000, P_XO, 1, 0, 0),
50962306a36Sopenharmony_ci	F(40000000, P_GPLL0_DIV, 7.5, 0, 0),
51062306a36Sopenharmony_ci	F(80000000, P_MMPLL0, 10, 0, 0),
51162306a36Sopenharmony_ci	{ }
51262306a36Sopenharmony_ci};
51362306a36Sopenharmony_ci
51462306a36Sopenharmony_cistatic struct clk_rcg2 ahb_clk_src = {
51562306a36Sopenharmony_ci	.cmd_rcgr = 0x5000,
51662306a36Sopenharmony_ci	.hid_width = 5,
51762306a36Sopenharmony_ci	.parent_map = mmss_xo_mmpll0_gpll0_gpll0_div_map,
51862306a36Sopenharmony_ci	.freq_tbl = ftbl_ahb_clk_src,
51962306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
52062306a36Sopenharmony_ci		.name = "ahb_clk_src",
52162306a36Sopenharmony_ci		.parent_data = mmss_xo_mmpll0_gpll0_gpll0_div,
52262306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_mmpll0_gpll0_gpll0_div),
52362306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
52462306a36Sopenharmony_ci	},
52562306a36Sopenharmony_ci};
52662306a36Sopenharmony_ci
52762306a36Sopenharmony_cistatic const struct freq_tbl ftbl_axi_clk_src[] = {
52862306a36Sopenharmony_ci	F(19200000, P_XO, 1, 0, 0),
52962306a36Sopenharmony_ci	F(75000000, P_GPLL0_DIV, 4, 0, 0),
53062306a36Sopenharmony_ci	F(100000000, P_GPLL0, 6, 0, 0),
53162306a36Sopenharmony_ci	F(171430000, P_GPLL0, 3.5, 0, 0),
53262306a36Sopenharmony_ci	F(200000000, P_GPLL0, 3, 0, 0),
53362306a36Sopenharmony_ci	F(320000000, P_MMPLL0, 2.5, 0, 0),
53462306a36Sopenharmony_ci	F(400000000, P_MMPLL0, 2, 0, 0),
53562306a36Sopenharmony_ci	{ }
53662306a36Sopenharmony_ci};
53762306a36Sopenharmony_ci
53862306a36Sopenharmony_cistatic struct clk_rcg2 axi_clk_src = {
53962306a36Sopenharmony_ci	.cmd_rcgr = 0x5040,
54062306a36Sopenharmony_ci	.hid_width = 5,
54162306a36Sopenharmony_ci	.parent_map = mmss_xo_mmpll0_mmpll1_gpll0_gpll0_div_map,
54262306a36Sopenharmony_ci	.freq_tbl = ftbl_axi_clk_src,
54362306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
54462306a36Sopenharmony_ci		.name = "axi_clk_src",
54562306a36Sopenharmony_ci		.parent_data = mmss_xo_mmpll0_mmpll1_gpll0_gpll0_div,
54662306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_mmpll0_mmpll1_gpll0_gpll0_div),
54762306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
54862306a36Sopenharmony_ci	},
54962306a36Sopenharmony_ci};
55062306a36Sopenharmony_ci
55162306a36Sopenharmony_cistatic struct clk_rcg2 maxi_clk_src = {
55262306a36Sopenharmony_ci	.cmd_rcgr = 0x5090,
55362306a36Sopenharmony_ci	.hid_width = 5,
55462306a36Sopenharmony_ci	.parent_map = mmss_xo_mmpll0_mmpll1_gpll0_gpll0_div_map,
55562306a36Sopenharmony_ci	.freq_tbl = ftbl_axi_clk_src,
55662306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
55762306a36Sopenharmony_ci		.name = "maxi_clk_src",
55862306a36Sopenharmony_ci		.parent_data = mmss_xo_mmpll0_mmpll1_gpll0_gpll0_div,
55962306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_mmpll0_mmpll1_gpll0_gpll0_div),
56062306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
56162306a36Sopenharmony_ci	},
56262306a36Sopenharmony_ci};
56362306a36Sopenharmony_ci
56462306a36Sopenharmony_cistatic struct clk_rcg2_gfx3d gfx3d_clk_src = {
56562306a36Sopenharmony_ci	.rcg = {
56662306a36Sopenharmony_ci		.cmd_rcgr = 0x4000,
56762306a36Sopenharmony_ci		.hid_width = 5,
56862306a36Sopenharmony_ci		.parent_map = mmss_xo_mmpll0_mmpll9_mmpll2_mmpll8_gpll0_map,
56962306a36Sopenharmony_ci		.clkr.hw.init = &(struct clk_init_data){
57062306a36Sopenharmony_ci			.name = "gfx3d_clk_src",
57162306a36Sopenharmony_ci			.parent_data = mmss_xo_mmpll0_mmpll9_mmpll2_mmpll8_gpll0,
57262306a36Sopenharmony_ci			.num_parents = ARRAY_SIZE(mmss_xo_mmpll0_mmpll9_mmpll2_mmpll8_gpll0),
57362306a36Sopenharmony_ci			.ops = &clk_gfx3d_ops,
57462306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
57562306a36Sopenharmony_ci		},
57662306a36Sopenharmony_ci	},
57762306a36Sopenharmony_ci	.hws = (struct clk_hw*[]) {
57862306a36Sopenharmony_ci		&mmpll9.clkr.hw,
57962306a36Sopenharmony_ci		&mmpll2.clkr.hw,
58062306a36Sopenharmony_ci		&mmpll8.clkr.hw
58162306a36Sopenharmony_ci	},
58262306a36Sopenharmony_ci};
58362306a36Sopenharmony_ci
58462306a36Sopenharmony_cistatic const struct freq_tbl ftbl_rbbmtimer_clk_src[] = {
58562306a36Sopenharmony_ci	F(19200000, P_XO, 1, 0, 0),
58662306a36Sopenharmony_ci	{ }
58762306a36Sopenharmony_ci};
58862306a36Sopenharmony_ci
58962306a36Sopenharmony_cistatic struct clk_rcg2 rbbmtimer_clk_src = {
59062306a36Sopenharmony_ci	.cmd_rcgr = 0x4090,
59162306a36Sopenharmony_ci	.hid_width = 5,
59262306a36Sopenharmony_ci	.parent_map = mmss_xo_mmpll0_gpll0_gpll0_div_map,
59362306a36Sopenharmony_ci	.freq_tbl = ftbl_rbbmtimer_clk_src,
59462306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
59562306a36Sopenharmony_ci		.name = "rbbmtimer_clk_src",
59662306a36Sopenharmony_ci		.parent_data = mmss_xo_mmpll0_gpll0_gpll0_div,
59762306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_mmpll0_gpll0_gpll0_div),
59862306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
59962306a36Sopenharmony_ci	},
60062306a36Sopenharmony_ci};
60162306a36Sopenharmony_ci
60262306a36Sopenharmony_cistatic struct clk_rcg2 isense_clk_src = {
60362306a36Sopenharmony_ci	.cmd_rcgr = 0x4010,
60462306a36Sopenharmony_ci	.hid_width = 5,
60562306a36Sopenharmony_ci	.parent_map = mmss_xo_mmpll0_mmpll9_mmpll2_mmpll8_gpll0_gpll0_div_map,
60662306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
60762306a36Sopenharmony_ci		.name = "isense_clk_src",
60862306a36Sopenharmony_ci		.parent_data = mmss_xo_mmpll0_mmpll9_mmpll2_mmpll8_gpll0_gpll0_div,
60962306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_mmpll0_mmpll9_mmpll2_mmpll8_gpll0_gpll0_div),
61062306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
61162306a36Sopenharmony_ci	},
61262306a36Sopenharmony_ci};
61362306a36Sopenharmony_ci
61462306a36Sopenharmony_cistatic const struct freq_tbl ftbl_rbcpr_clk_src[] = {
61562306a36Sopenharmony_ci	F(19200000, P_XO, 1, 0, 0),
61662306a36Sopenharmony_ci	F(50000000, P_GPLL0, 12, 0, 0),
61762306a36Sopenharmony_ci	{ }
61862306a36Sopenharmony_ci};
61962306a36Sopenharmony_ci
62062306a36Sopenharmony_cistatic struct clk_rcg2 rbcpr_clk_src = {
62162306a36Sopenharmony_ci	.cmd_rcgr = 0x4060,
62262306a36Sopenharmony_ci	.hid_width = 5,
62362306a36Sopenharmony_ci	.parent_map = mmss_xo_mmpll0_gpll0_gpll0_div_map,
62462306a36Sopenharmony_ci	.freq_tbl = ftbl_rbcpr_clk_src,
62562306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
62662306a36Sopenharmony_ci		.name = "rbcpr_clk_src",
62762306a36Sopenharmony_ci		.parent_data = mmss_xo_mmpll0_gpll0_gpll0_div,
62862306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_mmpll0_gpll0_gpll0_div),
62962306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
63062306a36Sopenharmony_ci	},
63162306a36Sopenharmony_ci};
63262306a36Sopenharmony_ci
63362306a36Sopenharmony_cistatic const struct freq_tbl ftbl_video_core_clk_src[] = {
63462306a36Sopenharmony_ci	F(75000000, P_GPLL0_DIV, 4, 0, 0),
63562306a36Sopenharmony_ci	F(150000000, P_GPLL0, 4, 0, 0),
63662306a36Sopenharmony_ci	F(346666667, P_MMPLL3, 3, 0, 0),
63762306a36Sopenharmony_ci	F(520000000, P_MMPLL3, 2, 0, 0),
63862306a36Sopenharmony_ci	{ }
63962306a36Sopenharmony_ci};
64062306a36Sopenharmony_ci
64162306a36Sopenharmony_cistatic struct clk_rcg2 video_core_clk_src = {
64262306a36Sopenharmony_ci	.cmd_rcgr = 0x1000,
64362306a36Sopenharmony_ci	.mnd_width = 8,
64462306a36Sopenharmony_ci	.hid_width = 5,
64562306a36Sopenharmony_ci	.parent_map = mmss_xo_mmpll0_mmpll3_gpll0_gpll0_div_map,
64662306a36Sopenharmony_ci	.freq_tbl = ftbl_video_core_clk_src,
64762306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
64862306a36Sopenharmony_ci		.name = "video_core_clk_src",
64962306a36Sopenharmony_ci		.parent_data = mmss_xo_mmpll0_mmpll3_gpll0_gpll0_div,
65062306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_mmpll0_mmpll3_gpll0_gpll0_div),
65162306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
65262306a36Sopenharmony_ci	},
65362306a36Sopenharmony_ci};
65462306a36Sopenharmony_ci
65562306a36Sopenharmony_cistatic struct clk_rcg2 video_subcore0_clk_src = {
65662306a36Sopenharmony_ci	.cmd_rcgr = 0x1060,
65762306a36Sopenharmony_ci	.mnd_width = 8,
65862306a36Sopenharmony_ci	.hid_width = 5,
65962306a36Sopenharmony_ci	.parent_map = mmss_xo_mmpll0_mmpll3_gpll0_gpll0_div_map,
66062306a36Sopenharmony_ci	.freq_tbl = ftbl_video_core_clk_src,
66162306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
66262306a36Sopenharmony_ci		.name = "video_subcore0_clk_src",
66362306a36Sopenharmony_ci		.parent_data = mmss_xo_mmpll0_mmpll3_gpll0_gpll0_div,
66462306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_mmpll0_mmpll3_gpll0_gpll0_div),
66562306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
66662306a36Sopenharmony_ci	},
66762306a36Sopenharmony_ci};
66862306a36Sopenharmony_ci
66962306a36Sopenharmony_cistatic struct clk_rcg2 video_subcore1_clk_src = {
67062306a36Sopenharmony_ci	.cmd_rcgr = 0x1080,
67162306a36Sopenharmony_ci	.mnd_width = 8,
67262306a36Sopenharmony_ci	.hid_width = 5,
67362306a36Sopenharmony_ci	.parent_map = mmss_xo_mmpll0_mmpll3_gpll0_gpll0_div_map,
67462306a36Sopenharmony_ci	.freq_tbl = ftbl_video_core_clk_src,
67562306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
67662306a36Sopenharmony_ci		.name = "video_subcore1_clk_src",
67762306a36Sopenharmony_ci		.parent_data = mmss_xo_mmpll0_mmpll3_gpll0_gpll0_div,
67862306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_mmpll0_mmpll3_gpll0_gpll0_div),
67962306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
68062306a36Sopenharmony_ci	},
68162306a36Sopenharmony_ci};
68262306a36Sopenharmony_ci
68362306a36Sopenharmony_cistatic struct clk_rcg2 pclk0_clk_src = {
68462306a36Sopenharmony_ci	.cmd_rcgr = 0x2000,
68562306a36Sopenharmony_ci	.mnd_width = 8,
68662306a36Sopenharmony_ci	.hid_width = 5,
68762306a36Sopenharmony_ci	.parent_map = mmss_xo_dsi0pll_dsi1pll_map,
68862306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
68962306a36Sopenharmony_ci		.name = "pclk0_clk_src",
69062306a36Sopenharmony_ci		.parent_data = mmss_xo_dsi0pll_dsi1pll,
69162306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_dsi0pll_dsi1pll),
69262306a36Sopenharmony_ci		.ops = &clk_pixel_ops,
69362306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
69462306a36Sopenharmony_ci	},
69562306a36Sopenharmony_ci};
69662306a36Sopenharmony_ci
69762306a36Sopenharmony_cistatic struct clk_rcg2 pclk1_clk_src = {
69862306a36Sopenharmony_ci	.cmd_rcgr = 0x2020,
69962306a36Sopenharmony_ci	.mnd_width = 8,
70062306a36Sopenharmony_ci	.hid_width = 5,
70162306a36Sopenharmony_ci	.parent_map = mmss_xo_dsi0pll_dsi1pll_map,
70262306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
70362306a36Sopenharmony_ci		.name = "pclk1_clk_src",
70462306a36Sopenharmony_ci		.parent_data = mmss_xo_dsi0pll_dsi1pll,
70562306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_dsi0pll_dsi1pll),
70662306a36Sopenharmony_ci		.ops = &clk_pixel_ops,
70762306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
70862306a36Sopenharmony_ci	},
70962306a36Sopenharmony_ci};
71062306a36Sopenharmony_ci
71162306a36Sopenharmony_cistatic const struct freq_tbl ftbl_mdp_clk_src[] = {
71262306a36Sopenharmony_ci	F(85714286, P_GPLL0, 7, 0, 0),
71362306a36Sopenharmony_ci	F(100000000, P_GPLL0, 6, 0, 0),
71462306a36Sopenharmony_ci	F(150000000, P_GPLL0, 4, 0, 0),
71562306a36Sopenharmony_ci	F(171428571, P_GPLL0, 3.5, 0, 0),
71662306a36Sopenharmony_ci	F(200000000, P_GPLL0, 3, 0, 0),
71762306a36Sopenharmony_ci	F(275000000, P_MMPLL5, 3, 0, 0),
71862306a36Sopenharmony_ci	F(300000000, P_GPLL0, 2, 0, 0),
71962306a36Sopenharmony_ci	F(330000000, P_MMPLL5, 2.5, 0, 0),
72062306a36Sopenharmony_ci	F(412500000, P_MMPLL5, 2, 0, 0),
72162306a36Sopenharmony_ci	{ }
72262306a36Sopenharmony_ci};
72362306a36Sopenharmony_ci
72462306a36Sopenharmony_cistatic struct clk_rcg2 mdp_clk_src = {
72562306a36Sopenharmony_ci	.cmd_rcgr = 0x2040,
72662306a36Sopenharmony_ci	.hid_width = 5,
72762306a36Sopenharmony_ci	.parent_map = mmss_xo_mmpll0_mmpll5_gpll0_gpll0_div_map,
72862306a36Sopenharmony_ci	.freq_tbl = ftbl_mdp_clk_src,
72962306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
73062306a36Sopenharmony_ci		.name = "mdp_clk_src",
73162306a36Sopenharmony_ci		.parent_data = mmss_xo_mmpll0_mmpll5_gpll0_gpll0_div,
73262306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_mmpll0_mmpll5_gpll0_gpll0_div),
73362306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
73462306a36Sopenharmony_ci	},
73562306a36Sopenharmony_ci};
73662306a36Sopenharmony_ci
73762306a36Sopenharmony_cistatic struct freq_tbl extpclk_freq_tbl[] = {
73862306a36Sopenharmony_ci	{ .src = P_HDMIPLL },
73962306a36Sopenharmony_ci	{ }
74062306a36Sopenharmony_ci};
74162306a36Sopenharmony_ci
74262306a36Sopenharmony_cistatic struct clk_rcg2 extpclk_clk_src = {
74362306a36Sopenharmony_ci	.cmd_rcgr = 0x2060,
74462306a36Sopenharmony_ci	.hid_width = 5,
74562306a36Sopenharmony_ci	.parent_map = mmss_xo_hdmi_map,
74662306a36Sopenharmony_ci	.freq_tbl = extpclk_freq_tbl,
74762306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
74862306a36Sopenharmony_ci		.name = "extpclk_clk_src",
74962306a36Sopenharmony_ci		.parent_data = mmss_xo_hdmi,
75062306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_hdmi),
75162306a36Sopenharmony_ci		.ops = &clk_byte_ops,
75262306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
75362306a36Sopenharmony_ci	},
75462306a36Sopenharmony_ci};
75562306a36Sopenharmony_ci
75662306a36Sopenharmony_cistatic struct freq_tbl ftbl_mdss_vsync_clk[] = {
75762306a36Sopenharmony_ci	F(19200000, P_XO, 1, 0, 0),
75862306a36Sopenharmony_ci	{ }
75962306a36Sopenharmony_ci};
76062306a36Sopenharmony_ci
76162306a36Sopenharmony_cistatic struct clk_rcg2 vsync_clk_src = {
76262306a36Sopenharmony_ci	.cmd_rcgr = 0x2080,
76362306a36Sopenharmony_ci	.hid_width = 5,
76462306a36Sopenharmony_ci	.parent_map = mmss_xo_gpll0_gpll0_div_map,
76562306a36Sopenharmony_ci	.freq_tbl = ftbl_mdss_vsync_clk,
76662306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
76762306a36Sopenharmony_ci		.name = "vsync_clk_src",
76862306a36Sopenharmony_ci		.parent_data = mmss_xo_gpll0_gpll0_div,
76962306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_gpll0_gpll0_div),
77062306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
77162306a36Sopenharmony_ci	},
77262306a36Sopenharmony_ci};
77362306a36Sopenharmony_ci
77462306a36Sopenharmony_cistatic struct freq_tbl ftbl_mdss_hdmi_clk[] = {
77562306a36Sopenharmony_ci	F(19200000, P_XO, 1, 0, 0),
77662306a36Sopenharmony_ci	{ }
77762306a36Sopenharmony_ci};
77862306a36Sopenharmony_ci
77962306a36Sopenharmony_cistatic struct clk_rcg2 hdmi_clk_src = {
78062306a36Sopenharmony_ci	.cmd_rcgr = 0x2100,
78162306a36Sopenharmony_ci	.hid_width = 5,
78262306a36Sopenharmony_ci	.parent_map = mmss_xo_gpll0_gpll0_div_map,
78362306a36Sopenharmony_ci	.freq_tbl = ftbl_mdss_hdmi_clk,
78462306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
78562306a36Sopenharmony_ci		.name = "hdmi_clk_src",
78662306a36Sopenharmony_ci		.parent_data = mmss_xo_gpll0_gpll0_div,
78762306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_gpll0_gpll0_div),
78862306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
78962306a36Sopenharmony_ci	},
79062306a36Sopenharmony_ci};
79162306a36Sopenharmony_ci
79262306a36Sopenharmony_cistatic struct clk_rcg2 byte0_clk_src = {
79362306a36Sopenharmony_ci	.cmd_rcgr = 0x2120,
79462306a36Sopenharmony_ci	.hid_width = 5,
79562306a36Sopenharmony_ci	.parent_map = mmss_xo_dsibyte_map,
79662306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
79762306a36Sopenharmony_ci		.name = "byte0_clk_src",
79862306a36Sopenharmony_ci		.parent_data = mmss_xo_dsibyte,
79962306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_dsibyte),
80062306a36Sopenharmony_ci		.ops = &clk_byte2_ops,
80162306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
80262306a36Sopenharmony_ci	},
80362306a36Sopenharmony_ci};
80462306a36Sopenharmony_ci
80562306a36Sopenharmony_cistatic struct clk_rcg2 byte1_clk_src = {
80662306a36Sopenharmony_ci	.cmd_rcgr = 0x2140,
80762306a36Sopenharmony_ci	.hid_width = 5,
80862306a36Sopenharmony_ci	.parent_map = mmss_xo_dsibyte_map,
80962306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
81062306a36Sopenharmony_ci		.name = "byte1_clk_src",
81162306a36Sopenharmony_ci		.parent_data = mmss_xo_dsibyte,
81262306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_dsibyte),
81362306a36Sopenharmony_ci		.ops = &clk_byte2_ops,
81462306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
81562306a36Sopenharmony_ci	},
81662306a36Sopenharmony_ci};
81762306a36Sopenharmony_ci
81862306a36Sopenharmony_cistatic struct freq_tbl ftbl_mdss_esc0_1_clk[] = {
81962306a36Sopenharmony_ci	F(19200000, P_XO, 1, 0, 0),
82062306a36Sopenharmony_ci	{ }
82162306a36Sopenharmony_ci};
82262306a36Sopenharmony_ci
82362306a36Sopenharmony_cistatic struct clk_rcg2 esc0_clk_src = {
82462306a36Sopenharmony_ci	.cmd_rcgr = 0x2160,
82562306a36Sopenharmony_ci	.hid_width = 5,
82662306a36Sopenharmony_ci	.parent_map = mmss_xo_dsibyte_map,
82762306a36Sopenharmony_ci	.freq_tbl = ftbl_mdss_esc0_1_clk,
82862306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
82962306a36Sopenharmony_ci		.name = "esc0_clk_src",
83062306a36Sopenharmony_ci		.parent_data = mmss_xo_dsibyte,
83162306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_dsibyte),
83262306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
83362306a36Sopenharmony_ci	},
83462306a36Sopenharmony_ci};
83562306a36Sopenharmony_ci
83662306a36Sopenharmony_cistatic struct clk_rcg2 esc1_clk_src = {
83762306a36Sopenharmony_ci	.cmd_rcgr = 0x2180,
83862306a36Sopenharmony_ci	.hid_width = 5,
83962306a36Sopenharmony_ci	.parent_map = mmss_xo_dsibyte_map,
84062306a36Sopenharmony_ci	.freq_tbl = ftbl_mdss_esc0_1_clk,
84162306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
84262306a36Sopenharmony_ci		.name = "esc1_clk_src",
84362306a36Sopenharmony_ci		.parent_data = mmss_xo_dsibyte,
84462306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_dsibyte),
84562306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
84662306a36Sopenharmony_ci	},
84762306a36Sopenharmony_ci};
84862306a36Sopenharmony_ci
84962306a36Sopenharmony_cistatic const struct freq_tbl ftbl_camss_gp0_clk_src[] = {
85062306a36Sopenharmony_ci	F(10000, P_XO, 16, 1, 120),
85162306a36Sopenharmony_ci	F(24000, P_XO, 16, 1, 50),
85262306a36Sopenharmony_ci	F(6000000, P_GPLL0_DIV, 10, 1, 5),
85362306a36Sopenharmony_ci	F(12000000, P_GPLL0_DIV, 1, 1, 25),
85462306a36Sopenharmony_ci	F(13000000, P_GPLL0_DIV, 2, 13, 150),
85562306a36Sopenharmony_ci	F(24000000, P_GPLL0_DIV, 1, 2, 25),
85662306a36Sopenharmony_ci	{ }
85762306a36Sopenharmony_ci};
85862306a36Sopenharmony_ci
85962306a36Sopenharmony_cistatic struct clk_rcg2 camss_gp0_clk_src = {
86062306a36Sopenharmony_ci	.cmd_rcgr = 0x3420,
86162306a36Sopenharmony_ci	.mnd_width = 8,
86262306a36Sopenharmony_ci	.hid_width = 5,
86362306a36Sopenharmony_ci	.parent_map = mmss_xo_mmpll0_mmpll4_gpll0_gpll0_div_map,
86462306a36Sopenharmony_ci	.freq_tbl = ftbl_camss_gp0_clk_src,
86562306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
86662306a36Sopenharmony_ci		.name = "camss_gp0_clk_src",
86762306a36Sopenharmony_ci		.parent_data = mmss_xo_mmpll0_mmpll4_gpll0_gpll0_div,
86862306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_mmpll0_mmpll4_gpll0_gpll0_div),
86962306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
87062306a36Sopenharmony_ci	},
87162306a36Sopenharmony_ci};
87262306a36Sopenharmony_ci
87362306a36Sopenharmony_cistatic struct clk_rcg2 camss_gp1_clk_src = {
87462306a36Sopenharmony_ci	.cmd_rcgr = 0x3450,
87562306a36Sopenharmony_ci	.mnd_width = 8,
87662306a36Sopenharmony_ci	.hid_width = 5,
87762306a36Sopenharmony_ci	.parent_map = mmss_xo_mmpll0_mmpll4_gpll0_gpll0_div_map,
87862306a36Sopenharmony_ci	.freq_tbl = ftbl_camss_gp0_clk_src,
87962306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
88062306a36Sopenharmony_ci		.name = "camss_gp1_clk_src",
88162306a36Sopenharmony_ci		.parent_data = mmss_xo_mmpll0_mmpll4_gpll0_gpll0_div,
88262306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_mmpll0_mmpll4_gpll0_gpll0_div),
88362306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
88462306a36Sopenharmony_ci	},
88562306a36Sopenharmony_ci};
88662306a36Sopenharmony_ci
88762306a36Sopenharmony_cistatic const struct freq_tbl ftbl_mclk0_clk_src[] = {
88862306a36Sopenharmony_ci	F(4800000, P_XO, 4, 0, 0),
88962306a36Sopenharmony_ci	F(6000000, P_GPLL0_DIV, 10, 1, 5),
89062306a36Sopenharmony_ci	F(8000000, P_GPLL0_DIV, 1, 2, 75),
89162306a36Sopenharmony_ci	F(9600000, P_XO, 2, 0, 0),
89262306a36Sopenharmony_ci	F(16666667, P_GPLL0_DIV, 2, 1, 9),
89362306a36Sopenharmony_ci	F(19200000, P_XO, 1, 0, 0),
89462306a36Sopenharmony_ci	F(24000000, P_GPLL0_DIV, 1, 2, 25),
89562306a36Sopenharmony_ci	F(33333333, P_GPLL0_DIV, 1, 1, 9),
89662306a36Sopenharmony_ci	F(48000000, P_GPLL0, 1, 2, 25),
89762306a36Sopenharmony_ci	F(66666667, P_GPLL0, 1, 1, 9),
89862306a36Sopenharmony_ci	{ }
89962306a36Sopenharmony_ci};
90062306a36Sopenharmony_ci
90162306a36Sopenharmony_cistatic struct clk_rcg2 mclk0_clk_src = {
90262306a36Sopenharmony_ci	.cmd_rcgr = 0x3360,
90362306a36Sopenharmony_ci	.mnd_width = 8,
90462306a36Sopenharmony_ci	.hid_width = 5,
90562306a36Sopenharmony_ci	.parent_map = mmss_xo_mmpll0_mmpll4_gpll0_gpll0_div_map,
90662306a36Sopenharmony_ci	.freq_tbl = ftbl_mclk0_clk_src,
90762306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
90862306a36Sopenharmony_ci		.name = "mclk0_clk_src",
90962306a36Sopenharmony_ci		.parent_data = mmss_xo_mmpll0_mmpll4_gpll0_gpll0_div,
91062306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_mmpll0_mmpll4_gpll0_gpll0_div),
91162306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
91262306a36Sopenharmony_ci	},
91362306a36Sopenharmony_ci};
91462306a36Sopenharmony_ci
91562306a36Sopenharmony_cistatic struct clk_rcg2 mclk1_clk_src = {
91662306a36Sopenharmony_ci	.cmd_rcgr = 0x3390,
91762306a36Sopenharmony_ci	.mnd_width = 8,
91862306a36Sopenharmony_ci	.hid_width = 5,
91962306a36Sopenharmony_ci	.parent_map = mmss_xo_mmpll0_mmpll4_gpll0_gpll0_div_map,
92062306a36Sopenharmony_ci	.freq_tbl = ftbl_mclk0_clk_src,
92162306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
92262306a36Sopenharmony_ci		.name = "mclk1_clk_src",
92362306a36Sopenharmony_ci		.parent_data = mmss_xo_mmpll0_mmpll4_gpll0_gpll0_div,
92462306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_mmpll0_mmpll4_gpll0_gpll0_div),
92562306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
92662306a36Sopenharmony_ci	},
92762306a36Sopenharmony_ci};
92862306a36Sopenharmony_ci
92962306a36Sopenharmony_cistatic struct clk_rcg2 mclk2_clk_src = {
93062306a36Sopenharmony_ci	.cmd_rcgr = 0x33c0,
93162306a36Sopenharmony_ci	.mnd_width = 8,
93262306a36Sopenharmony_ci	.hid_width = 5,
93362306a36Sopenharmony_ci	.parent_map = mmss_xo_mmpll0_mmpll4_gpll0_gpll0_div_map,
93462306a36Sopenharmony_ci	.freq_tbl = ftbl_mclk0_clk_src,
93562306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
93662306a36Sopenharmony_ci		.name = "mclk2_clk_src",
93762306a36Sopenharmony_ci		.parent_data = mmss_xo_mmpll0_mmpll4_gpll0_gpll0_div,
93862306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_mmpll0_mmpll4_gpll0_gpll0_div),
93962306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
94062306a36Sopenharmony_ci	},
94162306a36Sopenharmony_ci};
94262306a36Sopenharmony_ci
94362306a36Sopenharmony_cistatic struct clk_rcg2 mclk3_clk_src = {
94462306a36Sopenharmony_ci	.cmd_rcgr = 0x33f0,
94562306a36Sopenharmony_ci	.mnd_width = 8,
94662306a36Sopenharmony_ci	.hid_width = 5,
94762306a36Sopenharmony_ci	.parent_map = mmss_xo_mmpll0_mmpll4_gpll0_gpll0_div_map,
94862306a36Sopenharmony_ci	.freq_tbl = ftbl_mclk0_clk_src,
94962306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
95062306a36Sopenharmony_ci		.name = "mclk3_clk_src",
95162306a36Sopenharmony_ci		.parent_data = mmss_xo_mmpll0_mmpll4_gpll0_gpll0_div,
95262306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_mmpll0_mmpll4_gpll0_gpll0_div),
95362306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
95462306a36Sopenharmony_ci	},
95562306a36Sopenharmony_ci};
95662306a36Sopenharmony_ci
95762306a36Sopenharmony_cistatic const struct freq_tbl ftbl_cci_clk_src[] = {
95862306a36Sopenharmony_ci	F(19200000, P_XO, 1, 0, 0),
95962306a36Sopenharmony_ci	F(37500000, P_GPLL0, 16, 0, 0),
96062306a36Sopenharmony_ci	F(50000000, P_GPLL0, 12, 0, 0),
96162306a36Sopenharmony_ci	F(100000000, P_GPLL0, 6, 0, 0),
96262306a36Sopenharmony_ci	{ }
96362306a36Sopenharmony_ci};
96462306a36Sopenharmony_ci
96562306a36Sopenharmony_cistatic struct clk_rcg2 cci_clk_src = {
96662306a36Sopenharmony_ci	.cmd_rcgr = 0x3300,
96762306a36Sopenharmony_ci	.mnd_width = 8,
96862306a36Sopenharmony_ci	.hid_width = 5,
96962306a36Sopenharmony_ci	.parent_map = mmss_xo_mmpll0_mmpll4_gpll0_gpll0_div_map,
97062306a36Sopenharmony_ci	.freq_tbl = ftbl_cci_clk_src,
97162306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
97262306a36Sopenharmony_ci		.name = "cci_clk_src",
97362306a36Sopenharmony_ci		.parent_data = mmss_xo_mmpll0_mmpll4_gpll0_gpll0_div,
97462306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_mmpll0_mmpll4_gpll0_gpll0_div),
97562306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
97662306a36Sopenharmony_ci	},
97762306a36Sopenharmony_ci};
97862306a36Sopenharmony_ci
97962306a36Sopenharmony_cistatic const struct freq_tbl ftbl_csi0phytimer_clk_src[] = {
98062306a36Sopenharmony_ci	F(100000000, P_GPLL0_DIV, 3, 0, 0),
98162306a36Sopenharmony_ci	F(200000000, P_GPLL0, 3, 0, 0),
98262306a36Sopenharmony_ci	F(266666667, P_MMPLL0, 3, 0, 0),
98362306a36Sopenharmony_ci	{ }
98462306a36Sopenharmony_ci};
98562306a36Sopenharmony_ci
98662306a36Sopenharmony_cistatic struct clk_rcg2 csi0phytimer_clk_src = {
98762306a36Sopenharmony_ci	.cmd_rcgr = 0x3000,
98862306a36Sopenharmony_ci	.hid_width = 5,
98962306a36Sopenharmony_ci	.parent_map = mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div_map,
99062306a36Sopenharmony_ci	.freq_tbl = ftbl_csi0phytimer_clk_src,
99162306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
99262306a36Sopenharmony_ci		.name = "csi0phytimer_clk_src",
99362306a36Sopenharmony_ci		.parent_data = mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div,
99462306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div),
99562306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
99662306a36Sopenharmony_ci	},
99762306a36Sopenharmony_ci};
99862306a36Sopenharmony_ci
99962306a36Sopenharmony_cistatic struct clk_rcg2 csi1phytimer_clk_src = {
100062306a36Sopenharmony_ci	.cmd_rcgr = 0x3030,
100162306a36Sopenharmony_ci	.hid_width = 5,
100262306a36Sopenharmony_ci	.parent_map = mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div_map,
100362306a36Sopenharmony_ci	.freq_tbl = ftbl_csi0phytimer_clk_src,
100462306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
100562306a36Sopenharmony_ci		.name = "csi1phytimer_clk_src",
100662306a36Sopenharmony_ci		.parent_data = mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div,
100762306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div),
100862306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
100962306a36Sopenharmony_ci	},
101062306a36Sopenharmony_ci};
101162306a36Sopenharmony_ci
101262306a36Sopenharmony_cistatic struct clk_rcg2 csi2phytimer_clk_src = {
101362306a36Sopenharmony_ci	.cmd_rcgr = 0x3060,
101462306a36Sopenharmony_ci	.hid_width = 5,
101562306a36Sopenharmony_ci	.parent_map = mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div_map,
101662306a36Sopenharmony_ci	.freq_tbl = ftbl_csi0phytimer_clk_src,
101762306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
101862306a36Sopenharmony_ci		.name = "csi2phytimer_clk_src",
101962306a36Sopenharmony_ci		.parent_data = mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div,
102062306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div),
102162306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
102262306a36Sopenharmony_ci	},
102362306a36Sopenharmony_ci};
102462306a36Sopenharmony_ci
102562306a36Sopenharmony_cistatic const struct freq_tbl ftbl_csiphy0_3p_clk_src[] = {
102662306a36Sopenharmony_ci	F(100000000, P_GPLL0_DIV, 3, 0, 0),
102762306a36Sopenharmony_ci	F(200000000, P_GPLL0, 3, 0, 0),
102862306a36Sopenharmony_ci	F(320000000, P_MMPLL4, 3, 0, 0),
102962306a36Sopenharmony_ci	F(384000000, P_MMPLL4, 2.5, 0, 0),
103062306a36Sopenharmony_ci	{ }
103162306a36Sopenharmony_ci};
103262306a36Sopenharmony_ci
103362306a36Sopenharmony_cistatic struct clk_rcg2 csiphy0_3p_clk_src = {
103462306a36Sopenharmony_ci	.cmd_rcgr = 0x3240,
103562306a36Sopenharmony_ci	.hid_width = 5,
103662306a36Sopenharmony_ci	.parent_map = mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div_map,
103762306a36Sopenharmony_ci	.freq_tbl = ftbl_csiphy0_3p_clk_src,
103862306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
103962306a36Sopenharmony_ci		.name = "csiphy0_3p_clk_src",
104062306a36Sopenharmony_ci		.parent_data = mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div,
104162306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div),
104262306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
104362306a36Sopenharmony_ci	},
104462306a36Sopenharmony_ci};
104562306a36Sopenharmony_ci
104662306a36Sopenharmony_cistatic struct clk_rcg2 csiphy1_3p_clk_src = {
104762306a36Sopenharmony_ci	.cmd_rcgr = 0x3260,
104862306a36Sopenharmony_ci	.hid_width = 5,
104962306a36Sopenharmony_ci	.parent_map = mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div_map,
105062306a36Sopenharmony_ci	.freq_tbl = ftbl_csiphy0_3p_clk_src,
105162306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
105262306a36Sopenharmony_ci		.name = "csiphy1_3p_clk_src",
105362306a36Sopenharmony_ci		.parent_data = mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div,
105462306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div),
105562306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
105662306a36Sopenharmony_ci	},
105762306a36Sopenharmony_ci};
105862306a36Sopenharmony_ci
105962306a36Sopenharmony_cistatic struct clk_rcg2 csiphy2_3p_clk_src = {
106062306a36Sopenharmony_ci	.cmd_rcgr = 0x3280,
106162306a36Sopenharmony_ci	.hid_width = 5,
106262306a36Sopenharmony_ci	.parent_map = mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div_map,
106362306a36Sopenharmony_ci	.freq_tbl = ftbl_csiphy0_3p_clk_src,
106462306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
106562306a36Sopenharmony_ci		.name = "csiphy2_3p_clk_src",
106662306a36Sopenharmony_ci		.parent_data = mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div,
106762306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div),
106862306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
106962306a36Sopenharmony_ci	},
107062306a36Sopenharmony_ci};
107162306a36Sopenharmony_ci
107262306a36Sopenharmony_cistatic const struct freq_tbl ftbl_jpeg0_clk_src[] = {
107362306a36Sopenharmony_ci	F(75000000, P_GPLL0_DIV, 4, 0, 0),
107462306a36Sopenharmony_ci	F(150000000, P_GPLL0, 4, 0, 0),
107562306a36Sopenharmony_ci	F(228571429, P_MMPLL0, 3.5, 0, 0),
107662306a36Sopenharmony_ci	F(266666667, P_MMPLL0, 3, 0, 0),
107762306a36Sopenharmony_ci	F(320000000, P_MMPLL0, 2.5, 0, 0),
107862306a36Sopenharmony_ci	F(480000000, P_MMPLL4, 2, 0, 0),
107962306a36Sopenharmony_ci	{ }
108062306a36Sopenharmony_ci};
108162306a36Sopenharmony_ci
108262306a36Sopenharmony_cistatic struct clk_rcg2 jpeg0_clk_src = {
108362306a36Sopenharmony_ci	.cmd_rcgr = 0x3500,
108462306a36Sopenharmony_ci	.hid_width = 5,
108562306a36Sopenharmony_ci	.parent_map = mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div_map,
108662306a36Sopenharmony_ci	.freq_tbl = ftbl_jpeg0_clk_src,
108762306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
108862306a36Sopenharmony_ci		.name = "jpeg0_clk_src",
108962306a36Sopenharmony_ci		.parent_data = mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div,
109062306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div),
109162306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
109262306a36Sopenharmony_ci	},
109362306a36Sopenharmony_ci};
109462306a36Sopenharmony_ci
109562306a36Sopenharmony_cistatic const struct freq_tbl ftbl_jpeg2_clk_src[] = {
109662306a36Sopenharmony_ci	F(75000000, P_GPLL0_DIV, 4, 0, 0),
109762306a36Sopenharmony_ci	F(150000000, P_GPLL0, 4, 0, 0),
109862306a36Sopenharmony_ci	F(228571429, P_MMPLL0, 3.5, 0, 0),
109962306a36Sopenharmony_ci	F(266666667, P_MMPLL0, 3, 0, 0),
110062306a36Sopenharmony_ci	F(320000000, P_MMPLL0, 2.5, 0, 0),
110162306a36Sopenharmony_ci	{ }
110262306a36Sopenharmony_ci};
110362306a36Sopenharmony_ci
110462306a36Sopenharmony_cistatic struct clk_rcg2 jpeg2_clk_src = {
110562306a36Sopenharmony_ci	.cmd_rcgr = 0x3540,
110662306a36Sopenharmony_ci	.hid_width = 5,
110762306a36Sopenharmony_ci	.parent_map = mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div_map,
110862306a36Sopenharmony_ci	.freq_tbl = ftbl_jpeg2_clk_src,
110962306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
111062306a36Sopenharmony_ci		.name = "jpeg2_clk_src",
111162306a36Sopenharmony_ci		.parent_data = mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div,
111262306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div),
111362306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
111462306a36Sopenharmony_ci	},
111562306a36Sopenharmony_ci};
111662306a36Sopenharmony_ci
111762306a36Sopenharmony_cistatic struct clk_rcg2 jpeg_dma_clk_src = {
111862306a36Sopenharmony_ci	.cmd_rcgr = 0x3560,
111962306a36Sopenharmony_ci	.hid_width = 5,
112062306a36Sopenharmony_ci	.parent_map = mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div_map,
112162306a36Sopenharmony_ci	.freq_tbl = ftbl_jpeg0_clk_src,
112262306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
112362306a36Sopenharmony_ci		.name = "jpeg_dma_clk_src",
112462306a36Sopenharmony_ci		.parent_data = mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div,
112562306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div),
112662306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
112762306a36Sopenharmony_ci	},
112862306a36Sopenharmony_ci};
112962306a36Sopenharmony_ci
113062306a36Sopenharmony_cistatic const struct freq_tbl ftbl_vfe0_clk_src[] = {
113162306a36Sopenharmony_ci	F(75000000, P_GPLL0_DIV, 4, 0, 0),
113262306a36Sopenharmony_ci	F(100000000, P_GPLL0_DIV, 3, 0, 0),
113362306a36Sopenharmony_ci	F(300000000, P_GPLL0, 2, 0, 0),
113462306a36Sopenharmony_ci	F(320000000, P_MMPLL0, 2.5, 0, 0),
113562306a36Sopenharmony_ci	F(480000000, P_MMPLL4, 2, 0, 0),
113662306a36Sopenharmony_ci	F(600000000, P_GPLL0, 1, 0, 0),
113762306a36Sopenharmony_ci	{ }
113862306a36Sopenharmony_ci};
113962306a36Sopenharmony_ci
114062306a36Sopenharmony_cistatic struct clk_rcg2 vfe0_clk_src = {
114162306a36Sopenharmony_ci	.cmd_rcgr = 0x3600,
114262306a36Sopenharmony_ci	.hid_width = 5,
114362306a36Sopenharmony_ci	.parent_map = mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div_map,
114462306a36Sopenharmony_ci	.freq_tbl = ftbl_vfe0_clk_src,
114562306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
114662306a36Sopenharmony_ci		.name = "vfe0_clk_src",
114762306a36Sopenharmony_ci		.parent_data = mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div,
114862306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div),
114962306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
115062306a36Sopenharmony_ci	},
115162306a36Sopenharmony_ci};
115262306a36Sopenharmony_ci
115362306a36Sopenharmony_cistatic struct clk_rcg2 vfe1_clk_src = {
115462306a36Sopenharmony_ci	.cmd_rcgr = 0x3620,
115562306a36Sopenharmony_ci	.hid_width = 5,
115662306a36Sopenharmony_ci	.parent_map = mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div_map,
115762306a36Sopenharmony_ci	.freq_tbl = ftbl_vfe0_clk_src,
115862306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
115962306a36Sopenharmony_ci		.name = "vfe1_clk_src",
116062306a36Sopenharmony_ci		.parent_data = mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div,
116162306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div),
116262306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
116362306a36Sopenharmony_ci	},
116462306a36Sopenharmony_ci};
116562306a36Sopenharmony_ci
116662306a36Sopenharmony_cistatic const struct freq_tbl ftbl_cpp_clk_src[] = {
116762306a36Sopenharmony_ci	F(100000000, P_GPLL0_DIV, 3, 0, 0),
116862306a36Sopenharmony_ci	F(200000000, P_GPLL0, 3, 0, 0),
116962306a36Sopenharmony_ci	F(320000000, P_MMPLL0, 2.5, 0, 0),
117062306a36Sopenharmony_ci	F(480000000, P_MMPLL4, 2, 0, 0),
117162306a36Sopenharmony_ci	F(640000000, P_MMPLL4, 1.5, 0, 0),
117262306a36Sopenharmony_ci	{ }
117362306a36Sopenharmony_ci};
117462306a36Sopenharmony_ci
117562306a36Sopenharmony_cistatic struct clk_rcg2 cpp_clk_src = {
117662306a36Sopenharmony_ci	.cmd_rcgr = 0x3640,
117762306a36Sopenharmony_ci	.hid_width = 5,
117862306a36Sopenharmony_ci	.parent_map = mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div_map,
117962306a36Sopenharmony_ci	.freq_tbl = ftbl_cpp_clk_src,
118062306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
118162306a36Sopenharmony_ci		.name = "cpp_clk_src",
118262306a36Sopenharmony_ci		.parent_data = mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div,
118362306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div),
118462306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
118562306a36Sopenharmony_ci	},
118662306a36Sopenharmony_ci};
118762306a36Sopenharmony_ci
118862306a36Sopenharmony_cistatic const struct freq_tbl ftbl_csi0_clk_src[] = {
118962306a36Sopenharmony_ci	F(100000000, P_GPLL0_DIV, 3, 0, 0),
119062306a36Sopenharmony_ci	F(200000000, P_GPLL0, 3, 0, 0),
119162306a36Sopenharmony_ci	F(266666667, P_MMPLL0, 3, 0, 0),
119262306a36Sopenharmony_ci	F(480000000, P_MMPLL4, 2, 0, 0),
119362306a36Sopenharmony_ci	F(600000000, P_GPLL0, 1, 0, 0),
119462306a36Sopenharmony_ci	{ }
119562306a36Sopenharmony_ci};
119662306a36Sopenharmony_ci
119762306a36Sopenharmony_cistatic struct clk_rcg2 csi0_clk_src = {
119862306a36Sopenharmony_ci	.cmd_rcgr = 0x3090,
119962306a36Sopenharmony_ci	.hid_width = 5,
120062306a36Sopenharmony_ci	.parent_map = mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div_map,
120162306a36Sopenharmony_ci	.freq_tbl = ftbl_csi0_clk_src,
120262306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
120362306a36Sopenharmony_ci		.name = "csi0_clk_src",
120462306a36Sopenharmony_ci		.parent_data = mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div,
120562306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div),
120662306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
120762306a36Sopenharmony_ci	},
120862306a36Sopenharmony_ci};
120962306a36Sopenharmony_ci
121062306a36Sopenharmony_cistatic struct clk_rcg2 csi1_clk_src = {
121162306a36Sopenharmony_ci	.cmd_rcgr = 0x3100,
121262306a36Sopenharmony_ci	.hid_width = 5,
121362306a36Sopenharmony_ci	.parent_map = mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div_map,
121462306a36Sopenharmony_ci	.freq_tbl = ftbl_csi0_clk_src,
121562306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
121662306a36Sopenharmony_ci		.name = "csi1_clk_src",
121762306a36Sopenharmony_ci		.parent_data = mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div,
121862306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div),
121962306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
122062306a36Sopenharmony_ci	},
122162306a36Sopenharmony_ci};
122262306a36Sopenharmony_ci
122362306a36Sopenharmony_cistatic struct clk_rcg2 csi2_clk_src = {
122462306a36Sopenharmony_ci	.cmd_rcgr = 0x3160,
122562306a36Sopenharmony_ci	.hid_width = 5,
122662306a36Sopenharmony_ci	.parent_map = mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div_map,
122762306a36Sopenharmony_ci	.freq_tbl = ftbl_csi0_clk_src,
122862306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
122962306a36Sopenharmony_ci		.name = "csi2_clk_src",
123062306a36Sopenharmony_ci		.parent_data = mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div,
123162306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div),
123262306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
123362306a36Sopenharmony_ci	},
123462306a36Sopenharmony_ci};
123562306a36Sopenharmony_ci
123662306a36Sopenharmony_cistatic struct clk_rcg2 csi3_clk_src = {
123762306a36Sopenharmony_ci	.cmd_rcgr = 0x31c0,
123862306a36Sopenharmony_ci	.hid_width = 5,
123962306a36Sopenharmony_ci	.parent_map = mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div_map,
124062306a36Sopenharmony_ci	.freq_tbl = ftbl_csi0_clk_src,
124162306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
124262306a36Sopenharmony_ci		.name = "csi3_clk_src",
124362306a36Sopenharmony_ci		.parent_data = mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div,
124462306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div),
124562306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
124662306a36Sopenharmony_ci	},
124762306a36Sopenharmony_ci};
124862306a36Sopenharmony_ci
124962306a36Sopenharmony_cistatic const struct freq_tbl ftbl_fd_core_clk_src[] = {
125062306a36Sopenharmony_ci	F(100000000, P_GPLL0_DIV, 3, 0, 0),
125162306a36Sopenharmony_ci	F(200000000, P_GPLL0, 3, 0, 0),
125262306a36Sopenharmony_ci	F(400000000, P_MMPLL0, 2, 0, 0),
125362306a36Sopenharmony_ci	{ }
125462306a36Sopenharmony_ci};
125562306a36Sopenharmony_ci
125662306a36Sopenharmony_cistatic struct clk_rcg2 fd_core_clk_src = {
125762306a36Sopenharmony_ci	.cmd_rcgr = 0x3b00,
125862306a36Sopenharmony_ci	.hid_width = 5,
125962306a36Sopenharmony_ci	.parent_map = mmss_xo_mmpll0_mmpll4_gpll0_gpll0_div_map,
126062306a36Sopenharmony_ci	.freq_tbl = ftbl_fd_core_clk_src,
126162306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
126262306a36Sopenharmony_ci		.name = "fd_core_clk_src",
126362306a36Sopenharmony_ci		.parent_data = mmss_xo_mmpll0_mmpll4_gpll0_gpll0_div,
126462306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_mmpll0_mmpll4_gpll0_gpll0_div),
126562306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
126662306a36Sopenharmony_ci	},
126762306a36Sopenharmony_ci};
126862306a36Sopenharmony_ci
126962306a36Sopenharmony_cistatic struct clk_branch mmss_mmagic_ahb_clk = {
127062306a36Sopenharmony_ci	.halt_reg = 0x5024,
127162306a36Sopenharmony_ci	.clkr = {
127262306a36Sopenharmony_ci		.enable_reg = 0x5024,
127362306a36Sopenharmony_ci		.enable_mask = BIT(0),
127462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
127562306a36Sopenharmony_ci			.name = "mmss_mmagic_ahb_clk",
127662306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
127762306a36Sopenharmony_ci				&ahb_clk_src.clkr.hw
127862306a36Sopenharmony_ci			},
127962306a36Sopenharmony_ci			.num_parents = 1,
128062306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT | CLK_IS_CRITICAL,
128162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
128262306a36Sopenharmony_ci		},
128362306a36Sopenharmony_ci	},
128462306a36Sopenharmony_ci};
128562306a36Sopenharmony_ci
128662306a36Sopenharmony_cistatic struct clk_branch mmss_mmagic_cfg_ahb_clk = {
128762306a36Sopenharmony_ci	.halt_reg = 0x5054,
128862306a36Sopenharmony_ci	.clkr = {
128962306a36Sopenharmony_ci		.enable_reg = 0x5054,
129062306a36Sopenharmony_ci		.enable_mask = BIT(0),
129162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
129262306a36Sopenharmony_ci			.name = "mmss_mmagic_cfg_ahb_clk",
129362306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
129462306a36Sopenharmony_ci				&ahb_clk_src.clkr.hw
129562306a36Sopenharmony_ci			},
129662306a36Sopenharmony_ci			.num_parents = 1,
129762306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT | CLK_IS_CRITICAL,
129862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
129962306a36Sopenharmony_ci		},
130062306a36Sopenharmony_ci	},
130162306a36Sopenharmony_ci};
130262306a36Sopenharmony_ci
130362306a36Sopenharmony_cistatic struct clk_branch mmss_misc_ahb_clk = {
130462306a36Sopenharmony_ci	.halt_reg = 0x5018,
130562306a36Sopenharmony_ci	.clkr = {
130662306a36Sopenharmony_ci		.enable_reg = 0x5018,
130762306a36Sopenharmony_ci		.enable_mask = BIT(0),
130862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
130962306a36Sopenharmony_ci			.name = "mmss_misc_ahb_clk",
131062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
131162306a36Sopenharmony_ci				&ahb_clk_src.clkr.hw
131262306a36Sopenharmony_ci			},
131362306a36Sopenharmony_ci			.num_parents = 1,
131462306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
131562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
131662306a36Sopenharmony_ci		},
131762306a36Sopenharmony_ci	},
131862306a36Sopenharmony_ci};
131962306a36Sopenharmony_ci
132062306a36Sopenharmony_cistatic struct clk_branch mmss_misc_cxo_clk = {
132162306a36Sopenharmony_ci	.halt_reg = 0x5014,
132262306a36Sopenharmony_ci	.clkr = {
132362306a36Sopenharmony_ci		.enable_reg = 0x5014,
132462306a36Sopenharmony_ci		.enable_mask = BIT(0),
132562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
132662306a36Sopenharmony_ci			.name = "mmss_misc_cxo_clk",
132762306a36Sopenharmony_ci			.parent_data = (const struct clk_parent_data[]){
132862306a36Sopenharmony_ci				{ .fw_name = "xo", .name = "xo_board" },
132962306a36Sopenharmony_ci			},
133062306a36Sopenharmony_ci			.num_parents = 1,
133162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
133262306a36Sopenharmony_ci		},
133362306a36Sopenharmony_ci	},
133462306a36Sopenharmony_ci};
133562306a36Sopenharmony_ci
133662306a36Sopenharmony_cistatic struct clk_branch mmss_mmagic_maxi_clk = {
133762306a36Sopenharmony_ci	.halt_reg = 0x5074,
133862306a36Sopenharmony_ci	.clkr = {
133962306a36Sopenharmony_ci		.enable_reg = 0x5074,
134062306a36Sopenharmony_ci		.enable_mask = BIT(0),
134162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
134262306a36Sopenharmony_ci			.name = "mmss_mmagic_maxi_clk",
134362306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
134462306a36Sopenharmony_ci				&maxi_clk_src.clkr.hw
134562306a36Sopenharmony_ci			},
134662306a36Sopenharmony_ci			.num_parents = 1,
134762306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
134862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
134962306a36Sopenharmony_ci		},
135062306a36Sopenharmony_ci	},
135162306a36Sopenharmony_ci};
135262306a36Sopenharmony_ci
135362306a36Sopenharmony_cistatic struct clk_branch mmagic_camss_axi_clk = {
135462306a36Sopenharmony_ci	.halt_reg = 0x3c44,
135562306a36Sopenharmony_ci	.clkr = {
135662306a36Sopenharmony_ci		.enable_reg = 0x3c44,
135762306a36Sopenharmony_ci		.enable_mask = BIT(0),
135862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
135962306a36Sopenharmony_ci			.name = "mmagic_camss_axi_clk",
136062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
136162306a36Sopenharmony_ci				&axi_clk_src.clkr.hw
136262306a36Sopenharmony_ci			},
136362306a36Sopenharmony_ci			.num_parents = 1,
136462306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT | CLK_IS_CRITICAL,
136562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
136662306a36Sopenharmony_ci		},
136762306a36Sopenharmony_ci	},
136862306a36Sopenharmony_ci};
136962306a36Sopenharmony_ci
137062306a36Sopenharmony_cistatic struct clk_branch mmagic_camss_noc_cfg_ahb_clk = {
137162306a36Sopenharmony_ci	.halt_reg = 0x3c48,
137262306a36Sopenharmony_ci	.clkr = {
137362306a36Sopenharmony_ci		.enable_reg = 0x3c48,
137462306a36Sopenharmony_ci		.enable_mask = BIT(0),
137562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
137662306a36Sopenharmony_ci			.name = "mmagic_camss_noc_cfg_ahb_clk",
137762306a36Sopenharmony_ci			.parent_data = (const struct clk_parent_data[]){
137862306a36Sopenharmony_ci				{ .fw_name = "gcc_mmss_noc_cfg_ahb_clk", .name = "gcc_mmss_noc_cfg_ahb_clk" },
137962306a36Sopenharmony_ci			},
138062306a36Sopenharmony_ci			.num_parents = 1,
138162306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT | CLK_IS_CRITICAL,
138262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
138362306a36Sopenharmony_ci		},
138462306a36Sopenharmony_ci	},
138562306a36Sopenharmony_ci};
138662306a36Sopenharmony_ci
138762306a36Sopenharmony_cistatic struct clk_branch smmu_vfe_ahb_clk = {
138862306a36Sopenharmony_ci	.halt_reg = 0x3c04,
138962306a36Sopenharmony_ci	.clkr = {
139062306a36Sopenharmony_ci		.enable_reg = 0x3c04,
139162306a36Sopenharmony_ci		.enable_mask = BIT(0),
139262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
139362306a36Sopenharmony_ci			.name = "smmu_vfe_ahb_clk",
139462306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
139562306a36Sopenharmony_ci				&ahb_clk_src.clkr.hw
139662306a36Sopenharmony_ci			},
139762306a36Sopenharmony_ci			.num_parents = 1,
139862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
139962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
140062306a36Sopenharmony_ci		},
140162306a36Sopenharmony_ci	},
140262306a36Sopenharmony_ci};
140362306a36Sopenharmony_ci
140462306a36Sopenharmony_cistatic struct clk_branch smmu_vfe_axi_clk = {
140562306a36Sopenharmony_ci	.halt_reg = 0x3c08,
140662306a36Sopenharmony_ci	.clkr = {
140762306a36Sopenharmony_ci		.enable_reg = 0x3c08,
140862306a36Sopenharmony_ci		.enable_mask = BIT(0),
140962306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
141062306a36Sopenharmony_ci			.name = "smmu_vfe_axi_clk",
141162306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
141262306a36Sopenharmony_ci				&axi_clk_src.clkr.hw
141362306a36Sopenharmony_ci			},
141462306a36Sopenharmony_ci			.num_parents = 1,
141562306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
141662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
141762306a36Sopenharmony_ci		},
141862306a36Sopenharmony_ci	},
141962306a36Sopenharmony_ci};
142062306a36Sopenharmony_ci
142162306a36Sopenharmony_cistatic struct clk_branch smmu_cpp_ahb_clk = {
142262306a36Sopenharmony_ci	.halt_reg = 0x3c14,
142362306a36Sopenharmony_ci	.clkr = {
142462306a36Sopenharmony_ci		.enable_reg = 0x3c14,
142562306a36Sopenharmony_ci		.enable_mask = BIT(0),
142662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
142762306a36Sopenharmony_ci			.name = "smmu_cpp_ahb_clk",
142862306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
142962306a36Sopenharmony_ci				&ahb_clk_src.clkr.hw
143062306a36Sopenharmony_ci			},
143162306a36Sopenharmony_ci			.num_parents = 1,
143262306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
143362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
143462306a36Sopenharmony_ci		},
143562306a36Sopenharmony_ci	},
143662306a36Sopenharmony_ci};
143762306a36Sopenharmony_ci
143862306a36Sopenharmony_cistatic struct clk_branch smmu_cpp_axi_clk = {
143962306a36Sopenharmony_ci	.halt_reg = 0x3c18,
144062306a36Sopenharmony_ci	.clkr = {
144162306a36Sopenharmony_ci		.enable_reg = 0x3c18,
144262306a36Sopenharmony_ci		.enable_mask = BIT(0),
144362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
144462306a36Sopenharmony_ci			.name = "smmu_cpp_axi_clk",
144562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
144662306a36Sopenharmony_ci				&axi_clk_src.clkr.hw
144762306a36Sopenharmony_ci			},
144862306a36Sopenharmony_ci			.num_parents = 1,
144962306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
145062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
145162306a36Sopenharmony_ci		},
145262306a36Sopenharmony_ci	},
145362306a36Sopenharmony_ci};
145462306a36Sopenharmony_ci
145562306a36Sopenharmony_cistatic struct clk_branch smmu_jpeg_ahb_clk = {
145662306a36Sopenharmony_ci	.halt_reg = 0x3c24,
145762306a36Sopenharmony_ci	.clkr = {
145862306a36Sopenharmony_ci		.enable_reg = 0x3c24,
145962306a36Sopenharmony_ci		.enable_mask = BIT(0),
146062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
146162306a36Sopenharmony_ci			.name = "smmu_jpeg_ahb_clk",
146262306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
146362306a36Sopenharmony_ci				&ahb_clk_src.clkr.hw
146462306a36Sopenharmony_ci			},
146562306a36Sopenharmony_ci			.num_parents = 1,
146662306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
146762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
146862306a36Sopenharmony_ci		},
146962306a36Sopenharmony_ci	},
147062306a36Sopenharmony_ci};
147162306a36Sopenharmony_ci
147262306a36Sopenharmony_cistatic struct clk_branch smmu_jpeg_axi_clk = {
147362306a36Sopenharmony_ci	.halt_reg = 0x3c28,
147462306a36Sopenharmony_ci	.clkr = {
147562306a36Sopenharmony_ci		.enable_reg = 0x3c28,
147662306a36Sopenharmony_ci		.enable_mask = BIT(0),
147762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
147862306a36Sopenharmony_ci			.name = "smmu_jpeg_axi_clk",
147962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
148062306a36Sopenharmony_ci				&axi_clk_src.clkr.hw
148162306a36Sopenharmony_ci			},
148262306a36Sopenharmony_ci			.num_parents = 1,
148362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
148462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
148562306a36Sopenharmony_ci		},
148662306a36Sopenharmony_ci	},
148762306a36Sopenharmony_ci};
148862306a36Sopenharmony_ci
148962306a36Sopenharmony_cistatic struct clk_branch mmagic_mdss_axi_clk = {
149062306a36Sopenharmony_ci	.halt_reg = 0x2474,
149162306a36Sopenharmony_ci	.clkr = {
149262306a36Sopenharmony_ci		.enable_reg = 0x2474,
149362306a36Sopenharmony_ci		.enable_mask = BIT(0),
149462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
149562306a36Sopenharmony_ci			.name = "mmagic_mdss_axi_clk",
149662306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
149762306a36Sopenharmony_ci				&axi_clk_src.clkr.hw
149862306a36Sopenharmony_ci			},
149962306a36Sopenharmony_ci			.num_parents = 1,
150062306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT | CLK_IS_CRITICAL,
150162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
150262306a36Sopenharmony_ci		},
150362306a36Sopenharmony_ci	},
150462306a36Sopenharmony_ci};
150562306a36Sopenharmony_ci
150662306a36Sopenharmony_cistatic struct clk_branch mmagic_mdss_noc_cfg_ahb_clk = {
150762306a36Sopenharmony_ci	.halt_reg = 0x2478,
150862306a36Sopenharmony_ci	.clkr = {
150962306a36Sopenharmony_ci		.enable_reg = 0x2478,
151062306a36Sopenharmony_ci		.enable_mask = BIT(0),
151162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
151262306a36Sopenharmony_ci			.name = "mmagic_mdss_noc_cfg_ahb_clk",
151362306a36Sopenharmony_ci			.parent_data = (const struct clk_parent_data[]){
151462306a36Sopenharmony_ci				{ .fw_name = "gcc_mmss_noc_cfg_ahb_clk", .name = "gcc_mmss_noc_cfg_ahb_clk" },
151562306a36Sopenharmony_ci			},
151662306a36Sopenharmony_ci			.num_parents = 1,
151762306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT | CLK_IS_CRITICAL,
151862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
151962306a36Sopenharmony_ci		},
152062306a36Sopenharmony_ci	},
152162306a36Sopenharmony_ci};
152262306a36Sopenharmony_ci
152362306a36Sopenharmony_cistatic struct clk_branch smmu_rot_ahb_clk = {
152462306a36Sopenharmony_ci	.halt_reg = 0x2444,
152562306a36Sopenharmony_ci	.clkr = {
152662306a36Sopenharmony_ci		.enable_reg = 0x2444,
152762306a36Sopenharmony_ci		.enable_mask = BIT(0),
152862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
152962306a36Sopenharmony_ci			.name = "smmu_rot_ahb_clk",
153062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
153162306a36Sopenharmony_ci				&ahb_clk_src.clkr.hw
153262306a36Sopenharmony_ci			},
153362306a36Sopenharmony_ci			.num_parents = 1,
153462306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
153562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
153662306a36Sopenharmony_ci		},
153762306a36Sopenharmony_ci	},
153862306a36Sopenharmony_ci};
153962306a36Sopenharmony_ci
154062306a36Sopenharmony_cistatic struct clk_branch smmu_rot_axi_clk = {
154162306a36Sopenharmony_ci	.halt_reg = 0x2448,
154262306a36Sopenharmony_ci	.clkr = {
154362306a36Sopenharmony_ci		.enable_reg = 0x2448,
154462306a36Sopenharmony_ci		.enable_mask = BIT(0),
154562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
154662306a36Sopenharmony_ci			.name = "smmu_rot_axi_clk",
154762306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
154862306a36Sopenharmony_ci				&axi_clk_src.clkr.hw
154962306a36Sopenharmony_ci			},
155062306a36Sopenharmony_ci			.num_parents = 1,
155162306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
155262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
155362306a36Sopenharmony_ci		},
155462306a36Sopenharmony_ci	},
155562306a36Sopenharmony_ci};
155662306a36Sopenharmony_ci
155762306a36Sopenharmony_cistatic struct clk_branch smmu_mdp_ahb_clk = {
155862306a36Sopenharmony_ci	.halt_reg = 0x2454,
155962306a36Sopenharmony_ci	.clkr = {
156062306a36Sopenharmony_ci		.enable_reg = 0x2454,
156162306a36Sopenharmony_ci		.enable_mask = BIT(0),
156262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
156362306a36Sopenharmony_ci			.name = "smmu_mdp_ahb_clk",
156462306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
156562306a36Sopenharmony_ci				&ahb_clk_src.clkr.hw
156662306a36Sopenharmony_ci			},
156762306a36Sopenharmony_ci			.num_parents = 1,
156862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
156962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
157062306a36Sopenharmony_ci		},
157162306a36Sopenharmony_ci	},
157262306a36Sopenharmony_ci};
157362306a36Sopenharmony_ci
157462306a36Sopenharmony_cistatic struct clk_branch smmu_mdp_axi_clk = {
157562306a36Sopenharmony_ci	.halt_reg = 0x2458,
157662306a36Sopenharmony_ci	.clkr = {
157762306a36Sopenharmony_ci		.enable_reg = 0x2458,
157862306a36Sopenharmony_ci		.enable_mask = BIT(0),
157962306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
158062306a36Sopenharmony_ci			.name = "smmu_mdp_axi_clk",
158162306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
158262306a36Sopenharmony_ci				&axi_clk_src.clkr.hw
158362306a36Sopenharmony_ci			},
158462306a36Sopenharmony_ci			.num_parents = 1,
158562306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
158662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
158762306a36Sopenharmony_ci		},
158862306a36Sopenharmony_ci	},
158962306a36Sopenharmony_ci};
159062306a36Sopenharmony_ci
159162306a36Sopenharmony_cistatic struct clk_branch mmagic_video_axi_clk = {
159262306a36Sopenharmony_ci	.halt_reg = 0x1194,
159362306a36Sopenharmony_ci	.clkr = {
159462306a36Sopenharmony_ci		.enable_reg = 0x1194,
159562306a36Sopenharmony_ci		.enable_mask = BIT(0),
159662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
159762306a36Sopenharmony_ci			.name = "mmagic_video_axi_clk",
159862306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
159962306a36Sopenharmony_ci				&axi_clk_src.clkr.hw
160062306a36Sopenharmony_ci			},
160162306a36Sopenharmony_ci			.num_parents = 1,
160262306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT | CLK_IS_CRITICAL,
160362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
160462306a36Sopenharmony_ci		},
160562306a36Sopenharmony_ci	},
160662306a36Sopenharmony_ci};
160762306a36Sopenharmony_ci
160862306a36Sopenharmony_cistatic struct clk_branch mmagic_video_noc_cfg_ahb_clk = {
160962306a36Sopenharmony_ci	.halt_reg = 0x1198,
161062306a36Sopenharmony_ci	.clkr = {
161162306a36Sopenharmony_ci		.enable_reg = 0x1198,
161262306a36Sopenharmony_ci		.enable_mask = BIT(0),
161362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
161462306a36Sopenharmony_ci			.name = "mmagic_video_noc_cfg_ahb_clk",
161562306a36Sopenharmony_ci			.parent_data = (const struct clk_parent_data[]){
161662306a36Sopenharmony_ci				{ .fw_name = "gcc_mmss_noc_cfg_ahb_clk", .name = "gcc_mmss_noc_cfg_ahb_clk" },
161762306a36Sopenharmony_ci			},
161862306a36Sopenharmony_ci			.num_parents = 1,
161962306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT | CLK_IS_CRITICAL,
162062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
162162306a36Sopenharmony_ci		},
162262306a36Sopenharmony_ci	},
162362306a36Sopenharmony_ci};
162462306a36Sopenharmony_ci
162562306a36Sopenharmony_cistatic struct clk_branch smmu_video_ahb_clk = {
162662306a36Sopenharmony_ci	.halt_reg = 0x1174,
162762306a36Sopenharmony_ci	.clkr = {
162862306a36Sopenharmony_ci		.enable_reg = 0x1174,
162962306a36Sopenharmony_ci		.enable_mask = BIT(0),
163062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
163162306a36Sopenharmony_ci			.name = "smmu_video_ahb_clk",
163262306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
163362306a36Sopenharmony_ci				&ahb_clk_src.clkr.hw
163462306a36Sopenharmony_ci			},
163562306a36Sopenharmony_ci			.num_parents = 1,
163662306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
163762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
163862306a36Sopenharmony_ci		},
163962306a36Sopenharmony_ci	},
164062306a36Sopenharmony_ci};
164162306a36Sopenharmony_ci
164262306a36Sopenharmony_cistatic struct clk_branch smmu_video_axi_clk = {
164362306a36Sopenharmony_ci	.halt_reg = 0x1178,
164462306a36Sopenharmony_ci	.clkr = {
164562306a36Sopenharmony_ci		.enable_reg = 0x1178,
164662306a36Sopenharmony_ci		.enable_mask = BIT(0),
164762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
164862306a36Sopenharmony_ci			.name = "smmu_video_axi_clk",
164962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
165062306a36Sopenharmony_ci				&axi_clk_src.clkr.hw
165162306a36Sopenharmony_ci			},
165262306a36Sopenharmony_ci			.num_parents = 1,
165362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
165462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
165562306a36Sopenharmony_ci		},
165662306a36Sopenharmony_ci	},
165762306a36Sopenharmony_ci};
165862306a36Sopenharmony_ci
165962306a36Sopenharmony_cistatic struct clk_branch mmagic_bimc_noc_cfg_ahb_clk = {
166062306a36Sopenharmony_ci	.halt_reg = 0x5298,
166162306a36Sopenharmony_ci	.clkr = {
166262306a36Sopenharmony_ci		.enable_reg = 0x5298,
166362306a36Sopenharmony_ci		.enable_mask = BIT(0),
166462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
166562306a36Sopenharmony_ci			.name = "mmagic_bimc_noc_cfg_ahb_clk",
166662306a36Sopenharmony_ci			.parent_data = (const struct clk_parent_data[]){
166762306a36Sopenharmony_ci				{ .fw_name = "gcc_mmss_noc_cfg_ahb_clk", .name = "gcc_mmss_noc_cfg_ahb_clk" },
166862306a36Sopenharmony_ci			},
166962306a36Sopenharmony_ci			.num_parents = 1,
167062306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
167162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
167262306a36Sopenharmony_ci		},
167362306a36Sopenharmony_ci	},
167462306a36Sopenharmony_ci};
167562306a36Sopenharmony_ci
167662306a36Sopenharmony_cistatic struct clk_branch gpu_gx_gfx3d_clk = {
167762306a36Sopenharmony_ci	.halt_reg = 0x4028,
167862306a36Sopenharmony_ci	.clkr = {
167962306a36Sopenharmony_ci		.enable_reg = 0x4028,
168062306a36Sopenharmony_ci		.enable_mask = BIT(0),
168162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
168262306a36Sopenharmony_ci			.name = "gpu_gx_gfx3d_clk",
168362306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
168462306a36Sopenharmony_ci				&gfx3d_clk_src.rcg.clkr.hw
168562306a36Sopenharmony_ci			},
168662306a36Sopenharmony_ci			.num_parents = 1,
168762306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
168862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
168962306a36Sopenharmony_ci		},
169062306a36Sopenharmony_ci	},
169162306a36Sopenharmony_ci};
169262306a36Sopenharmony_ci
169362306a36Sopenharmony_cistatic struct clk_branch gpu_gx_rbbmtimer_clk = {
169462306a36Sopenharmony_ci	.halt_reg = 0x40b0,
169562306a36Sopenharmony_ci	.clkr = {
169662306a36Sopenharmony_ci		.enable_reg = 0x40b0,
169762306a36Sopenharmony_ci		.enable_mask = BIT(0),
169862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
169962306a36Sopenharmony_ci			.name = "gpu_gx_rbbmtimer_clk",
170062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
170162306a36Sopenharmony_ci				&rbbmtimer_clk_src.clkr.hw
170262306a36Sopenharmony_ci			},
170362306a36Sopenharmony_ci			.num_parents = 1,
170462306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
170562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
170662306a36Sopenharmony_ci		},
170762306a36Sopenharmony_ci	},
170862306a36Sopenharmony_ci};
170962306a36Sopenharmony_ci
171062306a36Sopenharmony_cistatic struct clk_branch gpu_ahb_clk = {
171162306a36Sopenharmony_ci	.halt_reg = 0x403c,
171262306a36Sopenharmony_ci	.clkr = {
171362306a36Sopenharmony_ci		.enable_reg = 0x403c,
171462306a36Sopenharmony_ci		.enable_mask = BIT(0),
171562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
171662306a36Sopenharmony_ci			.name = "gpu_ahb_clk",
171762306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
171862306a36Sopenharmony_ci				&ahb_clk_src.clkr.hw
171962306a36Sopenharmony_ci			},
172062306a36Sopenharmony_ci			.num_parents = 1,
172162306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
172262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
172362306a36Sopenharmony_ci		},
172462306a36Sopenharmony_ci	},
172562306a36Sopenharmony_ci};
172662306a36Sopenharmony_ci
172762306a36Sopenharmony_cistatic struct clk_branch gpu_aon_isense_clk = {
172862306a36Sopenharmony_ci	.halt_reg = 0x4044,
172962306a36Sopenharmony_ci	.clkr = {
173062306a36Sopenharmony_ci		.enable_reg = 0x4044,
173162306a36Sopenharmony_ci		.enable_mask = BIT(0),
173262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
173362306a36Sopenharmony_ci			.name = "gpu_aon_isense_clk",
173462306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
173562306a36Sopenharmony_ci				&isense_clk_src.clkr.hw
173662306a36Sopenharmony_ci			},
173762306a36Sopenharmony_ci			.num_parents = 1,
173862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
173962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
174062306a36Sopenharmony_ci		},
174162306a36Sopenharmony_ci	},
174262306a36Sopenharmony_ci};
174362306a36Sopenharmony_ci
174462306a36Sopenharmony_cistatic struct clk_branch vmem_maxi_clk = {
174562306a36Sopenharmony_ci	.halt_reg = 0x1204,
174662306a36Sopenharmony_ci	.clkr = {
174762306a36Sopenharmony_ci		.enable_reg = 0x1204,
174862306a36Sopenharmony_ci		.enable_mask = BIT(0),
174962306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
175062306a36Sopenharmony_ci			.name = "vmem_maxi_clk",
175162306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
175262306a36Sopenharmony_ci				&maxi_clk_src.clkr.hw
175362306a36Sopenharmony_ci			},
175462306a36Sopenharmony_ci			.num_parents = 1,
175562306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
175662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
175762306a36Sopenharmony_ci		},
175862306a36Sopenharmony_ci	},
175962306a36Sopenharmony_ci};
176062306a36Sopenharmony_ci
176162306a36Sopenharmony_cistatic struct clk_branch vmem_ahb_clk = {
176262306a36Sopenharmony_ci	.halt_reg = 0x1208,
176362306a36Sopenharmony_ci	.clkr = {
176462306a36Sopenharmony_ci		.enable_reg = 0x1208,
176562306a36Sopenharmony_ci		.enable_mask = BIT(0),
176662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
176762306a36Sopenharmony_ci			.name = "vmem_ahb_clk",
176862306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
176962306a36Sopenharmony_ci				&ahb_clk_src.clkr.hw
177062306a36Sopenharmony_ci			},
177162306a36Sopenharmony_ci			.num_parents = 1,
177262306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
177362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
177462306a36Sopenharmony_ci		},
177562306a36Sopenharmony_ci	},
177662306a36Sopenharmony_ci};
177762306a36Sopenharmony_ci
177862306a36Sopenharmony_cistatic struct clk_branch mmss_rbcpr_clk = {
177962306a36Sopenharmony_ci	.halt_reg = 0x4084,
178062306a36Sopenharmony_ci	.clkr = {
178162306a36Sopenharmony_ci		.enable_reg = 0x4084,
178262306a36Sopenharmony_ci		.enable_mask = BIT(0),
178362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
178462306a36Sopenharmony_ci			.name = "mmss_rbcpr_clk",
178562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
178662306a36Sopenharmony_ci				&rbcpr_clk_src.clkr.hw
178762306a36Sopenharmony_ci			},
178862306a36Sopenharmony_ci			.num_parents = 1,
178962306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
179062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
179162306a36Sopenharmony_ci		},
179262306a36Sopenharmony_ci	},
179362306a36Sopenharmony_ci};
179462306a36Sopenharmony_ci
179562306a36Sopenharmony_cistatic struct clk_branch mmss_rbcpr_ahb_clk = {
179662306a36Sopenharmony_ci	.halt_reg = 0x4088,
179762306a36Sopenharmony_ci	.clkr = {
179862306a36Sopenharmony_ci		.enable_reg = 0x4088,
179962306a36Sopenharmony_ci		.enable_mask = BIT(0),
180062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
180162306a36Sopenharmony_ci			.name = "mmss_rbcpr_ahb_clk",
180262306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
180362306a36Sopenharmony_ci				&ahb_clk_src.clkr.hw
180462306a36Sopenharmony_ci			},
180562306a36Sopenharmony_ci			.num_parents = 1,
180662306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
180762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
180862306a36Sopenharmony_ci		},
180962306a36Sopenharmony_ci	},
181062306a36Sopenharmony_ci};
181162306a36Sopenharmony_ci
181262306a36Sopenharmony_cistatic struct clk_branch video_core_clk = {
181362306a36Sopenharmony_ci	.halt_reg = 0x1028,
181462306a36Sopenharmony_ci	.clkr = {
181562306a36Sopenharmony_ci		.enable_reg = 0x1028,
181662306a36Sopenharmony_ci		.enable_mask = BIT(0),
181762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
181862306a36Sopenharmony_ci			.name = "video_core_clk",
181962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
182062306a36Sopenharmony_ci				&video_core_clk_src.clkr.hw
182162306a36Sopenharmony_ci			},
182262306a36Sopenharmony_ci			.num_parents = 1,
182362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
182462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
182562306a36Sopenharmony_ci		},
182662306a36Sopenharmony_ci	},
182762306a36Sopenharmony_ci};
182862306a36Sopenharmony_ci
182962306a36Sopenharmony_cistatic struct clk_branch video_axi_clk = {
183062306a36Sopenharmony_ci	.halt_reg = 0x1034,
183162306a36Sopenharmony_ci	.clkr = {
183262306a36Sopenharmony_ci		.enable_reg = 0x1034,
183362306a36Sopenharmony_ci		.enable_mask = BIT(0),
183462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
183562306a36Sopenharmony_ci			.name = "video_axi_clk",
183662306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
183762306a36Sopenharmony_ci				&axi_clk_src.clkr.hw
183862306a36Sopenharmony_ci			},
183962306a36Sopenharmony_ci			.num_parents = 1,
184062306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
184162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
184262306a36Sopenharmony_ci		},
184362306a36Sopenharmony_ci	},
184462306a36Sopenharmony_ci};
184562306a36Sopenharmony_ci
184662306a36Sopenharmony_cistatic struct clk_branch video_maxi_clk = {
184762306a36Sopenharmony_ci	.halt_reg = 0x1038,
184862306a36Sopenharmony_ci	.clkr = {
184962306a36Sopenharmony_ci		.enable_reg = 0x1038,
185062306a36Sopenharmony_ci		.enable_mask = BIT(0),
185162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
185262306a36Sopenharmony_ci			.name = "video_maxi_clk",
185362306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
185462306a36Sopenharmony_ci				&maxi_clk_src.clkr.hw
185562306a36Sopenharmony_ci			},
185662306a36Sopenharmony_ci			.num_parents = 1,
185762306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
185862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
185962306a36Sopenharmony_ci		},
186062306a36Sopenharmony_ci	},
186162306a36Sopenharmony_ci};
186262306a36Sopenharmony_ci
186362306a36Sopenharmony_cistatic struct clk_branch video_ahb_clk = {
186462306a36Sopenharmony_ci	.halt_reg = 0x1030,
186562306a36Sopenharmony_ci	.clkr = {
186662306a36Sopenharmony_ci		.enable_reg = 0x1030,
186762306a36Sopenharmony_ci		.enable_mask = BIT(0),
186862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
186962306a36Sopenharmony_ci			.name = "video_ahb_clk",
187062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
187162306a36Sopenharmony_ci				&ahb_clk_src.clkr.hw
187262306a36Sopenharmony_ci			},
187362306a36Sopenharmony_ci			.num_parents = 1,
187462306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
187562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
187662306a36Sopenharmony_ci		},
187762306a36Sopenharmony_ci	},
187862306a36Sopenharmony_ci};
187962306a36Sopenharmony_ci
188062306a36Sopenharmony_cistatic struct clk_branch video_subcore0_clk = {
188162306a36Sopenharmony_ci	.halt_reg = 0x1048,
188262306a36Sopenharmony_ci	.clkr = {
188362306a36Sopenharmony_ci		.enable_reg = 0x1048,
188462306a36Sopenharmony_ci		.enable_mask = BIT(0),
188562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
188662306a36Sopenharmony_ci			.name = "video_subcore0_clk",
188762306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
188862306a36Sopenharmony_ci				&video_subcore0_clk_src.clkr.hw
188962306a36Sopenharmony_ci			},
189062306a36Sopenharmony_ci			.num_parents = 1,
189162306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
189262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
189362306a36Sopenharmony_ci		},
189462306a36Sopenharmony_ci	},
189562306a36Sopenharmony_ci};
189662306a36Sopenharmony_ci
189762306a36Sopenharmony_cistatic struct clk_branch video_subcore1_clk = {
189862306a36Sopenharmony_ci	.halt_reg = 0x104c,
189962306a36Sopenharmony_ci	.clkr = {
190062306a36Sopenharmony_ci		.enable_reg = 0x104c,
190162306a36Sopenharmony_ci		.enable_mask = BIT(0),
190262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
190362306a36Sopenharmony_ci			.name = "video_subcore1_clk",
190462306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
190562306a36Sopenharmony_ci				&video_subcore1_clk_src.clkr.hw
190662306a36Sopenharmony_ci			},
190762306a36Sopenharmony_ci			.num_parents = 1,
190862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
190962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
191062306a36Sopenharmony_ci		},
191162306a36Sopenharmony_ci	},
191262306a36Sopenharmony_ci};
191362306a36Sopenharmony_ci
191462306a36Sopenharmony_cistatic struct clk_branch mdss_ahb_clk = {
191562306a36Sopenharmony_ci	.halt_reg = 0x2308,
191662306a36Sopenharmony_ci	.clkr = {
191762306a36Sopenharmony_ci		.enable_reg = 0x2308,
191862306a36Sopenharmony_ci		.enable_mask = BIT(0),
191962306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
192062306a36Sopenharmony_ci			.name = "mdss_ahb_clk",
192162306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
192262306a36Sopenharmony_ci				&ahb_clk_src.clkr.hw
192362306a36Sopenharmony_ci			},
192462306a36Sopenharmony_ci			.num_parents = 1,
192562306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
192662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
192762306a36Sopenharmony_ci		},
192862306a36Sopenharmony_ci	},
192962306a36Sopenharmony_ci};
193062306a36Sopenharmony_ci
193162306a36Sopenharmony_cistatic struct clk_branch mdss_hdmi_ahb_clk = {
193262306a36Sopenharmony_ci	.halt_reg = 0x230c,
193362306a36Sopenharmony_ci	.clkr = {
193462306a36Sopenharmony_ci		.enable_reg = 0x230c,
193562306a36Sopenharmony_ci		.enable_mask = BIT(0),
193662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
193762306a36Sopenharmony_ci			.name = "mdss_hdmi_ahb_clk",
193862306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
193962306a36Sopenharmony_ci				&ahb_clk_src.clkr.hw
194062306a36Sopenharmony_ci			},
194162306a36Sopenharmony_ci			.num_parents = 1,
194262306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
194362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
194462306a36Sopenharmony_ci		},
194562306a36Sopenharmony_ci	},
194662306a36Sopenharmony_ci};
194762306a36Sopenharmony_ci
194862306a36Sopenharmony_cistatic struct clk_branch mdss_axi_clk = {
194962306a36Sopenharmony_ci	.halt_reg = 0x2310,
195062306a36Sopenharmony_ci	.clkr = {
195162306a36Sopenharmony_ci		.enable_reg = 0x2310,
195262306a36Sopenharmony_ci		.enable_mask = BIT(0),
195362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
195462306a36Sopenharmony_ci			.name = "mdss_axi_clk",
195562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
195662306a36Sopenharmony_ci				&axi_clk_src.clkr.hw
195762306a36Sopenharmony_ci			},
195862306a36Sopenharmony_ci			.num_parents = 1,
195962306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
196062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
196162306a36Sopenharmony_ci		},
196262306a36Sopenharmony_ci	},
196362306a36Sopenharmony_ci};
196462306a36Sopenharmony_ci
196562306a36Sopenharmony_cistatic struct clk_branch mdss_pclk0_clk = {
196662306a36Sopenharmony_ci	.halt_reg = 0x2314,
196762306a36Sopenharmony_ci	.clkr = {
196862306a36Sopenharmony_ci		.enable_reg = 0x2314,
196962306a36Sopenharmony_ci		.enable_mask = BIT(0),
197062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
197162306a36Sopenharmony_ci			.name = "mdss_pclk0_clk",
197262306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
197362306a36Sopenharmony_ci				&pclk0_clk_src.clkr.hw
197462306a36Sopenharmony_ci			},
197562306a36Sopenharmony_ci			.num_parents = 1,
197662306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
197762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
197862306a36Sopenharmony_ci		},
197962306a36Sopenharmony_ci	},
198062306a36Sopenharmony_ci};
198162306a36Sopenharmony_ci
198262306a36Sopenharmony_cistatic struct clk_branch mdss_pclk1_clk = {
198362306a36Sopenharmony_ci	.halt_reg = 0x2318,
198462306a36Sopenharmony_ci	.clkr = {
198562306a36Sopenharmony_ci		.enable_reg = 0x2318,
198662306a36Sopenharmony_ci		.enable_mask = BIT(0),
198762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
198862306a36Sopenharmony_ci			.name = "mdss_pclk1_clk",
198962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
199062306a36Sopenharmony_ci				&pclk1_clk_src.clkr.hw
199162306a36Sopenharmony_ci			},
199262306a36Sopenharmony_ci			.num_parents = 1,
199362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
199462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
199562306a36Sopenharmony_ci		},
199662306a36Sopenharmony_ci	},
199762306a36Sopenharmony_ci};
199862306a36Sopenharmony_ci
199962306a36Sopenharmony_cistatic struct clk_branch mdss_mdp_clk = {
200062306a36Sopenharmony_ci	.halt_reg = 0x231c,
200162306a36Sopenharmony_ci	.clkr = {
200262306a36Sopenharmony_ci		.enable_reg = 0x231c,
200362306a36Sopenharmony_ci		.enable_mask = BIT(0),
200462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
200562306a36Sopenharmony_ci			.name = "mdss_mdp_clk",
200662306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
200762306a36Sopenharmony_ci				&mdp_clk_src.clkr.hw
200862306a36Sopenharmony_ci			},
200962306a36Sopenharmony_ci			.num_parents = 1,
201062306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
201162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
201262306a36Sopenharmony_ci		},
201362306a36Sopenharmony_ci	},
201462306a36Sopenharmony_ci};
201562306a36Sopenharmony_ci
201662306a36Sopenharmony_cistatic struct clk_branch mdss_extpclk_clk = {
201762306a36Sopenharmony_ci	.halt_reg = 0x2324,
201862306a36Sopenharmony_ci	.clkr = {
201962306a36Sopenharmony_ci		.enable_reg = 0x2324,
202062306a36Sopenharmony_ci		.enable_mask = BIT(0),
202162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
202262306a36Sopenharmony_ci			.name = "mdss_extpclk_clk",
202362306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
202462306a36Sopenharmony_ci				&extpclk_clk_src.clkr.hw
202562306a36Sopenharmony_ci			},
202662306a36Sopenharmony_ci			.num_parents = 1,
202762306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
202862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
202962306a36Sopenharmony_ci		},
203062306a36Sopenharmony_ci	},
203162306a36Sopenharmony_ci};
203262306a36Sopenharmony_ci
203362306a36Sopenharmony_cistatic struct clk_branch mdss_vsync_clk = {
203462306a36Sopenharmony_ci	.halt_reg = 0x2328,
203562306a36Sopenharmony_ci	.clkr = {
203662306a36Sopenharmony_ci		.enable_reg = 0x2328,
203762306a36Sopenharmony_ci		.enable_mask = BIT(0),
203862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
203962306a36Sopenharmony_ci			.name = "mdss_vsync_clk",
204062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
204162306a36Sopenharmony_ci				&vsync_clk_src.clkr.hw
204262306a36Sopenharmony_ci			},
204362306a36Sopenharmony_ci			.num_parents = 1,
204462306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
204562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
204662306a36Sopenharmony_ci		},
204762306a36Sopenharmony_ci	},
204862306a36Sopenharmony_ci};
204962306a36Sopenharmony_ci
205062306a36Sopenharmony_cistatic struct clk_branch mdss_hdmi_clk = {
205162306a36Sopenharmony_ci	.halt_reg = 0x2338,
205262306a36Sopenharmony_ci	.clkr = {
205362306a36Sopenharmony_ci		.enable_reg = 0x2338,
205462306a36Sopenharmony_ci		.enable_mask = BIT(0),
205562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
205662306a36Sopenharmony_ci			.name = "mdss_hdmi_clk",
205762306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
205862306a36Sopenharmony_ci				&hdmi_clk_src.clkr.hw
205962306a36Sopenharmony_ci			},
206062306a36Sopenharmony_ci			.num_parents = 1,
206162306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
206262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
206362306a36Sopenharmony_ci		},
206462306a36Sopenharmony_ci	},
206562306a36Sopenharmony_ci};
206662306a36Sopenharmony_ci
206762306a36Sopenharmony_cistatic struct clk_branch mdss_byte0_clk = {
206862306a36Sopenharmony_ci	.halt_reg = 0x233c,
206962306a36Sopenharmony_ci	.clkr = {
207062306a36Sopenharmony_ci		.enable_reg = 0x233c,
207162306a36Sopenharmony_ci		.enable_mask = BIT(0),
207262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
207362306a36Sopenharmony_ci			.name = "mdss_byte0_clk",
207462306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
207562306a36Sopenharmony_ci				&byte0_clk_src.clkr.hw
207662306a36Sopenharmony_ci			},
207762306a36Sopenharmony_ci			.num_parents = 1,
207862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
207962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
208062306a36Sopenharmony_ci		},
208162306a36Sopenharmony_ci	},
208262306a36Sopenharmony_ci};
208362306a36Sopenharmony_ci
208462306a36Sopenharmony_cistatic struct clk_branch mdss_byte1_clk = {
208562306a36Sopenharmony_ci	.halt_reg = 0x2340,
208662306a36Sopenharmony_ci	.clkr = {
208762306a36Sopenharmony_ci		.enable_reg = 0x2340,
208862306a36Sopenharmony_ci		.enable_mask = BIT(0),
208962306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
209062306a36Sopenharmony_ci			.name = "mdss_byte1_clk",
209162306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
209262306a36Sopenharmony_ci				&byte1_clk_src.clkr.hw
209362306a36Sopenharmony_ci			},
209462306a36Sopenharmony_ci			.num_parents = 1,
209562306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
209662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
209762306a36Sopenharmony_ci		},
209862306a36Sopenharmony_ci	},
209962306a36Sopenharmony_ci};
210062306a36Sopenharmony_ci
210162306a36Sopenharmony_cistatic struct clk_branch mdss_esc0_clk = {
210262306a36Sopenharmony_ci	.halt_reg = 0x2344,
210362306a36Sopenharmony_ci	.clkr = {
210462306a36Sopenharmony_ci		.enable_reg = 0x2344,
210562306a36Sopenharmony_ci		.enable_mask = BIT(0),
210662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
210762306a36Sopenharmony_ci			.name = "mdss_esc0_clk",
210862306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
210962306a36Sopenharmony_ci				&esc0_clk_src.clkr.hw
211062306a36Sopenharmony_ci			},
211162306a36Sopenharmony_ci			.num_parents = 1,
211262306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
211362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
211462306a36Sopenharmony_ci		},
211562306a36Sopenharmony_ci	},
211662306a36Sopenharmony_ci};
211762306a36Sopenharmony_ci
211862306a36Sopenharmony_cistatic struct clk_branch mdss_esc1_clk = {
211962306a36Sopenharmony_ci	.halt_reg = 0x2348,
212062306a36Sopenharmony_ci	.clkr = {
212162306a36Sopenharmony_ci		.enable_reg = 0x2348,
212262306a36Sopenharmony_ci		.enable_mask = BIT(0),
212362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
212462306a36Sopenharmony_ci			.name = "mdss_esc1_clk",
212562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
212662306a36Sopenharmony_ci				&esc1_clk_src.clkr.hw
212762306a36Sopenharmony_ci			},
212862306a36Sopenharmony_ci			.num_parents = 1,
212962306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
213062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
213162306a36Sopenharmony_ci		},
213262306a36Sopenharmony_ci	},
213362306a36Sopenharmony_ci};
213462306a36Sopenharmony_ci
213562306a36Sopenharmony_cistatic struct clk_branch camss_top_ahb_clk = {
213662306a36Sopenharmony_ci	.halt_reg = 0x3484,
213762306a36Sopenharmony_ci	.clkr = {
213862306a36Sopenharmony_ci		.enable_reg = 0x3484,
213962306a36Sopenharmony_ci		.enable_mask = BIT(0),
214062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
214162306a36Sopenharmony_ci			.name = "camss_top_ahb_clk",
214262306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
214362306a36Sopenharmony_ci				&ahb_clk_src.clkr.hw
214462306a36Sopenharmony_ci			},
214562306a36Sopenharmony_ci			.num_parents = 1,
214662306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
214762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
214862306a36Sopenharmony_ci		},
214962306a36Sopenharmony_ci	},
215062306a36Sopenharmony_ci};
215162306a36Sopenharmony_ci
215262306a36Sopenharmony_cistatic struct clk_branch camss_ahb_clk = {
215362306a36Sopenharmony_ci	.halt_reg = 0x348c,
215462306a36Sopenharmony_ci	.clkr = {
215562306a36Sopenharmony_ci		.enable_reg = 0x348c,
215662306a36Sopenharmony_ci		.enable_mask = BIT(0),
215762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
215862306a36Sopenharmony_ci			.name = "camss_ahb_clk",
215962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
216062306a36Sopenharmony_ci				&ahb_clk_src.clkr.hw
216162306a36Sopenharmony_ci			},
216262306a36Sopenharmony_ci			.num_parents = 1,
216362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
216462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
216562306a36Sopenharmony_ci		},
216662306a36Sopenharmony_ci	},
216762306a36Sopenharmony_ci};
216862306a36Sopenharmony_ci
216962306a36Sopenharmony_cistatic struct clk_branch camss_micro_ahb_clk = {
217062306a36Sopenharmony_ci	.halt_reg = 0x3494,
217162306a36Sopenharmony_ci	.clkr = {
217262306a36Sopenharmony_ci		.enable_reg = 0x3494,
217362306a36Sopenharmony_ci		.enable_mask = BIT(0),
217462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
217562306a36Sopenharmony_ci			.name = "camss_micro_ahb_clk",
217662306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
217762306a36Sopenharmony_ci				&ahb_clk_src.clkr.hw
217862306a36Sopenharmony_ci			},
217962306a36Sopenharmony_ci			.num_parents = 1,
218062306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
218162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
218262306a36Sopenharmony_ci		},
218362306a36Sopenharmony_ci	},
218462306a36Sopenharmony_ci};
218562306a36Sopenharmony_ci
218662306a36Sopenharmony_cistatic struct clk_branch camss_gp0_clk = {
218762306a36Sopenharmony_ci	.halt_reg = 0x3444,
218862306a36Sopenharmony_ci	.clkr = {
218962306a36Sopenharmony_ci		.enable_reg = 0x3444,
219062306a36Sopenharmony_ci		.enable_mask = BIT(0),
219162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
219262306a36Sopenharmony_ci			.name = "camss_gp0_clk",
219362306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
219462306a36Sopenharmony_ci				&camss_gp0_clk_src.clkr.hw
219562306a36Sopenharmony_ci			},
219662306a36Sopenharmony_ci			.num_parents = 1,
219762306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
219862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
219962306a36Sopenharmony_ci		},
220062306a36Sopenharmony_ci	},
220162306a36Sopenharmony_ci};
220262306a36Sopenharmony_ci
220362306a36Sopenharmony_cistatic struct clk_branch camss_gp1_clk = {
220462306a36Sopenharmony_ci	.halt_reg = 0x3474,
220562306a36Sopenharmony_ci	.clkr = {
220662306a36Sopenharmony_ci		.enable_reg = 0x3474,
220762306a36Sopenharmony_ci		.enable_mask = BIT(0),
220862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
220962306a36Sopenharmony_ci			.name = "camss_gp1_clk",
221062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
221162306a36Sopenharmony_ci				&camss_gp1_clk_src.clkr.hw
221262306a36Sopenharmony_ci			},
221362306a36Sopenharmony_ci			.num_parents = 1,
221462306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
221562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
221662306a36Sopenharmony_ci		},
221762306a36Sopenharmony_ci	},
221862306a36Sopenharmony_ci};
221962306a36Sopenharmony_ci
222062306a36Sopenharmony_cistatic struct clk_branch camss_mclk0_clk = {
222162306a36Sopenharmony_ci	.halt_reg = 0x3384,
222262306a36Sopenharmony_ci	.clkr = {
222362306a36Sopenharmony_ci		.enable_reg = 0x3384,
222462306a36Sopenharmony_ci		.enable_mask = BIT(0),
222562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
222662306a36Sopenharmony_ci			.name = "camss_mclk0_clk",
222762306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
222862306a36Sopenharmony_ci				&mclk0_clk_src.clkr.hw
222962306a36Sopenharmony_ci			},
223062306a36Sopenharmony_ci			.num_parents = 1,
223162306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
223262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
223362306a36Sopenharmony_ci		},
223462306a36Sopenharmony_ci	},
223562306a36Sopenharmony_ci};
223662306a36Sopenharmony_ci
223762306a36Sopenharmony_cistatic struct clk_branch camss_mclk1_clk = {
223862306a36Sopenharmony_ci	.halt_reg = 0x33b4,
223962306a36Sopenharmony_ci	.clkr = {
224062306a36Sopenharmony_ci		.enable_reg = 0x33b4,
224162306a36Sopenharmony_ci		.enable_mask = BIT(0),
224262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
224362306a36Sopenharmony_ci			.name = "camss_mclk1_clk",
224462306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
224562306a36Sopenharmony_ci				&mclk1_clk_src.clkr.hw
224662306a36Sopenharmony_ci			},
224762306a36Sopenharmony_ci			.num_parents = 1,
224862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
224962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
225062306a36Sopenharmony_ci		},
225162306a36Sopenharmony_ci	},
225262306a36Sopenharmony_ci};
225362306a36Sopenharmony_ci
225462306a36Sopenharmony_cistatic struct clk_branch camss_mclk2_clk = {
225562306a36Sopenharmony_ci	.halt_reg = 0x33e4,
225662306a36Sopenharmony_ci	.clkr = {
225762306a36Sopenharmony_ci		.enable_reg = 0x33e4,
225862306a36Sopenharmony_ci		.enable_mask = BIT(0),
225962306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
226062306a36Sopenharmony_ci			.name = "camss_mclk2_clk",
226162306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
226262306a36Sopenharmony_ci				&mclk2_clk_src.clkr.hw
226362306a36Sopenharmony_ci			},
226462306a36Sopenharmony_ci			.num_parents = 1,
226562306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
226662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
226762306a36Sopenharmony_ci		},
226862306a36Sopenharmony_ci	},
226962306a36Sopenharmony_ci};
227062306a36Sopenharmony_ci
227162306a36Sopenharmony_cistatic struct clk_branch camss_mclk3_clk = {
227262306a36Sopenharmony_ci	.halt_reg = 0x3414,
227362306a36Sopenharmony_ci	.clkr = {
227462306a36Sopenharmony_ci		.enable_reg = 0x3414,
227562306a36Sopenharmony_ci		.enable_mask = BIT(0),
227662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
227762306a36Sopenharmony_ci			.name = "camss_mclk3_clk",
227862306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
227962306a36Sopenharmony_ci				&mclk3_clk_src.clkr.hw
228062306a36Sopenharmony_ci			},
228162306a36Sopenharmony_ci			.num_parents = 1,
228262306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
228362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
228462306a36Sopenharmony_ci		},
228562306a36Sopenharmony_ci	},
228662306a36Sopenharmony_ci};
228762306a36Sopenharmony_ci
228862306a36Sopenharmony_cistatic struct clk_branch camss_cci_clk = {
228962306a36Sopenharmony_ci	.halt_reg = 0x3344,
229062306a36Sopenharmony_ci	.clkr = {
229162306a36Sopenharmony_ci		.enable_reg = 0x3344,
229262306a36Sopenharmony_ci		.enable_mask = BIT(0),
229362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
229462306a36Sopenharmony_ci			.name = "camss_cci_clk",
229562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
229662306a36Sopenharmony_ci				&cci_clk_src.clkr.hw
229762306a36Sopenharmony_ci			},
229862306a36Sopenharmony_ci			.num_parents = 1,
229962306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
230062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
230162306a36Sopenharmony_ci		},
230262306a36Sopenharmony_ci	},
230362306a36Sopenharmony_ci};
230462306a36Sopenharmony_ci
230562306a36Sopenharmony_cistatic struct clk_branch camss_cci_ahb_clk = {
230662306a36Sopenharmony_ci	.halt_reg = 0x3348,
230762306a36Sopenharmony_ci	.clkr = {
230862306a36Sopenharmony_ci		.enable_reg = 0x3348,
230962306a36Sopenharmony_ci		.enable_mask = BIT(0),
231062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
231162306a36Sopenharmony_ci			.name = "camss_cci_ahb_clk",
231262306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
231362306a36Sopenharmony_ci				&ahb_clk_src.clkr.hw
231462306a36Sopenharmony_ci			},
231562306a36Sopenharmony_ci			.num_parents = 1,
231662306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
231762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
231862306a36Sopenharmony_ci		},
231962306a36Sopenharmony_ci	},
232062306a36Sopenharmony_ci};
232162306a36Sopenharmony_ci
232262306a36Sopenharmony_cistatic struct clk_branch camss_csi0phytimer_clk = {
232362306a36Sopenharmony_ci	.halt_reg = 0x3024,
232462306a36Sopenharmony_ci	.clkr = {
232562306a36Sopenharmony_ci		.enable_reg = 0x3024,
232662306a36Sopenharmony_ci		.enable_mask = BIT(0),
232762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
232862306a36Sopenharmony_ci			.name = "camss_csi0phytimer_clk",
232962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
233062306a36Sopenharmony_ci				&csi0phytimer_clk_src.clkr.hw
233162306a36Sopenharmony_ci			},
233262306a36Sopenharmony_ci			.num_parents = 1,
233362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
233462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
233562306a36Sopenharmony_ci		},
233662306a36Sopenharmony_ci	},
233762306a36Sopenharmony_ci};
233862306a36Sopenharmony_ci
233962306a36Sopenharmony_cistatic struct clk_branch camss_csi1phytimer_clk = {
234062306a36Sopenharmony_ci	.halt_reg = 0x3054,
234162306a36Sopenharmony_ci	.clkr = {
234262306a36Sopenharmony_ci		.enable_reg = 0x3054,
234362306a36Sopenharmony_ci		.enable_mask = BIT(0),
234462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
234562306a36Sopenharmony_ci			.name = "camss_csi1phytimer_clk",
234662306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
234762306a36Sopenharmony_ci				&csi1phytimer_clk_src.clkr.hw
234862306a36Sopenharmony_ci			},
234962306a36Sopenharmony_ci			.num_parents = 1,
235062306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
235162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
235262306a36Sopenharmony_ci		},
235362306a36Sopenharmony_ci	},
235462306a36Sopenharmony_ci};
235562306a36Sopenharmony_ci
235662306a36Sopenharmony_cistatic struct clk_branch camss_csi2phytimer_clk = {
235762306a36Sopenharmony_ci	.halt_reg = 0x3084,
235862306a36Sopenharmony_ci	.clkr = {
235962306a36Sopenharmony_ci		.enable_reg = 0x3084,
236062306a36Sopenharmony_ci		.enable_mask = BIT(0),
236162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
236262306a36Sopenharmony_ci			.name = "camss_csi2phytimer_clk",
236362306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
236462306a36Sopenharmony_ci				&csi2phytimer_clk_src.clkr.hw
236562306a36Sopenharmony_ci			},
236662306a36Sopenharmony_ci			.num_parents = 1,
236762306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
236862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
236962306a36Sopenharmony_ci		},
237062306a36Sopenharmony_ci	},
237162306a36Sopenharmony_ci};
237262306a36Sopenharmony_ci
237362306a36Sopenharmony_cistatic struct clk_branch camss_csiphy0_3p_clk = {
237462306a36Sopenharmony_ci	.halt_reg = 0x3234,
237562306a36Sopenharmony_ci	.clkr = {
237662306a36Sopenharmony_ci		.enable_reg = 0x3234,
237762306a36Sopenharmony_ci		.enable_mask = BIT(0),
237862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
237962306a36Sopenharmony_ci			.name = "camss_csiphy0_3p_clk",
238062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
238162306a36Sopenharmony_ci				&csiphy0_3p_clk_src.clkr.hw
238262306a36Sopenharmony_ci			},
238362306a36Sopenharmony_ci			.num_parents = 1,
238462306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
238562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
238662306a36Sopenharmony_ci		},
238762306a36Sopenharmony_ci	},
238862306a36Sopenharmony_ci};
238962306a36Sopenharmony_ci
239062306a36Sopenharmony_cistatic struct clk_branch camss_csiphy1_3p_clk = {
239162306a36Sopenharmony_ci	.halt_reg = 0x3254,
239262306a36Sopenharmony_ci	.clkr = {
239362306a36Sopenharmony_ci		.enable_reg = 0x3254,
239462306a36Sopenharmony_ci		.enable_mask = BIT(0),
239562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
239662306a36Sopenharmony_ci			.name = "camss_csiphy1_3p_clk",
239762306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
239862306a36Sopenharmony_ci				&csiphy1_3p_clk_src.clkr.hw
239962306a36Sopenharmony_ci			},
240062306a36Sopenharmony_ci			.num_parents = 1,
240162306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
240262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
240362306a36Sopenharmony_ci		},
240462306a36Sopenharmony_ci	},
240562306a36Sopenharmony_ci};
240662306a36Sopenharmony_ci
240762306a36Sopenharmony_cistatic struct clk_branch camss_csiphy2_3p_clk = {
240862306a36Sopenharmony_ci	.halt_reg = 0x3274,
240962306a36Sopenharmony_ci	.clkr = {
241062306a36Sopenharmony_ci		.enable_reg = 0x3274,
241162306a36Sopenharmony_ci		.enable_mask = BIT(0),
241262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
241362306a36Sopenharmony_ci			.name = "camss_csiphy2_3p_clk",
241462306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
241562306a36Sopenharmony_ci				&csiphy2_3p_clk_src.clkr.hw
241662306a36Sopenharmony_ci			},
241762306a36Sopenharmony_ci			.num_parents = 1,
241862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
241962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
242062306a36Sopenharmony_ci		},
242162306a36Sopenharmony_ci	},
242262306a36Sopenharmony_ci};
242362306a36Sopenharmony_ci
242462306a36Sopenharmony_cistatic struct clk_branch camss_jpeg0_clk = {
242562306a36Sopenharmony_ci	.halt_reg = 0x35a8,
242662306a36Sopenharmony_ci	.clkr = {
242762306a36Sopenharmony_ci		.enable_reg = 0x35a8,
242862306a36Sopenharmony_ci		.enable_mask = BIT(0),
242962306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
243062306a36Sopenharmony_ci			.name = "camss_jpeg0_clk",
243162306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
243262306a36Sopenharmony_ci				&jpeg0_clk_src.clkr.hw
243362306a36Sopenharmony_ci			},
243462306a36Sopenharmony_ci			.num_parents = 1,
243562306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
243662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
243762306a36Sopenharmony_ci		},
243862306a36Sopenharmony_ci	},
243962306a36Sopenharmony_ci};
244062306a36Sopenharmony_ci
244162306a36Sopenharmony_cistatic struct clk_branch camss_jpeg2_clk = {
244262306a36Sopenharmony_ci	.halt_reg = 0x35b0,
244362306a36Sopenharmony_ci	.clkr = {
244462306a36Sopenharmony_ci		.enable_reg = 0x35b0,
244562306a36Sopenharmony_ci		.enable_mask = BIT(0),
244662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
244762306a36Sopenharmony_ci			.name = "camss_jpeg2_clk",
244862306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
244962306a36Sopenharmony_ci				&jpeg2_clk_src.clkr.hw
245062306a36Sopenharmony_ci			},
245162306a36Sopenharmony_ci			.num_parents = 1,
245262306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
245362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
245462306a36Sopenharmony_ci		},
245562306a36Sopenharmony_ci	},
245662306a36Sopenharmony_ci};
245762306a36Sopenharmony_ci
245862306a36Sopenharmony_cistatic struct clk_branch camss_jpeg_dma_clk = {
245962306a36Sopenharmony_ci	.halt_reg = 0x35c0,
246062306a36Sopenharmony_ci	.clkr = {
246162306a36Sopenharmony_ci		.enable_reg = 0x35c0,
246262306a36Sopenharmony_ci		.enable_mask = BIT(0),
246362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
246462306a36Sopenharmony_ci			.name = "camss_jpeg_dma_clk",
246562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
246662306a36Sopenharmony_ci				&jpeg_dma_clk_src.clkr.hw
246762306a36Sopenharmony_ci			},
246862306a36Sopenharmony_ci			.num_parents = 1,
246962306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
247062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
247162306a36Sopenharmony_ci		},
247262306a36Sopenharmony_ci	},
247362306a36Sopenharmony_ci};
247462306a36Sopenharmony_ci
247562306a36Sopenharmony_cistatic struct clk_branch camss_jpeg_ahb_clk = {
247662306a36Sopenharmony_ci	.halt_reg = 0x35b4,
247762306a36Sopenharmony_ci	.clkr = {
247862306a36Sopenharmony_ci		.enable_reg = 0x35b4,
247962306a36Sopenharmony_ci		.enable_mask = BIT(0),
248062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
248162306a36Sopenharmony_ci			.name = "camss_jpeg_ahb_clk",
248262306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
248362306a36Sopenharmony_ci				&ahb_clk_src.clkr.hw
248462306a36Sopenharmony_ci			},
248562306a36Sopenharmony_ci			.num_parents = 1,
248662306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
248762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
248862306a36Sopenharmony_ci		},
248962306a36Sopenharmony_ci	},
249062306a36Sopenharmony_ci};
249162306a36Sopenharmony_ci
249262306a36Sopenharmony_cistatic struct clk_branch camss_jpeg_axi_clk = {
249362306a36Sopenharmony_ci	.halt_reg = 0x35b8,
249462306a36Sopenharmony_ci	.clkr = {
249562306a36Sopenharmony_ci		.enable_reg = 0x35b8,
249662306a36Sopenharmony_ci		.enable_mask = BIT(0),
249762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
249862306a36Sopenharmony_ci			.name = "camss_jpeg_axi_clk",
249962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
250062306a36Sopenharmony_ci				&axi_clk_src.clkr.hw
250162306a36Sopenharmony_ci			},
250262306a36Sopenharmony_ci			.num_parents = 1,
250362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
250462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
250562306a36Sopenharmony_ci		},
250662306a36Sopenharmony_ci	},
250762306a36Sopenharmony_ci};
250862306a36Sopenharmony_ci
250962306a36Sopenharmony_cistatic struct clk_branch camss_vfe_ahb_clk = {
251062306a36Sopenharmony_ci	.halt_reg = 0x36b8,
251162306a36Sopenharmony_ci	.clkr = {
251262306a36Sopenharmony_ci		.enable_reg = 0x36b8,
251362306a36Sopenharmony_ci		.enable_mask = BIT(0),
251462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
251562306a36Sopenharmony_ci			.name = "camss_vfe_ahb_clk",
251662306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
251762306a36Sopenharmony_ci				&ahb_clk_src.clkr.hw
251862306a36Sopenharmony_ci			},
251962306a36Sopenharmony_ci			.num_parents = 1,
252062306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
252162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
252262306a36Sopenharmony_ci		},
252362306a36Sopenharmony_ci	},
252462306a36Sopenharmony_ci};
252562306a36Sopenharmony_ci
252662306a36Sopenharmony_cistatic struct clk_branch camss_vfe_axi_clk = {
252762306a36Sopenharmony_ci	.halt_reg = 0x36bc,
252862306a36Sopenharmony_ci	.clkr = {
252962306a36Sopenharmony_ci		.enable_reg = 0x36bc,
253062306a36Sopenharmony_ci		.enable_mask = BIT(0),
253162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
253262306a36Sopenharmony_ci			.name = "camss_vfe_axi_clk",
253362306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
253462306a36Sopenharmony_ci				&axi_clk_src.clkr.hw
253562306a36Sopenharmony_ci			},
253662306a36Sopenharmony_ci			.num_parents = 1,
253762306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
253862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
253962306a36Sopenharmony_ci		},
254062306a36Sopenharmony_ci	},
254162306a36Sopenharmony_ci};
254262306a36Sopenharmony_ci
254362306a36Sopenharmony_cistatic struct clk_branch camss_vfe0_clk = {
254462306a36Sopenharmony_ci	.halt_reg = 0x36a8,
254562306a36Sopenharmony_ci	.clkr = {
254662306a36Sopenharmony_ci		.enable_reg = 0x36a8,
254762306a36Sopenharmony_ci		.enable_mask = BIT(0),
254862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
254962306a36Sopenharmony_ci			.name = "camss_vfe0_clk",
255062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
255162306a36Sopenharmony_ci				&vfe0_clk_src.clkr.hw
255262306a36Sopenharmony_ci			},
255362306a36Sopenharmony_ci			.num_parents = 1,
255462306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
255562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
255662306a36Sopenharmony_ci		},
255762306a36Sopenharmony_ci	},
255862306a36Sopenharmony_ci};
255962306a36Sopenharmony_ci
256062306a36Sopenharmony_cistatic struct clk_branch camss_vfe0_stream_clk = {
256162306a36Sopenharmony_ci	.halt_reg = 0x3720,
256262306a36Sopenharmony_ci	.clkr = {
256362306a36Sopenharmony_ci		.enable_reg = 0x3720,
256462306a36Sopenharmony_ci		.enable_mask = BIT(0),
256562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
256662306a36Sopenharmony_ci			.name = "camss_vfe0_stream_clk",
256762306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
256862306a36Sopenharmony_ci				&vfe0_clk_src.clkr.hw
256962306a36Sopenharmony_ci			},
257062306a36Sopenharmony_ci			.num_parents = 1,
257162306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
257262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
257362306a36Sopenharmony_ci		},
257462306a36Sopenharmony_ci	},
257562306a36Sopenharmony_ci};
257662306a36Sopenharmony_ci
257762306a36Sopenharmony_cistatic struct clk_branch camss_vfe0_ahb_clk = {
257862306a36Sopenharmony_ci	.halt_reg = 0x3668,
257962306a36Sopenharmony_ci	.clkr = {
258062306a36Sopenharmony_ci		.enable_reg = 0x3668,
258162306a36Sopenharmony_ci		.enable_mask = BIT(0),
258262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
258362306a36Sopenharmony_ci			.name = "camss_vfe0_ahb_clk",
258462306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
258562306a36Sopenharmony_ci				&ahb_clk_src.clkr.hw
258662306a36Sopenharmony_ci			},
258762306a36Sopenharmony_ci			.num_parents = 1,
258862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
258962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
259062306a36Sopenharmony_ci		},
259162306a36Sopenharmony_ci	},
259262306a36Sopenharmony_ci};
259362306a36Sopenharmony_ci
259462306a36Sopenharmony_cistatic struct clk_branch camss_vfe1_clk = {
259562306a36Sopenharmony_ci	.halt_reg = 0x36ac,
259662306a36Sopenharmony_ci	.clkr = {
259762306a36Sopenharmony_ci		.enable_reg = 0x36ac,
259862306a36Sopenharmony_ci		.enable_mask = BIT(0),
259962306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
260062306a36Sopenharmony_ci			.name = "camss_vfe1_clk",
260162306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
260262306a36Sopenharmony_ci				&vfe1_clk_src.clkr.hw
260362306a36Sopenharmony_ci			},
260462306a36Sopenharmony_ci			.num_parents = 1,
260562306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
260662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
260762306a36Sopenharmony_ci		},
260862306a36Sopenharmony_ci	},
260962306a36Sopenharmony_ci};
261062306a36Sopenharmony_ci
261162306a36Sopenharmony_cistatic struct clk_branch camss_vfe1_stream_clk = {
261262306a36Sopenharmony_ci	.halt_reg = 0x3724,
261362306a36Sopenharmony_ci	.clkr = {
261462306a36Sopenharmony_ci		.enable_reg = 0x3724,
261562306a36Sopenharmony_ci		.enable_mask = BIT(0),
261662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
261762306a36Sopenharmony_ci			.name = "camss_vfe1_stream_clk",
261862306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
261962306a36Sopenharmony_ci				&vfe1_clk_src.clkr.hw
262062306a36Sopenharmony_ci			},
262162306a36Sopenharmony_ci			.num_parents = 1,
262262306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
262362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
262462306a36Sopenharmony_ci		},
262562306a36Sopenharmony_ci	},
262662306a36Sopenharmony_ci};
262762306a36Sopenharmony_ci
262862306a36Sopenharmony_cistatic struct clk_branch camss_vfe1_ahb_clk = {
262962306a36Sopenharmony_ci	.halt_reg = 0x3678,
263062306a36Sopenharmony_ci	.clkr = {
263162306a36Sopenharmony_ci		.enable_reg = 0x3678,
263262306a36Sopenharmony_ci		.enable_mask = BIT(0),
263362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
263462306a36Sopenharmony_ci			.name = "camss_vfe1_ahb_clk",
263562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
263662306a36Sopenharmony_ci				&ahb_clk_src.clkr.hw
263762306a36Sopenharmony_ci			},
263862306a36Sopenharmony_ci			.num_parents = 1,
263962306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
264062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
264162306a36Sopenharmony_ci		},
264262306a36Sopenharmony_ci	},
264362306a36Sopenharmony_ci};
264462306a36Sopenharmony_ci
264562306a36Sopenharmony_cistatic struct clk_branch camss_csi_vfe0_clk = {
264662306a36Sopenharmony_ci	.halt_reg = 0x3704,
264762306a36Sopenharmony_ci	.clkr = {
264862306a36Sopenharmony_ci		.enable_reg = 0x3704,
264962306a36Sopenharmony_ci		.enable_mask = BIT(0),
265062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
265162306a36Sopenharmony_ci			.name = "camss_csi_vfe0_clk",
265262306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
265362306a36Sopenharmony_ci				&vfe0_clk_src.clkr.hw
265462306a36Sopenharmony_ci			},
265562306a36Sopenharmony_ci			.num_parents = 1,
265662306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
265762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
265862306a36Sopenharmony_ci		},
265962306a36Sopenharmony_ci	},
266062306a36Sopenharmony_ci};
266162306a36Sopenharmony_ci
266262306a36Sopenharmony_cistatic struct clk_branch camss_csi_vfe1_clk = {
266362306a36Sopenharmony_ci	.halt_reg = 0x3714,
266462306a36Sopenharmony_ci	.clkr = {
266562306a36Sopenharmony_ci		.enable_reg = 0x3714,
266662306a36Sopenharmony_ci		.enable_mask = BIT(0),
266762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
266862306a36Sopenharmony_ci			.name = "camss_csi_vfe1_clk",
266962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
267062306a36Sopenharmony_ci				&vfe1_clk_src.clkr.hw
267162306a36Sopenharmony_ci			},
267262306a36Sopenharmony_ci			.num_parents = 1,
267362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
267462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
267562306a36Sopenharmony_ci		},
267662306a36Sopenharmony_ci	},
267762306a36Sopenharmony_ci};
267862306a36Sopenharmony_ci
267962306a36Sopenharmony_cistatic struct clk_branch camss_cpp_vbif_ahb_clk = {
268062306a36Sopenharmony_ci	.halt_reg = 0x36c8,
268162306a36Sopenharmony_ci	.clkr = {
268262306a36Sopenharmony_ci		.enable_reg = 0x36c8,
268362306a36Sopenharmony_ci		.enable_mask = BIT(0),
268462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
268562306a36Sopenharmony_ci			.name = "camss_cpp_vbif_ahb_clk",
268662306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
268762306a36Sopenharmony_ci				&ahb_clk_src.clkr.hw
268862306a36Sopenharmony_ci			},
268962306a36Sopenharmony_ci			.num_parents = 1,
269062306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
269162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
269262306a36Sopenharmony_ci		},
269362306a36Sopenharmony_ci	},
269462306a36Sopenharmony_ci};
269562306a36Sopenharmony_ci
269662306a36Sopenharmony_cistatic struct clk_branch camss_cpp_axi_clk = {
269762306a36Sopenharmony_ci	.halt_reg = 0x36c4,
269862306a36Sopenharmony_ci	.clkr = {
269962306a36Sopenharmony_ci		.enable_reg = 0x36c4,
270062306a36Sopenharmony_ci		.enable_mask = BIT(0),
270162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
270262306a36Sopenharmony_ci			.name = "camss_cpp_axi_clk",
270362306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
270462306a36Sopenharmony_ci				&axi_clk_src.clkr.hw
270562306a36Sopenharmony_ci			},
270662306a36Sopenharmony_ci			.num_parents = 1,
270762306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
270862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
270962306a36Sopenharmony_ci		},
271062306a36Sopenharmony_ci	},
271162306a36Sopenharmony_ci};
271262306a36Sopenharmony_ci
271362306a36Sopenharmony_cistatic struct clk_branch camss_cpp_clk = {
271462306a36Sopenharmony_ci	.halt_reg = 0x36b0,
271562306a36Sopenharmony_ci	.clkr = {
271662306a36Sopenharmony_ci		.enable_reg = 0x36b0,
271762306a36Sopenharmony_ci		.enable_mask = BIT(0),
271862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
271962306a36Sopenharmony_ci			.name = "camss_cpp_clk",
272062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
272162306a36Sopenharmony_ci				&cpp_clk_src.clkr.hw
272262306a36Sopenharmony_ci			},
272362306a36Sopenharmony_ci			.num_parents = 1,
272462306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
272562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
272662306a36Sopenharmony_ci		},
272762306a36Sopenharmony_ci	},
272862306a36Sopenharmony_ci};
272962306a36Sopenharmony_ci
273062306a36Sopenharmony_cistatic struct clk_branch camss_cpp_ahb_clk = {
273162306a36Sopenharmony_ci	.halt_reg = 0x36b4,
273262306a36Sopenharmony_ci	.clkr = {
273362306a36Sopenharmony_ci		.enable_reg = 0x36b4,
273462306a36Sopenharmony_ci		.enable_mask = BIT(0),
273562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
273662306a36Sopenharmony_ci			.name = "camss_cpp_ahb_clk",
273762306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
273862306a36Sopenharmony_ci				&ahb_clk_src.clkr.hw
273962306a36Sopenharmony_ci			},
274062306a36Sopenharmony_ci			.num_parents = 1,
274162306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
274262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
274362306a36Sopenharmony_ci		},
274462306a36Sopenharmony_ci	},
274562306a36Sopenharmony_ci};
274662306a36Sopenharmony_ci
274762306a36Sopenharmony_cistatic struct clk_branch camss_csi0_clk = {
274862306a36Sopenharmony_ci	.halt_reg = 0x30b4,
274962306a36Sopenharmony_ci	.clkr = {
275062306a36Sopenharmony_ci		.enable_reg = 0x30b4,
275162306a36Sopenharmony_ci		.enable_mask = BIT(0),
275262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
275362306a36Sopenharmony_ci			.name = "camss_csi0_clk",
275462306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
275562306a36Sopenharmony_ci				&csi0_clk_src.clkr.hw
275662306a36Sopenharmony_ci			},
275762306a36Sopenharmony_ci			.num_parents = 1,
275862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
275962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
276062306a36Sopenharmony_ci		},
276162306a36Sopenharmony_ci	},
276262306a36Sopenharmony_ci};
276362306a36Sopenharmony_ci
276462306a36Sopenharmony_cistatic struct clk_branch camss_csi0_ahb_clk = {
276562306a36Sopenharmony_ci	.halt_reg = 0x30bc,
276662306a36Sopenharmony_ci	.clkr = {
276762306a36Sopenharmony_ci		.enable_reg = 0x30bc,
276862306a36Sopenharmony_ci		.enable_mask = BIT(0),
276962306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
277062306a36Sopenharmony_ci			.name = "camss_csi0_ahb_clk",
277162306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
277262306a36Sopenharmony_ci				&ahb_clk_src.clkr.hw
277362306a36Sopenharmony_ci			},
277462306a36Sopenharmony_ci			.num_parents = 1,
277562306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
277662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
277762306a36Sopenharmony_ci		},
277862306a36Sopenharmony_ci	},
277962306a36Sopenharmony_ci};
278062306a36Sopenharmony_ci
278162306a36Sopenharmony_cistatic struct clk_branch camss_csi0phy_clk = {
278262306a36Sopenharmony_ci	.halt_reg = 0x30c4,
278362306a36Sopenharmony_ci	.clkr = {
278462306a36Sopenharmony_ci		.enable_reg = 0x30c4,
278562306a36Sopenharmony_ci		.enable_mask = BIT(0),
278662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
278762306a36Sopenharmony_ci			.name = "camss_csi0phy_clk",
278862306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
278962306a36Sopenharmony_ci				&csi0_clk_src.clkr.hw
279062306a36Sopenharmony_ci			},
279162306a36Sopenharmony_ci			.num_parents = 1,
279262306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
279362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
279462306a36Sopenharmony_ci		},
279562306a36Sopenharmony_ci	},
279662306a36Sopenharmony_ci};
279762306a36Sopenharmony_ci
279862306a36Sopenharmony_cistatic struct clk_branch camss_csi0rdi_clk = {
279962306a36Sopenharmony_ci	.halt_reg = 0x30d4,
280062306a36Sopenharmony_ci	.clkr = {
280162306a36Sopenharmony_ci		.enable_reg = 0x30d4,
280262306a36Sopenharmony_ci		.enable_mask = BIT(0),
280362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
280462306a36Sopenharmony_ci			.name = "camss_csi0rdi_clk",
280562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
280662306a36Sopenharmony_ci				&csi0_clk_src.clkr.hw
280762306a36Sopenharmony_ci			},
280862306a36Sopenharmony_ci			.num_parents = 1,
280962306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
281062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
281162306a36Sopenharmony_ci		},
281262306a36Sopenharmony_ci	},
281362306a36Sopenharmony_ci};
281462306a36Sopenharmony_ci
281562306a36Sopenharmony_cistatic struct clk_branch camss_csi0pix_clk = {
281662306a36Sopenharmony_ci	.halt_reg = 0x30e4,
281762306a36Sopenharmony_ci	.clkr = {
281862306a36Sopenharmony_ci		.enable_reg = 0x30e4,
281962306a36Sopenharmony_ci		.enable_mask = BIT(0),
282062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
282162306a36Sopenharmony_ci			.name = "camss_csi0pix_clk",
282262306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
282362306a36Sopenharmony_ci				&csi0_clk_src.clkr.hw
282462306a36Sopenharmony_ci			},
282562306a36Sopenharmony_ci			.num_parents = 1,
282662306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
282762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
282862306a36Sopenharmony_ci		},
282962306a36Sopenharmony_ci	},
283062306a36Sopenharmony_ci};
283162306a36Sopenharmony_ci
283262306a36Sopenharmony_cistatic struct clk_branch camss_csi1_clk = {
283362306a36Sopenharmony_ci	.halt_reg = 0x3124,
283462306a36Sopenharmony_ci	.clkr = {
283562306a36Sopenharmony_ci		.enable_reg = 0x3124,
283662306a36Sopenharmony_ci		.enable_mask = BIT(0),
283762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
283862306a36Sopenharmony_ci			.name = "camss_csi1_clk",
283962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
284062306a36Sopenharmony_ci				&csi1_clk_src.clkr.hw
284162306a36Sopenharmony_ci			},
284262306a36Sopenharmony_ci			.num_parents = 1,
284362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
284462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
284562306a36Sopenharmony_ci		},
284662306a36Sopenharmony_ci	},
284762306a36Sopenharmony_ci};
284862306a36Sopenharmony_ci
284962306a36Sopenharmony_cistatic struct clk_branch camss_csi1_ahb_clk = {
285062306a36Sopenharmony_ci	.halt_reg = 0x3128,
285162306a36Sopenharmony_ci	.clkr = {
285262306a36Sopenharmony_ci		.enable_reg = 0x3128,
285362306a36Sopenharmony_ci		.enable_mask = BIT(0),
285462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
285562306a36Sopenharmony_ci			.name = "camss_csi1_ahb_clk",
285662306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
285762306a36Sopenharmony_ci				&ahb_clk_src.clkr.hw
285862306a36Sopenharmony_ci			},
285962306a36Sopenharmony_ci			.num_parents = 1,
286062306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
286162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
286262306a36Sopenharmony_ci		},
286362306a36Sopenharmony_ci	},
286462306a36Sopenharmony_ci};
286562306a36Sopenharmony_ci
286662306a36Sopenharmony_cistatic struct clk_branch camss_csi1phy_clk = {
286762306a36Sopenharmony_ci	.halt_reg = 0x3134,
286862306a36Sopenharmony_ci	.clkr = {
286962306a36Sopenharmony_ci		.enable_reg = 0x3134,
287062306a36Sopenharmony_ci		.enable_mask = BIT(0),
287162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
287262306a36Sopenharmony_ci			.name = "camss_csi1phy_clk",
287362306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
287462306a36Sopenharmony_ci				&csi1_clk_src.clkr.hw
287562306a36Sopenharmony_ci			},
287662306a36Sopenharmony_ci			.num_parents = 1,
287762306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
287862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
287962306a36Sopenharmony_ci		},
288062306a36Sopenharmony_ci	},
288162306a36Sopenharmony_ci};
288262306a36Sopenharmony_ci
288362306a36Sopenharmony_cistatic struct clk_branch camss_csi1rdi_clk = {
288462306a36Sopenharmony_ci	.halt_reg = 0x3144,
288562306a36Sopenharmony_ci	.clkr = {
288662306a36Sopenharmony_ci		.enable_reg = 0x3144,
288762306a36Sopenharmony_ci		.enable_mask = BIT(0),
288862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
288962306a36Sopenharmony_ci			.name = "camss_csi1rdi_clk",
289062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
289162306a36Sopenharmony_ci				&csi1_clk_src.clkr.hw
289262306a36Sopenharmony_ci			},
289362306a36Sopenharmony_ci			.num_parents = 1,
289462306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
289562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
289662306a36Sopenharmony_ci		},
289762306a36Sopenharmony_ci	},
289862306a36Sopenharmony_ci};
289962306a36Sopenharmony_ci
290062306a36Sopenharmony_cistatic struct clk_branch camss_csi1pix_clk = {
290162306a36Sopenharmony_ci	.halt_reg = 0x3154,
290262306a36Sopenharmony_ci	.clkr = {
290362306a36Sopenharmony_ci		.enable_reg = 0x3154,
290462306a36Sopenharmony_ci		.enable_mask = BIT(0),
290562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
290662306a36Sopenharmony_ci			.name = "camss_csi1pix_clk",
290762306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
290862306a36Sopenharmony_ci				&csi1_clk_src.clkr.hw
290962306a36Sopenharmony_ci			},
291062306a36Sopenharmony_ci			.num_parents = 1,
291162306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
291262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
291362306a36Sopenharmony_ci		},
291462306a36Sopenharmony_ci	},
291562306a36Sopenharmony_ci};
291662306a36Sopenharmony_ci
291762306a36Sopenharmony_cistatic struct clk_branch camss_csi2_clk = {
291862306a36Sopenharmony_ci	.halt_reg = 0x3184,
291962306a36Sopenharmony_ci	.clkr = {
292062306a36Sopenharmony_ci		.enable_reg = 0x3184,
292162306a36Sopenharmony_ci		.enable_mask = BIT(0),
292262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
292362306a36Sopenharmony_ci			.name = "camss_csi2_clk",
292462306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
292562306a36Sopenharmony_ci				&csi2_clk_src.clkr.hw
292662306a36Sopenharmony_ci			},
292762306a36Sopenharmony_ci			.num_parents = 1,
292862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
292962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
293062306a36Sopenharmony_ci		},
293162306a36Sopenharmony_ci	},
293262306a36Sopenharmony_ci};
293362306a36Sopenharmony_ci
293462306a36Sopenharmony_cistatic struct clk_branch camss_csi2_ahb_clk = {
293562306a36Sopenharmony_ci	.halt_reg = 0x3188,
293662306a36Sopenharmony_ci	.clkr = {
293762306a36Sopenharmony_ci		.enable_reg = 0x3188,
293862306a36Sopenharmony_ci		.enable_mask = BIT(0),
293962306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
294062306a36Sopenharmony_ci			.name = "camss_csi2_ahb_clk",
294162306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
294262306a36Sopenharmony_ci				&ahb_clk_src.clkr.hw
294362306a36Sopenharmony_ci			},
294462306a36Sopenharmony_ci			.num_parents = 1,
294562306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
294662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
294762306a36Sopenharmony_ci		},
294862306a36Sopenharmony_ci	},
294962306a36Sopenharmony_ci};
295062306a36Sopenharmony_ci
295162306a36Sopenharmony_cistatic struct clk_branch camss_csi2phy_clk = {
295262306a36Sopenharmony_ci	.halt_reg = 0x3194,
295362306a36Sopenharmony_ci	.clkr = {
295462306a36Sopenharmony_ci		.enable_reg = 0x3194,
295562306a36Sopenharmony_ci		.enable_mask = BIT(0),
295662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
295762306a36Sopenharmony_ci			.name = "camss_csi2phy_clk",
295862306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
295962306a36Sopenharmony_ci				&csi2_clk_src.clkr.hw
296062306a36Sopenharmony_ci			},
296162306a36Sopenharmony_ci			.num_parents = 1,
296262306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
296362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
296462306a36Sopenharmony_ci		},
296562306a36Sopenharmony_ci	},
296662306a36Sopenharmony_ci};
296762306a36Sopenharmony_ci
296862306a36Sopenharmony_cistatic struct clk_branch camss_csi2rdi_clk = {
296962306a36Sopenharmony_ci	.halt_reg = 0x31a4,
297062306a36Sopenharmony_ci	.clkr = {
297162306a36Sopenharmony_ci		.enable_reg = 0x31a4,
297262306a36Sopenharmony_ci		.enable_mask = BIT(0),
297362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
297462306a36Sopenharmony_ci			.name = "camss_csi2rdi_clk",
297562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
297662306a36Sopenharmony_ci				&csi2_clk_src.clkr.hw
297762306a36Sopenharmony_ci			},
297862306a36Sopenharmony_ci			.num_parents = 1,
297962306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
298062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
298162306a36Sopenharmony_ci		},
298262306a36Sopenharmony_ci	},
298362306a36Sopenharmony_ci};
298462306a36Sopenharmony_ci
298562306a36Sopenharmony_cistatic struct clk_branch camss_csi2pix_clk = {
298662306a36Sopenharmony_ci	.halt_reg = 0x31b4,
298762306a36Sopenharmony_ci	.clkr = {
298862306a36Sopenharmony_ci		.enable_reg = 0x31b4,
298962306a36Sopenharmony_ci		.enable_mask = BIT(0),
299062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
299162306a36Sopenharmony_ci			.name = "camss_csi2pix_clk",
299262306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
299362306a36Sopenharmony_ci				&csi2_clk_src.clkr.hw
299462306a36Sopenharmony_ci			},
299562306a36Sopenharmony_ci			.num_parents = 1,
299662306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
299762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
299862306a36Sopenharmony_ci		},
299962306a36Sopenharmony_ci	},
300062306a36Sopenharmony_ci};
300162306a36Sopenharmony_ci
300262306a36Sopenharmony_cistatic struct clk_branch camss_csi3_clk = {
300362306a36Sopenharmony_ci	.halt_reg = 0x31e4,
300462306a36Sopenharmony_ci	.clkr = {
300562306a36Sopenharmony_ci		.enable_reg = 0x31e4,
300662306a36Sopenharmony_ci		.enable_mask = BIT(0),
300762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
300862306a36Sopenharmony_ci			.name = "camss_csi3_clk",
300962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
301062306a36Sopenharmony_ci				&csi3_clk_src.clkr.hw
301162306a36Sopenharmony_ci			},
301262306a36Sopenharmony_ci			.num_parents = 1,
301362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
301462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
301562306a36Sopenharmony_ci		},
301662306a36Sopenharmony_ci	},
301762306a36Sopenharmony_ci};
301862306a36Sopenharmony_ci
301962306a36Sopenharmony_cistatic struct clk_branch camss_csi3_ahb_clk = {
302062306a36Sopenharmony_ci	.halt_reg = 0x31e8,
302162306a36Sopenharmony_ci	.clkr = {
302262306a36Sopenharmony_ci		.enable_reg = 0x31e8,
302362306a36Sopenharmony_ci		.enable_mask = BIT(0),
302462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
302562306a36Sopenharmony_ci			.name = "camss_csi3_ahb_clk",
302662306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
302762306a36Sopenharmony_ci				&ahb_clk_src.clkr.hw
302862306a36Sopenharmony_ci			},
302962306a36Sopenharmony_ci			.num_parents = 1,
303062306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
303162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
303262306a36Sopenharmony_ci		},
303362306a36Sopenharmony_ci	},
303462306a36Sopenharmony_ci};
303562306a36Sopenharmony_ci
303662306a36Sopenharmony_cistatic struct clk_branch camss_csi3phy_clk = {
303762306a36Sopenharmony_ci	.halt_reg = 0x31f4,
303862306a36Sopenharmony_ci	.clkr = {
303962306a36Sopenharmony_ci		.enable_reg = 0x31f4,
304062306a36Sopenharmony_ci		.enable_mask = BIT(0),
304162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
304262306a36Sopenharmony_ci			.name = "camss_csi3phy_clk",
304362306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
304462306a36Sopenharmony_ci				&csi3_clk_src.clkr.hw
304562306a36Sopenharmony_ci			},
304662306a36Sopenharmony_ci			.num_parents = 1,
304762306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
304862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
304962306a36Sopenharmony_ci		},
305062306a36Sopenharmony_ci	},
305162306a36Sopenharmony_ci};
305262306a36Sopenharmony_ci
305362306a36Sopenharmony_cistatic struct clk_branch camss_csi3rdi_clk = {
305462306a36Sopenharmony_ci	.halt_reg = 0x3204,
305562306a36Sopenharmony_ci	.clkr = {
305662306a36Sopenharmony_ci		.enable_reg = 0x3204,
305762306a36Sopenharmony_ci		.enable_mask = BIT(0),
305862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
305962306a36Sopenharmony_ci			.name = "camss_csi3rdi_clk",
306062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
306162306a36Sopenharmony_ci				&csi3_clk_src.clkr.hw
306262306a36Sopenharmony_ci			},
306362306a36Sopenharmony_ci			.num_parents = 1,
306462306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
306562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
306662306a36Sopenharmony_ci		},
306762306a36Sopenharmony_ci	},
306862306a36Sopenharmony_ci};
306962306a36Sopenharmony_ci
307062306a36Sopenharmony_cistatic struct clk_branch camss_csi3pix_clk = {
307162306a36Sopenharmony_ci	.halt_reg = 0x3214,
307262306a36Sopenharmony_ci	.clkr = {
307362306a36Sopenharmony_ci		.enable_reg = 0x3214,
307462306a36Sopenharmony_ci		.enable_mask = BIT(0),
307562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
307662306a36Sopenharmony_ci			.name = "camss_csi3pix_clk",
307762306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
307862306a36Sopenharmony_ci				&csi3_clk_src.clkr.hw
307962306a36Sopenharmony_ci			},
308062306a36Sopenharmony_ci			.num_parents = 1,
308162306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
308262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
308362306a36Sopenharmony_ci		},
308462306a36Sopenharmony_ci	},
308562306a36Sopenharmony_ci};
308662306a36Sopenharmony_ci
308762306a36Sopenharmony_cistatic struct clk_branch camss_ispif_ahb_clk = {
308862306a36Sopenharmony_ci	.halt_reg = 0x3224,
308962306a36Sopenharmony_ci	.clkr = {
309062306a36Sopenharmony_ci		.enable_reg = 0x3224,
309162306a36Sopenharmony_ci		.enable_mask = BIT(0),
309262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
309362306a36Sopenharmony_ci			.name = "camss_ispif_ahb_clk",
309462306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
309562306a36Sopenharmony_ci				&ahb_clk_src.clkr.hw
309662306a36Sopenharmony_ci			},
309762306a36Sopenharmony_ci			.num_parents = 1,
309862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
309962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
310062306a36Sopenharmony_ci		},
310162306a36Sopenharmony_ci	},
310262306a36Sopenharmony_ci};
310362306a36Sopenharmony_ci
310462306a36Sopenharmony_cistatic struct clk_branch fd_core_clk = {
310562306a36Sopenharmony_ci	.halt_reg = 0x3b68,
310662306a36Sopenharmony_ci	.clkr = {
310762306a36Sopenharmony_ci		.enable_reg = 0x3b68,
310862306a36Sopenharmony_ci		.enable_mask = BIT(0),
310962306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
311062306a36Sopenharmony_ci			.name = "fd_core_clk",
311162306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
311262306a36Sopenharmony_ci				&fd_core_clk_src.clkr.hw
311362306a36Sopenharmony_ci			},
311462306a36Sopenharmony_ci			.num_parents = 1,
311562306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
311662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
311762306a36Sopenharmony_ci		},
311862306a36Sopenharmony_ci	},
311962306a36Sopenharmony_ci};
312062306a36Sopenharmony_ci
312162306a36Sopenharmony_cistatic struct clk_branch fd_core_uar_clk = {
312262306a36Sopenharmony_ci	.halt_reg = 0x3b6c,
312362306a36Sopenharmony_ci	.clkr = {
312462306a36Sopenharmony_ci		.enable_reg = 0x3b6c,
312562306a36Sopenharmony_ci		.enable_mask = BIT(0),
312662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
312762306a36Sopenharmony_ci			.name = "fd_core_uar_clk",
312862306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
312962306a36Sopenharmony_ci				&fd_core_clk_src.clkr.hw
313062306a36Sopenharmony_ci			},
313162306a36Sopenharmony_ci			.num_parents = 1,
313262306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
313362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
313462306a36Sopenharmony_ci		},
313562306a36Sopenharmony_ci	},
313662306a36Sopenharmony_ci};
313762306a36Sopenharmony_ci
313862306a36Sopenharmony_cistatic struct clk_branch fd_ahb_clk = {
313962306a36Sopenharmony_ci	.halt_reg = 0x3ba74,
314062306a36Sopenharmony_ci	.clkr = {
314162306a36Sopenharmony_ci		.enable_reg = 0x3ba74,
314262306a36Sopenharmony_ci		.enable_mask = BIT(0),
314362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
314462306a36Sopenharmony_ci			.name = "fd_ahb_clk",
314562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
314662306a36Sopenharmony_ci				&ahb_clk_src.clkr.hw
314762306a36Sopenharmony_ci			},
314862306a36Sopenharmony_ci			.num_parents = 1,
314962306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
315062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
315162306a36Sopenharmony_ci		},
315262306a36Sopenharmony_ci	},
315362306a36Sopenharmony_ci};
315462306a36Sopenharmony_ci
315562306a36Sopenharmony_cistatic struct clk_hw *mmcc_msm8996_hws[] = {
315662306a36Sopenharmony_ci	&gpll0_div.hw,
315762306a36Sopenharmony_ci};
315862306a36Sopenharmony_ci
315962306a36Sopenharmony_cistatic struct gdsc mmagic_bimc_gdsc = {
316062306a36Sopenharmony_ci	.gdscr = 0x529c,
316162306a36Sopenharmony_ci	.pd = {
316262306a36Sopenharmony_ci		.name = "mmagic_bimc",
316362306a36Sopenharmony_ci	},
316462306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
316562306a36Sopenharmony_ci	.flags = ALWAYS_ON,
316662306a36Sopenharmony_ci};
316762306a36Sopenharmony_ci
316862306a36Sopenharmony_cistatic struct gdsc mmagic_video_gdsc = {
316962306a36Sopenharmony_ci	.gdscr = 0x119c,
317062306a36Sopenharmony_ci	.gds_hw_ctrl = 0x120c,
317162306a36Sopenharmony_ci	.pd = {
317262306a36Sopenharmony_ci		.name = "mmagic_video",
317362306a36Sopenharmony_ci	},
317462306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
317562306a36Sopenharmony_ci	.flags = VOTABLE | ALWAYS_ON,
317662306a36Sopenharmony_ci};
317762306a36Sopenharmony_ci
317862306a36Sopenharmony_cistatic struct gdsc mmagic_mdss_gdsc = {
317962306a36Sopenharmony_ci	.gdscr = 0x247c,
318062306a36Sopenharmony_ci	.gds_hw_ctrl = 0x2480,
318162306a36Sopenharmony_ci	.pd = {
318262306a36Sopenharmony_ci		.name = "mmagic_mdss",
318362306a36Sopenharmony_ci	},
318462306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
318562306a36Sopenharmony_ci	.flags = VOTABLE | ALWAYS_ON,
318662306a36Sopenharmony_ci};
318762306a36Sopenharmony_ci
318862306a36Sopenharmony_cistatic struct gdsc mmagic_camss_gdsc = {
318962306a36Sopenharmony_ci	.gdscr = 0x3c4c,
319062306a36Sopenharmony_ci	.gds_hw_ctrl = 0x3c50,
319162306a36Sopenharmony_ci	.pd = {
319262306a36Sopenharmony_ci		.name = "mmagic_camss",
319362306a36Sopenharmony_ci	},
319462306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
319562306a36Sopenharmony_ci	.flags = VOTABLE | ALWAYS_ON,
319662306a36Sopenharmony_ci};
319762306a36Sopenharmony_ci
319862306a36Sopenharmony_cistatic struct gdsc venus_gdsc = {
319962306a36Sopenharmony_ci	.gdscr = 0x1024,
320062306a36Sopenharmony_ci	.cxcs = (unsigned int []){ 0x1028, 0x1034, 0x1038 },
320162306a36Sopenharmony_ci	.cxc_count = 3,
320262306a36Sopenharmony_ci	.pd = {
320362306a36Sopenharmony_ci		.name = "venus",
320462306a36Sopenharmony_ci	},
320562306a36Sopenharmony_ci	.parent = &mmagic_video_gdsc.pd,
320662306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
320762306a36Sopenharmony_ci};
320862306a36Sopenharmony_ci
320962306a36Sopenharmony_cistatic struct gdsc venus_core0_gdsc = {
321062306a36Sopenharmony_ci	.gdscr = 0x1040,
321162306a36Sopenharmony_ci	.cxcs = (unsigned int []){ 0x1048 },
321262306a36Sopenharmony_ci	.cxc_count = 1,
321362306a36Sopenharmony_ci	.pd = {
321462306a36Sopenharmony_ci		.name = "venus_core0",
321562306a36Sopenharmony_ci	},
321662306a36Sopenharmony_ci	.parent = &venus_gdsc.pd,
321762306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
321862306a36Sopenharmony_ci	.flags = HW_CTRL,
321962306a36Sopenharmony_ci};
322062306a36Sopenharmony_ci
322162306a36Sopenharmony_cistatic struct gdsc venus_core1_gdsc = {
322262306a36Sopenharmony_ci	.gdscr = 0x1044,
322362306a36Sopenharmony_ci	.cxcs = (unsigned int []){ 0x104c },
322462306a36Sopenharmony_ci	.cxc_count = 1,
322562306a36Sopenharmony_ci	.pd = {
322662306a36Sopenharmony_ci		.name = "venus_core1",
322762306a36Sopenharmony_ci	},
322862306a36Sopenharmony_ci	.parent = &venus_gdsc.pd,
322962306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
323062306a36Sopenharmony_ci	.flags = HW_CTRL,
323162306a36Sopenharmony_ci};
323262306a36Sopenharmony_ci
323362306a36Sopenharmony_cistatic struct gdsc camss_gdsc = {
323462306a36Sopenharmony_ci	.gdscr = 0x34a0,
323562306a36Sopenharmony_ci	.cxcs = (unsigned int []){ 0x36bc, 0x36c4 },
323662306a36Sopenharmony_ci	.cxc_count = 2,
323762306a36Sopenharmony_ci	.pd = {
323862306a36Sopenharmony_ci		.name = "camss",
323962306a36Sopenharmony_ci	},
324062306a36Sopenharmony_ci	.parent = &mmagic_camss_gdsc.pd,
324162306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
324262306a36Sopenharmony_ci};
324362306a36Sopenharmony_ci
324462306a36Sopenharmony_cistatic struct gdsc vfe0_gdsc = {
324562306a36Sopenharmony_ci	.gdscr = 0x3664,
324662306a36Sopenharmony_ci	.cxcs = (unsigned int []){ 0x36a8 },
324762306a36Sopenharmony_ci	.cxc_count = 1,
324862306a36Sopenharmony_ci	.pd = {
324962306a36Sopenharmony_ci		.name = "vfe0",
325062306a36Sopenharmony_ci	},
325162306a36Sopenharmony_ci	.parent = &camss_gdsc.pd,
325262306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
325362306a36Sopenharmony_ci};
325462306a36Sopenharmony_ci
325562306a36Sopenharmony_cistatic struct gdsc vfe1_gdsc = {
325662306a36Sopenharmony_ci	.gdscr = 0x3674,
325762306a36Sopenharmony_ci	.cxcs = (unsigned int []){ 0x36ac },
325862306a36Sopenharmony_ci	.cxc_count = 1,
325962306a36Sopenharmony_ci	.pd = {
326062306a36Sopenharmony_ci		.name = "vfe1",
326162306a36Sopenharmony_ci	},
326262306a36Sopenharmony_ci	.parent = &camss_gdsc.pd,
326362306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
326462306a36Sopenharmony_ci};
326562306a36Sopenharmony_ci
326662306a36Sopenharmony_cistatic struct gdsc jpeg_gdsc = {
326762306a36Sopenharmony_ci	.gdscr = 0x35a4,
326862306a36Sopenharmony_ci	.cxcs = (unsigned int []){ 0x35a8, 0x35b0, 0x35c0, 0x35b8 },
326962306a36Sopenharmony_ci	.cxc_count = 4,
327062306a36Sopenharmony_ci	.pd = {
327162306a36Sopenharmony_ci		.name = "jpeg",
327262306a36Sopenharmony_ci	},
327362306a36Sopenharmony_ci	.parent = &camss_gdsc.pd,
327462306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
327562306a36Sopenharmony_ci};
327662306a36Sopenharmony_ci
327762306a36Sopenharmony_cistatic struct gdsc cpp_gdsc = {
327862306a36Sopenharmony_ci	.gdscr = 0x36d4,
327962306a36Sopenharmony_ci	.cxcs = (unsigned int []){ 0x36b0 },
328062306a36Sopenharmony_ci	.cxc_count = 1,
328162306a36Sopenharmony_ci	.pd = {
328262306a36Sopenharmony_ci		.name = "cpp",
328362306a36Sopenharmony_ci	},
328462306a36Sopenharmony_ci	.parent = &camss_gdsc.pd,
328562306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
328662306a36Sopenharmony_ci};
328762306a36Sopenharmony_ci
328862306a36Sopenharmony_cistatic struct gdsc fd_gdsc = {
328962306a36Sopenharmony_ci	.gdscr = 0x3b64,
329062306a36Sopenharmony_ci	.cxcs = (unsigned int []){ 0x3b68, 0x3b6c },
329162306a36Sopenharmony_ci	.cxc_count = 2,
329262306a36Sopenharmony_ci	.pd = {
329362306a36Sopenharmony_ci		.name = "fd",
329462306a36Sopenharmony_ci	},
329562306a36Sopenharmony_ci	.parent = &camss_gdsc.pd,
329662306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
329762306a36Sopenharmony_ci};
329862306a36Sopenharmony_ci
329962306a36Sopenharmony_cistatic struct gdsc mdss_gdsc = {
330062306a36Sopenharmony_ci	.gdscr = 0x2304,
330162306a36Sopenharmony_ci	.cxcs = (unsigned int []){ 0x2310, 0x231c },
330262306a36Sopenharmony_ci	.cxc_count = 2,
330362306a36Sopenharmony_ci	.pd = {
330462306a36Sopenharmony_ci		.name = "mdss",
330562306a36Sopenharmony_ci	},
330662306a36Sopenharmony_ci	.parent = &mmagic_mdss_gdsc.pd,
330762306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
330862306a36Sopenharmony_ci};
330962306a36Sopenharmony_ci
331062306a36Sopenharmony_cistatic struct gdsc gpu_gdsc = {
331162306a36Sopenharmony_ci	.gdscr = 0x4034,
331262306a36Sopenharmony_ci	.gds_hw_ctrl = 0x4038,
331362306a36Sopenharmony_ci	.pd = {
331462306a36Sopenharmony_ci		.name = "gpu",
331562306a36Sopenharmony_ci	},
331662306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
331762306a36Sopenharmony_ci	.flags = VOTABLE,
331862306a36Sopenharmony_ci};
331962306a36Sopenharmony_ci
332062306a36Sopenharmony_cistatic struct gdsc gpu_gx_gdsc = {
332162306a36Sopenharmony_ci	.gdscr = 0x4024,
332262306a36Sopenharmony_ci	.clamp_io_ctrl = 0x4300,
332362306a36Sopenharmony_ci	.cxcs = (unsigned int []){ 0x4028 },
332462306a36Sopenharmony_ci	.cxc_count = 1,
332562306a36Sopenharmony_ci	.pd = {
332662306a36Sopenharmony_ci		.name = "gpu_gx",
332762306a36Sopenharmony_ci	},
332862306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
332962306a36Sopenharmony_ci	.parent = &gpu_gdsc.pd,
333062306a36Sopenharmony_ci	.flags = CLAMP_IO,
333162306a36Sopenharmony_ci	.supply = "vdd-gfx",
333262306a36Sopenharmony_ci};
333362306a36Sopenharmony_ci
333462306a36Sopenharmony_cistatic struct clk_regmap *mmcc_msm8996_clocks[] = {
333562306a36Sopenharmony_ci	[MMPLL0_EARLY] = &mmpll0_early.clkr,
333662306a36Sopenharmony_ci	[MMPLL0_PLL] = &mmpll0.clkr,
333762306a36Sopenharmony_ci	[MMPLL1_EARLY] = &mmpll1_early.clkr,
333862306a36Sopenharmony_ci	[MMPLL1_PLL] = &mmpll1.clkr,
333962306a36Sopenharmony_ci	[MMPLL2_EARLY] = &mmpll2_early.clkr,
334062306a36Sopenharmony_ci	[MMPLL2_PLL] = &mmpll2.clkr,
334162306a36Sopenharmony_ci	[MMPLL3_EARLY] = &mmpll3_early.clkr,
334262306a36Sopenharmony_ci	[MMPLL3_PLL] = &mmpll3.clkr,
334362306a36Sopenharmony_ci	[MMPLL4_EARLY] = &mmpll4_early.clkr,
334462306a36Sopenharmony_ci	[MMPLL4_PLL] = &mmpll4.clkr,
334562306a36Sopenharmony_ci	[MMPLL5_EARLY] = &mmpll5_early.clkr,
334662306a36Sopenharmony_ci	[MMPLL5_PLL] = &mmpll5.clkr,
334762306a36Sopenharmony_ci	[MMPLL8_EARLY] = &mmpll8_early.clkr,
334862306a36Sopenharmony_ci	[MMPLL8_PLL] = &mmpll8.clkr,
334962306a36Sopenharmony_ci	[MMPLL9_EARLY] = &mmpll9_early.clkr,
335062306a36Sopenharmony_ci	[MMPLL9_PLL] = &mmpll9.clkr,
335162306a36Sopenharmony_ci	[AHB_CLK_SRC] = &ahb_clk_src.clkr,
335262306a36Sopenharmony_ci	[AXI_CLK_SRC] = &axi_clk_src.clkr,
335362306a36Sopenharmony_ci	[MAXI_CLK_SRC] = &maxi_clk_src.clkr,
335462306a36Sopenharmony_ci	[GFX3D_CLK_SRC] = &gfx3d_clk_src.rcg.clkr,
335562306a36Sopenharmony_ci	[RBBMTIMER_CLK_SRC] = &rbbmtimer_clk_src.clkr,
335662306a36Sopenharmony_ci	[ISENSE_CLK_SRC] = &isense_clk_src.clkr,
335762306a36Sopenharmony_ci	[RBCPR_CLK_SRC] = &rbcpr_clk_src.clkr,
335862306a36Sopenharmony_ci	[VIDEO_CORE_CLK_SRC] = &video_core_clk_src.clkr,
335962306a36Sopenharmony_ci	[VIDEO_SUBCORE0_CLK_SRC] = &video_subcore0_clk_src.clkr,
336062306a36Sopenharmony_ci	[VIDEO_SUBCORE1_CLK_SRC] = &video_subcore1_clk_src.clkr,
336162306a36Sopenharmony_ci	[PCLK0_CLK_SRC] = &pclk0_clk_src.clkr,
336262306a36Sopenharmony_ci	[PCLK1_CLK_SRC] = &pclk1_clk_src.clkr,
336362306a36Sopenharmony_ci	[MDP_CLK_SRC] = &mdp_clk_src.clkr,
336462306a36Sopenharmony_ci	[EXTPCLK_CLK_SRC] = &extpclk_clk_src.clkr,
336562306a36Sopenharmony_ci	[VSYNC_CLK_SRC] = &vsync_clk_src.clkr,
336662306a36Sopenharmony_ci	[HDMI_CLK_SRC] = &hdmi_clk_src.clkr,
336762306a36Sopenharmony_ci	[BYTE0_CLK_SRC] = &byte0_clk_src.clkr,
336862306a36Sopenharmony_ci	[BYTE1_CLK_SRC] = &byte1_clk_src.clkr,
336962306a36Sopenharmony_ci	[ESC0_CLK_SRC] = &esc0_clk_src.clkr,
337062306a36Sopenharmony_ci	[ESC1_CLK_SRC] = &esc1_clk_src.clkr,
337162306a36Sopenharmony_ci	[CAMSS_GP0_CLK_SRC] = &camss_gp0_clk_src.clkr,
337262306a36Sopenharmony_ci	[CAMSS_GP1_CLK_SRC] = &camss_gp1_clk_src.clkr,
337362306a36Sopenharmony_ci	[MCLK0_CLK_SRC] = &mclk0_clk_src.clkr,
337462306a36Sopenharmony_ci	[MCLK1_CLK_SRC] = &mclk1_clk_src.clkr,
337562306a36Sopenharmony_ci	[MCLK2_CLK_SRC] = &mclk2_clk_src.clkr,
337662306a36Sopenharmony_ci	[MCLK3_CLK_SRC] = &mclk3_clk_src.clkr,
337762306a36Sopenharmony_ci	[CCI_CLK_SRC] = &cci_clk_src.clkr,
337862306a36Sopenharmony_ci	[CSI0PHYTIMER_CLK_SRC] = &csi0phytimer_clk_src.clkr,
337962306a36Sopenharmony_ci	[CSI1PHYTIMER_CLK_SRC] = &csi1phytimer_clk_src.clkr,
338062306a36Sopenharmony_ci	[CSI2PHYTIMER_CLK_SRC] = &csi2phytimer_clk_src.clkr,
338162306a36Sopenharmony_ci	[CSIPHY0_3P_CLK_SRC] = &csiphy0_3p_clk_src.clkr,
338262306a36Sopenharmony_ci	[CSIPHY1_3P_CLK_SRC] = &csiphy1_3p_clk_src.clkr,
338362306a36Sopenharmony_ci	[CSIPHY2_3P_CLK_SRC] = &csiphy2_3p_clk_src.clkr,
338462306a36Sopenharmony_ci	[JPEG0_CLK_SRC] = &jpeg0_clk_src.clkr,
338562306a36Sopenharmony_ci	[JPEG2_CLK_SRC] = &jpeg2_clk_src.clkr,
338662306a36Sopenharmony_ci	[JPEG_DMA_CLK_SRC] = &jpeg_dma_clk_src.clkr,
338762306a36Sopenharmony_ci	[VFE0_CLK_SRC] = &vfe0_clk_src.clkr,
338862306a36Sopenharmony_ci	[VFE1_CLK_SRC] = &vfe1_clk_src.clkr,
338962306a36Sopenharmony_ci	[CPP_CLK_SRC] = &cpp_clk_src.clkr,
339062306a36Sopenharmony_ci	[CSI0_CLK_SRC] = &csi0_clk_src.clkr,
339162306a36Sopenharmony_ci	[CSI1_CLK_SRC] = &csi1_clk_src.clkr,
339262306a36Sopenharmony_ci	[CSI2_CLK_SRC] = &csi2_clk_src.clkr,
339362306a36Sopenharmony_ci	[CSI3_CLK_SRC] = &csi3_clk_src.clkr,
339462306a36Sopenharmony_ci	[FD_CORE_CLK_SRC] = &fd_core_clk_src.clkr,
339562306a36Sopenharmony_ci	[MMSS_MMAGIC_AHB_CLK] = &mmss_mmagic_ahb_clk.clkr,
339662306a36Sopenharmony_ci	[MMSS_MMAGIC_CFG_AHB_CLK] = &mmss_mmagic_cfg_ahb_clk.clkr,
339762306a36Sopenharmony_ci	[MMSS_MISC_AHB_CLK] = &mmss_misc_ahb_clk.clkr,
339862306a36Sopenharmony_ci	[MMSS_MISC_CXO_CLK] = &mmss_misc_cxo_clk.clkr,
339962306a36Sopenharmony_ci	[MMSS_MMAGIC_MAXI_CLK] = &mmss_mmagic_maxi_clk.clkr,
340062306a36Sopenharmony_ci	[MMAGIC_CAMSS_AXI_CLK] = &mmagic_camss_axi_clk.clkr,
340162306a36Sopenharmony_ci	[MMAGIC_CAMSS_NOC_CFG_AHB_CLK] = &mmagic_camss_noc_cfg_ahb_clk.clkr,
340262306a36Sopenharmony_ci	[SMMU_VFE_AHB_CLK] = &smmu_vfe_ahb_clk.clkr,
340362306a36Sopenharmony_ci	[SMMU_VFE_AXI_CLK] = &smmu_vfe_axi_clk.clkr,
340462306a36Sopenharmony_ci	[SMMU_CPP_AHB_CLK] = &smmu_cpp_ahb_clk.clkr,
340562306a36Sopenharmony_ci	[SMMU_CPP_AXI_CLK] = &smmu_cpp_axi_clk.clkr,
340662306a36Sopenharmony_ci	[SMMU_JPEG_AHB_CLK] = &smmu_jpeg_ahb_clk.clkr,
340762306a36Sopenharmony_ci	[SMMU_JPEG_AXI_CLK] = &smmu_jpeg_axi_clk.clkr,
340862306a36Sopenharmony_ci	[MMAGIC_MDSS_AXI_CLK] = &mmagic_mdss_axi_clk.clkr,
340962306a36Sopenharmony_ci	[MMAGIC_MDSS_NOC_CFG_AHB_CLK] = &mmagic_mdss_noc_cfg_ahb_clk.clkr,
341062306a36Sopenharmony_ci	[SMMU_ROT_AHB_CLK] = &smmu_rot_ahb_clk.clkr,
341162306a36Sopenharmony_ci	[SMMU_ROT_AXI_CLK] = &smmu_rot_axi_clk.clkr,
341262306a36Sopenharmony_ci	[SMMU_MDP_AHB_CLK] = &smmu_mdp_ahb_clk.clkr,
341362306a36Sopenharmony_ci	[SMMU_MDP_AXI_CLK] = &smmu_mdp_axi_clk.clkr,
341462306a36Sopenharmony_ci	[MMAGIC_VIDEO_AXI_CLK] = &mmagic_video_axi_clk.clkr,
341562306a36Sopenharmony_ci	[MMAGIC_VIDEO_NOC_CFG_AHB_CLK] = &mmagic_video_noc_cfg_ahb_clk.clkr,
341662306a36Sopenharmony_ci	[SMMU_VIDEO_AHB_CLK] = &smmu_video_ahb_clk.clkr,
341762306a36Sopenharmony_ci	[SMMU_VIDEO_AXI_CLK] = &smmu_video_axi_clk.clkr,
341862306a36Sopenharmony_ci	[MMAGIC_BIMC_NOC_CFG_AHB_CLK] = &mmagic_bimc_noc_cfg_ahb_clk.clkr,
341962306a36Sopenharmony_ci	[GPU_GX_GFX3D_CLK] = &gpu_gx_gfx3d_clk.clkr,
342062306a36Sopenharmony_ci	[GPU_GX_RBBMTIMER_CLK] = &gpu_gx_rbbmtimer_clk.clkr,
342162306a36Sopenharmony_ci	[GPU_AHB_CLK] = &gpu_ahb_clk.clkr,
342262306a36Sopenharmony_ci	[GPU_AON_ISENSE_CLK] = &gpu_aon_isense_clk.clkr,
342362306a36Sopenharmony_ci	[VMEM_MAXI_CLK] = &vmem_maxi_clk.clkr,
342462306a36Sopenharmony_ci	[VMEM_AHB_CLK] = &vmem_ahb_clk.clkr,
342562306a36Sopenharmony_ci	[MMSS_RBCPR_CLK] = &mmss_rbcpr_clk.clkr,
342662306a36Sopenharmony_ci	[MMSS_RBCPR_AHB_CLK] = &mmss_rbcpr_ahb_clk.clkr,
342762306a36Sopenharmony_ci	[VIDEO_CORE_CLK] = &video_core_clk.clkr,
342862306a36Sopenharmony_ci	[VIDEO_AXI_CLK] = &video_axi_clk.clkr,
342962306a36Sopenharmony_ci	[VIDEO_MAXI_CLK] = &video_maxi_clk.clkr,
343062306a36Sopenharmony_ci	[VIDEO_AHB_CLK] = &video_ahb_clk.clkr,
343162306a36Sopenharmony_ci	[VIDEO_SUBCORE0_CLK] = &video_subcore0_clk.clkr,
343262306a36Sopenharmony_ci	[VIDEO_SUBCORE1_CLK] = &video_subcore1_clk.clkr,
343362306a36Sopenharmony_ci	[MDSS_AHB_CLK] = &mdss_ahb_clk.clkr,
343462306a36Sopenharmony_ci	[MDSS_HDMI_AHB_CLK] = &mdss_hdmi_ahb_clk.clkr,
343562306a36Sopenharmony_ci	[MDSS_AXI_CLK] = &mdss_axi_clk.clkr,
343662306a36Sopenharmony_ci	[MDSS_PCLK0_CLK] = &mdss_pclk0_clk.clkr,
343762306a36Sopenharmony_ci	[MDSS_PCLK1_CLK] = &mdss_pclk1_clk.clkr,
343862306a36Sopenharmony_ci	[MDSS_MDP_CLK] = &mdss_mdp_clk.clkr,
343962306a36Sopenharmony_ci	[MDSS_EXTPCLK_CLK] = &mdss_extpclk_clk.clkr,
344062306a36Sopenharmony_ci	[MDSS_VSYNC_CLK] = &mdss_vsync_clk.clkr,
344162306a36Sopenharmony_ci	[MDSS_HDMI_CLK] = &mdss_hdmi_clk.clkr,
344262306a36Sopenharmony_ci	[MDSS_BYTE0_CLK] = &mdss_byte0_clk.clkr,
344362306a36Sopenharmony_ci	[MDSS_BYTE1_CLK] = &mdss_byte1_clk.clkr,
344462306a36Sopenharmony_ci	[MDSS_ESC0_CLK] = &mdss_esc0_clk.clkr,
344562306a36Sopenharmony_ci	[MDSS_ESC1_CLK] = &mdss_esc1_clk.clkr,
344662306a36Sopenharmony_ci	[CAMSS_TOP_AHB_CLK] = &camss_top_ahb_clk.clkr,
344762306a36Sopenharmony_ci	[CAMSS_AHB_CLK] = &camss_ahb_clk.clkr,
344862306a36Sopenharmony_ci	[CAMSS_MICRO_AHB_CLK] = &camss_micro_ahb_clk.clkr,
344962306a36Sopenharmony_ci	[CAMSS_GP0_CLK] = &camss_gp0_clk.clkr,
345062306a36Sopenharmony_ci	[CAMSS_GP1_CLK] = &camss_gp1_clk.clkr,
345162306a36Sopenharmony_ci	[CAMSS_MCLK0_CLK] = &camss_mclk0_clk.clkr,
345262306a36Sopenharmony_ci	[CAMSS_MCLK1_CLK] = &camss_mclk1_clk.clkr,
345362306a36Sopenharmony_ci	[CAMSS_MCLK2_CLK] = &camss_mclk2_clk.clkr,
345462306a36Sopenharmony_ci	[CAMSS_MCLK3_CLK] = &camss_mclk3_clk.clkr,
345562306a36Sopenharmony_ci	[CAMSS_CCI_CLK] = &camss_cci_clk.clkr,
345662306a36Sopenharmony_ci	[CAMSS_CCI_AHB_CLK] = &camss_cci_ahb_clk.clkr,
345762306a36Sopenharmony_ci	[CAMSS_CSI0PHYTIMER_CLK] = &camss_csi0phytimer_clk.clkr,
345862306a36Sopenharmony_ci	[CAMSS_CSI1PHYTIMER_CLK] = &camss_csi1phytimer_clk.clkr,
345962306a36Sopenharmony_ci	[CAMSS_CSI2PHYTIMER_CLK] = &camss_csi2phytimer_clk.clkr,
346062306a36Sopenharmony_ci	[CAMSS_CSIPHY0_3P_CLK] = &camss_csiphy0_3p_clk.clkr,
346162306a36Sopenharmony_ci	[CAMSS_CSIPHY1_3P_CLK] = &camss_csiphy1_3p_clk.clkr,
346262306a36Sopenharmony_ci	[CAMSS_CSIPHY2_3P_CLK] = &camss_csiphy2_3p_clk.clkr,
346362306a36Sopenharmony_ci	[CAMSS_JPEG0_CLK] = &camss_jpeg0_clk.clkr,
346462306a36Sopenharmony_ci	[CAMSS_JPEG2_CLK] = &camss_jpeg2_clk.clkr,
346562306a36Sopenharmony_ci	[CAMSS_JPEG_DMA_CLK] = &camss_jpeg_dma_clk.clkr,
346662306a36Sopenharmony_ci	[CAMSS_JPEG_AHB_CLK] = &camss_jpeg_ahb_clk.clkr,
346762306a36Sopenharmony_ci	[CAMSS_JPEG_AXI_CLK] = &camss_jpeg_axi_clk.clkr,
346862306a36Sopenharmony_ci	[CAMSS_VFE_AHB_CLK] = &camss_vfe_ahb_clk.clkr,
346962306a36Sopenharmony_ci	[CAMSS_VFE_AXI_CLK] = &camss_vfe_axi_clk.clkr,
347062306a36Sopenharmony_ci	[CAMSS_VFE0_CLK] = &camss_vfe0_clk.clkr,
347162306a36Sopenharmony_ci	[CAMSS_VFE0_STREAM_CLK] = &camss_vfe0_stream_clk.clkr,
347262306a36Sopenharmony_ci	[CAMSS_VFE0_AHB_CLK] = &camss_vfe0_ahb_clk.clkr,
347362306a36Sopenharmony_ci	[CAMSS_VFE1_CLK] = &camss_vfe1_clk.clkr,
347462306a36Sopenharmony_ci	[CAMSS_VFE1_STREAM_CLK] = &camss_vfe1_stream_clk.clkr,
347562306a36Sopenharmony_ci	[CAMSS_VFE1_AHB_CLK] = &camss_vfe1_ahb_clk.clkr,
347662306a36Sopenharmony_ci	[CAMSS_CSI_VFE0_CLK] = &camss_csi_vfe0_clk.clkr,
347762306a36Sopenharmony_ci	[CAMSS_CSI_VFE1_CLK] = &camss_csi_vfe1_clk.clkr,
347862306a36Sopenharmony_ci	[CAMSS_CPP_VBIF_AHB_CLK] = &camss_cpp_vbif_ahb_clk.clkr,
347962306a36Sopenharmony_ci	[CAMSS_CPP_AXI_CLK] = &camss_cpp_axi_clk.clkr,
348062306a36Sopenharmony_ci	[CAMSS_CPP_CLK] = &camss_cpp_clk.clkr,
348162306a36Sopenharmony_ci	[CAMSS_CPP_AHB_CLK] = &camss_cpp_ahb_clk.clkr,
348262306a36Sopenharmony_ci	[CAMSS_CSI0_CLK] = &camss_csi0_clk.clkr,
348362306a36Sopenharmony_ci	[CAMSS_CSI0_AHB_CLK] = &camss_csi0_ahb_clk.clkr,
348462306a36Sopenharmony_ci	[CAMSS_CSI0PHY_CLK] = &camss_csi0phy_clk.clkr,
348562306a36Sopenharmony_ci	[CAMSS_CSI0RDI_CLK] = &camss_csi0rdi_clk.clkr,
348662306a36Sopenharmony_ci	[CAMSS_CSI0PIX_CLK] = &camss_csi0pix_clk.clkr,
348762306a36Sopenharmony_ci	[CAMSS_CSI1_CLK] = &camss_csi1_clk.clkr,
348862306a36Sopenharmony_ci	[CAMSS_CSI1_AHB_CLK] = &camss_csi1_ahb_clk.clkr,
348962306a36Sopenharmony_ci	[CAMSS_CSI1PHY_CLK] = &camss_csi1phy_clk.clkr,
349062306a36Sopenharmony_ci	[CAMSS_CSI1RDI_CLK] = &camss_csi1rdi_clk.clkr,
349162306a36Sopenharmony_ci	[CAMSS_CSI1PIX_CLK] = &camss_csi1pix_clk.clkr,
349262306a36Sopenharmony_ci	[CAMSS_CSI2_CLK] = &camss_csi2_clk.clkr,
349362306a36Sopenharmony_ci	[CAMSS_CSI2_AHB_CLK] = &camss_csi2_ahb_clk.clkr,
349462306a36Sopenharmony_ci	[CAMSS_CSI2PHY_CLK] = &camss_csi2phy_clk.clkr,
349562306a36Sopenharmony_ci	[CAMSS_CSI2RDI_CLK] = &camss_csi2rdi_clk.clkr,
349662306a36Sopenharmony_ci	[CAMSS_CSI2PIX_CLK] = &camss_csi2pix_clk.clkr,
349762306a36Sopenharmony_ci	[CAMSS_CSI3_CLK] = &camss_csi3_clk.clkr,
349862306a36Sopenharmony_ci	[CAMSS_CSI3_AHB_CLK] = &camss_csi3_ahb_clk.clkr,
349962306a36Sopenharmony_ci	[CAMSS_CSI3PHY_CLK] = &camss_csi3phy_clk.clkr,
350062306a36Sopenharmony_ci	[CAMSS_CSI3RDI_CLK] = &camss_csi3rdi_clk.clkr,
350162306a36Sopenharmony_ci	[CAMSS_CSI3PIX_CLK] = &camss_csi3pix_clk.clkr,
350262306a36Sopenharmony_ci	[CAMSS_ISPIF_AHB_CLK] = &camss_ispif_ahb_clk.clkr,
350362306a36Sopenharmony_ci	[FD_CORE_CLK] = &fd_core_clk.clkr,
350462306a36Sopenharmony_ci	[FD_CORE_UAR_CLK] = &fd_core_uar_clk.clkr,
350562306a36Sopenharmony_ci	[FD_AHB_CLK] = &fd_ahb_clk.clkr,
350662306a36Sopenharmony_ci};
350762306a36Sopenharmony_ci
350862306a36Sopenharmony_cistatic struct gdsc *mmcc_msm8996_gdscs[] = {
350962306a36Sopenharmony_ci	[MMAGIC_BIMC_GDSC] = &mmagic_bimc_gdsc,
351062306a36Sopenharmony_ci	[MMAGIC_VIDEO_GDSC] = &mmagic_video_gdsc,
351162306a36Sopenharmony_ci	[MMAGIC_MDSS_GDSC] = &mmagic_mdss_gdsc,
351262306a36Sopenharmony_ci	[MMAGIC_CAMSS_GDSC] = &mmagic_camss_gdsc,
351362306a36Sopenharmony_ci	[VENUS_GDSC] = &venus_gdsc,
351462306a36Sopenharmony_ci	[VENUS_CORE0_GDSC] = &venus_core0_gdsc,
351562306a36Sopenharmony_ci	[VENUS_CORE1_GDSC] = &venus_core1_gdsc,
351662306a36Sopenharmony_ci	[CAMSS_GDSC] = &camss_gdsc,
351762306a36Sopenharmony_ci	[VFE0_GDSC] = &vfe0_gdsc,
351862306a36Sopenharmony_ci	[VFE1_GDSC] = &vfe1_gdsc,
351962306a36Sopenharmony_ci	[JPEG_GDSC] = &jpeg_gdsc,
352062306a36Sopenharmony_ci	[CPP_GDSC] = &cpp_gdsc,
352162306a36Sopenharmony_ci	[FD_GDSC] = &fd_gdsc,
352262306a36Sopenharmony_ci	[MDSS_GDSC] = &mdss_gdsc,
352362306a36Sopenharmony_ci	[GPU_GDSC] = &gpu_gdsc,
352462306a36Sopenharmony_ci	[GPU_GX_GDSC] = &gpu_gx_gdsc,
352562306a36Sopenharmony_ci};
352662306a36Sopenharmony_ci
352762306a36Sopenharmony_cistatic const struct qcom_reset_map mmcc_msm8996_resets[] = {
352862306a36Sopenharmony_ci	[MMAGICAHB_BCR] = { 0x5020 },
352962306a36Sopenharmony_ci	[MMAGIC_CFG_BCR] = { 0x5050 },
353062306a36Sopenharmony_ci	[MISC_BCR] = { 0x5010 },
353162306a36Sopenharmony_ci	[BTO_BCR] = { 0x5030 },
353262306a36Sopenharmony_ci	[MMAGICAXI_BCR] = { 0x5060 },
353362306a36Sopenharmony_ci	[MMAGICMAXI_BCR] = { 0x5070 },
353462306a36Sopenharmony_ci	[DSA_BCR] = { 0x50a0 },
353562306a36Sopenharmony_ci	[MMAGIC_CAMSS_BCR] = { 0x3c40 },
353662306a36Sopenharmony_ci	[THROTTLE_CAMSS_BCR] = { 0x3c30 },
353762306a36Sopenharmony_ci	[SMMU_VFE_BCR] = { 0x3c00 },
353862306a36Sopenharmony_ci	[SMMU_CPP_BCR] = { 0x3c10 },
353962306a36Sopenharmony_ci	[SMMU_JPEG_BCR] = { 0x3c20 },
354062306a36Sopenharmony_ci	[MMAGIC_MDSS_BCR] = { 0x2470 },
354162306a36Sopenharmony_ci	[THROTTLE_MDSS_BCR] = { 0x2460 },
354262306a36Sopenharmony_ci	[SMMU_ROT_BCR] = { 0x2440 },
354362306a36Sopenharmony_ci	[SMMU_MDP_BCR] = { 0x2450 },
354462306a36Sopenharmony_ci	[MMAGIC_VIDEO_BCR] = { 0x1190 },
354562306a36Sopenharmony_ci	[THROTTLE_VIDEO_BCR] = { 0x1180 },
354662306a36Sopenharmony_ci	[SMMU_VIDEO_BCR] = { 0x1170 },
354762306a36Sopenharmony_ci	[MMAGIC_BIMC_BCR] = { 0x5290 },
354862306a36Sopenharmony_ci	[GPU_GX_BCR] = { 0x4020 },
354962306a36Sopenharmony_ci	[GPU_BCR] = { 0x4030 },
355062306a36Sopenharmony_ci	[GPU_AON_BCR] = { 0x4040 },
355162306a36Sopenharmony_ci	[VMEM_BCR] = { 0x1200 },
355262306a36Sopenharmony_ci	[MMSS_RBCPR_BCR] = { 0x4080 },
355362306a36Sopenharmony_ci	[VIDEO_BCR] = { 0x1020 },
355462306a36Sopenharmony_ci	[MDSS_BCR] = { 0x2300 },
355562306a36Sopenharmony_ci	[CAMSS_TOP_BCR] = { 0x3480 },
355662306a36Sopenharmony_ci	[CAMSS_AHB_BCR] = { 0x3488 },
355762306a36Sopenharmony_ci	[CAMSS_MICRO_BCR] = { 0x3490 },
355862306a36Sopenharmony_ci	[CAMSS_CCI_BCR] = { 0x3340 },
355962306a36Sopenharmony_ci	[CAMSS_PHY0_BCR] = { 0x3020 },
356062306a36Sopenharmony_ci	[CAMSS_PHY1_BCR] = { 0x3050 },
356162306a36Sopenharmony_ci	[CAMSS_PHY2_BCR] = { 0x3080 },
356262306a36Sopenharmony_ci	[CAMSS_CSIPHY0_3P_BCR] = { 0x3230 },
356362306a36Sopenharmony_ci	[CAMSS_CSIPHY1_3P_BCR] = { 0x3250 },
356462306a36Sopenharmony_ci	[CAMSS_CSIPHY2_3P_BCR] = { 0x3270 },
356562306a36Sopenharmony_ci	[CAMSS_JPEG_BCR] = { 0x35a0 },
356662306a36Sopenharmony_ci	[CAMSS_VFE_BCR] = { 0x36a0 },
356762306a36Sopenharmony_ci	[CAMSS_VFE0_BCR] = { 0x3660 },
356862306a36Sopenharmony_ci	[CAMSS_VFE1_BCR] = { 0x3670 },
356962306a36Sopenharmony_ci	[CAMSS_CSI_VFE0_BCR] = { 0x3700 },
357062306a36Sopenharmony_ci	[CAMSS_CSI_VFE1_BCR] = { 0x3710 },
357162306a36Sopenharmony_ci	[CAMSS_CPP_TOP_BCR] = { 0x36c0 },
357262306a36Sopenharmony_ci	[CAMSS_CPP_BCR] = { 0x36d0 },
357362306a36Sopenharmony_ci	[CAMSS_CSI0_BCR] = { 0x30b0 },
357462306a36Sopenharmony_ci	[CAMSS_CSI0RDI_BCR] = { 0x30d0 },
357562306a36Sopenharmony_ci	[CAMSS_CSI0PIX_BCR] = { 0x30e0 },
357662306a36Sopenharmony_ci	[CAMSS_CSI1_BCR] = { 0x3120 },
357762306a36Sopenharmony_ci	[CAMSS_CSI1RDI_BCR] = { 0x3140 },
357862306a36Sopenharmony_ci	[CAMSS_CSI1PIX_BCR] = { 0x3150 },
357962306a36Sopenharmony_ci	[CAMSS_CSI2_BCR] = { 0x3180 },
358062306a36Sopenharmony_ci	[CAMSS_CSI2RDI_BCR] = { 0x31a0 },
358162306a36Sopenharmony_ci	[CAMSS_CSI2PIX_BCR] = { 0x31b0 },
358262306a36Sopenharmony_ci	[CAMSS_CSI3_BCR] = { 0x31e0 },
358362306a36Sopenharmony_ci	[CAMSS_CSI3RDI_BCR] = { 0x3200 },
358462306a36Sopenharmony_ci	[CAMSS_CSI3PIX_BCR] = { 0x3210 },
358562306a36Sopenharmony_ci	[CAMSS_ISPIF_BCR] = { 0x3220 },
358662306a36Sopenharmony_ci	[FD_BCR] = { 0x3b60 },
358762306a36Sopenharmony_ci	[MMSS_SPDM_RM_BCR] = { 0x300 },
358862306a36Sopenharmony_ci};
358962306a36Sopenharmony_ci
359062306a36Sopenharmony_cistatic const struct regmap_config mmcc_msm8996_regmap_config = {
359162306a36Sopenharmony_ci	.reg_bits	= 32,
359262306a36Sopenharmony_ci	.reg_stride	= 4,
359362306a36Sopenharmony_ci	.val_bits	= 32,
359462306a36Sopenharmony_ci	.max_register	= 0xb008,
359562306a36Sopenharmony_ci	.fast_io	= true,
359662306a36Sopenharmony_ci};
359762306a36Sopenharmony_ci
359862306a36Sopenharmony_cistatic const struct qcom_cc_desc mmcc_msm8996_desc = {
359962306a36Sopenharmony_ci	.config = &mmcc_msm8996_regmap_config,
360062306a36Sopenharmony_ci	.clks = mmcc_msm8996_clocks,
360162306a36Sopenharmony_ci	.num_clks = ARRAY_SIZE(mmcc_msm8996_clocks),
360262306a36Sopenharmony_ci	.resets = mmcc_msm8996_resets,
360362306a36Sopenharmony_ci	.num_resets = ARRAY_SIZE(mmcc_msm8996_resets),
360462306a36Sopenharmony_ci	.gdscs = mmcc_msm8996_gdscs,
360562306a36Sopenharmony_ci	.num_gdscs = ARRAY_SIZE(mmcc_msm8996_gdscs),
360662306a36Sopenharmony_ci	.clk_hws = mmcc_msm8996_hws,
360762306a36Sopenharmony_ci	.num_clk_hws = ARRAY_SIZE(mmcc_msm8996_hws),
360862306a36Sopenharmony_ci};
360962306a36Sopenharmony_ci
361062306a36Sopenharmony_cistatic const struct of_device_id mmcc_msm8996_match_table[] = {
361162306a36Sopenharmony_ci	{ .compatible = "qcom,mmcc-msm8996" },
361262306a36Sopenharmony_ci	{ }
361362306a36Sopenharmony_ci};
361462306a36Sopenharmony_ciMODULE_DEVICE_TABLE(of, mmcc_msm8996_match_table);
361562306a36Sopenharmony_ci
361662306a36Sopenharmony_cistatic int mmcc_msm8996_probe(struct platform_device *pdev)
361762306a36Sopenharmony_ci{
361862306a36Sopenharmony_ci	struct regmap *regmap;
361962306a36Sopenharmony_ci
362062306a36Sopenharmony_ci	regmap = qcom_cc_map(pdev, &mmcc_msm8996_desc);
362162306a36Sopenharmony_ci	if (IS_ERR(regmap))
362262306a36Sopenharmony_ci		return PTR_ERR(regmap);
362362306a36Sopenharmony_ci
362462306a36Sopenharmony_ci	/* Disable the AHB DCD */
362562306a36Sopenharmony_ci	regmap_update_bits(regmap, 0x50d8, BIT(31), 0);
362662306a36Sopenharmony_ci	/* Disable the NoC FSM for mmss_mmagic_cfg_ahb_clk */
362762306a36Sopenharmony_ci	regmap_update_bits(regmap, 0x5054, BIT(15), 0);
362862306a36Sopenharmony_ci
362962306a36Sopenharmony_ci	return qcom_cc_really_probe(pdev, &mmcc_msm8996_desc, regmap);
363062306a36Sopenharmony_ci}
363162306a36Sopenharmony_ci
363262306a36Sopenharmony_cistatic struct platform_driver mmcc_msm8996_driver = {
363362306a36Sopenharmony_ci	.probe		= mmcc_msm8996_probe,
363462306a36Sopenharmony_ci	.driver		= {
363562306a36Sopenharmony_ci		.name	= "mmcc-msm8996",
363662306a36Sopenharmony_ci		.of_match_table = mmcc_msm8996_match_table,
363762306a36Sopenharmony_ci	},
363862306a36Sopenharmony_ci};
363962306a36Sopenharmony_cimodule_platform_driver(mmcc_msm8996_driver);
364062306a36Sopenharmony_ci
364162306a36Sopenharmony_ciMODULE_DESCRIPTION("QCOM MMCC MSM8996 Driver");
364262306a36Sopenharmony_ciMODULE_LICENSE("GPL v2");
364362306a36Sopenharmony_ciMODULE_ALIAS("platform:mmcc-msm8996");
3644