uboot/arch/arm/include/asm/arch-s5pc1xx/gpio.h
<<
>>
Prefs
   1/*
   2 * (C) Copyright 2009 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/* A list of valid GPIO numbers for the asm-generic/gpio.h interface */
  23enum s5pc100_gpio_pin {
  24        S5PC100_GPIO_A00,
  25        S5PC100_GPIO_A01,
  26        S5PC100_GPIO_A02,
  27        S5PC100_GPIO_A03,
  28        S5PC100_GPIO_A04,
  29        S5PC100_GPIO_A05,
  30        S5PC100_GPIO_A06,
  31        S5PC100_GPIO_A07,
  32        S5PC100_GPIO_A10,
  33        S5PC100_GPIO_A11,
  34        S5PC100_GPIO_A12,
  35        S5PC100_GPIO_A13,
  36        S5PC100_GPIO_A14,
  37        S5PC100_GPIO_A15,
  38        S5PC100_GPIO_A16,
  39        S5PC100_GPIO_A17,
  40        S5PC100_GPIO_B0,
  41        S5PC100_GPIO_B1,
  42        S5PC100_GPIO_B2,
  43        S5PC100_GPIO_B3,
  44        S5PC100_GPIO_B4,
  45        S5PC100_GPIO_B5,
  46        S5PC100_GPIO_B6,
  47        S5PC100_GPIO_B7,
  48        S5PC100_GPIO_C0,
  49        S5PC100_GPIO_C1,
  50        S5PC100_GPIO_C2,
  51        S5PC100_GPIO_C3,
  52        S5PC100_GPIO_C4,
  53        S5PC100_GPIO_C5,
  54        S5PC100_GPIO_C6,
  55        S5PC100_GPIO_C7,
  56        S5PC100_GPIO_D0,
  57        S5PC100_GPIO_D1,
  58        S5PC100_GPIO_D2,
  59        S5PC100_GPIO_D3,
  60        S5PC100_GPIO_D4,
  61        S5PC100_GPIO_D5,
  62        S5PC100_GPIO_D6,
  63        S5PC100_GPIO_D7,
  64        S5PC100_GPIO_E00,
  65        S5PC100_GPIO_E01,
  66        S5PC100_GPIO_E02,
  67        S5PC100_GPIO_E03,
  68        S5PC100_GPIO_E04,
  69        S5PC100_GPIO_E05,
  70        S5PC100_GPIO_E06,
  71        S5PC100_GPIO_E07,
  72        S5PC100_GPIO_E10,
  73        S5PC100_GPIO_E11,
  74        S5PC100_GPIO_E12,
  75        S5PC100_GPIO_E13,
  76        S5PC100_GPIO_E14,
  77        S5PC100_GPIO_E15,
  78        S5PC100_GPIO_E16,
  79        S5PC100_GPIO_E17,
  80        S5PC100_GPIO_F00,
  81        S5PC100_GPIO_F01,
  82        S5PC100_GPIO_F02,
  83        S5PC100_GPIO_F03,
  84        S5PC100_GPIO_F04,
  85        S5PC100_GPIO_F05,
  86        S5PC100_GPIO_F06,
  87        S5PC100_GPIO_F07,
  88        S5PC100_GPIO_F10,
  89        S5PC100_GPIO_F11,
  90        S5PC100_GPIO_F12,
  91        S5PC100_GPIO_F13,
  92        S5PC100_GPIO_F14,
  93        S5PC100_GPIO_F15,
  94        S5PC100_GPIO_F16,
  95        S5PC100_GPIO_F17,
  96        S5PC100_GPIO_F20,
  97        S5PC100_GPIO_F21,
  98        S5PC100_GPIO_F22,
  99        S5PC100_GPIO_F23,
 100        S5PC100_GPIO_F24,
 101        S5PC100_GPIO_F25,
 102        S5PC100_GPIO_F26,
 103        S5PC100_GPIO_F27,
 104        S5PC100_GPIO_F30,
 105        S5PC100_GPIO_F31,
 106        S5PC100_GPIO_F32,
 107        S5PC100_GPIO_F33,
 108        S5PC100_GPIO_F34,
 109        S5PC100_GPIO_F35,
 110        S5PC100_GPIO_F36,
 111        S5PC100_GPIO_F37,
 112        S5PC100_GPIO_G00,
 113        S5PC100_GPIO_G01,
 114        S5PC100_GPIO_G02,
 115        S5PC100_GPIO_G03,
 116        S5PC100_GPIO_G04,
 117        S5PC100_GPIO_G05,
 118        S5PC100_GPIO_G06,
 119        S5PC100_GPIO_G07,
 120        S5PC100_GPIO_G10,
 121        S5PC100_GPIO_G11,
 122        S5PC100_GPIO_G12,
 123        S5PC100_GPIO_G13,
 124        S5PC100_GPIO_G14,
 125        S5PC100_GPIO_G15,
 126        S5PC100_GPIO_G16,
 127        S5PC100_GPIO_G17,
 128        S5PC100_GPIO_G20,
 129        S5PC100_GPIO_G21,
 130        S5PC100_GPIO_G22,
 131        S5PC100_GPIO_G23,
 132        S5PC100_GPIO_G24,
 133        S5PC100_GPIO_G25,
 134        S5PC100_GPIO_G26,
 135        S5PC100_GPIO_G27,
 136        S5PC100_GPIO_G30,
 137        S5PC100_GPIO_G31,
 138        S5PC100_GPIO_G32,
 139        S5PC100_GPIO_G33,
 140        S5PC100_GPIO_G34,
 141        S5PC100_GPIO_G35,
 142        S5PC100_GPIO_G36,
 143        S5PC100_GPIO_G37,
 144        S5PC100_GPIO_I0,
 145        S5PC100_GPIO_I1,
 146        S5PC100_GPIO_I2,
 147        S5PC100_GPIO_I3,
 148        S5PC100_GPIO_I4,
 149        S5PC100_GPIO_I5,
 150        S5PC100_GPIO_I6,
 151        S5PC100_GPIO_I7,
 152        S5PC100_GPIO_J00,
 153        S5PC100_GPIO_J01,
 154        S5PC100_GPIO_J02,
 155        S5PC100_GPIO_J03,
 156        S5PC100_GPIO_J04,
 157        S5PC100_GPIO_J05,
 158        S5PC100_GPIO_J06,
 159        S5PC100_GPIO_J07,
 160        S5PC100_GPIO_J10,
 161        S5PC100_GPIO_J11,
 162        S5PC100_GPIO_J12,
 163        S5PC100_GPIO_J13,
 164        S5PC100_GPIO_J14,
 165        S5PC100_GPIO_J15,
 166        S5PC100_GPIO_J16,
 167        S5PC100_GPIO_J17,
 168        S5PC100_GPIO_J20,
 169        S5PC100_GPIO_J21,
 170        S5PC100_GPIO_J22,
 171        S5PC100_GPIO_J23,
 172        S5PC100_GPIO_J24,
 173        S5PC100_GPIO_J25,
 174        S5PC100_GPIO_J26,
 175        S5PC100_GPIO_J27,
 176        S5PC100_GPIO_J30,
 177        S5PC100_GPIO_J31,
 178        S5PC100_GPIO_J32,
 179        S5PC100_GPIO_J33,
 180        S5PC100_GPIO_J34,
 181        S5PC100_GPIO_J35,
 182        S5PC100_GPIO_J36,
 183        S5PC100_GPIO_J37,
 184        S5PC100_GPIO_J40,
 185        S5PC100_GPIO_J41,
 186        S5PC100_GPIO_J42,
 187        S5PC100_GPIO_J43,
 188        S5PC100_GPIO_J44,
 189        S5PC100_GPIO_J45,
 190        S5PC100_GPIO_J46,
 191        S5PC100_GPIO_J47,
 192        S5PC100_GPIO_K00,
 193        S5PC100_GPIO_K01,
 194        S5PC100_GPIO_K02,
 195        S5PC100_GPIO_K03,
 196        S5PC100_GPIO_K04,
 197        S5PC100_GPIO_K05,
 198        S5PC100_GPIO_K06,
 199        S5PC100_GPIO_K07,
 200        S5PC100_GPIO_K10,
 201        S5PC100_GPIO_K11,
 202        S5PC100_GPIO_K12,
 203        S5PC100_GPIO_K13,
 204        S5PC100_GPIO_K14,
 205        S5PC100_GPIO_K15,
 206        S5PC100_GPIO_K16,
 207        S5PC100_GPIO_K17,
 208        S5PC100_GPIO_K20,
 209        S5PC100_GPIO_K21,
 210        S5PC100_GPIO_K22,
 211        S5PC100_GPIO_K23,
 212        S5PC100_GPIO_K24,
 213        S5PC100_GPIO_K25,
 214        S5PC100_GPIO_K26,
 215        S5PC100_GPIO_K27,
 216        S5PC100_GPIO_K30,
 217        S5PC100_GPIO_K31,
 218        S5PC100_GPIO_K32,
 219        S5PC100_GPIO_K33,
 220        S5PC100_GPIO_K34,
 221        S5PC100_GPIO_K35,
 222        S5PC100_GPIO_K36,
 223        S5PC100_GPIO_K37,
 224        S5PC100_GPIO_L00,
 225        S5PC100_GPIO_L01,
 226        S5PC100_GPIO_L02,
 227        S5PC100_GPIO_L03,
 228        S5PC100_GPIO_L04,
 229        S5PC100_GPIO_L05,
 230        S5PC100_GPIO_L06,
 231        S5PC100_GPIO_L07,
 232        S5PC100_GPIO_L10,
 233        S5PC100_GPIO_L11,
 234        S5PC100_GPIO_L12,
 235        S5PC100_GPIO_L13,
 236        S5PC100_GPIO_L14,
 237        S5PC100_GPIO_L15,
 238        S5PC100_GPIO_L16,
 239        S5PC100_GPIO_L17,
 240        S5PC100_GPIO_L20,
 241        S5PC100_GPIO_L21,
 242        S5PC100_GPIO_L22,
 243        S5PC100_GPIO_L23,
 244        S5PC100_GPIO_L24,
 245        S5PC100_GPIO_L25,
 246        S5PC100_GPIO_L26,
 247        S5PC100_GPIO_L27,
 248        S5PC100_GPIO_L30,
 249        S5PC100_GPIO_L31,
 250        S5PC100_GPIO_L32,
 251        S5PC100_GPIO_L33,
 252        S5PC100_GPIO_L34,
 253        S5PC100_GPIO_L35,
 254        S5PC100_GPIO_L36,
 255        S5PC100_GPIO_L37,
 256        S5PC100_GPIO_L40,
 257        S5PC100_GPIO_L41,
 258        S5PC100_GPIO_L42,
 259        S5PC100_GPIO_L43,
 260        S5PC100_GPIO_L44,
 261        S5PC100_GPIO_L45,
 262        S5PC100_GPIO_L46,
 263        S5PC100_GPIO_L47,
 264        S5PC100_GPIO_H00,
 265        S5PC100_GPIO_H01,
 266        S5PC100_GPIO_H02,
 267        S5PC100_GPIO_H03,
 268        S5PC100_GPIO_H04,
 269        S5PC100_GPIO_H05,
 270        S5PC100_GPIO_H06,
 271        S5PC100_GPIO_H07,
 272        S5PC100_GPIO_H10,
 273        S5PC100_GPIO_H11,
 274        S5PC100_GPIO_H12,
 275        S5PC100_GPIO_H13,
 276        S5PC100_GPIO_H14,
 277        S5PC100_GPIO_H15,
 278        S5PC100_GPIO_H16,
 279        S5PC100_GPIO_H17,
 280        S5PC100_GPIO_H20,
 281        S5PC100_GPIO_H21,
 282        S5PC100_GPIO_H22,
 283        S5PC100_GPIO_H23,
 284        S5PC100_GPIO_H24,
 285        S5PC100_GPIO_H25,
 286        S5PC100_GPIO_H26,
 287        S5PC100_GPIO_H27,
 288        S5PC100_GPIO_H30,
 289        S5PC100_GPIO_H31,
 290        S5PC100_GPIO_H32,
 291        S5PC100_GPIO_H33,
 292        S5PC100_GPIO_H34,
 293        S5PC100_GPIO_H35,
 294        S5PC100_GPIO_H36,
 295        S5PC100_GPIO_H37,
 296
 297        S5PC100_GPIO_MAX_PORT
 298};
 299
 300enum s5pc110_gpio_pin {
 301        S5PC110_GPIO_A00,
 302        S5PC110_GPIO_A01,
 303        S5PC110_GPIO_A02,
 304        S5PC110_GPIO_A03,
 305        S5PC110_GPIO_A04,
 306        S5PC110_GPIO_A05,
 307        S5PC110_GPIO_A06,
 308        S5PC110_GPIO_A07,
 309        S5PC110_GPIO_A10,
 310        S5PC110_GPIO_A11,
 311        S5PC110_GPIO_A12,
 312        S5PC110_GPIO_A13,
 313        S5PC110_GPIO_A14,
 314        S5PC110_GPIO_A15,
 315        S5PC110_GPIO_A16,
 316        S5PC110_GPIO_A17,
 317        S5PC110_GPIO_B0,
 318        S5PC110_GPIO_B1,
 319        S5PC110_GPIO_B2,
 320        S5PC110_GPIO_B3,
 321        S5PC110_GPIO_B4,
 322        S5PC110_GPIO_B5,
 323        S5PC110_GPIO_B6,
 324        S5PC110_GPIO_B7,
 325        S5PC110_GPIO_C00,
 326        S5PC110_GPIO_C01,
 327        S5PC110_GPIO_C02,
 328        S5PC110_GPIO_C03,
 329        S5PC110_GPIO_C04,
 330        S5PC110_GPIO_C05,
 331        S5PC110_GPIO_C06,
 332        S5PC110_GPIO_C07,
 333        S5PC110_GPIO_C10,
 334        S5PC110_GPIO_C11,
 335        S5PC110_GPIO_C12,
 336        S5PC110_GPIO_C13,
 337        S5PC110_GPIO_C14,
 338        S5PC110_GPIO_C15,
 339        S5PC110_GPIO_C16,
 340        S5PC110_GPIO_C17,
 341        S5PC110_GPIO_D00,
 342        S5PC110_GPIO_D01,
 343        S5PC110_GPIO_D02,
 344        S5PC110_GPIO_D03,
 345        S5PC110_GPIO_D04,
 346        S5PC110_GPIO_D05,
 347        S5PC110_GPIO_D06,
 348        S5PC110_GPIO_D07,
 349        S5PC110_GPIO_D10,
 350        S5PC110_GPIO_D11,
 351        S5PC110_GPIO_D12,
 352        S5PC110_GPIO_D13,
 353        S5PC110_GPIO_D14,
 354        S5PC110_GPIO_D15,
 355        S5PC110_GPIO_D16,
 356        S5PC110_GPIO_D17,
 357        S5PC110_GPIO_E00,
 358        S5PC110_GPIO_E01,
 359        S5PC110_GPIO_E02,
 360        S5PC110_GPIO_E03,
 361        S5PC110_GPIO_E04,
 362        S5PC110_GPIO_E05,
 363        S5PC110_GPIO_E06,
 364        S5PC110_GPIO_E07,
 365        S5PC110_GPIO_E10,
 366        S5PC110_GPIO_E11,
 367        S5PC110_GPIO_E12,
 368        S5PC110_GPIO_E13,
 369        S5PC110_GPIO_E14,
 370        S5PC110_GPIO_E15,
 371        S5PC110_GPIO_E16,
 372        S5PC110_GPIO_E17,
 373        S5PC110_GPIO_F00,
 374        S5PC110_GPIO_F01,
 375        S5PC110_GPIO_F02,
 376        S5PC110_GPIO_F03,
 377        S5PC110_GPIO_F04,
 378        S5PC110_GPIO_F05,
 379        S5PC110_GPIO_F06,
 380        S5PC110_GPIO_F07,
 381        S5PC110_GPIO_F10,
 382        S5PC110_GPIO_F11,
 383        S5PC110_GPIO_F12,
 384        S5PC110_GPIO_F13,
 385        S5PC110_GPIO_F14,
 386        S5PC110_GPIO_F15,
 387        S5PC110_GPIO_F16,
 388        S5PC110_GPIO_F17,
 389        S5PC110_GPIO_F20,
 390        S5PC110_GPIO_F21,
 391        S5PC110_GPIO_F22,
 392        S5PC110_GPIO_F23,
 393        S5PC110_GPIO_F24,
 394        S5PC110_GPIO_F25,
 395        S5PC110_GPIO_F26,
 396        S5PC110_GPIO_F27,
 397        S5PC110_GPIO_F30,
 398        S5PC110_GPIO_F31,
 399        S5PC110_GPIO_F32,
 400        S5PC110_GPIO_F33,
 401        S5PC110_GPIO_F34,
 402        S5PC110_GPIO_F35,
 403        S5PC110_GPIO_F36,
 404        S5PC110_GPIO_F37,
 405        S5PC110_GPIO_G00,
 406        S5PC110_GPIO_G01,
 407        S5PC110_GPIO_G02,
 408        S5PC110_GPIO_G03,
 409        S5PC110_GPIO_G04,
 410        S5PC110_GPIO_G05,
 411        S5PC110_GPIO_G06,
 412        S5PC110_GPIO_G07,
 413        S5PC110_GPIO_G10,
 414        S5PC110_GPIO_G11,
 415        S5PC110_GPIO_G12,
 416        S5PC110_GPIO_G13,
 417        S5PC110_GPIO_G14,
 418        S5PC110_GPIO_G15,
 419        S5PC110_GPIO_G16,
 420        S5PC110_GPIO_G17,
 421        S5PC110_GPIO_G20,
 422        S5PC110_GPIO_G21,
 423        S5PC110_GPIO_G22,
 424        S5PC110_GPIO_G23,
 425        S5PC110_GPIO_G24,
 426        S5PC110_GPIO_G25,
 427        S5PC110_GPIO_G26,
 428        S5PC110_GPIO_G27,
 429        S5PC110_GPIO_G30,
 430        S5PC110_GPIO_G31,
 431        S5PC110_GPIO_G32,
 432        S5PC110_GPIO_G33,
 433        S5PC110_GPIO_G34,
 434        S5PC110_GPIO_G35,
 435        S5PC110_GPIO_G36,
 436        S5PC110_GPIO_G37,
 437        S5PC110_GPIO_I0,
 438        S5PC110_GPIO_I1,
 439        S5PC110_GPIO_I2,
 440        S5PC110_GPIO_I3,
 441        S5PC110_GPIO_I4,
 442        S5PC110_GPIO_I5,
 443        S5PC110_GPIO_I6,
 444        S5PC110_GPIO_I7,
 445        S5PC110_GPIO_J00,
 446        S5PC110_GPIO_J01,
 447        S5PC110_GPIO_J02,
 448        S5PC110_GPIO_J03,
 449        S5PC110_GPIO_J04,
 450        S5PC110_GPIO_J05,
 451        S5PC110_GPIO_J06,
 452        S5PC110_GPIO_J07,
 453        S5PC110_GPIO_J10,
 454        S5PC110_GPIO_J11,
 455        S5PC110_GPIO_J12,
 456        S5PC110_GPIO_J13,
 457        S5PC110_GPIO_J14,
 458        S5PC110_GPIO_J15,
 459        S5PC110_GPIO_J16,
 460        S5PC110_GPIO_J17,
 461        S5PC110_GPIO_J20,
 462        S5PC110_GPIO_J21,
 463        S5PC110_GPIO_J22,
 464        S5PC110_GPIO_J23,
 465        S5PC110_GPIO_J24,
 466        S5PC110_GPIO_J25,
 467        S5PC110_GPIO_J26,
 468        S5PC110_GPIO_J27,
 469        S5PC110_GPIO_J30,
 470        S5PC110_GPIO_J31,
 471        S5PC110_GPIO_J32,
 472        S5PC110_GPIO_J33,
 473        S5PC110_GPIO_J34,
 474        S5PC110_GPIO_J35,
 475        S5PC110_GPIO_J36,
 476        S5PC110_GPIO_J37,
 477        S5PC110_GPIO_J40,
 478        S5PC110_GPIO_J41,
 479        S5PC110_GPIO_J42,
 480        S5PC110_GPIO_J43,
 481        S5PC110_GPIO_J44,
 482        S5PC110_GPIO_J45,
 483        S5PC110_GPIO_J46,
 484        S5PC110_GPIO_J47,
 485        S5PC110_GPIO_MP010,
 486        S5PC110_GPIO_MP011,
 487        S5PC110_GPIO_MP012,
 488        S5PC110_GPIO_MP013,
 489        S5PC110_GPIO_MP014,
 490        S5PC110_GPIO_MP015,
 491        S5PC110_GPIO_MP016,
 492        S5PC110_GPIO_MP017,
 493        S5PC110_GPIO_MP020,
 494        S5PC110_GPIO_MP021,
 495        S5PC110_GPIO_MP022,
 496        S5PC110_GPIO_MP023,
 497        S5PC110_GPIO_MP024,
 498        S5PC110_GPIO_MP025,
 499        S5PC110_GPIO_MP026,
 500        S5PC110_GPIO_MP027,
 501        S5PC110_GPIO_MP030,
 502        S5PC110_GPIO_MP031,
 503        S5PC110_GPIO_MP032,
 504        S5PC110_GPIO_MP033,
 505        S5PC110_GPIO_MP034,
 506        S5PC110_GPIO_MP035,
 507        S5PC110_GPIO_MP036,
 508        S5PC110_GPIO_MP037,
 509        S5PC110_GPIO_MP040,
 510        S5PC110_GPIO_MP041,
 511        S5PC110_GPIO_MP042,
 512        S5PC110_GPIO_MP043,
 513        S5PC110_GPIO_MP044,
 514        S5PC110_GPIO_MP045,
 515        S5PC110_GPIO_MP046,
 516        S5PC110_GPIO_MP047,
 517        S5PC110_GPIO_MP050,
 518        S5PC110_GPIO_MP051,
 519        S5PC110_GPIO_MP052,
 520        S5PC110_GPIO_MP053,
 521        S5PC110_GPIO_MP054,
 522        S5PC110_GPIO_MP055,
 523        S5PC110_GPIO_MP056,
 524        S5PC110_GPIO_MP057,
 525        S5PC110_GPIO_MP060,
 526        S5PC110_GPIO_MP061,
 527        S5PC110_GPIO_MP062,
 528        S5PC110_GPIO_MP063,
 529        S5PC110_GPIO_MP064,
 530        S5PC110_GPIO_MP065,
 531        S5PC110_GPIO_MP066,
 532        S5PC110_GPIO_MP067,
 533        S5PC110_GPIO_MP070,
 534        S5PC110_GPIO_MP071,
 535        S5PC110_GPIO_MP072,
 536        S5PC110_GPIO_MP073,
 537        S5PC110_GPIO_MP074,
 538        S5PC110_GPIO_MP075,
 539        S5PC110_GPIO_MP076,
 540        S5PC110_GPIO_MP077,
 541        S5PC110_GPIO_MP100,
 542        S5PC110_GPIO_MP101,
 543        S5PC110_GPIO_MP102,
 544        S5PC110_GPIO_MP103,
 545        S5PC110_GPIO_MP104,
 546        S5PC110_GPIO_MP105,
 547        S5PC110_GPIO_MP106,
 548        S5PC110_GPIO_MP107,
 549        S5PC110_GPIO_MP110,
 550        S5PC110_GPIO_MP111,
 551        S5PC110_GPIO_MP112,
 552        S5PC110_GPIO_MP113,
 553        S5PC110_GPIO_MP114,
 554        S5PC110_GPIO_MP115,
 555        S5PC110_GPIO_MP116,
 556        S5PC110_GPIO_MP117,
 557        S5PC110_GPIO_MP120,
 558        S5PC110_GPIO_MP121,
 559        S5PC110_GPIO_MP122,
 560        S5PC110_GPIO_MP123,
 561        S5PC110_GPIO_MP124,
 562        S5PC110_GPIO_MP125,
 563        S5PC110_GPIO_MP126,
 564        S5PC110_GPIO_MP127,
 565        S5PC110_GPIO_MP130,
 566        S5PC110_GPIO_MP131,
 567        S5PC110_GPIO_MP132,
 568        S5PC110_GPIO_MP133,
 569        S5PC110_GPIO_MP134,
 570        S5PC110_GPIO_MP135,
 571        S5PC110_GPIO_MP136,
 572        S5PC110_GPIO_MP137,
 573        S5PC110_GPIO_MP140,
 574        S5PC110_GPIO_MP141,
 575        S5PC110_GPIO_MP142,
 576        S5PC110_GPIO_MP143,
 577        S5PC110_GPIO_MP144,
 578        S5PC110_GPIO_MP145,
 579        S5PC110_GPIO_MP146,
 580        S5PC110_GPIO_MP147,
 581        S5PC110_GPIO_MP150,
 582        S5PC110_GPIO_MP151,
 583        S5PC110_GPIO_MP152,
 584        S5PC110_GPIO_MP153,
 585        S5PC110_GPIO_MP154,
 586        S5PC110_GPIO_MP155,
 587        S5PC110_GPIO_MP156,
 588        S5PC110_GPIO_MP157,
 589        S5PC110_GPIO_MP160,
 590        S5PC110_GPIO_MP161,
 591        S5PC110_GPIO_MP162,
 592        S5PC110_GPIO_MP163,
 593        S5PC110_GPIO_MP164,
 594        S5PC110_GPIO_MP165,
 595        S5PC110_GPIO_MP166,
 596        S5PC110_GPIO_MP167,
 597        S5PC110_GPIO_MP170,
 598        S5PC110_GPIO_MP171,
 599        S5PC110_GPIO_MP172,
 600        S5PC110_GPIO_MP173,
 601        S5PC110_GPIO_MP174,
 602        S5PC110_GPIO_MP175,
 603        S5PC110_GPIO_MP176,
 604        S5PC110_GPIO_MP177,
 605        S5PC110_GPIO_MP180,
 606        S5PC110_GPIO_MP181,
 607        S5PC110_GPIO_MP182,
 608        S5PC110_GPIO_MP183,
 609        S5PC110_GPIO_MP184,
 610        S5PC110_GPIO_MP185,
 611        S5PC110_GPIO_MP186,
 612        S5PC110_GPIO_MP187,
 613        S5PC110_GPIO_MP200,
 614        S5PC110_GPIO_MP201,
 615        S5PC110_GPIO_MP202,
 616        S5PC110_GPIO_MP203,
 617        S5PC110_GPIO_MP204,
 618        S5PC110_GPIO_MP205,
 619        S5PC110_GPIO_MP206,
 620        S5PC110_GPIO_MP207,
 621        S5PC110_GPIO_MP210,
 622        S5PC110_GPIO_MP211,
 623        S5PC110_GPIO_MP212,
 624        S5PC110_GPIO_MP213,
 625        S5PC110_GPIO_MP214,
 626        S5PC110_GPIO_MP215,
 627        S5PC110_GPIO_MP216,
 628        S5PC110_GPIO_MP217,
 629        S5PC110_GPIO_MP220,
 630        S5PC110_GPIO_MP221,
 631        S5PC110_GPIO_MP222,
 632        S5PC110_GPIO_MP223,
 633        S5PC110_GPIO_MP224,
 634        S5PC110_GPIO_MP225,
 635        S5PC110_GPIO_MP226,
 636        S5PC110_GPIO_MP227,
 637        S5PC110_GPIO_MP230,
 638        S5PC110_GPIO_MP231,
 639        S5PC110_GPIO_MP232,
 640        S5PC110_GPIO_MP233,
 641        S5PC110_GPIO_MP234,
 642        S5PC110_GPIO_MP235,
 643        S5PC110_GPIO_MP236,
 644        S5PC110_GPIO_MP237,
 645        S5PC110_GPIO_MP240,
 646        S5PC110_GPIO_MP241,
 647        S5PC110_GPIO_MP242,
 648        S5PC110_GPIO_MP243,
 649        S5PC110_GPIO_MP244,
 650        S5PC110_GPIO_MP245,
 651        S5PC110_GPIO_MP246,
 652        S5PC110_GPIO_MP247,
 653        S5PC110_GPIO_MP250,
 654        S5PC110_GPIO_MP251,
 655        S5PC110_GPIO_MP252,
 656        S5PC110_GPIO_MP253,
 657        S5PC110_GPIO_MP254,
 658        S5PC110_GPIO_MP255,
 659        S5PC110_GPIO_MP256,
 660        S5PC110_GPIO_MP257,
 661        S5PC110_GPIO_MP260,
 662        S5PC110_GPIO_MP261,
 663        S5PC110_GPIO_MP262,
 664        S5PC110_GPIO_MP263,
 665        S5PC110_GPIO_MP264,
 666        S5PC110_GPIO_MP265,
 667        S5PC110_GPIO_MP266,
 668        S5PC110_GPIO_MP267,
 669        S5PC110_GPIO_MP270,
 670        S5PC110_GPIO_MP271,
 671        S5PC110_GPIO_MP272,
 672        S5PC110_GPIO_MP273,
 673        S5PC110_GPIO_MP274,
 674        S5PC110_GPIO_MP275,
 675        S5PC110_GPIO_MP276,
 676        S5PC110_GPIO_MP277,
 677        S5PC110_GPIO_MP280,
 678        S5PC110_GPIO_MP281,
 679        S5PC110_GPIO_MP282,
 680        S5PC110_GPIO_MP283,
 681        S5PC110_GPIO_MP284,
 682        S5PC110_GPIO_MP285,
 683        S5PC110_GPIO_MP286,
 684        S5PC110_GPIO_MP287,
 685        S5PC110_GPIO_H00,
 686        S5PC110_GPIO_H01,
 687        S5PC110_GPIO_H02,
 688        S5PC110_GPIO_H03,
 689        S5PC110_GPIO_H04,
 690        S5PC110_GPIO_H05,
 691        S5PC110_GPIO_H06,
 692        S5PC110_GPIO_H07,
 693        S5PC110_GPIO_H10,
 694        S5PC110_GPIO_H11,
 695        S5PC110_GPIO_H12,
 696        S5PC110_GPIO_H13,
 697        S5PC110_GPIO_H14,
 698        S5PC110_GPIO_H15,
 699        S5PC110_GPIO_H16,
 700        S5PC110_GPIO_H17,
 701        S5PC110_GPIO_H20,
 702        S5PC110_GPIO_H21,
 703        S5PC110_GPIO_H22,
 704        S5PC110_GPIO_H23,
 705        S5PC110_GPIO_H24,
 706        S5PC110_GPIO_H25,
 707        S5PC110_GPIO_H26,
 708        S5PC110_GPIO_H27,
 709        S5PC110_GPIO_H30,
 710        S5PC110_GPIO_H31,
 711        S5PC110_GPIO_H32,
 712        S5PC110_GPIO_H33,
 713        S5PC110_GPIO_H34,
 714        S5PC110_GPIO_H35,
 715        S5PC110_GPIO_H36,
 716        S5PC110_GPIO_H37,
 717
 718        S5PC110_GPIO_MAX_PORT
 719};
 720
 721struct gpio_info {
 722        unsigned int reg_addr;  /* Address of register for this part */
 723        unsigned int max_gpio;  /* Maximum GPIO in this part */
 724};
 725
 726#define S5PC100_GPIO_NUM_PARTS  1
 727static struct gpio_info s5pc100_gpio_data[S5PC100_GPIO_NUM_PARTS] = {
 728        { S5PC100_GPIO_BASE, S5PC100_GPIO_MAX_PORT },
 729};
 730
 731#define S5PC110_GPIO_NUM_PARTS  1
 732static struct gpio_info s5pc110_gpio_data[S5PC110_GPIO_NUM_PARTS] = {
 733        { S5PC110_GPIO_BASE, S5PC110_GPIO_MAX_PORT },
 734};
 735
 736static inline struct gpio_info *get_gpio_data(void)
 737{
 738        if (cpu_is_s5pc100())
 739                return s5pc100_gpio_data;
 740        else if (cpu_is_s5pc110())
 741                return s5pc110_gpio_data;
 742
 743        return NULL;
 744}
 745
 746static inline unsigned int get_bank_num(void)
 747{
 748        if (cpu_is_s5pc100())
 749                return S5PC100_GPIO_NUM_PARTS;
 750        else if (cpu_is_s5pc110())
 751                return S5PC110_GPIO_NUM_PARTS;
 752
 753        return 0;
 754}
 755
 756/*
 757 * This structure helps mapping symbolic GPIO names into indices from
 758 * exynos5_gpio_pin/exynos5420_gpio_pin enums.
 759 *
 760 * By convention, symbolic GPIO name is defined as follows:
 761 *
 762 * g[p]<bank><set><bit>, where
 763 *   p is optional
 764 *   <bank> - a single character bank name, as defined by the SOC
 765 *   <set> - a single digit set number
 766 *   <bit> - bit number within the set (in 0..7 range).
 767 *
 768 * <set><bit> essentially form an octal number of the GPIO pin within the bank
 769 * space. On the 5420 architecture some banks' sets do not start not from zero
 770 * ('d' starts from 1 and 'j' starts from 4). To compensate for that and
 771 * maintain flat number space withoout holes, those banks use offsets to be
 772 * deducted from the pin number.
 773 */
 774struct gpio_name_num_table {
 775        char bank;              /* bank name symbol */
 776        u8 bank_size;           /* total number of pins in the bank */
 777        char bank_offset;       /* offset of the first bank's pin */
 778        unsigned int base;      /* index of the first bank's pin in the enum */
 779};
 780
 781#define GPIO_PER_BANK 8
 782#define GPIO_ENTRY(name, base, top, offset) { name, top - base, offset, base }
 783static const struct gpio_name_num_table s5pc100_gpio_table[] = {
 784        GPIO_ENTRY('a', S5PC100_GPIO_A00, S5PC100_GPIO_B0, 0),
 785        GPIO_ENTRY('b', S5PC100_GPIO_B0, S5PC100_GPIO_C0, 0),
 786        GPIO_ENTRY('c', S5PC100_GPIO_C0, S5PC100_GPIO_D0, 0),
 787        GPIO_ENTRY('d', S5PC100_GPIO_D0, S5PC100_GPIO_E00, 0),
 788        GPIO_ENTRY('e', S5PC100_GPIO_E00, S5PC100_GPIO_F00, 0),
 789        GPIO_ENTRY('f', S5PC100_GPIO_F00, S5PC100_GPIO_G00, 0),
 790        GPIO_ENTRY('g', S5PC100_GPIO_G00, S5PC100_GPIO_I0, 0),
 791        GPIO_ENTRY('i', S5PC100_GPIO_I0, S5PC100_GPIO_J00, 0),
 792        GPIO_ENTRY('j', S5PC100_GPIO_J00, S5PC100_GPIO_K00, 0),
 793        GPIO_ENTRY('k', S5PC100_GPIO_K00, S5PC100_GPIO_L00, 0),
 794        GPIO_ENTRY('l', S5PC100_GPIO_L00, S5PC100_GPIO_H00, 0),
 795        GPIO_ENTRY('h', S5PC100_GPIO_H00, S5PC100_GPIO_MAX_PORT, 0),
 796        { 0 }
 797};
 798
 799static const struct gpio_name_num_table s5pc110_gpio_table[] = {
 800        GPIO_ENTRY('a', S5PC110_GPIO_A00, S5PC110_GPIO_B0, 0),
 801        GPIO_ENTRY('b', S5PC110_GPIO_B0, S5PC110_GPIO_C00, 0),
 802        GPIO_ENTRY('c', S5PC110_GPIO_C00, S5PC110_GPIO_D00, 0),
 803        GPIO_ENTRY('d', S5PC110_GPIO_D00, S5PC110_GPIO_E00, 0),
 804        GPIO_ENTRY('e', S5PC110_GPIO_E00, S5PC110_GPIO_F00, 0),
 805        GPIO_ENTRY('f', S5PC110_GPIO_F00, S5PC110_GPIO_G00, 0),
 806        GPIO_ENTRY('g', S5PC110_GPIO_G00, S5PC110_GPIO_I0, 0),
 807        GPIO_ENTRY('i', S5PC110_GPIO_I0, S5PC110_GPIO_J00, 0),
 808        GPIO_ENTRY('j', S5PC110_GPIO_J00, S5PC110_GPIO_MP010, 0),
 809        GPIO_ENTRY('h', S5PC110_GPIO_H00, S5PC110_GPIO_MAX_PORT, 0),
 810        { 0 }
 811};
 812
 813/* functions */
 814void gpio_cfg_pin(int gpio, int cfg);
 815void gpio_set_pull(int gpio, int mode);
 816void gpio_set_drv(int gpio, int mode);
 817void gpio_set_rate(int gpio, int mode);
 818int s5p_gpio_get_pin(unsigned gpio);
 819
 820/* GPIO pins per bank  */
 821#define GPIO_PER_BANK 8
 822#endif
 823
 824/* Pin configurations */
 825#define S5P_GPIO_INPUT  0x0
 826#define S5P_GPIO_OUTPUT 0x1
 827#define S5P_GPIO_IRQ    0xf
 828#define S5P_GPIO_FUNC(x)        (x)
 829
 830/* Pull mode */
 831#define S5P_GPIO_PULL_NONE      0x0
 832#define S5P_GPIO_PULL_DOWN      0x1
 833#define S5P_GPIO_PULL_UP        0x2
 834
 835/* Drive Strength level */
 836#define S5P_GPIO_DRV_1X 0x0
 837#define S5P_GPIO_DRV_3X 0x1
 838#define S5P_GPIO_DRV_2X 0x2
 839#define S5P_GPIO_DRV_4X 0x3
 840#define S5P_GPIO_DRV_FAST       0x0
 841#define S5P_GPIO_DRV_SLOW       0x1
 842
 843#endif
 844