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