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