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