aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-s5pv210/include/mach/regs-gpio.h
blob: 7d79ea3e0e67eacd46de037358d1c3a7c1f2c26c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
/* linux/arch/arm/mach-s5pv210/include/mach/regs-gpio.h
 *
 * Copyright (c) 2010 Samsung Electronics Co., Ltd.
 *		http://www.samsung.com
 *
 * S5PV210 - GPIO (including EINT) register definitions
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
*/

#ifndef __ASM_ARCH_REGS_GPIO_H
#define __ASM_ARCH_REGS_GPIO_H __FILE__

#include <mach/map.h>

/* Base addresses for each of the banks */

#define S5PV210_GPA0_BASE		(S5P_VA_GPIO + 0x000)
#define S5PV210_GPA1_BASE		(S5P_VA_GPIO + 0x020)
#define S5PV210_GPB_BASE 		(S5P_VA_GPIO + 0x040)
#define S5PV210_GPC0_BASE		(S5P_VA_GPIO + 0x060)
#define S5PV210_GPC1_BASE		(S5P_VA_GPIO + 0x080)
#define S5PV210_GPD0_BASE		(S5P_VA_GPIO + 0x0A0)
#define S5PV210_GPD1_BASE		(S5P_VA_GPIO + 0x0C0)
#define S5PV210_GPE0_BASE		(S5P_VA_GPIO + 0x0E0)
#define S5PV210_GPE1_BASE		(S5P_VA_GPIO + 0x100)
#define S5PV210_GPF0_BASE		(S5P_VA_GPIO + 0x120)
#define S5PV210_GPF1_BASE		(S5P_VA_GPIO + 0x140)
#define S5PV210_GPF2_BASE		(S5P_VA_GPIO + 0x160)
#define S5PV210_GPF3_BASE		(S5P_VA_GPIO + 0x180)
#define S5PV210_GPG0_BASE		(S5P_VA_GPIO + 0x1A0)
#define S5PV210_GPG1_BASE		(S5P_VA_GPIO + 0x1C0d)
#define S5PV210_GPG2_BASE		(S5P_VA_GPIO + 0x1E0)
#define S5PV210_GPG3_BASE		(S5P_VA_GPIO + 0x200)
#define S5PV210_GPH0_BASE		(S5P_VA_GPIO + 0xC00)
#define S5PV210_GPH1_BASE		(S5P_VA_GPIO + 0xC20)
#define S5PV210_GPH2_BASE		(S5P_VA_GPIO + 0xC40)
#define S5PV210_GPH3_BASE		(S5P_VA_GPIO + 0xC60)
#define S5PV210_GPI_BASE 		(S5P_VA_GPIO + 0x220)
#define S5PV210_GPJ0_BASE		(S5P_VA_GPIO + 0x240)
#define S5PV210_GPJ1_BASE		(S5P_VA_GPIO + 0x260)
#define S5PV210_GPJ2_BASE		(S5P_VA_GPIO + 0x280)
#define S5PV210_GPJ3_BASE		(S5P_VA_GPIO + 0x2A0)
#define S5PV210_GPJ4_BASE		(S5P_VA_GPIO + 0x2C0)
#define S5PV210_MP01_BASE		(S5P_VA_GPIO + 0x2E0)
#define S5PV210_MP02_BASE		(S5P_VA_GPIO + 0x300)
#define S5PV210_MP03_BASE		(S5P_VA_GPIO + 0x320)
#define S5PV210_MP04_BASE		(S5P_VA_GPIO + 0x340)
#define S5PV210_MP05_BASE		(S5P_VA_GPIO + 0x360)
#define S5PV210_MP06_BASE		(S5P_VA_GPIO + 0x380)
#define S5PV210_MP07_BASE		(S5P_VA_GPIO + 0x3A0)
#define S5PV210_MP10_BASE		(S5P_VA_GPIO + 0x3C0)
#define S5PV210_MP11_BASE		(S5P_VA_GPIO + 0x3E0)
#define S5PV210_MP12_BASE		(S5P_VA_GPIO + 0x400)
#define S5PV210_MP13_BASE		(S5P_VA_GPIO + 0x420)
#define S5PV210_MP14_BASE		(S5P_VA_GPIO + 0x440)
#define S5PV210_MP15_BASE		(S5P_VA_GPIO + 0x460)
#define S5PV210_MP16_BASE		(S5P_VA_GPIO + 0x480)
#define S5PV210_MP17_BASE		(S5P_VA_GPIO + 0x4A0)
#define S5PV210_MP18_BASE		(S5P_VA_GPIO + 0x4C0)
#define S5PV210_MP20_BASE		(S5P_VA_GPIO + 0x4E0)
#define S5PV210_MP21_BASE		(S5P_VA_GPIO + 0x500)
#define S5PV210_MP22_BASE		(S5P_VA_GPIO + 0x520)
#define S5PV210_MP23_BASE		(S5P_VA_GPIO + 0x540)
#define S5PV210_MP24_BASE		(S5P_VA_GPIO + 0x560)
#define S5PV210_MP25_BASE		(S5P_VA_GPIO + 0x580)
#define S5PV210_MP26_BASE		(S5P_VA_GPIO + 0x5A0)
#define S5PV210_MP27_BASE		(S5P_VA_GPIO + 0x5C0)
#define S5PV210_MP28_BASE		(S5P_VA_GPIO + 0x5E0)
#define S5PV210_ETC0_BASE		(S5P_VA_GPIO + 0x600)
#define S5PV210_ETC1_BASE		(S5P_VA_GPIO + 0x620)
#define S5PV210_ETC2_BASE		(S5P_VA_GPIO + 0x640)
#define S5PV210_ETC4_BASE		(S5P_VA_GPIO + 0x660)

#define S5PV210_GPA0_INT_CON		(S5P_VA_GPIO + 0x700)
#define S5PV210_GPA0_INT_FLTCON0		(S5P_VA_GPIO + 0x800)
#define S5PV210_GPA0_INT_FLTCON1		(S5P_VA_GPIO + 0x804)
#define S5PV210_GPA0_INT_MASK		(S5P_VA_GPIO + 0x900)
#define S5PV210_GPA0_INT_PEND		(S5P_VA_GPIO + 0xA00)
#define S5PV210_GPA0_INT_FIXPRI		(S5P_VA_GPIO + 0xB14)

#define S5PV210_GPA1_INT_CON		(S5P_VA_GPIO + 0x704)
#define S5PV210_GPA1_INT_FLTCON0		(S5P_VA_GPIO + 0x808)
#define S5PV210_GPA1_INT_FLTCON1		(S5P_VA_GPIO + 0x80C)
#define S5PV210_GPA1_INT_MASK		(S5P_VA_GPIO + 0x904)
#define S5PV210_GPA1_INT_PEND		(S5P_VA_GPIO + 0xA04)
#define S5PV210_GPA1_INT_FIXPRI		(S5P_VA_GPIO + 0xB18)

#define S5PV210_GPB_INT_CON		(S5P_VA_GPIO + 0x708)
#define S5PV210_GPB_INT_FLTCON0		(S5P_VA_GPIO + 0x810)
#define S5PV210_GPB_INT_FLTCON1		(S5P_VA_GPIO + 0x814)
#define S5PV210_GPB_INT_MASK		(S5P_VA_GPIO + 0x908)
#define S5PV210_GPB_INT_PEND		(S5P_VA_GPIO + 0xA08)
#define S5PV210_GPB_INT_FIXPRI		(S5P_VA_GPIO + 0xB1C)

#define S5PV210_GPC0_INT_CON		(S5P_VA_GPIO + 0x70C)
#define S5PV210_GPC0_INT_FLTCON0		(S5P_VA_GPIO + 0x818)
#define S5PV210_GPC0_INT_FLTCON1		(S5P_VA_GPIO + 0x81C)
#define S5PV210_GPC0_INT_MASK		(S5P_VA_GPIO + 0x90C)
#define S5PV210_GPC0_INT_PEND		(S5P_VA_GPIO + 0xA0C)
#define S5PV210_GPC0_INT_FIXPRI		(S5P_VA_GPIO + 0xB20)

#define S5PV210_GPC1_INT_CON		(S5P_VA_GPIO + 0x710)
#define S5PV210_GPC1_INT_FLTCON0		(S5P_VA_GPIO + 0x820)
#define S5PV210_GPC1_INT_FLTCON1		(S5P_VA_GPIO + 0x824)
#define S5PV210_GPC1_INT_MASK		(S5P_VA_GPIO + 0x910)
#define S5PV210_GPC1_INT_PEND		(S5P_VA_GPIO + 0xA10)
#define S5PV210_GPC1_INT_FIXPRI		(S5P_VA_GPIO + 0xB24)

#define S5PV210_GPD0_INT_CON		(S5P_VA_GPIO + 0x714)
#define S5PV210_GPD0_INT_FLTCON0		(S5P_VA_GPIO + 0x828)
#define S5PV210_GPD0_INT_FLTCON1		(S5P_VA_GPIO + 0x82C)
#define S5PV210_GPD0_INT_MASK		(S5P_VA_GPIO + 0x914)
#define S5PV210_GPD0_INT_PEND		(S5P_VA_GPIO + 0xA14)
#define S5PV210_GPD0_INT_FIXPRI		(S5P_VA_GPIO + 0xB28)

#define S5PV210_GPD1_INT_CON		(S5P_VA_GPIO + 0x718)
#define S5PV210_GPD1_INT_FLTCON0		(S5P_VA_GPIO + 0x830)
#define S5PV210_GPD1_INT_FLTCON1		(S5P_VA_GPIO + 0x834)
#define S5PV210_GPD1_INT_MASK		(S5P_VA_GPIO + 0x918)
#define S5PV210_GPD1_INT_PEND		(S5P_VA_GPIO + 0xA18)
#define S5PV210_GPD1_INT_FIXPRI		(S5P_VA_GPIO + 0xB2C)

#define S5PV210_GPE0_INT_CON		(S5P_VA_GPIO + 0x71C)
#define S5PV210_GPE0_INT_FLTCON0		(S5P_VA_GPIO + 0x838)
#define S5PV210_GPE0_INT_FLTCON1		(S5P_VA_GPIO + 0x83C)
#define S5PV210_GPE0_INT_MASK		(S5P_VA_GPIO + 0x91C)
#define S5PV210_GPE0_INT_PEND		(S5P_VA_GPIO + 0xA1C)
#define S5PV210_GPE0_INT_FIXPRI		(S5P_VA_GPIO + 0xB30)

#define S5PV210_GPE1_INT_CON		(S5P_VA_GPIO + 0x720)
#define S5PV210_GPE1_INT_FLTCON0		(S5P_VA_GPIO + 0x840)
#define S5PV210_GPE1_INT_FLTCON1		(S5P_VA_GPIO + 0x844)
#define S5PV210_GPE1_INT_MASK		(S5P_VA_GPIO + 0x920)
#define S5PV210_GPE1_INT_PEND		(S5P_VA_GPIO + 0xA20)
#define S5PV210_GPE1_INT_FIXPRI		(S5P_VA_GPIO + 0xB34)

#define S5PV210_GPF0_INT_CON		(S5P_VA_GPIO + 0x724)
#define S5PV210_GPF0_INT_FLTCON0		(S5P_VA_GPIO + 0x848)
#define S5PV210_GPF0_INT_FLTCON1		(S5P_VA_GPIO + 0x84C)
#define S5PV210_GPF0_INT_MASK		(S5P_VA_GPIO + 0x924)
#define S5PV210_GPF0_INT_PEND		(S5P_VA_GPIO + 0xA24)
#define S5PV210_GPF0_INT_FIXPRI		(S5P_VA_GPIO + 0xB38)

#define S5PV210_GPF1_INT_CON		(S5P_VA_GPIO + 0x728)
#define S5PV210_GPF1_INT_FLTCON0		(S5P_VA_GPIO + 0x850)
#define S5PV210_GPF1_INT_FLTCON1		(S5P_VA_GPIO + 0x854)
#define S5PV210_GPF1_INT_MASK		(S5P_VA_GPIO + 0x928)
#define S5PV210_GPF1_INT_PEND		(S5P_VA_GPIO + 0xA28)
#define S5PV210_GPF1_INT_FIXPRI		(S5P_VA_GPIO + 0xB3C)

#define S5PV210_GPF2_INT_CON		(S5P_VA_GPIO + 0x72C)
#define S5PV210_GPF2_INT_FLTCON0		(S5P_VA_GPIO + 0x858)
#define S5PV210_GPF2_INT_FLTCON1		(S5P_VA_GPIO + 0x85C)
#define S5PV210_GPF2_INT_MASK		(S5P_VA_GPIO + 0x92C)
#define S5PV210_GPF2_INT_PEND		(S5P_VA_GPIO + 0xA2C)
#define S5PV210_GPF2_INT_FIXPRI		(S5P_VA_GPIO + 0xB40)

#define S5PV210_GPF3_INT_CON		(S5P_VA_GPIO + 0x730)
#define S5PV210_GPF3_INT_FLTCON0		(S5P_VA_GPIO + 0x860)
#define S5PV210_GPF3_INT_FLTCON1		(S5P_VA_GPIO + 0x864)
#define S5PV210_GPF3_INT_MASK		(S5P_VA_GPIO + 0x930)
#define S5PV210_GPF3_INT_PEND		(S5P_VA_GPIO + 0xA30)
#define S5PV210_GPF3_INT_FIXPRI		(S5P_VA_GPIO + 0xB44)

#define S5PV210_GPG0_INT_CON		(S5P_VA_GPIO + 0x734)
#define S5PV210_GPG0_INT_FLTCON0		(S5P_VA_GPIO + 0x868)
#define S5PV210_GPG0_INT_FLTCON1		(S5P_VA_GPIO + 0x86C)
#define S5PV210_GPG0_INT_MASK		(S5P_VA_GPIO + 0x934)
#define S5PV210_GPG0_INT_PEND		(S5P_VA_GPIO + 0xA34)
#define S5PV210_GPG0_INT_FIXPRI		(S5P_VA_GPIO + 0xB48)

#define S5PV210_GPG1_INT_CON		(S5P_VA_GPIO + 0x738)
#define S5PV210_GPG1_INT_FLTCON0		(S5P_VA_GPIO + 0x870)
#define S5PV210_GPG1_INT_FLTCON1		(S5P_VA_GPIO + 0x874)
#define S5PV210_GPG1_INT_MASK		(S5P_VA_GPIO + 0x938)
#define S5PV210_GPG1_INT_PEND		(S5P_VA_GPIO + 0xA38)
#define S5PV210_GPG1_INT_FIXPRI		(S5P_VA_GPIO + 0xB4C)

#define S5PV210_GPG2_INT_CON		(S5P_VA_GPIO + 0x73C)
#define S5PV210_GPG2_INT_FLTCON0		(S5P_VA_GPIO + 0x878)
#define S5PV210_GPG2_INT_FLTCON1		(S5P_VA_GPIO + 0x87C)
#define S5PV210_GPG2_INT_MASK		(S5P_VA_GPIO + 0x93C)
#define S5PV210_GPG2_INT_PEND		(S5P_VA_GPIO + 0xA3C)
#define S5PV210_GPG2_INT_FIXPRI		(S5P_VA_GPIO + 0xB50)

#define S5PV210_GPG3_INT_CON		(S5P_VA_GPIO + 0x740)
#define S5PV210_GPG3_INT_FLTCON0		(S5P_VA_GPIO + 0x880)
#define S5PV210_GPG3_INT_FLTCON1		(S5P_VA_GPIO + 0x884)
#define S5PV210_GPG3_INT_MASK		(S5P_VA_GPIO + 0x940)
#define S5PV210_GPG3_INT_PEND		(S5P_VA_GPIO + 0xA40)
#define S5PV210_GPG3_INT_FIXPRI		(S5P_VA_GPIO + 0xB54)

#define S5PV210_GPJ0_INT_CON		(S5P_VA_GPIO + 0x744)
#define S5PV210_GPJ0_INT_FLTCON0		(S5P_VA_GPIO + 0x888)
#define S5PV210_GPJ0_INT_FLTCON1		(S5P_VA_GPIO + 0x88C)
#define S5PV210_GPJ0_INT_MASK		(S5P_VA_GPIO + 0x944)
#define S5PV210_GPJ0_INT_PEND		(S5P_VA_GPIO + 0xA44)
#define S5PV210_GPJ0_INT_FIXPRI		(S5P_VA_GPIO + 0xB58)

#define S5PV210_GPJ1_INT_CON		(S5P_VA_GPIO + 0x748)
#define S5PV210_GPJ1_INT_FLTCON0		(S5P_VA_GPIO + 0x890)
#define S5PV210_GPJ1_INT_FLTCON1		(S5P_VA_GPIO + 0x894)
#define S5PV210_GPJ1_INT_MASK		(S5P_VA_GPIO + 0x948)
#define S5PV210_GPJ1_INT_PEND		(S5P_VA_GPIO + 0xA48)
#define S5PV210_GPJ1_INT_FIXPRI		(S5P_VA_GPIO + 0xB5C)

#define S5PV210_GPJ2_INT_CON		(S5P_VA_GPIO + 0x74C)
#define S5PV210_GPJ2_INT_FLTCON0		(S5P_VA_GPIO + 0x898)
#define S5PV210_GPJ2_INT_FLTCON1		(S5P_VA_GPIO + 0x89C)
#define S5PV210_GPJ2_INT_MASK		(S5P_VA_GPIO + 0x94C)
#define S5PV210_GPJ2_INT_PEND		(S5P_VA_GPIO + 0xA4C)
#define S5PV210_GPJ2_INT_FIXPRI		(S5P_VA_GPIO + 0xB60)

#define S5PV210_GPJ3_INT_CON		(S5P_VA_GPIO + 0x750)
#define S5PV210_GPJ3_INT_FLTCON0		(S5P_VA_GPIO + 0x8A0)
#define S5PV210_GPJ3_INT_FLTCON1		(S5P_VA_GPIO + 0x8A4)
#define S5PV210_GPJ3_INT_MASK		(S5P_VA_GPIO + 0x950)
#define S5PV210_GPJ3_INT_PEND		(S5P_VA_GPIO + 0xA50)
#define S5PV210_GPJ3_INT_FIXPRI		(S5P_VA_GPIO + 0xB64)

#define S5PV210_GPJ4_INT_CON		(S5P_VA_GPIO + 0x754)
#define S5PV210_GPJ4_INT_FLTCON0		(S5P_VA_GPIO + 0x8A8)
#define S5PV210_GPJ4_INT_FLTCON1		(S5P_VA_GPIO + 0x8AC)
#define S5PV210_GPJ4_INT_MASK		(S5P_VA_GPIO + 0x954)
#define S5PV210_GPJ4_INT_PEND		(S5P_VA_GPIO + 0xA54)
#define S5PV210_GPJ4_INT_FIXPRI		(S5P_VA_GPIO + 0xB68)

#define S5PV210_EXT_INT_GRPPRI		(S5P_VA_GPIO + 0xB00)
#define S5PV210_EXT_INT_PRIO		(S5P_VA_GPIO + 0xB04)
#define S5PV210_EXT_INT_SVC		(S5P_VA_GPIO + 0xB08)
#define S5PV210_EXT_INT_SVC_PND		(S5P_VA_GPIO + 0xB0C)
#define S5PV210_EXT_INT_GRPFIXPRI	(S5P_VA_GPIO + 0xB10)

#define S5PV210_EINT30CON		(S5P_VA_GPIO + 0xE00)
#define S5P_EINT_CON(x)			(S5PV210_EINT30CON + ((x) * 0x4))

#define S5PV210_EINT30FLTCON0		(S5P_VA_GPIO + 0xE80)
#define S5P_EINT_FLTCON(x,y)		(S5PV210_EINT30FLTCON0 + ((x) * 0x8) + ((y) * 0x4))

#define S5PV210_EINT30MASK		(S5P_VA_GPIO + 0xF00)
#define S5P_EINT_MASK(x)		(S5PV210_EINT30MASK + ((x) * 0x4))

#define S5PV210_EINT30PEND		(S5P_VA_GPIO + 0xF40)
#define S5P_EINT_PEND(x)		(S5PV210_EINT30PEND + ((x) * 0x4))

#define EINT_REG_NR(x)			(EINT_OFFSET(x) >> 3)

#define eint_offset(irq)		((irq) < IRQ_EINT16_31 ? ((irq)-IRQ_EINT0)\
						: (irq-S5P_IRQ_EINT_BASE))

#define eint_irq_to_bit(irq)		(1 << (EINT_OFFSET(irq) & 0x7))

#define eint_conf_reg(irq)		((eint_offset(irq)) >> 3)
#define eint_filt_reg(irq)		((eint_offset(irq)) >> 2)
#define eint_mask_reg(irq)		((eint_offset(irq)) >> 3)
#define eint_pend_reg(irq)		((eint_offset(irq)) >> 3)

#define EINT_MODE		S3C_GPIO_SFN(0xf)

#define EINT_GPIO_0(x)		S5PV210_GPH0(x)
#define EINT_GPIO_1(x)		S5PV210_GPH1(x)
#define EINT_GPIO_2(x)		S5PV210_GPH2(x)
#define EINT_GPIO_3(x)		S5PV210_GPH3(x)

#endif /* __ASM_ARCH_REGS_GPIO_H */