xref: /OK3568_Linux_fs/u-boot/arch/arm/include/asm/arch-rockchip/grf_rk3188.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /*
2*4882a593Smuzhiyun  * Copyright (c) 2016 Heiko Stuebner <heiko@sntech.de>
3*4882a593Smuzhiyun  *
4*4882a593Smuzhiyun  * SPDX-License-Identifier:	GPL-2.0
5*4882a593Smuzhiyun  */
6*4882a593Smuzhiyun 
7*4882a593Smuzhiyun #ifndef _ASM_ARCH_GRF_RK3188_H
8*4882a593Smuzhiyun #define _ASM_ARCH_GRF_RK3188_H
9*4882a593Smuzhiyun 
10*4882a593Smuzhiyun struct rk3188_grf_gpio_lh {
11*4882a593Smuzhiyun 	u32 l;
12*4882a593Smuzhiyun 	u32 h;
13*4882a593Smuzhiyun };
14*4882a593Smuzhiyun 
15*4882a593Smuzhiyun struct rk3188_grf {
16*4882a593Smuzhiyun 	struct rk3188_grf_gpio_lh gpio_dir[4];
17*4882a593Smuzhiyun 	struct rk3188_grf_gpio_lh gpio_do[4];
18*4882a593Smuzhiyun 	struct rk3188_grf_gpio_lh gpio_en[4];
19*4882a593Smuzhiyun 
20*4882a593Smuzhiyun 	u32 reserved[2];
21*4882a593Smuzhiyun 	u32 gpio0c_iomux;
22*4882a593Smuzhiyun 	u32 gpio0d_iomux;
23*4882a593Smuzhiyun 
24*4882a593Smuzhiyun 	u32 gpio1a_iomux;
25*4882a593Smuzhiyun 	u32 gpio1b_iomux;
26*4882a593Smuzhiyun 	u32 gpio1c_iomux;
27*4882a593Smuzhiyun 	u32 gpio1d_iomux;
28*4882a593Smuzhiyun 
29*4882a593Smuzhiyun 	u32 gpio2a_iomux;
30*4882a593Smuzhiyun 	u32 gpio2b_iomux;
31*4882a593Smuzhiyun 	u32 gpio2c_iomux;
32*4882a593Smuzhiyun 	u32 gpio2d_iomux;
33*4882a593Smuzhiyun 
34*4882a593Smuzhiyun 	u32 gpio3a_iomux;
35*4882a593Smuzhiyun 	u32 gpio3b_iomux;
36*4882a593Smuzhiyun 	u32 gpio3c_iomux;
37*4882a593Smuzhiyun 	u32 gpio3d_iomux;
38*4882a593Smuzhiyun 
39*4882a593Smuzhiyun 	u32 soc_con0;
40*4882a593Smuzhiyun 	u32 soc_con1;
41*4882a593Smuzhiyun 	u32 soc_con2;
42*4882a593Smuzhiyun 	u32 soc_status0;
43*4882a593Smuzhiyun 
44*4882a593Smuzhiyun 	u32 busdmac_con[3];
45*4882a593Smuzhiyun 	u32 peridmac_con[4];
46*4882a593Smuzhiyun 
47*4882a593Smuzhiyun 	u32 cpu_con[6];
48*4882a593Smuzhiyun 	u32 reserved0[2];
49*4882a593Smuzhiyun 
50*4882a593Smuzhiyun 	u32 ddrc_con0;
51*4882a593Smuzhiyun 	u32 ddrc_stat;
52*4882a593Smuzhiyun 
53*4882a593Smuzhiyun 	u32 io_con[5];
54*4882a593Smuzhiyun 	u32 soc_status1;
55*4882a593Smuzhiyun 
56*4882a593Smuzhiyun 	u32 uoc0_con[4];
57*4882a593Smuzhiyun 	u32 uoc1_con[4];
58*4882a593Smuzhiyun 	u32 uoc2_con[2];
59*4882a593Smuzhiyun 	u32 reserved1;
60*4882a593Smuzhiyun 	u32 uoc3_con[2];
61*4882a593Smuzhiyun 	u32 hsic_stat;
62*4882a593Smuzhiyun 	u32 os_reg[8];
63*4882a593Smuzhiyun 
64*4882a593Smuzhiyun 	u32 gpio0_p[3];
65*4882a593Smuzhiyun 	u32 gpio1_p[3][4];
66*4882a593Smuzhiyun 
67*4882a593Smuzhiyun 	u32 flash_data_p;
68*4882a593Smuzhiyun 	u32 flash_cmd_p;
69*4882a593Smuzhiyun };
70*4882a593Smuzhiyun check_member(rk3188_grf, flash_cmd_p, 0x01a4);
71*4882a593Smuzhiyun 
72*4882a593Smuzhiyun /* GRF_GPIO0D_IOMUX */
73*4882a593Smuzhiyun enum {
74*4882a593Smuzhiyun 	GPIO0D7_SHIFT		= 14,
75*4882a593Smuzhiyun 	GPIO0D7_MASK		= 1,
76*4882a593Smuzhiyun 	GPIO0D7_GPIO		= 0,
77*4882a593Smuzhiyun 	GPIO0D7_SPI1_CSN0,
78*4882a593Smuzhiyun 
79*4882a593Smuzhiyun 	GPIO0D6_SHIFT		= 12,
80*4882a593Smuzhiyun 	GPIO0D6_MASK		= 1,
81*4882a593Smuzhiyun 	GPIO0D6_GPIO		= 0,
82*4882a593Smuzhiyun 	GPIO0D6_SPI1_CLK,
83*4882a593Smuzhiyun 
84*4882a593Smuzhiyun 	GPIO0D5_SHIFT		= 10,
85*4882a593Smuzhiyun 	GPIO0D5_MASK		= 1,
86*4882a593Smuzhiyun 	GPIO0D5_GPIO		= 0,
87*4882a593Smuzhiyun 	GPIO0D5_SPI1_TXD,
88*4882a593Smuzhiyun 
89*4882a593Smuzhiyun 	GPIO0D4_SHIFT		= 8,
90*4882a593Smuzhiyun 	GPIO0D4_MASK		= 1,
91*4882a593Smuzhiyun 	GPIO0D4_GPIO		= 0,
92*4882a593Smuzhiyun 	GPIO0D4_SPI0_RXD,
93*4882a593Smuzhiyun 
94*4882a593Smuzhiyun 	GPIO0D3_SHIFT		= 6,
95*4882a593Smuzhiyun 	GPIO0D3_MASK		= 3,
96*4882a593Smuzhiyun 	GPIO0D3_GPIO		= 0,
97*4882a593Smuzhiyun 	GPIO0D3_FLASH_CSN3,
98*4882a593Smuzhiyun 	GPIO0D3_EMMC_RSTN_OUT,
99*4882a593Smuzhiyun 
100*4882a593Smuzhiyun 	GPIO0D2_SHIFT		= 4,
101*4882a593Smuzhiyun 	GPIO0D2_MASK		= 3,
102*4882a593Smuzhiyun 	GPIO0D2_GPIO		= 0,
103*4882a593Smuzhiyun 	GPIO0D2_FLASH_CSN2,
104*4882a593Smuzhiyun 	GPIO0D2_EMMC_CMD,
105*4882a593Smuzhiyun 
106*4882a593Smuzhiyun 	GPIO0D1_SHIFT		= 2,
107*4882a593Smuzhiyun 	GPIO0D1_MASK		= 1,
108*4882a593Smuzhiyun 	GPIO0D1_GPIO		= 0,
109*4882a593Smuzhiyun 	GPIO0D1_FLASH_CSN1,
110*4882a593Smuzhiyun 
111*4882a593Smuzhiyun 	GPIO0D0_SHIFT		= 0,
112*4882a593Smuzhiyun 	GPIO0D0_MASK		= 3,
113*4882a593Smuzhiyun 	GPIO0D0_GPIO		= 0,
114*4882a593Smuzhiyun 	GPIO0D0_FLASH_DQS,
115*4882a593Smuzhiyun 	GPIO0D0_EMMC_CLKOUT
116*4882a593Smuzhiyun };
117*4882a593Smuzhiyun 
118*4882a593Smuzhiyun /* GRF_GPIO1A_IOMUX */
119*4882a593Smuzhiyun enum {
120*4882a593Smuzhiyun 	GPIO1A7_SHIFT		= 14,
121*4882a593Smuzhiyun 	GPIO1A7_MASK		= 3,
122*4882a593Smuzhiyun 	GPIO1A7_GPIO		= 0,
123*4882a593Smuzhiyun 	GPIO1A7_UART1_RTS_N,
124*4882a593Smuzhiyun 	GPIO1A7_SPI0_CSN0,
125*4882a593Smuzhiyun 
126*4882a593Smuzhiyun 	GPIO1A6_SHIFT		= 12,
127*4882a593Smuzhiyun 	GPIO1A6_MASK		= 3,
128*4882a593Smuzhiyun 	GPIO1A6_GPIO		= 0,
129*4882a593Smuzhiyun 	GPIO1A6_UART1_CTS_N,
130*4882a593Smuzhiyun 	GPIO1A6_SPI0_CLK,
131*4882a593Smuzhiyun 
132*4882a593Smuzhiyun 	GPIO1A5_SHIFT		= 10,
133*4882a593Smuzhiyun 	GPIO1A5_MASK		= 3,
134*4882a593Smuzhiyun 	GPIO1A5_GPIO		= 0,
135*4882a593Smuzhiyun 	GPIO1A5_UART1_SOUT,
136*4882a593Smuzhiyun 	GPIO1A5_SPI0_TXD,
137*4882a593Smuzhiyun 
138*4882a593Smuzhiyun 	GPIO1A4_SHIFT		= 8,
139*4882a593Smuzhiyun 	GPIO1A4_MASK		= 3,
140*4882a593Smuzhiyun 	GPIO1A4_GPIO		= 0,
141*4882a593Smuzhiyun 	GPIO1A4_UART1_SIN,
142*4882a593Smuzhiyun 	GPIO1A4_SPI0_RXD,
143*4882a593Smuzhiyun 
144*4882a593Smuzhiyun 	GPIO1A3_SHIFT		= 6,
145*4882a593Smuzhiyun 	GPIO1A3_MASK		= 1,
146*4882a593Smuzhiyun 	GPIO1A3_GPIO		= 0,
147*4882a593Smuzhiyun 	GPIO1A3_UART0_RTS_N,
148*4882a593Smuzhiyun 
149*4882a593Smuzhiyun 	GPIO1A2_SHIFT		= 4,
150*4882a593Smuzhiyun 	GPIO1A2_MASK		= 1,
151*4882a593Smuzhiyun 	GPIO1A2_GPIO		= 0,
152*4882a593Smuzhiyun 	GPIO1A2_UART0_CTS_N,
153*4882a593Smuzhiyun 
154*4882a593Smuzhiyun 	GPIO1A1_SHIFT		= 2,
155*4882a593Smuzhiyun 	GPIO1A1_MASK		= 1,
156*4882a593Smuzhiyun 	GPIO1A1_GPIO		= 0,
157*4882a593Smuzhiyun 	GPIO1A1_UART0_SOUT,
158*4882a593Smuzhiyun 
159*4882a593Smuzhiyun 	GPIO1A0_SHIFT		= 0,
160*4882a593Smuzhiyun 	GPIO1A0_MASK		= 1,
161*4882a593Smuzhiyun 	GPIO1A0_GPIO		= 0,
162*4882a593Smuzhiyun 	GPIO1A0_UART0_SIN,
163*4882a593Smuzhiyun };
164*4882a593Smuzhiyun 
165*4882a593Smuzhiyun /* GRF_GPIO1B_IOMUX */
166*4882a593Smuzhiyun enum {
167*4882a593Smuzhiyun 	GPIO1B7_SHIFT		= 14,
168*4882a593Smuzhiyun 	GPIO1B7_MASK		= 1,
169*4882a593Smuzhiyun 	GPIO1B7_GPIO		= 0,
170*4882a593Smuzhiyun 	GPIO1B7_SPI0_CSN1,
171*4882a593Smuzhiyun 
172*4882a593Smuzhiyun 	GPIO1B6_SHIFT		= 12,
173*4882a593Smuzhiyun 	GPIO1B6_MASK		= 3,
174*4882a593Smuzhiyun 	GPIO1B6_GPIO		= 0,
175*4882a593Smuzhiyun 	GPIO1B6_SPDIF_TX,
176*4882a593Smuzhiyun 	GPIO1B6_SPI1_CSN1,
177*4882a593Smuzhiyun 
178*4882a593Smuzhiyun 	GPIO1B5_SHIFT		= 10,
179*4882a593Smuzhiyun 	GPIO1B5_MASK		= 3,
180*4882a593Smuzhiyun 	GPIO1B5_GPIO		= 0,
181*4882a593Smuzhiyun 	GPIO1B5_UART3_RTS_N,
182*4882a593Smuzhiyun 	GPIO1B5_RESERVED,
183*4882a593Smuzhiyun 
184*4882a593Smuzhiyun 	GPIO1B4_SHIFT		= 8,
185*4882a593Smuzhiyun 	GPIO1B4_MASK		= 3,
186*4882a593Smuzhiyun 	GPIO1B4_GPIO		= 0,
187*4882a593Smuzhiyun 	GPIO1B4_UART3_CTS_N,
188*4882a593Smuzhiyun 	GPIO1B4_GPS_RFCLK,
189*4882a593Smuzhiyun 
190*4882a593Smuzhiyun 	GPIO1B3_SHIFT		= 6,
191*4882a593Smuzhiyun 	GPIO1B3_MASK		= 3,
192*4882a593Smuzhiyun 	GPIO1B3_GPIO		= 0,
193*4882a593Smuzhiyun 	GPIO1B3_UART3_SOUT,
194*4882a593Smuzhiyun 	GPIO1B3_GPS_SIG,
195*4882a593Smuzhiyun 
196*4882a593Smuzhiyun 	GPIO1B2_SHIFT		= 4,
197*4882a593Smuzhiyun 	GPIO1B2_MASK		= 3,
198*4882a593Smuzhiyun 	GPIO1B2_GPIO		= 0,
199*4882a593Smuzhiyun 	GPIO1B2_UART3_SIN,
200*4882a593Smuzhiyun 	GPIO1B2_GPS_MAG,
201*4882a593Smuzhiyun 
202*4882a593Smuzhiyun 	GPIO1B1_SHIFT		= 2,
203*4882a593Smuzhiyun 	GPIO1B1_MASK		= 3,
204*4882a593Smuzhiyun 	GPIO1B1_GPIO		= 0,
205*4882a593Smuzhiyun 	GPIO1B1_UART2_SOUT,
206*4882a593Smuzhiyun 	GPIO1B1_JTAG_TDO,
207*4882a593Smuzhiyun 
208*4882a593Smuzhiyun 	GPIO1B0_SHIFT		= 0,
209*4882a593Smuzhiyun 	GPIO1B0_MASK		= 3,
210*4882a593Smuzhiyun 	GPIO1B0_GPIO		= 0,
211*4882a593Smuzhiyun 	GPIO1B0_UART2_SIN,
212*4882a593Smuzhiyun 	GPIO1B0_JTAG_TDI,
213*4882a593Smuzhiyun };
214*4882a593Smuzhiyun 
215*4882a593Smuzhiyun /* GRF_GPIO1D_IOMUX */
216*4882a593Smuzhiyun enum {
217*4882a593Smuzhiyun 	GPIO1D7_SHIFT		= 14,
218*4882a593Smuzhiyun 	GPIO1D7_MASK		= 1,
219*4882a593Smuzhiyun 	GPIO1D7_GPIO		= 0,
220*4882a593Smuzhiyun 	GPIO1D7_I2C4_SCL,
221*4882a593Smuzhiyun 
222*4882a593Smuzhiyun 	GPIO1D6_SHIFT		= 12,
223*4882a593Smuzhiyun 	GPIO1D6_MASK		= 1,
224*4882a593Smuzhiyun 	GPIO1D6_GPIO		= 0,
225*4882a593Smuzhiyun 	GPIO1D6_I2C4_SDA,
226*4882a593Smuzhiyun 
227*4882a593Smuzhiyun 	GPIO1D5_SHIFT		= 10,
228*4882a593Smuzhiyun 	GPIO1D5_MASK		= 1,
229*4882a593Smuzhiyun 	GPIO1D5_GPIO		= 0,
230*4882a593Smuzhiyun 	GPIO1D5_I2C2_SCL,
231*4882a593Smuzhiyun 
232*4882a593Smuzhiyun 	GPIO1D4_SHIFT		= 8,
233*4882a593Smuzhiyun 	GPIO1D4_MASK		= 1,
234*4882a593Smuzhiyun 	GPIO1D4_GPIO		= 0,
235*4882a593Smuzhiyun 	GPIO1D4_I2C2_SDA,
236*4882a593Smuzhiyun 
237*4882a593Smuzhiyun 	GPIO1D3_SHIFT		= 6,
238*4882a593Smuzhiyun 	GPIO1D3_MASK		= 1,
239*4882a593Smuzhiyun 	GPIO1D3_GPIO		= 0,
240*4882a593Smuzhiyun 	GPIO1D3_I2C1_SCL,
241*4882a593Smuzhiyun 
242*4882a593Smuzhiyun 	GPIO1D2_SHIFT		= 4,
243*4882a593Smuzhiyun 	GPIO1D2_MASK		= 1,
244*4882a593Smuzhiyun 	GPIO1D2_GPIO		= 0,
245*4882a593Smuzhiyun 	GPIO1D2_I2C1_SDA,
246*4882a593Smuzhiyun 
247*4882a593Smuzhiyun 	GPIO1D1_SHIFT		= 2,
248*4882a593Smuzhiyun 	GPIO1D1_MASK		= 1,
249*4882a593Smuzhiyun 	GPIO1D1_GPIO		= 0,
250*4882a593Smuzhiyun 	GPIO1D1_I2C0_SCL,
251*4882a593Smuzhiyun 
252*4882a593Smuzhiyun 	GPIO1D0_SHIFT		= 0,
253*4882a593Smuzhiyun 	GPIO1D0_MASK		= 1,
254*4882a593Smuzhiyun 	GPIO1D0_GPIO		= 0,
255*4882a593Smuzhiyun 	GPIO1D0_I2C0_SDA,
256*4882a593Smuzhiyun };
257*4882a593Smuzhiyun 
258*4882a593Smuzhiyun /* GRF_GPIO3A_IOMUX */
259*4882a593Smuzhiyun enum {
260*4882a593Smuzhiyun 	GPIO3A7_SHIFT		= 14,
261*4882a593Smuzhiyun 	GPIO3A7_MASK		= 1,
262*4882a593Smuzhiyun 	GPIO3A7_GPIO		= 0,
263*4882a593Smuzhiyun 	GPIO3A7_SDMMC0_DATA3,
264*4882a593Smuzhiyun 
265*4882a593Smuzhiyun 	GPIO3A6_SHIFT		= 12,
266*4882a593Smuzhiyun 	GPIO3A6_MASK		= 1,
267*4882a593Smuzhiyun 	GPIO3A6_GPIO		= 0,
268*4882a593Smuzhiyun 	GPIO3A6_SDMMC0_DATA2,
269*4882a593Smuzhiyun 
270*4882a593Smuzhiyun 	GPIO3A5_SHIFT		= 10,
271*4882a593Smuzhiyun 	GPIO3A5_MASK		= 1,
272*4882a593Smuzhiyun 	GPIO3A5_GPIO		= 0,
273*4882a593Smuzhiyun 	GPIO3A5_SDMMC0_DATA1,
274*4882a593Smuzhiyun 
275*4882a593Smuzhiyun 	GPIO3A4_SHIFT		= 8,
276*4882a593Smuzhiyun 	GPIO3A4_MASK		= 1,
277*4882a593Smuzhiyun 	GPIO3A4_GPIO		= 0,
278*4882a593Smuzhiyun 	GPIO3A4_SDMMC0_DATA0,
279*4882a593Smuzhiyun 
280*4882a593Smuzhiyun 	GPIO3A3_SHIFT		= 6,
281*4882a593Smuzhiyun 	GPIO3A3_MASK		= 1,
282*4882a593Smuzhiyun 	GPIO3A3_GPIO		= 0,
283*4882a593Smuzhiyun 	GPIO3A3_SDMMC0_CMD,
284*4882a593Smuzhiyun 
285*4882a593Smuzhiyun 	GPIO3A2_SHIFT		= 4,
286*4882a593Smuzhiyun 	GPIO3A2_MASK		= 1,
287*4882a593Smuzhiyun 	GPIO3A2_GPIO		= 0,
288*4882a593Smuzhiyun 	GPIO3A2_SDMMC0_CLKOUT,
289*4882a593Smuzhiyun 
290*4882a593Smuzhiyun 	GPIO3A1_SHIFT		= 2,
291*4882a593Smuzhiyun 	GPIO3A1_MASK		= 1,
292*4882a593Smuzhiyun 	GPIO3A1_GPIO		= 0,
293*4882a593Smuzhiyun 	GPIO3A1_SDMMC0_PWREN,
294*4882a593Smuzhiyun 
295*4882a593Smuzhiyun 	GPIO3A0_SHIFT		= 0,
296*4882a593Smuzhiyun 	GPIO3A0_MASK		= 1,
297*4882a593Smuzhiyun 	GPIO3A0_GPIO		= 0,
298*4882a593Smuzhiyun 	GPIO3A0_SDMMC0_RSTN,
299*4882a593Smuzhiyun };
300*4882a593Smuzhiyun 
301*4882a593Smuzhiyun /* GRF_GPIO3B_IOMUX */
302*4882a593Smuzhiyun enum {
303*4882a593Smuzhiyun 	GPIO3B7_SHIFT		= 14,
304*4882a593Smuzhiyun 	GPIO3B7_MASK		= 3,
305*4882a593Smuzhiyun 	GPIO3B7_GPIO		= 0,
306*4882a593Smuzhiyun 	GPIO3B7_CIF_DATA11,
307*4882a593Smuzhiyun 	GPIO3B7_I2C3_SCL,
308*4882a593Smuzhiyun 
309*4882a593Smuzhiyun 	GPIO3B6_SHIFT		= 12,
310*4882a593Smuzhiyun 	GPIO3B6_MASK		= 3,
311*4882a593Smuzhiyun 	GPIO3B6_GPIO		= 0,
312*4882a593Smuzhiyun 	GPIO3B6_CIF_DATA10,
313*4882a593Smuzhiyun 	GPIO3B6_I2C3_SDA,
314*4882a593Smuzhiyun 
315*4882a593Smuzhiyun 	GPIO3B5_SHIFT		= 10,
316*4882a593Smuzhiyun 	GPIO3B5_MASK		= 3,
317*4882a593Smuzhiyun 	GPIO3B5_GPIO		= 0,
318*4882a593Smuzhiyun 	GPIO3B5_CIF_DATA1,
319*4882a593Smuzhiyun 	GPIO3B5_HSADC_DATA9,
320*4882a593Smuzhiyun 
321*4882a593Smuzhiyun 	GPIO3B4_SHIFT		= 8,
322*4882a593Smuzhiyun 	GPIO3B4_MASK		= 3,
323*4882a593Smuzhiyun 	GPIO3B4_GPIO		= 0,
324*4882a593Smuzhiyun 	GPIO3B4_CIF_DATA0,
325*4882a593Smuzhiyun 	GPIO3B4_HSADC_DATA8,
326*4882a593Smuzhiyun 
327*4882a593Smuzhiyun 	GPIO3B3_SHIFT		= 6,
328*4882a593Smuzhiyun 	GPIO3B3_MASK		= 1,
329*4882a593Smuzhiyun 	GPIO3B3_GPIO		= 0,
330*4882a593Smuzhiyun 	GPIO3B3_CIF_CLKOUT,
331*4882a593Smuzhiyun 
332*4882a593Smuzhiyun 	GPIO3B2_SHIFT		= 4,
333*4882a593Smuzhiyun 	GPIO3B2_MASK		= 1,
334*4882a593Smuzhiyun 	GPIO3B2_GPIO		= 0,
335*4882a593Smuzhiyun 	/* no muxes */
336*4882a593Smuzhiyun 
337*4882a593Smuzhiyun 	GPIO3B1_SHIFT		= 2,
338*4882a593Smuzhiyun 	GPIO3B1_MASK		= 1,
339*4882a593Smuzhiyun 	GPIO3B1_GPIO		= 0,
340*4882a593Smuzhiyun 	GPIO3B1_SDMMC0_WRITE_PRT,
341*4882a593Smuzhiyun 
342*4882a593Smuzhiyun 	GPIO3B0_SHIFT		= 0,
343*4882a593Smuzhiyun 	GPIO3B0_MASK		= 1,
344*4882a593Smuzhiyun 	GPIO3B0_GPIO		= 0,
345*4882a593Smuzhiyun 	GPIO3B0_SDMMC_DETECT_N,
346*4882a593Smuzhiyun };
347*4882a593Smuzhiyun 
348*4882a593Smuzhiyun /* GRF_GPIO3C_IOMUX */
349*4882a593Smuzhiyun enum {
350*4882a593Smuzhiyun 	GPIO3C7_SHIFT		= 14,
351*4882a593Smuzhiyun 	GPIO3C7_MASK		= 3,
352*4882a593Smuzhiyun 	GPIO3C7_GPIO		= 0,
353*4882a593Smuzhiyun 	GPIO3C7_SDMMC1_WRITE_PRT,
354*4882a593Smuzhiyun 	GPIO3C7_RMII_CRS_DVALID,
355*4882a593Smuzhiyun 	GPIO3C7_RESERVED,
356*4882a593Smuzhiyun 
357*4882a593Smuzhiyun 	GPIO3C6_SHIFT		= 12,
358*4882a593Smuzhiyun 	GPIO3C6_MASK		= 3,
359*4882a593Smuzhiyun 	GPIO3C6_GPIO		= 0,
360*4882a593Smuzhiyun 	GPIO3C6_SDMMC1_DECTN,
361*4882a593Smuzhiyun 	GPIO3C6_RMII_RX_ERR,
362*4882a593Smuzhiyun 	GPIO3C6_RESERVED,
363*4882a593Smuzhiyun 
364*4882a593Smuzhiyun 	GPIO3C5_SHIFT		= 10,
365*4882a593Smuzhiyun 	GPIO3C5_MASK		= 3,
366*4882a593Smuzhiyun 	GPIO3C5_GPIO		= 0,
367*4882a593Smuzhiyun 	GPIO3C5_SDMMC1_CLKOUT,
368*4882a593Smuzhiyun 	GPIO3C5_RMII_CLKOUT,
369*4882a593Smuzhiyun 	GPIO3C5_RMII_CLKIN,
370*4882a593Smuzhiyun 
371*4882a593Smuzhiyun 	GPIO3C4_SHIFT		= 8,
372*4882a593Smuzhiyun 	GPIO3C4_MASK		= 3,
373*4882a593Smuzhiyun 	GPIO3C4_GPIO		= 0,
374*4882a593Smuzhiyun 	GPIO3C4_SDMMC1_DATA3,
375*4882a593Smuzhiyun 	GPIO3C4_RMII_RXD1,
376*4882a593Smuzhiyun 	GPIO3C4_RESERVED,
377*4882a593Smuzhiyun 
378*4882a593Smuzhiyun 	GPIO3C3_SHIFT		= 6,
379*4882a593Smuzhiyun 	GPIO3C3_MASK		= 3,
380*4882a593Smuzhiyun 	GPIO3C3_GPIO		= 0,
381*4882a593Smuzhiyun 	GPIO3C3_SDMMC1_DATA2,
382*4882a593Smuzhiyun 	GPIO3C3_RMII_RXD0,
383*4882a593Smuzhiyun 	GPIO3C3_RESERVED,
384*4882a593Smuzhiyun 
385*4882a593Smuzhiyun 	GPIO3C2_SHIFT		= 4,
386*4882a593Smuzhiyun 	GPIO3C2_MASK		= 3,
387*4882a593Smuzhiyun 	GPIO3C2_GPIO		= 0,
388*4882a593Smuzhiyun 	GPIO3C2_SDMMC1_DATA1,
389*4882a593Smuzhiyun 	GPIO3C2_RMII_TXD0,
390*4882a593Smuzhiyun 	GPIO3C2_RESERVED,
391*4882a593Smuzhiyun 
392*4882a593Smuzhiyun 	GPIO3C1_SHIFT		= 2,
393*4882a593Smuzhiyun 	GPIO3C1_MASK		= 3,
394*4882a593Smuzhiyun 	GPIO3C1_GPIO		= 0,
395*4882a593Smuzhiyun 	GPIO3C1_SDMMC1_DATA0,
396*4882a593Smuzhiyun 	GPIO3C1_RMII_TXD1,
397*4882a593Smuzhiyun 	GPIO3C1_RESERVED,
398*4882a593Smuzhiyun 
399*4882a593Smuzhiyun 	GPIO3C0_SHIFT		= 0,
400*4882a593Smuzhiyun 	GPIO3C0_MASK		= 3,
401*4882a593Smuzhiyun 	GPIO3C0_GPIO		= 0,
402*4882a593Smuzhiyun 	GPIO3C0_SDMMC1_CMD,
403*4882a593Smuzhiyun 	GPIO3C0_RMII_TX_EN,
404*4882a593Smuzhiyun 	GPIO3C0_RESERVED,
405*4882a593Smuzhiyun };
406*4882a593Smuzhiyun 
407*4882a593Smuzhiyun /* GRF_GPIO3D_IOMUX */
408*4882a593Smuzhiyun enum {
409*4882a593Smuzhiyun 	GPIO3D6_SHIFT		= 12,
410*4882a593Smuzhiyun 	GPIO3D6_MASK		= 3,
411*4882a593Smuzhiyun 	GPIO3D6_GPIO		= 0,
412*4882a593Smuzhiyun 	GPIO3D6_PWM_3,
413*4882a593Smuzhiyun 	GPIO3D6_JTAG_TMS,
414*4882a593Smuzhiyun 	GPIO3D6_HOST_DRV_VBUS,
415*4882a593Smuzhiyun 
416*4882a593Smuzhiyun 	GPIO3D5_SHIFT		= 10,
417*4882a593Smuzhiyun 	GPIO3D5_MASK		= 3,
418*4882a593Smuzhiyun 	GPIO3D5_GPIO		= 0,
419*4882a593Smuzhiyun 	GPIO3D5_PWM_2,
420*4882a593Smuzhiyun 	GPIO3D5_JTAG_TCK,
421*4882a593Smuzhiyun 	GPIO3D5_OTG_DRV_VBUS,
422*4882a593Smuzhiyun 
423*4882a593Smuzhiyun 	GPIO3D4_SHIFT		= 8,
424*4882a593Smuzhiyun 	GPIO3D4_MASK		= 3,
425*4882a593Smuzhiyun 	GPIO3D4_GPIO		= 0,
426*4882a593Smuzhiyun 	GPIO3D4_PWM_1,
427*4882a593Smuzhiyun 	GPIO3D4_JTAG_TRSTN,
428*4882a593Smuzhiyun 
429*4882a593Smuzhiyun 	GPIO3D3_SHIFT		= 6,
430*4882a593Smuzhiyun 	GPIO3D3_MASK		= 3,
431*4882a593Smuzhiyun 	GPIO3D3_GPIO		= 0,
432*4882a593Smuzhiyun 	GPIO3D3_PWM_0,
433*4882a593Smuzhiyun 
434*4882a593Smuzhiyun 	GPIO3D2_SHIFT		= 4,
435*4882a593Smuzhiyun 	GPIO3D2_MASK		= 3,
436*4882a593Smuzhiyun 	GPIO3D2_GPIO		= 0,
437*4882a593Smuzhiyun 	GPIO3D2_SDMMC1_INT_N,
438*4882a593Smuzhiyun 
439*4882a593Smuzhiyun 	GPIO3D1_SHIFT		= 2,
440*4882a593Smuzhiyun 	GPIO3D1_MASK		= 3,
441*4882a593Smuzhiyun 	GPIO3D1_GPIO		= 0,
442*4882a593Smuzhiyun 	GPIO3D1_SDMMC1_BACKEND_PWR,
443*4882a593Smuzhiyun 	GPIO3D1_MII_MDCLK,
444*4882a593Smuzhiyun 
445*4882a593Smuzhiyun 	GPIO3D0_SHIFT		= 0,
446*4882a593Smuzhiyun 	GPIO3D0_MASK		= 3,
447*4882a593Smuzhiyun 	GPIO3D0_GPIO		= 0,
448*4882a593Smuzhiyun 	GPIO3D0_SDMMC1_PWR_EN,
449*4882a593Smuzhiyun 	GPIO3D0_MII_MD,
450*4882a593Smuzhiyun };
451*4882a593Smuzhiyun 
452*4882a593Smuzhiyun /* GRF_SOC_CON0 */
453*4882a593Smuzhiyun enum {
454*4882a593Smuzhiyun 	HSADC_CLK_DIR_SHIFT	= 15,
455*4882a593Smuzhiyun 	HSADC_CLK_DIR_MASK	= 1,
456*4882a593Smuzhiyun 
457*4882a593Smuzhiyun 	HSADC_SEL_SHIFT		= 14,
458*4882a593Smuzhiyun 	HSADC_SEL_MASK		= 1,
459*4882a593Smuzhiyun 
460*4882a593Smuzhiyun 	NOC_REMAP_SHIFT		= 12,
461*4882a593Smuzhiyun 	NOC_REMAP_MASK		= 1,
462*4882a593Smuzhiyun 
463*4882a593Smuzhiyun 	EMMC_FLASH_SEL_SHIFT	= 11,
464*4882a593Smuzhiyun 	EMMC_FLASH_SEL_MASK	= 1,
465*4882a593Smuzhiyun 
466*4882a593Smuzhiyun 	TZPC_REVISION_SHIFT	= 7,
467*4882a593Smuzhiyun 	TZPC_REVISION_MASK	= 0xf,
468*4882a593Smuzhiyun 
469*4882a593Smuzhiyun 	L2CACHE_ACC_SHIFT	= 5,
470*4882a593Smuzhiyun 	L2CACHE_ACC_MASK	= 3,
471*4882a593Smuzhiyun 
472*4882a593Smuzhiyun 	L2RD_WAIT_SHIFT		= 3,
473*4882a593Smuzhiyun 	L2RD_WAIT_MASK		= 3,
474*4882a593Smuzhiyun 
475*4882a593Smuzhiyun 	IMEMRD_WAIT_SHIFT	= 1,
476*4882a593Smuzhiyun 	IMEMRD_WAIT_MASK	= 3,
477*4882a593Smuzhiyun };
478*4882a593Smuzhiyun 
479*4882a593Smuzhiyun /* GRF_SOC_CON1 */
480*4882a593Smuzhiyun enum {
481*4882a593Smuzhiyun 	RKI2C4_SEL_SHIFT	= 15,
482*4882a593Smuzhiyun 	RKI2C4_SEL_MASK		= 1,
483*4882a593Smuzhiyun 
484*4882a593Smuzhiyun 	RKI2C3_SEL_SHIFT	= 14,
485*4882a593Smuzhiyun 	RKI2C3_SEL_MASK		= 1,
486*4882a593Smuzhiyun 
487*4882a593Smuzhiyun 	RKI2C2_SEL_SHIFT	= 13,
488*4882a593Smuzhiyun 	RKI2C2_SEL_MASK		= 1,
489*4882a593Smuzhiyun 
490*4882a593Smuzhiyun 	RKI2C1_SEL_SHIFT	= 12,
491*4882a593Smuzhiyun 	RKI2C1_SEL_MASK		= 1,
492*4882a593Smuzhiyun 
493*4882a593Smuzhiyun 	RKI2C0_SEL_SHIFT	= 11,
494*4882a593Smuzhiyun 	RKI2C0_SEL_MASK		= 1,
495*4882a593Smuzhiyun 
496*4882a593Smuzhiyun 	VCODEC_SEL_SHIFT	= 10,
497*4882a593Smuzhiyun 	VCODEC_SEL_MASK		= 1,
498*4882a593Smuzhiyun 
499*4882a593Smuzhiyun 	PERI_EMEM_PAUSE_SHIFT	= 9,
500*4882a593Smuzhiyun 	PERI_EMEM_PAUSE_MASK	= 1,
501*4882a593Smuzhiyun 
502*4882a593Smuzhiyun 	PERI_USB_PAUSE_SHIFT	= 8,
503*4882a593Smuzhiyun 	PERI_USB_PAUSE_MASK	= 1,
504*4882a593Smuzhiyun 
505*4882a593Smuzhiyun 	SMC_MUX_MODE_0_SHIFT	= 6,
506*4882a593Smuzhiyun 	SMC_MUX_MODE_0_MASK	= 1,
507*4882a593Smuzhiyun 
508*4882a593Smuzhiyun 	SMC_SRAM_MW_0_SHIFT	= 4,
509*4882a593Smuzhiyun 	SMC_SRAM_MW_0_MASK	= 3,
510*4882a593Smuzhiyun 
511*4882a593Smuzhiyun 	SMC_REMAP_0_SHIFT	= 3,
512*4882a593Smuzhiyun 	SMC_REMAP_0_MASK	= 1,
513*4882a593Smuzhiyun 
514*4882a593Smuzhiyun 	SMC_A_GT_M0_SYNC_SHIFT	= 2,
515*4882a593Smuzhiyun 	SMC_A_GT_M0_SYNC_MASK	= 1,
516*4882a593Smuzhiyun 
517*4882a593Smuzhiyun 	EMAC_SPEED_SHIFT	= 1,
518*4882a593Smuzhiyun 	EMAC_SPEEC_MASK		= 1,
519*4882a593Smuzhiyun 
520*4882a593Smuzhiyun 	EMAC_MODE_SHIFT		= 0,
521*4882a593Smuzhiyun 	EMAC_MODE_MASK		= 1,
522*4882a593Smuzhiyun };
523*4882a593Smuzhiyun 
524*4882a593Smuzhiyun /* GRF_SOC_CON2 */
525*4882a593Smuzhiyun enum {
526*4882a593Smuzhiyun 	SDIO_CLK_OUT_SR_SHIFT	= 15,
527*4882a593Smuzhiyun 	SDIO_CLK_OUT_SR_MASK	= 1,
528*4882a593Smuzhiyun 
529*4882a593Smuzhiyun 	MEM_EMA_L2C_SHIFT	= 11,
530*4882a593Smuzhiyun 	MEM_EMA_L2C_MASK	= 7,
531*4882a593Smuzhiyun 
532*4882a593Smuzhiyun 	MEM_EMA_A9_SHIFT	= 8,
533*4882a593Smuzhiyun 	MEM_EMA_A9_MASK		= 7,
534*4882a593Smuzhiyun 
535*4882a593Smuzhiyun 	MSCH4_MAINDDR3_SHIFT	= 7,
536*4882a593Smuzhiyun 	MSCH4_MAINDDR3_MASK	= 1,
537*4882a593Smuzhiyun 	MSCH4_MAINDDR3_DDR3	= 1,
538*4882a593Smuzhiyun 
539*4882a593Smuzhiyun 	EMAC_NEWRCV_EN_SHIFT	= 6,
540*4882a593Smuzhiyun 	EMAC_NEWRCV_EN_MASK	= 1,
541*4882a593Smuzhiyun 
542*4882a593Smuzhiyun 	SW_ADDR15_EN_SHIFT	= 5,
543*4882a593Smuzhiyun 	SW_ADDR15_EN_MASK	= 1,
544*4882a593Smuzhiyun 
545*4882a593Smuzhiyun 	SW_ADDR16_EN_SHIFT	= 4,
546*4882a593Smuzhiyun 	SW_ADDR16_EN_MASK	= 1,
547*4882a593Smuzhiyun 
548*4882a593Smuzhiyun 	SW_ADDR17_EN_SHIFT	= 3,
549*4882a593Smuzhiyun 	SW_ADDR17_EN_MASK	= 1,
550*4882a593Smuzhiyun 
551*4882a593Smuzhiyun 	BANK2_TO_RANK_EN_SHIFT	= 2,
552*4882a593Smuzhiyun 	BANK2_TO_RANK_EN_MASK	= 1,
553*4882a593Smuzhiyun 
554*4882a593Smuzhiyun 	RANK_TO_ROW15_EN_SHIFT	= 1,
555*4882a593Smuzhiyun 	RANK_TO_ROW15_EN_MASK	= 1,
556*4882a593Smuzhiyun 
557*4882a593Smuzhiyun 	UPCTL_C_ACTIVE_IN_SHIFT = 0,
558*4882a593Smuzhiyun 	UPCTL_C_ACTIVE_IN_MASK	= 1,
559*4882a593Smuzhiyun 	UPCTL_C_ACTIVE_IN_MAY	= 0,
560*4882a593Smuzhiyun 	UPCTL_C_ACTIVE_IN_WILL,
561*4882a593Smuzhiyun };
562*4882a593Smuzhiyun 
563*4882a593Smuzhiyun /* GRF_DDRC_CON0 */
564*4882a593Smuzhiyun enum {
565*4882a593Smuzhiyun 	DDR_16BIT_EN_SHIFT	= 15,
566*4882a593Smuzhiyun 	DDR_16BIT_EN_MASK	= 1,
567*4882a593Smuzhiyun 
568*4882a593Smuzhiyun 	DTO_LB_SHIFT		= 11,
569*4882a593Smuzhiyun 	DTO_LB_MASK		= 3,
570*4882a593Smuzhiyun 
571*4882a593Smuzhiyun 	DTO_TE_SHIFT		= 9,
572*4882a593Smuzhiyun 	DTO_TE_MASK		= 3,
573*4882a593Smuzhiyun 
574*4882a593Smuzhiyun 	DTO_PDR_SHIFT		= 7,
575*4882a593Smuzhiyun 	DTO_PDR_MASK		= 3,
576*4882a593Smuzhiyun 
577*4882a593Smuzhiyun 	DTO_PDD_SHIFT		= 5,
578*4882a593Smuzhiyun 	DTO_PDD_MASK		= 3,
579*4882a593Smuzhiyun 
580*4882a593Smuzhiyun 	DTO_IOM_SHIFT		= 3,
581*4882a593Smuzhiyun 	DTO_IOM_MASK		= 3,
582*4882a593Smuzhiyun 
583*4882a593Smuzhiyun 	DTO_OE_SHIFT		= 1,
584*4882a593Smuzhiyun 	DTO_OE_MASK		= 3,
585*4882a593Smuzhiyun 
586*4882a593Smuzhiyun 	ATO_AE_SHIFT		= 0,
587*4882a593Smuzhiyun 	ATO_AE_MASK		= 1,
588*4882a593Smuzhiyun };
589*4882a593Smuzhiyun #endif
590