xref: /OK3568_Linux_fs/u-boot/arch/arm/include/asm/arch-rockchip/cru_rv1106.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */
2*4882a593Smuzhiyun /*
3*4882a593Smuzhiyun  * Copyright (c) 2022 Rockchip Electronics Co. Ltd.
4*4882a593Smuzhiyun  * Author: Elaine Zhang <zhangqing@rock-chips.com>
5*4882a593Smuzhiyun  */
6*4882a593Smuzhiyun 
7*4882a593Smuzhiyun #ifndef _ASM_ARCH_CRU_RV1106_H
8*4882a593Smuzhiyun #define _ASM_ARCH_CRU_RV1106_H
9*4882a593Smuzhiyun 
10*4882a593Smuzhiyun #include <common.h>
11*4882a593Smuzhiyun 
12*4882a593Smuzhiyun #define MHz		1000000
13*4882a593Smuzhiyun #define KHz		1000
14*4882a593Smuzhiyun #define OSC_HZ		(24 * MHz)
15*4882a593Smuzhiyun 
16*4882a593Smuzhiyun #ifdef CONFIG_SPL_KERNEL_BOOT
17*4882a593Smuzhiyun #define APLL_HZ		(1104 * MHz)
18*4882a593Smuzhiyun #else
19*4882a593Smuzhiyun #define APLL_HZ		(816 * MHz)
20*4882a593Smuzhiyun #endif
21*4882a593Smuzhiyun #define GPLL_HZ		(1188 * MHz)
22*4882a593Smuzhiyun #define CPLL_HZ		(1000 * MHz)
23*4882a593Smuzhiyun 
24*4882a593Smuzhiyun /* RV1106 pll id */
25*4882a593Smuzhiyun enum rv1106_pll_id {
26*4882a593Smuzhiyun 	APLL,
27*4882a593Smuzhiyun 	DPLL,
28*4882a593Smuzhiyun 	CPLL,
29*4882a593Smuzhiyun 	GPLL,
30*4882a593Smuzhiyun 	PLL_COUNT,
31*4882a593Smuzhiyun };
32*4882a593Smuzhiyun 
33*4882a593Smuzhiyun struct rv1106_clk_info {
34*4882a593Smuzhiyun 	unsigned long id;
35*4882a593Smuzhiyun 	char *name;
36*4882a593Smuzhiyun 	bool is_cru;
37*4882a593Smuzhiyun };
38*4882a593Smuzhiyun 
39*4882a593Smuzhiyun struct rv1106_clk_priv {
40*4882a593Smuzhiyun 	struct rv1106_cru *cru;
41*4882a593Smuzhiyun 	struct rv1106_grf *grf;
42*4882a593Smuzhiyun 	ulong gpll_hz;
43*4882a593Smuzhiyun 	ulong cpll_hz;
44*4882a593Smuzhiyun 	ulong armclk_hz;
45*4882a593Smuzhiyun 	ulong armclk_enter_hz;
46*4882a593Smuzhiyun 	ulong armclk_init_hz;
47*4882a593Smuzhiyun 	bool sync_kernel;
48*4882a593Smuzhiyun 	bool set_armclk_rate;
49*4882a593Smuzhiyun };
50*4882a593Smuzhiyun 
51*4882a593Smuzhiyun struct rv1106_grf_clk_priv {
52*4882a593Smuzhiyun 	struct rv1106_grf *grf;
53*4882a593Smuzhiyun };
54*4882a593Smuzhiyun 
55*4882a593Smuzhiyun struct rv1106_pll {
56*4882a593Smuzhiyun 	unsigned int con0;
57*4882a593Smuzhiyun 	unsigned int con1;
58*4882a593Smuzhiyun 	unsigned int con2;
59*4882a593Smuzhiyun 	unsigned int con3;
60*4882a593Smuzhiyun 	unsigned int con4;
61*4882a593Smuzhiyun 	unsigned int reserved0[3];
62*4882a593Smuzhiyun };
63*4882a593Smuzhiyun 
64*4882a593Smuzhiyun struct rv1106_cru {
65*4882a593Smuzhiyun 	unsigned int reserved0[192];
66*4882a593Smuzhiyun 	unsigned int pmu_clksel_con[8];
67*4882a593Smuzhiyun 	unsigned int reserved1[312];
68*4882a593Smuzhiyun 	unsigned int pmu_clkgate_con[3];
69*4882a593Smuzhiyun 	unsigned int reserved2[125];
70*4882a593Smuzhiyun 	unsigned int pmu_softrst_con[3];
71*4882a593Smuzhiyun 	unsigned int reserved3[15741];
72*4882a593Smuzhiyun 	struct rv1106_pll pll[4];
73*4882a593Smuzhiyun 	unsigned int reserved4[128];
74*4882a593Smuzhiyun 	unsigned int mode;
75*4882a593Smuzhiyun 	unsigned int reserved5[31];
76*4882a593Smuzhiyun 	unsigned int clksel_con[34];
77*4882a593Smuzhiyun 	unsigned int reserved6[286];
78*4882a593Smuzhiyun 	unsigned int clkgate_con[4];
79*4882a593Smuzhiyun 	unsigned int reserved7[124];
80*4882a593Smuzhiyun 	unsigned int softrst_con[3];
81*4882a593Smuzhiyun 	unsigned int reserved8[125];
82*4882a593Smuzhiyun 	unsigned int glb_cnt_th;
83*4882a593Smuzhiyun 	unsigned int glb_rst_st;
84*4882a593Smuzhiyun 	unsigned int glb_srst_fst;
85*4882a593Smuzhiyun 	unsigned int glb_srst_snd;
86*4882a593Smuzhiyun 	unsigned int glb_rst_con;
87*4882a593Smuzhiyun 	unsigned int con[2];
88*4882a593Smuzhiyun 	unsigned int sdmmc_con[2];
89*4882a593Smuzhiyun 	unsigned int emmc_con[2];
90*4882a593Smuzhiyun 	unsigned int reserved9[1461];
91*4882a593Smuzhiyun 	unsigned int peri_clksel_con[12];
92*4882a593Smuzhiyun 	unsigned int reserved10[308];
93*4882a593Smuzhiyun 	unsigned int peri_clkgate_con[8];
94*4882a593Smuzhiyun 	unsigned int reserved11[120];
95*4882a593Smuzhiyun 	unsigned int peri_softrst_con[8];
96*4882a593Smuzhiyun 	unsigned int reserved12[1592];
97*4882a593Smuzhiyun 	unsigned int vi_clksel_con[4];
98*4882a593Smuzhiyun 	unsigned int reserved13[316];
99*4882a593Smuzhiyun 	unsigned int vi_clkgate_con[3];
100*4882a593Smuzhiyun 	unsigned int reserved14[125];
101*4882a593Smuzhiyun 	unsigned int vi_softrst_con[3];
102*4882a593Smuzhiyun 	unsigned int reserved15[3645];
103*4882a593Smuzhiyun 	unsigned int core_clksel_con[5];
104*4882a593Smuzhiyun 	unsigned int reserved16[2043];
105*4882a593Smuzhiyun 	unsigned int vepu_clksel_con[2];
106*4882a593Smuzhiyun 	unsigned int reserved17[318];
107*4882a593Smuzhiyun 	unsigned int vepu_clkgate_con[3];
108*4882a593Smuzhiyun 	unsigned int reserved18[125];
109*4882a593Smuzhiyun 	unsigned int vepu_softrst_con[2];
110*4882a593Smuzhiyun 	unsigned int reserved19[1598];
111*4882a593Smuzhiyun 	unsigned int vo_clksel_con[4];
112*4882a593Smuzhiyun 	unsigned int reserved20[316];
113*4882a593Smuzhiyun 	unsigned int vo_clkgate_con[3];
114*4882a593Smuzhiyun 	unsigned int reserved21[125];
115*4882a593Smuzhiyun 	unsigned int vo_softrst_con[4];
116*4882a593Smuzhiyun };
117*4882a593Smuzhiyun check_member(rv1106_cru, vo_softrst_con[0], 0x1ca00);
118*4882a593Smuzhiyun 
119*4882a593Smuzhiyun struct pll_rate_table {
120*4882a593Smuzhiyun 	unsigned long rate;
121*4882a593Smuzhiyun 	unsigned int fbdiv;
122*4882a593Smuzhiyun 	unsigned int postdiv1;
123*4882a593Smuzhiyun 	unsigned int refdiv;
124*4882a593Smuzhiyun 	unsigned int postdiv2;
125*4882a593Smuzhiyun 	unsigned int dsmpd;
126*4882a593Smuzhiyun 	unsigned int frac;
127*4882a593Smuzhiyun };
128*4882a593Smuzhiyun 
129*4882a593Smuzhiyun #define RV1106_TOPCRU_BASE		0x10000
130*4882a593Smuzhiyun #define RV1106_SUBDDRCRU_BASE		0x1F000
131*4882a593Smuzhiyun 
132*4882a593Smuzhiyun #define RV1106_PLL_CON(x)		((x) * 0x4 + RV1106_TOPCRU_BASE)
133*4882a593Smuzhiyun #define RV1106_MODE_CON			(0x280 + RV1106_TOPCRU_BASE)
134*4882a593Smuzhiyun #define RV1106_SUBDDRMODE_CON		(0x280 + RV1106_SUBDDRCRU_BASE)
135*4882a593Smuzhiyun 
136*4882a593Smuzhiyun enum {
137*4882a593Smuzhiyun 	/* CRU_PMU_CLK_SEL0_CON */
138*4882a593Smuzhiyun 	CLK_I2C1_SEL_SHIFT		= 6,
139*4882a593Smuzhiyun 	CLK_I2C1_SEL_MASK		= 0x3 << CLK_I2C1_SEL_SHIFT,
140*4882a593Smuzhiyun 	CLK_I2C1_SEL_200M		= 0,
141*4882a593Smuzhiyun 	CLK_I2C1_SEL_100M,
142*4882a593Smuzhiyun 	CLK_I2C1_SEL_24M,
143*4882a593Smuzhiyun 	CLK_I2C1_SEL_32K,
144*4882a593Smuzhiyun 	HCLK_PMU_SEL_SHIFT		= 4,
145*4882a593Smuzhiyun 	HCLK_PMU_SEL_MASK		= 0x3 << HCLK_PMU_SEL_SHIFT,
146*4882a593Smuzhiyun 	HCLK_PMU_SEL_200M		= 0,
147*4882a593Smuzhiyun 	HCLK_PMU_SEL_100M,
148*4882a593Smuzhiyun 	HCLK_PMU_SEL_24M,
149*4882a593Smuzhiyun 	PCLK_PMU_SEL_SHIFT		= 3,
150*4882a593Smuzhiyun 	PCLK_PMU_SEL_MASK		= 0x1 << PCLK_PMU_SEL_SHIFT,
151*4882a593Smuzhiyun 	PCLK_PMU_SEL_100M		= 0,
152*4882a593Smuzhiyun 	PCLK_PMU_SEL_24M,
153*4882a593Smuzhiyun 
154*4882a593Smuzhiyun 	/* CRU_CLK_SEL5_CON */
155*4882a593Smuzhiyun 	CLK_UART_SRC_SEL_SHIFT		= 5,
156*4882a593Smuzhiyun 	CLK_UART_SRC_SEL_MASK		= 0x1 << CLK_UART_SRC_SEL_SHIFT,
157*4882a593Smuzhiyun 	CLK_UART_SRC_SEL_GPLL		= 0,
158*4882a593Smuzhiyun 	CLK_UART_SRC_SEL_CPLL,
159*4882a593Smuzhiyun 	CLK_UART_SRC_DIV_SHIFT		= 0,
160*4882a593Smuzhiyun 	CLK_UART_SRC_DIV_MASK		= 0x1f << CLK_UART_SRC_DIV_SHIFT,
161*4882a593Smuzhiyun 
162*4882a593Smuzhiyun 	/* CRU_CLK_SEL6_CON */
163*4882a593Smuzhiyun 	CLK_UART_FRAC_NUMERATOR_SHIFT	= 16,
164*4882a593Smuzhiyun 	CLK_UART_FRAC_NUMERATOR_MASK	= 0xffff << 16,
165*4882a593Smuzhiyun 	CLK_UART_FRAC_DENOMINATOR_SHIFT	= 0,
166*4882a593Smuzhiyun 	CLK_UART_FRAC_DENOMINATOR_MASK	= 0xffff,
167*4882a593Smuzhiyun 
168*4882a593Smuzhiyun 	/* CRU_CLK_SEL7_CON */
169*4882a593Smuzhiyun 	CLK_UART_SEL_SHIFT		= 0,
170*4882a593Smuzhiyun 	CLK_UART_SEL_MASK		= 0x3 << CLK_UART_SEL_SHIFT,
171*4882a593Smuzhiyun 	CLK_UART_SEL_SRC		= 0,
172*4882a593Smuzhiyun 	CLK_UART_SEL_FRAC,
173*4882a593Smuzhiyun 	CLK_UART_SEL_XIN24M,
174*4882a593Smuzhiyun 
175*4882a593Smuzhiyun 	/* CRU_CLK_SEL23_CON */
176*4882a593Smuzhiyun 	DCLK_VOP_SEL_SHIFT		= 8,
177*4882a593Smuzhiyun 	DCLK_VOP_SEL_MASK		= 0x1 << DCLK_VOP_SEL_SHIFT,
178*4882a593Smuzhiyun 	DCLK_VOP_SEL_GPLL		= 0,
179*4882a593Smuzhiyun 	DCLK_VOP_SEL_CPLL,
180*4882a593Smuzhiyun 	DCLK_VOP_DIV_SHIFT		= 3,
181*4882a593Smuzhiyun 	DCLK_VOP_DIV_MASK		= 0x1f << DCLK_VOP_DIV_SHIFT,
182*4882a593Smuzhiyun 
183*4882a593Smuzhiyun 	/* CRU_CLK_SEL24_CON */
184*4882a593Smuzhiyun 	PCLK_TOP_SEL_SHIFT		= 5,
185*4882a593Smuzhiyun 	PCLK_TOP_SEL_MASK		= 0x3 << PCLK_TOP_SEL_SHIFT,
186*4882a593Smuzhiyun 	PCLK_TOP_SEL_100M		= 0,
187*4882a593Smuzhiyun 	PCLK_TOP_SEL_50M,
188*4882a593Smuzhiyun 	PCLK_TOP_SEL_24M,
189*4882a593Smuzhiyun 
190*4882a593Smuzhiyun 	/* CRU_PERI_CLK_SEL1_CON */
191*4882a593Smuzhiyun 	CLK_I2C3_SEL_SHIFT		= 14,
192*4882a593Smuzhiyun 	CLK_I2C3_SEL_MASK		= 0x3 << CLK_I2C3_SEL_SHIFT,
193*4882a593Smuzhiyun 	CLK_I2C2_SEL_SHIFT		= 12,
194*4882a593Smuzhiyun 	CLK_I2C2_SEL_MASK		= 0x3 << CLK_I2C2_SEL_SHIFT,
195*4882a593Smuzhiyun 	CLK_I2C0_SEL_SHIFT		= 8,
196*4882a593Smuzhiyun 	CLK_I2C0_SEL_MASK		= 0x3 << CLK_I2C0_SEL_SHIFT,
197*4882a593Smuzhiyun 	CLK_I2C0_SEL_200M		= 0,
198*4882a593Smuzhiyun 	CLK_I2C0_SEL_100M,
199*4882a593Smuzhiyun 	CLK_I2C0_SEL_50M,
200*4882a593Smuzhiyun 	CLK_I2C0_SEL_24M,
201*4882a593Smuzhiyun 	HCLK_PERI_SEL_SHIFT		= 4,
202*4882a593Smuzhiyun 	HCLK_PERI_SEL_MASK		= 0x3 << HCLK_PERI_SEL_SHIFT,
203*4882a593Smuzhiyun 	HCLK_PERI_SEL_200M		= 0,
204*4882a593Smuzhiyun 	HCLK_PERI_SEL_100M,
205*4882a593Smuzhiyun 	HCLK_PERI_SEL_50M,
206*4882a593Smuzhiyun 	HCLK_PERI_SEL_24M,
207*4882a593Smuzhiyun 	ACLK_PERI_SEL_SHIFT		= 2,
208*4882a593Smuzhiyun 	ACLK_PERI_SEL_MASK		= 0x3 << ACLK_PERI_SEL_SHIFT,
209*4882a593Smuzhiyun 	ACLK_PERI_SEL_400M		= 0,
210*4882a593Smuzhiyun 	ACLK_PERI_SEL_200M,
211*4882a593Smuzhiyun 	ACLK_PERI_SEL_100M,
212*4882a593Smuzhiyun 	ACLK_PERI_SEL_24M,
213*4882a593Smuzhiyun 	PCLK_PERI_SEL_SHIFT		= 0,
214*4882a593Smuzhiyun 	PCLK_PERI_SEL_MASK		= 0x3 << PCLK_PERI_SEL_SHIFT,
215*4882a593Smuzhiyun 	PCLK_PERI_SEL_100M		= 0,
216*4882a593Smuzhiyun 	PCLK_PERI_SEL_50M,
217*4882a593Smuzhiyun 	PCLK_PERI_SEL_24M,
218*4882a593Smuzhiyun 
219*4882a593Smuzhiyun 	/* CRU_PERI_CLK_SEL2_CON */
220*4882a593Smuzhiyun 	CLK_I2C4_SEL_SHIFT		= 0,
221*4882a593Smuzhiyun 	CLK_I2C4_SEL_MASK		= 0x3 << CLK_I2C4_SEL_SHIFT,
222*4882a593Smuzhiyun 
223*4882a593Smuzhiyun 	/* CRU_PERI_CLK_SEL6_CON */
224*4882a593Smuzhiyun 	CLK_PWM2_SEL_SHIFT		= 11,
225*4882a593Smuzhiyun 	CLK_PWM2_SEL_MASK		= 0x3 << CLK_PWM2_SEL_SHIFT,
226*4882a593Smuzhiyun 	CLK_PWM1_SEL_SHIFT		= 9,
227*4882a593Smuzhiyun 	CLK_PWM1_SEL_MASK		= 0x3 << CLK_PWM1_SEL_SHIFT,
228*4882a593Smuzhiyun 	CLK_PWM_SEL_100M		= 0,
229*4882a593Smuzhiyun 	CLK_PWM_SEL_50M,
230*4882a593Smuzhiyun 	CLK_PWM_SEL_24M,
231*4882a593Smuzhiyun 	CLK_PKA_CRYPTO_SEL_SHIFT	= 7,
232*4882a593Smuzhiyun 	CLK_PKA_CRYPTO_SEL_MASK		= 0x3 << CLK_PKA_CRYPTO_SEL_SHIFT,
233*4882a593Smuzhiyun 	CLK_CORE_CRYPTO_SEL_SHIFT	= 5,
234*4882a593Smuzhiyun 	CLK_CORE_CRYPTO_SEL_MASK	= 0x3 << CLK_CORE_CRYPTO_SEL_SHIFT,
235*4882a593Smuzhiyun 	CLK_CRYPTO_SEL_300M		= 0,
236*4882a593Smuzhiyun 	CLK_CRYPTO_SEL_200M,
237*4882a593Smuzhiyun 	CLK_CRYPTO_SEL_100M,
238*4882a593Smuzhiyun 	CLK_CRYPTO_SEL_24M,
239*4882a593Smuzhiyun 	CLK_SARADC_DIV_SHIFT		= 0,
240*4882a593Smuzhiyun 	CLK_SARADC_DIV_MASK		= 0x7 << CLK_SARADC_DIV_SHIFT,
241*4882a593Smuzhiyun 	CLK_SPI1_SEL_SHIFT		= 3,
242*4882a593Smuzhiyun 	CLK_SPI1_SEL_MASK		= 0x3 << CLK_SPI1_SEL_SHIFT,
243*4882a593Smuzhiyun 
244*4882a593Smuzhiyun 	/* CRU_PERI_CLK_SEL7_CON */
245*4882a593Smuzhiyun 	DCLK_DECOM_SEL_SHIFT		= 14,
246*4882a593Smuzhiyun 	DCLK_DECOM_SEL_MASK		= 0x3 << DCLK_DECOM_SEL_SHIFT,
247*4882a593Smuzhiyun 	DCLK_DECOM_SEL_400M		= 0,
248*4882a593Smuzhiyun 	DCLK_DECOM_SEL_200M,
249*4882a593Smuzhiyun 	DCLK_DECOM_SEL_100M,
250*4882a593Smuzhiyun 	DCLK_DECOM_SEL_24M,
251*4882a593Smuzhiyun 	CLK_SFC_SEL_SHIFT		= 12,
252*4882a593Smuzhiyun 	CLK_SFC_SEL_MASK		= 0x3 << CLK_SFC_SEL_SHIFT,
253*4882a593Smuzhiyun 	CLK_SFC_SEL_500M		= 0,
254*4882a593Smuzhiyun 	CLK_SFC_SEL_300M,
255*4882a593Smuzhiyun 	CLK_SFC_SEL_200M,
256*4882a593Smuzhiyun 	CLK_SFC_SEL_24M,
257*4882a593Smuzhiyun 	CLK_SFC_DIV_SHIFT		= 7,
258*4882a593Smuzhiyun 	CLK_SFC_DIV_MASK		= 0x1f << CLK_SFC_DIV_SHIFT,
259*4882a593Smuzhiyun 	CLK_EMMC_SEL_SHIFT		= 6,
260*4882a593Smuzhiyun 	CLK_EMMC_SEL_MASK		= 0x1 << CLK_EMMC_SEL_SHIFT,
261*4882a593Smuzhiyun 	CLK_MMC_SEL_400M		= 0,
262*4882a593Smuzhiyun 	CLK_MMC_SEL_24M,
263*4882a593Smuzhiyun 	CLK_EMMC_DIV_SHIFT		= 0,
264*4882a593Smuzhiyun 	CLK_EMMC_DIV_MASK		= 0x3f << CLK_EMMC_DIV_SHIFT,
265*4882a593Smuzhiyun 
266*4882a593Smuzhiyun 	/* CRU_PERI_CLK_SEL9_CON */
267*4882a593Smuzhiyun 	ACLK_BUS_SEL_SHIFT		= 0,
268*4882a593Smuzhiyun 	ACLK_BUS_SEL_MASK		= 0x3 << ACLK_BUS_SEL_SHIFT,
269*4882a593Smuzhiyun 	ACLK_BUS_SEL_300M		= 0,
270*4882a593Smuzhiyun 	ACLK_BUS_SEL_200M,
271*4882a593Smuzhiyun 	ACLK_BUS_SEL_100M,
272*4882a593Smuzhiyun 	ACLK_BUS_SEL_24M,
273*4882a593Smuzhiyun 
274*4882a593Smuzhiyun 	/* CRU_PERI_CLK_SEL11_CON */
275*4882a593Smuzhiyun 	CLK_PWM0_SEL_SHIFT		= 0,
276*4882a593Smuzhiyun 	CLK_PWM0_SEL_MASK		= 0x3 << CLK_PWM0_SEL_SHIFT,
277*4882a593Smuzhiyun 
278*4882a593Smuzhiyun 	/* CRU_VEPU_CLK_SEL0_CON */
279*4882a593Smuzhiyun 	CLK_SPI0_SEL_SHIFT		= 12,
280*4882a593Smuzhiyun 	CLK_SPI0_SEL_MASK		= 0x3 << CLK_SPI0_SEL_SHIFT,
281*4882a593Smuzhiyun 	CLK_SPI0_SEL_200M		= 0,
282*4882a593Smuzhiyun 	CLK_SPI0_SEL_100M,
283*4882a593Smuzhiyun 	CLK_SPI0_SEL_50M,
284*4882a593Smuzhiyun 	CLK_SPI0_SEL_24M,
285*4882a593Smuzhiyun 
286*4882a593Smuzhiyun 	/* CRU_CORE_CLK_SEL0_CON */
287*4882a593Smuzhiyun 	CLK_CORE_DIV_SHIFT		= 0,
288*4882a593Smuzhiyun 	CLK_CORE_DIV_MASK		= 0x1f << CLK_CORE_DIV_SHIFT,
289*4882a593Smuzhiyun 
290*4882a593Smuzhiyun 	/* CRU_VI_CLK_SEL1_CON */
291*4882a593Smuzhiyun 	CLK_SDMMC_SEL_SHIFT		= 14,
292*4882a593Smuzhiyun 	CLK_SDMMC_SEL_MASK		= 0x1 << CLK_SDMMC_SEL_SHIFT,
293*4882a593Smuzhiyun 	CLK_SDMMC_DIV_SHIFT		= 8,
294*4882a593Smuzhiyun 	CLK_SDMMC_DIV_MASK		= 0x3f << CLK_SDMMC_DIV_SHIFT,
295*4882a593Smuzhiyun 
296*4882a593Smuzhiyun 	/* CRU_VO_CLK_SEL1_CON */
297*4882a593Smuzhiyun 	ACLK_VOP_SEL_SHIFT		= 10,
298*4882a593Smuzhiyun 	ACLK_VOP_SEL_MASK		= 0x3 << ACLK_VOP_SEL_SHIFT,
299*4882a593Smuzhiyun 	ACLK_VOP_SEL_300M		= 0,
300*4882a593Smuzhiyun 	ACLK_VOP_SEL_200M,
301*4882a593Smuzhiyun 	ACLK_VOP_SEL_100M,
302*4882a593Smuzhiyun 	ACLK_VOP_SEL_24M,
303*4882a593Smuzhiyun 
304*4882a593Smuzhiyun 	/* CRU_VO_CLK_SEL3_CON */
305*4882a593Smuzhiyun 	CLK_TSADC_TSEN_DIV_SHIFT	= 5,
306*4882a593Smuzhiyun 	CLK_TSADC_TSEN_DIV_MASK		= 0x1F << CLK_TSADC_TSEN_DIV_SHIFT,
307*4882a593Smuzhiyun 	CLK_TSADC_DIV_SHIFT		= 0,
308*4882a593Smuzhiyun 	CLK_TSADC_DIV_MASK		= 0x1F << CLK_TSADC_DIV_SHIFT,
309*4882a593Smuzhiyun };
310*4882a593Smuzhiyun #endif
311