124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala/*
224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala * Copyright (c) 2014, The Linux Foundation. All rights reserved.
324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala *
424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala * This software is licensed under the terms of the GNU General Public
524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala * License version 2, as published by the Free Software Foundation, and
624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala * may be copied, distributed, and modified under those terms.
724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala *
824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala * This program is distributed in the hope that it will be useful,
924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala * but WITHOUT ANY WARRANTY; without even the implied warranty of
1024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala * GNU General Public License for more details.
1224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala */
1324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
1424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala#include <linux/kernel.h>
1524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala#include <linux/bitops.h>
1624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala#include <linux/err.h>
1724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala#include <linux/platform_device.h>
1824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala#include <linux/module.h>
1924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala#include <linux/of.h>
2024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala#include <linux/of_device.h>
2124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala#include <linux/clk-provider.h>
2224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala#include <linux/regmap.h>
2324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala#include <linux/reset-controller.h>
2424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
2524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala#include <dt-bindings/clock/qcom,gcc-ipq806x.h>
2624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala#include <dt-bindings/reset/qcom,gcc-ipq806x.h>
2724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
2824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala#include "common.h"
2924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala#include "clk-regmap.h"
3024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala#include "clk-pll.h"
3124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala#include "clk-rcg.h"
3224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala#include "clk-branch.h"
3324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala#include "reset.h"
3424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
35dc1b3f657f25798b2dc9ed8928b80eb3183019a2Andy Grossstatic struct clk_pll pll0 = {
36dc1b3f657f25798b2dc9ed8928b80eb3183019a2Andy Gross	.l_reg = 0x30c4,
37dc1b3f657f25798b2dc9ed8928b80eb3183019a2Andy Gross	.m_reg = 0x30c8,
38dc1b3f657f25798b2dc9ed8928b80eb3183019a2Andy Gross	.n_reg = 0x30cc,
39dc1b3f657f25798b2dc9ed8928b80eb3183019a2Andy Gross	.config_reg = 0x30d4,
40dc1b3f657f25798b2dc9ed8928b80eb3183019a2Andy Gross	.mode_reg = 0x30c0,
41dc1b3f657f25798b2dc9ed8928b80eb3183019a2Andy Gross	.status_reg = 0x30d8,
42dc1b3f657f25798b2dc9ed8928b80eb3183019a2Andy Gross	.status_bit = 16,
43dc1b3f657f25798b2dc9ed8928b80eb3183019a2Andy Gross	.clkr.hw.init = &(struct clk_init_data){
44dc1b3f657f25798b2dc9ed8928b80eb3183019a2Andy Gross		.name = "pll0",
45dc1b3f657f25798b2dc9ed8928b80eb3183019a2Andy Gross		.parent_names = (const char *[]){ "pxo" },
46dc1b3f657f25798b2dc9ed8928b80eb3183019a2Andy Gross		.num_parents = 1,
47dc1b3f657f25798b2dc9ed8928b80eb3183019a2Andy Gross		.ops = &clk_pll_ops,
48dc1b3f657f25798b2dc9ed8928b80eb3183019a2Andy Gross	},
49dc1b3f657f25798b2dc9ed8928b80eb3183019a2Andy Gross};
50dc1b3f657f25798b2dc9ed8928b80eb3183019a2Andy Gross
51dc1b3f657f25798b2dc9ed8928b80eb3183019a2Andy Grossstatic struct clk_regmap pll0_vote = {
52dc1b3f657f25798b2dc9ed8928b80eb3183019a2Andy Gross	.enable_reg = 0x34c0,
53dc1b3f657f25798b2dc9ed8928b80eb3183019a2Andy Gross	.enable_mask = BIT(0),
54dc1b3f657f25798b2dc9ed8928b80eb3183019a2Andy Gross	.hw.init = &(struct clk_init_data){
55dc1b3f657f25798b2dc9ed8928b80eb3183019a2Andy Gross		.name = "pll0_vote",
56dc1b3f657f25798b2dc9ed8928b80eb3183019a2Andy Gross		.parent_names = (const char *[]){ "pll0" },
57dc1b3f657f25798b2dc9ed8928b80eb3183019a2Andy Gross		.num_parents = 1,
58dc1b3f657f25798b2dc9ed8928b80eb3183019a2Andy Gross		.ops = &clk_pll_vote_ops,
59dc1b3f657f25798b2dc9ed8928b80eb3183019a2Andy Gross	},
60dc1b3f657f25798b2dc9ed8928b80eb3183019a2Andy Gross};
61dc1b3f657f25798b2dc9ed8928b80eb3183019a2Andy Gross
6224d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_pll pll3 = {
6324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.l_reg = 0x3164,
6424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.m_reg = 0x3168,
6524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.n_reg = 0x316c,
6624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.config_reg = 0x3174,
6724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.mode_reg = 0x3160,
6824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.status_reg = 0x3178,
6924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.status_bit = 16,
7024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr.hw.init = &(struct clk_init_data){
7124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.name = "pll3",
7224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.parent_names = (const char *[]){ "pxo" },
7324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.num_parents = 1,
7424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.ops = &clk_pll_ops,
7524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
7624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
7724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
7824d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_pll pll8 = {
7924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.l_reg = 0x3144,
8024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.m_reg = 0x3148,
8124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.n_reg = 0x314c,
8224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.config_reg = 0x3154,
8324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.mode_reg = 0x3140,
8424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.status_reg = 0x3158,
8524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.status_bit = 16,
8624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr.hw.init = &(struct clk_init_data){
8724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.name = "pll8",
8824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.parent_names = (const char *[]){ "pxo" },
8924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.num_parents = 1,
9024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.ops = &clk_pll_ops,
9124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
9224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
9324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
9424d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_regmap pll8_vote = {
9524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.enable_reg = 0x34c0,
9624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.enable_mask = BIT(8),
9724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.hw.init = &(struct clk_init_data){
9824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.name = "pll8_vote",
9924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.parent_names = (const char *[]){ "pll8" },
10024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.num_parents = 1,
10124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.ops = &clk_pll_vote_ops,
10224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
10324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
10424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
10524d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_pll pll14 = {
10624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.l_reg = 0x31c4,
10724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.m_reg = 0x31c8,
10824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.n_reg = 0x31cc,
10924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.config_reg = 0x31d4,
11024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.mode_reg = 0x31c0,
11124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.status_reg = 0x31d8,
11224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.status_bit = 16,
11324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr.hw.init = &(struct clk_init_data){
11424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.name = "pll14",
11524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.parent_names = (const char *[]){ "pxo" },
11624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.num_parents = 1,
11724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.ops = &clk_pll_ops,
11824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
11924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
12024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
12124d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_regmap pll14_vote = {
12224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.enable_reg = 0x34c0,
12324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.enable_mask = BIT(14),
12424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.hw.init = &(struct clk_init_data){
12524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.name = "pll14_vote",
12624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.parent_names = (const char *[]){ "pll14" },
12724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.num_parents = 1,
12824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.ops = &clk_pll_vote_ops,
12924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
13024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
13124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
13224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala#define P_PXO	0
13324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala#define P_PLL8	1
13424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala#define P_PLL3	1
13524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala#define P_PLL0	2
13624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala#define P_CXO	2
13724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
13824d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic const u8 gcc_pxo_pll8_map[] = {
13924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[P_PXO]		= 0,
14024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[P_PLL8]	= 3,
14124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
14224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
14324d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic const char *gcc_pxo_pll8[] = {
14424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	"pxo",
14524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	"pll8_vote",
14624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
14724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
14824d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic const u8 gcc_pxo_pll8_cxo_map[] = {
14924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[P_PXO]		= 0,
15024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[P_PLL8]	= 3,
15124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[P_CXO]		= 5,
15224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
15324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
15424d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic const char *gcc_pxo_pll8_cxo[] = {
15524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	"pxo",
15624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	"pll8_vote",
15724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	"cxo",
15824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
15924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
16024d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic const u8 gcc_pxo_pll3_map[] = {
16124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[P_PXO]		= 0,
16224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[P_PLL3]	= 1,
16324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
16424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
16524d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic const u8 gcc_pxo_pll3_sata_map[] = {
16624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[P_PXO]		= 0,
16724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[P_PLL3]	= 6,
16824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
16924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
17024d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic const char *gcc_pxo_pll3[] = {
17124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	"pxo",
17224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	"pll3",
17324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
17424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
17524d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic const u8 gcc_pxo_pll8_pll0[] = {
17624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[P_PXO]		= 0,
17724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[P_PLL8]	= 3,
17824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[P_PLL0]	= 2,
17924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
18024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
18124d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic const char *gcc_pxo_pll8_pll0_map[] = {
18224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	"pxo",
18324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	"pll8_vote",
184dc1b3f657f25798b2dc9ed8928b80eb3183019a2Andy Gross	"pll0_vote",
18524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
18624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
18724d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct freq_tbl clk_tbl_gsbi_uart[] = {
18824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	{  1843200, P_PLL8, 2,  6, 625 },
18924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	{  3686400, P_PLL8, 2, 12, 625 },
19024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	{  7372800, P_PLL8, 2, 24, 625 },
19124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	{ 14745600, P_PLL8, 2, 48, 625 },
19224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	{ 16000000, P_PLL8, 4,  1,   6 },
19324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	{ 24000000, P_PLL8, 4,  1,   4 },
19424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	{ 32000000, P_PLL8, 4,  1,   3 },
19524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	{ 40000000, P_PLL8, 1,  5,  48 },
19624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	{ 46400000, P_PLL8, 1, 29, 240 },
19724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	{ 48000000, P_PLL8, 4,  1,   2 },
19824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	{ 51200000, P_PLL8, 1,  2,  15 },
19924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	{ 56000000, P_PLL8, 1,  7,  48 },
20024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	{ 58982400, P_PLL8, 1, 96, 625 },
20124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	{ 64000000, P_PLL8, 2,  1,   3 },
20224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	{ }
20324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
20424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
20524d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_rcg gsbi1_uart_src = {
20624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.ns_reg = 0x29d4,
20724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.md_reg = 0x29d0,
20824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.mn = {
20924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.mnctr_en_bit = 8,
21024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.mnctr_reset_bit = 7,
21124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.mnctr_mode_shift = 5,
21224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.n_val_shift = 16,
21324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.m_val_shift = 16,
21424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.width = 16,
21524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
21624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.p = {
21724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.pre_div_shift = 3,
21824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.pre_div_width = 2,
21924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
22024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.s = {
22124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.src_sel_shift = 0,
22224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.parent_map = gcc_pxo_pll8_map,
22324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
22424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.freq_tbl = clk_tbl_gsbi_uart,
22524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
22624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x29d4,
22724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(11),
22824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
22924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "gsbi1_uart_src",
23024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.parent_names = gcc_pxo_pll8,
23124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.num_parents = 2,
23224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_rcg_ops,
23324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_SET_PARENT_GATE,
23424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
23524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
23624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
23724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
23824d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_branch gsbi1_uart_clk = {
23924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_reg = 0x2fcc,
24024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_bit = 12,
24124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
24224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x29d4,
24324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(9),
24424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
24524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "gsbi1_uart_clk",
24624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.parent_names = (const char *[]){
24724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala				"gsbi1_uart_src",
24824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			},
24924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.num_parents = 1,
25024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_branch_ops,
25124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_SET_RATE_PARENT,
25224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
25324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
25424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
25524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
25624d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_rcg gsbi2_uart_src = {
25724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.ns_reg = 0x29f4,
25824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.md_reg = 0x29f0,
25924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.mn = {
26024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.mnctr_en_bit = 8,
26124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.mnctr_reset_bit = 7,
26224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.mnctr_mode_shift = 5,
26324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.n_val_shift = 16,
26424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.m_val_shift = 16,
26524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.width = 16,
26624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
26724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.p = {
26824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.pre_div_shift = 3,
26924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.pre_div_width = 2,
27024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
27124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.s = {
27224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.src_sel_shift = 0,
27324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.parent_map = gcc_pxo_pll8_map,
27424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
27524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.freq_tbl = clk_tbl_gsbi_uart,
27624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
27724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x29f4,
27824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(11),
27924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
28024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "gsbi2_uart_src",
28124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.parent_names = gcc_pxo_pll8,
28224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.num_parents = 2,
28324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_rcg_ops,
28424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_SET_PARENT_GATE,
28524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
28624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
28724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
28824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
28924d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_branch gsbi2_uart_clk = {
29024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_reg = 0x2fcc,
29124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_bit = 8,
29224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
29324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x29f4,
29424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(9),
29524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
29624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "gsbi2_uart_clk",
29724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.parent_names = (const char *[]){
29824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala				"gsbi2_uart_src",
29924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			},
30024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.num_parents = 1,
30124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_branch_ops,
30224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_SET_RATE_PARENT,
30324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
30424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
30524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
30624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
30724d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_rcg gsbi4_uart_src = {
30824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.ns_reg = 0x2a34,
30924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.md_reg = 0x2a30,
31024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.mn = {
31124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.mnctr_en_bit = 8,
31224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.mnctr_reset_bit = 7,
31324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.mnctr_mode_shift = 5,
31424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.n_val_shift = 16,
31524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.m_val_shift = 16,
31624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.width = 16,
31724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
31824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.p = {
31924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.pre_div_shift = 3,
32024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.pre_div_width = 2,
32124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
32224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.s = {
32324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.src_sel_shift = 0,
32424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.parent_map = gcc_pxo_pll8_map,
32524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
32624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.freq_tbl = clk_tbl_gsbi_uart,
32724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
32824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x2a34,
32924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(11),
33024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
33124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "gsbi4_uart_src",
33224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.parent_names = gcc_pxo_pll8,
33324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.num_parents = 2,
33424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_rcg_ops,
33524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_SET_PARENT_GATE,
33624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
33724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
33824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
33924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
34024d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_branch gsbi4_uart_clk = {
34124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_reg = 0x2fd0,
34224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_bit = 26,
34324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
34424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x2a34,
34524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(9),
34624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
34724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "gsbi4_uart_clk",
34824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.parent_names = (const char *[]){
34924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala				"gsbi4_uart_src",
35024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			},
35124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.num_parents = 1,
35224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_branch_ops,
35324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_SET_RATE_PARENT,
35424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
35524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
35624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
35724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
35824d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_rcg gsbi5_uart_src = {
35924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.ns_reg = 0x2a54,
36024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.md_reg = 0x2a50,
36124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.mn = {
36224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.mnctr_en_bit = 8,
36324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.mnctr_reset_bit = 7,
36424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.mnctr_mode_shift = 5,
36524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.n_val_shift = 16,
36624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.m_val_shift = 16,
36724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.width = 16,
36824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
36924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.p = {
37024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.pre_div_shift = 3,
37124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.pre_div_width = 2,
37224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
37324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.s = {
37424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.src_sel_shift = 0,
37524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.parent_map = gcc_pxo_pll8_map,
37624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
37724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.freq_tbl = clk_tbl_gsbi_uart,
37824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
37924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x2a54,
38024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(11),
38124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
38224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "gsbi5_uart_src",
38324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.parent_names = gcc_pxo_pll8,
38424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.num_parents = 2,
38524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_rcg_ops,
38624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_SET_PARENT_GATE,
38724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
38824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
38924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
39024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
39124d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_branch gsbi5_uart_clk = {
39224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_reg = 0x2fd0,
39324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_bit = 22,
39424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
39524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x2a54,
39624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(9),
39724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
39824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "gsbi5_uart_clk",
39924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.parent_names = (const char *[]){
40024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala				"gsbi5_uart_src",
40124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			},
40224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.num_parents = 1,
40324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_branch_ops,
40424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_SET_RATE_PARENT,
40524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
40624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
40724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
40824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
40924d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_rcg gsbi6_uart_src = {
41024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.ns_reg = 0x2a74,
41124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.md_reg = 0x2a70,
41224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.mn = {
41324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.mnctr_en_bit = 8,
41424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.mnctr_reset_bit = 7,
41524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.mnctr_mode_shift = 5,
41624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.n_val_shift = 16,
41724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.m_val_shift = 16,
41824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.width = 16,
41924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
42024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.p = {
42124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.pre_div_shift = 3,
42224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.pre_div_width = 2,
42324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
42424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.s = {
42524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.src_sel_shift = 0,
42624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.parent_map = gcc_pxo_pll8_map,
42724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
42824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.freq_tbl = clk_tbl_gsbi_uart,
42924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
43024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x2a74,
43124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(11),
43224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
43324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "gsbi6_uart_src",
43424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.parent_names = gcc_pxo_pll8,
43524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.num_parents = 2,
43624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_rcg_ops,
43724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_SET_PARENT_GATE,
43824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
43924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
44024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
44124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
44224d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_branch gsbi6_uart_clk = {
44324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_reg = 0x2fd0,
44424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_bit = 18,
44524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
44624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x2a74,
44724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(9),
44824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
44924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "gsbi6_uart_clk",
45024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.parent_names = (const char *[]){
45124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala				"gsbi6_uart_src",
45224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			},
45324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.num_parents = 1,
45424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_branch_ops,
45524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_SET_RATE_PARENT,
45624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
45724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
45824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
45924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
46024d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_rcg gsbi7_uart_src = {
46124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.ns_reg = 0x2a94,
46224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.md_reg = 0x2a90,
46324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.mn = {
46424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.mnctr_en_bit = 8,
46524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.mnctr_reset_bit = 7,
46624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.mnctr_mode_shift = 5,
46724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.n_val_shift = 16,
46824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.m_val_shift = 16,
46924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.width = 16,
47024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
47124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.p = {
47224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.pre_div_shift = 3,
47324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.pre_div_width = 2,
47424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
47524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.s = {
47624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.src_sel_shift = 0,
47724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.parent_map = gcc_pxo_pll8_map,
47824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
47924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.freq_tbl = clk_tbl_gsbi_uart,
48024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
48124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x2a94,
48224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(11),
48324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
48424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "gsbi7_uart_src",
48524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.parent_names = gcc_pxo_pll8,
48624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.num_parents = 2,
48724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_rcg_ops,
48824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_SET_PARENT_GATE,
48924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
49024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
49124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
49224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
49324d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_branch gsbi7_uart_clk = {
49424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_reg = 0x2fd0,
49524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_bit = 14,
49624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
49724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x2a94,
49824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(9),
49924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
50024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "gsbi7_uart_clk",
50124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.parent_names = (const char *[]){
50224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala				"gsbi7_uart_src",
50324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			},
50424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.num_parents = 1,
50524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_branch_ops,
50624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_SET_RATE_PARENT,
50724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
50824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
50924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
51024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
51124d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct freq_tbl clk_tbl_gsbi_qup[] = {
51224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	{  1100000, P_PXO,  1, 2, 49 },
51324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	{  5400000, P_PXO,  1, 1,  5 },
51424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	{ 10800000, P_PXO,  1, 2,  5 },
51524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	{ 15060000, P_PLL8, 1, 2, 51 },
51624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	{ 24000000, P_PLL8, 4, 1,  4 },
51724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	{ 25600000, P_PLL8, 1, 1, 15 },
51824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	{ 27000000, P_PXO,  1, 0,  0 },
51924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	{ 48000000, P_PLL8, 4, 1,  2 },
52024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	{ 51200000, P_PLL8, 1, 2, 15 },
52124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	{ }
52224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
52324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
52424d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_rcg gsbi1_qup_src = {
52524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.ns_reg = 0x29cc,
52624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.md_reg = 0x29c8,
52724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.mn = {
52824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.mnctr_en_bit = 8,
52924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.mnctr_reset_bit = 7,
53024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.mnctr_mode_shift = 5,
53124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.n_val_shift = 16,
53224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.m_val_shift = 16,
53324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.width = 8,
53424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
53524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.p = {
53624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.pre_div_shift = 3,
53724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.pre_div_width = 2,
53824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
53924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.s = {
54024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.src_sel_shift = 0,
54124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.parent_map = gcc_pxo_pll8_map,
54224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
54324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.freq_tbl = clk_tbl_gsbi_qup,
54424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
54524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x29cc,
54624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(11),
54724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
54824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "gsbi1_qup_src",
54924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.parent_names = gcc_pxo_pll8,
55024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.num_parents = 2,
55124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_rcg_ops,
55224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_SET_PARENT_GATE,
55324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
55424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
55524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
55624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
55724d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_branch gsbi1_qup_clk = {
55824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_reg = 0x2fcc,
55924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_bit = 11,
56024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
56124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x29cc,
56224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(9),
56324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
56424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "gsbi1_qup_clk",
56524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.parent_names = (const char *[]){ "gsbi1_qup_src" },
56624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.num_parents = 1,
56724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_branch_ops,
56824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_SET_RATE_PARENT,
56924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
57024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
57124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
57224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
57324d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_rcg gsbi2_qup_src = {
57424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.ns_reg = 0x29ec,
57524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.md_reg = 0x29e8,
57624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.mn = {
57724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.mnctr_en_bit = 8,
57824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.mnctr_reset_bit = 7,
57924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.mnctr_mode_shift = 5,
58024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.n_val_shift = 16,
58124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.m_val_shift = 16,
58224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.width = 8,
58324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
58424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.p = {
58524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.pre_div_shift = 3,
58624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.pre_div_width = 2,
58724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
58824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.s = {
58924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.src_sel_shift = 0,
59024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.parent_map = gcc_pxo_pll8_map,
59124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
59224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.freq_tbl = clk_tbl_gsbi_qup,
59324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
59424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x29ec,
59524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(11),
59624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
59724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "gsbi2_qup_src",
59824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.parent_names = gcc_pxo_pll8,
59924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.num_parents = 2,
60024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_rcg_ops,
60124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_SET_PARENT_GATE,
60224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
60324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
60424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
60524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
60624d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_branch gsbi2_qup_clk = {
60724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_reg = 0x2fcc,
60824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_bit = 6,
60924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
61024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x29ec,
61124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(9),
61224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
61324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "gsbi2_qup_clk",
61424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.parent_names = (const char *[]){ "gsbi2_qup_src" },
61524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.num_parents = 1,
61624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_branch_ops,
61724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_SET_RATE_PARENT,
61824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
61924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
62024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
62124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
62224d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_rcg gsbi4_qup_src = {
62324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.ns_reg = 0x2a2c,
62424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.md_reg = 0x2a28,
62524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.mn = {
62624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.mnctr_en_bit = 8,
62724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.mnctr_reset_bit = 7,
62824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.mnctr_mode_shift = 5,
62924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.n_val_shift = 16,
63024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.m_val_shift = 16,
63124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.width = 8,
63224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
63324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.p = {
63424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.pre_div_shift = 3,
63524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.pre_div_width = 2,
63624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
63724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.s = {
63824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.src_sel_shift = 0,
63924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.parent_map = gcc_pxo_pll8_map,
64024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
64124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.freq_tbl = clk_tbl_gsbi_qup,
64224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
64324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x2a2c,
64424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(11),
64524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
64624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "gsbi4_qup_src",
64724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.parent_names = gcc_pxo_pll8,
64824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.num_parents = 2,
64924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_rcg_ops,
65024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_SET_PARENT_GATE,
65124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
65224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
65324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
65424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
65524d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_branch gsbi4_qup_clk = {
65624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_reg = 0x2fd0,
65724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_bit = 24,
65824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
65924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x2a2c,
66024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(9),
66124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
66224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "gsbi4_qup_clk",
66324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.parent_names = (const char *[]){ "gsbi4_qup_src" },
66424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.num_parents = 1,
66524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_branch_ops,
66624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_SET_RATE_PARENT,
66724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
66824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
66924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
67024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
67124d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_rcg gsbi5_qup_src = {
67224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.ns_reg = 0x2a4c,
67324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.md_reg = 0x2a48,
67424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.mn = {
67524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.mnctr_en_bit = 8,
67624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.mnctr_reset_bit = 7,
67724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.mnctr_mode_shift = 5,
67824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.n_val_shift = 16,
67924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.m_val_shift = 16,
68024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.width = 8,
68124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
68224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.p = {
68324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.pre_div_shift = 3,
68424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.pre_div_width = 2,
68524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
68624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.s = {
68724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.src_sel_shift = 0,
68824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.parent_map = gcc_pxo_pll8_map,
68924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
69024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.freq_tbl = clk_tbl_gsbi_qup,
69124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
69224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x2a4c,
69324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(11),
69424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
69524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "gsbi5_qup_src",
69624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.parent_names = gcc_pxo_pll8,
69724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.num_parents = 2,
69824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_rcg_ops,
69924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_SET_PARENT_GATE,
70024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
70124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
70224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
70324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
70424d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_branch gsbi5_qup_clk = {
70524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_reg = 0x2fd0,
70624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_bit = 20,
70724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
70824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x2a4c,
70924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(9),
71024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
71124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "gsbi5_qup_clk",
71224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.parent_names = (const char *[]){ "gsbi5_qup_src" },
71324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.num_parents = 1,
71424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_branch_ops,
71524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_SET_RATE_PARENT,
71624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
71724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
71824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
71924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
72024d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_rcg gsbi6_qup_src = {
72124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.ns_reg = 0x2a6c,
72224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.md_reg = 0x2a68,
72324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.mn = {
72424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.mnctr_en_bit = 8,
72524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.mnctr_reset_bit = 7,
72624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.mnctr_mode_shift = 5,
72724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.n_val_shift = 16,
72824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.m_val_shift = 16,
72924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.width = 8,
73024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
73124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.p = {
73224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.pre_div_shift = 3,
73324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.pre_div_width = 2,
73424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
73524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.s = {
73624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.src_sel_shift = 0,
73724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.parent_map = gcc_pxo_pll8_map,
73824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
73924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.freq_tbl = clk_tbl_gsbi_qup,
74024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
74124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x2a6c,
74224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(11),
74324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
74424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "gsbi6_qup_src",
74524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.parent_names = gcc_pxo_pll8,
74624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.num_parents = 2,
74724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_rcg_ops,
74824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_SET_PARENT_GATE,
74924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
75024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
75124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
75224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
75324d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_branch gsbi6_qup_clk = {
75424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_reg = 0x2fd0,
75524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_bit = 16,
75624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
75724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x2a6c,
75824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(9),
75924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
76024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "gsbi6_qup_clk",
76124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.parent_names = (const char *[]){ "gsbi6_qup_src" },
76224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.num_parents = 1,
76324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_branch_ops,
76424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_SET_RATE_PARENT,
76524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
76624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
76724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
76824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
76924d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_rcg gsbi7_qup_src = {
77024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.ns_reg = 0x2a8c,
77124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.md_reg = 0x2a88,
77224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.mn = {
77324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.mnctr_en_bit = 8,
77424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.mnctr_reset_bit = 7,
77524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.mnctr_mode_shift = 5,
77624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.n_val_shift = 16,
77724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.m_val_shift = 16,
77824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.width = 8,
77924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
78024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.p = {
78124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.pre_div_shift = 3,
78224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.pre_div_width = 2,
78324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
78424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.s = {
78524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.src_sel_shift = 0,
78624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.parent_map = gcc_pxo_pll8_map,
78724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
78824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.freq_tbl = clk_tbl_gsbi_qup,
78924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
79024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x2a8c,
79124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(11),
79224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
79324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "gsbi7_qup_src",
79424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.parent_names = gcc_pxo_pll8,
79524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.num_parents = 2,
79624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_rcg_ops,
79724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_SET_PARENT_GATE,
79824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
79924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
80024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
80124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
80224d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_branch gsbi7_qup_clk = {
80324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_reg = 0x2fd0,
80424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_bit = 12,
80524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
80624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x2a8c,
80724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(9),
80824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
80924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "gsbi7_qup_clk",
81024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.parent_names = (const char *[]){ "gsbi7_qup_src" },
81124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.num_parents = 1,
81224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_branch_ops,
81324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_SET_RATE_PARENT,
81424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
81524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
81624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
81724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
81824d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_branch gsbi1_h_clk = {
81924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.hwcg_reg = 0x29c0,
82024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.hwcg_bit = 6,
82124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_reg = 0x2fcc,
82224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_bit = 13,
82324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
82424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x29c0,
82524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(4),
82624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
82724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "gsbi1_h_clk",
82824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_branch_ops,
82924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_IS_ROOT,
83024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
83124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
83224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
83324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
83424d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_branch gsbi2_h_clk = {
83524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.hwcg_reg = 0x29e0,
83624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.hwcg_bit = 6,
83724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_reg = 0x2fcc,
83824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_bit = 9,
83924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
84024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x29e0,
84124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(4),
84224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
84324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "gsbi2_h_clk",
84424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_branch_ops,
84524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_IS_ROOT,
84624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
84724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
84824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
84924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
85024d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_branch gsbi4_h_clk = {
85124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.hwcg_reg = 0x2a20,
85224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.hwcg_bit = 6,
85324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_reg = 0x2fd0,
85424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_bit = 27,
85524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
85624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x2a20,
85724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(4),
85824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
85924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "gsbi4_h_clk",
86024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_branch_ops,
86124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_IS_ROOT,
86224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
86324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
86424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
86524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
86624d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_branch gsbi5_h_clk = {
86724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.hwcg_reg = 0x2a40,
86824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.hwcg_bit = 6,
86924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_reg = 0x2fd0,
87024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_bit = 23,
87124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
87224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x2a40,
87324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(4),
87424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
87524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "gsbi5_h_clk",
87624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_branch_ops,
87724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_IS_ROOT,
87824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
87924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
88024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
88124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
88224d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_branch gsbi6_h_clk = {
88324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.hwcg_reg = 0x2a60,
88424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.hwcg_bit = 6,
88524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_reg = 0x2fd0,
88624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_bit = 19,
88724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
88824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x2a60,
88924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(4),
89024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
89124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "gsbi6_h_clk",
89224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_branch_ops,
89324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_IS_ROOT,
89424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
89524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
89624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
89724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
89824d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_branch gsbi7_h_clk = {
89924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.hwcg_reg = 0x2a80,
90024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.hwcg_bit = 6,
90124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_reg = 0x2fd0,
90224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_bit = 15,
90324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
90424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x2a80,
90524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(4),
90624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
90724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "gsbi7_h_clk",
90824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_branch_ops,
90924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_IS_ROOT,
91024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
91124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
91224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
91324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
91424d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic const struct freq_tbl clk_tbl_gp[] = {
91524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	{ 12500000, P_PXO,  2, 0, 0 },
91624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	{ 25000000, P_PXO,  1, 0, 0 },
91724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	{ 64000000, P_PLL8, 2, 1, 3 },
91824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	{ 76800000, P_PLL8, 1, 1, 5 },
91924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	{ 96000000, P_PLL8, 4, 0, 0 },
92024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	{ 128000000, P_PLL8, 3, 0, 0 },
92124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	{ 192000000, P_PLL8, 2, 0, 0 },
92224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	{ }
92324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
92424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
92524d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_rcg gp0_src = {
92624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.ns_reg = 0x2d24,
92724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.md_reg = 0x2d00,
92824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.mn = {
92924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.mnctr_en_bit = 8,
93024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.mnctr_reset_bit = 7,
93124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.mnctr_mode_shift = 5,
93224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.n_val_shift = 16,
93324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.m_val_shift = 16,
93424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.width = 8,
93524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
93624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.p = {
93724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.pre_div_shift = 3,
93824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.pre_div_width = 2,
93924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
94024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.s = {
94124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.src_sel_shift = 0,
94224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.parent_map = gcc_pxo_pll8_cxo_map,
94324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
94424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.freq_tbl = clk_tbl_gp,
94524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
94624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x2d24,
94724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(11),
94824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
94924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "gp0_src",
95024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.parent_names = gcc_pxo_pll8_cxo,
95124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.num_parents = 3,
95224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_rcg_ops,
95324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_SET_PARENT_GATE,
95424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
95524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	}
95624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
95724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
95824d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_branch gp0_clk = {
95924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_reg = 0x2fd8,
96024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_bit = 7,
96124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
96224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x2d24,
96324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(9),
96424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
96524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "gp0_clk",
96624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.parent_names = (const char *[]){ "gp0_src" },
96724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.num_parents = 1,
96824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_branch_ops,
96924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_SET_RATE_PARENT,
97024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
97124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
97224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
97324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
97424d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_rcg gp1_src = {
97524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.ns_reg = 0x2d44,
97624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.md_reg = 0x2d40,
97724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.mn = {
97824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.mnctr_en_bit = 8,
97924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.mnctr_reset_bit = 7,
98024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.mnctr_mode_shift = 5,
98124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.n_val_shift = 16,
98224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.m_val_shift = 16,
98324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.width = 8,
98424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
98524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.p = {
98624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.pre_div_shift = 3,
98724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.pre_div_width = 2,
98824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
98924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.s = {
99024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.src_sel_shift = 0,
99124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.parent_map = gcc_pxo_pll8_cxo_map,
99224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
99324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.freq_tbl = clk_tbl_gp,
99424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
99524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x2d44,
99624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(11),
99724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
99824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "gp1_src",
99924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.parent_names = gcc_pxo_pll8_cxo,
100024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.num_parents = 3,
100124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_rcg_ops,
100224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_SET_RATE_GATE,
100324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
100424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	}
100524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
100624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
100724d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_branch gp1_clk = {
100824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_reg = 0x2fd8,
100924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_bit = 6,
101024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
101124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x2d44,
101224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(9),
101324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
101424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "gp1_clk",
101524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.parent_names = (const char *[]){ "gp1_src" },
101624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.num_parents = 1,
101724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_branch_ops,
101824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_SET_RATE_PARENT,
101924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
102024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
102124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
102224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
102324d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_rcg gp2_src = {
102424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.ns_reg = 0x2d64,
102524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.md_reg = 0x2d60,
102624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.mn = {
102724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.mnctr_en_bit = 8,
102824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.mnctr_reset_bit = 7,
102924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.mnctr_mode_shift = 5,
103024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.n_val_shift = 16,
103124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.m_val_shift = 16,
103224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.width = 8,
103324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
103424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.p = {
103524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.pre_div_shift = 3,
103624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.pre_div_width = 2,
103724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
103824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.s = {
103924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.src_sel_shift = 0,
104024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.parent_map = gcc_pxo_pll8_cxo_map,
104124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
104224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.freq_tbl = clk_tbl_gp,
104324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
104424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x2d64,
104524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(11),
104624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
104724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "gp2_src",
104824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.parent_names = gcc_pxo_pll8_cxo,
104924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.num_parents = 3,
105024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_rcg_ops,
105124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_SET_RATE_GATE,
105224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
105324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	}
105424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
105524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
105624d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_branch gp2_clk = {
105724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_reg = 0x2fd8,
105824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_bit = 5,
105924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
106024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x2d64,
106124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(9),
106224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
106324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "gp2_clk",
106424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.parent_names = (const char *[]){ "gp2_src" },
106524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.num_parents = 1,
106624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_branch_ops,
106724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_SET_RATE_PARENT,
106824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
106924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
107024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
107124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
107224d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_branch pmem_clk = {
107324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.hwcg_reg = 0x25a0,
107424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.hwcg_bit = 6,
107524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_reg = 0x2fc8,
107624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_bit = 20,
107724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
107824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x25a0,
107924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(4),
108024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
108124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "pmem_clk",
108224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_branch_ops,
108324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_IS_ROOT,
108424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
108524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
108624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
108724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
108824d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_rcg prng_src = {
108924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.ns_reg = 0x2e80,
109024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.p = {
109124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.pre_div_shift = 3,
109224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.pre_div_width = 4,
109324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
109424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.s = {
109524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.src_sel_shift = 0,
109624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.parent_map = gcc_pxo_pll8_map,
109724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
109824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
109924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
110024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "prng_src",
110124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.parent_names = gcc_pxo_pll8,
110224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.num_parents = 2,
110324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_rcg_ops,
110424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
110524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
110624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
110724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
110824d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_branch prng_clk = {
110924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_reg = 0x2fd8,
111024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_check = BRANCH_HALT_VOTED,
111124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_bit = 10,
111224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
111324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x3080,
111424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(10),
111524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
111624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "prng_clk",
111724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.parent_names = (const char *[]){ "prng_src" },
111824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.num_parents = 1,
111924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_branch_ops,
112024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
112124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
112224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
112324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
112424d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic const struct freq_tbl clk_tbl_sdc[] = {
1125d8210e28e5807091f38d064142223e8787cc9883Stephen Boyd	{    200000, P_PXO,   2, 2, 125 },
112624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	{    400000, P_PLL8,  4, 1, 240 },
112724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	{  16000000, P_PLL8,  4, 1,   6 },
112824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	{  17070000, P_PLL8,  1, 2,  45 },
112924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	{  20210000, P_PLL8,  1, 1,  19 },
113024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	{  24000000, P_PLL8,  4, 1,   4 },
113124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	{  48000000, P_PLL8,  4, 1,   2 },
113224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	{  64000000, P_PLL8,  3, 1,   2 },
113324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	{  96000000, P_PLL8,  4, 0,   0 },
113424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	{ 192000000, P_PLL8,  2, 0,   0 },
113524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	{ }
113624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
113724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
113824d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_rcg sdc1_src = {
113924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.ns_reg = 0x282c,
114024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.md_reg = 0x2828,
114124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.mn = {
114224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.mnctr_en_bit = 8,
114324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.mnctr_reset_bit = 7,
114424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.mnctr_mode_shift = 5,
114524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.n_val_shift = 16,
114624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.m_val_shift = 16,
114724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.width = 8,
114824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
114924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.p = {
115024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.pre_div_shift = 3,
115124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.pre_div_width = 2,
115224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
115324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.s = {
115424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.src_sel_shift = 0,
115524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.parent_map = gcc_pxo_pll8_map,
115624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
115724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.freq_tbl = clk_tbl_sdc,
115824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
115924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x282c,
116024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(11),
116124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
116224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "sdc1_src",
116324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.parent_names = gcc_pxo_pll8,
116424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.num_parents = 2,
116524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_rcg_ops,
116624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_SET_RATE_GATE,
116724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
116824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	}
116924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
117024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
117124d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_branch sdc1_clk = {
117224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_reg = 0x2fc8,
117324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_bit = 6,
117424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
117524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x282c,
117624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(9),
117724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
117824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "sdc1_clk",
117924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.parent_names = (const char *[]){ "sdc1_src" },
118024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.num_parents = 1,
118124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_branch_ops,
118224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_SET_RATE_PARENT,
118324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
118424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
118524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
118624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
118724d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_rcg sdc3_src = {
118824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.ns_reg = 0x286c,
118924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.md_reg = 0x2868,
119024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.mn = {
119124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.mnctr_en_bit = 8,
119224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.mnctr_reset_bit = 7,
119324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.mnctr_mode_shift = 5,
119424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.n_val_shift = 16,
119524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.m_val_shift = 16,
119624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.width = 8,
119724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
119824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.p = {
119924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.pre_div_shift = 3,
120024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.pre_div_width = 2,
120124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
120224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.s = {
120324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.src_sel_shift = 0,
120424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.parent_map = gcc_pxo_pll8_map,
120524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
120624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.freq_tbl = clk_tbl_sdc,
120724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
120824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x286c,
120924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(11),
121024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
121124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "sdc3_src",
121224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.parent_names = gcc_pxo_pll8,
121324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.num_parents = 2,
121424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_rcg_ops,
121524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_SET_RATE_GATE,
121624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
121724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	}
121824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
121924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
122024d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_branch sdc3_clk = {
122124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_reg = 0x2fc8,
122224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_bit = 4,
122324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
122424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x286c,
122524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(9),
122624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
122724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "sdc3_clk",
122824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.parent_names = (const char *[]){ "sdc3_src" },
122924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.num_parents = 1,
123024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_branch_ops,
123124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_SET_RATE_PARENT,
123224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
123324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
123424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
123524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
123624d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_branch sdc1_h_clk = {
123724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.hwcg_reg = 0x2820,
123824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.hwcg_bit = 6,
123924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_reg = 0x2fc8,
124024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_bit = 11,
124124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
124224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x2820,
124324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(4),
124424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
124524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "sdc1_h_clk",
124624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_branch_ops,
124724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_IS_ROOT,
124824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
124924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
125024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
125124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
125224d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_branch sdc3_h_clk = {
125324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.hwcg_reg = 0x2860,
125424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.hwcg_bit = 6,
125524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_reg = 0x2fc8,
125624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_bit = 9,
125724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
125824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x2860,
125924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(4),
126024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
126124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "sdc3_h_clk",
126224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_branch_ops,
126324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_IS_ROOT,
126424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
126524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
126624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
126724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
126824d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic const struct freq_tbl clk_tbl_tsif_ref[] = {
126924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	{ 105000, P_PXO,  1, 1, 256 },
127024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	{ }
127124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
127224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
127324d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_rcg tsif_ref_src = {
127424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.ns_reg = 0x2710,
127524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.md_reg = 0x270c,
127624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.mn = {
127724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.mnctr_en_bit = 8,
127824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.mnctr_reset_bit = 7,
127924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.mnctr_mode_shift = 5,
128024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.n_val_shift = 16,
128124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.m_val_shift = 16,
128224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.width = 16,
128324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
128424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.p = {
128524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.pre_div_shift = 3,
128624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.pre_div_width = 2,
128724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
128824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.s = {
128924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.src_sel_shift = 0,
129024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.parent_map = gcc_pxo_pll8_map,
129124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
129224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.freq_tbl = clk_tbl_tsif_ref,
129324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
129424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x2710,
129524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(11),
129624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
129724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "tsif_ref_src",
129824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.parent_names = gcc_pxo_pll8,
129924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.num_parents = 2,
130024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_rcg_ops,
130124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_SET_RATE_GATE,
130224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
130324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	}
130424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
130524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
130624d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_branch tsif_ref_clk = {
130724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_reg = 0x2fd4,
130824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_bit = 5,
130924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
131024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x2710,
131124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(9),
131224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
131324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "tsif_ref_clk",
131424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.parent_names = (const char *[]){ "tsif_ref_src" },
131524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.num_parents = 1,
131624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_branch_ops,
131724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_SET_RATE_PARENT,
131824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
131924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
132024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
132124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
132224d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_branch tsif_h_clk = {
132324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.hwcg_reg = 0x2700,
132424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.hwcg_bit = 6,
132524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_reg = 0x2fd4,
132624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_bit = 7,
132724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
132824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x2700,
132924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(4),
133024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
133124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "tsif_h_clk",
133224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_branch_ops,
133324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_IS_ROOT,
133424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
133524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
133624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
133724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
133824d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_branch dma_bam_h_clk = {
133924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.hwcg_reg = 0x25c0,
134024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.hwcg_bit = 6,
134124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_reg = 0x2fc8,
134224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_bit = 12,
134324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
134424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x25c0,
134524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(4),
134624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
134724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "dma_bam_h_clk",
134824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_branch_ops,
134924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_IS_ROOT,
135024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
135124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
135224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
135324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
135424d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_branch adm0_clk = {
135524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_reg = 0x2fdc,
135624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_check = BRANCH_HALT_VOTED,
135724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_bit = 12,
135824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
135924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x3080,
136024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(2),
136124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
136224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "adm0_clk",
136324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_branch_ops,
136424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_IS_ROOT,
136524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
136624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
136724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
136824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
136924d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_branch adm0_pbus_clk = {
137024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.hwcg_reg = 0x2208,
137124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.hwcg_bit = 6,
137224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_reg = 0x2fdc,
137324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_check = BRANCH_HALT_VOTED,
137424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_bit = 11,
137524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
137624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x3080,
137724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(3),
137824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
137924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "adm0_pbus_clk",
138024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_branch_ops,
138124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_IS_ROOT,
138224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
138324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
138424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
138524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
138624d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_branch pmic_arb0_h_clk = {
138724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_reg = 0x2fd8,
138824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_check = BRANCH_HALT_VOTED,
138924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_bit = 22,
139024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
139124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x3080,
139224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(8),
139324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
139424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "pmic_arb0_h_clk",
139524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_branch_ops,
139624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_IS_ROOT,
139724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
139824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
139924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
140024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
140124d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_branch pmic_arb1_h_clk = {
140224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_reg = 0x2fd8,
140324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_check = BRANCH_HALT_VOTED,
140424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_bit = 21,
140524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
140624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x3080,
140724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(9),
140824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
140924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "pmic_arb1_h_clk",
141024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_branch_ops,
141124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_IS_ROOT,
141224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
141324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
141424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
141524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
141624d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_branch pmic_ssbi2_clk = {
141724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_reg = 0x2fd8,
141824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_check = BRANCH_HALT_VOTED,
141924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_bit = 23,
142024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
142124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x3080,
142224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(7),
142324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
142424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "pmic_ssbi2_clk",
142524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_branch_ops,
142624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_IS_ROOT,
142724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
142824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
142924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
143024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
143124d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_branch rpm_msg_ram_h_clk = {
143224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.hwcg_reg = 0x27e0,
143324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.hwcg_bit = 6,
143424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_reg = 0x2fd8,
143524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_check = BRANCH_HALT_VOTED,
143624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_bit = 12,
143724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
143824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x3080,
143924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(6),
144024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
144124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "rpm_msg_ram_h_clk",
144224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_branch_ops,
144324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_IS_ROOT,
144424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
144524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
144624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
144724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
144824d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic const struct freq_tbl clk_tbl_pcie_ref[] = {
144924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	{ 100000000, P_PLL3,  12, 0, 0 },
145024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	{ }
145124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
145224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
145324d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_rcg pcie_ref_src = {
145424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.ns_reg = 0x3860,
145524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.p = {
145624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.pre_div_shift = 3,
145724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.pre_div_width = 4,
145824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
145924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.s = {
146024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.src_sel_shift = 0,
146124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.parent_map = gcc_pxo_pll3_map,
146224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
146324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.freq_tbl = clk_tbl_pcie_ref,
146424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
146524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x3860,
146624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(11),
146724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
146824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "pcie_ref_src",
146924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.parent_names = gcc_pxo_pll3,
147024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.num_parents = 2,
147124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_rcg_ops,
147224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_SET_RATE_GATE,
147324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
147424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
147524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
147624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
147724d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_branch pcie_ref_src_clk = {
147824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_reg = 0x2fdc,
147924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_bit = 30,
148024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
148124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x3860,
148224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(9),
148324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
148424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "pcie_ref_src_clk",
148524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.parent_names = (const char *[]){ "pcie_ref_src" },
148624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.num_parents = 1,
148724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_branch_ops,
148824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_SET_RATE_PARENT,
148924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
149024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
149124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
149224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
149324d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_branch pcie_a_clk = {
149424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_reg = 0x2fc0,
149524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_bit = 13,
149624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
149724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x22c0,
149824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(4),
149924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
150024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "pcie_a_clk",
150124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_branch_ops,
150224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_IS_ROOT,
150324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
150424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
150524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
150624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
150724d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_branch pcie_aux_clk = {
150824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_reg = 0x2fdc,
150924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_bit = 31,
151024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
151124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x22c8,
151224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(4),
151324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
151424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "pcie_aux_clk",
151524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_branch_ops,
151624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_IS_ROOT,
151724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
151824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
151924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
152024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
152124d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_branch pcie_h_clk = {
152224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_reg = 0x2fd4,
152324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_bit = 8,
152424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
152524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x22cc,
152624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(4),
152724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
152824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "pcie_h_clk",
152924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_branch_ops,
153024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_IS_ROOT,
153124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
153224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
153324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
153424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
153524d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_branch pcie_phy_clk = {
153624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_reg = 0x2fdc,
153724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_bit = 29,
153824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
153924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x22d0,
154024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(4),
154124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
154224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "pcie_phy_clk",
154324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_branch_ops,
154424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_IS_ROOT,
154524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
154624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
154724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
154824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
154924d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_rcg pcie1_ref_src = {
155024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.ns_reg = 0x3aa0,
155124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.p = {
155224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.pre_div_shift = 3,
155324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.pre_div_width = 4,
155424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
155524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.s = {
155624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.src_sel_shift = 0,
155724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.parent_map = gcc_pxo_pll3_map,
155824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
155924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.freq_tbl = clk_tbl_pcie_ref,
156024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
156124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x3aa0,
156224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(11),
156324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
156424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "pcie1_ref_src",
156524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.parent_names = gcc_pxo_pll3,
156624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.num_parents = 2,
156724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_rcg_ops,
156824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_SET_RATE_GATE,
156924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
157024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
157124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
157224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
157324d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_branch pcie1_ref_src_clk = {
157424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_reg = 0x2fdc,
157524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_bit = 27,
157624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
157724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x3aa0,
157824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(9),
157924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
158024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "pcie1_ref_src_clk",
158124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.parent_names = (const char *[]){ "pcie1_ref_src" },
158224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.num_parents = 1,
158324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_branch_ops,
158424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_SET_RATE_PARENT,
158524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
158624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
158724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
158824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
158924d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_branch pcie1_a_clk = {
159024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_reg = 0x2fc0,
159124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_bit = 10,
159224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
159324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x3a80,
159424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(4),
159524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
159624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "pcie1_a_clk",
159724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_branch_ops,
159824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_IS_ROOT,
159924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
160024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
160124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
160224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
160324d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_branch pcie1_aux_clk = {
160424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_reg = 0x2fdc,
160524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_bit = 28,
160624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
160724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x3a88,
160824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(4),
160924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
161024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "pcie1_aux_clk",
161124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_branch_ops,
161224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_IS_ROOT,
161324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
161424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
161524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
161624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
161724d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_branch pcie1_h_clk = {
161824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_reg = 0x2fd4,
161924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_bit = 9,
162024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
162124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x3a8c,
162224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(4),
162324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
162424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "pcie1_h_clk",
162524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_branch_ops,
162624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_IS_ROOT,
162724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
162824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
162924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
163024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
163124d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_branch pcie1_phy_clk = {
163224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_reg = 0x2fdc,
163324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_bit = 26,
163424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
163524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x3a90,
163624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(4),
163724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
163824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "pcie1_phy_clk",
163924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_branch_ops,
164024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_IS_ROOT,
164124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
164224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
164324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
164424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
164524d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_rcg pcie2_ref_src = {
164624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.ns_reg = 0x3ae0,
164724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.p = {
164824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.pre_div_shift = 3,
164924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.pre_div_width = 4,
165024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
165124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.s = {
165224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.src_sel_shift = 0,
165324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.parent_map = gcc_pxo_pll3_map,
165424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
165524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.freq_tbl = clk_tbl_pcie_ref,
165624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
165724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x3ae0,
165824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(11),
165924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
166024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "pcie2_ref_src",
166124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.parent_names = gcc_pxo_pll3,
166224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.num_parents = 2,
166324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_rcg_ops,
166424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_SET_RATE_GATE,
166524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
166624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
166724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
166824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
166924d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_branch pcie2_ref_src_clk = {
167024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_reg = 0x2fdc,
167124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_bit = 24,
167224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
167324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x3ae0,
167424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(9),
167524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
167624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "pcie2_ref_src_clk",
167724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.parent_names = (const char *[]){ "pcie2_ref_src" },
167824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.num_parents = 1,
167924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_branch_ops,
168024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_SET_RATE_PARENT,
168124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
168224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
168324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
168424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
168524d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_branch pcie2_a_clk = {
168624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_reg = 0x2fc0,
168724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_bit = 9,
168824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
168924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x3ac0,
169024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(4),
169124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
169224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "pcie2_a_clk",
169324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_branch_ops,
169424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_IS_ROOT,
169524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
169624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
169724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
169824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
169924d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_branch pcie2_aux_clk = {
170024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_reg = 0x2fdc,
170124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_bit = 25,
170224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
170324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x3ac8,
170424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(4),
170524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
170624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "pcie2_aux_clk",
170724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_branch_ops,
170824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_IS_ROOT,
170924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
171024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
171124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
171224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
171324d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_branch pcie2_h_clk = {
171424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_reg = 0x2fd4,
171524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_bit = 10,
171624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
171724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x3acc,
171824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(4),
171924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
172024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "pcie2_h_clk",
172124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_branch_ops,
172224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_IS_ROOT,
172324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
172424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
172524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
172624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
172724d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_branch pcie2_phy_clk = {
172824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_reg = 0x2fdc,
172924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_bit = 23,
173024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
173124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x3ad0,
173224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(4),
173324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
173424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "pcie2_phy_clk",
173524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_branch_ops,
173624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_IS_ROOT,
173724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
173824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
173924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
174024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
174124d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic const struct freq_tbl clk_tbl_sata_ref[] = {
174224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	{ 100000000, P_PLL3,  12, 0, 0 },
174324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	{ }
174424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
174524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
174624d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_rcg sata_ref_src = {
174724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.ns_reg = 0x2c08,
174824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.p = {
174924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.pre_div_shift = 3,
175024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.pre_div_width = 4,
175124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
175224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.s = {
175324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.src_sel_shift = 0,
175424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.parent_map = gcc_pxo_pll3_sata_map,
175524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
175624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.freq_tbl = clk_tbl_sata_ref,
175724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
175824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x2c08,
175924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(7),
176024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
176124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "sata_ref_src",
176224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.parent_names = gcc_pxo_pll3,
176324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.num_parents = 2,
176424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_rcg_ops,
176524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_SET_RATE_GATE,
176624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
176724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
176824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
176924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
177024d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_branch sata_rxoob_clk = {
177124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_reg = 0x2fdc,
177224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_bit = 20,
177324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
177424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x2c0c,
177524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(4),
177624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
177724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "sata_rxoob_clk",
177824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.parent_names = (const char *[]){ "sata_ref_src" },
177924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.num_parents = 1,
178024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_branch_ops,
178124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_SET_RATE_PARENT,
178224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
178324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
178424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
178524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
178624d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_branch sata_pmalive_clk = {
178724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_reg = 0x2fdc,
178824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_bit = 19,
178924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
179024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x2c10,
179124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(4),
179224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
179324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "sata_pmalive_clk",
179424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.parent_names = (const char *[]){ "sata_ref_src" },
179524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.num_parents = 1,
179624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_branch_ops,
179724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_SET_RATE_PARENT,
179824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
179924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
180024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
180124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
180224d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_branch sata_phy_ref_clk = {
180324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_reg = 0x2fdc,
180424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_bit = 18,
180524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
180624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x2c14,
180724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(4),
180824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
180924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "sata_phy_ref_clk",
181024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.parent_names = (const char *[]){ "pxo" },
181124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.num_parents = 1,
181224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_branch_ops,
181324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
181424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
181524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
181624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
181724d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_branch sata_a_clk = {
181824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_reg = 0x2fc0,
181924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_bit = 12,
182024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
182124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x2c20,
182224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(4),
182324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
182424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "sata_a_clk",
182524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_branch_ops,
182624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_IS_ROOT,
182724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
182824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
182924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
183024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
183124d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_branch sata_h_clk = {
183224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_reg = 0x2fdc,
183324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_bit = 21,
183424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
183524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x2c00,
183624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(4),
183724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
183824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "sata_h_clk",
183924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_branch_ops,
184024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_IS_ROOT,
184124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
184224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
184324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
184424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
184524d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_branch sfab_sata_s_h_clk = {
184624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_reg = 0x2fc4,
184724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_bit = 14,
184824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
184924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x2480,
185024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(4),
185124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
185224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "sfab_sata_s_h_clk",
185324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_branch_ops,
185424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_IS_ROOT,
185524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
185624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
185724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
185824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
185924d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_branch sata_phy_cfg_clk = {
186024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_reg = 0x2fcc,
186124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_bit = 14,
186224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
186324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x2c40,
186424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(4),
186524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
186624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "sata_phy_cfg_clk",
186724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_branch_ops,
186824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_IS_ROOT,
186924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
187024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
187124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
187224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
187324d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic const struct freq_tbl clk_tbl_usb30_master[] = {
187424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	{ 125000000, P_PLL0,  1, 5, 32 },
187524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	{ }
187624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
187724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
187824d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_rcg usb30_master_clk_src = {
187924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.ns_reg = 0x3b2c,
188024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.md_reg = 0x3b28,
188124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.mn = {
188224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.mnctr_en_bit = 8,
188324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.mnctr_reset_bit = 7,
188424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.mnctr_mode_shift = 5,
188524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.n_val_shift = 16,
188624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.m_val_shift = 16,
188724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.width = 8,
188824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
188924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.p = {
189024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.pre_div_shift = 3,
189124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.pre_div_width = 2,
189224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
189324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.s = {
189424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.src_sel_shift = 0,
189524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.parent_map = gcc_pxo_pll8_pll0,
189624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
189724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.freq_tbl = clk_tbl_usb30_master,
189824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
189924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x3b2c,
190024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(11),
190124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
190224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "usb30_master_ref_src",
190324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.parent_names = gcc_pxo_pll8_pll0_map,
190424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.num_parents = 3,
190524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_rcg_ops,
190624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_SET_RATE_GATE,
190724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
190824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
190924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
191024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
191124d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_branch usb30_0_branch_clk = {
191224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_reg = 0x2fc4,
191324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_bit = 22,
191424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
191524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x3b24,
191624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(4),
191724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
191824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "usb30_0_branch_clk",
191924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.parent_names = (const char *[]){ "usb30_master_ref_src", },
192024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.num_parents = 1,
192124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_branch_ops,
192224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_SET_RATE_PARENT,
192324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
192424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
192524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
192624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
192724d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_branch usb30_1_branch_clk = {
192824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_reg = 0x2fc4,
192924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_bit = 17,
193024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
193124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x3b34,
193224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(4),
193324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
193424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "usb30_1_branch_clk",
193524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.parent_names = (const char *[]){ "usb30_master_ref_src", },
193624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.num_parents = 1,
193724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_branch_ops,
193824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_SET_RATE_PARENT,
193924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
194024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
194124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
194224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
194324d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic const struct freq_tbl clk_tbl_usb30_utmi[] = {
194424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	{ 60000000, P_PLL8,  1, 5, 32 },
194524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	{ }
194624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
194724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
194824d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_rcg usb30_utmi_clk = {
194924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.ns_reg = 0x3b44,
195024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.md_reg = 0x3b40,
195124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.mn = {
195224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.mnctr_en_bit = 8,
195324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.mnctr_reset_bit = 7,
195424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.mnctr_mode_shift = 5,
195524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.n_val_shift = 16,
195624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.m_val_shift = 16,
195724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.width = 8,
195824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
195924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.p = {
196024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.pre_div_shift = 3,
196124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.pre_div_width = 2,
196224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
196324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.s = {
196424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.src_sel_shift = 0,
196524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.parent_map = gcc_pxo_pll8_pll0,
196624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
196724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.freq_tbl = clk_tbl_usb30_utmi,
196824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
196924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x3b44,
197024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(11),
197124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
197224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "usb30_utmi_clk",
197324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.parent_names = gcc_pxo_pll8_pll0_map,
197424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.num_parents = 3,
197524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_rcg_ops,
197624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_SET_RATE_GATE,
197724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
197824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
197924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
198024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
198124d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_branch usb30_0_utmi_clk_ctl = {
198224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_reg = 0x2fc4,
198324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_bit = 21,
198424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
198524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x3b48,
198624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(4),
198724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
198824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "usb30_0_utmi_clk_ctl",
198924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.parent_names = (const char *[]){ "usb30_utmi_clk", },
199024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.num_parents = 1,
199124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_branch_ops,
199224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_SET_RATE_PARENT,
199324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
199424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
199524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
199624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
199724d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_branch usb30_1_utmi_clk_ctl = {
199824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_reg = 0x2fc4,
199924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_bit = 15,
200024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
200124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x3b4c,
200224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(4),
200324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
200424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "usb30_1_utmi_clk_ctl",
200524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.parent_names = (const char *[]){ "usb30_utmi_clk", },
200624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.num_parents = 1,
200724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_branch_ops,
200824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_SET_RATE_PARENT,
200924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
201024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
201124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
201224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
201324d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic const struct freq_tbl clk_tbl_usb[] = {
201424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	{ 60000000, P_PLL8,  1, 5, 32 },
201524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	{ }
201624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
201724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
201824d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_rcg usb_hs1_xcvr_clk_src = {
201924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.ns_reg = 0x290C,
202024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.md_reg = 0x2908,
202124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.mn = {
202224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.mnctr_en_bit = 8,
202324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.mnctr_reset_bit = 7,
202424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.mnctr_mode_shift = 5,
202524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.n_val_shift = 16,
202624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.m_val_shift = 16,
202724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.width = 8,
202824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
202924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.p = {
203024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.pre_div_shift = 3,
203124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.pre_div_width = 2,
203224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
203324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.s = {
203424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.src_sel_shift = 0,
203524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.parent_map = gcc_pxo_pll8_pll0,
203624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
203724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.freq_tbl = clk_tbl_usb,
203824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
203924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x2968,
204024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(11),
204124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
204224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "usb_hs1_xcvr_src",
204324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.parent_names = gcc_pxo_pll8_pll0_map,
204424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.num_parents = 3,
204524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_rcg_ops,
204624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_SET_RATE_GATE,
204724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
204824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
204924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
205024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
205124d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_branch usb_hs1_xcvr_clk = {
205224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_reg = 0x2fcc,
205324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_bit = 17,
205424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
205524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x290c,
205624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(9),
205724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
205824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "usb_hs1_xcvr_clk",
205924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.parent_names = (const char *[]){ "usb_hs1_xcvr_src" },
206024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.num_parents = 1,
206124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_branch_ops,
206224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_SET_RATE_PARENT,
206324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
206424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
206524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
206624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
206724d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_branch usb_hs1_h_clk = {
206824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.hwcg_reg = 0x2900,
206924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.hwcg_bit = 6,
207024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_reg = 0x2fc8,
207124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_bit = 1,
207224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
207324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x2900,
207424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(4),
207524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
207624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "usb_hs1_h_clk",
207724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_branch_ops,
207824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_IS_ROOT,
207924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
208024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
208124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
208224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
208324d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_rcg usb_fs1_xcvr_clk_src = {
208424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.ns_reg = 0x2968,
208524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.md_reg = 0x2964,
208624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.mn = {
208724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.mnctr_en_bit = 8,
208824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.mnctr_reset_bit = 7,
208924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.mnctr_mode_shift = 5,
209024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.n_val_shift = 16,
209124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.m_val_shift = 16,
209224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.width = 8,
209324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
209424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.p = {
209524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.pre_div_shift = 3,
209624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.pre_div_width = 2,
209724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
209824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.s = {
209924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.src_sel_shift = 0,
210024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.parent_map = gcc_pxo_pll8_pll0,
210124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
210224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.freq_tbl = clk_tbl_usb,
210324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
210424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x2968,
210524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(11),
210624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
210724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "usb_fs1_xcvr_src",
210824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.parent_names = gcc_pxo_pll8_pll0_map,
210924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.num_parents = 3,
211024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_rcg_ops,
211124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_SET_RATE_GATE,
211224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
211324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
211424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
211524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
211624d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_branch usb_fs1_xcvr_clk = {
211724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_reg = 0x2fcc,
211824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_bit = 17,
211924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
212024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x2968,
212124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(9),
212224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
212324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "usb_fs1_xcvr_clk",
212424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.parent_names = (const char *[]){ "usb_fs1_xcvr_src", },
212524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.num_parents = 1,
212624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_branch_ops,
212724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_SET_RATE_PARENT,
212824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
212924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
213024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
213124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
213224d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_branch usb_fs1_sys_clk = {
213324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_reg = 0x2fcc,
213424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_bit = 18,
213524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
213624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x296c,
213724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(4),
213824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
213924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "usb_fs1_sys_clk",
214024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.parent_names = (const char *[]){ "usb_fs1_xcvr_src", },
214124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.num_parents = 1,
214224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_branch_ops,
214324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_SET_RATE_PARENT,
214424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
214524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
214624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
214724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
214824d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_branch usb_fs1_h_clk = {
214924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_reg = 0x2fcc,
215024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.halt_bit = 19,
215124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clkr = {
215224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_reg = 0x2960,
215324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.enable_mask = BIT(4),
215424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.hw.init = &(struct clk_init_data){
215524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.name = "usb_fs1_h_clk",
215624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.ops = &clk_branch_ops,
215724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala			.flags = CLK_IS_ROOT,
215824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		},
215924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
216024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
216124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
216224d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct clk_regmap *gcc_ipq806x_clks[] = {
2163dc1b3f657f25798b2dc9ed8928b80eb3183019a2Andy Gross	[PLL0] = &pll0.clkr,
2164dc1b3f657f25798b2dc9ed8928b80eb3183019a2Andy Gross	[PLL0_VOTE] = &pll0_vote,
216524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[PLL3] = &pll3.clkr,
216624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[PLL8] = &pll8.clkr,
216724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[PLL8_VOTE] = &pll8_vote,
216824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[PLL14] = &pll14.clkr,
216924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[PLL14_VOTE] = &pll14_vote,
217024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[GSBI1_UART_SRC] = &gsbi1_uart_src.clkr,
217124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[GSBI1_UART_CLK] = &gsbi1_uart_clk.clkr,
217224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[GSBI2_UART_SRC] = &gsbi2_uart_src.clkr,
217324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[GSBI2_UART_CLK] = &gsbi2_uart_clk.clkr,
217424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[GSBI4_UART_SRC] = &gsbi4_uart_src.clkr,
217524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[GSBI4_UART_CLK] = &gsbi4_uart_clk.clkr,
217624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[GSBI5_UART_SRC] = &gsbi5_uart_src.clkr,
217724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[GSBI5_UART_CLK] = &gsbi5_uart_clk.clkr,
217824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[GSBI6_UART_SRC] = &gsbi6_uart_src.clkr,
217924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[GSBI6_UART_CLK] = &gsbi6_uart_clk.clkr,
218024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[GSBI7_UART_SRC] = &gsbi7_uart_src.clkr,
218124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[GSBI7_UART_CLK] = &gsbi7_uart_clk.clkr,
218224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[GSBI1_QUP_SRC] = &gsbi1_qup_src.clkr,
218324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[GSBI1_QUP_CLK] = &gsbi1_qup_clk.clkr,
218424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[GSBI2_QUP_SRC] = &gsbi2_qup_src.clkr,
218524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[GSBI2_QUP_CLK] = &gsbi2_qup_clk.clkr,
218624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[GSBI4_QUP_SRC] = &gsbi4_qup_src.clkr,
218724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[GSBI4_QUP_CLK] = &gsbi4_qup_clk.clkr,
218824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[GSBI5_QUP_SRC] = &gsbi5_qup_src.clkr,
218924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[GSBI5_QUP_CLK] = &gsbi5_qup_clk.clkr,
219024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[GSBI6_QUP_SRC] = &gsbi6_qup_src.clkr,
219124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[GSBI6_QUP_CLK] = &gsbi6_qup_clk.clkr,
219224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[GSBI7_QUP_SRC] = &gsbi7_qup_src.clkr,
219324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[GSBI7_QUP_CLK] = &gsbi7_qup_clk.clkr,
219424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[GP0_SRC] = &gp0_src.clkr,
219524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[GP0_CLK] = &gp0_clk.clkr,
219624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[GP1_SRC] = &gp1_src.clkr,
219724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[GP1_CLK] = &gp1_clk.clkr,
219824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[GP2_SRC] = &gp2_src.clkr,
219924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[GP2_CLK] = &gp2_clk.clkr,
220024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[PMEM_A_CLK] = &pmem_clk.clkr,
220124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[PRNG_SRC] = &prng_src.clkr,
220224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[PRNG_CLK] = &prng_clk.clkr,
220324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[SDC1_SRC] = &sdc1_src.clkr,
220424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[SDC1_CLK] = &sdc1_clk.clkr,
220524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[SDC3_SRC] = &sdc3_src.clkr,
220624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[SDC3_CLK] = &sdc3_clk.clkr,
220724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[TSIF_REF_SRC] = &tsif_ref_src.clkr,
220824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[TSIF_REF_CLK] = &tsif_ref_clk.clkr,
220924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[DMA_BAM_H_CLK] = &dma_bam_h_clk.clkr,
221024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[GSBI1_H_CLK] = &gsbi1_h_clk.clkr,
221124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[GSBI2_H_CLK] = &gsbi2_h_clk.clkr,
221224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[GSBI4_H_CLK] = &gsbi4_h_clk.clkr,
221324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[GSBI5_H_CLK] = &gsbi5_h_clk.clkr,
221424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[GSBI6_H_CLK] = &gsbi6_h_clk.clkr,
221524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[GSBI7_H_CLK] = &gsbi7_h_clk.clkr,
221624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[TSIF_H_CLK] = &tsif_h_clk.clkr,
221724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[SDC1_H_CLK] = &sdc1_h_clk.clkr,
221824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[SDC3_H_CLK] = &sdc3_h_clk.clkr,
221924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[ADM0_CLK] = &adm0_clk.clkr,
222024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[ADM0_PBUS_CLK] = &adm0_pbus_clk.clkr,
222124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[PCIE_A_CLK] = &pcie_a_clk.clkr,
222224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[PCIE_AUX_CLK] = &pcie_aux_clk.clkr,
222324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[PCIE_H_CLK] = &pcie_h_clk.clkr,
222424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[PCIE_PHY_CLK] = &pcie_phy_clk.clkr,
222524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[SFAB_SATA_S_H_CLK] = &sfab_sata_s_h_clk.clkr,
222624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[PMIC_ARB0_H_CLK] = &pmic_arb0_h_clk.clkr,
222724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[PMIC_ARB1_H_CLK] = &pmic_arb1_h_clk.clkr,
222824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[PMIC_SSBI2_CLK] = &pmic_ssbi2_clk.clkr,
222924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[RPM_MSG_RAM_H_CLK] = &rpm_msg_ram_h_clk.clkr,
223024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[SATA_H_CLK] = &sata_h_clk.clkr,
223124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[SATA_CLK_SRC] = &sata_ref_src.clkr,
223224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[SATA_RXOOB_CLK] = &sata_rxoob_clk.clkr,
223324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[SATA_PMALIVE_CLK] = &sata_pmalive_clk.clkr,
223424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[SATA_PHY_REF_CLK] = &sata_phy_ref_clk.clkr,
223524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[SATA_A_CLK] = &sata_a_clk.clkr,
223624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[SATA_PHY_CFG_CLK] = &sata_phy_cfg_clk.clkr,
223724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[PCIE_ALT_REF_SRC] = &pcie_ref_src.clkr,
223824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[PCIE_ALT_REF_CLK] = &pcie_ref_src_clk.clkr,
223924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[PCIE_1_A_CLK] = &pcie1_a_clk.clkr,
224024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[PCIE_1_AUX_CLK] = &pcie1_aux_clk.clkr,
224124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[PCIE_1_H_CLK] = &pcie1_h_clk.clkr,
224224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[PCIE_1_PHY_CLK] = &pcie1_phy_clk.clkr,
224324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[PCIE_1_ALT_REF_SRC] = &pcie1_ref_src.clkr,
224424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[PCIE_1_ALT_REF_CLK] = &pcie1_ref_src_clk.clkr,
224524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[PCIE_2_A_CLK] = &pcie2_a_clk.clkr,
224624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[PCIE_2_AUX_CLK] = &pcie2_aux_clk.clkr,
224724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[PCIE_2_H_CLK] = &pcie2_h_clk.clkr,
224824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[PCIE_2_PHY_CLK] = &pcie2_phy_clk.clkr,
224924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[PCIE_2_ALT_REF_SRC] = &pcie2_ref_src.clkr,
225024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[PCIE_2_ALT_REF_CLK] = &pcie2_ref_src_clk.clkr,
225124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[USB30_MASTER_SRC] = &usb30_master_clk_src.clkr,
225224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[USB30_0_MASTER_CLK] = &usb30_0_branch_clk.clkr,
225324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[USB30_1_MASTER_CLK] = &usb30_1_branch_clk.clkr,
225424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[USB30_UTMI_SRC] = &usb30_utmi_clk.clkr,
225524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[USB30_0_UTMI_CLK] = &usb30_0_utmi_clk_ctl.clkr,
225624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[USB30_1_UTMI_CLK] = &usb30_1_utmi_clk_ctl.clkr,
225724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[USB_HS1_H_CLK] = &usb_hs1_h_clk.clkr,
225824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[USB_HS1_XCVR_SRC] = &usb_hs1_xcvr_clk_src.clkr,
225924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[USB_HS1_XCVR_CLK] = &usb_hs1_xcvr_clk.clkr,
226024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[USB_FS1_H_CLK] = &usb_fs1_h_clk.clkr,
226124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[USB_FS1_XCVR_SRC] = &usb_fs1_xcvr_clk_src.clkr,
226224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[USB_FS1_XCVR_CLK] = &usb_fs1_xcvr_clk.clkr,
226324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[USB_FS1_SYSTEM_CLK] = &usb_fs1_sys_clk.clkr,
226424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
226524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
226624d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic const struct qcom_reset_map gcc_ipq806x_resets[] = {
226724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[QDSS_STM_RESET] = { 0x2060, 6 },
226824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[AFAB_SMPSS_S_RESET] = { 0x20b8, 2 },
226924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[AFAB_SMPSS_M1_RESET] = { 0x20b8, 1 },
227024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[AFAB_SMPSS_M0_RESET] = { 0x20b8, 0 },
227124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[AFAB_EBI1_CH0_RESET] = { 0x20c0, 7 },
227224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[AFAB_EBI1_CH1_RESET] = { 0x20c4, 7 },
227324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[SFAB_ADM0_M0_RESET] = { 0x21e0, 7 },
227424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[SFAB_ADM0_M1_RESET] = { 0x21e4, 7 },
227524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[SFAB_ADM0_M2_RESET] = { 0x21e8, 7 },
227624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[ADM0_C2_RESET] = { 0x220c, 4 },
227724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[ADM0_C1_RESET] = { 0x220c, 3 },
227824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[ADM0_C0_RESET] = { 0x220c, 2 },
227924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[ADM0_PBUS_RESET] = { 0x220c, 1 },
228024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[ADM0_RESET] = { 0x220c, 0 },
228124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[QDSS_CLKS_SW_RESET] = { 0x2260, 5 },
228224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[QDSS_POR_RESET] = { 0x2260, 4 },
228324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[QDSS_TSCTR_RESET] = { 0x2260, 3 },
228424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[QDSS_HRESET_RESET] = { 0x2260, 2 },
228524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[QDSS_AXI_RESET] = { 0x2260, 1 },
228624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[QDSS_DBG_RESET] = { 0x2260, 0 },
228724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[SFAB_PCIE_M_RESET] = { 0x22d8, 1 },
228824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[SFAB_PCIE_S_RESET] = { 0x22d8, 0 },
228924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[PCIE_EXT_RESET] = { 0x22dc, 6 },
229024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[PCIE_PHY_RESET] = { 0x22dc, 5 },
229124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[PCIE_PCI_RESET] = { 0x22dc, 4 },
229224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[PCIE_POR_RESET] = { 0x22dc, 3 },
229324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[PCIE_HCLK_RESET] = { 0x22dc, 2 },
229424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[PCIE_ACLK_RESET] = { 0x22dc, 0 },
229524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[SFAB_LPASS_RESET] = { 0x23a0, 7 },
229624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[SFAB_AFAB_M_RESET] = { 0x23e0, 7 },
229724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[AFAB_SFAB_M0_RESET] = { 0x2420, 7 },
229824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[AFAB_SFAB_M1_RESET] = { 0x2424, 7 },
229924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[SFAB_SATA_S_RESET] = { 0x2480, 7 },
230024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[SFAB_DFAB_M_RESET] = { 0x2500, 7 },
230124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[DFAB_SFAB_M_RESET] = { 0x2520, 7 },
230224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[DFAB_SWAY0_RESET] = { 0x2540, 7 },
230324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[DFAB_SWAY1_RESET] = { 0x2544, 7 },
230424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[DFAB_ARB0_RESET] = { 0x2560, 7 },
230524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[DFAB_ARB1_RESET] = { 0x2564, 7 },
230624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[PPSS_PROC_RESET] = { 0x2594, 1 },
230724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[PPSS_RESET] = { 0x2594, 0 },
230824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[DMA_BAM_RESET] = { 0x25c0, 7 },
230924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[SPS_TIC_H_RESET] = { 0x2600, 7 },
231024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[SFAB_CFPB_M_RESET] = { 0x2680, 7 },
231124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[SFAB_CFPB_S_RESET] = { 0x26c0, 7 },
231224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[TSIF_H_RESET] = { 0x2700, 7 },
231324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[CE1_H_RESET] = { 0x2720, 7 },
231424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[CE1_CORE_RESET] = { 0x2724, 7 },
231524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[CE1_SLEEP_RESET] = { 0x2728, 7 },
231624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[CE2_H_RESET] = { 0x2740, 7 },
231724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[CE2_CORE_RESET] = { 0x2744, 7 },
231824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[SFAB_SFPB_M_RESET] = { 0x2780, 7 },
231924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[SFAB_SFPB_S_RESET] = { 0x27a0, 7 },
232024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[RPM_PROC_RESET] = { 0x27c0, 7 },
232124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[PMIC_SSBI2_RESET] = { 0x280c, 12 },
232224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[SDC1_RESET] = { 0x2830, 0 },
232324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[SDC2_RESET] = { 0x2850, 0 },
232424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[SDC3_RESET] = { 0x2870, 0 },
232524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[SDC4_RESET] = { 0x2890, 0 },
232624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[USB_HS1_RESET] = { 0x2910, 0 },
232724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[USB_HSIC_RESET] = { 0x2934, 0 },
232824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[USB_FS1_XCVR_RESET] = { 0x2974, 1 },
232924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[USB_FS1_RESET] = { 0x2974, 0 },
233024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[GSBI1_RESET] = { 0x29dc, 0 },
233124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[GSBI2_RESET] = { 0x29fc, 0 },
233224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[GSBI3_RESET] = { 0x2a1c, 0 },
233324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[GSBI4_RESET] = { 0x2a3c, 0 },
233424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[GSBI5_RESET] = { 0x2a5c, 0 },
233524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[GSBI6_RESET] = { 0x2a7c, 0 },
233624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[GSBI7_RESET] = { 0x2a9c, 0 },
233724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[SPDM_RESET] = { 0x2b6c, 0 },
233824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[SEC_CTRL_RESET] = { 0x2b80, 7 },
233924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[TLMM_H_RESET] = { 0x2ba0, 7 },
234024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[SFAB_SATA_M_RESET] = { 0x2c18, 0 },
234124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[SATA_RESET] = { 0x2c1c, 0 },
234224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[TSSC_RESET] = { 0x2ca0, 7 },
234324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[PDM_RESET] = { 0x2cc0, 12 },
234424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[MPM_H_RESET] = { 0x2da0, 7 },
234524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[MPM_RESET] = { 0x2da4, 0 },
234624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[SFAB_SMPSS_S_RESET] = { 0x2e00, 7 },
234724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[PRNG_RESET] = { 0x2e80, 12 },
234824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[SFAB_CE3_M_RESET] = { 0x36c8, 1 },
234924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[SFAB_CE3_S_RESET] = { 0x36c8, 0 },
235024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[CE3_SLEEP_RESET] = { 0x36d0, 7 },
235124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[PCIE_1_M_RESET] = { 0x3a98, 1 },
235224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[PCIE_1_S_RESET] = { 0x3a98, 0 },
235324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[PCIE_1_EXT_RESET] = { 0x3a9c, 6 },
235424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[PCIE_1_PHY_RESET] = { 0x3a9c, 5 },
235524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[PCIE_1_PCI_RESET] = { 0x3a9c, 4 },
235624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[PCIE_1_POR_RESET] = { 0x3a9c, 3 },
235724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[PCIE_1_HCLK_RESET] = { 0x3a9c, 2 },
235824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[PCIE_1_ACLK_RESET] = { 0x3a9c, 0 },
235924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[PCIE_2_M_RESET] = { 0x3ad8, 1 },
236024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[PCIE_2_S_RESET] = { 0x3ad8, 0 },
236124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[PCIE_2_EXT_RESET] = { 0x3adc, 6 },
236224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[PCIE_2_PHY_RESET] = { 0x3adc, 5 },
236324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[PCIE_2_PCI_RESET] = { 0x3adc, 4 },
236424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[PCIE_2_POR_RESET] = { 0x3adc, 3 },
236524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[PCIE_2_HCLK_RESET] = { 0x3adc, 2 },
236624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[PCIE_2_ACLK_RESET] = { 0x3adc, 0 },
236724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[SFAB_USB30_S_RESET] = { 0x3b54, 1 },
236824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[SFAB_USB30_M_RESET] = { 0x3b54, 0 },
236924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[USB30_0_PORT2_HS_PHY_RESET] = { 0x3b50, 5 },
237024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[USB30_0_MASTER_RESET] = { 0x3b50, 4 },
237124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[USB30_0_SLEEP_RESET] = { 0x3b50, 3 },
237224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[USB30_0_UTMI_PHY_RESET] = { 0x3b50, 2 },
237324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[USB30_0_POWERON_RESET] = { 0x3b50, 1 },
237424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[USB30_0_PHY_RESET] = { 0x3b50, 0 },
237524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[USB30_1_MASTER_RESET] = { 0x3b58, 4 },
237624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[USB30_1_SLEEP_RESET] = { 0x3b58, 3 },
237724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[USB30_1_UTMI_PHY_RESET] = { 0x3b58, 2 },
237824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[USB30_1_POWERON_RESET] = { 0x3b58, 1 },
237924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[USB30_1_PHY_RESET] = { 0x3b58, 0 },
238024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[NSSFB0_RESET] = { 0x3b60, 6 },
238124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	[NSSFB1_RESET] = { 0x3b60, 7 },
238224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
238324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
238424d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic const struct regmap_config gcc_ipq806x_regmap_config = {
238524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.reg_bits	= 32,
238624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.reg_stride	= 4,
238724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.val_bits	= 32,
238824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.max_register	= 0x3e40,
238924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.fast_io	= true,
239024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
239124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
239224d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic const struct qcom_cc_desc gcc_ipq806x_desc = {
239324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.config = &gcc_ipq806x_regmap_config,
239424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.clks = gcc_ipq806x_clks,
239524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.num_clks = ARRAY_SIZE(gcc_ipq806x_clks),
239624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.resets = gcc_ipq806x_resets,
239724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.num_resets = ARRAY_SIZE(gcc_ipq806x_resets),
239824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
239924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
240024d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic const struct of_device_id gcc_ipq806x_match_table[] = {
240124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	{ .compatible = "qcom,gcc-ipq8064" },
240224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	{ }
240324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
240424d8fba44af32163334c1f162e65ba93eb2993fdKumar GalaMODULE_DEVICE_TABLE(of, gcc_ipq806x_match_table);
240524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
240624d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic int gcc_ipq806x_probe(struct platform_device *pdev)
240724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala{
240824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	struct clk *clk;
240924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	struct device *dev = &pdev->dev;
241024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
241124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	/* Temporary until RPM clocks supported */
241224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	clk = clk_register_fixed_rate(dev, "cxo", NULL, CLK_IS_ROOT, 25000000);
241324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	if (IS_ERR(clk))
241424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		return PTR_ERR(clk);
241524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
241624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	clk = clk_register_fixed_rate(dev, "pxo", NULL, CLK_IS_ROOT, 25000000);
241724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	if (IS_ERR(clk))
241824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		return PTR_ERR(clk);
241924d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
242024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	return qcom_cc_probe(pdev, &gcc_ipq806x_desc);
242124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala}
242224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
242324d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic int gcc_ipq806x_remove(struct platform_device *pdev)
242424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala{
242524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	qcom_cc_remove(pdev);
242624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	return 0;
242724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala}
242824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
242924d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic struct platform_driver gcc_ipq806x_driver = {
243024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.probe		= gcc_ipq806x_probe,
243124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.remove		= gcc_ipq806x_remove,
243224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	.driver		= {
243324d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.name	= "gcc-ipq806x",
243424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.owner	= THIS_MODULE,
243524d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala		.of_match_table = gcc_ipq806x_match_table,
243624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	},
243724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala};
243824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
243924d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic int __init gcc_ipq806x_init(void)
244024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala{
244124d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	return platform_driver_register(&gcc_ipq806x_driver);
244224d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala}
244324d8fba44af32163334c1f162e65ba93eb2993fdKumar Galacore_initcall(gcc_ipq806x_init);
244424d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
244524d8fba44af32163334c1f162e65ba93eb2993fdKumar Galastatic void __exit gcc_ipq806x_exit(void)
244624d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala{
244724d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala	platform_driver_unregister(&gcc_ipq806x_driver);
244824d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala}
244924d8fba44af32163334c1f162e65ba93eb2993fdKumar Galamodule_exit(gcc_ipq806x_exit);
245024d8fba44af32163334c1f162e65ba93eb2993fdKumar Gala
245124d8fba44af32163334c1f162e65ba93eb2993fdKumar GalaMODULE_DESCRIPTION("QCOM GCC IPQ806x Driver");
245224d8fba44af32163334c1f162e65ba93eb2993fdKumar GalaMODULE_LICENSE("GPL v2");
245324d8fba44af32163334c1f162e65ba93eb2993fdKumar GalaMODULE_ALIAS("platform:gcc-ipq806x");
2454