162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright (c) 2020-2021, The Linux Foundation. All rights reserved.
462306a36Sopenharmony_ci */
562306a36Sopenharmony_ci
662306a36Sopenharmony_ci#include <linux/clk-provider.h>
762306a36Sopenharmony_ci#include <linux/mod_devicetable.h>
862306a36Sopenharmony_ci#include <linux/module.h>
962306a36Sopenharmony_ci#include <linux/platform_device.h>
1062306a36Sopenharmony_ci#include <linux/regmap.h>
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ci#include <dt-bindings/clock/qcom,sm8450-camcc.h>
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ci#include "clk-alpha-pll.h"
1562306a36Sopenharmony_ci#include "clk-branch.h"
1662306a36Sopenharmony_ci#include "clk-pll.h"
1762306a36Sopenharmony_ci#include "clk-rcg.h"
1862306a36Sopenharmony_ci#include "clk-regmap-divider.h"
1962306a36Sopenharmony_ci#include "clk-regmap-mux.h"
2062306a36Sopenharmony_ci#include "clk-regmap.h"
2162306a36Sopenharmony_ci#include "common.h"
2262306a36Sopenharmony_ci#include "gdsc.h"
2362306a36Sopenharmony_ci#include "reset.h"
2462306a36Sopenharmony_ci
2562306a36Sopenharmony_cienum {
2662306a36Sopenharmony_ci	DT_IFACE,
2762306a36Sopenharmony_ci	DT_BI_TCXO,
2862306a36Sopenharmony_ci	DT_BI_TCXO_AO,
2962306a36Sopenharmony_ci	DT_SLEEP_CLK
3062306a36Sopenharmony_ci};
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_cienum {
3362306a36Sopenharmony_ci	P_BI_TCXO,
3462306a36Sopenharmony_ci	P_CAM_CC_PLL0_OUT_EVEN,
3562306a36Sopenharmony_ci	P_CAM_CC_PLL0_OUT_MAIN,
3662306a36Sopenharmony_ci	P_CAM_CC_PLL0_OUT_ODD,
3762306a36Sopenharmony_ci	P_CAM_CC_PLL1_OUT_EVEN,
3862306a36Sopenharmony_ci	P_CAM_CC_PLL2_OUT_EVEN,
3962306a36Sopenharmony_ci	P_CAM_CC_PLL2_OUT_MAIN,
4062306a36Sopenharmony_ci	P_CAM_CC_PLL3_OUT_EVEN,
4162306a36Sopenharmony_ci	P_CAM_CC_PLL4_OUT_EVEN,
4262306a36Sopenharmony_ci	P_CAM_CC_PLL5_OUT_EVEN,
4362306a36Sopenharmony_ci	P_CAM_CC_PLL6_OUT_EVEN,
4462306a36Sopenharmony_ci	P_CAM_CC_PLL7_OUT_EVEN,
4562306a36Sopenharmony_ci	P_CAM_CC_PLL8_OUT_EVEN,
4662306a36Sopenharmony_ci	P_SLEEP_CLK,
4762306a36Sopenharmony_ci};
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_cistatic const struct pll_vco lucid_evo_vco[] = {
5062306a36Sopenharmony_ci	{ 249600000, 2000000000, 0 },
5162306a36Sopenharmony_ci};
5262306a36Sopenharmony_ci
5362306a36Sopenharmony_cistatic const struct pll_vco rivian_evo_vco[] = {
5462306a36Sopenharmony_ci	{ 864000000, 1056000000, 0 },
5562306a36Sopenharmony_ci};
5662306a36Sopenharmony_ci
5762306a36Sopenharmony_cistatic const struct clk_parent_data pll_parent_data_tcxo = { .index = DT_BI_TCXO };
5862306a36Sopenharmony_ci
5962306a36Sopenharmony_cistatic const struct alpha_pll_config cam_cc_pll0_config = {
6062306a36Sopenharmony_ci	.l = 0x3e,
6162306a36Sopenharmony_ci	.alpha = 0x8000,
6262306a36Sopenharmony_ci	.config_ctl_val = 0x20485699,
6362306a36Sopenharmony_ci	.config_ctl_hi_val = 0x00182261,
6462306a36Sopenharmony_ci	.config_ctl_hi1_val = 0x32aa299c,
6562306a36Sopenharmony_ci	.user_ctl_val = 0x00008400,
6662306a36Sopenharmony_ci	.user_ctl_hi_val = 0x00000805,
6762306a36Sopenharmony_ci};
6862306a36Sopenharmony_ci
6962306a36Sopenharmony_cistatic struct clk_alpha_pll cam_cc_pll0 = {
7062306a36Sopenharmony_ci	.offset = 0x0,
7162306a36Sopenharmony_ci	.vco_table = lucid_evo_vco,
7262306a36Sopenharmony_ci	.num_vco = ARRAY_SIZE(lucid_evo_vco),
7362306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_EVO],
7462306a36Sopenharmony_ci	.clkr = {
7562306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
7662306a36Sopenharmony_ci			.name = "cam_cc_pll0",
7762306a36Sopenharmony_ci			.parent_data = &pll_parent_data_tcxo,
7862306a36Sopenharmony_ci			.num_parents = 1,
7962306a36Sopenharmony_ci			.ops = &clk_alpha_pll_lucid_evo_ops,
8062306a36Sopenharmony_ci		},
8162306a36Sopenharmony_ci	},
8262306a36Sopenharmony_ci};
8362306a36Sopenharmony_ci
8462306a36Sopenharmony_cistatic const struct clk_div_table post_div_table_cam_cc_pll0_out_even[] = {
8562306a36Sopenharmony_ci	{ 0x1, 2 },
8662306a36Sopenharmony_ci	{ }
8762306a36Sopenharmony_ci};
8862306a36Sopenharmony_ci
8962306a36Sopenharmony_cistatic struct clk_alpha_pll_postdiv cam_cc_pll0_out_even = {
9062306a36Sopenharmony_ci	.offset = 0x0,
9162306a36Sopenharmony_ci	.post_div_shift = 10,
9262306a36Sopenharmony_ci	.post_div_table = post_div_table_cam_cc_pll0_out_even,
9362306a36Sopenharmony_ci	.num_post_div = ARRAY_SIZE(post_div_table_cam_cc_pll0_out_even),
9462306a36Sopenharmony_ci	.width = 4,
9562306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_EVO],
9662306a36Sopenharmony_ci	.clkr.hw.init = &(const struct clk_init_data) {
9762306a36Sopenharmony_ci		.name = "cam_cc_pll0_out_even",
9862306a36Sopenharmony_ci		.parent_hws = (const struct clk_hw*[]) {
9962306a36Sopenharmony_ci			&cam_cc_pll0.clkr.hw,
10062306a36Sopenharmony_ci		},
10162306a36Sopenharmony_ci		.num_parents = 1,
10262306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
10362306a36Sopenharmony_ci		.ops = &clk_alpha_pll_postdiv_lucid_evo_ops,
10462306a36Sopenharmony_ci	},
10562306a36Sopenharmony_ci};
10662306a36Sopenharmony_ci
10762306a36Sopenharmony_cistatic const struct clk_div_table post_div_table_cam_cc_pll0_out_odd[] = {
10862306a36Sopenharmony_ci	{ 0x2, 3 },
10962306a36Sopenharmony_ci	{ }
11062306a36Sopenharmony_ci};
11162306a36Sopenharmony_ci
11262306a36Sopenharmony_cistatic struct clk_alpha_pll_postdiv cam_cc_pll0_out_odd = {
11362306a36Sopenharmony_ci	.offset = 0x0,
11462306a36Sopenharmony_ci	.post_div_shift = 14,
11562306a36Sopenharmony_ci	.post_div_table = post_div_table_cam_cc_pll0_out_odd,
11662306a36Sopenharmony_ci	.num_post_div = ARRAY_SIZE(post_div_table_cam_cc_pll0_out_odd),
11762306a36Sopenharmony_ci	.width = 4,
11862306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_EVO],
11962306a36Sopenharmony_ci	.clkr.hw.init = &(const struct clk_init_data) {
12062306a36Sopenharmony_ci		.name = "cam_cc_pll0_out_odd",
12162306a36Sopenharmony_ci		.parent_hws = (const struct clk_hw*[]) {
12262306a36Sopenharmony_ci			&cam_cc_pll0.clkr.hw,
12362306a36Sopenharmony_ci		},
12462306a36Sopenharmony_ci		.num_parents = 1,
12562306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
12662306a36Sopenharmony_ci		.ops = &clk_alpha_pll_postdiv_lucid_evo_ops,
12762306a36Sopenharmony_ci	},
12862306a36Sopenharmony_ci};
12962306a36Sopenharmony_ci
13062306a36Sopenharmony_cistatic const struct alpha_pll_config cam_cc_pll1_config = {
13162306a36Sopenharmony_ci	.l = 0x25,
13262306a36Sopenharmony_ci	.alpha = 0xeaaa,
13362306a36Sopenharmony_ci	.config_ctl_val = 0x20485699,
13462306a36Sopenharmony_ci	.config_ctl_hi_val = 0x00182261,
13562306a36Sopenharmony_ci	.config_ctl_hi1_val = 0x32aa299c,
13662306a36Sopenharmony_ci	.user_ctl_val = 0x00000400,
13762306a36Sopenharmony_ci	.user_ctl_hi_val = 0x00000805,
13862306a36Sopenharmony_ci};
13962306a36Sopenharmony_ci
14062306a36Sopenharmony_cistatic struct clk_alpha_pll cam_cc_pll1 = {
14162306a36Sopenharmony_ci	.offset = 0x1000,
14262306a36Sopenharmony_ci	.vco_table = lucid_evo_vco,
14362306a36Sopenharmony_ci	.num_vco = ARRAY_SIZE(lucid_evo_vco),
14462306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_EVO],
14562306a36Sopenharmony_ci	.clkr = {
14662306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
14762306a36Sopenharmony_ci			.name = "cam_cc_pll1",
14862306a36Sopenharmony_ci			.parent_data = &pll_parent_data_tcxo,
14962306a36Sopenharmony_ci			.num_parents = 1,
15062306a36Sopenharmony_ci			.ops = &clk_alpha_pll_lucid_evo_ops,
15162306a36Sopenharmony_ci		},
15262306a36Sopenharmony_ci	},
15362306a36Sopenharmony_ci};
15462306a36Sopenharmony_ci
15562306a36Sopenharmony_cistatic const struct clk_div_table post_div_table_cam_cc_pll1_out_even[] = {
15662306a36Sopenharmony_ci	{ 0x1, 2 },
15762306a36Sopenharmony_ci	{ }
15862306a36Sopenharmony_ci};
15962306a36Sopenharmony_ci
16062306a36Sopenharmony_cistatic struct clk_alpha_pll_postdiv cam_cc_pll1_out_even = {
16162306a36Sopenharmony_ci	.offset = 0x1000,
16262306a36Sopenharmony_ci	.post_div_shift = 10,
16362306a36Sopenharmony_ci	.post_div_table = post_div_table_cam_cc_pll1_out_even,
16462306a36Sopenharmony_ci	.num_post_div = ARRAY_SIZE(post_div_table_cam_cc_pll1_out_even),
16562306a36Sopenharmony_ci	.width = 4,
16662306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_EVO],
16762306a36Sopenharmony_ci	.clkr.hw.init = &(const struct clk_init_data) {
16862306a36Sopenharmony_ci		.name = "cam_cc_pll1_out_even",
16962306a36Sopenharmony_ci		.parent_hws = (const struct clk_hw*[]) {
17062306a36Sopenharmony_ci			&cam_cc_pll1.clkr.hw,
17162306a36Sopenharmony_ci		},
17262306a36Sopenharmony_ci		.num_parents = 1,
17362306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
17462306a36Sopenharmony_ci		.ops = &clk_alpha_pll_postdiv_lucid_evo_ops,
17562306a36Sopenharmony_ci	},
17662306a36Sopenharmony_ci};
17762306a36Sopenharmony_ci
17862306a36Sopenharmony_cistatic const struct alpha_pll_config cam_cc_pll2_config = {
17962306a36Sopenharmony_ci	.l = 0x32,
18062306a36Sopenharmony_ci	.alpha = 0x0,
18162306a36Sopenharmony_ci	.config_ctl_val = 0x90008820,
18262306a36Sopenharmony_ci	.config_ctl_hi_val = 0x00890263,
18362306a36Sopenharmony_ci	.config_ctl_hi1_val = 0x00000217,
18462306a36Sopenharmony_ci};
18562306a36Sopenharmony_ci
18662306a36Sopenharmony_cistatic struct clk_alpha_pll cam_cc_pll2 = {
18762306a36Sopenharmony_ci	.offset = 0x2000,
18862306a36Sopenharmony_ci	.vco_table = rivian_evo_vco,
18962306a36Sopenharmony_ci	.num_vco = ARRAY_SIZE(rivian_evo_vco),
19062306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_RIVIAN_EVO],
19162306a36Sopenharmony_ci	.clkr = {
19262306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
19362306a36Sopenharmony_ci			.name = "cam_cc_pll2",
19462306a36Sopenharmony_ci			.parent_data = &pll_parent_data_tcxo,
19562306a36Sopenharmony_ci			.num_parents = 1,
19662306a36Sopenharmony_ci			.ops = &clk_alpha_pll_rivian_evo_ops,
19762306a36Sopenharmony_ci		},
19862306a36Sopenharmony_ci	},
19962306a36Sopenharmony_ci};
20062306a36Sopenharmony_ci
20162306a36Sopenharmony_cistatic const struct alpha_pll_config cam_cc_pll3_config = {
20262306a36Sopenharmony_ci	.l = 0x2d,
20362306a36Sopenharmony_ci	.alpha = 0x0,
20462306a36Sopenharmony_ci	.config_ctl_val = 0x20485699,
20562306a36Sopenharmony_ci	.config_ctl_hi_val = 0x00182261,
20662306a36Sopenharmony_ci	.config_ctl_hi1_val = 0x32aa299c,
20762306a36Sopenharmony_ci	.user_ctl_val = 0x00000400,
20862306a36Sopenharmony_ci	.user_ctl_hi_val = 0x00000805,
20962306a36Sopenharmony_ci};
21062306a36Sopenharmony_ci
21162306a36Sopenharmony_cistatic struct clk_alpha_pll cam_cc_pll3 = {
21262306a36Sopenharmony_ci	.offset = 0x3000,
21362306a36Sopenharmony_ci	.vco_table = lucid_evo_vco,
21462306a36Sopenharmony_ci	.num_vco = ARRAY_SIZE(lucid_evo_vco),
21562306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_EVO],
21662306a36Sopenharmony_ci	.clkr = {
21762306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
21862306a36Sopenharmony_ci			.name = "cam_cc_pll3",
21962306a36Sopenharmony_ci			.parent_data = &pll_parent_data_tcxo,
22062306a36Sopenharmony_ci			.num_parents = 1,
22162306a36Sopenharmony_ci			.ops = &clk_alpha_pll_lucid_evo_ops,
22262306a36Sopenharmony_ci		},
22362306a36Sopenharmony_ci	},
22462306a36Sopenharmony_ci};
22562306a36Sopenharmony_ci
22662306a36Sopenharmony_cistatic const struct clk_div_table post_div_table_cam_cc_pll3_out_even[] = {
22762306a36Sopenharmony_ci	{ 0x1, 2 },
22862306a36Sopenharmony_ci	{ }
22962306a36Sopenharmony_ci};
23062306a36Sopenharmony_ci
23162306a36Sopenharmony_cistatic struct clk_alpha_pll_postdiv cam_cc_pll3_out_even = {
23262306a36Sopenharmony_ci	.offset = 0x3000,
23362306a36Sopenharmony_ci	.post_div_shift = 10,
23462306a36Sopenharmony_ci	.post_div_table = post_div_table_cam_cc_pll3_out_even,
23562306a36Sopenharmony_ci	.num_post_div = ARRAY_SIZE(post_div_table_cam_cc_pll3_out_even),
23662306a36Sopenharmony_ci	.width = 4,
23762306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_EVO],
23862306a36Sopenharmony_ci	.clkr.hw.init = &(const struct clk_init_data) {
23962306a36Sopenharmony_ci		.name = "cam_cc_pll3_out_even",
24062306a36Sopenharmony_ci		.parent_hws = (const struct clk_hw*[]) {
24162306a36Sopenharmony_ci			&cam_cc_pll3.clkr.hw,
24262306a36Sopenharmony_ci		},
24362306a36Sopenharmony_ci		.num_parents = 1,
24462306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
24562306a36Sopenharmony_ci		.ops = &clk_alpha_pll_postdiv_lucid_evo_ops,
24662306a36Sopenharmony_ci	},
24762306a36Sopenharmony_ci};
24862306a36Sopenharmony_ci
24962306a36Sopenharmony_cistatic const struct alpha_pll_config cam_cc_pll4_config = {
25062306a36Sopenharmony_ci	.l = 0x2d,
25162306a36Sopenharmony_ci	.alpha = 0x0,
25262306a36Sopenharmony_ci	.config_ctl_val = 0x20485699,
25362306a36Sopenharmony_ci	.config_ctl_hi_val = 0x00182261,
25462306a36Sopenharmony_ci	.config_ctl_hi1_val = 0x32aa299c,
25562306a36Sopenharmony_ci	.user_ctl_val = 0x00000400,
25662306a36Sopenharmony_ci	.user_ctl_hi_val = 0x00000805,
25762306a36Sopenharmony_ci};
25862306a36Sopenharmony_ci
25962306a36Sopenharmony_cistatic struct clk_alpha_pll cam_cc_pll4 = {
26062306a36Sopenharmony_ci	.offset = 0x4000,
26162306a36Sopenharmony_ci	.vco_table = lucid_evo_vco,
26262306a36Sopenharmony_ci	.num_vco = ARRAY_SIZE(lucid_evo_vco),
26362306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_EVO],
26462306a36Sopenharmony_ci	.clkr = {
26562306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
26662306a36Sopenharmony_ci			.name = "cam_cc_pll4",
26762306a36Sopenharmony_ci			.parent_data = &pll_parent_data_tcxo,
26862306a36Sopenharmony_ci			.num_parents = 1,
26962306a36Sopenharmony_ci			.ops = &clk_alpha_pll_lucid_evo_ops,
27062306a36Sopenharmony_ci		},
27162306a36Sopenharmony_ci	},
27262306a36Sopenharmony_ci};
27362306a36Sopenharmony_ci
27462306a36Sopenharmony_cistatic const struct clk_div_table post_div_table_cam_cc_pll4_out_even[] = {
27562306a36Sopenharmony_ci	{ 0x1, 2 },
27662306a36Sopenharmony_ci	{ }
27762306a36Sopenharmony_ci};
27862306a36Sopenharmony_ci
27962306a36Sopenharmony_cistatic struct clk_alpha_pll_postdiv cam_cc_pll4_out_even = {
28062306a36Sopenharmony_ci	.offset = 0x4000,
28162306a36Sopenharmony_ci	.post_div_shift = 10,
28262306a36Sopenharmony_ci	.post_div_table = post_div_table_cam_cc_pll4_out_even,
28362306a36Sopenharmony_ci	.num_post_div = ARRAY_SIZE(post_div_table_cam_cc_pll4_out_even),
28462306a36Sopenharmony_ci	.width = 4,
28562306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_EVO],
28662306a36Sopenharmony_ci	.clkr.hw.init = &(const struct clk_init_data) {
28762306a36Sopenharmony_ci		.name = "cam_cc_pll4_out_even",
28862306a36Sopenharmony_ci		.parent_hws = (const struct clk_hw*[]) {
28962306a36Sopenharmony_ci			&cam_cc_pll4.clkr.hw,
29062306a36Sopenharmony_ci		},
29162306a36Sopenharmony_ci		.num_parents = 1,
29262306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
29362306a36Sopenharmony_ci		.ops = &clk_alpha_pll_postdiv_lucid_evo_ops,
29462306a36Sopenharmony_ci	},
29562306a36Sopenharmony_ci};
29662306a36Sopenharmony_ci
29762306a36Sopenharmony_cistatic const struct alpha_pll_config cam_cc_pll5_config = {
29862306a36Sopenharmony_ci	.l = 0x2d,
29962306a36Sopenharmony_ci	.alpha = 0x0,
30062306a36Sopenharmony_ci	.config_ctl_val = 0x20485699,
30162306a36Sopenharmony_ci	.config_ctl_hi_val = 0x00182261,
30262306a36Sopenharmony_ci	.config_ctl_hi1_val = 0x32aa299c,
30362306a36Sopenharmony_ci	.user_ctl_val = 0x00000400,
30462306a36Sopenharmony_ci	.user_ctl_hi_val = 0x00000805,
30562306a36Sopenharmony_ci};
30662306a36Sopenharmony_ci
30762306a36Sopenharmony_cistatic struct clk_alpha_pll cam_cc_pll5 = {
30862306a36Sopenharmony_ci	.offset = 0x5000,
30962306a36Sopenharmony_ci	.vco_table = lucid_evo_vco,
31062306a36Sopenharmony_ci	.num_vco = ARRAY_SIZE(lucid_evo_vco),
31162306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_EVO],
31262306a36Sopenharmony_ci	.clkr = {
31362306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
31462306a36Sopenharmony_ci			.name = "cam_cc_pll5",
31562306a36Sopenharmony_ci			.parent_data = &pll_parent_data_tcxo,
31662306a36Sopenharmony_ci			.num_parents = 1,
31762306a36Sopenharmony_ci			.ops = &clk_alpha_pll_lucid_evo_ops,
31862306a36Sopenharmony_ci		},
31962306a36Sopenharmony_ci	},
32062306a36Sopenharmony_ci};
32162306a36Sopenharmony_ci
32262306a36Sopenharmony_cistatic const struct clk_div_table post_div_table_cam_cc_pll5_out_even[] = {
32362306a36Sopenharmony_ci	{ 0x1, 2 },
32462306a36Sopenharmony_ci	{ }
32562306a36Sopenharmony_ci};
32662306a36Sopenharmony_ci
32762306a36Sopenharmony_cistatic struct clk_alpha_pll_postdiv cam_cc_pll5_out_even = {
32862306a36Sopenharmony_ci	.offset = 0x5000,
32962306a36Sopenharmony_ci	.post_div_shift = 10,
33062306a36Sopenharmony_ci	.post_div_table = post_div_table_cam_cc_pll5_out_even,
33162306a36Sopenharmony_ci	.num_post_div = ARRAY_SIZE(post_div_table_cam_cc_pll5_out_even),
33262306a36Sopenharmony_ci	.width = 4,
33362306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_EVO],
33462306a36Sopenharmony_ci	.clkr.hw.init = &(const struct clk_init_data) {
33562306a36Sopenharmony_ci		.name = "cam_cc_pll5_out_even",
33662306a36Sopenharmony_ci		.parent_hws = (const struct clk_hw*[]) {
33762306a36Sopenharmony_ci			&cam_cc_pll5.clkr.hw,
33862306a36Sopenharmony_ci		},
33962306a36Sopenharmony_ci		.num_parents = 1,
34062306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
34162306a36Sopenharmony_ci		.ops = &clk_alpha_pll_postdiv_lucid_evo_ops,
34262306a36Sopenharmony_ci	},
34362306a36Sopenharmony_ci};
34462306a36Sopenharmony_ci
34562306a36Sopenharmony_cistatic const struct alpha_pll_config cam_cc_pll6_config = {
34662306a36Sopenharmony_ci	.l = 0x2d,
34762306a36Sopenharmony_ci	.alpha = 0x0,
34862306a36Sopenharmony_ci	.config_ctl_val = 0x20485699,
34962306a36Sopenharmony_ci	.config_ctl_hi_val = 0x00182261,
35062306a36Sopenharmony_ci	.config_ctl_hi1_val = 0x32aa299c,
35162306a36Sopenharmony_ci	.user_ctl_val = 0x00000400,
35262306a36Sopenharmony_ci	.user_ctl_hi_val = 0x00000805,
35362306a36Sopenharmony_ci};
35462306a36Sopenharmony_ci
35562306a36Sopenharmony_cistatic struct clk_alpha_pll cam_cc_pll6 = {
35662306a36Sopenharmony_ci	.offset = 0x6000,
35762306a36Sopenharmony_ci	.vco_table = lucid_evo_vco,
35862306a36Sopenharmony_ci	.num_vco = ARRAY_SIZE(lucid_evo_vco),
35962306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_EVO],
36062306a36Sopenharmony_ci	.clkr = {
36162306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
36262306a36Sopenharmony_ci			.name = "cam_cc_pll6",
36362306a36Sopenharmony_ci			.parent_data = &pll_parent_data_tcxo,
36462306a36Sopenharmony_ci			.num_parents = 1,
36562306a36Sopenharmony_ci			.ops = &clk_alpha_pll_lucid_evo_ops,
36662306a36Sopenharmony_ci		},
36762306a36Sopenharmony_ci	},
36862306a36Sopenharmony_ci};
36962306a36Sopenharmony_ci
37062306a36Sopenharmony_cistatic const struct clk_div_table post_div_table_cam_cc_pll6_out_even[] = {
37162306a36Sopenharmony_ci	{ 0x1, 2 },
37262306a36Sopenharmony_ci	{ }
37362306a36Sopenharmony_ci};
37462306a36Sopenharmony_ci
37562306a36Sopenharmony_cistatic struct clk_alpha_pll_postdiv cam_cc_pll6_out_even = {
37662306a36Sopenharmony_ci	.offset = 0x6000,
37762306a36Sopenharmony_ci	.post_div_shift = 10,
37862306a36Sopenharmony_ci	.post_div_table = post_div_table_cam_cc_pll6_out_even,
37962306a36Sopenharmony_ci	.num_post_div = ARRAY_SIZE(post_div_table_cam_cc_pll6_out_even),
38062306a36Sopenharmony_ci	.width = 4,
38162306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_EVO],
38262306a36Sopenharmony_ci	.clkr.hw.init = &(const struct clk_init_data) {
38362306a36Sopenharmony_ci		.name = "cam_cc_pll6_out_even",
38462306a36Sopenharmony_ci		.parent_hws = (const struct clk_hw*[]) {
38562306a36Sopenharmony_ci			&cam_cc_pll6.clkr.hw,
38662306a36Sopenharmony_ci		},
38762306a36Sopenharmony_ci		.num_parents = 1,
38862306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
38962306a36Sopenharmony_ci		.ops = &clk_alpha_pll_postdiv_lucid_evo_ops,
39062306a36Sopenharmony_ci	},
39162306a36Sopenharmony_ci};
39262306a36Sopenharmony_ci
39362306a36Sopenharmony_cistatic const struct alpha_pll_config cam_cc_pll7_config = {
39462306a36Sopenharmony_ci	.l = 0x2d,
39562306a36Sopenharmony_ci	.alpha = 0x0,
39662306a36Sopenharmony_ci	.config_ctl_val = 0x20485699,
39762306a36Sopenharmony_ci	.config_ctl_hi_val = 0x00182261,
39862306a36Sopenharmony_ci	.config_ctl_hi1_val = 0x32aa299c,
39962306a36Sopenharmony_ci	.user_ctl_val = 0x00000400,
40062306a36Sopenharmony_ci	.user_ctl_hi_val = 0x00000805,
40162306a36Sopenharmony_ci};
40262306a36Sopenharmony_ci
40362306a36Sopenharmony_cistatic struct clk_alpha_pll cam_cc_pll7 = {
40462306a36Sopenharmony_ci	.offset = 0x7000,
40562306a36Sopenharmony_ci	.vco_table = lucid_evo_vco,
40662306a36Sopenharmony_ci	.num_vco = ARRAY_SIZE(lucid_evo_vco),
40762306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_EVO],
40862306a36Sopenharmony_ci	.clkr = {
40962306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
41062306a36Sopenharmony_ci			.name = "cam_cc_pll7",
41162306a36Sopenharmony_ci			.parent_data = &pll_parent_data_tcxo,
41262306a36Sopenharmony_ci			.num_parents = 1,
41362306a36Sopenharmony_ci			.ops = &clk_alpha_pll_lucid_evo_ops,
41462306a36Sopenharmony_ci		},
41562306a36Sopenharmony_ci	},
41662306a36Sopenharmony_ci};
41762306a36Sopenharmony_ci
41862306a36Sopenharmony_cistatic const struct clk_div_table post_div_table_cam_cc_pll7_out_even[] = {
41962306a36Sopenharmony_ci	{ 0x1, 2 },
42062306a36Sopenharmony_ci	{ }
42162306a36Sopenharmony_ci};
42262306a36Sopenharmony_ci
42362306a36Sopenharmony_cistatic struct clk_alpha_pll_postdiv cam_cc_pll7_out_even = {
42462306a36Sopenharmony_ci	.offset = 0x7000,
42562306a36Sopenharmony_ci	.post_div_shift = 10,
42662306a36Sopenharmony_ci	.post_div_table = post_div_table_cam_cc_pll7_out_even,
42762306a36Sopenharmony_ci	.num_post_div = ARRAY_SIZE(post_div_table_cam_cc_pll7_out_even),
42862306a36Sopenharmony_ci	.width = 4,
42962306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_EVO],
43062306a36Sopenharmony_ci	.clkr.hw.init = &(const struct clk_init_data) {
43162306a36Sopenharmony_ci		.name = "cam_cc_pll7_out_even",
43262306a36Sopenharmony_ci		.parent_hws = (const struct clk_hw*[]) {
43362306a36Sopenharmony_ci			&cam_cc_pll7.clkr.hw,
43462306a36Sopenharmony_ci		},
43562306a36Sopenharmony_ci		.num_parents = 1,
43662306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
43762306a36Sopenharmony_ci		.ops = &clk_alpha_pll_postdiv_lucid_evo_ops,
43862306a36Sopenharmony_ci	},
43962306a36Sopenharmony_ci};
44062306a36Sopenharmony_ci
44162306a36Sopenharmony_cistatic const struct alpha_pll_config cam_cc_pll8_config = {
44262306a36Sopenharmony_ci	.l = 0x32,
44362306a36Sopenharmony_ci	.alpha = 0x0,
44462306a36Sopenharmony_ci	.config_ctl_val = 0x20485699,
44562306a36Sopenharmony_ci	.config_ctl_hi_val = 0x00182261,
44662306a36Sopenharmony_ci	.config_ctl_hi1_val = 0x32aa299c,
44762306a36Sopenharmony_ci	.user_ctl_val = 0x00000400,
44862306a36Sopenharmony_ci	.user_ctl_hi_val = 0x00000805,
44962306a36Sopenharmony_ci};
45062306a36Sopenharmony_ci
45162306a36Sopenharmony_cistatic struct clk_alpha_pll cam_cc_pll8 = {
45262306a36Sopenharmony_ci	.offset = 0x8000,
45362306a36Sopenharmony_ci	.vco_table = lucid_evo_vco,
45462306a36Sopenharmony_ci	.num_vco = ARRAY_SIZE(lucid_evo_vco),
45562306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_EVO],
45662306a36Sopenharmony_ci	.clkr = {
45762306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
45862306a36Sopenharmony_ci			.name = "cam_cc_pll8",
45962306a36Sopenharmony_ci			.parent_data = &pll_parent_data_tcxo,
46062306a36Sopenharmony_ci			.num_parents = 1,
46162306a36Sopenharmony_ci			.ops = &clk_alpha_pll_lucid_evo_ops,
46262306a36Sopenharmony_ci		},
46362306a36Sopenharmony_ci	},
46462306a36Sopenharmony_ci};
46562306a36Sopenharmony_ci
46662306a36Sopenharmony_cistatic const struct clk_div_table post_div_table_cam_cc_pll8_out_even[] = {
46762306a36Sopenharmony_ci	{ 0x1, 2 },
46862306a36Sopenharmony_ci	{ }
46962306a36Sopenharmony_ci};
47062306a36Sopenharmony_ci
47162306a36Sopenharmony_cistatic struct clk_alpha_pll_postdiv cam_cc_pll8_out_even = {
47262306a36Sopenharmony_ci	.offset = 0x8000,
47362306a36Sopenharmony_ci	.post_div_shift = 10,
47462306a36Sopenharmony_ci	.post_div_table = post_div_table_cam_cc_pll8_out_even,
47562306a36Sopenharmony_ci	.num_post_div = ARRAY_SIZE(post_div_table_cam_cc_pll8_out_even),
47662306a36Sopenharmony_ci	.width = 4,
47762306a36Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_EVO],
47862306a36Sopenharmony_ci	.clkr.hw.init = &(const struct clk_init_data) {
47962306a36Sopenharmony_ci		.name = "cam_cc_pll8_out_even",
48062306a36Sopenharmony_ci		.parent_hws = (const struct clk_hw*[]) {
48162306a36Sopenharmony_ci			&cam_cc_pll8.clkr.hw,
48262306a36Sopenharmony_ci		},
48362306a36Sopenharmony_ci		.num_parents = 1,
48462306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
48562306a36Sopenharmony_ci		.ops = &clk_alpha_pll_postdiv_lucid_evo_ops,
48662306a36Sopenharmony_ci	},
48762306a36Sopenharmony_ci};
48862306a36Sopenharmony_ci
48962306a36Sopenharmony_cistatic const struct parent_map cam_cc_parent_map_0[] = {
49062306a36Sopenharmony_ci	{ P_BI_TCXO, 0 },
49162306a36Sopenharmony_ci	{ P_CAM_CC_PLL0_OUT_MAIN, 1 },
49262306a36Sopenharmony_ci	{ P_CAM_CC_PLL0_OUT_EVEN, 2 },
49362306a36Sopenharmony_ci	{ P_CAM_CC_PLL0_OUT_ODD, 3 },
49462306a36Sopenharmony_ci	{ P_CAM_CC_PLL8_OUT_EVEN, 5 },
49562306a36Sopenharmony_ci};
49662306a36Sopenharmony_ci
49762306a36Sopenharmony_cistatic const struct clk_parent_data cam_cc_parent_data_0[] = {
49862306a36Sopenharmony_ci	{ .index = DT_BI_TCXO },
49962306a36Sopenharmony_ci	{ .hw = &cam_cc_pll0.clkr.hw },
50062306a36Sopenharmony_ci	{ .hw = &cam_cc_pll0_out_even.clkr.hw },
50162306a36Sopenharmony_ci	{ .hw = &cam_cc_pll0_out_odd.clkr.hw },
50262306a36Sopenharmony_ci	{ .hw = &cam_cc_pll8_out_even.clkr.hw },
50362306a36Sopenharmony_ci};
50462306a36Sopenharmony_ci
50562306a36Sopenharmony_cistatic const struct parent_map cam_cc_parent_map_1[] = {
50662306a36Sopenharmony_ci	{ P_BI_TCXO, 0 },
50762306a36Sopenharmony_ci	{ P_CAM_CC_PLL2_OUT_EVEN, 3 },
50862306a36Sopenharmony_ci	{ P_CAM_CC_PLL2_OUT_MAIN, 5 },
50962306a36Sopenharmony_ci};
51062306a36Sopenharmony_ci
51162306a36Sopenharmony_cistatic const struct clk_parent_data cam_cc_parent_data_1[] = {
51262306a36Sopenharmony_ci	{ .index = DT_BI_TCXO },
51362306a36Sopenharmony_ci	{ .hw = &cam_cc_pll2.clkr.hw },
51462306a36Sopenharmony_ci	{ .hw = &cam_cc_pll2.clkr.hw },
51562306a36Sopenharmony_ci};
51662306a36Sopenharmony_ci
51762306a36Sopenharmony_cistatic const struct parent_map cam_cc_parent_map_2[] = {
51862306a36Sopenharmony_ci	{ P_BI_TCXO, 0 },
51962306a36Sopenharmony_ci	{ P_CAM_CC_PLL3_OUT_EVEN, 6 },
52062306a36Sopenharmony_ci};
52162306a36Sopenharmony_ci
52262306a36Sopenharmony_cistatic const struct clk_parent_data cam_cc_parent_data_2[] = {
52362306a36Sopenharmony_ci	{ .index = DT_BI_TCXO },
52462306a36Sopenharmony_ci	{ .hw = &cam_cc_pll3_out_even.clkr.hw },
52562306a36Sopenharmony_ci};
52662306a36Sopenharmony_ci
52762306a36Sopenharmony_cistatic const struct parent_map cam_cc_parent_map_3[] = {
52862306a36Sopenharmony_ci	{ P_BI_TCXO, 0 },
52962306a36Sopenharmony_ci	{ P_CAM_CC_PLL4_OUT_EVEN, 6 },
53062306a36Sopenharmony_ci};
53162306a36Sopenharmony_ci
53262306a36Sopenharmony_cistatic const struct clk_parent_data cam_cc_parent_data_3[] = {
53362306a36Sopenharmony_ci	{ .index = DT_BI_TCXO },
53462306a36Sopenharmony_ci	{ .hw = &cam_cc_pll4_out_even.clkr.hw },
53562306a36Sopenharmony_ci};
53662306a36Sopenharmony_ci
53762306a36Sopenharmony_cistatic const struct parent_map cam_cc_parent_map_4[] = {
53862306a36Sopenharmony_ci	{ P_BI_TCXO, 0 },
53962306a36Sopenharmony_ci	{ P_CAM_CC_PLL5_OUT_EVEN, 6 },
54062306a36Sopenharmony_ci};
54162306a36Sopenharmony_ci
54262306a36Sopenharmony_cistatic const struct clk_parent_data cam_cc_parent_data_4[] = {
54362306a36Sopenharmony_ci	{ .index = DT_BI_TCXO },
54462306a36Sopenharmony_ci	{ .hw = &cam_cc_pll5_out_even.clkr.hw },
54562306a36Sopenharmony_ci};
54662306a36Sopenharmony_ci
54762306a36Sopenharmony_cistatic const struct parent_map cam_cc_parent_map_5[] = {
54862306a36Sopenharmony_ci	{ P_BI_TCXO, 0 },
54962306a36Sopenharmony_ci	{ P_CAM_CC_PLL1_OUT_EVEN, 4 },
55062306a36Sopenharmony_ci};
55162306a36Sopenharmony_ci
55262306a36Sopenharmony_cistatic const struct clk_parent_data cam_cc_parent_data_5[] = {
55362306a36Sopenharmony_ci	{ .index = DT_BI_TCXO },
55462306a36Sopenharmony_ci	{ .hw = &cam_cc_pll1_out_even.clkr.hw },
55562306a36Sopenharmony_ci};
55662306a36Sopenharmony_ci
55762306a36Sopenharmony_cistatic const struct parent_map cam_cc_parent_map_6[] = {
55862306a36Sopenharmony_ci	{ P_BI_TCXO, 0 },
55962306a36Sopenharmony_ci	{ P_CAM_CC_PLL6_OUT_EVEN, 6 },
56062306a36Sopenharmony_ci};
56162306a36Sopenharmony_ci
56262306a36Sopenharmony_cistatic const struct clk_parent_data cam_cc_parent_data_6[] = {
56362306a36Sopenharmony_ci	{ .index = DT_BI_TCXO },
56462306a36Sopenharmony_ci	{ .hw = &cam_cc_pll6_out_even.clkr.hw },
56562306a36Sopenharmony_ci};
56662306a36Sopenharmony_ci
56762306a36Sopenharmony_cistatic const struct parent_map cam_cc_parent_map_7[] = {
56862306a36Sopenharmony_ci	{ P_BI_TCXO, 0 },
56962306a36Sopenharmony_ci	{ P_CAM_CC_PLL7_OUT_EVEN, 6 },
57062306a36Sopenharmony_ci};
57162306a36Sopenharmony_ci
57262306a36Sopenharmony_cistatic const struct clk_parent_data cam_cc_parent_data_7[] = {
57362306a36Sopenharmony_ci	{ .index = DT_BI_TCXO },
57462306a36Sopenharmony_ci	{ .hw = &cam_cc_pll7_out_even.clkr.hw },
57562306a36Sopenharmony_ci};
57662306a36Sopenharmony_ci
57762306a36Sopenharmony_cistatic const struct parent_map cam_cc_parent_map_8[] = {
57862306a36Sopenharmony_ci	{ P_SLEEP_CLK, 0 },
57962306a36Sopenharmony_ci};
58062306a36Sopenharmony_ci
58162306a36Sopenharmony_cistatic const struct clk_parent_data cam_cc_parent_data_8[] = {
58262306a36Sopenharmony_ci	{ .index = DT_SLEEP_CLK },
58362306a36Sopenharmony_ci};
58462306a36Sopenharmony_ci
58562306a36Sopenharmony_cistatic const struct parent_map cam_cc_parent_map_9[] = {
58662306a36Sopenharmony_ci	{ P_BI_TCXO, 0 },
58762306a36Sopenharmony_ci};
58862306a36Sopenharmony_ci
58962306a36Sopenharmony_cistatic const struct clk_parent_data cam_cc_parent_data_9_ao[] = {
59062306a36Sopenharmony_ci	{ .index = DT_BI_TCXO_AO, .name = "bi_tcxo_ao" },
59162306a36Sopenharmony_ci};
59262306a36Sopenharmony_ci
59362306a36Sopenharmony_cistatic const struct freq_tbl ftbl_cam_cc_bps_clk_src[] = {
59462306a36Sopenharmony_ci	F(19200000, P_BI_TCXO, 1, 0, 0),
59562306a36Sopenharmony_ci	F(200000000, P_CAM_CC_PLL0_OUT_ODD, 2, 0, 0),
59662306a36Sopenharmony_ci	F(400000000, P_CAM_CC_PLL0_OUT_ODD, 1, 0, 0),
59762306a36Sopenharmony_ci	F(480000000, P_CAM_CC_PLL8_OUT_EVEN, 1, 0, 0),
59862306a36Sopenharmony_ci	F(600000000, P_CAM_CC_PLL0_OUT_EVEN, 1, 0, 0),
59962306a36Sopenharmony_ci	{ }
60062306a36Sopenharmony_ci};
60162306a36Sopenharmony_ci
60262306a36Sopenharmony_cistatic struct clk_rcg2 cam_cc_bps_clk_src = {
60362306a36Sopenharmony_ci	.cmd_rcgr = 0x10050,
60462306a36Sopenharmony_ci	.mnd_width = 0,
60562306a36Sopenharmony_ci	.hid_width = 5,
60662306a36Sopenharmony_ci	.parent_map = cam_cc_parent_map_0,
60762306a36Sopenharmony_ci	.freq_tbl = ftbl_cam_cc_bps_clk_src,
60862306a36Sopenharmony_ci	.clkr.hw.init = &(const struct clk_init_data) {
60962306a36Sopenharmony_ci		.name = "cam_cc_bps_clk_src",
61062306a36Sopenharmony_ci		.parent_data = cam_cc_parent_data_0,
61162306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(cam_cc_parent_data_0),
61262306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
61362306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
61462306a36Sopenharmony_ci	},
61562306a36Sopenharmony_ci};
61662306a36Sopenharmony_ci
61762306a36Sopenharmony_cistatic const struct freq_tbl ftbl_cam_cc_camnoc_axi_clk_src[] = {
61862306a36Sopenharmony_ci	F(19200000, P_BI_TCXO, 1, 0, 0),
61962306a36Sopenharmony_ci	F(300000000, P_CAM_CC_PLL0_OUT_EVEN, 2, 0, 0),
62062306a36Sopenharmony_ci	F(400000000, P_CAM_CC_PLL0_OUT_ODD, 1, 0, 0),
62162306a36Sopenharmony_ci	{ }
62262306a36Sopenharmony_ci};
62362306a36Sopenharmony_ci
62462306a36Sopenharmony_cistatic struct clk_rcg2 cam_cc_camnoc_axi_clk_src = {
62562306a36Sopenharmony_ci	.cmd_rcgr = 0x13194,
62662306a36Sopenharmony_ci	.mnd_width = 0,
62762306a36Sopenharmony_ci	.hid_width = 5,
62862306a36Sopenharmony_ci	.parent_map = cam_cc_parent_map_0,
62962306a36Sopenharmony_ci	.freq_tbl = ftbl_cam_cc_camnoc_axi_clk_src,
63062306a36Sopenharmony_ci	.clkr.hw.init = &(const struct clk_init_data) {
63162306a36Sopenharmony_ci		.name = "cam_cc_camnoc_axi_clk_src",
63262306a36Sopenharmony_ci		.parent_data = cam_cc_parent_data_0,
63362306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(cam_cc_parent_data_0),
63462306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
63562306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
63662306a36Sopenharmony_ci	},
63762306a36Sopenharmony_ci};
63862306a36Sopenharmony_ci
63962306a36Sopenharmony_cistatic const struct freq_tbl ftbl_cam_cc_cci_0_clk_src[] = {
64062306a36Sopenharmony_ci	F(19200000, P_BI_TCXO, 1, 0, 0),
64162306a36Sopenharmony_ci	F(37500000, P_CAM_CC_PLL0_OUT_EVEN, 16, 0, 0),
64262306a36Sopenharmony_ci	{ }
64362306a36Sopenharmony_ci};
64462306a36Sopenharmony_ci
64562306a36Sopenharmony_cistatic struct clk_rcg2 cam_cc_cci_0_clk_src = {
64662306a36Sopenharmony_ci	.cmd_rcgr = 0x1312c,
64762306a36Sopenharmony_ci	.mnd_width = 8,
64862306a36Sopenharmony_ci	.hid_width = 5,
64962306a36Sopenharmony_ci	.parent_map = cam_cc_parent_map_0,
65062306a36Sopenharmony_ci	.freq_tbl = ftbl_cam_cc_cci_0_clk_src,
65162306a36Sopenharmony_ci	.clkr.hw.init = &(const struct clk_init_data) {
65262306a36Sopenharmony_ci		.name = "cam_cc_cci_0_clk_src",
65362306a36Sopenharmony_ci		.parent_data = cam_cc_parent_data_0,
65462306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(cam_cc_parent_data_0),
65562306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
65662306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
65762306a36Sopenharmony_ci	},
65862306a36Sopenharmony_ci};
65962306a36Sopenharmony_ci
66062306a36Sopenharmony_cistatic struct clk_rcg2 cam_cc_cci_1_clk_src = {
66162306a36Sopenharmony_ci	.cmd_rcgr = 0x13148,
66262306a36Sopenharmony_ci	.mnd_width = 8,
66362306a36Sopenharmony_ci	.hid_width = 5,
66462306a36Sopenharmony_ci	.parent_map = cam_cc_parent_map_0,
66562306a36Sopenharmony_ci	.freq_tbl = ftbl_cam_cc_cci_0_clk_src,
66662306a36Sopenharmony_ci	.clkr.hw.init = &(const struct clk_init_data) {
66762306a36Sopenharmony_ci		.name = "cam_cc_cci_1_clk_src",
66862306a36Sopenharmony_ci		.parent_data = cam_cc_parent_data_0,
66962306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(cam_cc_parent_data_0),
67062306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
67162306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
67262306a36Sopenharmony_ci	},
67362306a36Sopenharmony_ci};
67462306a36Sopenharmony_ci
67562306a36Sopenharmony_cistatic const struct freq_tbl ftbl_cam_cc_cphy_rx_clk_src[] = {
67662306a36Sopenharmony_ci	F(19200000, P_BI_TCXO, 1, 0, 0),
67762306a36Sopenharmony_ci	F(400000000, P_CAM_CC_PLL0_OUT_MAIN, 3, 0, 0),
67862306a36Sopenharmony_ci	F(480000000, P_CAM_CC_PLL0_OUT_MAIN, 2.5, 0, 0),
67962306a36Sopenharmony_ci	{ }
68062306a36Sopenharmony_ci};
68162306a36Sopenharmony_ci
68262306a36Sopenharmony_cistatic struct clk_rcg2 cam_cc_cphy_rx_clk_src = {
68362306a36Sopenharmony_ci	.cmd_rcgr = 0x1104c,
68462306a36Sopenharmony_ci	.mnd_width = 0,
68562306a36Sopenharmony_ci	.hid_width = 5,
68662306a36Sopenharmony_ci	.parent_map = cam_cc_parent_map_0,
68762306a36Sopenharmony_ci	.freq_tbl = ftbl_cam_cc_cphy_rx_clk_src,
68862306a36Sopenharmony_ci	.clkr.hw.init = &(const struct clk_init_data) {
68962306a36Sopenharmony_ci		.name = "cam_cc_cphy_rx_clk_src",
69062306a36Sopenharmony_ci		.parent_data = cam_cc_parent_data_0,
69162306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(cam_cc_parent_data_0),
69262306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
69362306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
69462306a36Sopenharmony_ci	},
69562306a36Sopenharmony_ci};
69662306a36Sopenharmony_ci
69762306a36Sopenharmony_cistatic const struct freq_tbl ftbl_cam_cc_csi0phytimer_clk_src[] = {
69862306a36Sopenharmony_ci	F(19200000, P_BI_TCXO, 1, 0, 0),
69962306a36Sopenharmony_ci	F(400000000, P_CAM_CC_PLL0_OUT_ODD, 1, 0, 0),
70062306a36Sopenharmony_ci	{ }
70162306a36Sopenharmony_ci};
70262306a36Sopenharmony_ci
70362306a36Sopenharmony_cistatic struct clk_rcg2 cam_cc_csi0phytimer_clk_src = {
70462306a36Sopenharmony_ci	.cmd_rcgr = 0x150e0,
70562306a36Sopenharmony_ci	.mnd_width = 0,
70662306a36Sopenharmony_ci	.hid_width = 5,
70762306a36Sopenharmony_ci	.parent_map = cam_cc_parent_map_0,
70862306a36Sopenharmony_ci	.freq_tbl = ftbl_cam_cc_csi0phytimer_clk_src,
70962306a36Sopenharmony_ci	.clkr.hw.init = &(const struct clk_init_data) {
71062306a36Sopenharmony_ci		.name = "cam_cc_csi0phytimer_clk_src",
71162306a36Sopenharmony_ci		.parent_data = cam_cc_parent_data_0,
71262306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(cam_cc_parent_data_0),
71362306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
71462306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
71562306a36Sopenharmony_ci	},
71662306a36Sopenharmony_ci};
71762306a36Sopenharmony_ci
71862306a36Sopenharmony_cistatic struct clk_rcg2 cam_cc_csi1phytimer_clk_src = {
71962306a36Sopenharmony_ci	.cmd_rcgr = 0x15104,
72062306a36Sopenharmony_ci	.mnd_width = 0,
72162306a36Sopenharmony_ci	.hid_width = 5,
72262306a36Sopenharmony_ci	.parent_map = cam_cc_parent_map_0,
72362306a36Sopenharmony_ci	.freq_tbl = ftbl_cam_cc_csi0phytimer_clk_src,
72462306a36Sopenharmony_ci	.clkr.hw.init = &(const struct clk_init_data) {
72562306a36Sopenharmony_ci		.name = "cam_cc_csi1phytimer_clk_src",
72662306a36Sopenharmony_ci		.parent_data = cam_cc_parent_data_0,
72762306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(cam_cc_parent_data_0),
72862306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
72962306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
73062306a36Sopenharmony_ci	},
73162306a36Sopenharmony_ci};
73262306a36Sopenharmony_ci
73362306a36Sopenharmony_cistatic struct clk_rcg2 cam_cc_csi2phytimer_clk_src = {
73462306a36Sopenharmony_ci	.cmd_rcgr = 0x15124,
73562306a36Sopenharmony_ci	.mnd_width = 0,
73662306a36Sopenharmony_ci	.hid_width = 5,
73762306a36Sopenharmony_ci	.parent_map = cam_cc_parent_map_0,
73862306a36Sopenharmony_ci	.freq_tbl = ftbl_cam_cc_csi0phytimer_clk_src,
73962306a36Sopenharmony_ci	.clkr.hw.init = &(const struct clk_init_data) {
74062306a36Sopenharmony_ci		.name = "cam_cc_csi2phytimer_clk_src",
74162306a36Sopenharmony_ci		.parent_data = cam_cc_parent_data_0,
74262306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(cam_cc_parent_data_0),
74362306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
74462306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
74562306a36Sopenharmony_ci	},
74662306a36Sopenharmony_ci};
74762306a36Sopenharmony_ci
74862306a36Sopenharmony_cistatic struct clk_rcg2 cam_cc_csi3phytimer_clk_src = {
74962306a36Sopenharmony_ci	.cmd_rcgr = 0x1514c,
75062306a36Sopenharmony_ci	.mnd_width = 0,
75162306a36Sopenharmony_ci	.hid_width = 5,
75262306a36Sopenharmony_ci	.parent_map = cam_cc_parent_map_0,
75362306a36Sopenharmony_ci	.freq_tbl = ftbl_cam_cc_csi0phytimer_clk_src,
75462306a36Sopenharmony_ci	.clkr.hw.init = &(const struct clk_init_data) {
75562306a36Sopenharmony_ci		.name = "cam_cc_csi3phytimer_clk_src",
75662306a36Sopenharmony_ci		.parent_data = cam_cc_parent_data_0,
75762306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(cam_cc_parent_data_0),
75862306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
75962306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
76062306a36Sopenharmony_ci	},
76162306a36Sopenharmony_ci};
76262306a36Sopenharmony_ci
76362306a36Sopenharmony_cistatic struct clk_rcg2 cam_cc_csi4phytimer_clk_src = {
76462306a36Sopenharmony_ci	.cmd_rcgr = 0x1516c,
76562306a36Sopenharmony_ci	.mnd_width = 0,
76662306a36Sopenharmony_ci	.hid_width = 5,
76762306a36Sopenharmony_ci	.parent_map = cam_cc_parent_map_0,
76862306a36Sopenharmony_ci	.freq_tbl = ftbl_cam_cc_csi0phytimer_clk_src,
76962306a36Sopenharmony_ci	.clkr.hw.init = &(const struct clk_init_data) {
77062306a36Sopenharmony_ci		.name = "cam_cc_csi4phytimer_clk_src",
77162306a36Sopenharmony_ci		.parent_data = cam_cc_parent_data_0,
77262306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(cam_cc_parent_data_0),
77362306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
77462306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
77562306a36Sopenharmony_ci	},
77662306a36Sopenharmony_ci};
77762306a36Sopenharmony_ci
77862306a36Sopenharmony_cistatic struct clk_rcg2 cam_cc_csi5phytimer_clk_src = {
77962306a36Sopenharmony_ci	.cmd_rcgr = 0x1518c,
78062306a36Sopenharmony_ci	.mnd_width = 0,
78162306a36Sopenharmony_ci	.hid_width = 5,
78262306a36Sopenharmony_ci	.parent_map = cam_cc_parent_map_0,
78362306a36Sopenharmony_ci	.freq_tbl = ftbl_cam_cc_csi0phytimer_clk_src,
78462306a36Sopenharmony_ci	.clkr.hw.init = &(const struct clk_init_data) {
78562306a36Sopenharmony_ci		.name = "cam_cc_csi5phytimer_clk_src",
78662306a36Sopenharmony_ci		.parent_data = cam_cc_parent_data_0,
78762306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(cam_cc_parent_data_0),
78862306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
78962306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
79062306a36Sopenharmony_ci	},
79162306a36Sopenharmony_ci};
79262306a36Sopenharmony_ci
79362306a36Sopenharmony_cistatic const struct freq_tbl ftbl_cam_cc_csid_clk_src[] = {
79462306a36Sopenharmony_ci	F(400000000, P_CAM_CC_PLL0_OUT_MAIN, 3, 0, 0),
79562306a36Sopenharmony_ci	F(480000000, P_CAM_CC_PLL0_OUT_MAIN, 2.5, 0, 0),
79662306a36Sopenharmony_ci	{ }
79762306a36Sopenharmony_ci};
79862306a36Sopenharmony_ci
79962306a36Sopenharmony_cistatic struct clk_rcg2 cam_cc_csid_clk_src = {
80062306a36Sopenharmony_ci	.cmd_rcgr = 0x13174,
80162306a36Sopenharmony_ci	.mnd_width = 0,
80262306a36Sopenharmony_ci	.hid_width = 5,
80362306a36Sopenharmony_ci	.parent_map = cam_cc_parent_map_0,
80462306a36Sopenharmony_ci	.freq_tbl = ftbl_cam_cc_csid_clk_src,
80562306a36Sopenharmony_ci	.clkr.hw.init = &(const struct clk_init_data) {
80662306a36Sopenharmony_ci		.name = "cam_cc_csid_clk_src",
80762306a36Sopenharmony_ci		.parent_data = cam_cc_parent_data_0,
80862306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(cam_cc_parent_data_0),
80962306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
81062306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
81162306a36Sopenharmony_ci	},
81262306a36Sopenharmony_ci};
81362306a36Sopenharmony_ci
81462306a36Sopenharmony_cistatic const struct freq_tbl ftbl_cam_cc_fast_ahb_clk_src[] = {
81562306a36Sopenharmony_ci	F(19200000, P_BI_TCXO, 1, 0, 0),
81662306a36Sopenharmony_ci	F(100000000, P_CAM_CC_PLL0_OUT_EVEN, 6, 0, 0),
81762306a36Sopenharmony_ci	F(200000000, P_CAM_CC_PLL0_OUT_EVEN, 3, 0, 0),
81862306a36Sopenharmony_ci	F(300000000, P_CAM_CC_PLL0_OUT_MAIN, 4, 0, 0),
81962306a36Sopenharmony_ci	F(400000000, P_CAM_CC_PLL0_OUT_MAIN, 3, 0, 0),
82062306a36Sopenharmony_ci	{ }
82162306a36Sopenharmony_ci};
82262306a36Sopenharmony_ci
82362306a36Sopenharmony_cistatic struct clk_rcg2 cam_cc_fast_ahb_clk_src = {
82462306a36Sopenharmony_ci	.cmd_rcgr = 0x10018,
82562306a36Sopenharmony_ci	.mnd_width = 0,
82662306a36Sopenharmony_ci	.hid_width = 5,
82762306a36Sopenharmony_ci	.parent_map = cam_cc_parent_map_0,
82862306a36Sopenharmony_ci	.freq_tbl = ftbl_cam_cc_fast_ahb_clk_src,
82962306a36Sopenharmony_ci	.clkr.hw.init = &(const struct clk_init_data) {
83062306a36Sopenharmony_ci		.name = "cam_cc_fast_ahb_clk_src",
83162306a36Sopenharmony_ci		.parent_data = cam_cc_parent_data_0,
83262306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(cam_cc_parent_data_0),
83362306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
83462306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
83562306a36Sopenharmony_ci	},
83662306a36Sopenharmony_ci};
83762306a36Sopenharmony_ci
83862306a36Sopenharmony_cistatic const struct freq_tbl ftbl_cam_cc_icp_clk_src[] = {
83962306a36Sopenharmony_ci	F(19200000, P_BI_TCXO, 1, 0, 0),
84062306a36Sopenharmony_ci	F(400000000, P_CAM_CC_PLL0_OUT_ODD, 1, 0, 0),
84162306a36Sopenharmony_ci	F(480000000, P_CAM_CC_PLL8_OUT_EVEN, 1, 0, 0),
84262306a36Sopenharmony_ci	F(600000000, P_CAM_CC_PLL0_OUT_MAIN, 2, 0, 0),
84362306a36Sopenharmony_ci	{ }
84462306a36Sopenharmony_ci};
84562306a36Sopenharmony_ci
84662306a36Sopenharmony_cistatic struct clk_rcg2 cam_cc_icp_clk_src = {
84762306a36Sopenharmony_ci	.cmd_rcgr = 0x13108,
84862306a36Sopenharmony_ci	.mnd_width = 0,
84962306a36Sopenharmony_ci	.hid_width = 5,
85062306a36Sopenharmony_ci	.parent_map = cam_cc_parent_map_0,
85162306a36Sopenharmony_ci	.freq_tbl = ftbl_cam_cc_icp_clk_src,
85262306a36Sopenharmony_ci	.clkr.hw.init = &(const struct clk_init_data) {
85362306a36Sopenharmony_ci		.name = "cam_cc_icp_clk_src",
85462306a36Sopenharmony_ci		.parent_data = cam_cc_parent_data_0,
85562306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(cam_cc_parent_data_0),
85662306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
85762306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
85862306a36Sopenharmony_ci	},
85962306a36Sopenharmony_ci};
86062306a36Sopenharmony_ci
86162306a36Sopenharmony_cistatic const struct freq_tbl ftbl_cam_cc_ife_0_clk_src[] = {
86262306a36Sopenharmony_ci	F(19200000, P_BI_TCXO, 1, 0, 0),
86362306a36Sopenharmony_ci	F(432000000, P_CAM_CC_PLL3_OUT_EVEN, 1, 0, 0),
86462306a36Sopenharmony_ci	F(594000000, P_CAM_CC_PLL3_OUT_EVEN, 1, 0, 0),
86562306a36Sopenharmony_ci	F(675000000, P_CAM_CC_PLL3_OUT_EVEN, 1, 0, 0),
86662306a36Sopenharmony_ci	F(727000000, P_CAM_CC_PLL3_OUT_EVEN, 1, 0, 0),
86762306a36Sopenharmony_ci	{ }
86862306a36Sopenharmony_ci};
86962306a36Sopenharmony_ci
87062306a36Sopenharmony_cistatic struct clk_rcg2 cam_cc_ife_0_clk_src = {
87162306a36Sopenharmony_ci	.cmd_rcgr = 0x11018,
87262306a36Sopenharmony_ci	.mnd_width = 0,
87362306a36Sopenharmony_ci	.hid_width = 5,
87462306a36Sopenharmony_ci	.parent_map = cam_cc_parent_map_2,
87562306a36Sopenharmony_ci	.freq_tbl = ftbl_cam_cc_ife_0_clk_src,
87662306a36Sopenharmony_ci	.clkr.hw.init = &(const struct clk_init_data) {
87762306a36Sopenharmony_ci		.name = "cam_cc_ife_0_clk_src",
87862306a36Sopenharmony_ci		.parent_data = cam_cc_parent_data_2,
87962306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(cam_cc_parent_data_2),
88062306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
88162306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
88262306a36Sopenharmony_ci	},
88362306a36Sopenharmony_ci};
88462306a36Sopenharmony_ci
88562306a36Sopenharmony_cistatic const struct freq_tbl ftbl_cam_cc_ife_1_clk_src[] = {
88662306a36Sopenharmony_ci	F(19200000, P_BI_TCXO, 1, 0, 0),
88762306a36Sopenharmony_ci	F(432000000, P_CAM_CC_PLL4_OUT_EVEN, 1, 0, 0),
88862306a36Sopenharmony_ci	F(594000000, P_CAM_CC_PLL4_OUT_EVEN, 1, 0, 0),
88962306a36Sopenharmony_ci	F(675000000, P_CAM_CC_PLL4_OUT_EVEN, 1, 0, 0),
89062306a36Sopenharmony_ci	F(727000000, P_CAM_CC_PLL4_OUT_EVEN, 1, 0, 0),
89162306a36Sopenharmony_ci	{ }
89262306a36Sopenharmony_ci};
89362306a36Sopenharmony_ci
89462306a36Sopenharmony_cistatic struct clk_rcg2 cam_cc_ife_1_clk_src = {
89562306a36Sopenharmony_ci	.cmd_rcgr = 0x12018,
89662306a36Sopenharmony_ci	.mnd_width = 0,
89762306a36Sopenharmony_ci	.hid_width = 5,
89862306a36Sopenharmony_ci	.parent_map = cam_cc_parent_map_3,
89962306a36Sopenharmony_ci	.freq_tbl = ftbl_cam_cc_ife_1_clk_src,
90062306a36Sopenharmony_ci	.clkr.hw.init = &(const struct clk_init_data) {
90162306a36Sopenharmony_ci		.name = "cam_cc_ife_1_clk_src",
90262306a36Sopenharmony_ci		.parent_data = cam_cc_parent_data_3,
90362306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(cam_cc_parent_data_3),
90462306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
90562306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
90662306a36Sopenharmony_ci	},
90762306a36Sopenharmony_ci};
90862306a36Sopenharmony_ci
90962306a36Sopenharmony_cistatic const struct freq_tbl ftbl_cam_cc_ife_2_clk_src[] = {
91062306a36Sopenharmony_ci	F(432000000, P_CAM_CC_PLL5_OUT_EVEN, 1, 0, 0),
91162306a36Sopenharmony_ci	F(594000000, P_CAM_CC_PLL5_OUT_EVEN, 1, 0, 0),
91262306a36Sopenharmony_ci	F(675000000, P_CAM_CC_PLL5_OUT_EVEN, 1, 0, 0),
91362306a36Sopenharmony_ci	F(727000000, P_CAM_CC_PLL5_OUT_EVEN, 1, 0, 0),
91462306a36Sopenharmony_ci	{ }
91562306a36Sopenharmony_ci};
91662306a36Sopenharmony_ci
91762306a36Sopenharmony_cistatic struct clk_rcg2 cam_cc_ife_2_clk_src = {
91862306a36Sopenharmony_ci	.cmd_rcgr = 0x12064,
91962306a36Sopenharmony_ci	.mnd_width = 0,
92062306a36Sopenharmony_ci	.hid_width = 5,
92162306a36Sopenharmony_ci	.parent_map = cam_cc_parent_map_4,
92262306a36Sopenharmony_ci	.freq_tbl = ftbl_cam_cc_ife_2_clk_src,
92362306a36Sopenharmony_ci	.clkr.hw.init = &(const struct clk_init_data) {
92462306a36Sopenharmony_ci		.name = "cam_cc_ife_2_clk_src",
92562306a36Sopenharmony_ci		.parent_data = cam_cc_parent_data_4,
92662306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(cam_cc_parent_data_4),
92762306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
92862306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
92962306a36Sopenharmony_ci	},
93062306a36Sopenharmony_ci};
93162306a36Sopenharmony_ci
93262306a36Sopenharmony_cistatic const struct freq_tbl ftbl_cam_cc_ife_lite_clk_src[] = {
93362306a36Sopenharmony_ci	F(400000000, P_CAM_CC_PLL0_OUT_ODD, 1, 0, 0),
93462306a36Sopenharmony_ci	F(480000000, P_CAM_CC_PLL8_OUT_EVEN, 1, 0, 0),
93562306a36Sopenharmony_ci	{ }
93662306a36Sopenharmony_ci};
93762306a36Sopenharmony_ci
93862306a36Sopenharmony_cistatic struct clk_rcg2 cam_cc_ife_lite_clk_src = {
93962306a36Sopenharmony_ci	.cmd_rcgr = 0x13000,
94062306a36Sopenharmony_ci	.mnd_width = 0,
94162306a36Sopenharmony_ci	.hid_width = 5,
94262306a36Sopenharmony_ci	.parent_map = cam_cc_parent_map_0,
94362306a36Sopenharmony_ci	.freq_tbl = ftbl_cam_cc_ife_lite_clk_src,
94462306a36Sopenharmony_ci	.clkr.hw.init = &(const struct clk_init_data) {
94562306a36Sopenharmony_ci		.name = "cam_cc_ife_lite_clk_src",
94662306a36Sopenharmony_ci		.parent_data = cam_cc_parent_data_0,
94762306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(cam_cc_parent_data_0),
94862306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
94962306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
95062306a36Sopenharmony_ci	},
95162306a36Sopenharmony_ci};
95262306a36Sopenharmony_ci
95362306a36Sopenharmony_cistatic struct clk_rcg2 cam_cc_ife_lite_csid_clk_src = {
95462306a36Sopenharmony_ci	.cmd_rcgr = 0x13024,
95562306a36Sopenharmony_ci	.mnd_width = 0,
95662306a36Sopenharmony_ci	.hid_width = 5,
95762306a36Sopenharmony_ci	.parent_map = cam_cc_parent_map_0,
95862306a36Sopenharmony_ci	.freq_tbl = ftbl_cam_cc_ife_lite_clk_src,
95962306a36Sopenharmony_ci	.clkr.hw.init = &(const struct clk_init_data) {
96062306a36Sopenharmony_ci		.name = "cam_cc_ife_lite_csid_clk_src",
96162306a36Sopenharmony_ci		.parent_data = cam_cc_parent_data_0,
96262306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(cam_cc_parent_data_0),
96362306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
96462306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
96562306a36Sopenharmony_ci	},
96662306a36Sopenharmony_ci};
96762306a36Sopenharmony_ci
96862306a36Sopenharmony_cistatic const struct freq_tbl ftbl_cam_cc_ipe_nps_clk_src[] = {
96962306a36Sopenharmony_ci	F(364000000, P_CAM_CC_PLL1_OUT_EVEN, 1, 0, 0),
97062306a36Sopenharmony_ci	F(500000000, P_CAM_CC_PLL1_OUT_EVEN, 1, 0, 0),
97162306a36Sopenharmony_ci	F(600000000, P_CAM_CC_PLL1_OUT_EVEN, 1, 0, 0),
97262306a36Sopenharmony_ci	F(700000000, P_CAM_CC_PLL1_OUT_EVEN, 1, 0, 0),
97362306a36Sopenharmony_ci	{ }
97462306a36Sopenharmony_ci};
97562306a36Sopenharmony_ci
97662306a36Sopenharmony_cistatic struct clk_rcg2 cam_cc_ipe_nps_clk_src = {
97762306a36Sopenharmony_ci	.cmd_rcgr = 0x1008c,
97862306a36Sopenharmony_ci	.mnd_width = 0,
97962306a36Sopenharmony_ci	.hid_width = 5,
98062306a36Sopenharmony_ci	.parent_map = cam_cc_parent_map_5,
98162306a36Sopenharmony_ci	.freq_tbl = ftbl_cam_cc_ipe_nps_clk_src,
98262306a36Sopenharmony_ci	.clkr.hw.init = &(const struct clk_init_data) {
98362306a36Sopenharmony_ci		.name = "cam_cc_ipe_nps_clk_src",
98462306a36Sopenharmony_ci		.parent_data = cam_cc_parent_data_5,
98562306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(cam_cc_parent_data_5),
98662306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
98762306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
98862306a36Sopenharmony_ci	},
98962306a36Sopenharmony_ci};
99062306a36Sopenharmony_ci
99162306a36Sopenharmony_cistatic struct clk_rcg2 cam_cc_jpeg_clk_src = {
99262306a36Sopenharmony_ci	.cmd_rcgr = 0x130dc,
99362306a36Sopenharmony_ci	.mnd_width = 0,
99462306a36Sopenharmony_ci	.hid_width = 5,
99562306a36Sopenharmony_ci	.parent_map = cam_cc_parent_map_0,
99662306a36Sopenharmony_ci	.freq_tbl = ftbl_cam_cc_bps_clk_src,
99762306a36Sopenharmony_ci	.clkr.hw.init = &(const struct clk_init_data) {
99862306a36Sopenharmony_ci		.name = "cam_cc_jpeg_clk_src",
99962306a36Sopenharmony_ci		.parent_data = cam_cc_parent_data_0,
100062306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(cam_cc_parent_data_0),
100162306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
100262306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
100362306a36Sopenharmony_ci	},
100462306a36Sopenharmony_ci};
100562306a36Sopenharmony_ci
100662306a36Sopenharmony_cistatic const struct freq_tbl ftbl_cam_cc_mclk0_clk_src[] = {
100762306a36Sopenharmony_ci	F(19200000, P_BI_TCXO, 1, 0, 0),
100862306a36Sopenharmony_ci	F(24000000, P_CAM_CC_PLL2_OUT_MAIN, 10, 1, 4),
100962306a36Sopenharmony_ci	F(68571429, P_CAM_CC_PLL2_OUT_MAIN, 14, 0, 0),
101062306a36Sopenharmony_ci	{ }
101162306a36Sopenharmony_ci};
101262306a36Sopenharmony_ci
101362306a36Sopenharmony_cistatic struct clk_rcg2 cam_cc_mclk0_clk_src = {
101462306a36Sopenharmony_ci	.cmd_rcgr = 0x15000,
101562306a36Sopenharmony_ci	.mnd_width = 8,
101662306a36Sopenharmony_ci	.hid_width = 5,
101762306a36Sopenharmony_ci	.parent_map = cam_cc_parent_map_1,
101862306a36Sopenharmony_ci	.freq_tbl = ftbl_cam_cc_mclk0_clk_src,
101962306a36Sopenharmony_ci	.clkr.hw.init = &(const struct clk_init_data) {
102062306a36Sopenharmony_ci		.name = "cam_cc_mclk0_clk_src",
102162306a36Sopenharmony_ci		.parent_data = cam_cc_parent_data_1,
102262306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(cam_cc_parent_data_1),
102362306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
102462306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
102562306a36Sopenharmony_ci	},
102662306a36Sopenharmony_ci};
102762306a36Sopenharmony_ci
102862306a36Sopenharmony_cistatic struct clk_rcg2 cam_cc_mclk1_clk_src = {
102962306a36Sopenharmony_ci	.cmd_rcgr = 0x1501c,
103062306a36Sopenharmony_ci	.mnd_width = 8,
103162306a36Sopenharmony_ci	.hid_width = 5,
103262306a36Sopenharmony_ci	.parent_map = cam_cc_parent_map_1,
103362306a36Sopenharmony_ci	.freq_tbl = ftbl_cam_cc_mclk0_clk_src,
103462306a36Sopenharmony_ci	.clkr.hw.init = &(const struct clk_init_data) {
103562306a36Sopenharmony_ci		.name = "cam_cc_mclk1_clk_src",
103662306a36Sopenharmony_ci		.parent_data = cam_cc_parent_data_1,
103762306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(cam_cc_parent_data_1),
103862306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
103962306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
104062306a36Sopenharmony_ci	},
104162306a36Sopenharmony_ci};
104262306a36Sopenharmony_ci
104362306a36Sopenharmony_cistatic struct clk_rcg2 cam_cc_mclk2_clk_src = {
104462306a36Sopenharmony_ci	.cmd_rcgr = 0x15038,
104562306a36Sopenharmony_ci	.mnd_width = 8,
104662306a36Sopenharmony_ci	.hid_width = 5,
104762306a36Sopenharmony_ci	.parent_map = cam_cc_parent_map_1,
104862306a36Sopenharmony_ci	.freq_tbl = ftbl_cam_cc_mclk0_clk_src,
104962306a36Sopenharmony_ci	.clkr.hw.init = &(const struct clk_init_data) {
105062306a36Sopenharmony_ci		.name = "cam_cc_mclk2_clk_src",
105162306a36Sopenharmony_ci		.parent_data = cam_cc_parent_data_1,
105262306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(cam_cc_parent_data_1),
105362306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
105462306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
105562306a36Sopenharmony_ci	},
105662306a36Sopenharmony_ci};
105762306a36Sopenharmony_ci
105862306a36Sopenharmony_cistatic struct clk_rcg2 cam_cc_mclk3_clk_src = {
105962306a36Sopenharmony_ci	.cmd_rcgr = 0x15054,
106062306a36Sopenharmony_ci	.mnd_width = 8,
106162306a36Sopenharmony_ci	.hid_width = 5,
106262306a36Sopenharmony_ci	.parent_map = cam_cc_parent_map_1,
106362306a36Sopenharmony_ci	.freq_tbl = ftbl_cam_cc_mclk0_clk_src,
106462306a36Sopenharmony_ci	.clkr.hw.init = &(const struct clk_init_data) {
106562306a36Sopenharmony_ci		.name = "cam_cc_mclk3_clk_src",
106662306a36Sopenharmony_ci		.parent_data = cam_cc_parent_data_1,
106762306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(cam_cc_parent_data_1),
106862306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
106962306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
107062306a36Sopenharmony_ci	},
107162306a36Sopenharmony_ci};
107262306a36Sopenharmony_ci
107362306a36Sopenharmony_cistatic struct clk_rcg2 cam_cc_mclk4_clk_src = {
107462306a36Sopenharmony_ci	.cmd_rcgr = 0x15070,
107562306a36Sopenharmony_ci	.mnd_width = 8,
107662306a36Sopenharmony_ci	.hid_width = 5,
107762306a36Sopenharmony_ci	.parent_map = cam_cc_parent_map_1,
107862306a36Sopenharmony_ci	.freq_tbl = ftbl_cam_cc_mclk0_clk_src,
107962306a36Sopenharmony_ci	.clkr.hw.init = &(const struct clk_init_data) {
108062306a36Sopenharmony_ci		.name = "cam_cc_mclk4_clk_src",
108162306a36Sopenharmony_ci		.parent_data = cam_cc_parent_data_1,
108262306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(cam_cc_parent_data_1),
108362306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
108462306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
108562306a36Sopenharmony_ci	},
108662306a36Sopenharmony_ci};
108762306a36Sopenharmony_ci
108862306a36Sopenharmony_cistatic struct clk_rcg2 cam_cc_mclk5_clk_src = {
108962306a36Sopenharmony_ci	.cmd_rcgr = 0x1508c,
109062306a36Sopenharmony_ci	.mnd_width = 8,
109162306a36Sopenharmony_ci	.hid_width = 5,
109262306a36Sopenharmony_ci	.parent_map = cam_cc_parent_map_1,
109362306a36Sopenharmony_ci	.freq_tbl = ftbl_cam_cc_mclk0_clk_src,
109462306a36Sopenharmony_ci	.clkr.hw.init = &(const struct clk_init_data) {
109562306a36Sopenharmony_ci		.name = "cam_cc_mclk5_clk_src",
109662306a36Sopenharmony_ci		.parent_data = cam_cc_parent_data_1,
109762306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(cam_cc_parent_data_1),
109862306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
109962306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
110062306a36Sopenharmony_ci	},
110162306a36Sopenharmony_ci};
110262306a36Sopenharmony_ci
110362306a36Sopenharmony_cistatic struct clk_rcg2 cam_cc_mclk6_clk_src = {
110462306a36Sopenharmony_ci	.cmd_rcgr = 0x150a8,
110562306a36Sopenharmony_ci	.mnd_width = 8,
110662306a36Sopenharmony_ci	.hid_width = 5,
110762306a36Sopenharmony_ci	.parent_map = cam_cc_parent_map_1,
110862306a36Sopenharmony_ci	.freq_tbl = ftbl_cam_cc_mclk0_clk_src,
110962306a36Sopenharmony_ci	.clkr.hw.init = &(const struct clk_init_data) {
111062306a36Sopenharmony_ci		.name = "cam_cc_mclk6_clk_src",
111162306a36Sopenharmony_ci		.parent_data = cam_cc_parent_data_1,
111262306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(cam_cc_parent_data_1),
111362306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
111462306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
111562306a36Sopenharmony_ci	},
111662306a36Sopenharmony_ci};
111762306a36Sopenharmony_ci
111862306a36Sopenharmony_cistatic struct clk_rcg2 cam_cc_mclk7_clk_src = {
111962306a36Sopenharmony_ci	.cmd_rcgr = 0x150c4,
112062306a36Sopenharmony_ci	.mnd_width = 8,
112162306a36Sopenharmony_ci	.hid_width = 5,
112262306a36Sopenharmony_ci	.parent_map = cam_cc_parent_map_1,
112362306a36Sopenharmony_ci	.freq_tbl = ftbl_cam_cc_mclk0_clk_src,
112462306a36Sopenharmony_ci	.clkr.hw.init = &(const struct clk_init_data) {
112562306a36Sopenharmony_ci		.name = "cam_cc_mclk7_clk_src",
112662306a36Sopenharmony_ci		.parent_data = cam_cc_parent_data_1,
112762306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(cam_cc_parent_data_1),
112862306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
112962306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
113062306a36Sopenharmony_ci	},
113162306a36Sopenharmony_ci};
113262306a36Sopenharmony_ci
113362306a36Sopenharmony_cistatic const struct freq_tbl ftbl_cam_cc_qdss_debug_clk_src[] = {
113462306a36Sopenharmony_ci	F(19200000, P_BI_TCXO, 1, 0, 0),
113562306a36Sopenharmony_ci	F(75000000, P_CAM_CC_PLL0_OUT_EVEN, 8, 0, 0),
113662306a36Sopenharmony_ci	F(150000000, P_CAM_CC_PLL0_OUT_EVEN, 4, 0, 0),
113762306a36Sopenharmony_ci	F(300000000, P_CAM_CC_PLL0_OUT_MAIN, 4, 0, 0),
113862306a36Sopenharmony_ci	{ }
113962306a36Sopenharmony_ci};
114062306a36Sopenharmony_ci
114162306a36Sopenharmony_cistatic struct clk_rcg2 cam_cc_qdss_debug_clk_src = {
114262306a36Sopenharmony_ci	.cmd_rcgr = 0x131bc,
114362306a36Sopenharmony_ci	.mnd_width = 0,
114462306a36Sopenharmony_ci	.hid_width = 5,
114562306a36Sopenharmony_ci	.parent_map = cam_cc_parent_map_0,
114662306a36Sopenharmony_ci	.freq_tbl = ftbl_cam_cc_qdss_debug_clk_src,
114762306a36Sopenharmony_ci	.clkr.hw.init = &(const struct clk_init_data) {
114862306a36Sopenharmony_ci		.name = "cam_cc_qdss_debug_clk_src",
114962306a36Sopenharmony_ci		.parent_data = cam_cc_parent_data_0,
115062306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(cam_cc_parent_data_0),
115162306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
115262306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
115362306a36Sopenharmony_ci	},
115462306a36Sopenharmony_ci};
115562306a36Sopenharmony_ci
115662306a36Sopenharmony_cistatic const struct freq_tbl ftbl_cam_cc_sfe_0_clk_src[] = {
115762306a36Sopenharmony_ci	F(432000000, P_CAM_CC_PLL6_OUT_EVEN, 1, 0, 0),
115862306a36Sopenharmony_ci	F(594000000, P_CAM_CC_PLL6_OUT_EVEN, 1, 0, 0),
115962306a36Sopenharmony_ci	F(675000000, P_CAM_CC_PLL6_OUT_EVEN, 1, 0, 0),
116062306a36Sopenharmony_ci	F(727000000, P_CAM_CC_PLL6_OUT_EVEN, 1, 0, 0),
116162306a36Sopenharmony_ci	{ }
116262306a36Sopenharmony_ci};
116362306a36Sopenharmony_ci
116462306a36Sopenharmony_cistatic struct clk_rcg2 cam_cc_sfe_0_clk_src = {
116562306a36Sopenharmony_ci	.cmd_rcgr = 0x13064,
116662306a36Sopenharmony_ci	.mnd_width = 0,
116762306a36Sopenharmony_ci	.hid_width = 5,
116862306a36Sopenharmony_ci	.parent_map = cam_cc_parent_map_6,
116962306a36Sopenharmony_ci	.freq_tbl = ftbl_cam_cc_sfe_0_clk_src,
117062306a36Sopenharmony_ci	.clkr.hw.init = &(const struct clk_init_data) {
117162306a36Sopenharmony_ci		.name = "cam_cc_sfe_0_clk_src",
117262306a36Sopenharmony_ci		.parent_data = cam_cc_parent_data_6,
117362306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(cam_cc_parent_data_6),
117462306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
117562306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
117662306a36Sopenharmony_ci	},
117762306a36Sopenharmony_ci};
117862306a36Sopenharmony_ci
117962306a36Sopenharmony_cistatic const struct freq_tbl ftbl_cam_cc_sfe_1_clk_src[] = {
118062306a36Sopenharmony_ci	F(432000000, P_CAM_CC_PLL7_OUT_EVEN, 1, 0, 0),
118162306a36Sopenharmony_ci	F(594000000, P_CAM_CC_PLL7_OUT_EVEN, 1, 0, 0),
118262306a36Sopenharmony_ci	F(675000000, P_CAM_CC_PLL7_OUT_EVEN, 1, 0, 0),
118362306a36Sopenharmony_ci	F(727000000, P_CAM_CC_PLL7_OUT_EVEN, 1, 0, 0),
118462306a36Sopenharmony_ci	{ }
118562306a36Sopenharmony_ci};
118662306a36Sopenharmony_ci
118762306a36Sopenharmony_cistatic struct clk_rcg2 cam_cc_sfe_1_clk_src = {
118862306a36Sopenharmony_ci	.cmd_rcgr = 0x130ac,
118962306a36Sopenharmony_ci	.mnd_width = 0,
119062306a36Sopenharmony_ci	.hid_width = 5,
119162306a36Sopenharmony_ci	.parent_map = cam_cc_parent_map_7,
119262306a36Sopenharmony_ci	.freq_tbl = ftbl_cam_cc_sfe_1_clk_src,
119362306a36Sopenharmony_ci	.clkr.hw.init = &(const struct clk_init_data) {
119462306a36Sopenharmony_ci		.name = "cam_cc_sfe_1_clk_src",
119562306a36Sopenharmony_ci		.parent_data = cam_cc_parent_data_7,
119662306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(cam_cc_parent_data_7),
119762306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
119862306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
119962306a36Sopenharmony_ci	},
120062306a36Sopenharmony_ci};
120162306a36Sopenharmony_ci
120262306a36Sopenharmony_cistatic const struct freq_tbl ftbl_cam_cc_sleep_clk_src[] = {
120362306a36Sopenharmony_ci	F(32000, P_SLEEP_CLK, 1, 0, 0),
120462306a36Sopenharmony_ci	{ }
120562306a36Sopenharmony_ci};
120662306a36Sopenharmony_ci
120762306a36Sopenharmony_cistatic struct clk_rcg2 cam_cc_sleep_clk_src = {
120862306a36Sopenharmony_ci	.cmd_rcgr = 0x13210,
120962306a36Sopenharmony_ci	.mnd_width = 0,
121062306a36Sopenharmony_ci	.hid_width = 5,
121162306a36Sopenharmony_ci	.parent_map = cam_cc_parent_map_8,
121262306a36Sopenharmony_ci	.freq_tbl = ftbl_cam_cc_sleep_clk_src,
121362306a36Sopenharmony_ci	.clkr.hw.init = &(const struct clk_init_data) {
121462306a36Sopenharmony_ci		.name = "cam_cc_sleep_clk_src",
121562306a36Sopenharmony_ci		.parent_data = cam_cc_parent_data_8,
121662306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(cam_cc_parent_data_8),
121762306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
121862306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
121962306a36Sopenharmony_ci	},
122062306a36Sopenharmony_ci};
122162306a36Sopenharmony_ci
122262306a36Sopenharmony_cistatic const struct freq_tbl ftbl_cam_cc_slow_ahb_clk_src[] = {
122362306a36Sopenharmony_ci	F(19200000, P_BI_TCXO, 1, 0, 0),
122462306a36Sopenharmony_ci	F(80000000, P_CAM_CC_PLL0_OUT_EVEN, 7.5, 0, 0),
122562306a36Sopenharmony_ci	{ }
122662306a36Sopenharmony_ci};
122762306a36Sopenharmony_ci
122862306a36Sopenharmony_cistatic struct clk_rcg2 cam_cc_slow_ahb_clk_src = {
122962306a36Sopenharmony_ci	.cmd_rcgr = 0x10034,
123062306a36Sopenharmony_ci	.mnd_width = 8,
123162306a36Sopenharmony_ci	.hid_width = 5,
123262306a36Sopenharmony_ci	.parent_map = cam_cc_parent_map_0,
123362306a36Sopenharmony_ci	.freq_tbl = ftbl_cam_cc_slow_ahb_clk_src,
123462306a36Sopenharmony_ci	.clkr.hw.init = &(const struct clk_init_data) {
123562306a36Sopenharmony_ci		.name = "cam_cc_slow_ahb_clk_src",
123662306a36Sopenharmony_ci		.parent_data = cam_cc_parent_data_0,
123762306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(cam_cc_parent_data_0),
123862306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
123962306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
124062306a36Sopenharmony_ci	},
124162306a36Sopenharmony_ci};
124262306a36Sopenharmony_ci
124362306a36Sopenharmony_cistatic const struct freq_tbl ftbl_cam_cc_xo_clk_src[] = {
124462306a36Sopenharmony_ci	F(19200000, P_BI_TCXO, 1, 0, 0),
124562306a36Sopenharmony_ci	{ }
124662306a36Sopenharmony_ci};
124762306a36Sopenharmony_ci
124862306a36Sopenharmony_cistatic struct clk_rcg2 cam_cc_xo_clk_src = {
124962306a36Sopenharmony_ci	.cmd_rcgr = 0x131f4,
125062306a36Sopenharmony_ci	.mnd_width = 0,
125162306a36Sopenharmony_ci	.hid_width = 5,
125262306a36Sopenharmony_ci	.parent_map = cam_cc_parent_map_9,
125362306a36Sopenharmony_ci	.freq_tbl = ftbl_cam_cc_xo_clk_src,
125462306a36Sopenharmony_ci	.clkr.hw.init = &(const struct clk_init_data) {
125562306a36Sopenharmony_ci		.name = "cam_cc_xo_clk_src",
125662306a36Sopenharmony_ci		.parent_data = cam_cc_parent_data_9_ao,
125762306a36Sopenharmony_ci		.num_parents = ARRAY_SIZE(cam_cc_parent_data_9_ao),
125862306a36Sopenharmony_ci		.flags = CLK_SET_RATE_PARENT,
125962306a36Sopenharmony_ci		.ops = &clk_rcg2_ops,
126062306a36Sopenharmony_ci	},
126162306a36Sopenharmony_ci};
126262306a36Sopenharmony_ci
126362306a36Sopenharmony_cistatic struct clk_branch cam_cc_gdsc_clk = {
126462306a36Sopenharmony_ci	.halt_reg = 0x1320c,
126562306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
126662306a36Sopenharmony_ci	.clkr = {
126762306a36Sopenharmony_ci		.enable_reg = 0x1320c,
126862306a36Sopenharmony_ci		.enable_mask = BIT(0),
126962306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
127062306a36Sopenharmony_ci			.name = "cam_cc_gdsc_clk",
127162306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
127262306a36Sopenharmony_ci				&cam_cc_xo_clk_src.clkr.hw,
127362306a36Sopenharmony_ci			},
127462306a36Sopenharmony_ci			.num_parents = 1,
127562306a36Sopenharmony_ci			.flags = CLK_IS_CRITICAL | CLK_SET_RATE_PARENT,
127662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
127762306a36Sopenharmony_ci		},
127862306a36Sopenharmony_ci	},
127962306a36Sopenharmony_ci};
128062306a36Sopenharmony_ci
128162306a36Sopenharmony_cistatic struct clk_branch cam_cc_bps_ahb_clk = {
128262306a36Sopenharmony_ci	.halt_reg = 0x1004c,
128362306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
128462306a36Sopenharmony_ci	.clkr = {
128562306a36Sopenharmony_ci		.enable_reg = 0x1004c,
128662306a36Sopenharmony_ci		.enable_mask = BIT(0),
128762306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
128862306a36Sopenharmony_ci			.name = "cam_cc_bps_ahb_clk",
128962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
129062306a36Sopenharmony_ci				&cam_cc_slow_ahb_clk_src.clkr.hw,
129162306a36Sopenharmony_ci			},
129262306a36Sopenharmony_ci			.num_parents = 1,
129362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
129462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
129562306a36Sopenharmony_ci		},
129662306a36Sopenharmony_ci	},
129762306a36Sopenharmony_ci};
129862306a36Sopenharmony_ci
129962306a36Sopenharmony_cistatic struct clk_branch cam_cc_bps_clk = {
130062306a36Sopenharmony_ci	.halt_reg = 0x10068,
130162306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
130262306a36Sopenharmony_ci	.clkr = {
130362306a36Sopenharmony_ci		.enable_reg = 0x10068,
130462306a36Sopenharmony_ci		.enable_mask = BIT(0),
130562306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
130662306a36Sopenharmony_ci			.name = "cam_cc_bps_clk",
130762306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
130862306a36Sopenharmony_ci				&cam_cc_bps_clk_src.clkr.hw,
130962306a36Sopenharmony_ci			},
131062306a36Sopenharmony_ci			.num_parents = 1,
131162306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
131262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
131362306a36Sopenharmony_ci		},
131462306a36Sopenharmony_ci	},
131562306a36Sopenharmony_ci};
131662306a36Sopenharmony_ci
131762306a36Sopenharmony_cistatic struct clk_branch cam_cc_bps_fast_ahb_clk = {
131862306a36Sopenharmony_ci	.halt_reg = 0x10030,
131962306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
132062306a36Sopenharmony_ci	.clkr = {
132162306a36Sopenharmony_ci		.enable_reg = 0x10030,
132262306a36Sopenharmony_ci		.enable_mask = BIT(0),
132362306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
132462306a36Sopenharmony_ci			.name = "cam_cc_bps_fast_ahb_clk",
132562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
132662306a36Sopenharmony_ci				&cam_cc_fast_ahb_clk_src.clkr.hw,
132762306a36Sopenharmony_ci			},
132862306a36Sopenharmony_ci			.num_parents = 1,
132962306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
133062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
133162306a36Sopenharmony_ci		},
133262306a36Sopenharmony_ci	},
133362306a36Sopenharmony_ci};
133462306a36Sopenharmony_ci
133562306a36Sopenharmony_cistatic struct clk_branch cam_cc_camnoc_axi_clk = {
133662306a36Sopenharmony_ci	.halt_reg = 0x131ac,
133762306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
133862306a36Sopenharmony_ci	.clkr = {
133962306a36Sopenharmony_ci		.enable_reg = 0x131ac,
134062306a36Sopenharmony_ci		.enable_mask = BIT(0),
134162306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
134262306a36Sopenharmony_ci			.name = "cam_cc_camnoc_axi_clk",
134362306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
134462306a36Sopenharmony_ci				&cam_cc_camnoc_axi_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 cam_cc_camnoc_dcd_xo_clk = {
135462306a36Sopenharmony_ci	.halt_reg = 0x131b4,
135562306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
135662306a36Sopenharmony_ci	.clkr = {
135762306a36Sopenharmony_ci		.enable_reg = 0x131b4,
135862306a36Sopenharmony_ci		.enable_mask = BIT(0),
135962306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
136062306a36Sopenharmony_ci			.name = "cam_cc_camnoc_dcd_xo_clk",
136162306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
136262306a36Sopenharmony_ci				&cam_cc_xo_clk_src.clkr.hw,
136362306a36Sopenharmony_ci			},
136462306a36Sopenharmony_ci			.num_parents = 1,
136562306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
136662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
136762306a36Sopenharmony_ci		},
136862306a36Sopenharmony_ci	},
136962306a36Sopenharmony_ci};
137062306a36Sopenharmony_ci
137162306a36Sopenharmony_cistatic struct clk_branch cam_cc_cci_0_clk = {
137262306a36Sopenharmony_ci	.halt_reg = 0x13144,
137362306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
137462306a36Sopenharmony_ci	.clkr = {
137562306a36Sopenharmony_ci		.enable_reg = 0x13144,
137662306a36Sopenharmony_ci		.enable_mask = BIT(0),
137762306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
137862306a36Sopenharmony_ci			.name = "cam_cc_cci_0_clk",
137962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
138062306a36Sopenharmony_ci				&cam_cc_cci_0_clk_src.clkr.hw,
138162306a36Sopenharmony_ci			},
138262306a36Sopenharmony_ci			.num_parents = 1,
138362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
138462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
138562306a36Sopenharmony_ci		},
138662306a36Sopenharmony_ci	},
138762306a36Sopenharmony_ci};
138862306a36Sopenharmony_ci
138962306a36Sopenharmony_cistatic struct clk_branch cam_cc_cci_1_clk = {
139062306a36Sopenharmony_ci	.halt_reg = 0x13160,
139162306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
139262306a36Sopenharmony_ci	.clkr = {
139362306a36Sopenharmony_ci		.enable_reg = 0x13160,
139462306a36Sopenharmony_ci		.enable_mask = BIT(0),
139562306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
139662306a36Sopenharmony_ci			.name = "cam_cc_cci_1_clk",
139762306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
139862306a36Sopenharmony_ci				&cam_cc_cci_1_clk_src.clkr.hw,
139962306a36Sopenharmony_ci			},
140062306a36Sopenharmony_ci			.num_parents = 1,
140162306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
140262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
140362306a36Sopenharmony_ci		},
140462306a36Sopenharmony_ci	},
140562306a36Sopenharmony_ci};
140662306a36Sopenharmony_ci
140762306a36Sopenharmony_cistatic struct clk_branch cam_cc_core_ahb_clk = {
140862306a36Sopenharmony_ci	.halt_reg = 0x131f0,
140962306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_DELAY,
141062306a36Sopenharmony_ci	.clkr = {
141162306a36Sopenharmony_ci		.enable_reg = 0x131f0,
141262306a36Sopenharmony_ci		.enable_mask = BIT(0),
141362306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
141462306a36Sopenharmony_ci			.name = "cam_cc_core_ahb_clk",
141562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
141662306a36Sopenharmony_ci				&cam_cc_slow_ahb_clk_src.clkr.hw,
141762306a36Sopenharmony_ci			},
141862306a36Sopenharmony_ci			.num_parents = 1,
141962306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
142062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
142162306a36Sopenharmony_ci		},
142262306a36Sopenharmony_ci	},
142362306a36Sopenharmony_ci};
142462306a36Sopenharmony_ci
142562306a36Sopenharmony_cistatic struct clk_branch cam_cc_cpas_ahb_clk = {
142662306a36Sopenharmony_ci	.halt_reg = 0x13164,
142762306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
142862306a36Sopenharmony_ci	.clkr = {
142962306a36Sopenharmony_ci		.enable_reg = 0x13164,
143062306a36Sopenharmony_ci		.enable_mask = BIT(0),
143162306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
143262306a36Sopenharmony_ci			.name = "cam_cc_cpas_ahb_clk",
143362306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
143462306a36Sopenharmony_ci				&cam_cc_slow_ahb_clk_src.clkr.hw,
143562306a36Sopenharmony_ci			},
143662306a36Sopenharmony_ci			.num_parents = 1,
143762306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
143862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
143962306a36Sopenharmony_ci		},
144062306a36Sopenharmony_ci	},
144162306a36Sopenharmony_ci};
144262306a36Sopenharmony_ci
144362306a36Sopenharmony_cistatic struct clk_branch cam_cc_cpas_bps_clk = {
144462306a36Sopenharmony_ci	.halt_reg = 0x10070,
144562306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
144662306a36Sopenharmony_ci	.clkr = {
144762306a36Sopenharmony_ci		.enable_reg = 0x10070,
144862306a36Sopenharmony_ci		.enable_mask = BIT(0),
144962306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
145062306a36Sopenharmony_ci			.name = "cam_cc_cpas_bps_clk",
145162306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
145262306a36Sopenharmony_ci				&cam_cc_bps_clk_src.clkr.hw,
145362306a36Sopenharmony_ci			},
145462306a36Sopenharmony_ci			.num_parents = 1,
145562306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
145662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
145762306a36Sopenharmony_ci		},
145862306a36Sopenharmony_ci	},
145962306a36Sopenharmony_ci};
146062306a36Sopenharmony_ci
146162306a36Sopenharmony_cistatic struct clk_branch cam_cc_cpas_fast_ahb_clk = {
146262306a36Sopenharmony_ci	.halt_reg = 0x1316c,
146362306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
146462306a36Sopenharmony_ci	.clkr = {
146562306a36Sopenharmony_ci		.enable_reg = 0x1316c,
146662306a36Sopenharmony_ci		.enable_mask = BIT(0),
146762306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
146862306a36Sopenharmony_ci			.name = "cam_cc_cpas_fast_ahb_clk",
146962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
147062306a36Sopenharmony_ci				&cam_cc_fast_ahb_clk_src.clkr.hw,
147162306a36Sopenharmony_ci			},
147262306a36Sopenharmony_ci			.num_parents = 1,
147362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
147462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
147562306a36Sopenharmony_ci		},
147662306a36Sopenharmony_ci	},
147762306a36Sopenharmony_ci};
147862306a36Sopenharmony_ci
147962306a36Sopenharmony_cistatic struct clk_branch cam_cc_cpas_ife_0_clk = {
148062306a36Sopenharmony_ci	.halt_reg = 0x11038,
148162306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
148262306a36Sopenharmony_ci	.clkr = {
148362306a36Sopenharmony_ci		.enable_reg = 0x11038,
148462306a36Sopenharmony_ci		.enable_mask = BIT(0),
148562306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
148662306a36Sopenharmony_ci			.name = "cam_cc_cpas_ife_0_clk",
148762306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
148862306a36Sopenharmony_ci				&cam_cc_ife_0_clk_src.clkr.hw,
148962306a36Sopenharmony_ci			},
149062306a36Sopenharmony_ci			.num_parents = 1,
149162306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
149262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
149362306a36Sopenharmony_ci		},
149462306a36Sopenharmony_ci	},
149562306a36Sopenharmony_ci};
149662306a36Sopenharmony_ci
149762306a36Sopenharmony_cistatic struct clk_branch cam_cc_cpas_ife_1_clk = {
149862306a36Sopenharmony_ci	.halt_reg = 0x12038,
149962306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
150062306a36Sopenharmony_ci	.clkr = {
150162306a36Sopenharmony_ci		.enable_reg = 0x12038,
150262306a36Sopenharmony_ci		.enable_mask = BIT(0),
150362306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
150462306a36Sopenharmony_ci			.name = "cam_cc_cpas_ife_1_clk",
150562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
150662306a36Sopenharmony_ci				&cam_cc_ife_1_clk_src.clkr.hw,
150762306a36Sopenharmony_ci			},
150862306a36Sopenharmony_ci			.num_parents = 1,
150962306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
151062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
151162306a36Sopenharmony_ci		},
151262306a36Sopenharmony_ci	},
151362306a36Sopenharmony_ci};
151462306a36Sopenharmony_ci
151562306a36Sopenharmony_cistatic struct clk_branch cam_cc_cpas_ife_2_clk = {
151662306a36Sopenharmony_ci	.halt_reg = 0x12084,
151762306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
151862306a36Sopenharmony_ci	.clkr = {
151962306a36Sopenharmony_ci		.enable_reg = 0x12084,
152062306a36Sopenharmony_ci		.enable_mask = BIT(0),
152162306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
152262306a36Sopenharmony_ci			.name = "cam_cc_cpas_ife_2_clk",
152362306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
152462306a36Sopenharmony_ci				&cam_cc_ife_2_clk_src.clkr.hw,
152562306a36Sopenharmony_ci			},
152662306a36Sopenharmony_ci			.num_parents = 1,
152762306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
152862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
152962306a36Sopenharmony_ci		},
153062306a36Sopenharmony_ci	},
153162306a36Sopenharmony_ci};
153262306a36Sopenharmony_ci
153362306a36Sopenharmony_cistatic struct clk_branch cam_cc_cpas_ife_lite_clk = {
153462306a36Sopenharmony_ci	.halt_reg = 0x13020,
153562306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
153662306a36Sopenharmony_ci	.clkr = {
153762306a36Sopenharmony_ci		.enable_reg = 0x13020,
153862306a36Sopenharmony_ci		.enable_mask = BIT(0),
153962306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
154062306a36Sopenharmony_ci			.name = "cam_cc_cpas_ife_lite_clk",
154162306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
154262306a36Sopenharmony_ci				&cam_cc_ife_lite_clk_src.clkr.hw,
154362306a36Sopenharmony_ci			},
154462306a36Sopenharmony_ci			.num_parents = 1,
154562306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
154662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
154762306a36Sopenharmony_ci		},
154862306a36Sopenharmony_ci	},
154962306a36Sopenharmony_ci};
155062306a36Sopenharmony_ci
155162306a36Sopenharmony_cistatic struct clk_branch cam_cc_cpas_ipe_nps_clk = {
155262306a36Sopenharmony_ci	.halt_reg = 0x100ac,
155362306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
155462306a36Sopenharmony_ci	.clkr = {
155562306a36Sopenharmony_ci		.enable_reg = 0x100ac,
155662306a36Sopenharmony_ci		.enable_mask = BIT(0),
155762306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
155862306a36Sopenharmony_ci			.name = "cam_cc_cpas_ipe_nps_clk",
155962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
156062306a36Sopenharmony_ci				&cam_cc_ipe_nps_clk_src.clkr.hw,
156162306a36Sopenharmony_ci			},
156262306a36Sopenharmony_ci			.num_parents = 1,
156362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
156462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
156562306a36Sopenharmony_ci		},
156662306a36Sopenharmony_ci	},
156762306a36Sopenharmony_ci};
156862306a36Sopenharmony_ci
156962306a36Sopenharmony_cistatic struct clk_branch cam_cc_cpas_sbi_clk = {
157062306a36Sopenharmony_ci	.halt_reg = 0x100ec,
157162306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
157262306a36Sopenharmony_ci	.clkr = {
157362306a36Sopenharmony_ci		.enable_reg = 0x100ec,
157462306a36Sopenharmony_ci		.enable_mask = BIT(0),
157562306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
157662306a36Sopenharmony_ci			.name = "cam_cc_cpas_sbi_clk",
157762306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
157862306a36Sopenharmony_ci				&cam_cc_ife_0_clk_src.clkr.hw,
157962306a36Sopenharmony_ci			},
158062306a36Sopenharmony_ci			.num_parents = 1,
158162306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
158262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
158362306a36Sopenharmony_ci		},
158462306a36Sopenharmony_ci	},
158562306a36Sopenharmony_ci};
158662306a36Sopenharmony_ci
158762306a36Sopenharmony_cistatic struct clk_branch cam_cc_cpas_sfe_0_clk = {
158862306a36Sopenharmony_ci	.halt_reg = 0x13084,
158962306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
159062306a36Sopenharmony_ci	.clkr = {
159162306a36Sopenharmony_ci		.enable_reg = 0x13084,
159262306a36Sopenharmony_ci		.enable_mask = BIT(0),
159362306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
159462306a36Sopenharmony_ci			.name = "cam_cc_cpas_sfe_0_clk",
159562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
159662306a36Sopenharmony_ci				&cam_cc_sfe_0_clk_src.clkr.hw,
159762306a36Sopenharmony_ci			},
159862306a36Sopenharmony_ci			.num_parents = 1,
159962306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
160062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
160162306a36Sopenharmony_ci		},
160262306a36Sopenharmony_ci	},
160362306a36Sopenharmony_ci};
160462306a36Sopenharmony_ci
160562306a36Sopenharmony_cistatic struct clk_branch cam_cc_cpas_sfe_1_clk = {
160662306a36Sopenharmony_ci	.halt_reg = 0x130cc,
160762306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
160862306a36Sopenharmony_ci	.clkr = {
160962306a36Sopenharmony_ci		.enable_reg = 0x130cc,
161062306a36Sopenharmony_ci		.enable_mask = BIT(0),
161162306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
161262306a36Sopenharmony_ci			.name = "cam_cc_cpas_sfe_1_clk",
161362306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
161462306a36Sopenharmony_ci				&cam_cc_sfe_1_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 cam_cc_csi0phytimer_clk = {
162462306a36Sopenharmony_ci	.halt_reg = 0x150f8,
162562306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
162662306a36Sopenharmony_ci	.clkr = {
162762306a36Sopenharmony_ci		.enable_reg = 0x150f8,
162862306a36Sopenharmony_ci		.enable_mask = BIT(0),
162962306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
163062306a36Sopenharmony_ci			.name = "cam_cc_csi0phytimer_clk",
163162306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
163262306a36Sopenharmony_ci				&cam_cc_csi0phytimer_clk_src.clkr.hw,
163362306a36Sopenharmony_ci			},
163462306a36Sopenharmony_ci			.num_parents = 1,
163562306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
163662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
163762306a36Sopenharmony_ci		},
163862306a36Sopenharmony_ci	},
163962306a36Sopenharmony_ci};
164062306a36Sopenharmony_ci
164162306a36Sopenharmony_cistatic struct clk_branch cam_cc_csi1phytimer_clk = {
164262306a36Sopenharmony_ci	.halt_reg = 0x1511c,
164362306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
164462306a36Sopenharmony_ci	.clkr = {
164562306a36Sopenharmony_ci		.enable_reg = 0x1511c,
164662306a36Sopenharmony_ci		.enable_mask = BIT(0),
164762306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
164862306a36Sopenharmony_ci			.name = "cam_cc_csi1phytimer_clk",
164962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
165062306a36Sopenharmony_ci				&cam_cc_csi1phytimer_clk_src.clkr.hw,
165162306a36Sopenharmony_ci			},
165262306a36Sopenharmony_ci			.num_parents = 1,
165362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
165462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
165562306a36Sopenharmony_ci		},
165662306a36Sopenharmony_ci	},
165762306a36Sopenharmony_ci};
165862306a36Sopenharmony_ci
165962306a36Sopenharmony_cistatic struct clk_branch cam_cc_csi2phytimer_clk = {
166062306a36Sopenharmony_ci	.halt_reg = 0x1513c,
166162306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
166262306a36Sopenharmony_ci	.clkr = {
166362306a36Sopenharmony_ci		.enable_reg = 0x1513c,
166462306a36Sopenharmony_ci		.enable_mask = BIT(0),
166562306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
166662306a36Sopenharmony_ci			.name = "cam_cc_csi2phytimer_clk",
166762306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
166862306a36Sopenharmony_ci				&cam_cc_csi2phytimer_clk_src.clkr.hw,
166962306a36Sopenharmony_ci			},
167062306a36Sopenharmony_ci			.num_parents = 1,
167162306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
167262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
167362306a36Sopenharmony_ci		},
167462306a36Sopenharmony_ci	},
167562306a36Sopenharmony_ci};
167662306a36Sopenharmony_ci
167762306a36Sopenharmony_cistatic struct clk_branch cam_cc_csi3phytimer_clk = {
167862306a36Sopenharmony_ci	.halt_reg = 0x15164,
167962306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
168062306a36Sopenharmony_ci	.clkr = {
168162306a36Sopenharmony_ci		.enable_reg = 0x15164,
168262306a36Sopenharmony_ci		.enable_mask = BIT(0),
168362306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
168462306a36Sopenharmony_ci			.name = "cam_cc_csi3phytimer_clk",
168562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
168662306a36Sopenharmony_ci				&cam_cc_csi3phytimer_clk_src.clkr.hw,
168762306a36Sopenharmony_ci			},
168862306a36Sopenharmony_ci			.num_parents = 1,
168962306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
169062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
169162306a36Sopenharmony_ci		},
169262306a36Sopenharmony_ci	},
169362306a36Sopenharmony_ci};
169462306a36Sopenharmony_ci
169562306a36Sopenharmony_cistatic struct clk_branch cam_cc_csi4phytimer_clk = {
169662306a36Sopenharmony_ci	.halt_reg = 0x15184,
169762306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
169862306a36Sopenharmony_ci	.clkr = {
169962306a36Sopenharmony_ci		.enable_reg = 0x15184,
170062306a36Sopenharmony_ci		.enable_mask = BIT(0),
170162306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
170262306a36Sopenharmony_ci			.name = "cam_cc_csi4phytimer_clk",
170362306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
170462306a36Sopenharmony_ci				&cam_cc_csi4phytimer_clk_src.clkr.hw,
170562306a36Sopenharmony_ci			},
170662306a36Sopenharmony_ci			.num_parents = 1,
170762306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
170862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
170962306a36Sopenharmony_ci		},
171062306a36Sopenharmony_ci	},
171162306a36Sopenharmony_ci};
171262306a36Sopenharmony_ci
171362306a36Sopenharmony_cistatic struct clk_branch cam_cc_csi5phytimer_clk = {
171462306a36Sopenharmony_ci	.halt_reg = 0x151a4,
171562306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
171662306a36Sopenharmony_ci	.clkr = {
171762306a36Sopenharmony_ci		.enable_reg = 0x151a4,
171862306a36Sopenharmony_ci		.enable_mask = BIT(0),
171962306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
172062306a36Sopenharmony_ci			.name = "cam_cc_csi5phytimer_clk",
172162306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
172262306a36Sopenharmony_ci				&cam_cc_csi5phytimer_clk_src.clkr.hw,
172362306a36Sopenharmony_ci			},
172462306a36Sopenharmony_ci			.num_parents = 1,
172562306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
172662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
172762306a36Sopenharmony_ci		},
172862306a36Sopenharmony_ci	},
172962306a36Sopenharmony_ci};
173062306a36Sopenharmony_ci
173162306a36Sopenharmony_cistatic struct clk_branch cam_cc_csid_clk = {
173262306a36Sopenharmony_ci	.halt_reg = 0x1318c,
173362306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
173462306a36Sopenharmony_ci	.clkr = {
173562306a36Sopenharmony_ci		.enable_reg = 0x1318c,
173662306a36Sopenharmony_ci		.enable_mask = BIT(0),
173762306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
173862306a36Sopenharmony_ci			.name = "cam_cc_csid_clk",
173962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
174062306a36Sopenharmony_ci				&cam_cc_csid_clk_src.clkr.hw,
174162306a36Sopenharmony_ci			},
174262306a36Sopenharmony_ci			.num_parents = 1,
174362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
174462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
174562306a36Sopenharmony_ci		},
174662306a36Sopenharmony_ci	},
174762306a36Sopenharmony_ci};
174862306a36Sopenharmony_ci
174962306a36Sopenharmony_cistatic struct clk_branch cam_cc_csid_csiphy_rx_clk = {
175062306a36Sopenharmony_ci	.halt_reg = 0x15100,
175162306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
175262306a36Sopenharmony_ci	.clkr = {
175362306a36Sopenharmony_ci		.enable_reg = 0x15100,
175462306a36Sopenharmony_ci		.enable_mask = BIT(0),
175562306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
175662306a36Sopenharmony_ci			.name = "cam_cc_csid_csiphy_rx_clk",
175762306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
175862306a36Sopenharmony_ci				&cam_cc_cphy_rx_clk_src.clkr.hw,
175962306a36Sopenharmony_ci			},
176062306a36Sopenharmony_ci			.num_parents = 1,
176162306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
176262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
176362306a36Sopenharmony_ci		},
176462306a36Sopenharmony_ci	},
176562306a36Sopenharmony_ci};
176662306a36Sopenharmony_ci
176762306a36Sopenharmony_cistatic struct clk_branch cam_cc_csiphy0_clk = {
176862306a36Sopenharmony_ci	.halt_reg = 0x150fc,
176962306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
177062306a36Sopenharmony_ci	.clkr = {
177162306a36Sopenharmony_ci		.enable_reg = 0x150fc,
177262306a36Sopenharmony_ci		.enable_mask = BIT(0),
177362306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
177462306a36Sopenharmony_ci			.name = "cam_cc_csiphy0_clk",
177562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
177662306a36Sopenharmony_ci				&cam_cc_cphy_rx_clk_src.clkr.hw,
177762306a36Sopenharmony_ci			},
177862306a36Sopenharmony_ci			.num_parents = 1,
177962306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
178062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
178162306a36Sopenharmony_ci		},
178262306a36Sopenharmony_ci	},
178362306a36Sopenharmony_ci};
178462306a36Sopenharmony_ci
178562306a36Sopenharmony_cistatic struct clk_branch cam_cc_csiphy1_clk = {
178662306a36Sopenharmony_ci	.halt_reg = 0x15120,
178762306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
178862306a36Sopenharmony_ci	.clkr = {
178962306a36Sopenharmony_ci		.enable_reg = 0x15120,
179062306a36Sopenharmony_ci		.enable_mask = BIT(0),
179162306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
179262306a36Sopenharmony_ci			.name = "cam_cc_csiphy1_clk",
179362306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
179462306a36Sopenharmony_ci				&cam_cc_cphy_rx_clk_src.clkr.hw,
179562306a36Sopenharmony_ci			},
179662306a36Sopenharmony_ci			.num_parents = 1,
179762306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
179862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
179962306a36Sopenharmony_ci		},
180062306a36Sopenharmony_ci	},
180162306a36Sopenharmony_ci};
180262306a36Sopenharmony_ci
180362306a36Sopenharmony_cistatic struct clk_branch cam_cc_csiphy2_clk = {
180462306a36Sopenharmony_ci	.halt_reg = 0x15140,
180562306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
180662306a36Sopenharmony_ci	.clkr = {
180762306a36Sopenharmony_ci		.enable_reg = 0x15140,
180862306a36Sopenharmony_ci		.enable_mask = BIT(0),
180962306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
181062306a36Sopenharmony_ci			.name = "cam_cc_csiphy2_clk",
181162306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
181262306a36Sopenharmony_ci				&cam_cc_cphy_rx_clk_src.clkr.hw,
181362306a36Sopenharmony_ci			},
181462306a36Sopenharmony_ci			.num_parents = 1,
181562306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
181662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
181762306a36Sopenharmony_ci		},
181862306a36Sopenharmony_ci	},
181962306a36Sopenharmony_ci};
182062306a36Sopenharmony_ci
182162306a36Sopenharmony_cistatic struct clk_branch cam_cc_csiphy3_clk = {
182262306a36Sopenharmony_ci	.halt_reg = 0x15168,
182362306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
182462306a36Sopenharmony_ci	.clkr = {
182562306a36Sopenharmony_ci		.enable_reg = 0x15168,
182662306a36Sopenharmony_ci		.enable_mask = BIT(0),
182762306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
182862306a36Sopenharmony_ci			.name = "cam_cc_csiphy3_clk",
182962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
183062306a36Sopenharmony_ci				&cam_cc_cphy_rx_clk_src.clkr.hw,
183162306a36Sopenharmony_ci			},
183262306a36Sopenharmony_ci			.num_parents = 1,
183362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
183462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
183562306a36Sopenharmony_ci		},
183662306a36Sopenharmony_ci	},
183762306a36Sopenharmony_ci};
183862306a36Sopenharmony_ci
183962306a36Sopenharmony_cistatic struct clk_branch cam_cc_csiphy4_clk = {
184062306a36Sopenharmony_ci	.halt_reg = 0x15188,
184162306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
184262306a36Sopenharmony_ci	.clkr = {
184362306a36Sopenharmony_ci		.enable_reg = 0x15188,
184462306a36Sopenharmony_ci		.enable_mask = BIT(0),
184562306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
184662306a36Sopenharmony_ci			.name = "cam_cc_csiphy4_clk",
184762306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
184862306a36Sopenharmony_ci				&cam_cc_cphy_rx_clk_src.clkr.hw,
184962306a36Sopenharmony_ci			},
185062306a36Sopenharmony_ci			.num_parents = 1,
185162306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
185262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
185362306a36Sopenharmony_ci		},
185462306a36Sopenharmony_ci	},
185562306a36Sopenharmony_ci};
185662306a36Sopenharmony_ci
185762306a36Sopenharmony_cistatic struct clk_branch cam_cc_csiphy5_clk = {
185862306a36Sopenharmony_ci	.halt_reg = 0x151a8,
185962306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
186062306a36Sopenharmony_ci	.clkr = {
186162306a36Sopenharmony_ci		.enable_reg = 0x151a8,
186262306a36Sopenharmony_ci		.enable_mask = BIT(0),
186362306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
186462306a36Sopenharmony_ci			.name = "cam_cc_csiphy5_clk",
186562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
186662306a36Sopenharmony_ci				&cam_cc_cphy_rx_clk_src.clkr.hw,
186762306a36Sopenharmony_ci			},
186862306a36Sopenharmony_ci			.num_parents = 1,
186962306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
187062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
187162306a36Sopenharmony_ci		},
187262306a36Sopenharmony_ci	},
187362306a36Sopenharmony_ci};
187462306a36Sopenharmony_ci
187562306a36Sopenharmony_cistatic struct clk_branch cam_cc_icp_ahb_clk = {
187662306a36Sopenharmony_ci	.halt_reg = 0x13128,
187762306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
187862306a36Sopenharmony_ci	.clkr = {
187962306a36Sopenharmony_ci		.enable_reg = 0x13128,
188062306a36Sopenharmony_ci		.enable_mask = BIT(0),
188162306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
188262306a36Sopenharmony_ci			.name = "cam_cc_icp_ahb_clk",
188362306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
188462306a36Sopenharmony_ci				&cam_cc_slow_ahb_clk_src.clkr.hw,
188562306a36Sopenharmony_ci			},
188662306a36Sopenharmony_ci			.num_parents = 1,
188762306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
188862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
188962306a36Sopenharmony_ci		},
189062306a36Sopenharmony_ci	},
189162306a36Sopenharmony_ci};
189262306a36Sopenharmony_ci
189362306a36Sopenharmony_cistatic struct clk_branch cam_cc_icp_clk = {
189462306a36Sopenharmony_ci	.halt_reg = 0x13120,
189562306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
189662306a36Sopenharmony_ci	.clkr = {
189762306a36Sopenharmony_ci		.enable_reg = 0x13120,
189862306a36Sopenharmony_ci		.enable_mask = BIT(0),
189962306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
190062306a36Sopenharmony_ci			.name = "cam_cc_icp_clk",
190162306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
190262306a36Sopenharmony_ci				&cam_cc_icp_clk_src.clkr.hw,
190362306a36Sopenharmony_ci			},
190462306a36Sopenharmony_ci			.num_parents = 1,
190562306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
190662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
190762306a36Sopenharmony_ci		},
190862306a36Sopenharmony_ci	},
190962306a36Sopenharmony_ci};
191062306a36Sopenharmony_ci
191162306a36Sopenharmony_cistatic struct clk_branch cam_cc_ife_0_clk = {
191262306a36Sopenharmony_ci	.halt_reg = 0x11030,
191362306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
191462306a36Sopenharmony_ci	.clkr = {
191562306a36Sopenharmony_ci		.enable_reg = 0x11030,
191662306a36Sopenharmony_ci		.enable_mask = BIT(0),
191762306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
191862306a36Sopenharmony_ci			.name = "cam_cc_ife_0_clk",
191962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
192062306a36Sopenharmony_ci				&cam_cc_ife_0_clk_src.clkr.hw,
192162306a36Sopenharmony_ci			},
192262306a36Sopenharmony_ci			.num_parents = 1,
192362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
192462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
192562306a36Sopenharmony_ci		},
192662306a36Sopenharmony_ci	},
192762306a36Sopenharmony_ci};
192862306a36Sopenharmony_ci
192962306a36Sopenharmony_cistatic struct clk_branch cam_cc_ife_0_dsp_clk = {
193062306a36Sopenharmony_ci	.halt_reg = 0x1103c,
193162306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
193262306a36Sopenharmony_ci	.clkr = {
193362306a36Sopenharmony_ci		.enable_reg = 0x1103c,
193462306a36Sopenharmony_ci		.enable_mask = BIT(0),
193562306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
193662306a36Sopenharmony_ci			.name = "cam_cc_ife_0_dsp_clk",
193762306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
193862306a36Sopenharmony_ci				&cam_cc_ife_0_clk_src.clkr.hw,
193962306a36Sopenharmony_ci			},
194062306a36Sopenharmony_ci			.num_parents = 1,
194162306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
194262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
194362306a36Sopenharmony_ci		},
194462306a36Sopenharmony_ci	},
194562306a36Sopenharmony_ci};
194662306a36Sopenharmony_ci
194762306a36Sopenharmony_cistatic struct clk_branch cam_cc_ife_0_fast_ahb_clk = {
194862306a36Sopenharmony_ci	.halt_reg = 0x11048,
194962306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
195062306a36Sopenharmony_ci	.clkr = {
195162306a36Sopenharmony_ci		.enable_reg = 0x11048,
195262306a36Sopenharmony_ci		.enable_mask = BIT(0),
195362306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
195462306a36Sopenharmony_ci			.name = "cam_cc_ife_0_fast_ahb_clk",
195562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
195662306a36Sopenharmony_ci				&cam_cc_fast_ahb_clk_src.clkr.hw,
195762306a36Sopenharmony_ci			},
195862306a36Sopenharmony_ci			.num_parents = 1,
195962306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
196062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
196162306a36Sopenharmony_ci		},
196262306a36Sopenharmony_ci	},
196362306a36Sopenharmony_ci};
196462306a36Sopenharmony_ci
196562306a36Sopenharmony_cistatic struct clk_branch cam_cc_ife_1_clk = {
196662306a36Sopenharmony_ci	.halt_reg = 0x12030,
196762306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
196862306a36Sopenharmony_ci	.clkr = {
196962306a36Sopenharmony_ci		.enable_reg = 0x12030,
197062306a36Sopenharmony_ci		.enable_mask = BIT(0),
197162306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
197262306a36Sopenharmony_ci			.name = "cam_cc_ife_1_clk",
197362306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
197462306a36Sopenharmony_ci				&cam_cc_ife_1_clk_src.clkr.hw,
197562306a36Sopenharmony_ci			},
197662306a36Sopenharmony_ci			.num_parents = 1,
197762306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
197862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
197962306a36Sopenharmony_ci		},
198062306a36Sopenharmony_ci	},
198162306a36Sopenharmony_ci};
198262306a36Sopenharmony_ci
198362306a36Sopenharmony_cistatic struct clk_branch cam_cc_ife_1_dsp_clk = {
198462306a36Sopenharmony_ci	.halt_reg = 0x1203c,
198562306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
198662306a36Sopenharmony_ci	.clkr = {
198762306a36Sopenharmony_ci		.enable_reg = 0x1203c,
198862306a36Sopenharmony_ci		.enable_mask = BIT(0),
198962306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
199062306a36Sopenharmony_ci			.name = "cam_cc_ife_1_dsp_clk",
199162306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
199262306a36Sopenharmony_ci				&cam_cc_ife_1_clk_src.clkr.hw,
199362306a36Sopenharmony_ci			},
199462306a36Sopenharmony_ci			.num_parents = 1,
199562306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
199662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
199762306a36Sopenharmony_ci		},
199862306a36Sopenharmony_ci	},
199962306a36Sopenharmony_ci};
200062306a36Sopenharmony_ci
200162306a36Sopenharmony_cistatic struct clk_branch cam_cc_ife_1_fast_ahb_clk = {
200262306a36Sopenharmony_ci	.halt_reg = 0x12048,
200362306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
200462306a36Sopenharmony_ci	.clkr = {
200562306a36Sopenharmony_ci		.enable_reg = 0x12048,
200662306a36Sopenharmony_ci		.enable_mask = BIT(0),
200762306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
200862306a36Sopenharmony_ci			.name = "cam_cc_ife_1_fast_ahb_clk",
200962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
201062306a36Sopenharmony_ci				&cam_cc_fast_ahb_clk_src.clkr.hw,
201162306a36Sopenharmony_ci			},
201262306a36Sopenharmony_ci			.num_parents = 1,
201362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
201462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
201562306a36Sopenharmony_ci		},
201662306a36Sopenharmony_ci	},
201762306a36Sopenharmony_ci};
201862306a36Sopenharmony_ci
201962306a36Sopenharmony_cistatic struct clk_branch cam_cc_ife_2_clk = {
202062306a36Sopenharmony_ci	.halt_reg = 0x1207c,
202162306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
202262306a36Sopenharmony_ci	.clkr = {
202362306a36Sopenharmony_ci		.enable_reg = 0x1207c,
202462306a36Sopenharmony_ci		.enable_mask = BIT(0),
202562306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
202662306a36Sopenharmony_ci			.name = "cam_cc_ife_2_clk",
202762306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
202862306a36Sopenharmony_ci				&cam_cc_ife_2_clk_src.clkr.hw,
202962306a36Sopenharmony_ci			},
203062306a36Sopenharmony_ci			.num_parents = 1,
203162306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
203262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
203362306a36Sopenharmony_ci		},
203462306a36Sopenharmony_ci	},
203562306a36Sopenharmony_ci};
203662306a36Sopenharmony_ci
203762306a36Sopenharmony_cistatic struct clk_branch cam_cc_ife_2_dsp_clk = {
203862306a36Sopenharmony_ci	.halt_reg = 0x12088,
203962306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
204062306a36Sopenharmony_ci	.clkr = {
204162306a36Sopenharmony_ci		.enable_reg = 0x12088,
204262306a36Sopenharmony_ci		.enable_mask = BIT(0),
204362306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
204462306a36Sopenharmony_ci			.name = "cam_cc_ife_2_dsp_clk",
204562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
204662306a36Sopenharmony_ci				&cam_cc_ife_2_clk_src.clkr.hw,
204762306a36Sopenharmony_ci			},
204862306a36Sopenharmony_ci			.num_parents = 1,
204962306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
205062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
205162306a36Sopenharmony_ci		},
205262306a36Sopenharmony_ci	},
205362306a36Sopenharmony_ci};
205462306a36Sopenharmony_ci
205562306a36Sopenharmony_cistatic struct clk_branch cam_cc_ife_2_fast_ahb_clk = {
205662306a36Sopenharmony_ci	.halt_reg = 0x12094,
205762306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
205862306a36Sopenharmony_ci	.clkr = {
205962306a36Sopenharmony_ci		.enable_reg = 0x12094,
206062306a36Sopenharmony_ci		.enable_mask = BIT(0),
206162306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
206262306a36Sopenharmony_ci			.name = "cam_cc_ife_2_fast_ahb_clk",
206362306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
206462306a36Sopenharmony_ci				&cam_cc_fast_ahb_clk_src.clkr.hw,
206562306a36Sopenharmony_ci			},
206662306a36Sopenharmony_ci			.num_parents = 1,
206762306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
206862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
206962306a36Sopenharmony_ci		},
207062306a36Sopenharmony_ci	},
207162306a36Sopenharmony_ci};
207262306a36Sopenharmony_ci
207362306a36Sopenharmony_cistatic struct clk_branch cam_cc_ife_lite_ahb_clk = {
207462306a36Sopenharmony_ci	.halt_reg = 0x13048,
207562306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
207662306a36Sopenharmony_ci	.clkr = {
207762306a36Sopenharmony_ci		.enable_reg = 0x13048,
207862306a36Sopenharmony_ci		.enable_mask = BIT(0),
207962306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
208062306a36Sopenharmony_ci			.name = "cam_cc_ife_lite_ahb_clk",
208162306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
208262306a36Sopenharmony_ci				&cam_cc_slow_ahb_clk_src.clkr.hw,
208362306a36Sopenharmony_ci			},
208462306a36Sopenharmony_ci			.num_parents = 1,
208562306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
208662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
208762306a36Sopenharmony_ci		},
208862306a36Sopenharmony_ci	},
208962306a36Sopenharmony_ci};
209062306a36Sopenharmony_ci
209162306a36Sopenharmony_cistatic struct clk_branch cam_cc_ife_lite_clk = {
209262306a36Sopenharmony_ci	.halt_reg = 0x13018,
209362306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
209462306a36Sopenharmony_ci	.clkr = {
209562306a36Sopenharmony_ci		.enable_reg = 0x13018,
209662306a36Sopenharmony_ci		.enable_mask = BIT(0),
209762306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
209862306a36Sopenharmony_ci			.name = "cam_cc_ife_lite_clk",
209962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
210062306a36Sopenharmony_ci				&cam_cc_ife_lite_clk_src.clkr.hw,
210162306a36Sopenharmony_ci			},
210262306a36Sopenharmony_ci			.num_parents = 1,
210362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
210462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
210562306a36Sopenharmony_ci		},
210662306a36Sopenharmony_ci	},
210762306a36Sopenharmony_ci};
210862306a36Sopenharmony_ci
210962306a36Sopenharmony_cistatic struct clk_branch cam_cc_ife_lite_cphy_rx_clk = {
211062306a36Sopenharmony_ci	.halt_reg = 0x13044,
211162306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
211262306a36Sopenharmony_ci	.clkr = {
211362306a36Sopenharmony_ci		.enable_reg = 0x13044,
211462306a36Sopenharmony_ci		.enable_mask = BIT(0),
211562306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
211662306a36Sopenharmony_ci			.name = "cam_cc_ife_lite_cphy_rx_clk",
211762306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
211862306a36Sopenharmony_ci				&cam_cc_cphy_rx_clk_src.clkr.hw,
211962306a36Sopenharmony_ci			},
212062306a36Sopenharmony_ci			.num_parents = 1,
212162306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
212262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
212362306a36Sopenharmony_ci		},
212462306a36Sopenharmony_ci	},
212562306a36Sopenharmony_ci};
212662306a36Sopenharmony_ci
212762306a36Sopenharmony_cistatic struct clk_branch cam_cc_ife_lite_csid_clk = {
212862306a36Sopenharmony_ci	.halt_reg = 0x1303c,
212962306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
213062306a36Sopenharmony_ci	.clkr = {
213162306a36Sopenharmony_ci		.enable_reg = 0x1303c,
213262306a36Sopenharmony_ci		.enable_mask = BIT(0),
213362306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
213462306a36Sopenharmony_ci			.name = "cam_cc_ife_lite_csid_clk",
213562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
213662306a36Sopenharmony_ci				&cam_cc_ife_lite_csid_clk_src.clkr.hw,
213762306a36Sopenharmony_ci			},
213862306a36Sopenharmony_ci			.num_parents = 1,
213962306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
214062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
214162306a36Sopenharmony_ci		},
214262306a36Sopenharmony_ci	},
214362306a36Sopenharmony_ci};
214462306a36Sopenharmony_ci
214562306a36Sopenharmony_cistatic struct clk_branch cam_cc_ipe_nps_ahb_clk = {
214662306a36Sopenharmony_ci	.halt_reg = 0x100c0,
214762306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
214862306a36Sopenharmony_ci	.clkr = {
214962306a36Sopenharmony_ci		.enable_reg = 0x100c0,
215062306a36Sopenharmony_ci		.enable_mask = BIT(0),
215162306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
215262306a36Sopenharmony_ci			.name = "cam_cc_ipe_nps_ahb_clk",
215362306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
215462306a36Sopenharmony_ci				&cam_cc_slow_ahb_clk_src.clkr.hw,
215562306a36Sopenharmony_ci			},
215662306a36Sopenharmony_ci			.num_parents = 1,
215762306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
215862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
215962306a36Sopenharmony_ci		},
216062306a36Sopenharmony_ci	},
216162306a36Sopenharmony_ci};
216262306a36Sopenharmony_ci
216362306a36Sopenharmony_cistatic struct clk_branch cam_cc_ipe_nps_clk = {
216462306a36Sopenharmony_ci	.halt_reg = 0x100a4,
216562306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
216662306a36Sopenharmony_ci	.clkr = {
216762306a36Sopenharmony_ci		.enable_reg = 0x100a4,
216862306a36Sopenharmony_ci		.enable_mask = BIT(0),
216962306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
217062306a36Sopenharmony_ci			.name = "cam_cc_ipe_nps_clk",
217162306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
217262306a36Sopenharmony_ci				&cam_cc_ipe_nps_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 cam_cc_ipe_nps_fast_ahb_clk = {
218262306a36Sopenharmony_ci	.halt_reg = 0x100c4,
218362306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
218462306a36Sopenharmony_ci	.clkr = {
218562306a36Sopenharmony_ci		.enable_reg = 0x100c4,
218662306a36Sopenharmony_ci		.enable_mask = BIT(0),
218762306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
218862306a36Sopenharmony_ci			.name = "cam_cc_ipe_nps_fast_ahb_clk",
218962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
219062306a36Sopenharmony_ci				&cam_cc_fast_ahb_clk_src.clkr.hw,
219162306a36Sopenharmony_ci			},
219262306a36Sopenharmony_ci			.num_parents = 1,
219362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
219462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
219562306a36Sopenharmony_ci		},
219662306a36Sopenharmony_ci	},
219762306a36Sopenharmony_ci};
219862306a36Sopenharmony_ci
219962306a36Sopenharmony_cistatic struct clk_branch cam_cc_ipe_pps_clk = {
220062306a36Sopenharmony_ci	.halt_reg = 0x100b0,
220162306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
220262306a36Sopenharmony_ci	.clkr = {
220362306a36Sopenharmony_ci		.enable_reg = 0x100b0,
220462306a36Sopenharmony_ci		.enable_mask = BIT(0),
220562306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
220662306a36Sopenharmony_ci			.name = "cam_cc_ipe_pps_clk",
220762306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
220862306a36Sopenharmony_ci				&cam_cc_ipe_nps_clk_src.clkr.hw,
220962306a36Sopenharmony_ci			},
221062306a36Sopenharmony_ci			.num_parents = 1,
221162306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
221262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
221362306a36Sopenharmony_ci		},
221462306a36Sopenharmony_ci	},
221562306a36Sopenharmony_ci};
221662306a36Sopenharmony_ci
221762306a36Sopenharmony_cistatic struct clk_branch cam_cc_ipe_pps_fast_ahb_clk = {
221862306a36Sopenharmony_ci	.halt_reg = 0x100c8,
221962306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
222062306a36Sopenharmony_ci	.clkr = {
222162306a36Sopenharmony_ci		.enable_reg = 0x100c8,
222262306a36Sopenharmony_ci		.enable_mask = BIT(0),
222362306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
222462306a36Sopenharmony_ci			.name = "cam_cc_ipe_pps_fast_ahb_clk",
222562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
222662306a36Sopenharmony_ci				&cam_cc_fast_ahb_clk_src.clkr.hw,
222762306a36Sopenharmony_ci			},
222862306a36Sopenharmony_ci			.num_parents = 1,
222962306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
223062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
223162306a36Sopenharmony_ci		},
223262306a36Sopenharmony_ci	},
223362306a36Sopenharmony_ci};
223462306a36Sopenharmony_ci
223562306a36Sopenharmony_cistatic struct clk_branch cam_cc_jpeg_clk = {
223662306a36Sopenharmony_ci	.halt_reg = 0x130f4,
223762306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
223862306a36Sopenharmony_ci	.clkr = {
223962306a36Sopenharmony_ci		.enable_reg = 0x130f4,
224062306a36Sopenharmony_ci		.enable_mask = BIT(0),
224162306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
224262306a36Sopenharmony_ci			.name = "cam_cc_jpeg_clk",
224362306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
224462306a36Sopenharmony_ci				&cam_cc_jpeg_clk_src.clkr.hw,
224562306a36Sopenharmony_ci			},
224662306a36Sopenharmony_ci			.num_parents = 1,
224762306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
224862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
224962306a36Sopenharmony_ci		},
225062306a36Sopenharmony_ci	},
225162306a36Sopenharmony_ci};
225262306a36Sopenharmony_ci
225362306a36Sopenharmony_cistatic struct clk_branch cam_cc_mclk0_clk = {
225462306a36Sopenharmony_ci	.halt_reg = 0x15018,
225562306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
225662306a36Sopenharmony_ci	.clkr = {
225762306a36Sopenharmony_ci		.enable_reg = 0x15018,
225862306a36Sopenharmony_ci		.enable_mask = BIT(0),
225962306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
226062306a36Sopenharmony_ci			.name = "cam_cc_mclk0_clk",
226162306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
226262306a36Sopenharmony_ci				&cam_cc_mclk0_clk_src.clkr.hw,
226362306a36Sopenharmony_ci			},
226462306a36Sopenharmony_ci			.num_parents = 1,
226562306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
226662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
226762306a36Sopenharmony_ci		},
226862306a36Sopenharmony_ci	},
226962306a36Sopenharmony_ci};
227062306a36Sopenharmony_ci
227162306a36Sopenharmony_cistatic struct clk_branch cam_cc_mclk1_clk = {
227262306a36Sopenharmony_ci	.halt_reg = 0x15034,
227362306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
227462306a36Sopenharmony_ci	.clkr = {
227562306a36Sopenharmony_ci		.enable_reg = 0x15034,
227662306a36Sopenharmony_ci		.enable_mask = BIT(0),
227762306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
227862306a36Sopenharmony_ci			.name = "cam_cc_mclk1_clk",
227962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
228062306a36Sopenharmony_ci				&cam_cc_mclk1_clk_src.clkr.hw,
228162306a36Sopenharmony_ci			},
228262306a36Sopenharmony_ci			.num_parents = 1,
228362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
228462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
228562306a36Sopenharmony_ci		},
228662306a36Sopenharmony_ci	},
228762306a36Sopenharmony_ci};
228862306a36Sopenharmony_ci
228962306a36Sopenharmony_cistatic struct clk_branch cam_cc_mclk2_clk = {
229062306a36Sopenharmony_ci	.halt_reg = 0x15050,
229162306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
229262306a36Sopenharmony_ci	.clkr = {
229362306a36Sopenharmony_ci		.enable_reg = 0x15050,
229462306a36Sopenharmony_ci		.enable_mask = BIT(0),
229562306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
229662306a36Sopenharmony_ci			.name = "cam_cc_mclk2_clk",
229762306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
229862306a36Sopenharmony_ci				&cam_cc_mclk2_clk_src.clkr.hw,
229962306a36Sopenharmony_ci			},
230062306a36Sopenharmony_ci			.num_parents = 1,
230162306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
230262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
230362306a36Sopenharmony_ci		},
230462306a36Sopenharmony_ci	},
230562306a36Sopenharmony_ci};
230662306a36Sopenharmony_ci
230762306a36Sopenharmony_cistatic struct clk_branch cam_cc_mclk3_clk = {
230862306a36Sopenharmony_ci	.halt_reg = 0x1506c,
230962306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
231062306a36Sopenharmony_ci	.clkr = {
231162306a36Sopenharmony_ci		.enable_reg = 0x1506c,
231262306a36Sopenharmony_ci		.enable_mask = BIT(0),
231362306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
231462306a36Sopenharmony_ci			.name = "cam_cc_mclk3_clk",
231562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
231662306a36Sopenharmony_ci				&cam_cc_mclk3_clk_src.clkr.hw,
231762306a36Sopenharmony_ci			},
231862306a36Sopenharmony_ci			.num_parents = 1,
231962306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
232062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
232162306a36Sopenharmony_ci		},
232262306a36Sopenharmony_ci	},
232362306a36Sopenharmony_ci};
232462306a36Sopenharmony_ci
232562306a36Sopenharmony_cistatic struct clk_branch cam_cc_mclk4_clk = {
232662306a36Sopenharmony_ci	.halt_reg = 0x15088,
232762306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
232862306a36Sopenharmony_ci	.clkr = {
232962306a36Sopenharmony_ci		.enable_reg = 0x15088,
233062306a36Sopenharmony_ci		.enable_mask = BIT(0),
233162306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
233262306a36Sopenharmony_ci			.name = "cam_cc_mclk4_clk",
233362306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
233462306a36Sopenharmony_ci				&cam_cc_mclk4_clk_src.clkr.hw,
233562306a36Sopenharmony_ci			},
233662306a36Sopenharmony_ci			.num_parents = 1,
233762306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
233862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
233962306a36Sopenharmony_ci		},
234062306a36Sopenharmony_ci	},
234162306a36Sopenharmony_ci};
234262306a36Sopenharmony_ci
234362306a36Sopenharmony_cistatic struct clk_branch cam_cc_mclk5_clk = {
234462306a36Sopenharmony_ci	.halt_reg = 0x150a4,
234562306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
234662306a36Sopenharmony_ci	.clkr = {
234762306a36Sopenharmony_ci		.enable_reg = 0x150a4,
234862306a36Sopenharmony_ci		.enable_mask = BIT(0),
234962306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
235062306a36Sopenharmony_ci			.name = "cam_cc_mclk5_clk",
235162306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
235262306a36Sopenharmony_ci				&cam_cc_mclk5_clk_src.clkr.hw,
235362306a36Sopenharmony_ci			},
235462306a36Sopenharmony_ci			.num_parents = 1,
235562306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
235662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
235762306a36Sopenharmony_ci		},
235862306a36Sopenharmony_ci	},
235962306a36Sopenharmony_ci};
236062306a36Sopenharmony_ci
236162306a36Sopenharmony_cistatic struct clk_branch cam_cc_mclk6_clk = {
236262306a36Sopenharmony_ci	.halt_reg = 0x150c0,
236362306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
236462306a36Sopenharmony_ci	.clkr = {
236562306a36Sopenharmony_ci		.enable_reg = 0x150c0,
236662306a36Sopenharmony_ci		.enable_mask = BIT(0),
236762306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
236862306a36Sopenharmony_ci			.name = "cam_cc_mclk6_clk",
236962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
237062306a36Sopenharmony_ci				&cam_cc_mclk6_clk_src.clkr.hw,
237162306a36Sopenharmony_ci			},
237262306a36Sopenharmony_ci			.num_parents = 1,
237362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
237462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
237562306a36Sopenharmony_ci		},
237662306a36Sopenharmony_ci	},
237762306a36Sopenharmony_ci};
237862306a36Sopenharmony_ci
237962306a36Sopenharmony_cistatic struct clk_branch cam_cc_mclk7_clk = {
238062306a36Sopenharmony_ci	.halt_reg = 0x150dc,
238162306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
238262306a36Sopenharmony_ci	.clkr = {
238362306a36Sopenharmony_ci		.enable_reg = 0x150dc,
238462306a36Sopenharmony_ci		.enable_mask = BIT(0),
238562306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
238662306a36Sopenharmony_ci			.name = "cam_cc_mclk7_clk",
238762306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
238862306a36Sopenharmony_ci				&cam_cc_mclk7_clk_src.clkr.hw,
238962306a36Sopenharmony_ci			},
239062306a36Sopenharmony_ci			.num_parents = 1,
239162306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
239262306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
239362306a36Sopenharmony_ci		},
239462306a36Sopenharmony_ci	},
239562306a36Sopenharmony_ci};
239662306a36Sopenharmony_ci
239762306a36Sopenharmony_cistatic struct clk_branch cam_cc_qdss_debug_clk = {
239862306a36Sopenharmony_ci	.halt_reg = 0x131d4,
239962306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
240062306a36Sopenharmony_ci	.clkr = {
240162306a36Sopenharmony_ci		.enable_reg = 0x131d4,
240262306a36Sopenharmony_ci		.enable_mask = BIT(0),
240362306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
240462306a36Sopenharmony_ci			.name = "cam_cc_qdss_debug_clk",
240562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
240662306a36Sopenharmony_ci				&cam_cc_qdss_debug_clk_src.clkr.hw,
240762306a36Sopenharmony_ci			},
240862306a36Sopenharmony_ci			.num_parents = 1,
240962306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
241062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
241162306a36Sopenharmony_ci		},
241262306a36Sopenharmony_ci	},
241362306a36Sopenharmony_ci};
241462306a36Sopenharmony_ci
241562306a36Sopenharmony_cistatic struct clk_branch cam_cc_qdss_debug_xo_clk = {
241662306a36Sopenharmony_ci	.halt_reg = 0x131d8,
241762306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
241862306a36Sopenharmony_ci	.clkr = {
241962306a36Sopenharmony_ci		.enable_reg = 0x131d8,
242062306a36Sopenharmony_ci		.enable_mask = BIT(0),
242162306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
242262306a36Sopenharmony_ci			.name = "cam_cc_qdss_debug_xo_clk",
242362306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
242462306a36Sopenharmony_ci				&cam_cc_xo_clk_src.clkr.hw,
242562306a36Sopenharmony_ci			},
242662306a36Sopenharmony_ci			.num_parents = 1,
242762306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
242862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
242962306a36Sopenharmony_ci		},
243062306a36Sopenharmony_ci	},
243162306a36Sopenharmony_ci};
243262306a36Sopenharmony_ci
243362306a36Sopenharmony_cistatic struct clk_branch cam_cc_sbi_ahb_clk = {
243462306a36Sopenharmony_ci	.halt_reg = 0x100f0,
243562306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
243662306a36Sopenharmony_ci	.clkr = {
243762306a36Sopenharmony_ci		.enable_reg = 0x100f0,
243862306a36Sopenharmony_ci		.enable_mask = BIT(0),
243962306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
244062306a36Sopenharmony_ci			.name = "cam_cc_sbi_ahb_clk",
244162306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
244262306a36Sopenharmony_ci				&cam_cc_slow_ahb_clk_src.clkr.hw,
244362306a36Sopenharmony_ci			},
244462306a36Sopenharmony_ci			.num_parents = 1,
244562306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
244662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
244762306a36Sopenharmony_ci		},
244862306a36Sopenharmony_ci	},
244962306a36Sopenharmony_ci};
245062306a36Sopenharmony_ci
245162306a36Sopenharmony_cistatic struct clk_branch cam_cc_sbi_clk = {
245262306a36Sopenharmony_ci	.halt_reg = 0x100e4,
245362306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
245462306a36Sopenharmony_ci	.clkr = {
245562306a36Sopenharmony_ci		.enable_reg = 0x100e4,
245662306a36Sopenharmony_ci		.enable_mask = BIT(0),
245762306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
245862306a36Sopenharmony_ci			.name = "cam_cc_sbi_clk",
245962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
246062306a36Sopenharmony_ci				&cam_cc_ife_0_clk_src.clkr.hw,
246162306a36Sopenharmony_ci			},
246262306a36Sopenharmony_ci			.num_parents = 1,
246362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
246462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
246562306a36Sopenharmony_ci		},
246662306a36Sopenharmony_ci	},
246762306a36Sopenharmony_ci};
246862306a36Sopenharmony_ci
246962306a36Sopenharmony_cistatic struct clk_branch cam_cc_sfe_0_clk = {
247062306a36Sopenharmony_ci	.halt_reg = 0x1307c,
247162306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
247262306a36Sopenharmony_ci	.clkr = {
247362306a36Sopenharmony_ci		.enable_reg = 0x1307c,
247462306a36Sopenharmony_ci		.enable_mask = BIT(0),
247562306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
247662306a36Sopenharmony_ci			.name = "cam_cc_sfe_0_clk",
247762306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
247862306a36Sopenharmony_ci				&cam_cc_sfe_0_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 cam_cc_sfe_0_fast_ahb_clk = {
248862306a36Sopenharmony_ci	.halt_reg = 0x13090,
248962306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
249062306a36Sopenharmony_ci	.clkr = {
249162306a36Sopenharmony_ci		.enable_reg = 0x13090,
249262306a36Sopenharmony_ci		.enable_mask = BIT(0),
249362306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
249462306a36Sopenharmony_ci			.name = "cam_cc_sfe_0_fast_ahb_clk",
249562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
249662306a36Sopenharmony_ci				&cam_cc_fast_ahb_clk_src.clkr.hw,
249762306a36Sopenharmony_ci			},
249862306a36Sopenharmony_ci			.num_parents = 1,
249962306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
250062306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
250162306a36Sopenharmony_ci		},
250262306a36Sopenharmony_ci	},
250362306a36Sopenharmony_ci};
250462306a36Sopenharmony_ci
250562306a36Sopenharmony_cistatic struct clk_branch cam_cc_sfe_1_clk = {
250662306a36Sopenharmony_ci	.halt_reg = 0x130c4,
250762306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
250862306a36Sopenharmony_ci	.clkr = {
250962306a36Sopenharmony_ci		.enable_reg = 0x130c4,
251062306a36Sopenharmony_ci		.enable_mask = BIT(0),
251162306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
251262306a36Sopenharmony_ci			.name = "cam_cc_sfe_1_clk",
251362306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
251462306a36Sopenharmony_ci				&cam_cc_sfe_1_clk_src.clkr.hw,
251562306a36Sopenharmony_ci			},
251662306a36Sopenharmony_ci			.num_parents = 1,
251762306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
251862306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
251962306a36Sopenharmony_ci		},
252062306a36Sopenharmony_ci	},
252162306a36Sopenharmony_ci};
252262306a36Sopenharmony_ci
252362306a36Sopenharmony_cistatic struct clk_branch cam_cc_sfe_1_fast_ahb_clk = {
252462306a36Sopenharmony_ci	.halt_reg = 0x130d8,
252562306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
252662306a36Sopenharmony_ci	.clkr = {
252762306a36Sopenharmony_ci		.enable_reg = 0x130d8,
252862306a36Sopenharmony_ci		.enable_mask = BIT(0),
252962306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
253062306a36Sopenharmony_ci			.name = "cam_cc_sfe_1_fast_ahb_clk",
253162306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
253262306a36Sopenharmony_ci				&cam_cc_fast_ahb_clk_src.clkr.hw,
253362306a36Sopenharmony_ci			},
253462306a36Sopenharmony_ci			.num_parents = 1,
253562306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
253662306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
253762306a36Sopenharmony_ci		},
253862306a36Sopenharmony_ci	},
253962306a36Sopenharmony_ci};
254062306a36Sopenharmony_ci
254162306a36Sopenharmony_cistatic struct clk_branch cam_cc_sleep_clk = {
254262306a36Sopenharmony_ci	.halt_reg = 0x13228,
254362306a36Sopenharmony_ci	.halt_check = BRANCH_HALT,
254462306a36Sopenharmony_ci	.clkr = {
254562306a36Sopenharmony_ci		.enable_reg = 0x13228,
254662306a36Sopenharmony_ci		.enable_mask = BIT(0),
254762306a36Sopenharmony_ci		.hw.init = &(const struct clk_init_data) {
254862306a36Sopenharmony_ci			.name = "cam_cc_sleep_clk",
254962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]) {
255062306a36Sopenharmony_ci				&cam_cc_sleep_clk_src.clkr.hw,
255162306a36Sopenharmony_ci			},
255262306a36Sopenharmony_ci			.num_parents = 1,
255362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
255462306a36Sopenharmony_ci			.ops = &clk_branch2_ops,
255562306a36Sopenharmony_ci		},
255662306a36Sopenharmony_ci	},
255762306a36Sopenharmony_ci};
255862306a36Sopenharmony_ci
255962306a36Sopenharmony_cistatic struct clk_regmap *cam_cc_sm8450_clocks[] = {
256062306a36Sopenharmony_ci	[CAM_CC_BPS_AHB_CLK] = &cam_cc_bps_ahb_clk.clkr,
256162306a36Sopenharmony_ci	[CAM_CC_BPS_CLK] = &cam_cc_bps_clk.clkr,
256262306a36Sopenharmony_ci	[CAM_CC_BPS_CLK_SRC] = &cam_cc_bps_clk_src.clkr,
256362306a36Sopenharmony_ci	[CAM_CC_BPS_FAST_AHB_CLK] = &cam_cc_bps_fast_ahb_clk.clkr,
256462306a36Sopenharmony_ci	[CAM_CC_CAMNOC_AXI_CLK] = &cam_cc_camnoc_axi_clk.clkr,
256562306a36Sopenharmony_ci	[CAM_CC_CAMNOC_AXI_CLK_SRC] = &cam_cc_camnoc_axi_clk_src.clkr,
256662306a36Sopenharmony_ci	[CAM_CC_CAMNOC_DCD_XO_CLK] = &cam_cc_camnoc_dcd_xo_clk.clkr,
256762306a36Sopenharmony_ci	[CAM_CC_CCI_0_CLK] = &cam_cc_cci_0_clk.clkr,
256862306a36Sopenharmony_ci	[CAM_CC_CCI_0_CLK_SRC] = &cam_cc_cci_0_clk_src.clkr,
256962306a36Sopenharmony_ci	[CAM_CC_CCI_1_CLK] = &cam_cc_cci_1_clk.clkr,
257062306a36Sopenharmony_ci	[CAM_CC_CCI_1_CLK_SRC] = &cam_cc_cci_1_clk_src.clkr,
257162306a36Sopenharmony_ci	[CAM_CC_CORE_AHB_CLK] = &cam_cc_core_ahb_clk.clkr,
257262306a36Sopenharmony_ci	[CAM_CC_CPAS_AHB_CLK] = &cam_cc_cpas_ahb_clk.clkr,
257362306a36Sopenharmony_ci	[CAM_CC_CPAS_BPS_CLK] = &cam_cc_cpas_bps_clk.clkr,
257462306a36Sopenharmony_ci	[CAM_CC_CPAS_FAST_AHB_CLK] = &cam_cc_cpas_fast_ahb_clk.clkr,
257562306a36Sopenharmony_ci	[CAM_CC_CPAS_IFE_0_CLK] = &cam_cc_cpas_ife_0_clk.clkr,
257662306a36Sopenharmony_ci	[CAM_CC_CPAS_IFE_1_CLK] = &cam_cc_cpas_ife_1_clk.clkr,
257762306a36Sopenharmony_ci	[CAM_CC_CPAS_IFE_2_CLK] = &cam_cc_cpas_ife_2_clk.clkr,
257862306a36Sopenharmony_ci	[CAM_CC_CPAS_IFE_LITE_CLK] = &cam_cc_cpas_ife_lite_clk.clkr,
257962306a36Sopenharmony_ci	[CAM_CC_CPAS_IPE_NPS_CLK] = &cam_cc_cpas_ipe_nps_clk.clkr,
258062306a36Sopenharmony_ci	[CAM_CC_CPAS_SBI_CLK] = &cam_cc_cpas_sbi_clk.clkr,
258162306a36Sopenharmony_ci	[CAM_CC_CPAS_SFE_0_CLK] = &cam_cc_cpas_sfe_0_clk.clkr,
258262306a36Sopenharmony_ci	[CAM_CC_CPAS_SFE_1_CLK] = &cam_cc_cpas_sfe_1_clk.clkr,
258362306a36Sopenharmony_ci	[CAM_CC_CPHY_RX_CLK_SRC] = &cam_cc_cphy_rx_clk_src.clkr,
258462306a36Sopenharmony_ci	[CAM_CC_CSI0PHYTIMER_CLK] = &cam_cc_csi0phytimer_clk.clkr,
258562306a36Sopenharmony_ci	[CAM_CC_CSI0PHYTIMER_CLK_SRC] = &cam_cc_csi0phytimer_clk_src.clkr,
258662306a36Sopenharmony_ci	[CAM_CC_CSI1PHYTIMER_CLK] = &cam_cc_csi1phytimer_clk.clkr,
258762306a36Sopenharmony_ci	[CAM_CC_CSI1PHYTIMER_CLK_SRC] = &cam_cc_csi1phytimer_clk_src.clkr,
258862306a36Sopenharmony_ci	[CAM_CC_CSI2PHYTIMER_CLK] = &cam_cc_csi2phytimer_clk.clkr,
258962306a36Sopenharmony_ci	[CAM_CC_CSI2PHYTIMER_CLK_SRC] = &cam_cc_csi2phytimer_clk_src.clkr,
259062306a36Sopenharmony_ci	[CAM_CC_CSI3PHYTIMER_CLK] = &cam_cc_csi3phytimer_clk.clkr,
259162306a36Sopenharmony_ci	[CAM_CC_CSI3PHYTIMER_CLK_SRC] = &cam_cc_csi3phytimer_clk_src.clkr,
259262306a36Sopenharmony_ci	[CAM_CC_CSI4PHYTIMER_CLK] = &cam_cc_csi4phytimer_clk.clkr,
259362306a36Sopenharmony_ci	[CAM_CC_CSI4PHYTIMER_CLK_SRC] = &cam_cc_csi4phytimer_clk_src.clkr,
259462306a36Sopenharmony_ci	[CAM_CC_CSI5PHYTIMER_CLK] = &cam_cc_csi5phytimer_clk.clkr,
259562306a36Sopenharmony_ci	[CAM_CC_CSI5PHYTIMER_CLK_SRC] = &cam_cc_csi5phytimer_clk_src.clkr,
259662306a36Sopenharmony_ci	[CAM_CC_CSID_CLK] = &cam_cc_csid_clk.clkr,
259762306a36Sopenharmony_ci	[CAM_CC_CSID_CLK_SRC] = &cam_cc_csid_clk_src.clkr,
259862306a36Sopenharmony_ci	[CAM_CC_CSID_CSIPHY_RX_CLK] = &cam_cc_csid_csiphy_rx_clk.clkr,
259962306a36Sopenharmony_ci	[CAM_CC_CSIPHY0_CLK] = &cam_cc_csiphy0_clk.clkr,
260062306a36Sopenharmony_ci	[CAM_CC_CSIPHY1_CLK] = &cam_cc_csiphy1_clk.clkr,
260162306a36Sopenharmony_ci	[CAM_CC_CSIPHY2_CLK] = &cam_cc_csiphy2_clk.clkr,
260262306a36Sopenharmony_ci	[CAM_CC_CSIPHY3_CLK] = &cam_cc_csiphy3_clk.clkr,
260362306a36Sopenharmony_ci	[CAM_CC_CSIPHY4_CLK] = &cam_cc_csiphy4_clk.clkr,
260462306a36Sopenharmony_ci	[CAM_CC_CSIPHY5_CLK] = &cam_cc_csiphy5_clk.clkr,
260562306a36Sopenharmony_ci	[CAM_CC_FAST_AHB_CLK_SRC] = &cam_cc_fast_ahb_clk_src.clkr,
260662306a36Sopenharmony_ci	[CAM_CC_GDSC_CLK] = &cam_cc_gdsc_clk.clkr,
260762306a36Sopenharmony_ci	[CAM_CC_ICP_AHB_CLK] = &cam_cc_icp_ahb_clk.clkr,
260862306a36Sopenharmony_ci	[CAM_CC_ICP_CLK] = &cam_cc_icp_clk.clkr,
260962306a36Sopenharmony_ci	[CAM_CC_ICP_CLK_SRC] = &cam_cc_icp_clk_src.clkr,
261062306a36Sopenharmony_ci	[CAM_CC_IFE_0_CLK] = &cam_cc_ife_0_clk.clkr,
261162306a36Sopenharmony_ci	[CAM_CC_IFE_0_CLK_SRC] = &cam_cc_ife_0_clk_src.clkr,
261262306a36Sopenharmony_ci	[CAM_CC_IFE_0_DSP_CLK] = &cam_cc_ife_0_dsp_clk.clkr,
261362306a36Sopenharmony_ci	[CAM_CC_IFE_0_FAST_AHB_CLK] = &cam_cc_ife_0_fast_ahb_clk.clkr,
261462306a36Sopenharmony_ci	[CAM_CC_IFE_1_CLK] = &cam_cc_ife_1_clk.clkr,
261562306a36Sopenharmony_ci	[CAM_CC_IFE_1_CLK_SRC] = &cam_cc_ife_1_clk_src.clkr,
261662306a36Sopenharmony_ci	[CAM_CC_IFE_1_DSP_CLK] = &cam_cc_ife_1_dsp_clk.clkr,
261762306a36Sopenharmony_ci	[CAM_CC_IFE_1_FAST_AHB_CLK] = &cam_cc_ife_1_fast_ahb_clk.clkr,
261862306a36Sopenharmony_ci	[CAM_CC_IFE_2_CLK] = &cam_cc_ife_2_clk.clkr,
261962306a36Sopenharmony_ci	[CAM_CC_IFE_2_CLK_SRC] = &cam_cc_ife_2_clk_src.clkr,
262062306a36Sopenharmony_ci	[CAM_CC_IFE_2_DSP_CLK] = &cam_cc_ife_2_dsp_clk.clkr,
262162306a36Sopenharmony_ci	[CAM_CC_IFE_2_FAST_AHB_CLK] = &cam_cc_ife_2_fast_ahb_clk.clkr,
262262306a36Sopenharmony_ci	[CAM_CC_IFE_LITE_AHB_CLK] = &cam_cc_ife_lite_ahb_clk.clkr,
262362306a36Sopenharmony_ci	[CAM_CC_IFE_LITE_CLK] = &cam_cc_ife_lite_clk.clkr,
262462306a36Sopenharmony_ci	[CAM_CC_IFE_LITE_CLK_SRC] = &cam_cc_ife_lite_clk_src.clkr,
262562306a36Sopenharmony_ci	[CAM_CC_IFE_LITE_CPHY_RX_CLK] = &cam_cc_ife_lite_cphy_rx_clk.clkr,
262662306a36Sopenharmony_ci	[CAM_CC_IFE_LITE_CSID_CLK] = &cam_cc_ife_lite_csid_clk.clkr,
262762306a36Sopenharmony_ci	[CAM_CC_IFE_LITE_CSID_CLK_SRC] = &cam_cc_ife_lite_csid_clk_src.clkr,
262862306a36Sopenharmony_ci	[CAM_CC_IPE_NPS_AHB_CLK] = &cam_cc_ipe_nps_ahb_clk.clkr,
262962306a36Sopenharmony_ci	[CAM_CC_IPE_NPS_CLK] = &cam_cc_ipe_nps_clk.clkr,
263062306a36Sopenharmony_ci	[CAM_CC_IPE_NPS_CLK_SRC] = &cam_cc_ipe_nps_clk_src.clkr,
263162306a36Sopenharmony_ci	[CAM_CC_IPE_NPS_FAST_AHB_CLK] = &cam_cc_ipe_nps_fast_ahb_clk.clkr,
263262306a36Sopenharmony_ci	[CAM_CC_IPE_PPS_CLK] = &cam_cc_ipe_pps_clk.clkr,
263362306a36Sopenharmony_ci	[CAM_CC_IPE_PPS_FAST_AHB_CLK] = &cam_cc_ipe_pps_fast_ahb_clk.clkr,
263462306a36Sopenharmony_ci	[CAM_CC_JPEG_CLK] = &cam_cc_jpeg_clk.clkr,
263562306a36Sopenharmony_ci	[CAM_CC_JPEG_CLK_SRC] = &cam_cc_jpeg_clk_src.clkr,
263662306a36Sopenharmony_ci	[CAM_CC_MCLK0_CLK] = &cam_cc_mclk0_clk.clkr,
263762306a36Sopenharmony_ci	[CAM_CC_MCLK0_CLK_SRC] = &cam_cc_mclk0_clk_src.clkr,
263862306a36Sopenharmony_ci	[CAM_CC_MCLK1_CLK] = &cam_cc_mclk1_clk.clkr,
263962306a36Sopenharmony_ci	[CAM_CC_MCLK1_CLK_SRC] = &cam_cc_mclk1_clk_src.clkr,
264062306a36Sopenharmony_ci	[CAM_CC_MCLK2_CLK] = &cam_cc_mclk2_clk.clkr,
264162306a36Sopenharmony_ci	[CAM_CC_MCLK2_CLK_SRC] = &cam_cc_mclk2_clk_src.clkr,
264262306a36Sopenharmony_ci	[CAM_CC_MCLK3_CLK] = &cam_cc_mclk3_clk.clkr,
264362306a36Sopenharmony_ci	[CAM_CC_MCLK3_CLK_SRC] = &cam_cc_mclk3_clk_src.clkr,
264462306a36Sopenharmony_ci	[CAM_CC_MCLK4_CLK] = &cam_cc_mclk4_clk.clkr,
264562306a36Sopenharmony_ci	[CAM_CC_MCLK4_CLK_SRC] = &cam_cc_mclk4_clk_src.clkr,
264662306a36Sopenharmony_ci	[CAM_CC_MCLK5_CLK] = &cam_cc_mclk5_clk.clkr,
264762306a36Sopenharmony_ci	[CAM_CC_MCLK5_CLK_SRC] = &cam_cc_mclk5_clk_src.clkr,
264862306a36Sopenharmony_ci	[CAM_CC_MCLK6_CLK] = &cam_cc_mclk6_clk.clkr,
264962306a36Sopenharmony_ci	[CAM_CC_MCLK6_CLK_SRC] = &cam_cc_mclk6_clk_src.clkr,
265062306a36Sopenharmony_ci	[CAM_CC_MCLK7_CLK] = &cam_cc_mclk7_clk.clkr,
265162306a36Sopenharmony_ci	[CAM_CC_MCLK7_CLK_SRC] = &cam_cc_mclk7_clk_src.clkr,
265262306a36Sopenharmony_ci	[CAM_CC_PLL0] = &cam_cc_pll0.clkr,
265362306a36Sopenharmony_ci	[CAM_CC_PLL0_OUT_EVEN] = &cam_cc_pll0_out_even.clkr,
265462306a36Sopenharmony_ci	[CAM_CC_PLL0_OUT_ODD] = &cam_cc_pll0_out_odd.clkr,
265562306a36Sopenharmony_ci	[CAM_CC_PLL1] = &cam_cc_pll1.clkr,
265662306a36Sopenharmony_ci	[CAM_CC_PLL1_OUT_EVEN] = &cam_cc_pll1_out_even.clkr,
265762306a36Sopenharmony_ci	[CAM_CC_PLL2] = &cam_cc_pll2.clkr,
265862306a36Sopenharmony_ci	[CAM_CC_PLL3] = &cam_cc_pll3.clkr,
265962306a36Sopenharmony_ci	[CAM_CC_PLL3_OUT_EVEN] = &cam_cc_pll3_out_even.clkr,
266062306a36Sopenharmony_ci	[CAM_CC_PLL4] = &cam_cc_pll4.clkr,
266162306a36Sopenharmony_ci	[CAM_CC_PLL4_OUT_EVEN] = &cam_cc_pll4_out_even.clkr,
266262306a36Sopenharmony_ci	[CAM_CC_PLL5] = &cam_cc_pll5.clkr,
266362306a36Sopenharmony_ci	[CAM_CC_PLL5_OUT_EVEN] = &cam_cc_pll5_out_even.clkr,
266462306a36Sopenharmony_ci	[CAM_CC_PLL6] = &cam_cc_pll6.clkr,
266562306a36Sopenharmony_ci	[CAM_CC_PLL6_OUT_EVEN] = &cam_cc_pll6_out_even.clkr,
266662306a36Sopenharmony_ci	[CAM_CC_PLL7] = &cam_cc_pll7.clkr,
266762306a36Sopenharmony_ci	[CAM_CC_PLL7_OUT_EVEN] = &cam_cc_pll7_out_even.clkr,
266862306a36Sopenharmony_ci	[CAM_CC_PLL8] = &cam_cc_pll8.clkr,
266962306a36Sopenharmony_ci	[CAM_CC_PLL8_OUT_EVEN] = &cam_cc_pll8_out_even.clkr,
267062306a36Sopenharmony_ci	[CAM_CC_QDSS_DEBUG_CLK] = &cam_cc_qdss_debug_clk.clkr,
267162306a36Sopenharmony_ci	[CAM_CC_QDSS_DEBUG_CLK_SRC] = &cam_cc_qdss_debug_clk_src.clkr,
267262306a36Sopenharmony_ci	[CAM_CC_QDSS_DEBUG_XO_CLK] = &cam_cc_qdss_debug_xo_clk.clkr,
267362306a36Sopenharmony_ci	[CAM_CC_SBI_AHB_CLK] = &cam_cc_sbi_ahb_clk.clkr,
267462306a36Sopenharmony_ci	[CAM_CC_SBI_CLK] = &cam_cc_sbi_clk.clkr,
267562306a36Sopenharmony_ci	[CAM_CC_SFE_0_CLK] = &cam_cc_sfe_0_clk.clkr,
267662306a36Sopenharmony_ci	[CAM_CC_SFE_0_CLK_SRC] = &cam_cc_sfe_0_clk_src.clkr,
267762306a36Sopenharmony_ci	[CAM_CC_SFE_0_FAST_AHB_CLK] = &cam_cc_sfe_0_fast_ahb_clk.clkr,
267862306a36Sopenharmony_ci	[CAM_CC_SFE_1_CLK] = &cam_cc_sfe_1_clk.clkr,
267962306a36Sopenharmony_ci	[CAM_CC_SFE_1_CLK_SRC] = &cam_cc_sfe_1_clk_src.clkr,
268062306a36Sopenharmony_ci	[CAM_CC_SFE_1_FAST_AHB_CLK] = &cam_cc_sfe_1_fast_ahb_clk.clkr,
268162306a36Sopenharmony_ci	[CAM_CC_SLEEP_CLK] = &cam_cc_sleep_clk.clkr,
268262306a36Sopenharmony_ci	[CAM_CC_SLEEP_CLK_SRC] = &cam_cc_sleep_clk_src.clkr,
268362306a36Sopenharmony_ci	[CAM_CC_SLOW_AHB_CLK_SRC] = &cam_cc_slow_ahb_clk_src.clkr,
268462306a36Sopenharmony_ci	[CAM_CC_XO_CLK_SRC] = &cam_cc_xo_clk_src.clkr,
268562306a36Sopenharmony_ci};
268662306a36Sopenharmony_ci
268762306a36Sopenharmony_cistatic const struct qcom_reset_map cam_cc_sm8450_resets[] = {
268862306a36Sopenharmony_ci	[CAM_CC_BPS_BCR] = { 0x10000 },
268962306a36Sopenharmony_ci	[CAM_CC_ICP_BCR] = { 0x13104 },
269062306a36Sopenharmony_ci	[CAM_CC_IFE_0_BCR] = { 0x11000 },
269162306a36Sopenharmony_ci	[CAM_CC_IFE_1_BCR] = { 0x12000 },
269262306a36Sopenharmony_ci	[CAM_CC_IFE_2_BCR] = { 0x1204c },
269362306a36Sopenharmony_ci	[CAM_CC_IPE_0_BCR] = { 0x10074 },
269462306a36Sopenharmony_ci	[CAM_CC_QDSS_DEBUG_BCR] = { 0x131b8 },
269562306a36Sopenharmony_ci	[CAM_CC_SBI_BCR] = { 0x100cc },
269662306a36Sopenharmony_ci	[CAM_CC_SFE_0_BCR] = { 0x1304c },
269762306a36Sopenharmony_ci	[CAM_CC_SFE_1_BCR] = { 0x13094 },
269862306a36Sopenharmony_ci};
269962306a36Sopenharmony_ci
270062306a36Sopenharmony_cistatic const struct regmap_config cam_cc_sm8450_regmap_config = {
270162306a36Sopenharmony_ci	.reg_bits = 32,
270262306a36Sopenharmony_ci	.reg_stride = 4,
270362306a36Sopenharmony_ci	.val_bits = 32,
270462306a36Sopenharmony_ci	.max_register = 0x1601c,
270562306a36Sopenharmony_ci	.fast_io = true,
270662306a36Sopenharmony_ci};
270762306a36Sopenharmony_ci
270862306a36Sopenharmony_cistatic struct gdsc titan_top_gdsc;
270962306a36Sopenharmony_ci
271062306a36Sopenharmony_cistatic struct gdsc bps_gdsc = {
271162306a36Sopenharmony_ci	.gdscr = 0x10004,
271262306a36Sopenharmony_ci	.pd = {
271362306a36Sopenharmony_ci		.name = "bps_gdsc",
271462306a36Sopenharmony_ci	},
271562306a36Sopenharmony_ci	.flags = HW_CTRL | POLL_CFG_GDSCR,
271662306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
271762306a36Sopenharmony_ci};
271862306a36Sopenharmony_ci
271962306a36Sopenharmony_cistatic struct gdsc ipe_0_gdsc = {
272062306a36Sopenharmony_ci	.gdscr = 0x10078,
272162306a36Sopenharmony_ci	.pd = {
272262306a36Sopenharmony_ci		.name = "ipe_0_gdsc",
272362306a36Sopenharmony_ci	},
272462306a36Sopenharmony_ci	.flags = HW_CTRL | POLL_CFG_GDSCR,
272562306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
272662306a36Sopenharmony_ci};
272762306a36Sopenharmony_ci
272862306a36Sopenharmony_cistatic struct gdsc sbi_gdsc = {
272962306a36Sopenharmony_ci	.gdscr = 0x100d0,
273062306a36Sopenharmony_ci	.pd = {
273162306a36Sopenharmony_ci		.name = "sbi_gdsc",
273262306a36Sopenharmony_ci	},
273362306a36Sopenharmony_ci	.flags = POLL_CFG_GDSCR,
273462306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
273562306a36Sopenharmony_ci};
273662306a36Sopenharmony_ci
273762306a36Sopenharmony_cistatic struct gdsc ife_0_gdsc = {
273862306a36Sopenharmony_ci	.gdscr = 0x11004,
273962306a36Sopenharmony_ci	.pd = {
274062306a36Sopenharmony_ci		.name = "ife_0_gdsc",
274162306a36Sopenharmony_ci	},
274262306a36Sopenharmony_ci	.flags = POLL_CFG_GDSCR,
274362306a36Sopenharmony_ci	.parent = &titan_top_gdsc.pd,
274462306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
274562306a36Sopenharmony_ci};
274662306a36Sopenharmony_ci
274762306a36Sopenharmony_cistatic struct gdsc ife_1_gdsc = {
274862306a36Sopenharmony_ci	.gdscr = 0x12004,
274962306a36Sopenharmony_ci	.pd = {
275062306a36Sopenharmony_ci		.name = "ife_1_gdsc",
275162306a36Sopenharmony_ci	},
275262306a36Sopenharmony_ci	.flags = POLL_CFG_GDSCR,
275362306a36Sopenharmony_ci	.parent = &titan_top_gdsc.pd,
275462306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
275562306a36Sopenharmony_ci};
275662306a36Sopenharmony_ci
275762306a36Sopenharmony_cistatic struct gdsc ife_2_gdsc = {
275862306a36Sopenharmony_ci	.gdscr = 0x12050,
275962306a36Sopenharmony_ci	.pd = {
276062306a36Sopenharmony_ci		.name = "ife_2_gdsc",
276162306a36Sopenharmony_ci	},
276262306a36Sopenharmony_ci	.flags = POLL_CFG_GDSCR,
276362306a36Sopenharmony_ci	.parent = &titan_top_gdsc.pd,
276462306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
276562306a36Sopenharmony_ci};
276662306a36Sopenharmony_ci
276762306a36Sopenharmony_cistatic struct gdsc sfe_0_gdsc = {
276862306a36Sopenharmony_ci	.gdscr = 0x13050,
276962306a36Sopenharmony_ci	.pd = {
277062306a36Sopenharmony_ci		.name = "sfe_0_gdsc",
277162306a36Sopenharmony_ci	},
277262306a36Sopenharmony_ci	.flags = POLL_CFG_GDSCR,
277362306a36Sopenharmony_ci	.parent = &titan_top_gdsc.pd,
277462306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
277562306a36Sopenharmony_ci};
277662306a36Sopenharmony_ci
277762306a36Sopenharmony_cistatic struct gdsc sfe_1_gdsc = {
277862306a36Sopenharmony_ci	.gdscr = 0x13098,
277962306a36Sopenharmony_ci	.pd = {
278062306a36Sopenharmony_ci		.name = "sfe_1_gdsc",
278162306a36Sopenharmony_ci	},
278262306a36Sopenharmony_ci	.flags = POLL_CFG_GDSCR,
278362306a36Sopenharmony_ci	.parent = &titan_top_gdsc.pd,
278462306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
278562306a36Sopenharmony_ci};
278662306a36Sopenharmony_ci
278762306a36Sopenharmony_cistatic struct gdsc titan_top_gdsc = {
278862306a36Sopenharmony_ci	.gdscr = 0x131dc,
278962306a36Sopenharmony_ci	.pd = {
279062306a36Sopenharmony_ci		.name = "titan_top_gdsc",
279162306a36Sopenharmony_ci	},
279262306a36Sopenharmony_ci	.flags = POLL_CFG_GDSCR,
279362306a36Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
279462306a36Sopenharmony_ci};
279562306a36Sopenharmony_ci
279662306a36Sopenharmony_cistatic struct gdsc *cam_cc_sm8450_gdscs[] = {
279762306a36Sopenharmony_ci	[BPS_GDSC] = &bps_gdsc,
279862306a36Sopenharmony_ci	[IPE_0_GDSC] = &ipe_0_gdsc,
279962306a36Sopenharmony_ci	[SBI_GDSC] = &sbi_gdsc,
280062306a36Sopenharmony_ci	[IFE_0_GDSC] = &ife_0_gdsc,
280162306a36Sopenharmony_ci	[IFE_1_GDSC] = &ife_1_gdsc,
280262306a36Sopenharmony_ci	[IFE_2_GDSC] = &ife_2_gdsc,
280362306a36Sopenharmony_ci	[SFE_0_GDSC] = &sfe_0_gdsc,
280462306a36Sopenharmony_ci	[SFE_1_GDSC] = &sfe_1_gdsc,
280562306a36Sopenharmony_ci	[TITAN_TOP_GDSC] = &titan_top_gdsc,
280662306a36Sopenharmony_ci};
280762306a36Sopenharmony_ci
280862306a36Sopenharmony_cistatic const struct qcom_cc_desc cam_cc_sm8450_desc = {
280962306a36Sopenharmony_ci	.config = &cam_cc_sm8450_regmap_config,
281062306a36Sopenharmony_ci	.clks = cam_cc_sm8450_clocks,
281162306a36Sopenharmony_ci	.num_clks = ARRAY_SIZE(cam_cc_sm8450_clocks),
281262306a36Sopenharmony_ci	.resets = cam_cc_sm8450_resets,
281362306a36Sopenharmony_ci	.num_resets = ARRAY_SIZE(cam_cc_sm8450_resets),
281462306a36Sopenharmony_ci	.gdscs = cam_cc_sm8450_gdscs,
281562306a36Sopenharmony_ci	.num_gdscs = ARRAY_SIZE(cam_cc_sm8450_gdscs),
281662306a36Sopenharmony_ci};
281762306a36Sopenharmony_ci
281862306a36Sopenharmony_cistatic const struct of_device_id cam_cc_sm8450_match_table[] = {
281962306a36Sopenharmony_ci	{ .compatible = "qcom,sm8450-camcc" },
282062306a36Sopenharmony_ci	{ }
282162306a36Sopenharmony_ci};
282262306a36Sopenharmony_ciMODULE_DEVICE_TABLE(of, cam_cc_sm8450_match_table);
282362306a36Sopenharmony_ci
282462306a36Sopenharmony_cistatic int cam_cc_sm8450_probe(struct platform_device *pdev)
282562306a36Sopenharmony_ci{
282662306a36Sopenharmony_ci	struct regmap *regmap;
282762306a36Sopenharmony_ci
282862306a36Sopenharmony_ci	regmap = qcom_cc_map(pdev, &cam_cc_sm8450_desc);
282962306a36Sopenharmony_ci	if (IS_ERR(regmap))
283062306a36Sopenharmony_ci		return PTR_ERR(regmap);
283162306a36Sopenharmony_ci
283262306a36Sopenharmony_ci	clk_lucid_evo_pll_configure(&cam_cc_pll0, regmap, &cam_cc_pll0_config);
283362306a36Sopenharmony_ci	clk_lucid_evo_pll_configure(&cam_cc_pll1, regmap, &cam_cc_pll1_config);
283462306a36Sopenharmony_ci	clk_rivian_evo_pll_configure(&cam_cc_pll2, regmap, &cam_cc_pll2_config);
283562306a36Sopenharmony_ci	clk_lucid_evo_pll_configure(&cam_cc_pll3, regmap, &cam_cc_pll3_config);
283662306a36Sopenharmony_ci	clk_lucid_evo_pll_configure(&cam_cc_pll4, regmap, &cam_cc_pll4_config);
283762306a36Sopenharmony_ci	clk_lucid_evo_pll_configure(&cam_cc_pll5, regmap, &cam_cc_pll5_config);
283862306a36Sopenharmony_ci	clk_lucid_evo_pll_configure(&cam_cc_pll6, regmap, &cam_cc_pll6_config);
283962306a36Sopenharmony_ci	clk_lucid_evo_pll_configure(&cam_cc_pll7, regmap, &cam_cc_pll7_config);
284062306a36Sopenharmony_ci	clk_lucid_evo_pll_configure(&cam_cc_pll8, regmap, &cam_cc_pll8_config);
284162306a36Sopenharmony_ci
284262306a36Sopenharmony_ci	return qcom_cc_really_probe(pdev, &cam_cc_sm8450_desc, regmap);
284362306a36Sopenharmony_ci}
284462306a36Sopenharmony_ci
284562306a36Sopenharmony_cistatic struct platform_driver cam_cc_sm8450_driver = {
284662306a36Sopenharmony_ci	.probe = cam_cc_sm8450_probe,
284762306a36Sopenharmony_ci	.driver = {
284862306a36Sopenharmony_ci		.name = "camcc-sm8450",
284962306a36Sopenharmony_ci		.of_match_table = cam_cc_sm8450_match_table,
285062306a36Sopenharmony_ci	},
285162306a36Sopenharmony_ci};
285262306a36Sopenharmony_ci
285362306a36Sopenharmony_cimodule_platform_driver(cam_cc_sm8450_driver);
285462306a36Sopenharmony_ci
285562306a36Sopenharmony_ciMODULE_DESCRIPTION("QCOM CAMCC SM8450 Driver");
285662306a36Sopenharmony_ciMODULE_LICENSE("GPL");
2857