xref: /OK3568_Linux_fs/u-boot/arch/arm/include/asm/arch-rockchip/cru_rk3568.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */
2*4882a593Smuzhiyun /*
3*4882a593Smuzhiyun  * Copyright (c) 2020 Rockchip Electronics Co. Ltd.
4*4882a593Smuzhiyun  * Author: Elaine Zhang <zhangqing@rock-chips.com>
5*4882a593Smuzhiyun  */
6*4882a593Smuzhiyun 
7*4882a593Smuzhiyun #ifndef _ASM_ARCH_CRU_RK3568_H
8*4882a593Smuzhiyun #define _ASM_ARCH_CRU_RK3568_H
9*4882a593Smuzhiyun 
10*4882a593Smuzhiyun #define MHz		1000000
11*4882a593Smuzhiyun #define KHz		1000
12*4882a593Smuzhiyun #define OSC_HZ		(24 * MHz)
13*4882a593Smuzhiyun 
14*4882a593Smuzhiyun #define APLL_HZ		(816 * MHz)
15*4882a593Smuzhiyun #define GPLL_HZ		(1188 * MHz)
16*4882a593Smuzhiyun #define CPLL_HZ		(1000 * MHz)
17*4882a593Smuzhiyun #define PPLL_HZ		(200 * MHz)
18*4882a593Smuzhiyun 
19*4882a593Smuzhiyun /* RK3568 pll id */
20*4882a593Smuzhiyun enum rk3568_pll_id {
21*4882a593Smuzhiyun 	APLL,
22*4882a593Smuzhiyun 	DPLL,
23*4882a593Smuzhiyun 	CPLL,
24*4882a593Smuzhiyun 	GPLL,
25*4882a593Smuzhiyun 	NPLL,
26*4882a593Smuzhiyun 	VPLL,
27*4882a593Smuzhiyun 	PPLL,
28*4882a593Smuzhiyun 	HPLL,
29*4882a593Smuzhiyun 	PLL_COUNT,
30*4882a593Smuzhiyun };
31*4882a593Smuzhiyun 
32*4882a593Smuzhiyun struct rk3568_clk_info {
33*4882a593Smuzhiyun 	unsigned long id;
34*4882a593Smuzhiyun 	char *name;
35*4882a593Smuzhiyun 	bool is_cru;
36*4882a593Smuzhiyun };
37*4882a593Smuzhiyun 
38*4882a593Smuzhiyun /* Private data for the clock driver - used by rockchip_get_cru() */
39*4882a593Smuzhiyun struct rk3568_pmuclk_priv {
40*4882a593Smuzhiyun 	struct rk3568_pmucru *pmucru;
41*4882a593Smuzhiyun 	ulong ppll_hz;
42*4882a593Smuzhiyun 	ulong hpll_hz;
43*4882a593Smuzhiyun };
44*4882a593Smuzhiyun 
45*4882a593Smuzhiyun struct rk3568_clk_priv {
46*4882a593Smuzhiyun 	struct rk3568_cru *cru;
47*4882a593Smuzhiyun 	struct rk3568_grf *grf;
48*4882a593Smuzhiyun 	ulong ppll_hz;
49*4882a593Smuzhiyun 	ulong hpll_hz;
50*4882a593Smuzhiyun 	ulong gpll_hz;
51*4882a593Smuzhiyun 	ulong cpll_hz;
52*4882a593Smuzhiyun 	ulong npll_hz;
53*4882a593Smuzhiyun 	ulong vpll_hz;
54*4882a593Smuzhiyun 	ulong armclk_hz;
55*4882a593Smuzhiyun 	ulong armclk_enter_hz;
56*4882a593Smuzhiyun 	ulong armclk_init_hz;
57*4882a593Smuzhiyun 	bool sync_kernel;
58*4882a593Smuzhiyun 	bool set_armclk_rate;
59*4882a593Smuzhiyun };
60*4882a593Smuzhiyun 
61*4882a593Smuzhiyun struct rk3568_pll {
62*4882a593Smuzhiyun 	unsigned int con0;
63*4882a593Smuzhiyun 	unsigned int con1;
64*4882a593Smuzhiyun 	unsigned int con2;
65*4882a593Smuzhiyun 	unsigned int con3;
66*4882a593Smuzhiyun 	unsigned int con4;
67*4882a593Smuzhiyun 	unsigned int reserved0[3];
68*4882a593Smuzhiyun };
69*4882a593Smuzhiyun 
70*4882a593Smuzhiyun struct rk3568_pmucru {
71*4882a593Smuzhiyun 	struct rk3568_pll pll[2];/* Address Offset: 0x0000 */
72*4882a593Smuzhiyun 	unsigned int reserved0[16];/* Address Offset: 0x0040 */
73*4882a593Smuzhiyun 	unsigned int mode_con00;/* Address Offset: 0x0080 */
74*4882a593Smuzhiyun 	unsigned int reserved1[31];/* Address Offset: 0x0084 */
75*4882a593Smuzhiyun 	unsigned int pmu_clksel_con[10];/* Address Offset: 0x0100 */
76*4882a593Smuzhiyun 	unsigned int reserved2[22];/* Address Offset: 0x0128 */
77*4882a593Smuzhiyun 	unsigned int pmu_clkgate_con[3];/* Address Offset: 0x0180 */
78*4882a593Smuzhiyun 	unsigned int reserved3[29];/* Address Offset: 0x018C */
79*4882a593Smuzhiyun 	unsigned int pmu_softrst_con[1];/* Address Offset: 0x0200 */
80*4882a593Smuzhiyun };
81*4882a593Smuzhiyun 
82*4882a593Smuzhiyun check_member(rk3568_pmucru, mode_con00, 0x80);
83*4882a593Smuzhiyun check_member(rk3568_pmucru, pmu_softrst_con[0], 0x200);
84*4882a593Smuzhiyun 
85*4882a593Smuzhiyun struct rk3568_cru {
86*4882a593Smuzhiyun 	struct rk3568_pll pll[6];
87*4882a593Smuzhiyun 	unsigned int mode_con00;/* Address Offset: 0x00C0 */
88*4882a593Smuzhiyun 	unsigned int misc_con[3];/* Address Offset: 0x00C4 */
89*4882a593Smuzhiyun 	unsigned int glb_cnt_th;/* Address Offset: 0x00D0 */
90*4882a593Smuzhiyun 	unsigned int glb_srst_fst;/* Address Offset: 0x00D4 */
91*4882a593Smuzhiyun 	unsigned int glb_srsr_snd; /* Address Offset: 0x00D8 */
92*4882a593Smuzhiyun 	unsigned int glb_rst_con;/* Address Offset: 0x00DC */
93*4882a593Smuzhiyun 	unsigned int glb_rst_st;/* Address Offset: 0x00E0 */
94*4882a593Smuzhiyun 	unsigned int reserved0[7];/* Address Offset: 0x00E4 */
95*4882a593Smuzhiyun 	unsigned int clksel_con[85]; /* Address Offset: 0x0100 */
96*4882a593Smuzhiyun 	unsigned int reserved1[43];/* Address Offset: 0x0254 */
97*4882a593Smuzhiyun 	unsigned int clkgate_con[36];/* Address Offset: 0x0300 */
98*4882a593Smuzhiyun 	unsigned int reserved2[28]; /* Address Offset: 0x0390 */
99*4882a593Smuzhiyun 	unsigned int softrst_con[30];/* Address Offset: 0x0400 */
100*4882a593Smuzhiyun 	unsigned int reserved3[2];/* Address Offset: 0x0478 */
101*4882a593Smuzhiyun 	unsigned int ssgtbl[32];/* Address Offset: 0x0480 */
102*4882a593Smuzhiyun 	unsigned int reserved4[32];/* Address Offset: 0x0500 */
103*4882a593Smuzhiyun 	unsigned int sdmmc0_con[2];/* Address Offset: 0x0580 */
104*4882a593Smuzhiyun 	unsigned int sdmmc1_con[2];/* Address Offset: 0x058C */
105*4882a593Smuzhiyun 	unsigned int sdmmc2_con[2];/* Address Offset: 0x0590 */
106*4882a593Smuzhiyun 	unsigned int emmc_con[2];/* Address Offset: 0x0598 */
107*4882a593Smuzhiyun };
108*4882a593Smuzhiyun 
109*4882a593Smuzhiyun check_member(rk3568_cru, mode_con00, 0xc0);
110*4882a593Smuzhiyun check_member(rk3568_cru, softrst_con[0], 0x400);
111*4882a593Smuzhiyun 
112*4882a593Smuzhiyun struct pll_rate_table {
113*4882a593Smuzhiyun 	unsigned long rate;
114*4882a593Smuzhiyun 	unsigned int fbdiv;
115*4882a593Smuzhiyun 	unsigned int postdiv1;
116*4882a593Smuzhiyun 	unsigned int refdiv;
117*4882a593Smuzhiyun 	unsigned int postdiv2;
118*4882a593Smuzhiyun 	unsigned int dsmpd;
119*4882a593Smuzhiyun 	unsigned int frac;
120*4882a593Smuzhiyun };
121*4882a593Smuzhiyun 
122*4882a593Smuzhiyun #define RK3568_PMU_MODE			0x80
123*4882a593Smuzhiyun #define RK3568_PMU_PLL_CON(x)		((x) * 0x4)
124*4882a593Smuzhiyun #define RK3568_PLL_CON(x)		((x) * 0x4)
125*4882a593Smuzhiyun #define RK3568_MODE_CON			0xc0
126*4882a593Smuzhiyun 
127*4882a593Smuzhiyun enum {
128*4882a593Smuzhiyun 	/* CRU_PMU_CLK_SEL0_CON */
129*4882a593Smuzhiyun 	RTC32K_SEL_SHIFT		= 6,
130*4882a593Smuzhiyun 	RTC32K_SEL_MASK			= 0x3 << RTC32K_SEL_SHIFT,
131*4882a593Smuzhiyun 	RTC32K_SEL_PMUPVTM		= 0,
132*4882a593Smuzhiyun 	RTC32K_SEL_OSC1_32K,
133*4882a593Smuzhiyun 	RTC32K_SEL_OSC0_DIV32K,
134*4882a593Smuzhiyun 
135*4882a593Smuzhiyun 	/* CRU_PMU_CLK_SEL1_CON */
136*4882a593Smuzhiyun 	RTC32K_FRAC_NUMERATOR_SHIFT	= 16,
137*4882a593Smuzhiyun 	RTC32K_FRAC_NUMERATOR_MASK	= 0xffff << 16,
138*4882a593Smuzhiyun 	RTC32K_FRAC_DENOMINATOR_SHIFT	= 0,
139*4882a593Smuzhiyun 	RTC32K_FRAC_DENOMINATOR_MASK	= 0xffff,
140*4882a593Smuzhiyun 
141*4882a593Smuzhiyun 	/* CRU_PMU_CLK_SEL2_CON */
142*4882a593Smuzhiyun 	PCLK_PDPMU_SEL_SHIFT		= 15,
143*4882a593Smuzhiyun 	PCLK_PDPMU_SEL_MASK		= 1 << PCLK_PDPMU_SEL_SHIFT,
144*4882a593Smuzhiyun 	PCLK_PDPMU_SEL_PPLL		= 0,
145*4882a593Smuzhiyun 	PCLK_PDPMU_SEL_GPLL,
146*4882a593Smuzhiyun 	PCLK_PDPMU_DIV_SHIFT		= 0,
147*4882a593Smuzhiyun 	PCLK_PDPMU_DIV_MASK		= 0x1f,
148*4882a593Smuzhiyun 
149*4882a593Smuzhiyun 	/* CRU_PMU_CLK_SEL3_CON */
150*4882a593Smuzhiyun 	CLK_I2C0_DIV_SHIFT		= 0,
151*4882a593Smuzhiyun 	CLK_I2C0_DIV_MASK		= 0x7f,
152*4882a593Smuzhiyun 
153*4882a593Smuzhiyun 	/* CRU_PMU_CLK_SEL6_CON */
154*4882a593Smuzhiyun 	CLK_PWM0_SEL_SHIFT		= 7,
155*4882a593Smuzhiyun 	CLK_PWM0_SEL_MASK		= 1 << CLK_PWM0_SEL_SHIFT,
156*4882a593Smuzhiyun 	CLK_PWM0_SEL_XIN24M		= 0,
157*4882a593Smuzhiyun 	CLK_PWM0_SEL_PPLL,
158*4882a593Smuzhiyun 	CLK_PWM0_DIV_SHIFT		= 0,
159*4882a593Smuzhiyun 	CLK_PWM0_DIV_MASK		= 0x7f,
160*4882a593Smuzhiyun 
161*4882a593Smuzhiyun 	/* CRU_CLK_SEL0_CON */
162*4882a593Smuzhiyun 	CLK_CORE_PRE_SEL_SHIFT		= 7,
163*4882a593Smuzhiyun 	CLK_CORE_PRE_SEL_MASK		= 1 << CLK_CORE_PRE_SEL_SHIFT,
164*4882a593Smuzhiyun 	CLK_CORE_PRE_SEL_SRC		= 0,
165*4882a593Smuzhiyun 	CLK_CORE_PRE_SEL_APLL,
166*4882a593Smuzhiyun 
167*4882a593Smuzhiyun 	/* CRU_CLK_SEL2_CON */
168*4882a593Smuzhiyun 	SCLK_CORE_PRE_SEL_SHIFT		= 15,
169*4882a593Smuzhiyun 	SCLK_CORE_PRE_SEL_MASK		= 1 << SCLK_CORE_PRE_SEL_SHIFT,
170*4882a593Smuzhiyun 	SCLK_CORE_PRE_SEL_SRC		= 0,
171*4882a593Smuzhiyun 	SCLK_CORE_PRE_SEL_NPLL,
172*4882a593Smuzhiyun 	SCLK_CORE_SRC_SEL_SHIFT		= 8,
173*4882a593Smuzhiyun 	SCLK_CORE_SRC_SEL_MASK		= 3 << SCLK_CORE_SRC_SEL_SHIFT,
174*4882a593Smuzhiyun 	SCLK_CORE_SRC_SEL_APLL		= 0,
175*4882a593Smuzhiyun 	SCLK_CORE_SRC_SEL_GPLL,
176*4882a593Smuzhiyun 	SCLK_CORE_SRC_SEL_NPLL,
177*4882a593Smuzhiyun 	SCLK_CORE_SRC_DIV_SHIFT		= 0,
178*4882a593Smuzhiyun 	SCLK_CORE_SRC_DIV_MASK		= 0x1f << SCLK_CORE_SRC_DIV_SHIFT,
179*4882a593Smuzhiyun 
180*4882a593Smuzhiyun 	/* CRU_CLK_SEL3_CON */
181*4882a593Smuzhiyun 	GICCLK_CORE_DIV_SHIFT		= 8,
182*4882a593Smuzhiyun 	GICCLK_CORE_DIV_MASK		= 0x1f << GICCLK_CORE_DIV_SHIFT,
183*4882a593Smuzhiyun 	ATCLK_CORE_DIV_SHIFT		= 0,
184*4882a593Smuzhiyun 	ATCLK_CORE_DIV_MASK		= 0x1f << ATCLK_CORE_DIV_SHIFT,
185*4882a593Smuzhiyun 
186*4882a593Smuzhiyun 	/* CRU_CLK_SEL4_CON */
187*4882a593Smuzhiyun 	PERIPHCLK_CORE_PRE_DIV_SHIFT	= 8,
188*4882a593Smuzhiyun 	PERIPHCLK_CORE_PRE_DIV_MASK	= 0x1f << PERIPHCLK_CORE_PRE_DIV_SHIFT,
189*4882a593Smuzhiyun 	PCLK_CORE_PRE_DIV_SHIFT		= 0,
190*4882a593Smuzhiyun 	PCLK_CORE_PRE_DIV_MASK		= 0x1f << PCLK_CORE_PRE_DIV_SHIFT,
191*4882a593Smuzhiyun 
192*4882a593Smuzhiyun 	/* CRU_CLK_SEL5_CON */
193*4882a593Smuzhiyun 	ACLK_CORE_NIU2BUS_SEL_SHIFT	= 14,
194*4882a593Smuzhiyun 	ACLK_CORE_NIU2BUS_SEL_MASK	= 0x3 << ACLK_CORE_NIU2BUS_SEL_SHIFT,
195*4882a593Smuzhiyun 	ACLK_CORE_NDFT_DIV_SHIFT	= 8,
196*4882a593Smuzhiyun 	ACLK_CORE_NDFT_DIV_MASK		= 0x1f << ACLK_CORE_NDFT_DIV_SHIFT,
197*4882a593Smuzhiyun 
198*4882a593Smuzhiyun 	/* CRU_CLK_SEL10_CON */
199*4882a593Smuzhiyun 	HCLK_PERIMID_SEL_SHIFT		= 6,
200*4882a593Smuzhiyun 	HCLK_PERIMID_SEL_MASK		= 3 << HCLK_PERIMID_SEL_SHIFT,
201*4882a593Smuzhiyun 	HCLK_PERIMID_SEL_150M		= 0,
202*4882a593Smuzhiyun 	HCLK_PERIMID_SEL_100M,
203*4882a593Smuzhiyun 	HCLK_PERIMID_SEL_75M,
204*4882a593Smuzhiyun 	HCLK_PERIMID_SEL_24M,
205*4882a593Smuzhiyun 	ACLK_PERIMID_SEL_SHIFT		= 4,
206*4882a593Smuzhiyun 	ACLK_PERIMID_SEL_MASK		= 3 << ACLK_PERIMID_SEL_SHIFT,
207*4882a593Smuzhiyun 	ACLK_PERIMID_SEL_300M		= 0,
208*4882a593Smuzhiyun 	ACLK_PERIMID_SEL_200M,
209*4882a593Smuzhiyun 	ACLK_PERIMID_SEL_100M,
210*4882a593Smuzhiyun 	ACLK_PERIMID_SEL_24M,
211*4882a593Smuzhiyun 
212*4882a593Smuzhiyun 	/* CRU_CLK_SEL21_CON */
213*4882a593Smuzhiyun 	I2S3_MCLKOUT_TX_SEL_SHIFT	= 15,
214*4882a593Smuzhiyun 	I2S3_MCLKOUT_TX_SEL_MASK	= 1 << I2S3_MCLKOUT_TX_SEL_SHIFT,
215*4882a593Smuzhiyun 	I2S3_MCLKOUT_TX_SEL_MCLK	= 0,
216*4882a593Smuzhiyun 	I2S3_MCLKOUT_TX_SEL_12M,
217*4882a593Smuzhiyun 	CLK_I2S3_SEL_SHIFT		= 10,
218*4882a593Smuzhiyun 	CLK_I2S3_SEL_MASK		= 0x3 << CLK_I2S3_SEL_SHIFT,
219*4882a593Smuzhiyun 	CLK_I2S3_SEL_SRC		= 0,
220*4882a593Smuzhiyun 	CLK_I2S3_SEL_FRAC,
221*4882a593Smuzhiyun 	CLK_I2S3_SEL_CLKIN,
222*4882a593Smuzhiyun 	CLK_I2S3_SEL_XIN12M,
223*4882a593Smuzhiyun 	CLK_I2S3_SRC_SEL_SHIFT		= 8,
224*4882a593Smuzhiyun 	CLK_I2S3_SRC_SEL_MASK		= 0x3 << CLK_I2S3_SRC_SEL_SHIFT,
225*4882a593Smuzhiyun 	CLK_I2S3_SRC_SEL_GPLL		= 0,
226*4882a593Smuzhiyun 	CLK_I2S3_SRC_SEL_CPLL,
227*4882a593Smuzhiyun 	CLK_I2S3_SRC_SEL_NPLL,
228*4882a593Smuzhiyun 	CLK_I2S3_SRC_DIV_SHIFT		= 0,
229*4882a593Smuzhiyun 	CLK_I2S3_SRC_DIV_MASK		= 0x7f << CLK_I2S3_SRC_DIV_SHIFT,
230*4882a593Smuzhiyun 
231*4882a593Smuzhiyun 	/* CRU_CLK_SEL22_CON */
232*4882a593Smuzhiyun 	CLK_I2S3_FRAC_NUMERATOR_SHIFT	= 16,
233*4882a593Smuzhiyun 	CLK_I2S3_FRAC_NUMERATOR_MASK	= 0xffff << 16,
234*4882a593Smuzhiyun 	CLK_I2S3_FRAC_DENOMINATOR_SHIFT	= 0,
235*4882a593Smuzhiyun 	CLK_I2S3_FRAC_DENOMINATOR_MASK	= 0xffff,
236*4882a593Smuzhiyun 
237*4882a593Smuzhiyun 	/* CRU_CLK_SEL27_CON */
238*4882a593Smuzhiyun 	CLK_CRYPTO_PKA_SEL_SHIFT	= 6,
239*4882a593Smuzhiyun 	CLK_CRYPTO_PKA_SEL_MASK		= 3 << CLK_CRYPTO_PKA_SEL_SHIFT,
240*4882a593Smuzhiyun 	CLK_CRYPTO_PKA_SEL_300M		= 0,
241*4882a593Smuzhiyun 	CLK_CRYPTO_PKA_SEL_200M,
242*4882a593Smuzhiyun 	CLK_CRYPTO_PKA_SEL_100M,
243*4882a593Smuzhiyun 	CLK_CRYPTO_CORE_SEL_SHIFT	= 4,
244*4882a593Smuzhiyun 	CLK_CRYPTO_CORE_SEL_MASK	= 3 << CLK_CRYPTO_CORE_SEL_SHIFT,
245*4882a593Smuzhiyun 	CLK_CRYPTO_CORE_SEL_200M	= 0,
246*4882a593Smuzhiyun 	CLK_CRYPTO_CORE_SEL_150M,
247*4882a593Smuzhiyun 	CLK_CRYPTO_CORE_SEL_100M,
248*4882a593Smuzhiyun 	HCLK_SECURE_FLASH_SEL_SHIFT	= 2,
249*4882a593Smuzhiyun 	HCLK_SECURE_FLASH_SEL_MASK	= 3 << HCLK_SECURE_FLASH_SEL_SHIFT,
250*4882a593Smuzhiyun 	HCLK_SECURE_FLASH_SEL_150M	= 0,
251*4882a593Smuzhiyun 	HCLK_SECURE_FLASH_SEL_100M,
252*4882a593Smuzhiyun 	HCLK_SECURE_FLASH_SEL_75M,
253*4882a593Smuzhiyun 	HCLK_SECURE_FLASH_SEL_24M,
254*4882a593Smuzhiyun 	ACLK_SECURE_FLASH_SEL_SHIFT	= 0,
255*4882a593Smuzhiyun 	ACLK_SECURE_FLASH_SEL_MASK	= 3 << ACLK_SECURE_FLASH_SEL_SHIFT,
256*4882a593Smuzhiyun 	ACLK_SECURE_FLASH_SEL_200M	= 0,
257*4882a593Smuzhiyun 	ACLK_SECURE_FLASH_SEL_150M,
258*4882a593Smuzhiyun 	ACLK_SECURE_FLASH_SEL_100M,
259*4882a593Smuzhiyun 	ACLK_SECURE_FLASH_SEL_24M,
260*4882a593Smuzhiyun 
261*4882a593Smuzhiyun 	/* CRU_CLK_SEL28_CON */
262*4882a593Smuzhiyun 	CCLK_EMMC_SEL_SHIFT		= 12,
263*4882a593Smuzhiyun 	CCLK_EMMC_SEL_MASK		= 7 << CCLK_EMMC_SEL_SHIFT,
264*4882a593Smuzhiyun 	CCLK_EMMC_SEL_24M		= 0,
265*4882a593Smuzhiyun 	CCLK_EMMC_SEL_200M,
266*4882a593Smuzhiyun 	CCLK_EMMC_SEL_150M,
267*4882a593Smuzhiyun 	CCLK_EMMC_SEL_100M,
268*4882a593Smuzhiyun 	CCLK_EMMC_SEL_50M,
269*4882a593Smuzhiyun 	CCLK_EMMC_SEL_375K,
270*4882a593Smuzhiyun 	BCLK_EMMC_SEL_SHIFT		= 8,
271*4882a593Smuzhiyun 	BCLK_EMMC_SEL_MASK		= 3 << BCLK_EMMC_SEL_SHIFT,
272*4882a593Smuzhiyun 	BCLK_EMMC_SEL_200M		= 0,
273*4882a593Smuzhiyun 	BCLK_EMMC_SEL_150M,
274*4882a593Smuzhiyun 	BCLK_EMMC_SEL_125M,
275*4882a593Smuzhiyun 	SCLK_SFC_SEL_SHIFT		= 4,
276*4882a593Smuzhiyun 	SCLK_SFC_SEL_MASK		= 7 << SCLK_SFC_SEL_SHIFT,
277*4882a593Smuzhiyun 	SCLK_SFC_SEL_24M		= 0,
278*4882a593Smuzhiyun 	SCLK_SFC_SEL_50M,
279*4882a593Smuzhiyun 	SCLK_SFC_SEL_75M,
280*4882a593Smuzhiyun 	SCLK_SFC_SEL_100M,
281*4882a593Smuzhiyun 	SCLK_SFC_SEL_125M,
282*4882a593Smuzhiyun 	SCLK_SFC_SEL_150M,
283*4882a593Smuzhiyun 	NCLK_NANDC_SEL_SHIFT		= 0,
284*4882a593Smuzhiyun 	NCLK_NANDC_SEL_MASK		= 3 << NCLK_NANDC_SEL_SHIFT,
285*4882a593Smuzhiyun 	NCLK_NANDC_SEL_200M		= 0,
286*4882a593Smuzhiyun 	NCLK_NANDC_SEL_150M,
287*4882a593Smuzhiyun 	NCLK_NANDC_SEL_100M,
288*4882a593Smuzhiyun 	NCLK_NANDC_SEL_24M,
289*4882a593Smuzhiyun 
290*4882a593Smuzhiyun 	/* CRU_CLK_SEL30_CON */
291*4882a593Smuzhiyun 	CLK_SDMMC1_SEL_SHIFT		= 12,
292*4882a593Smuzhiyun 	CLK_SDMMC1_SEL_MASK		= 7 << CLK_SDMMC1_SEL_SHIFT,
293*4882a593Smuzhiyun 	CLK_SDMMC0_SEL_SHIFT		= 8,
294*4882a593Smuzhiyun 	CLK_SDMMC0_SEL_MASK		= 7 << CLK_SDMMC0_SEL_SHIFT,
295*4882a593Smuzhiyun 	CLK_SDMMC_SEL_24M		= 0,
296*4882a593Smuzhiyun 	CLK_SDMMC_SEL_400M,
297*4882a593Smuzhiyun 	CLK_SDMMC_SEL_300M,
298*4882a593Smuzhiyun 	CLK_SDMMC_SEL_100M,
299*4882a593Smuzhiyun 	CLK_SDMMC_SEL_50M,
300*4882a593Smuzhiyun 	CLK_SDMMC_SEL_750K,
301*4882a593Smuzhiyun 
302*4882a593Smuzhiyun 	/* CRU_CLK_SEL31_CON */
303*4882a593Smuzhiyun 	CLK_MAC0_OUT_SEL_SHIFT		= 14,
304*4882a593Smuzhiyun 	CLK_MAC0_OUT_SEL_MASK		= 3 << CLK_MAC0_OUT_SEL_SHIFT,
305*4882a593Smuzhiyun 	CLK_MAC0_OUT_SEL_125M		= 0,
306*4882a593Smuzhiyun 	CLK_MAC0_OUT_SEL_50M,
307*4882a593Smuzhiyun 	CLK_MAC0_OUT_SEL_25M,
308*4882a593Smuzhiyun 	CLK_MAC0_OUT_SEL_24M,
309*4882a593Smuzhiyun 	CLK_GMAC0_PTP_REF_SEL_SHIFT	= 12,
310*4882a593Smuzhiyun 	CLK_GMAC0_PTP_REF_SEL_MASK	= 3 << CLK_GMAC0_PTP_REF_SEL_SHIFT,
311*4882a593Smuzhiyun 	CLK_GMAC0_PTP_REF_SEL_62_5M	= 0,
312*4882a593Smuzhiyun 	CLK_GMAC0_PTP_REF_SEL_100M,
313*4882a593Smuzhiyun 	CLK_GMAC0_PTP_REF_SEL_50M,
314*4882a593Smuzhiyun 	CLK_GMAC0_PTP_REF_SEL_24M,
315*4882a593Smuzhiyun 	CLK_MAC0_2TOP_SEL_SHIFT		= 8,
316*4882a593Smuzhiyun 	CLK_MAC0_2TOP_SEL_MASK		= 3 << CLK_MAC0_2TOP_SEL_SHIFT,
317*4882a593Smuzhiyun 	CLK_MAC0_2TOP_SEL_125M		= 0,
318*4882a593Smuzhiyun 	CLK_MAC0_2TOP_SEL_50M,
319*4882a593Smuzhiyun 	CLK_MAC0_2TOP_SEL_25M,
320*4882a593Smuzhiyun 	CLK_MAC0_2TOP_SEL_PPLL,
321*4882a593Smuzhiyun 	RGMII0_CLK_SEL_SHIFT		= 4,
322*4882a593Smuzhiyun 	RGMII0_CLK_SEL_MASK		= 3 << RGMII0_CLK_SEL_SHIFT,
323*4882a593Smuzhiyun 	RGMII0_CLK_SEL_125M		= 0,
324*4882a593Smuzhiyun 	RGMII0_CLK_SEL_125M_1,
325*4882a593Smuzhiyun 	RGMII0_CLK_SEL_2_5M,
326*4882a593Smuzhiyun 	RGMII0_CLK_SEL_25M,
327*4882a593Smuzhiyun 	RMII0_CLK_SEL_SHIFT		= 3,
328*4882a593Smuzhiyun 	RMII0_CLK_SEL_MASK		= 1 << RMII0_CLK_SEL_SHIFT,
329*4882a593Smuzhiyun 	RMII0_CLK_SEL_2_5M		= 0,
330*4882a593Smuzhiyun 	RMII0_CLK_SEL_25M,
331*4882a593Smuzhiyun 	RMII0_EXTCLK_SEL_SHIFT		= 2,
332*4882a593Smuzhiyun 	RMII0_EXTCLK_SEL_MASK		= 1 << RMII0_EXTCLK_SEL_SHIFT,
333*4882a593Smuzhiyun 	RMII0_EXTCLK_SEL_MAC0_TOP	= 0,
334*4882a593Smuzhiyun 	RMII0_EXTCLK_SEL_IO,
335*4882a593Smuzhiyun 	RMII0_MODE_SHIFT		= 0,
336*4882a593Smuzhiyun 	RMII0_MODE_MASK			= 3 << RMII0_MODE_SHIFT,
337*4882a593Smuzhiyun 	RMII0_MODE_SEL_RGMII		= 0,
338*4882a593Smuzhiyun 	RMII0_MODE_SEL_RMII,
339*4882a593Smuzhiyun 	RMII0_MODE_SEL_GMII,
340*4882a593Smuzhiyun 
341*4882a593Smuzhiyun 	/* CRU_CLK_SEL32_CON */
342*4882a593Smuzhiyun 	CLK_SDMMC2_SEL_SHIFT		= 8,
343*4882a593Smuzhiyun 	CLK_SDMMC2_SEL_MASK		= 7 << CLK_SDMMC2_SEL_SHIFT,
344*4882a593Smuzhiyun 
345*4882a593Smuzhiyun 	/* CRU_CLK_SEL38_CON */
346*4882a593Smuzhiyun 	ACLK_VOP_PRE_SEL_SHIFT		= 6,
347*4882a593Smuzhiyun 	ACLK_VOP_PRE_SEL_MASK		= 3 << ACLK_VOP_PRE_SEL_SHIFT,
348*4882a593Smuzhiyun 	ACLK_VOP_PRE_SEL_CPLL		= 0,
349*4882a593Smuzhiyun 	ACLK_VOP_PRE_SEL_GPLL,
350*4882a593Smuzhiyun 	ACLK_VOP_PRE_SEL_HPLL,
351*4882a593Smuzhiyun 	ACLK_VOP_PRE_SEL_VPLL,
352*4882a593Smuzhiyun 	ACLK_VOP_PRE_DIV_SHIFT		= 0,
353*4882a593Smuzhiyun 	ACLK_VOP_PRE_DIV_MASK		= 0x1f << ACLK_VOP_PRE_DIV_SHIFT,
354*4882a593Smuzhiyun 
355*4882a593Smuzhiyun 	/* CRU_CLK_SEL39_CON */
356*4882a593Smuzhiyun 	DCLK0_VOP_SEL_SHIFT		= 10,
357*4882a593Smuzhiyun 	DCLK0_VOP_SEL_MASK		= 3 << DCLK0_VOP_SEL_SHIFT,
358*4882a593Smuzhiyun 	DCLK_VOP_SEL_HPLL		= 0,
359*4882a593Smuzhiyun 	DCLK_VOP_SEL_VPLL,
360*4882a593Smuzhiyun 	DCLK_VOP_SEL_GPLL,
361*4882a593Smuzhiyun 	DCLK_VOP_SEL_CPLL,
362*4882a593Smuzhiyun 	DCLK0_VOP_DIV_SHIFT		= 0,
363*4882a593Smuzhiyun 	DCLK0_VOP_DIV_MASK		= 0xff << DCLK0_VOP_DIV_SHIFT,
364*4882a593Smuzhiyun 
365*4882a593Smuzhiyun 	/* CRU_CLK_SEL40_CON */
366*4882a593Smuzhiyun 	DCLK1_VOP_SEL_SHIFT		= 10,
367*4882a593Smuzhiyun 	DCLK1_VOP_SEL_MASK		= 3 << DCLK1_VOP_SEL_SHIFT,
368*4882a593Smuzhiyun 	DCLK1_VOP_DIV_SHIFT		= 0,
369*4882a593Smuzhiyun 	DCLK1_VOP_DIV_MASK		= 0xff << DCLK1_VOP_DIV_SHIFT,
370*4882a593Smuzhiyun 
371*4882a593Smuzhiyun 	/* CRU_CLK_SEL41_CON */
372*4882a593Smuzhiyun 	DCLK2_VOP_SEL_SHIFT		= 10,
373*4882a593Smuzhiyun 	DCLK2_VOP_SEL_MASK		= 3 << DCLK2_VOP_SEL_SHIFT,
374*4882a593Smuzhiyun 	DCLK2_VOP_DIV_SHIFT		= 0,
375*4882a593Smuzhiyun 	DCLK2_VOP_DIV_MASK		= 0xff << DCLK2_VOP_DIV_SHIFT,
376*4882a593Smuzhiyun 
377*4882a593Smuzhiyun 	/* CRU_CLK_SEL43_CON */
378*4882a593Smuzhiyun 	DCLK_EBC_SEL_SHIFT		= 6,
379*4882a593Smuzhiyun 	DCLK_EBC_SEL_MASK		= 3 << DCLK_EBC_SEL_SHIFT,
380*4882a593Smuzhiyun 	DCLK_EBC_SEL_GPLL_400M		= 0,
381*4882a593Smuzhiyun 	DCLK_EBC_SEL_CPLL_333M,
382*4882a593Smuzhiyun 	DCLK_EBC_SEL_GPLL_200M,
383*4882a593Smuzhiyun 
384*4882a593Smuzhiyun 	/* CRU_CLK_SEL47_CON */
385*4882a593Smuzhiyun 	ACLK_RKVDEC_SEL_SHIFT		= 7,
386*4882a593Smuzhiyun 	ACLK_RKVDEC_SEL_MASK		= 1 << ACLK_RKVDEC_SEL_SHIFT,
387*4882a593Smuzhiyun 	ACLK_RKVDEC_SEL_GPLL		= 0,
388*4882a593Smuzhiyun 	ACLK_RKVDEC_SEL_CPLL,
389*4882a593Smuzhiyun 	ACLK_RKVDEC_DIV_SHIFT		= 0,
390*4882a593Smuzhiyun 	ACLK_RKVDEC_DIV_MASK		= 0x1f << ACLK_RKVDEC_DIV_SHIFT,
391*4882a593Smuzhiyun 
392*4882a593Smuzhiyun 	/* CRU_CLK_SEL49_CON */
393*4882a593Smuzhiyun 	CLK_RKVDEC_CORE_SEL_SHIFT	= 14,
394*4882a593Smuzhiyun 	CLK_RKVDEC_CORE_SEL_MASK	= 0x3 << CLK_RKVDEC_CORE_SEL_SHIFT,
395*4882a593Smuzhiyun 	CLK_RKVDEC_CORE_SEL_GPLL	= 0,
396*4882a593Smuzhiyun 	CLK_RKVDEC_CORE_SEL_CPLL,
397*4882a593Smuzhiyun 	CLK_RKVDEC_CORE_SEL_NPLL,
398*4882a593Smuzhiyun 	CLK_RKVDEC_CORE_SEL_VPLL,
399*4882a593Smuzhiyun 	CLK_RKVDEC_CORE_DIV_SHIFT	= 8,
400*4882a593Smuzhiyun 	CLK_RKVDEC_CORE_DIV_MASK	= 0x1f << CLK_RKVDEC_CORE_DIV_SHIFT,
401*4882a593Smuzhiyun 
402*4882a593Smuzhiyun 	/* CRU_CLK_SEL50_CON */
403*4882a593Smuzhiyun 	PCLK_BUS_SEL_SHIFT		= 4,
404*4882a593Smuzhiyun 	PCLK_BUS_SEL_MASK		= 3 << PCLK_BUS_SEL_SHIFT,
405*4882a593Smuzhiyun 	PCLK_BUS_SEL_100M		= 0,
406*4882a593Smuzhiyun 	PCLK_BUS_SEL_75M,
407*4882a593Smuzhiyun 	PCLK_BUS_SEL_50M,
408*4882a593Smuzhiyun 	PCLK_BUS_SEL_24M,
409*4882a593Smuzhiyun 	ACLK_BUS_SEL_SHIFT		= 0,
410*4882a593Smuzhiyun 	ACLK_BUS_SEL_MASK		= 3 << ACLK_BUS_SEL_SHIFT,
411*4882a593Smuzhiyun 	ACLK_BUS_SEL_200M		= 0,
412*4882a593Smuzhiyun 	ACLK_BUS_SEL_150M,
413*4882a593Smuzhiyun 	ACLK_BUS_SEL_100M,
414*4882a593Smuzhiyun 	ACLK_BUS_SEL_24M,
415*4882a593Smuzhiyun 
416*4882a593Smuzhiyun 	/* CRU_CLK_SEL51_CON */
417*4882a593Smuzhiyun 	CLK_TSADC_DIV_SHIFT		= 8,
418*4882a593Smuzhiyun 	CLK_TSADC_DIV_MASK		= 0x7f << CLK_TSADC_DIV_SHIFT,
419*4882a593Smuzhiyun 	CLK_TSADC_TSEN_SEL_SHIFT	= 4,
420*4882a593Smuzhiyun 	CLK_TSADC_TSEN_SEL_MASK		= 0x3 << CLK_TSADC_TSEN_SEL_SHIFT,
421*4882a593Smuzhiyun 	CLK_TSADC_TSEN_SEL_24M		= 0,
422*4882a593Smuzhiyun 	CLK_TSADC_TSEN_SEL_100M,
423*4882a593Smuzhiyun 	CLK_TSADC_TSEN_SEL_CPLL_100M,
424*4882a593Smuzhiyun 	CLK_TSADC_TSEN_DIV_SHIFT	= 0,
425*4882a593Smuzhiyun 	CLK_TSADC_TSEN_DIV_MASK		= 0x7 << CLK_TSADC_TSEN_DIV_SHIFT,
426*4882a593Smuzhiyun 
427*4882a593Smuzhiyun 	/* CRU_CLK_SEL52_CON */
428*4882a593Smuzhiyun 	CLK_UART_SEL_SHIFT		= 12,
429*4882a593Smuzhiyun 	CLK_UART_SEL_MASK		= 0x3 << CLK_UART_SEL_SHIFT,
430*4882a593Smuzhiyun 	CLK_UART_SEL_SRC		= 0,
431*4882a593Smuzhiyun 	CLK_UART_SEL_FRAC,
432*4882a593Smuzhiyun 	CLK_UART_SEL_XIN24M,
433*4882a593Smuzhiyun 	CLK_UART_SRC_SEL_SHIFT		= 8,
434*4882a593Smuzhiyun 	CLK_UART_SRC_SEL_MASK		= 0x3 << CLK_UART_SRC_SEL_SHIFT,
435*4882a593Smuzhiyun 	CLK_UART_SRC_SEL_GPLL		= 0,
436*4882a593Smuzhiyun 	CLK_UART_SRC_SEL_CPLL,
437*4882a593Smuzhiyun 	CLK_UART_SRC_SEL_480M,
438*4882a593Smuzhiyun 	CLK_UART_SRC_DIV_SHIFT		= 0,
439*4882a593Smuzhiyun 	CLK_UART_SRC_DIV_MASK		= 0x3f << CLK_UART_SRC_DIV_SHIFT,
440*4882a593Smuzhiyun 
441*4882a593Smuzhiyun 	/* CRU_CLK_SEL53_CON */
442*4882a593Smuzhiyun 	CLK_UART_FRAC_NUMERATOR_SHIFT	= 16,
443*4882a593Smuzhiyun 	CLK_UART_FRAC_NUMERATOR_MASK	= 0xffff << 16,
444*4882a593Smuzhiyun 	CLK_UART_FRAC_DENOMINATOR_SHIFT	= 0,
445*4882a593Smuzhiyun 	CLK_UART_FRAC_DENOMINATOR_MASK	= 0xffff,
446*4882a593Smuzhiyun 
447*4882a593Smuzhiyun 	/* CRU_CLK_SEL71_CON */
448*4882a593Smuzhiyun 	CLK_I2C_SEL_SHIFT		= 8,
449*4882a593Smuzhiyun 	CLK_I2C_SEL_MASK		= 3 << CLK_I2C_SEL_SHIFT,
450*4882a593Smuzhiyun 	CLK_I2C_SEL_200M		= 0,
451*4882a593Smuzhiyun 	CLK_I2C_SEL_100M,
452*4882a593Smuzhiyun 	CLK_I2C_SEL_24M,
453*4882a593Smuzhiyun 	CLK_I2C_SEL_CPLL_100M,
454*4882a593Smuzhiyun 
455*4882a593Smuzhiyun 	/* CRU_CLK_SEL72_CON */
456*4882a593Smuzhiyun 	CLK_PWM3_SEL_SHIFT		= 12,
457*4882a593Smuzhiyun 	CLK_PWM3_SEL_MASK		= 3 << CLK_PWM3_SEL_SHIFT,
458*4882a593Smuzhiyun 	CLK_PWM2_SEL_SHIFT		= 10,
459*4882a593Smuzhiyun 	CLK_PWM2_SEL_MASK		= 3 << CLK_PWM2_SEL_SHIFT,
460*4882a593Smuzhiyun 	CLK_PWM1_SEL_SHIFT		= 8,
461*4882a593Smuzhiyun 	CLK_PWM1_SEL_MASK		= 3 << CLK_PWM1_SEL_SHIFT,
462*4882a593Smuzhiyun 	CLK_PWM_SEL_100M		= 0,
463*4882a593Smuzhiyun 	CLK_PWM_SEL_24M,
464*4882a593Smuzhiyun 	CLK_PWM_SEL_CPLL_100M,
465*4882a593Smuzhiyun 	CLK_SPI3_SEL_SHIFT		= 6,
466*4882a593Smuzhiyun 	CLK_SPI3_SEL_MASK		= 3 << CLK_SPI3_SEL_SHIFT,
467*4882a593Smuzhiyun 	CLK_SPI2_SEL_SHIFT		= 4,
468*4882a593Smuzhiyun 	CLK_SPI2_SEL_MASK		= 3 << CLK_SPI2_SEL_SHIFT,
469*4882a593Smuzhiyun 	CLK_SPI1_SEL_SHIFT		= 2,
470*4882a593Smuzhiyun 	CLK_SPI1_SEL_MASK		= 3 << CLK_SPI1_SEL_SHIFT,
471*4882a593Smuzhiyun 	CLK_SPI0_SEL_SHIFT		= 0,
472*4882a593Smuzhiyun 	CLK_SPI0_SEL_MASK		= 3 << CLK_SPI0_SEL_SHIFT,
473*4882a593Smuzhiyun 	CLK_SPI_SEL_200M		= 0,
474*4882a593Smuzhiyun 	CLK_SPI_SEL_24M,
475*4882a593Smuzhiyun 	CLK_SPI_SEL_CPLL_100M,
476*4882a593Smuzhiyun 
477*4882a593Smuzhiyun 	/* CRU_CLK_SEL73_CON */
478*4882a593Smuzhiyun 	PCLK_TOP_SEL_SHIFT		= 12,
479*4882a593Smuzhiyun 	PCLK_TOP_SEL_MASK		= 3 << PCLK_TOP_SEL_SHIFT,
480*4882a593Smuzhiyun 	PCLK_TOP_SEL_100M		= 0,
481*4882a593Smuzhiyun 	PCLK_TOP_SEL_75M,
482*4882a593Smuzhiyun 	PCLK_TOP_SEL_50M,
483*4882a593Smuzhiyun 	PCLK_TOP_SEL_24M,
484*4882a593Smuzhiyun 	HCLK_TOP_SEL_SHIFT		= 8,
485*4882a593Smuzhiyun 	HCLK_TOP_SEL_MASK		= 3 << HCLK_TOP_SEL_SHIFT,
486*4882a593Smuzhiyun 	HCLK_TOP_SEL_150M		= 0,
487*4882a593Smuzhiyun 	HCLK_TOP_SEL_100M,
488*4882a593Smuzhiyun 	HCLK_TOP_SEL_75M,
489*4882a593Smuzhiyun 	HCLK_TOP_SEL_24M,
490*4882a593Smuzhiyun 	ACLK_TOP_LOW_SEL_SHIFT		= 4,
491*4882a593Smuzhiyun 	ACLK_TOP_LOW_SEL_MASK		= 3 << ACLK_TOP_LOW_SEL_SHIFT,
492*4882a593Smuzhiyun 	ACLK_TOP_LOW_SEL_400M		= 0,
493*4882a593Smuzhiyun 	ACLK_TOP_LOW_SEL_300M,
494*4882a593Smuzhiyun 	ACLK_TOP_LOW_SEL_200M,
495*4882a593Smuzhiyun 	ACLK_TOP_LOW_SEL_24M,
496*4882a593Smuzhiyun 	ACLK_TOP_HIGH_SEL_SHIFT		= 0,
497*4882a593Smuzhiyun 	ACLK_TOP_HIGH_SEL_MASK		= 3 << ACLK_TOP_HIGH_SEL_SHIFT,
498*4882a593Smuzhiyun 	ACLK_TOP_HIGH_SEL_500M		= 0,
499*4882a593Smuzhiyun 	ACLK_TOP_HIGH_SEL_400M,
500*4882a593Smuzhiyun 	ACLK_TOP_HIGH_SEL_300M,
501*4882a593Smuzhiyun 	ACLK_TOP_HIGH_SEL_24M,
502*4882a593Smuzhiyun 
503*4882a593Smuzhiyun 	/* CRU_CLK_SEL78_CON */
504*4882a593Smuzhiyun 	CPLL_500M_DIV_SHIFT		= 8,
505*4882a593Smuzhiyun 	CPLL_500M_DIV_MASK		= 0x1f << CPLL_500M_DIV_SHIFT,
506*4882a593Smuzhiyun 
507*4882a593Smuzhiyun 	/* CRU_CLK_SEL79_CON */
508*4882a593Smuzhiyun 	CPLL_250M_DIV_SHIFT		= 8,
509*4882a593Smuzhiyun 	CPLL_250M_DIV_MASK		= 0x1f << CPLL_250M_DIV_SHIFT,
510*4882a593Smuzhiyun 	CPLL_333M_DIV_SHIFT		= 0,
511*4882a593Smuzhiyun 	CPLL_333M_DIV_MASK		= 0x1f << CPLL_333M_DIV_SHIFT,
512*4882a593Smuzhiyun 
513*4882a593Smuzhiyun 	/* CRU_CLK_SEL80_CON */
514*4882a593Smuzhiyun 	CPLL_62P5M_DIV_SHIFT		= 8,
515*4882a593Smuzhiyun 	CPLL_62P5M_DIV_MASK		= 0x1f << CPLL_62P5M_DIV_SHIFT,
516*4882a593Smuzhiyun 	CPLL_125M_DIV_SHIFT		= 0,
517*4882a593Smuzhiyun 	CPLL_125M_DIV_MASK		= 0x1f << CPLL_125M_DIV_SHIFT,
518*4882a593Smuzhiyun 
519*4882a593Smuzhiyun 	/* CRU_CLK_SEL81_CON */
520*4882a593Smuzhiyun 	CPLL_25M_DIV_SHIFT		= 8,
521*4882a593Smuzhiyun 	CPLL_25M_DIV_MASK		= 0x1f << CPLL_25M_DIV_SHIFT,
522*4882a593Smuzhiyun 	CPLL_50M_DIV_SHIFT		= 0,
523*4882a593Smuzhiyun 	CPLL_50M_DIV_MASK		= 0x1f << CPLL_50M_DIV_SHIFT,
524*4882a593Smuzhiyun 
525*4882a593Smuzhiyun 	/* CRU_CLK_SEL82_CON */
526*4882a593Smuzhiyun 	CPLL_100M_DIV_SHIFT		= 0,
527*4882a593Smuzhiyun 	CPLL_100M_DIV_MASK		= 0x1f << CPLL_100M_DIV_SHIFT,
528*4882a593Smuzhiyun 
529*4882a593Smuzhiyun 	/* GRF_SOC_CON2 */
530*4882a593Smuzhiyun 	I2S3_MCLKOUT_SEL_SHIFT		= 15,
531*4882a593Smuzhiyun 	I2S3_MCLKOUT_SEL_MASK		= 0x1 << I2S3_MCLKOUT_SEL_SHIFT,
532*4882a593Smuzhiyun 	I2S3_MCLKOUT_SEL_RX		= 0,
533*4882a593Smuzhiyun 	I2S3_MCLKOUT_SEL_TX,
534*4882a593Smuzhiyun 	I2S3_MCLK_IOE_SEL_SHIFT		= 3,
535*4882a593Smuzhiyun 	I2S3_MCLK_IOE_SEL_MASK		= 0x1 << I2S3_MCLK_IOE_SEL_SHIFT,
536*4882a593Smuzhiyun 	I2S3_MCLK_IOE_SEL_CLKIN		= 0,
537*4882a593Smuzhiyun 	I2S3_MCLK_IOE_SEL_CLKOUT,
538*4882a593Smuzhiyun 
539*4882a593Smuzhiyun };
540*4882a593Smuzhiyun #endif
541