xref: /openbmc/u-boot/arch/arm/mach-exynos/include/mach/gpio.h (revision 8fc26fce41592175ae004514e431e68a9dd60671)
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  
get_gpio_data(void)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  
get_bank_num(void)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
1548