1 | /* SPDX-License-Identifier: GPL-2.0 */ |
2 | /* linux/arch/arm/plat-s3c64xx/include/mach/regs-gpio.h |
3 | * |
4 | * Copyright 2008 Openmoko, Inc. |
5 | * Copyright 2008 Simtec Electronics |
6 | * Ben Dooks <ben@simtec.co.uk> |
7 | * http://armlinux.simtec.co.uk/ |
8 | * |
9 | * S3C64XX - GPIO register definitions |
10 | */ |
11 | |
12 | #ifndef __ASM_PLAT_S3C64XX_REGS_GPIO_H |
13 | #define __ASM_PLAT_S3C64XX_REGS_GPIO_H __FILE__ |
14 | |
15 | /* Base addresses for each of the banks */ |
16 | |
17 | #define S3C64XX_GPIOREG(reg) (S3C64XX_VA_GPIO + (reg)) |
18 | |
19 | #define S3C64XX_GPA_BASE S3C64XX_GPIOREG(0x0000) |
20 | #define S3C64XX_GPB_BASE S3C64XX_GPIOREG(0x0020) |
21 | #define S3C64XX_GPC_BASE S3C64XX_GPIOREG(0x0040) |
22 | #define S3C64XX_GPD_BASE S3C64XX_GPIOREG(0x0060) |
23 | #define S3C64XX_GPE_BASE S3C64XX_GPIOREG(0x0080) |
24 | #define S3C64XX_GPF_BASE S3C64XX_GPIOREG(0x00A0) |
25 | #define S3C64XX_GPG_BASE S3C64XX_GPIOREG(0x00C0) |
26 | #define S3C64XX_GPH_BASE S3C64XX_GPIOREG(0x00E0) |
27 | #define S3C64XX_GPI_BASE S3C64XX_GPIOREG(0x0100) |
28 | #define S3C64XX_GPJ_BASE S3C64XX_GPIOREG(0x0120) |
29 | #define S3C64XX_GPK_BASE S3C64XX_GPIOREG(0x0800) |
30 | #define S3C64XX_GPL_BASE S3C64XX_GPIOREG(0x0810) |
31 | #define S3C64XX_GPM_BASE S3C64XX_GPIOREG(0x0820) |
32 | #define S3C64XX_GPN_BASE S3C64XX_GPIOREG(0x0830) |
33 | #define S3C64XX_GPO_BASE S3C64XX_GPIOREG(0x0140) |
34 | #define S3C64XX_GPP_BASE S3C64XX_GPIOREG(0x0160) |
35 | #define S3C64XX_GPQ_BASE S3C64XX_GPIOREG(0x0180) |
36 | |
37 | /* SPCON */ |
38 | |
39 | #define S3C64XX_SPCON S3C64XX_GPIOREG(0x1A0) |
40 | |
41 | #define S3C64XX_SPCON_DRVCON_CAM_MASK (0x3 << 30) |
42 | #define S3C64XX_SPCON_DRVCON_CAM_SHIFT (30) |
43 | #define S3C64XX_SPCON_DRVCON_CAM_2mA (0x0 << 30) |
44 | #define S3C64XX_SPCON_DRVCON_CAM_4mA (0x1 << 30) |
45 | #define S3C64XX_SPCON_DRVCON_CAM_7mA (0x2 << 30) |
46 | #define S3C64XX_SPCON_DRVCON_CAM_9mA (0x3 << 30) |
47 | |
48 | #define S3C64XX_SPCON_DRVCON_HSSPI_MASK (0x3 << 28) |
49 | #define S3C64XX_SPCON_DRVCON_HSSPI_SHIFT (28) |
50 | #define S3C64XX_SPCON_DRVCON_HSSPI_2mA (0x0 << 28) |
51 | #define S3C64XX_SPCON_DRVCON_HSSPI_4mA (0x1 << 28) |
52 | #define S3C64XX_SPCON_DRVCON_HSSPI_7mA (0x2 << 28) |
53 | #define S3C64XX_SPCON_DRVCON_HSSPI_9mA (0x3 << 28) |
54 | |
55 | #define S3C64XX_SPCON_DRVCON_HSMMC_MASK (0x3 << 26) |
56 | #define S3C64XX_SPCON_DRVCON_HSMMC_SHIFT (26) |
57 | #define S3C64XX_SPCON_DRVCON_HSMMC_2mA (0x0 << 26) |
58 | #define S3C64XX_SPCON_DRVCON_HSMMC_4mA (0x1 << 26) |
59 | #define S3C64XX_SPCON_DRVCON_HSMMC_7mA (0x2 << 26) |
60 | #define S3C64XX_SPCON_DRVCON_HSMMC_9mA (0x3 << 26) |
61 | |
62 | #define S3C64XX_SPCON_DRVCON_LCD_MASK (0x3 << 24) |
63 | #define S3C64XX_SPCON_DRVCON_LCD_SHIFT (24) |
64 | #define S3C64XX_SPCON_DRVCON_LCD_2mA (0x0 << 24) |
65 | #define S3C64XX_SPCON_DRVCON_LCD_4mA (0x1 << 24) |
66 | #define S3C64XX_SPCON_DRVCON_LCD_7mA (0x2 << 24) |
67 | #define S3C64XX_SPCON_DRVCON_LCD_9mA (0x3 << 24) |
68 | |
69 | #define S3C64XX_SPCON_DRVCON_MODEM_MASK (0x3 << 22) |
70 | #define S3C64XX_SPCON_DRVCON_MODEM_SHIFT (22) |
71 | #define S3C64XX_SPCON_DRVCON_MODEM_2mA (0x0 << 22) |
72 | #define S3C64XX_SPCON_DRVCON_MODEM_4mA (0x1 << 22) |
73 | #define S3C64XX_SPCON_DRVCON_MODEM_7mA (0x2 << 22) |
74 | #define S3C64XX_SPCON_DRVCON_MODEM_9mA (0x3 << 22) |
75 | |
76 | #define S3C64XX_SPCON_nRSTOUT_OEN (1 << 21) |
77 | |
78 | #define S3C64XX_SPCON_DRVCON_SPICLK1_MASK (0x3 << 18) |
79 | #define S3C64XX_SPCON_DRVCON_SPICLK1_SHIFT (18) |
80 | #define S3C64XX_SPCON_DRVCON_SPICLK1_2mA (0x0 << 18) |
81 | #define S3C64XX_SPCON_DRVCON_SPICLK1_4mA (0x1 << 18) |
82 | #define S3C64XX_SPCON_DRVCON_SPICLK1_7mA (0x2 << 18) |
83 | #define S3C64XX_SPCON_DRVCON_SPICLK1_9mA (0x3 << 18) |
84 | |
85 | #define S3C64XX_SPCON_MEM1_DQS_PUD_MASK (0x3 << 16) |
86 | #define S3C64XX_SPCON_MEM1_DQS_PUD_SHIFT (16) |
87 | #define S3C64XX_SPCON_MEM1_DQS_PUD_DISABLED (0x0 << 16) |
88 | #define S3C64XX_SPCON_MEM1_DQS_PUD_DOWN (0x1 << 16) |
89 | #define S3C64XX_SPCON_MEM1_DQS_PUD_UP (0x2 << 16) |
90 | |
91 | #define S3C64XX_SPCON_MEM1_D_PUD1_MASK (0x3 << 14) |
92 | #define S3C64XX_SPCON_MEM1_D_PUD1_SHIFT (14) |
93 | #define S3C64XX_SPCON_MEM1_D_PUD1_DISABLED (0x0 << 14) |
94 | #define S3C64XX_SPCON_MEM1_D_PUD1_DOWN (0x1 << 14) |
95 | #define S3C64XX_SPCON_MEM1_D_PUD1_UP (0x2 << 14) |
96 | |
97 | #define S3C64XX_SPCON_MEM1_D_PUD0_MASK (0x3 << 12) |
98 | #define S3C64XX_SPCON_MEM1_D_PUD0_SHIFT (12) |
99 | #define S3C64XX_SPCON_MEM1_D_PUD0_DISABLED (0x0 << 12) |
100 | #define S3C64XX_SPCON_MEM1_D_PUD0_DOWN (0x1 << 12) |
101 | #define S3C64XX_SPCON_MEM1_D_PUD0_UP (0x2 << 12) |
102 | |
103 | #define S3C64XX_SPCON_MEM0_D_PUD_MASK (0x3 << 8) |
104 | #define S3C64XX_SPCON_MEM0_D_PUD_SHIFT (8) |
105 | #define S3C64XX_SPCON_MEM0_D_PUD_DISABLED (0x0 << 8) |
106 | #define S3C64XX_SPCON_MEM0_D_PUD_DOWN (0x1 << 8) |
107 | #define S3C64XX_SPCON_MEM0_D_PUD_UP (0x2 << 8) |
108 | |
109 | #define S3C64XX_SPCON_USBH_DMPD (1 << 7) |
110 | #define S3C64XX_SPCON_USBH_DPPD (1 << 6) |
111 | #define S3C64XX_SPCON_USBH_PUSW2 (1 << 5) |
112 | #define S3C64XX_SPCON_USBH_PUSW1 (1 << 4) |
113 | #define S3C64XX_SPCON_USBH_SUSPND (1 << 3) |
114 | |
115 | #define S3C64XX_SPCON_LCD_SEL_MASK (0x3 << 0) |
116 | #define S3C64XX_SPCON_LCD_SEL_SHIFT (0) |
117 | #define S3C64XX_SPCON_LCD_SEL_HOST (0x0 << 0) |
118 | #define S3C64XX_SPCON_LCD_SEL_RGB (0x1 << 0) |
119 | #define S3C64XX_SPCON_LCD_SEL_606_656 (0x2 << 0) |
120 | |
121 | |
122 | /* External interrupt registers */ |
123 | |
124 | #define S3C64XX_EINT12CON S3C64XX_GPIOREG(0x200) |
125 | #define S3C64XX_EINT34CON S3C64XX_GPIOREG(0x204) |
126 | #define S3C64XX_EINT56CON S3C64XX_GPIOREG(0x208) |
127 | #define S3C64XX_EINT78CON S3C64XX_GPIOREG(0x20C) |
128 | #define S3C64XX_EINT9CON S3C64XX_GPIOREG(0x210) |
129 | |
130 | #define S3C64XX_EINT12FLTCON S3C64XX_GPIOREG(0x220) |
131 | #define S3C64XX_EINT34FLTCON S3C64XX_GPIOREG(0x224) |
132 | #define S3C64XX_EINT56FLTCON S3C64XX_GPIOREG(0x228) |
133 | #define S3C64XX_EINT78FLTCON S3C64XX_GPIOREG(0x22C) |
134 | #define S3C64XX_EINT9FLTCON S3C64XX_GPIOREG(0x230) |
135 | |
136 | #define S3C64XX_EINT12MASK S3C64XX_GPIOREG(0x240) |
137 | #define S3C64XX_EINT34MASK S3C64XX_GPIOREG(0x244) |
138 | #define S3C64XX_EINT56MASK S3C64XX_GPIOREG(0x248) |
139 | #define S3C64XX_EINT78MASK S3C64XX_GPIOREG(0x24C) |
140 | #define S3C64XX_EINT9MASK S3C64XX_GPIOREG(0x250) |
141 | |
142 | #define S3C64XX_EINT12PEND S3C64XX_GPIOREG(0x260) |
143 | #define S3C64XX_EINT34PEND S3C64XX_GPIOREG(0x264) |
144 | #define S3C64XX_EINT56PEND S3C64XX_GPIOREG(0x268) |
145 | #define S3C64XX_EINT78PEND S3C64XX_GPIOREG(0x26C) |
146 | #define S3C64XX_EINT9PEND S3C64XX_GPIOREG(0x270) |
147 | |
148 | #define S3C64XX_PRIORITY S3C64XX_GPIOREG(0x280) |
149 | #define S3C64XX_PRIORITY_ARB(x) (1 << (x)) |
150 | |
151 | #define S3C64XX_SERVICE S3C64XX_GPIOREG(0x284) |
152 | #define S3C64XX_SERVICEPEND S3C64XX_GPIOREG(0x288) |
153 | |
154 | #define S3C64XX_EINT0CON0 S3C64XX_GPIOREG(0x900) |
155 | #define S3C64XX_EINT0CON1 S3C64XX_GPIOREG(0x904) |
156 | #define S3C64XX_EINT0FLTCON0 S3C64XX_GPIOREG(0x910) |
157 | #define S3C64XX_EINT0FLTCON1 S3C64XX_GPIOREG(0x914) |
158 | #define S3C64XX_EINT0FLTCON2 S3C64XX_GPIOREG(0x918) |
159 | #define S3C64XX_EINT0FLTCON3 S3C64XX_GPIOREG(0x91C) |
160 | |
161 | #define S3C64XX_EINT0MASK S3C64XX_GPIOREG(0x920) |
162 | #define S3C64XX_EINT0PEND S3C64XX_GPIOREG(0x924) |
163 | |
164 | /* GPIO sleep configuration */ |
165 | |
166 | #define S3C64XX_SPCONSLP S3C64XX_GPIOREG(0x880) |
167 | |
168 | #define S3C64XX_SPCONSLP_TDO_PULLDOWN (1 << 14) |
169 | #define S3C64XX_SPCONSLP_CKE1INIT (1 << 5) |
170 | |
171 | #define S3C64XX_SPCONSLP_RSTOUT_MASK (0x3 << 12) |
172 | #define S3C64XX_SPCONSLP_RSTOUT_OUT0 (0x0 << 12) |
173 | #define S3C64XX_SPCONSLP_RSTOUT_OUT1 (0x1 << 12) |
174 | #define S3C64XX_SPCONSLP_RSTOUT_HIZ (0x2 << 12) |
175 | |
176 | #define S3C64XX_SPCONSLP_KPCOL_MASK (0x3 << 0) |
177 | #define S3C64XX_SPCONSLP_KPCOL_OUT0 (0x0 << 0) |
178 | #define S3C64XX_SPCONSLP_KPCOL_OUT1 (0x1 << 0) |
179 | #define S3C64XX_SPCONSLP_KPCOL_INP (0x2 << 0) |
180 | |
181 | |
182 | #define S3C64XX_SLPEN S3C64XX_GPIOREG(0x930) |
183 | |
184 | #define S3C64XX_SLPEN_USE_xSLP (1 << 0) |
185 | #define S3C64XX_SLPEN_CFG_BYSLPEN (1 << 1) |
186 | |
187 | #endif /* __ASM_PLAT_S3C64XX_REGS_GPIO_H */ |
188 | |
189 | |