1# 2# GPIO infrastructure and drivers 3# 4 5config ARCH_HAVE_CUSTOM_GPIO_H 6 bool 7 help 8 Selecting this config option from the architecture Kconfig allows 9 the architecture to provide a custom asm/gpio.h implementation 10 overriding the default implementations. New uses of this are 11 strongly discouraged. 12 13config ARCH_WANT_OPTIONAL_GPIOLIB 14 bool 15 help 16 Select this config option from the architecture Kconfig, if 17 it is possible to use gpiolib on the architecture, but let the 18 user decide whether to actually build it or not. 19 Select this instead of ARCH_REQUIRE_GPIOLIB, if your architecture does 20 not depend on GPIOs being available, but rather let the user 21 decide whether he needs it or not. 22 23config ARCH_REQUIRE_GPIOLIB 24 bool 25 select GPIOLIB 26 help 27 Platforms select gpiolib if they use this infrastructure 28 for all their GPIOs, usually starting with ones integrated 29 into SOC processors. 30 Selecting this from the architecture code will cause the gpiolib 31 code to always get built in. 32 33 34menuconfig GPIOLIB 35 bool "GPIO Support" 36 help 37 This enables GPIO support through the generic GPIO library. 38 You only need to enable this, if you also want to enable 39 one or more of the GPIO drivers below. 40 41 If unsure, say N. 42 43if GPIOLIB 44 45config GPIO_DEVRES 46 def_bool y 47 depends on HAS_IOMEM 48 49config OF_GPIO 50 def_bool y 51 depends on OF || COMPILE_TEST 52 53config GPIO_ACPI 54 def_bool y 55 depends on ACPI 56 57config GPIOLIB_IRQCHIP 58 select IRQ_DOMAIN 59 bool 60 61config DEBUG_GPIO 62 bool "Debug GPIO calls" 63 depends on DEBUG_KERNEL 64 help 65 Say Y here to add some extra checks and diagnostics to GPIO calls. 66 These checks help ensure that GPIOs have been properly initialized 67 before they are used, and that sleeping calls are not made from 68 non-sleeping contexts. They can make bitbanged serial protocols 69 slower. The diagnostics help catch the type of setup errors 70 that are most common when setting up new platforms or boards. 71 72config GPIO_SYSFS 73 bool "/sys/class/gpio/... (sysfs interface)" 74 depends on SYSFS 75 help 76 Say Y here to add a sysfs interface for GPIOs. 77 78 This is mostly useful to work around omissions in a system's 79 kernel support. Those are common in custom and semicustom 80 hardware assembled using standard kernels with a minimum of 81 custom patches. In those cases, userspace code may import 82 a given GPIO from the kernel, if no kernel driver requested it. 83 84 Kernel drivers may also request that a particular GPIO be 85 exported to userspace; this can be useful when debugging. 86 87config GPIO_GENERIC 88 tristate 89 90# put drivers in the right section, in alphabetical order 91 92# This symbol is selected by both I2C and SPI expanders 93config GPIO_MAX730X 94 tristate 95 96menu "Memory mapped GPIO drivers" 97 98config GPIO_74XX_MMIO 99 tristate "GPIO driver for 74xx-ICs with MMIO access" 100 depends on OF_GPIO 101 select GPIO_GENERIC 102 help 103 Say yes here to support GPIO functionality for 74xx-compatible ICs 104 with MMIO access. Compatible models include: 105 1 bit: 741G125 (Input), 741G74 (Output) 106 2 bits: 742G125 (Input), 7474 (Output) 107 4 bits: 74125 (Input), 74175 (Output) 108 6 bits: 74365 (Input), 74174 (Output) 109 8 bits: 74244 (Input), 74273 (Output) 110 16 bits: 741624 (Input), 7416374 (Output) 111 112config GPIO_ALTERA 113 tristate "Altera GPIO" 114 depends on OF_GPIO 115 select GPIOLIB_IRQCHIP 116 help 117 Say Y or M here to build support for the Altera PIO device. 118 119 If driver is built as a module it will be called gpio-altera. 120 121config GPIO_AMDPT 122 tristate "AMD Promontory GPIO support" 123 depends on ACPI 124 select GPIO_GENERIC 125 help 126 driver for GPIO functionality on Promontory IOHub 127 Require ACPI ASL code to enumerate as a platform device. 128 129config GPIO_ATH79 130 tristate "Atheros AR71XX/AR724X/AR913X GPIO support" 131 default y if ATH79 132 depends on ATH79 || COMPILE_TEST 133 select GPIO_GENERIC 134 select GPIOLIB_IRQCHIP 135 help 136 Select this option to enable GPIO driver for 137 Atheros AR71XX/AR724X/AR913X SoC devices. 138 139config GPIO_BCM_KONA 140 bool "Broadcom Kona GPIO" 141 depends on OF_GPIO && (ARCH_BCM_MOBILE || COMPILE_TEST) 142 help 143 Turn on GPIO support for Broadcom "Kona" chips. 144 145config GPIO_BRCMSTB 146 tristate "BRCMSTB GPIO support" 147 default y if (ARCH_BRCMSTB || BMIPS_GENERIC) 148 depends on OF_GPIO && (ARCH_BRCMSTB || BMIPS_GENERIC || COMPILE_TEST) 149 select GPIO_GENERIC 150 select GPIOLIB_IRQCHIP 151 help 152 Say yes here to enable GPIO support for Broadcom STB (BCM7XXX) SoCs. 153 154config GPIO_CLPS711X 155 tristate "CLPS711X GPIO support" 156 depends on ARCH_CLPS711X || COMPILE_TEST 157 select GPIO_GENERIC 158 help 159 Say yes here to support GPIO on CLPS711X SoCs. 160 161config GPIO_DAVINCI 162 bool "TI Davinci/Keystone GPIO support" 163 default y if ARCH_DAVINCI 164 depends on ARM && (ARCH_DAVINCI || ARCH_KEYSTONE) 165 help 166 Say yes here to enable GPIO support for TI Davinci/Keystone SoCs. 167 168config GPIO_DWAPB 169 tristate "Synopsys DesignWare APB GPIO driver" 170 select GPIO_GENERIC 171 select GENERIC_IRQ_CHIP 172 help 173 Say Y or M here to build support for the Synopsys DesignWare APB 174 GPIO block. 175 176config GPIO_EM 177 tristate "Emma Mobile GPIO" 178 depends on ARM && OF_GPIO 179 help 180 Say yes here to support GPIO on Renesas Emma Mobile SoCs. 181 182config GPIO_EP93XX 183 def_bool y 184 depends on ARCH_EP93XX 185 select GPIO_GENERIC 186 187config GPIO_ETRAXFS 188 bool "Axis ETRAX FS General I/O" 189 depends on CRIS || COMPILE_TEST 190 depends on OF 191 select GPIO_GENERIC 192 select GPIOLIB_IRQCHIP 193 help 194 Say yes here to support the GPIO controller on Axis ETRAX FS SoCs. 195 196config GPIO_GE_FPGA 197 bool "GE FPGA based GPIO" 198 depends on GE_FPGA 199 select GPIO_GENERIC 200 help 201 Support for common GPIO functionality provided on some GE Single Board 202 Computers. 203 204 This driver provides basic support (configure as input or output, read 205 and write pin state) for GPIO implemented in a number of GE single 206 board computers. 207 208config GPIO_GENERIC_PLATFORM 209 tristate "Generic memory-mapped GPIO controller support (MMIO platform device)" 210 select GPIO_GENERIC 211 help 212 Say yes here to support basic platform_device memory-mapped GPIO controllers. 213 214config GPIO_GRGPIO 215 tristate "Aeroflex Gaisler GRGPIO support" 216 depends on OF 217 select GPIO_GENERIC 218 select IRQ_DOMAIN 219 help 220 Select this to support Aeroflex Gaisler GRGPIO cores from the GRLIB 221 VHDL IP core library. 222 223config GPIO_ICH 224 tristate "Intel ICH GPIO" 225 depends on PCI && X86 226 select MFD_CORE 227 select LPC_ICH 228 help 229 Say yes here to support the GPIO functionality of a number of Intel 230 ICH-based chipsets. Currently supported devices: ICH6, ICH7, ICH8 231 ICH9, ICH10, Series 5/3400 (eg Ibex Peak), Series 6/C200 (eg 232 Cougar Point), NM10 (Tiger Point), and 3100 (Whitmore Lake). 233 234 If unsure, say N. 235 236config GPIO_IOP 237 tristate "Intel IOP GPIO" 238 depends on ARM && (ARCH_IOP32X || ARCH_IOP33X) 239 help 240 Say yes here to support the GPIO functionality of a number of Intel 241 IOP32X or IOP33X. 242 243 If unsure, say N. 244 245config GPIO_LOONGSON 246 bool "Loongson-2/3 GPIO support" 247 depends on CPU_LOONGSON2 || CPU_LOONGSON3 248 help 249 driver for GPIO functionality on Loongson-2F/3A/3B processors. 250 251config GPIO_LPC18XX 252 bool "NXP LPC18XX/43XX GPIO support" 253 default y if ARCH_LPC18XX 254 depends on OF_GPIO && (ARCH_LPC18XX || COMPILE_TEST) 255 help 256 Select this option to enable GPIO driver for 257 NXP LPC18XX/43XX devices. 258 259config GPIO_LYNXPOINT 260 tristate "Intel Lynxpoint GPIO support" 261 depends on ACPI && X86 262 select GPIOLIB_IRQCHIP 263 help 264 driver for GPIO functionality on Intel Lynxpoint PCH chipset 265 Requires ACPI device enumeration code to set up a platform device. 266 267config GPIO_MB86S7X 268 bool "GPIO support for Fujitsu MB86S7x Platforms" 269 depends on ARCH_MB86S7X || COMPILE_TEST 270 help 271 Say yes here to support the GPIO controller in Fujitsu MB86S70 SoCs. 272 273config GPIO_MENZ127 274 tristate "MEN 16Z127 GPIO support" 275 depends on MCB 276 select GPIO_GENERIC 277 help 278 Say yes here to support the MEN 16Z127 GPIO Controller 279 280config GPIO_MM_LANTIQ 281 bool "Lantiq Memory mapped GPIOs" 282 depends on LANTIQ && SOC_XWAY 283 help 284 This enables support for memory mapped GPIOs on the External Bus Unit 285 (EBU) found on Lantiq SoCs. The gpios are output only as they are 286 created by attaching a 16bit latch to the bus. 287 288config GPIO_MOXART 289 bool "MOXART GPIO support" 290 depends on ARCH_MOXART || COMPILE_TEST 291 select GPIO_GENERIC 292 help 293 Select this option to enable GPIO driver for 294 MOXA ART SoC devices. 295 296config GPIO_MPC5200 297 def_bool y 298 depends on PPC_MPC52xx 299 300config GPIO_MPC8XXX 301 bool "MPC512x/MPC8xxx/QorIQ GPIO support" 302 depends on PPC_MPC512x || PPC_MPC831x || PPC_MPC834x || PPC_MPC837x || \ 303 FSL_SOC_BOOKE || PPC_86xx || ARCH_LAYERSCAPE || ARM || \ 304 COMPILE_TEST 305 select GPIO_GENERIC 306 select IRQ_DOMAIN 307 help 308 Say Y here if you're going to use hardware that connects to the 309 MPC512x/831x/834x/837x/8572/8610/QorIQ GPIOs. 310 311config GPIO_MVEBU 312 def_bool y 313 depends on PLAT_ORION 314 depends on OF 315 select GENERIC_IRQ_CHIP 316 317config GPIO_MXC 318 def_bool y 319 depends on ARCH_MXC 320 select GPIO_GENERIC 321 select GENERIC_IRQ_CHIP 322 323config GPIO_MXS 324 def_bool y 325 depends on ARCH_MXS 326 select GPIO_GENERIC 327 select GENERIC_IRQ_CHIP 328 329config GPIO_OCTEON 330 tristate "Cavium OCTEON GPIO" 331 depends on GPIOLIB && CAVIUM_OCTEON_SOC 332 default y 333 help 334 Say yes here to support the on-chip GPIO lines on the OCTEON 335 family of SOCs. 336 337config GPIO_OMAP 338 tristate "TI OMAP GPIO support" if ARCH_OMAP2PLUS || COMPILE_TEST 339 default y if ARCH_OMAP 340 depends on ARM 341 select GENERIC_IRQ_CHIP 342 select GPIOLIB_IRQCHIP 343 help 344 Say yes here to enable GPIO support for TI OMAP SoCs. 345 346config GPIO_PL061 347 bool "PrimeCell PL061 GPIO support" 348 depends on ARM_AMBA 349 select IRQ_DOMAIN 350 select GPIOLIB_IRQCHIP 351 help 352 Say yes here to support the PrimeCell PL061 GPIO device 353 354config GPIO_PXA 355 bool "PXA GPIO support" 356 depends on ARCH_PXA || ARCH_MMP 357 help 358 Say yes here to support the PXA GPIO device 359 360config GPIO_RCAR 361 tristate "Renesas R-Car GPIO" 362 depends on ARCH_RENESAS || COMPILE_TEST 363 select GPIOLIB_IRQCHIP 364 help 365 Say yes here to support GPIO on Renesas R-Car SoCs. 366 367config GPIO_SPEAR_SPICS 368 bool "ST SPEAr13xx SPI Chip Select as GPIO support" 369 depends on PLAT_SPEAR 370 select GENERIC_IRQ_CHIP 371 help 372 Say yes here to support ST SPEAr SPI Chip Select as GPIO device 373 374config GPIO_STA2X11 375 bool "STA2x11/ConneXt GPIO support" 376 depends on MFD_STA2X11 377 select GENERIC_IRQ_CHIP 378 help 379 Say yes here to support the STA2x11/ConneXt GPIO device. 380 The GPIO module has 128 GPIO pins with alternate functions. 381 382config GPIO_STP_XWAY 383 bool "XWAY STP GPIOs" 384 depends on SOC_XWAY 385 help 386 This enables support for the Serial To Parallel (STP) unit found on 387 XWAY SoC. The STP allows the SoC to drive a shift registers cascade, 388 that can be up to 24 bit. This peripheral is aimed at driving leds. 389 Some of the gpios/leds can be auto updated by the soc with dsl and 390 phy status. 391 392config GPIO_SYSCON 393 tristate "GPIO based on SYSCON" 394 depends on MFD_SYSCON && OF 395 help 396 Say yes here to support GPIO functionality though SYSCON driver. 397 398config GPIO_TB10X 399 bool 400 select GENERIC_IRQ_CHIP 401 select OF_GPIO 402 403config GPIO_TEGRA 404 bool 405 default y 406 depends on ARCH_TEGRA || COMPILE_TEST 407 408config GPIO_TS4800 409 tristate "TS-4800 DIO blocks and compatibles" 410 depends on OF_GPIO 411 depends on SOC_IMX51 || COMPILE_TEST 412 select GPIO_GENERIC 413 help 414 This driver support TS-4800 FPGA GPIO controllers. 415 416config GPIO_TZ1090 417 bool "Toumaz Xenif TZ1090 GPIO support" 418 depends on SOC_TZ1090 419 select GENERIC_IRQ_CHIP 420 default y 421 help 422 Say yes here to support Toumaz Xenif TZ1090 GPIOs. 423 424config GPIO_TZ1090_PDC 425 bool "Toumaz Xenif TZ1090 PDC GPIO support" 426 depends on SOC_TZ1090 427 default y 428 help 429 Say yes here to support Toumaz Xenif TZ1090 PDC GPIOs. 430 431config GPIO_VF610 432 def_bool y 433 depends on ARCH_MXC && SOC_VF610 434 select GPIOLIB_IRQCHIP 435 help 436 Say yes here to support Vybrid vf610 GPIOs. 437 438config GPIO_VR41XX 439 tristate "NEC VR4100 series General-purpose I/O Uint support" 440 depends on CPU_VR41XX 441 help 442 Say yes here to support the NEC VR4100 series General-purpose I/O Uint 443 444config GPIO_VX855 445 tristate "VIA VX855/VX875 GPIO" 446 depends on PCI 447 select MFD_CORE 448 select MFD_VX855 449 help 450 Support access to the VX855/VX875 GPIO lines through the gpio library. 451 452 This driver provides common support for accessing the device, 453 additional drivers must be enabled in order to use the 454 functionality of the device. 455 456config GPIO_XGENE 457 bool "APM X-Gene GPIO controller support" 458 depends on ARM64 && OF_GPIO 459 help 460 This driver is to support the GPIO block within the APM X-Gene SoC 461 platform's generic flash controller. The GPIO pins are muxed with 462 the generic flash controller's address and data pins. Say yes 463 here to enable the GFC GPIO functionality. 464 465config GPIO_XGENE_SB 466 tristate "APM X-Gene GPIO standby controller support" 467 depends on ARCH_XGENE && OF_GPIO 468 select GPIO_GENERIC 469 select GPIOLIB_IRQCHIP 470 help 471 This driver supports the GPIO block within the APM X-Gene 472 Standby Domain. Say yes here to enable the GPIO functionality. 473 474config GPIO_XILINX 475 tristate "Xilinx GPIO support" 476 depends on OF_GPIO 477 help 478 Say yes here to support the Xilinx FPGA GPIO device 479 480config GPIO_XLP 481 tristate "Netlogic XLP GPIO support" 482 depends on OF_GPIO && (CPU_XLP || ARCH_VULCAN || COMPILE_TEST) 483 select GPIOLIB_IRQCHIP 484 help 485 This driver provides support for GPIO interface on Netlogic XLP MIPS64 486 SoCs. Currently supported XLP variants are XLP8XX, XLP3XX, XLP2XX, 487 XLP9XX and XLP5XX. 488 489 If unsure, say N. 490 491config GPIO_XTENSA 492 bool "Xtensa GPIO32 support" 493 depends on XTENSA 494 depends on HAVE_XTENSA_GPIO32 495 depends on !SMP 496 help 497 Say yes here to support the Xtensa internal GPIO32 IMPWIRE (input) 498 and EXPSTATE (output) ports 499 500config GPIO_ZEVIO 501 bool "LSI ZEVIO SoC memory mapped GPIOs" 502 depends on ARM && OF_GPIO 503 help 504 Say yes here to support the GPIO controller in LSI ZEVIO SoCs. 505 506config GPIO_ZYNQ 507 tristate "Xilinx Zynq GPIO support" 508 depends on ARCH_ZYNQ || ARCH_ZYNQMP 509 select GPIOLIB_IRQCHIP 510 help 511 Say yes here to support Xilinx Zynq GPIO controller. 512 513config GPIO_ZX 514 bool "ZTE ZX GPIO support" 515 select GPIOLIB_IRQCHIP 516 help 517 Say yes here to support the GPIO device on ZTE ZX SoCs. 518 519config GPIO_LOONGSON1 520 tristate "Loongson1 GPIO support" 521 depends on MACH_LOONGSON32 522 select GPIO_GENERIC 523 help 524 Say Y or M here to support GPIO on Loongson1 SoCs. 525 526endmenu 527 528menu "Port-mapped I/O GPIO drivers" 529 depends on X86 # Unconditional I/O space access 530 531config GPIO_104_DIO_48E 532 tristate "ACCES 104-DIO-48E GPIO support" 533 depends on ISA 534 select GPIOLIB_IRQCHIP 535 help 536 Enables GPIO support for the ACCES 104-DIO-48E series (104-DIO-48E, 537 104-DIO-24E). The base port addresses for the devices may be 538 configured via the base module parameter. The interrupt line numbers 539 for the devices may be configured via the irq module parameter. 540 541config GPIO_104_IDIO_16 542 tristate "ACCES 104-IDIO-16 GPIO support" 543 depends on ISA 544 select GPIOLIB_IRQCHIP 545 help 546 Enables GPIO support for the ACCES 104-IDIO-16 family (104-IDIO-16, 547 104-IDIO-16E, 104-IDO-16, 104-IDIO-8, 104-IDIO-8E, 104-IDO-8). The 548 base port addresses for the devices may be configured via the base 549 module parameter. The interrupt line numbers for the devices may be 550 configured via the irq module parameter. 551 552config GPIO_104_IDI_48 553 tristate "ACCES 104-IDI-48 GPIO support" 554 depends on ISA 555 select GPIOLIB_IRQCHIP 556 help 557 Enables GPIO support for the ACCES 104-IDI-48 family (104-IDI-48A, 558 104-IDI-48AC, 104-IDI-48B, 104-IDI-48BC). The base port addresses for 559 the devices may be configured via the base module parameter. The 560 interrupt line numbers for the devices may be configured via the irq 561 module parameter. 562 563config GPIO_F7188X 564 tristate "F71869, F71869A, F71882FG, F71889F and F81866 GPIO support" 565 help 566 This option enables support for GPIOs found on Fintek Super-I/O 567 chips F71869, F71869A, F71882FG, F71889F and F81866. 568 569 To compile this driver as a module, choose M here: the module will 570 be called f7188x-gpio. 571 572config GPIO_IT87 573 tristate "IT87xx GPIO support" 574 help 575 Say yes here to support GPIO functionality of IT87xx Super I/O chips. 576 577 This driver is tested with ITE IT8728 and IT8732 Super I/O chips, and 578 supports the IT8761E, IT8620E and IT8628E Super I/O chip as well. 579 580 To compile this driver as a module, choose M here: the module will 581 be called gpio_it87 582 583config GPIO_SCH 584 tristate "Intel SCH/TunnelCreek/Centerton/Quark X1000 GPIO" 585 depends on PCI 586 select MFD_CORE 587 select LPC_SCH 588 help 589 Say yes here to support GPIO interface on Intel Poulsbo SCH, 590 Intel Tunnel Creek processor, Intel Centerton processor or 591 Intel Quark X1000 SoC. 592 593 The Intel SCH contains a total of 14 GPIO pins. Ten GPIOs are 594 powered by the core power rail and are turned off during sleep 595 modes (S3 and higher). The remaining four GPIOs are powered by 596 the Intel SCH suspend power supply. These GPIOs remain 597 active during S3. The suspend powered GPIOs can be used to wake the 598 system from the Suspend-to-RAM state. 599 600 The Intel Tunnel Creek processor has 5 GPIOs powered by the 601 core power rail and 9 from suspend power supply. 602 603 The Intel Centerton processor has a total of 30 GPIO pins. 604 Twenty-one are powered by the core power rail and 9 from the 605 suspend power supply. 606 607 The Intel Quark X1000 SoC has 2 GPIOs powered by the core 608 power well and 6 from the suspend power well. 609 610config GPIO_SCH311X 611 tristate "SMSC SCH311x SuperI/O GPIO" 612 help 613 Driver to enable the GPIOs found on SMSC SMSC SCH3112, SCH3114 and 614 SCH3116 "Super I/O" chipsets. 615 616 To compile this driver as a module, choose M here: the module will 617 be called gpio-sch311x. 618 619config GPIO_TS5500 620 tristate "TS-5500 DIO blocks and compatibles" 621 depends on TS5500 || COMPILE_TEST 622 help 623 This driver supports Digital I/O exposed by pin blocks found on some 624 Technologic Systems platforms. It includes, but is not limited to, 3 625 blocks of the TS-5500: DIO1, DIO2 and the LCD port, and the TS-5600 626 LCD port. 627 628config GPIO_WS16C48 629 tristate "WinSystems WS16C48 GPIO support" 630 depends on ISA 631 select GPIOLIB_IRQCHIP 632 help 633 Enables GPIO support for the WinSystems WS16C48. The base port 634 addresses for the devices may be configured via the base module 635 parameter. The interrupt line numbers for the devices may be 636 configured via the irq module parameter. 637 638endmenu 639 640menu "I2C GPIO expanders" 641 depends on I2C 642 643config GPIO_ADP5588 644 tristate "ADP5588 I2C GPIO expander" 645 help 646 This option enables support for 18 GPIOs found 647 on Analog Devices ADP5588 GPIO Expanders. 648 649config GPIO_ADP5588_IRQ 650 bool "Interrupt controller support for ADP5588" 651 depends on GPIO_ADP5588=y 652 help 653 Say yes here to enable the adp5588 to be used as an interrupt 654 controller. It requires the driver to be built in the kernel. 655 656config GPIO_ADNP 657 tristate "Avionic Design N-bit GPIO expander" 658 depends on OF_GPIO 659 select GPIOLIB_IRQCHIP 660 help 661 This option enables support for N GPIOs found on Avionic Design 662 I2C GPIO expanders. The register space will be extended by powers 663 of two, so the controller will need to accommodate for that. For 664 example: if a controller provides 48 pins, 6 registers will be 665 enough to represent all pins, but the driver will assume a 666 register layout for 64 pins (8 registers). 667 668config GPIO_MAX7300 669 tristate "Maxim MAX7300 GPIO expander" 670 select GPIO_MAX730X 671 help 672 GPIO driver for Maxim MAX7300 I2C-based GPIO expander. 673 674config GPIO_MAX732X 675 tristate "MAX7319, MAX7320-7327 I2C Port Expanders" 676 help 677 Say yes here to support the MAX7319, MAX7320-7327 series of I2C 678 Port Expanders. Each IO port on these chips has a fixed role of 679 Input (designated by 'I'), Push-Pull Output ('O'), or Open-Drain 680 Input and Output (designed by 'P'). The combinations are listed 681 below: 682 683 8 bits: max7319 (8I), max7320 (8O), max7321 (8P), 684 max7322 (4I4O), max7323 (4P4O) 685 686 16 bits: max7324 (8I8O), max7325 (8P8O), 687 max7326 (4I12O), max7327 (4P12O) 688 689 Board setup code must specify the model to use, and the start 690 number for these GPIOs. 691 692config GPIO_MAX732X_IRQ 693 bool "Interrupt controller support for MAX732x" 694 depends on GPIO_MAX732X=y 695 select GPIOLIB_IRQCHIP 696 help 697 Say yes here to enable the max732x to be used as an interrupt 698 controller. It requires the driver to be built in the kernel. 699 700config GPIO_MC9S08DZ60 701 bool "MX35 3DS BOARD MC9S08DZ60 GPIO functions" 702 depends on I2C=y && MACH_MX35_3DS 703 help 704 Select this to enable the MC9S08DZ60 GPIO driver 705 706config GPIO_PCA953X 707 tristate "PCA95[357]x, PCA9698, TCA64xx, and MAX7310 I/O ports" 708 help 709 Say yes here to provide access to several register-oriented 710 SMBus I/O expanders, made mostly by NXP or TI. Compatible 711 models include: 712 713 4 bits: pca9536, pca9537 714 715 8 bits: max7310, max7315, pca6107, pca9534, pca9538, pca9554, 716 pca9556, pca9557, pca9574, tca6408, xra1202 717 718 16 bits: max7312, max7313, pca9535, pca9539, pca9555, pca9575, 719 tca6416 720 721 24 bits: tca6424 722 723 40 bits: pca9505, pca9698 724 725config GPIO_PCA953X_IRQ 726 bool "Interrupt controller support for PCA953x" 727 depends on GPIO_PCA953X=y 728 select GPIOLIB_IRQCHIP 729 help 730 Say yes here to enable the pca953x to be used as an interrupt 731 controller. It requires the driver to be built in the kernel. 732 733config GPIO_PCF857X 734 tristate "PCF857x, PCA{85,96}7x, and MAX732[89] I2C GPIO expanders" 735 select GPIOLIB_IRQCHIP 736 select IRQ_DOMAIN 737 help 738 Say yes here to provide access to most "quasi-bidirectional" I2C 739 GPIO expanders used for additional digital outputs or inputs. 740 Most of these parts are from NXP, though TI is a second source for 741 some of them. Compatible models include: 742 743 8 bits: pcf8574, pcf8574a, pca8574, pca8574a, 744 pca9670, pca9672, pca9674, pca9674a, 745 max7328, max7329 746 747 16 bits: pcf8575, pcf8575c, pca8575, 748 pca9671, pca9673, pca9675 749 750 Your board setup code will need to declare the expanders in 751 use, and assign numbers to the GPIOs they expose. Those GPIOs 752 can then be used from drivers and other kernel code, just like 753 other GPIOs, but only accessible from task contexts. 754 755 This driver provides an in-kernel interface to those GPIOs using 756 platform-neutral GPIO calls. 757 758config GPIO_SX150X 759 bool "Semtech SX150x I2C GPIO expander" 760 depends on I2C=y 761 select GPIOLIB_IRQCHIP 762 default n 763 help 764 Say yes here to provide support for Semtech SX150-series I2C 765 GPIO expanders. Compatible models include: 766 767 8 bits: sx1508q 768 16 bits: sx1509q 769 770config GPIO_TPIC2810 771 tristate "TPIC2810 8-Bit I2C GPO expander" 772 help 773 Say yes here to enable the GPO driver for the TI TPIC2810 chip. 774 775 To compile this driver as a module, choose M here: the module will 776 be called gpio-tpic2810. 777 778endmenu 779 780menu "MFD GPIO expanders" 781 782config GPIO_ADP5520 783 tristate "GPIO Support for ADP5520 PMIC" 784 depends on PMIC_ADP5520 785 help 786 This option enables support for on-chip GPIO found 787 on Analog Devices ADP5520 PMICs. 788 789config GPIO_ARIZONA 790 tristate "Wolfson Microelectronics Arizona class devices" 791 depends on MFD_ARIZONA 792 help 793 Support for GPIOs on Wolfson Arizona class devices. 794 795config GPIO_CRYSTAL_COVE 796 tristate "GPIO support for Crystal Cove PMIC" 797 depends on INTEL_SOC_PMIC 798 select GPIOLIB_IRQCHIP 799 help 800 Support for GPIO pins on Crystal Cove PMIC. 801 802 Say Yes if you have a Intel SoC based tablet with Crystal Cove PMIC 803 inside. 804 805 This driver can also be built as a module. If so, the module will be 806 called gpio-crystalcove. 807 808config GPIO_CS5535 809 tristate "AMD CS5535/CS5536 GPIO support" 810 depends on MFD_CS5535 811 help 812 The AMD CS5535 and CS5536 southbridges support 28 GPIO pins that 813 can be used for quite a number of things. The CS5535/6 is found on 814 AMD Geode and Lemote Yeeloong devices. 815 816 If unsure, say N. 817 818config GPIO_DA9052 819 tristate "Dialog DA9052 GPIO" 820 depends on PMIC_DA9052 821 help 822 Say yes here to enable the GPIO driver for the DA9052 chip. 823 824config GPIO_DA9055 825 tristate "Dialog Semiconductor DA9055 GPIO" 826 depends on MFD_DA9055 827 help 828 Say yes here to enable the GPIO driver for the DA9055 chip. 829 830 The Dialog DA9055 PMIC chip has 3 GPIO pins that can be 831 be controller by this driver. 832 833 If driver is built as a module it will be called gpio-da9055. 834 835config GPIO_DLN2 836 tristate "Diolan DLN2 GPIO support" 837 depends on MFD_DLN2 838 select GPIOLIB_IRQCHIP 839 840 help 841 Select this option to enable GPIO driver for the Diolan DLN2 842 board. 843 844 This driver can also be built as a module. If so, the module 845 will be called gpio-dln2. 846 847config GPIO_JANZ_TTL 848 tristate "Janz VMOD-TTL Digital IO Module" 849 depends on MFD_JANZ_CMODIO 850 help 851 This enables support for the Janz VMOD-TTL Digital IO module. 852 This driver provides support for driving the pins in output 853 mode only. Input mode is not supported. 854 855config GPIO_KEMPLD 856 tristate "Kontron ETX / COMexpress GPIO" 857 depends on MFD_KEMPLD 858 help 859 This enables support for the PLD GPIO interface on some Kontron ETX 860 and COMexpress (ETXexpress) modules. 861 862 This driver can also be built as a module. If so, the module will be 863 called gpio-kempld. 864 865config GPIO_LP3943 866 tristate "TI/National Semiconductor LP3943 GPIO expander" 867 depends on MFD_LP3943 868 help 869 GPIO driver for LP3943 MFD. 870 LP3943 can be used as a GPIO expander which provides up to 16 GPIOs. 871 Open drain outputs are required for this usage. 872 873config GPIO_MSIC 874 bool "Intel MSIC mixed signal gpio support" 875 depends on MFD_INTEL_MSIC 876 help 877 Enable support for GPIO on intel MSIC controllers found in 878 intel MID devices 879 880config GPIO_PALMAS 881 bool "TI PALMAS series PMICs GPIO" 882 depends on MFD_PALMAS 883 help 884 Select this option to enable GPIO driver for the TI PALMAS 885 series chip family. 886 887config GPIO_RC5T583 888 bool "RICOH RC5T583 GPIO" 889 depends on MFD_RC5T583 890 help 891 Select this option to enable GPIO driver for the Ricoh RC5T583 892 chip family. 893 This driver provides the support for driving/reading the gpio pins 894 of RC5T583 device through standard gpio library. 895 896config GPIO_STMPE 897 bool "STMPE GPIOs" 898 depends on MFD_STMPE 899 depends on OF_GPIO 900 select GPIOLIB_IRQCHIP 901 help 902 This enables support for the GPIOs found on the STMPE I/O 903 Expanders. 904 905config GPIO_TC3589X 906 bool "TC3589X GPIOs" 907 depends on MFD_TC3589X 908 depends on OF_GPIO 909 select GPIOLIB_IRQCHIP 910 help 911 This enables support for the GPIOs found on the TC3589X 912 I/O Expander. 913 914config GPIO_TIMBERDALE 915 bool "Support for timberdale GPIO IP" 916 depends on MFD_TIMBERDALE 917 ---help--- 918 Add support for the GPIO IP in the timberdale FPGA. 919 920config GPIO_TPS65086 921 tristate "TI TPS65086 GPO" 922 depends on MFD_TPS65086 923 help 924 This driver supports the GPO on TI TPS65086x PMICs. 925 926config GPIO_TPS65218 927 tristate "TPS65218 GPIO" 928 depends on MFD_TPS65218 929 help 930 Select this option to enable GPIO driver for the TPS65218 931 chip family. 932 933config GPIO_TPS6586X 934 bool "TPS6586X GPIO" 935 depends on MFD_TPS6586X 936 help 937 Select this option to enable GPIO driver for the TPS6586X 938 chip family. 939 940config GPIO_TPS65910 941 bool "TPS65910 GPIO" 942 depends on MFD_TPS65910 943 help 944 Select this option to enable GPIO driver for the TPS65910 945 chip family. 946 947config GPIO_TPS65912 948 tristate "TI TPS65912 GPIO" 949 depends on MFD_TPS65912 950 help 951 This driver supports TPS65912 gpio chip 952 953config GPIO_TWL4030 954 tristate "TWL4030, TWL5030, and TPS659x0 GPIOs" 955 depends on TWL4030_CORE 956 help 957 Say yes here to access the GPIO signals of various multi-function 958 power management chips from Texas Instruments. 959 960config GPIO_TWL6040 961 tristate "TWL6040 GPO" 962 depends on TWL6040_CORE 963 help 964 Say yes here to access the GPO signals of twl6040 965 audio chip from Texas Instruments. 966 967config GPIO_UCB1400 968 tristate "Philips UCB1400 GPIO" 969 depends on UCB1400_CORE 970 help 971 This enables support for the Philips UCB1400 GPIO pins. 972 The UCB1400 is an AC97 audio codec. 973 974config GPIO_WM831X 975 tristate "WM831x GPIOs" 976 depends on MFD_WM831X 977 help 978 Say yes here to access the GPIO signals of WM831x power management 979 chips from Wolfson Microelectronics. 980 981config GPIO_WM8350 982 tristate "WM8350 GPIOs" 983 depends on MFD_WM8350 984 help 985 Say yes here to access the GPIO signals of WM8350 power management 986 chips from Wolfson Microelectronics. 987 988config GPIO_WM8994 989 tristate "WM8994 GPIOs" 990 depends on MFD_WM8994 991 help 992 Say yes here to access the GPIO signals of WM8994 audio hub 993 CODECs from Wolfson Microelectronics. 994 995endmenu 996 997menu "PCI GPIO expanders" 998 depends on PCI 999 1000config GPIO_AMD8111 1001 tristate "AMD 8111 GPIO driver" 1002 help 1003 The AMD 8111 south bridge contains 32 GPIO pins which can be used. 1004 1005 Note, that usually system firmware/ACPI handles GPIO pins on their 1006 own and users might easily break their systems with uncarefull usage 1007 of this driver! 1008 1009 If unsure, say N 1010 1011config GPIO_BT8XX 1012 tristate "BT8XX GPIO abuser" 1013 depends on VIDEO_BT848=n 1014 help 1015 The BT8xx frame grabber chip has 24 GPIO pins that can be abused 1016 as a cheap PCI GPIO card. 1017 1018 This chip can be found on Miro, Hauppauge and STB TV-cards. 1019 1020 The card needs to be physically altered for using it as a 1021 GPIO card. For more information on how to build a GPIO card 1022 from a BT8xx TV card, see the documentation file at 1023 Documentation/bt8xxgpio.txt 1024 1025 If unsure, say N. 1026 1027config GPIO_INTEL_MID 1028 bool "Intel Mid GPIO support" 1029 depends on X86 1030 select GPIOLIB_IRQCHIP 1031 help 1032 Say Y here to support Intel Mid GPIO. 1033 1034config GPIO_ML_IOH 1035 tristate "OKI SEMICONDUCTOR ML7213 IOH GPIO support" 1036 select GENERIC_IRQ_CHIP 1037 help 1038 ML7213 is companion chip for Intel Atom E6xx series. 1039 This driver can be used for OKI SEMICONDUCTOR ML7213 IOH(Input/Output 1040 Hub) which is for IVI(In-Vehicle Infotainment) use. 1041 This driver can access the IOH's GPIO device. 1042 1043config GPIO_PCH 1044 tristate "Intel EG20T PCH/LAPIS Semiconductor IOH(ML7223/ML7831) GPIO" 1045 depends on X86_32 || MIPS || COMPILE_TEST 1046 select GENERIC_IRQ_CHIP 1047 help 1048 This driver is for PCH(Platform controller Hub) GPIO of Intel Topcliff 1049 which is an IOH(Input/Output Hub) for x86 embedded processor. 1050 This driver can access PCH GPIO device. 1051 1052 This driver also can be used for LAPIS Semiconductor IOH(Input/ 1053 Output Hub), ML7223 and ML7831. 1054 ML7223 IOH is for MP(Media Phone) use. 1055 ML7831 IOH is for general purpose use. 1056 ML7223/ML7831 is companion chip for Intel Atom E6xx series. 1057 ML7223/ML7831 is completely compatible for Intel EG20T PCH. 1058 1059config GPIO_RDC321X 1060 tristate "RDC R-321x GPIO support" 1061 select MFD_CORE 1062 select MFD_RDC321X 1063 help 1064 Support for the RDC R321x SoC GPIOs over southbridge 1065 PCI configuration space. 1066 1067config GPIO_SODAVILLE 1068 bool "Intel Sodaville GPIO support" 1069 depends on X86 && OF 1070 select GPIO_GENERIC 1071 select GENERIC_IRQ_CHIP 1072 help 1073 Say Y here to support Intel Sodaville GPIO. 1074 1075endmenu 1076 1077menu "SPI GPIO expanders" 1078 depends on SPI_MASTER 1079 1080config GPIO_74X164 1081 tristate "74x164 serial-in/parallel-out 8-bits shift register" 1082 depends on OF 1083 help 1084 Driver for 74x164 compatible serial-in/parallel-out 8-outputs 1085 shift registers. This driver can be used to provide access 1086 to more gpio outputs. 1087 1088config GPIO_MAX7301 1089 tristate "Maxim MAX7301 GPIO expander" 1090 select GPIO_MAX730X 1091 help 1092 GPIO driver for Maxim MAX7301 SPI-based GPIO expander. 1093 1094config GPIO_MC33880 1095 tristate "Freescale MC33880 high-side/low-side switch" 1096 help 1097 SPI driver for Freescale MC33880 high-side/low-side switch. 1098 This provides GPIO interface supporting inputs and outputs. 1099 1100config GPIO_PISOSR 1101 tristate "Generic parallel-in/serial-out shift register" 1102 help 1103 GPIO driver for SPI compatible parallel-in/serial-out shift 1104 registers. These are input only devices. 1105 1106endmenu 1107 1108menu "SPI or I2C GPIO expanders" 1109 depends on (SPI_MASTER && !I2C) || I2C 1110 1111config GPIO_MCP23S08 1112 tristate "Microchip MCP23xxx I/O expander" 1113 select GPIOLIB_IRQCHIP 1114 help 1115 SPI/I2C driver for Microchip MCP23S08/MCP23S17/MCP23008/MCP23017 1116 I/O expanders. 1117 This provides a GPIO interface supporting inputs and outputs. 1118 The I2C versions of the chips can be used as interrupt-controller. 1119 1120endmenu 1121 1122menu "USB GPIO expanders" 1123 depends on USB 1124 1125config GPIO_VIPERBOARD 1126 tristate "Viperboard GPIO a & b support" 1127 depends on MFD_VIPERBOARD 1128 help 1129 Say yes here to access the GPIO signals of Nano River 1130 Technologies Viperboard. There are two GPIO chips on the 1131 board: gpioa and gpiob. 1132 See viperboard API specification and Nano 1133 River Tech's viperboard.h for detailed meaning 1134 of the module parameters. 1135 1136endmenu 1137 1138endif 1139