162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright (c) 2014-2015, The Linux Foundation. All rights reserved.
462306a36Sopenharmony_ci */
562306a36Sopenharmony_ci
662306a36Sopenharmony_ci#include <linux/clk-provider.h>
762306a36Sopenharmony_ci#include <linux/kernel.h>
862306a36Sopenharmony_ci#include <linux/platform_device.h>
962306a36Sopenharmony_ci#include <linux/module.h>
1062306a36Sopenharmony_ci#include <linux/regmap.h>
1162306a36Sopenharmony_ci#include <linux/reset-controller.h>
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ci#include <dt-bindings/clock/qcom,mmcc-apq8084.h>
1462306a36Sopenharmony_ci#include <dt-bindings/reset/qcom,mmcc-apq8084.h>
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_ci#include "common.h"
1762306a36Sopenharmony_ci#include "clk-regmap.h"
1862306a36Sopenharmony_ci#include "clk-pll.h"
1962306a36Sopenharmony_ci#include "clk-rcg.h"
2062306a36Sopenharmony_ci#include "clk-branch.h"
2162306a36Sopenharmony_ci#include "reset.h"
2262306a36Sopenharmony_ci#include "gdsc.h"
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_cienum {
2562306a36Sopenharmony_ci	P_XO,
2662306a36Sopenharmony_ci	P_MMPLL0,
2762306a36Sopenharmony_ci	P_EDPLINK,
2862306a36Sopenharmony_ci	P_MMPLL1,
2962306a36Sopenharmony_ci	P_HDMIPLL,
3062306a36Sopenharmony_ci	P_GPLL0,
3162306a36Sopenharmony_ci	P_EDPVCO,
3262306a36Sopenharmony_ci	P_MMPLL4,
3362306a36Sopenharmony_ci	P_DSI0PLL,
3462306a36Sopenharmony_ci	P_DSI0PLL_BYTE,
3562306a36Sopenharmony_ci	P_MMPLL2,
3662306a36Sopenharmony_ci	P_MMPLL3,
3762306a36Sopenharmony_ci	P_GPLL1,
3862306a36Sopenharmony_ci	P_DSI1PLL,
3962306a36Sopenharmony_ci	P_DSI1PLL_BYTE,
4062306a36Sopenharmony_ci	P_MMSLEEP,
4162306a36Sopenharmony_ci};
4262306a36Sopenharmony_ci
4362306a36Sopenharmony_cistatic struct clk_pll mmpll0 = {
4462306a36Sopenharmony_ci	.l_reg = 0x0004,
4562306a36Sopenharmony_ci	.m_reg = 0x0008,
4662306a36Sopenharmony_ci	.n_reg = 0x000c,
4762306a36Sopenharmony_ci	.config_reg = 0x0014,
4862306a36Sopenharmony_ci	.mode_reg = 0x0000,
4962306a36Sopenharmony_ci	.status_reg = 0x001c,
5062306a36Sopenharmony_ci	.status_bit = 17,
5162306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
5262306a36Sopenharmony_ci		.name = "mmpll0",
5362306a36Sopenharmony_ci		.parent_data = (const struct clk_parent_data[]){
5462306a36Sopenharmony_ci			{ .fw_name = "xo", .name = "xo_board" },
5562306a36Sopenharmony_ci		},
5662306a36Sopenharmony_ci		.num_parents = 1,
5762306a36Sopenharmony_ci		.ops = &clk_pll_ops,
5862306a36Sopenharmony_ci	},
5962306a36Sopenharmony_ci};
6062306a36Sopenharmony_ci
6162306a36Sopenharmony_cistatic struct clk_regmap mmpll0_vote = {
6262306a36Sopenharmony_ci	.enable_reg = 0x0100,
6362306a36Sopenharmony_ci	.enable_mask = BIT(0),
6462306a36Sopenharmony_ci	.hw.init = &(struct clk_init_data){
6562306a36Sopenharmony_ci		.name = "mmpll0_vote",
6662306a36Sopenharmony_ci		.parent_hws = (const struct clk_hw*[]){
6762306a36Sopenharmony_ci			&mmpll0.clkr.hw
6862306a36Sopenharmony_ci		},
6962306a36Sopenharmony_ci		.num_parents = 1,
7062306a36Sopenharmony_ci		.ops = &clk_pll_vote_ops,
7162306a36Sopenharmony_ci	},
7262306a36Sopenharmony_ci};
7362306a36Sopenharmony_ci
7462306a36Sopenharmony_cistatic struct clk_pll mmpll1 = {
7562306a36Sopenharmony_ci	.l_reg = 0x0044,
7662306a36Sopenharmony_ci	.m_reg = 0x0048,
7762306a36Sopenharmony_ci	.n_reg = 0x004c,
7862306a36Sopenharmony_ci	.config_reg = 0x0050,
7962306a36Sopenharmony_ci	.mode_reg = 0x0040,
8062306a36Sopenharmony_ci	.status_reg = 0x005c,
8162306a36Sopenharmony_ci	.status_bit = 17,
8262306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
8362306a36Sopenharmony_ci		.name = "mmpll1",
8462306a36Sopenharmony_ci		.parent_data = (const struct clk_parent_data[]){
8562306a36Sopenharmony_ci			{ .fw_name = "xo", .name = "xo_board" },
8662306a36Sopenharmony_ci		},
8762306a36Sopenharmony_ci		.num_parents = 1,
8862306a36Sopenharmony_ci		.ops = &clk_pll_ops,
8962306a36Sopenharmony_ci	},
9062306a36Sopenharmony_ci};
9162306a36Sopenharmony_ci
9262306a36Sopenharmony_cistatic struct clk_regmap mmpll1_vote = {
9362306a36Sopenharmony_ci	.enable_reg = 0x0100,
9462306a36Sopenharmony_ci	.enable_mask = BIT(1),
9562306a36Sopenharmony_ci	.hw.init = &(struct clk_init_data){
9662306a36Sopenharmony_ci		.name = "mmpll1_vote",
9762306a36Sopenharmony_ci		.parent_hws = (const struct clk_hw*[]){
9862306a36Sopenharmony_ci			&mmpll1.clkr.hw
9962306a36Sopenharmony_ci		},
10062306a36Sopenharmony_ci		.num_parents = 1,
10162306a36Sopenharmony_ci		.ops = &clk_pll_vote_ops,
10262306a36Sopenharmony_ci	},
10362306a36Sopenharmony_ci};
10462306a36Sopenharmony_ci
10562306a36Sopenharmony_cistatic struct clk_pll mmpll2 = {
10662306a36Sopenharmony_ci	.l_reg = 0x4104,
10762306a36Sopenharmony_ci	.m_reg = 0x4108,
10862306a36Sopenharmony_ci	.n_reg = 0x410c,
10962306a36Sopenharmony_ci	.config_reg = 0x4110,
11062306a36Sopenharmony_ci	.mode_reg = 0x4100,
11162306a36Sopenharmony_ci	.status_reg = 0x411c,
11262306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
11362306a36Sopenharmony_ci		.name = "mmpll2",
11462306a36Sopenharmony_ci		.parent_data = (const struct clk_parent_data[]){
11562306a36Sopenharmony_ci			{ .fw_name = "xo", .name = "xo_board" },
11662306a36Sopenharmony_ci		},
11762306a36Sopenharmony_ci		.num_parents = 1,
11862306a36Sopenharmony_ci		.ops = &clk_pll_ops,
11962306a36Sopenharmony_ci	},
12062306a36Sopenharmony_ci};
12162306a36Sopenharmony_ci
12262306a36Sopenharmony_cistatic struct clk_pll mmpll3 = {
12362306a36Sopenharmony_ci	.l_reg = 0x0084,
12462306a36Sopenharmony_ci	.m_reg = 0x0088,
12562306a36Sopenharmony_ci	.n_reg = 0x008c,
12662306a36Sopenharmony_ci	.config_reg = 0x0090,
12762306a36Sopenharmony_ci	.mode_reg = 0x0080,
12862306a36Sopenharmony_ci	.status_reg = 0x009c,
12962306a36Sopenharmony_ci	.status_bit = 17,
13062306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
13162306a36Sopenharmony_ci		.name = "mmpll3",
13262306a36Sopenharmony_ci		.parent_data = (const struct clk_parent_data[]){
13362306a36Sopenharmony_ci			{ .fw_name = "xo", .name = "xo_board" },
13462306a36Sopenharmony_ci		},
13562306a36Sopenharmony_ci		.num_parents = 1,
13662306a36Sopenharmony_ci		.ops = &clk_pll_ops,
13762306a36Sopenharmony_ci	},
13862306a36Sopenharmony_ci};
13962306a36Sopenharmony_ci
14062306a36Sopenharmony_cistatic struct clk_pll mmpll4 = {
14162306a36Sopenharmony_ci	.l_reg = 0x00a4,
14262306a36Sopenharmony_ci	.m_reg = 0x00a8,
14362306a36Sopenharmony_ci	.n_reg = 0x00ac,
14462306a36Sopenharmony_ci	.config_reg = 0x00b0,
14562306a36Sopenharmony_ci	.mode_reg = 0x0080,
14662306a36Sopenharmony_ci	.status_reg = 0x00bc,
14762306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
14862306a36Sopenharmony_ci		.name = "mmpll4",
14962306a36Sopenharmony_ci		.parent_data = (const struct clk_parent_data[]){
15062306a36Sopenharmony_ci			{ .fw_name = "xo", .name = "xo_board" },
15162306a36Sopenharmony_ci		},
15262306a36Sopenharmony_ci		.num_parents = 1,
15362306a36Sopenharmony_ci		.ops = &clk_pll_ops,
15462306a36Sopenharmony_ci	},
15562306a36Sopenharmony_ci};
15662306a36Sopenharmony_ci
15762306a36Sopenharmony_cistatic const struct parent_map mmcc_xo_mmpll0_mmpll1_gpll0_map[] = {
15862306a36Sopenharmony_ci	{ P_XO, 0 },
15962306a36Sopenharmony_ci	{ P_MMPLL0, 1 },
16062306a36Sopenharmony_ci	{ P_MMPLL1, 2 },
16162306a36Sopenharmony_ci	{ P_GPLL0, 5 }
16262306a36Sopenharmony_ci};
16362306a36Sopenharmony_ci
16462306a36Sopenharmony_cistatic const struct clk_parent_data mmcc_xo_mmpll0_mmpll1_gpll0[] = {
16562306a36Sopenharmony_ci	{ .fw_name = "xo", .name = "xo_board" },
16662306a36Sopenharmony_ci	{ .hw = &mmpll0_vote.hw },
16762306a36Sopenharmony_ci	{ .hw = &mmpll1_vote.hw },
16862306a36Sopenharmony_ci	{ .fw_name = "mmss_gpll0_vote", .name = "mmss_gpll0_vote" },
16962306a36Sopenharmony_ci};
17062306a36Sopenharmony_ci
17162306a36Sopenharmony_cistatic const struct parent_map mmcc_xo_mmpll0_dsi_hdmi_gpll0_map[] = {
17262306a36Sopenharmony_ci	{ P_XO, 0 },
17362306a36Sopenharmony_ci	{ P_MMPLL0, 1 },
17462306a36Sopenharmony_ci	{ P_HDMIPLL, 4 },
17562306a36Sopenharmony_ci	{ P_GPLL0, 5 },
17662306a36Sopenharmony_ci	{ P_DSI0PLL, 2 },
17762306a36Sopenharmony_ci	{ P_DSI1PLL, 3 }
17862306a36Sopenharmony_ci};
17962306a36Sopenharmony_ci
18062306a36Sopenharmony_cistatic const struct clk_parent_data mmcc_xo_mmpll0_dsi_hdmi_gpll0[] = {
18162306a36Sopenharmony_ci	{ .fw_name = "xo", .name = "xo_board" },
18262306a36Sopenharmony_ci	{ .hw = &mmpll0_vote.hw },
18362306a36Sopenharmony_ci	{ .fw_name = "hdmipll", .name = "hdmipll" },
18462306a36Sopenharmony_ci	{ .fw_name = "mmss_gpll0_vote", .name = "mmss_gpll0_vote" },
18562306a36Sopenharmony_ci	{ .fw_name = "dsi0pll", .name = "dsi0pll" },
18662306a36Sopenharmony_ci	{ .fw_name = "dsi1pll", .name = "dsi1pll" },
18762306a36Sopenharmony_ci};
18862306a36Sopenharmony_ci
18962306a36Sopenharmony_cistatic const struct parent_map mmcc_xo_mmpll0_1_2_gpll0_map[] = {
19062306a36Sopenharmony_ci	{ P_XO, 0 },
19162306a36Sopenharmony_ci	{ P_MMPLL0, 1 },
19262306a36Sopenharmony_ci	{ P_MMPLL1, 2 },
19362306a36Sopenharmony_ci	{ P_GPLL0, 5 },
19462306a36Sopenharmony_ci	{ P_MMPLL2, 3 }
19562306a36Sopenharmony_ci};
19662306a36Sopenharmony_ci
19762306a36Sopenharmony_cistatic const struct clk_parent_data mmcc_xo_mmpll0_1_2_gpll0[] = {
19862306a36Sopenharmony_ci	{ .fw_name = "xo", .name = "xo_board" },
19962306a36Sopenharmony_ci	{ .hw = &mmpll0_vote.hw },
20062306a36Sopenharmony_ci	{ .hw = &mmpll1_vote.hw },
20162306a36Sopenharmony_ci	{ .fw_name = "mmss_gpll0_vote", .name = "mmss_gpll0_vote" },
20262306a36Sopenharmony_ci	{ .hw = &mmpll2.clkr.hw },
20362306a36Sopenharmony_ci};
20462306a36Sopenharmony_ci
20562306a36Sopenharmony_cistatic const struct parent_map mmcc_xo_mmpll0_1_3_gpll0_map[] = {
20662306a36Sopenharmony_ci	{ P_XO, 0 },
20762306a36Sopenharmony_ci	{ P_MMPLL0, 1 },
20862306a36Sopenharmony_ci	{ P_MMPLL1, 2 },
20962306a36Sopenharmony_ci	{ P_GPLL0, 5 },
21062306a36Sopenharmony_ci	{ P_MMPLL3, 3 }
21162306a36Sopenharmony_ci};
21262306a36Sopenharmony_ci
21362306a36Sopenharmony_cistatic const struct clk_parent_data mmcc_xo_mmpll0_1_3_gpll0[] = {
21462306a36Sopenharmony_ci	{ .fw_name = "xo", .name = "xo_board" },
21562306a36Sopenharmony_ci	{ .hw = &mmpll0_vote.hw },
21662306a36Sopenharmony_ci	{ .hw = &mmpll1_vote.hw },
21762306a36Sopenharmony_ci	{ .fw_name = "mmss_gpll0_vote", .name = "mmss_gpll0_vote" },
21862306a36Sopenharmony_ci	{ .hw = &mmpll3.clkr.hw },
21962306a36Sopenharmony_ci};
22062306a36Sopenharmony_ci
22162306a36Sopenharmony_cistatic const struct parent_map mmcc_xo_dsi_hdmi_edp_map[] = {
22262306a36Sopenharmony_ci	{ P_XO, 0 },
22362306a36Sopenharmony_ci	{ P_EDPLINK, 4 },
22462306a36Sopenharmony_ci	{ P_HDMIPLL, 3 },
22562306a36Sopenharmony_ci	{ P_EDPVCO, 5 },
22662306a36Sopenharmony_ci	{ P_DSI0PLL, 1 },
22762306a36Sopenharmony_ci	{ P_DSI1PLL, 2 }
22862306a36Sopenharmony_ci};
22962306a36Sopenharmony_ci
23062306a36Sopenharmony_cistatic const struct clk_parent_data mmcc_xo_dsi_hdmi_edp[] = {
23162306a36Sopenharmony_ci	{ .fw_name = "xo", .name = "xo_board" },
23262306a36Sopenharmony_ci	{ .fw_name = "edp_link_clk", .name = "edp_link_clk" },
23362306a36Sopenharmony_ci	{ .fw_name = "hdmipll", .name = "hdmipll" },
23462306a36Sopenharmony_ci	{ .fw_name = "edp_vco_div", .name = "edp_vco_div" },
23562306a36Sopenharmony_ci	{ .fw_name = "dsi0pll", .name = "dsi0pll" },
23662306a36Sopenharmony_ci	{ .fw_name = "dsi1pll", .name = "dsi1pll" },
23762306a36Sopenharmony_ci};
23862306a36Sopenharmony_ci
23962306a36Sopenharmony_cistatic const struct parent_map mmcc_xo_dsi_hdmi_edp_gpll0_map[] = {
24062306a36Sopenharmony_ci	{ P_XO, 0 },
24162306a36Sopenharmony_ci	{ P_EDPLINK, 4 },
24262306a36Sopenharmony_ci	{ P_HDMIPLL, 3 },
24362306a36Sopenharmony_ci	{ P_GPLL0, 5 },
24462306a36Sopenharmony_ci	{ P_DSI0PLL, 1 },
24562306a36Sopenharmony_ci	{ P_DSI1PLL, 2 }
24662306a36Sopenharmony_ci};
24762306a36Sopenharmony_ci
24862306a36Sopenharmony_cistatic const struct clk_parent_data mmcc_xo_dsi_hdmi_edp_gpll0[] = {
24962306a36Sopenharmony_ci	{ .fw_name = "xo", .name = "xo_board" },
25062306a36Sopenharmony_ci	{ .fw_name = "edp_link_clk", .name = "edp_link_clk" },
25162306a36Sopenharmony_ci	{ .fw_name = "hdmipll", .name = "hdmipll" },
25262306a36Sopenharmony_ci	{ .fw_name = "gpll0_vote", .name = "gpll0_vote" },
25362306a36Sopenharmony_ci	{ .fw_name = "dsi0pll", .name = "dsi0pll" },
25462306a36Sopenharmony_ci	{ .fw_name = "dsi1pll", .name = "dsi1pll" },
25562306a36Sopenharmony_ci};
25662306a36Sopenharmony_ci
25762306a36Sopenharmony_cistatic const struct parent_map mmcc_xo_dsibyte_hdmi_edp_gpll0_map[] = {
25862306a36Sopenharmony_ci	{ P_XO, 0 },
25962306a36Sopenharmony_ci	{ P_EDPLINK, 4 },
26062306a36Sopenharmony_ci	{ P_HDMIPLL, 3 },
26162306a36Sopenharmony_ci	{ P_GPLL0, 5 },
26262306a36Sopenharmony_ci	{ P_DSI0PLL_BYTE, 1 },
26362306a36Sopenharmony_ci	{ P_DSI1PLL_BYTE, 2 }
26462306a36Sopenharmony_ci};
26562306a36Sopenharmony_ci
26662306a36Sopenharmony_cistatic const struct clk_parent_data mmcc_xo_dsibyte_hdmi_edp_gpll0[] = {
26762306a36Sopenharmony_ci	{ .fw_name = "xo", .name = "xo_board" },
26862306a36Sopenharmony_ci	{ .fw_name = "edp_link_clk", .name = "edp_link_clk" },
26962306a36Sopenharmony_ci	{ .fw_name = "hdmipll", .name = "hdmipll" },
27062306a36Sopenharmony_ci	{ .fw_name = "gpll0_vote", .name = "gpll0_vote" },
27162306a36Sopenharmony_ci	{ .fw_name = "dsi0pllbyte", .name = "dsi0pllbyte" },
27262306a36Sopenharmony_ci	{ .fw_name = "dsi1pllbyte", .name = "dsi1pllbyte" },
27362306a36Sopenharmony_ci};
27462306a36Sopenharmony_ci
27562306a36Sopenharmony_cistatic const struct parent_map mmcc_xo_mmpll0_1_4_gpll0_map[] = {
27662306a36Sopenharmony_ci	{ P_XO, 0 },
27762306a36Sopenharmony_ci	{ P_MMPLL0, 1 },
27862306a36Sopenharmony_ci	{ P_MMPLL1, 2 },
27962306a36Sopenharmony_ci	{ P_GPLL0, 5 },
28062306a36Sopenharmony_ci	{ P_MMPLL4, 3 }
28162306a36Sopenharmony_ci};
28262306a36Sopenharmony_ci
28362306a36Sopenharmony_cistatic const struct clk_parent_data mmcc_xo_mmpll0_1_4_gpll0[] = {
28462306a36Sopenharmony_ci	{ .fw_name = "xo", .name = "xo_board" },
28562306a36Sopenharmony_ci	{ .hw = &mmpll0.clkr.hw },
28662306a36Sopenharmony_ci	{ .hw = &mmpll1.clkr.hw },
28762306a36Sopenharmony_ci	{ .hw = &mmpll4.clkr.hw },
28862306a36Sopenharmony_ci	{ .fw_name = "gpll0", .name = "gpll0" },
28962306a36Sopenharmony_ci};
29062306a36Sopenharmony_ci
29162306a36Sopenharmony_cistatic const struct parent_map mmcc_xo_mmpll0_1_4_gpll1_0_map[] = {
29262306a36Sopenharmony_ci	{ P_XO, 0 },
29362306a36Sopenharmony_ci	{ P_MMPLL0, 1 },
29462306a36Sopenharmony_ci	{ P_MMPLL1, 2 },
29562306a36Sopenharmony_ci	{ P_MMPLL4, 3 },
29662306a36Sopenharmony_ci	{ P_GPLL0, 5 },
29762306a36Sopenharmony_ci	{ P_GPLL1, 4 }
29862306a36Sopenharmony_ci};
29962306a36Sopenharmony_ci
30062306a36Sopenharmony_cistatic const struct clk_parent_data mmcc_xo_mmpll0_1_4_gpll1_0[] = {
30162306a36Sopenharmony_ci	{ .fw_name = "xo", .name = "xo_board" },
30262306a36Sopenharmony_ci	{ .hw = &mmpll0.clkr.hw },
30362306a36Sopenharmony_ci	{ .hw = &mmpll1.clkr.hw },
30462306a36Sopenharmony_ci	{ .hw = &mmpll4.clkr.hw },
30562306a36Sopenharmony_ci	{ .fw_name = "gpll1", .name = "gpll1" },
30662306a36Sopenharmony_ci	{ .fw_name = "gpll0", .name = "gpll0" },
30762306a36Sopenharmony_ci};
30862306a36Sopenharmony_ci
30962306a36Sopenharmony_cistatic const struct parent_map mmcc_xo_mmpll0_1_4_gpll1_0_sleep_map[] = {
31062306a36Sopenharmony_ci	{ P_XO, 0 },
31162306a36Sopenharmony_ci	{ P_MMPLL0, 1 },
31262306a36Sopenharmony_ci	{ P_MMPLL1, 2 },
31362306a36Sopenharmony_ci	{ P_MMPLL4, 3 },
31462306a36Sopenharmony_ci	{ P_GPLL0, 5 },
31562306a36Sopenharmony_ci	{ P_GPLL1, 4 },
31662306a36Sopenharmony_ci	{ P_MMSLEEP, 6 }
31762306a36Sopenharmony_ci};
31862306a36Sopenharmony_ci
31962306a36Sopenharmony_cistatic const struct clk_parent_data mmcc_xo_mmpll0_1_4_gpll1_0_sleep[] = {
32062306a36Sopenharmony_ci	{ .fw_name = "xo", .name = "xo_board" },
32162306a36Sopenharmony_ci	{ .hw = &mmpll0.clkr.hw },
32262306a36Sopenharmony_ci	{ .hw = &mmpll1.clkr.hw },
32362306a36Sopenharmony_ci	{ .hw = &mmpll4.clkr.hw },
32462306a36Sopenharmony_ci	{ .fw_name = "gpll1", .name = "gpll1" },
32562306a36Sopenharmony_ci	{ .fw_name = "gpll0", .name = "gpll0" },
32662306a36Sopenharmony_ci	{ .fw_name = "sleep_clk", .name = "sleep_clk" },
32762306a36Sopenharmony_ci};
32862306a36Sopenharmony_ci
32962306a36Sopenharmony_cistatic struct clk_rcg2 mmss_ahb_clk_src = {
33062306a36Sopenharmony_ci	.cmd_rcgr = 0x5000,
33162306a36Sopenharmony_ci	.hid_width = 5,
33262306a36Sopenharmony_ci	.parent_map = mmcc_xo_mmpll0_mmpll1_gpll0_map,
33362306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
33462306a36Sopenharmony_ci		.name = "mmss_ahb_clk_src",
33562306a36Sopenharmony_ci		.parent_data = mmcc_xo_mmpll0_mmpll1_gpll0,
33662306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmcc_xo_mmpll0_mmpll1_gpll0),
33762306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
33862306a36Sopenharmony_ci	},
33962306a36Sopenharmony_ci};
34062306a36Sopenharmony_ci
34162306a36Sopenharmony_cistatic struct freq_tbl ftbl_mmss_axi_clk[] = {
34262306a36Sopenharmony_ci	F(19200000, P_XO, 1, 0, 0),
34362306a36Sopenharmony_ci	F(37500000, P_GPLL0, 16, 0, 0),
34462306a36Sopenharmony_ci	F(50000000, P_GPLL0, 12, 0, 0),
34562306a36Sopenharmony_ci	F(75000000, P_GPLL0, 8, 0, 0),
34662306a36Sopenharmony_ci	F(100000000, P_GPLL0, 6, 0, 0),
34762306a36Sopenharmony_ci	F(150000000, P_GPLL0, 4, 0, 0),
34862306a36Sopenharmony_ci	F(333430000, P_MMPLL1, 3.5, 0, 0),
34962306a36Sopenharmony_ci	F(400000000, P_MMPLL0, 2, 0, 0),
35062306a36Sopenharmony_ci	F(466800000, P_MMPLL1, 2.5, 0, 0),
35162306a36Sopenharmony_ci	{ }
35262306a36Sopenharmony_ci};
35362306a36Sopenharmony_ci
35462306a36Sopenharmony_cistatic struct clk_rcg2 mmss_axi_clk_src = {
35562306a36Sopenharmony_ci	.cmd_rcgr = 0x5040,
35662306a36Sopenharmony_ci	.hid_width = 5,
35762306a36Sopenharmony_ci	.parent_map = mmcc_xo_mmpll0_mmpll1_gpll0_map,
35862306a36Sopenharmony_ci	.freq_tbl = ftbl_mmss_axi_clk,
35962306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
36062306a36Sopenharmony_ci		.name = "mmss_axi_clk_src",
36162306a36Sopenharmony_ci		.parent_data = mmcc_xo_mmpll0_mmpll1_gpll0,
36262306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmcc_xo_mmpll0_mmpll1_gpll0),
36362306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
36462306a36Sopenharmony_ci	},
36562306a36Sopenharmony_ci};
36662306a36Sopenharmony_ci
36762306a36Sopenharmony_cistatic struct freq_tbl ftbl_ocmemnoc_clk[] = {
36862306a36Sopenharmony_ci	F(19200000, P_XO, 1, 0, 0),
36962306a36Sopenharmony_ci	F(37500000, P_GPLL0, 16, 0, 0),
37062306a36Sopenharmony_ci	F(50000000, P_GPLL0, 12, 0, 0),
37162306a36Sopenharmony_ci	F(75000000, P_GPLL0, 8, 0, 0),
37262306a36Sopenharmony_ci	F(109090000, P_GPLL0, 5.5, 0, 0),
37362306a36Sopenharmony_ci	F(150000000, P_GPLL0, 4, 0, 0),
37462306a36Sopenharmony_ci	F(228570000, P_MMPLL0, 3.5, 0, 0),
37562306a36Sopenharmony_ci	F(320000000, P_MMPLL0, 2.5, 0, 0),
37662306a36Sopenharmony_ci	{ }
37762306a36Sopenharmony_ci};
37862306a36Sopenharmony_ci
37962306a36Sopenharmony_cistatic struct clk_rcg2 ocmemnoc_clk_src = {
38062306a36Sopenharmony_ci	.cmd_rcgr = 0x5090,
38162306a36Sopenharmony_ci	.hid_width = 5,
38262306a36Sopenharmony_ci	.parent_map = mmcc_xo_mmpll0_mmpll1_gpll0_map,
38362306a36Sopenharmony_ci	.freq_tbl = ftbl_ocmemnoc_clk,
38462306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
38562306a36Sopenharmony_ci		.name = "ocmemnoc_clk_src",
38662306a36Sopenharmony_ci		.parent_data = mmcc_xo_mmpll0_mmpll1_gpll0,
38762306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmcc_xo_mmpll0_mmpll1_gpll0),
38862306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
38962306a36Sopenharmony_ci	},
39062306a36Sopenharmony_ci};
39162306a36Sopenharmony_ci
39262306a36Sopenharmony_cistatic struct freq_tbl ftbl_camss_csi0_3_clk[] = {
39362306a36Sopenharmony_ci	F(100000000, P_GPLL0, 6, 0, 0),
39462306a36Sopenharmony_ci	F(200000000, P_MMPLL0, 4, 0, 0),
39562306a36Sopenharmony_ci	{ }
39662306a36Sopenharmony_ci};
39762306a36Sopenharmony_ci
39862306a36Sopenharmony_cistatic struct clk_rcg2 csi0_clk_src = {
39962306a36Sopenharmony_ci	.cmd_rcgr = 0x3090,
40062306a36Sopenharmony_ci	.hid_width = 5,
40162306a36Sopenharmony_ci	.parent_map = mmcc_xo_mmpll0_1_4_gpll0_map,
40262306a36Sopenharmony_ci	.freq_tbl = ftbl_camss_csi0_3_clk,
40362306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
40462306a36Sopenharmony_ci		.name = "csi0_clk_src",
40562306a36Sopenharmony_ci		.parent_data = mmcc_xo_mmpll0_1_4_gpll0,
40662306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmcc_xo_mmpll0_1_4_gpll0),
40762306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
40862306a36Sopenharmony_ci	},
40962306a36Sopenharmony_ci};
41062306a36Sopenharmony_ci
41162306a36Sopenharmony_cistatic struct clk_rcg2 csi1_clk_src = {
41262306a36Sopenharmony_ci	.cmd_rcgr = 0x3100,
41362306a36Sopenharmony_ci	.hid_width = 5,
41462306a36Sopenharmony_ci	.parent_map = mmcc_xo_mmpll0_1_4_gpll0_map,
41562306a36Sopenharmony_ci	.freq_tbl = ftbl_camss_csi0_3_clk,
41662306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
41762306a36Sopenharmony_ci		.name = "csi1_clk_src",
41862306a36Sopenharmony_ci		.parent_data = mmcc_xo_mmpll0_1_4_gpll0,
41962306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmcc_xo_mmpll0_1_4_gpll0),
42062306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
42162306a36Sopenharmony_ci	},
42262306a36Sopenharmony_ci};
42362306a36Sopenharmony_ci
42462306a36Sopenharmony_cistatic struct clk_rcg2 csi2_clk_src = {
42562306a36Sopenharmony_ci	.cmd_rcgr = 0x3160,
42662306a36Sopenharmony_ci	.hid_width = 5,
42762306a36Sopenharmony_ci	.parent_map = mmcc_xo_mmpll0_1_4_gpll0_map,
42862306a36Sopenharmony_ci	.freq_tbl = ftbl_camss_csi0_3_clk,
42962306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
43062306a36Sopenharmony_ci		.name = "csi2_clk_src",
43162306a36Sopenharmony_ci		.parent_data = mmcc_xo_mmpll0_1_4_gpll0,
43262306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmcc_xo_mmpll0_1_4_gpll0),
43362306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
43462306a36Sopenharmony_ci	},
43562306a36Sopenharmony_ci};
43662306a36Sopenharmony_ci
43762306a36Sopenharmony_cistatic struct clk_rcg2 csi3_clk_src = {
43862306a36Sopenharmony_ci	.cmd_rcgr = 0x31c0,
43962306a36Sopenharmony_ci	.hid_width = 5,
44062306a36Sopenharmony_ci	.parent_map = mmcc_xo_mmpll0_1_4_gpll0_map,
44162306a36Sopenharmony_ci	.freq_tbl = ftbl_camss_csi0_3_clk,
44262306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
44362306a36Sopenharmony_ci		.name = "csi3_clk_src",
44462306a36Sopenharmony_ci		.parent_data = mmcc_xo_mmpll0_1_4_gpll0,
44562306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmcc_xo_mmpll0_1_4_gpll0),
44662306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
44762306a36Sopenharmony_ci	},
44862306a36Sopenharmony_ci};
44962306a36Sopenharmony_ci
45062306a36Sopenharmony_cistatic struct freq_tbl ftbl_camss_vfe_vfe0_1_clk[] = {
45162306a36Sopenharmony_ci	F(37500000, P_GPLL0, 16, 0, 0),
45262306a36Sopenharmony_ci	F(50000000, P_GPLL0, 12, 0, 0),
45362306a36Sopenharmony_ci	F(60000000, P_GPLL0, 10, 0, 0),
45462306a36Sopenharmony_ci	F(80000000, P_GPLL0, 7.5, 0, 0),
45562306a36Sopenharmony_ci	F(100000000, P_GPLL0, 6, 0, 0),
45662306a36Sopenharmony_ci	F(109090000, P_GPLL0, 5.5, 0, 0),
45762306a36Sopenharmony_ci	F(133330000, P_GPLL0, 4.5, 0, 0),
45862306a36Sopenharmony_ci	F(200000000, P_GPLL0, 3, 0, 0),
45962306a36Sopenharmony_ci	F(228570000, P_MMPLL0, 3.5, 0, 0),
46062306a36Sopenharmony_ci	F(266670000, P_MMPLL0, 3, 0, 0),
46162306a36Sopenharmony_ci	F(320000000, P_MMPLL0, 2.5, 0, 0),
46262306a36Sopenharmony_ci	F(465000000, P_MMPLL4, 2, 0, 0),
46362306a36Sopenharmony_ci	F(600000000, P_GPLL0, 1, 0, 0),
46462306a36Sopenharmony_ci	{ }
46562306a36Sopenharmony_ci};
46662306a36Sopenharmony_ci
46762306a36Sopenharmony_cistatic struct clk_rcg2 vfe0_clk_src = {
46862306a36Sopenharmony_ci	.cmd_rcgr = 0x3600,
46962306a36Sopenharmony_ci	.hid_width = 5,
47062306a36Sopenharmony_ci	.parent_map = mmcc_xo_mmpll0_1_4_gpll0_map,
47162306a36Sopenharmony_ci	.freq_tbl = ftbl_camss_vfe_vfe0_1_clk,
47262306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
47362306a36Sopenharmony_ci		.name = "vfe0_clk_src",
47462306a36Sopenharmony_ci		.parent_data = mmcc_xo_mmpll0_1_4_gpll0,
47562306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmcc_xo_mmpll0_1_4_gpll0),
47662306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
47762306a36Sopenharmony_ci	},
47862306a36Sopenharmony_ci};
47962306a36Sopenharmony_ci
48062306a36Sopenharmony_cistatic struct clk_rcg2 vfe1_clk_src = {
48162306a36Sopenharmony_ci	.cmd_rcgr = 0x3620,
48262306a36Sopenharmony_ci	.hid_width = 5,
48362306a36Sopenharmony_ci	.parent_map = mmcc_xo_mmpll0_1_4_gpll0_map,
48462306a36Sopenharmony_ci	.freq_tbl = ftbl_camss_vfe_vfe0_1_clk,
48562306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
48662306a36Sopenharmony_ci		.name = "vfe1_clk_src",
48762306a36Sopenharmony_ci		.parent_data = mmcc_xo_mmpll0_1_4_gpll0,
48862306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmcc_xo_mmpll0_1_4_gpll0),
48962306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
49062306a36Sopenharmony_ci	},
49162306a36Sopenharmony_ci};
49262306a36Sopenharmony_ci
49362306a36Sopenharmony_cistatic struct freq_tbl ftbl_mdss_mdp_clk[] = {
49462306a36Sopenharmony_ci	F(37500000, P_GPLL0, 16, 0, 0),
49562306a36Sopenharmony_ci	F(60000000, P_GPLL0, 10, 0, 0),
49662306a36Sopenharmony_ci	F(75000000, P_GPLL0, 8, 0, 0),
49762306a36Sopenharmony_ci	F(85710000, P_GPLL0, 7, 0, 0),
49862306a36Sopenharmony_ci	F(100000000, P_GPLL0, 6, 0, 0),
49962306a36Sopenharmony_ci	F(150000000, P_GPLL0, 4, 0, 0),
50062306a36Sopenharmony_ci	F(160000000, P_MMPLL0, 5, 0, 0),
50162306a36Sopenharmony_ci	F(200000000, P_MMPLL0, 4, 0, 0),
50262306a36Sopenharmony_ci	F(228570000, P_MMPLL0, 3.5, 0, 0),
50362306a36Sopenharmony_ci	F(300000000, P_GPLL0, 2, 0, 0),
50462306a36Sopenharmony_ci	F(320000000, P_MMPLL0, 2.5, 0, 0),
50562306a36Sopenharmony_ci	{ }
50662306a36Sopenharmony_ci};
50762306a36Sopenharmony_ci
50862306a36Sopenharmony_cistatic struct clk_rcg2 mdp_clk_src = {
50962306a36Sopenharmony_ci	.cmd_rcgr = 0x2040,
51062306a36Sopenharmony_ci	.hid_width = 5,
51162306a36Sopenharmony_ci	.parent_map = mmcc_xo_mmpll0_dsi_hdmi_gpll0_map,
51262306a36Sopenharmony_ci	.freq_tbl = ftbl_mdss_mdp_clk,
51362306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
51462306a36Sopenharmony_ci		.name = "mdp_clk_src",
51562306a36Sopenharmony_ci		.parent_data = mmcc_xo_mmpll0_dsi_hdmi_gpll0,
51662306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmcc_xo_mmpll0_dsi_hdmi_gpll0),
51762306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
51862306a36Sopenharmony_ci	},
51962306a36Sopenharmony_ci};
52062306a36Sopenharmony_ci
52162306a36Sopenharmony_cistatic struct clk_rcg2 gfx3d_clk_src = {
52262306a36Sopenharmony_ci	.cmd_rcgr = 0x4000,
52362306a36Sopenharmony_ci	.hid_width = 5,
52462306a36Sopenharmony_ci	.parent_map = mmcc_xo_mmpll0_1_2_gpll0_map,
52562306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
52662306a36Sopenharmony_ci		.name = "gfx3d_clk_src",
52762306a36Sopenharmony_ci		.parent_data = mmcc_xo_mmpll0_1_2_gpll0,
52862306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmcc_xo_mmpll0_1_2_gpll0),
52962306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
53062306a36Sopenharmony_ci	},
53162306a36Sopenharmony_ci};
53262306a36Sopenharmony_ci
53362306a36Sopenharmony_cistatic struct freq_tbl ftbl_camss_jpeg_jpeg0_2_clk[] = {
53462306a36Sopenharmony_ci	F(75000000, P_GPLL0, 8, 0, 0),
53562306a36Sopenharmony_ci	F(133330000, P_GPLL0, 4.5, 0, 0),
53662306a36Sopenharmony_ci	F(200000000, P_GPLL0, 3, 0, 0),
53762306a36Sopenharmony_ci	F(228570000, P_MMPLL0, 3.5, 0, 0),
53862306a36Sopenharmony_ci	F(266670000, P_MMPLL0, 3, 0, 0),
53962306a36Sopenharmony_ci	F(320000000, P_MMPLL0, 2.5, 0, 0),
54062306a36Sopenharmony_ci	{ }
54162306a36Sopenharmony_ci};
54262306a36Sopenharmony_ci
54362306a36Sopenharmony_cistatic struct clk_rcg2 jpeg0_clk_src = {
54462306a36Sopenharmony_ci	.cmd_rcgr = 0x3500,
54562306a36Sopenharmony_ci	.hid_width = 5,
54662306a36Sopenharmony_ci	.parent_map = mmcc_xo_mmpll0_1_4_gpll0_map,
54762306a36Sopenharmony_ci	.freq_tbl = ftbl_camss_jpeg_jpeg0_2_clk,
54862306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
54962306a36Sopenharmony_ci		.name = "jpeg0_clk_src",
55062306a36Sopenharmony_ci		.parent_data = mmcc_xo_mmpll0_1_4_gpll0,
55162306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmcc_xo_mmpll0_1_4_gpll0),
55262306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
55362306a36Sopenharmony_ci	},
55462306a36Sopenharmony_ci};
55562306a36Sopenharmony_ci
55662306a36Sopenharmony_cistatic struct clk_rcg2 jpeg1_clk_src = {
55762306a36Sopenharmony_ci	.cmd_rcgr = 0x3520,
55862306a36Sopenharmony_ci	.hid_width = 5,
55962306a36Sopenharmony_ci	.parent_map = mmcc_xo_mmpll0_1_4_gpll0_map,
56062306a36Sopenharmony_ci	.freq_tbl = ftbl_camss_jpeg_jpeg0_2_clk,
56162306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
56262306a36Sopenharmony_ci		.name = "jpeg1_clk_src",
56362306a36Sopenharmony_ci		.parent_data = mmcc_xo_mmpll0_1_4_gpll0,
56462306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmcc_xo_mmpll0_1_4_gpll0),
56562306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
56662306a36Sopenharmony_ci	},
56762306a36Sopenharmony_ci};
56862306a36Sopenharmony_ci
56962306a36Sopenharmony_cistatic struct clk_rcg2 jpeg2_clk_src = {
57062306a36Sopenharmony_ci	.cmd_rcgr = 0x3540,
57162306a36Sopenharmony_ci	.hid_width = 5,
57262306a36Sopenharmony_ci	.parent_map = mmcc_xo_mmpll0_1_4_gpll0_map,
57362306a36Sopenharmony_ci	.freq_tbl = ftbl_camss_jpeg_jpeg0_2_clk,
57462306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
57562306a36Sopenharmony_ci		.name = "jpeg2_clk_src",
57662306a36Sopenharmony_ci		.parent_data = mmcc_xo_mmpll0_1_4_gpll0,
57762306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmcc_xo_mmpll0_1_4_gpll0),
57862306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
57962306a36Sopenharmony_ci	},
58062306a36Sopenharmony_ci};
58162306a36Sopenharmony_ci
58262306a36Sopenharmony_cistatic struct clk_rcg2 pclk0_clk_src = {
58362306a36Sopenharmony_ci	.cmd_rcgr = 0x2000,
58462306a36Sopenharmony_ci	.mnd_width = 8,
58562306a36Sopenharmony_ci	.hid_width = 5,
58662306a36Sopenharmony_ci	.parent_map = mmcc_xo_dsi_hdmi_edp_gpll0_map,
58762306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
58862306a36Sopenharmony_ci		.name = "pclk0_clk_src",
58962306a36Sopenharmony_ci		.parent_data = mmcc_xo_dsi_hdmi_edp_gpll0,
59062306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmcc_xo_dsi_hdmi_edp_gpll0),
59162306a36Sopenharmony_ci		.ops = &clk_pixel_ops,
59262306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
59362306a36Sopenharmony_ci	},
59462306a36Sopenharmony_ci};
59562306a36Sopenharmony_ci
59662306a36Sopenharmony_cistatic struct clk_rcg2 pclk1_clk_src = {
59762306a36Sopenharmony_ci	.cmd_rcgr = 0x2020,
59862306a36Sopenharmony_ci	.mnd_width = 8,
59962306a36Sopenharmony_ci	.hid_width = 5,
60062306a36Sopenharmony_ci	.parent_map = mmcc_xo_dsi_hdmi_edp_gpll0_map,
60162306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
60262306a36Sopenharmony_ci		.name = "pclk1_clk_src",
60362306a36Sopenharmony_ci		.parent_data = mmcc_xo_dsi_hdmi_edp_gpll0,
60462306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmcc_xo_dsi_hdmi_edp_gpll0),
60562306a36Sopenharmony_ci		.ops = &clk_pixel_ops,
60662306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
60762306a36Sopenharmony_ci	},
60862306a36Sopenharmony_ci};
60962306a36Sopenharmony_ci
61062306a36Sopenharmony_cistatic struct freq_tbl ftbl_venus0_vcodec0_clk[] = {
61162306a36Sopenharmony_ci	F(50000000, P_GPLL0, 12, 0, 0),
61262306a36Sopenharmony_ci	F(100000000, P_GPLL0, 6, 0, 0),
61362306a36Sopenharmony_ci	F(133330000, P_GPLL0, 4.5, 0, 0),
61462306a36Sopenharmony_ci	F(200000000, P_MMPLL0, 4, 0, 0),
61562306a36Sopenharmony_ci	F(266670000, P_MMPLL0, 3, 0, 0),
61662306a36Sopenharmony_ci	F(465000000, P_MMPLL3, 2, 0, 0),
61762306a36Sopenharmony_ci	{ }
61862306a36Sopenharmony_ci};
61962306a36Sopenharmony_ci
62062306a36Sopenharmony_cistatic struct clk_rcg2 vcodec0_clk_src = {
62162306a36Sopenharmony_ci	.cmd_rcgr = 0x1000,
62262306a36Sopenharmony_ci	.mnd_width = 8,
62362306a36Sopenharmony_ci	.hid_width = 5,
62462306a36Sopenharmony_ci	.parent_map = mmcc_xo_mmpll0_1_3_gpll0_map,
62562306a36Sopenharmony_ci	.freq_tbl = ftbl_venus0_vcodec0_clk,
62662306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
62762306a36Sopenharmony_ci		.name = "vcodec0_clk_src",
62862306a36Sopenharmony_ci		.parent_data = mmcc_xo_mmpll0_1_3_gpll0,
62962306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmcc_xo_mmpll0_1_3_gpll0),
63062306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
63162306a36Sopenharmony_ci	},
63262306a36Sopenharmony_ci};
63362306a36Sopenharmony_ci
63462306a36Sopenharmony_cistatic struct freq_tbl ftbl_avsync_vp_clk[] = {
63562306a36Sopenharmony_ci	F(150000000, P_GPLL0, 4, 0, 0),
63662306a36Sopenharmony_ci	F(320000000, P_MMPLL0, 2.5, 0, 0),
63762306a36Sopenharmony_ci	{ }
63862306a36Sopenharmony_ci};
63962306a36Sopenharmony_ci
64062306a36Sopenharmony_cistatic struct clk_rcg2 vp_clk_src = {
64162306a36Sopenharmony_ci	.cmd_rcgr = 0x2430,
64262306a36Sopenharmony_ci	.hid_width = 5,
64362306a36Sopenharmony_ci	.parent_map = mmcc_xo_mmpll0_mmpll1_gpll0_map,
64462306a36Sopenharmony_ci	.freq_tbl = ftbl_avsync_vp_clk,
64562306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
64662306a36Sopenharmony_ci		.name = "vp_clk_src",
64762306a36Sopenharmony_ci		.parent_data = mmcc_xo_mmpll0_mmpll1_gpll0,
64862306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmcc_xo_mmpll0_mmpll1_gpll0),
64962306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
65062306a36Sopenharmony_ci	},
65162306a36Sopenharmony_ci};
65262306a36Sopenharmony_ci
65362306a36Sopenharmony_cistatic struct freq_tbl ftbl_camss_cci_cci_clk[] = {
65462306a36Sopenharmony_ci	F(19200000, P_XO, 1, 0, 0),
65562306a36Sopenharmony_ci	{ }
65662306a36Sopenharmony_ci};
65762306a36Sopenharmony_ci
65862306a36Sopenharmony_cistatic struct clk_rcg2 cci_clk_src = {
65962306a36Sopenharmony_ci	.cmd_rcgr = 0x3300,
66062306a36Sopenharmony_ci	.mnd_width = 8,
66162306a36Sopenharmony_ci	.hid_width = 5,
66262306a36Sopenharmony_ci	.parent_map = mmcc_xo_mmpll0_1_4_gpll1_0_map,
66362306a36Sopenharmony_ci	.freq_tbl = ftbl_camss_cci_cci_clk,
66462306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
66562306a36Sopenharmony_ci		.name = "cci_clk_src",
66662306a36Sopenharmony_ci		.parent_data = mmcc_xo_mmpll0_1_4_gpll1_0,
66762306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmcc_xo_mmpll0_1_4_gpll1_0),
66862306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
66962306a36Sopenharmony_ci	},
67062306a36Sopenharmony_ci};
67162306a36Sopenharmony_ci
67262306a36Sopenharmony_cistatic struct freq_tbl ftbl_camss_gp0_1_clk[] = {
67362306a36Sopenharmony_ci	F(10000, P_XO, 16, 1, 120),
67462306a36Sopenharmony_ci	F(24000, P_XO, 16, 1, 50),
67562306a36Sopenharmony_ci	F(6000000, P_GPLL0, 10, 1, 10),
67662306a36Sopenharmony_ci	F(12000000, P_GPLL0, 10, 1, 5),
67762306a36Sopenharmony_ci	F(13000000, P_GPLL0, 4, 13, 150),
67862306a36Sopenharmony_ci	F(24000000, P_GPLL0, 5, 1, 5),
67962306a36Sopenharmony_ci	{ }
68062306a36Sopenharmony_ci};
68162306a36Sopenharmony_ci
68262306a36Sopenharmony_cistatic struct clk_rcg2 camss_gp0_clk_src = {
68362306a36Sopenharmony_ci	.cmd_rcgr = 0x3420,
68462306a36Sopenharmony_ci	.mnd_width = 8,
68562306a36Sopenharmony_ci	.hid_width = 5,
68662306a36Sopenharmony_ci	.parent_map = mmcc_xo_mmpll0_1_4_gpll1_0_sleep_map,
68762306a36Sopenharmony_ci	.freq_tbl = ftbl_camss_gp0_1_clk,
68862306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
68962306a36Sopenharmony_ci		.name = "camss_gp0_clk_src",
69062306a36Sopenharmony_ci		.parent_data = mmcc_xo_mmpll0_1_4_gpll1_0_sleep,
69162306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmcc_xo_mmpll0_1_4_gpll1_0_sleep),
69262306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
69362306a36Sopenharmony_ci	},
69462306a36Sopenharmony_ci};
69562306a36Sopenharmony_ci
69662306a36Sopenharmony_cistatic struct clk_rcg2 camss_gp1_clk_src = {
69762306a36Sopenharmony_ci	.cmd_rcgr = 0x3450,
69862306a36Sopenharmony_ci	.mnd_width = 8,
69962306a36Sopenharmony_ci	.hid_width = 5,
70062306a36Sopenharmony_ci	.parent_map = mmcc_xo_mmpll0_1_4_gpll1_0_sleep_map,
70162306a36Sopenharmony_ci	.freq_tbl = ftbl_camss_gp0_1_clk,
70262306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
70362306a36Sopenharmony_ci		.name = "camss_gp1_clk_src",
70462306a36Sopenharmony_ci		.parent_data = mmcc_xo_mmpll0_1_4_gpll1_0_sleep,
70562306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmcc_xo_mmpll0_1_4_gpll1_0_sleep),
70662306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
70762306a36Sopenharmony_ci	},
70862306a36Sopenharmony_ci};
70962306a36Sopenharmony_ci
71062306a36Sopenharmony_cistatic struct freq_tbl ftbl_camss_mclk0_3_clk[] = {
71162306a36Sopenharmony_ci	F(4800000, P_XO, 4, 0, 0),
71262306a36Sopenharmony_ci	F(6000000, P_GPLL0, 10, 1, 10),
71362306a36Sopenharmony_ci	F(8000000, P_GPLL0, 15, 1, 5),
71462306a36Sopenharmony_ci	F(9600000, P_XO, 2, 0, 0),
71562306a36Sopenharmony_ci	F(16000000, P_MMPLL0, 10, 1, 5),
71662306a36Sopenharmony_ci	F(19200000, P_XO, 1, 0, 0),
71762306a36Sopenharmony_ci	F(24000000, P_GPLL0, 5, 1, 5),
71862306a36Sopenharmony_ci	F(32000000, P_MMPLL0, 5, 1, 5),
71962306a36Sopenharmony_ci	F(48000000, P_GPLL0, 12.5, 0, 0),
72062306a36Sopenharmony_ci	F(64000000, P_MMPLL0, 12.5, 0, 0),
72162306a36Sopenharmony_ci	{ }
72262306a36Sopenharmony_ci};
72362306a36Sopenharmony_ci
72462306a36Sopenharmony_cistatic struct clk_rcg2 mclk0_clk_src = {
72562306a36Sopenharmony_ci	.cmd_rcgr = 0x3360,
72662306a36Sopenharmony_ci	.mnd_width = 8,
72762306a36Sopenharmony_ci	.hid_width = 5,
72862306a36Sopenharmony_ci	.parent_map = mmcc_xo_mmpll0_1_4_gpll1_0_map,
72962306a36Sopenharmony_ci	.freq_tbl = ftbl_camss_mclk0_3_clk,
73062306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
73162306a36Sopenharmony_ci		.name = "mclk0_clk_src",
73262306a36Sopenharmony_ci		.parent_data = mmcc_xo_mmpll0_1_4_gpll1_0,
73362306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmcc_xo_mmpll0_1_4_gpll1_0),
73462306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
73562306a36Sopenharmony_ci	},
73662306a36Sopenharmony_ci};
73762306a36Sopenharmony_ci
73862306a36Sopenharmony_cistatic struct clk_rcg2 mclk1_clk_src = {
73962306a36Sopenharmony_ci	.cmd_rcgr = 0x3390,
74062306a36Sopenharmony_ci	.mnd_width = 8,
74162306a36Sopenharmony_ci	.hid_width = 5,
74262306a36Sopenharmony_ci	.parent_map = mmcc_xo_mmpll0_1_4_gpll1_0_map,
74362306a36Sopenharmony_ci	.freq_tbl = ftbl_camss_mclk0_3_clk,
74462306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
74562306a36Sopenharmony_ci		.name = "mclk1_clk_src",
74662306a36Sopenharmony_ci		.parent_data = mmcc_xo_mmpll0_1_4_gpll1_0,
74762306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmcc_xo_mmpll0_1_4_gpll1_0),
74862306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
74962306a36Sopenharmony_ci	},
75062306a36Sopenharmony_ci};
75162306a36Sopenharmony_ci
75262306a36Sopenharmony_cistatic struct clk_rcg2 mclk2_clk_src = {
75362306a36Sopenharmony_ci	.cmd_rcgr = 0x33c0,
75462306a36Sopenharmony_ci	.mnd_width = 8,
75562306a36Sopenharmony_ci	.hid_width = 5,
75662306a36Sopenharmony_ci	.parent_map = mmcc_xo_mmpll0_1_4_gpll1_0_map,
75762306a36Sopenharmony_ci	.freq_tbl = ftbl_camss_mclk0_3_clk,
75862306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
75962306a36Sopenharmony_ci		.name = "mclk2_clk_src",
76062306a36Sopenharmony_ci		.parent_data = mmcc_xo_mmpll0_1_4_gpll1_0,
76162306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmcc_xo_mmpll0_1_4_gpll1_0),
76262306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
76362306a36Sopenharmony_ci	},
76462306a36Sopenharmony_ci};
76562306a36Sopenharmony_ci
76662306a36Sopenharmony_cistatic struct clk_rcg2 mclk3_clk_src = {
76762306a36Sopenharmony_ci	.cmd_rcgr = 0x33f0,
76862306a36Sopenharmony_ci	.mnd_width = 8,
76962306a36Sopenharmony_ci	.hid_width = 5,
77062306a36Sopenharmony_ci	.parent_map = mmcc_xo_mmpll0_1_4_gpll1_0_map,
77162306a36Sopenharmony_ci	.freq_tbl = ftbl_camss_mclk0_3_clk,
77262306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
77362306a36Sopenharmony_ci		.name = "mclk3_clk_src",
77462306a36Sopenharmony_ci		.parent_data = mmcc_xo_mmpll0_1_4_gpll1_0,
77562306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmcc_xo_mmpll0_1_4_gpll1_0),
77662306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
77762306a36Sopenharmony_ci	},
77862306a36Sopenharmony_ci};
77962306a36Sopenharmony_ci
78062306a36Sopenharmony_cistatic struct freq_tbl ftbl_camss_phy0_2_csi0_2phytimer_clk[] = {
78162306a36Sopenharmony_ci	F(100000000, P_GPLL0, 6, 0, 0),
78262306a36Sopenharmony_ci	F(200000000, P_MMPLL0, 4, 0, 0),
78362306a36Sopenharmony_ci	{ }
78462306a36Sopenharmony_ci};
78562306a36Sopenharmony_ci
78662306a36Sopenharmony_cistatic struct clk_rcg2 csi0phytimer_clk_src = {
78762306a36Sopenharmony_ci	.cmd_rcgr = 0x3000,
78862306a36Sopenharmony_ci	.hid_width = 5,
78962306a36Sopenharmony_ci	.parent_map = mmcc_xo_mmpll0_1_4_gpll0_map,
79062306a36Sopenharmony_ci	.freq_tbl = ftbl_camss_phy0_2_csi0_2phytimer_clk,
79162306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
79262306a36Sopenharmony_ci		.name = "csi0phytimer_clk_src",
79362306a36Sopenharmony_ci		.parent_data = mmcc_xo_mmpll0_1_4_gpll0,
79462306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmcc_xo_mmpll0_1_4_gpll0),
79562306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
79662306a36Sopenharmony_ci	},
79762306a36Sopenharmony_ci};
79862306a36Sopenharmony_ci
79962306a36Sopenharmony_cistatic struct clk_rcg2 csi1phytimer_clk_src = {
80062306a36Sopenharmony_ci	.cmd_rcgr = 0x3030,
80162306a36Sopenharmony_ci	.hid_width = 5,
80262306a36Sopenharmony_ci	.parent_map = mmcc_xo_mmpll0_1_4_gpll0_map,
80362306a36Sopenharmony_ci	.freq_tbl = ftbl_camss_phy0_2_csi0_2phytimer_clk,
80462306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
80562306a36Sopenharmony_ci		.name = "csi1phytimer_clk_src",
80662306a36Sopenharmony_ci		.parent_data = mmcc_xo_mmpll0_mmpll1_gpll0,
80762306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmcc_xo_mmpll0_mmpll1_gpll0),
80862306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
80962306a36Sopenharmony_ci	},
81062306a36Sopenharmony_ci};
81162306a36Sopenharmony_ci
81262306a36Sopenharmony_cistatic struct clk_rcg2 csi2phytimer_clk_src = {
81362306a36Sopenharmony_ci	.cmd_rcgr = 0x3060,
81462306a36Sopenharmony_ci	.hid_width = 5,
81562306a36Sopenharmony_ci	.parent_map = mmcc_xo_mmpll0_1_4_gpll0_map,
81662306a36Sopenharmony_ci	.freq_tbl = ftbl_camss_phy0_2_csi0_2phytimer_clk,
81762306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
81862306a36Sopenharmony_ci		.name = "csi2phytimer_clk_src",
81962306a36Sopenharmony_ci		.parent_data = mmcc_xo_mmpll0_1_4_gpll0,
82062306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmcc_xo_mmpll0_1_4_gpll0),
82162306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
82262306a36Sopenharmony_ci	},
82362306a36Sopenharmony_ci};
82462306a36Sopenharmony_ci
82562306a36Sopenharmony_cistatic struct freq_tbl ftbl_camss_vfe_cpp_clk[] = {
82662306a36Sopenharmony_ci	F(133330000, P_GPLL0, 4.5, 0, 0),
82762306a36Sopenharmony_ci	F(266670000, P_MMPLL0, 3, 0, 0),
82862306a36Sopenharmony_ci	F(320000000, P_MMPLL0, 2.5, 0, 0),
82962306a36Sopenharmony_ci	F(372000000, P_MMPLL4, 2.5, 0, 0),
83062306a36Sopenharmony_ci	F(465000000, P_MMPLL4, 2, 0, 0),
83162306a36Sopenharmony_ci	F(600000000, P_GPLL0, 1, 0, 0),
83262306a36Sopenharmony_ci	{ }
83362306a36Sopenharmony_ci};
83462306a36Sopenharmony_ci
83562306a36Sopenharmony_cistatic struct clk_rcg2 cpp_clk_src = {
83662306a36Sopenharmony_ci	.cmd_rcgr = 0x3640,
83762306a36Sopenharmony_ci	.hid_width = 5,
83862306a36Sopenharmony_ci	.parent_map = mmcc_xo_mmpll0_1_4_gpll0_map,
83962306a36Sopenharmony_ci	.freq_tbl = ftbl_camss_vfe_cpp_clk,
84062306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
84162306a36Sopenharmony_ci		.name = "cpp_clk_src",
84262306a36Sopenharmony_ci		.parent_data = mmcc_xo_mmpll0_1_4_gpll0,
84362306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmcc_xo_mmpll0_1_4_gpll0),
84462306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
84562306a36Sopenharmony_ci	},
84662306a36Sopenharmony_ci};
84762306a36Sopenharmony_ci
84862306a36Sopenharmony_cistatic struct clk_rcg2 byte0_clk_src = {
84962306a36Sopenharmony_ci	.cmd_rcgr = 0x2120,
85062306a36Sopenharmony_ci	.hid_width = 5,
85162306a36Sopenharmony_ci	.parent_map = mmcc_xo_dsibyte_hdmi_edp_gpll0_map,
85262306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
85362306a36Sopenharmony_ci		.name = "byte0_clk_src",
85462306a36Sopenharmony_ci		.parent_data = mmcc_xo_dsibyte_hdmi_edp_gpll0,
85562306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmcc_xo_dsibyte_hdmi_edp_gpll0),
85662306a36Sopenharmony_ci		.ops = &clk_byte2_ops,
85762306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
85862306a36Sopenharmony_ci	},
85962306a36Sopenharmony_ci};
86062306a36Sopenharmony_ci
86162306a36Sopenharmony_cistatic struct clk_rcg2 byte1_clk_src = {
86262306a36Sopenharmony_ci	.cmd_rcgr = 0x2140,
86362306a36Sopenharmony_ci	.hid_width = 5,
86462306a36Sopenharmony_ci	.parent_map = mmcc_xo_dsibyte_hdmi_edp_gpll0_map,
86562306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
86662306a36Sopenharmony_ci		.name = "byte1_clk_src",
86762306a36Sopenharmony_ci		.parent_data = mmcc_xo_dsibyte_hdmi_edp_gpll0,
86862306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmcc_xo_dsibyte_hdmi_edp_gpll0),
86962306a36Sopenharmony_ci		.ops = &clk_byte2_ops,
87062306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
87162306a36Sopenharmony_ci	},
87262306a36Sopenharmony_ci};
87362306a36Sopenharmony_ci
87462306a36Sopenharmony_cistatic struct freq_tbl ftbl_mdss_edpaux_clk[] = {
87562306a36Sopenharmony_ci	F(19200000, P_XO, 1, 0, 0),
87662306a36Sopenharmony_ci	{ }
87762306a36Sopenharmony_ci};
87862306a36Sopenharmony_ci
87962306a36Sopenharmony_cistatic struct clk_rcg2 edpaux_clk_src = {
88062306a36Sopenharmony_ci	.cmd_rcgr = 0x20e0,
88162306a36Sopenharmony_ci	.hid_width = 5,
88262306a36Sopenharmony_ci	.parent_map = mmcc_xo_mmpll0_mmpll1_gpll0_map,
88362306a36Sopenharmony_ci	.freq_tbl = ftbl_mdss_edpaux_clk,
88462306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
88562306a36Sopenharmony_ci		.name = "edpaux_clk_src",
88662306a36Sopenharmony_ci		.parent_data = mmcc_xo_mmpll0_mmpll1_gpll0,
88762306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmcc_xo_mmpll0_mmpll1_gpll0),
88862306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
88962306a36Sopenharmony_ci	},
89062306a36Sopenharmony_ci};
89162306a36Sopenharmony_ci
89262306a36Sopenharmony_cistatic struct freq_tbl ftbl_mdss_edplink_clk[] = {
89362306a36Sopenharmony_ci	F(135000000, P_EDPLINK, 2, 0, 0),
89462306a36Sopenharmony_ci	F(270000000, P_EDPLINK, 11, 0, 0),
89562306a36Sopenharmony_ci	{ }
89662306a36Sopenharmony_ci};
89762306a36Sopenharmony_ci
89862306a36Sopenharmony_cistatic struct clk_rcg2 edplink_clk_src = {
89962306a36Sopenharmony_ci	.cmd_rcgr = 0x20c0,
90062306a36Sopenharmony_ci	.hid_width = 5,
90162306a36Sopenharmony_ci	.parent_map = mmcc_xo_dsi_hdmi_edp_gpll0_map,
90262306a36Sopenharmony_ci	.freq_tbl = ftbl_mdss_edplink_clk,
90362306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
90462306a36Sopenharmony_ci		.name = "edplink_clk_src",
90562306a36Sopenharmony_ci		.parent_data = mmcc_xo_dsi_hdmi_edp_gpll0,
90662306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmcc_xo_dsi_hdmi_edp_gpll0),
90762306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
90862306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
90962306a36Sopenharmony_ci	},
91062306a36Sopenharmony_ci};
91162306a36Sopenharmony_ci
91262306a36Sopenharmony_cistatic struct freq_tbl edp_pixel_freq_tbl[] = {
91362306a36Sopenharmony_ci	{ .src = P_EDPVCO },
91462306a36Sopenharmony_ci	{ }
91562306a36Sopenharmony_ci};
91662306a36Sopenharmony_ci
91762306a36Sopenharmony_cistatic struct clk_rcg2 edppixel_clk_src = {
91862306a36Sopenharmony_ci	.cmd_rcgr = 0x20a0,
91962306a36Sopenharmony_ci	.mnd_width = 8,
92062306a36Sopenharmony_ci	.hid_width = 5,
92162306a36Sopenharmony_ci	.parent_map = mmcc_xo_dsi_hdmi_edp_map,
92262306a36Sopenharmony_ci	.freq_tbl = edp_pixel_freq_tbl,
92362306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
92462306a36Sopenharmony_ci		.name = "edppixel_clk_src",
92562306a36Sopenharmony_ci		.parent_data = mmcc_xo_dsi_hdmi_edp,
92662306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmcc_xo_dsi_hdmi_edp),
92762306a36Sopenharmony_ci		.ops = &clk_edp_pixel_ops,
92862306a36Sopenharmony_ci	},
92962306a36Sopenharmony_ci};
93062306a36Sopenharmony_ci
93162306a36Sopenharmony_cistatic struct freq_tbl ftbl_mdss_esc0_1_clk[] = {
93262306a36Sopenharmony_ci	F(19200000, P_XO, 1, 0, 0),
93362306a36Sopenharmony_ci	{ }
93462306a36Sopenharmony_ci};
93562306a36Sopenharmony_ci
93662306a36Sopenharmony_cistatic struct clk_rcg2 esc0_clk_src = {
93762306a36Sopenharmony_ci	.cmd_rcgr = 0x2160,
93862306a36Sopenharmony_ci	.hid_width = 5,
93962306a36Sopenharmony_ci	.parent_map = mmcc_xo_dsibyte_hdmi_edp_gpll0_map,
94062306a36Sopenharmony_ci	.freq_tbl = ftbl_mdss_esc0_1_clk,
94162306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
94262306a36Sopenharmony_ci		.name = "esc0_clk_src",
94362306a36Sopenharmony_ci		.parent_data = mmcc_xo_dsibyte_hdmi_edp_gpll0,
94462306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmcc_xo_dsibyte_hdmi_edp_gpll0),
94562306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
94662306a36Sopenharmony_ci	},
94762306a36Sopenharmony_ci};
94862306a36Sopenharmony_ci
94962306a36Sopenharmony_cistatic struct clk_rcg2 esc1_clk_src = {
95062306a36Sopenharmony_ci	.cmd_rcgr = 0x2180,
95162306a36Sopenharmony_ci	.hid_width = 5,
95262306a36Sopenharmony_ci	.parent_map = mmcc_xo_dsibyte_hdmi_edp_gpll0_map,
95362306a36Sopenharmony_ci	.freq_tbl = ftbl_mdss_esc0_1_clk,
95462306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
95562306a36Sopenharmony_ci		.name = "esc1_clk_src",
95662306a36Sopenharmony_ci		.parent_data = mmcc_xo_dsibyte_hdmi_edp_gpll0,
95762306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmcc_xo_dsibyte_hdmi_edp_gpll0),
95862306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
95962306a36Sopenharmony_ci	},
96062306a36Sopenharmony_ci};
96162306a36Sopenharmony_ci
96262306a36Sopenharmony_cistatic struct freq_tbl extpclk_freq_tbl[] = {
96362306a36Sopenharmony_ci	{ .src = P_HDMIPLL },
96462306a36Sopenharmony_ci	{ }
96562306a36Sopenharmony_ci};
96662306a36Sopenharmony_ci
96762306a36Sopenharmony_cistatic struct clk_rcg2 extpclk_clk_src = {
96862306a36Sopenharmony_ci	.cmd_rcgr = 0x2060,
96962306a36Sopenharmony_ci	.hid_width = 5,
97062306a36Sopenharmony_ci	.parent_map = mmcc_xo_dsi_hdmi_edp_gpll0_map,
97162306a36Sopenharmony_ci	.freq_tbl = extpclk_freq_tbl,
97262306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
97362306a36Sopenharmony_ci		.name = "extpclk_clk_src",
97462306a36Sopenharmony_ci		.parent_data = mmcc_xo_dsi_hdmi_edp_gpll0,
97562306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmcc_xo_dsi_hdmi_edp_gpll0),
97662306a36Sopenharmony_ci		.ops = &clk_byte_ops,
97762306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
97862306a36Sopenharmony_ci	},
97962306a36Sopenharmony_ci};
98062306a36Sopenharmony_ci
98162306a36Sopenharmony_cistatic struct freq_tbl ftbl_mdss_hdmi_clk[] = {
98262306a36Sopenharmony_ci	F(19200000, P_XO, 1, 0, 0),
98362306a36Sopenharmony_ci	{ }
98462306a36Sopenharmony_ci};
98562306a36Sopenharmony_ci
98662306a36Sopenharmony_cistatic struct clk_rcg2 hdmi_clk_src = {
98762306a36Sopenharmony_ci	.cmd_rcgr = 0x2100,
98862306a36Sopenharmony_ci	.hid_width = 5,
98962306a36Sopenharmony_ci	.parent_map = mmcc_xo_mmpll0_mmpll1_gpll0_map,
99062306a36Sopenharmony_ci	.freq_tbl = ftbl_mdss_hdmi_clk,
99162306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
99262306a36Sopenharmony_ci		.name = "hdmi_clk_src",
99362306a36Sopenharmony_ci		.parent_data = mmcc_xo_mmpll0_mmpll1_gpll0,
99462306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmcc_xo_mmpll0_mmpll1_gpll0),
99562306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
99662306a36Sopenharmony_ci	},
99762306a36Sopenharmony_ci};
99862306a36Sopenharmony_ci
99962306a36Sopenharmony_cistatic struct freq_tbl ftbl_mdss_vsync_clk[] = {
100062306a36Sopenharmony_ci	F(19200000, P_XO, 1, 0, 0),
100162306a36Sopenharmony_ci	{ }
100262306a36Sopenharmony_ci};
100362306a36Sopenharmony_ci
100462306a36Sopenharmony_cistatic struct clk_rcg2 vsync_clk_src = {
100562306a36Sopenharmony_ci	.cmd_rcgr = 0x2080,
100662306a36Sopenharmony_ci	.hid_width = 5,
100762306a36Sopenharmony_ci	.parent_map = mmcc_xo_mmpll0_mmpll1_gpll0_map,
100862306a36Sopenharmony_ci	.freq_tbl = ftbl_mdss_vsync_clk,
100962306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
101062306a36Sopenharmony_ci		.name = "vsync_clk_src",
101162306a36Sopenharmony_ci		.parent_data = mmcc_xo_mmpll0_mmpll1_gpll0,
101262306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmcc_xo_mmpll0_mmpll1_gpll0),
101362306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
101462306a36Sopenharmony_ci	},
101562306a36Sopenharmony_ci};
101662306a36Sopenharmony_ci
101762306a36Sopenharmony_cistatic struct freq_tbl ftbl_mmss_rbcpr_clk[] = {
101862306a36Sopenharmony_ci	F(50000000, P_GPLL0, 12, 0, 0),
101962306a36Sopenharmony_ci	{ }
102062306a36Sopenharmony_ci};
102162306a36Sopenharmony_ci
102262306a36Sopenharmony_cistatic struct clk_rcg2 rbcpr_clk_src = {
102362306a36Sopenharmony_ci	.cmd_rcgr = 0x4060,
102462306a36Sopenharmony_ci	.hid_width = 5,
102562306a36Sopenharmony_ci	.parent_map = mmcc_xo_mmpll0_mmpll1_gpll0_map,
102662306a36Sopenharmony_ci	.freq_tbl = ftbl_mmss_rbcpr_clk,
102762306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
102862306a36Sopenharmony_ci		.name = "rbcpr_clk_src",
102962306a36Sopenharmony_ci		.parent_data = mmcc_xo_mmpll0_mmpll1_gpll0,
103062306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmcc_xo_mmpll0_mmpll1_gpll0),
103162306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
103262306a36Sopenharmony_ci	},
103362306a36Sopenharmony_ci};
103462306a36Sopenharmony_ci
103562306a36Sopenharmony_cistatic struct freq_tbl ftbl_oxili_rbbmtimer_clk[] = {
103662306a36Sopenharmony_ci	F(19200000, P_XO, 1, 0, 0),
103762306a36Sopenharmony_ci	{ }
103862306a36Sopenharmony_ci};
103962306a36Sopenharmony_ci
104062306a36Sopenharmony_cistatic struct clk_rcg2 rbbmtimer_clk_src = {
104162306a36Sopenharmony_ci	.cmd_rcgr = 0x4090,
104262306a36Sopenharmony_ci	.hid_width = 5,
104362306a36Sopenharmony_ci	.parent_map = mmcc_xo_mmpll0_mmpll1_gpll0_map,
104462306a36Sopenharmony_ci	.freq_tbl = ftbl_oxili_rbbmtimer_clk,
104562306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
104662306a36Sopenharmony_ci		.name = "rbbmtimer_clk_src",
104762306a36Sopenharmony_ci		.parent_data = mmcc_xo_mmpll0_mmpll1_gpll0,
104862306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmcc_xo_mmpll0_mmpll1_gpll0),
104962306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
105062306a36Sopenharmony_ci	},
105162306a36Sopenharmony_ci};
105262306a36Sopenharmony_ci
105362306a36Sopenharmony_cistatic struct freq_tbl ftbl_vpu_maple_clk[] = {
105462306a36Sopenharmony_ci	F(50000000, P_GPLL0, 12, 0, 0),
105562306a36Sopenharmony_ci	F(100000000, P_GPLL0, 6, 0, 0),
105662306a36Sopenharmony_ci	F(133330000, P_GPLL0, 4.5, 0, 0),
105762306a36Sopenharmony_ci	F(200000000, P_MMPLL0, 4, 0, 0),
105862306a36Sopenharmony_ci	F(266670000, P_MMPLL0, 3, 0, 0),
105962306a36Sopenharmony_ci	F(465000000, P_MMPLL3, 2, 0, 0),
106062306a36Sopenharmony_ci	{ }
106162306a36Sopenharmony_ci};
106262306a36Sopenharmony_ci
106362306a36Sopenharmony_cistatic struct clk_rcg2 maple_clk_src = {
106462306a36Sopenharmony_ci	.cmd_rcgr = 0x1320,
106562306a36Sopenharmony_ci	.hid_width = 5,
106662306a36Sopenharmony_ci	.parent_map = mmcc_xo_mmpll0_mmpll1_gpll0_map,
106762306a36Sopenharmony_ci	.freq_tbl = ftbl_vpu_maple_clk,
106862306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
106962306a36Sopenharmony_ci		.name = "maple_clk_src",
107062306a36Sopenharmony_ci		.parent_data = mmcc_xo_mmpll0_mmpll1_gpll0,
107162306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmcc_xo_mmpll0_mmpll1_gpll0),
107262306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
107362306a36Sopenharmony_ci	},
107462306a36Sopenharmony_ci};
107562306a36Sopenharmony_ci
107662306a36Sopenharmony_cistatic struct freq_tbl ftbl_vpu_vdp_clk[] = {
107762306a36Sopenharmony_ci	F(50000000, P_GPLL0, 12, 0, 0),
107862306a36Sopenharmony_ci	F(100000000, P_GPLL0, 6, 0, 0),
107962306a36Sopenharmony_ci	F(200000000, P_MMPLL0, 4, 0, 0),
108062306a36Sopenharmony_ci	F(320000000, P_MMPLL0, 2.5, 0, 0),
108162306a36Sopenharmony_ci	F(400000000, P_MMPLL0, 2, 0, 0),
108262306a36Sopenharmony_ci	{ }
108362306a36Sopenharmony_ci};
108462306a36Sopenharmony_ci
108562306a36Sopenharmony_cistatic struct clk_rcg2 vdp_clk_src = {
108662306a36Sopenharmony_ci	.cmd_rcgr = 0x1300,
108762306a36Sopenharmony_ci	.hid_width = 5,
108862306a36Sopenharmony_ci	.parent_map = mmcc_xo_mmpll0_mmpll1_gpll0_map,
108962306a36Sopenharmony_ci	.freq_tbl = ftbl_vpu_vdp_clk,
109062306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
109162306a36Sopenharmony_ci		.name = "vdp_clk_src",
109262306a36Sopenharmony_ci		.parent_data = mmcc_xo_mmpll0_mmpll1_gpll0,
109362306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmcc_xo_mmpll0_mmpll1_gpll0),
109462306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
109562306a36Sopenharmony_ci	},
109662306a36Sopenharmony_ci};
109762306a36Sopenharmony_ci
109862306a36Sopenharmony_cistatic struct freq_tbl ftbl_vpu_bus_clk[] = {
109962306a36Sopenharmony_ci	F(40000000, P_GPLL0, 15, 0, 0),
110062306a36Sopenharmony_ci	F(80000000, P_MMPLL0, 10, 0, 0),
110162306a36Sopenharmony_ci	{ }
110262306a36Sopenharmony_ci};
110362306a36Sopenharmony_ci
110462306a36Sopenharmony_cistatic struct clk_rcg2 vpu_bus_clk_src = {
110562306a36Sopenharmony_ci	.cmd_rcgr = 0x1340,
110662306a36Sopenharmony_ci	.hid_width = 5,
110762306a36Sopenharmony_ci	.parent_map = mmcc_xo_mmpll0_mmpll1_gpll0_map,
110862306a36Sopenharmony_ci	.freq_tbl = ftbl_vpu_bus_clk,
110962306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
111062306a36Sopenharmony_ci		.name = "vpu_bus_clk_src",
111162306a36Sopenharmony_ci		.parent_data = mmcc_xo_mmpll0_mmpll1_gpll0,
111262306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(mmcc_xo_mmpll0_mmpll1_gpll0),
111362306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
111462306a36Sopenharmony_ci	},
111562306a36Sopenharmony_ci};
111662306a36Sopenharmony_ci
111762306a36Sopenharmony_cistatic struct clk_branch mmss_cxo_clk = {
111862306a36Sopenharmony_ci	.halt_reg = 0x5104,
111962306a36Sopenharmony_ci	.clkr = {
112062306a36Sopenharmony_ci		.enable_reg = 0x5104,
112162306a36Sopenharmony_ci		.enable_mask = BIT(0),
112262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
112362306a36Sopenharmony_ci			.name = "mmss_cxo_clk",
112462306a36Sopenharmony_ci			.parent_data = (const struct clk_parent_data[]){
112562306a36Sopenharmony_ci				{ .fw_name = "xo", .name = "xo_board" },
112662306a36Sopenharmony_ci			},
112762306a36Sopenharmony_ci			.num_parents = 1,
112862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
112962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
113062306a36Sopenharmony_ci		},
113162306a36Sopenharmony_ci	},
113262306a36Sopenharmony_ci};
113362306a36Sopenharmony_ci
113462306a36Sopenharmony_cistatic struct clk_branch mmss_sleepclk_clk = {
113562306a36Sopenharmony_ci	.halt_reg = 0x5100,
113662306a36Sopenharmony_ci	.clkr = {
113762306a36Sopenharmony_ci		.enable_reg = 0x5100,
113862306a36Sopenharmony_ci		.enable_mask = BIT(0),
113962306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
114062306a36Sopenharmony_ci			.name = "mmss_sleepclk_clk",
114162306a36Sopenharmony_ci			.parent_data = (const struct clk_parent_data[]){
114262306a36Sopenharmony_ci				{ .fw_name = "sleep_clk", .name = "sleep_clk" },
114362306a36Sopenharmony_ci			},
114462306a36Sopenharmony_ci			.num_parents = 1,
114562306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
114662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
114762306a36Sopenharmony_ci		},
114862306a36Sopenharmony_ci	},
114962306a36Sopenharmony_ci};
115062306a36Sopenharmony_ci
115162306a36Sopenharmony_cistatic struct clk_branch avsync_ahb_clk = {
115262306a36Sopenharmony_ci	.halt_reg = 0x2414,
115362306a36Sopenharmony_ci	.clkr = {
115462306a36Sopenharmony_ci		.enable_reg = 0x2414,
115562306a36Sopenharmony_ci		.enable_mask = BIT(0),
115662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
115762306a36Sopenharmony_ci			.name = "avsync_ahb_clk",
115862306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
115962306a36Sopenharmony_ci				&mmss_ahb_clk_src.clkr.hw
116062306a36Sopenharmony_ci			},
116162306a36Sopenharmony_ci			.num_parents = 1,
116262306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
116362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
116462306a36Sopenharmony_ci		},
116562306a36Sopenharmony_ci	},
116662306a36Sopenharmony_ci};
116762306a36Sopenharmony_ci
116862306a36Sopenharmony_cistatic struct clk_branch avsync_edppixel_clk = {
116962306a36Sopenharmony_ci	.halt_reg = 0x2418,
117062306a36Sopenharmony_ci	.clkr = {
117162306a36Sopenharmony_ci		.enable_reg = 0x2418,
117262306a36Sopenharmony_ci		.enable_mask = BIT(0),
117362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
117462306a36Sopenharmony_ci			.name = "avsync_edppixel_clk",
117562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
117662306a36Sopenharmony_ci				&edppixel_clk_src.clkr.hw
117762306a36Sopenharmony_ci			},
117862306a36Sopenharmony_ci			.num_parents = 1,
117962306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
118062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
118162306a36Sopenharmony_ci		},
118262306a36Sopenharmony_ci	},
118362306a36Sopenharmony_ci};
118462306a36Sopenharmony_ci
118562306a36Sopenharmony_cistatic struct clk_branch avsync_extpclk_clk = {
118662306a36Sopenharmony_ci	.halt_reg = 0x2410,
118762306a36Sopenharmony_ci	.clkr = {
118862306a36Sopenharmony_ci		.enable_reg = 0x2410,
118962306a36Sopenharmony_ci		.enable_mask = BIT(0),
119062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
119162306a36Sopenharmony_ci			.name = "avsync_extpclk_clk",
119262306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
119362306a36Sopenharmony_ci				&extpclk_clk_src.clkr.hw
119462306a36Sopenharmony_ci			},
119562306a36Sopenharmony_ci			.num_parents = 1,
119662306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
119762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
119862306a36Sopenharmony_ci		},
119962306a36Sopenharmony_ci	},
120062306a36Sopenharmony_ci};
120162306a36Sopenharmony_ci
120262306a36Sopenharmony_cistatic struct clk_branch avsync_pclk0_clk = {
120362306a36Sopenharmony_ci	.halt_reg = 0x241c,
120462306a36Sopenharmony_ci	.clkr = {
120562306a36Sopenharmony_ci		.enable_reg = 0x241c,
120662306a36Sopenharmony_ci		.enable_mask = BIT(0),
120762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
120862306a36Sopenharmony_ci			.name = "avsync_pclk0_clk",
120962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
121062306a36Sopenharmony_ci				&pclk0_clk_src.clkr.hw
121162306a36Sopenharmony_ci			},
121262306a36Sopenharmony_ci			.num_parents = 1,
121362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
121462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
121562306a36Sopenharmony_ci		},
121662306a36Sopenharmony_ci	},
121762306a36Sopenharmony_ci};
121862306a36Sopenharmony_ci
121962306a36Sopenharmony_cistatic struct clk_branch avsync_pclk1_clk = {
122062306a36Sopenharmony_ci	.halt_reg = 0x2420,
122162306a36Sopenharmony_ci	.clkr = {
122262306a36Sopenharmony_ci		.enable_reg = 0x2420,
122362306a36Sopenharmony_ci		.enable_mask = BIT(0),
122462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
122562306a36Sopenharmony_ci			.name = "avsync_pclk1_clk",
122662306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
122762306a36Sopenharmony_ci				&pclk1_clk_src.clkr.hw
122862306a36Sopenharmony_ci			},
122962306a36Sopenharmony_ci			.num_parents = 1,
123062306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
123162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
123262306a36Sopenharmony_ci		},
123362306a36Sopenharmony_ci	},
123462306a36Sopenharmony_ci};
123562306a36Sopenharmony_ci
123662306a36Sopenharmony_cistatic struct clk_branch avsync_vp_clk = {
123762306a36Sopenharmony_ci	.halt_reg = 0x2404,
123862306a36Sopenharmony_ci	.clkr = {
123962306a36Sopenharmony_ci		.enable_reg = 0x2404,
124062306a36Sopenharmony_ci		.enable_mask = BIT(0),
124162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
124262306a36Sopenharmony_ci			.name = "avsync_vp_clk",
124362306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
124462306a36Sopenharmony_ci				&vp_clk_src.clkr.hw
124562306a36Sopenharmony_ci			},
124662306a36Sopenharmony_ci			.num_parents = 1,
124762306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
124862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
124962306a36Sopenharmony_ci		},
125062306a36Sopenharmony_ci	},
125162306a36Sopenharmony_ci};
125262306a36Sopenharmony_ci
125362306a36Sopenharmony_cistatic struct clk_branch camss_ahb_clk = {
125462306a36Sopenharmony_ci	.halt_reg = 0x348c,
125562306a36Sopenharmony_ci	.clkr = {
125662306a36Sopenharmony_ci		.enable_reg = 0x348c,
125762306a36Sopenharmony_ci		.enable_mask = BIT(0),
125862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
125962306a36Sopenharmony_ci			.name = "camss_ahb_clk",
126062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
126162306a36Sopenharmony_ci				&mmss_ahb_clk_src.clkr.hw
126262306a36Sopenharmony_ci			},
126362306a36Sopenharmony_ci			.num_parents = 1,
126462306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
126562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
126662306a36Sopenharmony_ci		},
126762306a36Sopenharmony_ci	},
126862306a36Sopenharmony_ci};
126962306a36Sopenharmony_ci
127062306a36Sopenharmony_cistatic struct clk_branch camss_cci_cci_ahb_clk = {
127162306a36Sopenharmony_ci	.halt_reg = 0x3348,
127262306a36Sopenharmony_ci	.clkr = {
127362306a36Sopenharmony_ci		.enable_reg = 0x3348,
127462306a36Sopenharmony_ci		.enable_mask = BIT(0),
127562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
127662306a36Sopenharmony_ci			.name = "camss_cci_cci_ahb_clk",
127762306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
127862306a36Sopenharmony_ci				&mmss_ahb_clk_src.clkr.hw
127962306a36Sopenharmony_ci			},
128062306a36Sopenharmony_ci			.num_parents = 1,
128162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
128262306a36Sopenharmony_ci		},
128362306a36Sopenharmony_ci	},
128462306a36Sopenharmony_ci};
128562306a36Sopenharmony_ci
128662306a36Sopenharmony_cistatic struct clk_branch camss_cci_cci_clk = {
128762306a36Sopenharmony_ci	.halt_reg = 0x3344,
128862306a36Sopenharmony_ci	.clkr = {
128962306a36Sopenharmony_ci		.enable_reg = 0x3344,
129062306a36Sopenharmony_ci		.enable_mask = BIT(0),
129162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
129262306a36Sopenharmony_ci			.name = "camss_cci_cci_clk",
129362306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
129462306a36Sopenharmony_ci				&cci_clk_src.clkr.hw
129562306a36Sopenharmony_ci			},
129662306a36Sopenharmony_ci			.num_parents = 1,
129762306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
129862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
129962306a36Sopenharmony_ci		},
130062306a36Sopenharmony_ci	},
130162306a36Sopenharmony_ci};
130262306a36Sopenharmony_ci
130362306a36Sopenharmony_cistatic struct clk_branch camss_csi0_ahb_clk = {
130462306a36Sopenharmony_ci	.halt_reg = 0x30bc,
130562306a36Sopenharmony_ci	.clkr = {
130662306a36Sopenharmony_ci		.enable_reg = 0x30bc,
130762306a36Sopenharmony_ci		.enable_mask = BIT(0),
130862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
130962306a36Sopenharmony_ci			.name = "camss_csi0_ahb_clk",
131062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
131162306a36Sopenharmony_ci				&mmss_ahb_clk_src.clkr.hw
131262306a36Sopenharmony_ci			},
131362306a36Sopenharmony_ci			.num_parents = 1,
131462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
131562306a36Sopenharmony_ci		},
131662306a36Sopenharmony_ci	},
131762306a36Sopenharmony_ci};
131862306a36Sopenharmony_ci
131962306a36Sopenharmony_cistatic struct clk_branch camss_csi0_clk = {
132062306a36Sopenharmony_ci	.halt_reg = 0x30b4,
132162306a36Sopenharmony_ci	.clkr = {
132262306a36Sopenharmony_ci		.enable_reg = 0x30b4,
132362306a36Sopenharmony_ci		.enable_mask = BIT(0),
132462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
132562306a36Sopenharmony_ci			.name = "camss_csi0_clk",
132662306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
132762306a36Sopenharmony_ci				&csi0_clk_src.clkr.hw
132862306a36Sopenharmony_ci			},
132962306a36Sopenharmony_ci			.num_parents = 1,
133062306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
133162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
133262306a36Sopenharmony_ci		},
133362306a36Sopenharmony_ci	},
133462306a36Sopenharmony_ci};
133562306a36Sopenharmony_ci
133662306a36Sopenharmony_cistatic struct clk_branch camss_csi0phy_clk = {
133762306a36Sopenharmony_ci	.halt_reg = 0x30c4,
133862306a36Sopenharmony_ci	.clkr = {
133962306a36Sopenharmony_ci		.enable_reg = 0x30c4,
134062306a36Sopenharmony_ci		.enable_mask = BIT(0),
134162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
134262306a36Sopenharmony_ci			.name = "camss_csi0phy_clk",
134362306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
134462306a36Sopenharmony_ci				&csi0_clk_src.clkr.hw
134562306a36Sopenharmony_ci			},
134662306a36Sopenharmony_ci			.num_parents = 1,
134762306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
134862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
134962306a36Sopenharmony_ci		},
135062306a36Sopenharmony_ci	},
135162306a36Sopenharmony_ci};
135262306a36Sopenharmony_ci
135362306a36Sopenharmony_cistatic struct clk_branch camss_csi0pix_clk = {
135462306a36Sopenharmony_ci	.halt_reg = 0x30e4,
135562306a36Sopenharmony_ci	.clkr = {
135662306a36Sopenharmony_ci		.enable_reg = 0x30e4,
135762306a36Sopenharmony_ci		.enable_mask = BIT(0),
135862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
135962306a36Sopenharmony_ci			.name = "camss_csi0pix_clk",
136062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
136162306a36Sopenharmony_ci				&csi0_clk_src.clkr.hw
136262306a36Sopenharmony_ci			},
136362306a36Sopenharmony_ci			.num_parents = 1,
136462306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
136562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
136662306a36Sopenharmony_ci		},
136762306a36Sopenharmony_ci	},
136862306a36Sopenharmony_ci};
136962306a36Sopenharmony_ci
137062306a36Sopenharmony_cistatic struct clk_branch camss_csi0rdi_clk = {
137162306a36Sopenharmony_ci	.halt_reg = 0x30d4,
137262306a36Sopenharmony_ci	.clkr = {
137362306a36Sopenharmony_ci		.enable_reg = 0x30d4,
137462306a36Sopenharmony_ci		.enable_mask = BIT(0),
137562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
137662306a36Sopenharmony_ci			.name = "camss_csi0rdi_clk",
137762306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
137862306a36Sopenharmony_ci				&csi0_clk_src.clkr.hw
137962306a36Sopenharmony_ci			},
138062306a36Sopenharmony_ci			.num_parents = 1,
138162306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
138262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
138362306a36Sopenharmony_ci		},
138462306a36Sopenharmony_ci	},
138562306a36Sopenharmony_ci};
138662306a36Sopenharmony_ci
138762306a36Sopenharmony_cistatic struct clk_branch camss_csi1_ahb_clk = {
138862306a36Sopenharmony_ci	.halt_reg = 0x3128,
138962306a36Sopenharmony_ci	.clkr = {
139062306a36Sopenharmony_ci		.enable_reg = 0x3128,
139162306a36Sopenharmony_ci		.enable_mask = BIT(0),
139262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
139362306a36Sopenharmony_ci			.name = "camss_csi1_ahb_clk",
139462306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
139562306a36Sopenharmony_ci				&mmss_ahb_clk_src.clkr.hw
139662306a36Sopenharmony_ci			},
139762306a36Sopenharmony_ci			.num_parents = 1,
139862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
139962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
140062306a36Sopenharmony_ci		},
140162306a36Sopenharmony_ci	},
140262306a36Sopenharmony_ci};
140362306a36Sopenharmony_ci
140462306a36Sopenharmony_cistatic struct clk_branch camss_csi1_clk = {
140562306a36Sopenharmony_ci	.halt_reg = 0x3124,
140662306a36Sopenharmony_ci	.clkr = {
140762306a36Sopenharmony_ci		.enable_reg = 0x3124,
140862306a36Sopenharmony_ci		.enable_mask = BIT(0),
140962306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
141062306a36Sopenharmony_ci			.name = "camss_csi1_clk",
141162306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
141262306a36Sopenharmony_ci				&csi1_clk_src.clkr.hw
141362306a36Sopenharmony_ci			},
141462306a36Sopenharmony_ci			.num_parents = 1,
141562306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
141662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
141762306a36Sopenharmony_ci		},
141862306a36Sopenharmony_ci	},
141962306a36Sopenharmony_ci};
142062306a36Sopenharmony_ci
142162306a36Sopenharmony_cistatic struct clk_branch camss_csi1phy_clk = {
142262306a36Sopenharmony_ci	.halt_reg = 0x3134,
142362306a36Sopenharmony_ci	.clkr = {
142462306a36Sopenharmony_ci		.enable_reg = 0x3134,
142562306a36Sopenharmony_ci		.enable_mask = BIT(0),
142662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
142762306a36Sopenharmony_ci			.name = "camss_csi1phy_clk",
142862306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
142962306a36Sopenharmony_ci				&csi1_clk_src.clkr.hw
143062306a36Sopenharmony_ci			},
143162306a36Sopenharmony_ci			.num_parents = 1,
143262306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
143362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
143462306a36Sopenharmony_ci		},
143562306a36Sopenharmony_ci	},
143662306a36Sopenharmony_ci};
143762306a36Sopenharmony_ci
143862306a36Sopenharmony_cistatic struct clk_branch camss_csi1pix_clk = {
143962306a36Sopenharmony_ci	.halt_reg = 0x3154,
144062306a36Sopenharmony_ci	.clkr = {
144162306a36Sopenharmony_ci		.enable_reg = 0x3154,
144262306a36Sopenharmony_ci		.enable_mask = BIT(0),
144362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
144462306a36Sopenharmony_ci			.name = "camss_csi1pix_clk",
144562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
144662306a36Sopenharmony_ci				&csi1_clk_src.clkr.hw
144762306a36Sopenharmony_ci			},
144862306a36Sopenharmony_ci			.num_parents = 1,
144962306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
145062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
145162306a36Sopenharmony_ci		},
145262306a36Sopenharmony_ci	},
145362306a36Sopenharmony_ci};
145462306a36Sopenharmony_ci
145562306a36Sopenharmony_cistatic struct clk_branch camss_csi1rdi_clk = {
145662306a36Sopenharmony_ci	.halt_reg = 0x3144,
145762306a36Sopenharmony_ci	.clkr = {
145862306a36Sopenharmony_ci		.enable_reg = 0x3144,
145962306a36Sopenharmony_ci		.enable_mask = BIT(0),
146062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
146162306a36Sopenharmony_ci			.name = "camss_csi1rdi_clk",
146262306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
146362306a36Sopenharmony_ci				&csi1_clk_src.clkr.hw
146462306a36Sopenharmony_ci			},
146562306a36Sopenharmony_ci			.num_parents = 1,
146662306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
146762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
146862306a36Sopenharmony_ci		},
146962306a36Sopenharmony_ci	},
147062306a36Sopenharmony_ci};
147162306a36Sopenharmony_ci
147262306a36Sopenharmony_cistatic struct clk_branch camss_csi2_ahb_clk = {
147362306a36Sopenharmony_ci	.halt_reg = 0x3188,
147462306a36Sopenharmony_ci	.clkr = {
147562306a36Sopenharmony_ci		.enable_reg = 0x3188,
147662306a36Sopenharmony_ci		.enable_mask = BIT(0),
147762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
147862306a36Sopenharmony_ci			.name = "camss_csi2_ahb_clk",
147962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
148062306a36Sopenharmony_ci				&mmss_ahb_clk_src.clkr.hw
148162306a36Sopenharmony_ci			},
148262306a36Sopenharmony_ci			.num_parents = 1,
148362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
148462306a36Sopenharmony_ci		},
148562306a36Sopenharmony_ci	},
148662306a36Sopenharmony_ci};
148762306a36Sopenharmony_ci
148862306a36Sopenharmony_cistatic struct clk_branch camss_csi2_clk = {
148962306a36Sopenharmony_ci	.halt_reg = 0x3184,
149062306a36Sopenharmony_ci	.clkr = {
149162306a36Sopenharmony_ci		.enable_reg = 0x3184,
149262306a36Sopenharmony_ci		.enable_mask = BIT(0),
149362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
149462306a36Sopenharmony_ci			.name = "camss_csi2_clk",
149562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
149662306a36Sopenharmony_ci				&csi2_clk_src.clkr.hw
149762306a36Sopenharmony_ci			},
149862306a36Sopenharmony_ci			.num_parents = 1,
149962306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
150062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
150162306a36Sopenharmony_ci		},
150262306a36Sopenharmony_ci	},
150362306a36Sopenharmony_ci};
150462306a36Sopenharmony_ci
150562306a36Sopenharmony_cistatic struct clk_branch camss_csi2phy_clk = {
150662306a36Sopenharmony_ci	.halt_reg = 0x3194,
150762306a36Sopenharmony_ci	.clkr = {
150862306a36Sopenharmony_ci		.enable_reg = 0x3194,
150962306a36Sopenharmony_ci		.enable_mask = BIT(0),
151062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
151162306a36Sopenharmony_ci			.name = "camss_csi2phy_clk",
151262306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
151362306a36Sopenharmony_ci				&csi2_clk_src.clkr.hw
151462306a36Sopenharmony_ci			},
151562306a36Sopenharmony_ci			.num_parents = 1,
151662306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
151762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
151862306a36Sopenharmony_ci		},
151962306a36Sopenharmony_ci	},
152062306a36Sopenharmony_ci};
152162306a36Sopenharmony_ci
152262306a36Sopenharmony_cistatic struct clk_branch camss_csi2pix_clk = {
152362306a36Sopenharmony_ci	.halt_reg = 0x31b4,
152462306a36Sopenharmony_ci	.clkr = {
152562306a36Sopenharmony_ci		.enable_reg = 0x31b4,
152662306a36Sopenharmony_ci		.enable_mask = BIT(0),
152762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
152862306a36Sopenharmony_ci			.name = "camss_csi2pix_clk",
152962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
153062306a36Sopenharmony_ci				&csi2_clk_src.clkr.hw
153162306a36Sopenharmony_ci			},
153262306a36Sopenharmony_ci			.num_parents = 1,
153362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
153462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
153562306a36Sopenharmony_ci		},
153662306a36Sopenharmony_ci	},
153762306a36Sopenharmony_ci};
153862306a36Sopenharmony_ci
153962306a36Sopenharmony_cistatic struct clk_branch camss_csi2rdi_clk = {
154062306a36Sopenharmony_ci	.halt_reg = 0x31a4,
154162306a36Sopenharmony_ci	.clkr = {
154262306a36Sopenharmony_ci		.enable_reg = 0x31a4,
154362306a36Sopenharmony_ci		.enable_mask = BIT(0),
154462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
154562306a36Sopenharmony_ci			.name = "camss_csi2rdi_clk",
154662306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
154762306a36Sopenharmony_ci				&csi2_clk_src.clkr.hw
154862306a36Sopenharmony_ci			},
154962306a36Sopenharmony_ci			.num_parents = 1,
155062306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
155162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
155262306a36Sopenharmony_ci		},
155362306a36Sopenharmony_ci	},
155462306a36Sopenharmony_ci};
155562306a36Sopenharmony_ci
155662306a36Sopenharmony_cistatic struct clk_branch camss_csi3_ahb_clk = {
155762306a36Sopenharmony_ci	.halt_reg = 0x31e8,
155862306a36Sopenharmony_ci	.clkr = {
155962306a36Sopenharmony_ci		.enable_reg = 0x31e8,
156062306a36Sopenharmony_ci		.enable_mask = BIT(0),
156162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
156262306a36Sopenharmony_ci			.name = "camss_csi3_ahb_clk",
156362306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
156462306a36Sopenharmony_ci				&mmss_ahb_clk_src.clkr.hw
156562306a36Sopenharmony_ci			},
156662306a36Sopenharmony_ci			.num_parents = 1,
156762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
156862306a36Sopenharmony_ci		},
156962306a36Sopenharmony_ci	},
157062306a36Sopenharmony_ci};
157162306a36Sopenharmony_ci
157262306a36Sopenharmony_cistatic struct clk_branch camss_csi3_clk = {
157362306a36Sopenharmony_ci	.halt_reg = 0x31e4,
157462306a36Sopenharmony_ci	.clkr = {
157562306a36Sopenharmony_ci		.enable_reg = 0x31e4,
157662306a36Sopenharmony_ci		.enable_mask = BIT(0),
157762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
157862306a36Sopenharmony_ci			.name = "camss_csi3_clk",
157962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
158062306a36Sopenharmony_ci				&csi3_clk_src.clkr.hw
158162306a36Sopenharmony_ci			},
158262306a36Sopenharmony_ci			.num_parents = 1,
158362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
158462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
158562306a36Sopenharmony_ci		},
158662306a36Sopenharmony_ci	},
158762306a36Sopenharmony_ci};
158862306a36Sopenharmony_ci
158962306a36Sopenharmony_cistatic struct clk_branch camss_csi3phy_clk = {
159062306a36Sopenharmony_ci	.halt_reg = 0x31f4,
159162306a36Sopenharmony_ci	.clkr = {
159262306a36Sopenharmony_ci		.enable_reg = 0x31f4,
159362306a36Sopenharmony_ci		.enable_mask = BIT(0),
159462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
159562306a36Sopenharmony_ci			.name = "camss_csi3phy_clk",
159662306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
159762306a36Sopenharmony_ci				&csi3_clk_src.clkr.hw
159862306a36Sopenharmony_ci			},
159962306a36Sopenharmony_ci			.num_parents = 1,
160062306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
160162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
160262306a36Sopenharmony_ci		},
160362306a36Sopenharmony_ci	},
160462306a36Sopenharmony_ci};
160562306a36Sopenharmony_ci
160662306a36Sopenharmony_cistatic struct clk_branch camss_csi3pix_clk = {
160762306a36Sopenharmony_ci	.halt_reg = 0x3214,
160862306a36Sopenharmony_ci	.clkr = {
160962306a36Sopenharmony_ci		.enable_reg = 0x3214,
161062306a36Sopenharmony_ci		.enable_mask = BIT(0),
161162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
161262306a36Sopenharmony_ci			.name = "camss_csi3pix_clk",
161362306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
161462306a36Sopenharmony_ci				&csi3_clk_src.clkr.hw
161562306a36Sopenharmony_ci			},
161662306a36Sopenharmony_ci			.num_parents = 1,
161762306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
161862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
161962306a36Sopenharmony_ci		},
162062306a36Sopenharmony_ci	},
162162306a36Sopenharmony_ci};
162262306a36Sopenharmony_ci
162362306a36Sopenharmony_cistatic struct clk_branch camss_csi3rdi_clk = {
162462306a36Sopenharmony_ci	.halt_reg = 0x3204,
162562306a36Sopenharmony_ci	.clkr = {
162662306a36Sopenharmony_ci		.enable_reg = 0x3204,
162762306a36Sopenharmony_ci		.enable_mask = BIT(0),
162862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
162962306a36Sopenharmony_ci			.name = "camss_csi3rdi_clk",
163062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
163162306a36Sopenharmony_ci				&csi3_clk_src.clkr.hw
163262306a36Sopenharmony_ci			},
163362306a36Sopenharmony_ci			.num_parents = 1,
163462306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
163562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
163662306a36Sopenharmony_ci		},
163762306a36Sopenharmony_ci	},
163862306a36Sopenharmony_ci};
163962306a36Sopenharmony_ci
164062306a36Sopenharmony_cistatic struct clk_branch camss_csi_vfe0_clk = {
164162306a36Sopenharmony_ci	.halt_reg = 0x3704,
164262306a36Sopenharmony_ci	.clkr = {
164362306a36Sopenharmony_ci		.enable_reg = 0x3704,
164462306a36Sopenharmony_ci		.enable_mask = BIT(0),
164562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
164662306a36Sopenharmony_ci			.name = "camss_csi_vfe0_clk",
164762306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
164862306a36Sopenharmony_ci				&vfe0_clk_src.clkr.hw
164962306a36Sopenharmony_ci			},
165062306a36Sopenharmony_ci			.num_parents = 1,
165162306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
165262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
165362306a36Sopenharmony_ci		},
165462306a36Sopenharmony_ci	},
165562306a36Sopenharmony_ci};
165662306a36Sopenharmony_ci
165762306a36Sopenharmony_cistatic struct clk_branch camss_csi_vfe1_clk = {
165862306a36Sopenharmony_ci	.halt_reg = 0x3714,
165962306a36Sopenharmony_ci	.clkr = {
166062306a36Sopenharmony_ci		.enable_reg = 0x3714,
166162306a36Sopenharmony_ci		.enable_mask = BIT(0),
166262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
166362306a36Sopenharmony_ci			.name = "camss_csi_vfe1_clk",
166462306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
166562306a36Sopenharmony_ci				&vfe1_clk_src.clkr.hw
166662306a36Sopenharmony_ci			},
166762306a36Sopenharmony_ci			.num_parents = 1,
166862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
166962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
167062306a36Sopenharmony_ci		},
167162306a36Sopenharmony_ci	},
167262306a36Sopenharmony_ci};
167362306a36Sopenharmony_ci
167462306a36Sopenharmony_cistatic struct clk_branch camss_gp0_clk = {
167562306a36Sopenharmony_ci	.halt_reg = 0x3444,
167662306a36Sopenharmony_ci	.clkr = {
167762306a36Sopenharmony_ci		.enable_reg = 0x3444,
167862306a36Sopenharmony_ci		.enable_mask = BIT(0),
167962306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
168062306a36Sopenharmony_ci			.name = "camss_gp0_clk",
168162306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
168262306a36Sopenharmony_ci				&camss_gp0_clk_src.clkr.hw
168362306a36Sopenharmony_ci			},
168462306a36Sopenharmony_ci			.num_parents = 1,
168562306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
168662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
168762306a36Sopenharmony_ci		},
168862306a36Sopenharmony_ci	},
168962306a36Sopenharmony_ci};
169062306a36Sopenharmony_ci
169162306a36Sopenharmony_cistatic struct clk_branch camss_gp1_clk = {
169262306a36Sopenharmony_ci	.halt_reg = 0x3474,
169362306a36Sopenharmony_ci	.clkr = {
169462306a36Sopenharmony_ci		.enable_reg = 0x3474,
169562306a36Sopenharmony_ci		.enable_mask = BIT(0),
169662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
169762306a36Sopenharmony_ci			.name = "camss_gp1_clk",
169862306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
169962306a36Sopenharmony_ci				&camss_gp1_clk_src.clkr.hw
170062306a36Sopenharmony_ci			},
170162306a36Sopenharmony_ci			.num_parents = 1,
170262306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
170362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
170462306a36Sopenharmony_ci		},
170562306a36Sopenharmony_ci	},
170662306a36Sopenharmony_ci};
170762306a36Sopenharmony_ci
170862306a36Sopenharmony_cistatic struct clk_branch camss_ispif_ahb_clk = {
170962306a36Sopenharmony_ci	.halt_reg = 0x3224,
171062306a36Sopenharmony_ci	.clkr = {
171162306a36Sopenharmony_ci		.enable_reg = 0x3224,
171262306a36Sopenharmony_ci		.enable_mask = BIT(0),
171362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
171462306a36Sopenharmony_ci			.name = "camss_ispif_ahb_clk",
171562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
171662306a36Sopenharmony_ci				&mmss_ahb_clk_src.clkr.hw
171762306a36Sopenharmony_ci			},
171862306a36Sopenharmony_ci			.num_parents = 1,
171962306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
172062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
172162306a36Sopenharmony_ci		},
172262306a36Sopenharmony_ci	},
172362306a36Sopenharmony_ci};
172462306a36Sopenharmony_ci
172562306a36Sopenharmony_cistatic struct clk_branch camss_jpeg_jpeg0_clk = {
172662306a36Sopenharmony_ci	.halt_reg = 0x35a8,
172762306a36Sopenharmony_ci	.clkr = {
172862306a36Sopenharmony_ci		.enable_reg = 0x35a8,
172962306a36Sopenharmony_ci		.enable_mask = BIT(0),
173062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
173162306a36Sopenharmony_ci			.name = "camss_jpeg_jpeg0_clk",
173262306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
173362306a36Sopenharmony_ci				&jpeg0_clk_src.clkr.hw
173462306a36Sopenharmony_ci			},
173562306a36Sopenharmony_ci			.num_parents = 1,
173662306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
173762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
173862306a36Sopenharmony_ci		},
173962306a36Sopenharmony_ci	},
174062306a36Sopenharmony_ci};
174162306a36Sopenharmony_ci
174262306a36Sopenharmony_cistatic struct clk_branch camss_jpeg_jpeg1_clk = {
174362306a36Sopenharmony_ci	.halt_reg = 0x35ac,
174462306a36Sopenharmony_ci	.clkr = {
174562306a36Sopenharmony_ci		.enable_reg = 0x35ac,
174662306a36Sopenharmony_ci		.enable_mask = BIT(0),
174762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
174862306a36Sopenharmony_ci			.name = "camss_jpeg_jpeg1_clk",
174962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
175062306a36Sopenharmony_ci				&jpeg1_clk_src.clkr.hw
175162306a36Sopenharmony_ci			},
175262306a36Sopenharmony_ci			.num_parents = 1,
175362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
175462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
175562306a36Sopenharmony_ci		},
175662306a36Sopenharmony_ci	},
175762306a36Sopenharmony_ci};
175862306a36Sopenharmony_ci
175962306a36Sopenharmony_cistatic struct clk_branch camss_jpeg_jpeg2_clk = {
176062306a36Sopenharmony_ci	.halt_reg = 0x35b0,
176162306a36Sopenharmony_ci	.clkr = {
176262306a36Sopenharmony_ci		.enable_reg = 0x35b0,
176362306a36Sopenharmony_ci		.enable_mask = BIT(0),
176462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
176562306a36Sopenharmony_ci			.name = "camss_jpeg_jpeg2_clk",
176662306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
176762306a36Sopenharmony_ci				&jpeg2_clk_src.clkr.hw
176862306a36Sopenharmony_ci			},
176962306a36Sopenharmony_ci			.num_parents = 1,
177062306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
177162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
177262306a36Sopenharmony_ci		},
177362306a36Sopenharmony_ci	},
177462306a36Sopenharmony_ci};
177562306a36Sopenharmony_ci
177662306a36Sopenharmony_cistatic struct clk_branch camss_jpeg_jpeg_ahb_clk = {
177762306a36Sopenharmony_ci	.halt_reg = 0x35b4,
177862306a36Sopenharmony_ci	.clkr = {
177962306a36Sopenharmony_ci		.enable_reg = 0x35b4,
178062306a36Sopenharmony_ci		.enable_mask = BIT(0),
178162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
178262306a36Sopenharmony_ci			.name = "camss_jpeg_jpeg_ahb_clk",
178362306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
178462306a36Sopenharmony_ci				&mmss_ahb_clk_src.clkr.hw
178562306a36Sopenharmony_ci			},
178662306a36Sopenharmony_ci			.num_parents = 1,
178762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
178862306a36Sopenharmony_ci		},
178962306a36Sopenharmony_ci	},
179062306a36Sopenharmony_ci};
179162306a36Sopenharmony_ci
179262306a36Sopenharmony_cistatic struct clk_branch camss_jpeg_jpeg_axi_clk = {
179362306a36Sopenharmony_ci	.halt_reg = 0x35b8,
179462306a36Sopenharmony_ci	.clkr = {
179562306a36Sopenharmony_ci		.enable_reg = 0x35b8,
179662306a36Sopenharmony_ci		.enable_mask = BIT(0),
179762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
179862306a36Sopenharmony_ci			.name = "camss_jpeg_jpeg_axi_clk",
179962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
180062306a36Sopenharmony_ci				&mmss_axi_clk_src.clkr.hw
180162306a36Sopenharmony_ci			},
180262306a36Sopenharmony_ci			.num_parents = 1,
180362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
180462306a36Sopenharmony_ci		},
180562306a36Sopenharmony_ci	},
180662306a36Sopenharmony_ci};
180762306a36Sopenharmony_ci
180862306a36Sopenharmony_cistatic struct clk_branch camss_mclk0_clk = {
180962306a36Sopenharmony_ci	.halt_reg = 0x3384,
181062306a36Sopenharmony_ci	.clkr = {
181162306a36Sopenharmony_ci		.enable_reg = 0x3384,
181262306a36Sopenharmony_ci		.enable_mask = BIT(0),
181362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
181462306a36Sopenharmony_ci			.name = "camss_mclk0_clk",
181562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
181662306a36Sopenharmony_ci				&mclk0_clk_src.clkr.hw
181762306a36Sopenharmony_ci			},
181862306a36Sopenharmony_ci			.num_parents = 1,
181962306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
182062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
182162306a36Sopenharmony_ci		},
182262306a36Sopenharmony_ci	},
182362306a36Sopenharmony_ci};
182462306a36Sopenharmony_ci
182562306a36Sopenharmony_cistatic struct clk_branch camss_mclk1_clk = {
182662306a36Sopenharmony_ci	.halt_reg = 0x33b4,
182762306a36Sopenharmony_ci	.clkr = {
182862306a36Sopenharmony_ci		.enable_reg = 0x33b4,
182962306a36Sopenharmony_ci		.enable_mask = BIT(0),
183062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
183162306a36Sopenharmony_ci			.name = "camss_mclk1_clk",
183262306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
183362306a36Sopenharmony_ci				&mclk1_clk_src.clkr.hw
183462306a36Sopenharmony_ci			},
183562306a36Sopenharmony_ci			.num_parents = 1,
183662306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
183762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
183862306a36Sopenharmony_ci		},
183962306a36Sopenharmony_ci	},
184062306a36Sopenharmony_ci};
184162306a36Sopenharmony_ci
184262306a36Sopenharmony_cistatic struct clk_branch camss_mclk2_clk = {
184362306a36Sopenharmony_ci	.halt_reg = 0x33e4,
184462306a36Sopenharmony_ci	.clkr = {
184562306a36Sopenharmony_ci		.enable_reg = 0x33e4,
184662306a36Sopenharmony_ci		.enable_mask = BIT(0),
184762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
184862306a36Sopenharmony_ci			.name = "camss_mclk2_clk",
184962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
185062306a36Sopenharmony_ci				&mclk2_clk_src.clkr.hw
185162306a36Sopenharmony_ci			},
185262306a36Sopenharmony_ci			.num_parents = 1,
185362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
185462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
185562306a36Sopenharmony_ci		},
185662306a36Sopenharmony_ci	},
185762306a36Sopenharmony_ci};
185862306a36Sopenharmony_ci
185962306a36Sopenharmony_cistatic struct clk_branch camss_mclk3_clk = {
186062306a36Sopenharmony_ci	.halt_reg = 0x3414,
186162306a36Sopenharmony_ci	.clkr = {
186262306a36Sopenharmony_ci		.enable_reg = 0x3414,
186362306a36Sopenharmony_ci		.enable_mask = BIT(0),
186462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
186562306a36Sopenharmony_ci			.name = "camss_mclk3_clk",
186662306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
186762306a36Sopenharmony_ci				&mclk3_clk_src.clkr.hw
186862306a36Sopenharmony_ci			},
186962306a36Sopenharmony_ci			.num_parents = 1,
187062306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
187162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
187262306a36Sopenharmony_ci		},
187362306a36Sopenharmony_ci	},
187462306a36Sopenharmony_ci};
187562306a36Sopenharmony_ci
187662306a36Sopenharmony_cistatic struct clk_branch camss_micro_ahb_clk = {
187762306a36Sopenharmony_ci	.halt_reg = 0x3494,
187862306a36Sopenharmony_ci	.clkr = {
187962306a36Sopenharmony_ci		.enable_reg = 0x3494,
188062306a36Sopenharmony_ci		.enable_mask = BIT(0),
188162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
188262306a36Sopenharmony_ci			.name = "camss_micro_ahb_clk",
188362306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
188462306a36Sopenharmony_ci				&mmss_ahb_clk_src.clkr.hw
188562306a36Sopenharmony_ci			},
188662306a36Sopenharmony_ci			.num_parents = 1,
188762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
188862306a36Sopenharmony_ci		},
188962306a36Sopenharmony_ci	},
189062306a36Sopenharmony_ci};
189162306a36Sopenharmony_ci
189262306a36Sopenharmony_cistatic struct clk_branch camss_phy0_csi0phytimer_clk = {
189362306a36Sopenharmony_ci	.halt_reg = 0x3024,
189462306a36Sopenharmony_ci	.clkr = {
189562306a36Sopenharmony_ci		.enable_reg = 0x3024,
189662306a36Sopenharmony_ci		.enable_mask = BIT(0),
189762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
189862306a36Sopenharmony_ci			.name = "camss_phy0_csi0phytimer_clk",
189962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
190062306a36Sopenharmony_ci				&csi0phytimer_clk_src.clkr.hw
190162306a36Sopenharmony_ci			},
190262306a36Sopenharmony_ci			.num_parents = 1,
190362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
190462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
190562306a36Sopenharmony_ci		},
190662306a36Sopenharmony_ci	},
190762306a36Sopenharmony_ci};
190862306a36Sopenharmony_ci
190962306a36Sopenharmony_cistatic struct clk_branch camss_phy1_csi1phytimer_clk = {
191062306a36Sopenharmony_ci	.halt_reg = 0x3054,
191162306a36Sopenharmony_ci	.clkr = {
191262306a36Sopenharmony_ci		.enable_reg = 0x3054,
191362306a36Sopenharmony_ci		.enable_mask = BIT(0),
191462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
191562306a36Sopenharmony_ci			.name = "camss_phy1_csi1phytimer_clk",
191662306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
191762306a36Sopenharmony_ci				&csi1phytimer_clk_src.clkr.hw
191862306a36Sopenharmony_ci			},
191962306a36Sopenharmony_ci			.num_parents = 1,
192062306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
192162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
192262306a36Sopenharmony_ci		},
192362306a36Sopenharmony_ci	},
192462306a36Sopenharmony_ci};
192562306a36Sopenharmony_ci
192662306a36Sopenharmony_cistatic struct clk_branch camss_phy2_csi2phytimer_clk = {
192762306a36Sopenharmony_ci	.halt_reg = 0x3084,
192862306a36Sopenharmony_ci	.clkr = {
192962306a36Sopenharmony_ci		.enable_reg = 0x3084,
193062306a36Sopenharmony_ci		.enable_mask = BIT(0),
193162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
193262306a36Sopenharmony_ci			.name = "camss_phy2_csi2phytimer_clk",
193362306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
193462306a36Sopenharmony_ci				&csi2phytimer_clk_src.clkr.hw
193562306a36Sopenharmony_ci			},
193662306a36Sopenharmony_ci			.num_parents = 1,
193762306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
193862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
193962306a36Sopenharmony_ci		},
194062306a36Sopenharmony_ci	},
194162306a36Sopenharmony_ci};
194262306a36Sopenharmony_ci
194362306a36Sopenharmony_cistatic struct clk_branch camss_top_ahb_clk = {
194462306a36Sopenharmony_ci	.halt_reg = 0x3484,
194562306a36Sopenharmony_ci	.clkr = {
194662306a36Sopenharmony_ci		.enable_reg = 0x3484,
194762306a36Sopenharmony_ci		.enable_mask = BIT(0),
194862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
194962306a36Sopenharmony_ci			.name = "camss_top_ahb_clk",
195062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
195162306a36Sopenharmony_ci				&mmss_ahb_clk_src.clkr.hw
195262306a36Sopenharmony_ci			},
195362306a36Sopenharmony_ci			.num_parents = 1,
195462306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
195562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
195662306a36Sopenharmony_ci		},
195762306a36Sopenharmony_ci	},
195862306a36Sopenharmony_ci};
195962306a36Sopenharmony_ci
196062306a36Sopenharmony_cistatic struct clk_branch camss_vfe_cpp_ahb_clk = {
196162306a36Sopenharmony_ci	.halt_reg = 0x36b4,
196262306a36Sopenharmony_ci	.clkr = {
196362306a36Sopenharmony_ci		.enable_reg = 0x36b4,
196462306a36Sopenharmony_ci		.enable_mask = BIT(0),
196562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
196662306a36Sopenharmony_ci			.name = "camss_vfe_cpp_ahb_clk",
196762306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
196862306a36Sopenharmony_ci				&mmss_ahb_clk_src.clkr.hw
196962306a36Sopenharmony_ci			},
197062306a36Sopenharmony_ci			.num_parents = 1,
197162306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
197262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
197362306a36Sopenharmony_ci		},
197462306a36Sopenharmony_ci	},
197562306a36Sopenharmony_ci};
197662306a36Sopenharmony_ci
197762306a36Sopenharmony_cistatic struct clk_branch camss_vfe_cpp_clk = {
197862306a36Sopenharmony_ci	.halt_reg = 0x36b0,
197962306a36Sopenharmony_ci	.clkr = {
198062306a36Sopenharmony_ci		.enable_reg = 0x36b0,
198162306a36Sopenharmony_ci		.enable_mask = BIT(0),
198262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
198362306a36Sopenharmony_ci			.name = "camss_vfe_cpp_clk",
198462306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
198562306a36Sopenharmony_ci				&cpp_clk_src.clkr.hw
198662306a36Sopenharmony_ci			},
198762306a36Sopenharmony_ci			.num_parents = 1,
198862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
198962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
199062306a36Sopenharmony_ci		},
199162306a36Sopenharmony_ci	},
199262306a36Sopenharmony_ci};
199362306a36Sopenharmony_ci
199462306a36Sopenharmony_cistatic struct clk_branch camss_vfe_vfe0_clk = {
199562306a36Sopenharmony_ci	.halt_reg = 0x36a8,
199662306a36Sopenharmony_ci	.clkr = {
199762306a36Sopenharmony_ci		.enable_reg = 0x36a8,
199862306a36Sopenharmony_ci		.enable_mask = BIT(0),
199962306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
200062306a36Sopenharmony_ci			.name = "camss_vfe_vfe0_clk",
200162306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
200262306a36Sopenharmony_ci				&vfe0_clk_src.clkr.hw
200362306a36Sopenharmony_ci			},
200462306a36Sopenharmony_ci			.num_parents = 1,
200562306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
200662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
200762306a36Sopenharmony_ci		},
200862306a36Sopenharmony_ci	},
200962306a36Sopenharmony_ci};
201062306a36Sopenharmony_ci
201162306a36Sopenharmony_cistatic struct clk_branch camss_vfe_vfe1_clk = {
201262306a36Sopenharmony_ci	.halt_reg = 0x36ac,
201362306a36Sopenharmony_ci	.clkr = {
201462306a36Sopenharmony_ci		.enable_reg = 0x36ac,
201562306a36Sopenharmony_ci		.enable_mask = BIT(0),
201662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
201762306a36Sopenharmony_ci			.name = "camss_vfe_vfe1_clk",
201862306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
201962306a36Sopenharmony_ci				&vfe1_clk_src.clkr.hw
202062306a36Sopenharmony_ci			},
202162306a36Sopenharmony_ci			.num_parents = 1,
202262306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
202362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
202462306a36Sopenharmony_ci		},
202562306a36Sopenharmony_ci	},
202662306a36Sopenharmony_ci};
202762306a36Sopenharmony_ci
202862306a36Sopenharmony_cistatic struct clk_branch camss_vfe_vfe_ahb_clk = {
202962306a36Sopenharmony_ci	.halt_reg = 0x36b8,
203062306a36Sopenharmony_ci	.clkr = {
203162306a36Sopenharmony_ci		.enable_reg = 0x36b8,
203262306a36Sopenharmony_ci		.enable_mask = BIT(0),
203362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
203462306a36Sopenharmony_ci			.name = "camss_vfe_vfe_ahb_clk",
203562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
203662306a36Sopenharmony_ci				&mmss_ahb_clk_src.clkr.hw
203762306a36Sopenharmony_ci			},
203862306a36Sopenharmony_ci			.num_parents = 1,
203962306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
204062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
204162306a36Sopenharmony_ci		},
204262306a36Sopenharmony_ci	},
204362306a36Sopenharmony_ci};
204462306a36Sopenharmony_ci
204562306a36Sopenharmony_cistatic struct clk_branch camss_vfe_vfe_axi_clk = {
204662306a36Sopenharmony_ci	.halt_reg = 0x36bc,
204762306a36Sopenharmony_ci	.clkr = {
204862306a36Sopenharmony_ci		.enable_reg = 0x36bc,
204962306a36Sopenharmony_ci		.enable_mask = BIT(0),
205062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
205162306a36Sopenharmony_ci			.name = "camss_vfe_vfe_axi_clk",
205262306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
205362306a36Sopenharmony_ci				&mmss_axi_clk_src.clkr.hw
205462306a36Sopenharmony_ci			},
205562306a36Sopenharmony_ci			.num_parents = 1,
205662306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
205762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
205862306a36Sopenharmony_ci		},
205962306a36Sopenharmony_ci	},
206062306a36Sopenharmony_ci};
206162306a36Sopenharmony_ci
206262306a36Sopenharmony_cistatic struct clk_branch mdss_ahb_clk = {
206362306a36Sopenharmony_ci	.halt_reg = 0x2308,
206462306a36Sopenharmony_ci	.clkr = {
206562306a36Sopenharmony_ci		.enable_reg = 0x2308,
206662306a36Sopenharmony_ci		.enable_mask = BIT(0),
206762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
206862306a36Sopenharmony_ci			.name = "mdss_ahb_clk",
206962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
207062306a36Sopenharmony_ci				&mmss_ahb_clk_src.clkr.hw
207162306a36Sopenharmony_ci			},
207262306a36Sopenharmony_ci			.num_parents = 1,
207362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
207462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
207562306a36Sopenharmony_ci		},
207662306a36Sopenharmony_ci	},
207762306a36Sopenharmony_ci};
207862306a36Sopenharmony_ci
207962306a36Sopenharmony_cistatic struct clk_branch mdss_axi_clk = {
208062306a36Sopenharmony_ci	.halt_reg = 0x2310,
208162306a36Sopenharmony_ci	.clkr = {
208262306a36Sopenharmony_ci		.enable_reg = 0x2310,
208362306a36Sopenharmony_ci		.enable_mask = BIT(0),
208462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
208562306a36Sopenharmony_ci			.name = "mdss_axi_clk",
208662306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
208762306a36Sopenharmony_ci				&mmss_axi_clk_src.clkr.hw
208862306a36Sopenharmony_ci			},
208962306a36Sopenharmony_ci			.num_parents = 1,
209062306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
209162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
209262306a36Sopenharmony_ci		},
209362306a36Sopenharmony_ci	},
209462306a36Sopenharmony_ci};
209562306a36Sopenharmony_ci
209662306a36Sopenharmony_cistatic struct clk_branch mdss_byte0_clk = {
209762306a36Sopenharmony_ci	.halt_reg = 0x233c,
209862306a36Sopenharmony_ci	.clkr = {
209962306a36Sopenharmony_ci		.enable_reg = 0x233c,
210062306a36Sopenharmony_ci		.enable_mask = BIT(0),
210162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
210262306a36Sopenharmony_ci			.name = "mdss_byte0_clk",
210362306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
210462306a36Sopenharmony_ci				&byte0_clk_src.clkr.hw
210562306a36Sopenharmony_ci			},
210662306a36Sopenharmony_ci			.num_parents = 1,
210762306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
210862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
210962306a36Sopenharmony_ci		},
211062306a36Sopenharmony_ci	},
211162306a36Sopenharmony_ci};
211262306a36Sopenharmony_ci
211362306a36Sopenharmony_cistatic struct clk_branch mdss_byte1_clk = {
211462306a36Sopenharmony_ci	.halt_reg = 0x2340,
211562306a36Sopenharmony_ci	.clkr = {
211662306a36Sopenharmony_ci		.enable_reg = 0x2340,
211762306a36Sopenharmony_ci		.enable_mask = BIT(0),
211862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
211962306a36Sopenharmony_ci			.name = "mdss_byte1_clk",
212062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
212162306a36Sopenharmony_ci				&byte1_clk_src.clkr.hw
212262306a36Sopenharmony_ci			},
212362306a36Sopenharmony_ci			.num_parents = 1,
212462306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
212562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
212662306a36Sopenharmony_ci		},
212762306a36Sopenharmony_ci	},
212862306a36Sopenharmony_ci};
212962306a36Sopenharmony_ci
213062306a36Sopenharmony_cistatic struct clk_branch mdss_edpaux_clk = {
213162306a36Sopenharmony_ci	.halt_reg = 0x2334,
213262306a36Sopenharmony_ci	.clkr = {
213362306a36Sopenharmony_ci		.enable_reg = 0x2334,
213462306a36Sopenharmony_ci		.enable_mask = BIT(0),
213562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
213662306a36Sopenharmony_ci			.name = "mdss_edpaux_clk",
213762306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
213862306a36Sopenharmony_ci				&edpaux_clk_src.clkr.hw
213962306a36Sopenharmony_ci			},
214062306a36Sopenharmony_ci			.num_parents = 1,
214162306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
214262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
214362306a36Sopenharmony_ci		},
214462306a36Sopenharmony_ci	},
214562306a36Sopenharmony_ci};
214662306a36Sopenharmony_ci
214762306a36Sopenharmony_cistatic struct clk_branch mdss_edplink_clk = {
214862306a36Sopenharmony_ci	.halt_reg = 0x2330,
214962306a36Sopenharmony_ci	.clkr = {
215062306a36Sopenharmony_ci		.enable_reg = 0x2330,
215162306a36Sopenharmony_ci		.enable_mask = BIT(0),
215262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
215362306a36Sopenharmony_ci			.name = "mdss_edplink_clk",
215462306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
215562306a36Sopenharmony_ci				&edplink_clk_src.clkr.hw
215662306a36Sopenharmony_ci			},
215762306a36Sopenharmony_ci			.num_parents = 1,
215862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
215962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
216062306a36Sopenharmony_ci		},
216162306a36Sopenharmony_ci	},
216262306a36Sopenharmony_ci};
216362306a36Sopenharmony_ci
216462306a36Sopenharmony_cistatic struct clk_branch mdss_edppixel_clk = {
216562306a36Sopenharmony_ci	.halt_reg = 0x232c,
216662306a36Sopenharmony_ci	.clkr = {
216762306a36Sopenharmony_ci		.enable_reg = 0x232c,
216862306a36Sopenharmony_ci		.enable_mask = BIT(0),
216962306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
217062306a36Sopenharmony_ci			.name = "mdss_edppixel_clk",
217162306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
217262306a36Sopenharmony_ci				&edppixel_clk_src.clkr.hw
217362306a36Sopenharmony_ci			},
217462306a36Sopenharmony_ci			.num_parents = 1,
217562306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
217662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
217762306a36Sopenharmony_ci		},
217862306a36Sopenharmony_ci	},
217962306a36Sopenharmony_ci};
218062306a36Sopenharmony_ci
218162306a36Sopenharmony_cistatic struct clk_branch mdss_esc0_clk = {
218262306a36Sopenharmony_ci	.halt_reg = 0x2344,
218362306a36Sopenharmony_ci	.clkr = {
218462306a36Sopenharmony_ci		.enable_reg = 0x2344,
218562306a36Sopenharmony_ci		.enable_mask = BIT(0),
218662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
218762306a36Sopenharmony_ci			.name = "mdss_esc0_clk",
218862306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
218962306a36Sopenharmony_ci				&esc0_clk_src.clkr.hw
219062306a36Sopenharmony_ci			},
219162306a36Sopenharmony_ci			.num_parents = 1,
219262306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
219362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
219462306a36Sopenharmony_ci		},
219562306a36Sopenharmony_ci	},
219662306a36Sopenharmony_ci};
219762306a36Sopenharmony_ci
219862306a36Sopenharmony_cistatic struct clk_branch mdss_esc1_clk = {
219962306a36Sopenharmony_ci	.halt_reg = 0x2348,
220062306a36Sopenharmony_ci	.clkr = {
220162306a36Sopenharmony_ci		.enable_reg = 0x2348,
220262306a36Sopenharmony_ci		.enable_mask = BIT(0),
220362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
220462306a36Sopenharmony_ci			.name = "mdss_esc1_clk",
220562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
220662306a36Sopenharmony_ci				&esc1_clk_src.clkr.hw
220762306a36Sopenharmony_ci			},
220862306a36Sopenharmony_ci			.num_parents = 1,
220962306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
221062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
221162306a36Sopenharmony_ci		},
221262306a36Sopenharmony_ci	},
221362306a36Sopenharmony_ci};
221462306a36Sopenharmony_ci
221562306a36Sopenharmony_cistatic struct clk_branch mdss_extpclk_clk = {
221662306a36Sopenharmony_ci	.halt_reg = 0x2324,
221762306a36Sopenharmony_ci	.clkr = {
221862306a36Sopenharmony_ci		.enable_reg = 0x2324,
221962306a36Sopenharmony_ci		.enable_mask = BIT(0),
222062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
222162306a36Sopenharmony_ci			.name = "mdss_extpclk_clk",
222262306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
222362306a36Sopenharmony_ci				&extpclk_clk_src.clkr.hw
222462306a36Sopenharmony_ci			},
222562306a36Sopenharmony_ci			.num_parents = 1,
222662306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
222762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
222862306a36Sopenharmony_ci		},
222962306a36Sopenharmony_ci	},
223062306a36Sopenharmony_ci};
223162306a36Sopenharmony_ci
223262306a36Sopenharmony_cistatic struct clk_branch mdss_hdmi_ahb_clk = {
223362306a36Sopenharmony_ci	.halt_reg = 0x230c,
223462306a36Sopenharmony_ci	.clkr = {
223562306a36Sopenharmony_ci		.enable_reg = 0x230c,
223662306a36Sopenharmony_ci		.enable_mask = BIT(0),
223762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
223862306a36Sopenharmony_ci			.name = "mdss_hdmi_ahb_clk",
223962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
224062306a36Sopenharmony_ci				&mmss_ahb_clk_src.clkr.hw
224162306a36Sopenharmony_ci			},
224262306a36Sopenharmony_ci			.num_parents = 1,
224362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
224462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
224562306a36Sopenharmony_ci		},
224662306a36Sopenharmony_ci	},
224762306a36Sopenharmony_ci};
224862306a36Sopenharmony_ci
224962306a36Sopenharmony_cistatic struct clk_branch mdss_hdmi_clk = {
225062306a36Sopenharmony_ci	.halt_reg = 0x2338,
225162306a36Sopenharmony_ci	.clkr = {
225262306a36Sopenharmony_ci		.enable_reg = 0x2338,
225362306a36Sopenharmony_ci		.enable_mask = BIT(0),
225462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
225562306a36Sopenharmony_ci			.name = "mdss_hdmi_clk",
225662306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
225762306a36Sopenharmony_ci				&hdmi_clk_src.clkr.hw
225862306a36Sopenharmony_ci			},
225962306a36Sopenharmony_ci			.num_parents = 1,
226062306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
226162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
226262306a36Sopenharmony_ci		},
226362306a36Sopenharmony_ci	},
226462306a36Sopenharmony_ci};
226562306a36Sopenharmony_ci
226662306a36Sopenharmony_cistatic struct clk_branch mdss_mdp_clk = {
226762306a36Sopenharmony_ci	.halt_reg = 0x231c,
226862306a36Sopenharmony_ci	.clkr = {
226962306a36Sopenharmony_ci		.enable_reg = 0x231c,
227062306a36Sopenharmony_ci		.enable_mask = BIT(0),
227162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
227262306a36Sopenharmony_ci			.name = "mdss_mdp_clk",
227362306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
227462306a36Sopenharmony_ci				&mdp_clk_src.clkr.hw
227562306a36Sopenharmony_ci			},
227662306a36Sopenharmony_ci			.num_parents = 1,
227762306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
227862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
227962306a36Sopenharmony_ci		},
228062306a36Sopenharmony_ci	},
228162306a36Sopenharmony_ci};
228262306a36Sopenharmony_ci
228362306a36Sopenharmony_cistatic struct clk_branch mdss_mdp_lut_clk = {
228462306a36Sopenharmony_ci	.halt_reg = 0x2320,
228562306a36Sopenharmony_ci	.clkr = {
228662306a36Sopenharmony_ci		.enable_reg = 0x2320,
228762306a36Sopenharmony_ci		.enable_mask = BIT(0),
228862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
228962306a36Sopenharmony_ci			.name = "mdss_mdp_lut_clk",
229062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
229162306a36Sopenharmony_ci				&mdp_clk_src.clkr.hw
229262306a36Sopenharmony_ci			},
229362306a36Sopenharmony_ci			.num_parents = 1,
229462306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
229562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
229662306a36Sopenharmony_ci		},
229762306a36Sopenharmony_ci	},
229862306a36Sopenharmony_ci};
229962306a36Sopenharmony_ci
230062306a36Sopenharmony_cistatic struct clk_branch mdss_pclk0_clk = {
230162306a36Sopenharmony_ci	.halt_reg = 0x2314,
230262306a36Sopenharmony_ci	.clkr = {
230362306a36Sopenharmony_ci		.enable_reg = 0x2314,
230462306a36Sopenharmony_ci		.enable_mask = BIT(0),
230562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
230662306a36Sopenharmony_ci			.name = "mdss_pclk0_clk",
230762306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
230862306a36Sopenharmony_ci				&pclk0_clk_src.clkr.hw
230962306a36Sopenharmony_ci			},
231062306a36Sopenharmony_ci			.num_parents = 1,
231162306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
231262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
231362306a36Sopenharmony_ci		},
231462306a36Sopenharmony_ci	},
231562306a36Sopenharmony_ci};
231662306a36Sopenharmony_ci
231762306a36Sopenharmony_cistatic struct clk_branch mdss_pclk1_clk = {
231862306a36Sopenharmony_ci	.halt_reg = 0x2318,
231962306a36Sopenharmony_ci	.clkr = {
232062306a36Sopenharmony_ci		.enable_reg = 0x2318,
232162306a36Sopenharmony_ci		.enable_mask = BIT(0),
232262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
232362306a36Sopenharmony_ci			.name = "mdss_pclk1_clk",
232462306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
232562306a36Sopenharmony_ci				&pclk1_clk_src.clkr.hw
232662306a36Sopenharmony_ci			},
232762306a36Sopenharmony_ci			.num_parents = 1,
232862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
232962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
233062306a36Sopenharmony_ci		},
233162306a36Sopenharmony_ci	},
233262306a36Sopenharmony_ci};
233362306a36Sopenharmony_ci
233462306a36Sopenharmony_cistatic struct clk_branch mdss_vsync_clk = {
233562306a36Sopenharmony_ci	.halt_reg = 0x2328,
233662306a36Sopenharmony_ci	.clkr = {
233762306a36Sopenharmony_ci		.enable_reg = 0x2328,
233862306a36Sopenharmony_ci		.enable_mask = BIT(0),
233962306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
234062306a36Sopenharmony_ci			.name = "mdss_vsync_clk",
234162306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
234262306a36Sopenharmony_ci				&vsync_clk_src.clkr.hw
234362306a36Sopenharmony_ci			},
234462306a36Sopenharmony_ci			.num_parents = 1,
234562306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
234662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
234762306a36Sopenharmony_ci		},
234862306a36Sopenharmony_ci	},
234962306a36Sopenharmony_ci};
235062306a36Sopenharmony_ci
235162306a36Sopenharmony_cistatic struct clk_branch mmss_rbcpr_ahb_clk = {
235262306a36Sopenharmony_ci	.halt_reg = 0x4088,
235362306a36Sopenharmony_ci	.clkr = {
235462306a36Sopenharmony_ci		.enable_reg = 0x4088,
235562306a36Sopenharmony_ci		.enable_mask = BIT(0),
235662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
235762306a36Sopenharmony_ci			.name = "mmss_rbcpr_ahb_clk",
235862306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
235962306a36Sopenharmony_ci				&mmss_ahb_clk_src.clkr.hw
236062306a36Sopenharmony_ci			},
236162306a36Sopenharmony_ci			.num_parents = 1,
236262306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
236362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
236462306a36Sopenharmony_ci		},
236562306a36Sopenharmony_ci	},
236662306a36Sopenharmony_ci};
236762306a36Sopenharmony_ci
236862306a36Sopenharmony_cistatic struct clk_branch mmss_rbcpr_clk = {
236962306a36Sopenharmony_ci	.halt_reg = 0x4084,
237062306a36Sopenharmony_ci	.clkr = {
237162306a36Sopenharmony_ci		.enable_reg = 0x4084,
237262306a36Sopenharmony_ci		.enable_mask = BIT(0),
237362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
237462306a36Sopenharmony_ci			.name = "mmss_rbcpr_clk",
237562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
237662306a36Sopenharmony_ci				&rbcpr_clk_src.clkr.hw
237762306a36Sopenharmony_ci			},
237862306a36Sopenharmony_ci			.num_parents = 1,
237962306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
238062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
238162306a36Sopenharmony_ci		},
238262306a36Sopenharmony_ci	},
238362306a36Sopenharmony_ci};
238462306a36Sopenharmony_ci
238562306a36Sopenharmony_cistatic struct clk_branch mmss_misc_ahb_clk = {
238662306a36Sopenharmony_ci	.halt_reg = 0x502c,
238762306a36Sopenharmony_ci	.clkr = {
238862306a36Sopenharmony_ci		.enable_reg = 0x502c,
238962306a36Sopenharmony_ci		.enable_mask = BIT(0),
239062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
239162306a36Sopenharmony_ci			.name = "mmss_misc_ahb_clk",
239262306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
239362306a36Sopenharmony_ci				&mmss_ahb_clk_src.clkr.hw
239462306a36Sopenharmony_ci			},
239562306a36Sopenharmony_ci			.num_parents = 1,
239662306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
239762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
239862306a36Sopenharmony_ci		},
239962306a36Sopenharmony_ci	},
240062306a36Sopenharmony_ci};
240162306a36Sopenharmony_ci
240262306a36Sopenharmony_cistatic struct clk_branch mmss_mmssnoc_ahb_clk = {
240362306a36Sopenharmony_ci	.halt_reg = 0x5024,
240462306a36Sopenharmony_ci	.clkr = {
240562306a36Sopenharmony_ci		.enable_reg = 0x5024,
240662306a36Sopenharmony_ci		.enable_mask = BIT(0),
240762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
240862306a36Sopenharmony_ci			.name = "mmss_mmssnoc_ahb_clk",
240962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
241062306a36Sopenharmony_ci				&mmss_ahb_clk_src.clkr.hw
241162306a36Sopenharmony_ci			},
241262306a36Sopenharmony_ci			.num_parents = 1,
241362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
241462306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT | CLK_IGNORE_UNUSED,
241562306a36Sopenharmony_ci		},
241662306a36Sopenharmony_ci	},
241762306a36Sopenharmony_ci};
241862306a36Sopenharmony_ci
241962306a36Sopenharmony_cistatic struct clk_branch mmss_mmssnoc_bto_ahb_clk = {
242062306a36Sopenharmony_ci	.halt_reg = 0x5028,
242162306a36Sopenharmony_ci	.clkr = {
242262306a36Sopenharmony_ci		.enable_reg = 0x5028,
242362306a36Sopenharmony_ci		.enable_mask = BIT(0),
242462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
242562306a36Sopenharmony_ci			.name = "mmss_mmssnoc_bto_ahb_clk",
242662306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
242762306a36Sopenharmony_ci				&mmss_ahb_clk_src.clkr.hw
242862306a36Sopenharmony_ci			},
242962306a36Sopenharmony_ci			.num_parents = 1,
243062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
243162306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT | CLK_IGNORE_UNUSED,
243262306a36Sopenharmony_ci		},
243362306a36Sopenharmony_ci	},
243462306a36Sopenharmony_ci};
243562306a36Sopenharmony_ci
243662306a36Sopenharmony_cistatic struct clk_branch mmss_mmssnoc_axi_clk = {
243762306a36Sopenharmony_ci	.halt_reg = 0x506c,
243862306a36Sopenharmony_ci	.clkr = {
243962306a36Sopenharmony_ci		.enable_reg = 0x506c,
244062306a36Sopenharmony_ci		.enable_mask = BIT(0),
244162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
244262306a36Sopenharmony_ci			.name = "mmss_mmssnoc_axi_clk",
244362306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
244462306a36Sopenharmony_ci				&mmss_axi_clk_src.clkr.hw
244562306a36Sopenharmony_ci			},
244662306a36Sopenharmony_ci			.num_parents = 1,
244762306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT | CLK_IGNORE_UNUSED,
244862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
244962306a36Sopenharmony_ci		},
245062306a36Sopenharmony_ci	},
245162306a36Sopenharmony_ci};
245262306a36Sopenharmony_ci
245362306a36Sopenharmony_cistatic struct clk_branch mmss_s0_axi_clk = {
245462306a36Sopenharmony_ci	.halt_reg = 0x5064,
245562306a36Sopenharmony_ci	.clkr = {
245662306a36Sopenharmony_ci		.enable_reg = 0x5064,
245762306a36Sopenharmony_ci		.enable_mask = BIT(0),
245862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
245962306a36Sopenharmony_ci			.name = "mmss_s0_axi_clk",
246062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
246162306a36Sopenharmony_ci				&mmss_axi_clk_src.clkr.hw
246262306a36Sopenharmony_ci			},
246362306a36Sopenharmony_ci			.num_parents = 1,
246462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
246562306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT | CLK_IGNORE_UNUSED,
246662306a36Sopenharmony_ci		},
246762306a36Sopenharmony_ci	},
246862306a36Sopenharmony_ci};
246962306a36Sopenharmony_ci
247062306a36Sopenharmony_cistatic struct clk_branch ocmemcx_ahb_clk = {
247162306a36Sopenharmony_ci	.halt_reg = 0x405c,
247262306a36Sopenharmony_ci	.clkr = {
247362306a36Sopenharmony_ci		.enable_reg = 0x405c,
247462306a36Sopenharmony_ci		.enable_mask = BIT(0),
247562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
247662306a36Sopenharmony_ci			.name = "ocmemcx_ahb_clk",
247762306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
247862306a36Sopenharmony_ci				&mmss_ahb_clk_src.clkr.hw
247962306a36Sopenharmony_ci			},
248062306a36Sopenharmony_ci			.num_parents = 1,
248162306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
248262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
248362306a36Sopenharmony_ci		},
248462306a36Sopenharmony_ci	},
248562306a36Sopenharmony_ci};
248662306a36Sopenharmony_ci
248762306a36Sopenharmony_cistatic struct clk_branch ocmemcx_ocmemnoc_clk = {
248862306a36Sopenharmony_ci	.halt_reg = 0x4058,
248962306a36Sopenharmony_ci	.clkr = {
249062306a36Sopenharmony_ci		.enable_reg = 0x4058,
249162306a36Sopenharmony_ci		.enable_mask = BIT(0),
249262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
249362306a36Sopenharmony_ci			.name = "ocmemcx_ocmemnoc_clk",
249462306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
249562306a36Sopenharmony_ci				&ocmemnoc_clk_src.clkr.hw
249662306a36Sopenharmony_ci			},
249762306a36Sopenharmony_ci			.num_parents = 1,
249862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
249962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
250062306a36Sopenharmony_ci		},
250162306a36Sopenharmony_ci	},
250262306a36Sopenharmony_ci};
250362306a36Sopenharmony_ci
250462306a36Sopenharmony_cistatic struct clk_branch oxili_ocmemgx_clk = {
250562306a36Sopenharmony_ci	.halt_reg = 0x402c,
250662306a36Sopenharmony_ci	.clkr = {
250762306a36Sopenharmony_ci		.enable_reg = 0x402c,
250862306a36Sopenharmony_ci		.enable_mask = BIT(0),
250962306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
251062306a36Sopenharmony_ci			.name = "oxili_ocmemgx_clk",
251162306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
251262306a36Sopenharmony_ci				&gfx3d_clk_src.clkr.hw
251362306a36Sopenharmony_ci			},
251462306a36Sopenharmony_ci			.num_parents = 1,
251562306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
251662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
251762306a36Sopenharmony_ci		},
251862306a36Sopenharmony_ci	},
251962306a36Sopenharmony_ci};
252062306a36Sopenharmony_ci
252162306a36Sopenharmony_cistatic struct clk_branch oxili_gfx3d_clk = {
252262306a36Sopenharmony_ci	.halt_reg = 0x4028,
252362306a36Sopenharmony_ci	.clkr = {
252462306a36Sopenharmony_ci		.enable_reg = 0x4028,
252562306a36Sopenharmony_ci		.enable_mask = BIT(0),
252662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
252762306a36Sopenharmony_ci			.name = "oxili_gfx3d_clk",
252862306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
252962306a36Sopenharmony_ci				&gfx3d_clk_src.clkr.hw
253062306a36Sopenharmony_ci			},
253162306a36Sopenharmony_ci			.num_parents = 1,
253262306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
253362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
253462306a36Sopenharmony_ci		},
253562306a36Sopenharmony_ci	},
253662306a36Sopenharmony_ci};
253762306a36Sopenharmony_ci
253862306a36Sopenharmony_cistatic struct clk_branch oxili_rbbmtimer_clk = {
253962306a36Sopenharmony_ci	.halt_reg = 0x40b0,
254062306a36Sopenharmony_ci	.clkr = {
254162306a36Sopenharmony_ci		.enable_reg = 0x40b0,
254262306a36Sopenharmony_ci		.enable_mask = BIT(0),
254362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
254462306a36Sopenharmony_ci			.name = "oxili_rbbmtimer_clk",
254562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
254662306a36Sopenharmony_ci				&rbbmtimer_clk_src.clkr.hw
254762306a36Sopenharmony_ci			},
254862306a36Sopenharmony_ci			.num_parents = 1,
254962306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
255062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
255162306a36Sopenharmony_ci		},
255262306a36Sopenharmony_ci	},
255362306a36Sopenharmony_ci};
255462306a36Sopenharmony_ci
255562306a36Sopenharmony_cistatic struct clk_branch oxilicx_ahb_clk = {
255662306a36Sopenharmony_ci	.halt_reg = 0x403c,
255762306a36Sopenharmony_ci	.clkr = {
255862306a36Sopenharmony_ci		.enable_reg = 0x403c,
255962306a36Sopenharmony_ci		.enable_mask = BIT(0),
256062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
256162306a36Sopenharmony_ci			.name = "oxilicx_ahb_clk",
256262306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
256362306a36Sopenharmony_ci				&mmss_ahb_clk_src.clkr.hw
256462306a36Sopenharmony_ci			},
256562306a36Sopenharmony_ci			.num_parents = 1,
256662306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
256762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
256862306a36Sopenharmony_ci		},
256962306a36Sopenharmony_ci	},
257062306a36Sopenharmony_ci};
257162306a36Sopenharmony_ci
257262306a36Sopenharmony_cistatic struct clk_branch venus0_ahb_clk = {
257362306a36Sopenharmony_ci	.halt_reg = 0x1030,
257462306a36Sopenharmony_ci	.clkr = {
257562306a36Sopenharmony_ci		.enable_reg = 0x1030,
257662306a36Sopenharmony_ci		.enable_mask = BIT(0),
257762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
257862306a36Sopenharmony_ci			.name = "venus0_ahb_clk",
257962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
258062306a36Sopenharmony_ci				&mmss_ahb_clk_src.clkr.hw
258162306a36Sopenharmony_ci			},
258262306a36Sopenharmony_ci			.num_parents = 1,
258362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
258462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
258562306a36Sopenharmony_ci		},
258662306a36Sopenharmony_ci	},
258762306a36Sopenharmony_ci};
258862306a36Sopenharmony_ci
258962306a36Sopenharmony_cistatic struct clk_branch venus0_axi_clk = {
259062306a36Sopenharmony_ci	.halt_reg = 0x1034,
259162306a36Sopenharmony_ci	.clkr = {
259262306a36Sopenharmony_ci		.enable_reg = 0x1034,
259362306a36Sopenharmony_ci		.enable_mask = BIT(0),
259462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
259562306a36Sopenharmony_ci			.name = "venus0_axi_clk",
259662306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
259762306a36Sopenharmony_ci				&mmss_axi_clk_src.clkr.hw
259862306a36Sopenharmony_ci			},
259962306a36Sopenharmony_ci			.num_parents = 1,
260062306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
260162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
260262306a36Sopenharmony_ci		},
260362306a36Sopenharmony_ci	},
260462306a36Sopenharmony_ci};
260562306a36Sopenharmony_ci
260662306a36Sopenharmony_cistatic struct clk_branch venus0_core0_vcodec_clk = {
260762306a36Sopenharmony_ci	.halt_reg = 0x1048,
260862306a36Sopenharmony_ci	.clkr = {
260962306a36Sopenharmony_ci		.enable_reg = 0x1048,
261062306a36Sopenharmony_ci		.enable_mask = BIT(0),
261162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
261262306a36Sopenharmony_ci			.name = "venus0_core0_vcodec_clk",
261362306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
261462306a36Sopenharmony_ci				&vcodec0_clk_src.clkr.hw
261562306a36Sopenharmony_ci			},
261662306a36Sopenharmony_ci			.num_parents = 1,
261762306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
261862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
261962306a36Sopenharmony_ci		},
262062306a36Sopenharmony_ci	},
262162306a36Sopenharmony_ci};
262262306a36Sopenharmony_ci
262362306a36Sopenharmony_cistatic struct clk_branch venus0_core1_vcodec_clk = {
262462306a36Sopenharmony_ci	.halt_reg = 0x104c,
262562306a36Sopenharmony_ci	.clkr = {
262662306a36Sopenharmony_ci		.enable_reg = 0x104c,
262762306a36Sopenharmony_ci		.enable_mask = BIT(0),
262862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
262962306a36Sopenharmony_ci			.name = "venus0_core1_vcodec_clk",
263062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
263162306a36Sopenharmony_ci				&vcodec0_clk_src.clkr.hw
263262306a36Sopenharmony_ci			},
263362306a36Sopenharmony_ci			.num_parents = 1,
263462306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
263562306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
263662306a36Sopenharmony_ci		},
263762306a36Sopenharmony_ci	},
263862306a36Sopenharmony_ci};
263962306a36Sopenharmony_ci
264062306a36Sopenharmony_cistatic struct clk_branch venus0_ocmemnoc_clk = {
264162306a36Sopenharmony_ci	.halt_reg = 0x1038,
264262306a36Sopenharmony_ci	.clkr = {
264362306a36Sopenharmony_ci		.enable_reg = 0x1038,
264462306a36Sopenharmony_ci		.enable_mask = BIT(0),
264562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
264662306a36Sopenharmony_ci			.name = "venus0_ocmemnoc_clk",
264762306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
264862306a36Sopenharmony_ci				&ocmemnoc_clk_src.clkr.hw
264962306a36Sopenharmony_ci			},
265062306a36Sopenharmony_ci			.num_parents = 1,
265162306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
265262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
265362306a36Sopenharmony_ci		},
265462306a36Sopenharmony_ci	},
265562306a36Sopenharmony_ci};
265662306a36Sopenharmony_ci
265762306a36Sopenharmony_cistatic struct clk_branch venus0_vcodec0_clk = {
265862306a36Sopenharmony_ci	.halt_reg = 0x1028,
265962306a36Sopenharmony_ci	.clkr = {
266062306a36Sopenharmony_ci		.enable_reg = 0x1028,
266162306a36Sopenharmony_ci		.enable_mask = BIT(0),
266262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
266362306a36Sopenharmony_ci			.name = "venus0_vcodec0_clk",
266462306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
266562306a36Sopenharmony_ci				&vcodec0_clk_src.clkr.hw
266662306a36Sopenharmony_ci			},
266762306a36Sopenharmony_ci			.num_parents = 1,
266862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
266962306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
267062306a36Sopenharmony_ci		},
267162306a36Sopenharmony_ci	},
267262306a36Sopenharmony_ci};
267362306a36Sopenharmony_ci
267462306a36Sopenharmony_cistatic struct clk_branch vpu_ahb_clk = {
267562306a36Sopenharmony_ci	.halt_reg = 0x1430,
267662306a36Sopenharmony_ci	.clkr = {
267762306a36Sopenharmony_ci		.enable_reg = 0x1430,
267862306a36Sopenharmony_ci		.enable_mask = BIT(0),
267962306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
268062306a36Sopenharmony_ci			.name = "vpu_ahb_clk",
268162306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
268262306a36Sopenharmony_ci				&mmss_ahb_clk_src.clkr.hw
268362306a36Sopenharmony_ci			},
268462306a36Sopenharmony_ci			.num_parents = 1,
268562306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
268662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
268762306a36Sopenharmony_ci		},
268862306a36Sopenharmony_ci	},
268962306a36Sopenharmony_ci};
269062306a36Sopenharmony_ci
269162306a36Sopenharmony_cistatic struct clk_branch vpu_axi_clk = {
269262306a36Sopenharmony_ci	.halt_reg = 0x143c,
269362306a36Sopenharmony_ci	.clkr = {
269462306a36Sopenharmony_ci		.enable_reg = 0x143c,
269562306a36Sopenharmony_ci		.enable_mask = BIT(0),
269662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
269762306a36Sopenharmony_ci			.name = "vpu_axi_clk",
269862306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
269962306a36Sopenharmony_ci				&mmss_axi_clk_src.clkr.hw
270062306a36Sopenharmony_ci			},
270162306a36Sopenharmony_ci			.num_parents = 1,
270262306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
270362306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
270462306a36Sopenharmony_ci		},
270562306a36Sopenharmony_ci	},
270662306a36Sopenharmony_ci};
270762306a36Sopenharmony_ci
270862306a36Sopenharmony_cistatic struct clk_branch vpu_bus_clk = {
270962306a36Sopenharmony_ci	.halt_reg = 0x1440,
271062306a36Sopenharmony_ci	.clkr = {
271162306a36Sopenharmony_ci		.enable_reg = 0x1440,
271262306a36Sopenharmony_ci		.enable_mask = BIT(0),
271362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
271462306a36Sopenharmony_ci			.name = "vpu_bus_clk",
271562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
271662306a36Sopenharmony_ci				&vpu_bus_clk_src.clkr.hw
271762306a36Sopenharmony_ci			},
271862306a36Sopenharmony_ci			.num_parents = 1,
271962306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
272062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
272162306a36Sopenharmony_ci		},
272262306a36Sopenharmony_ci	},
272362306a36Sopenharmony_ci};
272462306a36Sopenharmony_ci
272562306a36Sopenharmony_cistatic struct clk_branch vpu_cxo_clk = {
272662306a36Sopenharmony_ci	.halt_reg = 0x1434,
272762306a36Sopenharmony_ci	.clkr = {
272862306a36Sopenharmony_ci		.enable_reg = 0x1434,
272962306a36Sopenharmony_ci		.enable_mask = BIT(0),
273062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
273162306a36Sopenharmony_ci			.name = "vpu_cxo_clk",
273262306a36Sopenharmony_ci			.parent_data = (const struct clk_parent_data[]){
273362306a36Sopenharmony_ci				{ .fw_name = "xo", .name = "xo_board" },
273462306a36Sopenharmony_ci			},
273562306a36Sopenharmony_ci			.num_parents = 1,
273662306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
273762306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
273862306a36Sopenharmony_ci		},
273962306a36Sopenharmony_ci	},
274062306a36Sopenharmony_ci};
274162306a36Sopenharmony_ci
274262306a36Sopenharmony_cistatic struct clk_branch vpu_maple_clk = {
274362306a36Sopenharmony_ci	.halt_reg = 0x142c,
274462306a36Sopenharmony_ci	.clkr = {
274562306a36Sopenharmony_ci		.enable_reg = 0x142c,
274662306a36Sopenharmony_ci		.enable_mask = BIT(0),
274762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
274862306a36Sopenharmony_ci			.name = "vpu_maple_clk",
274962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
275062306a36Sopenharmony_ci				&maple_clk_src.clkr.hw
275162306a36Sopenharmony_ci			},
275262306a36Sopenharmony_ci			.num_parents = 1,
275362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
275462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
275562306a36Sopenharmony_ci		},
275662306a36Sopenharmony_ci	},
275762306a36Sopenharmony_ci};
275862306a36Sopenharmony_ci
275962306a36Sopenharmony_cistatic struct clk_branch vpu_sleep_clk = {
276062306a36Sopenharmony_ci	.halt_reg = 0x1438,
276162306a36Sopenharmony_ci	.clkr = {
276262306a36Sopenharmony_ci		.enable_reg = 0x1438,
276362306a36Sopenharmony_ci		.enable_mask = BIT(0),
276462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
276562306a36Sopenharmony_ci			.name = "vpu_sleep_clk",
276662306a36Sopenharmony_ci			.parent_data = (const struct clk_parent_data[]){
276762306a36Sopenharmony_ci				{ .fw_name = "sleep_clk", .name = "sleep_clk" },
276862306a36Sopenharmony_ci			},
276962306a36Sopenharmony_ci			.num_parents = 1,
277062306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
277162306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
277262306a36Sopenharmony_ci		},
277362306a36Sopenharmony_ci	},
277462306a36Sopenharmony_ci};
277562306a36Sopenharmony_ci
277662306a36Sopenharmony_cistatic struct clk_branch vpu_vdp_clk = {
277762306a36Sopenharmony_ci	.halt_reg = 0x1428,
277862306a36Sopenharmony_ci	.clkr = {
277962306a36Sopenharmony_ci		.enable_reg = 0x1428,
278062306a36Sopenharmony_ci		.enable_mask = BIT(0),
278162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
278262306a36Sopenharmony_ci			.name = "vpu_vdp_clk",
278362306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
278462306a36Sopenharmony_ci				&vdp_clk_src.clkr.hw
278562306a36Sopenharmony_ci			},
278662306a36Sopenharmony_ci			.num_parents = 1,
278762306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
278862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
278962306a36Sopenharmony_ci		},
279062306a36Sopenharmony_ci	},
279162306a36Sopenharmony_ci};
279262306a36Sopenharmony_ci
279362306a36Sopenharmony_cistatic const struct pll_config mmpll1_config = {
279462306a36Sopenharmony_ci	.l = 60,
279562306a36Sopenharmony_ci	.m = 25,
279662306a36Sopenharmony_ci	.n = 32,
279762306a36Sopenharmony_ci	.vco_val = 0x0,
279862306a36Sopenharmony_ci	.vco_mask = 0x3 << 20,
279962306a36Sopenharmony_ci	.pre_div_val = 0x0,
280062306a36Sopenharmony_ci	.pre_div_mask = 0x7 << 12,
280162306a36Sopenharmony_ci	.post_div_val = 0x0,
280262306a36Sopenharmony_ci	.post_div_mask = 0x3 << 8,
280362306a36Sopenharmony_ci	.mn_ena_mask = BIT(24),
280462306a36Sopenharmony_ci	.main_output_mask = BIT(0),
280562306a36Sopenharmony_ci};
280662306a36Sopenharmony_ci
280762306a36Sopenharmony_cistatic const struct pll_config mmpll3_config = {
280862306a36Sopenharmony_ci	.l = 48,
280962306a36Sopenharmony_ci	.m = 7,
281062306a36Sopenharmony_ci	.n = 16,
281162306a36Sopenharmony_ci	.vco_val = 0x0,
281262306a36Sopenharmony_ci	.vco_mask = 0x3 << 20,
281362306a36Sopenharmony_ci	.pre_div_val = 0x0,
281462306a36Sopenharmony_ci	.pre_div_mask = 0x7 << 12,
281562306a36Sopenharmony_ci	.post_div_val = 0x0,
281662306a36Sopenharmony_ci	.post_div_mask = 0x3 << 8,
281762306a36Sopenharmony_ci	.mn_ena_mask = BIT(24),
281862306a36Sopenharmony_ci	.main_output_mask = BIT(0),
281962306a36Sopenharmony_ci	.aux_output_mask = BIT(1),
282062306a36Sopenharmony_ci};
282162306a36Sopenharmony_ci
282262306a36Sopenharmony_cistatic struct gdsc venus0_gdsc = {
282362306a36Sopenharmony_ci	.gdscr = 0x1024,
282462306a36Sopenharmony_ci	.pd = {
282562306a36Sopenharmony_ci		.name = "venus0",
282662306a36Sopenharmony_ci	},
282762306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
282862306a36Sopenharmony_ci};
282962306a36Sopenharmony_ci
283062306a36Sopenharmony_cistatic struct gdsc venus0_core0_gdsc = {
283162306a36Sopenharmony_ci	.gdscr = 0x1040,
283262306a36Sopenharmony_ci	.pd = {
283362306a36Sopenharmony_ci		.name = "venus0_core0",
283462306a36Sopenharmony_ci	},
283562306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
283662306a36Sopenharmony_ci};
283762306a36Sopenharmony_ci
283862306a36Sopenharmony_cistatic struct gdsc venus0_core1_gdsc = {
283962306a36Sopenharmony_ci	.gdscr = 0x1044,
284062306a36Sopenharmony_ci	.pd = {
284162306a36Sopenharmony_ci		.name = "venus0_core1",
284262306a36Sopenharmony_ci	},
284362306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
284462306a36Sopenharmony_ci};
284562306a36Sopenharmony_ci
284662306a36Sopenharmony_cistatic struct gdsc mdss_gdsc = {
284762306a36Sopenharmony_ci	.gdscr = 0x2304,
284862306a36Sopenharmony_ci	.cxcs = (unsigned int []){ 0x231c, 0x2320 },
284962306a36Sopenharmony_ci	.cxc_count = 2,
285062306a36Sopenharmony_ci	.pd = {
285162306a36Sopenharmony_ci		.name = "mdss",
285262306a36Sopenharmony_ci	},
285362306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
285462306a36Sopenharmony_ci};
285562306a36Sopenharmony_ci
285662306a36Sopenharmony_cistatic struct gdsc camss_jpeg_gdsc = {
285762306a36Sopenharmony_ci	.gdscr = 0x35a4,
285862306a36Sopenharmony_ci	.pd = {
285962306a36Sopenharmony_ci		.name = "camss_jpeg",
286062306a36Sopenharmony_ci	},
286162306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
286262306a36Sopenharmony_ci};
286362306a36Sopenharmony_ci
286462306a36Sopenharmony_cistatic struct gdsc camss_vfe_gdsc = {
286562306a36Sopenharmony_ci	.gdscr = 0x36a4,
286662306a36Sopenharmony_ci	.cxcs = (unsigned int []){ 0x36a8, 0x36ac, 0x36b0 },
286762306a36Sopenharmony_ci	.cxc_count = 3,
286862306a36Sopenharmony_ci	.pd = {
286962306a36Sopenharmony_ci		.name = "camss_vfe",
287062306a36Sopenharmony_ci	},
287162306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
287262306a36Sopenharmony_ci};
287362306a36Sopenharmony_ci
287462306a36Sopenharmony_cistatic struct gdsc oxili_gdsc = {
287562306a36Sopenharmony_ci	.gdscr = 0x4024,
287662306a36Sopenharmony_ci	.cxcs = (unsigned int []){ 0x4028 },
287762306a36Sopenharmony_ci	.cxc_count = 1,
287862306a36Sopenharmony_ci	.pd = {
287962306a36Sopenharmony_ci		.name = "oxili",
288062306a36Sopenharmony_ci	},
288162306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
288262306a36Sopenharmony_ci};
288362306a36Sopenharmony_ci
288462306a36Sopenharmony_cistatic struct gdsc oxilicx_gdsc = {
288562306a36Sopenharmony_ci	.gdscr = 0x4034,
288662306a36Sopenharmony_ci	.pd = {
288762306a36Sopenharmony_ci		.name = "oxilicx",
288862306a36Sopenharmony_ci	},
288962306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
289062306a36Sopenharmony_ci};
289162306a36Sopenharmony_ci
289262306a36Sopenharmony_cistatic struct clk_regmap *mmcc_apq8084_clocks[] = {
289362306a36Sopenharmony_ci	[MMSS_AHB_CLK_SRC] = &mmss_ahb_clk_src.clkr,
289462306a36Sopenharmony_ci	[MMSS_AXI_CLK_SRC] = &mmss_axi_clk_src.clkr,
289562306a36Sopenharmony_ci	[MMPLL0] = &mmpll0.clkr,
289662306a36Sopenharmony_ci	[MMPLL0_VOTE] = &mmpll0_vote,
289762306a36Sopenharmony_ci	[MMPLL1] = &mmpll1.clkr,
289862306a36Sopenharmony_ci	[MMPLL1_VOTE] = &mmpll1_vote,
289962306a36Sopenharmony_ci	[MMPLL2] = &mmpll2.clkr,
290062306a36Sopenharmony_ci	[MMPLL3] = &mmpll3.clkr,
290162306a36Sopenharmony_ci	[MMPLL4] = &mmpll4.clkr,
290262306a36Sopenharmony_ci	[CSI0_CLK_SRC] = &csi0_clk_src.clkr,
290362306a36Sopenharmony_ci	[CSI1_CLK_SRC] = &csi1_clk_src.clkr,
290462306a36Sopenharmony_ci	[CSI2_CLK_SRC] = &csi2_clk_src.clkr,
290562306a36Sopenharmony_ci	[CSI3_CLK_SRC] = &csi3_clk_src.clkr,
290662306a36Sopenharmony_ci	[VCODEC0_CLK_SRC] = &vcodec0_clk_src.clkr,
290762306a36Sopenharmony_ci	[VFE0_CLK_SRC] = &vfe0_clk_src.clkr,
290862306a36Sopenharmony_ci	[VFE1_CLK_SRC] = &vfe1_clk_src.clkr,
290962306a36Sopenharmony_ci	[MDP_CLK_SRC] = &mdp_clk_src.clkr,
291062306a36Sopenharmony_ci	[PCLK0_CLK_SRC] = &pclk0_clk_src.clkr,
291162306a36Sopenharmony_ci	[PCLK1_CLK_SRC] = &pclk1_clk_src.clkr,
291262306a36Sopenharmony_ci	[OCMEMNOC_CLK_SRC] = &ocmemnoc_clk_src.clkr,
291362306a36Sopenharmony_ci	[GFX3D_CLK_SRC] = &gfx3d_clk_src.clkr,
291462306a36Sopenharmony_ci	[JPEG0_CLK_SRC] = &jpeg0_clk_src.clkr,
291562306a36Sopenharmony_ci	[JPEG1_CLK_SRC] = &jpeg1_clk_src.clkr,
291662306a36Sopenharmony_ci	[JPEG2_CLK_SRC] = &jpeg2_clk_src.clkr,
291762306a36Sopenharmony_ci	[EDPPIXEL_CLK_SRC] = &edppixel_clk_src.clkr,
291862306a36Sopenharmony_ci	[EXTPCLK_CLK_SRC] = &extpclk_clk_src.clkr,
291962306a36Sopenharmony_ci	[VP_CLK_SRC] = &vp_clk_src.clkr,
292062306a36Sopenharmony_ci	[CCI_CLK_SRC] = &cci_clk_src.clkr,
292162306a36Sopenharmony_ci	[CAMSS_GP0_CLK_SRC] = &camss_gp0_clk_src.clkr,
292262306a36Sopenharmony_ci	[CAMSS_GP1_CLK_SRC] = &camss_gp1_clk_src.clkr,
292362306a36Sopenharmony_ci	[MCLK0_CLK_SRC] = &mclk0_clk_src.clkr,
292462306a36Sopenharmony_ci	[MCLK1_CLK_SRC] = &mclk1_clk_src.clkr,
292562306a36Sopenharmony_ci	[MCLK2_CLK_SRC] = &mclk2_clk_src.clkr,
292662306a36Sopenharmony_ci	[MCLK3_CLK_SRC] = &mclk3_clk_src.clkr,
292762306a36Sopenharmony_ci	[CSI0PHYTIMER_CLK_SRC] = &csi0phytimer_clk_src.clkr,
292862306a36Sopenharmony_ci	[CSI1PHYTIMER_CLK_SRC] = &csi1phytimer_clk_src.clkr,
292962306a36Sopenharmony_ci	[CSI2PHYTIMER_CLK_SRC] = &csi2phytimer_clk_src.clkr,
293062306a36Sopenharmony_ci	[CPP_CLK_SRC] = &cpp_clk_src.clkr,
293162306a36Sopenharmony_ci	[BYTE0_CLK_SRC] = &byte0_clk_src.clkr,
293262306a36Sopenharmony_ci	[BYTE1_CLK_SRC] = &byte1_clk_src.clkr,
293362306a36Sopenharmony_ci	[EDPAUX_CLK_SRC] = &edpaux_clk_src.clkr,
293462306a36Sopenharmony_ci	[EDPLINK_CLK_SRC] = &edplink_clk_src.clkr,
293562306a36Sopenharmony_ci	[ESC0_CLK_SRC] = &esc0_clk_src.clkr,
293662306a36Sopenharmony_ci	[ESC1_CLK_SRC] = &esc1_clk_src.clkr,
293762306a36Sopenharmony_ci	[HDMI_CLK_SRC] = &hdmi_clk_src.clkr,
293862306a36Sopenharmony_ci	[VSYNC_CLK_SRC] = &vsync_clk_src.clkr,
293962306a36Sopenharmony_ci	[MMSS_RBCPR_CLK_SRC] = &rbcpr_clk_src.clkr,
294062306a36Sopenharmony_ci	[RBBMTIMER_CLK_SRC] = &rbbmtimer_clk_src.clkr,
294162306a36Sopenharmony_ci	[MAPLE_CLK_SRC] = &maple_clk_src.clkr,
294262306a36Sopenharmony_ci	[VDP_CLK_SRC] = &vdp_clk_src.clkr,
294362306a36Sopenharmony_ci	[VPU_BUS_CLK_SRC] = &vpu_bus_clk_src.clkr,
294462306a36Sopenharmony_ci	[MMSS_CXO_CLK] = &mmss_cxo_clk.clkr,
294562306a36Sopenharmony_ci	[MMSS_SLEEPCLK_CLK] = &mmss_sleepclk_clk.clkr,
294662306a36Sopenharmony_ci	[AVSYNC_AHB_CLK] = &avsync_ahb_clk.clkr,
294762306a36Sopenharmony_ci	[AVSYNC_EDPPIXEL_CLK] = &avsync_edppixel_clk.clkr,
294862306a36Sopenharmony_ci	[AVSYNC_EXTPCLK_CLK] = &avsync_extpclk_clk.clkr,
294962306a36Sopenharmony_ci	[AVSYNC_PCLK0_CLK] = &avsync_pclk0_clk.clkr,
295062306a36Sopenharmony_ci	[AVSYNC_PCLK1_CLK] = &avsync_pclk1_clk.clkr,
295162306a36Sopenharmony_ci	[AVSYNC_VP_CLK] = &avsync_vp_clk.clkr,
295262306a36Sopenharmony_ci	[CAMSS_AHB_CLK] = &camss_ahb_clk.clkr,
295362306a36Sopenharmony_ci	[CAMSS_CCI_CCI_AHB_CLK] = &camss_cci_cci_ahb_clk.clkr,
295462306a36Sopenharmony_ci	[CAMSS_CCI_CCI_CLK] = &camss_cci_cci_clk.clkr,
295562306a36Sopenharmony_ci	[CAMSS_CSI0_AHB_CLK] = &camss_csi0_ahb_clk.clkr,
295662306a36Sopenharmony_ci	[CAMSS_CSI0_CLK] = &camss_csi0_clk.clkr,
295762306a36Sopenharmony_ci	[CAMSS_CSI0PHY_CLK] = &camss_csi0phy_clk.clkr,
295862306a36Sopenharmony_ci	[CAMSS_CSI0PIX_CLK] = &camss_csi0pix_clk.clkr,
295962306a36Sopenharmony_ci	[CAMSS_CSI0RDI_CLK] = &camss_csi0rdi_clk.clkr,
296062306a36Sopenharmony_ci	[CAMSS_CSI1_AHB_CLK] = &camss_csi1_ahb_clk.clkr,
296162306a36Sopenharmony_ci	[CAMSS_CSI1_CLK] = &camss_csi1_clk.clkr,
296262306a36Sopenharmony_ci	[CAMSS_CSI1PHY_CLK] = &camss_csi1phy_clk.clkr,
296362306a36Sopenharmony_ci	[CAMSS_CSI1PIX_CLK] = &camss_csi1pix_clk.clkr,
296462306a36Sopenharmony_ci	[CAMSS_CSI1RDI_CLK] = &camss_csi1rdi_clk.clkr,
296562306a36Sopenharmony_ci	[CAMSS_CSI2_AHB_CLK] = &camss_csi2_ahb_clk.clkr,
296662306a36Sopenharmony_ci	[CAMSS_CSI2_CLK] = &camss_csi2_clk.clkr,
296762306a36Sopenharmony_ci	[CAMSS_CSI2PHY_CLK] = &camss_csi2phy_clk.clkr,
296862306a36Sopenharmony_ci	[CAMSS_CSI2PIX_CLK] = &camss_csi2pix_clk.clkr,
296962306a36Sopenharmony_ci	[CAMSS_CSI2RDI_CLK] = &camss_csi2rdi_clk.clkr,
297062306a36Sopenharmony_ci	[CAMSS_CSI3_AHB_CLK] = &camss_csi3_ahb_clk.clkr,
297162306a36Sopenharmony_ci	[CAMSS_CSI3_CLK] = &camss_csi3_clk.clkr,
297262306a36Sopenharmony_ci	[CAMSS_CSI3PHY_CLK] = &camss_csi3phy_clk.clkr,
297362306a36Sopenharmony_ci	[CAMSS_CSI3PIX_CLK] = &camss_csi3pix_clk.clkr,
297462306a36Sopenharmony_ci	[CAMSS_CSI3RDI_CLK] = &camss_csi3rdi_clk.clkr,
297562306a36Sopenharmony_ci	[CAMSS_CSI_VFE0_CLK] = &camss_csi_vfe0_clk.clkr,
297662306a36Sopenharmony_ci	[CAMSS_CSI_VFE1_CLK] = &camss_csi_vfe1_clk.clkr,
297762306a36Sopenharmony_ci	[CAMSS_GP0_CLK] = &camss_gp0_clk.clkr,
297862306a36Sopenharmony_ci	[CAMSS_GP1_CLK] = &camss_gp1_clk.clkr,
297962306a36Sopenharmony_ci	[CAMSS_ISPIF_AHB_CLK] = &camss_ispif_ahb_clk.clkr,
298062306a36Sopenharmony_ci	[CAMSS_JPEG_JPEG0_CLK] = &camss_jpeg_jpeg0_clk.clkr,
298162306a36Sopenharmony_ci	[CAMSS_JPEG_JPEG1_CLK] = &camss_jpeg_jpeg1_clk.clkr,
298262306a36Sopenharmony_ci	[CAMSS_JPEG_JPEG2_CLK] = &camss_jpeg_jpeg2_clk.clkr,
298362306a36Sopenharmony_ci	[CAMSS_JPEG_JPEG_AHB_CLK] = &camss_jpeg_jpeg_ahb_clk.clkr,
298462306a36Sopenharmony_ci	[CAMSS_JPEG_JPEG_AXI_CLK] = &camss_jpeg_jpeg_axi_clk.clkr,
298562306a36Sopenharmony_ci	[CAMSS_MCLK0_CLK] = &camss_mclk0_clk.clkr,
298662306a36Sopenharmony_ci	[CAMSS_MCLK1_CLK] = &camss_mclk1_clk.clkr,
298762306a36Sopenharmony_ci	[CAMSS_MCLK2_CLK] = &camss_mclk2_clk.clkr,
298862306a36Sopenharmony_ci	[CAMSS_MCLK3_CLK] = &camss_mclk3_clk.clkr,
298962306a36Sopenharmony_ci	[CAMSS_MICRO_AHB_CLK] = &camss_micro_ahb_clk.clkr,
299062306a36Sopenharmony_ci	[CAMSS_PHY0_CSI0PHYTIMER_CLK] = &camss_phy0_csi0phytimer_clk.clkr,
299162306a36Sopenharmony_ci	[CAMSS_PHY1_CSI1PHYTIMER_CLK] = &camss_phy1_csi1phytimer_clk.clkr,
299262306a36Sopenharmony_ci	[CAMSS_PHY2_CSI2PHYTIMER_CLK] = &camss_phy2_csi2phytimer_clk.clkr,
299362306a36Sopenharmony_ci	[CAMSS_TOP_AHB_CLK] = &camss_top_ahb_clk.clkr,
299462306a36Sopenharmony_ci	[CAMSS_VFE_CPP_AHB_CLK] = &camss_vfe_cpp_ahb_clk.clkr,
299562306a36Sopenharmony_ci	[CAMSS_VFE_CPP_CLK] = &camss_vfe_cpp_clk.clkr,
299662306a36Sopenharmony_ci	[CAMSS_VFE_VFE0_CLK] = &camss_vfe_vfe0_clk.clkr,
299762306a36Sopenharmony_ci	[CAMSS_VFE_VFE1_CLK] = &camss_vfe_vfe1_clk.clkr,
299862306a36Sopenharmony_ci	[CAMSS_VFE_VFE_AHB_CLK] = &camss_vfe_vfe_ahb_clk.clkr,
299962306a36Sopenharmony_ci	[CAMSS_VFE_VFE_AXI_CLK] = &camss_vfe_vfe_axi_clk.clkr,
300062306a36Sopenharmony_ci	[MDSS_AHB_CLK] = &mdss_ahb_clk.clkr,
300162306a36Sopenharmony_ci	[MDSS_AXI_CLK] = &mdss_axi_clk.clkr,
300262306a36Sopenharmony_ci	[MDSS_BYTE0_CLK] = &mdss_byte0_clk.clkr,
300362306a36Sopenharmony_ci	[MDSS_BYTE1_CLK] = &mdss_byte1_clk.clkr,
300462306a36Sopenharmony_ci	[MDSS_EDPAUX_CLK] = &mdss_edpaux_clk.clkr,
300562306a36Sopenharmony_ci	[MDSS_EDPLINK_CLK] = &mdss_edplink_clk.clkr,
300662306a36Sopenharmony_ci	[MDSS_EDPPIXEL_CLK] = &mdss_edppixel_clk.clkr,
300762306a36Sopenharmony_ci	[MDSS_ESC0_CLK] = &mdss_esc0_clk.clkr,
300862306a36Sopenharmony_ci	[MDSS_ESC1_CLK] = &mdss_esc1_clk.clkr,
300962306a36Sopenharmony_ci	[MDSS_EXTPCLK_CLK] = &mdss_extpclk_clk.clkr,
301062306a36Sopenharmony_ci	[MDSS_HDMI_AHB_CLK] = &mdss_hdmi_ahb_clk.clkr,
301162306a36Sopenharmony_ci	[MDSS_HDMI_CLK] = &mdss_hdmi_clk.clkr,
301262306a36Sopenharmony_ci	[MDSS_MDP_CLK] = &mdss_mdp_clk.clkr,
301362306a36Sopenharmony_ci	[MDSS_MDP_LUT_CLK] = &mdss_mdp_lut_clk.clkr,
301462306a36Sopenharmony_ci	[MDSS_PCLK0_CLK] = &mdss_pclk0_clk.clkr,
301562306a36Sopenharmony_ci	[MDSS_PCLK1_CLK] = &mdss_pclk1_clk.clkr,
301662306a36Sopenharmony_ci	[MDSS_VSYNC_CLK] = &mdss_vsync_clk.clkr,
301762306a36Sopenharmony_ci	[MMSS_RBCPR_AHB_CLK] = &mmss_rbcpr_ahb_clk.clkr,
301862306a36Sopenharmony_ci	[MMSS_RBCPR_CLK] = &mmss_rbcpr_clk.clkr,
301962306a36Sopenharmony_ci	[MMSS_MISC_AHB_CLK] = &mmss_misc_ahb_clk.clkr,
302062306a36Sopenharmony_ci	[MMSS_MMSSNOC_AHB_CLK] = &mmss_mmssnoc_ahb_clk.clkr,
302162306a36Sopenharmony_ci	[MMSS_MMSSNOC_BTO_AHB_CLK] = &mmss_mmssnoc_bto_ahb_clk.clkr,
302262306a36Sopenharmony_ci	[MMSS_MMSSNOC_AXI_CLK] = &mmss_mmssnoc_axi_clk.clkr,
302362306a36Sopenharmony_ci	[MMSS_S0_AXI_CLK] = &mmss_s0_axi_clk.clkr,
302462306a36Sopenharmony_ci	[OCMEMCX_AHB_CLK] = &ocmemcx_ahb_clk.clkr,
302562306a36Sopenharmony_ci	[OCMEMCX_OCMEMNOC_CLK] = &ocmemcx_ocmemnoc_clk.clkr,
302662306a36Sopenharmony_ci	[OXILI_OCMEMGX_CLK] = &oxili_ocmemgx_clk.clkr,
302762306a36Sopenharmony_ci	[OXILI_GFX3D_CLK] = &oxili_gfx3d_clk.clkr,
302862306a36Sopenharmony_ci	[OXILI_RBBMTIMER_CLK] = &oxili_rbbmtimer_clk.clkr,
302962306a36Sopenharmony_ci	[OXILICX_AHB_CLK] = &oxilicx_ahb_clk.clkr,
303062306a36Sopenharmony_ci	[VENUS0_AHB_CLK] = &venus0_ahb_clk.clkr,
303162306a36Sopenharmony_ci	[VENUS0_AXI_CLK] = &venus0_axi_clk.clkr,
303262306a36Sopenharmony_ci	[VENUS0_CORE0_VCODEC_CLK] = &venus0_core0_vcodec_clk.clkr,
303362306a36Sopenharmony_ci	[VENUS0_CORE1_VCODEC_CLK] = &venus0_core1_vcodec_clk.clkr,
303462306a36Sopenharmony_ci	[VENUS0_OCMEMNOC_CLK] = &venus0_ocmemnoc_clk.clkr,
303562306a36Sopenharmony_ci	[VENUS0_VCODEC0_CLK] = &venus0_vcodec0_clk.clkr,
303662306a36Sopenharmony_ci	[VPU_AHB_CLK] = &vpu_ahb_clk.clkr,
303762306a36Sopenharmony_ci	[VPU_AXI_CLK] = &vpu_axi_clk.clkr,
303862306a36Sopenharmony_ci	[VPU_BUS_CLK] = &vpu_bus_clk.clkr,
303962306a36Sopenharmony_ci	[VPU_CXO_CLK] = &vpu_cxo_clk.clkr,
304062306a36Sopenharmony_ci	[VPU_MAPLE_CLK] = &vpu_maple_clk.clkr,
304162306a36Sopenharmony_ci	[VPU_SLEEP_CLK] = &vpu_sleep_clk.clkr,
304262306a36Sopenharmony_ci	[VPU_VDP_CLK] = &vpu_vdp_clk.clkr,
304362306a36Sopenharmony_ci};
304462306a36Sopenharmony_ci
304562306a36Sopenharmony_cistatic const struct qcom_reset_map mmcc_apq8084_resets[] = {
304662306a36Sopenharmony_ci	[MMSS_SPDM_RESET] = { 0x0200 },
304762306a36Sopenharmony_ci	[MMSS_SPDM_RM_RESET] = { 0x0300 },
304862306a36Sopenharmony_ci	[VENUS0_RESET] = { 0x1020 },
304962306a36Sopenharmony_ci	[VPU_RESET] = { 0x1400 },
305062306a36Sopenharmony_ci	[MDSS_RESET] = { 0x2300 },
305162306a36Sopenharmony_ci	[AVSYNC_RESET] = { 0x2400 },
305262306a36Sopenharmony_ci	[CAMSS_PHY0_RESET] = { 0x3020 },
305362306a36Sopenharmony_ci	[CAMSS_PHY1_RESET] = { 0x3050 },
305462306a36Sopenharmony_ci	[CAMSS_PHY2_RESET] = { 0x3080 },
305562306a36Sopenharmony_ci	[CAMSS_CSI0_RESET] = { 0x30b0 },
305662306a36Sopenharmony_ci	[CAMSS_CSI0PHY_RESET] = { 0x30c0 },
305762306a36Sopenharmony_ci	[CAMSS_CSI0RDI_RESET] = { 0x30d0 },
305862306a36Sopenharmony_ci	[CAMSS_CSI0PIX_RESET] = { 0x30e0 },
305962306a36Sopenharmony_ci	[CAMSS_CSI1_RESET] = { 0x3120 },
306062306a36Sopenharmony_ci	[CAMSS_CSI1PHY_RESET] = { 0x3130 },
306162306a36Sopenharmony_ci	[CAMSS_CSI1RDI_RESET] = { 0x3140 },
306262306a36Sopenharmony_ci	[CAMSS_CSI1PIX_RESET] = { 0x3150 },
306362306a36Sopenharmony_ci	[CAMSS_CSI2_RESET] = { 0x3180 },
306462306a36Sopenharmony_ci	[CAMSS_CSI2PHY_RESET] = { 0x3190 },
306562306a36Sopenharmony_ci	[CAMSS_CSI2RDI_RESET] = { 0x31a0 },
306662306a36Sopenharmony_ci	[CAMSS_CSI2PIX_RESET] = { 0x31b0 },
306762306a36Sopenharmony_ci	[CAMSS_CSI3_RESET] = { 0x31e0 },
306862306a36Sopenharmony_ci	[CAMSS_CSI3PHY_RESET] = { 0x31f0 },
306962306a36Sopenharmony_ci	[CAMSS_CSI3RDI_RESET] = { 0x3200 },
307062306a36Sopenharmony_ci	[CAMSS_CSI3PIX_RESET] = { 0x3210 },
307162306a36Sopenharmony_ci	[CAMSS_ISPIF_RESET] = { 0x3220 },
307262306a36Sopenharmony_ci	[CAMSS_CCI_RESET] = { 0x3340 },
307362306a36Sopenharmony_ci	[CAMSS_MCLK0_RESET] = { 0x3380 },
307462306a36Sopenharmony_ci	[CAMSS_MCLK1_RESET] = { 0x33b0 },
307562306a36Sopenharmony_ci	[CAMSS_MCLK2_RESET] = { 0x33e0 },
307662306a36Sopenharmony_ci	[CAMSS_MCLK3_RESET] = { 0x3410 },
307762306a36Sopenharmony_ci	[CAMSS_GP0_RESET] = { 0x3440 },
307862306a36Sopenharmony_ci	[CAMSS_GP1_RESET] = { 0x3470 },
307962306a36Sopenharmony_ci	[CAMSS_TOP_RESET] = { 0x3480 },
308062306a36Sopenharmony_ci	[CAMSS_AHB_RESET] = { 0x3488 },
308162306a36Sopenharmony_ci	[CAMSS_MICRO_RESET] = { 0x3490 },
308262306a36Sopenharmony_ci	[CAMSS_JPEG_RESET] = { 0x35a0 },
308362306a36Sopenharmony_ci	[CAMSS_VFE_RESET] = { 0x36a0 },
308462306a36Sopenharmony_ci	[CAMSS_CSI_VFE0_RESET] = { 0x3700 },
308562306a36Sopenharmony_ci	[CAMSS_CSI_VFE1_RESET] = { 0x3710 },
308662306a36Sopenharmony_ci	[OXILI_RESET] = { 0x4020 },
308762306a36Sopenharmony_ci	[OXILICX_RESET] = { 0x4030 },
308862306a36Sopenharmony_ci	[OCMEMCX_RESET] = { 0x4050 },
308962306a36Sopenharmony_ci	[MMSS_RBCRP_RESET] = { 0x4080 },
309062306a36Sopenharmony_ci	[MMSSNOCAHB_RESET] = { 0x5020 },
309162306a36Sopenharmony_ci	[MMSSNOCAXI_RESET] = { 0x5060 },
309262306a36Sopenharmony_ci};
309362306a36Sopenharmony_ci
309462306a36Sopenharmony_cistatic struct gdsc *mmcc_apq8084_gdscs[] = {
309562306a36Sopenharmony_ci	[VENUS0_GDSC] = &venus0_gdsc,
309662306a36Sopenharmony_ci	[VENUS0_CORE0_GDSC] = &venus0_core0_gdsc,
309762306a36Sopenharmony_ci	[VENUS0_CORE1_GDSC] = &venus0_core1_gdsc,
309862306a36Sopenharmony_ci	[MDSS_GDSC] = &mdss_gdsc,
309962306a36Sopenharmony_ci	[CAMSS_JPEG_GDSC] = &camss_jpeg_gdsc,
310062306a36Sopenharmony_ci	[CAMSS_VFE_GDSC] = &camss_vfe_gdsc,
310162306a36Sopenharmony_ci	[OXILI_GDSC] = &oxili_gdsc,
310262306a36Sopenharmony_ci	[OXILICX_GDSC] = &oxilicx_gdsc,
310362306a36Sopenharmony_ci};
310462306a36Sopenharmony_ci
310562306a36Sopenharmony_cistatic const struct regmap_config mmcc_apq8084_regmap_config = {
310662306a36Sopenharmony_ci	.reg_bits	= 32,
310762306a36Sopenharmony_ci	.reg_stride	= 4,
310862306a36Sopenharmony_ci	.val_bits	= 32,
310962306a36Sopenharmony_ci	.max_register	= 0x5104,
311062306a36Sopenharmony_ci	.fast_io	= true,
311162306a36Sopenharmony_ci};
311262306a36Sopenharmony_ci
311362306a36Sopenharmony_cistatic const struct qcom_cc_desc mmcc_apq8084_desc = {
311462306a36Sopenharmony_ci	.config = &mmcc_apq8084_regmap_config,
311562306a36Sopenharmony_ci	.clks = mmcc_apq8084_clocks,
311662306a36Sopenharmony_ci	.num_clks = ARRAY_SIZE(mmcc_apq8084_clocks),
311762306a36Sopenharmony_ci	.resets = mmcc_apq8084_resets,
311862306a36Sopenharmony_ci	.num_resets = ARRAY_SIZE(mmcc_apq8084_resets),
311962306a36Sopenharmony_ci	.gdscs = mmcc_apq8084_gdscs,
312062306a36Sopenharmony_ci	.num_gdscs = ARRAY_SIZE(mmcc_apq8084_gdscs),
312162306a36Sopenharmony_ci};
312262306a36Sopenharmony_ci
312362306a36Sopenharmony_cistatic const struct of_device_id mmcc_apq8084_match_table[] = {
312462306a36Sopenharmony_ci	{ .compatible = "qcom,mmcc-apq8084" },
312562306a36Sopenharmony_ci	{ }
312662306a36Sopenharmony_ci};
312762306a36Sopenharmony_ciMODULE_DEVICE_TABLE(of, mmcc_apq8084_match_table);
312862306a36Sopenharmony_ci
312962306a36Sopenharmony_cistatic int mmcc_apq8084_probe(struct platform_device *pdev)
313062306a36Sopenharmony_ci{
313162306a36Sopenharmony_ci	int ret;
313262306a36Sopenharmony_ci	struct regmap *regmap;
313362306a36Sopenharmony_ci
313462306a36Sopenharmony_ci	ret = qcom_cc_probe(pdev, &mmcc_apq8084_desc);
313562306a36Sopenharmony_ci	if (ret)
313662306a36Sopenharmony_ci		return ret;
313762306a36Sopenharmony_ci
313862306a36Sopenharmony_ci	regmap = dev_get_regmap(&pdev->dev, NULL);
313962306a36Sopenharmony_ci	clk_pll_configure_sr_hpm_lp(&mmpll1, regmap, &mmpll1_config, true);
314062306a36Sopenharmony_ci	clk_pll_configure_sr_hpm_lp(&mmpll3, regmap, &mmpll3_config, false);
314162306a36Sopenharmony_ci
314262306a36Sopenharmony_ci	return 0;
314362306a36Sopenharmony_ci}
314462306a36Sopenharmony_ci
314562306a36Sopenharmony_cistatic struct platform_driver mmcc_apq8084_driver = {
314662306a36Sopenharmony_ci	.probe		= mmcc_apq8084_probe,
314762306a36Sopenharmony_ci	.driver		= {
314862306a36Sopenharmony_ci		.name	= "mmcc-apq8084",
314962306a36Sopenharmony_ci		.of_match_table = mmcc_apq8084_match_table,
315062306a36Sopenharmony_ci	},
315162306a36Sopenharmony_ci};
315262306a36Sopenharmony_cimodule_platform_driver(mmcc_apq8084_driver);
315362306a36Sopenharmony_ci
315462306a36Sopenharmony_ciMODULE_DESCRIPTION("QCOM MMCC APQ8084 Driver");
315562306a36Sopenharmony_ciMODULE_LICENSE("GPL v2");
315662306a36Sopenharmony_ciMODULE_ALIAS("platform:mmcc-apq8084");
3157