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