162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright (c) 2013, The Linux Foundation. All rights reserved.
462306a36Sopenharmony_ci */
562306a36Sopenharmony_ci
662306a36Sopenharmony_ci#include <linux/kernel.h>
762306a36Sopenharmony_ci#include <linux/bitops.h>
862306a36Sopenharmony_ci#include <linux/err.h>
962306a36Sopenharmony_ci#include <linux/platform_device.h>
1062306a36Sopenharmony_ci#include <linux/module.h>
1162306a36Sopenharmony_ci#include <linux/of.h>
1262306a36Sopenharmony_ci#include <linux/clk-provider.h>
1362306a36Sopenharmony_ci#include <linux/regmap.h>
1462306a36Sopenharmony_ci#include <linux/reset-controller.h>
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_ci#include <dt-bindings/clock/qcom,gcc-msm8660.h>
1762306a36Sopenharmony_ci#include <dt-bindings/reset/qcom,gcc-msm8660.h>
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ci#include "common.h"
2062306a36Sopenharmony_ci#include "clk-regmap.h"
2162306a36Sopenharmony_ci#include "clk-pll.h"
2262306a36Sopenharmony_ci#include "clk-rcg.h"
2362306a36Sopenharmony_ci#include "clk-branch.h"
2462306a36Sopenharmony_ci#include "reset.h"
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_cistatic struct clk_pll pll8 = {
2762306a36Sopenharmony_ci	.l_reg = 0x3144,
2862306a36Sopenharmony_ci	.m_reg = 0x3148,
2962306a36Sopenharmony_ci	.n_reg = 0x314c,
3062306a36Sopenharmony_ci	.config_reg = 0x3154,
3162306a36Sopenharmony_ci	.mode_reg = 0x3140,
3262306a36Sopenharmony_ci	.status_reg = 0x3158,
3362306a36Sopenharmony_ci	.status_bit = 16,
3462306a36Sopenharmony_ci	.clkr.hw.init = &(struct clk_init_data){
3562306a36Sopenharmony_ci		.name = "pll8",
3662306a36Sopenharmony_ci		.parent_data = &(const struct clk_parent_data){
3762306a36Sopenharmony_ci			.fw_name = "pxo", .name = "pxo_board",
3862306a36Sopenharmony_ci		},
3962306a36Sopenharmony_ci		.num_parents = 1,
4062306a36Sopenharmony_ci		.ops = &clk_pll_ops,
4162306a36Sopenharmony_ci	},
4262306a36Sopenharmony_ci};
4362306a36Sopenharmony_ci
4462306a36Sopenharmony_cistatic struct clk_regmap pll8_vote = {
4562306a36Sopenharmony_ci	.enable_reg = 0x34c0,
4662306a36Sopenharmony_ci	.enable_mask = BIT(8),
4762306a36Sopenharmony_ci	.hw.init = &(struct clk_init_data){
4862306a36Sopenharmony_ci		.name = "pll8_vote",
4962306a36Sopenharmony_ci		.parent_hws = (const struct clk_hw*[]){
5062306a36Sopenharmony_ci			&pll8.clkr.hw
5162306a36Sopenharmony_ci		},
5262306a36Sopenharmony_ci		.num_parents = 1,
5362306a36Sopenharmony_ci		.ops = &clk_pll_vote_ops,
5462306a36Sopenharmony_ci	},
5562306a36Sopenharmony_ci};
5662306a36Sopenharmony_ci
5762306a36Sopenharmony_cienum {
5862306a36Sopenharmony_ci	P_PXO,
5962306a36Sopenharmony_ci	P_PLL8,
6062306a36Sopenharmony_ci	P_CXO,
6162306a36Sopenharmony_ci};
6262306a36Sopenharmony_ci
6362306a36Sopenharmony_cistatic const struct parent_map gcc_pxo_pll8_map[] = {
6462306a36Sopenharmony_ci	{ P_PXO, 0 },
6562306a36Sopenharmony_ci	{ P_PLL8, 3 }
6662306a36Sopenharmony_ci};
6762306a36Sopenharmony_ci
6862306a36Sopenharmony_cistatic const struct clk_parent_data gcc_pxo_pll8[] = {
6962306a36Sopenharmony_ci	{ .fw_name = "pxo", .name = "pxo_board" },
7062306a36Sopenharmony_ci	{ .hw = &pll8_vote.hw },
7162306a36Sopenharmony_ci};
7262306a36Sopenharmony_ci
7362306a36Sopenharmony_cistatic const struct parent_map gcc_pxo_pll8_cxo_map[] = {
7462306a36Sopenharmony_ci	{ P_PXO, 0 },
7562306a36Sopenharmony_ci	{ P_PLL8, 3 },
7662306a36Sopenharmony_ci	{ P_CXO, 5 }
7762306a36Sopenharmony_ci};
7862306a36Sopenharmony_ci
7962306a36Sopenharmony_cistatic const struct clk_parent_data gcc_pxo_pll8_cxo[] = {
8062306a36Sopenharmony_ci	{ .fw_name = "pxo", .name = "pxo_board" },
8162306a36Sopenharmony_ci	{ .hw = &pll8_vote.hw },
8262306a36Sopenharmony_ci	{ .fw_name = "cxo", .name = "cxo_board" },
8362306a36Sopenharmony_ci};
8462306a36Sopenharmony_ci
8562306a36Sopenharmony_cistatic struct freq_tbl clk_tbl_gsbi_uart[] = {
8662306a36Sopenharmony_ci	{  1843200, P_PLL8, 2,  6, 625 },
8762306a36Sopenharmony_ci	{  3686400, P_PLL8, 2, 12, 625 },
8862306a36Sopenharmony_ci	{  7372800, P_PLL8, 2, 24, 625 },
8962306a36Sopenharmony_ci	{ 14745600, P_PLL8, 2, 48, 625 },
9062306a36Sopenharmony_ci	{ 16000000, P_PLL8, 4,  1,   6 },
9162306a36Sopenharmony_ci	{ 24000000, P_PLL8, 4,  1,   4 },
9262306a36Sopenharmony_ci	{ 32000000, P_PLL8, 4,  1,   3 },
9362306a36Sopenharmony_ci	{ 40000000, P_PLL8, 1,  5,  48 },
9462306a36Sopenharmony_ci	{ 46400000, P_PLL8, 1, 29, 240 },
9562306a36Sopenharmony_ci	{ 48000000, P_PLL8, 4,  1,   2 },
9662306a36Sopenharmony_ci	{ 51200000, P_PLL8, 1,  2,  15 },
9762306a36Sopenharmony_ci	{ 56000000, P_PLL8, 1,  7,  48 },
9862306a36Sopenharmony_ci	{ 58982400, P_PLL8, 1, 96, 625 },
9962306a36Sopenharmony_ci	{ 64000000, P_PLL8, 2,  1,   3 },
10062306a36Sopenharmony_ci	{ }
10162306a36Sopenharmony_ci};
10262306a36Sopenharmony_ci
10362306a36Sopenharmony_cistatic struct clk_rcg gsbi1_uart_src = {
10462306a36Sopenharmony_ci	.ns_reg = 0x29d4,
10562306a36Sopenharmony_ci	.md_reg = 0x29d0,
10662306a36Sopenharmony_ci	.mn = {
10762306a36Sopenharmony_ci		.mnctr_en_bit = 8,
10862306a36Sopenharmony_ci		.mnctr_reset_bit = 7,
10962306a36Sopenharmony_ci		.mnctr_mode_shift = 5,
11062306a36Sopenharmony_ci		.n_val_shift = 16,
11162306a36Sopenharmony_ci		.m_val_shift = 16,
11262306a36Sopenharmony_ci		.width = 16,
11362306a36Sopenharmony_ci	},
11462306a36Sopenharmony_ci	.p = {
11562306a36Sopenharmony_ci		.pre_div_shift = 3,
11662306a36Sopenharmony_ci		.pre_div_width = 2,
11762306a36Sopenharmony_ci	},
11862306a36Sopenharmony_ci	.s = {
11962306a36Sopenharmony_ci		.src_sel_shift = 0,
12062306a36Sopenharmony_ci		.parent_map = gcc_pxo_pll8_map,
12162306a36Sopenharmony_ci	},
12262306a36Sopenharmony_ci	.freq_tbl = clk_tbl_gsbi_uart,
12362306a36Sopenharmony_ci	.clkr = {
12462306a36Sopenharmony_ci		.enable_reg = 0x29d4,
12562306a36Sopenharmony_ci		.enable_mask = BIT(11),
12662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
12762306a36Sopenharmony_ci			.name = "gsbi1_uart_src",
12862306a36Sopenharmony_ci			.parent_data = gcc_pxo_pll8,
12962306a36Sopenharmony_ci			.num_parents = ARRAY_SIZE(gcc_pxo_pll8),
13062306a36Sopenharmony_ci			.ops = &clk_rcg_ops,
13162306a36Sopenharmony_ci			.flags = CLK_SET_PARENT_GATE,
13262306a36Sopenharmony_ci		},
13362306a36Sopenharmony_ci	},
13462306a36Sopenharmony_ci};
13562306a36Sopenharmony_ci
13662306a36Sopenharmony_cistatic struct clk_branch gsbi1_uart_clk = {
13762306a36Sopenharmony_ci	.halt_reg = 0x2fcc,
13862306a36Sopenharmony_ci	.halt_bit = 10,
13962306a36Sopenharmony_ci	.clkr = {
14062306a36Sopenharmony_ci		.enable_reg = 0x29d4,
14162306a36Sopenharmony_ci		.enable_mask = BIT(9),
14262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
14362306a36Sopenharmony_ci			.name = "gsbi1_uart_clk",
14462306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
14562306a36Sopenharmony_ci				&gsbi1_uart_src.clkr.hw
14662306a36Sopenharmony_ci			},
14762306a36Sopenharmony_ci			.num_parents = 1,
14862306a36Sopenharmony_ci			.ops = &clk_branch_ops,
14962306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
15062306a36Sopenharmony_ci		},
15162306a36Sopenharmony_ci	},
15262306a36Sopenharmony_ci};
15362306a36Sopenharmony_ci
15462306a36Sopenharmony_cistatic struct clk_rcg gsbi2_uart_src = {
15562306a36Sopenharmony_ci	.ns_reg = 0x29f4,
15662306a36Sopenharmony_ci	.md_reg = 0x29f0,
15762306a36Sopenharmony_ci	.mn = {
15862306a36Sopenharmony_ci		.mnctr_en_bit = 8,
15962306a36Sopenharmony_ci		.mnctr_reset_bit = 7,
16062306a36Sopenharmony_ci		.mnctr_mode_shift = 5,
16162306a36Sopenharmony_ci		.n_val_shift = 16,
16262306a36Sopenharmony_ci		.m_val_shift = 16,
16362306a36Sopenharmony_ci		.width = 16,
16462306a36Sopenharmony_ci	},
16562306a36Sopenharmony_ci	.p = {
16662306a36Sopenharmony_ci		.pre_div_shift = 3,
16762306a36Sopenharmony_ci		.pre_div_width = 2,
16862306a36Sopenharmony_ci	},
16962306a36Sopenharmony_ci	.s = {
17062306a36Sopenharmony_ci		.src_sel_shift = 0,
17162306a36Sopenharmony_ci		.parent_map = gcc_pxo_pll8_map,
17262306a36Sopenharmony_ci	},
17362306a36Sopenharmony_ci	.freq_tbl = clk_tbl_gsbi_uart,
17462306a36Sopenharmony_ci	.clkr = {
17562306a36Sopenharmony_ci		.enable_reg = 0x29f4,
17662306a36Sopenharmony_ci		.enable_mask = BIT(11),
17762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
17862306a36Sopenharmony_ci			.name = "gsbi2_uart_src",
17962306a36Sopenharmony_ci			.parent_data = gcc_pxo_pll8,
18062306a36Sopenharmony_ci			.num_parents = ARRAY_SIZE(gcc_pxo_pll8),
18162306a36Sopenharmony_ci			.ops = &clk_rcg_ops,
18262306a36Sopenharmony_ci			.flags = CLK_SET_PARENT_GATE,
18362306a36Sopenharmony_ci		},
18462306a36Sopenharmony_ci	},
18562306a36Sopenharmony_ci};
18662306a36Sopenharmony_ci
18762306a36Sopenharmony_cistatic struct clk_branch gsbi2_uart_clk = {
18862306a36Sopenharmony_ci	.halt_reg = 0x2fcc,
18962306a36Sopenharmony_ci	.halt_bit = 6,
19062306a36Sopenharmony_ci	.clkr = {
19162306a36Sopenharmony_ci		.enable_reg = 0x29f4,
19262306a36Sopenharmony_ci		.enable_mask = BIT(9),
19362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
19462306a36Sopenharmony_ci			.name = "gsbi2_uart_clk",
19562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
19662306a36Sopenharmony_ci				&gsbi2_uart_src.clkr.hw
19762306a36Sopenharmony_ci			},
19862306a36Sopenharmony_ci			.num_parents = 1,
19962306a36Sopenharmony_ci			.ops = &clk_branch_ops,
20062306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
20162306a36Sopenharmony_ci		},
20262306a36Sopenharmony_ci	},
20362306a36Sopenharmony_ci};
20462306a36Sopenharmony_ci
20562306a36Sopenharmony_cistatic struct clk_rcg gsbi3_uart_src = {
20662306a36Sopenharmony_ci	.ns_reg = 0x2a14,
20762306a36Sopenharmony_ci	.md_reg = 0x2a10,
20862306a36Sopenharmony_ci	.mn = {
20962306a36Sopenharmony_ci		.mnctr_en_bit = 8,
21062306a36Sopenharmony_ci		.mnctr_reset_bit = 7,
21162306a36Sopenharmony_ci		.mnctr_mode_shift = 5,
21262306a36Sopenharmony_ci		.n_val_shift = 16,
21362306a36Sopenharmony_ci		.m_val_shift = 16,
21462306a36Sopenharmony_ci		.width = 16,
21562306a36Sopenharmony_ci	},
21662306a36Sopenharmony_ci	.p = {
21762306a36Sopenharmony_ci		.pre_div_shift = 3,
21862306a36Sopenharmony_ci		.pre_div_width = 2,
21962306a36Sopenharmony_ci	},
22062306a36Sopenharmony_ci	.s = {
22162306a36Sopenharmony_ci		.src_sel_shift = 0,
22262306a36Sopenharmony_ci		.parent_map = gcc_pxo_pll8_map,
22362306a36Sopenharmony_ci	},
22462306a36Sopenharmony_ci	.freq_tbl = clk_tbl_gsbi_uart,
22562306a36Sopenharmony_ci	.clkr = {
22662306a36Sopenharmony_ci		.enable_reg = 0x2a14,
22762306a36Sopenharmony_ci		.enable_mask = BIT(11),
22862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
22962306a36Sopenharmony_ci			.name = "gsbi3_uart_src",
23062306a36Sopenharmony_ci			.parent_data = gcc_pxo_pll8,
23162306a36Sopenharmony_ci			.num_parents = ARRAY_SIZE(gcc_pxo_pll8),
23262306a36Sopenharmony_ci			.ops = &clk_rcg_ops,
23362306a36Sopenharmony_ci			.flags = CLK_SET_PARENT_GATE,
23462306a36Sopenharmony_ci		},
23562306a36Sopenharmony_ci	},
23662306a36Sopenharmony_ci};
23762306a36Sopenharmony_ci
23862306a36Sopenharmony_cistatic struct clk_branch gsbi3_uart_clk = {
23962306a36Sopenharmony_ci	.halt_reg = 0x2fcc,
24062306a36Sopenharmony_ci	.halt_bit = 2,
24162306a36Sopenharmony_ci	.clkr = {
24262306a36Sopenharmony_ci		.enable_reg = 0x2a14,
24362306a36Sopenharmony_ci		.enable_mask = BIT(9),
24462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
24562306a36Sopenharmony_ci			.name = "gsbi3_uart_clk",
24662306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
24762306a36Sopenharmony_ci				&gsbi3_uart_src.clkr.hw
24862306a36Sopenharmony_ci			},
24962306a36Sopenharmony_ci			.num_parents = 1,
25062306a36Sopenharmony_ci			.ops = &clk_branch_ops,
25162306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
25262306a36Sopenharmony_ci		},
25362306a36Sopenharmony_ci	},
25462306a36Sopenharmony_ci};
25562306a36Sopenharmony_ci
25662306a36Sopenharmony_cistatic struct clk_rcg gsbi4_uart_src = {
25762306a36Sopenharmony_ci	.ns_reg = 0x2a34,
25862306a36Sopenharmony_ci	.md_reg = 0x2a30,
25962306a36Sopenharmony_ci	.mn = {
26062306a36Sopenharmony_ci		.mnctr_en_bit = 8,
26162306a36Sopenharmony_ci		.mnctr_reset_bit = 7,
26262306a36Sopenharmony_ci		.mnctr_mode_shift = 5,
26362306a36Sopenharmony_ci		.n_val_shift = 16,
26462306a36Sopenharmony_ci		.m_val_shift = 16,
26562306a36Sopenharmony_ci		.width = 16,
26662306a36Sopenharmony_ci	},
26762306a36Sopenharmony_ci	.p = {
26862306a36Sopenharmony_ci		.pre_div_shift = 3,
26962306a36Sopenharmony_ci		.pre_div_width = 2,
27062306a36Sopenharmony_ci	},
27162306a36Sopenharmony_ci	.s = {
27262306a36Sopenharmony_ci		.src_sel_shift = 0,
27362306a36Sopenharmony_ci		.parent_map = gcc_pxo_pll8_map,
27462306a36Sopenharmony_ci	},
27562306a36Sopenharmony_ci	.freq_tbl = clk_tbl_gsbi_uart,
27662306a36Sopenharmony_ci	.clkr = {
27762306a36Sopenharmony_ci		.enable_reg = 0x2a34,
27862306a36Sopenharmony_ci		.enable_mask = BIT(11),
27962306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
28062306a36Sopenharmony_ci			.name = "gsbi4_uart_src",
28162306a36Sopenharmony_ci			.parent_data = gcc_pxo_pll8,
28262306a36Sopenharmony_ci			.num_parents = ARRAY_SIZE(gcc_pxo_pll8),
28362306a36Sopenharmony_ci			.ops = &clk_rcg_ops,
28462306a36Sopenharmony_ci			.flags = CLK_SET_PARENT_GATE,
28562306a36Sopenharmony_ci		},
28662306a36Sopenharmony_ci	},
28762306a36Sopenharmony_ci};
28862306a36Sopenharmony_ci
28962306a36Sopenharmony_cistatic struct clk_branch gsbi4_uart_clk = {
29062306a36Sopenharmony_ci	.halt_reg = 0x2fd0,
29162306a36Sopenharmony_ci	.halt_bit = 26,
29262306a36Sopenharmony_ci	.clkr = {
29362306a36Sopenharmony_ci		.enable_reg = 0x2a34,
29462306a36Sopenharmony_ci		.enable_mask = BIT(9),
29562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
29662306a36Sopenharmony_ci			.name = "gsbi4_uart_clk",
29762306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
29862306a36Sopenharmony_ci				&gsbi4_uart_src.clkr.hw
29962306a36Sopenharmony_ci			},
30062306a36Sopenharmony_ci			.num_parents = 1,
30162306a36Sopenharmony_ci			.ops = &clk_branch_ops,
30262306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
30362306a36Sopenharmony_ci		},
30462306a36Sopenharmony_ci	},
30562306a36Sopenharmony_ci};
30662306a36Sopenharmony_ci
30762306a36Sopenharmony_cistatic struct clk_rcg gsbi5_uart_src = {
30862306a36Sopenharmony_ci	.ns_reg = 0x2a54,
30962306a36Sopenharmony_ci	.md_reg = 0x2a50,
31062306a36Sopenharmony_ci	.mn = {
31162306a36Sopenharmony_ci		.mnctr_en_bit = 8,
31262306a36Sopenharmony_ci		.mnctr_reset_bit = 7,
31362306a36Sopenharmony_ci		.mnctr_mode_shift = 5,
31462306a36Sopenharmony_ci		.n_val_shift = 16,
31562306a36Sopenharmony_ci		.m_val_shift = 16,
31662306a36Sopenharmony_ci		.width = 16,
31762306a36Sopenharmony_ci	},
31862306a36Sopenharmony_ci	.p = {
31962306a36Sopenharmony_ci		.pre_div_shift = 3,
32062306a36Sopenharmony_ci		.pre_div_width = 2,
32162306a36Sopenharmony_ci	},
32262306a36Sopenharmony_ci	.s = {
32362306a36Sopenharmony_ci		.src_sel_shift = 0,
32462306a36Sopenharmony_ci		.parent_map = gcc_pxo_pll8_map,
32562306a36Sopenharmony_ci	},
32662306a36Sopenharmony_ci	.freq_tbl = clk_tbl_gsbi_uart,
32762306a36Sopenharmony_ci	.clkr = {
32862306a36Sopenharmony_ci		.enable_reg = 0x2a54,
32962306a36Sopenharmony_ci		.enable_mask = BIT(11),
33062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
33162306a36Sopenharmony_ci			.name = "gsbi5_uart_src",
33262306a36Sopenharmony_ci			.parent_data = gcc_pxo_pll8,
33362306a36Sopenharmony_ci			.num_parents = ARRAY_SIZE(gcc_pxo_pll8),
33462306a36Sopenharmony_ci			.ops = &clk_rcg_ops,
33562306a36Sopenharmony_ci			.flags = CLK_SET_PARENT_GATE,
33662306a36Sopenharmony_ci		},
33762306a36Sopenharmony_ci	},
33862306a36Sopenharmony_ci};
33962306a36Sopenharmony_ci
34062306a36Sopenharmony_cistatic struct clk_branch gsbi5_uart_clk = {
34162306a36Sopenharmony_ci	.halt_reg = 0x2fd0,
34262306a36Sopenharmony_ci	.halt_bit = 22,
34362306a36Sopenharmony_ci	.clkr = {
34462306a36Sopenharmony_ci		.enable_reg = 0x2a54,
34562306a36Sopenharmony_ci		.enable_mask = BIT(9),
34662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
34762306a36Sopenharmony_ci			.name = "gsbi5_uart_clk",
34862306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
34962306a36Sopenharmony_ci				&gsbi5_uart_src.clkr.hw
35062306a36Sopenharmony_ci			},
35162306a36Sopenharmony_ci			.num_parents = 1,
35262306a36Sopenharmony_ci			.ops = &clk_branch_ops,
35362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
35462306a36Sopenharmony_ci		},
35562306a36Sopenharmony_ci	},
35662306a36Sopenharmony_ci};
35762306a36Sopenharmony_ci
35862306a36Sopenharmony_cistatic struct clk_rcg gsbi6_uart_src = {
35962306a36Sopenharmony_ci	.ns_reg = 0x2a74,
36062306a36Sopenharmony_ci	.md_reg = 0x2a70,
36162306a36Sopenharmony_ci	.mn = {
36262306a36Sopenharmony_ci		.mnctr_en_bit = 8,
36362306a36Sopenharmony_ci		.mnctr_reset_bit = 7,
36462306a36Sopenharmony_ci		.mnctr_mode_shift = 5,
36562306a36Sopenharmony_ci		.n_val_shift = 16,
36662306a36Sopenharmony_ci		.m_val_shift = 16,
36762306a36Sopenharmony_ci		.width = 16,
36862306a36Sopenharmony_ci	},
36962306a36Sopenharmony_ci	.p = {
37062306a36Sopenharmony_ci		.pre_div_shift = 3,
37162306a36Sopenharmony_ci		.pre_div_width = 2,
37262306a36Sopenharmony_ci	},
37362306a36Sopenharmony_ci	.s = {
37462306a36Sopenharmony_ci		.src_sel_shift = 0,
37562306a36Sopenharmony_ci		.parent_map = gcc_pxo_pll8_map,
37662306a36Sopenharmony_ci	},
37762306a36Sopenharmony_ci	.freq_tbl = clk_tbl_gsbi_uart,
37862306a36Sopenharmony_ci	.clkr = {
37962306a36Sopenharmony_ci		.enable_reg = 0x2a74,
38062306a36Sopenharmony_ci		.enable_mask = BIT(11),
38162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
38262306a36Sopenharmony_ci			.name = "gsbi6_uart_src",
38362306a36Sopenharmony_ci			.parent_data = gcc_pxo_pll8,
38462306a36Sopenharmony_ci			.num_parents = ARRAY_SIZE(gcc_pxo_pll8),
38562306a36Sopenharmony_ci			.ops = &clk_rcg_ops,
38662306a36Sopenharmony_ci			.flags = CLK_SET_PARENT_GATE,
38762306a36Sopenharmony_ci		},
38862306a36Sopenharmony_ci	},
38962306a36Sopenharmony_ci};
39062306a36Sopenharmony_ci
39162306a36Sopenharmony_cistatic struct clk_branch gsbi6_uart_clk = {
39262306a36Sopenharmony_ci	.halt_reg = 0x2fd0,
39362306a36Sopenharmony_ci	.halt_bit = 18,
39462306a36Sopenharmony_ci	.clkr = {
39562306a36Sopenharmony_ci		.enable_reg = 0x2a74,
39662306a36Sopenharmony_ci		.enable_mask = BIT(9),
39762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
39862306a36Sopenharmony_ci			.name = "gsbi6_uart_clk",
39962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
40062306a36Sopenharmony_ci				&gsbi6_uart_src.clkr.hw
40162306a36Sopenharmony_ci			},
40262306a36Sopenharmony_ci			.num_parents = 1,
40362306a36Sopenharmony_ci			.ops = &clk_branch_ops,
40462306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
40562306a36Sopenharmony_ci		},
40662306a36Sopenharmony_ci	},
40762306a36Sopenharmony_ci};
40862306a36Sopenharmony_ci
40962306a36Sopenharmony_cistatic struct clk_rcg gsbi7_uart_src = {
41062306a36Sopenharmony_ci	.ns_reg = 0x2a94,
41162306a36Sopenharmony_ci	.md_reg = 0x2a90,
41262306a36Sopenharmony_ci	.mn = {
41362306a36Sopenharmony_ci		.mnctr_en_bit = 8,
41462306a36Sopenharmony_ci		.mnctr_reset_bit = 7,
41562306a36Sopenharmony_ci		.mnctr_mode_shift = 5,
41662306a36Sopenharmony_ci		.n_val_shift = 16,
41762306a36Sopenharmony_ci		.m_val_shift = 16,
41862306a36Sopenharmony_ci		.width = 16,
41962306a36Sopenharmony_ci	},
42062306a36Sopenharmony_ci	.p = {
42162306a36Sopenharmony_ci		.pre_div_shift = 3,
42262306a36Sopenharmony_ci		.pre_div_width = 2,
42362306a36Sopenharmony_ci	},
42462306a36Sopenharmony_ci	.s = {
42562306a36Sopenharmony_ci		.src_sel_shift = 0,
42662306a36Sopenharmony_ci		.parent_map = gcc_pxo_pll8_map,
42762306a36Sopenharmony_ci	},
42862306a36Sopenharmony_ci	.freq_tbl = clk_tbl_gsbi_uart,
42962306a36Sopenharmony_ci	.clkr = {
43062306a36Sopenharmony_ci		.enable_reg = 0x2a94,
43162306a36Sopenharmony_ci		.enable_mask = BIT(11),
43262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
43362306a36Sopenharmony_ci			.name = "gsbi7_uart_src",
43462306a36Sopenharmony_ci			.parent_data = gcc_pxo_pll8,
43562306a36Sopenharmony_ci			.num_parents = ARRAY_SIZE(gcc_pxo_pll8),
43662306a36Sopenharmony_ci			.ops = &clk_rcg_ops,
43762306a36Sopenharmony_ci			.flags = CLK_SET_PARENT_GATE,
43862306a36Sopenharmony_ci		},
43962306a36Sopenharmony_ci	},
44062306a36Sopenharmony_ci};
44162306a36Sopenharmony_ci
44262306a36Sopenharmony_cistatic struct clk_branch gsbi7_uart_clk = {
44362306a36Sopenharmony_ci	.halt_reg = 0x2fd0,
44462306a36Sopenharmony_ci	.halt_bit = 14,
44562306a36Sopenharmony_ci	.clkr = {
44662306a36Sopenharmony_ci		.enable_reg = 0x2a94,
44762306a36Sopenharmony_ci		.enable_mask = BIT(9),
44862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
44962306a36Sopenharmony_ci			.name = "gsbi7_uart_clk",
45062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
45162306a36Sopenharmony_ci				&gsbi7_uart_src.clkr.hw
45262306a36Sopenharmony_ci			},
45362306a36Sopenharmony_ci			.num_parents = 1,
45462306a36Sopenharmony_ci			.ops = &clk_branch_ops,
45562306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
45662306a36Sopenharmony_ci		},
45762306a36Sopenharmony_ci	},
45862306a36Sopenharmony_ci};
45962306a36Sopenharmony_ci
46062306a36Sopenharmony_cistatic struct clk_rcg gsbi8_uart_src = {
46162306a36Sopenharmony_ci	.ns_reg = 0x2ab4,
46262306a36Sopenharmony_ci	.md_reg = 0x2ab0,
46362306a36Sopenharmony_ci	.mn = {
46462306a36Sopenharmony_ci		.mnctr_en_bit = 8,
46562306a36Sopenharmony_ci		.mnctr_reset_bit = 7,
46662306a36Sopenharmony_ci		.mnctr_mode_shift = 5,
46762306a36Sopenharmony_ci		.n_val_shift = 16,
46862306a36Sopenharmony_ci		.m_val_shift = 16,
46962306a36Sopenharmony_ci		.width = 16,
47062306a36Sopenharmony_ci	},
47162306a36Sopenharmony_ci	.p = {
47262306a36Sopenharmony_ci		.pre_div_shift = 3,
47362306a36Sopenharmony_ci		.pre_div_width = 2,
47462306a36Sopenharmony_ci	},
47562306a36Sopenharmony_ci	.s = {
47662306a36Sopenharmony_ci		.src_sel_shift = 0,
47762306a36Sopenharmony_ci		.parent_map = gcc_pxo_pll8_map,
47862306a36Sopenharmony_ci	},
47962306a36Sopenharmony_ci	.freq_tbl = clk_tbl_gsbi_uart,
48062306a36Sopenharmony_ci	.clkr = {
48162306a36Sopenharmony_ci		.enable_reg = 0x2ab4,
48262306a36Sopenharmony_ci		.enable_mask = BIT(11),
48362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
48462306a36Sopenharmony_ci			.name = "gsbi8_uart_src",
48562306a36Sopenharmony_ci			.parent_data = gcc_pxo_pll8,
48662306a36Sopenharmony_ci			.num_parents = ARRAY_SIZE(gcc_pxo_pll8),
48762306a36Sopenharmony_ci			.ops = &clk_rcg_ops,
48862306a36Sopenharmony_ci			.flags = CLK_SET_PARENT_GATE,
48962306a36Sopenharmony_ci		},
49062306a36Sopenharmony_ci	},
49162306a36Sopenharmony_ci};
49262306a36Sopenharmony_ci
49362306a36Sopenharmony_cistatic struct clk_branch gsbi8_uart_clk = {
49462306a36Sopenharmony_ci	.halt_reg = 0x2fd0,
49562306a36Sopenharmony_ci	.halt_bit = 10,
49662306a36Sopenharmony_ci	.clkr = {
49762306a36Sopenharmony_ci		.enable_reg = 0x2ab4,
49862306a36Sopenharmony_ci		.enable_mask = BIT(9),
49962306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
50062306a36Sopenharmony_ci			.name = "gsbi8_uart_clk",
50162306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
50262306a36Sopenharmony_ci				&gsbi8_uart_src.clkr.hw
50362306a36Sopenharmony_ci			},
50462306a36Sopenharmony_ci			.num_parents = 1,
50562306a36Sopenharmony_ci			.ops = &clk_branch_ops,
50662306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
50762306a36Sopenharmony_ci		},
50862306a36Sopenharmony_ci	},
50962306a36Sopenharmony_ci};
51062306a36Sopenharmony_ci
51162306a36Sopenharmony_cistatic struct clk_rcg gsbi9_uart_src = {
51262306a36Sopenharmony_ci	.ns_reg = 0x2ad4,
51362306a36Sopenharmony_ci	.md_reg = 0x2ad0,
51462306a36Sopenharmony_ci	.mn = {
51562306a36Sopenharmony_ci		.mnctr_en_bit = 8,
51662306a36Sopenharmony_ci		.mnctr_reset_bit = 7,
51762306a36Sopenharmony_ci		.mnctr_mode_shift = 5,
51862306a36Sopenharmony_ci		.n_val_shift = 16,
51962306a36Sopenharmony_ci		.m_val_shift = 16,
52062306a36Sopenharmony_ci		.width = 16,
52162306a36Sopenharmony_ci	},
52262306a36Sopenharmony_ci	.p = {
52362306a36Sopenharmony_ci		.pre_div_shift = 3,
52462306a36Sopenharmony_ci		.pre_div_width = 2,
52562306a36Sopenharmony_ci	},
52662306a36Sopenharmony_ci	.s = {
52762306a36Sopenharmony_ci		.src_sel_shift = 0,
52862306a36Sopenharmony_ci		.parent_map = gcc_pxo_pll8_map,
52962306a36Sopenharmony_ci	},
53062306a36Sopenharmony_ci	.freq_tbl = clk_tbl_gsbi_uart,
53162306a36Sopenharmony_ci	.clkr = {
53262306a36Sopenharmony_ci		.enable_reg = 0x2ad4,
53362306a36Sopenharmony_ci		.enable_mask = BIT(11),
53462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
53562306a36Sopenharmony_ci			.name = "gsbi9_uart_src",
53662306a36Sopenharmony_ci			.parent_data = gcc_pxo_pll8,
53762306a36Sopenharmony_ci			.num_parents = ARRAY_SIZE(gcc_pxo_pll8),
53862306a36Sopenharmony_ci			.ops = &clk_rcg_ops,
53962306a36Sopenharmony_ci			.flags = CLK_SET_PARENT_GATE,
54062306a36Sopenharmony_ci		},
54162306a36Sopenharmony_ci	},
54262306a36Sopenharmony_ci};
54362306a36Sopenharmony_ci
54462306a36Sopenharmony_cistatic struct clk_branch gsbi9_uart_clk = {
54562306a36Sopenharmony_ci	.halt_reg = 0x2fd0,
54662306a36Sopenharmony_ci	.halt_bit = 6,
54762306a36Sopenharmony_ci	.clkr = {
54862306a36Sopenharmony_ci		.enable_reg = 0x2ad4,
54962306a36Sopenharmony_ci		.enable_mask = BIT(9),
55062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
55162306a36Sopenharmony_ci			.name = "gsbi9_uart_clk",
55262306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
55362306a36Sopenharmony_ci				&gsbi9_uart_src.clkr.hw
55462306a36Sopenharmony_ci			},
55562306a36Sopenharmony_ci			.num_parents = 1,
55662306a36Sopenharmony_ci			.ops = &clk_branch_ops,
55762306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
55862306a36Sopenharmony_ci		},
55962306a36Sopenharmony_ci	},
56062306a36Sopenharmony_ci};
56162306a36Sopenharmony_ci
56262306a36Sopenharmony_cistatic struct clk_rcg gsbi10_uart_src = {
56362306a36Sopenharmony_ci	.ns_reg = 0x2af4,
56462306a36Sopenharmony_ci	.md_reg = 0x2af0,
56562306a36Sopenharmony_ci	.mn = {
56662306a36Sopenharmony_ci		.mnctr_en_bit = 8,
56762306a36Sopenharmony_ci		.mnctr_reset_bit = 7,
56862306a36Sopenharmony_ci		.mnctr_mode_shift = 5,
56962306a36Sopenharmony_ci		.n_val_shift = 16,
57062306a36Sopenharmony_ci		.m_val_shift = 16,
57162306a36Sopenharmony_ci		.width = 16,
57262306a36Sopenharmony_ci	},
57362306a36Sopenharmony_ci	.p = {
57462306a36Sopenharmony_ci		.pre_div_shift = 3,
57562306a36Sopenharmony_ci		.pre_div_width = 2,
57662306a36Sopenharmony_ci	},
57762306a36Sopenharmony_ci	.s = {
57862306a36Sopenharmony_ci		.src_sel_shift = 0,
57962306a36Sopenharmony_ci		.parent_map = gcc_pxo_pll8_map,
58062306a36Sopenharmony_ci	},
58162306a36Sopenharmony_ci	.freq_tbl = clk_tbl_gsbi_uart,
58262306a36Sopenharmony_ci	.clkr = {
58362306a36Sopenharmony_ci		.enable_reg = 0x2af4,
58462306a36Sopenharmony_ci		.enable_mask = BIT(11),
58562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
58662306a36Sopenharmony_ci			.name = "gsbi10_uart_src",
58762306a36Sopenharmony_ci			.parent_data = gcc_pxo_pll8,
58862306a36Sopenharmony_ci			.num_parents = ARRAY_SIZE(gcc_pxo_pll8),
58962306a36Sopenharmony_ci			.ops = &clk_rcg_ops,
59062306a36Sopenharmony_ci			.flags = CLK_SET_PARENT_GATE,
59162306a36Sopenharmony_ci		},
59262306a36Sopenharmony_ci	},
59362306a36Sopenharmony_ci};
59462306a36Sopenharmony_ci
59562306a36Sopenharmony_cistatic struct clk_branch gsbi10_uart_clk = {
59662306a36Sopenharmony_ci	.halt_reg = 0x2fd0,
59762306a36Sopenharmony_ci	.halt_bit = 2,
59862306a36Sopenharmony_ci	.clkr = {
59962306a36Sopenharmony_ci		.enable_reg = 0x2af4,
60062306a36Sopenharmony_ci		.enable_mask = BIT(9),
60162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
60262306a36Sopenharmony_ci			.name = "gsbi10_uart_clk",
60362306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
60462306a36Sopenharmony_ci				&gsbi10_uart_src.clkr.hw
60562306a36Sopenharmony_ci			},
60662306a36Sopenharmony_ci			.num_parents = 1,
60762306a36Sopenharmony_ci			.ops = &clk_branch_ops,
60862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
60962306a36Sopenharmony_ci		},
61062306a36Sopenharmony_ci	},
61162306a36Sopenharmony_ci};
61262306a36Sopenharmony_ci
61362306a36Sopenharmony_cistatic struct clk_rcg gsbi11_uart_src = {
61462306a36Sopenharmony_ci	.ns_reg = 0x2b14,
61562306a36Sopenharmony_ci	.md_reg = 0x2b10,
61662306a36Sopenharmony_ci	.mn = {
61762306a36Sopenharmony_ci		.mnctr_en_bit = 8,
61862306a36Sopenharmony_ci		.mnctr_reset_bit = 7,
61962306a36Sopenharmony_ci		.mnctr_mode_shift = 5,
62062306a36Sopenharmony_ci		.n_val_shift = 16,
62162306a36Sopenharmony_ci		.m_val_shift = 16,
62262306a36Sopenharmony_ci		.width = 16,
62362306a36Sopenharmony_ci	},
62462306a36Sopenharmony_ci	.p = {
62562306a36Sopenharmony_ci		.pre_div_shift = 3,
62662306a36Sopenharmony_ci		.pre_div_width = 2,
62762306a36Sopenharmony_ci	},
62862306a36Sopenharmony_ci	.s = {
62962306a36Sopenharmony_ci		.src_sel_shift = 0,
63062306a36Sopenharmony_ci		.parent_map = gcc_pxo_pll8_map,
63162306a36Sopenharmony_ci	},
63262306a36Sopenharmony_ci	.freq_tbl = clk_tbl_gsbi_uart,
63362306a36Sopenharmony_ci	.clkr = {
63462306a36Sopenharmony_ci		.enable_reg = 0x2b14,
63562306a36Sopenharmony_ci		.enable_mask = BIT(11),
63662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
63762306a36Sopenharmony_ci			.name = "gsbi11_uart_src",
63862306a36Sopenharmony_ci			.parent_data = gcc_pxo_pll8,
63962306a36Sopenharmony_ci			.num_parents = ARRAY_SIZE(gcc_pxo_pll8),
64062306a36Sopenharmony_ci			.ops = &clk_rcg_ops,
64162306a36Sopenharmony_ci			.flags = CLK_SET_PARENT_GATE,
64262306a36Sopenharmony_ci		},
64362306a36Sopenharmony_ci	},
64462306a36Sopenharmony_ci};
64562306a36Sopenharmony_ci
64662306a36Sopenharmony_cistatic struct clk_branch gsbi11_uart_clk = {
64762306a36Sopenharmony_ci	.halt_reg = 0x2fd4,
64862306a36Sopenharmony_ci	.halt_bit = 17,
64962306a36Sopenharmony_ci	.clkr = {
65062306a36Sopenharmony_ci		.enable_reg = 0x2b14,
65162306a36Sopenharmony_ci		.enable_mask = BIT(9),
65262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
65362306a36Sopenharmony_ci			.name = "gsbi11_uart_clk",
65462306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
65562306a36Sopenharmony_ci				&gsbi11_uart_src.clkr.hw
65662306a36Sopenharmony_ci			},
65762306a36Sopenharmony_ci			.num_parents = 1,
65862306a36Sopenharmony_ci			.ops = &clk_branch_ops,
65962306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
66062306a36Sopenharmony_ci		},
66162306a36Sopenharmony_ci	},
66262306a36Sopenharmony_ci};
66362306a36Sopenharmony_ci
66462306a36Sopenharmony_cistatic struct clk_rcg gsbi12_uart_src = {
66562306a36Sopenharmony_ci	.ns_reg = 0x2b34,
66662306a36Sopenharmony_ci	.md_reg = 0x2b30,
66762306a36Sopenharmony_ci	.mn = {
66862306a36Sopenharmony_ci		.mnctr_en_bit = 8,
66962306a36Sopenharmony_ci		.mnctr_reset_bit = 7,
67062306a36Sopenharmony_ci		.mnctr_mode_shift = 5,
67162306a36Sopenharmony_ci		.n_val_shift = 16,
67262306a36Sopenharmony_ci		.m_val_shift = 16,
67362306a36Sopenharmony_ci		.width = 16,
67462306a36Sopenharmony_ci	},
67562306a36Sopenharmony_ci	.p = {
67662306a36Sopenharmony_ci		.pre_div_shift = 3,
67762306a36Sopenharmony_ci		.pre_div_width = 2,
67862306a36Sopenharmony_ci	},
67962306a36Sopenharmony_ci	.s = {
68062306a36Sopenharmony_ci		.src_sel_shift = 0,
68162306a36Sopenharmony_ci		.parent_map = gcc_pxo_pll8_map,
68262306a36Sopenharmony_ci	},
68362306a36Sopenharmony_ci	.freq_tbl = clk_tbl_gsbi_uart,
68462306a36Sopenharmony_ci	.clkr = {
68562306a36Sopenharmony_ci		.enable_reg = 0x2b34,
68662306a36Sopenharmony_ci		.enable_mask = BIT(11),
68762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
68862306a36Sopenharmony_ci			.name = "gsbi12_uart_src",
68962306a36Sopenharmony_ci			.parent_data = gcc_pxo_pll8,
69062306a36Sopenharmony_ci			.num_parents = ARRAY_SIZE(gcc_pxo_pll8),
69162306a36Sopenharmony_ci			.ops = &clk_rcg_ops,
69262306a36Sopenharmony_ci			.flags = CLK_SET_PARENT_GATE,
69362306a36Sopenharmony_ci		},
69462306a36Sopenharmony_ci	},
69562306a36Sopenharmony_ci};
69662306a36Sopenharmony_ci
69762306a36Sopenharmony_cistatic struct clk_branch gsbi12_uart_clk = {
69862306a36Sopenharmony_ci	.halt_reg = 0x2fd4,
69962306a36Sopenharmony_ci	.halt_bit = 13,
70062306a36Sopenharmony_ci	.clkr = {
70162306a36Sopenharmony_ci		.enable_reg = 0x2b34,
70262306a36Sopenharmony_ci		.enable_mask = BIT(9),
70362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
70462306a36Sopenharmony_ci			.name = "gsbi12_uart_clk",
70562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
70662306a36Sopenharmony_ci				&gsbi12_uart_src.clkr.hw
70762306a36Sopenharmony_ci			},
70862306a36Sopenharmony_ci			.num_parents = 1,
70962306a36Sopenharmony_ci			.ops = &clk_branch_ops,
71062306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
71162306a36Sopenharmony_ci		},
71262306a36Sopenharmony_ci	},
71362306a36Sopenharmony_ci};
71462306a36Sopenharmony_ci
71562306a36Sopenharmony_cistatic struct freq_tbl clk_tbl_gsbi_qup[] = {
71662306a36Sopenharmony_ci	{  1100000, P_PXO,  1, 2, 49 },
71762306a36Sopenharmony_ci	{  5400000, P_PXO,  1, 1,  5 },
71862306a36Sopenharmony_ci	{ 10800000, P_PXO,  1, 2,  5 },
71962306a36Sopenharmony_ci	{ 15060000, P_PLL8, 1, 2, 51 },
72062306a36Sopenharmony_ci	{ 24000000, P_PLL8, 4, 1,  4 },
72162306a36Sopenharmony_ci	{ 25600000, P_PLL8, 1, 1, 15 },
72262306a36Sopenharmony_ci	{ 27000000, P_PXO,  1, 0,  0 },
72362306a36Sopenharmony_ci	{ 48000000, P_PLL8, 4, 1,  2 },
72462306a36Sopenharmony_ci	{ 51200000, P_PLL8, 1, 2, 15 },
72562306a36Sopenharmony_ci	{ }
72662306a36Sopenharmony_ci};
72762306a36Sopenharmony_ci
72862306a36Sopenharmony_cistatic struct clk_rcg gsbi1_qup_src = {
72962306a36Sopenharmony_ci	.ns_reg = 0x29cc,
73062306a36Sopenharmony_ci	.md_reg = 0x29c8,
73162306a36Sopenharmony_ci	.mn = {
73262306a36Sopenharmony_ci		.mnctr_en_bit = 8,
73362306a36Sopenharmony_ci		.mnctr_reset_bit = 7,
73462306a36Sopenharmony_ci		.mnctr_mode_shift = 5,
73562306a36Sopenharmony_ci		.n_val_shift = 16,
73662306a36Sopenharmony_ci		.m_val_shift = 16,
73762306a36Sopenharmony_ci		.width = 8,
73862306a36Sopenharmony_ci	},
73962306a36Sopenharmony_ci	.p = {
74062306a36Sopenharmony_ci		.pre_div_shift = 3,
74162306a36Sopenharmony_ci		.pre_div_width = 2,
74262306a36Sopenharmony_ci	},
74362306a36Sopenharmony_ci	.s = {
74462306a36Sopenharmony_ci		.src_sel_shift = 0,
74562306a36Sopenharmony_ci		.parent_map = gcc_pxo_pll8_map,
74662306a36Sopenharmony_ci	},
74762306a36Sopenharmony_ci	.freq_tbl = clk_tbl_gsbi_qup,
74862306a36Sopenharmony_ci	.clkr = {
74962306a36Sopenharmony_ci		.enable_reg = 0x29cc,
75062306a36Sopenharmony_ci		.enable_mask = BIT(11),
75162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
75262306a36Sopenharmony_ci			.name = "gsbi1_qup_src",
75362306a36Sopenharmony_ci			.parent_data = gcc_pxo_pll8,
75462306a36Sopenharmony_ci			.num_parents = ARRAY_SIZE(gcc_pxo_pll8),
75562306a36Sopenharmony_ci			.ops = &clk_rcg_ops,
75662306a36Sopenharmony_ci			.flags = CLK_SET_PARENT_GATE,
75762306a36Sopenharmony_ci		},
75862306a36Sopenharmony_ci	},
75962306a36Sopenharmony_ci};
76062306a36Sopenharmony_ci
76162306a36Sopenharmony_cistatic struct clk_branch gsbi1_qup_clk = {
76262306a36Sopenharmony_ci	.halt_reg = 0x2fcc,
76362306a36Sopenharmony_ci	.halt_bit = 9,
76462306a36Sopenharmony_ci	.clkr = {
76562306a36Sopenharmony_ci		.enable_reg = 0x29cc,
76662306a36Sopenharmony_ci		.enable_mask = BIT(9),
76762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
76862306a36Sopenharmony_ci			.name = "gsbi1_qup_clk",
76962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
77062306a36Sopenharmony_ci				&gsbi1_qup_src.clkr.hw
77162306a36Sopenharmony_ci			},
77262306a36Sopenharmony_ci			.num_parents = 1,
77362306a36Sopenharmony_ci			.ops = &clk_branch_ops,
77462306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
77562306a36Sopenharmony_ci		},
77662306a36Sopenharmony_ci	},
77762306a36Sopenharmony_ci};
77862306a36Sopenharmony_ci
77962306a36Sopenharmony_cistatic struct clk_rcg gsbi2_qup_src = {
78062306a36Sopenharmony_ci	.ns_reg = 0x29ec,
78162306a36Sopenharmony_ci	.md_reg = 0x29e8,
78262306a36Sopenharmony_ci	.mn = {
78362306a36Sopenharmony_ci		.mnctr_en_bit = 8,
78462306a36Sopenharmony_ci		.mnctr_reset_bit = 7,
78562306a36Sopenharmony_ci		.mnctr_mode_shift = 5,
78662306a36Sopenharmony_ci		.n_val_shift = 16,
78762306a36Sopenharmony_ci		.m_val_shift = 16,
78862306a36Sopenharmony_ci		.width = 8,
78962306a36Sopenharmony_ci	},
79062306a36Sopenharmony_ci	.p = {
79162306a36Sopenharmony_ci		.pre_div_shift = 3,
79262306a36Sopenharmony_ci		.pre_div_width = 2,
79362306a36Sopenharmony_ci	},
79462306a36Sopenharmony_ci	.s = {
79562306a36Sopenharmony_ci		.src_sel_shift = 0,
79662306a36Sopenharmony_ci		.parent_map = gcc_pxo_pll8_map,
79762306a36Sopenharmony_ci	},
79862306a36Sopenharmony_ci	.freq_tbl = clk_tbl_gsbi_qup,
79962306a36Sopenharmony_ci	.clkr = {
80062306a36Sopenharmony_ci		.enable_reg = 0x29ec,
80162306a36Sopenharmony_ci		.enable_mask = BIT(11),
80262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
80362306a36Sopenharmony_ci			.name = "gsbi2_qup_src",
80462306a36Sopenharmony_ci			.parent_data = gcc_pxo_pll8,
80562306a36Sopenharmony_ci			.num_parents = ARRAY_SIZE(gcc_pxo_pll8),
80662306a36Sopenharmony_ci			.ops = &clk_rcg_ops,
80762306a36Sopenharmony_ci			.flags = CLK_SET_PARENT_GATE,
80862306a36Sopenharmony_ci		},
80962306a36Sopenharmony_ci	},
81062306a36Sopenharmony_ci};
81162306a36Sopenharmony_ci
81262306a36Sopenharmony_cistatic struct clk_branch gsbi2_qup_clk = {
81362306a36Sopenharmony_ci	.halt_reg = 0x2fcc,
81462306a36Sopenharmony_ci	.halt_bit = 4,
81562306a36Sopenharmony_ci	.clkr = {
81662306a36Sopenharmony_ci		.enable_reg = 0x29ec,
81762306a36Sopenharmony_ci		.enable_mask = BIT(9),
81862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
81962306a36Sopenharmony_ci			.name = "gsbi2_qup_clk",
82062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
82162306a36Sopenharmony_ci				&gsbi2_qup_src.clkr.hw
82262306a36Sopenharmony_ci			},
82362306a36Sopenharmony_ci			.num_parents = 1,
82462306a36Sopenharmony_ci			.ops = &clk_branch_ops,
82562306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
82662306a36Sopenharmony_ci		},
82762306a36Sopenharmony_ci	},
82862306a36Sopenharmony_ci};
82962306a36Sopenharmony_ci
83062306a36Sopenharmony_cistatic struct clk_rcg gsbi3_qup_src = {
83162306a36Sopenharmony_ci	.ns_reg = 0x2a0c,
83262306a36Sopenharmony_ci	.md_reg = 0x2a08,
83362306a36Sopenharmony_ci	.mn = {
83462306a36Sopenharmony_ci		.mnctr_en_bit = 8,
83562306a36Sopenharmony_ci		.mnctr_reset_bit = 7,
83662306a36Sopenharmony_ci		.mnctr_mode_shift = 5,
83762306a36Sopenharmony_ci		.n_val_shift = 16,
83862306a36Sopenharmony_ci		.m_val_shift = 16,
83962306a36Sopenharmony_ci		.width = 8,
84062306a36Sopenharmony_ci	},
84162306a36Sopenharmony_ci	.p = {
84262306a36Sopenharmony_ci		.pre_div_shift = 3,
84362306a36Sopenharmony_ci		.pre_div_width = 2,
84462306a36Sopenharmony_ci	},
84562306a36Sopenharmony_ci	.s = {
84662306a36Sopenharmony_ci		.src_sel_shift = 0,
84762306a36Sopenharmony_ci		.parent_map = gcc_pxo_pll8_map,
84862306a36Sopenharmony_ci	},
84962306a36Sopenharmony_ci	.freq_tbl = clk_tbl_gsbi_qup,
85062306a36Sopenharmony_ci	.clkr = {
85162306a36Sopenharmony_ci		.enable_reg = 0x2a0c,
85262306a36Sopenharmony_ci		.enable_mask = BIT(11),
85362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
85462306a36Sopenharmony_ci			.name = "gsbi3_qup_src",
85562306a36Sopenharmony_ci			.parent_data = gcc_pxo_pll8,
85662306a36Sopenharmony_ci			.num_parents = ARRAY_SIZE(gcc_pxo_pll8),
85762306a36Sopenharmony_ci			.ops = &clk_rcg_ops,
85862306a36Sopenharmony_ci			.flags = CLK_SET_PARENT_GATE,
85962306a36Sopenharmony_ci		},
86062306a36Sopenharmony_ci	},
86162306a36Sopenharmony_ci};
86262306a36Sopenharmony_ci
86362306a36Sopenharmony_cistatic struct clk_branch gsbi3_qup_clk = {
86462306a36Sopenharmony_ci	.halt_reg = 0x2fcc,
86562306a36Sopenharmony_ci	.halt_bit = 0,
86662306a36Sopenharmony_ci	.clkr = {
86762306a36Sopenharmony_ci		.enable_reg = 0x2a0c,
86862306a36Sopenharmony_ci		.enable_mask = BIT(9),
86962306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
87062306a36Sopenharmony_ci			.name = "gsbi3_qup_clk",
87162306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
87262306a36Sopenharmony_ci				&gsbi3_qup_src.clkr.hw
87362306a36Sopenharmony_ci			},
87462306a36Sopenharmony_ci			.num_parents = 1,
87562306a36Sopenharmony_ci			.ops = &clk_branch_ops,
87662306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
87762306a36Sopenharmony_ci		},
87862306a36Sopenharmony_ci	},
87962306a36Sopenharmony_ci};
88062306a36Sopenharmony_ci
88162306a36Sopenharmony_cistatic struct clk_rcg gsbi4_qup_src = {
88262306a36Sopenharmony_ci	.ns_reg = 0x2a2c,
88362306a36Sopenharmony_ci	.md_reg = 0x2a28,
88462306a36Sopenharmony_ci	.mn = {
88562306a36Sopenharmony_ci		.mnctr_en_bit = 8,
88662306a36Sopenharmony_ci		.mnctr_reset_bit = 7,
88762306a36Sopenharmony_ci		.mnctr_mode_shift = 5,
88862306a36Sopenharmony_ci		.n_val_shift = 16,
88962306a36Sopenharmony_ci		.m_val_shift = 16,
89062306a36Sopenharmony_ci		.width = 8,
89162306a36Sopenharmony_ci	},
89262306a36Sopenharmony_ci	.p = {
89362306a36Sopenharmony_ci		.pre_div_shift = 3,
89462306a36Sopenharmony_ci		.pre_div_width = 2,
89562306a36Sopenharmony_ci	},
89662306a36Sopenharmony_ci	.s = {
89762306a36Sopenharmony_ci		.src_sel_shift = 0,
89862306a36Sopenharmony_ci		.parent_map = gcc_pxo_pll8_map,
89962306a36Sopenharmony_ci	},
90062306a36Sopenharmony_ci	.freq_tbl = clk_tbl_gsbi_qup,
90162306a36Sopenharmony_ci	.clkr = {
90262306a36Sopenharmony_ci		.enable_reg = 0x2a2c,
90362306a36Sopenharmony_ci		.enable_mask = BIT(11),
90462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
90562306a36Sopenharmony_ci			.name = "gsbi4_qup_src",
90662306a36Sopenharmony_ci			.parent_data = gcc_pxo_pll8,
90762306a36Sopenharmony_ci			.num_parents = ARRAY_SIZE(gcc_pxo_pll8),
90862306a36Sopenharmony_ci			.ops = &clk_rcg_ops,
90962306a36Sopenharmony_ci			.flags = CLK_SET_PARENT_GATE,
91062306a36Sopenharmony_ci		},
91162306a36Sopenharmony_ci	},
91262306a36Sopenharmony_ci};
91362306a36Sopenharmony_ci
91462306a36Sopenharmony_cistatic struct clk_branch gsbi4_qup_clk = {
91562306a36Sopenharmony_ci	.halt_reg = 0x2fd0,
91662306a36Sopenharmony_ci	.halt_bit = 24,
91762306a36Sopenharmony_ci	.clkr = {
91862306a36Sopenharmony_ci		.enable_reg = 0x2a2c,
91962306a36Sopenharmony_ci		.enable_mask = BIT(9),
92062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
92162306a36Sopenharmony_ci			.name = "gsbi4_qup_clk",
92262306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
92362306a36Sopenharmony_ci				&gsbi4_qup_src.clkr.hw
92462306a36Sopenharmony_ci			},
92562306a36Sopenharmony_ci			.num_parents = 1,
92662306a36Sopenharmony_ci			.ops = &clk_branch_ops,
92762306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
92862306a36Sopenharmony_ci		},
92962306a36Sopenharmony_ci	},
93062306a36Sopenharmony_ci};
93162306a36Sopenharmony_ci
93262306a36Sopenharmony_cistatic struct clk_rcg gsbi5_qup_src = {
93362306a36Sopenharmony_ci	.ns_reg = 0x2a4c,
93462306a36Sopenharmony_ci	.md_reg = 0x2a48,
93562306a36Sopenharmony_ci	.mn = {
93662306a36Sopenharmony_ci		.mnctr_en_bit = 8,
93762306a36Sopenharmony_ci		.mnctr_reset_bit = 7,
93862306a36Sopenharmony_ci		.mnctr_mode_shift = 5,
93962306a36Sopenharmony_ci		.n_val_shift = 16,
94062306a36Sopenharmony_ci		.m_val_shift = 16,
94162306a36Sopenharmony_ci		.width = 8,
94262306a36Sopenharmony_ci	},
94362306a36Sopenharmony_ci	.p = {
94462306a36Sopenharmony_ci		.pre_div_shift = 3,
94562306a36Sopenharmony_ci		.pre_div_width = 2,
94662306a36Sopenharmony_ci	},
94762306a36Sopenharmony_ci	.s = {
94862306a36Sopenharmony_ci		.src_sel_shift = 0,
94962306a36Sopenharmony_ci		.parent_map = gcc_pxo_pll8_map,
95062306a36Sopenharmony_ci	},
95162306a36Sopenharmony_ci	.freq_tbl = clk_tbl_gsbi_qup,
95262306a36Sopenharmony_ci	.clkr = {
95362306a36Sopenharmony_ci		.enable_reg = 0x2a4c,
95462306a36Sopenharmony_ci		.enable_mask = BIT(11),
95562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
95662306a36Sopenharmony_ci			.name = "gsbi5_qup_src",
95762306a36Sopenharmony_ci			.parent_data = gcc_pxo_pll8,
95862306a36Sopenharmony_ci			.num_parents = ARRAY_SIZE(gcc_pxo_pll8),
95962306a36Sopenharmony_ci			.ops = &clk_rcg_ops,
96062306a36Sopenharmony_ci			.flags = CLK_SET_PARENT_GATE,
96162306a36Sopenharmony_ci		},
96262306a36Sopenharmony_ci	},
96362306a36Sopenharmony_ci};
96462306a36Sopenharmony_ci
96562306a36Sopenharmony_cistatic struct clk_branch gsbi5_qup_clk = {
96662306a36Sopenharmony_ci	.halt_reg = 0x2fd0,
96762306a36Sopenharmony_ci	.halt_bit = 20,
96862306a36Sopenharmony_ci	.clkr = {
96962306a36Sopenharmony_ci		.enable_reg = 0x2a4c,
97062306a36Sopenharmony_ci		.enable_mask = BIT(9),
97162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
97262306a36Sopenharmony_ci			.name = "gsbi5_qup_clk",
97362306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
97462306a36Sopenharmony_ci				&gsbi5_qup_src.clkr.hw
97562306a36Sopenharmony_ci			},
97662306a36Sopenharmony_ci			.num_parents = 1,
97762306a36Sopenharmony_ci			.ops = &clk_branch_ops,
97862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
97962306a36Sopenharmony_ci		},
98062306a36Sopenharmony_ci	},
98162306a36Sopenharmony_ci};
98262306a36Sopenharmony_ci
98362306a36Sopenharmony_cistatic struct clk_rcg gsbi6_qup_src = {
98462306a36Sopenharmony_ci	.ns_reg = 0x2a6c,
98562306a36Sopenharmony_ci	.md_reg = 0x2a68,
98662306a36Sopenharmony_ci	.mn = {
98762306a36Sopenharmony_ci		.mnctr_en_bit = 8,
98862306a36Sopenharmony_ci		.mnctr_reset_bit = 7,
98962306a36Sopenharmony_ci		.mnctr_mode_shift = 5,
99062306a36Sopenharmony_ci		.n_val_shift = 16,
99162306a36Sopenharmony_ci		.m_val_shift = 16,
99262306a36Sopenharmony_ci		.width = 8,
99362306a36Sopenharmony_ci	},
99462306a36Sopenharmony_ci	.p = {
99562306a36Sopenharmony_ci		.pre_div_shift = 3,
99662306a36Sopenharmony_ci		.pre_div_width = 2,
99762306a36Sopenharmony_ci	},
99862306a36Sopenharmony_ci	.s = {
99962306a36Sopenharmony_ci		.src_sel_shift = 0,
100062306a36Sopenharmony_ci		.parent_map = gcc_pxo_pll8_map,
100162306a36Sopenharmony_ci	},
100262306a36Sopenharmony_ci	.freq_tbl = clk_tbl_gsbi_qup,
100362306a36Sopenharmony_ci	.clkr = {
100462306a36Sopenharmony_ci		.enable_reg = 0x2a6c,
100562306a36Sopenharmony_ci		.enable_mask = BIT(11),
100662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
100762306a36Sopenharmony_ci			.name = "gsbi6_qup_src",
100862306a36Sopenharmony_ci			.parent_data = gcc_pxo_pll8,
100962306a36Sopenharmony_ci			.num_parents = ARRAY_SIZE(gcc_pxo_pll8),
101062306a36Sopenharmony_ci			.ops = &clk_rcg_ops,
101162306a36Sopenharmony_ci			.flags = CLK_SET_PARENT_GATE,
101262306a36Sopenharmony_ci		},
101362306a36Sopenharmony_ci	},
101462306a36Sopenharmony_ci};
101562306a36Sopenharmony_ci
101662306a36Sopenharmony_cistatic struct clk_branch gsbi6_qup_clk = {
101762306a36Sopenharmony_ci	.halt_reg = 0x2fd0,
101862306a36Sopenharmony_ci	.halt_bit = 16,
101962306a36Sopenharmony_ci	.clkr = {
102062306a36Sopenharmony_ci		.enable_reg = 0x2a6c,
102162306a36Sopenharmony_ci		.enable_mask = BIT(9),
102262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
102362306a36Sopenharmony_ci			.name = "gsbi6_qup_clk",
102462306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
102562306a36Sopenharmony_ci				&gsbi6_qup_src.clkr.hw
102662306a36Sopenharmony_ci			},
102762306a36Sopenharmony_ci			.num_parents = 1,
102862306a36Sopenharmony_ci			.ops = &clk_branch_ops,
102962306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
103062306a36Sopenharmony_ci		},
103162306a36Sopenharmony_ci	},
103262306a36Sopenharmony_ci};
103362306a36Sopenharmony_ci
103462306a36Sopenharmony_cistatic struct clk_rcg gsbi7_qup_src = {
103562306a36Sopenharmony_ci	.ns_reg = 0x2a8c,
103662306a36Sopenharmony_ci	.md_reg = 0x2a88,
103762306a36Sopenharmony_ci	.mn = {
103862306a36Sopenharmony_ci		.mnctr_en_bit = 8,
103962306a36Sopenharmony_ci		.mnctr_reset_bit = 7,
104062306a36Sopenharmony_ci		.mnctr_mode_shift = 5,
104162306a36Sopenharmony_ci		.n_val_shift = 16,
104262306a36Sopenharmony_ci		.m_val_shift = 16,
104362306a36Sopenharmony_ci		.width = 8,
104462306a36Sopenharmony_ci	},
104562306a36Sopenharmony_ci	.p = {
104662306a36Sopenharmony_ci		.pre_div_shift = 3,
104762306a36Sopenharmony_ci		.pre_div_width = 2,
104862306a36Sopenharmony_ci	},
104962306a36Sopenharmony_ci	.s = {
105062306a36Sopenharmony_ci		.src_sel_shift = 0,
105162306a36Sopenharmony_ci		.parent_map = gcc_pxo_pll8_map,
105262306a36Sopenharmony_ci	},
105362306a36Sopenharmony_ci	.freq_tbl = clk_tbl_gsbi_qup,
105462306a36Sopenharmony_ci	.clkr = {
105562306a36Sopenharmony_ci		.enable_reg = 0x2a8c,
105662306a36Sopenharmony_ci		.enable_mask = BIT(11),
105762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
105862306a36Sopenharmony_ci			.name = "gsbi7_qup_src",
105962306a36Sopenharmony_ci			.parent_data = gcc_pxo_pll8,
106062306a36Sopenharmony_ci			.num_parents = ARRAY_SIZE(gcc_pxo_pll8),
106162306a36Sopenharmony_ci			.ops = &clk_rcg_ops,
106262306a36Sopenharmony_ci			.flags = CLK_SET_PARENT_GATE,
106362306a36Sopenharmony_ci		},
106462306a36Sopenharmony_ci	},
106562306a36Sopenharmony_ci};
106662306a36Sopenharmony_ci
106762306a36Sopenharmony_cistatic struct clk_branch gsbi7_qup_clk = {
106862306a36Sopenharmony_ci	.halt_reg = 0x2fd0,
106962306a36Sopenharmony_ci	.halt_bit = 12,
107062306a36Sopenharmony_ci	.clkr = {
107162306a36Sopenharmony_ci		.enable_reg = 0x2a8c,
107262306a36Sopenharmony_ci		.enable_mask = BIT(9),
107362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
107462306a36Sopenharmony_ci			.name = "gsbi7_qup_clk",
107562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
107662306a36Sopenharmony_ci				&gsbi7_qup_src.clkr.hw
107762306a36Sopenharmony_ci			},
107862306a36Sopenharmony_ci			.num_parents = 1,
107962306a36Sopenharmony_ci			.ops = &clk_branch_ops,
108062306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
108162306a36Sopenharmony_ci		},
108262306a36Sopenharmony_ci	},
108362306a36Sopenharmony_ci};
108462306a36Sopenharmony_ci
108562306a36Sopenharmony_cistatic struct clk_rcg gsbi8_qup_src = {
108662306a36Sopenharmony_ci	.ns_reg = 0x2aac,
108762306a36Sopenharmony_ci	.md_reg = 0x2aa8,
108862306a36Sopenharmony_ci	.mn = {
108962306a36Sopenharmony_ci		.mnctr_en_bit = 8,
109062306a36Sopenharmony_ci		.mnctr_reset_bit = 7,
109162306a36Sopenharmony_ci		.mnctr_mode_shift = 5,
109262306a36Sopenharmony_ci		.n_val_shift = 16,
109362306a36Sopenharmony_ci		.m_val_shift = 16,
109462306a36Sopenharmony_ci		.width = 8,
109562306a36Sopenharmony_ci	},
109662306a36Sopenharmony_ci	.p = {
109762306a36Sopenharmony_ci		.pre_div_shift = 3,
109862306a36Sopenharmony_ci		.pre_div_width = 2,
109962306a36Sopenharmony_ci	},
110062306a36Sopenharmony_ci	.s = {
110162306a36Sopenharmony_ci		.src_sel_shift = 0,
110262306a36Sopenharmony_ci		.parent_map = gcc_pxo_pll8_map,
110362306a36Sopenharmony_ci	},
110462306a36Sopenharmony_ci	.freq_tbl = clk_tbl_gsbi_qup,
110562306a36Sopenharmony_ci	.clkr = {
110662306a36Sopenharmony_ci		.enable_reg = 0x2aac,
110762306a36Sopenharmony_ci		.enable_mask = BIT(11),
110862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
110962306a36Sopenharmony_ci			.name = "gsbi8_qup_src",
111062306a36Sopenharmony_ci			.parent_data = gcc_pxo_pll8,
111162306a36Sopenharmony_ci			.num_parents = ARRAY_SIZE(gcc_pxo_pll8),
111262306a36Sopenharmony_ci			.ops = &clk_rcg_ops,
111362306a36Sopenharmony_ci			.flags = CLK_SET_PARENT_GATE,
111462306a36Sopenharmony_ci		},
111562306a36Sopenharmony_ci	},
111662306a36Sopenharmony_ci};
111762306a36Sopenharmony_ci
111862306a36Sopenharmony_cistatic struct clk_branch gsbi8_qup_clk = {
111962306a36Sopenharmony_ci	.halt_reg = 0x2fd0,
112062306a36Sopenharmony_ci	.halt_bit = 8,
112162306a36Sopenharmony_ci	.clkr = {
112262306a36Sopenharmony_ci		.enable_reg = 0x2aac,
112362306a36Sopenharmony_ci		.enable_mask = BIT(9),
112462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
112562306a36Sopenharmony_ci			.name = "gsbi8_qup_clk",
112662306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
112762306a36Sopenharmony_ci				&gsbi8_qup_src.clkr.hw
112862306a36Sopenharmony_ci			},
112962306a36Sopenharmony_ci			.num_parents = 1,
113062306a36Sopenharmony_ci			.ops = &clk_branch_ops,
113162306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
113262306a36Sopenharmony_ci		},
113362306a36Sopenharmony_ci	},
113462306a36Sopenharmony_ci};
113562306a36Sopenharmony_ci
113662306a36Sopenharmony_cistatic struct clk_rcg gsbi9_qup_src = {
113762306a36Sopenharmony_ci	.ns_reg = 0x2acc,
113862306a36Sopenharmony_ci	.md_reg = 0x2ac8,
113962306a36Sopenharmony_ci	.mn = {
114062306a36Sopenharmony_ci		.mnctr_en_bit = 8,
114162306a36Sopenharmony_ci		.mnctr_reset_bit = 7,
114262306a36Sopenharmony_ci		.mnctr_mode_shift = 5,
114362306a36Sopenharmony_ci		.n_val_shift = 16,
114462306a36Sopenharmony_ci		.m_val_shift = 16,
114562306a36Sopenharmony_ci		.width = 8,
114662306a36Sopenharmony_ci	},
114762306a36Sopenharmony_ci	.p = {
114862306a36Sopenharmony_ci		.pre_div_shift = 3,
114962306a36Sopenharmony_ci		.pre_div_width = 2,
115062306a36Sopenharmony_ci	},
115162306a36Sopenharmony_ci	.s = {
115262306a36Sopenharmony_ci		.src_sel_shift = 0,
115362306a36Sopenharmony_ci		.parent_map = gcc_pxo_pll8_map,
115462306a36Sopenharmony_ci	},
115562306a36Sopenharmony_ci	.freq_tbl = clk_tbl_gsbi_qup,
115662306a36Sopenharmony_ci	.clkr = {
115762306a36Sopenharmony_ci		.enable_reg = 0x2acc,
115862306a36Sopenharmony_ci		.enable_mask = BIT(11),
115962306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
116062306a36Sopenharmony_ci			.name = "gsbi9_qup_src",
116162306a36Sopenharmony_ci			.parent_data = gcc_pxo_pll8,
116262306a36Sopenharmony_ci			.num_parents = ARRAY_SIZE(gcc_pxo_pll8),
116362306a36Sopenharmony_ci			.ops = &clk_rcg_ops,
116462306a36Sopenharmony_ci			.flags = CLK_SET_PARENT_GATE,
116562306a36Sopenharmony_ci		},
116662306a36Sopenharmony_ci	},
116762306a36Sopenharmony_ci};
116862306a36Sopenharmony_ci
116962306a36Sopenharmony_cistatic struct clk_branch gsbi9_qup_clk = {
117062306a36Sopenharmony_ci	.halt_reg = 0x2fd0,
117162306a36Sopenharmony_ci	.halt_bit = 4,
117262306a36Sopenharmony_ci	.clkr = {
117362306a36Sopenharmony_ci		.enable_reg = 0x2acc,
117462306a36Sopenharmony_ci		.enable_mask = BIT(9),
117562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
117662306a36Sopenharmony_ci			.name = "gsbi9_qup_clk",
117762306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
117862306a36Sopenharmony_ci				&gsbi9_qup_src.clkr.hw
117962306a36Sopenharmony_ci			},
118062306a36Sopenharmony_ci			.num_parents = 1,
118162306a36Sopenharmony_ci			.ops = &clk_branch_ops,
118262306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
118362306a36Sopenharmony_ci		},
118462306a36Sopenharmony_ci	},
118562306a36Sopenharmony_ci};
118662306a36Sopenharmony_ci
118762306a36Sopenharmony_cistatic struct clk_rcg gsbi10_qup_src = {
118862306a36Sopenharmony_ci	.ns_reg = 0x2aec,
118962306a36Sopenharmony_ci	.md_reg = 0x2ae8,
119062306a36Sopenharmony_ci	.mn = {
119162306a36Sopenharmony_ci		.mnctr_en_bit = 8,
119262306a36Sopenharmony_ci		.mnctr_reset_bit = 7,
119362306a36Sopenharmony_ci		.mnctr_mode_shift = 5,
119462306a36Sopenharmony_ci		.n_val_shift = 16,
119562306a36Sopenharmony_ci		.m_val_shift = 16,
119662306a36Sopenharmony_ci		.width = 8,
119762306a36Sopenharmony_ci	},
119862306a36Sopenharmony_ci	.p = {
119962306a36Sopenharmony_ci		.pre_div_shift = 3,
120062306a36Sopenharmony_ci		.pre_div_width = 2,
120162306a36Sopenharmony_ci	},
120262306a36Sopenharmony_ci	.s = {
120362306a36Sopenharmony_ci		.src_sel_shift = 0,
120462306a36Sopenharmony_ci		.parent_map = gcc_pxo_pll8_map,
120562306a36Sopenharmony_ci	},
120662306a36Sopenharmony_ci	.freq_tbl = clk_tbl_gsbi_qup,
120762306a36Sopenharmony_ci	.clkr = {
120862306a36Sopenharmony_ci		.enable_reg = 0x2aec,
120962306a36Sopenharmony_ci		.enable_mask = BIT(11),
121062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
121162306a36Sopenharmony_ci			.name = "gsbi10_qup_src",
121262306a36Sopenharmony_ci			.parent_data = gcc_pxo_pll8,
121362306a36Sopenharmony_ci			.num_parents = ARRAY_SIZE(gcc_pxo_pll8),
121462306a36Sopenharmony_ci			.ops = &clk_rcg_ops,
121562306a36Sopenharmony_ci			.flags = CLK_SET_PARENT_GATE,
121662306a36Sopenharmony_ci		},
121762306a36Sopenharmony_ci	},
121862306a36Sopenharmony_ci};
121962306a36Sopenharmony_ci
122062306a36Sopenharmony_cistatic struct clk_branch gsbi10_qup_clk = {
122162306a36Sopenharmony_ci	.halt_reg = 0x2fd0,
122262306a36Sopenharmony_ci	.halt_bit = 0,
122362306a36Sopenharmony_ci	.clkr = {
122462306a36Sopenharmony_ci		.enable_reg = 0x2aec,
122562306a36Sopenharmony_ci		.enable_mask = BIT(9),
122662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
122762306a36Sopenharmony_ci			.name = "gsbi10_qup_clk",
122862306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
122962306a36Sopenharmony_ci				&gsbi10_qup_src.clkr.hw
123062306a36Sopenharmony_ci			},
123162306a36Sopenharmony_ci			.num_parents = 1,
123262306a36Sopenharmony_ci			.ops = &clk_branch_ops,
123362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
123462306a36Sopenharmony_ci		},
123562306a36Sopenharmony_ci	},
123662306a36Sopenharmony_ci};
123762306a36Sopenharmony_ci
123862306a36Sopenharmony_cistatic struct clk_rcg gsbi11_qup_src = {
123962306a36Sopenharmony_ci	.ns_reg = 0x2b0c,
124062306a36Sopenharmony_ci	.md_reg = 0x2b08,
124162306a36Sopenharmony_ci	.mn = {
124262306a36Sopenharmony_ci		.mnctr_en_bit = 8,
124362306a36Sopenharmony_ci		.mnctr_reset_bit = 7,
124462306a36Sopenharmony_ci		.mnctr_mode_shift = 5,
124562306a36Sopenharmony_ci		.n_val_shift = 16,
124662306a36Sopenharmony_ci		.m_val_shift = 16,
124762306a36Sopenharmony_ci		.width = 8,
124862306a36Sopenharmony_ci	},
124962306a36Sopenharmony_ci	.p = {
125062306a36Sopenharmony_ci		.pre_div_shift = 3,
125162306a36Sopenharmony_ci		.pre_div_width = 2,
125262306a36Sopenharmony_ci	},
125362306a36Sopenharmony_ci	.s = {
125462306a36Sopenharmony_ci		.src_sel_shift = 0,
125562306a36Sopenharmony_ci		.parent_map = gcc_pxo_pll8_map,
125662306a36Sopenharmony_ci	},
125762306a36Sopenharmony_ci	.freq_tbl = clk_tbl_gsbi_qup,
125862306a36Sopenharmony_ci	.clkr = {
125962306a36Sopenharmony_ci		.enable_reg = 0x2b0c,
126062306a36Sopenharmony_ci		.enable_mask = BIT(11),
126162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
126262306a36Sopenharmony_ci			.name = "gsbi11_qup_src",
126362306a36Sopenharmony_ci			.parent_data = gcc_pxo_pll8,
126462306a36Sopenharmony_ci			.num_parents = ARRAY_SIZE(gcc_pxo_pll8),
126562306a36Sopenharmony_ci			.ops = &clk_rcg_ops,
126662306a36Sopenharmony_ci			.flags = CLK_SET_PARENT_GATE,
126762306a36Sopenharmony_ci		},
126862306a36Sopenharmony_ci	},
126962306a36Sopenharmony_ci};
127062306a36Sopenharmony_ci
127162306a36Sopenharmony_cistatic struct clk_branch gsbi11_qup_clk = {
127262306a36Sopenharmony_ci	.halt_reg = 0x2fd4,
127362306a36Sopenharmony_ci	.halt_bit = 15,
127462306a36Sopenharmony_ci	.clkr = {
127562306a36Sopenharmony_ci		.enable_reg = 0x2b0c,
127662306a36Sopenharmony_ci		.enable_mask = BIT(9),
127762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
127862306a36Sopenharmony_ci			.name = "gsbi11_qup_clk",
127962306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
128062306a36Sopenharmony_ci				&gsbi11_qup_src.clkr.hw
128162306a36Sopenharmony_ci			},
128262306a36Sopenharmony_ci			.num_parents = 1,
128362306a36Sopenharmony_ci			.ops = &clk_branch_ops,
128462306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
128562306a36Sopenharmony_ci		},
128662306a36Sopenharmony_ci	},
128762306a36Sopenharmony_ci};
128862306a36Sopenharmony_ci
128962306a36Sopenharmony_cistatic struct clk_rcg gsbi12_qup_src = {
129062306a36Sopenharmony_ci	.ns_reg = 0x2b2c,
129162306a36Sopenharmony_ci	.md_reg = 0x2b28,
129262306a36Sopenharmony_ci	.mn = {
129362306a36Sopenharmony_ci		.mnctr_en_bit = 8,
129462306a36Sopenharmony_ci		.mnctr_reset_bit = 7,
129562306a36Sopenharmony_ci		.mnctr_mode_shift = 5,
129662306a36Sopenharmony_ci		.n_val_shift = 16,
129762306a36Sopenharmony_ci		.m_val_shift = 16,
129862306a36Sopenharmony_ci		.width = 8,
129962306a36Sopenharmony_ci	},
130062306a36Sopenharmony_ci	.p = {
130162306a36Sopenharmony_ci		.pre_div_shift = 3,
130262306a36Sopenharmony_ci		.pre_div_width = 2,
130362306a36Sopenharmony_ci	},
130462306a36Sopenharmony_ci	.s = {
130562306a36Sopenharmony_ci		.src_sel_shift = 0,
130662306a36Sopenharmony_ci		.parent_map = gcc_pxo_pll8_map,
130762306a36Sopenharmony_ci	},
130862306a36Sopenharmony_ci	.freq_tbl = clk_tbl_gsbi_qup,
130962306a36Sopenharmony_ci	.clkr = {
131062306a36Sopenharmony_ci		.enable_reg = 0x2b2c,
131162306a36Sopenharmony_ci		.enable_mask = BIT(11),
131262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
131362306a36Sopenharmony_ci			.name = "gsbi12_qup_src",
131462306a36Sopenharmony_ci			.parent_data = gcc_pxo_pll8,
131562306a36Sopenharmony_ci			.num_parents = ARRAY_SIZE(gcc_pxo_pll8),
131662306a36Sopenharmony_ci			.ops = &clk_rcg_ops,
131762306a36Sopenharmony_ci			.flags = CLK_SET_PARENT_GATE,
131862306a36Sopenharmony_ci		},
131962306a36Sopenharmony_ci	},
132062306a36Sopenharmony_ci};
132162306a36Sopenharmony_ci
132262306a36Sopenharmony_cistatic struct clk_branch gsbi12_qup_clk = {
132362306a36Sopenharmony_ci	.halt_reg = 0x2fd4,
132462306a36Sopenharmony_ci	.halt_bit = 11,
132562306a36Sopenharmony_ci	.clkr = {
132662306a36Sopenharmony_ci		.enable_reg = 0x2b2c,
132762306a36Sopenharmony_ci		.enable_mask = BIT(9),
132862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
132962306a36Sopenharmony_ci			.name = "gsbi12_qup_clk",
133062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
133162306a36Sopenharmony_ci				&gsbi12_qup_src.clkr.hw
133262306a36Sopenharmony_ci			},
133362306a36Sopenharmony_ci			.num_parents = 1,
133462306a36Sopenharmony_ci			.ops = &clk_branch_ops,
133562306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
133662306a36Sopenharmony_ci		},
133762306a36Sopenharmony_ci	},
133862306a36Sopenharmony_ci};
133962306a36Sopenharmony_ci
134062306a36Sopenharmony_cistatic const struct freq_tbl clk_tbl_gp[] = {
134162306a36Sopenharmony_ci	{ 9600000, P_CXO,  2, 0, 0 },
134262306a36Sopenharmony_ci	{ 13500000, P_PXO,  2, 0, 0 },
134362306a36Sopenharmony_ci	{ 19200000, P_CXO,  1, 0, 0 },
134462306a36Sopenharmony_ci	{ 27000000, P_PXO,  1, 0, 0 },
134562306a36Sopenharmony_ci	{ 64000000, P_PLL8, 2, 1, 3 },
134662306a36Sopenharmony_ci	{ 76800000, P_PLL8, 1, 1, 5 },
134762306a36Sopenharmony_ci	{ 96000000, P_PLL8, 4, 0, 0 },
134862306a36Sopenharmony_ci	{ 128000000, P_PLL8, 3, 0, 0 },
134962306a36Sopenharmony_ci	{ 192000000, P_PLL8, 2, 0, 0 },
135062306a36Sopenharmony_ci	{ }
135162306a36Sopenharmony_ci};
135262306a36Sopenharmony_ci
135362306a36Sopenharmony_cistatic struct clk_rcg gp0_src = {
135462306a36Sopenharmony_ci	.ns_reg = 0x2d24,
135562306a36Sopenharmony_ci	.md_reg = 0x2d00,
135662306a36Sopenharmony_ci	.mn = {
135762306a36Sopenharmony_ci		.mnctr_en_bit = 8,
135862306a36Sopenharmony_ci		.mnctr_reset_bit = 7,
135962306a36Sopenharmony_ci		.mnctr_mode_shift = 5,
136062306a36Sopenharmony_ci		.n_val_shift = 16,
136162306a36Sopenharmony_ci		.m_val_shift = 16,
136262306a36Sopenharmony_ci		.width = 8,
136362306a36Sopenharmony_ci	},
136462306a36Sopenharmony_ci	.p = {
136562306a36Sopenharmony_ci		.pre_div_shift = 3,
136662306a36Sopenharmony_ci		.pre_div_width = 2,
136762306a36Sopenharmony_ci	},
136862306a36Sopenharmony_ci	.s = {
136962306a36Sopenharmony_ci		.src_sel_shift = 0,
137062306a36Sopenharmony_ci		.parent_map = gcc_pxo_pll8_cxo_map,
137162306a36Sopenharmony_ci	},
137262306a36Sopenharmony_ci	.freq_tbl = clk_tbl_gp,
137362306a36Sopenharmony_ci	.clkr = {
137462306a36Sopenharmony_ci		.enable_reg = 0x2d24,
137562306a36Sopenharmony_ci		.enable_mask = BIT(11),
137662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
137762306a36Sopenharmony_ci			.name = "gp0_src",
137862306a36Sopenharmony_ci			.parent_data = gcc_pxo_pll8_cxo,
137962306a36Sopenharmony_ci			.num_parents = ARRAY_SIZE(gcc_pxo_pll8_cxo),
138062306a36Sopenharmony_ci			.ops = &clk_rcg_ops,
138162306a36Sopenharmony_ci			.flags = CLK_SET_PARENT_GATE,
138262306a36Sopenharmony_ci		},
138362306a36Sopenharmony_ci	}
138462306a36Sopenharmony_ci};
138562306a36Sopenharmony_ci
138662306a36Sopenharmony_cistatic struct clk_branch gp0_clk = {
138762306a36Sopenharmony_ci	.halt_reg = 0x2fd8,
138862306a36Sopenharmony_ci	.halt_bit = 7,
138962306a36Sopenharmony_ci	.clkr = {
139062306a36Sopenharmony_ci		.enable_reg = 0x2d24,
139162306a36Sopenharmony_ci		.enable_mask = BIT(9),
139262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
139362306a36Sopenharmony_ci			.name = "gp0_clk",
139462306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
139562306a36Sopenharmony_ci				&gp0_src.clkr.hw
139662306a36Sopenharmony_ci			},
139762306a36Sopenharmony_ci			.num_parents = 1,
139862306a36Sopenharmony_ci			.ops = &clk_branch_ops,
139962306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
140062306a36Sopenharmony_ci		},
140162306a36Sopenharmony_ci	},
140262306a36Sopenharmony_ci};
140362306a36Sopenharmony_ci
140462306a36Sopenharmony_cistatic struct clk_rcg gp1_src = {
140562306a36Sopenharmony_ci	.ns_reg = 0x2d44,
140662306a36Sopenharmony_ci	.md_reg = 0x2d40,
140762306a36Sopenharmony_ci	.mn = {
140862306a36Sopenharmony_ci		.mnctr_en_bit = 8,
140962306a36Sopenharmony_ci		.mnctr_reset_bit = 7,
141062306a36Sopenharmony_ci		.mnctr_mode_shift = 5,
141162306a36Sopenharmony_ci		.n_val_shift = 16,
141262306a36Sopenharmony_ci		.m_val_shift = 16,
141362306a36Sopenharmony_ci		.width = 8,
141462306a36Sopenharmony_ci	},
141562306a36Sopenharmony_ci	.p = {
141662306a36Sopenharmony_ci		.pre_div_shift = 3,
141762306a36Sopenharmony_ci		.pre_div_width = 2,
141862306a36Sopenharmony_ci	},
141962306a36Sopenharmony_ci	.s = {
142062306a36Sopenharmony_ci		.src_sel_shift = 0,
142162306a36Sopenharmony_ci		.parent_map = gcc_pxo_pll8_cxo_map,
142262306a36Sopenharmony_ci	},
142362306a36Sopenharmony_ci	.freq_tbl = clk_tbl_gp,
142462306a36Sopenharmony_ci	.clkr = {
142562306a36Sopenharmony_ci		.enable_reg = 0x2d44,
142662306a36Sopenharmony_ci		.enable_mask = BIT(11),
142762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
142862306a36Sopenharmony_ci			.name = "gp1_src",
142962306a36Sopenharmony_ci			.parent_data = gcc_pxo_pll8_cxo,
143062306a36Sopenharmony_ci			.num_parents = ARRAY_SIZE(gcc_pxo_pll8_cxo),
143162306a36Sopenharmony_ci			.ops = &clk_rcg_ops,
143262306a36Sopenharmony_ci			.flags = CLK_SET_RATE_GATE,
143362306a36Sopenharmony_ci		},
143462306a36Sopenharmony_ci	}
143562306a36Sopenharmony_ci};
143662306a36Sopenharmony_ci
143762306a36Sopenharmony_cistatic struct clk_branch gp1_clk = {
143862306a36Sopenharmony_ci	.halt_reg = 0x2fd8,
143962306a36Sopenharmony_ci	.halt_bit = 6,
144062306a36Sopenharmony_ci	.clkr = {
144162306a36Sopenharmony_ci		.enable_reg = 0x2d44,
144262306a36Sopenharmony_ci		.enable_mask = BIT(9),
144362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
144462306a36Sopenharmony_ci			.name = "gp1_clk",
144562306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
144662306a36Sopenharmony_ci				&gp1_src.clkr.hw
144762306a36Sopenharmony_ci			},
144862306a36Sopenharmony_ci			.num_parents = 1,
144962306a36Sopenharmony_ci			.ops = &clk_branch_ops,
145062306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
145162306a36Sopenharmony_ci		},
145262306a36Sopenharmony_ci	},
145362306a36Sopenharmony_ci};
145462306a36Sopenharmony_ci
145562306a36Sopenharmony_cistatic struct clk_rcg gp2_src = {
145662306a36Sopenharmony_ci	.ns_reg = 0x2d64,
145762306a36Sopenharmony_ci	.md_reg = 0x2d60,
145862306a36Sopenharmony_ci	.mn = {
145962306a36Sopenharmony_ci		.mnctr_en_bit = 8,
146062306a36Sopenharmony_ci		.mnctr_reset_bit = 7,
146162306a36Sopenharmony_ci		.mnctr_mode_shift = 5,
146262306a36Sopenharmony_ci		.n_val_shift = 16,
146362306a36Sopenharmony_ci		.m_val_shift = 16,
146462306a36Sopenharmony_ci		.width = 8,
146562306a36Sopenharmony_ci	},
146662306a36Sopenharmony_ci	.p = {
146762306a36Sopenharmony_ci		.pre_div_shift = 3,
146862306a36Sopenharmony_ci		.pre_div_width = 2,
146962306a36Sopenharmony_ci	},
147062306a36Sopenharmony_ci	.s = {
147162306a36Sopenharmony_ci		.src_sel_shift = 0,
147262306a36Sopenharmony_ci		.parent_map = gcc_pxo_pll8_cxo_map,
147362306a36Sopenharmony_ci	},
147462306a36Sopenharmony_ci	.freq_tbl = clk_tbl_gp,
147562306a36Sopenharmony_ci	.clkr = {
147662306a36Sopenharmony_ci		.enable_reg = 0x2d64,
147762306a36Sopenharmony_ci		.enable_mask = BIT(11),
147862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
147962306a36Sopenharmony_ci			.name = "gp2_src",
148062306a36Sopenharmony_ci			.parent_data = gcc_pxo_pll8_cxo,
148162306a36Sopenharmony_ci			.num_parents = ARRAY_SIZE(gcc_pxo_pll8_cxo),
148262306a36Sopenharmony_ci			.ops = &clk_rcg_ops,
148362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_GATE,
148462306a36Sopenharmony_ci		},
148562306a36Sopenharmony_ci	}
148662306a36Sopenharmony_ci};
148762306a36Sopenharmony_ci
148862306a36Sopenharmony_cistatic struct clk_branch gp2_clk = {
148962306a36Sopenharmony_ci	.halt_reg = 0x2fd8,
149062306a36Sopenharmony_ci	.halt_bit = 5,
149162306a36Sopenharmony_ci	.clkr = {
149262306a36Sopenharmony_ci		.enable_reg = 0x2d64,
149362306a36Sopenharmony_ci		.enable_mask = BIT(9),
149462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
149562306a36Sopenharmony_ci			.name = "gp2_clk",
149662306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
149762306a36Sopenharmony_ci				&gp2_src.clkr.hw
149862306a36Sopenharmony_ci			},
149962306a36Sopenharmony_ci			.num_parents = 1,
150062306a36Sopenharmony_ci			.ops = &clk_branch_ops,
150162306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
150262306a36Sopenharmony_ci		},
150362306a36Sopenharmony_ci	},
150462306a36Sopenharmony_ci};
150562306a36Sopenharmony_ci
150662306a36Sopenharmony_cistatic struct clk_branch pmem_clk = {
150762306a36Sopenharmony_ci	.hwcg_reg = 0x25a0,
150862306a36Sopenharmony_ci	.hwcg_bit = 6,
150962306a36Sopenharmony_ci	.halt_reg = 0x2fc8,
151062306a36Sopenharmony_ci	.halt_bit = 20,
151162306a36Sopenharmony_ci	.clkr = {
151262306a36Sopenharmony_ci		.enable_reg = 0x25a0,
151362306a36Sopenharmony_ci		.enable_mask = BIT(4),
151462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
151562306a36Sopenharmony_ci			.name = "pmem_clk",
151662306a36Sopenharmony_ci			.ops = &clk_branch_ops,
151762306a36Sopenharmony_ci		},
151862306a36Sopenharmony_ci	},
151962306a36Sopenharmony_ci};
152062306a36Sopenharmony_ci
152162306a36Sopenharmony_cistatic struct clk_rcg prng_src = {
152262306a36Sopenharmony_ci	.ns_reg = 0x2e80,
152362306a36Sopenharmony_ci	.p = {
152462306a36Sopenharmony_ci		.pre_div_shift = 3,
152562306a36Sopenharmony_ci		.pre_div_width = 4,
152662306a36Sopenharmony_ci	},
152762306a36Sopenharmony_ci	.s = {
152862306a36Sopenharmony_ci		.src_sel_shift = 0,
152962306a36Sopenharmony_ci		.parent_map = gcc_pxo_pll8_map,
153062306a36Sopenharmony_ci	},
153162306a36Sopenharmony_ci	.clkr.hw = {
153262306a36Sopenharmony_ci		.init = &(struct clk_init_data){
153362306a36Sopenharmony_ci			.name = "prng_src",
153462306a36Sopenharmony_ci			.parent_data = gcc_pxo_pll8,
153562306a36Sopenharmony_ci			.num_parents = ARRAY_SIZE(gcc_pxo_pll8),
153662306a36Sopenharmony_ci			.ops = &clk_rcg_ops,
153762306a36Sopenharmony_ci		},
153862306a36Sopenharmony_ci	},
153962306a36Sopenharmony_ci};
154062306a36Sopenharmony_ci
154162306a36Sopenharmony_cistatic struct clk_branch prng_clk = {
154262306a36Sopenharmony_ci	.halt_reg = 0x2fd8,
154362306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
154462306a36Sopenharmony_ci	.halt_bit = 10,
154562306a36Sopenharmony_ci	.clkr = {
154662306a36Sopenharmony_ci		.enable_reg = 0x3080,
154762306a36Sopenharmony_ci		.enable_mask = BIT(10),
154862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
154962306a36Sopenharmony_ci			.name = "prng_clk",
155062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
155162306a36Sopenharmony_ci				&prng_src.clkr.hw
155262306a36Sopenharmony_ci			},
155362306a36Sopenharmony_ci			.num_parents = 1,
155462306a36Sopenharmony_ci			.ops = &clk_branch_ops,
155562306a36Sopenharmony_ci		},
155662306a36Sopenharmony_ci	},
155762306a36Sopenharmony_ci};
155862306a36Sopenharmony_ci
155962306a36Sopenharmony_cistatic const struct freq_tbl clk_tbl_sdc[] = {
156062306a36Sopenharmony_ci	{    144000, P_PXO,   3, 2, 125 },
156162306a36Sopenharmony_ci	{    400000, P_PLL8,  4, 1, 240 },
156262306a36Sopenharmony_ci	{  16000000, P_PLL8,  4, 1,   6 },
156362306a36Sopenharmony_ci	{  17070000, P_PLL8,  1, 2,  45 },
156462306a36Sopenharmony_ci	{  20210000, P_PLL8,  1, 1,  19 },
156562306a36Sopenharmony_ci	{  24000000, P_PLL8,  4, 1,   4 },
156662306a36Sopenharmony_ci	{  48000000, P_PLL8,  4, 1,   2 },
156762306a36Sopenharmony_ci	{ }
156862306a36Sopenharmony_ci};
156962306a36Sopenharmony_ci
157062306a36Sopenharmony_cistatic struct clk_rcg sdc1_src = {
157162306a36Sopenharmony_ci	.ns_reg = 0x282c,
157262306a36Sopenharmony_ci	.md_reg = 0x2828,
157362306a36Sopenharmony_ci	.mn = {
157462306a36Sopenharmony_ci		.mnctr_en_bit = 8,
157562306a36Sopenharmony_ci		.mnctr_reset_bit = 7,
157662306a36Sopenharmony_ci		.mnctr_mode_shift = 5,
157762306a36Sopenharmony_ci		.n_val_shift = 16,
157862306a36Sopenharmony_ci		.m_val_shift = 16,
157962306a36Sopenharmony_ci		.width = 8,
158062306a36Sopenharmony_ci	},
158162306a36Sopenharmony_ci	.p = {
158262306a36Sopenharmony_ci		.pre_div_shift = 3,
158362306a36Sopenharmony_ci		.pre_div_width = 2,
158462306a36Sopenharmony_ci	},
158562306a36Sopenharmony_ci	.s = {
158662306a36Sopenharmony_ci		.src_sel_shift = 0,
158762306a36Sopenharmony_ci		.parent_map = gcc_pxo_pll8_map,
158862306a36Sopenharmony_ci	},
158962306a36Sopenharmony_ci	.freq_tbl = clk_tbl_sdc,
159062306a36Sopenharmony_ci	.clkr = {
159162306a36Sopenharmony_ci		.enable_reg = 0x282c,
159262306a36Sopenharmony_ci		.enable_mask = BIT(11),
159362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
159462306a36Sopenharmony_ci			.name = "sdc1_src",
159562306a36Sopenharmony_ci			.parent_data = gcc_pxo_pll8,
159662306a36Sopenharmony_ci			.num_parents = ARRAY_SIZE(gcc_pxo_pll8),
159762306a36Sopenharmony_ci			.ops = &clk_rcg_ops,
159862306a36Sopenharmony_ci		},
159962306a36Sopenharmony_ci	}
160062306a36Sopenharmony_ci};
160162306a36Sopenharmony_ci
160262306a36Sopenharmony_cistatic struct clk_branch sdc1_clk = {
160362306a36Sopenharmony_ci	.halt_reg = 0x2fc8,
160462306a36Sopenharmony_ci	.halt_bit = 6,
160562306a36Sopenharmony_ci	.clkr = {
160662306a36Sopenharmony_ci		.enable_reg = 0x282c,
160762306a36Sopenharmony_ci		.enable_mask = BIT(9),
160862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
160962306a36Sopenharmony_ci			.name = "sdc1_clk",
161062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
161162306a36Sopenharmony_ci				&sdc1_src.clkr.hw
161262306a36Sopenharmony_ci			},
161362306a36Sopenharmony_ci			.num_parents = 1,
161462306a36Sopenharmony_ci			.ops = &clk_branch_ops,
161562306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
161662306a36Sopenharmony_ci		},
161762306a36Sopenharmony_ci	},
161862306a36Sopenharmony_ci};
161962306a36Sopenharmony_ci
162062306a36Sopenharmony_cistatic struct clk_rcg sdc2_src = {
162162306a36Sopenharmony_ci	.ns_reg = 0x284c,
162262306a36Sopenharmony_ci	.md_reg = 0x2848,
162362306a36Sopenharmony_ci	.mn = {
162462306a36Sopenharmony_ci		.mnctr_en_bit = 8,
162562306a36Sopenharmony_ci		.mnctr_reset_bit = 7,
162662306a36Sopenharmony_ci		.mnctr_mode_shift = 5,
162762306a36Sopenharmony_ci		.n_val_shift = 16,
162862306a36Sopenharmony_ci		.m_val_shift = 16,
162962306a36Sopenharmony_ci		.width = 8,
163062306a36Sopenharmony_ci	},
163162306a36Sopenharmony_ci	.p = {
163262306a36Sopenharmony_ci		.pre_div_shift = 3,
163362306a36Sopenharmony_ci		.pre_div_width = 2,
163462306a36Sopenharmony_ci	},
163562306a36Sopenharmony_ci	.s = {
163662306a36Sopenharmony_ci		.src_sel_shift = 0,
163762306a36Sopenharmony_ci		.parent_map = gcc_pxo_pll8_map,
163862306a36Sopenharmony_ci	},
163962306a36Sopenharmony_ci	.freq_tbl = clk_tbl_sdc,
164062306a36Sopenharmony_ci	.clkr = {
164162306a36Sopenharmony_ci		.enable_reg = 0x284c,
164262306a36Sopenharmony_ci		.enable_mask = BIT(11),
164362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
164462306a36Sopenharmony_ci			.name = "sdc2_src",
164562306a36Sopenharmony_ci			.parent_data = gcc_pxo_pll8,
164662306a36Sopenharmony_ci			.num_parents = ARRAY_SIZE(gcc_pxo_pll8),
164762306a36Sopenharmony_ci			.ops = &clk_rcg_ops,
164862306a36Sopenharmony_ci		},
164962306a36Sopenharmony_ci	}
165062306a36Sopenharmony_ci};
165162306a36Sopenharmony_ci
165262306a36Sopenharmony_cistatic struct clk_branch sdc2_clk = {
165362306a36Sopenharmony_ci	.halt_reg = 0x2fc8,
165462306a36Sopenharmony_ci	.halt_bit = 5,
165562306a36Sopenharmony_ci	.clkr = {
165662306a36Sopenharmony_ci		.enable_reg = 0x284c,
165762306a36Sopenharmony_ci		.enable_mask = BIT(9),
165862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
165962306a36Sopenharmony_ci			.name = "sdc2_clk",
166062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
166162306a36Sopenharmony_ci				&sdc2_src.clkr.hw
166262306a36Sopenharmony_ci			},
166362306a36Sopenharmony_ci			.num_parents = 1,
166462306a36Sopenharmony_ci			.ops = &clk_branch_ops,
166562306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
166662306a36Sopenharmony_ci		},
166762306a36Sopenharmony_ci	},
166862306a36Sopenharmony_ci};
166962306a36Sopenharmony_ci
167062306a36Sopenharmony_cistatic struct clk_rcg sdc3_src = {
167162306a36Sopenharmony_ci	.ns_reg = 0x286c,
167262306a36Sopenharmony_ci	.md_reg = 0x2868,
167362306a36Sopenharmony_ci	.mn = {
167462306a36Sopenharmony_ci		.mnctr_en_bit = 8,
167562306a36Sopenharmony_ci		.mnctr_reset_bit = 7,
167662306a36Sopenharmony_ci		.mnctr_mode_shift = 5,
167762306a36Sopenharmony_ci		.n_val_shift = 16,
167862306a36Sopenharmony_ci		.m_val_shift = 16,
167962306a36Sopenharmony_ci		.width = 8,
168062306a36Sopenharmony_ci	},
168162306a36Sopenharmony_ci	.p = {
168262306a36Sopenharmony_ci		.pre_div_shift = 3,
168362306a36Sopenharmony_ci		.pre_div_width = 2,
168462306a36Sopenharmony_ci	},
168562306a36Sopenharmony_ci	.s = {
168662306a36Sopenharmony_ci		.src_sel_shift = 0,
168762306a36Sopenharmony_ci		.parent_map = gcc_pxo_pll8_map,
168862306a36Sopenharmony_ci	},
168962306a36Sopenharmony_ci	.freq_tbl = clk_tbl_sdc,
169062306a36Sopenharmony_ci	.clkr = {
169162306a36Sopenharmony_ci		.enable_reg = 0x286c,
169262306a36Sopenharmony_ci		.enable_mask = BIT(11),
169362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
169462306a36Sopenharmony_ci			.name = "sdc3_src",
169562306a36Sopenharmony_ci			.parent_data = gcc_pxo_pll8,
169662306a36Sopenharmony_ci			.num_parents = ARRAY_SIZE(gcc_pxo_pll8),
169762306a36Sopenharmony_ci			.ops = &clk_rcg_ops,
169862306a36Sopenharmony_ci		},
169962306a36Sopenharmony_ci	}
170062306a36Sopenharmony_ci};
170162306a36Sopenharmony_ci
170262306a36Sopenharmony_cistatic struct clk_branch sdc3_clk = {
170362306a36Sopenharmony_ci	.halt_reg = 0x2fc8,
170462306a36Sopenharmony_ci	.halt_bit = 4,
170562306a36Sopenharmony_ci	.clkr = {
170662306a36Sopenharmony_ci		.enable_reg = 0x286c,
170762306a36Sopenharmony_ci		.enable_mask = BIT(9),
170862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
170962306a36Sopenharmony_ci			.name = "sdc3_clk",
171062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
171162306a36Sopenharmony_ci				&sdc3_src.clkr.hw
171262306a36Sopenharmony_ci			},
171362306a36Sopenharmony_ci			.num_parents = 1,
171462306a36Sopenharmony_ci			.ops = &clk_branch_ops,
171562306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
171662306a36Sopenharmony_ci		},
171762306a36Sopenharmony_ci	},
171862306a36Sopenharmony_ci};
171962306a36Sopenharmony_ci
172062306a36Sopenharmony_cistatic struct clk_rcg sdc4_src = {
172162306a36Sopenharmony_ci	.ns_reg = 0x288c,
172262306a36Sopenharmony_ci	.md_reg = 0x2888,
172362306a36Sopenharmony_ci	.mn = {
172462306a36Sopenharmony_ci		.mnctr_en_bit = 8,
172562306a36Sopenharmony_ci		.mnctr_reset_bit = 7,
172662306a36Sopenharmony_ci		.mnctr_mode_shift = 5,
172762306a36Sopenharmony_ci		.n_val_shift = 16,
172862306a36Sopenharmony_ci		.m_val_shift = 16,
172962306a36Sopenharmony_ci		.width = 8,
173062306a36Sopenharmony_ci	},
173162306a36Sopenharmony_ci	.p = {
173262306a36Sopenharmony_ci		.pre_div_shift = 3,
173362306a36Sopenharmony_ci		.pre_div_width = 2,
173462306a36Sopenharmony_ci	},
173562306a36Sopenharmony_ci	.s = {
173662306a36Sopenharmony_ci		.src_sel_shift = 0,
173762306a36Sopenharmony_ci		.parent_map = gcc_pxo_pll8_map,
173862306a36Sopenharmony_ci	},
173962306a36Sopenharmony_ci	.freq_tbl = clk_tbl_sdc,
174062306a36Sopenharmony_ci	.clkr = {
174162306a36Sopenharmony_ci		.enable_reg = 0x288c,
174262306a36Sopenharmony_ci		.enable_mask = BIT(11),
174362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
174462306a36Sopenharmony_ci			.name = "sdc4_src",
174562306a36Sopenharmony_ci			.parent_data = gcc_pxo_pll8,
174662306a36Sopenharmony_ci			.num_parents = ARRAY_SIZE(gcc_pxo_pll8),
174762306a36Sopenharmony_ci			.ops = &clk_rcg_ops,
174862306a36Sopenharmony_ci		},
174962306a36Sopenharmony_ci	}
175062306a36Sopenharmony_ci};
175162306a36Sopenharmony_ci
175262306a36Sopenharmony_cistatic struct clk_branch sdc4_clk = {
175362306a36Sopenharmony_ci	.halt_reg = 0x2fc8,
175462306a36Sopenharmony_ci	.halt_bit = 3,
175562306a36Sopenharmony_ci	.clkr = {
175662306a36Sopenharmony_ci		.enable_reg = 0x288c,
175762306a36Sopenharmony_ci		.enable_mask = BIT(9),
175862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
175962306a36Sopenharmony_ci			.name = "sdc4_clk",
176062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
176162306a36Sopenharmony_ci				&sdc4_src.clkr.hw
176262306a36Sopenharmony_ci			},
176362306a36Sopenharmony_ci			.num_parents = 1,
176462306a36Sopenharmony_ci			.ops = &clk_branch_ops,
176562306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
176662306a36Sopenharmony_ci		},
176762306a36Sopenharmony_ci	},
176862306a36Sopenharmony_ci};
176962306a36Sopenharmony_ci
177062306a36Sopenharmony_cistatic struct clk_rcg sdc5_src = {
177162306a36Sopenharmony_ci	.ns_reg = 0x28ac,
177262306a36Sopenharmony_ci	.md_reg = 0x28a8,
177362306a36Sopenharmony_ci	.mn = {
177462306a36Sopenharmony_ci		.mnctr_en_bit = 8,
177562306a36Sopenharmony_ci		.mnctr_reset_bit = 7,
177662306a36Sopenharmony_ci		.mnctr_mode_shift = 5,
177762306a36Sopenharmony_ci		.n_val_shift = 16,
177862306a36Sopenharmony_ci		.m_val_shift = 16,
177962306a36Sopenharmony_ci		.width = 8,
178062306a36Sopenharmony_ci	},
178162306a36Sopenharmony_ci	.p = {
178262306a36Sopenharmony_ci		.pre_div_shift = 3,
178362306a36Sopenharmony_ci		.pre_div_width = 2,
178462306a36Sopenharmony_ci	},
178562306a36Sopenharmony_ci	.s = {
178662306a36Sopenharmony_ci		.src_sel_shift = 0,
178762306a36Sopenharmony_ci		.parent_map = gcc_pxo_pll8_map,
178862306a36Sopenharmony_ci	},
178962306a36Sopenharmony_ci	.freq_tbl = clk_tbl_sdc,
179062306a36Sopenharmony_ci	.clkr = {
179162306a36Sopenharmony_ci		.enable_reg = 0x28ac,
179262306a36Sopenharmony_ci		.enable_mask = BIT(11),
179362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
179462306a36Sopenharmony_ci			.name = "sdc5_src",
179562306a36Sopenharmony_ci			.parent_data = gcc_pxo_pll8,
179662306a36Sopenharmony_ci			.num_parents = ARRAY_SIZE(gcc_pxo_pll8),
179762306a36Sopenharmony_ci			.ops = &clk_rcg_ops,
179862306a36Sopenharmony_ci		},
179962306a36Sopenharmony_ci	}
180062306a36Sopenharmony_ci};
180162306a36Sopenharmony_ci
180262306a36Sopenharmony_cistatic struct clk_branch sdc5_clk = {
180362306a36Sopenharmony_ci	.halt_reg = 0x2fc8,
180462306a36Sopenharmony_ci	.halt_bit = 2,
180562306a36Sopenharmony_ci	.clkr = {
180662306a36Sopenharmony_ci		.enable_reg = 0x28ac,
180762306a36Sopenharmony_ci		.enable_mask = BIT(9),
180862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
180962306a36Sopenharmony_ci			.name = "sdc5_clk",
181062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
181162306a36Sopenharmony_ci				&sdc5_src.clkr.hw
181262306a36Sopenharmony_ci			},
181362306a36Sopenharmony_ci			.num_parents = 1,
181462306a36Sopenharmony_ci			.ops = &clk_branch_ops,
181562306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
181662306a36Sopenharmony_ci		},
181762306a36Sopenharmony_ci	},
181862306a36Sopenharmony_ci};
181962306a36Sopenharmony_ci
182062306a36Sopenharmony_cistatic const struct freq_tbl clk_tbl_tsif_ref[] = {
182162306a36Sopenharmony_ci	{ 105000, P_PXO,  1, 1, 256 },
182262306a36Sopenharmony_ci	{ }
182362306a36Sopenharmony_ci};
182462306a36Sopenharmony_ci
182562306a36Sopenharmony_cistatic struct clk_rcg tsif_ref_src = {
182662306a36Sopenharmony_ci	.ns_reg = 0x2710,
182762306a36Sopenharmony_ci	.md_reg = 0x270c,
182862306a36Sopenharmony_ci	.mn = {
182962306a36Sopenharmony_ci		.mnctr_en_bit = 8,
183062306a36Sopenharmony_ci		.mnctr_reset_bit = 7,
183162306a36Sopenharmony_ci		.mnctr_mode_shift = 5,
183262306a36Sopenharmony_ci		.n_val_shift = 16,
183362306a36Sopenharmony_ci		.m_val_shift = 16,
183462306a36Sopenharmony_ci		.width = 16,
183562306a36Sopenharmony_ci	},
183662306a36Sopenharmony_ci	.p = {
183762306a36Sopenharmony_ci		.pre_div_shift = 3,
183862306a36Sopenharmony_ci		.pre_div_width = 2,
183962306a36Sopenharmony_ci	},
184062306a36Sopenharmony_ci	.s = {
184162306a36Sopenharmony_ci		.src_sel_shift = 0,
184262306a36Sopenharmony_ci		.parent_map = gcc_pxo_pll8_map,
184362306a36Sopenharmony_ci	},
184462306a36Sopenharmony_ci	.freq_tbl = clk_tbl_tsif_ref,
184562306a36Sopenharmony_ci	.clkr = {
184662306a36Sopenharmony_ci		.enable_reg = 0x2710,
184762306a36Sopenharmony_ci		.enable_mask = BIT(11),
184862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
184962306a36Sopenharmony_ci			.name = "tsif_ref_src",
185062306a36Sopenharmony_ci			.parent_data = gcc_pxo_pll8,
185162306a36Sopenharmony_ci			.num_parents = ARRAY_SIZE(gcc_pxo_pll8),
185262306a36Sopenharmony_ci			.ops = &clk_rcg_ops,
185362306a36Sopenharmony_ci			.flags = CLK_SET_RATE_GATE,
185462306a36Sopenharmony_ci		},
185562306a36Sopenharmony_ci	}
185662306a36Sopenharmony_ci};
185762306a36Sopenharmony_ci
185862306a36Sopenharmony_cistatic struct clk_branch tsif_ref_clk = {
185962306a36Sopenharmony_ci	.halt_reg = 0x2fd4,
186062306a36Sopenharmony_ci	.halt_bit = 5,
186162306a36Sopenharmony_ci	.clkr = {
186262306a36Sopenharmony_ci		.enable_reg = 0x2710,
186362306a36Sopenharmony_ci		.enable_mask = BIT(9),
186462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
186562306a36Sopenharmony_ci			.name = "tsif_ref_clk",
186662306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
186762306a36Sopenharmony_ci				&tsif_ref_src.clkr.hw
186862306a36Sopenharmony_ci			},
186962306a36Sopenharmony_ci			.num_parents = 1,
187062306a36Sopenharmony_ci			.ops = &clk_branch_ops,
187162306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
187262306a36Sopenharmony_ci		},
187362306a36Sopenharmony_ci	},
187462306a36Sopenharmony_ci};
187562306a36Sopenharmony_ci
187662306a36Sopenharmony_cistatic const struct freq_tbl clk_tbl_usb[] = {
187762306a36Sopenharmony_ci	{ 60000000, P_PLL8, 1, 5, 32 },
187862306a36Sopenharmony_ci	{ }
187962306a36Sopenharmony_ci};
188062306a36Sopenharmony_ci
188162306a36Sopenharmony_cistatic struct clk_rcg usb_hs1_xcvr_src = {
188262306a36Sopenharmony_ci	.ns_reg = 0x290c,
188362306a36Sopenharmony_ci	.md_reg = 0x2908,
188462306a36Sopenharmony_ci	.mn = {
188562306a36Sopenharmony_ci		.mnctr_en_bit = 8,
188662306a36Sopenharmony_ci		.mnctr_reset_bit = 7,
188762306a36Sopenharmony_ci		.mnctr_mode_shift = 5,
188862306a36Sopenharmony_ci		.n_val_shift = 16,
188962306a36Sopenharmony_ci		.m_val_shift = 16,
189062306a36Sopenharmony_ci		.width = 8,
189162306a36Sopenharmony_ci	},
189262306a36Sopenharmony_ci	.p = {
189362306a36Sopenharmony_ci		.pre_div_shift = 3,
189462306a36Sopenharmony_ci		.pre_div_width = 2,
189562306a36Sopenharmony_ci	},
189662306a36Sopenharmony_ci	.s = {
189762306a36Sopenharmony_ci		.src_sel_shift = 0,
189862306a36Sopenharmony_ci		.parent_map = gcc_pxo_pll8_map,
189962306a36Sopenharmony_ci	},
190062306a36Sopenharmony_ci	.freq_tbl = clk_tbl_usb,
190162306a36Sopenharmony_ci	.clkr = {
190262306a36Sopenharmony_ci		.enable_reg = 0x290c,
190362306a36Sopenharmony_ci		.enable_mask = BIT(11),
190462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
190562306a36Sopenharmony_ci			.name = "usb_hs1_xcvr_src",
190662306a36Sopenharmony_ci			.parent_data = gcc_pxo_pll8,
190762306a36Sopenharmony_ci			.num_parents = ARRAY_SIZE(gcc_pxo_pll8),
190862306a36Sopenharmony_ci			.ops = &clk_rcg_ops,
190962306a36Sopenharmony_ci			.flags = CLK_SET_RATE_GATE,
191062306a36Sopenharmony_ci		},
191162306a36Sopenharmony_ci	}
191262306a36Sopenharmony_ci};
191362306a36Sopenharmony_ci
191462306a36Sopenharmony_cistatic struct clk_branch usb_hs1_xcvr_clk = {
191562306a36Sopenharmony_ci	.halt_reg = 0x2fc8,
191662306a36Sopenharmony_ci	.halt_bit = 0,
191762306a36Sopenharmony_ci	.clkr = {
191862306a36Sopenharmony_ci		.enable_reg = 0x290c,
191962306a36Sopenharmony_ci		.enable_mask = BIT(9),
192062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
192162306a36Sopenharmony_ci			.name = "usb_hs1_xcvr_clk",
192262306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
192362306a36Sopenharmony_ci				&usb_hs1_xcvr_src.clkr.hw
192462306a36Sopenharmony_ci			},
192562306a36Sopenharmony_ci			.num_parents = 1,
192662306a36Sopenharmony_ci			.ops = &clk_branch_ops,
192762306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
192862306a36Sopenharmony_ci		},
192962306a36Sopenharmony_ci	},
193062306a36Sopenharmony_ci};
193162306a36Sopenharmony_ci
193262306a36Sopenharmony_cistatic struct clk_rcg usb_fs1_xcvr_fs_src = {
193362306a36Sopenharmony_ci	.ns_reg = 0x2968,
193462306a36Sopenharmony_ci	.md_reg = 0x2964,
193562306a36Sopenharmony_ci	.mn = {
193662306a36Sopenharmony_ci		.mnctr_en_bit = 8,
193762306a36Sopenharmony_ci		.mnctr_reset_bit = 7,
193862306a36Sopenharmony_ci		.mnctr_mode_shift = 5,
193962306a36Sopenharmony_ci		.n_val_shift = 16,
194062306a36Sopenharmony_ci		.m_val_shift = 16,
194162306a36Sopenharmony_ci		.width = 8,
194262306a36Sopenharmony_ci	},
194362306a36Sopenharmony_ci	.p = {
194462306a36Sopenharmony_ci		.pre_div_shift = 3,
194562306a36Sopenharmony_ci		.pre_div_width = 2,
194662306a36Sopenharmony_ci	},
194762306a36Sopenharmony_ci	.s = {
194862306a36Sopenharmony_ci		.src_sel_shift = 0,
194962306a36Sopenharmony_ci		.parent_map = gcc_pxo_pll8_map,
195062306a36Sopenharmony_ci	},
195162306a36Sopenharmony_ci	.freq_tbl = clk_tbl_usb,
195262306a36Sopenharmony_ci	.clkr = {
195362306a36Sopenharmony_ci		.enable_reg = 0x2968,
195462306a36Sopenharmony_ci		.enable_mask = BIT(11),
195562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
195662306a36Sopenharmony_ci			.name = "usb_fs1_xcvr_fs_src",
195762306a36Sopenharmony_ci			.parent_data = gcc_pxo_pll8,
195862306a36Sopenharmony_ci			.num_parents = ARRAY_SIZE(gcc_pxo_pll8),
195962306a36Sopenharmony_ci			.ops = &clk_rcg_ops,
196062306a36Sopenharmony_ci			.flags = CLK_SET_RATE_GATE,
196162306a36Sopenharmony_ci		},
196262306a36Sopenharmony_ci	}
196362306a36Sopenharmony_ci};
196462306a36Sopenharmony_ci
196562306a36Sopenharmony_cistatic struct clk_branch usb_fs1_xcvr_fs_clk = {
196662306a36Sopenharmony_ci	.halt_reg = 0x2fcc,
196762306a36Sopenharmony_ci	.halt_bit = 15,
196862306a36Sopenharmony_ci	.clkr = {
196962306a36Sopenharmony_ci		.enable_reg = 0x2968,
197062306a36Sopenharmony_ci		.enable_mask = BIT(9),
197162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
197262306a36Sopenharmony_ci			.name = "usb_fs1_xcvr_fs_clk",
197362306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
197462306a36Sopenharmony_ci				&usb_fs1_xcvr_fs_src.clkr.hw,
197562306a36Sopenharmony_ci			},
197662306a36Sopenharmony_ci			.num_parents = 1,
197762306a36Sopenharmony_ci			.ops = &clk_branch_ops,
197862306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
197962306a36Sopenharmony_ci		},
198062306a36Sopenharmony_ci	},
198162306a36Sopenharmony_ci};
198262306a36Sopenharmony_ci
198362306a36Sopenharmony_cistatic struct clk_branch usb_fs1_system_clk = {
198462306a36Sopenharmony_ci	.halt_reg = 0x2fcc,
198562306a36Sopenharmony_ci	.halt_bit = 16,
198662306a36Sopenharmony_ci	.clkr = {
198762306a36Sopenharmony_ci		.enable_reg = 0x296c,
198862306a36Sopenharmony_ci		.enable_mask = BIT(4),
198962306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
199062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
199162306a36Sopenharmony_ci				&usb_fs1_xcvr_fs_src.clkr.hw,
199262306a36Sopenharmony_ci			},
199362306a36Sopenharmony_ci			.num_parents = 1,
199462306a36Sopenharmony_ci			.name = "usb_fs1_system_clk",
199562306a36Sopenharmony_ci			.ops = &clk_branch_ops,
199662306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
199762306a36Sopenharmony_ci		},
199862306a36Sopenharmony_ci	},
199962306a36Sopenharmony_ci};
200062306a36Sopenharmony_ci
200162306a36Sopenharmony_cistatic struct clk_rcg usb_fs2_xcvr_fs_src = {
200262306a36Sopenharmony_ci	.ns_reg = 0x2988,
200362306a36Sopenharmony_ci	.md_reg = 0x2984,
200462306a36Sopenharmony_ci	.mn = {
200562306a36Sopenharmony_ci		.mnctr_en_bit = 8,
200662306a36Sopenharmony_ci		.mnctr_reset_bit = 7,
200762306a36Sopenharmony_ci		.mnctr_mode_shift = 5,
200862306a36Sopenharmony_ci		.n_val_shift = 16,
200962306a36Sopenharmony_ci		.m_val_shift = 16,
201062306a36Sopenharmony_ci		.width = 8,
201162306a36Sopenharmony_ci	},
201262306a36Sopenharmony_ci	.p = {
201362306a36Sopenharmony_ci		.pre_div_shift = 3,
201462306a36Sopenharmony_ci		.pre_div_width = 2,
201562306a36Sopenharmony_ci	},
201662306a36Sopenharmony_ci	.s = {
201762306a36Sopenharmony_ci		.src_sel_shift = 0,
201862306a36Sopenharmony_ci		.parent_map = gcc_pxo_pll8_map,
201962306a36Sopenharmony_ci	},
202062306a36Sopenharmony_ci	.freq_tbl = clk_tbl_usb,
202162306a36Sopenharmony_ci	.clkr = {
202262306a36Sopenharmony_ci		.enable_reg = 0x2988,
202362306a36Sopenharmony_ci		.enable_mask = BIT(11),
202462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
202562306a36Sopenharmony_ci			.name = "usb_fs2_xcvr_fs_src",
202662306a36Sopenharmony_ci			.parent_data = gcc_pxo_pll8,
202762306a36Sopenharmony_ci			.num_parents = ARRAY_SIZE(gcc_pxo_pll8),
202862306a36Sopenharmony_ci			.ops = &clk_rcg_ops,
202962306a36Sopenharmony_ci			.flags = CLK_SET_RATE_GATE,
203062306a36Sopenharmony_ci		},
203162306a36Sopenharmony_ci	}
203262306a36Sopenharmony_ci};
203362306a36Sopenharmony_ci
203462306a36Sopenharmony_cistatic struct clk_branch usb_fs2_xcvr_fs_clk = {
203562306a36Sopenharmony_ci	.halt_reg = 0x2fcc,
203662306a36Sopenharmony_ci	.halt_bit = 12,
203762306a36Sopenharmony_ci	.clkr = {
203862306a36Sopenharmony_ci		.enable_reg = 0x2988,
203962306a36Sopenharmony_ci		.enable_mask = BIT(9),
204062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
204162306a36Sopenharmony_ci			.name = "usb_fs2_xcvr_fs_clk",
204262306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
204362306a36Sopenharmony_ci				&usb_fs2_xcvr_fs_src.clkr.hw,
204462306a36Sopenharmony_ci			},
204562306a36Sopenharmony_ci			.num_parents = 1,
204662306a36Sopenharmony_ci			.ops = &clk_branch_ops,
204762306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
204862306a36Sopenharmony_ci		},
204962306a36Sopenharmony_ci	},
205062306a36Sopenharmony_ci};
205162306a36Sopenharmony_ci
205262306a36Sopenharmony_cistatic struct clk_branch usb_fs2_system_clk = {
205362306a36Sopenharmony_ci	.halt_reg = 0x2fcc,
205462306a36Sopenharmony_ci	.halt_bit = 13,
205562306a36Sopenharmony_ci	.clkr = {
205662306a36Sopenharmony_ci		.enable_reg = 0x298c,
205762306a36Sopenharmony_ci		.enable_mask = BIT(4),
205862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
205962306a36Sopenharmony_ci			.name = "usb_fs2_system_clk",
206062306a36Sopenharmony_ci			.parent_hws = (const struct clk_hw*[]){
206162306a36Sopenharmony_ci				&usb_fs2_xcvr_fs_src.clkr.hw,
206262306a36Sopenharmony_ci			},
206362306a36Sopenharmony_ci			.num_parents = 1,
206462306a36Sopenharmony_ci			.ops = &clk_branch_ops,
206562306a36Sopenharmony_ci			.flags = CLK_SET_RATE_PARENT,
206662306a36Sopenharmony_ci		},
206762306a36Sopenharmony_ci	},
206862306a36Sopenharmony_ci};
206962306a36Sopenharmony_ci
207062306a36Sopenharmony_cistatic struct clk_branch gsbi1_h_clk = {
207162306a36Sopenharmony_ci	.halt_reg = 0x2fcc,
207262306a36Sopenharmony_ci	.halt_bit = 11,
207362306a36Sopenharmony_ci	.clkr = {
207462306a36Sopenharmony_ci		.enable_reg = 0x29c0,
207562306a36Sopenharmony_ci		.enable_mask = BIT(4),
207662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
207762306a36Sopenharmony_ci			.name = "gsbi1_h_clk",
207862306a36Sopenharmony_ci			.ops = &clk_branch_ops,
207962306a36Sopenharmony_ci		},
208062306a36Sopenharmony_ci	},
208162306a36Sopenharmony_ci};
208262306a36Sopenharmony_ci
208362306a36Sopenharmony_cistatic struct clk_branch gsbi2_h_clk = {
208462306a36Sopenharmony_ci	.halt_reg = 0x2fcc,
208562306a36Sopenharmony_ci	.halt_bit = 7,
208662306a36Sopenharmony_ci	.clkr = {
208762306a36Sopenharmony_ci		.enable_reg = 0x29e0,
208862306a36Sopenharmony_ci		.enable_mask = BIT(4),
208962306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
209062306a36Sopenharmony_ci			.name = "gsbi2_h_clk",
209162306a36Sopenharmony_ci			.ops = &clk_branch_ops,
209262306a36Sopenharmony_ci		},
209362306a36Sopenharmony_ci	},
209462306a36Sopenharmony_ci};
209562306a36Sopenharmony_ci
209662306a36Sopenharmony_cistatic struct clk_branch gsbi3_h_clk = {
209762306a36Sopenharmony_ci	.halt_reg = 0x2fcc,
209862306a36Sopenharmony_ci	.halt_bit = 3,
209962306a36Sopenharmony_ci	.clkr = {
210062306a36Sopenharmony_ci		.enable_reg = 0x2a00,
210162306a36Sopenharmony_ci		.enable_mask = BIT(4),
210262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
210362306a36Sopenharmony_ci			.name = "gsbi3_h_clk",
210462306a36Sopenharmony_ci			.ops = &clk_branch_ops,
210562306a36Sopenharmony_ci		},
210662306a36Sopenharmony_ci	},
210762306a36Sopenharmony_ci};
210862306a36Sopenharmony_ci
210962306a36Sopenharmony_cistatic struct clk_branch gsbi4_h_clk = {
211062306a36Sopenharmony_ci	.halt_reg = 0x2fd0,
211162306a36Sopenharmony_ci	.halt_bit = 27,
211262306a36Sopenharmony_ci	.clkr = {
211362306a36Sopenharmony_ci		.enable_reg = 0x2a20,
211462306a36Sopenharmony_ci		.enable_mask = BIT(4),
211562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
211662306a36Sopenharmony_ci			.name = "gsbi4_h_clk",
211762306a36Sopenharmony_ci			.ops = &clk_branch_ops,
211862306a36Sopenharmony_ci		},
211962306a36Sopenharmony_ci	},
212062306a36Sopenharmony_ci};
212162306a36Sopenharmony_ci
212262306a36Sopenharmony_cistatic struct clk_branch gsbi5_h_clk = {
212362306a36Sopenharmony_ci	.halt_reg = 0x2fd0,
212462306a36Sopenharmony_ci	.halt_bit = 23,
212562306a36Sopenharmony_ci	.clkr = {
212662306a36Sopenharmony_ci		.enable_reg = 0x2a40,
212762306a36Sopenharmony_ci		.enable_mask = BIT(4),
212862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
212962306a36Sopenharmony_ci			.name = "gsbi5_h_clk",
213062306a36Sopenharmony_ci			.ops = &clk_branch_ops,
213162306a36Sopenharmony_ci		},
213262306a36Sopenharmony_ci	},
213362306a36Sopenharmony_ci};
213462306a36Sopenharmony_ci
213562306a36Sopenharmony_cistatic struct clk_branch gsbi6_h_clk = {
213662306a36Sopenharmony_ci	.halt_reg = 0x2fd0,
213762306a36Sopenharmony_ci	.halt_bit = 19,
213862306a36Sopenharmony_ci	.clkr = {
213962306a36Sopenharmony_ci		.enable_reg = 0x2a60,
214062306a36Sopenharmony_ci		.enable_mask = BIT(4),
214162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
214262306a36Sopenharmony_ci			.name = "gsbi6_h_clk",
214362306a36Sopenharmony_ci			.ops = &clk_branch_ops,
214462306a36Sopenharmony_ci		},
214562306a36Sopenharmony_ci	},
214662306a36Sopenharmony_ci};
214762306a36Sopenharmony_ci
214862306a36Sopenharmony_cistatic struct clk_branch gsbi7_h_clk = {
214962306a36Sopenharmony_ci	.halt_reg = 0x2fd0,
215062306a36Sopenharmony_ci	.halt_bit = 15,
215162306a36Sopenharmony_ci	.clkr = {
215262306a36Sopenharmony_ci		.enable_reg = 0x2a80,
215362306a36Sopenharmony_ci		.enable_mask = BIT(4),
215462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
215562306a36Sopenharmony_ci			.name = "gsbi7_h_clk",
215662306a36Sopenharmony_ci			.ops = &clk_branch_ops,
215762306a36Sopenharmony_ci		},
215862306a36Sopenharmony_ci	},
215962306a36Sopenharmony_ci};
216062306a36Sopenharmony_ci
216162306a36Sopenharmony_cistatic struct clk_branch gsbi8_h_clk = {
216262306a36Sopenharmony_ci	.halt_reg = 0x2fd0,
216362306a36Sopenharmony_ci	.halt_bit = 11,
216462306a36Sopenharmony_ci	.clkr = {
216562306a36Sopenharmony_ci		.enable_reg = 0x2aa0,
216662306a36Sopenharmony_ci		.enable_mask = BIT(4),
216762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
216862306a36Sopenharmony_ci			.name = "gsbi8_h_clk",
216962306a36Sopenharmony_ci			.ops = &clk_branch_ops,
217062306a36Sopenharmony_ci		},
217162306a36Sopenharmony_ci	},
217262306a36Sopenharmony_ci};
217362306a36Sopenharmony_ci
217462306a36Sopenharmony_cistatic struct clk_branch gsbi9_h_clk = {
217562306a36Sopenharmony_ci	.halt_reg = 0x2fd0,
217662306a36Sopenharmony_ci	.halt_bit = 7,
217762306a36Sopenharmony_ci	.clkr = {
217862306a36Sopenharmony_ci		.enable_reg = 0x2ac0,
217962306a36Sopenharmony_ci		.enable_mask = BIT(4),
218062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
218162306a36Sopenharmony_ci			.name = "gsbi9_h_clk",
218262306a36Sopenharmony_ci			.ops = &clk_branch_ops,
218362306a36Sopenharmony_ci		},
218462306a36Sopenharmony_ci	},
218562306a36Sopenharmony_ci};
218662306a36Sopenharmony_ci
218762306a36Sopenharmony_cistatic struct clk_branch gsbi10_h_clk = {
218862306a36Sopenharmony_ci	.halt_reg = 0x2fd0,
218962306a36Sopenharmony_ci	.halt_bit = 3,
219062306a36Sopenharmony_ci	.clkr = {
219162306a36Sopenharmony_ci		.enable_reg = 0x2ae0,
219262306a36Sopenharmony_ci		.enable_mask = BIT(4),
219362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
219462306a36Sopenharmony_ci			.name = "gsbi10_h_clk",
219562306a36Sopenharmony_ci			.ops = &clk_branch_ops,
219662306a36Sopenharmony_ci		},
219762306a36Sopenharmony_ci	},
219862306a36Sopenharmony_ci};
219962306a36Sopenharmony_ci
220062306a36Sopenharmony_cistatic struct clk_branch gsbi11_h_clk = {
220162306a36Sopenharmony_ci	.halt_reg = 0x2fd4,
220262306a36Sopenharmony_ci	.halt_bit = 18,
220362306a36Sopenharmony_ci	.clkr = {
220462306a36Sopenharmony_ci		.enable_reg = 0x2b00,
220562306a36Sopenharmony_ci		.enable_mask = BIT(4),
220662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
220762306a36Sopenharmony_ci			.name = "gsbi11_h_clk",
220862306a36Sopenharmony_ci			.ops = &clk_branch_ops,
220962306a36Sopenharmony_ci		},
221062306a36Sopenharmony_ci	},
221162306a36Sopenharmony_ci};
221262306a36Sopenharmony_ci
221362306a36Sopenharmony_cistatic struct clk_branch gsbi12_h_clk = {
221462306a36Sopenharmony_ci	.halt_reg = 0x2fd4,
221562306a36Sopenharmony_ci	.halt_bit = 14,
221662306a36Sopenharmony_ci	.clkr = {
221762306a36Sopenharmony_ci		.enable_reg = 0x2b20,
221862306a36Sopenharmony_ci		.enable_mask = BIT(4),
221962306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
222062306a36Sopenharmony_ci			.name = "gsbi12_h_clk",
222162306a36Sopenharmony_ci			.ops = &clk_branch_ops,
222262306a36Sopenharmony_ci		},
222362306a36Sopenharmony_ci	},
222462306a36Sopenharmony_ci};
222562306a36Sopenharmony_ci
222662306a36Sopenharmony_cistatic struct clk_branch tsif_h_clk = {
222762306a36Sopenharmony_ci	.halt_reg = 0x2fd4,
222862306a36Sopenharmony_ci	.halt_bit = 7,
222962306a36Sopenharmony_ci	.clkr = {
223062306a36Sopenharmony_ci		.enable_reg = 0x2700,
223162306a36Sopenharmony_ci		.enable_mask = BIT(4),
223262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
223362306a36Sopenharmony_ci			.name = "tsif_h_clk",
223462306a36Sopenharmony_ci			.ops = &clk_branch_ops,
223562306a36Sopenharmony_ci		},
223662306a36Sopenharmony_ci	},
223762306a36Sopenharmony_ci};
223862306a36Sopenharmony_ci
223962306a36Sopenharmony_cistatic struct clk_branch usb_fs1_h_clk = {
224062306a36Sopenharmony_ci	.halt_reg = 0x2fcc,
224162306a36Sopenharmony_ci	.halt_bit = 17,
224262306a36Sopenharmony_ci	.clkr = {
224362306a36Sopenharmony_ci		.enable_reg = 0x2960,
224462306a36Sopenharmony_ci		.enable_mask = BIT(4),
224562306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
224662306a36Sopenharmony_ci			.name = "usb_fs1_h_clk",
224762306a36Sopenharmony_ci			.ops = &clk_branch_ops,
224862306a36Sopenharmony_ci		},
224962306a36Sopenharmony_ci	},
225062306a36Sopenharmony_ci};
225162306a36Sopenharmony_ci
225262306a36Sopenharmony_cistatic struct clk_branch usb_fs2_h_clk = {
225362306a36Sopenharmony_ci	.halt_reg = 0x2fcc,
225462306a36Sopenharmony_ci	.halt_bit = 14,
225562306a36Sopenharmony_ci	.clkr = {
225662306a36Sopenharmony_ci		.enable_reg = 0x2980,
225762306a36Sopenharmony_ci		.enable_mask = BIT(4),
225862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
225962306a36Sopenharmony_ci			.name = "usb_fs2_h_clk",
226062306a36Sopenharmony_ci			.ops = &clk_branch_ops,
226162306a36Sopenharmony_ci		},
226262306a36Sopenharmony_ci	},
226362306a36Sopenharmony_ci};
226462306a36Sopenharmony_ci
226562306a36Sopenharmony_cistatic struct clk_branch usb_hs1_h_clk = {
226662306a36Sopenharmony_ci	.halt_reg = 0x2fc8,
226762306a36Sopenharmony_ci	.halt_bit = 1,
226862306a36Sopenharmony_ci	.clkr = {
226962306a36Sopenharmony_ci		.enable_reg = 0x2900,
227062306a36Sopenharmony_ci		.enable_mask = BIT(4),
227162306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
227262306a36Sopenharmony_ci			.name = "usb_hs1_h_clk",
227362306a36Sopenharmony_ci			.ops = &clk_branch_ops,
227462306a36Sopenharmony_ci		},
227562306a36Sopenharmony_ci	},
227662306a36Sopenharmony_ci};
227762306a36Sopenharmony_ci
227862306a36Sopenharmony_cistatic struct clk_branch sdc1_h_clk = {
227962306a36Sopenharmony_ci	.halt_reg = 0x2fc8,
228062306a36Sopenharmony_ci	.halt_bit = 11,
228162306a36Sopenharmony_ci	.clkr = {
228262306a36Sopenharmony_ci		.enable_reg = 0x2820,
228362306a36Sopenharmony_ci		.enable_mask = BIT(4),
228462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
228562306a36Sopenharmony_ci			.name = "sdc1_h_clk",
228662306a36Sopenharmony_ci			.ops = &clk_branch_ops,
228762306a36Sopenharmony_ci		},
228862306a36Sopenharmony_ci	},
228962306a36Sopenharmony_ci};
229062306a36Sopenharmony_ci
229162306a36Sopenharmony_cistatic struct clk_branch sdc2_h_clk = {
229262306a36Sopenharmony_ci	.halt_reg = 0x2fc8,
229362306a36Sopenharmony_ci	.halt_bit = 10,
229462306a36Sopenharmony_ci	.clkr = {
229562306a36Sopenharmony_ci		.enable_reg = 0x2840,
229662306a36Sopenharmony_ci		.enable_mask = BIT(4),
229762306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
229862306a36Sopenharmony_ci			.name = "sdc2_h_clk",
229962306a36Sopenharmony_ci			.ops = &clk_branch_ops,
230062306a36Sopenharmony_ci		},
230162306a36Sopenharmony_ci	},
230262306a36Sopenharmony_ci};
230362306a36Sopenharmony_ci
230462306a36Sopenharmony_cistatic struct clk_branch sdc3_h_clk = {
230562306a36Sopenharmony_ci	.halt_reg = 0x2fc8,
230662306a36Sopenharmony_ci	.halt_bit = 9,
230762306a36Sopenharmony_ci	.clkr = {
230862306a36Sopenharmony_ci		.enable_reg = 0x2860,
230962306a36Sopenharmony_ci		.enable_mask = BIT(4),
231062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
231162306a36Sopenharmony_ci			.name = "sdc3_h_clk",
231262306a36Sopenharmony_ci			.ops = &clk_branch_ops,
231362306a36Sopenharmony_ci		},
231462306a36Sopenharmony_ci	},
231562306a36Sopenharmony_ci};
231662306a36Sopenharmony_ci
231762306a36Sopenharmony_cistatic struct clk_branch sdc4_h_clk = {
231862306a36Sopenharmony_ci	.halt_reg = 0x2fc8,
231962306a36Sopenharmony_ci	.halt_bit = 8,
232062306a36Sopenharmony_ci	.clkr = {
232162306a36Sopenharmony_ci		.enable_reg = 0x2880,
232262306a36Sopenharmony_ci		.enable_mask = BIT(4),
232362306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
232462306a36Sopenharmony_ci			.name = "sdc4_h_clk",
232562306a36Sopenharmony_ci			.ops = &clk_branch_ops,
232662306a36Sopenharmony_ci		},
232762306a36Sopenharmony_ci	},
232862306a36Sopenharmony_ci};
232962306a36Sopenharmony_ci
233062306a36Sopenharmony_cistatic struct clk_branch sdc5_h_clk = {
233162306a36Sopenharmony_ci	.halt_reg = 0x2fc8,
233262306a36Sopenharmony_ci	.halt_bit = 7,
233362306a36Sopenharmony_ci	.clkr = {
233462306a36Sopenharmony_ci		.enable_reg = 0x28a0,
233562306a36Sopenharmony_ci		.enable_mask = BIT(4),
233662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
233762306a36Sopenharmony_ci			.name = "sdc5_h_clk",
233862306a36Sopenharmony_ci			.ops = &clk_branch_ops,
233962306a36Sopenharmony_ci		},
234062306a36Sopenharmony_ci	},
234162306a36Sopenharmony_ci};
234262306a36Sopenharmony_ci
234362306a36Sopenharmony_cistatic struct clk_branch ebi2_2x_clk = {
234462306a36Sopenharmony_ci	.halt_reg = 0x2fcc,
234562306a36Sopenharmony_ci	.halt_bit = 18,
234662306a36Sopenharmony_ci	.clkr = {
234762306a36Sopenharmony_ci		.enable_reg = 0x2660,
234862306a36Sopenharmony_ci		.enable_mask = BIT(4),
234962306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
235062306a36Sopenharmony_ci			.name = "ebi2_2x_clk",
235162306a36Sopenharmony_ci			.ops = &clk_branch_ops,
235262306a36Sopenharmony_ci		},
235362306a36Sopenharmony_ci	},
235462306a36Sopenharmony_ci};
235562306a36Sopenharmony_ci
235662306a36Sopenharmony_cistatic struct clk_branch ebi2_clk = {
235762306a36Sopenharmony_ci	.halt_reg = 0x2fcc,
235862306a36Sopenharmony_ci	.halt_bit = 19,
235962306a36Sopenharmony_ci	.clkr = {
236062306a36Sopenharmony_ci		.enable_reg = 0x2664,
236162306a36Sopenharmony_ci		.enable_mask = BIT(4),
236262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
236362306a36Sopenharmony_ci			.name = "ebi2_clk",
236462306a36Sopenharmony_ci			.ops = &clk_branch_ops,
236562306a36Sopenharmony_ci		},
236662306a36Sopenharmony_ci	},
236762306a36Sopenharmony_ci};
236862306a36Sopenharmony_ci
236962306a36Sopenharmony_cistatic struct clk_branch adm0_clk = {
237062306a36Sopenharmony_ci	.halt_reg = 0x2fdc,
237162306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
237262306a36Sopenharmony_ci	.halt_bit = 14,
237362306a36Sopenharmony_ci	.clkr = {
237462306a36Sopenharmony_ci		.enable_reg = 0x3080,
237562306a36Sopenharmony_ci		.enable_mask = BIT(2),
237662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
237762306a36Sopenharmony_ci			.name = "adm0_clk",
237862306a36Sopenharmony_ci			.ops = &clk_branch_ops,
237962306a36Sopenharmony_ci		},
238062306a36Sopenharmony_ci	},
238162306a36Sopenharmony_ci};
238262306a36Sopenharmony_ci
238362306a36Sopenharmony_cistatic struct clk_branch adm0_pbus_clk = {
238462306a36Sopenharmony_ci	.halt_reg = 0x2fdc,
238562306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
238662306a36Sopenharmony_ci	.halt_bit = 13,
238762306a36Sopenharmony_ci	.clkr = {
238862306a36Sopenharmony_ci		.enable_reg = 0x3080,
238962306a36Sopenharmony_ci		.enable_mask = BIT(3),
239062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
239162306a36Sopenharmony_ci			.name = "adm0_pbus_clk",
239262306a36Sopenharmony_ci			.ops = &clk_branch_ops,
239362306a36Sopenharmony_ci		},
239462306a36Sopenharmony_ci	},
239562306a36Sopenharmony_ci};
239662306a36Sopenharmony_ci
239762306a36Sopenharmony_cistatic struct clk_branch adm1_clk = {
239862306a36Sopenharmony_ci	.halt_reg = 0x2fdc,
239962306a36Sopenharmony_ci	.halt_bit = 12,
240062306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
240162306a36Sopenharmony_ci	.clkr = {
240262306a36Sopenharmony_ci		.enable_reg = 0x3080,
240362306a36Sopenharmony_ci		.enable_mask = BIT(4),
240462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
240562306a36Sopenharmony_ci			.name = "adm1_clk",
240662306a36Sopenharmony_ci			.ops = &clk_branch_ops,
240762306a36Sopenharmony_ci		},
240862306a36Sopenharmony_ci	},
240962306a36Sopenharmony_ci};
241062306a36Sopenharmony_ci
241162306a36Sopenharmony_cistatic struct clk_branch adm1_pbus_clk = {
241262306a36Sopenharmony_ci	.halt_reg = 0x2fdc,
241362306a36Sopenharmony_ci	.halt_bit = 11,
241462306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
241562306a36Sopenharmony_ci	.clkr = {
241662306a36Sopenharmony_ci		.enable_reg = 0x3080,
241762306a36Sopenharmony_ci		.enable_mask = BIT(5),
241862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
241962306a36Sopenharmony_ci			.name = "adm1_pbus_clk",
242062306a36Sopenharmony_ci			.ops = &clk_branch_ops,
242162306a36Sopenharmony_ci		},
242262306a36Sopenharmony_ci	},
242362306a36Sopenharmony_ci};
242462306a36Sopenharmony_ci
242562306a36Sopenharmony_cistatic struct clk_branch modem_ahb1_h_clk = {
242662306a36Sopenharmony_ci	.halt_reg = 0x2fdc,
242762306a36Sopenharmony_ci	.halt_bit = 8,
242862306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
242962306a36Sopenharmony_ci	.clkr = {
243062306a36Sopenharmony_ci		.enable_reg = 0x3080,
243162306a36Sopenharmony_ci		.enable_mask = BIT(0),
243262306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
243362306a36Sopenharmony_ci			.name = "modem_ahb1_h_clk",
243462306a36Sopenharmony_ci			.ops = &clk_branch_ops,
243562306a36Sopenharmony_ci		},
243662306a36Sopenharmony_ci	},
243762306a36Sopenharmony_ci};
243862306a36Sopenharmony_ci
243962306a36Sopenharmony_cistatic struct clk_branch modem_ahb2_h_clk = {
244062306a36Sopenharmony_ci	.halt_reg = 0x2fdc,
244162306a36Sopenharmony_ci	.halt_bit = 7,
244262306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
244362306a36Sopenharmony_ci	.clkr = {
244462306a36Sopenharmony_ci		.enable_reg = 0x3080,
244562306a36Sopenharmony_ci		.enable_mask = BIT(1),
244662306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
244762306a36Sopenharmony_ci			.name = "modem_ahb2_h_clk",
244862306a36Sopenharmony_ci			.ops = &clk_branch_ops,
244962306a36Sopenharmony_ci		},
245062306a36Sopenharmony_ci	},
245162306a36Sopenharmony_ci};
245262306a36Sopenharmony_ci
245362306a36Sopenharmony_cistatic struct clk_branch pmic_arb0_h_clk = {
245462306a36Sopenharmony_ci	.halt_reg = 0x2fd8,
245562306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
245662306a36Sopenharmony_ci	.halt_bit = 22,
245762306a36Sopenharmony_ci	.clkr = {
245862306a36Sopenharmony_ci		.enable_reg = 0x3080,
245962306a36Sopenharmony_ci		.enable_mask = BIT(8),
246062306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
246162306a36Sopenharmony_ci			.name = "pmic_arb0_h_clk",
246262306a36Sopenharmony_ci			.ops = &clk_branch_ops,
246362306a36Sopenharmony_ci		},
246462306a36Sopenharmony_ci	},
246562306a36Sopenharmony_ci};
246662306a36Sopenharmony_ci
246762306a36Sopenharmony_cistatic struct clk_branch pmic_arb1_h_clk = {
246862306a36Sopenharmony_ci	.halt_reg = 0x2fd8,
246962306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
247062306a36Sopenharmony_ci	.halt_bit = 21,
247162306a36Sopenharmony_ci	.clkr = {
247262306a36Sopenharmony_ci		.enable_reg = 0x3080,
247362306a36Sopenharmony_ci		.enable_mask = BIT(9),
247462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
247562306a36Sopenharmony_ci			.name = "pmic_arb1_h_clk",
247662306a36Sopenharmony_ci			.ops = &clk_branch_ops,
247762306a36Sopenharmony_ci		},
247862306a36Sopenharmony_ci	},
247962306a36Sopenharmony_ci};
248062306a36Sopenharmony_ci
248162306a36Sopenharmony_cistatic struct clk_branch pmic_ssbi2_clk = {
248262306a36Sopenharmony_ci	.halt_reg = 0x2fd8,
248362306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
248462306a36Sopenharmony_ci	.halt_bit = 23,
248562306a36Sopenharmony_ci	.clkr = {
248662306a36Sopenharmony_ci		.enable_reg = 0x3080,
248762306a36Sopenharmony_ci		.enable_mask = BIT(7),
248862306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
248962306a36Sopenharmony_ci			.name = "pmic_ssbi2_clk",
249062306a36Sopenharmony_ci			.ops = &clk_branch_ops,
249162306a36Sopenharmony_ci		},
249262306a36Sopenharmony_ci	},
249362306a36Sopenharmony_ci};
249462306a36Sopenharmony_ci
249562306a36Sopenharmony_cistatic struct clk_branch rpm_msg_ram_h_clk = {
249662306a36Sopenharmony_ci	.hwcg_reg = 0x27e0,
249762306a36Sopenharmony_ci	.hwcg_bit = 6,
249862306a36Sopenharmony_ci	.halt_reg = 0x2fd8,
249962306a36Sopenharmony_ci	.halt_check = BRANCH_HALT_VOTED,
250062306a36Sopenharmony_ci	.halt_bit = 12,
250162306a36Sopenharmony_ci	.clkr = {
250262306a36Sopenharmony_ci		.enable_reg = 0x3080,
250362306a36Sopenharmony_ci		.enable_mask = BIT(6),
250462306a36Sopenharmony_ci		.hw.init = &(struct clk_init_data){
250562306a36Sopenharmony_ci			.name = "rpm_msg_ram_h_clk",
250662306a36Sopenharmony_ci			.ops = &clk_branch_ops,
250762306a36Sopenharmony_ci		},
250862306a36Sopenharmony_ci	},
250962306a36Sopenharmony_ci};
251062306a36Sopenharmony_ci
251162306a36Sopenharmony_cistatic struct clk_regmap *gcc_msm8660_clks[] = {
251262306a36Sopenharmony_ci	[PLL8] = &pll8.clkr,
251362306a36Sopenharmony_ci	[PLL8_VOTE] = &pll8_vote,
251462306a36Sopenharmony_ci	[GSBI1_UART_SRC] = &gsbi1_uart_src.clkr,
251562306a36Sopenharmony_ci	[GSBI1_UART_CLK] = &gsbi1_uart_clk.clkr,
251662306a36Sopenharmony_ci	[GSBI2_UART_SRC] = &gsbi2_uart_src.clkr,
251762306a36Sopenharmony_ci	[GSBI2_UART_CLK] = &gsbi2_uart_clk.clkr,
251862306a36Sopenharmony_ci	[GSBI3_UART_SRC] = &gsbi3_uart_src.clkr,
251962306a36Sopenharmony_ci	[GSBI3_UART_CLK] = &gsbi3_uart_clk.clkr,
252062306a36Sopenharmony_ci	[GSBI4_UART_SRC] = &gsbi4_uart_src.clkr,
252162306a36Sopenharmony_ci	[GSBI4_UART_CLK] = &gsbi4_uart_clk.clkr,
252262306a36Sopenharmony_ci	[GSBI5_UART_SRC] = &gsbi5_uart_src.clkr,
252362306a36Sopenharmony_ci	[GSBI5_UART_CLK] = &gsbi5_uart_clk.clkr,
252462306a36Sopenharmony_ci	[GSBI6_UART_SRC] = &gsbi6_uart_src.clkr,
252562306a36Sopenharmony_ci	[GSBI6_UART_CLK] = &gsbi6_uart_clk.clkr,
252662306a36Sopenharmony_ci	[GSBI7_UART_SRC] = &gsbi7_uart_src.clkr,
252762306a36Sopenharmony_ci	[GSBI7_UART_CLK] = &gsbi7_uart_clk.clkr,
252862306a36Sopenharmony_ci	[GSBI8_UART_SRC] = &gsbi8_uart_src.clkr,
252962306a36Sopenharmony_ci	[GSBI8_UART_CLK] = &gsbi8_uart_clk.clkr,
253062306a36Sopenharmony_ci	[GSBI9_UART_SRC] = &gsbi9_uart_src.clkr,
253162306a36Sopenharmony_ci	[GSBI9_UART_CLK] = &gsbi9_uart_clk.clkr,
253262306a36Sopenharmony_ci	[GSBI10_UART_SRC] = &gsbi10_uart_src.clkr,
253362306a36Sopenharmony_ci	[GSBI10_UART_CLK] = &gsbi10_uart_clk.clkr,
253462306a36Sopenharmony_ci	[GSBI11_UART_SRC] = &gsbi11_uart_src.clkr,
253562306a36Sopenharmony_ci	[GSBI11_UART_CLK] = &gsbi11_uart_clk.clkr,
253662306a36Sopenharmony_ci	[GSBI12_UART_SRC] = &gsbi12_uart_src.clkr,
253762306a36Sopenharmony_ci	[GSBI12_UART_CLK] = &gsbi12_uart_clk.clkr,
253862306a36Sopenharmony_ci	[GSBI1_QUP_SRC] = &gsbi1_qup_src.clkr,
253962306a36Sopenharmony_ci	[GSBI1_QUP_CLK] = &gsbi1_qup_clk.clkr,
254062306a36Sopenharmony_ci	[GSBI2_QUP_SRC] = &gsbi2_qup_src.clkr,
254162306a36Sopenharmony_ci	[GSBI2_QUP_CLK] = &gsbi2_qup_clk.clkr,
254262306a36Sopenharmony_ci	[GSBI3_QUP_SRC] = &gsbi3_qup_src.clkr,
254362306a36Sopenharmony_ci	[GSBI3_QUP_CLK] = &gsbi3_qup_clk.clkr,
254462306a36Sopenharmony_ci	[GSBI4_QUP_SRC] = &gsbi4_qup_src.clkr,
254562306a36Sopenharmony_ci	[GSBI4_QUP_CLK] = &gsbi4_qup_clk.clkr,
254662306a36Sopenharmony_ci	[GSBI5_QUP_SRC] = &gsbi5_qup_src.clkr,
254762306a36Sopenharmony_ci	[GSBI5_QUP_CLK] = &gsbi5_qup_clk.clkr,
254862306a36Sopenharmony_ci	[GSBI6_QUP_SRC] = &gsbi6_qup_src.clkr,
254962306a36Sopenharmony_ci	[GSBI6_QUP_CLK] = &gsbi6_qup_clk.clkr,
255062306a36Sopenharmony_ci	[GSBI7_QUP_SRC] = &gsbi7_qup_src.clkr,
255162306a36Sopenharmony_ci	[GSBI7_QUP_CLK] = &gsbi7_qup_clk.clkr,
255262306a36Sopenharmony_ci	[GSBI8_QUP_SRC] = &gsbi8_qup_src.clkr,
255362306a36Sopenharmony_ci	[GSBI8_QUP_CLK] = &gsbi8_qup_clk.clkr,
255462306a36Sopenharmony_ci	[GSBI9_QUP_SRC] = &gsbi9_qup_src.clkr,
255562306a36Sopenharmony_ci	[GSBI9_QUP_CLK] = &gsbi9_qup_clk.clkr,
255662306a36Sopenharmony_ci	[GSBI10_QUP_SRC] = &gsbi10_qup_src.clkr,
255762306a36Sopenharmony_ci	[GSBI10_QUP_CLK] = &gsbi10_qup_clk.clkr,
255862306a36Sopenharmony_ci	[GSBI11_QUP_SRC] = &gsbi11_qup_src.clkr,
255962306a36Sopenharmony_ci	[GSBI11_QUP_CLK] = &gsbi11_qup_clk.clkr,
256062306a36Sopenharmony_ci	[GSBI12_QUP_SRC] = &gsbi12_qup_src.clkr,
256162306a36Sopenharmony_ci	[GSBI12_QUP_CLK] = &gsbi12_qup_clk.clkr,
256262306a36Sopenharmony_ci	[GP0_SRC] = &gp0_src.clkr,
256362306a36Sopenharmony_ci	[GP0_CLK] = &gp0_clk.clkr,
256462306a36Sopenharmony_ci	[GP1_SRC] = &gp1_src.clkr,
256562306a36Sopenharmony_ci	[GP1_CLK] = &gp1_clk.clkr,
256662306a36Sopenharmony_ci	[GP2_SRC] = &gp2_src.clkr,
256762306a36Sopenharmony_ci	[GP2_CLK] = &gp2_clk.clkr,
256862306a36Sopenharmony_ci	[PMEM_CLK] = &pmem_clk.clkr,
256962306a36Sopenharmony_ci	[PRNG_SRC] = &prng_src.clkr,
257062306a36Sopenharmony_ci	[PRNG_CLK] = &prng_clk.clkr,
257162306a36Sopenharmony_ci	[SDC1_SRC] = &sdc1_src.clkr,
257262306a36Sopenharmony_ci	[SDC1_CLK] = &sdc1_clk.clkr,
257362306a36Sopenharmony_ci	[SDC2_SRC] = &sdc2_src.clkr,
257462306a36Sopenharmony_ci	[SDC2_CLK] = &sdc2_clk.clkr,
257562306a36Sopenharmony_ci	[SDC3_SRC] = &sdc3_src.clkr,
257662306a36Sopenharmony_ci	[SDC3_CLK] = &sdc3_clk.clkr,
257762306a36Sopenharmony_ci	[SDC4_SRC] = &sdc4_src.clkr,
257862306a36Sopenharmony_ci	[SDC4_CLK] = &sdc4_clk.clkr,
257962306a36Sopenharmony_ci	[SDC5_SRC] = &sdc5_src.clkr,
258062306a36Sopenharmony_ci	[SDC5_CLK] = &sdc5_clk.clkr,
258162306a36Sopenharmony_ci	[TSIF_REF_SRC] = &tsif_ref_src.clkr,
258262306a36Sopenharmony_ci	[TSIF_REF_CLK] = &tsif_ref_clk.clkr,
258362306a36Sopenharmony_ci	[USB_HS1_XCVR_SRC] = &usb_hs1_xcvr_src.clkr,
258462306a36Sopenharmony_ci	[USB_HS1_XCVR_CLK] = &usb_hs1_xcvr_clk.clkr,
258562306a36Sopenharmony_ci	[USB_FS1_XCVR_FS_SRC] = &usb_fs1_xcvr_fs_src.clkr,
258662306a36Sopenharmony_ci	[USB_FS1_XCVR_FS_CLK] = &usb_fs1_xcvr_fs_clk.clkr,
258762306a36Sopenharmony_ci	[USB_FS1_SYSTEM_CLK] = &usb_fs1_system_clk.clkr,
258862306a36Sopenharmony_ci	[USB_FS2_XCVR_FS_SRC] = &usb_fs2_xcvr_fs_src.clkr,
258962306a36Sopenharmony_ci	[USB_FS2_XCVR_FS_CLK] = &usb_fs2_xcvr_fs_clk.clkr,
259062306a36Sopenharmony_ci	[USB_FS2_SYSTEM_CLK] = &usb_fs2_system_clk.clkr,
259162306a36Sopenharmony_ci	[GSBI1_H_CLK] = &gsbi1_h_clk.clkr,
259262306a36Sopenharmony_ci	[GSBI2_H_CLK] = &gsbi2_h_clk.clkr,
259362306a36Sopenharmony_ci	[GSBI3_H_CLK] = &gsbi3_h_clk.clkr,
259462306a36Sopenharmony_ci	[GSBI4_H_CLK] = &gsbi4_h_clk.clkr,
259562306a36Sopenharmony_ci	[GSBI5_H_CLK] = &gsbi5_h_clk.clkr,
259662306a36Sopenharmony_ci	[GSBI6_H_CLK] = &gsbi6_h_clk.clkr,
259762306a36Sopenharmony_ci	[GSBI7_H_CLK] = &gsbi7_h_clk.clkr,
259862306a36Sopenharmony_ci	[GSBI8_H_CLK] = &gsbi8_h_clk.clkr,
259962306a36Sopenharmony_ci	[GSBI9_H_CLK] = &gsbi9_h_clk.clkr,
260062306a36Sopenharmony_ci	[GSBI10_H_CLK] = &gsbi10_h_clk.clkr,
260162306a36Sopenharmony_ci	[GSBI11_H_CLK] = &gsbi11_h_clk.clkr,
260262306a36Sopenharmony_ci	[GSBI12_H_CLK] = &gsbi12_h_clk.clkr,
260362306a36Sopenharmony_ci	[TSIF_H_CLK] = &tsif_h_clk.clkr,
260462306a36Sopenharmony_ci	[USB_FS1_H_CLK] = &usb_fs1_h_clk.clkr,
260562306a36Sopenharmony_ci	[USB_FS2_H_CLK] = &usb_fs2_h_clk.clkr,
260662306a36Sopenharmony_ci	[USB_HS1_H_CLK] = &usb_hs1_h_clk.clkr,
260762306a36Sopenharmony_ci	[SDC1_H_CLK] = &sdc1_h_clk.clkr,
260862306a36Sopenharmony_ci	[SDC2_H_CLK] = &sdc2_h_clk.clkr,
260962306a36Sopenharmony_ci	[SDC3_H_CLK] = &sdc3_h_clk.clkr,
261062306a36Sopenharmony_ci	[SDC4_H_CLK] = &sdc4_h_clk.clkr,
261162306a36Sopenharmony_ci	[SDC5_H_CLK] = &sdc5_h_clk.clkr,
261262306a36Sopenharmony_ci	[EBI2_2X_CLK] = &ebi2_2x_clk.clkr,
261362306a36Sopenharmony_ci	[EBI2_CLK] = &ebi2_clk.clkr,
261462306a36Sopenharmony_ci	[ADM0_CLK] = &adm0_clk.clkr,
261562306a36Sopenharmony_ci	[ADM0_PBUS_CLK] = &adm0_pbus_clk.clkr,
261662306a36Sopenharmony_ci	[ADM1_CLK] = &adm1_clk.clkr,
261762306a36Sopenharmony_ci	[ADM1_PBUS_CLK] = &adm1_pbus_clk.clkr,
261862306a36Sopenharmony_ci	[MODEM_AHB1_H_CLK] = &modem_ahb1_h_clk.clkr,
261962306a36Sopenharmony_ci	[MODEM_AHB2_H_CLK] = &modem_ahb2_h_clk.clkr,
262062306a36Sopenharmony_ci	[PMIC_ARB0_H_CLK] = &pmic_arb0_h_clk.clkr,
262162306a36Sopenharmony_ci	[PMIC_ARB1_H_CLK] = &pmic_arb1_h_clk.clkr,
262262306a36Sopenharmony_ci	[PMIC_SSBI2_CLK] = &pmic_ssbi2_clk.clkr,
262362306a36Sopenharmony_ci	[RPM_MSG_RAM_H_CLK] = &rpm_msg_ram_h_clk.clkr,
262462306a36Sopenharmony_ci};
262562306a36Sopenharmony_ci
262662306a36Sopenharmony_cistatic const struct qcom_reset_map gcc_msm8660_resets[] = {
262762306a36Sopenharmony_ci	[AFAB_CORE_RESET] = { 0x2080, 7 },
262862306a36Sopenharmony_ci	[SCSS_SYS_RESET] = { 0x20b4, 1 },
262962306a36Sopenharmony_ci	[SCSS_SYS_POR_RESET] = { 0x20b4 },
263062306a36Sopenharmony_ci	[AFAB_SMPSS_S_RESET] = { 0x20b8, 2 },
263162306a36Sopenharmony_ci	[AFAB_SMPSS_M1_RESET] = { 0x20b8, 1 },
263262306a36Sopenharmony_ci	[AFAB_SMPSS_M0_RESET] = { 0x20b8 },
263362306a36Sopenharmony_ci	[AFAB_EBI1_S_RESET] = { 0x20c0, 7 },
263462306a36Sopenharmony_ci	[SFAB_CORE_RESET] = { 0x2120, 7 },
263562306a36Sopenharmony_ci	[SFAB_ADM0_M0_RESET] = { 0x21e0, 7 },
263662306a36Sopenharmony_ci	[SFAB_ADM0_M1_RESET] = { 0x21e4, 7 },
263762306a36Sopenharmony_ci	[SFAB_ADM0_M2_RESET] = { 0x21e4, 7 },
263862306a36Sopenharmony_ci	[ADM0_C2_RESET] = { 0x220c, 4 },
263962306a36Sopenharmony_ci	[ADM0_C1_RESET] = { 0x220c, 3 },
264062306a36Sopenharmony_ci	[ADM0_C0_RESET] = { 0x220c, 2 },
264162306a36Sopenharmony_ci	[ADM0_PBUS_RESET] = { 0x220c, 1 },
264262306a36Sopenharmony_ci	[ADM0_RESET] = { 0x220c },
264362306a36Sopenharmony_ci	[SFAB_ADM1_M0_RESET] = { 0x2220, 7 },
264462306a36Sopenharmony_ci	[SFAB_ADM1_M1_RESET] = { 0x2224, 7 },
264562306a36Sopenharmony_ci	[SFAB_ADM1_M2_RESET] = { 0x2228, 7 },
264662306a36Sopenharmony_ci	[MMFAB_ADM1_M3_RESET] = { 0x2240, 7 },
264762306a36Sopenharmony_ci	[ADM1_C3_RESET] = { 0x226c, 5 },
264862306a36Sopenharmony_ci	[ADM1_C2_RESET] = { 0x226c, 4 },
264962306a36Sopenharmony_ci	[ADM1_C1_RESET] = { 0x226c, 3 },
265062306a36Sopenharmony_ci	[ADM1_C0_RESET] = { 0x226c, 2 },
265162306a36Sopenharmony_ci	[ADM1_PBUS_RESET] = { 0x226c, 1 },
265262306a36Sopenharmony_ci	[ADM1_RESET] = { 0x226c },
265362306a36Sopenharmony_ci	[IMEM0_RESET] = { 0x2280, 7 },
265462306a36Sopenharmony_ci	[SFAB_LPASS_Q6_RESET] = { 0x23a0, 7 },
265562306a36Sopenharmony_ci	[SFAB_AFAB_M_RESET] = { 0x23e0, 7 },
265662306a36Sopenharmony_ci	[AFAB_SFAB_M0_RESET] = { 0x2420, 7 },
265762306a36Sopenharmony_ci	[AFAB_SFAB_M1_RESET] = { 0x2424, 7 },
265862306a36Sopenharmony_ci	[DFAB_CORE_RESET] = { 0x24ac, 7 },
265962306a36Sopenharmony_ci	[SFAB_DFAB_M_RESET] = { 0x2500, 7 },
266062306a36Sopenharmony_ci	[DFAB_SFAB_M_RESET] = { 0x2520, 7 },
266162306a36Sopenharmony_ci	[DFAB_SWAY0_RESET] = { 0x2540, 7 },
266262306a36Sopenharmony_ci	[DFAB_SWAY1_RESET] = { 0x2544, 7 },
266362306a36Sopenharmony_ci	[DFAB_ARB0_RESET] = { 0x2560, 7 },
266462306a36Sopenharmony_ci	[DFAB_ARB1_RESET] = { 0x2564, 7 },
266562306a36Sopenharmony_ci	[PPSS_PROC_RESET] = { 0x2594, 1 },
266662306a36Sopenharmony_ci	[PPSS_RESET] = { 0x2594 },
266762306a36Sopenharmony_ci	[PMEM_RESET] = { 0x25a0, 7 },
266862306a36Sopenharmony_ci	[DMA_BAM_RESET] = { 0x25c0, 7 },
266962306a36Sopenharmony_ci	[SIC_RESET] = { 0x25e0, 7 },
267062306a36Sopenharmony_ci	[SPS_TIC_RESET] = { 0x2600, 7 },
267162306a36Sopenharmony_ci	[CFBP0_RESET] = { 0x2650, 7 },
267262306a36Sopenharmony_ci	[CFBP1_RESET] = { 0x2654, 7 },
267362306a36Sopenharmony_ci	[CFBP2_RESET] = { 0x2658, 7 },
267462306a36Sopenharmony_ci	[EBI2_RESET] = { 0x2664, 7 },
267562306a36Sopenharmony_ci	[SFAB_CFPB_M_RESET] = { 0x2680, 7 },
267662306a36Sopenharmony_ci	[CFPB_MASTER_RESET] = { 0x26a0, 7 },
267762306a36Sopenharmony_ci	[SFAB_CFPB_S_RESET] = { 0x26c0, 7 },
267862306a36Sopenharmony_ci	[CFPB_SPLITTER_RESET] = { 0x26e0, 7 },
267962306a36Sopenharmony_ci	[TSIF_RESET] = { 0x2700, 7 },
268062306a36Sopenharmony_ci	[CE1_RESET] = { 0x2720, 7 },
268162306a36Sopenharmony_ci	[CE2_RESET] = { 0x2740, 7 },
268262306a36Sopenharmony_ci	[SFAB_SFPB_M_RESET] = { 0x2780, 7 },
268362306a36Sopenharmony_ci	[SFAB_SFPB_S_RESET] = { 0x27a0, 7 },
268462306a36Sopenharmony_ci	[RPM_PROC_RESET] = { 0x27c0, 7 },
268562306a36Sopenharmony_ci	[RPM_BUS_RESET] = { 0x27c4, 7 },
268662306a36Sopenharmony_ci	[RPM_MSG_RAM_RESET] = { 0x27e0, 7 },
268762306a36Sopenharmony_ci	[PMIC_ARB0_RESET] = { 0x2800, 7 },
268862306a36Sopenharmony_ci	[PMIC_ARB1_RESET] = { 0x2804, 7 },
268962306a36Sopenharmony_ci	[PMIC_SSBI2_RESET] = { 0x280c, 12 },
269062306a36Sopenharmony_ci	[SDC1_RESET] = { 0x2830 },
269162306a36Sopenharmony_ci	[SDC2_RESET] = { 0x2850 },
269262306a36Sopenharmony_ci	[SDC3_RESET] = { 0x2870 },
269362306a36Sopenharmony_ci	[SDC4_RESET] = { 0x2890 },
269462306a36Sopenharmony_ci	[SDC5_RESET] = { 0x28b0 },
269562306a36Sopenharmony_ci	[USB_HS1_RESET] = { 0x2910 },
269662306a36Sopenharmony_ci	[USB_HS2_XCVR_RESET] = { 0x2934, 1 },
269762306a36Sopenharmony_ci	[USB_HS2_RESET] = { 0x2934 },
269862306a36Sopenharmony_ci	[USB_FS1_XCVR_RESET] = { 0x2974, 1 },
269962306a36Sopenharmony_ci	[USB_FS1_RESET] = { 0x2974 },
270062306a36Sopenharmony_ci	[USB_FS2_XCVR_RESET] = { 0x2994, 1 },
270162306a36Sopenharmony_ci	[USB_FS2_RESET] = { 0x2994 },
270262306a36Sopenharmony_ci	[GSBI1_RESET] = { 0x29dc },
270362306a36Sopenharmony_ci	[GSBI2_RESET] = { 0x29fc },
270462306a36Sopenharmony_ci	[GSBI3_RESET] = { 0x2a1c },
270562306a36Sopenharmony_ci	[GSBI4_RESET] = { 0x2a3c },
270662306a36Sopenharmony_ci	[GSBI5_RESET] = { 0x2a5c },
270762306a36Sopenharmony_ci	[GSBI6_RESET] = { 0x2a7c },
270862306a36Sopenharmony_ci	[GSBI7_RESET] = { 0x2a9c },
270962306a36Sopenharmony_ci	[GSBI8_RESET] = { 0x2abc },
271062306a36Sopenharmony_ci	[GSBI9_RESET] = { 0x2adc },
271162306a36Sopenharmony_ci	[GSBI10_RESET] = { 0x2afc },
271262306a36Sopenharmony_ci	[GSBI11_RESET] = { 0x2b1c },
271362306a36Sopenharmony_ci	[GSBI12_RESET] = { 0x2b3c },
271462306a36Sopenharmony_ci	[SPDM_RESET] = { 0x2b6c },
271562306a36Sopenharmony_ci	[SEC_CTRL_RESET] = { 0x2b80, 7 },
271662306a36Sopenharmony_ci	[TLMM_H_RESET] = { 0x2ba0, 7 },
271762306a36Sopenharmony_ci	[TLMM_RESET] = { 0x2ba4, 7 },
271862306a36Sopenharmony_ci	[MARRM_PWRON_RESET] = { 0x2bd4, 1 },
271962306a36Sopenharmony_ci	[MARM_RESET] = { 0x2bd4 },
272062306a36Sopenharmony_ci	[MAHB1_RESET] = { 0x2be4, 7 },
272162306a36Sopenharmony_ci	[SFAB_MSS_S_RESET] = { 0x2c00, 7 },
272262306a36Sopenharmony_ci	[MAHB2_RESET] = { 0x2c20, 7 },
272362306a36Sopenharmony_ci	[MODEM_SW_AHB_RESET] = { 0x2c48, 1 },
272462306a36Sopenharmony_ci	[MODEM_RESET] = { 0x2c48 },
272562306a36Sopenharmony_ci	[SFAB_MSS_MDM1_RESET] = { 0x2c4c, 1 },
272662306a36Sopenharmony_ci	[SFAB_MSS_MDM0_RESET] = { 0x2c4c },
272762306a36Sopenharmony_ci	[MSS_SLP_RESET] = { 0x2c60, 7 },
272862306a36Sopenharmony_ci	[MSS_MARM_SAW_RESET] = { 0x2c68, 1 },
272962306a36Sopenharmony_ci	[MSS_WDOG_RESET] = { 0x2c68 },
273062306a36Sopenharmony_ci	[TSSC_RESET] = { 0x2ca0, 7 },
273162306a36Sopenharmony_ci	[PDM_RESET] = { 0x2cc0, 12 },
273262306a36Sopenharmony_ci	[SCSS_CORE0_RESET] = { 0x2d60, 1 },
273362306a36Sopenharmony_ci	[SCSS_CORE0_POR_RESET] = { 0x2d60 },
273462306a36Sopenharmony_ci	[SCSS_CORE1_RESET] = { 0x2d80, 1 },
273562306a36Sopenharmony_ci	[SCSS_CORE1_POR_RESET] = { 0x2d80 },
273662306a36Sopenharmony_ci	[MPM_RESET] = { 0x2da4, 1 },
273762306a36Sopenharmony_ci	[EBI1_1X_DIV_RESET] = { 0x2dec, 9 },
273862306a36Sopenharmony_ci	[EBI1_RESET] = { 0x2dec, 7 },
273962306a36Sopenharmony_ci	[SFAB_SMPSS_S_RESET] = { 0x2e00, 7 },
274062306a36Sopenharmony_ci	[USB_PHY0_RESET] = { 0x2e20 },
274162306a36Sopenharmony_ci	[USB_PHY1_RESET] = { 0x2e40 },
274262306a36Sopenharmony_ci	[PRNG_RESET] = { 0x2e80, 12 },
274362306a36Sopenharmony_ci};
274462306a36Sopenharmony_ci
274562306a36Sopenharmony_cistatic const struct regmap_config gcc_msm8660_regmap_config = {
274662306a36Sopenharmony_ci	.reg_bits	= 32,
274762306a36Sopenharmony_ci	.reg_stride	= 4,
274862306a36Sopenharmony_ci	.val_bits	= 32,
274962306a36Sopenharmony_ci	.max_register	= 0x363c,
275062306a36Sopenharmony_ci	.fast_io	= true,
275162306a36Sopenharmony_ci};
275262306a36Sopenharmony_ci
275362306a36Sopenharmony_cistatic const struct qcom_cc_desc gcc_msm8660_desc = {
275462306a36Sopenharmony_ci	.config = &gcc_msm8660_regmap_config,
275562306a36Sopenharmony_ci	.clks = gcc_msm8660_clks,
275662306a36Sopenharmony_ci	.num_clks = ARRAY_SIZE(gcc_msm8660_clks),
275762306a36Sopenharmony_ci	.resets = gcc_msm8660_resets,
275862306a36Sopenharmony_ci	.num_resets = ARRAY_SIZE(gcc_msm8660_resets),
275962306a36Sopenharmony_ci};
276062306a36Sopenharmony_ci
276162306a36Sopenharmony_cistatic const struct of_device_id gcc_msm8660_match_table[] = {
276262306a36Sopenharmony_ci	{ .compatible = "qcom,gcc-msm8660" },
276362306a36Sopenharmony_ci	{ }
276462306a36Sopenharmony_ci};
276562306a36Sopenharmony_ciMODULE_DEVICE_TABLE(of, gcc_msm8660_match_table);
276662306a36Sopenharmony_ci
276762306a36Sopenharmony_cistatic int gcc_msm8660_probe(struct platform_device *pdev)
276862306a36Sopenharmony_ci{
276962306a36Sopenharmony_ci	return qcom_cc_probe(pdev, &gcc_msm8660_desc);
277062306a36Sopenharmony_ci}
277162306a36Sopenharmony_ci
277262306a36Sopenharmony_cistatic struct platform_driver gcc_msm8660_driver = {
277362306a36Sopenharmony_ci	.probe		= gcc_msm8660_probe,
277462306a36Sopenharmony_ci	.driver		= {
277562306a36Sopenharmony_ci		.name	= "gcc-msm8660",
277662306a36Sopenharmony_ci		.of_match_table = gcc_msm8660_match_table,
277762306a36Sopenharmony_ci	},
277862306a36Sopenharmony_ci};
277962306a36Sopenharmony_ci
278062306a36Sopenharmony_cistatic int __init gcc_msm8660_init(void)
278162306a36Sopenharmony_ci{
278262306a36Sopenharmony_ci	return platform_driver_register(&gcc_msm8660_driver);
278362306a36Sopenharmony_ci}
278462306a36Sopenharmony_cicore_initcall(gcc_msm8660_init);
278562306a36Sopenharmony_ci
278662306a36Sopenharmony_cistatic void __exit gcc_msm8660_exit(void)
278762306a36Sopenharmony_ci{
278862306a36Sopenharmony_ci	platform_driver_unregister(&gcc_msm8660_driver);
278962306a36Sopenharmony_ci}
279062306a36Sopenharmony_cimodule_exit(gcc_msm8660_exit);
279162306a36Sopenharmony_ci
279262306a36Sopenharmony_ciMODULE_DESCRIPTION("GCC MSM 8660 Driver");
279362306a36Sopenharmony_ciMODULE_LICENSE("GPL v2");
279462306a36Sopenharmony_ciMODULE_ALIAS("platform:gcc-msm8660");
2795