1# SPDX-License-Identifier: GPL-2.0-only 2# 3# GPIO infrastructure and drivers 4# 5 6config GPIOLIB_LEGACY 7 def_bool y 8 9config HAVE_SHARED_GPIOS 10 bool 11 12menuconfig GPIOLIB 13 bool "GPIO Support" 14 help 15 This enables GPIO support through the generic GPIO library. 16 You only need to enable this if you also want to enable 17 one or more of the GPIO drivers below. 18 19 If unsure, say N. 20 21if GPIOLIB 22 23config GPIOLIB_FASTPATH_LIMIT 24 int "Maximum number of GPIOs for fast path" 25 range 32 512 26 default 512 27 help 28 This adjusts the point at which certain APIs will switch from 29 using a stack allocated buffer to a dynamically allocated buffer. 30 31 You shouldn't need to change this unless you really need to 32 optimize either stack space or performance. Change this carefully 33 since setting an incorrect value could cause stack corruption. 34 35config OF_GPIO 36 def_bool y 37 depends on OF 38 depends on HAS_IOMEM 39 40config GPIO_ACPI 41 def_bool y 42 depends on ACPI 43 44config GPIOLIB_IRQCHIP 45 select IRQ_DOMAIN 46 bool 47 48config GPIO_SHARED 49 def_bool y 50 depends on HAVE_SHARED_GPIOS || COMPILE_TEST 51 select AUXILIARY_BUS 52 53config DEBUG_GPIO 54 bool "Debug GPIO calls" 55 depends on DEBUG_KERNEL 56 help 57 Say Y here to add some extra checks and diagnostics to GPIO calls. 58 These checks help ensure that GPIOs have been properly initialized 59 before they are used, and that sleeping calls are not made from 60 non-sleeping contexts. They can make bitbanged serial protocols 61 slower. The diagnostics help catch the type of setup errors 62 that are most common when setting up new platforms or boards. 63 64config GPIO_SYSFS 65 bool "/sys/class/gpio/... (sysfs interface)" if EXPERT 66 depends on SYSFS 67 select GPIO_CDEV # We need to encourage the new ABI 68 help 69 Say Y here to add the legacy sysfs interface for GPIOs. 70 71 This ABI is deprecated. If you want to use GPIO from userspace, 72 use the character device /dev/gpiochipN with the appropriate 73 ioctl() operations instead. 74 75config GPIO_SYSFS_LEGACY 76 bool "Enable legacy functionalities of the sysfs interface" 77 depends on GPIO_SYSFS 78 default y if GPIO_SYSFS 79 help 80 Say Y here if you want to enable the legacy, global GPIO 81 numberspace-based functionalities of the sysfs interface. 82 83config GPIO_CDEV 84 bool "Character device (/dev/gpiochipN) support" if EXPERT 85 default y 86 help 87 Say Y here to add the character device /dev/gpiochipN interface 88 for GPIOs. The character device allows userspace to control GPIOs 89 using ioctl() operations. 90 91 Only say N if you are sure that the GPIO character device is not 92 required. 93 94 If unsure, say Y. 95 96config GPIO_CDEV_V1 97 bool "Support GPIO ABI Version 1" 98 depends on GPIO_CDEV 99 help 100 Say Y here to support version 1 of the GPIO CDEV ABI. 101 102 This ABI version is deprecated. 103 Please use the latest ABI for new developments. 104 105config GPIO_GENERIC 106 depends on HAS_IOMEM # Only for IOMEM drivers 107 tristate 108 109config GPIO_REGMAP 110 select REGMAP 111 tristate 112 113config GPIO_SWNODE_UNDEFINED 114 bool 115 help 116 This adds a special place holder for software nodes to contain an 117 undefined GPIO reference, this is primarily used by SPI to allow a 118 list of GPIO chip selects to mark a certain chip select as being 119 controlled the SPI device's internal chip select mechanism and not 120 a GPIO. 121 122# put drivers in the right section, in alphabetical order 123 124# This symbol is selected by both I2C and SPI expanders 125config GPIO_MAX730X 126 tristate 127 128config GPIO_IDIO_16 129 tristate 130 select REGMAP_IRQ 131 select GPIOLIB_IRQCHIP 132 select GPIO_REGMAP 133 help 134 Enables support for the idio-16 library functions. The idio-16 library 135 provides functions to facilitate communication with devices within the 136 ACCES IDIO-16 family such as the 104-IDIO-16 and the PCI-IDIO-16. 137 138 If built as a module its name will be gpio-idio-16. 139 140menu "Memory mapped GPIO drivers" 141 depends on HAS_IOMEM 142 143config GPIO_74XX_MMIO 144 tristate "GPIO driver for 74xx-ICs with MMIO access" 145 depends on OF 146 select GPIO_GENERIC 147 help 148 Say yes here to support GPIO functionality for 74xx-compatible ICs 149 with MMIO access. Compatible models include: 150 1 bit: 741G125 (Input), 741G74 (Output) 151 2 bits: 742G125 (Input), 7474 (Output) 152 4 bits: 74125 (Input), 74175 (Output) 153 6 bits: 74365 (Input), 74174 (Output) 154 8 bits: 74244 (Input), 74273 (Output) 155 16 bits: 741624 (Input), 7416374 (Output) 156 157config GPIO_ALTERA 158 tristate "Altera GPIO" 159 select GPIOLIB_IRQCHIP 160 help 161 Say Y or M here to build support for the Altera PIO device. 162 163 If driver is built as a module it will be called gpio-altera. 164 165config GPIO_AMDPT 166 tristate "AMD Promontory GPIO support" 167 depends on ACPI 168 select GPIO_GENERIC 169 help 170 Driver for GPIO functionality on Promontory IOHub. 171 Requires ACPI ASL code to enumerate as a platform device. 172 173config GPIO_ASPEED 174 tristate "Aspeed GPIO support" 175 depends on ARCH_ASPEED || COMPILE_TEST 176 select GPIOLIB_IRQCHIP 177 help 178 Say Y here to support Aspeed AST2400 and AST2500 GPIO controllers. 179 180config GPIO_ASPEED_SGPIO 181 bool "Aspeed SGPIO support" 182 depends on ARCH_ASPEED || COMPILE_TEST 183 select GPIO_GENERIC 184 select GPIOLIB_IRQCHIP 185 help 186 Say Y here to support Aspeed AST2500 SGPIO functionality. 187 188config GPIO_ATH79 189 tristate "Atheros AR71XX/AR724X/AR913X GPIO support" 190 default y if ATH79 191 depends on ATH79 || COMPILE_TEST 192 select GPIO_GENERIC 193 select GPIOLIB_IRQCHIP 194 help 195 Select this option to enable GPIO driver for 196 Atheros AR71XX/AR724X/AR913X SoC devices. 197 198config GPIO_RASPBERRYPI_EXP 199 tristate "Raspberry Pi 3 GPIO Expander" 200 default RASPBERRYPI_FIRMWARE 201 # Make sure not 'y' when RASPBERRYPI_FIRMWARE is 'm'. This can only 202 # happen when COMPILE_TEST=y, hence the added !RASPBERRYPI_FIRMWARE. 203 depends on (ARCH_BCM2835 && RASPBERRYPI_FIRMWARE) || (COMPILE_TEST && !RASPBERRYPI_FIRMWARE) 204 help 205 Turn on GPIO support for the expander on Raspberry Pi 3 boards, using 206 the firmware mailbox to communicate with VideoCore on BCM283x chips. 207 208config GPIO_BCM_KONA 209 bool "Broadcom Kona GPIO" 210 depends on ARCH_BCM_MOBILE || COMPILE_TEST 211 select GPIOLIB_IRQCHIP 212 help 213 Turn on GPIO support for Broadcom "Kona" chips. 214 215config GPIO_BCM_XGS_IPROC 216 tristate "BRCM XGS iProc GPIO support" 217 depends on ARCH_BCM_IPROC || COMPILE_TEST 218 select GPIO_GENERIC 219 select GPIOLIB_IRQCHIP 220 default ARCH_BCM_IPROC 221 help 222 Say yes here to enable GPIO support for Broadcom XGS iProc SoCs. 223 224config GPIO_BLZP1600 225 tristate "Blaize BLZP1600 GPIO support" 226 default y if ARCH_BLAIZE 227 depends on ARCH_BLAIZE || COMPILE_TEST 228 select GPIO_GENERIC 229 select GPIOLIB_IRQCHIP 230 help 231 Say Y or M here to add support for the Blaize BLZP1600 GPIO device. 232 The controller is based on the Verisilicon Microelectronics GPIO APB v0.2 233 IP block. 234 235config GPIO_BRCMSTB 236 tristate "BRCMSTB GPIO support" 237 default y if (ARCH_BRCMSTB || BMIPS_GENERIC) 238 depends on ARCH_BRCMSTB || ARCH_BCM2835 || BMIPS_GENERIC || COMPILE_TEST 239 depends on OF 240 select GPIO_GENERIC 241 select IRQ_DOMAIN 242 help 243 Say yes here to enable GPIO support for Broadcom STB (BCM7XXX) SoCs. 244 245config GPIO_BY_PINCTRL 246 tristate "GPIO support based on a pure pin control backend" 247 depends on GPIOLIB 248 help 249 Support for generic GPIO handling based on top of pin control. 250 Traditionally, firmware creates a GPIO interface or a pin 251 controller interface and we have a driver to support it. But 252 in SCMI, the pin control interface is generic and we can 253 create a simple GPIO device based on the pin control interface 254 without doing anything custom. 255 256 This driver is used to access GPIOs over the ARM SCMI protocol. 257 258config GPIO_CADENCE 259 tristate "Cadence GPIO support" 260 depends on OF 261 select GPIO_GENERIC 262 select GPIOLIB_IRQCHIP 263 help 264 Say yes here to enable support for Cadence GPIO controller. 265 266config GPIO_CLPS711X 267 tristate "CLPS711X GPIO support" 268 depends on ARCH_CLPS711X || COMPILE_TEST 269 select GPIO_GENERIC 270 help 271 Say yes here to support GPIO on CLPS711X SoCs. 272 273config GPIO_DAVINCI 274 tristate "TI Davinci/Keystone GPIO support" 275 default y if ARCH_DAVINCI 276 depends on ((ARM || ARM64) && (ARCH_DAVINCI || ARCH_KEYSTONE || ARCH_K3)) || COMPILE_TEST 277 select GPIOLIB_IRQCHIP 278 help 279 Say yes here to enable GPIO support for TI Davinci/Keystone SoCs. 280 281config GPIO_DWAPB 282 tristate "Synopsys DesignWare APB GPIO driver" 283 select GPIO_GENERIC 284 select GPIOLIB_IRQCHIP 285 help 286 Say Y or M here to build support for the Synopsys DesignWare APB 287 GPIO block. 288 289config GPIO_EIC_SPRD 290 tristate "Spreadtrum EIC support" 291 depends on ARCH_SPRD || COMPILE_TEST 292 select GPIOLIB_IRQCHIP 293 help 294 Say yes here to support Spreadtrum EIC device. 295 296config GPIO_EM 297 tristate "Emma Mobile GPIO" 298 depends on ARCH_EMEV2 || COMPILE_TEST 299 help 300 Say yes here to support GPIO on Renesas Emma Mobile SoCs. 301 302config GPIO_EN7523 303 tristate "Airoha GPIO support" 304 depends on ARCH_AIROHA 305 default ARCH_AIROHA 306 select GPIO_GENERIC 307 select GPIOLIB_IRQCHIP 308 help 309 Say Y or M here to support the GPIO controller block on the 310 Airoha EN7523 SoC. It supports two banks of 32 GPIOs. 311 312config GPIO_EP93XX 313 def_bool y 314 depends on ARCH_EP93XX || COMPILE_TEST 315 select GPIO_GENERIC 316 select GPIOLIB_IRQCHIP 317 318config GPIO_EXAR 319 tristate "Support for GPIO pins on XR17V352/354/358" 320 depends on SERIAL_8250_EXAR 321 select REGMAP_MMIO 322 help 323 Selecting this option will enable handling of GPIO pins present 324 on Exar XR17V352/354/358 chips. 325 326config GPIO_GE_FPGA 327 bool "GE FPGA based GPIO" 328 depends on GE_FPGA || COMPILE_TEST 329 select GPIO_GENERIC 330 help 331 Support for common GPIO functionality provided on some GE Single Board 332 Computers. 333 334 This driver provides basic support (configure as input or output, read 335 and write pin state) for GPIO implemented in a number of GE single 336 board computers. 337 338config GPIO_FTGPIO010 339 bool "Faraday FTGPIO010 GPIO" 340 depends on OF 341 select GPIO_GENERIC 342 select GPIOLIB_IRQCHIP 343 default (ARCH_GEMINI || ARCH_MOXART) 344 help 345 Support for common GPIOs from the Faraday FTGPIO010 IP core, found in 346 Cortina systems Gemini platforms, Moxa ART and others. 347 348config GPIO_GENERIC_PLATFORM 349 tristate "Generic memory-mapped GPIO controller support (MMIO platform device)" 350 select GPIO_GENERIC 351 help 352 Say yes here to support basic platform_device memory-mapped GPIO controllers. 353 354config GPIO_GRANITERAPIDS 355 tristate "Intel Granite Rapids-D vGPIO support" 356 depends on X86 || COMPILE_TEST 357 select GPIOLIB_IRQCHIP 358 help 359 Select this to enable virtual GPIO support on platforms with the 360 following SoCs: 361 362 - Intel Granite Rapids-D 363 364 The driver enables basic GPIO functionality and implements interrupt 365 support. The virtual GPIO driver controls GPIO lines via a firmware 366 interface. The physical GPIO pins reside on device that is external 367 from the main SoC package, such as a BMC or a CPLD. 368 369 To compile this driver as a module, choose M here: the module will 370 be called gpio-graniterapids. 371 372config GPIO_GRGPIO 373 tristate "Aeroflex Gaisler GRGPIO support" 374 depends on OF || COMPILE_TEST 375 select GPIO_GENERIC 376 select GPIOLIB_IRQCHIP 377 help 378 Select this to support Aeroflex Gaisler GRGPIO cores from the GRLIB 379 VHDL IP core library. 380 381config GPIO_HISI 382 tristate "HiSilicon GPIO controller driver" 383 depends on ARM64 || COMPILE_TEST 384 select GPIO_GENERIC 385 select GPIOLIB_IRQCHIP 386 help 387 Say Y or M here to build support for the HiSilicon GPIO controller 388 driver GPIO block. 389 This GPIO controller supports double-edge interrupt and multi-core 390 concurrent access. 391 392config GPIO_HLWD 393 tristate "Nintendo Wii (Hollywood) GPIO" 394 depends on OF 395 select GPIO_GENERIC 396 select GPIOLIB_IRQCHIP 397 help 398 Select this to support the GPIO controller of the Nintendo Wii. 399 400 If unsure, say N. 401 402config GPIO_ICH 403 tristate "Intel ICH GPIO" 404 depends on (X86 && LPC_ICH) || (COMPILE_TEST && HAS_IOPORT) 405 help 406 Say yes here to support the GPIO functionality of a number of Intel 407 ICH-based chipsets. Currently supported devices: ICH6, ICH7, ICH8 408 ICH9, ICH10, Series 5/3400 (e.g. Ibex Peak), Series 6/C200 (e.g. 409 Cougar Point), NM10 (Tiger Point), and 3100 (Whitmore Lake). 410 411 If unsure, say N. 412 413config GPIO_IMX_SCU 414 def_bool y 415 depends on IMX_SCU 416 417config GPIO_IXP4XX 418 bool "Intel IXP4xx GPIO" 419 depends on (ARCH_IXP4XX && OF) || COMPILE_TEST 420 select GPIO_GENERIC 421 select GPIOLIB_IRQCHIP 422 select IRQ_DOMAIN_HIERARCHY 423 help 424 Say yes here to support the GPIO functionality of a number of Intel 425 IXP4xx series of chips. 426 427 If unsure, say N. 428 429config GPIO_LOGICVC 430 tristate "Xylon LogiCVC GPIO support" 431 depends on MFD_SYSCON && OF 432 help 433 Say yes here to support GPIO functionality of the Xylon LogiCVC 434 programmable logic block. 435 436config GPIO_LOONGSON 437 bool "Loongson-2/3 GPIO support" 438 depends on CPU_LOONGSON2EF || CPU_LOONGSON64 439 help 440 Driver for GPIO functionality on Loongson-2F/3A/3B processors. 441 442config GPIO_LOONGSON_64BIT 443 tristate "Loongson 64 bit GPIO support" 444 depends on LOONGARCH || COMPILE_TEST 445 select GPIO_GENERIC 446 select GPIOLIB_IRQCHIP 447 help 448 Say yes here to support the GPIO functionality of a number of 449 Loongson series of chips. The Loongson GPIO controller supports 450 up to 60 GPIOS in total, 4 of which are dedicated GPIO pins, and 451 the remaining 56 are reused with other functions, with edge or 452 level triggered interrupts. 453 454config GPIO_LPC18XX 455 tristate "NXP LPC18XX/43XX GPIO support" 456 default y if ARCH_LPC18XX 457 depends on ARCH_LPC18XX || COMPILE_TEST 458 select IRQ_DOMAIN_HIERARCHY 459 select GPIOLIB_IRQCHIP 460 help 461 Select this option to enable GPIO driver for 462 NXP LPC18XX/43XX devices. 463 464config GPIO_LPC32XX 465 tristate "NXP LPC32XX GPIO support" 466 depends on ARCH_LPC32XX || COMPILE_TEST 467 depends on OF 468 help 469 Select this option to enable GPIO driver for 470 NXP LPC32XX devices. 471 472config GPIO_MB86S7X 473 tristate "GPIO support for Fujitsu MB86S7x Platforms" 474 help 475 Say yes here to support the GPIO controller in Fujitsu MB86S70 SoCs. 476 477config GPIO_MENZ127 478 tristate "MEN 16Z127 GPIO support" 479 depends on MCB 480 select GPIO_GENERIC 481 help 482 Say yes here to support the MEN 16Z127 GPIO Controller. 483 484config GPIO_MM_LANTIQ 485 bool "Lantiq Memory mapped GPIOs" 486 depends on LANTIQ && SOC_XWAY 487 help 488 This enables support for memory mapped GPIOs on the External Bus Unit 489 (EBU) found on Lantiq SoCs. The GPIOs are output only as they are 490 created by attaching a 16-bit latch to the bus. 491 492config GPIO_MPC5200 493 def_bool y 494 depends on PPC_MPC52xx 495 496config GPIO_MPC8XXX 497 bool "MPC512x/MPC8xxx/QorIQ GPIO support" 498 depends on PPC_MPC512x || PPC_MPC831x || PPC_MPC834x || PPC_MPC837x || \ 499 FSL_SOC_BOOKE || PPC_86xx || ARCH_LAYERSCAPE || ARM || \ 500 COMPILE_TEST 501 select GPIO_GENERIC 502 select GPIOLIB_IRQCHIP 503 help 504 Say Y here if you're going to use hardware that connects to the 505 MPC512x/831x/834x/837x/8572/8610/QorIQ GPIOs. 506 507config GPIO_MT7621 508 bool "Mediatek MT7621 GPIO Support" 509 depends on SOC_MT7620 || SOC_MT7621 || COMPILE_TEST 510 depends on OF 511 select GPIO_GENERIC 512 select GPIOLIB_IRQCHIP 513 help 514 Say yes here to support the Mediatek MT7621 SoC GPIO device. 515 516config GPIO_MVEBU 517 bool "Marvell Orion and EBU GPIO support" if COMPILE_TEST 518 depends on PLAT_ORION || ARCH_MVEBU || COMPILE_TEST 519 default PLAT_ORION || ARCH_MVEBU 520 select GENERIC_IRQ_CHIP 521 select REGMAP_MMIO 522 523config GPIO_MXC 524 tristate "i.MX GPIO support" 525 depends on ARCH_MXC || COMPILE_TEST 526 select GPIO_GENERIC 527 select GENERIC_IRQ_CHIP 528 529config GPIO_MXS 530 bool "Freescale MXS GPIO support" if COMPILE_TEST 531 depends on ARCH_MXS || COMPILE_TEST 532 default y if ARCH_MXS 533 select GPIO_GENERIC 534 select GENERIC_IRQ_CHIP 535 536config GPIO_NOMADIK 537 bool "Nomadik GPIO driver" 538 depends on ARCH_U8500 || ARCH_NOMADIK || MACH_EYEQ5 || COMPILE_TEST 539 select GPIOLIB_IRQCHIP 540 help 541 Say yes here to support the Nomadik SoC GPIO block. This block is also 542 used by the Mobileye EyeQ5 SoC. 543 544 It handles up to 32 GPIOs per bank, that can all be interrupt sources. 545 It is deeply interconnected with the associated pinctrl driver as GPIO 546 registers handle muxing ("alternate functions") as well. 547 548config GPIO_NPCM_SGPIO 549 bool "Nuvoton SGPIO support" 550 depends on ARCH_NPCM || COMPILE_TEST 551 select GPIOLIB_IRQCHIP 552 help 553 Say Y here to support Nuvoton NPCM7XX/NPCM8XX SGPIO functionality. 554 555config GPIO_OCTEON 556 tristate "Cavium OCTEON GPIO" 557 depends on CAVIUM_OCTEON_SOC 558 default y 559 help 560 Say yes here to support the on-chip GPIO lines on the OCTEON 561 family of SOCs. 562 563config GPIO_OMAP 564 tristate "TI OMAP GPIO support" 565 depends on ARCH_OMAP || COMPILE_TEST 566 default y if ARCH_OMAP 567 select GENERIC_IRQ_CHIP 568 select GPIOLIB_IRQCHIP 569 help 570 Say yes here to enable GPIO support for TI OMAP SoCs. 571 572config GPIO_PL061 573 tristate "PrimeCell PL061 GPIO support" 574 depends on ARM_AMBA || COMPILE_TEST 575 select IRQ_DOMAIN 576 select GPIOLIB_IRQCHIP 577 help 578 Say yes here to support the PrimeCell PL061 GPIO device. 579 580config GPIO_POLARFIRE_SOC 581 bool "Microchip FPGA GPIO support" 582 select REGMAP_MMIO 583 select GPIOLIB_IRQCHIP 584 help 585 Say yes here to support the GPIO controllers on Microchip FPGAs. 586 587config GPIO_PXA 588 bool "PXA GPIO support" 589 depends on ARCH_PXA || ARCH_MMP || COMPILE_TEST 590 select GPIOLIB_IRQCHIP 591 help 592 Say yes here to support the PXA GPIO device. 593 594config GPIO_RCAR 595 tristate "Renesas R-Car and RZ/G GPIO support" 596 depends on ARCH_RENESAS || COMPILE_TEST 597 select GPIOLIB_IRQCHIP 598 help 599 Say yes here to support GPIO on Renesas R-Car or RZ/G SoCs. 600 601config GPIO_RDA 602 bool "RDA Micro GPIO controller support" 603 depends on ARCH_RDA || COMPILE_TEST 604 select GPIO_GENERIC 605 select GPIOLIB_IRQCHIP 606 help 607 Say Y here to support RDA Micro GPIO controller. 608 609config GPIO_REALTEK_OTTO 610 tristate "Realtek Otto GPIO support" 611 depends on MACH_REALTEK_RTL || COMPILE_TEST 612 default MACH_REALTEK_RTL 613 select GPIO_GENERIC 614 select GPIOLIB_IRQCHIP 615 help 616 The GPIO controller on the Otto MIPS platform supports up to two 617 banks of 32 GPIOs, with edge triggered interrupts. The 32 GPIOs 618 are grouped in four 8-bit wide ports. 619 620 When built as a module, the module will be called realtek_otto_gpio. 621 622config GPIO_REG 623 bool 624 help 625 A 32-bit single register GPIO fixed in/out implementation. This 626 can be used to represent any register as a set of GPIO signals. 627 628config GPIO_ROCKCHIP 629 tristate "Rockchip GPIO support" 630 depends on ARCH_ROCKCHIP || COMPILE_TEST 631 select GENERIC_IRQ_CHIP 632 select GPIOLIB_IRQCHIP 633 default ARCH_ROCKCHIP 634 help 635 Say yes here to support GPIO on Rockchip SoCs. 636 637config GPIO_RTD 638 tristate "Realtek DHC GPIO support" 639 depends on ARCH_REALTEK || COMPILE_TEST 640 default y 641 select GPIOLIB_IRQCHIP 642 help 643 This option enables support for GPIOs found on Realtek DHC(Digital 644 Home Center) SoCs family, including RTD1295, RTD1315E, RTD1319, 645 RTD1319D, RTD1395, RTD1619 and RTD1619B. 646 647 Say yes here to support GPIO functionality and GPIO interrupt on 648 Realtek DHC SoCs. 649 650config GPIO_SAMA5D2_PIOBU 651 tristate "SAMA5D2 PIOBU GPIO support" 652 depends on OF 653 depends on MFD_SYSCON 654 depends on ARCH_AT91 || COMPILE_TEST 655 select GPIO_SYSCON 656 help 657 Say yes here to use the PIOBU pins as GPIOs. 658 659 PIOBU pins on the SAMA5D2 can be used as GPIOs. 660 The difference from regular GPIOs is that they 661 maintain their value during backup/self-refresh. 662 663config GPIO_SIFIVE 664 tristate "SiFive GPIO support" 665 depends on OF 666 select IRQ_DOMAIN_HIERARCHY 667 select GPIO_GENERIC 668 select GPIOLIB_IRQCHIP 669 select REGMAP_MMIO 670 help 671 Say yes here to support the GPIO device on SiFive SoCs. 672 673config GPIO_SIOX 674 tristate "SIOX GPIO support" 675 depends on SIOX 676 select GPIOLIB_IRQCHIP 677 help 678 Say yes here to support SIOX I/O devices. These are units connected 679 via a SIOX bus and have a number of fixed-direction I/O lines. 680 681config GPIO_SNPS_CREG 682 bool "Synopsys GPIO via CREG (Control REGisters) driver" 683 depends on ARC || COMPILE_TEST 684 help 685 This driver supports GPIOs via CREG on various Synopsys SoCs. 686 This is a single-register MMIO GPIO driver for complex cases 687 where only several fields in register belong to GPIO lines and 688 each GPIO line owns a field with different length and on/off value. 689 690config GPIO_SPACEMIT_K1 691 tristate "SPACEMIT K1 GPIO support" 692 depends on ARCH_SPACEMIT || COMPILE_TEST 693 depends on OF 694 select GPIO_GENERIC 695 select GPIOLIB_IRQCHIP 696 help 697 Say yes here to support the SpacemiT's K1 GPIO device. 698 699config GPIO_SPEAR_SPICS 700 bool "ST SPEAr13xx SPI Chip Select as GPIO support" 701 depends on PLAT_SPEAR 702 select GENERIC_IRQ_CHIP 703 help 704 Say yes here to support ST SPEAr SPI Chip Select as GPIO device. 705 706config GPIO_SPRD 707 tristate "Spreadtrum GPIO support" 708 depends on ARCH_SPRD || COMPILE_TEST 709 select GPIOLIB_IRQCHIP 710 help 711 Say yes here to support Spreadtrum GPIO device. 712 713config GPIO_STP_XWAY 714 bool "XWAY STP GPIOs" 715 depends on SOC_XWAY || COMPILE_TEST 716 help 717 This enables support for the Serial To Parallel (STP) unit found on 718 XWAY SoC. The STP allows the SoC to drive a shift registers cascade, 719 that can be up to 24 bits. This peripheral is aimed at driving LEDs. 720 Some of the GPIOs/LEDs can be auto updated by the SoC with DSL and 721 phy status. 722 723config GPIO_SYSCON 724 tristate "GPIO based on SYSCON" 725 depends on MFD_SYSCON && OF 726 help 727 Say yes here to support GPIO functionality though SYSCON driver. 728 729config GPIO_TANGIER 730 tristate 731 select GPIOLIB_IRQCHIP 732 help 733 GPIO support for Intel Tangier and compatible platforms. 734 Currently supported: 735 - Elkhart Lake 736 - Merrifield 737 738 If built as a module its name will be gpio-tangier. 739 740config GPIO_TB10X 741 bool "Abilis Systems TB10x GPIO controller" 742 depends on ARC_PLAT_TB10X || COMPILE_TEST 743 select GPIO_GENERIC 744 select GENERIC_IRQ_CHIP 745 746config GPIO_TEGRA 747 tristate "NVIDIA Tegra GPIO support" 748 default ARCH_TEGRA 749 depends on ARCH_TEGRA || COMPILE_TEST 750 select GPIOLIB_IRQCHIP 751 select IRQ_DOMAIN_HIERARCHY 752 help 753 Say yes here to support GPIO pins on NVIDIA Tegra SoCs. 754 755config GPIO_TEGRA186 756 tristate "NVIDIA Tegra186 GPIO support" 757 default ARCH_TEGRA_186_SOC || ARCH_TEGRA_194_SOC || ARCH_TEGRA_234_SOC 758 depends on ARCH_TEGRA_186_SOC || ARCH_TEGRA_194_SOC || ARCH_TEGRA_234_SOC || COMPILE_TEST 759 depends on OF 760 select GPIOLIB_IRQCHIP 761 select IRQ_DOMAIN_HIERARCHY 762 help 763 Say yes here to support GPIO pins on NVIDIA Tegra186, 194 and 234 SoCs. 764 765config GPIO_TS4800 766 tristate "TS-4800 DIO blocks and compatibles" 767 depends on SOC_IMX51 || COMPILE_TEST 768 select GPIO_GENERIC 769 help 770 This driver support TS-4800 FPGA GPIO controllers. 771 772config GPIO_THUNDERX 773 tristate "Cavium ThunderX/OCTEON-TX GPIO" 774 depends on ARCH_THUNDER || (64BIT && COMPILE_TEST) 775 depends on PCI_MSI 776 select GPIOLIB_IRQCHIP 777 select IRQ_DOMAIN_HIERARCHY 778 select IRQ_FASTEOI_HIERARCHY_HANDLERS 779 help 780 Say yes here to support the on-chip GPIO lines on the ThunderX 781 and OCTEON-TX families of SoCs. 782 783config GPIO_UNIPHIER 784 tristate "UniPhier GPIO support" 785 depends on ARCH_UNIPHIER || COMPILE_TEST 786 select IRQ_DOMAIN_HIERARCHY 787 help 788 Say yes here to support UniPhier GPIOs. 789 790config GPIO_VF610 791 tristate "VF610 GPIO support" 792 default y if SOC_VF610 793 depends on ARCH_MXC || COMPILE_TEST 794 select GPIOLIB_IRQCHIP 795 select GPIO_GENERIC 796 help 797 Say yes here to support i.MX or Vybrid vf610 GPIOs. 798 799config GPIO_VISCONTI 800 tristate "Toshiba Visconti GPIO support" 801 depends on ARCH_VISCONTI || COMPILE_TEST 802 select GPIOLIB_IRQCHIP 803 select GPIO_GENERIC 804 select IRQ_DOMAIN_HIERARCHY 805 help 806 Say yes here to support GPIO on Tohisba Visconti. 807 808config GPIO_WCD934X 809 tristate "Qualcomm Technologies Inc WCD9340/WCD9341 GPIO controller driver" 810 depends on MFD_WCD934X 811 help 812 This driver is to support GPIO block found on the Qualcomm Technologies 813 Inc WCD9340/WCD9341 Audio Codec. 814 815config GPIO_XGENE 816 bool "APM X-Gene GPIO controller support" 817 depends on ARM64 818 help 819 This driver is to support the GPIO block within the APM X-Gene SoC 820 platform's generic flash controller. The GPIO pins are muxed with 821 the generic flash controller's address and data pins. Say yes 822 here to enable the GFC GPIO functionality. 823 824config GPIO_XGENE_SB 825 tristate "APM X-Gene GPIO standby controller support" 826 depends on (ARCH_XGENE || COMPILE_TEST) 827 select GPIO_GENERIC 828 select GPIOLIB_IRQCHIP 829 select IRQ_DOMAIN_HIERARCHY 830 help 831 This driver supports the GPIO block within the APM X-Gene 832 Standby Domain. Say yes here to enable the GPIO functionality. 833 834config GPIO_XILINX 835 tristate "Xilinx GPIO support" 836 select GPIOLIB_IRQCHIP 837 help 838 Say yes here to support the Xilinx FPGA GPIO device. 839 840config GPIO_XLP 841 tristate "Cavium ThunderX2 GPIO support" 842 depends on ARCH_THUNDER2 || COMPILE_TEST 843 select GPIOLIB_IRQCHIP 844 help 845 This driver provides support for GPIO interface on Cavium's ThunderX2 846 CN99XX SoCs (Originally from Netlogic XLP). 847 848 If unsure, say N. 849 850config GPIO_XTENSA 851 bool "Xtensa GPIO32 support" 852 depends on XTENSA 853 depends on HAVE_XTENSA_GPIO32 854 depends on !SMP 855 help 856 Say yes here to support the Xtensa internal GPIO32 IMPWIRE (input) 857 and EXPSTATE (output) ports. 858 859config GPIO_ZEVIO 860 bool "LSI ZEVIO SoC memory mapped GPIOs" 861 depends on ARM 862 help 863 Say yes here to support the GPIO controller in LSI ZEVIO SoCs. 864 865config GPIO_ZYNQ 866 tristate "Xilinx Zynq GPIO support" 867 depends on ARCH_ZYNQ || ARCH_ZYNQMP || COMPILE_TEST 868 select GPIOLIB_IRQCHIP 869 help 870 Say yes here to support Xilinx Zynq GPIO controller. 871 872config GPIO_ZYNQMP_MODEPIN 873 tristate "ZynqMP ps-mode pin GPIO configuration driver" 874 depends on ZYNQMP_FIRMWARE || COMPILE_TEST 875 default ZYNQMP_FIRMWARE 876 help 877 Say yes here to support the ZynqMP ps-mode pin GPIO configuration 878 driver. 879 880 This ps-mode pin GPIO driver is based on GPIO framework. PS_MODE 881 is 4-bits boot mode pins. It sets and gets the status of 882 the ps-mode pin. Every pin can be configured as input/output. 883 884config GPIO_LOONGSON1 885 tristate "Loongson1 GPIO support" 886 depends on MACH_LOONGSON32 || COMPILE_TEST 887 select GPIO_GENERIC 888 help 889 Say Y or M here to support GPIO on Loongson1 SoCs. 890 891config GPIO_AMD_FCH 892 tristate "GPIO support for AMD Fusion Controller Hub (G-series SOCs)" 893 help 894 This option enables driver for GPIO on AMD's Fusion Controller Hub, 895 as found on G-series SOCs (e.g. GX-412TC). 896 897 Note: This driver doesn't register itself automatically, as it 898 needs to be provided with platform-specific configuration. 899 (See e.g. CONFIG_PCENGINES_APU2.) 900 901config GPIO_MSC313 902 bool "MStar MSC313 GPIO support" 903 depends on ARCH_MSTARV7 || COMPILE_TEST 904 default ARCH_MSTARV7 905 select GPIOLIB_IRQCHIP 906 select IRQ_DOMAIN_HIERARCHY 907 help 908 Say Y here to support the main GPIO block on MStar/SigmaStar 909 ARMv7-based SoCs. 910 911config GPIO_IDT3243X 912 tristate "IDT 79RC3243X GPIO support" 913 depends on MIKROTIK_RB532 || COMPILE_TEST 914 select GPIO_GENERIC 915 select GPIOLIB_IRQCHIP 916 help 917 Select this option to enable GPIO driver for 918 IDT 79RC3243X-based devices like Mikrotik RB532. 919 920 To compile this driver as a module, choose M here: the module will 921 be called gpio-idt3243x. 922 923endmenu 924 925menu "Port-mapped I/O GPIO drivers" 926 depends on X86 && HAS_IOPORT # I/O space access 927 928config GPIO_VX855 929 tristate "VIA VX855/VX875 GPIO" 930 depends on PCI 931 select MFD_CORE 932 select MFD_VX855 933 help 934 Support access to the VX855/VX875 GPIO lines through the GPIO library. 935 936 This driver provides common support for accessing the device. 937 Additional drivers must be enabled in order to use the 938 functionality of the device. 939 940config GPIO_I8255 941 tristate 942 select GPIO_REGMAP 943 help 944 Enables support for the i8255 interface library functions. The i8255 945 interface library provides functions to facilitate communication with 946 interfaces compatible with the venerable Intel 8255 Programmable 947 Peripheral Interface (PPI). The Intel 8255 PPI chip was first released 948 in the early 1970s but compatible interfaces are nowadays typically 949 found embedded in larger VLSI processing chips and FPGA components. 950 951 If built as a module its name will be gpio-i8255. 952 953config GPIO_104_DIO_48E 954 tristate "ACCES 104-DIO-48E GPIO support" 955 depends on PC104 956 select ISA_BUS_API 957 select REGMAP_MMIO 958 select REGMAP_IRQ 959 select GPIOLIB_IRQCHIP 960 select GPIO_I8255 961 select I8254 962 help 963 Enables GPIO support for the ACCES 104-DIO-48E series (104-DIO-48E, 964 104-DIO-24E). The base port addresses for the devices may be 965 configured via the base module parameter. The interrupt line numbers 966 for the devices may be configured via the irq module parameter. 967 968config GPIO_104_IDIO_16 969 tristate "ACCES 104-IDIO-16 GPIO support" 970 depends on PC104 971 select ISA_BUS_API 972 select REGMAP_MMIO 973 select GPIO_IDIO_16 974 help 975 Enables GPIO support for the ACCES 104-IDIO-16 family (104-IDIO-16, 976 104-IDIO-16E, 104-IDO-16, 104-IDIO-8, 104-IDIO-8E, 104-IDO-8). The 977 base port addresses for the devices may be configured via the base 978 module parameter. The interrupt line numbers for the devices may be 979 configured via the irq module parameter. 980 981config GPIO_104_IDI_48 982 tristate "ACCES 104-IDI-48 GPIO support" 983 depends on PC104 984 select ISA_BUS_API 985 select REGMAP_MMIO 986 select REGMAP_IRQ 987 select GPIOLIB_IRQCHIP 988 select GPIO_REGMAP 989 help 990 Enables GPIO support for the ACCES 104-IDI-48 family (104-IDI-48A, 991 104-IDI-48AC, 104-IDI-48B, 104-IDI-48BC). The base port addresses for 992 the devices may be configured via the base module parameter. The 993 interrupt line numbers for the devices may be configured via the irq 994 module parameter. 995 996config GPIO_F7188X 997 tristate "Fintek and Nuvoton Super-I/O GPIO support" 998 help 999 This option enables support for GPIOs found on Fintek Super-I/O 1000 chips F71869, F71869A, F71882FG, F71889F and F81866. 1001 As well as Nuvoton Super-I/O chip NCT6126D. 1002 1003 To compile this driver as a module, choose M here: the module will 1004 be called f7188x-gpio. 1005 1006config GPIO_GPIO_MM 1007 tristate "Diamond Systems GPIO-MM GPIO support" 1008 depends on PC104 1009 select ISA_BUS_API 1010 select REGMAP_MMIO 1011 select GPIO_I8255 1012 help 1013 Enables GPIO support for the Diamond Systems GPIO-MM and GPIO-MM-12. 1014 1015 The Diamond Systems GPIO-MM device features 48 lines of digital I/O 1016 via the emulation of dual 82C55A PPI chips. This driver provides GPIO 1017 support for these 48 channels of digital I/O. 1018 1019 The base port addresses for the devices may be configured via the base 1020 array module parameter. 1021 1022config GPIO_IT87 1023 tristate "IT87xx GPIO support" 1024 help 1025 Say yes here to support GPIO functionality of IT87xx Super I/O chips. 1026 1027 This driver is tested with ITE IT8728 and IT8732 Super I/O chips, and 1028 supports the IT8761E, IT8613, IT8620E, and IT8628E Super I/O chips as 1029 well. 1030 1031 To compile this driver as a module, choose M here: the module will 1032 be called gpio_it87. 1033 1034config GPIO_SCH 1035 tristate "Intel SCH/TunnelCreek/Centerton/Quark X1000 GPIO" 1036 depends on (X86 || COMPILE_TEST) && ACPI 1037 depends on LPC_SCH 1038 select GPIOLIB_IRQCHIP 1039 help 1040 Say yes here to support GPIO interface on Intel Poulsbo SCH, 1041 Intel Tunnel Creek processor, Intel Centerton processor or 1042 Intel Quark X1000 SoC. 1043 1044 The Intel SCH contains a total of 14 GPIO pins. Ten GPIOs are 1045 powered by the core power rail and are turned off during sleep 1046 modes (S3 and higher). The remaining four GPIOs are powered by 1047 the Intel SCH suspend power supply. These GPIOs remain 1048 active during S3. The suspend-powered GPIOs can be used to wake the 1049 system from the Suspend-to-RAM state. 1050 1051 The Intel Tunnel Creek processor has 5 GPIOs powered by the 1052 core power rail and 9 from suspend power supply. 1053 1054 The Intel Centerton processor has a total of 30 GPIO pins. 1055 Twenty-one are powered by the core power rail and 9 from the 1056 suspend power supply. 1057 1058 The Intel Quark X1000 SoC has 2 GPIOs powered by the core 1059 power well and 6 from the suspend power well. 1060 1061config GPIO_NOVALAKE 1062 tristate "Intel Nova Lake GPIO-signaled ACPI events support" 1063 depends on (X86 || COMPILE_TEST) && ACPI 1064 select GPIOLIB_IRQCHIP 1065 help 1066 Select this to enable GPIO-signaled ACPI events support on platforms 1067 with the following SoCs: 1068 1069 - Intel Nova Lake 1070 1071 This driver adds support for new mode of handling platform events, 1072 through the use of GPIO-signaled ACPI events. Main purpose is to 1073 handle platform IRQs that originate in PCH components, for example 1074 interrupt triggered by Power Management Event (PME). 1075 1076 This driver, at this time, is not required to handle platform events. 1077 Listed platform(s) will stay in legacy mode, handling ACPI events as 1078 in previous generations. However, future platforms will eventually 1079 switch to new handling mode, requiring this driver to run events 1080 properly. 1081 1082 Driver supports up to 128 GPIO pins per GPE block. 1083 1084 To compile this driver as a module, choose M here: the module will 1085 be called gpio-novalake-events. 1086 1087config GPIO_SCH311X 1088 tristate "SMSC SCH311x SuperI/O GPIO" 1089 help 1090 Driver to enable the GPIOs found on SMSC SMSC SCH3112, SCH3114 and 1091 SCH3116 "Super I/O" chipsets. 1092 1093 To compile this driver as a module, choose M here: the module will 1094 be called gpio-sch311x. 1095 1096config GPIO_TS5500 1097 tristate "TS-5500 DIO blocks and compatibles" 1098 depends on TS5500 || COMPILE_TEST 1099 help 1100 This driver supports Digital I/O exposed by pin blocks found on some 1101 Technologic Systems platforms. It includes, but is not limited to, 3 1102 blocks of the TS-5500: DIO1, DIO2 and the LCD port, and the TS-5600 1103 LCD port. 1104 1105config GPIO_WINBOND 1106 tristate "Winbond Super I/O GPIO support" 1107 select ISA_BUS_API 1108 help 1109 This option enables support for GPIOs found on Winbond Super I/O 1110 chips. 1111 Currently, only W83627UHG (also known as Nuvoton NCT6627UD) is 1112 supported. 1113 1114 You will need to provide a module parameter "gpios", or a 1115 boot-time parameter "gpio_winbond.gpios" with a bitmask of GPIO 1116 ports to enable (bit 0 is GPIO1, bit 1 is GPIO2, etc.). 1117 1118 To compile this driver as a module, choose M here: the module will 1119 be called gpio-winbond. 1120 1121config GPIO_WS16C48 1122 tristate "WinSystems WS16C48 GPIO support" 1123 select ISA_BUS_API 1124 select REGMAP_IRQ 1125 select REGMAP_MMIO 1126 select GPIOLIB_IRQCHIP 1127 select GPIO_REGMAP 1128 help 1129 Enables GPIO support for the WinSystems WS16C48. The base port 1130 addresses for the devices may be configured via the base module 1131 parameter. The interrupt line numbers for the devices may be 1132 configured via the irq module parameter. 1133 1134endmenu 1135 1136menu "I2C GPIO expanders" 1137 depends on I2C 1138 1139config GPIO_ADNP 1140 tristate "Avionic Design N-bit GPIO expander" 1141 depends on OF 1142 select GPIOLIB_IRQCHIP 1143 help 1144 This option enables support for N GPIOs found on Avionic Design 1145 I2C GPIO expanders. The register space will be extended by powers 1146 of two, so the controller will need to accommodate for that. For 1147 example: if a controller provides 48 pins, 6 registers will be 1148 enough to represent all pins, but the driver will assume a 1149 register layout for 64 pins (8 registers). 1150 1151config GPIO_FXL6408 1152 tristate "FXL6408 I2C GPIO expander" 1153 select GPIO_REGMAP 1154 select REGMAP_I2C 1155 help 1156 GPIO driver for Fairchild Semiconductor FXL6408 GPIO expander. 1157 1158 To compile this driver as a module, choose M here: the module will 1159 be called gpio-fxl6408. 1160 1161config GPIO_DS4520 1162 tristate "DS4520 I2C GPIO expander" 1163 select REGMAP_I2C 1164 select GPIO_REGMAP 1165 help 1166 GPIO driver for ADI DS4520 I2C-based GPIO expander. 1167 Say yes here to enable the GPIO driver for the ADI DS4520 chip. 1168 1169 To compile this driver as a module, choose M here: the module will 1170 be called gpio-ds4520. 1171 1172config GPIO_GW_PLD 1173 tristate "Gateworks PLD GPIO Expander" 1174 depends on OF 1175 help 1176 Say yes here to provide access to the Gateworks I2C PLD GPIO 1177 Expander. This is used at least on the Cambria GW2358-4. 1178 1179config GPIO_MAX7300 1180 tristate "Maxim MAX7300 GPIO expander" 1181 select GPIO_MAX730X 1182 help 1183 GPIO driver for Maxim MAX7300 I2C-based GPIO expander. 1184 1185config GPIO_MAX732X 1186 tristate "MAX7319, MAX7320-7327 I2C Port Expanders" 1187 help 1188 Say yes here to support the MAX7319, MAX7320-7327 series of I2C 1189 Port Expanders. Each IO port on these chips has a fixed role of 1190 Input (designated by 'I'), Push-Pull Output ('O'), or Open-Drain 1191 Input and Output (designed by 'P'). The combinations are listed 1192 below: 1193 1194 8 bits: max7319 (8I), max7320 (8O), max7321 (8P), 1195 max7322 (4I4O), max7323 (4P4O) 1196 1197 16 bits: max7324 (8I8O), max7325 (8P8O), 1198 max7326 (4I12O), max7327 (4P12O) 1199 1200 Board setup code must specify the model to use, and the start 1201 number for these GPIOs. 1202 1203config GPIO_MAX732X_IRQ 1204 bool "Interrupt controller support for MAX732x" 1205 depends on GPIO_MAX732X=y 1206 select GPIOLIB_IRQCHIP 1207 help 1208 Say yes here to enable the max732x to be used as an interrupt 1209 controller. It requires the driver to be built in the kernel. 1210 1211config GPIO_PCA953X 1212 tristate "PCA95[357]x, PCA9698, TCA64xx, and MAX7310 I/O ports" 1213 select REGMAP_I2C 1214 help 1215 Say yes here to provide access to several register-oriented 1216 SMBus I/O expanders, made mostly by NXP or TI. Compatible 1217 models include: 1218 1219 4 bits: pca9536, pca9537 1220 1221 8 bits: max7310, max7315, pca6107, pca9534, pca9538, pca9554, 1222 pca9556, pca9557, pca9574, tca6408, tca9554, xra1202, 1223 pcal6408, pcal9554b, tca9538, tcal6408 1224 1225 16 bits: max7312, max7313, pca9535, pca9539, pca9555, pca9575, 1226 tca6416, pca6416, pcal6416, pcal9535, pcal9555a, max7318, 1227 tca9539, tcal6416 1228 1229 18 bits: tca6418 1230 1231 24 bits: tca6424, pcal6524 1232 1233 40 bits: pca9505, pca9698, pca9506 1234 1235config GPIO_PCA953X_IRQ 1236 bool "Interrupt controller support for PCA953x" 1237 depends on GPIO_PCA953X 1238 select GPIOLIB_IRQCHIP 1239 help 1240 Say yes here to enable the pca953x to be used as an interrupt 1241 controller. 1242 1243config GPIO_PCA9570 1244 tristate "PCA9570 4-Bit I2C GPO expander" 1245 help 1246 Say yes here to enable the GPO driver for the NXP PCA9570 chip. 1247 1248 To compile this driver as a module, choose M here: the module will 1249 be called gpio-pca9570. 1250 1251config GPIO_PCF857X 1252 tristate "PCF857x, PCA{85,96}7x, and MAX732[89] I2C GPIO expanders" 1253 select GPIOLIB_IRQCHIP 1254 select IRQ_DOMAIN 1255 help 1256 Say yes here to provide access to most "quasi-bidirectional" I2C 1257 GPIO expanders used for additional digital outputs or inputs. 1258 Most of these parts are from NXP, though TI is a second source for 1259 some of them. Compatible models include: 1260 1261 8 bits: pcf8574, pcf8574a, pca8574, pca8574a, 1262 pca9670, pca9672, pca9674, pca9674a, 1263 max7328, max7329 1264 1265 16 bits: pcf8575, pcf8575c, pca8575, 1266 pca9671, pca9673, pca9675 1267 1268 Your board setup code will need to declare the expanders in 1269 use, and assign numbers to the GPIOs they expose. Those GPIOs 1270 can then be used from drivers and other kernel code, just like 1271 other GPIOs, but only accessible from task contexts. 1272 1273 This driver provides an in-kernel interface to those GPIOs using 1274 platform-neutral GPIO calls. 1275 1276config GPIO_TPIC2810 1277 tristate "TPIC2810 8-Bit I2C GPO expander" 1278 help 1279 Say yes here to enable the GPO driver for the TI TPIC2810 chip. 1280 1281 To compile this driver as a module, choose M here: the module will 1282 be called gpio-tpic2810. 1283 1284config GPIO_TS4900 1285 tristate "Technologic Systems FPGA I2C GPIO" 1286 depends on SOC_IMX6 || COMPILE_TEST 1287 select REGMAP_I2C 1288 help 1289 Say yes here to enabled the GPIO driver for Technologic's FPGA core. 1290 Series supported include TS-4100, TS-4900, TS-7970 and TS-7990. 1291 1292endmenu 1293 1294menu "MFD GPIO expanders" 1295 1296config GPIO_ADP5520 1297 tristate "GPIO Support for ADP5520 PMIC" 1298 depends on PMIC_ADP5520 1299 help 1300 This option enables support for on-chip GPIO found 1301 on Analog Devices ADP5520 PMICs. 1302 1303config GPIO_ADP5585 1304 tristate "GPIO Support for ADP5585" 1305 depends on MFD_ADP5585 1306 select GPIOLIB_IRQCHIP 1307 help 1308 This option enables support for the GPIO function found in the Analog 1309 Devices ADP5585. 1310 1311config GPIO_ALTERA_A10SR 1312 tristate "Altera Arria10 System Resource GPIO" 1313 depends on MFD_ALTERA_A10SR 1314 help 1315 Driver for Arria10 Development Kit GPIO expansion which 1316 includes reads of pushbuttons and DIP switches as well 1317 as writes to LEDs. 1318 1319config GPIO_ARIZONA 1320 tristate "Wolfson Microelectronics Arizona class devices" 1321 depends on MFD_ARIZONA 1322 help 1323 Support for GPIOs on Wolfson Arizona class devices. 1324 1325config GPIO_BD71815 1326 tristate "ROHM BD71815 PMIC GPIO support" 1327 depends on MFD_ROHM_BD71828 1328 help 1329 Support for GPO(s) on ROHM BD71815 PMIC. There are two GPOs 1330 available on the ROHM PMIC. 1331 1332 This driver can also be built as a module. If so, the module 1333 will be called gpio-bd71815. 1334 1335config GPIO_BD71828 1336 tristate "ROHM BD71828 GPIO support" 1337 depends on MFD_ROHM_BD71828 1338 help 1339 Support for GPIOs on ROHM BD71828 PMIC. There are three GPIOs 1340 available on the ROHM PMIC in total. The GPIOs are limited to 1341 outputs only and pins must be configured to GPIO outputs by 1342 OTP. Enable this only if you want to use these pins as outputs. 1343 1344 This driver can also be built as a module. If so, the module 1345 will be called gpio-bd71828. 1346 1347config GPIO_BD72720 1348 tristate "ROHM BD72720 and BD73900 PMIC GPIO support" 1349 depends on MFD_ROHM_BD71828 1350 help 1351 Support for GPIO on ROHM BD72720 and BD73900 PMICs. There are two 1352 pins which can be configured to GPI or GPO, and three pins which can 1353 be configured to GPO on the ROHM PMIC. The pin configuration is done 1354 on OTP at manufacturing. 1355 1356config GPIO_BD9571MWV 1357 tristate "ROHM BD9571 GPIO support" 1358 depends on MFD_BD9571MWV 1359 help 1360 Support for GPIOs on ROHM BD9571 PMIC. There are two GPIOs 1361 available on the ROHM PMIC in total, both of which can also 1362 generate interrupts. 1363 1364 This driver can also be built as a module. If so, the module 1365 will be called gpio-bd9571mwv. 1366 1367config GPIO_CGBC 1368 tristate "Congatec Board Controller GPIO support" 1369 depends on MFD_CGBC 1370 help 1371 Select this option to enable GPIO support for the Congatec Board 1372 Controller. 1373 1374 This driver can also be built as a module. If so, the module will be 1375 called gpio-cgbc. 1376 1377config GPIO_CROS_EC 1378 tristate "ChromeOS EC GPIO support" 1379 depends on CROS_EC 1380 help 1381 GPIO driver for the ChromeOS Embedded Controller (EC). GPIOs 1382 cannot be set unless the system is unlocked. 1383 1384 This driver can also be built as a module. If so, the module 1385 will be called gpio-cros-ec. 1386 1387config GPIO_CRYSTAL_COVE 1388 tristate "GPIO support for Crystal Cove PMIC" 1389 depends on (X86 || COMPILE_TEST) && INTEL_SOC_PMIC 1390 select GPIOLIB_IRQCHIP 1391 help 1392 Support for GPIO pins on Crystal Cove PMIC. 1393 1394 Say Yes if you have a Intel SoC-based tablet with Crystal Cove PMIC 1395 inside. 1396 1397 This driver can also be built as a module. If so, the module will be 1398 called gpio-crystalcove. 1399 1400config GPIO_CS5535 1401 tristate "AMD CS5535/CS5536 GPIO support" 1402 depends on X86 || MIPS || COMPILE_TEST 1403 depends on MFD_CS5535 1404 help 1405 The AMD CS5535 and CS5536 southbridges support 28 GPIO pins that 1406 can be used for quite a number of things. The CS5535/6 is found on 1407 AMD Geode and Lemote Yeeloong devices. 1408 1409 If unsure, say N. 1410 1411config GPIO_DA9052 1412 tristate "Dialog DA9052 GPIO" 1413 depends on PMIC_DA9052 1414 help 1415 Say yes here to enable the GPIO driver for the DA9052 chip. 1416 1417config GPIO_DA9055 1418 tristate "Dialog Semiconductor DA9055 GPIO" 1419 depends on MFD_DA9055 1420 help 1421 Say yes here to enable the GPIO driver for the DA9055 chip. 1422 1423 The Dialog DA9055 PMIC chip has 3 GPIO pins that can be 1424 be controlled by this driver. 1425 1426 If driver is built as a module it will be called gpio-da9055. 1427 1428config GPIO_DLN2 1429 tristate "Diolan DLN2 GPIO support" 1430 depends on MFD_DLN2 1431 select GPIOLIB_IRQCHIP 1432 1433 help 1434 Select this option to enable GPIO driver for the Diolan DLN2 1435 board. 1436 1437 This driver can also be built as a module. If so, the module 1438 will be called gpio-dln2. 1439 1440config HTC_EGPIO 1441 bool "HTC EGPIO support" 1442 depends on ARM || COMPILE_TEST 1443 help 1444 This driver supports the CPLD egpio chip present on 1445 several HTC phones. It provides basic support for input 1446 pins, output pins, and IRQs. 1447 1448config GPIO_ELKHARTLAKE 1449 tristate "Intel Elkhart Lake PSE GPIO support" 1450 depends on INTEL_EHL_PSE_IO 1451 select GPIO_TANGIER 1452 help 1453 Select this option to enable GPIO support for Intel Elkhart Lake 1454 PSE GPIO IP. 1455 1456 To compile this driver as a module, choose M here: the module will 1457 be called gpio-elkhartlake. 1458 1459config GPIO_JANZ_TTL 1460 tristate "Janz VMOD-TTL Digital IO Module" 1461 depends on MFD_JANZ_CMODIO 1462 help 1463 This enables support for the Janz VMOD-TTL Digital IO module. 1464 This driver provides support for driving the pins in output 1465 mode only. Input mode is not supported. 1466 1467config GPIO_KEMPLD 1468 tristate "Kontron ETX / COMexpress GPIO" 1469 depends on MFD_KEMPLD 1470 select GPIOLIB_IRQCHIP 1471 help 1472 This enables support for the PLD GPIO interface on some Kontron ETX 1473 and COMexpress (ETXexpress) modules. 1474 1475 This driver can also be built as a module. If so, the module will be 1476 called gpio-kempld. 1477 1478config GPIO_LJCA 1479 tristate "INTEL La Jolla Cove Adapter GPIO support" 1480 depends on USB_LJCA 1481 select GPIOLIB_IRQCHIP 1482 default USB_LJCA 1483 help 1484 Select this option to enable GPIO driver for the INTEL 1485 La Jolla Cove Adapter (LJCA) board. 1486 1487 This driver can also be built as a module. If so, the module 1488 will be called gpio-ljca. 1489 1490config GPIO_LP3943 1491 tristate "TI/National Semiconductor LP3943 GPIO expander" 1492 depends on MFD_LP3943 1493 help 1494 GPIO driver for LP3943 MFD. 1495 LP3943 can be used as a GPIO expander which provides up to 16 GPIOs. 1496 Open drain outputs are required for this usage. 1497 1498config GPIO_LP873X 1499 tristate "TI LP873X GPO" 1500 depends on MFD_TI_LP873X 1501 help 1502 This driver supports the GPO on TI Lp873x PMICs. 2 GPOs are present 1503 on LP873X PMICs. 1504 1505 This driver can also be built as a module. If so, the module will be 1506 called gpio-lp873x. 1507 1508config GPIO_LP87565 1509 tristate "TI LP87565 GPIO" 1510 depends on MFD_TI_LP87565 1511 help 1512 This driver supports the GPIO on TI Lp873565 PMICs. 3 GPIOs are present 1513 on LP87565 PMICs. 1514 1515 This driver can also be built as a module. If so, the module will be 1516 called gpio-lp87565. 1517 1518config GPIO_MACSMC 1519 tristate "Apple Mac SMC GPIO" 1520 depends on MFD_MACSMC 1521 help 1522 Support for GPIOs controlled by the SMC microcontroller on Apple Mac 1523 systems. 1524 1525 This driver can also be built as a module. If so, the module will be 1526 called gpio-macsmc. 1527 1528config GPIO_MADERA 1529 tristate "Cirrus Logic Madera class codecs" 1530 depends on PINCTRL_MADERA 1531 help 1532 Support for GPIOs on Cirrus Logic Madera class codecs. 1533 1534config GPIO_MAX7360 1535 tristate "MAX7360 GPIO support" 1536 depends on MFD_MAX7360 1537 select GPIO_REGMAP 1538 select REGMAP_IRQ 1539 help 1540 Allows to use MAX7360 I/O Expander PWM lines as GPIO and keypad COL 1541 lines as GPO. 1542 1543 This driver can also be built as a module. If so, the module will be 1544 called gpio-max7360. 1545 1546config GPIO_MAX77620 1547 tristate "GPIO support for PMIC MAX77620 and MAX20024" 1548 depends on MFD_MAX77620 1549 select GPIOLIB_IRQCHIP 1550 help 1551 GPIO driver for MAX77620 and MAX20024 PMIC from Maxim Semiconductor. 1552 MAX77620 PMIC has 8 pins that can be configured as GPIOs. The 1553 driver also provides interrupt support for each of the GPIOs. 1554 Say yes here to enable the max77620 to be used as GPIO controller. 1555 1556config GPIO_MAX77650 1557 tristate "Maxim MAX77650/77651 GPIO support" 1558 depends on MFD_MAX77650 1559 help 1560 GPIO driver for MAX77650/77651 PMIC from Maxim Semiconductor. 1561 These chips have a single pin that can be configured as GPIO. 1562 1563config GPIO_MAX77759 1564 tristate "Maxim Integrated MAX77759 GPIO support" 1565 depends on MFD_MAX77759 1566 default MFD_MAX77759 1567 select GPIOLIB_IRQCHIP 1568 help 1569 GPIO driver for MAX77759 PMIC from Maxim Integrated. 1570 There are two GPIOs available on these chips in total, both of 1571 which can also generate interrupts. 1572 1573 This driver can also be built as a module. If so, the module will be 1574 called gpio-max77759. 1575 1576config GPIO_NCT6694 1577 tristate "Nuvoton NCT6694 GPIO controller support" 1578 depends on MFD_NCT6694 1579 select GENERIC_IRQ_CHIP 1580 select GPIOLIB_IRQCHIP 1581 help 1582 This driver supports 8 GPIO pins per bank that can all be interrupt 1583 sources. 1584 1585 This driver can also be built as a module. If so, the module will be 1586 called gpio-nct6694. 1587 1588config GPIO_PALMAS 1589 tristate "TI PALMAS series PMICs GPIO" 1590 depends on MFD_PALMAS 1591 help 1592 Select this option to enable GPIO driver for the TI PALMAS 1593 series chip family. 1594 1595config GPIO_PMIC_EIC_SPRD 1596 tristate "Spreadtrum PMIC EIC support" 1597 depends on MFD_SC27XX_PMIC || COMPILE_TEST 1598 select GPIOLIB_IRQCHIP 1599 help 1600 Say yes here to support Spreadtrum PMIC EIC device. 1601 1602config GPIO_QIXIS_FPGA 1603 tristate "NXP QIXIS FPGA GPIO support" 1604 depends on MFD_SIMPLE_MFD_I2C || COMPILE_TEST 1605 select GPIO_REGMAP 1606 select REGMAP_MMIO 1607 help 1608 This enables support for the GPIOs found in the QIXIS FPGA which is 1609 integrated on some NXP Layerscape boards such as LX2160ARDB and 1610 LS1046AQDS. 1611 1612config GPIO_RC5T583 1613 bool "RICOH RC5T583 GPIO" 1614 depends on MFD_RC5T583 1615 help 1616 Select this option to enable GPIO driver for the Ricoh RC5T583 1617 chip family. 1618 This driver provides the support for driving/reading the GPIO pins 1619 of RC5T583 device through standard GPIO library. 1620 1621config GPIO_SL28CPLD 1622 tristate "Kontron sl28cpld GPIO support" 1623 depends on MFD_SL28CPLD || COMPILE_TEST 1624 select GPIO_REGMAP 1625 select GPIOLIB_IRQCHIP 1626 select REGMAP_IRQ 1627 help 1628 This enables support for the GPIOs found on the Kontron sl28 CPLD. 1629 1630 This driver can also be built as a module. If so, the module will be 1631 called gpio-sl28cpld. 1632 1633config GPIO_STMPE 1634 tristate "STMPE GPIOs" 1635 depends on MFD_STMPE 1636 select GPIOLIB_IRQCHIP 1637 help 1638 This enables support for the GPIOs found on the STMPE I/O 1639 Expanders. 1640 1641config GPIO_TC3589X 1642 bool "TC3589X GPIOs" 1643 depends on MFD_TC3589X 1644 select GPIOLIB_IRQCHIP 1645 help 1646 This enables support for the GPIOs found on the TC3589X 1647 I/O Expander. 1648 1649config GPIO_TIMBERDALE 1650 bool "Support for timberdale GPIO IP" 1651 depends on MFD_TIMBERDALE 1652 select GPIOLIB_IRQCHIP 1653 help 1654 Add support for the GPIO IP in the timberdale FPGA. 1655 1656config GPIO_TN48M_CPLD 1657 tristate "Delta Networks TN48M switch CPLD GPIO driver" 1658 depends on MFD_TN48M_CPLD || COMPILE_TEST 1659 select GPIO_REGMAP 1660 help 1661 This enables support for the GPIOs found on the Delta 1662 Networks TN48M switch Lattice CPLD. It provides 12 pins in total, 1663 they are input-only or output-only type. 1664 1665 This driver can also be built as a module. If so, the 1666 module will be called gpio-tn48m. 1667 1668config GPIO_TPS65086 1669 tristate "TI TPS65086 GPO" 1670 depends on MFD_TPS65086 1671 help 1672 This driver supports the GPO on TI TPS65086x PMICs. 1673 1674config GPIO_TPS65218 1675 tristate "TPS65218 GPIO" 1676 depends on MFD_TPS65218 1677 help 1678 Select this option to enable GPIO driver for the TPS65218 1679 chip family. 1680 1681config GPIO_TPS65219 1682 tristate "TPS65219 GPIO" 1683 depends on MFD_TPS65219 1684 default MFD_TPS65219 1685 help 1686 Select this option to enable GPIO driver for the TPS65219 chip 1687 family. 1688 GPIO0 is statically configured as either input or output prior to 1689 Linux boot. It is used for MULTI_DEVICE_ENABLE function. This setting 1690 is statically configured by NVM. GPIO0 can't be used as a generic 1691 GPIO. It's either a GPO when MULTI_DEVICE_EN=0 or a GPI when 1692 MULTI_DEVICE_EN=1. 1693 1694 This driver can also be built as a module. If so, the module will be 1695 called gpio_tps65219. 1696 1697config GPIO_TPS6586X 1698 bool "TPS6586X GPIO" 1699 depends on MFD_TPS6586X 1700 help 1701 Select this option to enable GPIO driver for the TPS6586X 1702 chip family. 1703 1704config GPIO_TPS65910 1705 bool "TPS65910 GPIO" 1706 depends on MFD_TPS65910 1707 help 1708 Select this option to enable GPIO driver for the TPS65910 1709 chip family. 1710 1711config GPIO_TPS65912 1712 tristate "TI TPS65912 GPIO" 1713 depends on MFD_TPS65912 1714 help 1715 This driver supports TPS65912 GPIO chip. 1716 1717config GPIO_TPS68470 1718 tristate "TPS68470 GPIO" 1719 depends on INTEL_SKL_INT3472 1720 help 1721 Select this option to enable GPIO driver for the TPS68470 1722 chip family. 1723 There are 7 GPIOs and few sensor-related GPIOs supported 1724 by the TPS68470. While the 7 GPIOs can be configured as 1725 input or output as appropriate, the sensor related GPIOs 1726 are "output only" GPIOs. 1727 1728config GPIO_TQMX86 1729 tristate "TQ-Systems TQMx86 GPIO" 1730 depends on MFD_TQMX86 || COMPILE_TEST 1731 depends on HAS_IOPORT_MAP 1732 select GPIOLIB_IRQCHIP 1733 help 1734 This driver supports GPIO on the TQMX86 IO controller. 1735 1736config GPIO_TWL4030 1737 tristate "TWL4030, TWL5030, and TPS659x0 GPIOs" 1738 depends on TWL4030_CORE 1739 help 1740 Say yes here to access the GPIO signals of various multi-function 1741 power management chips from Texas Instruments. 1742 1743config GPIO_TWL6040 1744 tristate "TWL6040 GPO" 1745 depends on TWL6040_CORE 1746 help 1747 Say yes here to access the GPO signals of twl6040 1748 audio chip from Texas Instruments. 1749 1750config GPIO_WHISKEY_COVE 1751 tristate "GPIO support for Whiskey Cove PMIC" 1752 depends on (X86 || COMPILE_TEST) && INTEL_SOC_PMIC_BXTWC 1753 select GPIOLIB_IRQCHIP 1754 help 1755 Support for GPIO pins on Whiskey Cove PMIC. 1756 1757 Say Yes if you have an Intel SoC-based tablet with Whiskey Cove PMIC 1758 inside. 1759 1760 This driver can also be built as a module. If so, the module will be 1761 called gpio-wcove. 1762 1763config GPIO_WM831X 1764 tristate "WM831x GPIOs" 1765 depends on MFD_WM831X 1766 help 1767 Say yes here to access the GPIO signals of WM831x power management 1768 chips from Wolfson Microelectronics. 1769 1770config GPIO_WM8350 1771 tristate "WM8350 GPIOs" 1772 depends on MFD_WM8350 1773 help 1774 Say yes here to access the GPIO signals of WM8350 power management 1775 chips from Wolfson Microelectronics. 1776 1777config GPIO_WM8994 1778 tristate "WM8994 GPIOs" 1779 depends on MFD_WM8994 1780 help 1781 Say yes here to access the GPIO signals of WM8994 audio hub 1782 CODECs from Wolfson Microelectronics. 1783 1784endmenu 1785 1786menu "PCI GPIO expanders" 1787 depends on PCI 1788 1789config GPIO_AMD8111 1790 tristate "AMD 8111 GPIO driver" 1791 depends on X86 || COMPILE_TEST 1792 depends on HAS_IOPORT_MAP 1793 help 1794 The AMD 8111 southbridge contains 32 GPIO pins which can be used. 1795 1796 Note that usually system firmware/ACPI handles GPIO pins on their 1797 own and users might easily break their systems with uncareful usage 1798 of this driver! 1799 1800 If unsure, say N 1801 1802config GPIO_BT8XX 1803 tristate "BT8XX GPIO abuser" 1804 depends on VIDEO_BT848=n || COMPILE_TEST 1805 help 1806 The BT8xx frame grabber chip has 24 GPIO pins that can be abused 1807 as a cheap PCI GPIO card. 1808 1809 This chip can be found on Miro, Hauppauge and STB TV-cards. 1810 1811 The card needs to be physically altered for using it as a 1812 GPIO card. For more information on how to build a GPIO card 1813 from a BT8xx TV card, see the documentation file at 1814 Documentation/driver-api/gpio/bt8xxgpio.rst 1815 1816 If unsure, say N. 1817 1818config GPIO_MERRIFIELD 1819 tristate "Intel Merrifield GPIO support" 1820 depends on X86_INTEL_MID 1821 select GPIO_TANGIER 1822 help 1823 Say Y here to support Intel Merrifield GPIO. 1824 1825config GPIO_MLXBF 1826 tristate "Mellanox BlueField SoC GPIO" 1827 depends on (MELLANOX_PLATFORM && ARM64 && ACPI) || (64BIT && COMPILE_TEST) 1828 select GPIO_GENERIC 1829 help 1830 Say Y here if you want GPIO support on Mellanox BlueField SoC. 1831 1832config GPIO_MLXBF2 1833 tristate "Mellanox BlueField 2 SoC GPIO" 1834 depends on (MELLANOX_PLATFORM && ARM64 && ACPI) || (64BIT && COMPILE_TEST) 1835 select GPIO_GENERIC 1836 select GPIOLIB_IRQCHIP 1837 help 1838 Say Y here if you want GPIO support on Mellanox BlueField 2 SoC. 1839 1840config GPIO_MLXBF3 1841 tristate "Mellanox BlueField 3 SoC GPIO" 1842 depends on (MELLANOX_PLATFORM && ARM64) || COMPILE_TEST 1843 select GPIO_GENERIC 1844 select GPIOLIB_IRQCHIP 1845 help 1846 Say Y if you want GPIO support on Mellanox BlueField 3 SoC. 1847 This GPIO controller supports interrupt handling and enables the 1848 manipulation of certain GPIO pins. 1849 This controller should be used in parallel with pinctrl-mlxbf3 to 1850 control the desired GPIOs. 1851 This driver can also be built as a module called mlxbf3-gpio. 1852 1853config GPIO_ML_IOH 1854 tristate "OKI SEMICONDUCTOR ML7213 IOH GPIO support" 1855 depends on X86 || COMPILE_TEST 1856 select GENERIC_IRQ_CHIP 1857 help 1858 ML7213 is companion chip for Intel Atom E6xx series. 1859 This driver can be used for OKI SEMICONDUCTOR ML7213 IOH (Input/Output 1860 Hub) which is for IVI (In-Vehicle Infotainment) use. 1861 This driver can access the IOH's GPIO device. 1862 1863config GPIO_PCH 1864 tristate "Intel EG20T PCH/LAPIS Semiconductor IOH (ML7223/ML7831) GPIO" 1865 depends on X86_32 || MIPS || COMPILE_TEST 1866 select GENERIC_IRQ_CHIP 1867 help 1868 This driver is for PCH (Platform Controller Hub) GPIO of Intel Topcliff, 1869 which is an IOH (Input/Output Hub) for x86 embedded processor. 1870 This driver can access PCH GPIO device. 1871 1872 This driver also can be used for LAPIS Semiconductor IOH (Input/ 1873 Output Hub), ML7223 and ML7831. 1874 ML7223 IOH is for MP (Media Phone) use. 1875 ML7831 IOH is for general purpose use. 1876 ML7223/ML7831 is companion chip for Intel Atom E6xx series. 1877 ML7223/ML7831 is completely compatible for Intel EG20T PCH. 1878 1879config GPIO_PCI_IDIO_16 1880 tristate "ACCES PCI-IDIO-16 GPIO support" 1881 select REGMAP_MMIO 1882 select GPIO_IDIO_16 1883 help 1884 Enables GPIO support for the ACCES PCI-IDIO-16. An interrupt is 1885 generated when any of the inputs change state (low to high or high to 1886 low). Input filter control is not supported by this driver, and the 1887 input filters are deactivated by this driver. 1888 1889config GPIO_PCIE_IDIO_24 1890 tristate "ACCES PCIe-IDIO-24 GPIO support" 1891 select REGMAP_IRQ 1892 select REGMAP_MMIO 1893 select GPIOLIB_IRQCHIP 1894 select GPIO_REGMAP 1895 help 1896 Enables GPIO support for the ACCES PCIe-IDIO-24 family (PCIe-IDIO-24, 1897 PCIe-IDI-24, PCIe-IDO-24, PCIe-IDIO-12). An interrupt is generated 1898 when any of the inputs change state (low to high or high to low). 1899 Input filter control is not supported by this driver, and the input 1900 filters are deactivated by this driver. 1901 1902config GPIO_RDC321X 1903 tristate "RDC R-321x GPIO support" 1904 select MFD_CORE 1905 select MFD_RDC321X 1906 help 1907 Support for the RDC R321x SoC GPIOs over southbridge 1908 PCI configuration space. 1909 1910config GPIO_SODAVILLE 1911 bool "Intel Sodaville GPIO support" 1912 depends on X86 && OF 1913 select GPIO_GENERIC 1914 select GENERIC_IRQ_CHIP 1915 help 1916 Say Y here to support Intel Sodaville GPIO. 1917 1918endmenu 1919 1920menu "SPI GPIO expanders" 1921 depends on SPI_MASTER 1922 1923config GPIO_74X164 1924 tristate "74x164 serial-in/parallel-out 8-bits shift register" 1925 help 1926 Driver for 74x164 compatible serial-in/parallel-out 8-outputs 1927 shift registers. This driver can be used to provide access 1928 to more GPIO outputs. 1929 1930config GPIO_MAX3191X 1931 tristate "Maxim MAX3191x industrial serializer" 1932 select CRC8 1933 help 1934 GPIO driver for Maxim MAX31910, MAX31911, MAX31912, MAX31913, 1935 MAX31953 and MAX31963 industrial serializer, a daisy-chainable 1936 chip to make 8 digital 24V inputs available via SPI. Supports 1937 CRC checksums to guard against electromagnetic interference, 1938 as well as undervoltage and overtemperature detection. 1939 1940config GPIO_MAX7301 1941 tristate "Maxim MAX7301 GPIO expander" 1942 select GPIO_MAX730X 1943 help 1944 GPIO driver for Maxim MAX7301 SPI-based GPIO expander. 1945 1946config GPIO_MC33880 1947 tristate "Freescale MC33880 high-side/low-side switch" 1948 help 1949 SPI driver for Freescale MC33880 high-side/low-side switch. 1950 This provides GPIO interface supporting inputs and outputs. 1951 1952config GPIO_PISOSR 1953 tristate "Generic parallel-in/serial-out shift register" 1954 help 1955 GPIO driver for SPI compatible parallel-in/serial-out shift 1956 registers. These are input only devices. 1957 1958config GPIO_XRA1403 1959 tristate "EXAR XRA1403 16-bit GPIO expander" 1960 select REGMAP_SPI 1961 help 1962 GPIO driver for EXAR XRA1403 16-bit SPI-based GPIO expander. 1963 1964config GPIO_MOXTET 1965 tristate "Turris Mox Moxtet bus GPIO expander" 1966 depends on MOXTET 1967 help 1968 Say yes here if you are building for the Turris Mox router. 1969 This is the driver needed for configuring the GPIOs via the Moxtet 1970 bus. For example the Mox module with SFP cage needs this driver 1971 so that phylink can use corresponding GPIOs. 1972 1973endmenu 1974 1975menu "USB GPIO expanders" 1976 depends on USB 1977 1978config GPIO_VIPERBOARD 1979 tristate "Viperboard GPIO a & b support" 1980 depends on MFD_VIPERBOARD 1981 help 1982 Say yes here to access the GPIO signals of Nano River 1983 Technologies Viperboard. There are two GPIO chips on the 1984 board: gpioa and gpiob. 1985 See viperboard API specification and Nano 1986 River Tech's viperboard.h for detailed meaning 1987 of the module parameters. 1988 1989config GPIO_MPSSE 1990 tristate "FTDI MPSSE GPIO support" 1991 select GPIOLIB_IRQCHIP 1992 help 1993 GPIO driver for FTDI's MPSSE interface. These can do input and 1994 output. Each MPSSE provides 16 IO pins. 1995 1996config GPIO_USBIO 1997 tristate "Intel USBIO GPIO support" 1998 depends on USB_USBIO 1999 default USB_USBIO 2000 help 2001 Select this option to enable GPIO driver for the INTEL 2002 USBIO driver stack. 2003 2004 This driver can also be built as a module. If so, the module 2005 will be called gpio_usbio. 2006 2007endmenu 2008 2009menu "Virtual GPIO drivers" 2010 2011config GPIO_AGGREGATOR 2012 tristate "GPIO Aggregator" 2013 select CONFIGFS_FS 2014 help 2015 Say yes here to enable the GPIO Aggregator, which provides a way to 2016 aggregate existing GPIO lines into a new virtual GPIO chip. 2017 This can serve the following purposes: 2018 - Assign permissions for a collection of GPIO lines to a user, 2019 - Export a collection of GPIO lines to a virtual machine, 2020 - Provide a generic driver for a GPIO-operated device in an 2021 industrial control context, to be operated from userspace using 2022 the GPIO chardev interface. 2023 2024config GPIO_LATCH 2025 tristate "GPIO latch driver" 2026 help 2027 Say yes here to enable a driver for GPIO multiplexers based on latches 2028 connected to other GPIOs. 2029 2030config GPIO_LINE_MUX 2031 tristate "GPIO line mux driver" 2032 depends on OF 2033 select MULTIPLEXER 2034 help 2035 Say Y here to support the GPIO line mux, which can provide virtual 2036 GPIOs backed by a shared real GPIO and a multiplexer in a 1-to-many 2037 fashion. 2038 2039config GPIO_MOCKUP 2040 tristate "GPIO Testing Driver (DEPRECATED)" 2041 select IRQ_SIM 2042 help 2043 This module is DEPRECATED. Please consider using gpio-sim instead. 2044 2045 This enables GPIO Testing driver, which provides a way to test GPIO 2046 subsystem through sysfs (or char device) and debugfs. 2047 User could use it through the script in 2048 tools/testing/selftests/gpio/gpio-mockup.sh. Reference the usage in 2049 it. 2050 2051config GPIO_VIRTIO 2052 tristate "VirtIO GPIO support" 2053 depends on VIRTIO 2054 select GPIOLIB_IRQCHIP 2055 help 2056 Say Y here to enable guest support for virtio-based GPIO controllers. 2057 2058 These virtual GPIOs can be routed to real GPIOs or attached to 2059 simulators on the host (like QEMU). 2060 2061config GPIO_SIM 2062 tristate "GPIO Simulator Module" 2063 select IRQ_SIM 2064 select CONFIGFS_FS 2065 help 2066 This enables the GPIO simulator - a configfs-based GPIO testing 2067 driver. 2068 2069config GPIO_SHARED_PROXY 2070 tristate "Proxy driver for non-exclusive GPIOs" 2071 default m 2072 depends on GPIO_SHARED || COMPILE_TEST 2073 select AUXILIARY_BUS 2074 help 2075 This enables the GPIO shared proxy driver - an abstraction layer 2076 for GPIO pins that are shared by multiple devices. 2077 2078endmenu 2079 2080menu "GPIO Debugging utilities" 2081 2082config GPIO_SLOPPY_LOGIC_ANALYZER 2083 tristate "Sloppy GPIO logic analyzer" 2084 depends on (GPIOLIB || COMPILE_TEST) && CPUSETS && DEBUG_FS && EXPERT 2085 help 2086 This option enables support for a sloppy logic analyzer using polled 2087 GPIOs. Use the 'tools/gpio/gpio-sloppy-logic-analyzer' script with 2088 this driver. The script will make it easier to use and will also 2089 isolate a CPU for the polling task. Note that this is a last resort 2090 analyzer which can be affected by latencies, non-deterministic code 2091 paths, or NMIs. However, for e.g. remote development, it may be useful 2092 to get a first view and aid further debugging. 2093 2094 If this driver is built as a module it will be called 2095 'gpio-sloppy-logic-analyzer'. 2096 2097config GPIO_VIRTUSER 2098 tristate "GPIO Virtual User Testing Module" 2099 select DEBUG_FS 2100 select CONFIGFS_FS 2101 select IRQ_WORK 2102 help 2103 Say Y here to enable the configurable, configfs-based virtual GPIO 2104 consumer testing driver. 2105 2106 This driver is aimed as a helper in spotting any regressions in 2107 hot-unplug handling in GPIOLIB. 2108 2109endmenu 2110 2111endif 2112