162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright (c) 2019, 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
1662306a36Sopenharmony_ci#include <dt-bindings/clock/qcom,mmcc-msm8998.h>
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ci#include "common.h"
1962306a36Sopenharmony_ci#include "clk-regmap.h"
2062306a36Sopenharmony_ci#include "clk-regmap-divider.h"
2162306a36Sopenharmony_ci#include "clk-alpha-pll.h"
2262306a36Sopenharmony_ci#include "clk-rcg.h"
2362306a36Sopenharmony_ci#include "clk-branch.h"
2462306a36Sopenharmony_ci#include "reset.h"
2562306a36Sopenharmony_ci#include "gdsc.h"
2662306a36Sopenharmony_ci
2762306a36Sopenharmony_cienum {
2862306a36Sopenharmony_ci	P_XO,
2962306a36Sopenharmony_ci	P_GPLL0,
3062306a36Sopenharmony_ci	P_GPLL0_DIV,
3162306a36Sopenharmony_ci	P_MMPLL0_OUT_EVEN,
3262306a36Sopenharmony_ci	P_MMPLL1_OUT_EVEN,
3362306a36Sopenharmony_ci	P_MMPLL3_OUT_EVEN,
3462306a36Sopenharmony_ci	P_MMPLL4_OUT_EVEN,
3562306a36Sopenharmony_ci	P_MMPLL5_OUT_EVEN,
3662306a36Sopenharmony_ci	P_MMPLL6_OUT_EVEN,
3762306a36Sopenharmony_ci	P_MMPLL7_OUT_EVEN,
3862306a36Sopenharmony_ci	P_MMPLL10_OUT_EVEN,
3962306a36Sopenharmony_ci	P_DSI0PLL,
4062306a36Sopenharmony_ci	P_DSI1PLL,
4162306a36Sopenharmony_ci	P_DSI0PLL_BYTE,
4262306a36Sopenharmony_ci	P_DSI1PLL_BYTE,
4362306a36Sopenharmony_ci	P_HDMIPLL,
4462306a36Sopenharmony_ci	P_DPVCO,
4562306a36Sopenharmony_ci	P_DPLINK,
4662306a36Sopenharmony_ci};
4762306a36Sopenharmony_ci
4862306a36Sopenharmony_cistatic const struct clk_div_table post_div_table_fabia_even[] = {
4962306a36Sopenharmony_ci	{ 0x0, 1 },
5062306a36Sopenharmony_ci	{ 0x1, 2 },
5162306a36Sopenharmony_ci	{ 0x3, 4 },
5262306a36Sopenharmony_ci	{ 0x7, 8 },
5362306a36Sopenharmony_ci	{ }
5462306a36Sopenharmony_ci};
5562306a36Sopenharmony_ci
5662306a36Sopenharmony_cistatic struct clk_alpha_pll mmpll0 = {
5762306a36Sopenharmony_ci	.offset = 0xc000,
5862306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
5962306a36Sopenharmony_ci	.clkr = {
6062306a36Sopenharmony_ci		.enable_reg = 0x1e0,
6162306a36Sopenharmony_ci		.enable_mask = BIT(0),
6262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
6362306a36Sopenharmony_ci			.name = "mmpll0",
6462306a36Sopenharmony_ci			.parent_data = &(const struct clk_parent_data){
6562306a36Sopenharmony_ci				.fw_name = "xo"
6662306a36Sopenharmony_ci			},
6762306a36Sopenharmony_ci			.num_parents = 1,
6862306a36Sopenharmony_ci			.ops = &clk_alpha_pll_fixed_fabia_ops,
6962306a36Sopenharmony_ci		},
7062306a36Sopenharmony_ci	},
7162306a36Sopenharmony_ci};
7262306a36Sopenharmony_ci
7362306a36Sopenharmony_cistatic struct clk_alpha_pll_postdiv mmpll0_out_even = {
7462306a36Sopenharmony_ci	.offset = 0xc000,
7562306a36Sopenharmony_ci	.post_div_shift = 8,
7662306a36Sopenharmony_ci	.post_div_table = post_div_table_fabia_even,
7762306a36Sopenharmony_ci	.num_post_div = ARRAY_SIZE(post_div_table_fabia_even),
7862306a36Sopenharmony_ci	.width = 4,
7962306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
8062306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
8162306a36Sopenharmony_ci		.name = "mmpll0_out_even",
8262306a36Sopenharmony_ci		.parent_hws = (const struct clk_hw *[]){ &mmpll0.clkr.hw },
8362306a36Sopenharmony_ci		.num_parents = 1,
8462306a36Sopenharmony_ci		.ops = &clk_alpha_pll_postdiv_fabia_ops,
8562306a36Sopenharmony_ci	},
8662306a36Sopenharmony_ci};
8762306a36Sopenharmony_ci
8862306a36Sopenharmony_cistatic struct clk_alpha_pll mmpll1 = {
8962306a36Sopenharmony_ci	.offset = 0xc050,
9062306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
9162306a36Sopenharmony_ci	.clkr = {
9262306a36Sopenharmony_ci		.enable_reg = 0x1e0,
9362306a36Sopenharmony_ci		.enable_mask = BIT(1),
9462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
9562306a36Sopenharmony_ci			.name = "mmpll1",
9662306a36Sopenharmony_ci			.parent_data = &(const struct clk_parent_data){
9762306a36Sopenharmony_ci				.fw_name = "xo"
9862306a36Sopenharmony_ci			},
9962306a36Sopenharmony_ci			.num_parents = 1,
10062306a36Sopenharmony_ci			.ops = &clk_alpha_pll_fixed_fabia_ops,
10162306a36Sopenharmony_ci		},
10262306a36Sopenharmony_ci	},
10362306a36Sopenharmony_ci};
10462306a36Sopenharmony_ci
10562306a36Sopenharmony_cistatic struct clk_alpha_pll_postdiv mmpll1_out_even = {
10662306a36Sopenharmony_ci	.offset = 0xc050,
10762306a36Sopenharmony_ci	.post_div_shift = 8,
10862306a36Sopenharmony_ci	.post_div_table = post_div_table_fabia_even,
10962306a36Sopenharmony_ci	.num_post_div = ARRAY_SIZE(post_div_table_fabia_even),
11062306a36Sopenharmony_ci	.width = 4,
11162306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
11262306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
11362306a36Sopenharmony_ci		.name = "mmpll1_out_even",
11462306a36Sopenharmony_ci		.parent_hws = (const struct clk_hw *[]){ &mmpll1.clkr.hw },
11562306a36Sopenharmony_ci		.num_parents = 1,
11662306a36Sopenharmony_ci		.ops = &clk_alpha_pll_postdiv_fabia_ops,
11762306a36Sopenharmony_ci	},
11862306a36Sopenharmony_ci};
11962306a36Sopenharmony_ci
12062306a36Sopenharmony_cistatic struct clk_alpha_pll mmpll3 = {
12162306a36Sopenharmony_ci	.offset = 0x0,
12262306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
12362306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
12462306a36Sopenharmony_ci		.name = "mmpll3",
12562306a36Sopenharmony_ci		.parent_data = &(const struct clk_parent_data){
12662306a36Sopenharmony_ci			.fw_name = "xo"
12762306a36Sopenharmony_ci		},
12862306a36Sopenharmony_ci		.num_parents = 1,
12962306a36Sopenharmony_ci		.ops = &clk_alpha_pll_fixed_fabia_ops,
13062306a36Sopenharmony_ci	},
13162306a36Sopenharmony_ci};
13262306a36Sopenharmony_ci
13362306a36Sopenharmony_cistatic struct clk_alpha_pll_postdiv mmpll3_out_even = {
13462306a36Sopenharmony_ci	.offset = 0x0,
13562306a36Sopenharmony_ci	.post_div_shift = 8,
13662306a36Sopenharmony_ci	.post_div_table = post_div_table_fabia_even,
13762306a36Sopenharmony_ci	.num_post_div = ARRAY_SIZE(post_div_table_fabia_even),
13862306a36Sopenharmony_ci	.width = 4,
13962306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
14062306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
14162306a36Sopenharmony_ci		.name = "mmpll3_out_even",
14262306a36Sopenharmony_ci		.parent_hws = (const struct clk_hw *[]){ &mmpll3.clkr.hw },
14362306a36Sopenharmony_ci		.num_parents = 1,
14462306a36Sopenharmony_ci		.ops = &clk_alpha_pll_postdiv_fabia_ops,
14562306a36Sopenharmony_ci	},
14662306a36Sopenharmony_ci};
14762306a36Sopenharmony_ci
14862306a36Sopenharmony_cistatic struct clk_alpha_pll mmpll4 = {
14962306a36Sopenharmony_ci	.offset = 0x50,
15062306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
15162306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
15262306a36Sopenharmony_ci		.name = "mmpll4",
15362306a36Sopenharmony_ci		.parent_data = &(const struct clk_parent_data){
15462306a36Sopenharmony_ci			.fw_name = "xo"
15562306a36Sopenharmony_ci		},
15662306a36Sopenharmony_ci		.num_parents = 1,
15762306a36Sopenharmony_ci		.ops = &clk_alpha_pll_fixed_fabia_ops,
15862306a36Sopenharmony_ci	},
15962306a36Sopenharmony_ci};
16062306a36Sopenharmony_ci
16162306a36Sopenharmony_cistatic struct clk_alpha_pll_postdiv mmpll4_out_even = {
16262306a36Sopenharmony_ci	.offset = 0x50,
16362306a36Sopenharmony_ci	.post_div_shift = 8,
16462306a36Sopenharmony_ci	.post_div_table = post_div_table_fabia_even,
16562306a36Sopenharmony_ci	.num_post_div = ARRAY_SIZE(post_div_table_fabia_even),
16662306a36Sopenharmony_ci	.width = 4,
16762306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
16862306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
16962306a36Sopenharmony_ci		.name = "mmpll4_out_even",
17062306a36Sopenharmony_ci		.parent_hws = (const struct clk_hw *[]){ &mmpll4.clkr.hw },
17162306a36Sopenharmony_ci		.num_parents = 1,
17262306a36Sopenharmony_ci		.ops = &clk_alpha_pll_postdiv_fabia_ops,
17362306a36Sopenharmony_ci	},
17462306a36Sopenharmony_ci};
17562306a36Sopenharmony_ci
17662306a36Sopenharmony_cistatic struct clk_alpha_pll mmpll5 = {
17762306a36Sopenharmony_ci	.offset = 0xa0,
17862306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
17962306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
18062306a36Sopenharmony_ci		.name = "mmpll5",
18162306a36Sopenharmony_ci		.parent_data = &(const struct clk_parent_data){
18262306a36Sopenharmony_ci			.fw_name = "xo"
18362306a36Sopenharmony_ci		},
18462306a36Sopenharmony_ci		.num_parents = 1,
18562306a36Sopenharmony_ci		.ops = &clk_alpha_pll_fixed_fabia_ops,
18662306a36Sopenharmony_ci	},
18762306a36Sopenharmony_ci};
18862306a36Sopenharmony_ci
18962306a36Sopenharmony_cistatic struct clk_alpha_pll_postdiv mmpll5_out_even = {
19062306a36Sopenharmony_ci	.offset = 0xa0,
19162306a36Sopenharmony_ci	.post_div_shift = 8,
19262306a36Sopenharmony_ci	.post_div_table = post_div_table_fabia_even,
19362306a36Sopenharmony_ci	.num_post_div = ARRAY_SIZE(post_div_table_fabia_even),
19462306a36Sopenharmony_ci	.width = 4,
19562306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
19662306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
19762306a36Sopenharmony_ci		.name = "mmpll5_out_even",
19862306a36Sopenharmony_ci		.parent_hws = (const struct clk_hw *[]){ &mmpll5.clkr.hw },
19962306a36Sopenharmony_ci		.num_parents = 1,
20062306a36Sopenharmony_ci		.ops = &clk_alpha_pll_postdiv_fabia_ops,
20162306a36Sopenharmony_ci	},
20262306a36Sopenharmony_ci};
20362306a36Sopenharmony_ci
20462306a36Sopenharmony_cistatic struct clk_alpha_pll mmpll6 = {
20562306a36Sopenharmony_ci	.offset = 0xf0,
20662306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
20762306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
20862306a36Sopenharmony_ci		.name = "mmpll6",
20962306a36Sopenharmony_ci		.parent_data = &(const struct clk_parent_data){
21062306a36Sopenharmony_ci			.fw_name = "xo"
21162306a36Sopenharmony_ci		},
21262306a36Sopenharmony_ci		.num_parents = 1,
21362306a36Sopenharmony_ci		.ops = &clk_alpha_pll_fixed_fabia_ops,
21462306a36Sopenharmony_ci	},
21562306a36Sopenharmony_ci};
21662306a36Sopenharmony_ci
21762306a36Sopenharmony_cistatic struct clk_alpha_pll_postdiv mmpll6_out_even = {
21862306a36Sopenharmony_ci	.offset = 0xf0,
21962306a36Sopenharmony_ci	.post_div_shift = 8,
22062306a36Sopenharmony_ci	.post_div_table = post_div_table_fabia_even,
22162306a36Sopenharmony_ci	.num_post_div = ARRAY_SIZE(post_div_table_fabia_even),
22262306a36Sopenharmony_ci	.width = 4,
22362306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
22462306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
22562306a36Sopenharmony_ci		.name = "mmpll6_out_even",
22662306a36Sopenharmony_ci		.parent_hws = (const struct clk_hw *[]){ &mmpll6.clkr.hw },
22762306a36Sopenharmony_ci		.num_parents = 1,
22862306a36Sopenharmony_ci		.ops = &clk_alpha_pll_postdiv_fabia_ops,
22962306a36Sopenharmony_ci	},
23062306a36Sopenharmony_ci};
23162306a36Sopenharmony_ci
23262306a36Sopenharmony_cistatic struct clk_alpha_pll mmpll7 = {
23362306a36Sopenharmony_ci	.offset = 0x140,
23462306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
23562306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
23662306a36Sopenharmony_ci		.name = "mmpll7",
23762306a36Sopenharmony_ci		.parent_data = &(const struct clk_parent_data){
23862306a36Sopenharmony_ci			.fw_name = "xo"
23962306a36Sopenharmony_ci		},
24062306a36Sopenharmony_ci		.num_parents = 1,
24162306a36Sopenharmony_ci		.ops = &clk_alpha_pll_fixed_fabia_ops,
24262306a36Sopenharmony_ci	},
24362306a36Sopenharmony_ci};
24462306a36Sopenharmony_ci
24562306a36Sopenharmony_cistatic struct clk_alpha_pll_postdiv mmpll7_out_even = {
24662306a36Sopenharmony_ci	.offset = 0x140,
24762306a36Sopenharmony_ci	.post_div_shift = 8,
24862306a36Sopenharmony_ci	.post_div_table = post_div_table_fabia_even,
24962306a36Sopenharmony_ci	.num_post_div = ARRAY_SIZE(post_div_table_fabia_even),
25062306a36Sopenharmony_ci	.width = 4,
25162306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
25262306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
25362306a36Sopenharmony_ci		.name = "mmpll7_out_even",
25462306a36Sopenharmony_ci		.parent_hws = (const struct clk_hw *[]){ &mmpll7.clkr.hw },
25562306a36Sopenharmony_ci		.num_parents = 1,
25662306a36Sopenharmony_ci		.ops = &clk_alpha_pll_postdiv_fabia_ops,
25762306a36Sopenharmony_ci	},
25862306a36Sopenharmony_ci};
25962306a36Sopenharmony_ci
26062306a36Sopenharmony_cistatic struct clk_alpha_pll mmpll10 = {
26162306a36Sopenharmony_ci	.offset = 0x190,
26262306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
26362306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
26462306a36Sopenharmony_ci		.name = "mmpll10",
26562306a36Sopenharmony_ci		.parent_data = &(const struct clk_parent_data){
26662306a36Sopenharmony_ci			.fw_name = "xo"
26762306a36Sopenharmony_ci		},
26862306a36Sopenharmony_ci		.num_parents = 1,
26962306a36Sopenharmony_ci		.ops = &clk_alpha_pll_fixed_fabia_ops,
27062306a36Sopenharmony_ci	},
27162306a36Sopenharmony_ci};
27262306a36Sopenharmony_ci
27362306a36Sopenharmony_cistatic struct clk_alpha_pll_postdiv mmpll10_out_even = {
27462306a36Sopenharmony_ci	.offset = 0x190,
27562306a36Sopenharmony_ci	.post_div_shift = 8,
27662306a36Sopenharmony_ci	.post_div_table = post_div_table_fabia_even,
27762306a36Sopenharmony_ci	.num_post_div = ARRAY_SIZE(post_div_table_fabia_even),
27862306a36Sopenharmony_ci	.width = 4,
27962306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA],
28062306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
28162306a36Sopenharmony_ci		.name = "mmpll10_out_even",
28262306a36Sopenharmony_ci		.parent_hws = (const struct clk_hw *[]){ &mmpll10.clkr.hw },
28362306a36Sopenharmony_ci		.num_parents = 1,
28462306a36Sopenharmony_ci		.ops = &clk_alpha_pll_postdiv_fabia_ops,
28562306a36Sopenharmony_ci	},
28662306a36Sopenharmony_ci};
28762306a36Sopenharmony_ci
28862306a36Sopenharmony_cistatic const struct parent_map mmss_xo_hdmi_map[] = {
28962306a36Sopenharmony_ci	{ P_XO, 0 },
29062306a36Sopenharmony_ci	{ P_HDMIPLL, 1 },
29162306a36Sopenharmony_ci};
29262306a36Sopenharmony_ci
29362306a36Sopenharmony_cistatic const struct clk_parent_data mmss_xo_hdmi[] = {
29462306a36Sopenharmony_ci	{ .fw_name = "xo" },
29562306a36Sopenharmony_ci	{ .fw_name = "hdmipll" },
29662306a36Sopenharmony_ci};
29762306a36Sopenharmony_ci
29862306a36Sopenharmony_cistatic const struct parent_map mmss_xo_dsi0pll_dsi1pll_map[] = {
29962306a36Sopenharmony_ci	{ P_XO, 0 },
30062306a36Sopenharmony_ci	{ P_DSI0PLL, 1 },
30162306a36Sopenharmony_ci	{ P_DSI1PLL, 2 },
30262306a36Sopenharmony_ci};
30362306a36Sopenharmony_ci
30462306a36Sopenharmony_cistatic const struct clk_parent_data mmss_xo_dsi0pll_dsi1pll[] = {
30562306a36Sopenharmony_ci	{ .fw_name = "xo" },
30662306a36Sopenharmony_ci	{ .fw_name = "dsi0dsi" },
30762306a36Sopenharmony_ci	{ .fw_name = "dsi1dsi" },
30862306a36Sopenharmony_ci};
30962306a36Sopenharmony_ci
31062306a36Sopenharmony_cistatic const struct parent_map mmss_xo_dsibyte_map[] = {
31162306a36Sopenharmony_ci	{ P_XO, 0 },
31262306a36Sopenharmony_ci	{ P_DSI0PLL_BYTE, 1 },
31362306a36Sopenharmony_ci	{ P_DSI1PLL_BYTE, 2 },
31462306a36Sopenharmony_ci};
31562306a36Sopenharmony_ci
31662306a36Sopenharmony_cistatic const struct clk_parent_data mmss_xo_dsibyte[] = {
31762306a36Sopenharmony_ci	{ .fw_name = "xo" },
31862306a36Sopenharmony_ci	{ .fw_name = "dsi0byte" },
31962306a36Sopenharmony_ci	{ .fw_name = "dsi1byte" },
32062306a36Sopenharmony_ci};
32162306a36Sopenharmony_ci
32262306a36Sopenharmony_cistatic const struct parent_map mmss_xo_dp_map[] = {
32362306a36Sopenharmony_ci	{ P_XO, 0 },
32462306a36Sopenharmony_ci	{ P_DPLINK, 1 },
32562306a36Sopenharmony_ci	{ P_DPVCO, 2 },
32662306a36Sopenharmony_ci};
32762306a36Sopenharmony_ci
32862306a36Sopenharmony_cistatic const struct clk_parent_data mmss_xo_dp[] = {
32962306a36Sopenharmony_ci	{ .fw_name = "xo" },
33062306a36Sopenharmony_ci	{ .fw_name = "dplink" },
33162306a36Sopenharmony_ci	{ .fw_name = "dpvco" },
33262306a36Sopenharmony_ci};
33362306a36Sopenharmony_ci
33462306a36Sopenharmony_cistatic const struct parent_map mmss_xo_gpll0_gpll0_div_map[] = {
33562306a36Sopenharmony_ci	{ P_XO, 0 },
33662306a36Sopenharmony_ci	{ P_GPLL0, 5 },
33762306a36Sopenharmony_ci	{ P_GPLL0_DIV, 6 },
33862306a36Sopenharmony_ci};
33962306a36Sopenharmony_ci
34062306a36Sopenharmony_cistatic const struct clk_parent_data mmss_xo_gpll0_gpll0_div[] = {
34162306a36Sopenharmony_ci	{ .fw_name = "xo" },
34262306a36Sopenharmony_ci	{ .fw_name = "gpll0" },
34362306a36Sopenharmony_ci	{ .fw_name = "gpll0_div", .name = "gcc_mmss_gpll0_div_clk" },
34462306a36Sopenharmony_ci};
34562306a36Sopenharmony_ci
34662306a36Sopenharmony_cistatic const struct parent_map mmss_xo_mmpll0_gpll0_gpll0_div_map[] = {
34762306a36Sopenharmony_ci	{ P_XO, 0 },
34862306a36Sopenharmony_ci	{ P_MMPLL0_OUT_EVEN, 1 },
34962306a36Sopenharmony_ci	{ P_GPLL0, 5 },
35062306a36Sopenharmony_ci	{ P_GPLL0_DIV, 6 },
35162306a36Sopenharmony_ci};
35262306a36Sopenharmony_ci
35362306a36Sopenharmony_cistatic const struct clk_parent_data mmss_xo_mmpll0_gpll0_gpll0_div[] = {
35462306a36Sopenharmony_ci	{ .fw_name = "xo" },
35562306a36Sopenharmony_ci	{ .hw = &mmpll0_out_even.clkr.hw },
35662306a36Sopenharmony_ci	{ .fw_name = "gpll0" },
35762306a36Sopenharmony_ci	{ .fw_name = "gpll0_div", .name = "gcc_mmss_gpll0_div_clk" },
35862306a36Sopenharmony_ci};
35962306a36Sopenharmony_ci
36062306a36Sopenharmony_cistatic const struct parent_map mmss_xo_mmpll0_mmpll1_gpll0_gpll0_div_map[] = {
36162306a36Sopenharmony_ci	{ P_XO, 0 },
36262306a36Sopenharmony_ci	{ P_MMPLL0_OUT_EVEN, 1 },
36362306a36Sopenharmony_ci	{ P_MMPLL1_OUT_EVEN, 2 },
36462306a36Sopenharmony_ci	{ P_GPLL0, 5 },
36562306a36Sopenharmony_ci	{ P_GPLL0_DIV, 6 },
36662306a36Sopenharmony_ci};
36762306a36Sopenharmony_ci
36862306a36Sopenharmony_cistatic const struct clk_parent_data mmss_xo_mmpll0_mmpll1_gpll0_gpll0_div[] = {
36962306a36Sopenharmony_ci	{ .fw_name = "xo" },
37062306a36Sopenharmony_ci	{ .hw = &mmpll0_out_even.clkr.hw },
37162306a36Sopenharmony_ci	{ .hw = &mmpll1_out_even.clkr.hw },
37262306a36Sopenharmony_ci	{ .fw_name = "gpll0" },
37362306a36Sopenharmony_ci	{ .fw_name = "gpll0_div", .name = "gcc_mmss_gpll0_div_clk" },
37462306a36Sopenharmony_ci};
37562306a36Sopenharmony_ci
37662306a36Sopenharmony_cistatic const struct parent_map mmss_xo_mmpll0_mmpll5_gpll0_gpll0_div_map[] = {
37762306a36Sopenharmony_ci	{ P_XO, 0 },
37862306a36Sopenharmony_ci	{ P_MMPLL0_OUT_EVEN, 1 },
37962306a36Sopenharmony_ci	{ P_MMPLL5_OUT_EVEN, 2 },
38062306a36Sopenharmony_ci	{ P_GPLL0, 5 },
38162306a36Sopenharmony_ci	{ P_GPLL0_DIV, 6 },
38262306a36Sopenharmony_ci};
38362306a36Sopenharmony_ci
38462306a36Sopenharmony_cistatic const struct clk_parent_data mmss_xo_mmpll0_mmpll5_gpll0_gpll0_div[] = {
38562306a36Sopenharmony_ci	{ .fw_name = "xo" },
38662306a36Sopenharmony_ci	{ .hw = &mmpll0_out_even.clkr.hw },
38762306a36Sopenharmony_ci	{ .hw = &mmpll5_out_even.clkr.hw },
38862306a36Sopenharmony_ci	{ .fw_name = "gpll0" },
38962306a36Sopenharmony_ci	{ .fw_name = "gpll0_div", .name = "gcc_mmss_gpll0_div_clk" },
39062306a36Sopenharmony_ci};
39162306a36Sopenharmony_ci
39262306a36Sopenharmony_cistatic const struct parent_map mmss_xo_mmpll0_mmpll3_mmpll6_gpll0_gpll0_div_map[] = {
39362306a36Sopenharmony_ci	{ P_XO, 0 },
39462306a36Sopenharmony_ci	{ P_MMPLL0_OUT_EVEN, 1 },
39562306a36Sopenharmony_ci	{ P_MMPLL3_OUT_EVEN, 3 },
39662306a36Sopenharmony_ci	{ P_MMPLL6_OUT_EVEN, 4 },
39762306a36Sopenharmony_ci	{ P_GPLL0, 5 },
39862306a36Sopenharmony_ci	{ P_GPLL0_DIV, 6 },
39962306a36Sopenharmony_ci};
40062306a36Sopenharmony_ci
40162306a36Sopenharmony_cistatic const struct clk_parent_data mmss_xo_mmpll0_mmpll3_mmpll6_gpll0_gpll0_div[] = {
40262306a36Sopenharmony_ci	{ .fw_name = "xo" },
40362306a36Sopenharmony_ci	{ .hw = &mmpll0_out_even.clkr.hw },
40462306a36Sopenharmony_ci	{ .hw = &mmpll3_out_even.clkr.hw },
40562306a36Sopenharmony_ci	{ .hw = &mmpll6_out_even.clkr.hw },
40662306a36Sopenharmony_ci	{ .fw_name = "gpll0" },
40762306a36Sopenharmony_ci	{ .fw_name = "gpll0_div", .name = "gcc_mmss_gpll0_div_clk" },
40862306a36Sopenharmony_ci};
40962306a36Sopenharmony_ci
41062306a36Sopenharmony_cistatic const struct parent_map mmss_xo_mmpll4_mmpll7_mmpll10_gpll0_gpll0_div_map[] = {
41162306a36Sopenharmony_ci	{ P_XO, 0 },
41262306a36Sopenharmony_ci	{ P_MMPLL4_OUT_EVEN, 1 },
41362306a36Sopenharmony_ci	{ P_MMPLL7_OUT_EVEN, 2 },
41462306a36Sopenharmony_ci	{ P_MMPLL10_OUT_EVEN, 3 },
41562306a36Sopenharmony_ci	{ P_GPLL0, 5 },
41662306a36Sopenharmony_ci	{ P_GPLL0_DIV, 6 },
41762306a36Sopenharmony_ci};
41862306a36Sopenharmony_ci
41962306a36Sopenharmony_cistatic const struct clk_parent_data mmss_xo_mmpll4_mmpll7_mmpll10_gpll0_gpll0_div[] = {
42062306a36Sopenharmony_ci	{ .fw_name = "xo" },
42162306a36Sopenharmony_ci	{ .hw = &mmpll4_out_even.clkr.hw },
42262306a36Sopenharmony_ci	{ .hw = &mmpll7_out_even.clkr.hw },
42362306a36Sopenharmony_ci	{ .hw = &mmpll10_out_even.clkr.hw },
42462306a36Sopenharmony_ci	{ .fw_name = "gpll0" },
42562306a36Sopenharmony_ci	{ .fw_name = "gpll0_div", .name = "gcc_mmss_gpll0_div_clk" },
42662306a36Sopenharmony_ci};
42762306a36Sopenharmony_ci
42862306a36Sopenharmony_cistatic const struct parent_map mmss_xo_mmpll0_mmpll7_mmpll10_gpll0_gpll0_div_map[] = {
42962306a36Sopenharmony_ci	{ P_XO, 0 },
43062306a36Sopenharmony_ci	{ P_MMPLL0_OUT_EVEN, 1 },
43162306a36Sopenharmony_ci	{ P_MMPLL7_OUT_EVEN, 2 },
43262306a36Sopenharmony_ci	{ P_MMPLL10_OUT_EVEN, 3 },
43362306a36Sopenharmony_ci	{ P_GPLL0, 5 },
43462306a36Sopenharmony_ci	{ P_GPLL0_DIV, 6 },
43562306a36Sopenharmony_ci};
43662306a36Sopenharmony_ci
43762306a36Sopenharmony_cistatic const struct clk_parent_data mmss_xo_mmpll0_mmpll7_mmpll10_gpll0_gpll0_div[] = {
43862306a36Sopenharmony_ci	{ .fw_name = "xo" },
43962306a36Sopenharmony_ci	{ .hw = &mmpll0_out_even.clkr.hw },
44062306a36Sopenharmony_ci	{ .hw = &mmpll7_out_even.clkr.hw },
44162306a36Sopenharmony_ci	{ .hw = &mmpll10_out_even.clkr.hw },
44262306a36Sopenharmony_ci	{ .fw_name = "gpll0" },
44362306a36Sopenharmony_ci	{ .fw_name = "gpll0_div", .name = "gcc_mmss_gpll0_div_clk" },
44462306a36Sopenharmony_ci};
44562306a36Sopenharmony_ci
44662306a36Sopenharmony_cistatic const struct parent_map mmss_xo_mmpll0_mmpll4_mmpll7_mmpll10_gpll0_gpll0_div_map[] = {
44762306a36Sopenharmony_ci	{ P_XO, 0 },
44862306a36Sopenharmony_ci	{ P_MMPLL0_OUT_EVEN, 1 },
44962306a36Sopenharmony_ci	{ P_MMPLL4_OUT_EVEN, 2 },
45062306a36Sopenharmony_ci	{ P_MMPLL7_OUT_EVEN, 3 },
45162306a36Sopenharmony_ci	{ P_MMPLL10_OUT_EVEN, 4 },
45262306a36Sopenharmony_ci	{ P_GPLL0, 5 },
45362306a36Sopenharmony_ci	{ P_GPLL0_DIV, 6 },
45462306a36Sopenharmony_ci};
45562306a36Sopenharmony_ci
45662306a36Sopenharmony_cistatic const struct clk_parent_data mmss_xo_mmpll0_mmpll4_mmpll7_mmpll10_gpll0_gpll0_div[] = {
45762306a36Sopenharmony_ci	{ .fw_name = "xo" },
45862306a36Sopenharmony_ci	{ .hw = &mmpll0_out_even.clkr.hw },
45962306a36Sopenharmony_ci	{ .hw = &mmpll4_out_even.clkr.hw },
46062306a36Sopenharmony_ci	{ .hw = &mmpll7_out_even.clkr.hw },
46162306a36Sopenharmony_ci	{ .hw = &mmpll10_out_even.clkr.hw },
46262306a36Sopenharmony_ci	{ .fw_name = "gpll0" },
46362306a36Sopenharmony_ci	{ .fw_name = "gpll0_div", .name = "gcc_mmss_gpll0_div_clk" },
46462306a36Sopenharmony_ci};
46562306a36Sopenharmony_ci
46662306a36Sopenharmony_cistatic struct clk_rcg2 byte0_clk_src = {
46762306a36Sopenharmony_ci	.cmd_rcgr = 0x2120,
46862306a36Sopenharmony_ci	.hid_width = 5,
46962306a36Sopenharmony_ci	.parent_map = mmss_xo_dsibyte_map,
47062306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
47162306a36Sopenharmony_ci		.name = "byte0_clk_src",
47262306a36Sopenharmony_ci		.parent_data = mmss_xo_dsibyte,
47362306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_dsibyte),
47462306a36Sopenharmony_ci		.ops = &clk_byte2_ops,
47562306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
47662306a36Sopenharmony_ci	},
47762306a36Sopenharmony_ci};
47862306a36Sopenharmony_ci
47962306a36Sopenharmony_cistatic struct clk_rcg2 byte1_clk_src = {
48062306a36Sopenharmony_ci	.cmd_rcgr = 0x2140,
48162306a36Sopenharmony_ci	.hid_width = 5,
48262306a36Sopenharmony_ci	.parent_map = mmss_xo_dsibyte_map,
48362306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
48462306a36Sopenharmony_ci		.name = "byte1_clk_src",
48562306a36Sopenharmony_ci		.parent_data = mmss_xo_dsibyte,
48662306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_dsibyte),
48762306a36Sopenharmony_ci		.ops = &clk_byte2_ops,
48862306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
48962306a36Sopenharmony_ci	},
49062306a36Sopenharmony_ci};
49162306a36Sopenharmony_ci
49262306a36Sopenharmony_cistatic const struct freq_tbl ftbl_cci_clk_src[] = {
49362306a36Sopenharmony_ci	F(37500000, P_GPLL0, 16, 0, 0),
49462306a36Sopenharmony_ci	F(50000000, P_GPLL0, 12, 0, 0),
49562306a36Sopenharmony_ci	F(100000000, P_GPLL0, 6, 0, 0),
49662306a36Sopenharmony_ci	{ }
49762306a36Sopenharmony_ci};
49862306a36Sopenharmony_ci
49962306a36Sopenharmony_cistatic struct clk_rcg2 cci_clk_src = {
50062306a36Sopenharmony_ci	.cmd_rcgr = 0x3300,
50162306a36Sopenharmony_ci	.hid_width = 5,
50262306a36Sopenharmony_ci	.parent_map = mmss_xo_mmpll0_mmpll7_mmpll10_gpll0_gpll0_div_map,
50362306a36Sopenharmony_ci	.freq_tbl = ftbl_cci_clk_src,
50462306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
50562306a36Sopenharmony_ci		.name = "cci_clk_src",
50662306a36Sopenharmony_ci		.parent_data = mmss_xo_mmpll0_mmpll7_mmpll10_gpll0_gpll0_div,
50762306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_mmpll0_mmpll7_mmpll10_gpll0_gpll0_div),
50862306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
50962306a36Sopenharmony_ci	},
51062306a36Sopenharmony_ci};
51162306a36Sopenharmony_ci
51262306a36Sopenharmony_cistatic const struct freq_tbl ftbl_cpp_clk_src[] = {
51362306a36Sopenharmony_ci	F(100000000, P_GPLL0, 6, 0, 0),
51462306a36Sopenharmony_ci	F(200000000, P_GPLL0, 3, 0, 0),
51562306a36Sopenharmony_ci	F(384000000, P_MMPLL4_OUT_EVEN, 2, 0, 0),
51662306a36Sopenharmony_ci	F(404000000, P_MMPLL0_OUT_EVEN, 2, 0, 0),
51762306a36Sopenharmony_ci	F(480000000, P_MMPLL7_OUT_EVEN, 2, 0, 0),
51862306a36Sopenharmony_ci	F(576000000, P_MMPLL10_OUT_EVEN, 1, 0, 0),
51962306a36Sopenharmony_ci	F(600000000, P_GPLL0, 1, 0, 0),
52062306a36Sopenharmony_ci	{ }
52162306a36Sopenharmony_ci};
52262306a36Sopenharmony_ci
52362306a36Sopenharmony_cistatic struct clk_rcg2 cpp_clk_src = {
52462306a36Sopenharmony_ci	.cmd_rcgr = 0x3640,
52562306a36Sopenharmony_ci	.hid_width = 5,
52662306a36Sopenharmony_ci	.parent_map = mmss_xo_mmpll0_mmpll4_mmpll7_mmpll10_gpll0_gpll0_div_map,
52762306a36Sopenharmony_ci	.freq_tbl = ftbl_cpp_clk_src,
52862306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
52962306a36Sopenharmony_ci		.name = "cpp_clk_src",
53062306a36Sopenharmony_ci		.parent_data = mmss_xo_mmpll0_mmpll4_mmpll7_mmpll10_gpll0_gpll0_div,
53162306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_mmpll0_mmpll4_mmpll7_mmpll10_gpll0_gpll0_div),
53262306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
53362306a36Sopenharmony_ci	},
53462306a36Sopenharmony_ci};
53562306a36Sopenharmony_ci
53662306a36Sopenharmony_cistatic const struct freq_tbl ftbl_csi_clk_src[] = {
53762306a36Sopenharmony_ci	F(164571429, P_MMPLL10_OUT_EVEN, 3.5, 0, 0),
53862306a36Sopenharmony_ci	F(256000000, P_MMPLL4_OUT_EVEN, 3, 0, 0),
53962306a36Sopenharmony_ci	F(274290000, P_MMPLL7_OUT_EVEN, 3.5, 0, 0),
54062306a36Sopenharmony_ci	F(300000000, P_GPLL0, 2, 0, 0),
54162306a36Sopenharmony_ci	F(384000000, P_MMPLL4_OUT_EVEN, 2, 0, 0),
54262306a36Sopenharmony_ci	F(576000000, P_MMPLL10_OUT_EVEN, 1, 0, 0),
54362306a36Sopenharmony_ci	{ }
54462306a36Sopenharmony_ci};
54562306a36Sopenharmony_ci
54662306a36Sopenharmony_cistatic struct clk_rcg2 csi0_clk_src = {
54762306a36Sopenharmony_ci	.cmd_rcgr = 0x3090,
54862306a36Sopenharmony_ci	.hid_width = 5,
54962306a36Sopenharmony_ci	.parent_map = mmss_xo_mmpll0_mmpll4_mmpll7_mmpll10_gpll0_gpll0_div_map,
55062306a36Sopenharmony_ci	.freq_tbl = ftbl_csi_clk_src,
55162306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
55262306a36Sopenharmony_ci		.name = "csi0_clk_src",
55362306a36Sopenharmony_ci		.parent_data = mmss_xo_mmpll0_mmpll4_mmpll7_mmpll10_gpll0_gpll0_div,
55462306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_mmpll0_mmpll4_mmpll7_mmpll10_gpll0_gpll0_div),
55562306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
55662306a36Sopenharmony_ci	},
55762306a36Sopenharmony_ci};
55862306a36Sopenharmony_ci
55962306a36Sopenharmony_cistatic struct clk_rcg2 csi1_clk_src = {
56062306a36Sopenharmony_ci	.cmd_rcgr = 0x3100,
56162306a36Sopenharmony_ci	.hid_width = 5,
56262306a36Sopenharmony_ci	.parent_map = mmss_xo_mmpll0_mmpll4_mmpll7_mmpll10_gpll0_gpll0_div_map,
56362306a36Sopenharmony_ci	.freq_tbl = ftbl_csi_clk_src,
56462306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
56562306a36Sopenharmony_ci		.name = "csi1_clk_src",
56662306a36Sopenharmony_ci		.parent_data = mmss_xo_mmpll0_mmpll4_mmpll7_mmpll10_gpll0_gpll0_div,
56762306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_mmpll0_mmpll4_mmpll7_mmpll10_gpll0_gpll0_div),
56862306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
56962306a36Sopenharmony_ci	},
57062306a36Sopenharmony_ci};
57162306a36Sopenharmony_ci
57262306a36Sopenharmony_cistatic struct clk_rcg2 csi2_clk_src = {
57362306a36Sopenharmony_ci	.cmd_rcgr = 0x3160,
57462306a36Sopenharmony_ci	.hid_width = 5,
57562306a36Sopenharmony_ci	.parent_map = mmss_xo_mmpll0_mmpll4_mmpll7_mmpll10_gpll0_gpll0_div_map,
57662306a36Sopenharmony_ci	.freq_tbl = ftbl_csi_clk_src,
57762306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
57862306a36Sopenharmony_ci		.name = "csi2_clk_src",
57962306a36Sopenharmony_ci		.parent_data = mmss_xo_mmpll0_mmpll4_mmpll7_mmpll10_gpll0_gpll0_div,
58062306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_mmpll0_mmpll4_mmpll7_mmpll10_gpll0_gpll0_div),
58162306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
58262306a36Sopenharmony_ci	},
58362306a36Sopenharmony_ci};
58462306a36Sopenharmony_ci
58562306a36Sopenharmony_cistatic struct clk_rcg2 csi3_clk_src = {
58662306a36Sopenharmony_ci	.cmd_rcgr = 0x31c0,
58762306a36Sopenharmony_ci	.hid_width = 5,
58862306a36Sopenharmony_ci	.parent_map = mmss_xo_mmpll0_mmpll4_mmpll7_mmpll10_gpll0_gpll0_div_map,
58962306a36Sopenharmony_ci	.freq_tbl = ftbl_csi_clk_src,
59062306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
59162306a36Sopenharmony_ci		.name = "csi3_clk_src",
59262306a36Sopenharmony_ci		.parent_data = mmss_xo_mmpll0_mmpll4_mmpll7_mmpll10_gpll0_gpll0_div,
59362306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_mmpll0_mmpll4_mmpll7_mmpll10_gpll0_gpll0_div),
59462306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
59562306a36Sopenharmony_ci	},
59662306a36Sopenharmony_ci};
59762306a36Sopenharmony_ci
59862306a36Sopenharmony_cistatic const struct freq_tbl ftbl_csiphy_clk_src[] = {
59962306a36Sopenharmony_ci	F(164571429, P_MMPLL10_OUT_EVEN, 3.5, 0, 0),
60062306a36Sopenharmony_ci	F(256000000, P_MMPLL4_OUT_EVEN, 3, 0, 0),
60162306a36Sopenharmony_ci	F(274290000, P_MMPLL7_OUT_EVEN, 3.5, 0, 0),
60262306a36Sopenharmony_ci	F(300000000, P_GPLL0, 2, 0, 0),
60362306a36Sopenharmony_ci	F(384000000, P_MMPLL4_OUT_EVEN, 2, 0, 0),
60462306a36Sopenharmony_ci	{ }
60562306a36Sopenharmony_ci};
60662306a36Sopenharmony_ci
60762306a36Sopenharmony_cistatic struct clk_rcg2 csiphy_clk_src = {
60862306a36Sopenharmony_ci	.cmd_rcgr = 0x3800,
60962306a36Sopenharmony_ci	.hid_width = 5,
61062306a36Sopenharmony_ci	.parent_map = mmss_xo_mmpll0_mmpll4_mmpll7_mmpll10_gpll0_gpll0_div_map,
61162306a36Sopenharmony_ci	.freq_tbl = ftbl_csiphy_clk_src,
61262306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
61362306a36Sopenharmony_ci		.name = "csiphy_clk_src",
61462306a36Sopenharmony_ci		.parent_data = mmss_xo_mmpll0_mmpll4_mmpll7_mmpll10_gpll0_gpll0_div,
61562306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_mmpll0_mmpll4_mmpll7_mmpll10_gpll0_gpll0_div),
61662306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
61762306a36Sopenharmony_ci	},
61862306a36Sopenharmony_ci};
61962306a36Sopenharmony_ci
62062306a36Sopenharmony_cistatic const struct freq_tbl ftbl_csiphytimer_clk_src[] = {
62162306a36Sopenharmony_ci	F(200000000, P_GPLL0, 3, 0, 0),
62262306a36Sopenharmony_ci	F(269333333, P_MMPLL0_OUT_EVEN, 3, 0, 0),
62362306a36Sopenharmony_ci	{ }
62462306a36Sopenharmony_ci};
62562306a36Sopenharmony_ci
62662306a36Sopenharmony_cistatic struct clk_rcg2 csi0phytimer_clk_src = {
62762306a36Sopenharmony_ci	.cmd_rcgr = 0x3000,
62862306a36Sopenharmony_ci	.hid_width = 5,
62962306a36Sopenharmony_ci	.parent_map = mmss_xo_mmpll0_mmpll4_mmpll7_mmpll10_gpll0_gpll0_div_map,
63062306a36Sopenharmony_ci	.freq_tbl = ftbl_csiphytimer_clk_src,
63162306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
63262306a36Sopenharmony_ci		.name = "csi0phytimer_clk_src",
63362306a36Sopenharmony_ci		.parent_data = mmss_xo_mmpll0_mmpll4_mmpll7_mmpll10_gpll0_gpll0_div,
63462306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_mmpll0_mmpll4_mmpll7_mmpll10_gpll0_gpll0_div),
63562306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
63662306a36Sopenharmony_ci	},
63762306a36Sopenharmony_ci};
63862306a36Sopenharmony_ci
63962306a36Sopenharmony_cistatic struct clk_rcg2 csi1phytimer_clk_src = {
64062306a36Sopenharmony_ci	.cmd_rcgr = 0x3030,
64162306a36Sopenharmony_ci	.hid_width = 5,
64262306a36Sopenharmony_ci	.parent_map = mmss_xo_mmpll0_mmpll4_mmpll7_mmpll10_gpll0_gpll0_div_map,
64362306a36Sopenharmony_ci	.freq_tbl = ftbl_csiphytimer_clk_src,
64462306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
64562306a36Sopenharmony_ci		.name = "csi1phytimer_clk_src",
64662306a36Sopenharmony_ci		.parent_data = mmss_xo_mmpll0_mmpll4_mmpll7_mmpll10_gpll0_gpll0_div,
64762306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_mmpll0_mmpll4_mmpll7_mmpll10_gpll0_gpll0_div),
64862306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
64962306a36Sopenharmony_ci	},
65062306a36Sopenharmony_ci};
65162306a36Sopenharmony_ci
65262306a36Sopenharmony_cistatic struct clk_rcg2 csi2phytimer_clk_src = {
65362306a36Sopenharmony_ci	.cmd_rcgr = 0x3060,
65462306a36Sopenharmony_ci	.hid_width = 5,
65562306a36Sopenharmony_ci	.parent_map = mmss_xo_mmpll0_mmpll4_mmpll7_mmpll10_gpll0_gpll0_div_map,
65662306a36Sopenharmony_ci	.freq_tbl = ftbl_csiphytimer_clk_src,
65762306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
65862306a36Sopenharmony_ci		.name = "csi2phytimer_clk_src",
65962306a36Sopenharmony_ci		.parent_data = mmss_xo_mmpll0_mmpll4_mmpll7_mmpll10_gpll0_gpll0_div,
66062306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_mmpll0_mmpll4_mmpll7_mmpll10_gpll0_gpll0_div),
66162306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
66262306a36Sopenharmony_ci	},
66362306a36Sopenharmony_ci};
66462306a36Sopenharmony_ci
66562306a36Sopenharmony_cistatic const struct freq_tbl ftbl_dp_aux_clk_src[] = {
66662306a36Sopenharmony_ci	F(19200000, P_XO, 1, 0, 0),
66762306a36Sopenharmony_ci	{ }
66862306a36Sopenharmony_ci};
66962306a36Sopenharmony_ci
67062306a36Sopenharmony_cistatic struct clk_rcg2 dp_aux_clk_src = {
67162306a36Sopenharmony_ci	.cmd_rcgr = 0x2260,
67262306a36Sopenharmony_ci	.hid_width = 5,
67362306a36Sopenharmony_ci	.parent_map = mmss_xo_gpll0_gpll0_div_map,
67462306a36Sopenharmony_ci	.freq_tbl = ftbl_dp_aux_clk_src,
67562306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
67662306a36Sopenharmony_ci		.name = "dp_aux_clk_src",
67762306a36Sopenharmony_ci		.parent_data = mmss_xo_gpll0_gpll0_div,
67862306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_gpll0_gpll0_div),
67962306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
68062306a36Sopenharmony_ci	},
68162306a36Sopenharmony_ci};
68262306a36Sopenharmony_ci
68362306a36Sopenharmony_cistatic const struct freq_tbl ftbl_dp_crypto_clk_src[] = {
68462306a36Sopenharmony_ci	F(101250, P_DPLINK, 1, 5, 16),
68562306a36Sopenharmony_ci	F(168750, P_DPLINK, 1, 5, 16),
68662306a36Sopenharmony_ci	F(337500, P_DPLINK, 1, 5, 16),
68762306a36Sopenharmony_ci	{ }
68862306a36Sopenharmony_ci};
68962306a36Sopenharmony_ci
69062306a36Sopenharmony_cistatic struct clk_rcg2 dp_crypto_clk_src = {
69162306a36Sopenharmony_ci	.cmd_rcgr = 0x2220,
69262306a36Sopenharmony_ci	.hid_width = 5,
69362306a36Sopenharmony_ci	.parent_map = mmss_xo_dp_map,
69462306a36Sopenharmony_ci	.freq_tbl = ftbl_dp_crypto_clk_src,
69562306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
69662306a36Sopenharmony_ci		.name = "dp_crypto_clk_src",
69762306a36Sopenharmony_ci		.parent_data = mmss_xo_dp,
69862306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_dp),
69962306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
70062306a36Sopenharmony_ci	},
70162306a36Sopenharmony_ci};
70262306a36Sopenharmony_ci
70362306a36Sopenharmony_cistatic const struct freq_tbl ftbl_dp_link_clk_src[] = {
70462306a36Sopenharmony_ci	F(162000, P_DPLINK, 2, 0, 0),
70562306a36Sopenharmony_ci	F(270000, P_DPLINK, 2, 0, 0),
70662306a36Sopenharmony_ci	F(540000, P_DPLINK, 2, 0, 0),
70762306a36Sopenharmony_ci	{ }
70862306a36Sopenharmony_ci};
70962306a36Sopenharmony_ci
71062306a36Sopenharmony_cistatic struct clk_rcg2 dp_link_clk_src = {
71162306a36Sopenharmony_ci	.cmd_rcgr = 0x2200,
71262306a36Sopenharmony_ci	.hid_width = 5,
71362306a36Sopenharmony_ci	.parent_map = mmss_xo_dp_map,
71462306a36Sopenharmony_ci	.freq_tbl = ftbl_dp_link_clk_src,
71562306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
71662306a36Sopenharmony_ci		.name = "dp_link_clk_src",
71762306a36Sopenharmony_ci		.parent_data = mmss_xo_dp,
71862306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_dp),
71962306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
72062306a36Sopenharmony_ci	},
72162306a36Sopenharmony_ci};
72262306a36Sopenharmony_ci
72362306a36Sopenharmony_cistatic const struct freq_tbl ftbl_dp_pixel_clk_src[] = {
72462306a36Sopenharmony_ci	F(154000000, P_DPVCO, 1, 0, 0),
72562306a36Sopenharmony_ci	F(337500000, P_DPVCO, 2, 0, 0),
72662306a36Sopenharmony_ci	F(675000000, P_DPVCO, 2, 0, 0),
72762306a36Sopenharmony_ci	{ }
72862306a36Sopenharmony_ci};
72962306a36Sopenharmony_ci
73062306a36Sopenharmony_cistatic struct clk_rcg2 dp_pixel_clk_src = {
73162306a36Sopenharmony_ci	.cmd_rcgr = 0x2240,
73262306a36Sopenharmony_ci	.hid_width = 5,
73362306a36Sopenharmony_ci	.parent_map = mmss_xo_dp_map,
73462306a36Sopenharmony_ci	.freq_tbl = ftbl_dp_pixel_clk_src,
73562306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
73662306a36Sopenharmony_ci		.name = "dp_pixel_clk_src",
73762306a36Sopenharmony_ci		.parent_data = mmss_xo_dp,
73862306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_dp),
73962306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
74062306a36Sopenharmony_ci	},
74162306a36Sopenharmony_ci};
74262306a36Sopenharmony_ci
74362306a36Sopenharmony_cistatic const struct freq_tbl ftbl_esc_clk_src[] = {
74462306a36Sopenharmony_ci	F(19200000, P_XO, 1, 0, 0),
74562306a36Sopenharmony_ci	{ }
74662306a36Sopenharmony_ci};
74762306a36Sopenharmony_ci
74862306a36Sopenharmony_cistatic struct clk_rcg2 esc0_clk_src = {
74962306a36Sopenharmony_ci	.cmd_rcgr = 0x2160,
75062306a36Sopenharmony_ci	.hid_width = 5,
75162306a36Sopenharmony_ci	.parent_map = mmss_xo_dsibyte_map,
75262306a36Sopenharmony_ci	.freq_tbl = ftbl_esc_clk_src,
75362306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
75462306a36Sopenharmony_ci		.name = "esc0_clk_src",
75562306a36Sopenharmony_ci		.parent_data = mmss_xo_dsibyte,
75662306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_dsibyte),
75762306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
75862306a36Sopenharmony_ci	},
75962306a36Sopenharmony_ci};
76062306a36Sopenharmony_ci
76162306a36Sopenharmony_cistatic struct clk_rcg2 esc1_clk_src = {
76262306a36Sopenharmony_ci	.cmd_rcgr = 0x2180,
76362306a36Sopenharmony_ci	.hid_width = 5,
76462306a36Sopenharmony_ci	.parent_map = mmss_xo_dsibyte_map,
76562306a36Sopenharmony_ci	.freq_tbl = ftbl_esc_clk_src,
76662306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
76762306a36Sopenharmony_ci		.name = "esc1_clk_src",
76862306a36Sopenharmony_ci		.parent_data = mmss_xo_dsibyte,
76962306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_dsibyte),
77062306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
77162306a36Sopenharmony_ci	},
77262306a36Sopenharmony_ci};
77362306a36Sopenharmony_ci
77462306a36Sopenharmony_cistatic const struct freq_tbl ftbl_extpclk_clk_src[] = {
77562306a36Sopenharmony_ci	{ .src = P_HDMIPLL },
77662306a36Sopenharmony_ci	{ }
77762306a36Sopenharmony_ci};
77862306a36Sopenharmony_ci
77962306a36Sopenharmony_cistatic struct clk_rcg2 extpclk_clk_src = {
78062306a36Sopenharmony_ci	.cmd_rcgr = 0x2060,
78162306a36Sopenharmony_ci	.hid_width = 5,
78262306a36Sopenharmony_ci	.parent_map = mmss_xo_hdmi_map,
78362306a36Sopenharmony_ci	.freq_tbl = ftbl_extpclk_clk_src,
78462306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
78562306a36Sopenharmony_ci		.name = "extpclk_clk_src",
78662306a36Sopenharmony_ci		.parent_data = mmss_xo_hdmi,
78762306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_hdmi),
78862306a36Sopenharmony_ci		.ops = &clk_byte_ops,
78962306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
79062306a36Sopenharmony_ci	},
79162306a36Sopenharmony_ci};
79262306a36Sopenharmony_ci
79362306a36Sopenharmony_cistatic const struct freq_tbl ftbl_fd_core_clk_src[] = {
79462306a36Sopenharmony_ci	F(100000000, P_GPLL0, 6, 0, 0),
79562306a36Sopenharmony_ci	F(200000000, P_GPLL0, 3, 0, 0),
79662306a36Sopenharmony_ci	F(404000000, P_MMPLL0_OUT_EVEN, 2, 0, 0),
79762306a36Sopenharmony_ci	F(480000000, P_MMPLL7_OUT_EVEN, 2, 0, 0),
79862306a36Sopenharmony_ci	F(576000000, P_MMPLL10_OUT_EVEN, 1, 0, 0),
79962306a36Sopenharmony_ci	{ }
80062306a36Sopenharmony_ci};
80162306a36Sopenharmony_ci
80262306a36Sopenharmony_cistatic struct clk_rcg2 fd_core_clk_src = {
80362306a36Sopenharmony_ci	.cmd_rcgr = 0x3b00,
80462306a36Sopenharmony_ci	.hid_width = 5,
80562306a36Sopenharmony_ci	.parent_map = mmss_xo_mmpll0_mmpll4_mmpll7_mmpll10_gpll0_gpll0_div_map,
80662306a36Sopenharmony_ci	.freq_tbl = ftbl_fd_core_clk_src,
80762306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
80862306a36Sopenharmony_ci		.name = "fd_core_clk_src",
80962306a36Sopenharmony_ci		.parent_data = mmss_xo_mmpll0_mmpll4_mmpll7_mmpll10_gpll0_gpll0_div,
81062306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_mmpll0_mmpll4_mmpll7_mmpll10_gpll0_gpll0_div),
81162306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
81262306a36Sopenharmony_ci	},
81362306a36Sopenharmony_ci};
81462306a36Sopenharmony_ci
81562306a36Sopenharmony_cistatic const struct freq_tbl ftbl_hdmi_clk_src[] = {
81662306a36Sopenharmony_ci	F(19200000, P_XO, 1, 0, 0),
81762306a36Sopenharmony_ci	{ }
81862306a36Sopenharmony_ci};
81962306a36Sopenharmony_ci
82062306a36Sopenharmony_cistatic struct clk_rcg2 hdmi_clk_src = {
82162306a36Sopenharmony_ci	.cmd_rcgr = 0x2100,
82262306a36Sopenharmony_ci	.hid_width = 5,
82362306a36Sopenharmony_ci	.parent_map = mmss_xo_gpll0_gpll0_div_map,
82462306a36Sopenharmony_ci	.freq_tbl = ftbl_hdmi_clk_src,
82562306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
82662306a36Sopenharmony_ci		.name = "hdmi_clk_src",
82762306a36Sopenharmony_ci		.parent_data = mmss_xo_gpll0_gpll0_div,
82862306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_gpll0_gpll0_div),
82962306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
83062306a36Sopenharmony_ci	},
83162306a36Sopenharmony_ci};
83262306a36Sopenharmony_ci
83362306a36Sopenharmony_cistatic const struct freq_tbl ftbl_jpeg0_clk_src[] = {
83462306a36Sopenharmony_ci	F(75000000, P_GPLL0, 8, 0, 0),
83562306a36Sopenharmony_ci	F(150000000, P_GPLL0, 4, 0, 0),
83662306a36Sopenharmony_ci	F(320000000, P_MMPLL7_OUT_EVEN, 3, 0, 0),
83762306a36Sopenharmony_ci	F(480000000, P_MMPLL7_OUT_EVEN, 2, 0, 0),
83862306a36Sopenharmony_ci	{ }
83962306a36Sopenharmony_ci};
84062306a36Sopenharmony_ci
84162306a36Sopenharmony_cistatic struct clk_rcg2 jpeg0_clk_src = {
84262306a36Sopenharmony_ci	.cmd_rcgr = 0x3500,
84362306a36Sopenharmony_ci	.hid_width = 5,
84462306a36Sopenharmony_ci	.parent_map = mmss_xo_mmpll0_mmpll4_mmpll7_mmpll10_gpll0_gpll0_div_map,
84562306a36Sopenharmony_ci	.freq_tbl = ftbl_jpeg0_clk_src,
84662306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
84762306a36Sopenharmony_ci		.name = "jpeg0_clk_src",
84862306a36Sopenharmony_ci		.parent_data = mmss_xo_mmpll0_mmpll4_mmpll7_mmpll10_gpll0_gpll0_div,
84962306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_mmpll0_mmpll4_mmpll7_mmpll10_gpll0_gpll0_div),
85062306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
85162306a36Sopenharmony_ci	},
85262306a36Sopenharmony_ci};
85362306a36Sopenharmony_ci
85462306a36Sopenharmony_cistatic const struct freq_tbl ftbl_maxi_clk_src[] = {
85562306a36Sopenharmony_ci	F(19200000, P_XO, 1, 0, 0),
85662306a36Sopenharmony_ci	F(75000000, P_GPLL0_DIV, 4, 0, 0),
85762306a36Sopenharmony_ci	F(171428571, P_GPLL0, 3.5, 0, 0),
85862306a36Sopenharmony_ci	F(323200000, P_MMPLL0_OUT_EVEN, 2.5, 0, 0),
85962306a36Sopenharmony_ci	F(406000000, P_MMPLL1_OUT_EVEN, 2, 0, 0),
86062306a36Sopenharmony_ci	{ }
86162306a36Sopenharmony_ci};
86262306a36Sopenharmony_ci
86362306a36Sopenharmony_cistatic struct clk_rcg2 maxi_clk_src = {
86462306a36Sopenharmony_ci	.cmd_rcgr = 0xf020,
86562306a36Sopenharmony_ci	.hid_width = 5,
86662306a36Sopenharmony_ci	.parent_map = mmss_xo_mmpll0_mmpll1_gpll0_gpll0_div_map,
86762306a36Sopenharmony_ci	.freq_tbl = ftbl_maxi_clk_src,
86862306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
86962306a36Sopenharmony_ci		.name = "maxi_clk_src",
87062306a36Sopenharmony_ci		.parent_data = mmss_xo_mmpll0_mmpll1_gpll0_gpll0_div,
87162306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_mmpll0_mmpll1_gpll0_gpll0_div),
87262306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
87362306a36Sopenharmony_ci	},
87462306a36Sopenharmony_ci};
87562306a36Sopenharmony_ci
87662306a36Sopenharmony_cistatic const struct freq_tbl ftbl_mclk_clk_src[] = {
87762306a36Sopenharmony_ci	F(4800000, P_XO, 4, 0, 0),
87862306a36Sopenharmony_ci	F(6000000, P_GPLL0_DIV, 10, 1, 5),
87962306a36Sopenharmony_ci	F(8000000, P_GPLL0_DIV, 1, 2, 75),
88062306a36Sopenharmony_ci	F(9600000, P_XO, 2, 0, 0),
88162306a36Sopenharmony_ci	F(16666667, P_GPLL0_DIV, 2, 1, 9),
88262306a36Sopenharmony_ci	F(19200000, P_XO, 1, 0, 0),
88362306a36Sopenharmony_ci	F(24000000, P_GPLL0_DIV, 1, 2, 25),
88462306a36Sopenharmony_ci	F(33333333, P_GPLL0_DIV, 1, 2, 9),
88562306a36Sopenharmony_ci	F(48000000, P_GPLL0, 1, 2, 25),
88662306a36Sopenharmony_ci	F(66666667, P_GPLL0, 1, 2, 9),
88762306a36Sopenharmony_ci	{ }
88862306a36Sopenharmony_ci};
88962306a36Sopenharmony_ci
89062306a36Sopenharmony_cistatic struct clk_rcg2 mclk0_clk_src = {
89162306a36Sopenharmony_ci	.cmd_rcgr = 0x3360,
89262306a36Sopenharmony_ci	.hid_width = 5,
89362306a36Sopenharmony_ci	.parent_map = mmss_xo_mmpll4_mmpll7_mmpll10_gpll0_gpll0_div_map,
89462306a36Sopenharmony_ci	.freq_tbl = ftbl_mclk_clk_src,
89562306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
89662306a36Sopenharmony_ci		.name = "mclk0_clk_src",
89762306a36Sopenharmony_ci		.parent_data = mmss_xo_mmpll4_mmpll7_mmpll10_gpll0_gpll0_div,
89862306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_mmpll4_mmpll7_mmpll10_gpll0_gpll0_div),
89962306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
90062306a36Sopenharmony_ci	},
90162306a36Sopenharmony_ci};
90262306a36Sopenharmony_ci
90362306a36Sopenharmony_cistatic struct clk_rcg2 mclk1_clk_src = {
90462306a36Sopenharmony_ci	.cmd_rcgr = 0x3390,
90562306a36Sopenharmony_ci	.hid_width = 5,
90662306a36Sopenharmony_ci	.parent_map = mmss_xo_mmpll4_mmpll7_mmpll10_gpll0_gpll0_div_map,
90762306a36Sopenharmony_ci	.freq_tbl = ftbl_mclk_clk_src,
90862306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
90962306a36Sopenharmony_ci		.name = "mclk1_clk_src",
91062306a36Sopenharmony_ci		.parent_data = mmss_xo_mmpll4_mmpll7_mmpll10_gpll0_gpll0_div,
91162306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_mmpll4_mmpll7_mmpll10_gpll0_gpll0_div),
91262306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
91362306a36Sopenharmony_ci	},
91462306a36Sopenharmony_ci};
91562306a36Sopenharmony_ci
91662306a36Sopenharmony_cistatic struct clk_rcg2 mclk2_clk_src = {
91762306a36Sopenharmony_ci	.cmd_rcgr = 0x33c0,
91862306a36Sopenharmony_ci	.hid_width = 5,
91962306a36Sopenharmony_ci	.parent_map = mmss_xo_mmpll4_mmpll7_mmpll10_gpll0_gpll0_div_map,
92062306a36Sopenharmony_ci	.freq_tbl = ftbl_mclk_clk_src,
92162306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
92262306a36Sopenharmony_ci		.name = "mclk2_clk_src",
92362306a36Sopenharmony_ci		.parent_data = mmss_xo_mmpll4_mmpll7_mmpll10_gpll0_gpll0_div,
92462306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_mmpll4_mmpll7_mmpll10_gpll0_gpll0_div),
92562306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
92662306a36Sopenharmony_ci	},
92762306a36Sopenharmony_ci};
92862306a36Sopenharmony_ci
92962306a36Sopenharmony_cistatic struct clk_rcg2 mclk3_clk_src = {
93062306a36Sopenharmony_ci	.cmd_rcgr = 0x33f0,
93162306a36Sopenharmony_ci	.hid_width = 5,
93262306a36Sopenharmony_ci	.parent_map = mmss_xo_mmpll4_mmpll7_mmpll10_gpll0_gpll0_div_map,
93362306a36Sopenharmony_ci	.freq_tbl = ftbl_mclk_clk_src,
93462306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
93562306a36Sopenharmony_ci		.name = "mclk3_clk_src",
93662306a36Sopenharmony_ci		.parent_data = mmss_xo_mmpll4_mmpll7_mmpll10_gpll0_gpll0_div,
93762306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_mmpll4_mmpll7_mmpll10_gpll0_gpll0_div),
93862306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
93962306a36Sopenharmony_ci	},
94062306a36Sopenharmony_ci};
94162306a36Sopenharmony_ci
94262306a36Sopenharmony_cistatic const struct freq_tbl ftbl_mdp_clk_src[] = {
94362306a36Sopenharmony_ci	F(85714286, P_GPLL0, 7, 0, 0),
94462306a36Sopenharmony_ci	F(100000000, P_GPLL0, 6, 0, 0),
94562306a36Sopenharmony_ci	F(150000000, P_GPLL0, 4, 0, 0),
94662306a36Sopenharmony_ci	F(171428571, P_GPLL0, 3.5, 0, 0),
94762306a36Sopenharmony_ci	F(200000000, P_GPLL0, 3, 0, 0),
94862306a36Sopenharmony_ci	F(275000000, P_MMPLL5_OUT_EVEN, 3, 0, 0),
94962306a36Sopenharmony_ci	F(300000000, P_GPLL0, 2, 0, 0),
95062306a36Sopenharmony_ci	F(330000000, P_MMPLL5_OUT_EVEN, 2.5, 0, 0),
95162306a36Sopenharmony_ci	F(412500000, P_MMPLL5_OUT_EVEN, 2, 0, 0),
95262306a36Sopenharmony_ci	{ }
95362306a36Sopenharmony_ci};
95462306a36Sopenharmony_ci
95562306a36Sopenharmony_cistatic struct clk_rcg2 mdp_clk_src = {
95662306a36Sopenharmony_ci	.cmd_rcgr = 0x2040,
95762306a36Sopenharmony_ci	.hid_width = 5,
95862306a36Sopenharmony_ci	.parent_map = mmss_xo_mmpll0_mmpll5_gpll0_gpll0_div_map,
95962306a36Sopenharmony_ci	.freq_tbl = ftbl_mdp_clk_src,
96062306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
96162306a36Sopenharmony_ci		.name = "mdp_clk_src",
96262306a36Sopenharmony_ci		.parent_data = mmss_xo_mmpll0_mmpll5_gpll0_gpll0_div,
96362306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_mmpll0_mmpll5_gpll0_gpll0_div),
96462306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
96562306a36Sopenharmony_ci	},
96662306a36Sopenharmony_ci};
96762306a36Sopenharmony_ci
96862306a36Sopenharmony_cistatic const struct freq_tbl ftbl_vsync_clk_src[] = {
96962306a36Sopenharmony_ci	F(19200000, P_XO, 1, 0, 0),
97062306a36Sopenharmony_ci	{ }
97162306a36Sopenharmony_ci};
97262306a36Sopenharmony_ci
97362306a36Sopenharmony_cistatic struct clk_rcg2 vsync_clk_src = {
97462306a36Sopenharmony_ci	.cmd_rcgr = 0x2080,
97562306a36Sopenharmony_ci	.hid_width = 5,
97662306a36Sopenharmony_ci	.parent_map = mmss_xo_gpll0_gpll0_div_map,
97762306a36Sopenharmony_ci	.freq_tbl = ftbl_vsync_clk_src,
97862306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
97962306a36Sopenharmony_ci		.name = "vsync_clk_src",
98062306a36Sopenharmony_ci		.parent_data = mmss_xo_gpll0_gpll0_div,
98162306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_gpll0_gpll0_div),
98262306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
98362306a36Sopenharmony_ci	},
98462306a36Sopenharmony_ci};
98562306a36Sopenharmony_ci
98662306a36Sopenharmony_cistatic const struct freq_tbl ftbl_ahb_clk_src[] = {
98762306a36Sopenharmony_ci	F(19200000, P_XO, 1, 0, 0),
98862306a36Sopenharmony_ci	F(40000000, P_GPLL0, 15, 0, 0),
98962306a36Sopenharmony_ci	F(80800000, P_MMPLL0_OUT_EVEN, 10, 0, 0),
99062306a36Sopenharmony_ci	{ }
99162306a36Sopenharmony_ci};
99262306a36Sopenharmony_ci
99362306a36Sopenharmony_cistatic struct clk_rcg2 ahb_clk_src = {
99462306a36Sopenharmony_ci	.cmd_rcgr = 0x5000,
99562306a36Sopenharmony_ci	.hid_width = 5,
99662306a36Sopenharmony_ci	.parent_map = mmss_xo_mmpll0_gpll0_gpll0_div_map,
99762306a36Sopenharmony_ci	.freq_tbl = ftbl_ahb_clk_src,
99862306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
99962306a36Sopenharmony_ci		.name = "ahb_clk_src",
100062306a36Sopenharmony_ci		.parent_data = mmss_xo_mmpll0_gpll0_gpll0_div,
100162306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_mmpll0_gpll0_gpll0_div),
100262306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
100362306a36Sopenharmony_ci	},
100462306a36Sopenharmony_ci};
100562306a36Sopenharmony_ci
100662306a36Sopenharmony_cistatic const struct freq_tbl ftbl_axi_clk_src[] = {
100762306a36Sopenharmony_ci	F(75000000, P_GPLL0, 8, 0, 0),
100862306a36Sopenharmony_ci	F(171428571, P_GPLL0, 3.5, 0, 0),
100962306a36Sopenharmony_ci	F(240000000, P_GPLL0, 2.5, 0, 0),
101062306a36Sopenharmony_ci	F(323200000, P_MMPLL0_OUT_EVEN, 2.5, 0, 0),
101162306a36Sopenharmony_ci	F(406000000, P_MMPLL0_OUT_EVEN, 2, 0, 0),
101262306a36Sopenharmony_ci	{ }
101362306a36Sopenharmony_ci};
101462306a36Sopenharmony_ci
101562306a36Sopenharmony_ci/* RO to linux */
101662306a36Sopenharmony_cistatic struct clk_rcg2 axi_clk_src = {
101762306a36Sopenharmony_ci	.cmd_rcgr = 0xd000,
101862306a36Sopenharmony_ci	.hid_width = 5,
101962306a36Sopenharmony_ci	.parent_map = mmss_xo_mmpll0_mmpll1_gpll0_gpll0_div_map,
102062306a36Sopenharmony_ci	.freq_tbl = ftbl_axi_clk_src,
102162306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
102262306a36Sopenharmony_ci		.name = "axi_clk_src",
102362306a36Sopenharmony_ci		.parent_data = mmss_xo_mmpll0_mmpll1_gpll0_gpll0_div,
102462306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_mmpll0_mmpll1_gpll0_gpll0_div),
102562306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
102662306a36Sopenharmony_ci	},
102762306a36Sopenharmony_ci};
102862306a36Sopenharmony_ci
102962306a36Sopenharmony_cistatic struct clk_rcg2 pclk0_clk_src = {
103062306a36Sopenharmony_ci	.cmd_rcgr = 0x2000,
103162306a36Sopenharmony_ci	.mnd_width = 8,
103262306a36Sopenharmony_ci	.hid_width = 5,
103362306a36Sopenharmony_ci	.parent_map = mmss_xo_dsi0pll_dsi1pll_map,
103462306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
103562306a36Sopenharmony_ci		.name = "pclk0_clk_src",
103662306a36Sopenharmony_ci		.parent_data = mmss_xo_dsi0pll_dsi1pll,
103762306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_dsi0pll_dsi1pll),
103862306a36Sopenharmony_ci		.ops = &clk_pixel_ops,
103962306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
104062306a36Sopenharmony_ci	},
104162306a36Sopenharmony_ci};
104262306a36Sopenharmony_ci
104362306a36Sopenharmony_cistatic struct clk_rcg2 pclk1_clk_src = {
104462306a36Sopenharmony_ci	.cmd_rcgr = 0x2020,
104562306a36Sopenharmony_ci	.mnd_width = 8,
104662306a36Sopenharmony_ci	.hid_width = 5,
104762306a36Sopenharmony_ci	.parent_map = mmss_xo_dsi0pll_dsi1pll_map,
104862306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
104962306a36Sopenharmony_ci		.name = "pclk1_clk_src",
105062306a36Sopenharmony_ci		.parent_data = mmss_xo_dsi0pll_dsi1pll,
105162306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_dsi0pll_dsi1pll),
105262306a36Sopenharmony_ci		.ops = &clk_pixel_ops,
105362306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
105462306a36Sopenharmony_ci	},
105562306a36Sopenharmony_ci};
105662306a36Sopenharmony_ci
105762306a36Sopenharmony_cistatic const struct freq_tbl ftbl_rot_clk_src[] = {
105862306a36Sopenharmony_ci	F(171428571, P_GPLL0, 3.5, 0, 0),
105962306a36Sopenharmony_ci	F(275000000, P_MMPLL5_OUT_EVEN, 3, 0, 0),
106062306a36Sopenharmony_ci	F(330000000, P_MMPLL5_OUT_EVEN, 2.5, 0, 0),
106162306a36Sopenharmony_ci	F(412500000, P_MMPLL5_OUT_EVEN, 2, 0, 0),
106262306a36Sopenharmony_ci	{ }
106362306a36Sopenharmony_ci};
106462306a36Sopenharmony_ci
106562306a36Sopenharmony_cistatic struct clk_rcg2 rot_clk_src = {
106662306a36Sopenharmony_ci	.cmd_rcgr = 0x21a0,
106762306a36Sopenharmony_ci	.hid_width = 5,
106862306a36Sopenharmony_ci	.parent_map = mmss_xo_mmpll0_mmpll5_gpll0_gpll0_div_map,
106962306a36Sopenharmony_ci	.freq_tbl = ftbl_rot_clk_src,
107062306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
107162306a36Sopenharmony_ci		.name = "rot_clk_src",
107262306a36Sopenharmony_ci		.parent_data = mmss_xo_mmpll0_mmpll5_gpll0_gpll0_div,
107362306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_mmpll0_mmpll5_gpll0_gpll0_div),
107462306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
107562306a36Sopenharmony_ci	},
107662306a36Sopenharmony_ci};
107762306a36Sopenharmony_ci
107862306a36Sopenharmony_cistatic const struct freq_tbl ftbl_video_core_clk_src[] = {
107962306a36Sopenharmony_ci	F(200000000, P_GPLL0, 3, 0, 0),
108062306a36Sopenharmony_ci	F(269330000, P_MMPLL0_OUT_EVEN, 3, 0, 0),
108162306a36Sopenharmony_ci	F(355200000, P_MMPLL6_OUT_EVEN, 2.5, 0, 0),
108262306a36Sopenharmony_ci	F(444000000, P_MMPLL6_OUT_EVEN, 2, 0, 0),
108362306a36Sopenharmony_ci	F(533000000, P_MMPLL3_OUT_EVEN, 2, 0, 0),
108462306a36Sopenharmony_ci	{ }
108562306a36Sopenharmony_ci};
108662306a36Sopenharmony_ci
108762306a36Sopenharmony_cistatic struct clk_rcg2 video_core_clk_src = {
108862306a36Sopenharmony_ci	.cmd_rcgr = 0x1000,
108962306a36Sopenharmony_ci	.hid_width = 5,
109062306a36Sopenharmony_ci	.parent_map = mmss_xo_mmpll0_mmpll3_mmpll6_gpll0_gpll0_div_map,
109162306a36Sopenharmony_ci	.freq_tbl = ftbl_video_core_clk_src,
109262306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
109362306a36Sopenharmony_ci		.name = "video_core_clk_src",
109462306a36Sopenharmony_ci		.parent_data = mmss_xo_mmpll0_mmpll3_mmpll6_gpll0_gpll0_div,
109562306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_mmpll0_mmpll3_mmpll6_gpll0_gpll0_div),
109662306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
109762306a36Sopenharmony_ci	},
109862306a36Sopenharmony_ci};
109962306a36Sopenharmony_ci
110062306a36Sopenharmony_cistatic struct clk_rcg2 video_subcore0_clk_src = {
110162306a36Sopenharmony_ci	.cmd_rcgr = 0x1060,
110262306a36Sopenharmony_ci	.hid_width = 5,
110362306a36Sopenharmony_ci	.parent_map = mmss_xo_mmpll0_mmpll3_mmpll6_gpll0_gpll0_div_map,
110462306a36Sopenharmony_ci	.freq_tbl = ftbl_video_core_clk_src,
110562306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
110662306a36Sopenharmony_ci		.name = "video_subcore0_clk_src",
110762306a36Sopenharmony_ci		.parent_data = mmss_xo_mmpll0_mmpll3_mmpll6_gpll0_gpll0_div,
110862306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_mmpll0_mmpll3_mmpll6_gpll0_gpll0_div),
110962306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
111062306a36Sopenharmony_ci	},
111162306a36Sopenharmony_ci};
111262306a36Sopenharmony_ci
111362306a36Sopenharmony_cistatic struct clk_rcg2 video_subcore1_clk_src = {
111462306a36Sopenharmony_ci	.cmd_rcgr = 0x1080,
111562306a36Sopenharmony_ci	.hid_width = 5,
111662306a36Sopenharmony_ci	.parent_map = mmss_xo_mmpll0_mmpll3_mmpll6_gpll0_gpll0_div_map,
111762306a36Sopenharmony_ci	.freq_tbl = ftbl_video_core_clk_src,
111862306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
111962306a36Sopenharmony_ci		.name = "video_subcore1_clk_src",
112062306a36Sopenharmony_ci		.parent_data = mmss_xo_mmpll0_mmpll3_mmpll6_gpll0_gpll0_div,
112162306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_mmpll0_mmpll3_mmpll6_gpll0_gpll0_div),
112262306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
112362306a36Sopenharmony_ci	},
112462306a36Sopenharmony_ci};
112562306a36Sopenharmony_ci
112662306a36Sopenharmony_cistatic const struct freq_tbl ftbl_vfe_clk_src[] = {
112762306a36Sopenharmony_ci	F(200000000, P_GPLL0, 3, 0, 0),
112862306a36Sopenharmony_ci	F(300000000, P_GPLL0, 2, 0, 0),
112962306a36Sopenharmony_ci	F(320000000, P_MMPLL7_OUT_EVEN, 3, 0, 0),
113062306a36Sopenharmony_ci	F(384000000, P_MMPLL4_OUT_EVEN, 2, 0, 0),
113162306a36Sopenharmony_ci	F(404000000, P_MMPLL0_OUT_EVEN, 2, 0, 0),
113262306a36Sopenharmony_ci	F(480000000, P_MMPLL7_OUT_EVEN, 2, 0, 0),
113362306a36Sopenharmony_ci	F(576000000, P_MMPLL10_OUT_EVEN, 1, 0, 0),
113462306a36Sopenharmony_ci	F(600000000, P_GPLL0, 1, 0, 0),
113562306a36Sopenharmony_ci	{ }
113662306a36Sopenharmony_ci};
113762306a36Sopenharmony_ci
113862306a36Sopenharmony_cistatic struct clk_rcg2 vfe0_clk_src = {
113962306a36Sopenharmony_ci	.cmd_rcgr = 0x3600,
114062306a36Sopenharmony_ci	.hid_width = 5,
114162306a36Sopenharmony_ci	.parent_map = mmss_xo_mmpll0_mmpll4_mmpll7_mmpll10_gpll0_gpll0_div_map,
114262306a36Sopenharmony_ci	.freq_tbl = ftbl_vfe_clk_src,
114362306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
114462306a36Sopenharmony_ci		.name = "vfe0_clk_src",
114562306a36Sopenharmony_ci		.parent_data = mmss_xo_mmpll0_mmpll4_mmpll7_mmpll10_gpll0_gpll0_div,
114662306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_mmpll0_mmpll4_mmpll7_mmpll10_gpll0_gpll0_div),
114762306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
114862306a36Sopenharmony_ci	},
114962306a36Sopenharmony_ci};
115062306a36Sopenharmony_ci
115162306a36Sopenharmony_cistatic struct clk_rcg2 vfe1_clk_src = {
115262306a36Sopenharmony_ci	.cmd_rcgr = 0x3620,
115362306a36Sopenharmony_ci	.hid_width = 5,
115462306a36Sopenharmony_ci	.parent_map = mmss_xo_mmpll0_mmpll4_mmpll7_mmpll10_gpll0_gpll0_div_map,
115562306a36Sopenharmony_ci	.freq_tbl = ftbl_vfe_clk_src,
115662306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
115762306a36Sopenharmony_ci		.name = "vfe1_clk_src",
115862306a36Sopenharmony_ci		.parent_data = mmss_xo_mmpll0_mmpll4_mmpll7_mmpll10_gpll0_gpll0_div,
115962306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmss_xo_mmpll0_mmpll4_mmpll7_mmpll10_gpll0_gpll0_div),
116062306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
116162306a36Sopenharmony_ci	},
116262306a36Sopenharmony_ci};
116362306a36Sopenharmony_ci
116462306a36Sopenharmony_cistatic struct clk_branch misc_ahb_clk = {
116562306a36Sopenharmony_ci	.halt_reg = 0x328,
116662306a36Sopenharmony_ci	.hwcg_reg = 0x328,
116762306a36Sopenharmony_ci	.hwcg_bit = 1,
116862306a36Sopenharmony_ci	.clkr = {
116962306a36Sopenharmony_ci		.enable_reg = 0x328,
117062306a36Sopenharmony_ci		.enable_mask = BIT(0),
117162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
117262306a36Sopenharmony_ci			.name = "misc_ahb_clk",
117362306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &ahb_clk_src.clkr.hw },
117462306a36Sopenharmony_ci			.num_parents = 1,
117562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
117662306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
117762306a36Sopenharmony_ci		},
117862306a36Sopenharmony_ci	},
117962306a36Sopenharmony_ci};
118062306a36Sopenharmony_ci
118162306a36Sopenharmony_cistatic struct clk_branch video_core_clk = {
118262306a36Sopenharmony_ci	.halt_reg = 0x1028,
118362306a36Sopenharmony_ci	.clkr = {
118462306a36Sopenharmony_ci		.enable_reg = 0x1028,
118562306a36Sopenharmony_ci		.enable_mask = BIT(0),
118662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
118762306a36Sopenharmony_ci			.name = "video_core_clk",
118862306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &video_core_clk_src.clkr.hw },
118962306a36Sopenharmony_ci			.num_parents = 1,
119062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
119162306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
119262306a36Sopenharmony_ci		},
119362306a36Sopenharmony_ci	},
119462306a36Sopenharmony_ci};
119562306a36Sopenharmony_ci
119662306a36Sopenharmony_cistatic struct clk_branch video_ahb_clk = {
119762306a36Sopenharmony_ci	.halt_reg = 0x1030,
119862306a36Sopenharmony_ci	.hwcg_reg = 0x1030,
119962306a36Sopenharmony_ci	.hwcg_bit = 1,
120062306a36Sopenharmony_ci	.clkr = {
120162306a36Sopenharmony_ci		.enable_reg = 0x1030,
120262306a36Sopenharmony_ci		.enable_mask = BIT(0),
120362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
120462306a36Sopenharmony_ci			.name = "video_ahb_clk",
120562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &ahb_clk_src.clkr.hw },
120662306a36Sopenharmony_ci			.num_parents = 1,
120762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
120862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
120962306a36Sopenharmony_ci		},
121062306a36Sopenharmony_ci	},
121162306a36Sopenharmony_ci};
121262306a36Sopenharmony_ci
121362306a36Sopenharmony_cistatic struct clk_branch video_axi_clk = {
121462306a36Sopenharmony_ci	.halt_reg = 0x1034,
121562306a36Sopenharmony_ci	.clkr = {
121662306a36Sopenharmony_ci		.enable_reg = 0x1034,
121762306a36Sopenharmony_ci		.enable_mask = BIT(0),
121862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
121962306a36Sopenharmony_ci			.name = "video_axi_clk",
122062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &axi_clk_src.clkr.hw },
122162306a36Sopenharmony_ci			.num_parents = 1,
122262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
122362306a36Sopenharmony_ci		},
122462306a36Sopenharmony_ci	},
122562306a36Sopenharmony_ci};
122662306a36Sopenharmony_ci
122762306a36Sopenharmony_cistatic struct clk_branch video_maxi_clk = {
122862306a36Sopenharmony_ci	.halt_reg = 0x1038,
122962306a36Sopenharmony_ci	.clkr = {
123062306a36Sopenharmony_ci		.enable_reg = 0x1038,
123162306a36Sopenharmony_ci		.enable_mask = BIT(0),
123262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
123362306a36Sopenharmony_ci			.name = "video_maxi_clk",
123462306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &maxi_clk_src.clkr.hw },
123562306a36Sopenharmony_ci			.num_parents = 1,
123662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
123762306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
123862306a36Sopenharmony_ci		},
123962306a36Sopenharmony_ci	},
124062306a36Sopenharmony_ci};
124162306a36Sopenharmony_ci
124262306a36Sopenharmony_cistatic struct clk_branch video_subcore0_clk = {
124362306a36Sopenharmony_ci	.halt_reg = 0x1048,
124462306a36Sopenharmony_ci	.clkr = {
124562306a36Sopenharmony_ci		.enable_reg = 0x1048,
124662306a36Sopenharmony_ci		.enable_mask = BIT(0),
124762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
124862306a36Sopenharmony_ci			.name = "video_subcore0_clk",
124962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &video_subcore0_clk_src.clkr.hw },
125062306a36Sopenharmony_ci			.num_parents = 1,
125162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
125262306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
125362306a36Sopenharmony_ci		},
125462306a36Sopenharmony_ci	},
125562306a36Sopenharmony_ci};
125662306a36Sopenharmony_ci
125762306a36Sopenharmony_cistatic struct clk_branch video_subcore1_clk = {
125862306a36Sopenharmony_ci	.halt_reg = 0x104c,
125962306a36Sopenharmony_ci	.clkr = {
126062306a36Sopenharmony_ci		.enable_reg = 0x104c,
126162306a36Sopenharmony_ci		.enable_mask = BIT(0),
126262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
126362306a36Sopenharmony_ci			.name = "video_subcore1_clk",
126462306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &video_subcore1_clk_src.clkr.hw },
126562306a36Sopenharmony_ci			.num_parents = 1,
126662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
126762306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
126862306a36Sopenharmony_ci		},
126962306a36Sopenharmony_ci	},
127062306a36Sopenharmony_ci};
127162306a36Sopenharmony_ci
127262306a36Sopenharmony_cistatic struct clk_branch mdss_ahb_clk = {
127362306a36Sopenharmony_ci	.halt_reg = 0x2308,
127462306a36Sopenharmony_ci	.hwcg_reg = 0x2308,
127562306a36Sopenharmony_ci	.hwcg_bit = 1,
127662306a36Sopenharmony_ci	.clkr = {
127762306a36Sopenharmony_ci		.enable_reg = 0x2308,
127862306a36Sopenharmony_ci		.enable_mask = BIT(0),
127962306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
128062306a36Sopenharmony_ci			.name = "mdss_ahb_clk",
128162306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &ahb_clk_src.clkr.hw },
128262306a36Sopenharmony_ci			.num_parents = 1,
128362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
128462306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
128562306a36Sopenharmony_ci		},
128662306a36Sopenharmony_ci	},
128762306a36Sopenharmony_ci};
128862306a36Sopenharmony_ci
128962306a36Sopenharmony_cistatic struct clk_branch mdss_hdmi_dp_ahb_clk = {
129062306a36Sopenharmony_ci	.halt_reg = 0x230c,
129162306a36Sopenharmony_ci	.clkr = {
129262306a36Sopenharmony_ci		.enable_reg = 0x230c,
129362306a36Sopenharmony_ci		.enable_mask = BIT(0),
129462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
129562306a36Sopenharmony_ci			.name = "mdss_hdmi_dp_ahb_clk",
129662306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &ahb_clk_src.clkr.hw },
129762306a36Sopenharmony_ci			.num_parents = 1,
129862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
129962306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
130062306a36Sopenharmony_ci		},
130162306a36Sopenharmony_ci	},
130262306a36Sopenharmony_ci};
130362306a36Sopenharmony_ci
130462306a36Sopenharmony_cistatic struct clk_branch mdss_axi_clk = {
130562306a36Sopenharmony_ci	.halt_reg = 0x2310,
130662306a36Sopenharmony_ci	.clkr = {
130762306a36Sopenharmony_ci		.enable_reg = 0x2310,
130862306a36Sopenharmony_ci		.enable_mask = BIT(0),
130962306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
131062306a36Sopenharmony_ci			.name = "mdss_axi_clk",
131162306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &axi_clk_src.clkr.hw },
131262306a36Sopenharmony_ci			.num_parents = 1,
131362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
131462306a36Sopenharmony_ci		},
131562306a36Sopenharmony_ci	},
131662306a36Sopenharmony_ci};
131762306a36Sopenharmony_ci
131862306a36Sopenharmony_cistatic struct clk_branch mdss_pclk0_clk = {
131962306a36Sopenharmony_ci	.halt_reg = 0x2314,
132062306a36Sopenharmony_ci	.clkr = {
132162306a36Sopenharmony_ci		.enable_reg = 0x2314,
132262306a36Sopenharmony_ci		.enable_mask = BIT(0),
132362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
132462306a36Sopenharmony_ci			.name = "mdss_pclk0_clk",
132562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &pclk0_clk_src.clkr.hw },
132662306a36Sopenharmony_ci			.num_parents = 1,
132762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
132862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
132962306a36Sopenharmony_ci		},
133062306a36Sopenharmony_ci	},
133162306a36Sopenharmony_ci};
133262306a36Sopenharmony_ci
133362306a36Sopenharmony_cistatic struct clk_branch mdss_pclk1_clk = {
133462306a36Sopenharmony_ci	.halt_reg = 0x2318,
133562306a36Sopenharmony_ci	.clkr = {
133662306a36Sopenharmony_ci		.enable_reg = 0x2318,
133762306a36Sopenharmony_ci		.enable_mask = BIT(0),
133862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
133962306a36Sopenharmony_ci			.name = "mdss_pclk1_clk",
134062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &pclk1_clk_src.clkr.hw },
134162306a36Sopenharmony_ci			.num_parents = 1,
134262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
134362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
134462306a36Sopenharmony_ci		},
134562306a36Sopenharmony_ci	},
134662306a36Sopenharmony_ci};
134762306a36Sopenharmony_ci
134862306a36Sopenharmony_cistatic struct clk_branch mdss_mdp_clk = {
134962306a36Sopenharmony_ci	.halt_reg = 0x231c,
135062306a36Sopenharmony_ci	.clkr = {
135162306a36Sopenharmony_ci		.enable_reg = 0x231c,
135262306a36Sopenharmony_ci		.enable_mask = BIT(0),
135362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
135462306a36Sopenharmony_ci			.name = "mdss_mdp_clk",
135562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &mdp_clk_src.clkr.hw },
135662306a36Sopenharmony_ci			.num_parents = 1,
135762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
135862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
135962306a36Sopenharmony_ci		},
136062306a36Sopenharmony_ci	},
136162306a36Sopenharmony_ci};
136262306a36Sopenharmony_ci
136362306a36Sopenharmony_cistatic struct clk_branch mdss_mdp_lut_clk = {
136462306a36Sopenharmony_ci	.halt_reg = 0x2320,
136562306a36Sopenharmony_ci	.clkr = {
136662306a36Sopenharmony_ci		.enable_reg = 0x2320,
136762306a36Sopenharmony_ci		.enable_mask = BIT(0),
136862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
136962306a36Sopenharmony_ci			.name = "mdss_mdp_lut_clk",
137062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &mdp_clk_src.clkr.hw },
137162306a36Sopenharmony_ci			.num_parents = 1,
137262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
137362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
137462306a36Sopenharmony_ci		},
137562306a36Sopenharmony_ci	},
137662306a36Sopenharmony_ci};
137762306a36Sopenharmony_ci
137862306a36Sopenharmony_cistatic struct clk_branch mdss_extpclk_clk = {
137962306a36Sopenharmony_ci	.halt_reg = 0x2324,
138062306a36Sopenharmony_ci	.clkr = {
138162306a36Sopenharmony_ci		.enable_reg = 0x2324,
138262306a36Sopenharmony_ci		.enable_mask = BIT(0),
138362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
138462306a36Sopenharmony_ci			.name = "mdss_extpclk_clk",
138562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &extpclk_clk_src.clkr.hw },
138662306a36Sopenharmony_ci			.num_parents = 1,
138762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
138862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
138962306a36Sopenharmony_ci		},
139062306a36Sopenharmony_ci	},
139162306a36Sopenharmony_ci};
139262306a36Sopenharmony_ci
139362306a36Sopenharmony_cistatic struct clk_branch mdss_vsync_clk = {
139462306a36Sopenharmony_ci	.halt_reg = 0x2328,
139562306a36Sopenharmony_ci	.clkr = {
139662306a36Sopenharmony_ci		.enable_reg = 0x2328,
139762306a36Sopenharmony_ci		.enable_mask = BIT(0),
139862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
139962306a36Sopenharmony_ci			.name = "mdss_vsync_clk",
140062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &vsync_clk_src.clkr.hw },
140162306a36Sopenharmony_ci			.num_parents = 1,
140262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
140362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
140462306a36Sopenharmony_ci		},
140562306a36Sopenharmony_ci	},
140662306a36Sopenharmony_ci};
140762306a36Sopenharmony_ci
140862306a36Sopenharmony_cistatic struct clk_branch mdss_hdmi_clk = {
140962306a36Sopenharmony_ci	.halt_reg = 0x2338,
141062306a36Sopenharmony_ci	.clkr = {
141162306a36Sopenharmony_ci		.enable_reg = 0x2338,
141262306a36Sopenharmony_ci		.enable_mask = BIT(0),
141362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
141462306a36Sopenharmony_ci			.name = "mdss_hdmi_clk",
141562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &hdmi_clk_src.clkr.hw },
141662306a36Sopenharmony_ci			.num_parents = 1,
141762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
141862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
141962306a36Sopenharmony_ci		},
142062306a36Sopenharmony_ci	},
142162306a36Sopenharmony_ci};
142262306a36Sopenharmony_ci
142362306a36Sopenharmony_cistatic struct clk_branch mdss_byte0_clk = {
142462306a36Sopenharmony_ci	.halt_reg = 0x233c,
142562306a36Sopenharmony_ci	.clkr = {
142662306a36Sopenharmony_ci		.enable_reg = 0x233c,
142762306a36Sopenharmony_ci		.enable_mask = BIT(0),
142862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
142962306a36Sopenharmony_ci			.name = "mdss_byte0_clk",
143062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &byte0_clk_src.clkr.hw },
143162306a36Sopenharmony_ci			.num_parents = 1,
143262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
143362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
143462306a36Sopenharmony_ci		},
143562306a36Sopenharmony_ci	},
143662306a36Sopenharmony_ci};
143762306a36Sopenharmony_ci
143862306a36Sopenharmony_cistatic struct clk_branch mdss_byte1_clk = {
143962306a36Sopenharmony_ci	.halt_reg = 0x2340,
144062306a36Sopenharmony_ci	.clkr = {
144162306a36Sopenharmony_ci		.enable_reg = 0x2340,
144262306a36Sopenharmony_ci		.enable_mask = BIT(0),
144362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
144462306a36Sopenharmony_ci			.name = "mdss_byte1_clk",
144562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &byte1_clk_src.clkr.hw },
144662306a36Sopenharmony_ci			.num_parents = 1,
144762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
144862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
144962306a36Sopenharmony_ci		},
145062306a36Sopenharmony_ci	},
145162306a36Sopenharmony_ci};
145262306a36Sopenharmony_ci
145362306a36Sopenharmony_cistatic struct clk_branch mdss_esc0_clk = {
145462306a36Sopenharmony_ci	.halt_reg = 0x2344,
145562306a36Sopenharmony_ci	.clkr = {
145662306a36Sopenharmony_ci		.enable_reg = 0x2344,
145762306a36Sopenharmony_ci		.enable_mask = BIT(0),
145862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
145962306a36Sopenharmony_ci			.name = "mdss_esc0_clk",
146062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &esc0_clk_src.clkr.hw },
146162306a36Sopenharmony_ci			.num_parents = 1,
146262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
146362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
146462306a36Sopenharmony_ci		},
146562306a36Sopenharmony_ci	},
146662306a36Sopenharmony_ci};
146762306a36Sopenharmony_ci
146862306a36Sopenharmony_cistatic struct clk_branch mdss_esc1_clk = {
146962306a36Sopenharmony_ci	.halt_reg = 0x2348,
147062306a36Sopenharmony_ci	.clkr = {
147162306a36Sopenharmony_ci		.enable_reg = 0x2348,
147262306a36Sopenharmony_ci		.enable_mask = BIT(0),
147362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
147462306a36Sopenharmony_ci			.name = "mdss_esc1_clk",
147562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &esc1_clk_src.clkr.hw },
147662306a36Sopenharmony_ci			.num_parents = 1,
147762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
147862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
147962306a36Sopenharmony_ci		},
148062306a36Sopenharmony_ci	},
148162306a36Sopenharmony_ci};
148262306a36Sopenharmony_ci
148362306a36Sopenharmony_cistatic struct clk_branch mdss_rot_clk = {
148462306a36Sopenharmony_ci	.halt_reg = 0x2350,
148562306a36Sopenharmony_ci	.clkr = {
148662306a36Sopenharmony_ci		.enable_reg = 0x2350,
148762306a36Sopenharmony_ci		.enable_mask = BIT(0),
148862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
148962306a36Sopenharmony_ci			.name = "mdss_rot_clk",
149062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &rot_clk_src.clkr.hw },
149162306a36Sopenharmony_ci			.num_parents = 1,
149262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
149362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
149462306a36Sopenharmony_ci		},
149562306a36Sopenharmony_ci	},
149662306a36Sopenharmony_ci};
149762306a36Sopenharmony_ci
149862306a36Sopenharmony_cistatic struct clk_branch mdss_dp_link_clk = {
149962306a36Sopenharmony_ci	.halt_reg = 0x2354,
150062306a36Sopenharmony_ci	.clkr = {
150162306a36Sopenharmony_ci		.enable_reg = 0x2354,
150262306a36Sopenharmony_ci		.enable_mask = BIT(0),
150362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
150462306a36Sopenharmony_ci			.name = "mdss_dp_link_clk",
150562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &dp_link_clk_src.clkr.hw },
150662306a36Sopenharmony_ci			.num_parents = 1,
150762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
150862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
150962306a36Sopenharmony_ci		},
151062306a36Sopenharmony_ci	},
151162306a36Sopenharmony_ci};
151262306a36Sopenharmony_ci
151362306a36Sopenharmony_cistatic struct clk_branch mdss_dp_link_intf_clk = {
151462306a36Sopenharmony_ci	.halt_reg = 0x2358,
151562306a36Sopenharmony_ci	.clkr = {
151662306a36Sopenharmony_ci		.enable_reg = 0x2358,
151762306a36Sopenharmony_ci		.enable_mask = BIT(0),
151862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
151962306a36Sopenharmony_ci			.name = "mdss_dp_link_intf_clk",
152062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &dp_link_clk_src.clkr.hw },
152162306a36Sopenharmony_ci			.num_parents = 1,
152262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
152362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
152462306a36Sopenharmony_ci		},
152562306a36Sopenharmony_ci	},
152662306a36Sopenharmony_ci};
152762306a36Sopenharmony_ci
152862306a36Sopenharmony_cistatic struct clk_branch mdss_dp_crypto_clk = {
152962306a36Sopenharmony_ci	.halt_reg = 0x235c,
153062306a36Sopenharmony_ci	.clkr = {
153162306a36Sopenharmony_ci		.enable_reg = 0x235c,
153262306a36Sopenharmony_ci		.enable_mask = BIT(0),
153362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
153462306a36Sopenharmony_ci			.name = "mdss_dp_crypto_clk",
153562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &dp_crypto_clk_src.clkr.hw },
153662306a36Sopenharmony_ci			.num_parents = 1,
153762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
153862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
153962306a36Sopenharmony_ci		},
154062306a36Sopenharmony_ci	},
154162306a36Sopenharmony_ci};
154262306a36Sopenharmony_ci
154362306a36Sopenharmony_cistatic struct clk_branch mdss_dp_pixel_clk = {
154462306a36Sopenharmony_ci	.halt_reg = 0x2360,
154562306a36Sopenharmony_ci	.clkr = {
154662306a36Sopenharmony_ci		.enable_reg = 0x2360,
154762306a36Sopenharmony_ci		.enable_mask = BIT(0),
154862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
154962306a36Sopenharmony_ci			.name = "mdss_dp_pixel_clk",
155062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &dp_pixel_clk_src.clkr.hw },
155162306a36Sopenharmony_ci			.num_parents = 1,
155262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
155362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
155462306a36Sopenharmony_ci		},
155562306a36Sopenharmony_ci	},
155662306a36Sopenharmony_ci};
155762306a36Sopenharmony_ci
155862306a36Sopenharmony_cistatic struct clk_branch mdss_dp_aux_clk = {
155962306a36Sopenharmony_ci	.halt_reg = 0x2364,
156062306a36Sopenharmony_ci	.clkr = {
156162306a36Sopenharmony_ci		.enable_reg = 0x2364,
156262306a36Sopenharmony_ci		.enable_mask = BIT(0),
156362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
156462306a36Sopenharmony_ci			.name = "mdss_dp_aux_clk",
156562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &dp_aux_clk_src.clkr.hw },
156662306a36Sopenharmony_ci			.num_parents = 1,
156762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
156862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
156962306a36Sopenharmony_ci		},
157062306a36Sopenharmony_ci	},
157162306a36Sopenharmony_ci};
157262306a36Sopenharmony_ci
157362306a36Sopenharmony_cistatic struct clk_branch mdss_byte0_intf_clk = {
157462306a36Sopenharmony_ci	.halt_reg = 0x2374,
157562306a36Sopenharmony_ci	.clkr = {
157662306a36Sopenharmony_ci		.enable_reg = 0x2374,
157762306a36Sopenharmony_ci		.enable_mask = BIT(0),
157862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
157962306a36Sopenharmony_ci			.name = "mdss_byte0_intf_clk",
158062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &byte0_clk_src.clkr.hw },
158162306a36Sopenharmony_ci			.num_parents = 1,
158262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
158362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
158462306a36Sopenharmony_ci		},
158562306a36Sopenharmony_ci	},
158662306a36Sopenharmony_ci};
158762306a36Sopenharmony_ci
158862306a36Sopenharmony_cistatic struct clk_branch mdss_byte1_intf_clk = {
158962306a36Sopenharmony_ci	.halt_reg = 0x2378,
159062306a36Sopenharmony_ci	.clkr = {
159162306a36Sopenharmony_ci		.enable_reg = 0x2378,
159262306a36Sopenharmony_ci		.enable_mask = BIT(0),
159362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
159462306a36Sopenharmony_ci			.name = "mdss_byte1_intf_clk",
159562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &byte1_clk_src.clkr.hw },
159662306a36Sopenharmony_ci			.num_parents = 1,
159762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
159862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
159962306a36Sopenharmony_ci		},
160062306a36Sopenharmony_ci	},
160162306a36Sopenharmony_ci};
160262306a36Sopenharmony_ci
160362306a36Sopenharmony_cistatic struct clk_branch camss_csi0phytimer_clk = {
160462306a36Sopenharmony_ci	.halt_reg = 0x3024,
160562306a36Sopenharmony_ci	.clkr = {
160662306a36Sopenharmony_ci		.enable_reg = 0x3024,
160762306a36Sopenharmony_ci		.enable_mask = BIT(0),
160862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
160962306a36Sopenharmony_ci			.name = "camss_csi0phytimer_clk",
161062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &csi0phytimer_clk_src.clkr.hw },
161162306a36Sopenharmony_ci			.num_parents = 1,
161262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
161362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
161462306a36Sopenharmony_ci		},
161562306a36Sopenharmony_ci	},
161662306a36Sopenharmony_ci};
161762306a36Sopenharmony_ci
161862306a36Sopenharmony_cistatic struct clk_branch camss_csi1phytimer_clk = {
161962306a36Sopenharmony_ci	.halt_reg = 0x3054,
162062306a36Sopenharmony_ci	.clkr = {
162162306a36Sopenharmony_ci		.enable_reg = 0x3054,
162262306a36Sopenharmony_ci		.enable_mask = BIT(0),
162362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
162462306a36Sopenharmony_ci			.name = "camss_csi1phytimer_clk",
162562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &csi1phytimer_clk_src.clkr.hw },
162662306a36Sopenharmony_ci			.num_parents = 1,
162762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
162862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
162962306a36Sopenharmony_ci		},
163062306a36Sopenharmony_ci	},
163162306a36Sopenharmony_ci};
163262306a36Sopenharmony_ci
163362306a36Sopenharmony_cistatic struct clk_branch camss_csi2phytimer_clk = {
163462306a36Sopenharmony_ci	.halt_reg = 0x3084,
163562306a36Sopenharmony_ci	.clkr = {
163662306a36Sopenharmony_ci		.enable_reg = 0x3084,
163762306a36Sopenharmony_ci		.enable_mask = BIT(0),
163862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
163962306a36Sopenharmony_ci			.name = "camss_csi2phytimer_clk",
164062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &csi2phytimer_clk_src.clkr.hw },
164162306a36Sopenharmony_ci			.num_parents = 1,
164262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
164362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
164462306a36Sopenharmony_ci		},
164562306a36Sopenharmony_ci	},
164662306a36Sopenharmony_ci};
164762306a36Sopenharmony_ci
164862306a36Sopenharmony_cistatic struct clk_branch camss_csi0_clk = {
164962306a36Sopenharmony_ci	.halt_reg = 0x30b4,
165062306a36Sopenharmony_ci	.clkr = {
165162306a36Sopenharmony_ci		.enable_reg = 0x30b4,
165262306a36Sopenharmony_ci		.enable_mask = BIT(0),
165362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
165462306a36Sopenharmony_ci			.name = "camss_csi0_clk",
165562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &csi0_clk_src.clkr.hw },
165662306a36Sopenharmony_ci			.num_parents = 1,
165762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
165862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
165962306a36Sopenharmony_ci		},
166062306a36Sopenharmony_ci	},
166162306a36Sopenharmony_ci};
166262306a36Sopenharmony_ci
166362306a36Sopenharmony_cistatic struct clk_branch camss_csi0_ahb_clk = {
166462306a36Sopenharmony_ci	.halt_reg = 0x30bc,
166562306a36Sopenharmony_ci	.clkr = {
166662306a36Sopenharmony_ci		.enable_reg = 0x30bc,
166762306a36Sopenharmony_ci		.enable_mask = BIT(0),
166862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
166962306a36Sopenharmony_ci			.name = "camss_csi0_ahb_clk",
167062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &ahb_clk_src.clkr.hw },
167162306a36Sopenharmony_ci			.num_parents = 1,
167262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
167362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
167462306a36Sopenharmony_ci		},
167562306a36Sopenharmony_ci	},
167662306a36Sopenharmony_ci};
167762306a36Sopenharmony_ci
167862306a36Sopenharmony_cistatic struct clk_branch camss_csi0rdi_clk = {
167962306a36Sopenharmony_ci	.halt_reg = 0x30d4,
168062306a36Sopenharmony_ci	.clkr = {
168162306a36Sopenharmony_ci		.enable_reg = 0x30d4,
168262306a36Sopenharmony_ci		.enable_mask = BIT(0),
168362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
168462306a36Sopenharmony_ci			.name = "camss_csi0rdi_clk",
168562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &csi0_clk_src.clkr.hw },
168662306a36Sopenharmony_ci			.num_parents = 1,
168762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
168862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
168962306a36Sopenharmony_ci		},
169062306a36Sopenharmony_ci	},
169162306a36Sopenharmony_ci};
169262306a36Sopenharmony_ci
169362306a36Sopenharmony_cistatic struct clk_branch camss_csi0pix_clk = {
169462306a36Sopenharmony_ci	.halt_reg = 0x30e4,
169562306a36Sopenharmony_ci	.clkr = {
169662306a36Sopenharmony_ci		.enable_reg = 0x30e4,
169762306a36Sopenharmony_ci		.enable_mask = BIT(0),
169862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
169962306a36Sopenharmony_ci			.name = "camss_csi0pix_clk",
170062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &csi0_clk_src.clkr.hw },
170162306a36Sopenharmony_ci			.num_parents = 1,
170262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
170362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
170462306a36Sopenharmony_ci		},
170562306a36Sopenharmony_ci	},
170662306a36Sopenharmony_ci};
170762306a36Sopenharmony_ci
170862306a36Sopenharmony_cistatic struct clk_branch camss_csi1_clk = {
170962306a36Sopenharmony_ci	.halt_reg = 0x3124,
171062306a36Sopenharmony_ci	.clkr = {
171162306a36Sopenharmony_ci		.enable_reg = 0x3124,
171262306a36Sopenharmony_ci		.enable_mask = BIT(0),
171362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
171462306a36Sopenharmony_ci			.name = "camss_csi1_clk",
171562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &csi1_clk_src.clkr.hw },
171662306a36Sopenharmony_ci			.num_parents = 1,
171762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
171862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
171962306a36Sopenharmony_ci		},
172062306a36Sopenharmony_ci	},
172162306a36Sopenharmony_ci};
172262306a36Sopenharmony_ci
172362306a36Sopenharmony_cistatic struct clk_branch camss_csi1_ahb_clk = {
172462306a36Sopenharmony_ci	.halt_reg = 0x3128,
172562306a36Sopenharmony_ci	.clkr = {
172662306a36Sopenharmony_ci		.enable_reg = 0x3128,
172762306a36Sopenharmony_ci		.enable_mask = BIT(0),
172862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
172962306a36Sopenharmony_ci			.name = "camss_csi1_ahb_clk",
173062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &ahb_clk_src.clkr.hw },
173162306a36Sopenharmony_ci			.num_parents = 1,
173262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
173362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
173462306a36Sopenharmony_ci		},
173562306a36Sopenharmony_ci	},
173662306a36Sopenharmony_ci};
173762306a36Sopenharmony_ci
173862306a36Sopenharmony_cistatic struct clk_branch camss_csi1rdi_clk = {
173962306a36Sopenharmony_ci	.halt_reg = 0x3144,
174062306a36Sopenharmony_ci	.clkr = {
174162306a36Sopenharmony_ci		.enable_reg = 0x3144,
174262306a36Sopenharmony_ci		.enable_mask = BIT(0),
174362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
174462306a36Sopenharmony_ci			.name = "camss_csi1rdi_clk",
174562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &csi1_clk_src.clkr.hw },
174662306a36Sopenharmony_ci			.num_parents = 1,
174762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
174862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
174962306a36Sopenharmony_ci		},
175062306a36Sopenharmony_ci	},
175162306a36Sopenharmony_ci};
175262306a36Sopenharmony_ci
175362306a36Sopenharmony_cistatic struct clk_branch camss_csi1pix_clk = {
175462306a36Sopenharmony_ci	.halt_reg = 0x3154,
175562306a36Sopenharmony_ci	.clkr = {
175662306a36Sopenharmony_ci		.enable_reg = 0x3154,
175762306a36Sopenharmony_ci		.enable_mask = BIT(0),
175862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
175962306a36Sopenharmony_ci			.name = "camss_csi1pix_clk",
176062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &csi1_clk_src.clkr.hw },
176162306a36Sopenharmony_ci			.num_parents = 1,
176262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
176362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
176462306a36Sopenharmony_ci		},
176562306a36Sopenharmony_ci	},
176662306a36Sopenharmony_ci};
176762306a36Sopenharmony_ci
176862306a36Sopenharmony_cistatic struct clk_branch camss_csi2_clk = {
176962306a36Sopenharmony_ci	.halt_reg = 0x3184,
177062306a36Sopenharmony_ci	.clkr = {
177162306a36Sopenharmony_ci		.enable_reg = 0x3184,
177262306a36Sopenharmony_ci		.enable_mask = BIT(0),
177362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
177462306a36Sopenharmony_ci			.name = "camss_csi2_clk",
177562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &csi2_clk_src.clkr.hw },
177662306a36Sopenharmony_ci			.num_parents = 1,
177762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
177862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
177962306a36Sopenharmony_ci		},
178062306a36Sopenharmony_ci	},
178162306a36Sopenharmony_ci};
178262306a36Sopenharmony_ci
178362306a36Sopenharmony_cistatic struct clk_branch camss_csi2_ahb_clk = {
178462306a36Sopenharmony_ci	.halt_reg = 0x3188,
178562306a36Sopenharmony_ci	.clkr = {
178662306a36Sopenharmony_ci		.enable_reg = 0x3188,
178762306a36Sopenharmony_ci		.enable_mask = BIT(0),
178862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
178962306a36Sopenharmony_ci			.name = "camss_csi2_ahb_clk",
179062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &ahb_clk_src.clkr.hw },
179162306a36Sopenharmony_ci			.num_parents = 1,
179262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
179362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
179462306a36Sopenharmony_ci		},
179562306a36Sopenharmony_ci	},
179662306a36Sopenharmony_ci};
179762306a36Sopenharmony_ci
179862306a36Sopenharmony_cistatic struct clk_branch camss_csi2rdi_clk = {
179962306a36Sopenharmony_ci	.halt_reg = 0x31a4,
180062306a36Sopenharmony_ci	.clkr = {
180162306a36Sopenharmony_ci		.enable_reg = 0x31a4,
180262306a36Sopenharmony_ci		.enable_mask = BIT(0),
180362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
180462306a36Sopenharmony_ci			.name = "camss_csi2rdi_clk",
180562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &csi2_clk_src.clkr.hw },
180662306a36Sopenharmony_ci			.num_parents = 1,
180762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
180862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
180962306a36Sopenharmony_ci		},
181062306a36Sopenharmony_ci	},
181162306a36Sopenharmony_ci};
181262306a36Sopenharmony_ci
181362306a36Sopenharmony_cistatic struct clk_branch camss_csi2pix_clk = {
181462306a36Sopenharmony_ci	.halt_reg = 0x31b4,
181562306a36Sopenharmony_ci	.clkr = {
181662306a36Sopenharmony_ci		.enable_reg = 0x31b4,
181762306a36Sopenharmony_ci		.enable_mask = BIT(0),
181862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
181962306a36Sopenharmony_ci			.name = "camss_csi2pix_clk",
182062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &csi2_clk_src.clkr.hw },
182162306a36Sopenharmony_ci			.num_parents = 1,
182262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
182362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
182462306a36Sopenharmony_ci		},
182562306a36Sopenharmony_ci	},
182662306a36Sopenharmony_ci};
182762306a36Sopenharmony_ci
182862306a36Sopenharmony_cistatic struct clk_branch camss_csi3_clk = {
182962306a36Sopenharmony_ci	.halt_reg = 0x31e4,
183062306a36Sopenharmony_ci	.clkr = {
183162306a36Sopenharmony_ci		.enable_reg = 0x31e4,
183262306a36Sopenharmony_ci		.enable_mask = BIT(0),
183362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
183462306a36Sopenharmony_ci			.name = "camss_csi3_clk",
183562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &csi3_clk_src.clkr.hw },
183662306a36Sopenharmony_ci			.num_parents = 1,
183762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
183862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
183962306a36Sopenharmony_ci		},
184062306a36Sopenharmony_ci	},
184162306a36Sopenharmony_ci};
184262306a36Sopenharmony_ci
184362306a36Sopenharmony_cistatic struct clk_branch camss_csi3_ahb_clk = {
184462306a36Sopenharmony_ci	.halt_reg = 0x31e8,
184562306a36Sopenharmony_ci	.clkr = {
184662306a36Sopenharmony_ci		.enable_reg = 0x31e8,
184762306a36Sopenharmony_ci		.enable_mask = BIT(0),
184862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
184962306a36Sopenharmony_ci			.name = "camss_csi3_ahb_clk",
185062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &ahb_clk_src.clkr.hw },
185162306a36Sopenharmony_ci			.num_parents = 1,
185262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
185362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
185462306a36Sopenharmony_ci		},
185562306a36Sopenharmony_ci	},
185662306a36Sopenharmony_ci};
185762306a36Sopenharmony_ci
185862306a36Sopenharmony_cistatic struct clk_branch camss_csi3rdi_clk = {
185962306a36Sopenharmony_ci	.halt_reg = 0x3204,
186062306a36Sopenharmony_ci	.clkr = {
186162306a36Sopenharmony_ci		.enable_reg = 0x3204,
186262306a36Sopenharmony_ci		.enable_mask = BIT(0),
186362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
186462306a36Sopenharmony_ci			.name = "camss_csi3rdi_clk",
186562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &csi3_clk_src.clkr.hw },
186662306a36Sopenharmony_ci			.num_parents = 1,
186762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
186862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
186962306a36Sopenharmony_ci		},
187062306a36Sopenharmony_ci	},
187162306a36Sopenharmony_ci};
187262306a36Sopenharmony_ci
187362306a36Sopenharmony_cistatic struct clk_branch camss_csi3pix_clk = {
187462306a36Sopenharmony_ci	.halt_reg = 0x3214,
187562306a36Sopenharmony_ci	.clkr = {
187662306a36Sopenharmony_ci		.enable_reg = 0x3214,
187762306a36Sopenharmony_ci		.enable_mask = BIT(0),
187862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
187962306a36Sopenharmony_ci			.name = "camss_csi3pix_clk",
188062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &csi3_clk_src.clkr.hw },
188162306a36Sopenharmony_ci			.num_parents = 1,
188262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
188362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
188462306a36Sopenharmony_ci		},
188562306a36Sopenharmony_ci	},
188662306a36Sopenharmony_ci};
188762306a36Sopenharmony_ci
188862306a36Sopenharmony_cistatic struct clk_branch camss_ispif_ahb_clk = {
188962306a36Sopenharmony_ci	.halt_reg = 0x3224,
189062306a36Sopenharmony_ci	.clkr = {
189162306a36Sopenharmony_ci		.enable_reg = 0x3224,
189262306a36Sopenharmony_ci		.enable_mask = BIT(0),
189362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
189462306a36Sopenharmony_ci			.name = "camss_ispif_ahb_clk",
189562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &ahb_clk_src.clkr.hw },
189662306a36Sopenharmony_ci			.num_parents = 1,
189762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
189862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
189962306a36Sopenharmony_ci		},
190062306a36Sopenharmony_ci	},
190162306a36Sopenharmony_ci};
190262306a36Sopenharmony_ci
190362306a36Sopenharmony_cistatic struct clk_branch camss_cci_clk = {
190462306a36Sopenharmony_ci	.halt_reg = 0x3344,
190562306a36Sopenharmony_ci	.clkr = {
190662306a36Sopenharmony_ci		.enable_reg = 0x3344,
190762306a36Sopenharmony_ci		.enable_mask = BIT(0),
190862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
190962306a36Sopenharmony_ci			.name = "camss_cci_clk",
191062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &cci_clk_src.clkr.hw },
191162306a36Sopenharmony_ci			.num_parents = 1,
191262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
191362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
191462306a36Sopenharmony_ci		},
191562306a36Sopenharmony_ci	},
191662306a36Sopenharmony_ci};
191762306a36Sopenharmony_ci
191862306a36Sopenharmony_cistatic struct clk_branch camss_cci_ahb_clk = {
191962306a36Sopenharmony_ci	.halt_reg = 0x3348,
192062306a36Sopenharmony_ci	.clkr = {
192162306a36Sopenharmony_ci		.enable_reg = 0x3348,
192262306a36Sopenharmony_ci		.enable_mask = BIT(0),
192362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
192462306a36Sopenharmony_ci			.name = "camss_cci_ahb_clk",
192562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &ahb_clk_src.clkr.hw },
192662306a36Sopenharmony_ci			.num_parents = 1,
192762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
192862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
192962306a36Sopenharmony_ci		},
193062306a36Sopenharmony_ci	},
193162306a36Sopenharmony_ci};
193262306a36Sopenharmony_ci
193362306a36Sopenharmony_cistatic struct clk_branch camss_mclk0_clk = {
193462306a36Sopenharmony_ci	.halt_reg = 0x3384,
193562306a36Sopenharmony_ci	.clkr = {
193662306a36Sopenharmony_ci		.enable_reg = 0x3384,
193762306a36Sopenharmony_ci		.enable_mask = BIT(0),
193862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
193962306a36Sopenharmony_ci			.name = "camss_mclk0_clk",
194062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &mclk0_clk_src.clkr.hw },
194162306a36Sopenharmony_ci			.num_parents = 1,
194262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
194362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
194462306a36Sopenharmony_ci		},
194562306a36Sopenharmony_ci	},
194662306a36Sopenharmony_ci};
194762306a36Sopenharmony_ci
194862306a36Sopenharmony_cistatic struct clk_branch camss_mclk1_clk = {
194962306a36Sopenharmony_ci	.halt_reg = 0x33b4,
195062306a36Sopenharmony_ci	.clkr = {
195162306a36Sopenharmony_ci		.enable_reg = 0x33b4,
195262306a36Sopenharmony_ci		.enable_mask = BIT(0),
195362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
195462306a36Sopenharmony_ci			.name = "camss_mclk1_clk",
195562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &mclk1_clk_src.clkr.hw },
195662306a36Sopenharmony_ci			.num_parents = 1,
195762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
195862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
195962306a36Sopenharmony_ci		},
196062306a36Sopenharmony_ci	},
196162306a36Sopenharmony_ci};
196262306a36Sopenharmony_ci
196362306a36Sopenharmony_cistatic struct clk_branch camss_mclk2_clk = {
196462306a36Sopenharmony_ci	.halt_reg = 0x33e4,
196562306a36Sopenharmony_ci	.clkr = {
196662306a36Sopenharmony_ci		.enable_reg = 0x33e4,
196762306a36Sopenharmony_ci		.enable_mask = BIT(0),
196862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
196962306a36Sopenharmony_ci			.name = "camss_mclk2_clk",
197062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &mclk2_clk_src.clkr.hw },
197162306a36Sopenharmony_ci			.num_parents = 1,
197262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
197362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
197462306a36Sopenharmony_ci		},
197562306a36Sopenharmony_ci	},
197662306a36Sopenharmony_ci};
197762306a36Sopenharmony_ci
197862306a36Sopenharmony_cistatic struct clk_branch camss_mclk3_clk = {
197962306a36Sopenharmony_ci	.halt_reg = 0x3414,
198062306a36Sopenharmony_ci	.clkr = {
198162306a36Sopenharmony_ci		.enable_reg = 0x3414,
198262306a36Sopenharmony_ci		.enable_mask = BIT(0),
198362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
198462306a36Sopenharmony_ci			.name = "camss_mclk3_clk",
198562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &mclk3_clk_src.clkr.hw },
198662306a36Sopenharmony_ci			.num_parents = 1,
198762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
198862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
198962306a36Sopenharmony_ci		},
199062306a36Sopenharmony_ci	},
199162306a36Sopenharmony_ci};
199262306a36Sopenharmony_ci
199362306a36Sopenharmony_cistatic struct clk_branch camss_top_ahb_clk = {
199462306a36Sopenharmony_ci	.halt_reg = 0x3484,
199562306a36Sopenharmony_ci	.clkr = {
199662306a36Sopenharmony_ci		.enable_reg = 0x3484,
199762306a36Sopenharmony_ci		.enable_mask = BIT(0),
199862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
199962306a36Sopenharmony_ci			.name = "camss_top_ahb_clk",
200062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &ahb_clk_src.clkr.hw },
200162306a36Sopenharmony_ci			.num_parents = 1,
200262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
200362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
200462306a36Sopenharmony_ci		},
200562306a36Sopenharmony_ci	},
200662306a36Sopenharmony_ci};
200762306a36Sopenharmony_ci
200862306a36Sopenharmony_cistatic struct clk_branch camss_ahb_clk = {
200962306a36Sopenharmony_ci	.halt_reg = 0x348c,
201062306a36Sopenharmony_ci	.clkr = {
201162306a36Sopenharmony_ci		.enable_reg = 0x348c,
201262306a36Sopenharmony_ci		.enable_mask = BIT(0),
201362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
201462306a36Sopenharmony_ci			.name = "camss_ahb_clk",
201562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &ahb_clk_src.clkr.hw },
201662306a36Sopenharmony_ci			.num_parents = 1,
201762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
201862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
201962306a36Sopenharmony_ci		},
202062306a36Sopenharmony_ci	},
202162306a36Sopenharmony_ci};
202262306a36Sopenharmony_ci
202362306a36Sopenharmony_cistatic struct clk_branch camss_micro_ahb_clk = {
202462306a36Sopenharmony_ci	.halt_reg = 0x3494,
202562306a36Sopenharmony_ci	.clkr = {
202662306a36Sopenharmony_ci		.enable_reg = 0x3494,
202762306a36Sopenharmony_ci		.enable_mask = BIT(0),
202862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
202962306a36Sopenharmony_ci			.name = "camss_micro_ahb_clk",
203062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &ahb_clk_src.clkr.hw },
203162306a36Sopenharmony_ci			.num_parents = 1,
203262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
203362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
203462306a36Sopenharmony_ci		},
203562306a36Sopenharmony_ci	},
203662306a36Sopenharmony_ci};
203762306a36Sopenharmony_ci
203862306a36Sopenharmony_cistatic struct clk_branch camss_jpeg0_clk = {
203962306a36Sopenharmony_ci	.halt_reg = 0x35a8,
204062306a36Sopenharmony_ci	.clkr = {
204162306a36Sopenharmony_ci		.enable_reg = 0x35a8,
204262306a36Sopenharmony_ci		.enable_mask = BIT(0),
204362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
204462306a36Sopenharmony_ci			.name = "camss_jpeg0_clk",
204562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &jpeg0_clk_src.clkr.hw },
204662306a36Sopenharmony_ci			.num_parents = 1,
204762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
204862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
204962306a36Sopenharmony_ci		},
205062306a36Sopenharmony_ci	},
205162306a36Sopenharmony_ci};
205262306a36Sopenharmony_ci
205362306a36Sopenharmony_cistatic struct clk_branch camss_jpeg_ahb_clk = {
205462306a36Sopenharmony_ci	.halt_reg = 0x35b4,
205562306a36Sopenharmony_ci	.clkr = {
205662306a36Sopenharmony_ci		.enable_reg = 0x35b4,
205762306a36Sopenharmony_ci		.enable_mask = BIT(0),
205862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
205962306a36Sopenharmony_ci			.name = "camss_jpeg_ahb_clk",
206062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &ahb_clk_src.clkr.hw },
206162306a36Sopenharmony_ci			.num_parents = 1,
206262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
206362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
206462306a36Sopenharmony_ci		},
206562306a36Sopenharmony_ci	},
206662306a36Sopenharmony_ci};
206762306a36Sopenharmony_ci
206862306a36Sopenharmony_cistatic struct clk_branch camss_jpeg_axi_clk = {
206962306a36Sopenharmony_ci	.halt_reg = 0x35b8,
207062306a36Sopenharmony_ci	.clkr = {
207162306a36Sopenharmony_ci		.enable_reg = 0x35b8,
207262306a36Sopenharmony_ci		.enable_mask = BIT(0),
207362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
207462306a36Sopenharmony_ci			.name = "camss_jpeg_axi_clk",
207562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &axi_clk_src.clkr.hw },
207662306a36Sopenharmony_ci			.num_parents = 1,
207762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
207862306a36Sopenharmony_ci		},
207962306a36Sopenharmony_ci	},
208062306a36Sopenharmony_ci};
208162306a36Sopenharmony_ci
208262306a36Sopenharmony_cistatic struct clk_branch camss_vfe0_ahb_clk = {
208362306a36Sopenharmony_ci	.halt_reg = 0x3668,
208462306a36Sopenharmony_ci	.clkr = {
208562306a36Sopenharmony_ci		.enable_reg = 0x3668,
208662306a36Sopenharmony_ci		.enable_mask = BIT(0),
208762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
208862306a36Sopenharmony_ci			.name = "camss_vfe0_ahb_clk",
208962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &ahb_clk_src.clkr.hw },
209062306a36Sopenharmony_ci			.num_parents = 1,
209162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
209262306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
209362306a36Sopenharmony_ci		},
209462306a36Sopenharmony_ci	},
209562306a36Sopenharmony_ci};
209662306a36Sopenharmony_ci
209762306a36Sopenharmony_cistatic struct clk_branch camss_vfe1_ahb_clk = {
209862306a36Sopenharmony_ci	.halt_reg = 0x3678,
209962306a36Sopenharmony_ci	.clkr = {
210062306a36Sopenharmony_ci		.enable_reg = 0x3678,
210162306a36Sopenharmony_ci		.enable_mask = BIT(0),
210262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
210362306a36Sopenharmony_ci			.name = "camss_vfe1_ahb_clk",
210462306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &ahb_clk_src.clkr.hw },
210562306a36Sopenharmony_ci			.num_parents = 1,
210662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
210762306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
210862306a36Sopenharmony_ci		},
210962306a36Sopenharmony_ci	},
211062306a36Sopenharmony_ci};
211162306a36Sopenharmony_ci
211262306a36Sopenharmony_cistatic struct clk_branch camss_vfe0_clk = {
211362306a36Sopenharmony_ci	.halt_reg = 0x36a8,
211462306a36Sopenharmony_ci	.clkr = {
211562306a36Sopenharmony_ci		.enable_reg = 0x36a8,
211662306a36Sopenharmony_ci		.enable_mask = BIT(0),
211762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
211862306a36Sopenharmony_ci			.name = "camss_vfe0_clk",
211962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &vfe0_clk_src.clkr.hw },
212062306a36Sopenharmony_ci			.num_parents = 1,
212162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
212262306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
212362306a36Sopenharmony_ci		},
212462306a36Sopenharmony_ci	},
212562306a36Sopenharmony_ci};
212662306a36Sopenharmony_ci
212762306a36Sopenharmony_cistatic struct clk_branch camss_vfe1_clk = {
212862306a36Sopenharmony_ci	.halt_reg = 0x36ac,
212962306a36Sopenharmony_ci	.clkr = {
213062306a36Sopenharmony_ci		.enable_reg = 0x36ac,
213162306a36Sopenharmony_ci		.enable_mask = BIT(0),
213262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
213362306a36Sopenharmony_ci			.name = "camss_vfe1_clk",
213462306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &vfe1_clk_src.clkr.hw },
213562306a36Sopenharmony_ci			.num_parents = 1,
213662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
213762306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
213862306a36Sopenharmony_ci		},
213962306a36Sopenharmony_ci	},
214062306a36Sopenharmony_ci};
214162306a36Sopenharmony_ci
214262306a36Sopenharmony_cistatic struct clk_branch camss_cpp_clk = {
214362306a36Sopenharmony_ci	.halt_reg = 0x36b0,
214462306a36Sopenharmony_ci	.clkr = {
214562306a36Sopenharmony_ci		.enable_reg = 0x36b0,
214662306a36Sopenharmony_ci		.enable_mask = BIT(0),
214762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
214862306a36Sopenharmony_ci			.name = "camss_cpp_clk",
214962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &cpp_clk_src.clkr.hw },
215062306a36Sopenharmony_ci			.num_parents = 1,
215162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
215262306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
215362306a36Sopenharmony_ci		},
215462306a36Sopenharmony_ci	},
215562306a36Sopenharmony_ci};
215662306a36Sopenharmony_ci
215762306a36Sopenharmony_cistatic struct clk_branch camss_cpp_ahb_clk = {
215862306a36Sopenharmony_ci	.halt_reg = 0x36b4,
215962306a36Sopenharmony_ci	.clkr = {
216062306a36Sopenharmony_ci		.enable_reg = 0x36b4,
216162306a36Sopenharmony_ci		.enable_mask = BIT(0),
216262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
216362306a36Sopenharmony_ci			.name = "camss_cpp_ahb_clk",
216462306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &ahb_clk_src.clkr.hw },
216562306a36Sopenharmony_ci			.num_parents = 1,
216662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
216762306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
216862306a36Sopenharmony_ci		},
216962306a36Sopenharmony_ci	},
217062306a36Sopenharmony_ci};
217162306a36Sopenharmony_ci
217262306a36Sopenharmony_cistatic struct clk_branch camss_vfe_vbif_ahb_clk = {
217362306a36Sopenharmony_ci	.halt_reg = 0x36b8,
217462306a36Sopenharmony_ci	.clkr = {
217562306a36Sopenharmony_ci		.enable_reg = 0x36b8,
217662306a36Sopenharmony_ci		.enable_mask = BIT(0),
217762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
217862306a36Sopenharmony_ci			.name = "camss_vfe_vbif_ahb_clk",
217962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &ahb_clk_src.clkr.hw },
218062306a36Sopenharmony_ci			.num_parents = 1,
218162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
218262306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
218362306a36Sopenharmony_ci		},
218462306a36Sopenharmony_ci	},
218562306a36Sopenharmony_ci};
218662306a36Sopenharmony_ci
218762306a36Sopenharmony_cistatic struct clk_branch camss_vfe_vbif_axi_clk = {
218862306a36Sopenharmony_ci	.halt_reg = 0x36bc,
218962306a36Sopenharmony_ci	.clkr = {
219062306a36Sopenharmony_ci		.enable_reg = 0x36bc,
219162306a36Sopenharmony_ci		.enable_mask = BIT(0),
219262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
219362306a36Sopenharmony_ci			.name = "camss_vfe_vbif_axi_clk",
219462306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &axi_clk_src.clkr.hw },
219562306a36Sopenharmony_ci			.num_parents = 1,
219662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
219762306a36Sopenharmony_ci		},
219862306a36Sopenharmony_ci	},
219962306a36Sopenharmony_ci};
220062306a36Sopenharmony_ci
220162306a36Sopenharmony_cistatic struct clk_branch camss_cpp_axi_clk = {
220262306a36Sopenharmony_ci	.halt_reg = 0x36c4,
220362306a36Sopenharmony_ci	.clkr = {
220462306a36Sopenharmony_ci		.enable_reg = 0x36c4,
220562306a36Sopenharmony_ci		.enable_mask = BIT(0),
220662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
220762306a36Sopenharmony_ci			.name = "camss_cpp_axi_clk",
220862306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &axi_clk_src.clkr.hw },
220962306a36Sopenharmony_ci			.num_parents = 1,
221062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
221162306a36Sopenharmony_ci		},
221262306a36Sopenharmony_ci	},
221362306a36Sopenharmony_ci};
221462306a36Sopenharmony_ci
221562306a36Sopenharmony_cistatic struct clk_branch camss_cpp_vbif_ahb_clk = {
221662306a36Sopenharmony_ci	.halt_reg = 0x36c8,
221762306a36Sopenharmony_ci	.clkr = {
221862306a36Sopenharmony_ci		.enable_reg = 0x36c8,
221962306a36Sopenharmony_ci		.enable_mask = BIT(0),
222062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
222162306a36Sopenharmony_ci			.name = "camss_cpp_vbif_ahb_clk",
222262306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &ahb_clk_src.clkr.hw },
222362306a36Sopenharmony_ci			.num_parents = 1,
222462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
222562306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
222662306a36Sopenharmony_ci		},
222762306a36Sopenharmony_ci	},
222862306a36Sopenharmony_ci};
222962306a36Sopenharmony_ci
223062306a36Sopenharmony_cistatic struct clk_branch camss_csi_vfe0_clk = {
223162306a36Sopenharmony_ci	.halt_reg = 0x3704,
223262306a36Sopenharmony_ci	.clkr = {
223362306a36Sopenharmony_ci		.enable_reg = 0x3704,
223462306a36Sopenharmony_ci		.enable_mask = BIT(0),
223562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
223662306a36Sopenharmony_ci			.name = "camss_csi_vfe0_clk",
223762306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &vfe0_clk_src.clkr.hw },
223862306a36Sopenharmony_ci			.num_parents = 1,
223962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
224062306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
224162306a36Sopenharmony_ci		},
224262306a36Sopenharmony_ci	},
224362306a36Sopenharmony_ci};
224462306a36Sopenharmony_ci
224562306a36Sopenharmony_cistatic struct clk_branch camss_csi_vfe1_clk = {
224662306a36Sopenharmony_ci	.halt_reg = 0x3714,
224762306a36Sopenharmony_ci	.clkr = {
224862306a36Sopenharmony_ci		.enable_reg = 0x3714,
224962306a36Sopenharmony_ci		.enable_mask = BIT(0),
225062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
225162306a36Sopenharmony_ci			.name = "camss_csi_vfe1_clk",
225262306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &vfe1_clk_src.clkr.hw },
225362306a36Sopenharmony_ci			.num_parents = 1,
225462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
225562306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
225662306a36Sopenharmony_ci		},
225762306a36Sopenharmony_ci	},
225862306a36Sopenharmony_ci};
225962306a36Sopenharmony_ci
226062306a36Sopenharmony_cistatic struct clk_branch camss_vfe0_stream_clk = {
226162306a36Sopenharmony_ci	.halt_reg = 0x3720,
226262306a36Sopenharmony_ci	.clkr = {
226362306a36Sopenharmony_ci		.enable_reg = 0x3720,
226462306a36Sopenharmony_ci		.enable_mask = BIT(0),
226562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
226662306a36Sopenharmony_ci			.name = "camss_vfe0_stream_clk",
226762306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &vfe0_clk_src.clkr.hw },
226862306a36Sopenharmony_ci			.num_parents = 1,
226962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
227062306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
227162306a36Sopenharmony_ci		},
227262306a36Sopenharmony_ci	},
227362306a36Sopenharmony_ci};
227462306a36Sopenharmony_ci
227562306a36Sopenharmony_cistatic struct clk_branch camss_vfe1_stream_clk = {
227662306a36Sopenharmony_ci	.halt_reg = 0x3724,
227762306a36Sopenharmony_ci	.clkr = {
227862306a36Sopenharmony_ci		.enable_reg = 0x3724,
227962306a36Sopenharmony_ci		.enable_mask = BIT(0),
228062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
228162306a36Sopenharmony_ci			.name = "camss_vfe1_stream_clk",
228262306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &vfe1_clk_src.clkr.hw },
228362306a36Sopenharmony_ci			.num_parents = 1,
228462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
228562306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
228662306a36Sopenharmony_ci		},
228762306a36Sopenharmony_ci	},
228862306a36Sopenharmony_ci};
228962306a36Sopenharmony_ci
229062306a36Sopenharmony_cistatic struct clk_branch camss_cphy_csid0_clk = {
229162306a36Sopenharmony_ci	.halt_reg = 0x3730,
229262306a36Sopenharmony_ci	.clkr = {
229362306a36Sopenharmony_ci		.enable_reg = 0x3730,
229462306a36Sopenharmony_ci		.enable_mask = BIT(0),
229562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
229662306a36Sopenharmony_ci			.name = "camss_cphy_csid0_clk",
229762306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &csiphy_clk_src.clkr.hw },
229862306a36Sopenharmony_ci			.num_parents = 1,
229962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
230062306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
230162306a36Sopenharmony_ci		},
230262306a36Sopenharmony_ci	},
230362306a36Sopenharmony_ci};
230462306a36Sopenharmony_ci
230562306a36Sopenharmony_cistatic struct clk_branch camss_cphy_csid1_clk = {
230662306a36Sopenharmony_ci	.halt_reg = 0x3734,
230762306a36Sopenharmony_ci	.clkr = {
230862306a36Sopenharmony_ci		.enable_reg = 0x3734,
230962306a36Sopenharmony_ci		.enable_mask = BIT(0),
231062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
231162306a36Sopenharmony_ci			.name = "camss_cphy_csid1_clk",
231262306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &csiphy_clk_src.clkr.hw },
231362306a36Sopenharmony_ci			.num_parents = 1,
231462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
231562306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
231662306a36Sopenharmony_ci		},
231762306a36Sopenharmony_ci	},
231862306a36Sopenharmony_ci};
231962306a36Sopenharmony_ci
232062306a36Sopenharmony_cistatic struct clk_branch camss_cphy_csid2_clk = {
232162306a36Sopenharmony_ci	.halt_reg = 0x3738,
232262306a36Sopenharmony_ci	.clkr = {
232362306a36Sopenharmony_ci		.enable_reg = 0x3738,
232462306a36Sopenharmony_ci		.enable_mask = BIT(0),
232562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
232662306a36Sopenharmony_ci			.name = "camss_cphy_csid2_clk",
232762306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &csiphy_clk_src.clkr.hw },
232862306a36Sopenharmony_ci			.num_parents = 1,
232962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
233062306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
233162306a36Sopenharmony_ci		},
233262306a36Sopenharmony_ci	},
233362306a36Sopenharmony_ci};
233462306a36Sopenharmony_ci
233562306a36Sopenharmony_cistatic struct clk_branch camss_cphy_csid3_clk = {
233662306a36Sopenharmony_ci	.halt_reg = 0x373c,
233762306a36Sopenharmony_ci	.clkr = {
233862306a36Sopenharmony_ci		.enable_reg = 0x373c,
233962306a36Sopenharmony_ci		.enable_mask = BIT(0),
234062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
234162306a36Sopenharmony_ci			.name = "camss_cphy_csid3_clk",
234262306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &csiphy_clk_src.clkr.hw },
234362306a36Sopenharmony_ci			.num_parents = 1,
234462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
234562306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
234662306a36Sopenharmony_ci		},
234762306a36Sopenharmony_ci	},
234862306a36Sopenharmony_ci};
234962306a36Sopenharmony_ci
235062306a36Sopenharmony_cistatic struct clk_branch camss_csiphy0_clk = {
235162306a36Sopenharmony_ci	.halt_reg = 0x3740,
235262306a36Sopenharmony_ci	.clkr = {
235362306a36Sopenharmony_ci		.enable_reg = 0x3740,
235462306a36Sopenharmony_ci		.enable_mask = BIT(0),
235562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
235662306a36Sopenharmony_ci			.name = "camss_csiphy0_clk",
235762306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &csiphy_clk_src.clkr.hw },
235862306a36Sopenharmony_ci			.num_parents = 1,
235962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
236062306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
236162306a36Sopenharmony_ci		},
236262306a36Sopenharmony_ci	},
236362306a36Sopenharmony_ci};
236462306a36Sopenharmony_ci
236562306a36Sopenharmony_cistatic struct clk_branch camss_csiphy1_clk = {
236662306a36Sopenharmony_ci	.halt_reg = 0x3744,
236762306a36Sopenharmony_ci	.clkr = {
236862306a36Sopenharmony_ci		.enable_reg = 0x3744,
236962306a36Sopenharmony_ci		.enable_mask = BIT(0),
237062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
237162306a36Sopenharmony_ci			.name = "camss_csiphy1_clk",
237262306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &csiphy_clk_src.clkr.hw },
237362306a36Sopenharmony_ci			.num_parents = 1,
237462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
237562306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
237662306a36Sopenharmony_ci		},
237762306a36Sopenharmony_ci	},
237862306a36Sopenharmony_ci};
237962306a36Sopenharmony_ci
238062306a36Sopenharmony_cistatic struct clk_branch camss_csiphy2_clk = {
238162306a36Sopenharmony_ci	.halt_reg = 0x3748,
238262306a36Sopenharmony_ci	.clkr = {
238362306a36Sopenharmony_ci		.enable_reg = 0x3748,
238462306a36Sopenharmony_ci		.enable_mask = BIT(0),
238562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
238662306a36Sopenharmony_ci			.name = "camss_csiphy2_clk",
238762306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &csiphy_clk_src.clkr.hw },
238862306a36Sopenharmony_ci			.num_parents = 1,
238962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
239062306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
239162306a36Sopenharmony_ci		},
239262306a36Sopenharmony_ci	},
239362306a36Sopenharmony_ci};
239462306a36Sopenharmony_ci
239562306a36Sopenharmony_cistatic struct clk_branch fd_core_clk = {
239662306a36Sopenharmony_ci	.halt_reg = 0x3b68,
239762306a36Sopenharmony_ci	.clkr = {
239862306a36Sopenharmony_ci		.enable_reg = 0x3b68,
239962306a36Sopenharmony_ci		.enable_mask = BIT(0),
240062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
240162306a36Sopenharmony_ci			.name = "fd_core_clk",
240262306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &fd_core_clk_src.clkr.hw },
240362306a36Sopenharmony_ci			.num_parents = 1,
240462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
240562306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
240662306a36Sopenharmony_ci		},
240762306a36Sopenharmony_ci	},
240862306a36Sopenharmony_ci};
240962306a36Sopenharmony_ci
241062306a36Sopenharmony_cistatic struct clk_branch fd_core_uar_clk = {
241162306a36Sopenharmony_ci	.halt_reg = 0x3b6c,
241262306a36Sopenharmony_ci	.clkr = {
241362306a36Sopenharmony_ci		.enable_reg = 0x3b6c,
241462306a36Sopenharmony_ci		.enable_mask = BIT(0),
241562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
241662306a36Sopenharmony_ci			.name = "fd_core_uar_clk",
241762306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &fd_core_clk_src.clkr.hw },
241862306a36Sopenharmony_ci			.num_parents = 1,
241962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
242062306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
242162306a36Sopenharmony_ci		},
242262306a36Sopenharmony_ci	},
242362306a36Sopenharmony_ci};
242462306a36Sopenharmony_ci
242562306a36Sopenharmony_cistatic struct clk_branch fd_ahb_clk = {
242662306a36Sopenharmony_ci	.halt_reg = 0x3b74,
242762306a36Sopenharmony_ci	.clkr = {
242862306a36Sopenharmony_ci		.enable_reg = 0x3b74,
242962306a36Sopenharmony_ci		.enable_mask = BIT(0),
243062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
243162306a36Sopenharmony_ci			.name = "fd_ahb_clk",
243262306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &ahb_clk_src.clkr.hw },
243362306a36Sopenharmony_ci			.num_parents = 1,
243462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
243562306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
243662306a36Sopenharmony_ci		},
243762306a36Sopenharmony_ci	},
243862306a36Sopenharmony_ci};
243962306a36Sopenharmony_ci
244062306a36Sopenharmony_cistatic struct clk_branch mnoc_ahb_clk = {
244162306a36Sopenharmony_ci	.halt_reg = 0x5024,
244262306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_SKIP,
244362306a36Sopenharmony_ci	.clkr = {
244462306a36Sopenharmony_ci		.enable_reg = 0x5024,
244562306a36Sopenharmony_ci		.enable_mask = BIT(0),
244662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
244762306a36Sopenharmony_ci			.name = "mnoc_ahb_clk",
244862306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &ahb_clk_src.clkr.hw },
244962306a36Sopenharmony_ci			.num_parents = 1,
245062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
245162306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
245262306a36Sopenharmony_ci		},
245362306a36Sopenharmony_ci	},
245462306a36Sopenharmony_ci};
245562306a36Sopenharmony_ci
245662306a36Sopenharmony_cistatic struct clk_branch bimc_smmu_ahb_clk = {
245762306a36Sopenharmony_ci	.halt_reg = 0xe004,
245862306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_SKIP,
245962306a36Sopenharmony_ci	.hwcg_reg = 0xe004,
246062306a36Sopenharmony_ci	.hwcg_bit = 1,
246162306a36Sopenharmony_ci	.clkr = {
246262306a36Sopenharmony_ci		.enable_reg = 0xe004,
246362306a36Sopenharmony_ci		.enable_mask = BIT(0),
246462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
246562306a36Sopenharmony_ci			.name = "bimc_smmu_ahb_clk",
246662306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &ahb_clk_src.clkr.hw },
246762306a36Sopenharmony_ci			.num_parents = 1,
246862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
246962306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
247062306a36Sopenharmony_ci		},
247162306a36Sopenharmony_ci	},
247262306a36Sopenharmony_ci};
247362306a36Sopenharmony_ci
247462306a36Sopenharmony_cistatic struct clk_branch bimc_smmu_axi_clk = {
247562306a36Sopenharmony_ci	.halt_reg = 0xe008,
247662306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_SKIP,
247762306a36Sopenharmony_ci	.hwcg_reg = 0xe008,
247862306a36Sopenharmony_ci	.hwcg_bit = 1,
247962306a36Sopenharmony_ci	.clkr = {
248062306a36Sopenharmony_ci		.enable_reg = 0xe008,
248162306a36Sopenharmony_ci		.enable_mask = BIT(0),
248262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
248362306a36Sopenharmony_ci			.name = "bimc_smmu_axi_clk",
248462306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &axi_clk_src.clkr.hw },
248562306a36Sopenharmony_ci			.num_parents = 1,
248662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
248762306a36Sopenharmony_ci		},
248862306a36Sopenharmony_ci	},
248962306a36Sopenharmony_ci};
249062306a36Sopenharmony_ci
249162306a36Sopenharmony_cistatic struct clk_branch mnoc_maxi_clk = {
249262306a36Sopenharmony_ci	.halt_reg = 0xf004,
249362306a36Sopenharmony_ci	.clkr = {
249462306a36Sopenharmony_ci		.enable_reg = 0xf004,
249562306a36Sopenharmony_ci		.enable_mask = BIT(0),
249662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
249762306a36Sopenharmony_ci			.name = "mnoc_maxi_clk",
249862306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &maxi_clk_src.clkr.hw },
249962306a36Sopenharmony_ci			.num_parents = 1,
250062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
250162306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
250262306a36Sopenharmony_ci		},
250362306a36Sopenharmony_ci	},
250462306a36Sopenharmony_ci};
250562306a36Sopenharmony_ci
250662306a36Sopenharmony_cistatic struct clk_branch vmem_maxi_clk = {
250762306a36Sopenharmony_ci	.halt_reg = 0xf064,
250862306a36Sopenharmony_ci	.clkr = {
250962306a36Sopenharmony_ci		.enable_reg = 0xf064,
251062306a36Sopenharmony_ci		.enable_mask = BIT(0),
251162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
251262306a36Sopenharmony_ci			.name = "vmem_maxi_clk",
251362306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &maxi_clk_src.clkr.hw },
251462306a36Sopenharmony_ci			.num_parents = 1,
251562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
251662306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
251762306a36Sopenharmony_ci		},
251862306a36Sopenharmony_ci	},
251962306a36Sopenharmony_ci};
252062306a36Sopenharmony_ci
252162306a36Sopenharmony_cistatic struct clk_branch vmem_ahb_clk = {
252262306a36Sopenharmony_ci	.halt_reg = 0xf068,
252362306a36Sopenharmony_ci	.clkr = {
252462306a36Sopenharmony_ci		.enable_reg = 0xf068,
252562306a36Sopenharmony_ci		.enable_mask = BIT(0),
252662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
252762306a36Sopenharmony_ci			.name = "vmem_ahb_clk",
252862306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw *[]){ &ahb_clk_src.clkr.hw },
252962306a36Sopenharmony_ci			.num_parents = 1,
253062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
253162306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
253262306a36Sopenharmony_ci		},
253362306a36Sopenharmony_ci	},
253462306a36Sopenharmony_ci};
253562306a36Sopenharmony_ci
253662306a36Sopenharmony_cistatic struct gdsc video_top_gdsc = {
253762306a36Sopenharmony_ci	.gdscr = 0x1024,
253862306a36Sopenharmony_ci	.pd = {
253962306a36Sopenharmony_ci		.name = "video_top",
254062306a36Sopenharmony_ci	},
254162306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
254262306a36Sopenharmony_ci};
254362306a36Sopenharmony_ci
254462306a36Sopenharmony_cistatic struct gdsc video_subcore0_gdsc = {
254562306a36Sopenharmony_ci	.gdscr = 0x1040,
254662306a36Sopenharmony_ci	.pd = {
254762306a36Sopenharmony_ci		.name = "video_subcore0",
254862306a36Sopenharmony_ci	},
254962306a36Sopenharmony_ci	.parent = &video_top_gdsc.pd,
255062306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
255162306a36Sopenharmony_ci};
255262306a36Sopenharmony_ci
255362306a36Sopenharmony_cistatic struct gdsc video_subcore1_gdsc = {
255462306a36Sopenharmony_ci	.gdscr = 0x1044,
255562306a36Sopenharmony_ci	.pd = {
255662306a36Sopenharmony_ci		.name = "video_subcore1",
255762306a36Sopenharmony_ci	},
255862306a36Sopenharmony_ci	.parent = &video_top_gdsc.pd,
255962306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
256062306a36Sopenharmony_ci};
256162306a36Sopenharmony_ci
256262306a36Sopenharmony_cistatic struct gdsc mdss_gdsc = {
256362306a36Sopenharmony_ci	.gdscr = 0x2304,
256462306a36Sopenharmony_ci	.cxcs = (unsigned int []){ 0x2310, 0x2350, 0x231c, 0x2320 },
256562306a36Sopenharmony_ci	.cxc_count = 4,
256662306a36Sopenharmony_ci	.pd = {
256762306a36Sopenharmony_ci		.name = "mdss",
256862306a36Sopenharmony_ci	},
256962306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
257062306a36Sopenharmony_ci};
257162306a36Sopenharmony_ci
257262306a36Sopenharmony_cistatic struct gdsc camss_top_gdsc = {
257362306a36Sopenharmony_ci	.gdscr = 0x34a0,
257462306a36Sopenharmony_ci	.cxcs = (unsigned int []){ 0x35b8, 0x36c4, 0x3704, 0x3714, 0x3494,
257562306a36Sopenharmony_ci				   0x35a8, 0x3868 },
257662306a36Sopenharmony_ci	.cxc_count = 7,
257762306a36Sopenharmony_ci	.pd = {
257862306a36Sopenharmony_ci		.name = "camss_top",
257962306a36Sopenharmony_ci	},
258062306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
258162306a36Sopenharmony_ci};
258262306a36Sopenharmony_ci
258362306a36Sopenharmony_cistatic struct gdsc camss_vfe0_gdsc = {
258462306a36Sopenharmony_ci	.gdscr = 0x3664,
258562306a36Sopenharmony_ci	.pd = {
258662306a36Sopenharmony_ci		.name = "camss_vfe0",
258762306a36Sopenharmony_ci	},
258862306a36Sopenharmony_ci	.parent = &camss_top_gdsc.pd,
258962306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
259062306a36Sopenharmony_ci};
259162306a36Sopenharmony_ci
259262306a36Sopenharmony_cistatic struct gdsc camss_vfe1_gdsc = {
259362306a36Sopenharmony_ci	.gdscr = 0x3674,
259462306a36Sopenharmony_ci	.pd = {
259562306a36Sopenharmony_ci		.name = "camss_vfe1_gdsc",
259662306a36Sopenharmony_ci	},
259762306a36Sopenharmony_ci	.parent = &camss_top_gdsc.pd,
259862306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
259962306a36Sopenharmony_ci};
260062306a36Sopenharmony_ci
260162306a36Sopenharmony_cistatic struct gdsc camss_cpp_gdsc = {
260262306a36Sopenharmony_ci	.gdscr = 0x36d4,
260362306a36Sopenharmony_ci	.pd = {
260462306a36Sopenharmony_ci		.name = "camss_cpp",
260562306a36Sopenharmony_ci	},
260662306a36Sopenharmony_ci	.parent = &camss_top_gdsc.pd,
260762306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
260862306a36Sopenharmony_ci};
260962306a36Sopenharmony_ci
261062306a36Sopenharmony_cistatic struct gdsc bimc_smmu_gdsc = {
261162306a36Sopenharmony_ci	.gdscr = 0xe020,
261262306a36Sopenharmony_ci	.gds_hw_ctrl = 0xe024,
261362306a36Sopenharmony_ci	.cxcs = (unsigned int []){ 0xe008 },
261462306a36Sopenharmony_ci	.cxc_count = 1,
261562306a36Sopenharmony_ci	.pd = {
261662306a36Sopenharmony_ci		.name = "bimc_smmu",
261762306a36Sopenharmony_ci	},
261862306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
261962306a36Sopenharmony_ci	.flags = VOTABLE,
262062306a36Sopenharmony_ci};
262162306a36Sopenharmony_ci
262262306a36Sopenharmony_cistatic struct clk_regmap *mmcc_msm8998_clocks[] = {
262362306a36Sopenharmony_ci	[MMPLL0] = &mmpll0.clkr,
262462306a36Sopenharmony_ci	[MMPLL0_OUT_EVEN] = &mmpll0_out_even.clkr,
262562306a36Sopenharmony_ci	[MMPLL1] = &mmpll1.clkr,
262662306a36Sopenharmony_ci	[MMPLL1_OUT_EVEN] = &mmpll1_out_even.clkr,
262762306a36Sopenharmony_ci	[MMPLL3] = &mmpll3.clkr,
262862306a36Sopenharmony_ci	[MMPLL3_OUT_EVEN] = &mmpll3_out_even.clkr,
262962306a36Sopenharmony_ci	[MMPLL4] = &mmpll4.clkr,
263062306a36Sopenharmony_ci	[MMPLL4_OUT_EVEN] = &mmpll4_out_even.clkr,
263162306a36Sopenharmony_ci	[MMPLL5] = &mmpll5.clkr,
263262306a36Sopenharmony_ci	[MMPLL5_OUT_EVEN] = &mmpll5_out_even.clkr,
263362306a36Sopenharmony_ci	[MMPLL6] = &mmpll6.clkr,
263462306a36Sopenharmony_ci	[MMPLL6_OUT_EVEN] = &mmpll6_out_even.clkr,
263562306a36Sopenharmony_ci	[MMPLL7] = &mmpll7.clkr,
263662306a36Sopenharmony_ci	[MMPLL7_OUT_EVEN] = &mmpll7_out_even.clkr,
263762306a36Sopenharmony_ci	[MMPLL10] = &mmpll10.clkr,
263862306a36Sopenharmony_ci	[MMPLL10_OUT_EVEN] = &mmpll10_out_even.clkr,
263962306a36Sopenharmony_ci	[BYTE0_CLK_SRC] = &byte0_clk_src.clkr,
264062306a36Sopenharmony_ci	[BYTE1_CLK_SRC] = &byte1_clk_src.clkr,
264162306a36Sopenharmony_ci	[CCI_CLK_SRC] = &cci_clk_src.clkr,
264262306a36Sopenharmony_ci	[CPP_CLK_SRC] = &cpp_clk_src.clkr,
264362306a36Sopenharmony_ci	[CSI0_CLK_SRC] = &csi0_clk_src.clkr,
264462306a36Sopenharmony_ci	[CSI1_CLK_SRC] = &csi1_clk_src.clkr,
264562306a36Sopenharmony_ci	[CSI2_CLK_SRC] = &csi2_clk_src.clkr,
264662306a36Sopenharmony_ci	[CSI3_CLK_SRC] = &csi3_clk_src.clkr,
264762306a36Sopenharmony_ci	[CSIPHY_CLK_SRC] = &csiphy_clk_src.clkr,
264862306a36Sopenharmony_ci	[CSI0PHYTIMER_CLK_SRC] = &csi0phytimer_clk_src.clkr,
264962306a36Sopenharmony_ci	[CSI1PHYTIMER_CLK_SRC] = &csi1phytimer_clk_src.clkr,
265062306a36Sopenharmony_ci	[CSI2PHYTIMER_CLK_SRC] = &csi2phytimer_clk_src.clkr,
265162306a36Sopenharmony_ci	[DP_AUX_CLK_SRC] = &dp_aux_clk_src.clkr,
265262306a36Sopenharmony_ci	[DP_CRYPTO_CLK_SRC] = &dp_crypto_clk_src.clkr,
265362306a36Sopenharmony_ci	[DP_LINK_CLK_SRC] = &dp_link_clk_src.clkr,
265462306a36Sopenharmony_ci	[DP_PIXEL_CLK_SRC] = &dp_pixel_clk_src.clkr,
265562306a36Sopenharmony_ci	[ESC0_CLK_SRC] = &esc0_clk_src.clkr,
265662306a36Sopenharmony_ci	[ESC1_CLK_SRC] = &esc1_clk_src.clkr,
265762306a36Sopenharmony_ci	[EXTPCLK_CLK_SRC] = &extpclk_clk_src.clkr,
265862306a36Sopenharmony_ci	[FD_CORE_CLK_SRC] = &fd_core_clk_src.clkr,
265962306a36Sopenharmony_ci	[HDMI_CLK_SRC] = &hdmi_clk_src.clkr,
266062306a36Sopenharmony_ci	[JPEG0_CLK_SRC] = &jpeg0_clk_src.clkr,
266162306a36Sopenharmony_ci	[MAXI_CLK_SRC] = &maxi_clk_src.clkr,
266262306a36Sopenharmony_ci	[MCLK0_CLK_SRC] = &mclk0_clk_src.clkr,
266362306a36Sopenharmony_ci	[MCLK1_CLK_SRC] = &mclk1_clk_src.clkr,
266462306a36Sopenharmony_ci	[MCLK2_CLK_SRC] = &mclk2_clk_src.clkr,
266562306a36Sopenharmony_ci	[MCLK3_CLK_SRC] = &mclk3_clk_src.clkr,
266662306a36Sopenharmony_ci	[MDP_CLK_SRC] = &mdp_clk_src.clkr,
266762306a36Sopenharmony_ci	[VSYNC_CLK_SRC] = &vsync_clk_src.clkr,
266862306a36Sopenharmony_ci	[AHB_CLK_SRC] = &ahb_clk_src.clkr,
266962306a36Sopenharmony_ci	[AXI_CLK_SRC] = &axi_clk_src.clkr,
267062306a36Sopenharmony_ci	[PCLK0_CLK_SRC] = &pclk0_clk_src.clkr,
267162306a36Sopenharmony_ci	[PCLK1_CLK_SRC] = &pclk1_clk_src.clkr,
267262306a36Sopenharmony_ci	[ROT_CLK_SRC] = &rot_clk_src.clkr,
267362306a36Sopenharmony_ci	[VIDEO_CORE_CLK_SRC] = &video_core_clk_src.clkr,
267462306a36Sopenharmony_ci	[VIDEO_SUBCORE0_CLK_SRC] = &video_subcore0_clk_src.clkr,
267562306a36Sopenharmony_ci	[VIDEO_SUBCORE1_CLK_SRC] = &video_subcore1_clk_src.clkr,
267662306a36Sopenharmony_ci	[VFE0_CLK_SRC] = &vfe0_clk_src.clkr,
267762306a36Sopenharmony_ci	[VFE1_CLK_SRC] = &vfe1_clk_src.clkr,
267862306a36Sopenharmony_ci	[MISC_AHB_CLK] = &misc_ahb_clk.clkr,
267962306a36Sopenharmony_ci	[VIDEO_CORE_CLK] = &video_core_clk.clkr,
268062306a36Sopenharmony_ci	[VIDEO_AHB_CLK] = &video_ahb_clk.clkr,
268162306a36Sopenharmony_ci	[VIDEO_AXI_CLK] = &video_axi_clk.clkr,
268262306a36Sopenharmony_ci	[VIDEO_MAXI_CLK] = &video_maxi_clk.clkr,
268362306a36Sopenharmony_ci	[VIDEO_SUBCORE0_CLK] = &video_subcore0_clk.clkr,
268462306a36Sopenharmony_ci	[VIDEO_SUBCORE1_CLK] = &video_subcore1_clk.clkr,
268562306a36Sopenharmony_ci	[MDSS_AHB_CLK] = &mdss_ahb_clk.clkr,
268662306a36Sopenharmony_ci	[MDSS_HDMI_DP_AHB_CLK] = &mdss_hdmi_dp_ahb_clk.clkr,
268762306a36Sopenharmony_ci	[MDSS_AXI_CLK] = &mdss_axi_clk.clkr,
268862306a36Sopenharmony_ci	[MDSS_PCLK0_CLK] = &mdss_pclk0_clk.clkr,
268962306a36Sopenharmony_ci	[MDSS_PCLK1_CLK] = &mdss_pclk1_clk.clkr,
269062306a36Sopenharmony_ci	[MDSS_MDP_CLK] = &mdss_mdp_clk.clkr,
269162306a36Sopenharmony_ci	[MDSS_MDP_LUT_CLK] = &mdss_mdp_lut_clk.clkr,
269262306a36Sopenharmony_ci	[MDSS_EXTPCLK_CLK] = &mdss_extpclk_clk.clkr,
269362306a36Sopenharmony_ci	[MDSS_VSYNC_CLK] = &mdss_vsync_clk.clkr,
269462306a36Sopenharmony_ci	[MDSS_HDMI_CLK] = &mdss_hdmi_clk.clkr,
269562306a36Sopenharmony_ci	[MDSS_BYTE0_CLK] = &mdss_byte0_clk.clkr,
269662306a36Sopenharmony_ci	[MDSS_BYTE1_CLK] = &mdss_byte1_clk.clkr,
269762306a36Sopenharmony_ci	[MDSS_ESC0_CLK] = &mdss_esc0_clk.clkr,
269862306a36Sopenharmony_ci	[MDSS_ESC1_CLK] = &mdss_esc1_clk.clkr,
269962306a36Sopenharmony_ci	[MDSS_ROT_CLK] = &mdss_rot_clk.clkr,
270062306a36Sopenharmony_ci	[MDSS_DP_LINK_CLK] = &mdss_dp_link_clk.clkr,
270162306a36Sopenharmony_ci	[MDSS_DP_LINK_INTF_CLK] = &mdss_dp_link_intf_clk.clkr,
270262306a36Sopenharmony_ci	[MDSS_DP_CRYPTO_CLK] = &mdss_dp_crypto_clk.clkr,
270362306a36Sopenharmony_ci	[MDSS_DP_PIXEL_CLK] = &mdss_dp_pixel_clk.clkr,
270462306a36Sopenharmony_ci	[MDSS_DP_AUX_CLK] = &mdss_dp_aux_clk.clkr,
270562306a36Sopenharmony_ci	[MDSS_BYTE0_INTF_CLK] = &mdss_byte0_intf_clk.clkr,
270662306a36Sopenharmony_ci	[MDSS_BYTE1_INTF_CLK] = &mdss_byte1_intf_clk.clkr,
270762306a36Sopenharmony_ci	[CAMSS_CSI0PHYTIMER_CLK] = &camss_csi0phytimer_clk.clkr,
270862306a36Sopenharmony_ci	[CAMSS_CSI1PHYTIMER_CLK] = &camss_csi1phytimer_clk.clkr,
270962306a36Sopenharmony_ci	[CAMSS_CSI2PHYTIMER_CLK] = &camss_csi2phytimer_clk.clkr,
271062306a36Sopenharmony_ci	[CAMSS_CSI0_CLK] = &camss_csi0_clk.clkr,
271162306a36Sopenharmony_ci	[CAMSS_CSI0_AHB_CLK] = &camss_csi0_ahb_clk.clkr,
271262306a36Sopenharmony_ci	[CAMSS_CSI0RDI_CLK] = &camss_csi0rdi_clk.clkr,
271362306a36Sopenharmony_ci	[CAMSS_CSI0PIX_CLK] = &camss_csi0pix_clk.clkr,
271462306a36Sopenharmony_ci	[CAMSS_CSI1_CLK] = &camss_csi1_clk.clkr,
271562306a36Sopenharmony_ci	[CAMSS_CSI1_AHB_CLK] = &camss_csi1_ahb_clk.clkr,
271662306a36Sopenharmony_ci	[CAMSS_CSI1RDI_CLK] = &camss_csi1rdi_clk.clkr,
271762306a36Sopenharmony_ci	[CAMSS_CSI1PIX_CLK] = &camss_csi1pix_clk.clkr,
271862306a36Sopenharmony_ci	[CAMSS_CSI2_CLK] = &camss_csi2_clk.clkr,
271962306a36Sopenharmony_ci	[CAMSS_CSI2_AHB_CLK] = &camss_csi2_ahb_clk.clkr,
272062306a36Sopenharmony_ci	[CAMSS_CSI2RDI_CLK] = &camss_csi2rdi_clk.clkr,
272162306a36Sopenharmony_ci	[CAMSS_CSI2PIX_CLK] = &camss_csi2pix_clk.clkr,
272262306a36Sopenharmony_ci	[CAMSS_CSI3_CLK] = &camss_csi3_clk.clkr,
272362306a36Sopenharmony_ci	[CAMSS_CSI3_AHB_CLK] = &camss_csi3_ahb_clk.clkr,
272462306a36Sopenharmony_ci	[CAMSS_CSI3RDI_CLK] = &camss_csi3rdi_clk.clkr,
272562306a36Sopenharmony_ci	[CAMSS_CSI3PIX_CLK] = &camss_csi3pix_clk.clkr,
272662306a36Sopenharmony_ci	[CAMSS_ISPIF_AHB_CLK] = &camss_ispif_ahb_clk.clkr,
272762306a36Sopenharmony_ci	[CAMSS_CCI_CLK] = &camss_cci_clk.clkr,
272862306a36Sopenharmony_ci	[CAMSS_CCI_AHB_CLK] = &camss_cci_ahb_clk.clkr,
272962306a36Sopenharmony_ci	[CAMSS_MCLK0_CLK] = &camss_mclk0_clk.clkr,
273062306a36Sopenharmony_ci	[CAMSS_MCLK1_CLK] = &camss_mclk1_clk.clkr,
273162306a36Sopenharmony_ci	[CAMSS_MCLK2_CLK] = &camss_mclk2_clk.clkr,
273262306a36Sopenharmony_ci	[CAMSS_MCLK3_CLK] = &camss_mclk3_clk.clkr,
273362306a36Sopenharmony_ci	[CAMSS_TOP_AHB_CLK] = &camss_top_ahb_clk.clkr,
273462306a36Sopenharmony_ci	[CAMSS_AHB_CLK] = &camss_ahb_clk.clkr,
273562306a36Sopenharmony_ci	[CAMSS_MICRO_AHB_CLK] = &camss_micro_ahb_clk.clkr,
273662306a36Sopenharmony_ci	[CAMSS_JPEG0_CLK] = &camss_jpeg0_clk.clkr,
273762306a36Sopenharmony_ci	[CAMSS_JPEG_AHB_CLK] = &camss_jpeg_ahb_clk.clkr,
273862306a36Sopenharmony_ci	[CAMSS_JPEG_AXI_CLK] = &camss_jpeg_axi_clk.clkr,
273962306a36Sopenharmony_ci	[CAMSS_VFE0_AHB_CLK] = &camss_vfe0_ahb_clk.clkr,
274062306a36Sopenharmony_ci	[CAMSS_VFE1_AHB_CLK] = &camss_vfe1_ahb_clk.clkr,
274162306a36Sopenharmony_ci	[CAMSS_VFE0_CLK] = &camss_vfe0_clk.clkr,
274262306a36Sopenharmony_ci	[CAMSS_VFE1_CLK] = &camss_vfe1_clk.clkr,
274362306a36Sopenharmony_ci	[CAMSS_CPP_CLK] = &camss_cpp_clk.clkr,
274462306a36Sopenharmony_ci	[CAMSS_CPP_AHB_CLK] = &camss_cpp_ahb_clk.clkr,
274562306a36Sopenharmony_ci	[CAMSS_VFE_VBIF_AHB_CLK] = &camss_vfe_vbif_ahb_clk.clkr,
274662306a36Sopenharmony_ci	[CAMSS_VFE_VBIF_AXI_CLK] = &camss_vfe_vbif_axi_clk.clkr,
274762306a36Sopenharmony_ci	[CAMSS_CPP_AXI_CLK] = &camss_cpp_axi_clk.clkr,
274862306a36Sopenharmony_ci	[CAMSS_CPP_VBIF_AHB_CLK] = &camss_cpp_vbif_ahb_clk.clkr,
274962306a36Sopenharmony_ci	[CAMSS_CSI_VFE0_CLK] = &camss_csi_vfe0_clk.clkr,
275062306a36Sopenharmony_ci	[CAMSS_CSI_VFE1_CLK] = &camss_csi_vfe1_clk.clkr,
275162306a36Sopenharmony_ci	[CAMSS_VFE0_STREAM_CLK] = &camss_vfe0_stream_clk.clkr,
275262306a36Sopenharmony_ci	[CAMSS_VFE1_STREAM_CLK] = &camss_vfe1_stream_clk.clkr,
275362306a36Sopenharmony_ci	[CAMSS_CPHY_CSID0_CLK] = &camss_cphy_csid0_clk.clkr,
275462306a36Sopenharmony_ci	[CAMSS_CPHY_CSID1_CLK] = &camss_cphy_csid1_clk.clkr,
275562306a36Sopenharmony_ci	[CAMSS_CPHY_CSID2_CLK] = &camss_cphy_csid2_clk.clkr,
275662306a36Sopenharmony_ci	[CAMSS_CPHY_CSID3_CLK] = &camss_cphy_csid3_clk.clkr,
275762306a36Sopenharmony_ci	[CAMSS_CSIPHY0_CLK] = &camss_csiphy0_clk.clkr,
275862306a36Sopenharmony_ci	[CAMSS_CSIPHY1_CLK] = &camss_csiphy1_clk.clkr,
275962306a36Sopenharmony_ci	[CAMSS_CSIPHY2_CLK] = &camss_csiphy2_clk.clkr,
276062306a36Sopenharmony_ci	[FD_CORE_CLK] = &fd_core_clk.clkr,
276162306a36Sopenharmony_ci	[FD_CORE_UAR_CLK] = &fd_core_uar_clk.clkr,
276262306a36Sopenharmony_ci	[FD_AHB_CLK] = &fd_ahb_clk.clkr,
276362306a36Sopenharmony_ci	[MNOC_AHB_CLK] = &mnoc_ahb_clk.clkr,
276462306a36Sopenharmony_ci	[BIMC_SMMU_AHB_CLK] = &bimc_smmu_ahb_clk.clkr,
276562306a36Sopenharmony_ci	[BIMC_SMMU_AXI_CLK] = &bimc_smmu_axi_clk.clkr,
276662306a36Sopenharmony_ci	[MNOC_MAXI_CLK] = &mnoc_maxi_clk.clkr,
276762306a36Sopenharmony_ci	[VMEM_MAXI_CLK] = &vmem_maxi_clk.clkr,
276862306a36Sopenharmony_ci	[VMEM_AHB_CLK] = &vmem_ahb_clk.clkr,
276962306a36Sopenharmony_ci};
277062306a36Sopenharmony_ci
277162306a36Sopenharmony_cistatic struct gdsc *mmcc_msm8998_gdscs[] = {
277262306a36Sopenharmony_ci	[VIDEO_TOP_GDSC] = &video_top_gdsc,
277362306a36Sopenharmony_ci	[VIDEO_SUBCORE0_GDSC] = &video_subcore0_gdsc,
277462306a36Sopenharmony_ci	[VIDEO_SUBCORE1_GDSC] = &video_subcore1_gdsc,
277562306a36Sopenharmony_ci	[MDSS_GDSC] = &mdss_gdsc,
277662306a36Sopenharmony_ci	[CAMSS_TOP_GDSC] = &camss_top_gdsc,
277762306a36Sopenharmony_ci	[CAMSS_VFE0_GDSC] = &camss_vfe0_gdsc,
277862306a36Sopenharmony_ci	[CAMSS_VFE1_GDSC] = &camss_vfe1_gdsc,
277962306a36Sopenharmony_ci	[CAMSS_CPP_GDSC] = &camss_cpp_gdsc,
278062306a36Sopenharmony_ci	[BIMC_SMMU_GDSC] = &bimc_smmu_gdsc,
278162306a36Sopenharmony_ci};
278262306a36Sopenharmony_ci
278362306a36Sopenharmony_cistatic const struct qcom_reset_map mmcc_msm8998_resets[] = {
278462306a36Sopenharmony_ci	[SPDM_BCR] = { 0x200 },
278562306a36Sopenharmony_ci	[SPDM_RM_BCR] = { 0x300 },
278662306a36Sopenharmony_ci	[MISC_BCR] = { 0x320 },
278762306a36Sopenharmony_ci	[VIDEO_TOP_BCR] = { 0x1020 },
278862306a36Sopenharmony_ci	[THROTTLE_VIDEO_BCR] = { 0x1180 },
278962306a36Sopenharmony_ci	[MDSS_BCR] = { 0x2300 },
279062306a36Sopenharmony_ci	[THROTTLE_MDSS_BCR] = { 0x2460 },
279162306a36Sopenharmony_ci	[CAMSS_PHY0_BCR] = { 0x3020 },
279262306a36Sopenharmony_ci	[CAMSS_PHY1_BCR] = { 0x3050 },
279362306a36Sopenharmony_ci	[CAMSS_PHY2_BCR] = { 0x3080 },
279462306a36Sopenharmony_ci	[CAMSS_CSI0_BCR] = { 0x30b0 },
279562306a36Sopenharmony_ci	[CAMSS_CSI0RDI_BCR] = { 0x30d0 },
279662306a36Sopenharmony_ci	[CAMSS_CSI0PIX_BCR] = { 0x30e0 },
279762306a36Sopenharmony_ci	[CAMSS_CSI1_BCR] = { 0x3120 },
279862306a36Sopenharmony_ci	[CAMSS_CSI1RDI_BCR] = { 0x3140 },
279962306a36Sopenharmony_ci	[CAMSS_CSI1PIX_BCR] = { 0x3150 },
280062306a36Sopenharmony_ci	[CAMSS_CSI2_BCR] = { 0x3180 },
280162306a36Sopenharmony_ci	[CAMSS_CSI2RDI_BCR] = { 0x31a0 },
280262306a36Sopenharmony_ci	[CAMSS_CSI2PIX_BCR] = { 0x31b0 },
280362306a36Sopenharmony_ci	[CAMSS_CSI3_BCR] = { 0x31e0 },
280462306a36Sopenharmony_ci	[CAMSS_CSI3RDI_BCR] = { 0x3200 },
280562306a36Sopenharmony_ci	[CAMSS_CSI3PIX_BCR] = { 0x3210 },
280662306a36Sopenharmony_ci	[CAMSS_ISPIF_BCR] = { 0x3220 },
280762306a36Sopenharmony_ci	[CAMSS_CCI_BCR] = { 0x3340 },
280862306a36Sopenharmony_ci	[CAMSS_TOP_BCR] = { 0x3480 },
280962306a36Sopenharmony_ci	[CAMSS_AHB_BCR] = { 0x3488 },
281062306a36Sopenharmony_ci	[CAMSS_MICRO_BCR] = { 0x3490 },
281162306a36Sopenharmony_ci	[CAMSS_JPEG_BCR] = { 0x35a0 },
281262306a36Sopenharmony_ci	[CAMSS_VFE0_BCR] = { 0x3660 },
281362306a36Sopenharmony_ci	[CAMSS_VFE1_BCR] = { 0x3670 },
281462306a36Sopenharmony_ci	[CAMSS_VFE_VBIF_BCR] = { 0x36a0 },
281562306a36Sopenharmony_ci	[CAMSS_CPP_TOP_BCR] = { 0x36c0 },
281662306a36Sopenharmony_ci	[CAMSS_CPP_BCR] = { 0x36d0 },
281762306a36Sopenharmony_ci	[CAMSS_CSI_VFE0_BCR] = { 0x3700 },
281862306a36Sopenharmony_ci	[CAMSS_CSI_VFE1_BCR] = { 0x3710 },
281962306a36Sopenharmony_ci	[CAMSS_FD_BCR] = { 0x3b60 },
282062306a36Sopenharmony_ci	[THROTTLE_CAMSS_BCR] = { 0x3c30 },
282162306a36Sopenharmony_ci	[MNOCAHB_BCR] = { 0x5020 },
282262306a36Sopenharmony_ci	[MNOCAXI_BCR] = { 0xd020 },
282362306a36Sopenharmony_ci	[BMIC_SMMU_BCR] = { 0xe000 },
282462306a36Sopenharmony_ci	[MNOC_MAXI_BCR] = { 0xf000 },
282562306a36Sopenharmony_ci	[VMEM_BCR] = { 0xf060 },
282662306a36Sopenharmony_ci	[BTO_BCR] = { 0x10004 },
282762306a36Sopenharmony_ci};
282862306a36Sopenharmony_ci
282962306a36Sopenharmony_cistatic const struct regmap_config mmcc_msm8998_regmap_config = {
283062306a36Sopenharmony_ci	.reg_bits	= 32,
283162306a36Sopenharmony_ci	.reg_stride	= 4,
283262306a36Sopenharmony_ci	.val_bits	= 32,
283362306a36Sopenharmony_ci	.max_register	= 0x10004,
283462306a36Sopenharmony_ci	.fast_io	= true,
283562306a36Sopenharmony_ci};
283662306a36Sopenharmony_ci
283762306a36Sopenharmony_cistatic const struct qcom_cc_desc mmcc_msm8998_desc = {
283862306a36Sopenharmony_ci	.config = &mmcc_msm8998_regmap_config,
283962306a36Sopenharmony_ci	.clks = mmcc_msm8998_clocks,
284062306a36Sopenharmony_ci	.num_clks = ARRAY_SIZE(mmcc_msm8998_clocks),
284162306a36Sopenharmony_ci	.resets = mmcc_msm8998_resets,
284262306a36Sopenharmony_ci	.num_resets = ARRAY_SIZE(mmcc_msm8998_resets),
284362306a36Sopenharmony_ci	.gdscs = mmcc_msm8998_gdscs,
284462306a36Sopenharmony_ci	.num_gdscs = ARRAY_SIZE(mmcc_msm8998_gdscs),
284562306a36Sopenharmony_ci};
284662306a36Sopenharmony_ci
284762306a36Sopenharmony_cistatic const struct of_device_id mmcc_msm8998_match_table[] = {
284862306a36Sopenharmony_ci	{ .compatible = "qcom,mmcc-msm8998" },
284962306a36Sopenharmony_ci	{ }
285062306a36Sopenharmony_ci};
285162306a36Sopenharmony_ciMODULE_DEVICE_TABLE(of, mmcc_msm8998_match_table);
285262306a36Sopenharmony_ci
285362306a36Sopenharmony_cistatic int mmcc_msm8998_probe(struct platform_device *pdev)
285462306a36Sopenharmony_ci{
285562306a36Sopenharmony_ci	struct regmap *regmap;
285662306a36Sopenharmony_ci
285762306a36Sopenharmony_ci	regmap = qcom_cc_map(pdev, &mmcc_msm8998_desc);
285862306a36Sopenharmony_ci	if (IS_ERR(regmap))
285962306a36Sopenharmony_ci		return PTR_ERR(regmap);
286062306a36Sopenharmony_ci
286162306a36Sopenharmony_ci	return qcom_cc_really_probe(pdev, &mmcc_msm8998_desc, regmap);
286262306a36Sopenharmony_ci}
286362306a36Sopenharmony_ci
286462306a36Sopenharmony_cistatic struct platform_driver mmcc_msm8998_driver = {
286562306a36Sopenharmony_ci	.probe		= mmcc_msm8998_probe,
286662306a36Sopenharmony_ci	.driver		= {
286762306a36Sopenharmony_ci		.name	= "mmcc-msm8998",
286862306a36Sopenharmony_ci		.of_match_table = mmcc_msm8998_match_table,
286962306a36Sopenharmony_ci	},
287062306a36Sopenharmony_ci};
287162306a36Sopenharmony_cimodule_platform_driver(mmcc_msm8998_driver);
287262306a36Sopenharmony_ci
287362306a36Sopenharmony_ciMODULE_DESCRIPTION("QCOM MMCC MSM8998 Driver");
287462306a36Sopenharmony_ciMODULE_LICENSE("GPL v2");
2875