18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0
28c2ecf20Sopenharmony_ci/*
38c2ecf20Sopenharmony_ci * Copyright (c) 2016-2017, The Linux Foundation. All rights reserved.
48c2ecf20Sopenharmony_ci * Copyright (c) 2018, Craig Tatlor.
58c2ecf20Sopenharmony_ci */
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_ci#include <linux/kernel.h>
88c2ecf20Sopenharmony_ci#include <linux/bitops.h>
98c2ecf20Sopenharmony_ci#include <linux/err.h>
108c2ecf20Sopenharmony_ci#include <linux/platform_device.h>
118c2ecf20Sopenharmony_ci#include <linux/module.h>
128c2ecf20Sopenharmony_ci#include <linux/of.h>
138c2ecf20Sopenharmony_ci#include <linux/of_device.h>
148c2ecf20Sopenharmony_ci#include <linux/clk-provider.h>
158c2ecf20Sopenharmony_ci#include <linux/regmap.h>
168c2ecf20Sopenharmony_ci#include <linux/reset-controller.h>
178c2ecf20Sopenharmony_ci
188c2ecf20Sopenharmony_ci#include <dt-bindings/clock/qcom,gcc-sdm660.h>
198c2ecf20Sopenharmony_ci
208c2ecf20Sopenharmony_ci#include "common.h"
218c2ecf20Sopenharmony_ci#include "clk-regmap.h"
228c2ecf20Sopenharmony_ci#include "clk-alpha-pll.h"
238c2ecf20Sopenharmony_ci#include "clk-rcg.h"
248c2ecf20Sopenharmony_ci#include "clk-branch.h"
258c2ecf20Sopenharmony_ci#include "reset.h"
268c2ecf20Sopenharmony_ci#include "gdsc.h"
278c2ecf20Sopenharmony_ci
288c2ecf20Sopenharmony_ci#define F(f, s, h, m, n) { (f), (s), (2 * (h) - 1), (m), (n) }
298c2ecf20Sopenharmony_ci
308c2ecf20Sopenharmony_cienum {
318c2ecf20Sopenharmony_ci	P_XO,
328c2ecf20Sopenharmony_ci	P_SLEEP_CLK,
338c2ecf20Sopenharmony_ci	P_GPLL0,
348c2ecf20Sopenharmony_ci	P_GPLL1,
358c2ecf20Sopenharmony_ci	P_GPLL4,
368c2ecf20Sopenharmony_ci	P_GPLL0_EARLY_DIV,
378c2ecf20Sopenharmony_ci	P_GPLL1_EARLY_DIV,
388c2ecf20Sopenharmony_ci};
398c2ecf20Sopenharmony_ci
408c2ecf20Sopenharmony_cistatic const struct parent_map gcc_parent_map_xo_gpll0_gpll0_early_div[] = {
418c2ecf20Sopenharmony_ci	{ P_XO, 0 },
428c2ecf20Sopenharmony_ci	{ P_GPLL0, 1 },
438c2ecf20Sopenharmony_ci	{ P_GPLL0_EARLY_DIV, 6 },
448c2ecf20Sopenharmony_ci};
458c2ecf20Sopenharmony_ci
468c2ecf20Sopenharmony_cistatic const char * const gcc_parent_names_xo_gpll0_gpll0_early_div[] = {
478c2ecf20Sopenharmony_ci	"xo",
488c2ecf20Sopenharmony_ci	"gpll0",
498c2ecf20Sopenharmony_ci	"gpll0_early_div",
508c2ecf20Sopenharmony_ci};
518c2ecf20Sopenharmony_ci
528c2ecf20Sopenharmony_cistatic const struct parent_map gcc_parent_map_xo_gpll0[] = {
538c2ecf20Sopenharmony_ci	{ P_XO, 0 },
548c2ecf20Sopenharmony_ci	{ P_GPLL0, 1 },
558c2ecf20Sopenharmony_ci};
568c2ecf20Sopenharmony_ci
578c2ecf20Sopenharmony_cistatic const char * const gcc_parent_names_xo_gpll0[] = {
588c2ecf20Sopenharmony_ci	"xo",
598c2ecf20Sopenharmony_ci	"gpll0",
608c2ecf20Sopenharmony_ci};
618c2ecf20Sopenharmony_ci
628c2ecf20Sopenharmony_cistatic const struct parent_map gcc_parent_map_xo_gpll0_sleep_clk_gpll0_early_div[] = {
638c2ecf20Sopenharmony_ci	{ P_XO, 0 },
648c2ecf20Sopenharmony_ci	{ P_GPLL0, 1 },
658c2ecf20Sopenharmony_ci	{ P_SLEEP_CLK, 5 },
668c2ecf20Sopenharmony_ci	{ P_GPLL0_EARLY_DIV, 6 },
678c2ecf20Sopenharmony_ci};
688c2ecf20Sopenharmony_ci
698c2ecf20Sopenharmony_cistatic const char * const gcc_parent_names_xo_gpll0_sleep_clk_gpll0_early_div[] = {
708c2ecf20Sopenharmony_ci	"xo",
718c2ecf20Sopenharmony_ci	"gpll0",
728c2ecf20Sopenharmony_ci	"sleep_clk",
738c2ecf20Sopenharmony_ci	"gpll0_early_div",
748c2ecf20Sopenharmony_ci};
758c2ecf20Sopenharmony_ci
768c2ecf20Sopenharmony_cistatic const struct parent_map gcc_parent_map_xo_sleep_clk[] = {
778c2ecf20Sopenharmony_ci	{ P_XO, 0 },
788c2ecf20Sopenharmony_ci	{ P_SLEEP_CLK, 5 },
798c2ecf20Sopenharmony_ci};
808c2ecf20Sopenharmony_ci
818c2ecf20Sopenharmony_cistatic const char * const gcc_parent_names_xo_sleep_clk[] = {
828c2ecf20Sopenharmony_ci	"xo",
838c2ecf20Sopenharmony_ci	"sleep_clk",
848c2ecf20Sopenharmony_ci};
858c2ecf20Sopenharmony_ci
868c2ecf20Sopenharmony_cistatic const struct parent_map gcc_parent_map_xo_gpll4[] = {
878c2ecf20Sopenharmony_ci	{ P_XO, 0 },
888c2ecf20Sopenharmony_ci	{ P_GPLL4, 5 },
898c2ecf20Sopenharmony_ci};
908c2ecf20Sopenharmony_ci
918c2ecf20Sopenharmony_cistatic const char * const gcc_parent_names_xo_gpll4[] = {
928c2ecf20Sopenharmony_ci	"xo",
938c2ecf20Sopenharmony_ci	"gpll4",
948c2ecf20Sopenharmony_ci};
958c2ecf20Sopenharmony_ci
968c2ecf20Sopenharmony_cistatic const struct parent_map gcc_parent_map_xo_gpll0_gpll0_early_div_gpll1_gpll4_gpll1_early_div[] = {
978c2ecf20Sopenharmony_ci	{ P_XO, 0 },
988c2ecf20Sopenharmony_ci	{ P_GPLL0, 1 },
998c2ecf20Sopenharmony_ci	{ P_GPLL0_EARLY_DIV, 3 },
1008c2ecf20Sopenharmony_ci	{ P_GPLL1, 4 },
1018c2ecf20Sopenharmony_ci	{ P_GPLL4, 5 },
1028c2ecf20Sopenharmony_ci	{ P_GPLL1_EARLY_DIV, 6 },
1038c2ecf20Sopenharmony_ci};
1048c2ecf20Sopenharmony_ci
1058c2ecf20Sopenharmony_cistatic const char * const gcc_parent_names_xo_gpll0_gpll0_early_div_gpll1_gpll4_gpll1_early_div[] = {
1068c2ecf20Sopenharmony_ci	"xo",
1078c2ecf20Sopenharmony_ci	"gpll0",
1088c2ecf20Sopenharmony_ci	"gpll0_early_div",
1098c2ecf20Sopenharmony_ci	"gpll1",
1108c2ecf20Sopenharmony_ci	"gpll4",
1118c2ecf20Sopenharmony_ci	"gpll1_early_div",
1128c2ecf20Sopenharmony_ci};
1138c2ecf20Sopenharmony_ci
1148c2ecf20Sopenharmony_cistatic const struct parent_map gcc_parent_map_xo_gpll0_gpll4_gpll0_early_div[] = {
1158c2ecf20Sopenharmony_ci	{ P_XO, 0 },
1168c2ecf20Sopenharmony_ci	{ P_GPLL0, 1 },
1178c2ecf20Sopenharmony_ci	{ P_GPLL4, 5 },
1188c2ecf20Sopenharmony_ci	{ P_GPLL0_EARLY_DIV, 6 },
1198c2ecf20Sopenharmony_ci};
1208c2ecf20Sopenharmony_ci
1218c2ecf20Sopenharmony_cistatic const char * const gcc_parent_names_xo_gpll0_gpll4_gpll0_early_div[] = {
1228c2ecf20Sopenharmony_ci	"xo",
1238c2ecf20Sopenharmony_ci	"gpll0",
1248c2ecf20Sopenharmony_ci	"gpll4",
1258c2ecf20Sopenharmony_ci	"gpll0_early_div",
1268c2ecf20Sopenharmony_ci};
1278c2ecf20Sopenharmony_ci
1288c2ecf20Sopenharmony_cistatic const struct parent_map gcc_parent_map_xo_gpll0_gpll0_early_div_gpll4[] = {
1298c2ecf20Sopenharmony_ci	{ P_XO, 0 },
1308c2ecf20Sopenharmony_ci	{ P_GPLL0, 1 },
1318c2ecf20Sopenharmony_ci	{ P_GPLL0_EARLY_DIV, 2 },
1328c2ecf20Sopenharmony_ci	{ P_GPLL4, 5 },
1338c2ecf20Sopenharmony_ci};
1348c2ecf20Sopenharmony_ci
1358c2ecf20Sopenharmony_cistatic const char * const gcc_parent_names_xo_gpll0_gpll0_early_div_gpll4[] = {
1368c2ecf20Sopenharmony_ci	"xo",
1378c2ecf20Sopenharmony_ci	"gpll0",
1388c2ecf20Sopenharmony_ci	"gpll0_early_div",
1398c2ecf20Sopenharmony_ci	"gpll4",
1408c2ecf20Sopenharmony_ci};
1418c2ecf20Sopenharmony_ci
1428c2ecf20Sopenharmony_cistatic struct clk_fixed_factor xo = {
1438c2ecf20Sopenharmony_ci	.mult = 1,
1448c2ecf20Sopenharmony_ci	.div = 1,
1458c2ecf20Sopenharmony_ci	.hw.init = &(struct clk_init_data){
1468c2ecf20Sopenharmony_ci		.name = "xo",
1478c2ecf20Sopenharmony_ci		.parent_names = (const char *[]){ "xo_board" },
1488c2ecf20Sopenharmony_ci		.num_parents = 1,
1498c2ecf20Sopenharmony_ci		.ops = &clk_fixed_factor_ops,
1508c2ecf20Sopenharmony_ci	},
1518c2ecf20Sopenharmony_ci};
1528c2ecf20Sopenharmony_ci
1538c2ecf20Sopenharmony_cistatic struct clk_alpha_pll gpll0_early = {
1548c2ecf20Sopenharmony_ci	.offset = 0x0,
1558c2ecf20Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
1568c2ecf20Sopenharmony_ci	.clkr = {
1578c2ecf20Sopenharmony_ci		.enable_reg = 0x52000,
1588c2ecf20Sopenharmony_ci		.enable_mask = BIT(0),
1598c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
1608c2ecf20Sopenharmony_ci			.name = "gpll0_early",
1618c2ecf20Sopenharmony_ci			.parent_names = (const char *[]){ "xo" },
1628c2ecf20Sopenharmony_ci			.num_parents = 1,
1638c2ecf20Sopenharmony_ci			.ops = &clk_alpha_pll_ops,
1648c2ecf20Sopenharmony_ci		},
1658c2ecf20Sopenharmony_ci	},
1668c2ecf20Sopenharmony_ci};
1678c2ecf20Sopenharmony_ci
1688c2ecf20Sopenharmony_cistatic struct clk_fixed_factor gpll0_early_div = {
1698c2ecf20Sopenharmony_ci	.mult = 1,
1708c2ecf20Sopenharmony_ci	.div = 2,
1718c2ecf20Sopenharmony_ci	.hw.init = &(struct clk_init_data){
1728c2ecf20Sopenharmony_ci		.name = "gpll0_early_div",
1738c2ecf20Sopenharmony_ci		.parent_names = (const char *[]){ "gpll0_early" },
1748c2ecf20Sopenharmony_ci		.num_parents = 1,
1758c2ecf20Sopenharmony_ci		.ops = &clk_fixed_factor_ops,
1768c2ecf20Sopenharmony_ci	},
1778c2ecf20Sopenharmony_ci};
1788c2ecf20Sopenharmony_ci
1798c2ecf20Sopenharmony_cistatic struct clk_alpha_pll_postdiv gpll0 = {
1808c2ecf20Sopenharmony_ci	.offset = 0x00000,
1818c2ecf20Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
1828c2ecf20Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
1838c2ecf20Sopenharmony_ci		.name = "gpll0",
1848c2ecf20Sopenharmony_ci		.parent_names = (const char *[]){ "gpll0_early" },
1858c2ecf20Sopenharmony_ci		.num_parents = 1,
1868c2ecf20Sopenharmony_ci		.ops = &clk_alpha_pll_postdiv_ops,
1878c2ecf20Sopenharmony_ci	},
1888c2ecf20Sopenharmony_ci};
1898c2ecf20Sopenharmony_ci
1908c2ecf20Sopenharmony_cistatic struct clk_alpha_pll gpll1_early = {
1918c2ecf20Sopenharmony_ci	.offset = 0x1000,
1928c2ecf20Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
1938c2ecf20Sopenharmony_ci	.clkr = {
1948c2ecf20Sopenharmony_ci		.enable_reg = 0x52000,
1958c2ecf20Sopenharmony_ci		.enable_mask = BIT(1),
1968c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
1978c2ecf20Sopenharmony_ci			.name = "gpll1_early",
1988c2ecf20Sopenharmony_ci			.parent_names = (const char *[]){ "xo" },
1998c2ecf20Sopenharmony_ci			.num_parents = 1,
2008c2ecf20Sopenharmony_ci			.ops = &clk_alpha_pll_ops,
2018c2ecf20Sopenharmony_ci		},
2028c2ecf20Sopenharmony_ci	},
2038c2ecf20Sopenharmony_ci};
2048c2ecf20Sopenharmony_ci
2058c2ecf20Sopenharmony_cistatic struct clk_fixed_factor gpll1_early_div = {
2068c2ecf20Sopenharmony_ci	.mult = 1,
2078c2ecf20Sopenharmony_ci	.div = 2,
2088c2ecf20Sopenharmony_ci	.hw.init = &(struct clk_init_data){
2098c2ecf20Sopenharmony_ci		.name = "gpll1_early_div",
2108c2ecf20Sopenharmony_ci		.parent_names = (const char *[]){ "gpll1_early" },
2118c2ecf20Sopenharmony_ci		.num_parents = 1,
2128c2ecf20Sopenharmony_ci		.ops = &clk_fixed_factor_ops,
2138c2ecf20Sopenharmony_ci	},
2148c2ecf20Sopenharmony_ci};
2158c2ecf20Sopenharmony_ci
2168c2ecf20Sopenharmony_cistatic struct clk_alpha_pll_postdiv gpll1 = {
2178c2ecf20Sopenharmony_ci	.offset = 0x1000,
2188c2ecf20Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
2198c2ecf20Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
2208c2ecf20Sopenharmony_ci		.name = "gpll1",
2218c2ecf20Sopenharmony_ci		.parent_names = (const char *[]){ "gpll1_early" },
2228c2ecf20Sopenharmony_ci		.num_parents = 1,
2238c2ecf20Sopenharmony_ci		.ops = &clk_alpha_pll_postdiv_ops,
2248c2ecf20Sopenharmony_ci	},
2258c2ecf20Sopenharmony_ci};
2268c2ecf20Sopenharmony_ci
2278c2ecf20Sopenharmony_cistatic struct clk_alpha_pll gpll4_early = {
2288c2ecf20Sopenharmony_ci	.offset = 0x77000,
2298c2ecf20Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
2308c2ecf20Sopenharmony_ci	.clkr = {
2318c2ecf20Sopenharmony_ci		.enable_reg = 0x52000,
2328c2ecf20Sopenharmony_ci		.enable_mask = BIT(4),
2338c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
2348c2ecf20Sopenharmony_ci			.name = "gpll4_early",
2358c2ecf20Sopenharmony_ci			.parent_names = (const char *[]){ "xo" },
2368c2ecf20Sopenharmony_ci			.num_parents = 1,
2378c2ecf20Sopenharmony_ci			.ops = &clk_alpha_pll_ops,
2388c2ecf20Sopenharmony_ci		},
2398c2ecf20Sopenharmony_ci	},
2408c2ecf20Sopenharmony_ci};
2418c2ecf20Sopenharmony_ci
2428c2ecf20Sopenharmony_cistatic struct clk_alpha_pll_postdiv gpll4 = {
2438c2ecf20Sopenharmony_ci	.offset = 0x77000,
2448c2ecf20Sopenharmony_ci	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT],
2458c2ecf20Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data)
2468c2ecf20Sopenharmony_ci	{
2478c2ecf20Sopenharmony_ci		.name = "gpll4",
2488c2ecf20Sopenharmony_ci		.parent_names = (const char *[]) { "gpll4_early" },
2498c2ecf20Sopenharmony_ci		.num_parents = 1,
2508c2ecf20Sopenharmony_ci		.ops = &clk_alpha_pll_postdiv_ops,
2518c2ecf20Sopenharmony_ci	},
2528c2ecf20Sopenharmony_ci};
2538c2ecf20Sopenharmony_ci
2548c2ecf20Sopenharmony_cistatic const struct freq_tbl ftbl_blsp1_qup1_i2c_apps_clk_src[] = {
2558c2ecf20Sopenharmony_ci	F(19200000, P_XO, 1, 0, 0),
2568c2ecf20Sopenharmony_ci	F(50000000, P_GPLL0, 12, 0, 0),
2578c2ecf20Sopenharmony_ci	{ }
2588c2ecf20Sopenharmony_ci};
2598c2ecf20Sopenharmony_ci
2608c2ecf20Sopenharmony_cistatic struct clk_rcg2 blsp1_qup1_i2c_apps_clk_src = {
2618c2ecf20Sopenharmony_ci	.cmd_rcgr = 0x19020,
2628c2ecf20Sopenharmony_ci	.mnd_width = 0,
2638c2ecf20Sopenharmony_ci	.hid_width = 5,
2648c2ecf20Sopenharmony_ci	.parent_map = gcc_parent_map_xo_gpll0_gpll0_early_div,
2658c2ecf20Sopenharmony_ci	.freq_tbl = ftbl_blsp1_qup1_i2c_apps_clk_src,
2668c2ecf20Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
2678c2ecf20Sopenharmony_ci		.name = "blsp1_qup1_i2c_apps_clk_src",
2688c2ecf20Sopenharmony_ci		.parent_names = gcc_parent_names_xo_gpll0_gpll0_early_div,
2698c2ecf20Sopenharmony_ci		.num_parents = 3,
2708c2ecf20Sopenharmony_ci		.ops = &clk_rcg2_ops,
2718c2ecf20Sopenharmony_ci	},
2728c2ecf20Sopenharmony_ci};
2738c2ecf20Sopenharmony_ci
2748c2ecf20Sopenharmony_cistatic const struct freq_tbl ftbl_blsp1_qup1_spi_apps_clk_src[] = {
2758c2ecf20Sopenharmony_ci	F(960000, P_XO, 10, 1, 2),
2768c2ecf20Sopenharmony_ci	F(4800000, P_XO, 4, 0, 0),
2778c2ecf20Sopenharmony_ci	F(9600000, P_XO, 2, 0, 0),
2788c2ecf20Sopenharmony_ci	F(15000000, P_GPLL0, 10, 1, 4),
2798c2ecf20Sopenharmony_ci	F(19200000, P_XO, 1, 0, 0),
2808c2ecf20Sopenharmony_ci	F(25000000, P_GPLL0, 12, 1, 2),
2818c2ecf20Sopenharmony_ci	F(50000000, P_GPLL0, 12, 0, 0),
2828c2ecf20Sopenharmony_ci	{ }
2838c2ecf20Sopenharmony_ci};
2848c2ecf20Sopenharmony_ci
2858c2ecf20Sopenharmony_cistatic struct clk_rcg2 blsp1_qup1_spi_apps_clk_src = {
2868c2ecf20Sopenharmony_ci	.cmd_rcgr = 0x1900c,
2878c2ecf20Sopenharmony_ci	.mnd_width = 8,
2888c2ecf20Sopenharmony_ci	.hid_width = 5,
2898c2ecf20Sopenharmony_ci	.parent_map = gcc_parent_map_xo_gpll0_gpll0_early_div,
2908c2ecf20Sopenharmony_ci	.freq_tbl = ftbl_blsp1_qup1_spi_apps_clk_src,
2918c2ecf20Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
2928c2ecf20Sopenharmony_ci		.name = "blsp1_qup1_spi_apps_clk_src",
2938c2ecf20Sopenharmony_ci		.parent_names = gcc_parent_names_xo_gpll0_gpll0_early_div,
2948c2ecf20Sopenharmony_ci		.num_parents = 3,
2958c2ecf20Sopenharmony_ci		.ops = &clk_rcg2_ops,
2968c2ecf20Sopenharmony_ci	},
2978c2ecf20Sopenharmony_ci};
2988c2ecf20Sopenharmony_ci
2998c2ecf20Sopenharmony_cistatic struct clk_rcg2 blsp1_qup2_i2c_apps_clk_src = {
3008c2ecf20Sopenharmony_ci	.cmd_rcgr = 0x1b020,
3018c2ecf20Sopenharmony_ci	.mnd_width = 0,
3028c2ecf20Sopenharmony_ci	.hid_width = 5,
3038c2ecf20Sopenharmony_ci	.parent_map = gcc_parent_map_xo_gpll0_gpll0_early_div,
3048c2ecf20Sopenharmony_ci	.freq_tbl = ftbl_blsp1_qup1_i2c_apps_clk_src,
3058c2ecf20Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
3068c2ecf20Sopenharmony_ci		.name = "blsp1_qup2_i2c_apps_clk_src",
3078c2ecf20Sopenharmony_ci		.parent_names = gcc_parent_names_xo_gpll0_gpll0_early_div,
3088c2ecf20Sopenharmony_ci		.num_parents = 3,
3098c2ecf20Sopenharmony_ci		.ops = &clk_rcg2_ops,
3108c2ecf20Sopenharmony_ci	},
3118c2ecf20Sopenharmony_ci};
3128c2ecf20Sopenharmony_ci
3138c2ecf20Sopenharmony_cistatic struct clk_rcg2 blsp1_qup2_spi_apps_clk_src = {
3148c2ecf20Sopenharmony_ci	.cmd_rcgr = 0x1b00c,
3158c2ecf20Sopenharmony_ci	.mnd_width = 8,
3168c2ecf20Sopenharmony_ci	.hid_width = 5,
3178c2ecf20Sopenharmony_ci	.parent_map = gcc_parent_map_xo_gpll0_gpll0_early_div,
3188c2ecf20Sopenharmony_ci	.freq_tbl = ftbl_blsp1_qup1_spi_apps_clk_src,
3198c2ecf20Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
3208c2ecf20Sopenharmony_ci		.name = "blsp1_qup2_spi_apps_clk_src",
3218c2ecf20Sopenharmony_ci		.parent_names = gcc_parent_names_xo_gpll0_gpll0_early_div,
3228c2ecf20Sopenharmony_ci		.num_parents = 3,
3238c2ecf20Sopenharmony_ci		.ops = &clk_rcg2_ops,
3248c2ecf20Sopenharmony_ci	},
3258c2ecf20Sopenharmony_ci};
3268c2ecf20Sopenharmony_ci
3278c2ecf20Sopenharmony_cistatic struct clk_rcg2 blsp1_qup3_i2c_apps_clk_src = {
3288c2ecf20Sopenharmony_ci	.cmd_rcgr = 0x1d020,
3298c2ecf20Sopenharmony_ci	.mnd_width = 0,
3308c2ecf20Sopenharmony_ci	.hid_width = 5,
3318c2ecf20Sopenharmony_ci	.parent_map = gcc_parent_map_xo_gpll0_gpll0_early_div,
3328c2ecf20Sopenharmony_ci	.freq_tbl = ftbl_blsp1_qup1_i2c_apps_clk_src,
3338c2ecf20Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
3348c2ecf20Sopenharmony_ci		.name = "blsp1_qup3_i2c_apps_clk_src",
3358c2ecf20Sopenharmony_ci		.parent_names = gcc_parent_names_xo_gpll0_gpll0_early_div,
3368c2ecf20Sopenharmony_ci		.num_parents = 3,
3378c2ecf20Sopenharmony_ci		.ops = &clk_rcg2_ops,
3388c2ecf20Sopenharmony_ci	},
3398c2ecf20Sopenharmony_ci};
3408c2ecf20Sopenharmony_ci
3418c2ecf20Sopenharmony_cistatic struct clk_rcg2 blsp1_qup3_spi_apps_clk_src = {
3428c2ecf20Sopenharmony_ci	.cmd_rcgr = 0x1d00c,
3438c2ecf20Sopenharmony_ci	.mnd_width = 8,
3448c2ecf20Sopenharmony_ci	.hid_width = 5,
3458c2ecf20Sopenharmony_ci	.parent_map = gcc_parent_map_xo_gpll0_gpll0_early_div,
3468c2ecf20Sopenharmony_ci	.freq_tbl = ftbl_blsp1_qup1_spi_apps_clk_src,
3478c2ecf20Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
3488c2ecf20Sopenharmony_ci		.name = "blsp1_qup3_spi_apps_clk_src",
3498c2ecf20Sopenharmony_ci		.parent_names = gcc_parent_names_xo_gpll0_gpll0_early_div,
3508c2ecf20Sopenharmony_ci		.num_parents = 3,
3518c2ecf20Sopenharmony_ci		.ops = &clk_rcg2_ops,
3528c2ecf20Sopenharmony_ci	},
3538c2ecf20Sopenharmony_ci};
3548c2ecf20Sopenharmony_ci
3558c2ecf20Sopenharmony_cistatic struct clk_rcg2 blsp1_qup4_i2c_apps_clk_src = {
3568c2ecf20Sopenharmony_ci	.cmd_rcgr = 0x1f020,
3578c2ecf20Sopenharmony_ci	.mnd_width = 0,
3588c2ecf20Sopenharmony_ci	.hid_width = 5,
3598c2ecf20Sopenharmony_ci	.parent_map = gcc_parent_map_xo_gpll0_gpll0_early_div,
3608c2ecf20Sopenharmony_ci	.freq_tbl = ftbl_blsp1_qup1_i2c_apps_clk_src,
3618c2ecf20Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
3628c2ecf20Sopenharmony_ci		.name = "blsp1_qup4_i2c_apps_clk_src",
3638c2ecf20Sopenharmony_ci		.parent_names = gcc_parent_names_xo_gpll0_gpll0_early_div,
3648c2ecf20Sopenharmony_ci		.num_parents = 3,
3658c2ecf20Sopenharmony_ci		.ops = &clk_rcg2_ops,
3668c2ecf20Sopenharmony_ci	},
3678c2ecf20Sopenharmony_ci};
3688c2ecf20Sopenharmony_ci
3698c2ecf20Sopenharmony_cistatic struct clk_rcg2 blsp1_qup4_spi_apps_clk_src = {
3708c2ecf20Sopenharmony_ci	.cmd_rcgr = 0x1f00c,
3718c2ecf20Sopenharmony_ci	.mnd_width = 8,
3728c2ecf20Sopenharmony_ci	.hid_width = 5,
3738c2ecf20Sopenharmony_ci	.parent_map = gcc_parent_map_xo_gpll0_gpll0_early_div,
3748c2ecf20Sopenharmony_ci	.freq_tbl = ftbl_blsp1_qup1_spi_apps_clk_src,
3758c2ecf20Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
3768c2ecf20Sopenharmony_ci		.name = "blsp1_qup4_spi_apps_clk_src",
3778c2ecf20Sopenharmony_ci		.parent_names = gcc_parent_names_xo_gpll0_gpll0_early_div,
3788c2ecf20Sopenharmony_ci		.num_parents = 3,
3798c2ecf20Sopenharmony_ci		.ops = &clk_rcg2_ops,
3808c2ecf20Sopenharmony_ci	},
3818c2ecf20Sopenharmony_ci};
3828c2ecf20Sopenharmony_ci
3838c2ecf20Sopenharmony_cistatic const struct freq_tbl ftbl_blsp1_uart1_apps_clk_src[] = {
3848c2ecf20Sopenharmony_ci	F(3686400, P_GPLL0, 1, 96, 15625),
3858c2ecf20Sopenharmony_ci	F(7372800, P_GPLL0, 1, 192, 15625),
3868c2ecf20Sopenharmony_ci	F(14745600, P_GPLL0, 1, 384, 15625),
3878c2ecf20Sopenharmony_ci	F(16000000, P_GPLL0, 5, 2, 15),
3888c2ecf20Sopenharmony_ci	F(19200000, P_XO, 1, 0, 0),
3898c2ecf20Sopenharmony_ci	F(24000000, P_GPLL0, 5, 1, 5),
3908c2ecf20Sopenharmony_ci	F(32000000, P_GPLL0, 1, 4, 75),
3918c2ecf20Sopenharmony_ci	F(40000000, P_GPLL0, 15, 0, 0),
3928c2ecf20Sopenharmony_ci	F(46400000, P_GPLL0, 1, 29, 375),
3938c2ecf20Sopenharmony_ci	F(48000000, P_GPLL0, 12.5, 0, 0),
3948c2ecf20Sopenharmony_ci	F(51200000, P_GPLL0, 1, 32, 375),
3958c2ecf20Sopenharmony_ci	F(56000000, P_GPLL0, 1, 7, 75),
3968c2ecf20Sopenharmony_ci	F(58982400, P_GPLL0, 1, 1536, 15625),
3978c2ecf20Sopenharmony_ci	F(60000000, P_GPLL0, 10, 0, 0),
3988c2ecf20Sopenharmony_ci	F(63157895, P_GPLL0, 9.5, 0, 0),
3998c2ecf20Sopenharmony_ci	{ }
4008c2ecf20Sopenharmony_ci};
4018c2ecf20Sopenharmony_ci
4028c2ecf20Sopenharmony_cistatic struct clk_rcg2 blsp1_uart1_apps_clk_src = {
4038c2ecf20Sopenharmony_ci	.cmd_rcgr = 0x1a00c,
4048c2ecf20Sopenharmony_ci	.mnd_width = 16,
4058c2ecf20Sopenharmony_ci	.hid_width = 5,
4068c2ecf20Sopenharmony_ci	.parent_map = gcc_parent_map_xo_gpll0_gpll0_early_div,
4078c2ecf20Sopenharmony_ci	.freq_tbl = ftbl_blsp1_uart1_apps_clk_src,
4088c2ecf20Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
4098c2ecf20Sopenharmony_ci		.name = "blsp1_uart1_apps_clk_src",
4108c2ecf20Sopenharmony_ci		.parent_names = gcc_parent_names_xo_gpll0_gpll0_early_div,
4118c2ecf20Sopenharmony_ci		.num_parents = 3,
4128c2ecf20Sopenharmony_ci		.ops = &clk_rcg2_ops,
4138c2ecf20Sopenharmony_ci	},
4148c2ecf20Sopenharmony_ci};
4158c2ecf20Sopenharmony_ci
4168c2ecf20Sopenharmony_cistatic struct clk_rcg2 blsp1_uart2_apps_clk_src = {
4178c2ecf20Sopenharmony_ci	.cmd_rcgr = 0x1c00c,
4188c2ecf20Sopenharmony_ci	.mnd_width = 16,
4198c2ecf20Sopenharmony_ci	.hid_width = 5,
4208c2ecf20Sopenharmony_ci	.parent_map = gcc_parent_map_xo_gpll0_gpll0_early_div,
4218c2ecf20Sopenharmony_ci	.freq_tbl = ftbl_blsp1_uart1_apps_clk_src,
4228c2ecf20Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
4238c2ecf20Sopenharmony_ci		.name = "blsp1_uart2_apps_clk_src",
4248c2ecf20Sopenharmony_ci		.parent_names = gcc_parent_names_xo_gpll0_gpll0_early_div,
4258c2ecf20Sopenharmony_ci		.num_parents = 3,
4268c2ecf20Sopenharmony_ci		.ops = &clk_rcg2_ops,
4278c2ecf20Sopenharmony_ci	},
4288c2ecf20Sopenharmony_ci};
4298c2ecf20Sopenharmony_ci
4308c2ecf20Sopenharmony_cistatic struct clk_rcg2 blsp2_qup1_i2c_apps_clk_src = {
4318c2ecf20Sopenharmony_ci	.cmd_rcgr = 0x26020,
4328c2ecf20Sopenharmony_ci	.mnd_width = 0,
4338c2ecf20Sopenharmony_ci	.hid_width = 5,
4348c2ecf20Sopenharmony_ci	.parent_map = gcc_parent_map_xo_gpll0_gpll0_early_div,
4358c2ecf20Sopenharmony_ci	.freq_tbl = ftbl_blsp1_qup1_i2c_apps_clk_src,
4368c2ecf20Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
4378c2ecf20Sopenharmony_ci		.name = "blsp2_qup1_i2c_apps_clk_src",
4388c2ecf20Sopenharmony_ci		.parent_names = gcc_parent_names_xo_gpll0_gpll0_early_div,
4398c2ecf20Sopenharmony_ci		.num_parents = 3,
4408c2ecf20Sopenharmony_ci		.ops = &clk_rcg2_ops,
4418c2ecf20Sopenharmony_ci	},
4428c2ecf20Sopenharmony_ci};
4438c2ecf20Sopenharmony_ci
4448c2ecf20Sopenharmony_cistatic struct clk_rcg2 blsp2_qup1_spi_apps_clk_src = {
4458c2ecf20Sopenharmony_ci	.cmd_rcgr = 0x2600c,
4468c2ecf20Sopenharmony_ci	.mnd_width = 8,
4478c2ecf20Sopenharmony_ci	.hid_width = 5,
4488c2ecf20Sopenharmony_ci	.parent_map = gcc_parent_map_xo_gpll0_gpll0_early_div,
4498c2ecf20Sopenharmony_ci	.freq_tbl = ftbl_blsp1_qup1_spi_apps_clk_src,
4508c2ecf20Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
4518c2ecf20Sopenharmony_ci		.name = "blsp2_qup1_spi_apps_clk_src",
4528c2ecf20Sopenharmony_ci		.parent_names = gcc_parent_names_xo_gpll0_gpll0_early_div,
4538c2ecf20Sopenharmony_ci		.num_parents = 3,
4548c2ecf20Sopenharmony_ci		.ops = &clk_rcg2_ops,
4558c2ecf20Sopenharmony_ci	},
4568c2ecf20Sopenharmony_ci};
4578c2ecf20Sopenharmony_ci
4588c2ecf20Sopenharmony_cistatic struct clk_rcg2 blsp2_qup2_i2c_apps_clk_src = {
4598c2ecf20Sopenharmony_ci	.cmd_rcgr = 0x28020,
4608c2ecf20Sopenharmony_ci	.mnd_width = 0,
4618c2ecf20Sopenharmony_ci	.hid_width = 5,
4628c2ecf20Sopenharmony_ci	.parent_map = gcc_parent_map_xo_gpll0_gpll0_early_div,
4638c2ecf20Sopenharmony_ci	.freq_tbl = ftbl_blsp1_qup1_i2c_apps_clk_src,
4648c2ecf20Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
4658c2ecf20Sopenharmony_ci		.name = "blsp2_qup2_i2c_apps_clk_src",
4668c2ecf20Sopenharmony_ci		.parent_names = gcc_parent_names_xo_gpll0_gpll0_early_div,
4678c2ecf20Sopenharmony_ci		.num_parents = 3,
4688c2ecf20Sopenharmony_ci		.ops = &clk_rcg2_ops,
4698c2ecf20Sopenharmony_ci	},
4708c2ecf20Sopenharmony_ci};
4718c2ecf20Sopenharmony_ci
4728c2ecf20Sopenharmony_cistatic struct clk_rcg2 blsp2_qup2_spi_apps_clk_src = {
4738c2ecf20Sopenharmony_ci	.cmd_rcgr = 0x2800c,
4748c2ecf20Sopenharmony_ci	.mnd_width = 8,
4758c2ecf20Sopenharmony_ci	.hid_width = 5,
4768c2ecf20Sopenharmony_ci	.parent_map = gcc_parent_map_xo_gpll0_gpll0_early_div,
4778c2ecf20Sopenharmony_ci	.freq_tbl = ftbl_blsp1_qup1_spi_apps_clk_src,
4788c2ecf20Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
4798c2ecf20Sopenharmony_ci		.name = "blsp2_qup2_spi_apps_clk_src",
4808c2ecf20Sopenharmony_ci		.parent_names = gcc_parent_names_xo_gpll0_gpll0_early_div,
4818c2ecf20Sopenharmony_ci		.num_parents = 3,
4828c2ecf20Sopenharmony_ci		.ops = &clk_rcg2_ops,
4838c2ecf20Sopenharmony_ci	},
4848c2ecf20Sopenharmony_ci};
4858c2ecf20Sopenharmony_ci
4868c2ecf20Sopenharmony_cistatic struct clk_rcg2 blsp2_qup3_i2c_apps_clk_src = {
4878c2ecf20Sopenharmony_ci	.cmd_rcgr = 0x2a020,
4888c2ecf20Sopenharmony_ci	.mnd_width = 0,
4898c2ecf20Sopenharmony_ci	.hid_width = 5,
4908c2ecf20Sopenharmony_ci	.parent_map = gcc_parent_map_xo_gpll0_gpll0_early_div,
4918c2ecf20Sopenharmony_ci	.freq_tbl = ftbl_blsp1_qup1_i2c_apps_clk_src,
4928c2ecf20Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
4938c2ecf20Sopenharmony_ci		.name = "blsp2_qup3_i2c_apps_clk_src",
4948c2ecf20Sopenharmony_ci		.parent_names = gcc_parent_names_xo_gpll0_gpll0_early_div,
4958c2ecf20Sopenharmony_ci		.num_parents = 3,
4968c2ecf20Sopenharmony_ci		.ops = &clk_rcg2_ops,
4978c2ecf20Sopenharmony_ci	},
4988c2ecf20Sopenharmony_ci};
4998c2ecf20Sopenharmony_ci
5008c2ecf20Sopenharmony_cistatic struct clk_rcg2 blsp2_qup3_spi_apps_clk_src = {
5018c2ecf20Sopenharmony_ci	.cmd_rcgr = 0x2a00c,
5028c2ecf20Sopenharmony_ci	.mnd_width = 8,
5038c2ecf20Sopenharmony_ci	.hid_width = 5,
5048c2ecf20Sopenharmony_ci	.parent_map = gcc_parent_map_xo_gpll0_gpll0_early_div,
5058c2ecf20Sopenharmony_ci	.freq_tbl = ftbl_blsp1_qup1_spi_apps_clk_src,
5068c2ecf20Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
5078c2ecf20Sopenharmony_ci		.name = "blsp2_qup3_spi_apps_clk_src",
5088c2ecf20Sopenharmony_ci		.parent_names = gcc_parent_names_xo_gpll0_gpll0_early_div,
5098c2ecf20Sopenharmony_ci		.num_parents = 3,
5108c2ecf20Sopenharmony_ci		.ops = &clk_rcg2_ops,
5118c2ecf20Sopenharmony_ci	},
5128c2ecf20Sopenharmony_ci};
5138c2ecf20Sopenharmony_ci
5148c2ecf20Sopenharmony_cistatic struct clk_rcg2 blsp2_qup4_i2c_apps_clk_src = {
5158c2ecf20Sopenharmony_ci	.cmd_rcgr = 0x2c020,
5168c2ecf20Sopenharmony_ci	.mnd_width = 0,
5178c2ecf20Sopenharmony_ci	.hid_width = 5,
5188c2ecf20Sopenharmony_ci	.parent_map = gcc_parent_map_xo_gpll0_gpll0_early_div,
5198c2ecf20Sopenharmony_ci	.freq_tbl = ftbl_blsp1_qup1_i2c_apps_clk_src,
5208c2ecf20Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
5218c2ecf20Sopenharmony_ci		.name = "blsp2_qup4_i2c_apps_clk_src",
5228c2ecf20Sopenharmony_ci		.parent_names = gcc_parent_names_xo_gpll0_gpll0_early_div,
5238c2ecf20Sopenharmony_ci		.num_parents = 3,
5248c2ecf20Sopenharmony_ci		.ops = &clk_rcg2_ops,
5258c2ecf20Sopenharmony_ci	},
5268c2ecf20Sopenharmony_ci};
5278c2ecf20Sopenharmony_ci
5288c2ecf20Sopenharmony_cistatic struct clk_rcg2 blsp2_qup4_spi_apps_clk_src = {
5298c2ecf20Sopenharmony_ci	.cmd_rcgr = 0x2c00c,
5308c2ecf20Sopenharmony_ci	.mnd_width = 8,
5318c2ecf20Sopenharmony_ci	.hid_width = 5,
5328c2ecf20Sopenharmony_ci	.parent_map = gcc_parent_map_xo_gpll0_gpll0_early_div,
5338c2ecf20Sopenharmony_ci	.freq_tbl = ftbl_blsp1_qup1_spi_apps_clk_src,
5348c2ecf20Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
5358c2ecf20Sopenharmony_ci		.name = "blsp2_qup4_spi_apps_clk_src",
5368c2ecf20Sopenharmony_ci		.parent_names = gcc_parent_names_xo_gpll0_gpll0_early_div,
5378c2ecf20Sopenharmony_ci		.num_parents = 3,
5388c2ecf20Sopenharmony_ci		.ops = &clk_rcg2_ops,
5398c2ecf20Sopenharmony_ci	},
5408c2ecf20Sopenharmony_ci};
5418c2ecf20Sopenharmony_ci
5428c2ecf20Sopenharmony_cistatic struct clk_rcg2 blsp2_uart1_apps_clk_src = {
5438c2ecf20Sopenharmony_ci	.cmd_rcgr = 0x2700c,
5448c2ecf20Sopenharmony_ci	.mnd_width = 16,
5458c2ecf20Sopenharmony_ci	.hid_width = 5,
5468c2ecf20Sopenharmony_ci	.parent_map = gcc_parent_map_xo_gpll0_gpll0_early_div,
5478c2ecf20Sopenharmony_ci	.freq_tbl = ftbl_blsp1_uart1_apps_clk_src,
5488c2ecf20Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
5498c2ecf20Sopenharmony_ci		.name = "blsp2_uart1_apps_clk_src",
5508c2ecf20Sopenharmony_ci		.parent_names = gcc_parent_names_xo_gpll0_gpll0_early_div,
5518c2ecf20Sopenharmony_ci		.num_parents = 3,
5528c2ecf20Sopenharmony_ci		.ops = &clk_rcg2_ops,
5538c2ecf20Sopenharmony_ci	},
5548c2ecf20Sopenharmony_ci};
5558c2ecf20Sopenharmony_ci
5568c2ecf20Sopenharmony_cistatic struct clk_rcg2 blsp2_uart2_apps_clk_src = {
5578c2ecf20Sopenharmony_ci	.cmd_rcgr = 0x2900c,
5588c2ecf20Sopenharmony_ci	.mnd_width = 16,
5598c2ecf20Sopenharmony_ci	.hid_width = 5,
5608c2ecf20Sopenharmony_ci	.parent_map = gcc_parent_map_xo_gpll0_gpll0_early_div,
5618c2ecf20Sopenharmony_ci	.freq_tbl = ftbl_blsp1_uart1_apps_clk_src,
5628c2ecf20Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
5638c2ecf20Sopenharmony_ci		.name = "blsp2_uart2_apps_clk_src",
5648c2ecf20Sopenharmony_ci		.parent_names = gcc_parent_names_xo_gpll0_gpll0_early_div,
5658c2ecf20Sopenharmony_ci		.num_parents = 3,
5668c2ecf20Sopenharmony_ci		.ops = &clk_rcg2_ops,
5678c2ecf20Sopenharmony_ci	},
5688c2ecf20Sopenharmony_ci};
5698c2ecf20Sopenharmony_ci
5708c2ecf20Sopenharmony_cistatic const struct freq_tbl ftbl_gp1_clk_src[] = {
5718c2ecf20Sopenharmony_ci	F(19200000, P_XO, 1, 0, 0),
5728c2ecf20Sopenharmony_ci	F(100000000, P_GPLL0, 6, 0, 0),
5738c2ecf20Sopenharmony_ci	F(200000000, P_GPLL0, 3, 0, 0),
5748c2ecf20Sopenharmony_ci	{ }
5758c2ecf20Sopenharmony_ci};
5768c2ecf20Sopenharmony_ci
5778c2ecf20Sopenharmony_cistatic struct clk_rcg2 gp1_clk_src = {
5788c2ecf20Sopenharmony_ci	.cmd_rcgr = 0x64004,
5798c2ecf20Sopenharmony_ci	.mnd_width = 8,
5808c2ecf20Sopenharmony_ci	.hid_width = 5,
5818c2ecf20Sopenharmony_ci	.parent_map = gcc_parent_map_xo_gpll0_sleep_clk_gpll0_early_div,
5828c2ecf20Sopenharmony_ci	.freq_tbl = ftbl_gp1_clk_src,
5838c2ecf20Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
5848c2ecf20Sopenharmony_ci		.name = "gp1_clk_src",
5858c2ecf20Sopenharmony_ci		.parent_names = gcc_parent_names_xo_gpll0_sleep_clk_gpll0_early_div,
5868c2ecf20Sopenharmony_ci		.num_parents = 4,
5878c2ecf20Sopenharmony_ci		.ops = &clk_rcg2_ops,
5888c2ecf20Sopenharmony_ci	},
5898c2ecf20Sopenharmony_ci};
5908c2ecf20Sopenharmony_ci
5918c2ecf20Sopenharmony_cistatic struct clk_rcg2 gp2_clk_src = {
5928c2ecf20Sopenharmony_ci	.cmd_rcgr = 0x65004,
5938c2ecf20Sopenharmony_ci	.mnd_width = 8,
5948c2ecf20Sopenharmony_ci	.hid_width = 5,
5958c2ecf20Sopenharmony_ci	.parent_map = gcc_parent_map_xo_gpll0_sleep_clk_gpll0_early_div,
5968c2ecf20Sopenharmony_ci	.freq_tbl = ftbl_gp1_clk_src,
5978c2ecf20Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
5988c2ecf20Sopenharmony_ci		.name = "gp2_clk_src",
5998c2ecf20Sopenharmony_ci		.parent_names = gcc_parent_names_xo_gpll0_sleep_clk_gpll0_early_div,
6008c2ecf20Sopenharmony_ci		.num_parents = 4,
6018c2ecf20Sopenharmony_ci		.ops = &clk_rcg2_ops,
6028c2ecf20Sopenharmony_ci	},
6038c2ecf20Sopenharmony_ci};
6048c2ecf20Sopenharmony_ci
6058c2ecf20Sopenharmony_cistatic struct clk_rcg2 gp3_clk_src = {
6068c2ecf20Sopenharmony_ci	.cmd_rcgr = 0x66004,
6078c2ecf20Sopenharmony_ci	.mnd_width = 8,
6088c2ecf20Sopenharmony_ci	.hid_width = 5,
6098c2ecf20Sopenharmony_ci	.parent_map = gcc_parent_map_xo_gpll0_sleep_clk_gpll0_early_div,
6108c2ecf20Sopenharmony_ci	.freq_tbl = ftbl_gp1_clk_src,
6118c2ecf20Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
6128c2ecf20Sopenharmony_ci		.name = "gp3_clk_src",
6138c2ecf20Sopenharmony_ci		.parent_names = gcc_parent_names_xo_gpll0_sleep_clk_gpll0_early_div,
6148c2ecf20Sopenharmony_ci		.num_parents = 4,
6158c2ecf20Sopenharmony_ci		.ops = &clk_rcg2_ops,
6168c2ecf20Sopenharmony_ci	},
6178c2ecf20Sopenharmony_ci};
6188c2ecf20Sopenharmony_ci
6198c2ecf20Sopenharmony_cistatic const struct freq_tbl ftbl_hmss_gpll0_clk_src[] = {
6208c2ecf20Sopenharmony_ci	F(300000000, P_GPLL0, 2, 0, 0),
6218c2ecf20Sopenharmony_ci	F(600000000, P_GPLL0, 1, 0, 0),
6228c2ecf20Sopenharmony_ci	{ }
6238c2ecf20Sopenharmony_ci};
6248c2ecf20Sopenharmony_ci
6258c2ecf20Sopenharmony_cistatic struct clk_rcg2 hmss_gpll0_clk_src = {
6268c2ecf20Sopenharmony_ci	.cmd_rcgr = 0x4805c,
6278c2ecf20Sopenharmony_ci	.mnd_width = 0,
6288c2ecf20Sopenharmony_ci	.hid_width = 5,
6298c2ecf20Sopenharmony_ci	.parent_map = gcc_parent_map_xo_gpll0_gpll0_early_div,
6308c2ecf20Sopenharmony_ci	.freq_tbl = ftbl_hmss_gpll0_clk_src,
6318c2ecf20Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
6328c2ecf20Sopenharmony_ci		.name = "hmss_gpll0_clk_src",
6338c2ecf20Sopenharmony_ci		.parent_names = gcc_parent_names_xo_gpll0_gpll0_early_div,
6348c2ecf20Sopenharmony_ci		.num_parents = 3,
6358c2ecf20Sopenharmony_ci		.ops = &clk_rcg2_ops,
6368c2ecf20Sopenharmony_ci	},
6378c2ecf20Sopenharmony_ci};
6388c2ecf20Sopenharmony_ci
6398c2ecf20Sopenharmony_cistatic const struct freq_tbl ftbl_hmss_gpll4_clk_src[] = {
6408c2ecf20Sopenharmony_ci	F(384000000, P_GPLL4, 4, 0, 0),
6418c2ecf20Sopenharmony_ci	F(768000000, P_GPLL4, 2, 0, 0),
6428c2ecf20Sopenharmony_ci	F(1536000000, P_GPLL4, 1, 0, 0),
6438c2ecf20Sopenharmony_ci	{ }
6448c2ecf20Sopenharmony_ci};
6458c2ecf20Sopenharmony_ci
6468c2ecf20Sopenharmony_cistatic struct clk_rcg2 hmss_gpll4_clk_src = {
6478c2ecf20Sopenharmony_ci	.cmd_rcgr = 0x48074,
6488c2ecf20Sopenharmony_ci	.mnd_width = 0,
6498c2ecf20Sopenharmony_ci	.hid_width = 5,
6508c2ecf20Sopenharmony_ci	.parent_map = gcc_parent_map_xo_gpll4,
6518c2ecf20Sopenharmony_ci	.freq_tbl = ftbl_hmss_gpll4_clk_src,
6528c2ecf20Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
6538c2ecf20Sopenharmony_ci		.name = "hmss_gpll4_clk_src",
6548c2ecf20Sopenharmony_ci		.parent_names = gcc_parent_names_xo_gpll4,
6558c2ecf20Sopenharmony_ci		.num_parents = 2,
6568c2ecf20Sopenharmony_ci		.ops = &clk_rcg2_ops,
6578c2ecf20Sopenharmony_ci	},
6588c2ecf20Sopenharmony_ci};
6598c2ecf20Sopenharmony_ci
6608c2ecf20Sopenharmony_cistatic const struct freq_tbl ftbl_hmss_rbcpr_clk_src[] = {
6618c2ecf20Sopenharmony_ci	F(19200000, P_XO, 1, 0, 0),
6628c2ecf20Sopenharmony_ci	{ }
6638c2ecf20Sopenharmony_ci};
6648c2ecf20Sopenharmony_ci
6658c2ecf20Sopenharmony_cistatic struct clk_rcg2 hmss_rbcpr_clk_src = {
6668c2ecf20Sopenharmony_ci	.cmd_rcgr = 0x48044,
6678c2ecf20Sopenharmony_ci	.mnd_width = 0,
6688c2ecf20Sopenharmony_ci	.hid_width = 5,
6698c2ecf20Sopenharmony_ci	.parent_map = gcc_parent_map_xo_gpll0,
6708c2ecf20Sopenharmony_ci	.freq_tbl = ftbl_hmss_rbcpr_clk_src,
6718c2ecf20Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
6728c2ecf20Sopenharmony_ci		.name = "hmss_rbcpr_clk_src",
6738c2ecf20Sopenharmony_ci		.parent_names = gcc_parent_names_xo_gpll0,
6748c2ecf20Sopenharmony_ci		.num_parents = 2,
6758c2ecf20Sopenharmony_ci		.ops = &clk_rcg2_ops,
6768c2ecf20Sopenharmony_ci	},
6778c2ecf20Sopenharmony_ci};
6788c2ecf20Sopenharmony_ci
6798c2ecf20Sopenharmony_cistatic const struct freq_tbl ftbl_pdm2_clk_src[] = {
6808c2ecf20Sopenharmony_ci	F(60000000, P_GPLL0, 10, 0, 0),
6818c2ecf20Sopenharmony_ci	{ }
6828c2ecf20Sopenharmony_ci};
6838c2ecf20Sopenharmony_ci
6848c2ecf20Sopenharmony_cistatic struct clk_rcg2 pdm2_clk_src = {
6858c2ecf20Sopenharmony_ci	.cmd_rcgr = 0x33010,
6868c2ecf20Sopenharmony_ci	.mnd_width = 0,
6878c2ecf20Sopenharmony_ci	.hid_width = 5,
6888c2ecf20Sopenharmony_ci	.parent_map = gcc_parent_map_xo_gpll0_gpll0_early_div,
6898c2ecf20Sopenharmony_ci	.freq_tbl = ftbl_pdm2_clk_src,
6908c2ecf20Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
6918c2ecf20Sopenharmony_ci		.name = "pdm2_clk_src",
6928c2ecf20Sopenharmony_ci		.parent_names = gcc_parent_names_xo_gpll0_gpll0_early_div,
6938c2ecf20Sopenharmony_ci		.num_parents = 3,
6948c2ecf20Sopenharmony_ci		.ops = &clk_rcg2_ops,
6958c2ecf20Sopenharmony_ci	},
6968c2ecf20Sopenharmony_ci};
6978c2ecf20Sopenharmony_ci
6988c2ecf20Sopenharmony_cistatic const struct freq_tbl ftbl_qspi_ser_clk_src[] = {
6998c2ecf20Sopenharmony_ci	F(19200000, P_XO, 1, 0, 0),
7008c2ecf20Sopenharmony_ci	F(80200000, P_GPLL1_EARLY_DIV, 5, 0, 0),
7018c2ecf20Sopenharmony_ci	F(160400000, P_GPLL1, 5, 0, 0),
7028c2ecf20Sopenharmony_ci	F(267333333, P_GPLL1, 3, 0, 0),
7038c2ecf20Sopenharmony_ci	{ }
7048c2ecf20Sopenharmony_ci};
7058c2ecf20Sopenharmony_ci
7068c2ecf20Sopenharmony_cistatic struct clk_rcg2 qspi_ser_clk_src = {
7078c2ecf20Sopenharmony_ci	.cmd_rcgr = 0x4d00c,
7088c2ecf20Sopenharmony_ci	.mnd_width = 0,
7098c2ecf20Sopenharmony_ci	.hid_width = 5,
7108c2ecf20Sopenharmony_ci	.parent_map = gcc_parent_map_xo_gpll0_gpll0_early_div_gpll1_gpll4_gpll1_early_div,
7118c2ecf20Sopenharmony_ci	.freq_tbl = ftbl_qspi_ser_clk_src,
7128c2ecf20Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
7138c2ecf20Sopenharmony_ci		.name = "qspi_ser_clk_src",
7148c2ecf20Sopenharmony_ci		.parent_names = gcc_parent_names_xo_gpll0_gpll0_early_div_gpll1_gpll4_gpll1_early_div,
7158c2ecf20Sopenharmony_ci		.num_parents = 6,
7168c2ecf20Sopenharmony_ci		.ops = &clk_rcg2_ops,
7178c2ecf20Sopenharmony_ci	},
7188c2ecf20Sopenharmony_ci};
7198c2ecf20Sopenharmony_ci
7208c2ecf20Sopenharmony_cistatic const struct freq_tbl ftbl_sdcc1_apps_clk_src[] = {
7218c2ecf20Sopenharmony_ci	F(144000, P_XO, 16, 3, 25),
7228c2ecf20Sopenharmony_ci	F(400000, P_XO, 12, 1, 4),
7238c2ecf20Sopenharmony_ci	F(20000000, P_GPLL0_EARLY_DIV, 5, 1, 3),
7248c2ecf20Sopenharmony_ci	F(25000000, P_GPLL0_EARLY_DIV, 6, 1, 2),
7258c2ecf20Sopenharmony_ci	F(50000000, P_GPLL0_EARLY_DIV, 6, 0, 0),
7268c2ecf20Sopenharmony_ci	F(100000000, P_GPLL0, 6, 0, 0),
7278c2ecf20Sopenharmony_ci	F(192000000, P_GPLL4, 8, 0, 0),
7288c2ecf20Sopenharmony_ci	F(384000000, P_GPLL4, 4, 0, 0),
7298c2ecf20Sopenharmony_ci	{ }
7308c2ecf20Sopenharmony_ci};
7318c2ecf20Sopenharmony_ci
7328c2ecf20Sopenharmony_cistatic struct clk_rcg2 sdcc1_apps_clk_src = {
7338c2ecf20Sopenharmony_ci	.cmd_rcgr = 0x1602c,
7348c2ecf20Sopenharmony_ci	.mnd_width = 8,
7358c2ecf20Sopenharmony_ci	.hid_width = 5,
7368c2ecf20Sopenharmony_ci	.parent_map = gcc_parent_map_xo_gpll0_gpll4_gpll0_early_div,
7378c2ecf20Sopenharmony_ci	.freq_tbl = ftbl_sdcc1_apps_clk_src,
7388c2ecf20Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
7398c2ecf20Sopenharmony_ci		.name = "sdcc1_apps_clk_src",
7408c2ecf20Sopenharmony_ci		.parent_names = gcc_parent_names_xo_gpll0_gpll4_gpll0_early_div,
7418c2ecf20Sopenharmony_ci		.num_parents = 4,
7428c2ecf20Sopenharmony_ci		.ops = &clk_rcg2_ops,
7438c2ecf20Sopenharmony_ci	},
7448c2ecf20Sopenharmony_ci};
7458c2ecf20Sopenharmony_ci
7468c2ecf20Sopenharmony_cistatic const struct freq_tbl ftbl_sdcc1_ice_core_clk_src[] = {
7478c2ecf20Sopenharmony_ci	F(75000000, P_GPLL0_EARLY_DIV, 4, 0, 0),
7488c2ecf20Sopenharmony_ci	F(150000000, P_GPLL0, 4, 0, 0),
7498c2ecf20Sopenharmony_ci	F(200000000, P_GPLL0, 3, 0, 0),
7508c2ecf20Sopenharmony_ci	F(300000000, P_GPLL0, 2, 0, 0),
7518c2ecf20Sopenharmony_ci	{ }
7528c2ecf20Sopenharmony_ci};
7538c2ecf20Sopenharmony_ci
7548c2ecf20Sopenharmony_cistatic struct clk_rcg2 sdcc1_ice_core_clk_src = {
7558c2ecf20Sopenharmony_ci	.cmd_rcgr = 0x16010,
7568c2ecf20Sopenharmony_ci	.mnd_width = 0,
7578c2ecf20Sopenharmony_ci	.hid_width = 5,
7588c2ecf20Sopenharmony_ci	.parent_map = gcc_parent_map_xo_gpll0_gpll0_early_div,
7598c2ecf20Sopenharmony_ci	.freq_tbl = ftbl_sdcc1_ice_core_clk_src,
7608c2ecf20Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
7618c2ecf20Sopenharmony_ci		.name = "sdcc1_ice_core_clk_src",
7628c2ecf20Sopenharmony_ci		.parent_names = gcc_parent_names_xo_gpll0_gpll0_early_div,
7638c2ecf20Sopenharmony_ci		.num_parents = 3,
7648c2ecf20Sopenharmony_ci		.ops = &clk_rcg2_ops,
7658c2ecf20Sopenharmony_ci	},
7668c2ecf20Sopenharmony_ci};
7678c2ecf20Sopenharmony_ci
7688c2ecf20Sopenharmony_cistatic const struct freq_tbl ftbl_sdcc2_apps_clk_src[] = {
7698c2ecf20Sopenharmony_ci	F(144000, P_XO, 16, 3, 25),
7708c2ecf20Sopenharmony_ci	F(400000, P_XO, 12, 1, 4),
7718c2ecf20Sopenharmony_ci	F(20000000, P_GPLL0_EARLY_DIV, 5, 1, 3),
7728c2ecf20Sopenharmony_ci	F(25000000, P_GPLL0_EARLY_DIV, 6, 1, 2),
7738c2ecf20Sopenharmony_ci	F(50000000, P_GPLL0_EARLY_DIV, 6, 0, 0),
7748c2ecf20Sopenharmony_ci	F(100000000, P_GPLL0, 6, 0, 0),
7758c2ecf20Sopenharmony_ci	F(192000000, P_GPLL4, 8, 0, 0),
7768c2ecf20Sopenharmony_ci	F(200000000, P_GPLL0, 3, 0, 0),
7778c2ecf20Sopenharmony_ci	{ }
7788c2ecf20Sopenharmony_ci};
7798c2ecf20Sopenharmony_ci
7808c2ecf20Sopenharmony_cistatic struct clk_rcg2 sdcc2_apps_clk_src = {
7818c2ecf20Sopenharmony_ci	.cmd_rcgr = 0x14010,
7828c2ecf20Sopenharmony_ci	.mnd_width = 8,
7838c2ecf20Sopenharmony_ci	.hid_width = 5,
7848c2ecf20Sopenharmony_ci	.parent_map = gcc_parent_map_xo_gpll0_gpll0_early_div_gpll4,
7858c2ecf20Sopenharmony_ci	.freq_tbl = ftbl_sdcc2_apps_clk_src,
7868c2ecf20Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
7878c2ecf20Sopenharmony_ci		.name = "sdcc2_apps_clk_src",
7888c2ecf20Sopenharmony_ci		.parent_names = gcc_parent_names_xo_gpll0_gpll0_early_div_gpll4,
7898c2ecf20Sopenharmony_ci		.num_parents = 4,
7908c2ecf20Sopenharmony_ci		.ops = &clk_rcg2_floor_ops,
7918c2ecf20Sopenharmony_ci	},
7928c2ecf20Sopenharmony_ci};
7938c2ecf20Sopenharmony_ci
7948c2ecf20Sopenharmony_cistatic const struct freq_tbl ftbl_ufs_axi_clk_src[] = {
7958c2ecf20Sopenharmony_ci	F(50000000, P_GPLL0_EARLY_DIV, 6, 0, 0),
7968c2ecf20Sopenharmony_ci	F(100000000, P_GPLL0, 6, 0, 0),
7978c2ecf20Sopenharmony_ci	F(150000000, P_GPLL0, 4, 0, 0),
7988c2ecf20Sopenharmony_ci	F(200000000, P_GPLL0, 3, 0, 0),
7998c2ecf20Sopenharmony_ci	F(240000000, P_GPLL0, 2.5, 0, 0),
8008c2ecf20Sopenharmony_ci	{ }
8018c2ecf20Sopenharmony_ci};
8028c2ecf20Sopenharmony_ci
8038c2ecf20Sopenharmony_cistatic struct clk_rcg2 ufs_axi_clk_src = {
8048c2ecf20Sopenharmony_ci	.cmd_rcgr = 0x75018,
8058c2ecf20Sopenharmony_ci	.mnd_width = 8,
8068c2ecf20Sopenharmony_ci	.hid_width = 5,
8078c2ecf20Sopenharmony_ci	.parent_map = gcc_parent_map_xo_gpll0_gpll0_early_div,
8088c2ecf20Sopenharmony_ci	.freq_tbl = ftbl_ufs_axi_clk_src,
8098c2ecf20Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
8108c2ecf20Sopenharmony_ci		.name = "ufs_axi_clk_src",
8118c2ecf20Sopenharmony_ci		.parent_names = gcc_parent_names_xo_gpll0_gpll0_early_div,
8128c2ecf20Sopenharmony_ci		.num_parents = 3,
8138c2ecf20Sopenharmony_ci		.ops = &clk_rcg2_ops,
8148c2ecf20Sopenharmony_ci	},
8158c2ecf20Sopenharmony_ci};
8168c2ecf20Sopenharmony_ci
8178c2ecf20Sopenharmony_cistatic const struct freq_tbl ftbl_ufs_ice_core_clk_src[] = {
8188c2ecf20Sopenharmony_ci	F(75000000, P_GPLL0_EARLY_DIV, 4, 0, 0),
8198c2ecf20Sopenharmony_ci	F(150000000, P_GPLL0, 4, 0, 0),
8208c2ecf20Sopenharmony_ci	F(300000000, P_GPLL0, 2, 0, 0),
8218c2ecf20Sopenharmony_ci	{ }
8228c2ecf20Sopenharmony_ci};
8238c2ecf20Sopenharmony_ci
8248c2ecf20Sopenharmony_cistatic struct clk_rcg2 ufs_ice_core_clk_src = {
8258c2ecf20Sopenharmony_ci	.cmd_rcgr = 0x76010,
8268c2ecf20Sopenharmony_ci	.mnd_width = 0,
8278c2ecf20Sopenharmony_ci	.hid_width = 5,
8288c2ecf20Sopenharmony_ci	.parent_map = gcc_parent_map_xo_gpll0_gpll0_early_div,
8298c2ecf20Sopenharmony_ci	.freq_tbl = ftbl_ufs_ice_core_clk_src,
8308c2ecf20Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
8318c2ecf20Sopenharmony_ci		.name = "ufs_ice_core_clk_src",
8328c2ecf20Sopenharmony_ci		.parent_names = gcc_parent_names_xo_gpll0_gpll0_early_div,
8338c2ecf20Sopenharmony_ci		.num_parents = 3,
8348c2ecf20Sopenharmony_ci		.ops = &clk_rcg2_ops,
8358c2ecf20Sopenharmony_ci	},
8368c2ecf20Sopenharmony_ci};
8378c2ecf20Sopenharmony_ci
8388c2ecf20Sopenharmony_cistatic struct clk_rcg2 ufs_phy_aux_clk_src = {
8398c2ecf20Sopenharmony_ci	.cmd_rcgr = 0x76044,
8408c2ecf20Sopenharmony_ci	.mnd_width = 0,
8418c2ecf20Sopenharmony_ci	.hid_width = 5,
8428c2ecf20Sopenharmony_ci	.parent_map = gcc_parent_map_xo_sleep_clk,
8438c2ecf20Sopenharmony_ci	.freq_tbl = ftbl_hmss_rbcpr_clk_src,
8448c2ecf20Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
8458c2ecf20Sopenharmony_ci		.name = "ufs_phy_aux_clk_src",
8468c2ecf20Sopenharmony_ci		.parent_names = gcc_parent_names_xo_sleep_clk,
8478c2ecf20Sopenharmony_ci		.num_parents = 2,
8488c2ecf20Sopenharmony_ci		.ops = &clk_rcg2_ops,
8498c2ecf20Sopenharmony_ci	},
8508c2ecf20Sopenharmony_ci};
8518c2ecf20Sopenharmony_ci
8528c2ecf20Sopenharmony_cistatic const struct freq_tbl ftbl_ufs_unipro_core_clk_src[] = {
8538c2ecf20Sopenharmony_ci	F(37500000, P_GPLL0_EARLY_DIV, 8, 0, 0),
8548c2ecf20Sopenharmony_ci	F(75000000, P_GPLL0, 8, 0, 0),
8558c2ecf20Sopenharmony_ci	F(150000000, P_GPLL0, 4, 0, 0),
8568c2ecf20Sopenharmony_ci	{ }
8578c2ecf20Sopenharmony_ci};
8588c2ecf20Sopenharmony_ci
8598c2ecf20Sopenharmony_cistatic struct clk_rcg2 ufs_unipro_core_clk_src = {
8608c2ecf20Sopenharmony_ci	.cmd_rcgr = 0x76028,
8618c2ecf20Sopenharmony_ci	.mnd_width = 0,
8628c2ecf20Sopenharmony_ci	.hid_width = 5,
8638c2ecf20Sopenharmony_ci	.parent_map = gcc_parent_map_xo_gpll0_gpll0_early_div,
8648c2ecf20Sopenharmony_ci	.freq_tbl = ftbl_ufs_unipro_core_clk_src,
8658c2ecf20Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
8668c2ecf20Sopenharmony_ci		.name = "ufs_unipro_core_clk_src",
8678c2ecf20Sopenharmony_ci		.parent_names = gcc_parent_names_xo_gpll0_gpll0_early_div,
8688c2ecf20Sopenharmony_ci		.num_parents = 3,
8698c2ecf20Sopenharmony_ci		.ops = &clk_rcg2_ops,
8708c2ecf20Sopenharmony_ci	},
8718c2ecf20Sopenharmony_ci};
8728c2ecf20Sopenharmony_ci
8738c2ecf20Sopenharmony_cistatic const struct freq_tbl ftbl_usb20_master_clk_src[] = {
8748c2ecf20Sopenharmony_ci	F(19200000, P_XO, 1, 0, 0),
8758c2ecf20Sopenharmony_ci	F(60000000, P_GPLL0, 10, 0, 0),
8768c2ecf20Sopenharmony_ci	F(120000000, P_GPLL0, 5, 0, 0),
8778c2ecf20Sopenharmony_ci	{ }
8788c2ecf20Sopenharmony_ci};
8798c2ecf20Sopenharmony_ci
8808c2ecf20Sopenharmony_cistatic struct clk_rcg2 usb20_master_clk_src = {
8818c2ecf20Sopenharmony_ci	.cmd_rcgr = 0x2f010,
8828c2ecf20Sopenharmony_ci	.mnd_width = 8,
8838c2ecf20Sopenharmony_ci	.hid_width = 5,
8848c2ecf20Sopenharmony_ci	.parent_map = gcc_parent_map_xo_gpll0_gpll0_early_div,
8858c2ecf20Sopenharmony_ci	.freq_tbl = ftbl_usb20_master_clk_src,
8868c2ecf20Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
8878c2ecf20Sopenharmony_ci		.name = "usb20_master_clk_src",
8888c2ecf20Sopenharmony_ci		.parent_names = gcc_parent_names_xo_gpll0_gpll0_early_div,
8898c2ecf20Sopenharmony_ci		.num_parents = 3,
8908c2ecf20Sopenharmony_ci		.ops = &clk_rcg2_ops,
8918c2ecf20Sopenharmony_ci	},
8928c2ecf20Sopenharmony_ci};
8938c2ecf20Sopenharmony_ci
8948c2ecf20Sopenharmony_cistatic const struct freq_tbl ftbl_usb20_mock_utmi_clk_src[] = {
8958c2ecf20Sopenharmony_ci	F(19200000, P_XO, 1, 0, 0),
8968c2ecf20Sopenharmony_ci	F(60000000, P_GPLL0, 10, 0, 0),
8978c2ecf20Sopenharmony_ci	{ }
8988c2ecf20Sopenharmony_ci};
8998c2ecf20Sopenharmony_ci
9008c2ecf20Sopenharmony_cistatic struct clk_rcg2 usb20_mock_utmi_clk_src = {
9018c2ecf20Sopenharmony_ci	.cmd_rcgr = 0x2f024,
9028c2ecf20Sopenharmony_ci	.mnd_width = 0,
9038c2ecf20Sopenharmony_ci	.hid_width = 5,
9048c2ecf20Sopenharmony_ci	.parent_map = gcc_parent_map_xo_gpll0_gpll0_early_div,
9058c2ecf20Sopenharmony_ci	.freq_tbl = ftbl_usb20_mock_utmi_clk_src,
9068c2ecf20Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
9078c2ecf20Sopenharmony_ci		.name = "usb20_mock_utmi_clk_src",
9088c2ecf20Sopenharmony_ci		.parent_names = gcc_parent_names_xo_gpll0_gpll0_early_div,
9098c2ecf20Sopenharmony_ci		.num_parents = 3,
9108c2ecf20Sopenharmony_ci		.ops = &clk_rcg2_ops,
9118c2ecf20Sopenharmony_ci	},
9128c2ecf20Sopenharmony_ci};
9138c2ecf20Sopenharmony_ci
9148c2ecf20Sopenharmony_cistatic const struct freq_tbl ftbl_usb30_master_clk_src[] = {
9158c2ecf20Sopenharmony_ci	F(19200000, P_XO, 1, 0, 0),
9168c2ecf20Sopenharmony_ci	F(66666667, P_GPLL0_EARLY_DIV, 4.5, 0, 0),
9178c2ecf20Sopenharmony_ci	F(120000000, P_GPLL0, 5, 0, 0),
9188c2ecf20Sopenharmony_ci	F(133333333, P_GPLL0, 4.5, 0, 0),
9198c2ecf20Sopenharmony_ci	F(150000000, P_GPLL0, 4, 0, 0),
9208c2ecf20Sopenharmony_ci	F(200000000, P_GPLL0, 3, 0, 0),
9218c2ecf20Sopenharmony_ci	F(240000000, P_GPLL0, 2.5, 0, 0),
9228c2ecf20Sopenharmony_ci	{ }
9238c2ecf20Sopenharmony_ci};
9248c2ecf20Sopenharmony_ci
9258c2ecf20Sopenharmony_cistatic struct clk_rcg2 usb30_master_clk_src = {
9268c2ecf20Sopenharmony_ci	.cmd_rcgr = 0xf014,
9278c2ecf20Sopenharmony_ci	.mnd_width = 8,
9288c2ecf20Sopenharmony_ci	.hid_width = 5,
9298c2ecf20Sopenharmony_ci	.parent_map = gcc_parent_map_xo_gpll0_gpll0_early_div,
9308c2ecf20Sopenharmony_ci	.freq_tbl = ftbl_usb30_master_clk_src,
9318c2ecf20Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
9328c2ecf20Sopenharmony_ci		.name = "usb30_master_clk_src",
9338c2ecf20Sopenharmony_ci		.parent_names = gcc_parent_names_xo_gpll0_gpll0_early_div,
9348c2ecf20Sopenharmony_ci		.num_parents = 3,
9358c2ecf20Sopenharmony_ci		.ops = &clk_rcg2_ops,
9368c2ecf20Sopenharmony_ci	},
9378c2ecf20Sopenharmony_ci};
9388c2ecf20Sopenharmony_ci
9398c2ecf20Sopenharmony_cistatic const struct freq_tbl ftbl_usb30_mock_utmi_clk_src[] = {
9408c2ecf20Sopenharmony_ci	F(19200000, P_XO, 1, 0, 0),
9418c2ecf20Sopenharmony_ci	F(40000000, P_GPLL0_EARLY_DIV, 7.5, 0, 0),
9428c2ecf20Sopenharmony_ci	F(60000000, P_GPLL0, 10, 0, 0),
9438c2ecf20Sopenharmony_ci	{ }
9448c2ecf20Sopenharmony_ci};
9458c2ecf20Sopenharmony_ci
9468c2ecf20Sopenharmony_cistatic struct clk_rcg2 usb30_mock_utmi_clk_src = {
9478c2ecf20Sopenharmony_ci	.cmd_rcgr = 0xf028,
9488c2ecf20Sopenharmony_ci	.mnd_width = 0,
9498c2ecf20Sopenharmony_ci	.hid_width = 5,
9508c2ecf20Sopenharmony_ci	.parent_map = gcc_parent_map_xo_gpll0_gpll0_early_div,
9518c2ecf20Sopenharmony_ci	.freq_tbl = ftbl_usb30_mock_utmi_clk_src,
9528c2ecf20Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
9538c2ecf20Sopenharmony_ci		.name = "usb30_mock_utmi_clk_src",
9548c2ecf20Sopenharmony_ci		.parent_names = gcc_parent_names_xo_gpll0_gpll0_early_div,
9558c2ecf20Sopenharmony_ci		.num_parents = 3,
9568c2ecf20Sopenharmony_ci		.ops = &clk_rcg2_ops,
9578c2ecf20Sopenharmony_ci	},
9588c2ecf20Sopenharmony_ci};
9598c2ecf20Sopenharmony_ci
9608c2ecf20Sopenharmony_cistatic const struct freq_tbl ftbl_usb3_phy_aux_clk_src[] = {
9618c2ecf20Sopenharmony_ci	F(1200000, P_XO, 16, 0, 0),
9628c2ecf20Sopenharmony_ci	F(19200000, P_XO, 1, 0, 0),
9638c2ecf20Sopenharmony_ci	{ }
9648c2ecf20Sopenharmony_ci};
9658c2ecf20Sopenharmony_ci
9668c2ecf20Sopenharmony_cistatic struct clk_rcg2 usb3_phy_aux_clk_src = {
9678c2ecf20Sopenharmony_ci	.cmd_rcgr = 0x5000c,
9688c2ecf20Sopenharmony_ci	.mnd_width = 0,
9698c2ecf20Sopenharmony_ci	.hid_width = 5,
9708c2ecf20Sopenharmony_ci	.parent_map = gcc_parent_map_xo_sleep_clk,
9718c2ecf20Sopenharmony_ci	.freq_tbl = ftbl_usb3_phy_aux_clk_src,
9728c2ecf20Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
9738c2ecf20Sopenharmony_ci		.name = "usb3_phy_aux_clk_src",
9748c2ecf20Sopenharmony_ci		.parent_names = gcc_parent_names_xo_sleep_clk,
9758c2ecf20Sopenharmony_ci		.num_parents = 2,
9768c2ecf20Sopenharmony_ci		.ops = &clk_rcg2_ops,
9778c2ecf20Sopenharmony_ci	},
9788c2ecf20Sopenharmony_ci};
9798c2ecf20Sopenharmony_ci
9808c2ecf20Sopenharmony_cistatic struct clk_branch gcc_aggre2_ufs_axi_clk = {
9818c2ecf20Sopenharmony_ci	.halt_reg = 0x75034,
9828c2ecf20Sopenharmony_ci	.halt_check = BRANCH_HALT,
9838c2ecf20Sopenharmony_ci	.clkr = {
9848c2ecf20Sopenharmony_ci		.enable_reg = 0x75034,
9858c2ecf20Sopenharmony_ci		.enable_mask = BIT(0),
9868c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
9878c2ecf20Sopenharmony_ci			.name = "gcc_aggre2_ufs_axi_clk",
9888c2ecf20Sopenharmony_ci			.parent_names = (const char *[]){
9898c2ecf20Sopenharmony_ci				"ufs_axi_clk_src",
9908c2ecf20Sopenharmony_ci			},
9918c2ecf20Sopenharmony_ci			.num_parents = 1,
9928c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
9938c2ecf20Sopenharmony_ci		},
9948c2ecf20Sopenharmony_ci	},
9958c2ecf20Sopenharmony_ci};
9968c2ecf20Sopenharmony_ci
9978c2ecf20Sopenharmony_cistatic struct clk_branch gcc_aggre2_usb3_axi_clk = {
9988c2ecf20Sopenharmony_ci	.halt_reg = 0xf03c,
9998c2ecf20Sopenharmony_ci	.halt_check = BRANCH_HALT,
10008c2ecf20Sopenharmony_ci	.clkr = {
10018c2ecf20Sopenharmony_ci		.enable_reg = 0xf03c,
10028c2ecf20Sopenharmony_ci		.enable_mask = BIT(0),
10038c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
10048c2ecf20Sopenharmony_ci			.name = "gcc_aggre2_usb3_axi_clk",
10058c2ecf20Sopenharmony_ci			.parent_names = (const char *[]){
10068c2ecf20Sopenharmony_ci				"usb30_master_clk_src",
10078c2ecf20Sopenharmony_ci			},
10088c2ecf20Sopenharmony_ci			.num_parents = 1,
10098c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
10108c2ecf20Sopenharmony_ci		},
10118c2ecf20Sopenharmony_ci	},
10128c2ecf20Sopenharmony_ci};
10138c2ecf20Sopenharmony_ci
10148c2ecf20Sopenharmony_cistatic struct clk_branch gcc_bimc_gfx_clk = {
10158c2ecf20Sopenharmony_ci	.halt_reg = 0x7106c,
10168c2ecf20Sopenharmony_ci	.halt_check = BRANCH_VOTED,
10178c2ecf20Sopenharmony_ci	.clkr = {
10188c2ecf20Sopenharmony_ci		.enable_reg = 0x7106c,
10198c2ecf20Sopenharmony_ci		.enable_mask = BIT(0),
10208c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
10218c2ecf20Sopenharmony_ci			.name = "gcc_bimc_gfx_clk",
10228c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
10238c2ecf20Sopenharmony_ci		},
10248c2ecf20Sopenharmony_ci	},
10258c2ecf20Sopenharmony_ci};
10268c2ecf20Sopenharmony_ci
10278c2ecf20Sopenharmony_cistatic struct clk_branch gcc_bimc_hmss_axi_clk = {
10288c2ecf20Sopenharmony_ci	.halt_reg = 0x48004,
10298c2ecf20Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
10308c2ecf20Sopenharmony_ci	.clkr = {
10318c2ecf20Sopenharmony_ci		.enable_reg = 0x52004,
10328c2ecf20Sopenharmony_ci		.enable_mask = BIT(22),
10338c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
10348c2ecf20Sopenharmony_ci			.name = "gcc_bimc_hmss_axi_clk",
10358c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
10368c2ecf20Sopenharmony_ci		},
10378c2ecf20Sopenharmony_ci	},
10388c2ecf20Sopenharmony_ci};
10398c2ecf20Sopenharmony_ci
10408c2ecf20Sopenharmony_cistatic struct clk_branch gcc_bimc_mss_q6_axi_clk = {
10418c2ecf20Sopenharmony_ci	.halt_reg = 0x4401c,
10428c2ecf20Sopenharmony_ci	.halt_check = BRANCH_HALT,
10438c2ecf20Sopenharmony_ci	.clkr = {
10448c2ecf20Sopenharmony_ci		.enable_reg = 0x4401c,
10458c2ecf20Sopenharmony_ci		.enable_mask = BIT(0),
10468c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
10478c2ecf20Sopenharmony_ci			.name = "gcc_bimc_mss_q6_axi_clk",
10488c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
10498c2ecf20Sopenharmony_ci		},
10508c2ecf20Sopenharmony_ci	},
10518c2ecf20Sopenharmony_ci};
10528c2ecf20Sopenharmony_ci
10538c2ecf20Sopenharmony_cistatic struct clk_branch gcc_blsp1_ahb_clk = {
10548c2ecf20Sopenharmony_ci	.halt_reg = 0x17004,
10558c2ecf20Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
10568c2ecf20Sopenharmony_ci	.clkr = {
10578c2ecf20Sopenharmony_ci		.enable_reg = 0x52004,
10588c2ecf20Sopenharmony_ci		.enable_mask = BIT(17),
10598c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
10608c2ecf20Sopenharmony_ci			.name = "gcc_blsp1_ahb_clk",
10618c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
10628c2ecf20Sopenharmony_ci		},
10638c2ecf20Sopenharmony_ci	},
10648c2ecf20Sopenharmony_ci};
10658c2ecf20Sopenharmony_ci
10668c2ecf20Sopenharmony_cistatic struct clk_branch gcc_blsp1_qup1_i2c_apps_clk = {
10678c2ecf20Sopenharmony_ci	.halt_reg = 0x19008,
10688c2ecf20Sopenharmony_ci	.halt_check = BRANCH_HALT,
10698c2ecf20Sopenharmony_ci	.clkr = {
10708c2ecf20Sopenharmony_ci		.enable_reg = 0x19008,
10718c2ecf20Sopenharmony_ci		.enable_mask = BIT(0),
10728c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
10738c2ecf20Sopenharmony_ci			.name = "gcc_blsp1_qup1_i2c_apps_clk",
10748c2ecf20Sopenharmony_ci			.parent_names = (const char *[]){
10758c2ecf20Sopenharmony_ci				"blsp1_qup1_i2c_apps_clk_src",
10768c2ecf20Sopenharmony_ci			},
10778c2ecf20Sopenharmony_ci			.num_parents = 1,
10788c2ecf20Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
10798c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
10808c2ecf20Sopenharmony_ci		},
10818c2ecf20Sopenharmony_ci	},
10828c2ecf20Sopenharmony_ci};
10838c2ecf20Sopenharmony_ci
10848c2ecf20Sopenharmony_cistatic struct clk_branch gcc_blsp1_qup1_spi_apps_clk = {
10858c2ecf20Sopenharmony_ci	.halt_reg = 0x19004,
10868c2ecf20Sopenharmony_ci	.halt_check = BRANCH_HALT,
10878c2ecf20Sopenharmony_ci	.clkr = {
10888c2ecf20Sopenharmony_ci		.enable_reg = 0x19004,
10898c2ecf20Sopenharmony_ci		.enable_mask = BIT(0),
10908c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
10918c2ecf20Sopenharmony_ci			.name = "gcc_blsp1_qup1_spi_apps_clk",
10928c2ecf20Sopenharmony_ci			.parent_names = (const char *[]){
10938c2ecf20Sopenharmony_ci				"blsp1_qup1_spi_apps_clk_src",
10948c2ecf20Sopenharmony_ci			},
10958c2ecf20Sopenharmony_ci			.num_parents = 1,
10968c2ecf20Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
10978c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
10988c2ecf20Sopenharmony_ci		},
10998c2ecf20Sopenharmony_ci	},
11008c2ecf20Sopenharmony_ci};
11018c2ecf20Sopenharmony_ci
11028c2ecf20Sopenharmony_cistatic struct clk_branch gcc_blsp1_qup2_i2c_apps_clk = {
11038c2ecf20Sopenharmony_ci	.halt_reg = 0x1b008,
11048c2ecf20Sopenharmony_ci	.halt_check = BRANCH_HALT,
11058c2ecf20Sopenharmony_ci	.clkr = {
11068c2ecf20Sopenharmony_ci		.enable_reg = 0x1b008,
11078c2ecf20Sopenharmony_ci		.enable_mask = BIT(0),
11088c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
11098c2ecf20Sopenharmony_ci			.name = "gcc_blsp1_qup2_i2c_apps_clk",
11108c2ecf20Sopenharmony_ci			.parent_names = (const char *[]){
11118c2ecf20Sopenharmony_ci				"blsp1_qup2_i2c_apps_clk_src",
11128c2ecf20Sopenharmony_ci			},
11138c2ecf20Sopenharmony_ci			.num_parents = 1,
11148c2ecf20Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
11158c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
11168c2ecf20Sopenharmony_ci		},
11178c2ecf20Sopenharmony_ci	},
11188c2ecf20Sopenharmony_ci};
11198c2ecf20Sopenharmony_ci
11208c2ecf20Sopenharmony_cistatic struct clk_branch gcc_blsp1_qup2_spi_apps_clk = {
11218c2ecf20Sopenharmony_ci	.halt_reg = 0x1b004,
11228c2ecf20Sopenharmony_ci	.halt_check = BRANCH_HALT,
11238c2ecf20Sopenharmony_ci	.clkr = {
11248c2ecf20Sopenharmony_ci		.enable_reg = 0x1b004,
11258c2ecf20Sopenharmony_ci		.enable_mask = BIT(0),
11268c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
11278c2ecf20Sopenharmony_ci			.name = "gcc_blsp1_qup2_spi_apps_clk",
11288c2ecf20Sopenharmony_ci			.parent_names = (const char *[]){
11298c2ecf20Sopenharmony_ci				"blsp1_qup2_spi_apps_clk_src",
11308c2ecf20Sopenharmony_ci			},
11318c2ecf20Sopenharmony_ci			.num_parents = 1,
11328c2ecf20Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
11338c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
11348c2ecf20Sopenharmony_ci		},
11358c2ecf20Sopenharmony_ci	},
11368c2ecf20Sopenharmony_ci};
11378c2ecf20Sopenharmony_ci
11388c2ecf20Sopenharmony_cistatic struct clk_branch gcc_blsp1_qup3_i2c_apps_clk = {
11398c2ecf20Sopenharmony_ci	.halt_reg = 0x1d008,
11408c2ecf20Sopenharmony_ci	.halt_check = BRANCH_HALT,
11418c2ecf20Sopenharmony_ci	.clkr = {
11428c2ecf20Sopenharmony_ci		.enable_reg = 0x1d008,
11438c2ecf20Sopenharmony_ci		.enable_mask = BIT(0),
11448c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
11458c2ecf20Sopenharmony_ci			.name = "gcc_blsp1_qup3_i2c_apps_clk",
11468c2ecf20Sopenharmony_ci			.parent_names = (const char *[]){
11478c2ecf20Sopenharmony_ci				"blsp1_qup3_i2c_apps_clk_src",
11488c2ecf20Sopenharmony_ci			},
11498c2ecf20Sopenharmony_ci			.num_parents = 1,
11508c2ecf20Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
11518c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
11528c2ecf20Sopenharmony_ci		},
11538c2ecf20Sopenharmony_ci	},
11548c2ecf20Sopenharmony_ci};
11558c2ecf20Sopenharmony_ci
11568c2ecf20Sopenharmony_cistatic struct clk_branch gcc_blsp1_qup3_spi_apps_clk = {
11578c2ecf20Sopenharmony_ci	.halt_reg = 0x1d004,
11588c2ecf20Sopenharmony_ci	.halt_check = BRANCH_HALT,
11598c2ecf20Sopenharmony_ci	.clkr = {
11608c2ecf20Sopenharmony_ci		.enable_reg = 0x1d004,
11618c2ecf20Sopenharmony_ci		.enable_mask = BIT(0),
11628c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
11638c2ecf20Sopenharmony_ci			.name = "gcc_blsp1_qup3_spi_apps_clk",
11648c2ecf20Sopenharmony_ci			.parent_names = (const char *[]){
11658c2ecf20Sopenharmony_ci				"blsp1_qup3_spi_apps_clk_src",
11668c2ecf20Sopenharmony_ci			},
11678c2ecf20Sopenharmony_ci			.num_parents = 1,
11688c2ecf20Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
11698c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
11708c2ecf20Sopenharmony_ci		},
11718c2ecf20Sopenharmony_ci	},
11728c2ecf20Sopenharmony_ci};
11738c2ecf20Sopenharmony_ci
11748c2ecf20Sopenharmony_cistatic struct clk_branch gcc_blsp1_qup4_i2c_apps_clk = {
11758c2ecf20Sopenharmony_ci	.halt_reg = 0x1f008,
11768c2ecf20Sopenharmony_ci	.halt_check = BRANCH_HALT,
11778c2ecf20Sopenharmony_ci	.clkr = {
11788c2ecf20Sopenharmony_ci		.enable_reg = 0x1f008,
11798c2ecf20Sopenharmony_ci		.enable_mask = BIT(0),
11808c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
11818c2ecf20Sopenharmony_ci			.name = "gcc_blsp1_qup4_i2c_apps_clk",
11828c2ecf20Sopenharmony_ci			.parent_names = (const char *[]){
11838c2ecf20Sopenharmony_ci				"blsp1_qup4_i2c_apps_clk_src",
11848c2ecf20Sopenharmony_ci			},
11858c2ecf20Sopenharmony_ci			.num_parents = 1,
11868c2ecf20Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
11878c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
11888c2ecf20Sopenharmony_ci		},
11898c2ecf20Sopenharmony_ci	},
11908c2ecf20Sopenharmony_ci};
11918c2ecf20Sopenharmony_ci
11928c2ecf20Sopenharmony_cistatic struct clk_branch gcc_blsp1_qup4_spi_apps_clk = {
11938c2ecf20Sopenharmony_ci	.halt_reg = 0x1f004,
11948c2ecf20Sopenharmony_ci	.halt_check = BRANCH_HALT,
11958c2ecf20Sopenharmony_ci	.clkr = {
11968c2ecf20Sopenharmony_ci		.enable_reg = 0x1f004,
11978c2ecf20Sopenharmony_ci		.enable_mask = BIT(0),
11988c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
11998c2ecf20Sopenharmony_ci			.name = "gcc_blsp1_qup4_spi_apps_clk",
12008c2ecf20Sopenharmony_ci			.parent_names = (const char *[]){
12018c2ecf20Sopenharmony_ci				"blsp1_qup4_spi_apps_clk_src",
12028c2ecf20Sopenharmony_ci			},
12038c2ecf20Sopenharmony_ci			.num_parents = 1,
12048c2ecf20Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
12058c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
12068c2ecf20Sopenharmony_ci		},
12078c2ecf20Sopenharmony_ci	},
12088c2ecf20Sopenharmony_ci};
12098c2ecf20Sopenharmony_ci
12108c2ecf20Sopenharmony_cistatic struct clk_branch gcc_blsp1_uart1_apps_clk = {
12118c2ecf20Sopenharmony_ci	.halt_reg = 0x1a004,
12128c2ecf20Sopenharmony_ci	.halt_check = BRANCH_HALT,
12138c2ecf20Sopenharmony_ci	.clkr = {
12148c2ecf20Sopenharmony_ci		.enable_reg = 0x1a004,
12158c2ecf20Sopenharmony_ci		.enable_mask = BIT(0),
12168c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
12178c2ecf20Sopenharmony_ci			.name = "gcc_blsp1_uart1_apps_clk",
12188c2ecf20Sopenharmony_ci			.parent_names = (const char *[]){
12198c2ecf20Sopenharmony_ci				"blsp1_uart1_apps_clk_src",
12208c2ecf20Sopenharmony_ci			},
12218c2ecf20Sopenharmony_ci			.num_parents = 1,
12228c2ecf20Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
12238c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
12248c2ecf20Sopenharmony_ci		},
12258c2ecf20Sopenharmony_ci	},
12268c2ecf20Sopenharmony_ci};
12278c2ecf20Sopenharmony_ci
12288c2ecf20Sopenharmony_cistatic struct clk_branch gcc_blsp1_uart2_apps_clk = {
12298c2ecf20Sopenharmony_ci	.halt_reg = 0x1c004,
12308c2ecf20Sopenharmony_ci	.halt_check = BRANCH_HALT,
12318c2ecf20Sopenharmony_ci	.clkr = {
12328c2ecf20Sopenharmony_ci		.enable_reg = 0x1c004,
12338c2ecf20Sopenharmony_ci		.enable_mask = BIT(0),
12348c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
12358c2ecf20Sopenharmony_ci			.name = "gcc_blsp1_uart2_apps_clk",
12368c2ecf20Sopenharmony_ci			.parent_names = (const char *[]){
12378c2ecf20Sopenharmony_ci				"blsp1_uart2_apps_clk_src",
12388c2ecf20Sopenharmony_ci			},
12398c2ecf20Sopenharmony_ci			.num_parents = 1,
12408c2ecf20Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
12418c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
12428c2ecf20Sopenharmony_ci		},
12438c2ecf20Sopenharmony_ci	},
12448c2ecf20Sopenharmony_ci};
12458c2ecf20Sopenharmony_ci
12468c2ecf20Sopenharmony_cistatic struct clk_branch gcc_blsp2_ahb_clk = {
12478c2ecf20Sopenharmony_ci	.halt_reg = 0x25004,
12488c2ecf20Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
12498c2ecf20Sopenharmony_ci	.clkr = {
12508c2ecf20Sopenharmony_ci		.enable_reg = 0x52004,
12518c2ecf20Sopenharmony_ci		.enable_mask = BIT(15),
12528c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
12538c2ecf20Sopenharmony_ci			.name = "gcc_blsp2_ahb_clk",
12548c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
12558c2ecf20Sopenharmony_ci		},
12568c2ecf20Sopenharmony_ci	},
12578c2ecf20Sopenharmony_ci};
12588c2ecf20Sopenharmony_ci
12598c2ecf20Sopenharmony_cistatic struct clk_branch gcc_blsp2_qup1_i2c_apps_clk = {
12608c2ecf20Sopenharmony_ci	.halt_reg = 0x26008,
12618c2ecf20Sopenharmony_ci	.halt_check = BRANCH_HALT,
12628c2ecf20Sopenharmony_ci	.clkr = {
12638c2ecf20Sopenharmony_ci		.enable_reg = 0x26008,
12648c2ecf20Sopenharmony_ci		.enable_mask = BIT(0),
12658c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
12668c2ecf20Sopenharmony_ci			.name = "gcc_blsp2_qup1_i2c_apps_clk",
12678c2ecf20Sopenharmony_ci			.parent_names = (const char *[]){
12688c2ecf20Sopenharmony_ci				"blsp2_qup1_i2c_apps_clk_src",
12698c2ecf20Sopenharmony_ci			},
12708c2ecf20Sopenharmony_ci			.num_parents = 1,
12718c2ecf20Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
12728c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
12738c2ecf20Sopenharmony_ci		},
12748c2ecf20Sopenharmony_ci	},
12758c2ecf20Sopenharmony_ci};
12768c2ecf20Sopenharmony_ci
12778c2ecf20Sopenharmony_cistatic struct clk_branch gcc_blsp2_qup1_spi_apps_clk = {
12788c2ecf20Sopenharmony_ci	.halt_reg = 0x26004,
12798c2ecf20Sopenharmony_ci	.halt_check = BRANCH_HALT,
12808c2ecf20Sopenharmony_ci	.clkr = {
12818c2ecf20Sopenharmony_ci		.enable_reg = 0x26004,
12828c2ecf20Sopenharmony_ci		.enable_mask = BIT(0),
12838c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
12848c2ecf20Sopenharmony_ci			.name = "gcc_blsp2_qup1_spi_apps_clk",
12858c2ecf20Sopenharmony_ci			.parent_names = (const char *[]){
12868c2ecf20Sopenharmony_ci				"blsp2_qup1_spi_apps_clk_src",
12878c2ecf20Sopenharmony_ci			},
12888c2ecf20Sopenharmony_ci			.num_parents = 1,
12898c2ecf20Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
12908c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
12918c2ecf20Sopenharmony_ci		},
12928c2ecf20Sopenharmony_ci	},
12938c2ecf20Sopenharmony_ci};
12948c2ecf20Sopenharmony_ci
12958c2ecf20Sopenharmony_cistatic struct clk_branch gcc_blsp2_qup2_i2c_apps_clk = {
12968c2ecf20Sopenharmony_ci	.halt_reg = 0x28008,
12978c2ecf20Sopenharmony_ci	.halt_check = BRANCH_HALT,
12988c2ecf20Sopenharmony_ci	.clkr = {
12998c2ecf20Sopenharmony_ci		.enable_reg = 0x28008,
13008c2ecf20Sopenharmony_ci		.enable_mask = BIT(0),
13018c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
13028c2ecf20Sopenharmony_ci			.name = "gcc_blsp2_qup2_i2c_apps_clk",
13038c2ecf20Sopenharmony_ci			.parent_names = (const char *[]){
13048c2ecf20Sopenharmony_ci				"blsp2_qup2_i2c_apps_clk_src",
13058c2ecf20Sopenharmony_ci			},
13068c2ecf20Sopenharmony_ci			.num_parents = 1,
13078c2ecf20Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
13088c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
13098c2ecf20Sopenharmony_ci		},
13108c2ecf20Sopenharmony_ci	},
13118c2ecf20Sopenharmony_ci};
13128c2ecf20Sopenharmony_ci
13138c2ecf20Sopenharmony_cistatic struct clk_branch gcc_blsp2_qup2_spi_apps_clk = {
13148c2ecf20Sopenharmony_ci	.halt_reg = 0x28004,
13158c2ecf20Sopenharmony_ci	.halt_check = BRANCH_HALT,
13168c2ecf20Sopenharmony_ci	.clkr = {
13178c2ecf20Sopenharmony_ci		.enable_reg = 0x28004,
13188c2ecf20Sopenharmony_ci		.enable_mask = BIT(0),
13198c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
13208c2ecf20Sopenharmony_ci			.name = "gcc_blsp2_qup2_spi_apps_clk",
13218c2ecf20Sopenharmony_ci			.parent_names = (const char *[]){
13228c2ecf20Sopenharmony_ci				"blsp2_qup2_spi_apps_clk_src",
13238c2ecf20Sopenharmony_ci			},
13248c2ecf20Sopenharmony_ci			.num_parents = 1,
13258c2ecf20Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
13268c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
13278c2ecf20Sopenharmony_ci		},
13288c2ecf20Sopenharmony_ci	},
13298c2ecf20Sopenharmony_ci};
13308c2ecf20Sopenharmony_ci
13318c2ecf20Sopenharmony_cistatic struct clk_branch gcc_blsp2_qup3_i2c_apps_clk = {
13328c2ecf20Sopenharmony_ci	.halt_reg = 0x2a008,
13338c2ecf20Sopenharmony_ci	.halt_check = BRANCH_HALT,
13348c2ecf20Sopenharmony_ci	.clkr = {
13358c2ecf20Sopenharmony_ci		.enable_reg = 0x2a008,
13368c2ecf20Sopenharmony_ci		.enable_mask = BIT(0),
13378c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
13388c2ecf20Sopenharmony_ci			.name = "gcc_blsp2_qup3_i2c_apps_clk",
13398c2ecf20Sopenharmony_ci			.parent_names = (const char *[]){
13408c2ecf20Sopenharmony_ci				"blsp2_qup3_i2c_apps_clk_src",
13418c2ecf20Sopenharmony_ci			},
13428c2ecf20Sopenharmony_ci			.num_parents = 1,
13438c2ecf20Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
13448c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
13458c2ecf20Sopenharmony_ci		},
13468c2ecf20Sopenharmony_ci	},
13478c2ecf20Sopenharmony_ci};
13488c2ecf20Sopenharmony_ci
13498c2ecf20Sopenharmony_cistatic struct clk_branch gcc_blsp2_qup3_spi_apps_clk = {
13508c2ecf20Sopenharmony_ci	.halt_reg = 0x2a004,
13518c2ecf20Sopenharmony_ci	.halt_check = BRANCH_HALT,
13528c2ecf20Sopenharmony_ci	.clkr = {
13538c2ecf20Sopenharmony_ci		.enable_reg = 0x2a004,
13548c2ecf20Sopenharmony_ci		.enable_mask = BIT(0),
13558c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
13568c2ecf20Sopenharmony_ci			.name = "gcc_blsp2_qup3_spi_apps_clk",
13578c2ecf20Sopenharmony_ci			.parent_names = (const char *[]){
13588c2ecf20Sopenharmony_ci				"blsp2_qup3_spi_apps_clk_src",
13598c2ecf20Sopenharmony_ci			},
13608c2ecf20Sopenharmony_ci			.num_parents = 1,
13618c2ecf20Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
13628c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
13638c2ecf20Sopenharmony_ci		},
13648c2ecf20Sopenharmony_ci	},
13658c2ecf20Sopenharmony_ci};
13668c2ecf20Sopenharmony_ci
13678c2ecf20Sopenharmony_cistatic struct clk_branch gcc_blsp2_qup4_i2c_apps_clk = {
13688c2ecf20Sopenharmony_ci	.halt_reg = 0x2c008,
13698c2ecf20Sopenharmony_ci	.halt_check = BRANCH_HALT,
13708c2ecf20Sopenharmony_ci	.clkr = {
13718c2ecf20Sopenharmony_ci		.enable_reg = 0x2c008,
13728c2ecf20Sopenharmony_ci		.enable_mask = BIT(0),
13738c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
13748c2ecf20Sopenharmony_ci			.name = "gcc_blsp2_qup4_i2c_apps_clk",
13758c2ecf20Sopenharmony_ci			.parent_names = (const char *[]){
13768c2ecf20Sopenharmony_ci				"blsp2_qup4_i2c_apps_clk_src",
13778c2ecf20Sopenharmony_ci			},
13788c2ecf20Sopenharmony_ci			.num_parents = 1,
13798c2ecf20Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
13808c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
13818c2ecf20Sopenharmony_ci		},
13828c2ecf20Sopenharmony_ci	},
13838c2ecf20Sopenharmony_ci};
13848c2ecf20Sopenharmony_ci
13858c2ecf20Sopenharmony_cistatic struct clk_branch gcc_blsp2_qup4_spi_apps_clk = {
13868c2ecf20Sopenharmony_ci	.halt_reg = 0x2c004,
13878c2ecf20Sopenharmony_ci	.halt_check = BRANCH_HALT,
13888c2ecf20Sopenharmony_ci	.clkr = {
13898c2ecf20Sopenharmony_ci		.enable_reg = 0x2c004,
13908c2ecf20Sopenharmony_ci		.enable_mask = BIT(0),
13918c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
13928c2ecf20Sopenharmony_ci			.name = "gcc_blsp2_qup4_spi_apps_clk",
13938c2ecf20Sopenharmony_ci			.parent_names = (const char *[]){
13948c2ecf20Sopenharmony_ci				"blsp2_qup4_spi_apps_clk_src",
13958c2ecf20Sopenharmony_ci			},
13968c2ecf20Sopenharmony_ci			.num_parents = 1,
13978c2ecf20Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
13988c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
13998c2ecf20Sopenharmony_ci		},
14008c2ecf20Sopenharmony_ci	},
14018c2ecf20Sopenharmony_ci};
14028c2ecf20Sopenharmony_ci
14038c2ecf20Sopenharmony_cistatic struct clk_branch gcc_blsp2_uart1_apps_clk = {
14048c2ecf20Sopenharmony_ci	.halt_reg = 0x27004,
14058c2ecf20Sopenharmony_ci	.halt_check = BRANCH_HALT,
14068c2ecf20Sopenharmony_ci	.clkr = {
14078c2ecf20Sopenharmony_ci		.enable_reg = 0x27004,
14088c2ecf20Sopenharmony_ci		.enable_mask = BIT(0),
14098c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
14108c2ecf20Sopenharmony_ci			.name = "gcc_blsp2_uart1_apps_clk",
14118c2ecf20Sopenharmony_ci			.parent_names = (const char *[]){
14128c2ecf20Sopenharmony_ci				"blsp2_uart1_apps_clk_src",
14138c2ecf20Sopenharmony_ci			},
14148c2ecf20Sopenharmony_ci			.num_parents = 1,
14158c2ecf20Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
14168c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
14178c2ecf20Sopenharmony_ci		},
14188c2ecf20Sopenharmony_ci	},
14198c2ecf20Sopenharmony_ci};
14208c2ecf20Sopenharmony_ci
14218c2ecf20Sopenharmony_cistatic struct clk_branch gcc_blsp2_uart2_apps_clk = {
14228c2ecf20Sopenharmony_ci	.halt_reg = 0x29004,
14238c2ecf20Sopenharmony_ci	.halt_check = BRANCH_HALT,
14248c2ecf20Sopenharmony_ci	.clkr = {
14258c2ecf20Sopenharmony_ci		.enable_reg = 0x29004,
14268c2ecf20Sopenharmony_ci		.enable_mask = BIT(0),
14278c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
14288c2ecf20Sopenharmony_ci			.name = "gcc_blsp2_uart2_apps_clk",
14298c2ecf20Sopenharmony_ci			.parent_names = (const char *[]){
14308c2ecf20Sopenharmony_ci				"blsp2_uart2_apps_clk_src",
14318c2ecf20Sopenharmony_ci			},
14328c2ecf20Sopenharmony_ci			.num_parents = 1,
14338c2ecf20Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
14348c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
14358c2ecf20Sopenharmony_ci		},
14368c2ecf20Sopenharmony_ci	},
14378c2ecf20Sopenharmony_ci};
14388c2ecf20Sopenharmony_ci
14398c2ecf20Sopenharmony_cistatic struct clk_branch gcc_boot_rom_ahb_clk = {
14408c2ecf20Sopenharmony_ci	.halt_reg = 0x38004,
14418c2ecf20Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
14428c2ecf20Sopenharmony_ci	.clkr = {
14438c2ecf20Sopenharmony_ci		.enable_reg = 0x52004,
14448c2ecf20Sopenharmony_ci		.enable_mask = BIT(10),
14458c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
14468c2ecf20Sopenharmony_ci			.name = "gcc_boot_rom_ahb_clk",
14478c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
14488c2ecf20Sopenharmony_ci		},
14498c2ecf20Sopenharmony_ci	},
14508c2ecf20Sopenharmony_ci};
14518c2ecf20Sopenharmony_ci
14528c2ecf20Sopenharmony_cistatic struct clk_branch gcc_cfg_noc_usb2_axi_clk = {
14538c2ecf20Sopenharmony_ci	.halt_reg = 0x5058,
14548c2ecf20Sopenharmony_ci	.halt_check = BRANCH_HALT,
14558c2ecf20Sopenharmony_ci	.clkr = {
14568c2ecf20Sopenharmony_ci		.enable_reg = 0x5058,
14578c2ecf20Sopenharmony_ci		.enable_mask = BIT(0),
14588c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
14598c2ecf20Sopenharmony_ci			.name = "gcc_cfg_noc_usb2_axi_clk",
14608c2ecf20Sopenharmony_ci			.parent_names = (const char *[]){
14618c2ecf20Sopenharmony_ci				"usb20_master_clk_src",
14628c2ecf20Sopenharmony_ci			},
14638c2ecf20Sopenharmony_ci			.num_parents = 1,
14648c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
14658c2ecf20Sopenharmony_ci		},
14668c2ecf20Sopenharmony_ci	},
14678c2ecf20Sopenharmony_ci};
14688c2ecf20Sopenharmony_ci
14698c2ecf20Sopenharmony_cistatic struct clk_branch gcc_cfg_noc_usb3_axi_clk = {
14708c2ecf20Sopenharmony_ci	.halt_reg = 0x5018,
14718c2ecf20Sopenharmony_ci	.halt_check = BRANCH_HALT,
14728c2ecf20Sopenharmony_ci	.clkr = {
14738c2ecf20Sopenharmony_ci		.enable_reg = 0x5018,
14748c2ecf20Sopenharmony_ci		.enable_mask = BIT(0),
14758c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
14768c2ecf20Sopenharmony_ci			.name = "gcc_cfg_noc_usb3_axi_clk",
14778c2ecf20Sopenharmony_ci			.parent_names = (const char *[]){
14788c2ecf20Sopenharmony_ci				"usb30_master_clk_src",
14798c2ecf20Sopenharmony_ci			},
14808c2ecf20Sopenharmony_ci			.num_parents = 1,
14818c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
14828c2ecf20Sopenharmony_ci		},
14838c2ecf20Sopenharmony_ci	},
14848c2ecf20Sopenharmony_ci};
14858c2ecf20Sopenharmony_ci
14868c2ecf20Sopenharmony_cistatic struct clk_branch gcc_dcc_ahb_clk = {
14878c2ecf20Sopenharmony_ci	.halt_reg = 0x84004,
14888c2ecf20Sopenharmony_ci	.clkr = {
14898c2ecf20Sopenharmony_ci		.enable_reg = 0x84004,
14908c2ecf20Sopenharmony_ci		.enable_mask = BIT(0),
14918c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
14928c2ecf20Sopenharmony_ci			.name = "gcc_dcc_ahb_clk",
14938c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
14948c2ecf20Sopenharmony_ci		},
14958c2ecf20Sopenharmony_ci	},
14968c2ecf20Sopenharmony_ci};
14978c2ecf20Sopenharmony_ci
14988c2ecf20Sopenharmony_cistatic struct clk_branch gcc_gp1_clk = {
14998c2ecf20Sopenharmony_ci	.halt_reg = 0x64000,
15008c2ecf20Sopenharmony_ci	.halt_check = BRANCH_HALT,
15018c2ecf20Sopenharmony_ci	.clkr = {
15028c2ecf20Sopenharmony_ci		.enable_reg = 0x64000,
15038c2ecf20Sopenharmony_ci		.enable_mask = BIT(0),
15048c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
15058c2ecf20Sopenharmony_ci			.name = "gcc_gp1_clk",
15068c2ecf20Sopenharmony_ci			.parent_names = (const char *[]){
15078c2ecf20Sopenharmony_ci				"gp1_clk_src",
15088c2ecf20Sopenharmony_ci			},
15098c2ecf20Sopenharmony_ci			.num_parents = 1,
15108c2ecf20Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
15118c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
15128c2ecf20Sopenharmony_ci		},
15138c2ecf20Sopenharmony_ci	},
15148c2ecf20Sopenharmony_ci};
15158c2ecf20Sopenharmony_ci
15168c2ecf20Sopenharmony_cistatic struct clk_branch gcc_gp2_clk = {
15178c2ecf20Sopenharmony_ci	.halt_reg = 0x65000,
15188c2ecf20Sopenharmony_ci	.halt_check = BRANCH_HALT,
15198c2ecf20Sopenharmony_ci	.clkr = {
15208c2ecf20Sopenharmony_ci		.enable_reg = 0x65000,
15218c2ecf20Sopenharmony_ci		.enable_mask = BIT(0),
15228c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
15238c2ecf20Sopenharmony_ci			.name = "gcc_gp2_clk",
15248c2ecf20Sopenharmony_ci			.parent_names = (const char *[]){
15258c2ecf20Sopenharmony_ci				"gp2_clk_src",
15268c2ecf20Sopenharmony_ci			},
15278c2ecf20Sopenharmony_ci			.num_parents = 1,
15288c2ecf20Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
15298c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
15308c2ecf20Sopenharmony_ci		},
15318c2ecf20Sopenharmony_ci	},
15328c2ecf20Sopenharmony_ci};
15338c2ecf20Sopenharmony_ci
15348c2ecf20Sopenharmony_cistatic struct clk_branch gcc_gp3_clk = {
15358c2ecf20Sopenharmony_ci	.halt_reg = 0x66000,
15368c2ecf20Sopenharmony_ci	.halt_check = BRANCH_HALT,
15378c2ecf20Sopenharmony_ci	.clkr = {
15388c2ecf20Sopenharmony_ci		.enable_reg = 0x66000,
15398c2ecf20Sopenharmony_ci		.enable_mask = BIT(0),
15408c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
15418c2ecf20Sopenharmony_ci			.name = "gcc_gp3_clk",
15428c2ecf20Sopenharmony_ci			.parent_names = (const char *[]){
15438c2ecf20Sopenharmony_ci				"gp3_clk_src",
15448c2ecf20Sopenharmony_ci			},
15458c2ecf20Sopenharmony_ci			.num_parents = 1,
15468c2ecf20Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
15478c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
15488c2ecf20Sopenharmony_ci		},
15498c2ecf20Sopenharmony_ci	},
15508c2ecf20Sopenharmony_ci};
15518c2ecf20Sopenharmony_ci
15528c2ecf20Sopenharmony_cistatic struct clk_branch gcc_gpu_bimc_gfx_clk = {
15538c2ecf20Sopenharmony_ci	.halt_reg = 0x71010,
15548c2ecf20Sopenharmony_ci	.halt_check = BRANCH_VOTED,
15558c2ecf20Sopenharmony_ci	.clkr = {
15568c2ecf20Sopenharmony_ci		.enable_reg = 0x71010,
15578c2ecf20Sopenharmony_ci		.enable_mask = BIT(0),
15588c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
15598c2ecf20Sopenharmony_ci			.name = "gcc_gpu_bimc_gfx_clk",
15608c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
15618c2ecf20Sopenharmony_ci		},
15628c2ecf20Sopenharmony_ci	},
15638c2ecf20Sopenharmony_ci};
15648c2ecf20Sopenharmony_ci
15658c2ecf20Sopenharmony_cistatic struct clk_branch gcc_gpu_cfg_ahb_clk = {
15668c2ecf20Sopenharmony_ci	.halt_reg = 0x71004,
15678c2ecf20Sopenharmony_ci	.halt_check = BRANCH_VOTED,
15688c2ecf20Sopenharmony_ci	.clkr = {
15698c2ecf20Sopenharmony_ci		.enable_reg = 0x71004,
15708c2ecf20Sopenharmony_ci		.enable_mask = BIT(0),
15718c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
15728c2ecf20Sopenharmony_ci			.name = "gcc_gpu_cfg_ahb_clk",
15738c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
15748c2ecf20Sopenharmony_ci		},
15758c2ecf20Sopenharmony_ci	},
15768c2ecf20Sopenharmony_ci};
15778c2ecf20Sopenharmony_ci
15788c2ecf20Sopenharmony_cistatic struct clk_branch gcc_gpu_gpll0_clk = {
15798c2ecf20Sopenharmony_ci	.halt_reg = 0x5200c,
15808c2ecf20Sopenharmony_ci	.halt_check = BRANCH_HALT_DELAY,
15818c2ecf20Sopenharmony_ci	.clkr = {
15828c2ecf20Sopenharmony_ci		.enable_reg = 0x5200c,
15838c2ecf20Sopenharmony_ci		.enable_mask = BIT(4),
15848c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
15858c2ecf20Sopenharmony_ci			.name = "gcc_gpu_gpll0_clk",
15868c2ecf20Sopenharmony_ci			.parent_names = (const char *[]){
15878c2ecf20Sopenharmony_ci				"gpll0",
15888c2ecf20Sopenharmony_ci			},
15898c2ecf20Sopenharmony_ci			.num_parents = 1,
15908c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
15918c2ecf20Sopenharmony_ci		},
15928c2ecf20Sopenharmony_ci	},
15938c2ecf20Sopenharmony_ci};
15948c2ecf20Sopenharmony_ci
15958c2ecf20Sopenharmony_cistatic struct clk_branch gcc_gpu_gpll0_div_clk = {
15968c2ecf20Sopenharmony_ci	.halt_reg = 0x5200c,
15978c2ecf20Sopenharmony_ci	.halt_check = BRANCH_HALT_DELAY,
15988c2ecf20Sopenharmony_ci	.clkr = {
15998c2ecf20Sopenharmony_ci		.enable_reg = 0x5200c,
16008c2ecf20Sopenharmony_ci		.enable_mask = BIT(3),
16018c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
16028c2ecf20Sopenharmony_ci			.name = "gcc_gpu_gpll0_div_clk",
16038c2ecf20Sopenharmony_ci			.parent_names = (const char *[]){
16048c2ecf20Sopenharmony_ci				"gpll0_early_div",
16058c2ecf20Sopenharmony_ci			},
16068c2ecf20Sopenharmony_ci			.num_parents = 1,
16078c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
16088c2ecf20Sopenharmony_ci		},
16098c2ecf20Sopenharmony_ci	},
16108c2ecf20Sopenharmony_ci};
16118c2ecf20Sopenharmony_ci
16128c2ecf20Sopenharmony_cistatic struct clk_branch gcc_hmss_dvm_bus_clk = {
16138c2ecf20Sopenharmony_ci	.halt_reg = 0x4808c,
16148c2ecf20Sopenharmony_ci	.halt_check = BRANCH_HALT,
16158c2ecf20Sopenharmony_ci	.clkr = {
16168c2ecf20Sopenharmony_ci		.enable_reg = 0x4808c,
16178c2ecf20Sopenharmony_ci		.enable_mask = BIT(0),
16188c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
16198c2ecf20Sopenharmony_ci			.name = "gcc_hmss_dvm_bus_clk",
16208c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
16218c2ecf20Sopenharmony_ci			.flags = CLK_IGNORE_UNUSED,
16228c2ecf20Sopenharmony_ci		},
16238c2ecf20Sopenharmony_ci	},
16248c2ecf20Sopenharmony_ci};
16258c2ecf20Sopenharmony_ci
16268c2ecf20Sopenharmony_cistatic struct clk_branch gcc_hmss_rbcpr_clk = {
16278c2ecf20Sopenharmony_ci	.halt_reg = 0x48008,
16288c2ecf20Sopenharmony_ci	.halt_check = BRANCH_HALT,
16298c2ecf20Sopenharmony_ci	.clkr = {
16308c2ecf20Sopenharmony_ci		.enable_reg = 0x48008,
16318c2ecf20Sopenharmony_ci		.enable_mask = BIT(0),
16328c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
16338c2ecf20Sopenharmony_ci			.name = "gcc_hmss_rbcpr_clk",
16348c2ecf20Sopenharmony_ci			.parent_names = (const char *[]){
16358c2ecf20Sopenharmony_ci				"hmss_rbcpr_clk_src",
16368c2ecf20Sopenharmony_ci			},
16378c2ecf20Sopenharmony_ci			.num_parents = 1,
16388c2ecf20Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
16398c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
16408c2ecf20Sopenharmony_ci		},
16418c2ecf20Sopenharmony_ci	},
16428c2ecf20Sopenharmony_ci};
16438c2ecf20Sopenharmony_ci
16448c2ecf20Sopenharmony_cistatic struct clk_branch gcc_mmss_gpll0_clk = {
16458c2ecf20Sopenharmony_ci	.halt_reg = 0x5200c,
16468c2ecf20Sopenharmony_ci	.halt_check = BRANCH_HALT_DELAY,
16478c2ecf20Sopenharmony_ci	.clkr = {
16488c2ecf20Sopenharmony_ci		.enable_reg = 0x5200c,
16498c2ecf20Sopenharmony_ci		.enable_mask = BIT(1),
16508c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
16518c2ecf20Sopenharmony_ci			.name = "gcc_mmss_gpll0_clk",
16528c2ecf20Sopenharmony_ci			.parent_names = (const char *[]){
16538c2ecf20Sopenharmony_ci				"gpll0",
16548c2ecf20Sopenharmony_ci			},
16558c2ecf20Sopenharmony_ci			.num_parents = 1,
16568c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
16578c2ecf20Sopenharmony_ci		},
16588c2ecf20Sopenharmony_ci	},
16598c2ecf20Sopenharmony_ci};
16608c2ecf20Sopenharmony_ci
16618c2ecf20Sopenharmony_cistatic struct clk_branch gcc_mmss_gpll0_div_clk = {
16628c2ecf20Sopenharmony_ci	.halt_reg = 0x5200c,
16638c2ecf20Sopenharmony_ci	.halt_check = BRANCH_HALT_DELAY,
16648c2ecf20Sopenharmony_ci	.clkr = {
16658c2ecf20Sopenharmony_ci		.enable_reg = 0x5200c,
16668c2ecf20Sopenharmony_ci		.enable_mask = BIT(0),
16678c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
16688c2ecf20Sopenharmony_ci			.name = "gcc_mmss_gpll0_div_clk",
16698c2ecf20Sopenharmony_ci			.parent_names = (const char *[]){
16708c2ecf20Sopenharmony_ci				"gpll0_early_div",
16718c2ecf20Sopenharmony_ci			},
16728c2ecf20Sopenharmony_ci			.num_parents = 1,
16738c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
16748c2ecf20Sopenharmony_ci		},
16758c2ecf20Sopenharmony_ci	},
16768c2ecf20Sopenharmony_ci};
16778c2ecf20Sopenharmony_ci
16788c2ecf20Sopenharmony_cistatic struct clk_branch gcc_mmss_noc_cfg_ahb_clk = {
16798c2ecf20Sopenharmony_ci	.halt_reg = 0x9004,
16808c2ecf20Sopenharmony_ci	.halt_check = BRANCH_HALT,
16818c2ecf20Sopenharmony_ci	.clkr = {
16828c2ecf20Sopenharmony_ci		.enable_reg = 0x9004,
16838c2ecf20Sopenharmony_ci		.enable_mask = BIT(0),
16848c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
16858c2ecf20Sopenharmony_ci			.name = "gcc_mmss_noc_cfg_ahb_clk",
16868c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
16878c2ecf20Sopenharmony_ci		},
16888c2ecf20Sopenharmony_ci	},
16898c2ecf20Sopenharmony_ci};
16908c2ecf20Sopenharmony_ci
16918c2ecf20Sopenharmony_cistatic struct clk_branch gcc_mmss_sys_noc_axi_clk = {
16928c2ecf20Sopenharmony_ci	.halt_reg = 0x9000,
16938c2ecf20Sopenharmony_ci	.halt_check = BRANCH_HALT,
16948c2ecf20Sopenharmony_ci	.clkr = {
16958c2ecf20Sopenharmony_ci		.enable_reg = 0x9000,
16968c2ecf20Sopenharmony_ci		.enable_mask = BIT(0),
16978c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
16988c2ecf20Sopenharmony_ci			.name = "gcc_mmss_sys_noc_axi_clk",
16998c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
17008c2ecf20Sopenharmony_ci		},
17018c2ecf20Sopenharmony_ci	},
17028c2ecf20Sopenharmony_ci};
17038c2ecf20Sopenharmony_ci
17048c2ecf20Sopenharmony_cistatic struct clk_branch gcc_mss_cfg_ahb_clk = {
17058c2ecf20Sopenharmony_ci	.halt_reg = 0x8a000,
17068c2ecf20Sopenharmony_ci	.clkr = {
17078c2ecf20Sopenharmony_ci		.enable_reg = 0x8a000,
17088c2ecf20Sopenharmony_ci		.enable_mask = BIT(0),
17098c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
17108c2ecf20Sopenharmony_ci			.name = "gcc_mss_cfg_ahb_clk",
17118c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
17128c2ecf20Sopenharmony_ci		},
17138c2ecf20Sopenharmony_ci	},
17148c2ecf20Sopenharmony_ci};
17158c2ecf20Sopenharmony_ci
17168c2ecf20Sopenharmony_cistatic struct clk_branch gcc_mss_mnoc_bimc_axi_clk = {
17178c2ecf20Sopenharmony_ci	.halt_reg = 0x8a004,
17188c2ecf20Sopenharmony_ci	.halt_check = BRANCH_HALT,
17198c2ecf20Sopenharmony_ci	.hwcg_reg = 0x8a004,
17208c2ecf20Sopenharmony_ci	.hwcg_bit = 1,
17218c2ecf20Sopenharmony_ci	.clkr = {
17228c2ecf20Sopenharmony_ci		.enable_reg = 0x8a004,
17238c2ecf20Sopenharmony_ci		.enable_mask = BIT(0),
17248c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
17258c2ecf20Sopenharmony_ci			.name = "gcc_mss_mnoc_bimc_axi_clk",
17268c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
17278c2ecf20Sopenharmony_ci		},
17288c2ecf20Sopenharmony_ci	},
17298c2ecf20Sopenharmony_ci};
17308c2ecf20Sopenharmony_ci
17318c2ecf20Sopenharmony_cistatic struct clk_branch gcc_mss_q6_bimc_axi_clk = {
17328c2ecf20Sopenharmony_ci	.halt_reg = 0x8a040,
17338c2ecf20Sopenharmony_ci	.clkr = {
17348c2ecf20Sopenharmony_ci		.enable_reg = 0x8a040,
17358c2ecf20Sopenharmony_ci		.enable_mask = BIT(0),
17368c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
17378c2ecf20Sopenharmony_ci			.name = "gcc_mss_q6_bimc_axi_clk",
17388c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
17398c2ecf20Sopenharmony_ci		},
17408c2ecf20Sopenharmony_ci	},
17418c2ecf20Sopenharmony_ci};
17428c2ecf20Sopenharmony_ci
17438c2ecf20Sopenharmony_cistatic struct clk_branch gcc_mss_snoc_axi_clk = {
17448c2ecf20Sopenharmony_ci	.halt_reg = 0x8a03c,
17458c2ecf20Sopenharmony_ci	.clkr = {
17468c2ecf20Sopenharmony_ci		.enable_reg = 0x8a03c,
17478c2ecf20Sopenharmony_ci		.enable_mask = BIT(0),
17488c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
17498c2ecf20Sopenharmony_ci			.name = "gcc_mss_snoc_axi_clk",
17508c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
17518c2ecf20Sopenharmony_ci		},
17528c2ecf20Sopenharmony_ci	},
17538c2ecf20Sopenharmony_ci};
17548c2ecf20Sopenharmony_ci
17558c2ecf20Sopenharmony_cistatic struct clk_branch gcc_pdm2_clk = {
17568c2ecf20Sopenharmony_ci	.halt_reg = 0x3300c,
17578c2ecf20Sopenharmony_ci	.halt_check = BRANCH_HALT,
17588c2ecf20Sopenharmony_ci	.clkr = {
17598c2ecf20Sopenharmony_ci		.enable_reg = 0x3300c,
17608c2ecf20Sopenharmony_ci		.enable_mask = BIT(0),
17618c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
17628c2ecf20Sopenharmony_ci			.name = "gcc_pdm2_clk",
17638c2ecf20Sopenharmony_ci			.parent_names = (const char *[]){
17648c2ecf20Sopenharmony_ci				"pdm2_clk_src",
17658c2ecf20Sopenharmony_ci			},
17668c2ecf20Sopenharmony_ci			.num_parents = 1,
17678c2ecf20Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
17688c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
17698c2ecf20Sopenharmony_ci		},
17708c2ecf20Sopenharmony_ci	},
17718c2ecf20Sopenharmony_ci};
17728c2ecf20Sopenharmony_ci
17738c2ecf20Sopenharmony_cistatic struct clk_branch gcc_pdm_ahb_clk = {
17748c2ecf20Sopenharmony_ci	.halt_reg = 0x33004,
17758c2ecf20Sopenharmony_ci	.halt_check = BRANCH_HALT,
17768c2ecf20Sopenharmony_ci	.clkr = {
17778c2ecf20Sopenharmony_ci		.enable_reg = 0x33004,
17788c2ecf20Sopenharmony_ci		.enable_mask = BIT(0),
17798c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
17808c2ecf20Sopenharmony_ci			.name = "gcc_pdm_ahb_clk",
17818c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
17828c2ecf20Sopenharmony_ci		},
17838c2ecf20Sopenharmony_ci	},
17848c2ecf20Sopenharmony_ci};
17858c2ecf20Sopenharmony_ci
17868c2ecf20Sopenharmony_cistatic struct clk_branch gcc_prng_ahb_clk = {
17878c2ecf20Sopenharmony_ci	.halt_reg = 0x34004,
17888c2ecf20Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
17898c2ecf20Sopenharmony_ci	.clkr = {
17908c2ecf20Sopenharmony_ci		.enable_reg = 0x52004,
17918c2ecf20Sopenharmony_ci		.enable_mask = BIT(13),
17928c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
17938c2ecf20Sopenharmony_ci			.name = "gcc_prng_ahb_clk",
17948c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
17958c2ecf20Sopenharmony_ci		},
17968c2ecf20Sopenharmony_ci	},
17978c2ecf20Sopenharmony_ci};
17988c2ecf20Sopenharmony_ci
17998c2ecf20Sopenharmony_cistatic struct clk_branch gcc_qspi_ahb_clk = {
18008c2ecf20Sopenharmony_ci	.halt_reg = 0x4d004,
18018c2ecf20Sopenharmony_ci	.halt_check = BRANCH_HALT,
18028c2ecf20Sopenharmony_ci	.clkr = {
18038c2ecf20Sopenharmony_ci		.enable_reg = 0x4d004,
18048c2ecf20Sopenharmony_ci		.enable_mask = BIT(0),
18058c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
18068c2ecf20Sopenharmony_ci			.name = "gcc_qspi_ahb_clk",
18078c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
18088c2ecf20Sopenharmony_ci		},
18098c2ecf20Sopenharmony_ci	},
18108c2ecf20Sopenharmony_ci};
18118c2ecf20Sopenharmony_ci
18128c2ecf20Sopenharmony_cistatic struct clk_branch gcc_qspi_ser_clk = {
18138c2ecf20Sopenharmony_ci	.halt_reg = 0x4d008,
18148c2ecf20Sopenharmony_ci	.halt_check = BRANCH_HALT,
18158c2ecf20Sopenharmony_ci	.clkr = {
18168c2ecf20Sopenharmony_ci		.enable_reg = 0x4d008,
18178c2ecf20Sopenharmony_ci		.enable_mask = BIT(0),
18188c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
18198c2ecf20Sopenharmony_ci			.name = "gcc_qspi_ser_clk",
18208c2ecf20Sopenharmony_ci			.parent_names = (const char *[]){
18218c2ecf20Sopenharmony_ci				"qspi_ser_clk_src",
18228c2ecf20Sopenharmony_ci			},
18238c2ecf20Sopenharmony_ci			.num_parents = 1,
18248c2ecf20Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
18258c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
18268c2ecf20Sopenharmony_ci		},
18278c2ecf20Sopenharmony_ci	},
18288c2ecf20Sopenharmony_ci};
18298c2ecf20Sopenharmony_ci
18308c2ecf20Sopenharmony_cistatic struct clk_branch gcc_rx0_usb2_clkref_clk = {
18318c2ecf20Sopenharmony_ci	.halt_reg = 0x88018,
18328c2ecf20Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
18338c2ecf20Sopenharmony_ci	.clkr = {
18348c2ecf20Sopenharmony_ci		.enable_reg = 0x88018,
18358c2ecf20Sopenharmony_ci		.enable_mask = BIT(0),
18368c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
18378c2ecf20Sopenharmony_ci			.name = "gcc_rx0_usb2_clkref_clk",
18388c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
18398c2ecf20Sopenharmony_ci		},
18408c2ecf20Sopenharmony_ci	},
18418c2ecf20Sopenharmony_ci};
18428c2ecf20Sopenharmony_ci
18438c2ecf20Sopenharmony_cistatic struct clk_branch gcc_rx1_usb2_clkref_clk = {
18448c2ecf20Sopenharmony_ci	.halt_reg = 0x88014,
18458c2ecf20Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
18468c2ecf20Sopenharmony_ci	.clkr = {
18478c2ecf20Sopenharmony_ci		.enable_reg = 0x88014,
18488c2ecf20Sopenharmony_ci		.enable_mask = BIT(0),
18498c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
18508c2ecf20Sopenharmony_ci			.name = "gcc_rx1_usb2_clkref_clk",
18518c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
18528c2ecf20Sopenharmony_ci		},
18538c2ecf20Sopenharmony_ci	},
18548c2ecf20Sopenharmony_ci};
18558c2ecf20Sopenharmony_ci
18568c2ecf20Sopenharmony_cistatic struct clk_branch gcc_sdcc1_ahb_clk = {
18578c2ecf20Sopenharmony_ci	.halt_reg = 0x16008,
18588c2ecf20Sopenharmony_ci	.halt_check = BRANCH_HALT,
18598c2ecf20Sopenharmony_ci	.clkr = {
18608c2ecf20Sopenharmony_ci		.enable_reg = 0x16008,
18618c2ecf20Sopenharmony_ci		.enable_mask = BIT(0),
18628c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
18638c2ecf20Sopenharmony_ci			.name = "gcc_sdcc1_ahb_clk",
18648c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
18658c2ecf20Sopenharmony_ci		},
18668c2ecf20Sopenharmony_ci	},
18678c2ecf20Sopenharmony_ci};
18688c2ecf20Sopenharmony_ci
18698c2ecf20Sopenharmony_cistatic struct clk_branch gcc_sdcc1_apps_clk = {
18708c2ecf20Sopenharmony_ci	.halt_reg = 0x16004,
18718c2ecf20Sopenharmony_ci	.halt_check = BRANCH_HALT,
18728c2ecf20Sopenharmony_ci	.clkr = {
18738c2ecf20Sopenharmony_ci		.enable_reg = 0x16004,
18748c2ecf20Sopenharmony_ci		.enable_mask = BIT(0),
18758c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
18768c2ecf20Sopenharmony_ci			.name = "gcc_sdcc1_apps_clk",
18778c2ecf20Sopenharmony_ci			.parent_names = (const char *[]){
18788c2ecf20Sopenharmony_ci				"sdcc1_apps_clk_src",
18798c2ecf20Sopenharmony_ci			},
18808c2ecf20Sopenharmony_ci			.num_parents = 1,
18818c2ecf20Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
18828c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
18838c2ecf20Sopenharmony_ci		},
18848c2ecf20Sopenharmony_ci	},
18858c2ecf20Sopenharmony_ci};
18868c2ecf20Sopenharmony_ci
18878c2ecf20Sopenharmony_cistatic struct clk_branch gcc_sdcc1_ice_core_clk = {
18888c2ecf20Sopenharmony_ci	.halt_reg = 0x1600c,
18898c2ecf20Sopenharmony_ci	.halt_check = BRANCH_HALT,
18908c2ecf20Sopenharmony_ci	.clkr = {
18918c2ecf20Sopenharmony_ci		.enable_reg = 0x1600c,
18928c2ecf20Sopenharmony_ci		.enable_mask = BIT(0),
18938c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
18948c2ecf20Sopenharmony_ci			.name = "gcc_sdcc1_ice_core_clk",
18958c2ecf20Sopenharmony_ci			.parent_names = (const char *[]){
18968c2ecf20Sopenharmony_ci				"sdcc1_ice_core_clk_src",
18978c2ecf20Sopenharmony_ci			},
18988c2ecf20Sopenharmony_ci			.num_parents = 1,
18998c2ecf20Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
19008c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
19018c2ecf20Sopenharmony_ci		},
19028c2ecf20Sopenharmony_ci	},
19038c2ecf20Sopenharmony_ci};
19048c2ecf20Sopenharmony_ci
19058c2ecf20Sopenharmony_cistatic struct clk_branch gcc_sdcc2_ahb_clk = {
19068c2ecf20Sopenharmony_ci	.halt_reg = 0x14008,
19078c2ecf20Sopenharmony_ci	.halt_check = BRANCH_HALT,
19088c2ecf20Sopenharmony_ci	.clkr = {
19098c2ecf20Sopenharmony_ci		.enable_reg = 0x14008,
19108c2ecf20Sopenharmony_ci		.enable_mask = BIT(0),
19118c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
19128c2ecf20Sopenharmony_ci			.name = "gcc_sdcc2_ahb_clk",
19138c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
19148c2ecf20Sopenharmony_ci		},
19158c2ecf20Sopenharmony_ci	},
19168c2ecf20Sopenharmony_ci};
19178c2ecf20Sopenharmony_ci
19188c2ecf20Sopenharmony_cistatic struct clk_branch gcc_sdcc2_apps_clk = {
19198c2ecf20Sopenharmony_ci	.halt_reg = 0x14004,
19208c2ecf20Sopenharmony_ci	.halt_check = BRANCH_HALT,
19218c2ecf20Sopenharmony_ci	.clkr = {
19228c2ecf20Sopenharmony_ci		.enable_reg = 0x14004,
19238c2ecf20Sopenharmony_ci		.enable_mask = BIT(0),
19248c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
19258c2ecf20Sopenharmony_ci			.name = "gcc_sdcc2_apps_clk",
19268c2ecf20Sopenharmony_ci			.parent_names = (const char *[]){
19278c2ecf20Sopenharmony_ci				"sdcc2_apps_clk_src",
19288c2ecf20Sopenharmony_ci			},
19298c2ecf20Sopenharmony_ci			.num_parents = 1,
19308c2ecf20Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
19318c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
19328c2ecf20Sopenharmony_ci		},
19338c2ecf20Sopenharmony_ci	},
19348c2ecf20Sopenharmony_ci};
19358c2ecf20Sopenharmony_ci
19368c2ecf20Sopenharmony_cistatic struct clk_branch gcc_ufs_ahb_clk = {
19378c2ecf20Sopenharmony_ci	.halt_reg = 0x7500c,
19388c2ecf20Sopenharmony_ci	.halt_check = BRANCH_HALT,
19398c2ecf20Sopenharmony_ci	.clkr = {
19408c2ecf20Sopenharmony_ci		.enable_reg = 0x7500c,
19418c2ecf20Sopenharmony_ci		.enable_mask = BIT(0),
19428c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
19438c2ecf20Sopenharmony_ci			.name = "gcc_ufs_ahb_clk",
19448c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
19458c2ecf20Sopenharmony_ci		},
19468c2ecf20Sopenharmony_ci	},
19478c2ecf20Sopenharmony_ci};
19488c2ecf20Sopenharmony_ci
19498c2ecf20Sopenharmony_cistatic struct clk_branch gcc_ufs_axi_clk = {
19508c2ecf20Sopenharmony_ci	.halt_reg = 0x75008,
19518c2ecf20Sopenharmony_ci	.halt_check = BRANCH_HALT,
19528c2ecf20Sopenharmony_ci	.clkr = {
19538c2ecf20Sopenharmony_ci		.enable_reg = 0x75008,
19548c2ecf20Sopenharmony_ci		.enable_mask = BIT(0),
19558c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
19568c2ecf20Sopenharmony_ci			.name = "gcc_ufs_axi_clk",
19578c2ecf20Sopenharmony_ci			.parent_names = (const char *[]){
19588c2ecf20Sopenharmony_ci				"ufs_axi_clk_src",
19598c2ecf20Sopenharmony_ci			},
19608c2ecf20Sopenharmony_ci			.num_parents = 1,
19618c2ecf20Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
19628c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
19638c2ecf20Sopenharmony_ci		},
19648c2ecf20Sopenharmony_ci	},
19658c2ecf20Sopenharmony_ci};
19668c2ecf20Sopenharmony_ci
19678c2ecf20Sopenharmony_cistatic struct clk_branch gcc_ufs_clkref_clk = {
19688c2ecf20Sopenharmony_ci	.halt_reg = 0x88008,
19698c2ecf20Sopenharmony_ci	.halt_check = BRANCH_HALT,
19708c2ecf20Sopenharmony_ci	.clkr = {
19718c2ecf20Sopenharmony_ci		.enable_reg = 0x88008,
19728c2ecf20Sopenharmony_ci		.enable_mask = BIT(0),
19738c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
19748c2ecf20Sopenharmony_ci			.name = "gcc_ufs_clkref_clk",
19758c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
19768c2ecf20Sopenharmony_ci		},
19778c2ecf20Sopenharmony_ci	},
19788c2ecf20Sopenharmony_ci};
19798c2ecf20Sopenharmony_ci
19808c2ecf20Sopenharmony_cistatic struct clk_branch gcc_ufs_ice_core_clk = {
19818c2ecf20Sopenharmony_ci	.halt_reg = 0x7600c,
19828c2ecf20Sopenharmony_ci	.halt_check = BRANCH_HALT,
19838c2ecf20Sopenharmony_ci	.clkr = {
19848c2ecf20Sopenharmony_ci		.enable_reg = 0x7600c,
19858c2ecf20Sopenharmony_ci		.enable_mask = BIT(0),
19868c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
19878c2ecf20Sopenharmony_ci			.name = "gcc_ufs_ice_core_clk",
19888c2ecf20Sopenharmony_ci			.parent_names = (const char *[]){
19898c2ecf20Sopenharmony_ci				"ufs_ice_core_clk_src",
19908c2ecf20Sopenharmony_ci			},
19918c2ecf20Sopenharmony_ci			.num_parents = 1,
19928c2ecf20Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
19938c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
19948c2ecf20Sopenharmony_ci		},
19958c2ecf20Sopenharmony_ci	},
19968c2ecf20Sopenharmony_ci};
19978c2ecf20Sopenharmony_ci
19988c2ecf20Sopenharmony_cistatic struct clk_branch gcc_ufs_phy_aux_clk = {
19998c2ecf20Sopenharmony_ci	.halt_reg = 0x76040,
20008c2ecf20Sopenharmony_ci	.halt_check = BRANCH_HALT,
20018c2ecf20Sopenharmony_ci	.clkr = {
20028c2ecf20Sopenharmony_ci		.enable_reg = 0x76040,
20038c2ecf20Sopenharmony_ci		.enable_mask = BIT(0),
20048c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
20058c2ecf20Sopenharmony_ci			.name = "gcc_ufs_phy_aux_clk",
20068c2ecf20Sopenharmony_ci			.parent_names = (const char *[]){
20078c2ecf20Sopenharmony_ci				"ufs_phy_aux_clk_src",
20088c2ecf20Sopenharmony_ci			},
20098c2ecf20Sopenharmony_ci			.num_parents = 1,
20108c2ecf20Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
20118c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
20128c2ecf20Sopenharmony_ci		},
20138c2ecf20Sopenharmony_ci	},
20148c2ecf20Sopenharmony_ci};
20158c2ecf20Sopenharmony_ci
20168c2ecf20Sopenharmony_cistatic struct clk_branch gcc_ufs_rx_symbol_0_clk = {
20178c2ecf20Sopenharmony_ci	.halt_reg = 0x75014,
20188c2ecf20Sopenharmony_ci	.halt_check = BRANCH_HALT_SKIP,
20198c2ecf20Sopenharmony_ci	.clkr = {
20208c2ecf20Sopenharmony_ci		.enable_reg = 0x75014,
20218c2ecf20Sopenharmony_ci		.enable_mask = BIT(0),
20228c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
20238c2ecf20Sopenharmony_ci			.name = "gcc_ufs_rx_symbol_0_clk",
20248c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
20258c2ecf20Sopenharmony_ci		},
20268c2ecf20Sopenharmony_ci	},
20278c2ecf20Sopenharmony_ci};
20288c2ecf20Sopenharmony_ci
20298c2ecf20Sopenharmony_cistatic struct clk_branch gcc_ufs_rx_symbol_1_clk = {
20308c2ecf20Sopenharmony_ci	.halt_reg = 0x7605c,
20318c2ecf20Sopenharmony_ci	.halt_check = BRANCH_HALT_SKIP,
20328c2ecf20Sopenharmony_ci	.clkr = {
20338c2ecf20Sopenharmony_ci		.enable_reg = 0x7605c,
20348c2ecf20Sopenharmony_ci		.enable_mask = BIT(0),
20358c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
20368c2ecf20Sopenharmony_ci			.name = "gcc_ufs_rx_symbol_1_clk",
20378c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
20388c2ecf20Sopenharmony_ci		},
20398c2ecf20Sopenharmony_ci	},
20408c2ecf20Sopenharmony_ci};
20418c2ecf20Sopenharmony_ci
20428c2ecf20Sopenharmony_cistatic struct clk_branch gcc_ufs_tx_symbol_0_clk = {
20438c2ecf20Sopenharmony_ci	.halt_reg = 0x75010,
20448c2ecf20Sopenharmony_ci	.halt_check = BRANCH_HALT_SKIP,
20458c2ecf20Sopenharmony_ci	.clkr = {
20468c2ecf20Sopenharmony_ci		.enable_reg = 0x75010,
20478c2ecf20Sopenharmony_ci		.enable_mask = BIT(0),
20488c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
20498c2ecf20Sopenharmony_ci			.name = "gcc_ufs_tx_symbol_0_clk",
20508c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
20518c2ecf20Sopenharmony_ci		},
20528c2ecf20Sopenharmony_ci	},
20538c2ecf20Sopenharmony_ci};
20548c2ecf20Sopenharmony_ci
20558c2ecf20Sopenharmony_cistatic struct clk_branch gcc_ufs_unipro_core_clk = {
20568c2ecf20Sopenharmony_ci	.halt_reg = 0x76008,
20578c2ecf20Sopenharmony_ci	.halt_check = BRANCH_HALT,
20588c2ecf20Sopenharmony_ci	.clkr = {
20598c2ecf20Sopenharmony_ci		.enable_reg = 0x76008,
20608c2ecf20Sopenharmony_ci		.enable_mask = BIT(0),
20618c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
20628c2ecf20Sopenharmony_ci			.name = "gcc_ufs_unipro_core_clk",
20638c2ecf20Sopenharmony_ci			.parent_names = (const char *[]){
20648c2ecf20Sopenharmony_ci				"ufs_unipro_core_clk_src",
20658c2ecf20Sopenharmony_ci			},
20668c2ecf20Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
20678c2ecf20Sopenharmony_ci			.num_parents = 1,
20688c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
20698c2ecf20Sopenharmony_ci		},
20708c2ecf20Sopenharmony_ci	},
20718c2ecf20Sopenharmony_ci};
20728c2ecf20Sopenharmony_ci
20738c2ecf20Sopenharmony_cistatic struct clk_branch gcc_usb20_master_clk = {
20748c2ecf20Sopenharmony_ci	.halt_reg = 0x2f004,
20758c2ecf20Sopenharmony_ci	.halt_check = BRANCH_HALT,
20768c2ecf20Sopenharmony_ci	.clkr = {
20778c2ecf20Sopenharmony_ci		.enable_reg = 0x2f004,
20788c2ecf20Sopenharmony_ci		.enable_mask = BIT(0),
20798c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
20808c2ecf20Sopenharmony_ci			.name = "gcc_usb20_master_clk",
20818c2ecf20Sopenharmony_ci			.parent_names = (const char *[]){
20828c2ecf20Sopenharmony_ci				"usb20_master_clk_src"
20838c2ecf20Sopenharmony_ci			},
20848c2ecf20Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
20858c2ecf20Sopenharmony_ci			.num_parents = 1,
20868c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
20878c2ecf20Sopenharmony_ci		},
20888c2ecf20Sopenharmony_ci	},
20898c2ecf20Sopenharmony_ci};
20908c2ecf20Sopenharmony_ci
20918c2ecf20Sopenharmony_cistatic struct clk_branch gcc_usb20_mock_utmi_clk = {
20928c2ecf20Sopenharmony_ci	.halt_reg = 0x2f00c,
20938c2ecf20Sopenharmony_ci	.halt_check = BRANCH_HALT,
20948c2ecf20Sopenharmony_ci	.clkr = {
20958c2ecf20Sopenharmony_ci		.enable_reg = 0x2f00c,
20968c2ecf20Sopenharmony_ci		.enable_mask = BIT(0),
20978c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
20988c2ecf20Sopenharmony_ci			.name = "gcc_usb20_mock_utmi_clk",
20998c2ecf20Sopenharmony_ci			.parent_names = (const char *[]){
21008c2ecf20Sopenharmony_ci				"usb20_mock_utmi_clk_src",
21018c2ecf20Sopenharmony_ci			},
21028c2ecf20Sopenharmony_ci			.num_parents = 1,
21038c2ecf20Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
21048c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
21058c2ecf20Sopenharmony_ci		},
21068c2ecf20Sopenharmony_ci	},
21078c2ecf20Sopenharmony_ci};
21088c2ecf20Sopenharmony_ci
21098c2ecf20Sopenharmony_cistatic struct clk_branch gcc_usb20_sleep_clk = {
21108c2ecf20Sopenharmony_ci	.halt_reg = 0x2f008,
21118c2ecf20Sopenharmony_ci	.halt_check = BRANCH_HALT,
21128c2ecf20Sopenharmony_ci	.clkr = {
21138c2ecf20Sopenharmony_ci		.enable_reg = 0x2f008,
21148c2ecf20Sopenharmony_ci		.enable_mask = BIT(0),
21158c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
21168c2ecf20Sopenharmony_ci			.name = "gcc_usb20_sleep_clk",
21178c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
21188c2ecf20Sopenharmony_ci		},
21198c2ecf20Sopenharmony_ci	},
21208c2ecf20Sopenharmony_ci};
21218c2ecf20Sopenharmony_ci
21228c2ecf20Sopenharmony_cistatic struct clk_branch gcc_usb30_master_clk = {
21238c2ecf20Sopenharmony_ci	.halt_reg = 0xf008,
21248c2ecf20Sopenharmony_ci	.halt_check = BRANCH_HALT,
21258c2ecf20Sopenharmony_ci	.clkr = {
21268c2ecf20Sopenharmony_ci		.enable_reg = 0xf008,
21278c2ecf20Sopenharmony_ci		.enable_mask = BIT(0),
21288c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
21298c2ecf20Sopenharmony_ci			.name = "gcc_usb30_master_clk",
21308c2ecf20Sopenharmony_ci			.parent_names = (const char *[]){
21318c2ecf20Sopenharmony_ci				"usb30_master_clk_src",
21328c2ecf20Sopenharmony_ci			},
21338c2ecf20Sopenharmony_ci			.num_parents = 1,
21348c2ecf20Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
21358c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
21368c2ecf20Sopenharmony_ci		},
21378c2ecf20Sopenharmony_ci	},
21388c2ecf20Sopenharmony_ci};
21398c2ecf20Sopenharmony_ci
21408c2ecf20Sopenharmony_cistatic struct clk_branch gcc_usb30_mock_utmi_clk = {
21418c2ecf20Sopenharmony_ci	.halt_reg = 0xf010,
21428c2ecf20Sopenharmony_ci	.halt_check = BRANCH_HALT,
21438c2ecf20Sopenharmony_ci	.clkr = {
21448c2ecf20Sopenharmony_ci		.enable_reg = 0xf010,
21458c2ecf20Sopenharmony_ci		.enable_mask = BIT(0),
21468c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
21478c2ecf20Sopenharmony_ci			.name = "gcc_usb30_mock_utmi_clk",
21488c2ecf20Sopenharmony_ci			.parent_names = (const char *[]){
21498c2ecf20Sopenharmony_ci				"usb30_mock_utmi_clk_src",
21508c2ecf20Sopenharmony_ci			},
21518c2ecf20Sopenharmony_ci			.num_parents = 1,
21528c2ecf20Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
21538c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
21548c2ecf20Sopenharmony_ci		},
21558c2ecf20Sopenharmony_ci	},
21568c2ecf20Sopenharmony_ci};
21578c2ecf20Sopenharmony_ci
21588c2ecf20Sopenharmony_cistatic struct clk_branch gcc_usb30_sleep_clk = {
21598c2ecf20Sopenharmony_ci	.halt_reg = 0xf00c,
21608c2ecf20Sopenharmony_ci	.halt_check = BRANCH_HALT,
21618c2ecf20Sopenharmony_ci	.clkr = {
21628c2ecf20Sopenharmony_ci		.enable_reg = 0xf00c,
21638c2ecf20Sopenharmony_ci		.enable_mask = BIT(0),
21648c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
21658c2ecf20Sopenharmony_ci			.name = "gcc_usb30_sleep_clk",
21668c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
21678c2ecf20Sopenharmony_ci		},
21688c2ecf20Sopenharmony_ci	},
21698c2ecf20Sopenharmony_ci};
21708c2ecf20Sopenharmony_ci
21718c2ecf20Sopenharmony_cistatic struct clk_branch gcc_usb3_clkref_clk = {
21728c2ecf20Sopenharmony_ci	.halt_reg = 0x8800c,
21738c2ecf20Sopenharmony_ci	.halt_check = BRANCH_HALT,
21748c2ecf20Sopenharmony_ci	.clkr = {
21758c2ecf20Sopenharmony_ci		.enable_reg = 0x8800c,
21768c2ecf20Sopenharmony_ci		.enable_mask = BIT(0),
21778c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
21788c2ecf20Sopenharmony_ci			.name = "gcc_usb3_clkref_clk",
21798c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
21808c2ecf20Sopenharmony_ci		},
21818c2ecf20Sopenharmony_ci	},
21828c2ecf20Sopenharmony_ci};
21838c2ecf20Sopenharmony_ci
21848c2ecf20Sopenharmony_cistatic struct clk_branch gcc_usb3_phy_aux_clk = {
21858c2ecf20Sopenharmony_ci	.halt_reg = 0x50000,
21868c2ecf20Sopenharmony_ci	.halt_check = BRANCH_HALT,
21878c2ecf20Sopenharmony_ci	.clkr = {
21888c2ecf20Sopenharmony_ci		.enable_reg = 0x50000,
21898c2ecf20Sopenharmony_ci		.enable_mask = BIT(0),
21908c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
21918c2ecf20Sopenharmony_ci			.name = "gcc_usb3_phy_aux_clk",
21928c2ecf20Sopenharmony_ci			.parent_names = (const char *[]){
21938c2ecf20Sopenharmony_ci				"usb3_phy_aux_clk_src",
21948c2ecf20Sopenharmony_ci			},
21958c2ecf20Sopenharmony_ci			.num_parents = 1,
21968c2ecf20Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
21978c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
21988c2ecf20Sopenharmony_ci		},
21998c2ecf20Sopenharmony_ci	},
22008c2ecf20Sopenharmony_ci};
22018c2ecf20Sopenharmony_ci
22028c2ecf20Sopenharmony_cistatic struct clk_branch gcc_usb3_phy_pipe_clk = {
22038c2ecf20Sopenharmony_ci	.halt_reg = 0x50004,
22048c2ecf20Sopenharmony_ci	.halt_check = BRANCH_HALT_DELAY,
22058c2ecf20Sopenharmony_ci	.clkr = {
22068c2ecf20Sopenharmony_ci		.enable_reg = 0x50004,
22078c2ecf20Sopenharmony_ci		.enable_mask = BIT(0),
22088c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
22098c2ecf20Sopenharmony_ci			.name = "gcc_usb3_phy_pipe_clk",
22108c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
22118c2ecf20Sopenharmony_ci		},
22128c2ecf20Sopenharmony_ci	},
22138c2ecf20Sopenharmony_ci};
22148c2ecf20Sopenharmony_ci
22158c2ecf20Sopenharmony_cistatic struct clk_branch gcc_usb_phy_cfg_ahb2phy_clk = {
22168c2ecf20Sopenharmony_ci	.halt_reg = 0x6a004,
22178c2ecf20Sopenharmony_ci	.halt_check = BRANCH_HALT,
22188c2ecf20Sopenharmony_ci	.clkr = {
22198c2ecf20Sopenharmony_ci		.enable_reg = 0x6a004,
22208c2ecf20Sopenharmony_ci		.enable_mask = BIT(0),
22218c2ecf20Sopenharmony_ci		.hw.init = &(struct clk_init_data){
22228c2ecf20Sopenharmony_ci			.name = "gcc_usb_phy_cfg_ahb2phy_clk",
22238c2ecf20Sopenharmony_ci			.ops = &clk_branch2_ops,
22248c2ecf20Sopenharmony_ci		},
22258c2ecf20Sopenharmony_ci	},
22268c2ecf20Sopenharmony_ci};
22278c2ecf20Sopenharmony_ci
22288c2ecf20Sopenharmony_cistatic struct gdsc ufs_gdsc = {
22298c2ecf20Sopenharmony_ci	.gdscr = 0x75004,
22308c2ecf20Sopenharmony_ci	.gds_hw_ctrl = 0x0,
22318c2ecf20Sopenharmony_ci	.pd = {
22328c2ecf20Sopenharmony_ci		.name = "ufs_gdsc",
22338c2ecf20Sopenharmony_ci	},
22348c2ecf20Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
22358c2ecf20Sopenharmony_ci	.flags = VOTABLE,
22368c2ecf20Sopenharmony_ci};
22378c2ecf20Sopenharmony_ci
22388c2ecf20Sopenharmony_cistatic struct gdsc usb_30_gdsc = {
22398c2ecf20Sopenharmony_ci	.gdscr = 0xf004,
22408c2ecf20Sopenharmony_ci	.gds_hw_ctrl = 0x0,
22418c2ecf20Sopenharmony_ci	.pd = {
22428c2ecf20Sopenharmony_ci		.name = "usb_30_gdsc",
22438c2ecf20Sopenharmony_ci	},
22448c2ecf20Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
22458c2ecf20Sopenharmony_ci	.flags = VOTABLE,
22468c2ecf20Sopenharmony_ci};
22478c2ecf20Sopenharmony_ci
22488c2ecf20Sopenharmony_cistatic struct gdsc pcie_0_gdsc = {
22498c2ecf20Sopenharmony_ci	.gdscr = 0x6b004,
22508c2ecf20Sopenharmony_ci	.gds_hw_ctrl = 0x0,
22518c2ecf20Sopenharmony_ci	.pd = {
22528c2ecf20Sopenharmony_ci		.name = "pcie_0_gdsc",
22538c2ecf20Sopenharmony_ci	},
22548c2ecf20Sopenharmony_ci	.pwrsts = PWRSTS_OFF_ON,
22558c2ecf20Sopenharmony_ci	.flags = VOTABLE,
22568c2ecf20Sopenharmony_ci};
22578c2ecf20Sopenharmony_ci
22588c2ecf20Sopenharmony_cistatic struct clk_hw *gcc_sdm660_hws[] = {
22598c2ecf20Sopenharmony_ci	&xo.hw,
22608c2ecf20Sopenharmony_ci	&gpll0_early_div.hw,
22618c2ecf20Sopenharmony_ci	&gpll1_early_div.hw,
22628c2ecf20Sopenharmony_ci};
22638c2ecf20Sopenharmony_ci
22648c2ecf20Sopenharmony_cistatic struct clk_regmap *gcc_sdm660_clocks[] = {
22658c2ecf20Sopenharmony_ci	[BLSP1_QUP1_I2C_APPS_CLK_SRC] = &blsp1_qup1_i2c_apps_clk_src.clkr,
22668c2ecf20Sopenharmony_ci	[BLSP1_QUP1_SPI_APPS_CLK_SRC] = &blsp1_qup1_spi_apps_clk_src.clkr,
22678c2ecf20Sopenharmony_ci	[BLSP1_QUP2_I2C_APPS_CLK_SRC] = &blsp1_qup2_i2c_apps_clk_src.clkr,
22688c2ecf20Sopenharmony_ci	[BLSP1_QUP2_SPI_APPS_CLK_SRC] = &blsp1_qup2_spi_apps_clk_src.clkr,
22698c2ecf20Sopenharmony_ci	[BLSP1_QUP3_I2C_APPS_CLK_SRC] = &blsp1_qup3_i2c_apps_clk_src.clkr,
22708c2ecf20Sopenharmony_ci	[BLSP1_QUP3_SPI_APPS_CLK_SRC] = &blsp1_qup3_spi_apps_clk_src.clkr,
22718c2ecf20Sopenharmony_ci	[BLSP1_QUP4_I2C_APPS_CLK_SRC] = &blsp1_qup4_i2c_apps_clk_src.clkr,
22728c2ecf20Sopenharmony_ci	[BLSP1_QUP4_SPI_APPS_CLK_SRC] = &blsp1_qup4_spi_apps_clk_src.clkr,
22738c2ecf20Sopenharmony_ci	[BLSP1_UART1_APPS_CLK_SRC] = &blsp1_uart1_apps_clk_src.clkr,
22748c2ecf20Sopenharmony_ci	[BLSP1_UART2_APPS_CLK_SRC] = &blsp1_uart2_apps_clk_src.clkr,
22758c2ecf20Sopenharmony_ci	[BLSP2_QUP1_I2C_APPS_CLK_SRC] = &blsp2_qup1_i2c_apps_clk_src.clkr,
22768c2ecf20Sopenharmony_ci	[BLSP2_QUP1_SPI_APPS_CLK_SRC] = &blsp2_qup1_spi_apps_clk_src.clkr,
22778c2ecf20Sopenharmony_ci	[BLSP2_QUP2_I2C_APPS_CLK_SRC] = &blsp2_qup2_i2c_apps_clk_src.clkr,
22788c2ecf20Sopenharmony_ci	[BLSP2_QUP2_SPI_APPS_CLK_SRC] = &blsp2_qup2_spi_apps_clk_src.clkr,
22798c2ecf20Sopenharmony_ci	[BLSP2_QUP3_I2C_APPS_CLK_SRC] = &blsp2_qup3_i2c_apps_clk_src.clkr,
22808c2ecf20Sopenharmony_ci	[BLSP2_QUP3_SPI_APPS_CLK_SRC] = &blsp2_qup3_spi_apps_clk_src.clkr,
22818c2ecf20Sopenharmony_ci	[BLSP2_QUP4_I2C_APPS_CLK_SRC] = &blsp2_qup4_i2c_apps_clk_src.clkr,
22828c2ecf20Sopenharmony_ci	[BLSP2_QUP4_SPI_APPS_CLK_SRC] = &blsp2_qup4_spi_apps_clk_src.clkr,
22838c2ecf20Sopenharmony_ci	[BLSP2_UART1_APPS_CLK_SRC] = &blsp2_uart1_apps_clk_src.clkr,
22848c2ecf20Sopenharmony_ci	[BLSP2_UART2_APPS_CLK_SRC] = &blsp2_uart2_apps_clk_src.clkr,
22858c2ecf20Sopenharmony_ci	[GCC_AGGRE2_UFS_AXI_CLK] = &gcc_aggre2_ufs_axi_clk.clkr,
22868c2ecf20Sopenharmony_ci	[GCC_AGGRE2_USB3_AXI_CLK] = &gcc_aggre2_usb3_axi_clk.clkr,
22878c2ecf20Sopenharmony_ci	[GCC_BIMC_GFX_CLK] = &gcc_bimc_gfx_clk.clkr,
22888c2ecf20Sopenharmony_ci	[GCC_BIMC_HMSS_AXI_CLK] = &gcc_bimc_hmss_axi_clk.clkr,
22898c2ecf20Sopenharmony_ci	[GCC_BIMC_MSS_Q6_AXI_CLK] = &gcc_bimc_mss_q6_axi_clk.clkr,
22908c2ecf20Sopenharmony_ci	[GCC_BLSP1_AHB_CLK] = &gcc_blsp1_ahb_clk.clkr,
22918c2ecf20Sopenharmony_ci	[GCC_BLSP1_QUP1_I2C_APPS_CLK] = &gcc_blsp1_qup1_i2c_apps_clk.clkr,
22928c2ecf20Sopenharmony_ci	[GCC_BLSP1_QUP1_SPI_APPS_CLK] = &gcc_blsp1_qup1_spi_apps_clk.clkr,
22938c2ecf20Sopenharmony_ci	[GCC_BLSP1_QUP2_I2C_APPS_CLK] = &gcc_blsp1_qup2_i2c_apps_clk.clkr,
22948c2ecf20Sopenharmony_ci	[GCC_BLSP1_QUP2_SPI_APPS_CLK] = &gcc_blsp1_qup2_spi_apps_clk.clkr,
22958c2ecf20Sopenharmony_ci	[GCC_BLSP1_QUP3_I2C_APPS_CLK] = &gcc_blsp1_qup3_i2c_apps_clk.clkr,
22968c2ecf20Sopenharmony_ci	[GCC_BLSP1_QUP3_SPI_APPS_CLK] = &gcc_blsp1_qup3_spi_apps_clk.clkr,
22978c2ecf20Sopenharmony_ci	[GCC_BLSP1_QUP4_I2C_APPS_CLK] = &gcc_blsp1_qup4_i2c_apps_clk.clkr,
22988c2ecf20Sopenharmony_ci	[GCC_BLSP1_QUP4_SPI_APPS_CLK] = &gcc_blsp1_qup4_spi_apps_clk.clkr,
22998c2ecf20Sopenharmony_ci	[GCC_BLSP1_UART1_APPS_CLK] = &gcc_blsp1_uart1_apps_clk.clkr,
23008c2ecf20Sopenharmony_ci	[GCC_BLSP1_UART2_APPS_CLK] = &gcc_blsp1_uart2_apps_clk.clkr,
23018c2ecf20Sopenharmony_ci	[GCC_BLSP2_AHB_CLK] = &gcc_blsp2_ahb_clk.clkr,
23028c2ecf20Sopenharmony_ci	[GCC_BLSP2_QUP1_I2C_APPS_CLK] = &gcc_blsp2_qup1_i2c_apps_clk.clkr,
23038c2ecf20Sopenharmony_ci	[GCC_BLSP2_QUP1_SPI_APPS_CLK] = &gcc_blsp2_qup1_spi_apps_clk.clkr,
23048c2ecf20Sopenharmony_ci	[GCC_BLSP2_QUP2_I2C_APPS_CLK] = &gcc_blsp2_qup2_i2c_apps_clk.clkr,
23058c2ecf20Sopenharmony_ci	[GCC_BLSP2_QUP2_SPI_APPS_CLK] = &gcc_blsp2_qup2_spi_apps_clk.clkr,
23068c2ecf20Sopenharmony_ci	[GCC_BLSP2_QUP3_I2C_APPS_CLK] = &gcc_blsp2_qup3_i2c_apps_clk.clkr,
23078c2ecf20Sopenharmony_ci	[GCC_BLSP2_QUP3_SPI_APPS_CLK] = &gcc_blsp2_qup3_spi_apps_clk.clkr,
23088c2ecf20Sopenharmony_ci	[GCC_BLSP2_QUP4_I2C_APPS_CLK] = &gcc_blsp2_qup4_i2c_apps_clk.clkr,
23098c2ecf20Sopenharmony_ci	[GCC_BLSP2_QUP4_SPI_APPS_CLK] = &gcc_blsp2_qup4_spi_apps_clk.clkr,
23108c2ecf20Sopenharmony_ci	[GCC_BLSP2_UART1_APPS_CLK] = &gcc_blsp2_uart1_apps_clk.clkr,
23118c2ecf20Sopenharmony_ci	[GCC_BLSP2_UART2_APPS_CLK] = &gcc_blsp2_uart2_apps_clk.clkr,
23128c2ecf20Sopenharmony_ci	[GCC_BOOT_ROM_AHB_CLK] = &gcc_boot_rom_ahb_clk.clkr,
23138c2ecf20Sopenharmony_ci	[GCC_CFG_NOC_USB2_AXI_CLK] = &gcc_cfg_noc_usb2_axi_clk.clkr,
23148c2ecf20Sopenharmony_ci	[GCC_CFG_NOC_USB3_AXI_CLK] = &gcc_cfg_noc_usb3_axi_clk.clkr,
23158c2ecf20Sopenharmony_ci	[GCC_DCC_AHB_CLK] = &gcc_dcc_ahb_clk.clkr,
23168c2ecf20Sopenharmony_ci	[GCC_GP1_CLK] = &gcc_gp1_clk.clkr,
23178c2ecf20Sopenharmony_ci	[GCC_GP2_CLK] = &gcc_gp2_clk.clkr,
23188c2ecf20Sopenharmony_ci	[GCC_GP3_CLK] = &gcc_gp3_clk.clkr,
23198c2ecf20Sopenharmony_ci	[GCC_GPU_BIMC_GFX_CLK] = &gcc_gpu_bimc_gfx_clk.clkr,
23208c2ecf20Sopenharmony_ci	[GCC_GPU_CFG_AHB_CLK] = &gcc_gpu_cfg_ahb_clk.clkr,
23218c2ecf20Sopenharmony_ci	[GCC_GPU_GPLL0_CLK] = &gcc_gpu_gpll0_clk.clkr,
23228c2ecf20Sopenharmony_ci	[GCC_GPU_GPLL0_DIV_CLK] = &gcc_gpu_gpll0_div_clk.clkr,
23238c2ecf20Sopenharmony_ci	[GCC_HMSS_DVM_BUS_CLK] = &gcc_hmss_dvm_bus_clk.clkr,
23248c2ecf20Sopenharmony_ci	[GCC_HMSS_RBCPR_CLK] = &gcc_hmss_rbcpr_clk.clkr,
23258c2ecf20Sopenharmony_ci	[GCC_MMSS_GPLL0_CLK] = &gcc_mmss_gpll0_clk.clkr,
23268c2ecf20Sopenharmony_ci	[GCC_MMSS_GPLL0_DIV_CLK] = &gcc_mmss_gpll0_div_clk.clkr,
23278c2ecf20Sopenharmony_ci	[GCC_MMSS_NOC_CFG_AHB_CLK] = &gcc_mmss_noc_cfg_ahb_clk.clkr,
23288c2ecf20Sopenharmony_ci	[GCC_MMSS_SYS_NOC_AXI_CLK] = &gcc_mmss_sys_noc_axi_clk.clkr,
23298c2ecf20Sopenharmony_ci	[GCC_MSS_CFG_AHB_CLK] = &gcc_mss_cfg_ahb_clk.clkr,
23308c2ecf20Sopenharmony_ci	[GCC_MSS_MNOC_BIMC_AXI_CLK] = &gcc_mss_mnoc_bimc_axi_clk.clkr,
23318c2ecf20Sopenharmony_ci	[GCC_MSS_Q6_BIMC_AXI_CLK] = &gcc_mss_q6_bimc_axi_clk.clkr,
23328c2ecf20Sopenharmony_ci	[GCC_MSS_SNOC_AXI_CLK] = &gcc_mss_snoc_axi_clk.clkr,
23338c2ecf20Sopenharmony_ci	[GCC_PDM2_CLK] = &gcc_pdm2_clk.clkr,
23348c2ecf20Sopenharmony_ci	[GCC_PDM_AHB_CLK] = &gcc_pdm_ahb_clk.clkr,
23358c2ecf20Sopenharmony_ci	[GCC_PRNG_AHB_CLK] = &gcc_prng_ahb_clk.clkr,
23368c2ecf20Sopenharmony_ci	[GCC_QSPI_AHB_CLK] = &gcc_qspi_ahb_clk.clkr,
23378c2ecf20Sopenharmony_ci	[GCC_QSPI_SER_CLK] = &gcc_qspi_ser_clk.clkr,
23388c2ecf20Sopenharmony_ci	[GCC_RX0_USB2_CLKREF_CLK] = &gcc_rx0_usb2_clkref_clk.clkr,
23398c2ecf20Sopenharmony_ci	[GCC_RX1_USB2_CLKREF_CLK] = &gcc_rx1_usb2_clkref_clk.clkr,
23408c2ecf20Sopenharmony_ci	[GCC_SDCC1_AHB_CLK] = &gcc_sdcc1_ahb_clk.clkr,
23418c2ecf20Sopenharmony_ci	[GCC_SDCC1_APPS_CLK] = &gcc_sdcc1_apps_clk.clkr,
23428c2ecf20Sopenharmony_ci	[GCC_SDCC1_ICE_CORE_CLK] = &gcc_sdcc1_ice_core_clk.clkr,
23438c2ecf20Sopenharmony_ci	[GCC_SDCC2_AHB_CLK] = &gcc_sdcc2_ahb_clk.clkr,
23448c2ecf20Sopenharmony_ci	[GCC_SDCC2_APPS_CLK] = &gcc_sdcc2_apps_clk.clkr,
23458c2ecf20Sopenharmony_ci	[GCC_UFS_AHB_CLK] = &gcc_ufs_ahb_clk.clkr,
23468c2ecf20Sopenharmony_ci	[GCC_UFS_AXI_CLK] = &gcc_ufs_axi_clk.clkr,
23478c2ecf20Sopenharmony_ci	[GCC_UFS_CLKREF_CLK] = &gcc_ufs_clkref_clk.clkr,
23488c2ecf20Sopenharmony_ci	[GCC_UFS_ICE_CORE_CLK] = &gcc_ufs_ice_core_clk.clkr,
23498c2ecf20Sopenharmony_ci	[GCC_UFS_PHY_AUX_CLK] = &gcc_ufs_phy_aux_clk.clkr,
23508c2ecf20Sopenharmony_ci	[GCC_UFS_RX_SYMBOL_0_CLK] = &gcc_ufs_rx_symbol_0_clk.clkr,
23518c2ecf20Sopenharmony_ci	[GCC_UFS_RX_SYMBOL_1_CLK] = &gcc_ufs_rx_symbol_1_clk.clkr,
23528c2ecf20Sopenharmony_ci	[GCC_UFS_TX_SYMBOL_0_CLK] = &gcc_ufs_tx_symbol_0_clk.clkr,
23538c2ecf20Sopenharmony_ci	[GCC_UFS_UNIPRO_CORE_CLK] = &gcc_ufs_unipro_core_clk.clkr,
23548c2ecf20Sopenharmony_ci	[GCC_USB20_MASTER_CLK] = &gcc_usb20_master_clk.clkr,
23558c2ecf20Sopenharmony_ci	[GCC_USB20_MOCK_UTMI_CLK] = &gcc_usb20_mock_utmi_clk.clkr,
23568c2ecf20Sopenharmony_ci	[GCC_USB20_SLEEP_CLK] = &gcc_usb20_sleep_clk.clkr,
23578c2ecf20Sopenharmony_ci	[GCC_USB30_MASTER_CLK] = &gcc_usb30_master_clk.clkr,
23588c2ecf20Sopenharmony_ci	[GCC_USB30_MOCK_UTMI_CLK] = &gcc_usb30_mock_utmi_clk.clkr,
23598c2ecf20Sopenharmony_ci	[GCC_USB30_SLEEP_CLK] = &gcc_usb30_sleep_clk.clkr,
23608c2ecf20Sopenharmony_ci	[GCC_USB3_CLKREF_CLK] = &gcc_usb3_clkref_clk.clkr,
23618c2ecf20Sopenharmony_ci	[GCC_USB3_PHY_AUX_CLK] = &gcc_usb3_phy_aux_clk.clkr,
23628c2ecf20Sopenharmony_ci	[GCC_USB3_PHY_PIPE_CLK] = &gcc_usb3_phy_pipe_clk.clkr,
23638c2ecf20Sopenharmony_ci	[GCC_USB_PHY_CFG_AHB2PHY_CLK] = &gcc_usb_phy_cfg_ahb2phy_clk.clkr,
23648c2ecf20Sopenharmony_ci	[GP1_CLK_SRC] = &gp1_clk_src.clkr,
23658c2ecf20Sopenharmony_ci	[GP2_CLK_SRC] = &gp2_clk_src.clkr,
23668c2ecf20Sopenharmony_ci	[GP3_CLK_SRC] = &gp3_clk_src.clkr,
23678c2ecf20Sopenharmony_ci	[GPLL0] = &gpll0.clkr,
23688c2ecf20Sopenharmony_ci	[GPLL0_EARLY] = &gpll0_early.clkr,
23698c2ecf20Sopenharmony_ci	[GPLL1] = &gpll1.clkr,
23708c2ecf20Sopenharmony_ci	[GPLL1_EARLY] = &gpll1_early.clkr,
23718c2ecf20Sopenharmony_ci	[GPLL4] = &gpll4.clkr,
23728c2ecf20Sopenharmony_ci	[GPLL4_EARLY] = &gpll4_early.clkr,
23738c2ecf20Sopenharmony_ci	[HMSS_GPLL0_CLK_SRC] = &hmss_gpll0_clk_src.clkr,
23748c2ecf20Sopenharmony_ci	[HMSS_GPLL4_CLK_SRC] = &hmss_gpll4_clk_src.clkr,
23758c2ecf20Sopenharmony_ci	[HMSS_RBCPR_CLK_SRC] = &hmss_rbcpr_clk_src.clkr,
23768c2ecf20Sopenharmony_ci	[PDM2_CLK_SRC] = &pdm2_clk_src.clkr,
23778c2ecf20Sopenharmony_ci	[QSPI_SER_CLK_SRC] = &qspi_ser_clk_src.clkr,
23788c2ecf20Sopenharmony_ci	[SDCC1_APPS_CLK_SRC] = &sdcc1_apps_clk_src.clkr,
23798c2ecf20Sopenharmony_ci	[SDCC1_ICE_CORE_CLK_SRC] = &sdcc1_ice_core_clk_src.clkr,
23808c2ecf20Sopenharmony_ci	[SDCC2_APPS_CLK_SRC] = &sdcc2_apps_clk_src.clkr,
23818c2ecf20Sopenharmony_ci	[UFS_AXI_CLK_SRC] = &ufs_axi_clk_src.clkr,
23828c2ecf20Sopenharmony_ci	[UFS_ICE_CORE_CLK_SRC] = &ufs_ice_core_clk_src.clkr,
23838c2ecf20Sopenharmony_ci	[UFS_PHY_AUX_CLK_SRC] = &ufs_phy_aux_clk_src.clkr,
23848c2ecf20Sopenharmony_ci	[UFS_UNIPRO_CORE_CLK_SRC] = &ufs_unipro_core_clk_src.clkr,
23858c2ecf20Sopenharmony_ci	[USB20_MASTER_CLK_SRC] = &usb20_master_clk_src.clkr,
23868c2ecf20Sopenharmony_ci	[USB20_MOCK_UTMI_CLK_SRC] = &usb20_mock_utmi_clk_src.clkr,
23878c2ecf20Sopenharmony_ci	[USB30_MASTER_CLK_SRC] = &usb30_master_clk_src.clkr,
23888c2ecf20Sopenharmony_ci	[USB30_MOCK_UTMI_CLK_SRC] = &usb30_mock_utmi_clk_src.clkr,
23898c2ecf20Sopenharmony_ci	[USB3_PHY_AUX_CLK_SRC] = &usb3_phy_aux_clk_src.clkr,
23908c2ecf20Sopenharmony_ci};
23918c2ecf20Sopenharmony_ci
23928c2ecf20Sopenharmony_cistatic struct gdsc *gcc_sdm660_gdscs[] = {
23938c2ecf20Sopenharmony_ci	[UFS_GDSC] = &ufs_gdsc,
23948c2ecf20Sopenharmony_ci	[USB_30_GDSC] = &usb_30_gdsc,
23958c2ecf20Sopenharmony_ci	[PCIE_0_GDSC] = &pcie_0_gdsc,
23968c2ecf20Sopenharmony_ci};
23978c2ecf20Sopenharmony_ci
23988c2ecf20Sopenharmony_cistatic const struct qcom_reset_map gcc_sdm660_resets[] = {
23998c2ecf20Sopenharmony_ci	[GCC_QUSB2PHY_PRIM_BCR] = { 0x12000 },
24008c2ecf20Sopenharmony_ci	[GCC_QUSB2PHY_SEC_BCR] = { 0x12004 },
24018c2ecf20Sopenharmony_ci	[GCC_UFS_BCR] = { 0x75000 },
24028c2ecf20Sopenharmony_ci	[GCC_USB3_DP_PHY_BCR] = { 0x50028 },
24038c2ecf20Sopenharmony_ci	[GCC_USB3_PHY_BCR] = { 0x50020 },
24048c2ecf20Sopenharmony_ci	[GCC_USB3PHY_PHY_BCR] = { 0x50024 },
24058c2ecf20Sopenharmony_ci	[GCC_USB_20_BCR] = { 0x2f000 },
24068c2ecf20Sopenharmony_ci	[GCC_USB_30_BCR] = { 0xf000 },
24078c2ecf20Sopenharmony_ci	[GCC_USB_PHY_CFG_AHB2PHY_BCR] = { 0x6a000 },
24088c2ecf20Sopenharmony_ci	[GCC_MSS_RESTART] = { 0x79000 },
24098c2ecf20Sopenharmony_ci};
24108c2ecf20Sopenharmony_ci
24118c2ecf20Sopenharmony_cistatic const struct regmap_config gcc_sdm660_regmap_config = {
24128c2ecf20Sopenharmony_ci	.reg_bits	= 32,
24138c2ecf20Sopenharmony_ci	.reg_stride	= 4,
24148c2ecf20Sopenharmony_ci	.val_bits	= 32,
24158c2ecf20Sopenharmony_ci	.max_register	= 0x94000,
24168c2ecf20Sopenharmony_ci	.fast_io	= true,
24178c2ecf20Sopenharmony_ci};
24188c2ecf20Sopenharmony_ci
24198c2ecf20Sopenharmony_cistatic const struct qcom_cc_desc gcc_sdm660_desc = {
24208c2ecf20Sopenharmony_ci	.config = &gcc_sdm660_regmap_config,
24218c2ecf20Sopenharmony_ci	.clks = gcc_sdm660_clocks,
24228c2ecf20Sopenharmony_ci	.num_clks = ARRAY_SIZE(gcc_sdm660_clocks),
24238c2ecf20Sopenharmony_ci	.resets = gcc_sdm660_resets,
24248c2ecf20Sopenharmony_ci	.num_resets = ARRAY_SIZE(gcc_sdm660_resets),
24258c2ecf20Sopenharmony_ci	.gdscs = gcc_sdm660_gdscs,
24268c2ecf20Sopenharmony_ci	.num_gdscs = ARRAY_SIZE(gcc_sdm660_gdscs),
24278c2ecf20Sopenharmony_ci	.clk_hws = gcc_sdm660_hws,
24288c2ecf20Sopenharmony_ci	.num_clk_hws = ARRAY_SIZE(gcc_sdm660_hws),
24298c2ecf20Sopenharmony_ci};
24308c2ecf20Sopenharmony_ci
24318c2ecf20Sopenharmony_cistatic const struct of_device_id gcc_sdm660_match_table[] = {
24328c2ecf20Sopenharmony_ci	{ .compatible = "qcom,gcc-sdm630" },
24338c2ecf20Sopenharmony_ci	{ .compatible = "qcom,gcc-sdm660" },
24348c2ecf20Sopenharmony_ci	{ }
24358c2ecf20Sopenharmony_ci};
24368c2ecf20Sopenharmony_ciMODULE_DEVICE_TABLE(of, gcc_sdm660_match_table);
24378c2ecf20Sopenharmony_ci
24388c2ecf20Sopenharmony_cistatic int gcc_sdm660_probe(struct platform_device *pdev)
24398c2ecf20Sopenharmony_ci{
24408c2ecf20Sopenharmony_ci	int ret;
24418c2ecf20Sopenharmony_ci	struct regmap *regmap;
24428c2ecf20Sopenharmony_ci
24438c2ecf20Sopenharmony_ci	regmap = qcom_cc_map(pdev, &gcc_sdm660_desc);
24448c2ecf20Sopenharmony_ci	if (IS_ERR(regmap))
24458c2ecf20Sopenharmony_ci		return PTR_ERR(regmap);
24468c2ecf20Sopenharmony_ci
24478c2ecf20Sopenharmony_ci	/*
24488c2ecf20Sopenharmony_ci	 * Set the HMSS_AHB_CLK_SLEEP_ENA bit to allow the hmss_ahb_clk to be
24498c2ecf20Sopenharmony_ci	 * turned off by hardware during certain apps low power modes.
24508c2ecf20Sopenharmony_ci	 */
24518c2ecf20Sopenharmony_ci	ret = regmap_update_bits(regmap, 0x52008, BIT(21), BIT(21));
24528c2ecf20Sopenharmony_ci	if (ret)
24538c2ecf20Sopenharmony_ci		return ret;
24548c2ecf20Sopenharmony_ci
24558c2ecf20Sopenharmony_ci	return qcom_cc_really_probe(pdev, &gcc_sdm660_desc, regmap);
24568c2ecf20Sopenharmony_ci}
24578c2ecf20Sopenharmony_ci
24588c2ecf20Sopenharmony_cistatic struct platform_driver gcc_sdm660_driver = {
24598c2ecf20Sopenharmony_ci	.probe		= gcc_sdm660_probe,
24608c2ecf20Sopenharmony_ci	.driver		= {
24618c2ecf20Sopenharmony_ci		.name	= "gcc-sdm660",
24628c2ecf20Sopenharmony_ci		.of_match_table = gcc_sdm660_match_table,
24638c2ecf20Sopenharmony_ci	},
24648c2ecf20Sopenharmony_ci};
24658c2ecf20Sopenharmony_ci
24668c2ecf20Sopenharmony_cistatic int __init gcc_sdm660_init(void)
24678c2ecf20Sopenharmony_ci{
24688c2ecf20Sopenharmony_ci	return platform_driver_register(&gcc_sdm660_driver);
24698c2ecf20Sopenharmony_ci}
24708c2ecf20Sopenharmony_cicore_initcall_sync(gcc_sdm660_init);
24718c2ecf20Sopenharmony_ci
24728c2ecf20Sopenharmony_cistatic void __exit gcc_sdm660_exit(void)
24738c2ecf20Sopenharmony_ci{
24748c2ecf20Sopenharmony_ci	platform_driver_unregister(&gcc_sdm660_driver);
24758c2ecf20Sopenharmony_ci}
24768c2ecf20Sopenharmony_cimodule_exit(gcc_sdm660_exit);
24778c2ecf20Sopenharmony_ci
24788c2ecf20Sopenharmony_ciMODULE_LICENSE("GPL v2");
24798c2ecf20Sopenharmony_ciMODULE_DESCRIPTION("QCOM GCC sdm660 Driver");
2480