]> git.sur5r.net Git - u-boot/blob - arch/arm/include/asm/arch-rockchip/grf_rk3288.h
SPDX: Convert all of our single license tags to Linux Kernel style
[u-boot] / arch / arm / include / asm / arch-rockchip / grf_rk3288.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * (C) Copyright 2015 Google, Inc
4  * Copyright 2014 Rockchip Inc.
5  */
6
7 #ifndef _ASM_ARCH_GRF_RK3288_H
8 #define _ASM_ARCH_GRF_RK3288_H
9
10 struct rk3288_grf_gpio_lh {
11         u32 l;
12         u32 h;
13 };
14
15 struct rk3288_grf {
16         u32 reserved[3];
17         u32 gpio1d_iomux;
18         u32 gpio2a_iomux;
19         u32 gpio2b_iomux;
20
21         u32 gpio2c_iomux;
22         u32 reserved2;
23         u32 gpio3a_iomux;
24         u32 gpio3b_iomux;
25
26         u32 gpio3c_iomux;
27         u32 gpio3dl_iomux;
28         u32 gpio3dh_iomux;
29         u32 gpio4al_iomux;
30
31         u32 gpio4ah_iomux;
32         u32 gpio4bl_iomux;
33         u32 reserved3;
34         u32 gpio4c_iomux;
35
36         u32 gpio4d_iomux;
37         u32 reserved4;
38         u32 gpio5b_iomux;
39         u32 gpio5c_iomux;
40
41         u32 reserved5;
42         u32 gpio6a_iomux;
43         u32 gpio6b_iomux;
44         u32 gpio6c_iomux;
45         u32 reserved6;
46         u32 gpio7a_iomux;
47         u32 gpio7b_iomux;
48         u32 gpio7cl_iomux;
49         u32 gpio7ch_iomux;
50         u32 reserved7;
51         u32 gpio8a_iomux;
52         u32 gpio8b_iomux;
53         u32 reserved8[30];
54         struct rk3288_grf_gpio_lh gpio_sr[8];
55         u32 gpio1_p[8][4];
56         u32 gpio1_e[8][4];
57         u32 gpio_smt;
58         u32 soc_con0;
59         u32 soc_con1;
60         u32 soc_con2;
61         u32 soc_con3;
62         u32 soc_con4;
63         u32 soc_con5;
64         u32 soc_con6;
65         u32 soc_con7;
66         u32 soc_con8;
67         u32 soc_con9;
68         u32 soc_con10;
69         u32 soc_con11;
70         u32 soc_con12;
71         u32 soc_con13;
72         u32 soc_con14;
73         u32 soc_status[22];
74         u32 reserved9[2];
75         u32 peridmac_con[4];
76         u32 ddrc0_con0;
77         u32 ddrc1_con0;
78         u32 cpu_con[5];
79         u32 reserved10[3];
80         u32 cpu_status0;
81         u32 reserved11;
82         u32 uoc0_con[5];
83         u32 uoc1_con[5];
84         u32 uoc2_con[4];
85         u32 uoc3_con[2];
86         u32 uoc4_con[2];
87         u32 pvtm_con[3];
88         u32 pvtm_status[3];
89         u32 io_vsel;
90         u32 saradc_testbit;
91         u32 tsadc_testbit_l;
92         u32 tsadc_testbit_h;
93         u32 os_reg[4];
94         u32 reserved12;
95         u32 soc_con15;
96         u32 soc_con16;
97 };
98
99 struct rk3288_sgrf {
100         u32 soc_con0;
101         u32 soc_con1;
102         u32 soc_con2;
103         u32 soc_con3;
104         u32 soc_con4;
105         u32 soc_con5;
106         u32 reserved1[(0x20-0x18)/4];
107         u32 busdmac_con[2];
108         u32 reserved2[(0x40-0x28)/4];
109         u32 cpu_con[3];
110         u32 reserved3[(0x50-0x4c)/4];
111         u32 soc_con6;
112         u32 soc_con7;
113         u32 soc_con8;
114         u32 soc_con9;
115         u32 soc_con10;
116         u32 soc_con11;
117         u32 soc_con12;
118         u32 soc_con13;
119         u32 soc_con14;
120         u32 soc_con15;
121         u32 soc_con16;
122         u32 soc_con17;
123         u32 soc_con18;
124         u32 soc_con19;
125         u32 soc_con20;
126         u32 soc_con21;
127         u32 reserved4[(0x100-0x90)/4];
128         u32 soc_status[2];
129         u32 reserved5[(0x120-0x108)/4];
130         u32 fast_boot_addr;
131 };
132
133 /* GRF_GPIO1D_IOMUX */
134 enum {
135         GPIO1D3_SHIFT           = 6,
136         GPIO1D3_MASK            = 1,
137         GPIO1D3_GPIO            = 0,
138         GPIO1D3_LCDC0_DCLK,
139
140         GPIO1D2_SHIFT           = 4,
141         GPIO1D2_MASK            = 1,
142         GPIO1D2_GPIO            = 0,
143         GPIO1D2_LCDC0_DEN,
144
145         GPIO1D1_SHIFT           = 2,
146         GPIO1D1_MASK            = 1,
147         GPIO1D1_GPIO            = 0,
148         GPIO1D1_LCDC0_VSYNC,
149
150         GPIO1D0_SHIFT           = 0,
151         GPIO1D0_MASK            = 1,
152         GPIO1D0_GPIO            = 0,
153         GPIO1D0_LCDC0_HSYNC,
154 };
155
156 /* GRF_GPIO2C_IOMUX */
157 enum {
158         GPIO2C1_SHIFT           = 2,
159         GPIO2C1_MASK            = 1,
160         GPIO2C1_GPIO            = 0,
161         GPIO2C1_I2C3CAM_SDA,
162
163         GPIO2C0_SHIFT           = 0,
164         GPIO2C0_MASK            = 1,
165         GPIO2C0_GPIO            = 0,
166         GPIO2C0_I2C3CAM_SCL,
167 };
168
169 /* GRF_GPIO3A_IOMUX */
170 enum {
171         GPIO3A7_SHIFT           = 14,
172         GPIO3A7_MASK            = 3,
173         GPIO3A7_GPIO            = 0,
174         GPIO3A7_FLASH0_DATA7,
175         GPIO3A7_EMMC_DATA7,
176
177         GPIO3A6_SHIFT           = 12,
178         GPIO3A6_MASK            = 3,
179         GPIO3A6_GPIO            = 0,
180         GPIO3A6_FLASH0_DATA6,
181         GPIO3A6_EMMC_DATA6,
182
183         GPIO3A5_SHIFT           = 10,
184         GPIO3A5_MASK            = 3,
185         GPIO3A5_GPIO            = 0,
186         GPIO3A5_FLASH0_DATA5,
187         GPIO3A5_EMMC_DATA5,
188
189         GPIO3A4_SHIFT           = 8,
190         GPIO3A4_MASK            = 3,
191         GPIO3A4_GPIO            = 0,
192         GPIO3A4_FLASH0_DATA4,
193         GPIO3A4_EMMC_DATA4,
194
195         GPIO3A3_SHIFT           = 6,
196         GPIO3A3_MASK            = 3,
197         GPIO3A3_GPIO            = 0,
198         GPIO3A3_FLASH0_DATA3,
199         GPIO3A3_EMMC_DATA3,
200
201         GPIO3A2_SHIFT           = 4,
202         GPIO3A2_MASK            = 3,
203         GPIO3A2_GPIO            = 0,
204         GPIO3A2_FLASH0_DATA2,
205         GPIO3A2_EMMC_DATA2,
206
207         GPIO3A1_SHIFT           = 2,
208         GPIO3A1_MASK            = 3,
209         GPIO3A1_GPIO            = 0,
210         GPIO3A1_FLASH0_DATA1,
211         GPIO3A1_EMMC_DATA1,
212
213         GPIO3A0_SHIFT           = 0,
214         GPIO3A0_MASK            = 3,
215         GPIO3A0_GPIO            = 0,
216         GPIO3A0_FLASH0_DATA0,
217         GPIO3A0_EMMC_DATA0,
218 };
219
220 /* GRF_GPIO3B_IOMUX */
221 enum {
222         GPIO3B7_SHIFT           = 14,
223         GPIO3B7_MASK            = 1,
224         GPIO3B7_GPIO            = 0,
225         GPIO3B7_FLASH0_CSN1,
226
227         GPIO3B6_SHIFT           = 12,
228         GPIO3B6_MASK            = 1,
229         GPIO3B6_GPIO            = 0,
230         GPIO3B6_FLASH0_CSN0,
231
232         GPIO3B5_SHIFT           = 10,
233         GPIO3B5_MASK            = 1,
234         GPIO3B5_GPIO            = 0,
235         GPIO3B5_FLASH0_WRN,
236
237         GPIO3B4_SHIFT           = 8,
238         GPIO3B4_MASK            = 1,
239         GPIO3B4_GPIO            = 0,
240         GPIO3B4_FLASH0_CLE,
241
242         GPIO3B3_SHIFT           = 6,
243         GPIO3B3_MASK            = 1,
244         GPIO3B3_GPIO            = 0,
245         GPIO3B3_FLASH0_ALE,
246
247         GPIO3B2_SHIFT           = 4,
248         GPIO3B2_MASK            = 1,
249         GPIO3B2_GPIO            = 0,
250         GPIO3B2_FLASH0_RDN,
251
252         GPIO3B1_SHIFT           = 2,
253         GPIO3B1_MASK            = 3,
254         GPIO3B1_GPIO            = 0,
255         GPIO3B1_FLASH0_WP,
256         GPIO3B1_EMMC_PWREN,
257
258         GPIO3B0_SHIFT           = 0,
259         GPIO3B0_MASK            = 1,
260         GPIO3B0_GPIO            = 0,
261         GPIO3B0_FLASH0_RDY,
262 };
263
264 /* GRF_GPIO3C_IOMUX */
265 enum {
266         GPIO3C2_SHIFT           = 4,
267         GPIO3C2_MASK            = 3,
268         GPIO3C2_GPIO            = 0,
269         GPIO3C2_FLASH0_DQS,
270         GPIO3C2_EMMC_CLKOUT,
271
272         GPIO3C1_SHIFT           = 2,
273         GPIO3C1_MASK            = 3,
274         GPIO3C1_GPIO            = 0,
275         GPIO3C1_FLASH0_CSN3,
276         GPIO3C1_EMMC_RSTNOUT,
277
278         GPIO3C0_SHIFT           = 0,
279         GPIO3C0_MASK            = 3,
280         GPIO3C0_GPIO            = 0,
281         GPIO3C0_FLASH0_CSN2,
282         GPIO3C0_EMMC_CMD,
283 };
284
285 /* GRF_GPIO3DL_IOMUX */
286 enum {
287         GPIO3D3_SHIFT           = 12,
288         GPIO3D3_MASK            = 7,
289         GPIO3D3_GPIO            = 0,
290         GPIO3D3_FLASH1_DATA3,
291         GPIO3D3_HOST_DOUT3,
292         GPIO3D3_MAC_RXD3,
293         GPIO3D3_SDIO1_DATA3,
294
295         GPIO3D2_SHIFT           = 8,
296         GPIO3D2_MASK            = 7,
297         GPIO3D2_GPIO            = 0,
298         GPIO3D2_FLASH1_DATA2,
299         GPIO3D2_HOST_DOUT2,
300         GPIO3D2_MAC_RXD2,
301         GPIO3D2_SDIO1_DATA2,
302
303         GPIO3D1_SHIFT           = 4,
304         GPIO3D1_MASK            = 7,
305         GPIO3D1_GPIO            = 0,
306         GPIO3DL1_FLASH1_DATA1,
307         GPIO3D1_HOST_DOUT1,
308         GPIO3D1_MAC_TXD3,
309         GPIO3D1_SDIO1_DATA1,
310
311         GPIO3D0_SHIFT           = 0,
312         GPIO3D0_MASK            = 7,
313         GPIO3D0_GPIO            = 0,
314         GPIO3D0_FLASH1_DATA0,
315         GPIO3D0_HOST_DOUT0,
316         GPIO3D0_MAC_TXD2,
317         GPIO3D0_SDIO1_DATA0,
318 };
319
320 /* GRF_GPIO3HL_IOMUX */
321 enum {
322         GPIO3D7_SHIFT           = 12,
323         GPIO3D7_MASK            = 7,
324         GPIO3D7_GPIO            = 0,
325         GPIO3D7_FLASH1_DATA7,
326         GPIO3D7_HOST_DOUT7,
327         GPIO3D7_MAC_RXD1,
328         GPIO3D7_SDIO1_INTN,
329
330         GPIO3D6_SHIFT           = 8,
331         GPIO3D6_MASK            = 7,
332         GPIO3D6_GPIO            = 0,
333         GPIO3D6_FLASH1_DATA6,
334         GPIO3D6_HOST_DOUT6,
335         GPIO3D6_MAC_RXD0,
336         GPIO3D6_SDIO1_BKPWR,
337
338         GPIO3D5_SHIFT           = 4,
339         GPIO3D5_MASK            = 7,
340         GPIO3D5_GPIO            = 0,
341         GPIO3D5_FLASH1_DATA5,
342         GPIO3D5_HOST_DOUT5,
343         GPIO3D5_MAC_TXD1,
344         GPIO3D5_SDIO1_WRPRT,
345
346         GPIO3D4_SHIFT           = 0,
347         GPIO3D4_MASK            = 7,
348         GPIO3D4_GPIO            = 0,
349         GPIO3D4_FLASH1_DATA4,
350         GPIO3D4_HOST_DOUT4,
351         GPIO3D4_MAC_TXD0,
352         GPIO3D4_SDIO1_DETECTN,
353 };
354
355 /* GRF_GPIO4AL_IOMUX */
356 enum {
357         GPIO4A3_SHIFT           = 12,
358         GPIO4A3_MASK            = 7,
359         GPIO4A3_GPIO            = 0,
360         GPIO4A3_FLASH1_ALE,
361         GPIO4A3_HOST_DOUT9,
362         GPIO4A3_MAC_CLK,
363         GPIO4A3_FLASH0_CSN6,
364
365         GPIO4A2_SHIFT           = 8,
366         GPIO4A2_MASK            = 7,
367         GPIO4A2_GPIO            = 0,
368         GPIO4A2_FLASH1_RDN,
369         GPIO4A2_HOST_DOUT8,
370         GPIO4A2_MAC_RXER,
371         GPIO4A2_FLASH0_CSN5,
372
373         GPIO4A1_SHIFT           = 4,
374         GPIO4A1_MASK            = 7,
375         GPIO4A1_GPIO            = 0,
376         GPIO4A1_FLASH1_WP,
377         GPIO4A1_HOST_CKOUTN,
378         GPIO4A1_MAC_TXDV,
379         GPIO4A1_FLASH0_CSN4,
380
381         GPIO4A0_SHIFT           = 0,
382         GPIO4A0_MASK            = 3,
383         GPIO4A0_GPIO            = 0,
384         GPIO4A0_FLASH1_RDY,
385         GPIO4A0_HOST_CKOUTP,
386         GPIO4A0_MAC_MDC,
387 };
388
389 /* GRF_GPIO4AH_IOMUX */
390 enum {
391         GPIO4A7_SHIFT           = 12,
392         GPIO4A7_MASK            = 7,
393         GPIO4A7_GPIO            = 0,
394         GPIO4A7_FLASH1_CSN1,
395         GPIO4A7_HOST_DOUT13,
396         GPIO4A7_MAC_CSR,
397         GPIO4A7_SDIO1_CLKOUT,
398
399         GPIO4A6_SHIFT           = 8,
400         GPIO4A6_MASK            = 7,
401         GPIO4A6_GPIO            = 0,
402         GPIO4A6_FLASH1_CSN0,
403         GPIO4A6_HOST_DOUT12,
404         GPIO4A6_MAC_RXCLK,
405         GPIO4A6_SDIO1_CMD,
406
407         GPIO4A5_SHIFT           = 4,
408         GPIO4A5_MASK            = 3,
409         GPIO4A5_GPIO            = 0,
410         GPIO4A5_FLASH1_WRN,
411         GPIO4A5_HOST_DOUT11,
412         GPIO4A5_MAC_MDIO,
413
414         GPIO4A4_SHIFT           = 0,
415         GPIO4A4_MASK            = 7,
416         GPIO4A4_GPIO            = 0,
417         GPIO4A4_FLASH1_CLE,
418         GPIO4A4_HOST_DOUT10,
419         GPIO4A4_MAC_TXEN,
420         GPIO4A4_FLASH0_CSN7,
421 };
422
423 /* GRF_GPIO4BL_IOMUX */
424 enum {
425         GPIO4B1_SHIFT           = 4,
426         GPIO4B1_MASK            = 7,
427         GPIO4B1_GPIO            = 0,
428         GPIO4B1_FLASH1_CSN2,
429         GPIO4B1_HOST_DOUT15,
430         GPIO4B1_MAC_TXCLK,
431         GPIO4B1_SDIO1_PWREN,
432
433         GPIO4B0_SHIFT           = 0,
434         GPIO4B0_MASK            = 7,
435         GPIO4B0_GPIO            = 0,
436         GPIO4B0_FLASH1_DQS,
437         GPIO4B0_HOST_DOUT14,
438         GPIO4B0_MAC_COL,
439         GPIO4B0_FLASH1_CSN3,
440 };
441
442 /* GRF_GPIO4C_IOMUX */
443 enum {
444         GPIO4C7_SHIFT           = 14,
445         GPIO4C7_MASK            = 1,
446         GPIO4C7_GPIO            = 0,
447         GPIO4C7_SDIO0_DATA3,
448
449         GPIO4C6_SHIFT           = 12,
450         GPIO4C6_MASK            = 1,
451         GPIO4C6_GPIO            = 0,
452         GPIO4C6_SDIO0_DATA2,
453
454         GPIO4C5_SHIFT           = 10,
455         GPIO4C5_MASK            = 1,
456         GPIO4C5_GPIO            = 0,
457         GPIO4C5_SDIO0_DATA1,
458
459         GPIO4C4_SHIFT           = 8,
460         GPIO4C4_MASK            = 1,
461         GPIO4C4_GPIO            = 0,
462         GPIO4C4_SDIO0_DATA0,
463
464         GPIO4C3_SHIFT           = 6,
465         GPIO4C3_MASK            = 1,
466         GPIO4C3_GPIO            = 0,
467         GPIO4C3_UART0BT_RTSN,
468
469         GPIO4C2_SHIFT           = 4,
470         GPIO4C2_MASK            = 1,
471         GPIO4C2_GPIO            = 0,
472         GPIO4C2_UART0BT_CTSN,
473
474         GPIO4C1_SHIFT           = 2,
475         GPIO4C1_MASK            = 1,
476         GPIO4C1_GPIO            = 0,
477         GPIO4C1_UART0BT_SOUT,
478
479         GPIO4C0_SHIFT           = 0,
480         GPIO4C0_MASK            = 1,
481         GPIO4C0_GPIO            = 0,
482         GPIO4C0_UART0BT_SIN,
483 };
484
485 /* GRF_GPIO5B_IOMUX */
486 enum {
487         GPIO5B7_SHIFT           = 14,
488         GPIO5B7_MASK            = 3,
489         GPIO5B7_GPIO            = 0,
490         GPIO5B7_SPI0_RXD,
491         GPIO5B7_TS0_DATA7,
492         GPIO5B7_UART4EXP_SIN,
493
494         GPIO5B6_SHIFT           = 12,
495         GPIO5B6_MASK            = 3,
496         GPIO5B6_GPIO            = 0,
497         GPIO5B6_SPI0_TXD,
498         GPIO5B6_TS0_DATA6,
499         GPIO5B6_UART4EXP_SOUT,
500
501         GPIO5B5_SHIFT           = 10,
502         GPIO5B5_MASK            = 3,
503         GPIO5B5_GPIO            = 0,
504         GPIO5B5_SPI0_CSN0,
505         GPIO5B5_TS0_DATA5,
506         GPIO5B5_UART4EXP_RTSN,
507
508         GPIO5B4_SHIFT           = 8,
509         GPIO5B4_MASK            = 3,
510         GPIO5B4_GPIO            = 0,
511         GPIO5B4_SPI0_CLK,
512         GPIO5B4_TS0_DATA4,
513         GPIO5B4_UART4EXP_CTSN,
514
515         GPIO5B3_SHIFT           = 6,
516         GPIO5B3_MASK            = 3,
517         GPIO5B3_GPIO            = 0,
518         GPIO5B3_UART1BB_RTSN,
519         GPIO5B3_TS0_DATA3,
520
521         GPIO5B2_SHIFT           = 4,
522         GPIO5B2_MASK            = 3,
523         GPIO5B2_GPIO            = 0,
524         GPIO5B2_UART1BB_CTSN,
525         GPIO5B2_TS0_DATA2,
526
527         GPIO5B1_SHIFT           = 2,
528         GPIO5B1_MASK            = 3,
529         GPIO5B1_GPIO            = 0,
530         GPIO5B1_UART1BB_SOUT,
531         GPIO5B1_TS0_DATA1,
532
533         GPIO5B0_SHIFT           = 0,
534         GPIO5B0_MASK            = 3,
535         GPIO5B0_GPIO            = 0,
536         GPIO5B0_UART1BB_SIN,
537         GPIO5B0_TS0_DATA0,
538 };
539
540 /* GRF_GPIO5C_IOMUX */
541 enum {
542         GPIO5C3_SHIFT           = 6,
543         GPIO5C3_MASK            = 1,
544         GPIO5C3_GPIO            = 0,
545         GPIO5C3_TS0_ERR,
546
547         GPIO5C2_SHIFT           = 4,
548         GPIO5C2_MASK            = 1,
549         GPIO5C2_GPIO            = 0,
550         GPIO5C2_TS0_CLK,
551
552         GPIO5C1_SHIFT           = 2,
553         GPIO5C1_MASK            = 1,
554         GPIO5C1_GPIO            = 0,
555         GPIO5C1_TS0_VALID,
556
557         GPIO5C0_SHIFT           = 0,
558         GPIO5C0_MASK            = 3,
559         GPIO5C0_GPIO            = 0,
560         GPIO5C0_SPI0_CSN1,
561         GPIO5C0_TS0_SYNC,
562 };
563
564 /* GRF_GPIO6B_IOMUX */
565 enum {
566         GPIO6B3_SHIFT           = 6,
567         GPIO6B3_MASK            = 1,
568         GPIO6B3_GPIO            = 0,
569         GPIO6B3_SPDIF_TX,
570
571         GPIO6B2_SHIFT           = 4,
572         GPIO6B2_MASK            = 1,
573         GPIO6B2_GPIO            = 0,
574         GPIO6B2_I2C1AUDIO_SCL,
575
576         GPIO6B1_SHIFT           = 2,
577         GPIO6B1_MASK            = 1,
578         GPIO6B1_GPIO            = 0,
579         GPIO6B1_I2C1AUDIO_SDA,
580
581         GPIO6B0_SHIFT           = 0,
582         GPIO6B0_MASK            = 1,
583         GPIO6B0_GPIO            = 0,
584         GPIO6B0_I2S_CLK,
585 };
586
587 /* GRF_GPIO6C_IOMUX */
588 enum {
589         GPIO6C6_SHIFT           = 12,
590         GPIO6C6_MASK            = 1,
591         GPIO6C6_GPIO            = 0,
592         GPIO6C6_SDMMC0_DECTN,
593
594         GPIO6C5_SHIFT           = 10,
595         GPIO6C5_MASK            = 1,
596         GPIO6C5_GPIO            = 0,
597         GPIO6C5_SDMMC0_CMD,
598
599         GPIO6C4_SHIFT           = 8,
600         GPIO6C4_MASK            = 3,
601         GPIO6C4_GPIO            = 0,
602         GPIO6C4_SDMMC0_CLKOUT,
603         GPIO6C4_JTAG_TDO,
604
605         GPIO6C3_SHIFT           = 6,
606         GPIO6C3_MASK            = 3,
607         GPIO6C3_GPIO            = 0,
608         GPIO6C3_SDMMC0_DATA3,
609         GPIO6C3_JTAG_TCK,
610
611         GPIO6C2_SHIFT           = 4,
612         GPIO6C2_MASK            = 3,
613         GPIO6C2_GPIO            = 0,
614         GPIO6C2_SDMMC0_DATA2,
615         GPIO6C2_JTAG_TDI,
616
617         GPIO6C1_SHIFT           = 2,
618         GPIO6C1_MASK            = 3,
619         GPIO6C1_GPIO            = 0,
620         GPIO6C1_SDMMC0_DATA1,
621         GPIO6C1_JTAG_TRSTN,
622
623         GPIO6C0_SHIFT           = 0,
624         GPIO6C0_MASK            = 3,
625         GPIO6C0_GPIO            = 0,
626         GPIO6C0_SDMMC0_DATA0,
627         GPIO6C0_JTAG_TMS,
628 };
629
630 /* GRF_GPIO7A_IOMUX */
631 enum {
632         GPIO7A7_SHIFT           = 14,
633         GPIO7A7_MASK            = 3,
634         GPIO7A7_GPIO            = 0,
635         GPIO7A7_UART3GPS_SIN,
636         GPIO7A7_GPS_MAG,
637         GPIO7A7_HSADCT1_DATA0,
638
639         GPIO7A1_SHIFT           = 2,
640         GPIO7A1_MASK            = 1,
641         GPIO7A1_GPIO            = 0,
642         GPIO7A1_PWM_1,
643
644         GPIO7A0_SHIFT           = 0,
645         GPIO7A0_MASK            = 3,
646         GPIO7A0_GPIO            = 0,
647         GPIO7A0_PWM_0,
648         GPIO7A0_VOP0_PWM,
649         GPIO7A0_VOP1_PWM,
650 };
651
652 /* GRF_GPIO7B_IOMUX */
653 enum {
654         GPIO7B7_SHIFT           = 14,
655         GPIO7B7_MASK            = 3,
656         GPIO7B7_GPIO            = 0,
657         GPIO7B7_ISP_SHUTTERTRIG,
658         GPIO7B7_SPI1_TXD,
659
660         GPIO7B6_SHIFT           = 12,
661         GPIO7B6_MASK            = 3,
662         GPIO7B6_GPIO            = 0,
663         GPIO7B6_ISP_PRELIGHTTRIG,
664         GPIO7B6_SPI1_RXD,
665
666         GPIO7B5_SHIFT           = 10,
667         GPIO7B5_MASK            = 3,
668         GPIO7B5_GPIO            = 0,
669         GPIO7B5_ISP_FLASHTRIGOUT,
670         GPIO7B5_SPI1_CSN0,
671
672         GPIO7B4_SHIFT           = 8,
673         GPIO7B4_MASK            = 3,
674         GPIO7B4_GPIO            = 0,
675         GPIO7B4_ISP_SHUTTEREN,
676         GPIO7B4_SPI1_CLK,
677
678         GPIO7B3_SHIFT           = 6,
679         GPIO7B3_MASK            = 3,
680         GPIO7B3_GPIO            = 0,
681         GPIO7B3_USB_DRVVBUS1,
682         GPIO7B3_EDP_HOTPLUG,
683
684         GPIO7B2_SHIFT           = 4,
685         GPIO7B2_MASK            = 3,
686         GPIO7B2_GPIO            = 0,
687         GPIO7B2_UART3GPS_RTSN,
688         GPIO7B2_USB_DRVVBUS0,
689
690         GPIO7B1_SHIFT           = 2,
691         GPIO7B1_MASK            = 3,
692         GPIO7B1_GPIO            = 0,
693         GPIO7B1_UART3GPS_CTSN,
694         GPIO7B1_GPS_RFCLK,
695         GPIO7B1_GPST1_CLK,
696
697         GPIO7B0_SHIFT           = 0,
698         GPIO7B0_MASK            = 3,
699         GPIO7B0_GPIO            = 0,
700         GPIO7B0_UART3GPS_SOUT,
701         GPIO7B0_GPS_SIG,
702         GPIO7B0_HSADCT1_DATA1,
703 };
704
705 /* GRF_GPIO7CL_IOMUX */
706 enum {
707         GPIO7C3_SHIFT           = 12,
708         GPIO7C3_MASK            = 3,
709         GPIO7C3_GPIO            = 0,
710         GPIO7C3_I2C5HDMI_SDA,
711         GPIO7C3_EDPHDMII2C_SDA,
712
713         GPIO7C2_SHIFT           = 8,
714         GPIO7C2_MASK            = 1,
715         GPIO7C2_GPIO            = 0,
716         GPIO7C2_I2C4TP_SCL,
717
718         GPIO7C1_SHIFT           = 4,
719         GPIO7C1_MASK            = 1,
720         GPIO7C1_GPIO            = 0,
721         GPIO7C1_I2C4TP_SDA,
722
723         GPIO7C0_SHIFT           = 0,
724         GPIO7C0_MASK            = 3,
725         GPIO7C0_GPIO            = 0,
726         GPIO7C0_ISP_FLASHTRIGIN,
727         GPIO7C0_EDPHDMI_CECINOUTT1,
728 };
729
730 /* GRF_GPIO7CH_IOMUX */
731 enum {
732         GPIO7C7_SHIFT           = 12,
733         GPIO7C7_MASK            = 7,
734         GPIO7C7_GPIO            = 0,
735         GPIO7C7_UART2DBG_SOUT,
736         GPIO7C7_UART2DBG_SIROUT,
737         GPIO7C7_PWM_3,
738         GPIO7C7_EDPHDMI_CECINOUT,
739
740         GPIO7C6_SHIFT           = 8,
741         GPIO7C6_MASK            = 3,
742         GPIO7C6_GPIO            = 0,
743         GPIO7C6_UART2DBG_SIN,
744         GPIO7C6_UART2DBG_SIRIN,
745         GPIO7C6_PWM_2,
746
747         GPIO7C4_SHIFT           = 0,
748         GPIO7C4_MASK            = 3,
749         GPIO7C4_GPIO            = 0,
750         GPIO7C4_I2C5HDMI_SCL,
751         GPIO7C4_EDPHDMII2C_SCL,
752 };
753
754 /* GRF_GPIO8A_IOMUX */
755 enum {
756         GPIO8A7_SHIFT           = 14,
757         GPIO8A7_MASK            = 3,
758         GPIO8A7_GPIO            = 0,
759         GPIO8A7_SPI2_CSN0,
760         GPIO8A7_SC_DETECT,
761         GPIO8A7_RESERVE,
762
763         GPIO8A6_SHIFT           = 12,
764         GPIO8A6_MASK            = 3,
765         GPIO8A6_GPIO            = 0,
766         GPIO8A6_SPI2_CLK,
767         GPIO8A6_SC_IO,
768         GPIO8A6_RESERVE,
769
770         GPIO8A5_SHIFT           = 10,
771         GPIO8A5_MASK            = 3,
772         GPIO8A5_GPIO            = 0,
773         GPIO8A5_I2C2SENSOR_SCL,
774         GPIO8A5_SC_CLK,
775
776         GPIO8A4_SHIFT           = 8,
777         GPIO8A4_MASK            = 3,
778         GPIO8A4_GPIO            = 0,
779         GPIO8A4_I2C2SENSOR_SDA,
780         GPIO8A4_SC_RST,
781
782         GPIO8A3_SHIFT           = 6,
783         GPIO8A3_MASK            = 3,
784         GPIO8A3_GPIO            = 0,
785         GPIO8A3_SPI2_CSN1,
786         GPIO8A3_SC_IOT1,
787
788         GPIO8A2_SHIFT           = 4,
789         GPIO8A2_MASK            = 1,
790         GPIO8A2_GPIO            = 0,
791         GPIO8A2_SC_DETECTT1,
792
793         GPIO8A1_SHIFT           = 2,
794         GPIO8A1_MASK            = 3,
795         GPIO8A1_GPIO            = 0,
796         GPIO8A1_PS2_DATA,
797         GPIO8A1_SC_VCC33V,
798
799         GPIO8A0_SHIFT           = 0,
800         GPIO8A0_MASK            = 3,
801         GPIO8A0_GPIO            = 0,
802         GPIO8A0_PS2_CLK,
803         GPIO8A0_SC_VCC18V,
804 };
805
806 /* GRF_GPIO8B_IOMUX */
807 enum {
808         GPIO8B1_SHIFT           = 2,
809         GPIO8B1_MASK            = 3,
810         GPIO8B1_GPIO            = 0,
811         GPIO8B1_SPI2_TXD,
812         GPIO8B1_SC_CLK,
813
814         GPIO8B0_SHIFT           = 0,
815         GPIO8B0_MASK            = 3,
816         GPIO8B0_GPIO            = 0,
817         GPIO8B0_SPI2_RXD,
818         GPIO8B0_SC_RST,
819 };
820
821 /* GRF_SOC_CON0 */
822 enum {
823         PAUSE_MMC_PERI_SHIFT    = 0xf,
824         PAUSE_MMC_PERI_MASK     = 1,
825
826         PAUSE_EMEM_PERI_SHIFT   = 0xe,
827         PAUSE_EMEM_PERI_MASK    = 1,
828
829         PAUSE_USB_PERI_SHIFT    = 0xd,
830         PAUSE_USB_PERI_MASK     = 1,
831
832         GRF_FORCE_JTAG_SHIFT    = 0xc,
833         GRF_FORCE_JTAG_MASK     = 1,
834
835         GRF_CORE_IDLE_REQ_MODE_SEL1_SHIFT = 0xb,
836         GRF_CORE_IDLE_REQ_MODE_SEL1_MASK = 1,
837
838         GRF_CORE_IDLE_REQ_MODE_SEL0_SHIFT = 0xa,
839         GRF_CORE_IDLE_REQ_MODE_SEL0_MASK = 1,
840
841         DDR1_16BIT_EN_SHIFT     = 9,
842         DDR1_16BIT_EN_MASK      = 1,
843
844         DDR0_16BIT_EN_SHIFT     = 8,
845         DDR0_16BIT_EN_MASK      = 1,
846
847         VCODEC_SHIFT            = 7,
848         VCODEC_MASK             = 1,
849         VCODEC_SELECT_VEPU_ACLK = 0,
850         VCODEC_SELECT_VDPU_ACLK,
851
852         UPCTL1_C_ACTIVE_IN_SHIFT = 6,
853         UPCTL1_C_ACTIVE_IN_MASK = 1,
854         UPCTL1_C_ACTIVE_IN_MAY  = 0,
855         UPCTL1_C_ACTIVE_IN_WILL,
856
857         UPCTL0_C_ACTIVE_IN_SHIFT = 5,
858         UPCTL0_C_ACTIVE_IN_MASK = 1,
859         UPCTL0_C_ACTIVE_IN_MAY  = 0,
860         UPCTL0_C_ACTIVE_IN_WILL,
861
862         MSCH1_MAINDDR3_SHIFT    = 4,
863         MSCH1_MAINDDR3_MASK     = 1,
864         MSCH1_MAINDDR3_DDR3     = 1,
865
866         MSCH0_MAINDDR3_SHIFT    = 3,
867         MSCH0_MAINDDR3_MASK     = 1,
868         MSCH0_MAINDDR3_DDR3     = 1,
869
870         MSCH1_MAINPARTIALPOP_SHIFT = 2,
871         MSCH1_MAINPARTIALPOP_MASK = 1,
872
873         MSCH0_MAINPARTIALPOP_SHIFT = 1,
874         MSCH0_MAINPARTIALPOP_MASK = 1,
875 };
876
877 /* GRF_SOC_CON1 */
878 enum {
879         RK3288_RMII_MODE_SHIFT = 14,
880         RK3288_RMII_MODE_MASK  = (1 << RK3288_RMII_MODE_SHIFT),
881         RK3288_RMII_MODE       = (1 << RK3288_RMII_MODE_SHIFT),
882
883         RK3288_GMAC_CLK_SEL_SHIFT = 12,
884         RK3288_GMAC_CLK_SEL_MASK  = (3 << RK3288_GMAC_CLK_SEL_SHIFT),
885         RK3288_GMAC_CLK_SEL_125M  = (0 << RK3288_GMAC_CLK_SEL_SHIFT),
886         RK3288_GMAC_CLK_SEL_25M   = (3 << RK3288_GMAC_CLK_SEL_SHIFT),
887         RK3288_GMAC_CLK_SEL_2_5M  = (2 << RK3288_GMAC_CLK_SEL_SHIFT),
888
889         RK3288_RMII_CLK_SEL_SHIFT = 11,
890         RK3288_RMII_CLK_SEL_MASK  = (1 << RK3288_RMII_CLK_SEL_SHIFT),
891         RK3288_RMII_CLK_SEL_2_5M  = (0 << RK3288_RMII_CLK_SEL_SHIFT),
892         RK3288_RMII_CLK_SEL_25M   = (1 << RK3288_RMII_CLK_SEL_SHIFT),
893
894         GMAC_SPEED_SHIFT        = 0xa,
895         GMAC_SPEED_MASK         = 1,
896         GMAC_SPEED_10M          = 0,
897         GMAC_SPEED_100M,
898
899         GMAC_FLOWCTRL_SHIFT     = 0x9,
900         GMAC_FLOWCTRL_MASK      = 1,
901
902         RK3288_GMAC_PHY_INTF_SEL_SHIFT = 6,
903         RK3288_GMAC_PHY_INTF_SEL_MASK  = (7 << RK3288_GMAC_PHY_INTF_SEL_SHIFT),
904         RK3288_GMAC_PHY_INTF_SEL_RGMII = (1 << RK3288_GMAC_PHY_INTF_SEL_SHIFT),
905         RK3288_GMAC_PHY_INTF_SEL_RMII  = (4 << RK3288_GMAC_PHY_INTF_SEL_SHIFT),
906
907         HOST_REMAP_SHIFT        = 0x5,
908         HOST_REMAP_MASK         = 1
909 };
910
911 /* GRF_SOC_CON2 */
912 enum {
913         UPCTL1_LPDDR3_ODT_EN_SHIFT = 0xd,
914         UPCTL1_LPDDR3_ODT_EN_MASK = 1,
915         UPCTL1_LPDDR3_ODT_EN_ODT = 1,
916
917         UPCTL1_BST_DIABLE_SHIFT = 0xc,
918         UPCTL1_BST_DIABLE_MASK  = 1,
919         UPCTL1_BST_DIABLE_DISABLE = 1,
920
921         LPDDR3_EN1_SHIFT        = 0xb,
922         LPDDR3_EN1_MASK         = 1,
923         LPDDR3_EN1_LPDDR3       = 1,
924
925         UPCTL0_LPDDR3_ODT_EN_SHIFT = 0xa,
926         UPCTL0_LPDDR3_ODT_EN_MASK = 1,
927         UPCTL0_LPDDR3_ODT_EN_ODT_ENABLE = 1,
928
929         UPCTL0_BST_DIABLE_SHIFT = 9,
930         UPCTL0_BST_DIABLE_MASK  = 1,
931         UPCTL0_BST_DIABLE_DISABLE = 1,
932
933         LPDDR3_EN0_SHIFT        = 8,
934         LPDDR3_EN0_MASK         = 1,
935         LPDDR3_EN0_LPDDR3       = 1,
936
937         GRF_POC_FLASH0_CTRL_SHIFT = 7,
938         GRF_POC_FLASH0_CTRL_MASK = 1,
939         GRF_POC_FLASH0_CTRL_GPIO3C_3 = 0,
940         GRF_POC_FLASH0_CTRL_GRF_IO_VSEL,
941
942         SIMCARD_MUX_SHIFT       = 6,
943         SIMCARD_MUX_MASK        = 1,
944         SIMCARD_MUX_USE_A       = 1,
945         SIMCARD_MUX_USE_B       = 0,
946
947         GRF_SPDIF_2CH_EN_SHIFT  = 1,
948         GRF_SPDIF_2CH_EN_MASK   = 1,
949         GRF_SPDIF_2CH_EN_8CH    = 0,
950         GRF_SPDIF_2CH_EN_2CH,
951
952         PWM_SHIFT               = 0,
953         PWM_MASK                = 1,
954         PWM_RK                  = 1,
955         PWM_PWM                 = 0,
956 };
957
958 /* GRF_SOC_CON3 */
959 enum {
960         RK3288_RXCLK_DLY_ENA_GMAC_SHIFT = 0xf,
961         RK3288_RXCLK_DLY_ENA_GMAC_MASK =
962                 (1 << RK3288_RXCLK_DLY_ENA_GMAC_SHIFT),
963         RK3288_RXCLK_DLY_ENA_GMAC_DISABLE = 0,
964         RK3288_RXCLK_DLY_ENA_GMAC_ENABLE =
965                 (1 << RK3288_RXCLK_DLY_ENA_GMAC_SHIFT),
966
967         RK3288_TXCLK_DLY_ENA_GMAC_SHIFT = 0xe,
968         RK3288_TXCLK_DLY_ENA_GMAC_MASK =
969                 (1 << RK3288_TXCLK_DLY_ENA_GMAC_SHIFT),
970         RK3288_TXCLK_DLY_ENA_GMAC_DISABLE = 0,
971         RK3288_TXCLK_DLY_ENA_GMAC_ENABLE =
972                 (1 << RK3288_TXCLK_DLY_ENA_GMAC_SHIFT),
973
974         RK3288_CLK_RX_DL_CFG_GMAC_SHIFT = 0x7,
975         RK3288_CLK_RX_DL_CFG_GMAC_MASK =
976                 (0x7f << RK3288_CLK_RX_DL_CFG_GMAC_SHIFT),
977
978         RK3288_CLK_TX_DL_CFG_GMAC_SHIFT = 0x0,
979         RK3288_CLK_TX_DL_CFG_GMAC_MASK =
980                 (0x7f << RK3288_CLK_TX_DL_CFG_GMAC_SHIFT),
981 };
982
983 /* GRF_SOC_CON6 */
984 enum GRF_SOC_CON6 {
985         RK3288_HDMI_EDP_SEL_SHIFT = 0xf,
986         RK3288_HDMI_EDP_SEL_MASK =
987                 1 << RK3288_HDMI_EDP_SEL_SHIFT,
988         RK3288_HDMI_EDP_SEL_EDP = 0,
989         RK3288_HDMI_EDP_SEL_HDMI,
990
991         RK3288_DSI0_DPICOLORM_SHIFT = 0x8,
992         RK3288_DSI0_DPICOLORM_MASK =
993                 1 << RK3288_DSI0_DPICOLORM_SHIFT,
994
995         RK3288_DSI0_DPISHUTDN_SHIFT = 0x7,
996         RK3288_DSI0_DPISHUTDN_MASK =
997                 1 << RK3288_DSI0_DPISHUTDN_SHIFT,
998
999         RK3288_DSI0_LCDC_SEL_SHIFT = 0x6,
1000         RK3288_DSI0_LCDC_SEL_MASK =
1001                 1 << RK3288_DSI0_LCDC_SEL_SHIFT,
1002         RK3288_DSI0_LCDC_SEL_BIG = 0,
1003         RK3288_DSI0_LCDC_SEL_LIT = 1,
1004
1005         RK3288_EDP_LCDC_SEL_SHIFT = 0x5,
1006         RK3288_EDP_LCDC_SEL_MASK =
1007                 1 << RK3288_EDP_LCDC_SEL_SHIFT,
1008         RK3288_EDP_LCDC_SEL_BIG = 0,
1009         RK3288_EDP_LCDC_SEL_LIT = 1,
1010
1011         RK3288_HDMI_LCDC_SEL_SHIFT = 0x4,
1012         RK3288_HDMI_LCDC_SEL_MASK =
1013                 1 << RK3288_HDMI_LCDC_SEL_SHIFT,
1014         RK3288_HDMI_LCDC_SEL_BIG = 0,
1015         RK3288_HDMI_LCDC_SEL_LIT = 1,
1016
1017         RK3288_LVDS_LCDC_SEL_SHIFT = 0x3,
1018         RK3288_LVDS_LCDC_SEL_MASK =
1019                 1 << RK3288_LVDS_LCDC_SEL_SHIFT,
1020         RK3288_LVDS_LCDC_SEL_BIG = 0,
1021         RK3288_LVDS_LCDC_SEL_LIT = 1,
1022 };
1023
1024 /* RK3288_SOC_CON8 */
1025 enum GRF_SOC_CON8 {
1026         RK3288_DPHY_TX0_RXMODE_SHIFT = 4,
1027         RK3288_DPHY_TX0_RXMODE_MASK =
1028            0xf << RK3288_DPHY_TX0_RXMODE_SHIFT,
1029         RK3288_DPHY_TX0_RXMODE_EN = 0xf,
1030         RK3288_DPHY_TX0_RXMODE_DIS = 0,
1031
1032         RK3288_DPHY_TX0_TXSTOPMODE_SHIFT = 0x8,
1033         RK3288_DPHY_TX0_TXSTOPMODE_MASK =
1034            0xf << RK3288_DPHY_TX0_TXSTOPMODE_SHIFT,
1035         RK3288_DPHY_TX0_TXSTOPMODE_EN = 0xf,
1036         RK3288_DPHY_TX0_TXSTOPMODE_DIS = 0,
1037
1038         RK3288_DPHY_TX0_TURNREQUEST_SHIFT = 0,
1039         RK3288_DPHY_TX0_TURNREQUEST_MASK =
1040            0xf << RK3288_DPHY_TX0_TURNREQUEST_SHIFT,
1041         RK3288_DPHY_TX0_TURNREQUEST_EN = 0xf,
1042         RK3288_DPHY_TX0_TURNREQUEST_DIS = 0,
1043 };
1044
1045 /* GPIO Bias settings */
1046 enum GPIO_BIAS {
1047         GPIO_BIAS_2MA = 0,
1048         GPIO_BIAS_4MA,
1049         GPIO_BIAS_8MA,
1050         GPIO_BIAS_12MA,
1051 };
1052
1053 #define GPIO_BIAS_MASK  0x3
1054 #define GPIO_BIAS_SHIFT(x)  ((x) * 2)
1055
1056 enum GPIO_PU_PD {
1057         GPIO_PULL_NORMAL = 0,
1058         GPIO_PULL_UP,
1059         GPIO_PULL_DOWN,
1060         GPIO_PULL_REPEAT,
1061 };
1062
1063 #define GPIO_PULL_MASK  0x3
1064 #define GPIO_PULL_SHIFT(x)  ((x) * 2)
1065
1066 #endif