1 /*
2  * (C) Copyright 2010 Samsung Electronics
3  * Minkyu Kang <mk7.kang@samsung.com>
4  *
5  * SPDX-License-Identifier:	GPL-2.0+
6  */
7 
8 #ifndef __ASM_ARCH_GPIO_H
9 #define __ASM_ARCH_GPIO_H
10 
11 #ifndef __ASSEMBLY__
12 struct s5p_gpio_bank {
13 	unsigned int	con;
14 	unsigned int	dat;
15 	unsigned int	pull;
16 	unsigned int	drv;
17 	unsigned int	pdn_con;
18 	unsigned int	pdn_pull;
19 	unsigned char	res1[8];
20 };
21 
22 /* GPIO pins per bank  */
23 #define GPIO_PER_BANK 8
24 
25 /* A list of valid GPIO numbers for the asm-generic/gpio.h interface */
26 enum exynos4_gpio_pin {
27 	/* GPIO_PART1_STARTS */
28 	EXYNOS4_GPIO_A00,		/* 0 */
29 	EXYNOS4_GPIO_A01,
30 	EXYNOS4_GPIO_A02,
31 	EXYNOS4_GPIO_A03,
32 	EXYNOS4_GPIO_A04,
33 	EXYNOS4_GPIO_A05,
34 	EXYNOS4_GPIO_A06,
35 	EXYNOS4_GPIO_A07,
36 	EXYNOS4_GPIO_A10,		/* 8 */
37 	EXYNOS4_GPIO_A11,
38 	EXYNOS4_GPIO_A12,
39 	EXYNOS4_GPIO_A13,
40 	EXYNOS4_GPIO_A14,
41 	EXYNOS4_GPIO_A15,
42 	EXYNOS4_GPIO_A16,
43 	EXYNOS4_GPIO_A17,
44 	EXYNOS4_GPIO_B0,		/* 16 0x10 */
45 	EXYNOS4_GPIO_B1,
46 	EXYNOS4_GPIO_B2,
47 	EXYNOS4_GPIO_B3,
48 	EXYNOS4_GPIO_B4,
49 	EXYNOS4_GPIO_B5,
50 	EXYNOS4_GPIO_B6,
51 	EXYNOS4_GPIO_B7,
52 	EXYNOS4_GPIO_C00,		/* 24 0x18 */
53 	EXYNOS4_GPIO_C01,
54 	EXYNOS4_GPIO_C02,
55 	EXYNOS4_GPIO_C03,
56 	EXYNOS4_GPIO_C04,
57 	EXYNOS4_GPIO_C05,
58 	EXYNOS4_GPIO_C06,
59 	EXYNOS4_GPIO_C07,
60 	EXYNOS4_GPIO_C10,		/* 32 0x20*/
61 	EXYNOS4_GPIO_C11,
62 	EXYNOS4_GPIO_C12,
63 	EXYNOS4_GPIO_C13,
64 	EXYNOS4_GPIO_C14,
65 	EXYNOS4_GPIO_C15,
66 	EXYNOS4_GPIO_C16,
67 	EXYNOS4_GPIO_C17,
68 	EXYNOS4_GPIO_D00,		/* 40 0x28 */
69 	EXYNOS4_GPIO_D01,
70 	EXYNOS4_GPIO_D02,
71 	EXYNOS4_GPIO_D03,
72 	EXYNOS4_GPIO_D04,
73 	EXYNOS4_GPIO_D05,
74 	EXYNOS4_GPIO_D06,
75 	EXYNOS4_GPIO_D07,
76 	EXYNOS4_GPIO_D10,		/* 48 0x30 */
77 	EXYNOS4_GPIO_D11,
78 	EXYNOS4_GPIO_D12,
79 	EXYNOS4_GPIO_D13,
80 	EXYNOS4_GPIO_D14,
81 	EXYNOS4_GPIO_D15,
82 	EXYNOS4_GPIO_D16,
83 	EXYNOS4_GPIO_D17,
84 	EXYNOS4_GPIO_E00,		/* 56 0x38 */
85 	EXYNOS4_GPIO_E01,
86 	EXYNOS4_GPIO_E02,
87 	EXYNOS4_GPIO_E03,
88 	EXYNOS4_GPIO_E04,
89 	EXYNOS4_GPIO_E05,
90 	EXYNOS4_GPIO_E06,
91 	EXYNOS4_GPIO_E07,
92 	EXYNOS4_GPIO_E10,		/* 64 0x40 */
93 	EXYNOS4_GPIO_E11,
94 	EXYNOS4_GPIO_E12,
95 	EXYNOS4_GPIO_E13,
96 	EXYNOS4_GPIO_E14,
97 	EXYNOS4_GPIO_E15,
98 	EXYNOS4_GPIO_E16,
99 	EXYNOS4_GPIO_E17,
100 	EXYNOS4_GPIO_E20,		/* 72 0x48 */
101 	EXYNOS4_GPIO_E21,
102 	EXYNOS4_GPIO_E22,
103 	EXYNOS4_GPIO_E23,
104 	EXYNOS4_GPIO_E24,
105 	EXYNOS4_GPIO_E25,
106 	EXYNOS4_GPIO_E26,
107 	EXYNOS4_GPIO_E27,
108 	EXYNOS4_GPIO_E30,		/* 80 0x50 */
109 	EXYNOS4_GPIO_E31,
110 	EXYNOS4_GPIO_E32,
111 	EXYNOS4_GPIO_E33,
112 	EXYNOS4_GPIO_E34,
113 	EXYNOS4_GPIO_E35,
114 	EXYNOS4_GPIO_E36,
115 	EXYNOS4_GPIO_E37,
116 	EXYNOS4_GPIO_E40,		/* 88 0x58 */
117 	EXYNOS4_GPIO_E41,
118 	EXYNOS4_GPIO_E42,
119 	EXYNOS4_GPIO_E43,
120 	EXYNOS4_GPIO_E44,
121 	EXYNOS4_GPIO_E45,
122 	EXYNOS4_GPIO_E46,
123 	EXYNOS4_GPIO_E47,
124 	EXYNOS4_GPIO_F00,		/* 96 0x60 */
125 	EXYNOS4_GPIO_F01,
126 	EXYNOS4_GPIO_F02,
127 	EXYNOS4_GPIO_F03,
128 	EXYNOS4_GPIO_F04,
129 	EXYNOS4_GPIO_F05,
130 	EXYNOS4_GPIO_F06,
131 	EXYNOS4_GPIO_F07,
132 	EXYNOS4_GPIO_F10,		/* 104 0x68 */
133 	EXYNOS4_GPIO_F11,
134 	EXYNOS4_GPIO_F12,
135 	EXYNOS4_GPIO_F13,
136 	EXYNOS4_GPIO_F14,
137 	EXYNOS4_GPIO_F15,
138 	EXYNOS4_GPIO_F16,
139 	EXYNOS4_GPIO_F17,
140 	EXYNOS4_GPIO_F20,		/* 112 0x70 */
141 	EXYNOS4_GPIO_F21,
142 	EXYNOS4_GPIO_F22,
143 	EXYNOS4_GPIO_F23,
144 	EXYNOS4_GPIO_F24,
145 	EXYNOS4_GPIO_F25,
146 	EXYNOS4_GPIO_F26,
147 	EXYNOS4_GPIO_F27,
148 	EXYNOS4_GPIO_F30,		/* 120 0x78 */
149 	EXYNOS4_GPIO_F31,
150 	EXYNOS4_GPIO_F32,
151 	EXYNOS4_GPIO_F33,
152 	EXYNOS4_GPIO_F34,
153 	EXYNOS4_GPIO_F35,
154 	EXYNOS4_GPIO_F36,
155 	EXYNOS4_GPIO_F37,
156 
157 	/* GPIO_PART2_STARTS */
158 	EXYNOS4_GPIO_MAX_PORT_PART_1,	/* 128 0x80 */
159 	EXYNOS4_GPIO_J00 = EXYNOS4_GPIO_MAX_PORT_PART_1,
160 	EXYNOS4_GPIO_J01,
161 	EXYNOS4_GPIO_J02,
162 	EXYNOS4_GPIO_J03,
163 	EXYNOS4_GPIO_J04,
164 	EXYNOS4_GPIO_J05,
165 	EXYNOS4_GPIO_J06,
166 	EXYNOS4_GPIO_J07,
167 	EXYNOS4_GPIO_J10,		/* 136 0x88 */
168 	EXYNOS4_GPIO_J11,
169 	EXYNOS4_GPIO_J12,
170 	EXYNOS4_GPIO_J13,
171 	EXYNOS4_GPIO_J14,
172 	EXYNOS4_GPIO_J15,
173 	EXYNOS4_GPIO_J16,
174 	EXYNOS4_GPIO_J17,
175 	EXYNOS4_GPIO_K00,		/* 144 0x90 */
176 	EXYNOS4_GPIO_K01,
177 	EXYNOS4_GPIO_K02,
178 	EXYNOS4_GPIO_K03,
179 	EXYNOS4_GPIO_K04,
180 	EXYNOS4_GPIO_K05,
181 	EXYNOS4_GPIO_K06,
182 	EXYNOS4_GPIO_K07,
183 	EXYNOS4_GPIO_K10,		/* 152 0x98 */
184 	EXYNOS4_GPIO_K11,
185 	EXYNOS4_GPIO_K12,
186 	EXYNOS4_GPIO_K13,
187 	EXYNOS4_GPIO_K14,
188 	EXYNOS4_GPIO_K15,
189 	EXYNOS4_GPIO_K16,
190 	EXYNOS4_GPIO_K17,
191 	EXYNOS4_GPIO_K20,		/* 160 0xA0 */
192 	EXYNOS4_GPIO_K21,
193 	EXYNOS4_GPIO_K22,
194 	EXYNOS4_GPIO_K23,
195 	EXYNOS4_GPIO_K24,
196 	EXYNOS4_GPIO_K25,
197 	EXYNOS4_GPIO_K26,
198 	EXYNOS4_GPIO_K27,
199 	EXYNOS4_GPIO_K30,		/* 168 0xA8 */
200 	EXYNOS4_GPIO_K31,
201 	EXYNOS4_GPIO_K32,
202 	EXYNOS4_GPIO_K33,
203 	EXYNOS4_GPIO_K34,
204 	EXYNOS4_GPIO_K35,
205 	EXYNOS4_GPIO_K36,
206 	EXYNOS4_GPIO_K37,
207 	EXYNOS4_GPIO_L00,		/* 176 0xB0 */
208 	EXYNOS4_GPIO_L01,
209 	EXYNOS4_GPIO_L02,
210 	EXYNOS4_GPIO_L03,
211 	EXYNOS4_GPIO_L04,
212 	EXYNOS4_GPIO_L05,
213 	EXYNOS4_GPIO_L06,
214 	EXYNOS4_GPIO_L07,
215 	EXYNOS4_GPIO_L10,		/* 184 0xB8 */
216 	EXYNOS4_GPIO_L11,
217 	EXYNOS4_GPIO_L12,
218 	EXYNOS4_GPIO_L13,
219 	EXYNOS4_GPIO_L14,
220 	EXYNOS4_GPIO_L15,
221 	EXYNOS4_GPIO_L16,
222 	EXYNOS4_GPIO_L17,
223 	EXYNOS4_GPIO_L20,		/* 192 0xC0 */
224 	EXYNOS4_GPIO_L21,
225 	EXYNOS4_GPIO_L22,
226 	EXYNOS4_GPIO_L23,
227 	EXYNOS4_GPIO_L24,
228 	EXYNOS4_GPIO_L25,
229 	EXYNOS4_GPIO_L26,
230 	EXYNOS4_GPIO_L27,
231 	EXYNOS4_GPIO_Y00,		/* 200 0xC8 */
232 	EXYNOS4_GPIO_Y01,
233 	EXYNOS4_GPIO_Y02,
234 	EXYNOS4_GPIO_Y03,
235 	EXYNOS4_GPIO_Y04,
236 	EXYNOS4_GPIO_Y05,
237 	EXYNOS4_GPIO_Y06,
238 	EXYNOS4_GPIO_Y07,
239 	EXYNOS4_GPIO_Y10,		/* 208 0xD0 */
240 	EXYNOS4_GPIO_Y11,
241 	EXYNOS4_GPIO_Y12,
242 	EXYNOS4_GPIO_Y13,
243 	EXYNOS4_GPIO_Y14,
244 	EXYNOS4_GPIO_Y15,
245 	EXYNOS4_GPIO_Y16,
246 	EXYNOS4_GPIO_Y17,
247 	EXYNOS4_GPIO_Y20,		/* 216 0xD8 */
248 	EXYNOS4_GPIO_Y21,
249 	EXYNOS4_GPIO_Y22,
250 	EXYNOS4_GPIO_Y23,
251 	EXYNOS4_GPIO_Y24,
252 	EXYNOS4_GPIO_Y25,
253 	EXYNOS4_GPIO_Y26,
254 	EXYNOS4_GPIO_Y27,
255 	EXYNOS4_GPIO_Y30,		/* 224 0xE0 */
256 	EXYNOS4_GPIO_Y31,
257 	EXYNOS4_GPIO_Y32,
258 	EXYNOS4_GPIO_Y33,
259 	EXYNOS4_GPIO_Y34,
260 	EXYNOS4_GPIO_Y35,
261 	EXYNOS4_GPIO_Y36,
262 	EXYNOS4_GPIO_Y37,
263 	EXYNOS4_GPIO_Y40,		/* 232 0xE8 */
264 	EXYNOS4_GPIO_Y41,
265 	EXYNOS4_GPIO_Y42,
266 	EXYNOS4_GPIO_Y43,
267 	EXYNOS4_GPIO_Y44,
268 	EXYNOS4_GPIO_Y45,
269 	EXYNOS4_GPIO_Y46,
270 	EXYNOS4_GPIO_Y47,
271 	EXYNOS4_GPIO_Y50,		/* 240 0xF0 */
272 	EXYNOS4_GPIO_Y51,
273 	EXYNOS4_GPIO_Y52,
274 	EXYNOS4_GPIO_Y53,
275 	EXYNOS4_GPIO_Y54,
276 	EXYNOS4_GPIO_Y55,
277 	EXYNOS4_GPIO_Y56,
278 	EXYNOS4_GPIO_Y57,
279 	EXYNOS4_GPIO_Y60,		/* 248 0xF8 */
280 	EXYNOS4_GPIO_Y61,
281 	EXYNOS4_GPIO_Y62,
282 	EXYNOS4_GPIO_Y63,
283 	EXYNOS4_GPIO_Y64,
284 	EXYNOS4_GPIO_Y65,
285 	EXYNOS4_GPIO_Y66,
286 	EXYNOS4_GPIO_Y67,
287 
288 	/* GPIO_PART2_1 STARTS */
289 	EXYNOS4_GPIO_MAX_PORT_PART_2_0, /* 256 0x100 */
290 	EXYNOS4_GPIO_X00 = EXYNOS4_GPIO_MAX_PORT_PART_2_0,
291 	EXYNOS4_GPIO_X01,
292 	EXYNOS4_GPIO_X02,
293 	EXYNOS4_GPIO_X03,
294 	EXYNOS4_GPIO_X04,
295 	EXYNOS4_GPIO_X05,
296 	EXYNOS4_GPIO_X06,
297 	EXYNOS4_GPIO_X07,
298 	EXYNOS4_GPIO_X10,		/* 264 0x108 */
299 	EXYNOS4_GPIO_X11,
300 	EXYNOS4_GPIO_X12,
301 	EXYNOS4_GPIO_X13,
302 	EXYNOS4_GPIO_X14,
303 	EXYNOS4_GPIO_X15,
304 	EXYNOS4_GPIO_X16,
305 	EXYNOS4_GPIO_X17,
306 	EXYNOS4_GPIO_X20,		/* 272 0x110 */
307 	EXYNOS4_GPIO_X21,
308 	EXYNOS4_GPIO_X22,
309 	EXYNOS4_GPIO_X23,
310 	EXYNOS4_GPIO_X24,
311 	EXYNOS4_GPIO_X25,
312 	EXYNOS4_GPIO_X26,
313 	EXYNOS4_GPIO_X27,
314 	EXYNOS4_GPIO_X30,		/* 280 0x118 */
315 	EXYNOS4_GPIO_X31,
316 	EXYNOS4_GPIO_X32,
317 	EXYNOS4_GPIO_X33,
318 	EXYNOS4_GPIO_X34,
319 	EXYNOS4_GPIO_X35,
320 	EXYNOS4_GPIO_X36,
321 	EXYNOS4_GPIO_X37,
322 
323 	/* GPIO_PART3_STARTS */
324 	EXYNOS4_GPIO_MAX_PORT_PART_2_1,	/* 288 0x120 */
325 	EXYNOS4_GPIO_Z0 = EXYNOS4_GPIO_MAX_PORT_PART_2_1,
326 	EXYNOS4_GPIO_Z1,
327 	EXYNOS4_GPIO_Z2,
328 	EXYNOS4_GPIO_Z3,
329 	EXYNOS4_GPIO_Z4,
330 	EXYNOS4_GPIO_Z5,
331 	EXYNOS4_GPIO_Z6,
332 	EXYNOS4_GPIO_Z7,
333 
334 	EXYNOS4_GPIO_MAX_PORT
335 };
336 
337 enum exynos4X12_gpio_pin {
338 	/* EXYNOS4X12_GPIO_PART1_0 starts here */
339 	EXYNOS4X12_GPIO_A00,		/* 0 */
340 	EXYNOS4X12_GPIO_A01,
341 	EXYNOS4X12_GPIO_A02,
342 	EXYNOS4X12_GPIO_A03,
343 	EXYNOS4X12_GPIO_A04,
344 	EXYNOS4X12_GPIO_A05,
345 	EXYNOS4X12_GPIO_A06,
346 	EXYNOS4X12_GPIO_A07,
347 	EXYNOS4X12_GPIO_A10,		/* 8 */
348 	EXYNOS4X12_GPIO_A11,
349 	EXYNOS4X12_GPIO_A12,
350 	EXYNOS4X12_GPIO_A13,
351 	EXYNOS4X12_GPIO_A14,
352 	EXYNOS4X12_GPIO_A15,
353 	EXYNOS4X12_GPIO_A16,
354 	EXYNOS4X12_GPIO_A17,
355 	EXYNOS4X12_GPIO_B0,		/* 16 0x10 */
356 	EXYNOS4X12_GPIO_B1,
357 	EXYNOS4X12_GPIO_B2,
358 	EXYNOS4X12_GPIO_B3,
359 	EXYNOS4X12_GPIO_B4,
360 	EXYNOS4X12_GPIO_B5,
361 	EXYNOS4X12_GPIO_B6,
362 	EXYNOS4X12_GPIO_B7,
363 	EXYNOS4X12_GPIO_C00,		/* 24 0x18 */
364 	EXYNOS4X12_GPIO_C01,
365 	EXYNOS4X12_GPIO_C02,
366 	EXYNOS4X12_GPIO_C03,
367 	EXYNOS4X12_GPIO_C04,
368 	EXYNOS4X12_GPIO_C05,
369 	EXYNOS4X12_GPIO_C06,
370 	EXYNOS4X12_GPIO_C07,
371 	EXYNOS4X12_GPIO_C10,		/* 32 0x20 */
372 	EXYNOS4X12_GPIO_C11,
373 	EXYNOS4X12_GPIO_C12,
374 	EXYNOS4X12_GPIO_C13,
375 	EXYNOS4X12_GPIO_C14,
376 	EXYNOS4X12_GPIO_C15,
377 	EXYNOS4X12_GPIO_C16,
378 	EXYNOS4X12_GPIO_C17,
379 	EXYNOS4X12_GPIO_D00,		/* 40 0x28 */
380 	EXYNOS4X12_GPIO_D01,
381 	EXYNOS4X12_GPIO_D02,
382 	EXYNOS4X12_GPIO_D03,
383 	EXYNOS4X12_GPIO_D04,
384 	EXYNOS4X12_GPIO_D05,
385 	EXYNOS4X12_GPIO_D06,
386 	EXYNOS4X12_GPIO_D07,
387 	EXYNOS4X12_GPIO_D10,		/* 48 0x30 */
388 	EXYNOS4X12_GPIO_D11,
389 	EXYNOS4X12_GPIO_D12,
390 	EXYNOS4X12_GPIO_D13,
391 	EXYNOS4X12_GPIO_D14,
392 	EXYNOS4X12_GPIO_D15,
393 	EXYNOS4X12_GPIO_D16,
394 	EXYNOS4X12_GPIO_D17,
395 	EXYNOS4X12_GPIO_MAX_PORT_PART_1_0, /* 56 0x38 */
396 	/* EXYNOS4X12_GPIO_PART1_1 starts here */
397 	EXYNOS4X12_GPIO_F00 = EXYNOS4X12_GPIO_MAX_PORT_PART_1_0,
398 	EXYNOS4X12_GPIO_F01,
399 	EXYNOS4X12_GPIO_F02,
400 	EXYNOS4X12_GPIO_F03,
401 	EXYNOS4X12_GPIO_F04,
402 	EXYNOS4X12_GPIO_F05,
403 	EXYNOS4X12_GPIO_F06,
404 	EXYNOS4X12_GPIO_F07,
405 	EXYNOS4X12_GPIO_F10,		/* 64 0x40 */
406 	EXYNOS4X12_GPIO_F11,
407 	EXYNOS4X12_GPIO_F12,
408 	EXYNOS4X12_GPIO_F13,
409 	EXYNOS4X12_GPIO_F14,
410 	EXYNOS4X12_GPIO_F15,
411 	EXYNOS4X12_GPIO_F16,
412 	EXYNOS4X12_GPIO_F17,
413 	EXYNOS4X12_GPIO_F20,		/* 72 0x48 */
414 	EXYNOS4X12_GPIO_F21,
415 	EXYNOS4X12_GPIO_F22,
416 	EXYNOS4X12_GPIO_F23,
417 	EXYNOS4X12_GPIO_F24,
418 	EXYNOS4X12_GPIO_F25,
419 	EXYNOS4X12_GPIO_F26,
420 	EXYNOS4X12_GPIO_F27,
421 	EXYNOS4X12_GPIO_F30,		/* 80 0x50 */
422 	EXYNOS4X12_GPIO_F31,
423 	EXYNOS4X12_GPIO_F32,
424 	EXYNOS4X12_GPIO_F33,
425 	EXYNOS4X12_GPIO_F34,
426 	EXYNOS4X12_GPIO_F35,
427 	EXYNOS4X12_GPIO_F36,
428 	EXYNOS4X12_GPIO_F37,
429 	EXYNOS4X12_GPIO_MAX_PORT_PART_1_1, /* 88 0x58 */
430 	/* EXYNOS4X12_GPIO_PART1_2 starts here */
431 	EXYNOS4X12_GPIO_J00 = EXYNOS4X12_GPIO_MAX_PORT_PART_1_1,
432 	EXYNOS4X12_GPIO_J01,
433 	EXYNOS4X12_GPIO_J02,
434 	EXYNOS4X12_GPIO_J03,
435 	EXYNOS4X12_GPIO_J04,
436 	EXYNOS4X12_GPIO_J05,
437 	EXYNOS4X12_GPIO_J06,
438 	EXYNOS4X12_GPIO_J07,
439 	EXYNOS4X12_GPIO_J10,		/* 96 0x60 */
440 	EXYNOS4X12_GPIO_J11,
441 	EXYNOS4X12_GPIO_J12,
442 	EXYNOS4X12_GPIO_J13,
443 	EXYNOS4X12_GPIO_J14,
444 	EXYNOS4X12_GPIO_J15,
445 	EXYNOS4X12_GPIO_J16,
446 	EXYNOS4X12_GPIO_J17,
447 
448 	/**
449 	 * EXYNOS4X12_GPIO_PART2_0 is not used
450 	 * EXYNOS4X12_GPIO_PART2_1 starts here
451 	 */
452 	EXYNOS4X12_GPIO_MAX_PORT_PART_1_2, /* 104 0x66 */
453 	EXYNOS4X12_GPIO_K00 = EXYNOS4X12_GPIO_MAX_PORT_PART_1_2,
454 	EXYNOS4X12_GPIO_K01,
455 	EXYNOS4X12_GPIO_K02,
456 	EXYNOS4X12_GPIO_K03,
457 	EXYNOS4X12_GPIO_K04,
458 	EXYNOS4X12_GPIO_K05,
459 	EXYNOS4X12_GPIO_K06,
460 	EXYNOS4X12_GPIO_K07,
461 	EXYNOS4X12_GPIO_K10,		/* 112 0x70 */
462 	EXYNOS4X12_GPIO_K11,
463 	EXYNOS4X12_GPIO_K12,
464 	EXYNOS4X12_GPIO_K13,
465 	EXYNOS4X12_GPIO_K14,
466 	EXYNOS4X12_GPIO_K15,
467 	EXYNOS4X12_GPIO_K16,
468 	EXYNOS4X12_GPIO_K17,
469 	EXYNOS4X12_GPIO_K20,		/* 120 0x78 */
470 	EXYNOS4X12_GPIO_K21,
471 	EXYNOS4X12_GPIO_K22,
472 	EXYNOS4X12_GPIO_K23,
473 	EXYNOS4X12_GPIO_K24,
474 	EXYNOS4X12_GPIO_K25,
475 	EXYNOS4X12_GPIO_K26,
476 	EXYNOS4X12_GPIO_K27,
477 	EXYNOS4X12_GPIO_K30,		/* 128 0x80 */
478 	EXYNOS4X12_GPIO_K31,
479 	EXYNOS4X12_GPIO_K32,
480 	EXYNOS4X12_GPIO_K33,
481 	EXYNOS4X12_GPIO_K34,
482 	EXYNOS4X12_GPIO_K35,
483 	EXYNOS4X12_GPIO_K36,
484 	EXYNOS4X12_GPIO_K37,
485 	EXYNOS4X12_GPIO_L00,		/* 136 0x88 */
486 	EXYNOS4X12_GPIO_L01,
487 	EXYNOS4X12_GPIO_L02,
488 	EXYNOS4X12_GPIO_L03,
489 	EXYNOS4X12_GPIO_L04,
490 	EXYNOS4X12_GPIO_L05,
491 	EXYNOS4X12_GPIO_L06,
492 	EXYNOS4X12_GPIO_L07,
493 	EXYNOS4X12_GPIO_L10,		/* 144 0x90 */
494 	EXYNOS4X12_GPIO_L11,
495 	EXYNOS4X12_GPIO_L12,
496 	EXYNOS4X12_GPIO_L13,
497 	EXYNOS4X12_GPIO_L14,
498 	EXYNOS4X12_GPIO_L15,
499 	EXYNOS4X12_GPIO_L16,
500 	EXYNOS4X12_GPIO_L17,
501 	EXYNOS4X12_GPIO_L20,		/* 152 0x98 */
502 	EXYNOS4X12_GPIO_L21,
503 	EXYNOS4X12_GPIO_L22,
504 	EXYNOS4X12_GPIO_L23,
505 	EXYNOS4X12_GPIO_L24,
506 	EXYNOS4X12_GPIO_L25,
507 	EXYNOS4X12_GPIO_L26,
508 	EXYNOS4X12_GPIO_L27,
509 	EXYNOS4X12_GPIO_Y00,		/* 160 0xa0 */
510 	EXYNOS4X12_GPIO_Y01,
511 	EXYNOS4X12_GPIO_Y02,
512 	EXYNOS4X12_GPIO_Y03,
513 	EXYNOS4X12_GPIO_Y04,
514 	EXYNOS4X12_GPIO_Y05,
515 	EXYNOS4X12_GPIO_Y06,
516 	EXYNOS4X12_GPIO_Y07,
517 	EXYNOS4X12_GPIO_Y10,		/* 168 0xa8 */
518 	EXYNOS4X12_GPIO_Y11,
519 	EXYNOS4X12_GPIO_Y12,
520 	EXYNOS4X12_GPIO_Y13,
521 	EXYNOS4X12_GPIO_Y14,
522 	EXYNOS4X12_GPIO_Y15,
523 	EXYNOS4X12_GPIO_Y16,
524 	EXYNOS4X12_GPIO_Y17,
525 	EXYNOS4X12_GPIO_Y20,		/* 176 0xb0 */
526 	EXYNOS4X12_GPIO_Y21,
527 	EXYNOS4X12_GPIO_Y22,
528 	EXYNOS4X12_GPIO_Y23,
529 	EXYNOS4X12_GPIO_Y24,
530 	EXYNOS4X12_GPIO_Y25,
531 	EXYNOS4X12_GPIO_Y26,
532 	EXYNOS4X12_GPIO_Y27,
533 	EXYNOS4X12_GPIO_Y30,		/* 184 0xb8 */
534 	EXYNOS4X12_GPIO_Y31,
535 	EXYNOS4X12_GPIO_Y32,
536 	EXYNOS4X12_GPIO_Y33,
537 	EXYNOS4X12_GPIO_Y34,
538 	EXYNOS4X12_GPIO_Y35,
539 	EXYNOS4X12_GPIO_Y36,
540 	EXYNOS4X12_GPIO_Y37,
541 	EXYNOS4X12_GPIO_Y40,		/* 192 0xc0 */
542 	EXYNOS4X12_GPIO_Y41,
543 	EXYNOS4X12_GPIO_Y42,
544 	EXYNOS4X12_GPIO_Y43,
545 	EXYNOS4X12_GPIO_Y44,
546 	EXYNOS4X12_GPIO_Y45,
547 	EXYNOS4X12_GPIO_Y46,
548 	EXYNOS4X12_GPIO_Y47,
549 	EXYNOS4X12_GPIO_Y50,		/* 200 0xc8 */
550 	EXYNOS4X12_GPIO_Y51,
551 	EXYNOS4X12_GPIO_Y52,
552 	EXYNOS4X12_GPIO_Y53,
553 	EXYNOS4X12_GPIO_Y54,
554 	EXYNOS4X12_GPIO_Y55,
555 	EXYNOS4X12_GPIO_Y56,
556 	EXYNOS4X12_GPIO_Y57,
557 	EXYNOS4X12_GPIO_Y60,		/* 208 0xd0 */
558 	EXYNOS4X12_GPIO_Y61,
559 	EXYNOS4X12_GPIO_Y62,
560 	EXYNOS4X12_GPIO_Y63,
561 	EXYNOS4X12_GPIO_Y64,
562 	EXYNOS4X12_GPIO_Y65,
563 	EXYNOS4X12_GPIO_Y66,
564 	EXYNOS4X12_GPIO_Y67,
565 	EXYNOS4X12_GPIO_MAX_PORT_PART_2_1, /* 216 0xd8 */
566 	/* EXYNOS4X12_GPIO_PART2_2 starts here */
567 	EXYNOS4X12_GPIO_M00 = EXYNOS4X12_GPIO_MAX_PORT_PART_2_1,
568 	EXYNOS4X12_GPIO_M01,
569 	EXYNOS4X12_GPIO_M02,
570 	EXYNOS4X12_GPIO_M03,
571 	EXYNOS4X12_GPIO_M04,
572 	EXYNOS4X12_GPIO_M05,
573 	EXYNOS4X12_GPIO_M06,
574 	EXYNOS4X12_GPIO_M07,
575 	EXYNOS4X12_GPIO_M10,		/* 224 0xe0 */
576 	EXYNOS4X12_GPIO_M11,
577 	EXYNOS4X12_GPIO_M12,
578 	EXYNOS4X12_GPIO_M13,
579 	EXYNOS4X12_GPIO_M14,
580 	EXYNOS4X12_GPIO_M15,
581 	EXYNOS4X12_GPIO_M16,
582 	EXYNOS4X12_GPIO_M17,
583 	EXYNOS4X12_GPIO_M20,		/* 232 0xe8 */
584 	EXYNOS4X12_GPIO_M21,
585 	EXYNOS4X12_GPIO_M22,
586 	EXYNOS4X12_GPIO_M23,
587 	EXYNOS4X12_GPIO_M24,
588 	EXYNOS4X12_GPIO_M25,
589 	EXYNOS4X12_GPIO_M26,
590 	EXYNOS4X12_GPIO_M27,
591 	EXYNOS4X12_GPIO_M30,		/* 240 0xf0 */
592 	EXYNOS4X12_GPIO_M31,
593 	EXYNOS4X12_GPIO_M32,
594 	EXYNOS4X12_GPIO_M33,
595 	EXYNOS4X12_GPIO_M34,
596 	EXYNOS4X12_GPIO_M35,
597 	EXYNOS4X12_GPIO_M36,
598 	EXYNOS4X12_GPIO_M37,
599 	EXYNOS4X12_GPIO_M40,		/* 248 0xf8 */
600 	EXYNOS4X12_GPIO_M41,
601 	EXYNOS4X12_GPIO_M42,
602 	EXYNOS4X12_GPIO_M43,
603 	EXYNOS4X12_GPIO_M44,
604 	EXYNOS4X12_GPIO_M45,
605 	EXYNOS4X12_GPIO_M46,
606 	EXYNOS4X12_GPIO_M47,
607 	EXYNOS4X12_GPIO_MAX_PORT_PART_2_2, /* 256 0x100 */
608 	/* EXYNOS4X12_GPIO_PART2_3 starts here */
609 	EXYNOS4X12_GPIO_X00 = EXYNOS4X12_GPIO_MAX_PORT_PART_2_2,
610 	EXYNOS4X12_GPIO_X01,
611 	EXYNOS4X12_GPIO_X02,
612 	EXYNOS4X12_GPIO_X03,
613 	EXYNOS4X12_GPIO_X04,
614 	EXYNOS4X12_GPIO_X05,
615 	EXYNOS4X12_GPIO_X06,
616 	EXYNOS4X12_GPIO_X07,
617 	EXYNOS4X12_GPIO_X10,		/* 264 0x108 */
618 	EXYNOS4X12_GPIO_X11,
619 	EXYNOS4X12_GPIO_X12,
620 	EXYNOS4X12_GPIO_X13,
621 	EXYNOS4X12_GPIO_X14,
622 	EXYNOS4X12_GPIO_X15,
623 	EXYNOS4X12_GPIO_X16,
624 	EXYNOS4X12_GPIO_X17,
625 	EXYNOS4X12_GPIO_X20,		/* 272 0x110 */
626 	EXYNOS4X12_GPIO_X21,
627 	EXYNOS4X12_GPIO_X22,
628 	EXYNOS4X12_GPIO_X23,
629 	EXYNOS4X12_GPIO_X24,
630 	EXYNOS4X12_GPIO_X25,
631 	EXYNOS4X12_GPIO_X26,
632 	EXYNOS4X12_GPIO_X27,
633 	EXYNOS4X12_GPIO_X30,		/* 280 0x118 */
634 	EXYNOS4X12_GPIO_X31,
635 	EXYNOS4X12_GPIO_X32,
636 	EXYNOS4X12_GPIO_X33,
637 	EXYNOS4X12_GPIO_X34,
638 	EXYNOS4X12_GPIO_X35,
639 	EXYNOS4X12_GPIO_X36,
640 	EXYNOS4X12_GPIO_X37,
641 
642 	/* EXYNOS4X12_GPIO_PART3 starts here */
643 	EXYNOS4X12_GPIO_MAX_PORT_PART_2_3, /* 288 0x120 */
644 	EXYNOS4X12_GPIO_Z0 = EXYNOS4X12_GPIO_MAX_PORT_PART_2_3,
645 	EXYNOS4X12_GPIO_Z1,
646 	EXYNOS4X12_GPIO_Z2,
647 	EXYNOS4X12_GPIO_Z3,
648 	EXYNOS4X12_GPIO_Z4,
649 	EXYNOS4X12_GPIO_Z5,
650 	EXYNOS4X12_GPIO_Z6,
651 	EXYNOS4X12_GPIO_Z7,
652 
653 	/* EXYNOS4X12_GPIO_PART4 starts here */
654 	EXYNOS4X12_GPIO_MAX_PORT_PART_3,/* 296 0x128 */
655 	EXYNOS4X12_GPIO_V00 = EXYNOS4X12_GPIO_MAX_PORT_PART_3,
656 	EXYNOS4X12_GPIO_V01,
657 	EXYNOS4X12_GPIO_V02,
658 	EXYNOS4X12_GPIO_V03,
659 	EXYNOS4X12_GPIO_V04,
660 	EXYNOS4X12_GPIO_V05,
661 	EXYNOS4X12_GPIO_V06,
662 	EXYNOS4X12_GPIO_V07,
663 	EXYNOS4X12_GPIO_V10,		/* 304 0x130 */
664 	EXYNOS4X12_GPIO_V11,
665 	EXYNOS4X12_GPIO_V12,
666 	EXYNOS4X12_GPIO_V13,
667 	EXYNOS4X12_GPIO_V14,
668 	EXYNOS4X12_GPIO_V15,
669 	EXYNOS4X12_GPIO_V16,
670 	EXYNOS4X12_GPIO_V17,
671 	EXYNOS4X12_GPIO_V20,		/* 312 0x138 */
672 	EXYNOS4X12_GPIO_V21,
673 	EXYNOS4X12_GPIO_V22,
674 	EXYNOS4X12_GPIO_V23,
675 	EXYNOS4X12_GPIO_V24,
676 	EXYNOS4X12_GPIO_V25,
677 	EXYNOS4X12_GPIO_V26,
678 	EXYNOS4X12_GPIO_V27,
679 	EXYNOS4X12_GPIO_V30,		/* 320 0x140 */
680 	EXYNOS4X12_GPIO_V31,
681 	EXYNOS4X12_GPIO_V32,
682 	EXYNOS4X12_GPIO_V33,
683 	EXYNOS4X12_GPIO_V34,
684 	EXYNOS4X12_GPIO_V35,
685 	EXYNOS4X12_GPIO_V36,
686 	EXYNOS4X12_GPIO_V37,
687 	EXYNOS4X12_GPIO_V40,		/* 328 0x148 */
688 	EXYNOS4X12_GPIO_V41,
689 	EXYNOS4X12_GPIO_V42,
690 	EXYNOS4X12_GPIO_V43,
691 	EXYNOS4X12_GPIO_V44,
692 	EXYNOS4X12_GPIO_V45,
693 	EXYNOS4X12_GPIO_V46,
694 	EXYNOS4X12_GPIO_V47,
695 
696 	EXYNOS4X12_GPIO_MAX_PORT
697 };
698 
699 enum exynos5_gpio_pin {
700 	/* GPIO_PART1_STARTS */
701 	EXYNOS5_GPIO_A00,		/* 0 */
702 	EXYNOS5_GPIO_A01,
703 	EXYNOS5_GPIO_A02,
704 	EXYNOS5_GPIO_A03,
705 	EXYNOS5_GPIO_A04,
706 	EXYNOS5_GPIO_A05,
707 	EXYNOS5_GPIO_A06,
708 	EXYNOS5_GPIO_A07,
709 	EXYNOS5_GPIO_A10,		/* 8 */
710 	EXYNOS5_GPIO_A11,
711 	EXYNOS5_GPIO_A12,
712 	EXYNOS5_GPIO_A13,
713 	EXYNOS5_GPIO_A14,
714 	EXYNOS5_GPIO_A15,
715 	EXYNOS5_GPIO_A16,
716 	EXYNOS5_GPIO_A17,
717 	EXYNOS5_GPIO_A20,		/* 16 0x10 */
718 	EXYNOS5_GPIO_A21,
719 	EXYNOS5_GPIO_A22,
720 	EXYNOS5_GPIO_A23,
721 	EXYNOS5_GPIO_A24,
722 	EXYNOS5_GPIO_A25,
723 	EXYNOS5_GPIO_A26,
724 	EXYNOS5_GPIO_A27,
725 	EXYNOS5_GPIO_B00,		/* 24 0x18 */
726 	EXYNOS5_GPIO_B01,
727 	EXYNOS5_GPIO_B02,
728 	EXYNOS5_GPIO_B03,
729 	EXYNOS5_GPIO_B04,
730 	EXYNOS5_GPIO_B05,
731 	EXYNOS5_GPIO_B06,
732 	EXYNOS5_GPIO_B07,
733 	EXYNOS5_GPIO_B10,		/* 32 0x20 */
734 	EXYNOS5_GPIO_B11,
735 	EXYNOS5_GPIO_B12,
736 	EXYNOS5_GPIO_B13,
737 	EXYNOS5_GPIO_B14,
738 	EXYNOS5_GPIO_B15,
739 	EXYNOS5_GPIO_B16,
740 	EXYNOS5_GPIO_B17,
741 	EXYNOS5_GPIO_B20,		/* 40 0x28 */
742 	EXYNOS5_GPIO_B21,
743 	EXYNOS5_GPIO_B22,
744 	EXYNOS5_GPIO_B23,
745 	EXYNOS5_GPIO_B24,
746 	EXYNOS5_GPIO_B25,
747 	EXYNOS5_GPIO_B26,
748 	EXYNOS5_GPIO_B27,
749 	EXYNOS5_GPIO_B30,		/* 48 0x39 */
750 	EXYNOS5_GPIO_B31,
751 	EXYNOS5_GPIO_B32,
752 	EXYNOS5_GPIO_B33,
753 	EXYNOS5_GPIO_B34,
754 	EXYNOS5_GPIO_B35,
755 	EXYNOS5_GPIO_B36,
756 	EXYNOS5_GPIO_B37,
757 	EXYNOS5_GPIO_C00,		/* 56 0x38 */
758 	EXYNOS5_GPIO_C01,
759 	EXYNOS5_GPIO_C02,
760 	EXYNOS5_GPIO_C03,
761 	EXYNOS5_GPIO_C04,
762 	EXYNOS5_GPIO_C05,
763 	EXYNOS5_GPIO_C06,
764 	EXYNOS5_GPIO_C07,
765 	EXYNOS5_GPIO_C10,		/* 64 0x40 */
766 	EXYNOS5_GPIO_C11,
767 	EXYNOS5_GPIO_C12,
768 	EXYNOS5_GPIO_C13,
769 	EXYNOS5_GPIO_C14,
770 	EXYNOS5_GPIO_C15,
771 	EXYNOS5_GPIO_C16,
772 	EXYNOS5_GPIO_C17,
773 	EXYNOS5_GPIO_C20,		/* 72 0x48 */
774 	EXYNOS5_GPIO_C21,
775 	EXYNOS5_GPIO_C22,
776 	EXYNOS5_GPIO_C23,
777 	EXYNOS5_GPIO_C24,
778 	EXYNOS5_GPIO_C25,
779 	EXYNOS5_GPIO_C26,
780 	EXYNOS5_GPIO_C27,
781 	EXYNOS5_GPIO_C30,		/* 80 0x50 */
782 	EXYNOS5_GPIO_C31,
783 	EXYNOS5_GPIO_C32,
784 	EXYNOS5_GPIO_C33,
785 	EXYNOS5_GPIO_C34,
786 	EXYNOS5_GPIO_C35,
787 	EXYNOS5_GPIO_C36,
788 	EXYNOS5_GPIO_C37,
789 	EXYNOS5_GPIO_D00,		/* 88 0x58 */
790 	EXYNOS5_GPIO_D01,
791 	EXYNOS5_GPIO_D02,
792 	EXYNOS5_GPIO_D03,
793 	EXYNOS5_GPIO_D04,
794 	EXYNOS5_GPIO_D05,
795 	EXYNOS5_GPIO_D06,
796 	EXYNOS5_GPIO_D07,
797 	EXYNOS5_GPIO_D10,		/* 96 0x60 */
798 	EXYNOS5_GPIO_D11,
799 	EXYNOS5_GPIO_D12,
800 	EXYNOS5_GPIO_D13,
801 	EXYNOS5_GPIO_D14,
802 	EXYNOS5_GPIO_D15,
803 	EXYNOS5_GPIO_D16,
804 	EXYNOS5_GPIO_D17,
805 	EXYNOS5_GPIO_Y00,		/* 104 0x68 */
806 	EXYNOS5_GPIO_Y01,
807 	EXYNOS5_GPIO_Y02,
808 	EXYNOS5_GPIO_Y03,
809 	EXYNOS5_GPIO_Y04,
810 	EXYNOS5_GPIO_Y05,
811 	EXYNOS5_GPIO_Y06,
812 	EXYNOS5_GPIO_Y07,
813 	EXYNOS5_GPIO_Y10,		/* 112 0x70 */
814 	EXYNOS5_GPIO_Y11,
815 	EXYNOS5_GPIO_Y12,
816 	EXYNOS5_GPIO_Y13,
817 	EXYNOS5_GPIO_Y14,
818 	EXYNOS5_GPIO_Y15,
819 	EXYNOS5_GPIO_Y16,
820 	EXYNOS5_GPIO_Y17,
821 	EXYNOS5_GPIO_Y20,		/* 120 0x78 */
822 	EXYNOS5_GPIO_Y21,
823 	EXYNOS5_GPIO_Y22,
824 	EXYNOS5_GPIO_Y23,
825 	EXYNOS5_GPIO_Y24,
826 	EXYNOS5_GPIO_Y25,
827 	EXYNOS5_GPIO_Y26,
828 	EXYNOS5_GPIO_Y27,
829 	EXYNOS5_GPIO_Y30,		/* 128 0x80 */
830 	EXYNOS5_GPIO_Y31,
831 	EXYNOS5_GPIO_Y32,
832 	EXYNOS5_GPIO_Y33,
833 	EXYNOS5_GPIO_Y34,
834 	EXYNOS5_GPIO_Y35,
835 	EXYNOS5_GPIO_Y36,
836 	EXYNOS5_GPIO_Y37,
837 	EXYNOS5_GPIO_Y40,		/* 136 0x88 */
838 	EXYNOS5_GPIO_Y41,
839 	EXYNOS5_GPIO_Y42,
840 	EXYNOS5_GPIO_Y43,
841 	EXYNOS5_GPIO_Y44,
842 	EXYNOS5_GPIO_Y45,
843 	EXYNOS5_GPIO_Y46,
844 	EXYNOS5_GPIO_Y47,
845 	EXYNOS5_GPIO_Y50,		/* 144 0x90 */
846 	EXYNOS5_GPIO_Y51,
847 	EXYNOS5_GPIO_Y52,
848 	EXYNOS5_GPIO_Y53,
849 	EXYNOS5_GPIO_Y54,
850 	EXYNOS5_GPIO_Y55,
851 	EXYNOS5_GPIO_Y56,
852 	EXYNOS5_GPIO_Y57,
853 	EXYNOS5_GPIO_Y60,		/* 152 0x98 */
854 	EXYNOS5_GPIO_Y61,
855 	EXYNOS5_GPIO_Y62,
856 	EXYNOS5_GPIO_Y63,
857 	EXYNOS5_GPIO_Y64,
858 	EXYNOS5_GPIO_Y65,
859 	EXYNOS5_GPIO_Y66,
860 	EXYNOS5_GPIO_Y67,
861 
862 	/* GPIO_PART2_STARTS */
863 	EXYNOS5_GPIO_MAX_PORT_PART_1,	/* 160 0xa0 */
864 	EXYNOS5_GPIO_C40 = EXYNOS5_GPIO_MAX_PORT_PART_1,
865 	EXYNOS5_GPIO_C41,
866 	EXYNOS5_GPIO_C42,
867 	EXYNOS5_GPIO_C43,
868 	EXYNOS5_GPIO_C44,
869 	EXYNOS5_GPIO_C45,
870 	EXYNOS5_GPIO_C46,
871 	EXYNOS5_GPIO_C47,
872 
873 	/* GPIO_PART3_STARTS */
874 	EXYNOS5_GPIO_MAX_PORT_PART_2,	/* 168 0xa8 */
875 	EXYNOS5_GPIO_X00 = EXYNOS5_GPIO_MAX_PORT_PART_2,
876 	EXYNOS5_GPIO_X01,
877 	EXYNOS5_GPIO_X02,
878 	EXYNOS5_GPIO_X03,
879 	EXYNOS5_GPIO_X04,
880 	EXYNOS5_GPIO_X05,
881 	EXYNOS5_GPIO_X06,
882 	EXYNOS5_GPIO_X07,
883 	EXYNOS5_GPIO_X10,		/* 176 0xb0 */
884 	EXYNOS5_GPIO_X11,
885 	EXYNOS5_GPIO_X12,
886 	EXYNOS5_GPIO_X13,
887 	EXYNOS5_GPIO_X14,
888 	EXYNOS5_GPIO_X15,
889 	EXYNOS5_GPIO_X16,
890 	EXYNOS5_GPIO_X17,
891 	EXYNOS5_GPIO_X20,		/* 184 0xb8 */
892 	EXYNOS5_GPIO_X21,
893 	EXYNOS5_GPIO_X22,
894 	EXYNOS5_GPIO_X23,
895 	EXYNOS5_GPIO_X24,
896 	EXYNOS5_GPIO_X25,
897 	EXYNOS5_GPIO_X26,
898 	EXYNOS5_GPIO_X27,
899 	EXYNOS5_GPIO_X30,		/* 192 0xc0 */
900 	EXYNOS5_GPIO_X31,
901 	EXYNOS5_GPIO_X32,
902 	EXYNOS5_GPIO_X33,
903 	EXYNOS5_GPIO_X34,
904 	EXYNOS5_GPIO_X35,
905 	EXYNOS5_GPIO_X36,
906 	EXYNOS5_GPIO_X37,
907 
908 	/* GPIO_PART4_STARTS */
909 	EXYNOS5_GPIO_MAX_PORT_PART_3,	/* 200 0xc8 */
910 	EXYNOS5_GPIO_E00 = EXYNOS5_GPIO_MAX_PORT_PART_3,
911 	EXYNOS5_GPIO_E01,
912 	EXYNOS5_GPIO_E02,
913 	EXYNOS5_GPIO_E03,
914 	EXYNOS5_GPIO_E04,
915 	EXYNOS5_GPIO_E05,
916 	EXYNOS5_GPIO_E06,
917 	EXYNOS5_GPIO_E07,
918 	EXYNOS5_GPIO_E10,		/* 208 0xd0 */
919 	EXYNOS5_GPIO_E11,
920 	EXYNOS5_GPIO_E12,
921 	EXYNOS5_GPIO_E13,
922 	EXYNOS5_GPIO_E14,
923 	EXYNOS5_GPIO_E15,
924 	EXYNOS5_GPIO_E16,
925 	EXYNOS5_GPIO_E17,
926 	EXYNOS5_GPIO_F00,		/* 216 0xd8 */
927 	EXYNOS5_GPIO_F01,
928 	EXYNOS5_GPIO_F02,
929 	EXYNOS5_GPIO_F03,
930 	EXYNOS5_GPIO_F04,
931 	EXYNOS5_GPIO_F05,
932 	EXYNOS5_GPIO_F06,
933 	EXYNOS5_GPIO_F07,
934 	EXYNOS5_GPIO_F10,		/* 224 0xe0 */
935 	EXYNOS5_GPIO_F11,
936 	EXYNOS5_GPIO_F12,
937 	EXYNOS5_GPIO_F13,
938 	EXYNOS5_GPIO_F14,
939 	EXYNOS5_GPIO_F15,
940 	EXYNOS5_GPIO_F16,
941 	EXYNOS5_GPIO_F17,
942 	EXYNOS5_GPIO_G00,		/* 232 0xe8 */
943 	EXYNOS5_GPIO_G01,
944 	EXYNOS5_GPIO_G02,
945 	EXYNOS5_GPIO_G03,
946 	EXYNOS5_GPIO_G04,
947 	EXYNOS5_GPIO_G05,
948 	EXYNOS5_GPIO_G06,
949 	EXYNOS5_GPIO_G07,
950 	EXYNOS5_GPIO_G10,		/* 240 0xf0 */
951 	EXYNOS5_GPIO_G11,
952 	EXYNOS5_GPIO_G12,
953 	EXYNOS5_GPIO_G13,
954 	EXYNOS5_GPIO_G14,
955 	EXYNOS5_GPIO_G15,
956 	EXYNOS5_GPIO_G16,
957 	EXYNOS5_GPIO_G17,
958 	EXYNOS5_GPIO_G20,		/* 248 0xf8 */
959 	EXYNOS5_GPIO_G21,
960 	EXYNOS5_GPIO_G22,
961 	EXYNOS5_GPIO_G23,
962 	EXYNOS5_GPIO_G24,
963 	EXYNOS5_GPIO_G25,
964 	EXYNOS5_GPIO_G26,
965 	EXYNOS5_GPIO_G27,
966 	EXYNOS5_GPIO_H00,		/* 256 0x100 */
967 	EXYNOS5_GPIO_H01,
968 	EXYNOS5_GPIO_H02,
969 	EXYNOS5_GPIO_H03,
970 	EXYNOS5_GPIO_H04,
971 	EXYNOS5_GPIO_H05,
972 	EXYNOS5_GPIO_H06,
973 	EXYNOS5_GPIO_H07,
974 	EXYNOS5_GPIO_H10,		/* 264 0x108 */
975 	EXYNOS5_GPIO_H11,
976 	EXYNOS5_GPIO_H12,
977 	EXYNOS5_GPIO_H13,
978 	EXYNOS5_GPIO_H14,
979 	EXYNOS5_GPIO_H15,
980 	EXYNOS5_GPIO_H16,
981 	EXYNOS5_GPIO_H17,
982 
983 	/* GPIO_PART4_STARTS */
984 	EXYNOS5_GPIO_MAX_PORT_PART_4,	/* 272 0x110 */
985 	EXYNOS5_GPIO_V00 = EXYNOS5_GPIO_MAX_PORT_PART_4,
986 	EXYNOS5_GPIO_V01,
987 	EXYNOS5_GPIO_V02,
988 	EXYNOS5_GPIO_V03,
989 	EXYNOS5_GPIO_V04,
990 	EXYNOS5_GPIO_V05,
991 	EXYNOS5_GPIO_V06,
992 	EXYNOS5_GPIO_V07,
993 	EXYNOS5_GPIO_V10,		/* 280 0x118 */
994 	EXYNOS5_GPIO_V11,
995 	EXYNOS5_GPIO_V12,
996 	EXYNOS5_GPIO_V13,
997 	EXYNOS5_GPIO_V14,
998 	EXYNOS5_GPIO_V15,
999 	EXYNOS5_GPIO_V16,
1000 	EXYNOS5_GPIO_V17,
1001 
1002 	/* GPIO_PART5_STARTS */
1003 	EXYNOS5_GPIO_MAX_PORT_PART_5,	/* 288 0x120 */
1004 	EXYNOS5_GPIO_V20 = EXYNOS5_GPIO_MAX_PORT_PART_5,
1005 	EXYNOS5_GPIO_V21,
1006 	EXYNOS5_GPIO_V22,
1007 	EXYNOS5_GPIO_V23,
1008 	EXYNOS5_GPIO_V24,
1009 	EXYNOS5_GPIO_V25,
1010 	EXYNOS5_GPIO_V26,
1011 	EXYNOS5_GPIO_V27,
1012 	EXYNOS5_GPIO_V30,		/* 296 0x128 */
1013 	EXYNOS5_GPIO_V31,
1014 	EXYNOS5_GPIO_V32,
1015 	EXYNOS5_GPIO_V33,
1016 	EXYNOS5_GPIO_V34,
1017 	EXYNOS5_GPIO_V35,
1018 	EXYNOS5_GPIO_V36,
1019 	EXYNOS5_GPIO_V37,
1020 
1021 	/* GPIO_PART6_STARTS */
1022 	EXYNOS5_GPIO_MAX_PORT_PART_6,	/* 304 0x130 */
1023 	EXYNOS5_GPIO_V40 = EXYNOS5_GPIO_MAX_PORT_PART_6,
1024 	EXYNOS5_GPIO_V41,
1025 	EXYNOS5_GPIO_V42,
1026 	EXYNOS5_GPIO_V43,
1027 	EXYNOS5_GPIO_V44,
1028 	EXYNOS5_GPIO_V45,
1029 	EXYNOS5_GPIO_V46,
1030 	EXYNOS5_GPIO_V47,
1031 
1032 	/* GPIO_PART7_STARTS */		/* 312 0x138 */
1033 	EXYNOS5_GPIO_MAX_PORT_PART_7,
1034 	EXYNOS5_GPIO_Z0 = EXYNOS5_GPIO_MAX_PORT_PART_7,
1035 	EXYNOS5_GPIO_Z1,
1036 	EXYNOS5_GPIO_Z2,
1037 	EXYNOS5_GPIO_Z3,
1038 	EXYNOS5_GPIO_Z4,
1039 	EXYNOS5_GPIO_Z5,
1040 	EXYNOS5_GPIO_Z6,
1041 	EXYNOS5_GPIO_MAX_PORT
1042 };
1043 
1044 enum exynos5420_gpio_pin {
1045 	/* GPIO_PART1_STARTS */
1046 	EXYNOS5420_GPIO_A00,		/* 0 */
1047 	EXYNOS5420_GPIO_A01,
1048 	EXYNOS5420_GPIO_A02,
1049 	EXYNOS5420_GPIO_A03,
1050 	EXYNOS5420_GPIO_A04,
1051 	EXYNOS5420_GPIO_A05,
1052 	EXYNOS5420_GPIO_A06,
1053 	EXYNOS5420_GPIO_A07,
1054 	EXYNOS5420_GPIO_A10,		/* 8 */
1055 	EXYNOS5420_GPIO_A11,
1056 	EXYNOS5420_GPIO_A12,
1057 	EXYNOS5420_GPIO_A13,
1058 	EXYNOS5420_GPIO_A14,
1059 	EXYNOS5420_GPIO_A15,
1060 	EXYNOS5420_GPIO_A16,
1061 	EXYNOS5420_GPIO_A17,
1062 	EXYNOS5420_GPIO_A20,		/* 16 0x10 */
1063 	EXYNOS5420_GPIO_A21,
1064 	EXYNOS5420_GPIO_A22,
1065 	EXYNOS5420_GPIO_A23,
1066 	EXYNOS5420_GPIO_A24,
1067 	EXYNOS5420_GPIO_A25,
1068 	EXYNOS5420_GPIO_A26,
1069 	EXYNOS5420_GPIO_A27,
1070 	EXYNOS5420_GPIO_B00,		/* 24 0x18 */
1071 	EXYNOS5420_GPIO_B01,
1072 	EXYNOS5420_GPIO_B02,
1073 	EXYNOS5420_GPIO_B03,
1074 	EXYNOS5420_GPIO_B04,
1075 	EXYNOS5420_GPIO_B05,
1076 	EXYNOS5420_GPIO_B06,
1077 	EXYNOS5420_GPIO_B07,
1078 	EXYNOS5420_GPIO_B10,		/* 32 0x20 */
1079 	EXYNOS5420_GPIO_B11,
1080 	EXYNOS5420_GPIO_B12,
1081 	EXYNOS5420_GPIO_B13,
1082 	EXYNOS5420_GPIO_B14,
1083 	EXYNOS5420_GPIO_B15,
1084 	EXYNOS5420_GPIO_B16,
1085 	EXYNOS5420_GPIO_B17,
1086 	EXYNOS5420_GPIO_B20,		/* 40 0x28 */
1087 	EXYNOS5420_GPIO_B21,
1088 	EXYNOS5420_GPIO_B22,
1089 	EXYNOS5420_GPIO_B23,
1090 	EXYNOS5420_GPIO_B24,
1091 	EXYNOS5420_GPIO_B25,
1092 	EXYNOS5420_GPIO_B26,
1093 	EXYNOS5420_GPIO_B27,
1094 	EXYNOS5420_GPIO_B30,		/* 48 0x30 */
1095 	EXYNOS5420_GPIO_B31,
1096 	EXYNOS5420_GPIO_B32,
1097 	EXYNOS5420_GPIO_B33,
1098 	EXYNOS5420_GPIO_B34,
1099 	EXYNOS5420_GPIO_B35,
1100 	EXYNOS5420_GPIO_B36,
1101 	EXYNOS5420_GPIO_B37,
1102 	EXYNOS5420_GPIO_B40,		/* 56 0x38 */
1103 	EXYNOS5420_GPIO_B41,
1104 	EXYNOS5420_GPIO_B42,
1105 	EXYNOS5420_GPIO_B43,
1106 	EXYNOS5420_GPIO_B44,
1107 	EXYNOS5420_GPIO_B45,
1108 	EXYNOS5420_GPIO_B46,
1109 	EXYNOS5420_GPIO_B47,
1110 	EXYNOS5420_GPIO_H00,		/* 64 0x40 */
1111 	EXYNOS5420_GPIO_H01,
1112 	EXYNOS5420_GPIO_H02,
1113 	EXYNOS5420_GPIO_H03,
1114 	EXYNOS5420_GPIO_H04,
1115 	EXYNOS5420_GPIO_H05,
1116 	EXYNOS5420_GPIO_H06,
1117 	EXYNOS5420_GPIO_H07,
1118 
1119 	/* GPIO PART 2 STARTS*/
1120 	EXYNOS5420_GPIO_MAX_PORT_PART_1,/* 72 0x48 */
1121 	EXYNOS5420_GPIO_Y70 = EXYNOS5420_GPIO_MAX_PORT_PART_1,
1122 	EXYNOS5420_GPIO_Y71,
1123 	EXYNOS5420_GPIO_Y72,
1124 	EXYNOS5420_GPIO_Y73,
1125 	EXYNOS5420_GPIO_Y74,
1126 	EXYNOS5420_GPIO_Y75,
1127 	EXYNOS5420_GPIO_Y76,
1128 	EXYNOS5420_GPIO_Y77,
1129 
1130 	/* GPIO PART 3 STARTS*/
1131 	EXYNOS5420_GPIO_MAX_PORT_PART_2,/* 80 0x50 */
1132 	EXYNOS5420_GPIO_X00 = EXYNOS5420_GPIO_MAX_PORT_PART_2,
1133 	EXYNOS5420_GPIO_X01,
1134 	EXYNOS5420_GPIO_X02,
1135 	EXYNOS5420_GPIO_X03,
1136 	EXYNOS5420_GPIO_X04,
1137 	EXYNOS5420_GPIO_X05,
1138 	EXYNOS5420_GPIO_X06,
1139 	EXYNOS5420_GPIO_X07,
1140 	EXYNOS5420_GPIO_X10,		/* 88 0x58 */
1141 	EXYNOS5420_GPIO_X11,
1142 	EXYNOS5420_GPIO_X12,
1143 	EXYNOS5420_GPIO_X13,
1144 	EXYNOS5420_GPIO_X14,
1145 	EXYNOS5420_GPIO_X15,
1146 	EXYNOS5420_GPIO_X16,
1147 	EXYNOS5420_GPIO_X17,
1148 	EXYNOS5420_GPIO_X20,		/* 96 0x60 */
1149 	EXYNOS5420_GPIO_X21,
1150 	EXYNOS5420_GPIO_X22,
1151 	EXYNOS5420_GPIO_X23,
1152 	EXYNOS5420_GPIO_X24,
1153 	EXYNOS5420_GPIO_X25,
1154 	EXYNOS5420_GPIO_X26,
1155 	EXYNOS5420_GPIO_X27,
1156 	EXYNOS5420_GPIO_X30,		/* 104 0x68 */
1157 	EXYNOS5420_GPIO_X31,
1158 	EXYNOS5420_GPIO_X32,
1159 	EXYNOS5420_GPIO_X33,
1160 	EXYNOS5420_GPIO_X34,
1161 	EXYNOS5420_GPIO_X35,
1162 	EXYNOS5420_GPIO_X36,
1163 	EXYNOS5420_GPIO_X37,
1164 
1165 	/* GPIO PART 4 STARTS*/
1166 	EXYNOS5420_GPIO_MAX_PORT_PART_3,/* 112 0x70 */
1167 	EXYNOS5420_GPIO_C00 = EXYNOS5420_GPIO_MAX_PORT_PART_3,
1168 	EXYNOS5420_GPIO_C01,
1169 	EXYNOS5420_GPIO_C02,
1170 	EXYNOS5420_GPIO_C03,
1171 	EXYNOS5420_GPIO_C04,
1172 	EXYNOS5420_GPIO_C05,
1173 	EXYNOS5420_GPIO_C06,
1174 	EXYNOS5420_GPIO_C07,
1175 	EXYNOS5420_GPIO_C10,		/* 120 0x78 */
1176 	EXYNOS5420_GPIO_C11,
1177 	EXYNOS5420_GPIO_C12,
1178 	EXYNOS5420_GPIO_C13,
1179 	EXYNOS5420_GPIO_C14,
1180 	EXYNOS5420_GPIO_C15,
1181 	EXYNOS5420_GPIO_C16,
1182 	EXYNOS5420_GPIO_C17,
1183 	EXYNOS5420_GPIO_C20,		/* 128 0x80 */
1184 	EXYNOS5420_GPIO_C21,
1185 	EXYNOS5420_GPIO_C22,
1186 	EXYNOS5420_GPIO_C23,
1187 	EXYNOS5420_GPIO_C24,
1188 	EXYNOS5420_GPIO_C25,
1189 	EXYNOS5420_GPIO_C26,
1190 	EXYNOS5420_GPIO_C27,
1191 	EXYNOS5420_GPIO_C30,		/* 136 0x88 */
1192 	EXYNOS5420_GPIO_C31,
1193 	EXYNOS5420_GPIO_C32,
1194 	EXYNOS5420_GPIO_C33,
1195 	EXYNOS5420_GPIO_C34,
1196 	EXYNOS5420_GPIO_C35,
1197 	EXYNOS5420_GPIO_C36,
1198 	EXYNOS5420_GPIO_C37,
1199 	EXYNOS5420_GPIO_C40,		/* 144 0x90 */
1200 	EXYNOS5420_GPIO_C41,
1201 	EXYNOS5420_GPIO_C42,
1202 	EXYNOS5420_GPIO_C43,
1203 	EXYNOS5420_GPIO_C44,
1204 	EXYNOS5420_GPIO_C45,
1205 	EXYNOS5420_GPIO_C46,
1206 	EXYNOS5420_GPIO_C47,
1207 	EXYNOS5420_GPIO_D10,		/* 152 0x98 */
1208 	EXYNOS5420_GPIO_D11,
1209 	EXYNOS5420_GPIO_D12,
1210 	EXYNOS5420_GPIO_D13,
1211 	EXYNOS5420_GPIO_D14,
1212 	EXYNOS5420_GPIO_D15,
1213 	EXYNOS5420_GPIO_D16,
1214 	EXYNOS5420_GPIO_D17,
1215 	EXYNOS5420_GPIO_Y00,		/* 160 0xa0 */
1216 	EXYNOS5420_GPIO_Y01,
1217 	EXYNOS5420_GPIO_Y02,
1218 	EXYNOS5420_GPIO_Y03,
1219 	EXYNOS5420_GPIO_Y04,
1220 	EXYNOS5420_GPIO_Y05,
1221 	EXYNOS5420_GPIO_Y06,
1222 	EXYNOS5420_GPIO_Y07,
1223 	EXYNOS5420_GPIO_Y10,		/* 168 0xa8 */
1224 	EXYNOS5420_GPIO_Y11,
1225 	EXYNOS5420_GPIO_Y12,
1226 	EXYNOS5420_GPIO_Y13,
1227 	EXYNOS5420_GPIO_Y14,
1228 	EXYNOS5420_GPIO_Y15,
1229 	EXYNOS5420_GPIO_Y16,
1230 	EXYNOS5420_GPIO_Y17,
1231 	EXYNOS5420_GPIO_Y20,		/* 176 0xb0 */
1232 	EXYNOS5420_GPIO_Y21,
1233 	EXYNOS5420_GPIO_Y22,
1234 	EXYNOS5420_GPIO_Y23,
1235 	EXYNOS5420_GPIO_Y24,
1236 	EXYNOS5420_GPIO_Y25,
1237 	EXYNOS5420_GPIO_Y26,
1238 	EXYNOS5420_GPIO_Y27,
1239 	EXYNOS5420_GPIO_Y30,		/* 184 0xb8 */
1240 	EXYNOS5420_GPIO_Y31,
1241 	EXYNOS5420_GPIO_Y32,
1242 	EXYNOS5420_GPIO_Y33,
1243 	EXYNOS5420_GPIO_Y34,
1244 	EXYNOS5420_GPIO_Y35,
1245 	EXYNOS5420_GPIO_Y36,
1246 	EXYNOS5420_GPIO_Y37,
1247 	EXYNOS5420_GPIO_Y40,		/* 192 0xc0 */
1248 	EXYNOS5420_GPIO_Y41,
1249 	EXYNOS5420_GPIO_Y42,
1250 	EXYNOS5420_GPIO_Y43,
1251 	EXYNOS5420_GPIO_Y44,
1252 	EXYNOS5420_GPIO_Y45,
1253 	EXYNOS5420_GPIO_Y46,
1254 	EXYNOS5420_GPIO_Y47,
1255 	EXYNOS5420_GPIO_Y50,		/* 200 0xc8 */
1256 	EXYNOS5420_GPIO_Y51,
1257 	EXYNOS5420_GPIO_Y52,
1258 	EXYNOS5420_GPIO_Y53,
1259 	EXYNOS5420_GPIO_Y54,
1260 	EXYNOS5420_GPIO_Y55,
1261 	EXYNOS5420_GPIO_Y56,
1262 	EXYNOS5420_GPIO_Y57,
1263 	EXYNOS5420_GPIO_Y60,		/* 208 0xd0 */
1264 	EXYNOS5420_GPIO_Y61,
1265 	EXYNOS5420_GPIO_Y62,
1266 	EXYNOS5420_GPIO_Y63,
1267 	EXYNOS5420_GPIO_Y64,
1268 	EXYNOS5420_GPIO_Y65,
1269 	EXYNOS5420_GPIO_Y66,
1270 	EXYNOS5420_GPIO_Y67,
1271 
1272 	/* GPIO_PART5_STARTS */
1273 	EXYNOS5420_GPIO_MAX_PORT_PART_4,/* 216 0xd8 */
1274 	EXYNOS5420_GPIO_E00 = EXYNOS5420_GPIO_MAX_PORT_PART_4,
1275 	EXYNOS5420_GPIO_E01,
1276 	EXYNOS5420_GPIO_E02,
1277 	EXYNOS5420_GPIO_E03,
1278 	EXYNOS5420_GPIO_E04,
1279 	EXYNOS5420_GPIO_E05,
1280 	EXYNOS5420_GPIO_E06,
1281 	EXYNOS5420_GPIO_E07,
1282 	EXYNOS5420_GPIO_E10,		/* 224 0xe0 */
1283 	EXYNOS5420_GPIO_E11,
1284 	EXYNOS5420_GPIO_E12,
1285 	EXYNOS5420_GPIO_E13,
1286 	EXYNOS5420_GPIO_E14,
1287 	EXYNOS5420_GPIO_E15,
1288 	EXYNOS5420_GPIO_E16,
1289 	EXYNOS5420_GPIO_E17,
1290 	EXYNOS5420_GPIO_F00,		/* 232 0xe8 */
1291 	EXYNOS5420_GPIO_F01,
1292 	EXYNOS5420_GPIO_F02,
1293 	EXYNOS5420_GPIO_F03,
1294 	EXYNOS5420_GPIO_F04,
1295 	EXYNOS5420_GPIO_F05,
1296 	EXYNOS5420_GPIO_F06,
1297 	EXYNOS5420_GPIO_F07,
1298 	EXYNOS5420_GPIO_F10,		/* 240 0xf0 */
1299 	EXYNOS5420_GPIO_F11,
1300 	EXYNOS5420_GPIO_F12,
1301 	EXYNOS5420_GPIO_F13,
1302 	EXYNOS5420_GPIO_F14,
1303 	EXYNOS5420_GPIO_F15,
1304 	EXYNOS5420_GPIO_F16,
1305 	EXYNOS5420_GPIO_F17,
1306 	EXYNOS5420_GPIO_G00,		/* 248 0xf8 */
1307 	EXYNOS5420_GPIO_G01,
1308 	EXYNOS5420_GPIO_G02,
1309 	EXYNOS5420_GPIO_G03,
1310 	EXYNOS5420_GPIO_G04,
1311 	EXYNOS5420_GPIO_G05,
1312 	EXYNOS5420_GPIO_G06,
1313 	EXYNOS5420_GPIO_G07,
1314 	EXYNOS5420_GPIO_G10,		/* 256 0x100 */
1315 	EXYNOS5420_GPIO_G11,
1316 	EXYNOS5420_GPIO_G12,
1317 	EXYNOS5420_GPIO_G13,
1318 	EXYNOS5420_GPIO_G14,
1319 	EXYNOS5420_GPIO_G15,
1320 	EXYNOS5420_GPIO_G16,
1321 	EXYNOS5420_GPIO_G17,
1322 	EXYNOS5420_GPIO_G20,		/* 264 0x108 */
1323 	EXYNOS5420_GPIO_G21,
1324 	EXYNOS5420_GPIO_G22,
1325 	EXYNOS5420_GPIO_G23,
1326 	EXYNOS5420_GPIO_G24,
1327 	EXYNOS5420_GPIO_G25,
1328 	EXYNOS5420_GPIO_G26,
1329 	EXYNOS5420_GPIO_G27,
1330 	EXYNOS5420_GPIO_J40,		/* 272 0x110 */
1331 	EXYNOS5420_GPIO_J41,
1332 	EXYNOS5420_GPIO_J42,
1333 	EXYNOS5420_GPIO_J43,
1334 	EXYNOS5420_GPIO_J44,
1335 	EXYNOS5420_GPIO_J45,
1336 	EXYNOS5420_GPIO_J46,
1337 	EXYNOS5420_GPIO_J47,
1338 
1339 	/* GPIO_PART6_STARTS */
1340 	EXYNOS5420_GPIO_MAX_PORT_PART_5,/* 280 0x118 */
1341 	EXYNOS5420_GPIO_Z0 = EXYNOS5420_GPIO_MAX_PORT_PART_5,
1342 	EXYNOS5420_GPIO_Z1,
1343 	EXYNOS5420_GPIO_Z2,
1344 	EXYNOS5420_GPIO_Z3,
1345 	EXYNOS5420_GPIO_Z4,
1346 	EXYNOS5420_GPIO_Z5,
1347 	EXYNOS5420_GPIO_Z6,
1348 	EXYNOS5420_GPIO_MAX_PORT
1349 };
1350 
1351 struct gpio_info {
1352 	unsigned int reg_addr;	/* Address of register for this part */
1353 	unsigned int max_gpio;	/* Maximum GPIO in this part */
1354 };
1355 
1356 #define EXYNOS4_GPIO_NUM_PARTS	4
1357 static struct gpio_info exynos4_gpio_data[EXYNOS4_GPIO_NUM_PARTS] = {
1358 	{ EXYNOS4_GPIO_PART1_BASE, EXYNOS4_GPIO_MAX_PORT_PART_1 },
1359 	{ EXYNOS4_GPIO_PART2_0, EXYNOS4_GPIO_MAX_PORT_PART_2_0 },
1360 	{ EXYNOS4_GPIO_PART2_1, EXYNOS4_GPIO_MAX_PORT_PART_2_1 },
1361 	{ EXYNOS4_GPIO_PART3_BASE, EXYNOS4_GPIO_MAX_PORT },
1362 };
1363 
1364 #define EXYNOS4X12_GPIO_NUM_PARTS	8
1365 static struct gpio_info exynos4x12_gpio_data[EXYNOS4X12_GPIO_NUM_PARTS] = {
1366 	{ EXYNOS4X12_GPIO_PART1_0, EXYNOS4X12_GPIO_MAX_PORT_PART_1_0 },
1367 	{ EXYNOS4X12_GPIO_PART1_1, EXYNOS4X12_GPIO_MAX_PORT_PART_1_1 },
1368 	{ EXYNOS4X12_GPIO_PART1_2, EXYNOS4X12_GPIO_MAX_PORT_PART_1_2 },
1369 	{ EXYNOS4X12_GPIO_PART2_1, EXYNOS4X12_GPIO_MAX_PORT_PART_2_1 },
1370 	{ EXYNOS4X12_GPIO_PART2_2, EXYNOS4X12_GPIO_MAX_PORT_PART_2_2 },
1371 	{ EXYNOS4X12_GPIO_PART2_3, EXYNOS4X12_GPIO_MAX_PORT_PART_2_3 },
1372 	{ EXYNOS4X12_GPIO_PART3_BASE, EXYNOS4X12_GPIO_MAX_PORT_PART_3 },
1373 	{ EXYNOS4X12_GPIO_PART4_BASE, EXYNOS4X12_GPIO_MAX_PORT },
1374 };
1375 
1376 #define EXYNOS5_GPIO_NUM_PARTS	8
1377 static struct gpio_info exynos5_gpio_data[EXYNOS5_GPIO_NUM_PARTS] = {
1378 	{ EXYNOS5_GPIO_PART1_BASE, EXYNOS5_GPIO_MAX_PORT_PART_1 },
1379 	{ EXYNOS5_GPIO_PART2_BASE, EXYNOS5_GPIO_MAX_PORT_PART_2 },
1380 	{ EXYNOS5_GPIO_PART3_BASE, EXYNOS5_GPIO_MAX_PORT_PART_3 },
1381 	{ EXYNOS5_GPIO_PART4_BASE, EXYNOS5_GPIO_MAX_PORT_PART_4 },
1382 	{ EXYNOS5_GPIO_PART5_BASE, EXYNOS5_GPIO_MAX_PORT_PART_5 },
1383 	{ EXYNOS5_GPIO_PART6_BASE, EXYNOS5_GPIO_MAX_PORT_PART_6 },
1384 	{ EXYNOS5_GPIO_PART7_BASE, EXYNOS5_GPIO_MAX_PORT_PART_7 },
1385 	{ EXYNOS5_GPIO_PART8_BASE, EXYNOS5_GPIO_MAX_PORT },
1386 };
1387 
1388 #define EXYNOS5420_GPIO_NUM_PARTS	6
1389 static struct gpio_info exynos5420_gpio_data[EXYNOS5420_GPIO_NUM_PARTS] = {
1390 	{ EXYNOS5420_GPIO_PART1_BASE, EXYNOS5420_GPIO_MAX_PORT_PART_1 },
1391 	{ EXYNOS5420_GPIO_PART2_BASE, EXYNOS5420_GPIO_MAX_PORT_PART_2 },
1392 	{ EXYNOS5420_GPIO_PART3_BASE, EXYNOS5420_GPIO_MAX_PORT_PART_3 },
1393 	{ EXYNOS5420_GPIO_PART4_BASE, EXYNOS5420_GPIO_MAX_PORT_PART_4 },
1394 	{ EXYNOS5420_GPIO_PART5_BASE, EXYNOS5420_GPIO_MAX_PORT_PART_5 },
1395 	{ EXYNOS5420_GPIO_PART6_BASE, EXYNOS5420_GPIO_MAX_PORT },
1396 };
1397 
1398 static inline struct gpio_info *get_gpio_data(void)
1399 {
1400 	if (cpu_is_exynos5()) {
1401 		if (proid_is_exynos5420() || proid_is_exynos5422())
1402 			return exynos5420_gpio_data;
1403 		else
1404 			return exynos5_gpio_data;
1405 	} else if (cpu_is_exynos4()) {
1406 		if (proid_is_exynos4412())
1407 			return exynos4x12_gpio_data;
1408 		else
1409 			return exynos4_gpio_data;
1410 	}
1411 
1412 	return NULL;
1413 }
1414 
1415 static inline unsigned int get_bank_num(void)
1416 {
1417 	if (cpu_is_exynos5()) {
1418 		if (proid_is_exynos5420() || proid_is_exynos5422())
1419 			return EXYNOS5420_GPIO_NUM_PARTS;
1420 		else
1421 			return EXYNOS5_GPIO_NUM_PARTS;
1422 	} else if (cpu_is_exynos4()) {
1423 		if (proid_is_exynos4412())
1424 			return EXYNOS4X12_GPIO_NUM_PARTS;
1425 		else
1426 			return EXYNOS4_GPIO_NUM_PARTS;
1427 	}
1428 
1429 	return 0;
1430 }
1431 
1432 /*
1433  * This structure helps mapping symbolic GPIO names into indices from
1434  * exynos5_gpio_pin/exynos5420_gpio_pin enums.
1435  *
1436  * By convention, symbolic GPIO name is defined as follows:
1437  *
1438  * g[p]<bank><set><bit>, where
1439  *   p is optional
1440  *   <bank> - a single character bank name, as defined by the SOC
1441  *   <set> - a single digit set number
1442  *   <bit> - bit number within the set (in 0..7 range).
1443  *
1444  * <set><bit> essentially form an octal number of the GPIO pin within the bank
1445  * space. On the 5420 architecture some banks' sets do not start not from zero
1446  * ('d' starts from 1 and 'j' starts from 4). To compensate for that and
1447  * maintain flat number space withoout holes, those banks use offsets to be
1448  * deducted from the pin number.
1449  */
1450 struct gpio_name_num_table {
1451 	char bank;		/* bank name symbol */
1452 	unsigned int bank_size;		/* total number of pins in the bank */
1453 	char bank_offset;	/* offset of the first bank's pin */
1454 	unsigned int base;	/* index of the first bank's pin in the enum */
1455 };
1456 
1457 #define GPIO_ENTRY(name, base, top, offset) { name, top - base, offset, base }
1458 static const struct gpio_name_num_table exynos4_gpio_table[] = {
1459 	GPIO_ENTRY('a', EXYNOS4_GPIO_A00, EXYNOS4_GPIO_B0, 0),
1460 	GPIO_ENTRY('b', EXYNOS4_GPIO_B0, EXYNOS4_GPIO_C00, 0),
1461 	GPIO_ENTRY('c', EXYNOS4_GPIO_C00, EXYNOS4_GPIO_D00, 0),
1462 	GPIO_ENTRY('d', EXYNOS4_GPIO_D00, EXYNOS4_GPIO_E00, 0),
1463 	GPIO_ENTRY('e', EXYNOS4_GPIO_E00, EXYNOS4_GPIO_F00, 0),
1464 	GPIO_ENTRY('f', EXYNOS4_GPIO_F00, EXYNOS4_GPIO_J00, 0),
1465 	GPIO_ENTRY('j', EXYNOS4_GPIO_J00, EXYNOS4_GPIO_K00, 0),
1466 	GPIO_ENTRY('k', EXYNOS4_GPIO_K00, EXYNOS4_GPIO_L00, 0),
1467 	GPIO_ENTRY('l', EXYNOS4_GPIO_L00, EXYNOS4_GPIO_Y00, 0),
1468 	GPIO_ENTRY('y', EXYNOS4_GPIO_Y00, EXYNOS4_GPIO_X00, 0),
1469 	GPIO_ENTRY('x', EXYNOS4_GPIO_X00, EXYNOS4_GPIO_Z0, 0),
1470 	GPIO_ENTRY('z', EXYNOS4_GPIO_Z0, EXYNOS4_GPIO_MAX_PORT, 0),
1471 	{ 0 }
1472 };
1473 
1474 static const struct gpio_name_num_table exynos4x12_gpio_table[] = {
1475 	GPIO_ENTRY('a', EXYNOS4X12_GPIO_A00, EXYNOS4X12_GPIO_B0, 0),
1476 	GPIO_ENTRY('b', EXYNOS4X12_GPIO_B0, EXYNOS4X12_GPIO_C00, 0),
1477 	GPIO_ENTRY('c', EXYNOS4X12_GPIO_C00, EXYNOS4X12_GPIO_D00, 0),
1478 	GPIO_ENTRY('d', EXYNOS4X12_GPIO_D00, EXYNOS4X12_GPIO_F00, 0),
1479 	GPIO_ENTRY('f', EXYNOS4X12_GPIO_F00, EXYNOS4X12_GPIO_J00, 0),
1480 	GPIO_ENTRY('j', EXYNOS4X12_GPIO_J00, EXYNOS4X12_GPIO_K00, 0),
1481 	GPIO_ENTRY('k', EXYNOS4X12_GPIO_K00, EXYNOS4X12_GPIO_L00, 0),
1482 	GPIO_ENTRY('l', EXYNOS4X12_GPIO_L00, EXYNOS4X12_GPIO_Y00, 0),
1483 	GPIO_ENTRY('y', EXYNOS4X12_GPIO_Y00, EXYNOS4X12_GPIO_M00, 0),
1484 	GPIO_ENTRY('m', EXYNOS4X12_GPIO_M00, EXYNOS4X12_GPIO_X00, 0),
1485 	GPIO_ENTRY('x', EXYNOS4X12_GPIO_X00, EXYNOS4X12_GPIO_Z0, 0),
1486 	GPIO_ENTRY('z', EXYNOS4X12_GPIO_Z0, EXYNOS4X12_GPIO_V00, 0),
1487 	GPIO_ENTRY('v', EXYNOS4X12_GPIO_V00, EXYNOS4X12_GPIO_MAX_PORT, 0),
1488 	{ 0 }
1489 };
1490 
1491 static const struct gpio_name_num_table exynos5_gpio_table[] = {
1492 	GPIO_ENTRY('a', EXYNOS5_GPIO_A00, EXYNOS5_GPIO_B00, 0),
1493 	GPIO_ENTRY('b', EXYNOS5_GPIO_B00, EXYNOS5_GPIO_C00, 0),
1494 	GPIO_ENTRY('c', EXYNOS5_GPIO_C00, EXYNOS5_GPIO_D00, 0),
1495 	GPIO_ENTRY('d', EXYNOS5_GPIO_D00, EXYNOS5_GPIO_Y00, 0),
1496 	GPIO_ENTRY('y', EXYNOS5_GPIO_Y00, EXYNOS5_GPIO_C40, 0),
1497 	GPIO_ENTRY('x', EXYNOS5_GPIO_X00, EXYNOS5_GPIO_E00, 0),
1498 	GPIO_ENTRY('e', EXYNOS5_GPIO_E00, EXYNOS5_GPIO_F00, 0),
1499 	GPIO_ENTRY('f', EXYNOS5_GPIO_F00, EXYNOS5_GPIO_G00, 0),
1500 	GPIO_ENTRY('g', EXYNOS5_GPIO_G00, EXYNOS5_GPIO_H00, 0),
1501 	GPIO_ENTRY('h', EXYNOS5_GPIO_H00, EXYNOS5_GPIO_V00, 0),
1502 	GPIO_ENTRY('v', EXYNOS5_GPIO_V00, EXYNOS5_GPIO_Z0, 0),
1503 	GPIO_ENTRY('z', EXYNOS5_GPIO_Z0, EXYNOS5_GPIO_MAX_PORT, 0),
1504 	{ 0 }
1505 };
1506 
1507 static const struct gpio_name_num_table exynos5420_gpio_table[] = {
1508 	GPIO_ENTRY('a', EXYNOS5420_GPIO_A00, EXYNOS5420_GPIO_B00, 0),
1509 	GPIO_ENTRY('b', EXYNOS5420_GPIO_B00, EXYNOS5420_GPIO_H00, 0),
1510 	GPIO_ENTRY('h', EXYNOS5420_GPIO_H00, EXYNOS5420_GPIO_Y70, 0),
1511 	GPIO_ENTRY('x', EXYNOS5420_GPIO_X00, EXYNOS5420_GPIO_C00, 0),
1512 	GPIO_ENTRY('c', EXYNOS5420_GPIO_C00, EXYNOS5420_GPIO_D10, 0),
1513 	GPIO_ENTRY('d', EXYNOS5420_GPIO_D10, EXYNOS5420_GPIO_Y00, 010),
1514 	GPIO_ENTRY('y', EXYNOS5420_GPIO_Y00, EXYNOS5420_GPIO_E00, 0),
1515 	GPIO_ENTRY('e', EXYNOS5420_GPIO_E00, EXYNOS5420_GPIO_F00, 0),
1516 	GPIO_ENTRY('f', EXYNOS5420_GPIO_F00, EXYNOS5420_GPIO_G00, 0),
1517 	GPIO_ENTRY('g', EXYNOS5420_GPIO_G00, EXYNOS5420_GPIO_J40, 0),
1518 	GPIO_ENTRY('j', EXYNOS5420_GPIO_J40, EXYNOS5420_GPIO_Z0, 040),
1519 	GPIO_ENTRY('z', EXYNOS5420_GPIO_Z0, EXYNOS5420_GPIO_MAX_PORT, 0),
1520 	{ 0 }
1521 };
1522 
1523 void gpio_cfg_pin(int gpio, int cfg);
1524 void gpio_set_pull(int gpio, int mode);
1525 void gpio_set_drv(int gpio, int mode);
1526 void gpio_set_rate(int gpio, int mode);
1527 int s5p_gpio_get_pin(unsigned gpio);
1528 #endif
1529 
1530 /* Pin configurations */
1531 #define S5P_GPIO_INPUT	0x0
1532 #define S5P_GPIO_OUTPUT	0x1
1533 #define S5P_GPIO_IRQ	0xf
1534 #define S5P_GPIO_FUNC(x)	(x)
1535 
1536 /* Pull mode */
1537 #define S5P_GPIO_PULL_NONE	0x0
1538 #define S5P_GPIO_PULL_DOWN	0x1
1539 #define S5P_GPIO_PULL_UP	0x3
1540 
1541 /* Drive Strength level */
1542 #define S5P_GPIO_DRV_1X	0x0
1543 #define S5P_GPIO_DRV_3X	0x1
1544 #define S5P_GPIO_DRV_2X	0x2
1545 #define S5P_GPIO_DRV_4X	0x3
1546 #define S5P_GPIO_DRV_FAST	0x0
1547 #define S5P_GPIO_DRV_SLOW	0x1
1548 #endif
1549