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