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