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