linux/drivers/gpio/Kconfig
<<
>>
Prefs
   1# SPDX-License-Identifier: GPL-2.0-only
   2#
   3# GPIO infrastructure and drivers
   4#
   5
   6config ARCH_HAVE_CUSTOM_GPIO_H
   7        bool
   8        help
   9          Selecting this config option from the architecture Kconfig allows
  10          the architecture to provide a custom asm/gpio.h implementation
  11          overriding the default implementations.  New uses of this are
  12          strongly discouraged.
  13
  14menuconfig GPIOLIB
  15        bool "GPIO Support"
  16        help
  17          This enables GPIO support through the generic GPIO library.
  18          You only need to enable this, if you also want to enable
  19          one or more of the GPIO drivers below.
  20
  21          If unsure, say N.
  22
  23if GPIOLIB
  24
  25config GPIOLIB_FASTPATH_LIMIT
  26        int "Maximum number of GPIOs for fast path"
  27        range 32 512
  28        default 512
  29        help
  30          This adjusts the point at which certain APIs will switch from
  31          using a stack allocated buffer to a dynamically allocated buffer.
  32
  33          You shouldn't need to change this unless you really need to
  34          optimize either stack space or performance. Change this carefully
  35          since setting an incorrect value could cause stack corruption.
  36
  37config OF_GPIO
  38        def_bool y
  39        depends on OF
  40        depends on HAS_IOMEM
  41
  42config GPIO_ACPI
  43        def_bool y
  44        depends on ACPI
  45
  46config GPIOLIB_IRQCHIP
  47        select IRQ_DOMAIN
  48        bool
  49
  50config DEBUG_GPIO
  51        bool "Debug GPIO calls"
  52        depends on DEBUG_KERNEL
  53        help
  54          Say Y here to add some extra checks and diagnostics to GPIO calls.
  55          These checks help ensure that GPIOs have been properly initialized
  56          before they are used, and that sleeping calls are not made from
  57          non-sleeping contexts.  They can make bitbanged serial protocols
  58          slower.  The diagnostics help catch the type of setup errors
  59          that are most common when setting up new platforms or boards.
  60
  61config GPIO_SYSFS
  62        bool "/sys/class/gpio/... (sysfs interface)"
  63        depends on SYSFS
  64        help
  65          Say Y here to add the legacy sysfs interface for GPIOs.
  66
  67          This ABI is deprecated. If you want to use GPIO from userspace,
  68          use the character device /dev/gpiochipN with the appropriate
  69          ioctl() operations instead. The character device is always
  70          available.
  71
  72config GPIO_GENERIC
  73        depends on HAS_IOMEM # Only for IOMEM drivers
  74        tristate
  75
  76config GPIO_REGMAP
  77        depends on REGMAP
  78        tristate
  79
  80# put drivers in the right section, in alphabetical order
  81
  82# This symbol is selected by both I2C and SPI expanders
  83config GPIO_MAX730X
  84        tristate
  85
  86menu "Memory mapped GPIO drivers"
  87        depends on HAS_IOMEM
  88
  89config GPIO_74XX_MMIO
  90        tristate "GPIO driver for 74xx-ICs with MMIO access"
  91        depends on OF_GPIO
  92        select GPIO_GENERIC
  93        help
  94          Say yes here to support GPIO functionality for 74xx-compatible ICs
  95          with MMIO access. Compatible models include:
  96            1 bit:      741G125 (Input), 741G74 (Output)
  97            2 bits:     742G125 (Input), 7474 (Output)
  98            4 bits:     74125 (Input), 74175 (Output)
  99            6 bits:     74365 (Input), 74174 (Output)
 100            8 bits:     74244 (Input), 74273 (Output)
 101            16 bits:    741624 (Input), 7416374 (Output)
 102
 103config GPIO_ALTERA
 104        tristate "Altera GPIO"
 105        depends on OF_GPIO
 106        select GPIOLIB_IRQCHIP
 107        help
 108          Say Y or M here to build support for the Altera PIO device.
 109
 110          If driver is built as a module it will be called gpio-altera.
 111
 112config GPIO_AMDPT
 113        tristate "AMD Promontory GPIO support"
 114        depends on ACPI
 115        select GPIO_GENERIC
 116        help
 117          driver for GPIO functionality on Promontory IOHub
 118          Require ACPI ASL code to enumerate as a platform device.
 119
 120config GPIO_ASPEED
 121        tristate "Aspeed GPIO support"
 122        depends on (ARCH_ASPEED || COMPILE_TEST) && OF_GPIO
 123        select GPIOLIB_IRQCHIP
 124        help
 125          Say Y here to support Aspeed AST2400 and AST2500 GPIO controllers.
 126
 127config GPIO_ASPEED_SGPIO
 128        bool "Aspeed SGPIO support"
 129        depends on (ARCH_ASPEED || COMPILE_TEST) && OF_GPIO
 130        select GPIO_GENERIC
 131        select GPIOLIB_IRQCHIP
 132        help
 133          Say Y here to support Aspeed AST2500 SGPIO functionality.
 134
 135config GPIO_ATH79
 136        tristate "Atheros AR71XX/AR724X/AR913X GPIO support"
 137        default y if ATH79
 138        depends on ATH79 || COMPILE_TEST
 139        select GPIO_GENERIC
 140        select GPIOLIB_IRQCHIP
 141        help
 142          Select this option to enable GPIO driver for
 143          Atheros AR71XX/AR724X/AR913X SoC devices.
 144
 145config GPIO_RASPBERRYPI_EXP
 146        tristate "Raspberry Pi 3 GPIO Expander"
 147        default RASPBERRYPI_FIRMWARE
 148        depends on OF_GPIO
 149        # Make sure not 'y' when RASPBERRYPI_FIRMWARE is 'm'. This can only
 150        # happen when COMPILE_TEST=y, hence the added !RASPBERRYPI_FIRMWARE.
 151        depends on (ARCH_BCM2835 && RASPBERRYPI_FIRMWARE) || (COMPILE_TEST && !RASPBERRYPI_FIRMWARE)
 152        help
 153          Turn on GPIO support for the expander on Raspberry Pi 3 boards, using
 154          the firmware mailbox to communicate with VideoCore on BCM283x chips.
 155
 156config GPIO_BCM_KONA
 157        bool "Broadcom Kona GPIO"
 158        depends on OF_GPIO && (ARCH_BCM_MOBILE || COMPILE_TEST)
 159        help
 160          Turn on GPIO support for Broadcom "Kona" chips.
 161
 162config GPIO_BCM_XGS_IPROC
 163        tristate "BRCM XGS iProc GPIO support"
 164        depends on OF_GPIO && (ARCH_BCM_IPROC || COMPILE_TEST)
 165        select GPIO_GENERIC
 166        select GPIOLIB_IRQCHIP
 167        default ARCH_BCM_IPROC
 168        help
 169          Say yes here to enable GPIO support for Broadcom XGS iProc SoCs.
 170
 171config GPIO_BRCMSTB
 172        tristate "BRCMSTB GPIO support"
 173        default y if (ARCH_BRCMSTB || BMIPS_GENERIC)
 174        depends on OF_GPIO && (ARCH_BRCMSTB || BMIPS_GENERIC || COMPILE_TEST)
 175        select GPIO_GENERIC
 176        select IRQ_DOMAIN
 177        help
 178          Say yes here to enable GPIO support for Broadcom STB (BCM7XXX) SoCs.
 179
 180config GPIO_CADENCE
 181        tristate "Cadence GPIO support"
 182        depends on OF_GPIO
 183        select GPIO_GENERIC
 184        select GPIOLIB_IRQCHIP
 185        help
 186          Say yes here to enable support for Cadence GPIO controller.
 187
 188config GPIO_CLPS711X
 189        tristate "CLPS711X GPIO support"
 190        depends on ARCH_CLPS711X || COMPILE_TEST
 191        select GPIO_GENERIC
 192        help
 193          Say yes here to support GPIO on CLPS711X SoCs.
 194
 195config GPIO_DAVINCI
 196        bool "TI Davinci/Keystone GPIO support"
 197        default y if ARCH_DAVINCI
 198        depends on (ARM || ARM64) && (ARCH_DAVINCI || ARCH_KEYSTONE || ARCH_K3)
 199        help
 200          Say yes here to enable GPIO support for TI Davinci/Keystone SoCs.
 201
 202config GPIO_DWAPB
 203        tristate "Synopsys DesignWare APB GPIO driver"
 204        select GPIO_GENERIC
 205        select GENERIC_IRQ_CHIP
 206        help
 207          Say Y or M here to build support for the Synopsys DesignWare APB
 208          GPIO block.
 209
 210config GPIO_EIC_SPRD
 211        tristate "Spreadtrum EIC support"
 212        depends on ARCH_SPRD || COMPILE_TEST
 213        depends on OF_GPIO
 214        select GPIOLIB_IRQCHIP
 215        help
 216          Say yes here to support Spreadtrum EIC device.
 217
 218config GPIO_EM
 219        tristate "Emma Mobile GPIO"
 220        depends on (ARCH_EMEV2 || COMPILE_TEST) && OF_GPIO
 221        help
 222          Say yes here to support GPIO on Renesas Emma Mobile SoCs.
 223
 224config GPIO_EP93XX
 225        def_bool y
 226        depends on ARCH_EP93XX
 227        select GPIO_GENERIC
 228        select GPIOLIB_IRQCHIP
 229
 230config GPIO_EXAR
 231        tristate "Support for GPIO pins on XR17V352/354/358"
 232        depends on SERIAL_8250_EXAR
 233        help
 234          Selecting this option will enable handling of GPIO pins present
 235          on Exar XR17V352/354/358 chips.
 236
 237config GPIO_GE_FPGA
 238        bool "GE FPGA based GPIO"
 239        depends on GE_FPGA
 240        select GPIO_GENERIC
 241        help
 242          Support for common GPIO functionality provided on some GE Single Board
 243          Computers.
 244
 245          This driver provides basic support (configure as input or output, read
 246          and write pin state) for GPIO implemented in a number of GE single
 247          board computers.
 248
 249config GPIO_FTGPIO010
 250        bool "Faraday FTGPIO010 GPIO"
 251        depends on OF_GPIO
 252        select GPIO_GENERIC
 253        select GPIOLIB_IRQCHIP
 254        default (ARCH_GEMINI || ARCH_MOXART)
 255        help
 256          Support for common GPIOs from the Faraday FTGPIO010 IP core, found in
 257          Cortina systems Gemini platforms, Moxa ART and others.
 258
 259config GPIO_GENERIC_PLATFORM
 260        tristate "Generic memory-mapped GPIO controller support (MMIO platform device)"
 261        select GPIO_GENERIC
 262        help
 263          Say yes here to support basic platform_device memory-mapped GPIO controllers.
 264
 265config GPIO_GRGPIO
 266        tristate "Aeroflex Gaisler GRGPIO support"
 267        depends on OF_GPIO
 268        select GPIO_GENERIC
 269        select IRQ_DOMAIN
 270        help
 271          Select this to support Aeroflex Gaisler GRGPIO cores from the GRLIB
 272          VHDL IP core library.
 273
 274config GPIO_HLWD
 275        tristate "Nintendo Wii (Hollywood) GPIO"
 276        depends on OF_GPIO
 277        select GPIO_GENERIC
 278        select GPIOLIB_IRQCHIP
 279        help
 280          Select this to support the GPIO controller of the Nintendo Wii.
 281
 282          If unsure, say N.
 283
 284config GPIO_ICH
 285        tristate "Intel ICH GPIO"
 286        depends on PCI && X86
 287        select MFD_CORE
 288        select LPC_ICH
 289        help
 290          Say yes here to support the GPIO functionality of a number of Intel
 291          ICH-based chipsets.  Currently supported devices: ICH6, ICH7, ICH8
 292          ICH9, ICH10, Series 5/3400 (eg Ibex Peak), Series 6/C200 (eg
 293          Cougar Point), NM10 (Tiger Point), and 3100 (Whitmore Lake).
 294
 295          If unsure, say N.
 296
 297config GPIO_IOP
 298        tristate "Intel IOP GPIO"
 299        depends on ARCH_IOP32X || COMPILE_TEST
 300        select GPIO_GENERIC
 301        help
 302          Say yes here to support the GPIO functionality of a number of Intel
 303          IOP32X or IOP33X.
 304
 305          If unsure, say N.
 306
 307config GPIO_IXP4XX
 308        bool "Intel IXP4xx GPIO"
 309        depends on ARM # For <asm/mach-types.h>
 310        depends on ARCH_IXP4XX
 311        select GPIO_GENERIC
 312        select GPIOLIB_IRQCHIP
 313        select IRQ_DOMAIN_HIERARCHY
 314        help
 315          Say yes here to support the GPIO functionality of a number of Intel
 316          IXP4xx series of chips.
 317
 318          If unsure, say N.
 319config GPIO_LOGICVC
 320        tristate "Xylon LogiCVC GPIO support"
 321        depends on MFD_SYSCON && OF
 322        help
 323          Say yes here to support GPIO functionality of the Xylon LogiCVC
 324          programmable logic block.
 325
 326config GPIO_LOONGSON
 327        bool "Loongson-2/3 GPIO support"
 328        depends on CPU_LOONGSON2EF || CPU_LOONGSON64
 329        help
 330          driver for GPIO functionality on Loongson-2F/3A/3B processors.
 331
 332config GPIO_LPC18XX
 333        tristate "NXP LPC18XX/43XX GPIO support"
 334        default y if ARCH_LPC18XX
 335        depends on OF_GPIO && (ARCH_LPC18XX || COMPILE_TEST)
 336        select IRQ_DOMAIN_HIERARCHY
 337        help
 338          Select this option to enable GPIO driver for
 339          NXP LPC18XX/43XX devices.
 340
 341config GPIO_LPC32XX
 342        tristate "NXP LPC32XX GPIO support"
 343        depends on OF_GPIO && (ARCH_LPC32XX || COMPILE_TEST)
 344        help
 345          Select this option to enable GPIO driver for
 346          NXP LPC32XX devices.
 347
 348config GPIO_MB86S7X
 349        tristate "GPIO support for Fujitsu MB86S7x Platforms"
 350        help
 351          Say yes here to support the GPIO controller in Fujitsu MB86S70 SoCs.
 352
 353config GPIO_MENZ127
 354        tristate "MEN 16Z127 GPIO support"
 355        depends on MCB
 356        select GPIO_GENERIC
 357        help
 358          Say yes here to support the MEN 16Z127 GPIO Controller
 359
 360config GPIO_MM_LANTIQ
 361        bool "Lantiq Memory mapped GPIOs"
 362        depends on LANTIQ && SOC_XWAY
 363        help
 364          This enables support for memory mapped GPIOs on the External Bus Unit
 365          (EBU) found on Lantiq SoCs. The gpios are output only as they are
 366          created by attaching a 16bit latch to the bus.
 367
 368config GPIO_MPC5200
 369        def_bool y
 370        depends on PPC_MPC52xx
 371
 372config GPIO_MPC8XXX
 373        bool "MPC512x/MPC8xxx/QorIQ GPIO support"
 374        depends on PPC_MPC512x || PPC_MPC831x || PPC_MPC834x || PPC_MPC837x || \
 375                   FSL_SOC_BOOKE || PPC_86xx || ARCH_LAYERSCAPE || ARM || \
 376                   COMPILE_TEST
 377        select GPIO_GENERIC
 378        select IRQ_DOMAIN
 379        help
 380          Say Y here if you're going to use hardware that connects to the
 381          MPC512x/831x/834x/837x/8572/8610/QorIQ GPIOs.
 382
 383config GPIO_MT7621
 384        bool "Mediatek MT7621 GPIO Support"
 385        depends on SOC_MT7620 || SOC_MT7621 || COMPILE_TEST
 386        depends on OF_GPIO
 387        select GPIO_GENERIC
 388        select GPIOLIB_IRQCHIP
 389        help
 390          Say yes here to support the Mediatek MT7621 SoC GPIO device
 391
 392config GPIO_MVEBU
 393        def_bool y
 394        depends on PLAT_ORION || ARCH_MVEBU
 395        depends on OF_GPIO
 396        select GENERIC_IRQ_CHIP
 397        select REGMAP_MMIO
 398
 399config GPIO_MXC
 400        def_bool y
 401        depends on ARCH_MXC || COMPILE_TEST
 402        select GPIO_GENERIC
 403        select GENERIC_IRQ_CHIP
 404
 405config GPIO_MXS
 406        def_bool y
 407        depends on ARCH_MXS || COMPILE_TEST
 408        select GPIO_GENERIC
 409        select GENERIC_IRQ_CHIP
 410
 411config GPIO_OCTEON
 412        tristate "Cavium OCTEON GPIO"
 413        depends on CAVIUM_OCTEON_SOC
 414        default y
 415        help
 416          Say yes here to support the on-chip GPIO lines on the OCTEON
 417          family of SOCs.
 418
 419config GPIO_OMAP
 420        tristate "TI OMAP GPIO support" if ARCH_OMAP2PLUS || COMPILE_TEST
 421        default y if ARCH_OMAP
 422        depends on ARM
 423        select GENERIC_IRQ_CHIP
 424        select GPIOLIB_IRQCHIP
 425        help
 426          Say yes here to enable GPIO support for TI OMAP SoCs.
 427
 428config GPIO_PL061
 429        tristate "PrimeCell PL061 GPIO support"
 430        depends on ARM_AMBA
 431        select IRQ_DOMAIN
 432        select GPIOLIB_IRQCHIP
 433        help
 434          Say yes here to support the PrimeCell PL061 GPIO device
 435
 436config GPIO_PMIC_EIC_SPRD
 437        tristate "Spreadtrum PMIC EIC support"
 438        depends on MFD_SC27XX_PMIC || COMPILE_TEST
 439        depends on OF_GPIO
 440        select GPIOLIB_IRQCHIP
 441        help
 442          Say yes here to support Spreadtrum PMIC EIC device.
 443
 444config GPIO_PXA
 445        bool "PXA GPIO support"
 446        depends on ARCH_PXA || ARCH_MMP || COMPILE_TEST
 447        help
 448          Say yes here to support the PXA GPIO device
 449
 450config GPIO_RCAR
 451        tristate "Renesas R-Car GPIO"
 452        depends on ARCH_RENESAS || COMPILE_TEST
 453        select GPIOLIB_IRQCHIP
 454        help
 455          Say yes here to support GPIO on Renesas R-Car SoCs.
 456
 457config GPIO_RDA
 458        bool "RDA Micro GPIO controller support"
 459        depends on ARCH_RDA || COMPILE_TEST
 460        depends on OF_GPIO
 461        select GPIO_GENERIC
 462        select GPIOLIB_IRQCHIP
 463        help
 464          Say Y here to support RDA Micro GPIO controller.
 465
 466config GPIO_REG
 467        bool
 468        help
 469          A 32-bit single register GPIO fixed in/out implementation.  This
 470          can be used to represent any register as a set of GPIO signals.
 471
 472config GPIO_SAMA5D2_PIOBU
 473        tristate "SAMA5D2 PIOBU GPIO support"
 474        depends on MFD_SYSCON
 475        depends on OF_GPIO
 476        select GPIO_SYSCON
 477        help
 478          Say yes here to use the PIOBU pins as GPIOs.
 479
 480          PIOBU pins on the SAMA5D2 can be used as GPIOs.
 481          The difference from regular GPIOs is that they
 482          maintain their value during backup/self-refresh.
 483
 484config GPIO_SIFIVE
 485        bool "SiFive GPIO support"
 486        depends on OF_GPIO && IRQ_DOMAIN_HIERARCHY
 487        select GPIO_GENERIC
 488        select GPIOLIB_IRQCHIP
 489        select REGMAP_MMIO
 490        help
 491          Say yes here to support the GPIO device on SiFive SoCs.
 492
 493config GPIO_SIOX
 494        tristate "SIOX GPIO support"
 495        depends on SIOX
 496        select GPIOLIB_IRQCHIP
 497        help
 498          Say yes here to support SIOX I/O devices. These are units connected
 499          via a SIOX bus and have a number of fixed-direction I/O lines.
 500
 501config GPIO_SNPS_CREG
 502        bool "Synopsys GPIO via CREG (Control REGisters) driver"
 503        depends on ARC || COMPILE_TEST
 504        depends on OF_GPIO
 505        help
 506          This driver supports GPIOs via CREG on various Synopsys SoCs.
 507          This is a single-register MMIO GPIO driver for complex cases
 508          where only several fields in register belong to GPIO lines and
 509          each GPIO line owns a field with different length and on/off value.
 510
 511config GPIO_SPEAR_SPICS
 512        bool "ST SPEAr13xx SPI Chip Select as GPIO support"
 513        depends on PLAT_SPEAR
 514        select GENERIC_IRQ_CHIP
 515        help
 516          Say yes here to support ST SPEAr SPI Chip Select as GPIO device
 517
 518config GPIO_SPRD
 519        tristate "Spreadtrum GPIO support"
 520        depends on ARCH_SPRD || COMPILE_TEST
 521        depends on OF_GPIO
 522        select GPIOLIB_IRQCHIP
 523        help
 524          Say yes here to support Spreadtrum GPIO device.
 525
 526config GPIO_STA2X11
 527        bool "STA2x11/ConneXt GPIO support"
 528        depends on MFD_STA2X11
 529        select GENERIC_IRQ_CHIP
 530        help
 531          Say yes here to support the STA2x11/ConneXt GPIO device.
 532          The GPIO module has 128 GPIO pins with alternate functions.
 533
 534config GPIO_STP_XWAY
 535        bool "XWAY STP GPIOs"
 536        depends on SOC_XWAY || COMPILE_TEST
 537        depends on OF_GPIO
 538        help
 539          This enables support for the Serial To Parallel (STP) unit found on
 540          XWAY SoC. The STP allows the SoC to drive a shift registers cascade,
 541          that can be up to 24 bit. This peripheral is aimed at driving leds.
 542          Some of the gpios/leds can be auto updated by the soc with dsl and
 543          phy status.
 544
 545config GPIO_SYSCON
 546        tristate "GPIO based on SYSCON"
 547        depends on MFD_SYSCON && OF
 548        help
 549          Say yes here to support GPIO functionality though SYSCON driver.
 550
 551config GPIO_TB10X
 552        bool
 553        select GPIO_GENERIC
 554        select GENERIC_IRQ_CHIP
 555        select OF_GPIO
 556
 557config GPIO_TEGRA
 558        bool "NVIDIA Tegra GPIO support"
 559        default ARCH_TEGRA
 560        depends on ARCH_TEGRA || COMPILE_TEST
 561        depends on OF_GPIO
 562        help
 563          Say yes here to support GPIO pins on NVIDIA Tegra SoCs.
 564
 565config GPIO_TEGRA186
 566        tristate "NVIDIA Tegra186 GPIO support"
 567        default ARCH_TEGRA_186_SOC || ARCH_TEGRA_194_SOC
 568        depends on ARCH_TEGRA_186_SOC || ARCH_TEGRA_194_SOC || COMPILE_TEST
 569        depends on OF_GPIO
 570        select GPIOLIB_IRQCHIP
 571        select IRQ_DOMAIN_HIERARCHY
 572        help
 573          Say yes here to support GPIO pins on NVIDIA Tegra186 SoCs.
 574
 575config GPIO_TS4800
 576        tristate "TS-4800 DIO blocks and compatibles"
 577        depends on OF_GPIO
 578        depends on SOC_IMX51 || COMPILE_TEST
 579        select GPIO_GENERIC
 580        help
 581          This driver support TS-4800 FPGA GPIO controllers.
 582
 583config GPIO_THUNDERX
 584        tristate "Cavium ThunderX/OCTEON-TX GPIO"
 585        depends on ARCH_THUNDER || (64BIT && COMPILE_TEST)
 586        depends on PCI_MSI
 587        select GPIOLIB_IRQCHIP
 588        select IRQ_DOMAIN_HIERARCHY
 589        select IRQ_FASTEOI_HIERARCHY_HANDLERS
 590        help
 591          Say yes here to support the on-chip GPIO lines on the ThunderX
 592          and OCTEON-TX families of SoCs.
 593
 594config GPIO_UNIPHIER
 595        tristate "UniPhier GPIO support"
 596        depends on ARCH_UNIPHIER || COMPILE_TEST
 597        depends on OF_GPIO
 598        select IRQ_DOMAIN_HIERARCHY
 599        help
 600          Say yes here to support UniPhier GPIOs.
 601
 602config GPIO_VF610
 603        def_bool y
 604        depends on ARCH_MXC && SOC_VF610
 605        select GPIOLIB_IRQCHIP
 606        help
 607          Say yes here to support Vybrid vf610 GPIOs.
 608
 609config GPIO_VR41XX
 610        tristate "NEC VR4100 series General-purpose I/O Uint support"
 611        depends on CPU_VR41XX
 612        help
 613          Say yes here to support the NEC VR4100 series General-purpose I/O Uint
 614
 615config GPIO_VX855
 616        tristate "VIA VX855/VX875 GPIO"
 617        depends on (X86 || COMPILE_TEST) && PCI
 618        select MFD_CORE
 619        select MFD_VX855
 620        help
 621          Support access to the VX855/VX875 GPIO lines through the gpio library.
 622
 623          This driver provides common support for accessing the device,
 624          additional drivers must be enabled in order to use the
 625          functionality of the device.
 626
 627config GPIO_WCD934X
 628        tristate "Qualcomm Technologies Inc WCD9340/WCD9341 gpio controller driver"
 629        depends on MFD_WCD934X && OF_GPIO
 630        help
 631         This driver is to supprot GPIO block found on the Qualcomm Technologies
 632         Inc WCD9340/WCD9341 Audio Codec.
 633
 634config GPIO_XGENE
 635        bool "APM X-Gene GPIO controller support"
 636        depends on ARM64 && OF_GPIO
 637        help
 638          This driver is to support the GPIO block within the APM X-Gene SoC
 639          platform's generic flash controller. The GPIO pins are muxed with
 640          the generic flash controller's address and data pins. Say yes
 641          here to enable the GFC GPIO functionality.
 642
 643config GPIO_XGENE_SB
 644        tristate "APM X-Gene GPIO standby controller support"
 645        depends on (ARCH_XGENE || COMPILE_TEST)
 646        select GPIO_GENERIC
 647        select GPIOLIB_IRQCHIP
 648        select IRQ_DOMAIN_HIERARCHY
 649        help
 650          This driver supports the GPIO block within the APM X-Gene
 651          Standby Domain. Say yes here to enable the GPIO functionality.
 652
 653config GPIO_XILINX
 654        tristate "Xilinx GPIO support"
 655        help
 656          Say yes here to support the Xilinx FPGA GPIO device
 657
 658config GPIO_XLP
 659        tristate "Netlogic XLP GPIO support"
 660        depends on OF_GPIO && (CPU_XLP || ARCH_THUNDER2 || COMPILE_TEST)
 661        select GPIOLIB_IRQCHIP
 662        help
 663          This driver provides support for GPIO interface on Netlogic XLP MIPS64
 664          SoCs. Currently supported XLP variants are XLP8XX, XLP3XX, XLP2XX,
 665          XLP9XX and XLP5XX. The same GPIO controller block is also present in
 666          Cavium's ThunderX2 CN99XX SoCs.
 667
 668          If unsure, say N.
 669
 670config GPIO_XTENSA
 671        bool "Xtensa GPIO32 support"
 672        depends on XTENSA
 673        depends on HAVE_XTENSA_GPIO32
 674        depends on !SMP
 675        help
 676          Say yes here to support the Xtensa internal GPIO32 IMPWIRE (input)
 677          and EXPSTATE (output) ports
 678
 679config GPIO_ZEVIO
 680        bool "LSI ZEVIO SoC memory mapped GPIOs"
 681        depends on ARM && OF_GPIO
 682        help
 683          Say yes here to support the GPIO controller in LSI ZEVIO SoCs.
 684
 685config GPIO_ZYNQ
 686        tristate "Xilinx Zynq GPIO support"
 687        depends on ARCH_ZYNQ || ARCH_ZYNQMP
 688        select GPIOLIB_IRQCHIP
 689        help
 690          Say yes here to support Xilinx Zynq GPIO controller.
 691
 692config GPIO_ZX
 693        bool "ZTE ZX GPIO support"
 694        depends on ARCH_ZX || COMPILE_TEST
 695        select GPIOLIB_IRQCHIP
 696        help
 697          Say yes here to support the GPIO device on ZTE ZX SoCs.
 698
 699config GPIO_LOONGSON1
 700        tristate "Loongson1 GPIO support"
 701        depends on MACH_LOONGSON32
 702        select GPIO_GENERIC
 703        help
 704          Say Y or M here to support GPIO on Loongson1 SoCs.
 705
 706config GPIO_AMD_FCH
 707        tristate "GPIO support for AMD Fusion Controller Hub (G-series SOCs)"
 708        help
 709          This option enables driver for GPIO on AMDs Fusion Controller Hub,
 710          as found on G-series SOCs (eg. GX-412TC)
 711
 712          Note: This driver doesn't registers itself automatically, as it
 713          needs to be provided with platform specific configuration.
 714          (See eg. CONFIG_PCENGINES_APU2.)
 715endmenu
 716
 717menu "Port-mapped I/O GPIO drivers"
 718        depends on X86 # Unconditional I/O space access
 719
 720config GPIO_104_DIO_48E
 721        tristate "ACCES 104-DIO-48E GPIO support"
 722        depends on PC104
 723        select ISA_BUS_API
 724        select GPIOLIB_IRQCHIP
 725        help
 726          Enables GPIO support for the ACCES 104-DIO-48E series (104-DIO-48E,
 727          104-DIO-24E). The base port addresses for the devices may be
 728          configured via the base module parameter. The interrupt line numbers
 729          for the devices may be configured via the irq module parameter.
 730
 731config GPIO_104_IDIO_16
 732        tristate "ACCES 104-IDIO-16 GPIO support"
 733        depends on PC104
 734        select ISA_BUS_API
 735        select GPIOLIB_IRQCHIP
 736        help
 737          Enables GPIO support for the ACCES 104-IDIO-16 family (104-IDIO-16,
 738          104-IDIO-16E, 104-IDO-16, 104-IDIO-8, 104-IDIO-8E, 104-IDO-8). The
 739          base port addresses for the devices may be configured via the base
 740          module parameter. The interrupt line numbers for the devices may be
 741          configured via the irq module parameter.
 742
 743config GPIO_104_IDI_48
 744        tristate "ACCES 104-IDI-48 GPIO support"
 745        depends on PC104
 746        select ISA_BUS_API
 747        select GPIOLIB_IRQCHIP
 748        help
 749          Enables GPIO support for the ACCES 104-IDI-48 family (104-IDI-48A,
 750          104-IDI-48AC, 104-IDI-48B, 104-IDI-48BC). The base port addresses for
 751          the devices may be configured via the base module parameter. The
 752          interrupt line numbers for the devices may be configured via the irq
 753          module parameter.
 754
 755config GPIO_F7188X
 756        tristate "F71869, F71869A, F71882FG, F71889F and F81866 GPIO support"
 757        help
 758          This option enables support for GPIOs found on Fintek Super-I/O
 759          chips F71869, F71869A, F71882FG, F71889F and F81866.
 760
 761          To compile this driver as a module, choose M here: the module will
 762          be called f7188x-gpio.
 763
 764config GPIO_GPIO_MM
 765        tristate "Diamond Systems GPIO-MM GPIO support"
 766        depends on PC104
 767        select ISA_BUS_API
 768        help
 769          Enables GPIO support for the Diamond Systems GPIO-MM and GPIO-MM-12.
 770
 771          The Diamond Systems GPIO-MM device features 48 lines of digital I/O
 772          via the emulation of dual 82C55A PPI chips. This driver provides GPIO
 773          support for these 48 channels of digital I/O.
 774
 775          The base port addresses for the devices may be configured via the base
 776          array module parameter.
 777
 778config GPIO_IT87
 779        tristate "IT87xx GPIO support"
 780        help
 781          Say yes here to support GPIO functionality of IT87xx Super I/O chips.
 782
 783          This driver is tested with ITE IT8728 and IT8732 Super I/O chips, and
 784          supports the IT8761E, IT8613, IT8620E, and IT8628E Super I/O chips as
 785          well.
 786
 787          To compile this driver as a module, choose M here: the module will
 788          be called gpio_it87
 789
 790config GPIO_SCH
 791        tristate "Intel SCH/TunnelCreek/Centerton/Quark X1000 GPIO"
 792        depends on (X86 || COMPILE_TEST) && PCI
 793        select MFD_CORE
 794        select LPC_SCH
 795        help
 796          Say yes here to support GPIO interface on Intel Poulsbo SCH,
 797          Intel Tunnel Creek processor, Intel Centerton processor or
 798          Intel Quark X1000 SoC.
 799
 800          The Intel SCH contains a total of 14 GPIO pins. Ten GPIOs are
 801          powered by the core power rail and are turned off during sleep
 802          modes (S3 and higher). The remaining four GPIOs are powered by
 803          the Intel SCH suspend power supply. These GPIOs remain
 804          active during S3. The suspend powered GPIOs can be used to wake the
 805          system from the Suspend-to-RAM state.
 806
 807          The Intel Tunnel Creek processor has 5 GPIOs powered by the
 808          core power rail and 9 from suspend power supply.
 809
 810          The Intel Centerton processor has a total of 30 GPIO pins.
 811          Twenty-one are powered by the core power rail and 9 from the
 812          suspend power supply.
 813
 814          The Intel Quark X1000 SoC has 2 GPIOs powered by the core
 815          power well and 6 from the suspend power well.
 816
 817config GPIO_SCH311X
 818        tristate "SMSC SCH311x SuperI/O GPIO"
 819        help
 820          Driver to enable the GPIOs found on SMSC SMSC SCH3112, SCH3114 and
 821          SCH3116 "Super I/O" chipsets.
 822
 823          To compile this driver as a module, choose M here: the module will
 824          be called gpio-sch311x.
 825
 826config GPIO_TS5500
 827        tristate "TS-5500 DIO blocks and compatibles"
 828        depends on TS5500 || COMPILE_TEST
 829        help
 830          This driver supports Digital I/O exposed by pin blocks found on some
 831          Technologic Systems platforms. It includes, but is not limited to, 3
 832          blocks of the TS-5500: DIO1, DIO2 and the LCD port, and the TS-5600
 833          LCD port.
 834
 835config GPIO_WINBOND
 836        tristate "Winbond Super I/O GPIO support"
 837        select ISA_BUS_API
 838        help
 839          This option enables support for GPIOs found on Winbond Super I/O
 840          chips.
 841          Currently, only W83627UHG (also known as Nuvoton NCT6627UD) is
 842          supported.
 843
 844          You will need to provide a module parameter "gpios", or a
 845          boot-time parameter "gpio_winbond.gpios" with a bitmask of GPIO
 846          ports to enable (bit 0 is GPIO1, bit 1 is GPIO2, etc.).
 847
 848          To compile this driver as a module, choose M here: the module will
 849          be called gpio-winbond.
 850
 851config GPIO_WS16C48
 852        tristate "WinSystems WS16C48 GPIO support"
 853        select ISA_BUS_API
 854        select GPIOLIB_IRQCHIP
 855        help
 856          Enables GPIO support for the WinSystems WS16C48. The base port
 857          addresses for the devices may be configured via the base module
 858          parameter. The interrupt line numbers for the devices may be
 859          configured via the irq module parameter.
 860
 861endmenu
 862
 863menu "I2C GPIO expanders"
 864        depends on I2C
 865
 866config GPIO_ADP5588
 867        tristate "ADP5588 I2C GPIO expander"
 868        help
 869          This option enables support for 18 GPIOs found
 870          on Analog Devices ADP5588 GPIO Expanders.
 871
 872config GPIO_ADP5588_IRQ
 873        bool "Interrupt controller support for ADP5588"
 874        depends on GPIO_ADP5588=y
 875        select GPIOLIB_IRQCHIP
 876        help
 877          Say yes here to enable the adp5588 to be used as an interrupt
 878          controller. It requires the driver to be built in the kernel.
 879
 880config GPIO_ADNP
 881        tristate "Avionic Design N-bit GPIO expander"
 882        depends on OF_GPIO
 883        select GPIOLIB_IRQCHIP
 884        help
 885          This option enables support for N GPIOs found on Avionic Design
 886          I2C GPIO expanders. The register space will be extended by powers
 887          of two, so the controller will need to accommodate for that. For
 888          example: if a controller provides 48 pins, 6 registers will be
 889          enough to represent all pins, but the driver will assume a
 890          register layout for 64 pins (8 registers).
 891
 892config GPIO_GW_PLD
 893        tristate "Gateworks PLD GPIO Expander"
 894        depends on OF_GPIO
 895        help
 896          Say yes here to provide access to the Gateworks I2C PLD GPIO
 897          Expander. This is used at least on the Cambria GW2358-4.
 898
 899config GPIO_MAX7300
 900        tristate "Maxim MAX7300 GPIO expander"
 901        select GPIO_MAX730X
 902        help
 903          GPIO driver for Maxim MAX7300 I2C-based GPIO expander.
 904
 905config GPIO_MAX732X
 906        tristate "MAX7319, MAX7320-7327 I2C Port Expanders"
 907        help
 908          Say yes here to support the MAX7319, MAX7320-7327 series of I2C
 909          Port Expanders. Each IO port on these chips has a fixed role of
 910          Input (designated by 'I'), Push-Pull Output ('O'), or Open-Drain
 911          Input and Output (designed by 'P'). The combinations are listed
 912          below:
 913
 914          8 bits:       max7319 (8I), max7320 (8O), max7321 (8P),
 915                        max7322 (4I4O), max7323 (4P4O)
 916
 917          16 bits:      max7324 (8I8O), max7325 (8P8O),
 918                        max7326 (4I12O), max7327 (4P12O)
 919
 920          Board setup code must specify the model to use, and the start
 921          number for these GPIOs.
 922
 923config GPIO_MAX732X_IRQ
 924        bool "Interrupt controller support for MAX732x"
 925        depends on GPIO_MAX732X=y
 926        select GPIOLIB_IRQCHIP
 927        help
 928          Say yes here to enable the max732x to be used as an interrupt
 929          controller. It requires the driver to be built in the kernel.
 930
 931config GPIO_MC9S08DZ60
 932        bool "MX35 3DS BOARD MC9S08DZ60 GPIO functions"
 933        depends on I2C=y && MACH_MX35_3DS
 934        help
 935          Select this to enable the MC9S08DZ60 GPIO driver
 936
 937config GPIO_PCA953X
 938        tristate "PCA95[357]x, PCA9698, TCA64xx, and MAX7310 I/O ports"
 939        select REGMAP_I2C
 940        help
 941          Say yes here to provide access to several register-oriented
 942          SMBus I/O expanders, made mostly by NXP or TI.  Compatible
 943          models include:
 944
 945          4 bits:       pca9536, pca9537
 946
 947          8 bits:       max7310, max7315, pca6107, pca9534, pca9538, pca9554,
 948                        pca9556, pca9557, pca9574, tca6408, tca9554, xra1202
 949
 950          16 bits:      max7312, max7313, pca9535, pca9539, pca9555, pca9575,
 951                        tca6416
 952
 953          24 bits:      tca6424
 954
 955          40 bits:      pca9505, pca9698
 956
 957config GPIO_PCA953X_IRQ
 958        bool "Interrupt controller support for PCA953x"
 959        depends on GPIO_PCA953X
 960        select GPIOLIB_IRQCHIP
 961        help
 962          Say yes here to enable the pca953x to be used as an interrupt
 963          controller. It requires the driver to be built in the kernel.
 964
 965config GPIO_PCA9570
 966        tristate "PCA9570 4-Bit I2C GPO expander"
 967        help
 968          Say yes here to enable the GPO driver for the NXP PCA9570 chip.
 969
 970          To compile this driver as a module, choose M here: the module will
 971          be called gpio-pca9570.
 972
 973config GPIO_PCF857X
 974        tristate "PCF857x, PCA{85,96}7x, and MAX732[89] I2C GPIO expanders"
 975        select GPIOLIB_IRQCHIP
 976        select IRQ_DOMAIN
 977        help
 978          Say yes here to provide access to most "quasi-bidirectional" I2C
 979          GPIO expanders used for additional digital outputs or inputs.
 980          Most of these parts are from NXP, though TI is a second source for
 981          some of them.  Compatible models include:
 982
 983          8 bits:   pcf8574, pcf8574a, pca8574, pca8574a,
 984                    pca9670, pca9672, pca9674, pca9674a,
 985                    max7328, max7329
 986
 987          16 bits:  pcf8575, pcf8575c, pca8575,
 988                    pca9671, pca9673, pca9675
 989
 990          Your board setup code will need to declare the expanders in
 991          use, and assign numbers to the GPIOs they expose.  Those GPIOs
 992          can then be used from drivers and other kernel code, just like
 993          other GPIOs, but only accessible from task contexts.
 994
 995          This driver provides an in-kernel interface to those GPIOs using
 996          platform-neutral GPIO calls.
 997
 998config GPIO_TPIC2810
 999        tristate "TPIC2810 8-Bit I2C GPO expander"
1000        help
1001          Say yes here to enable the GPO driver for the TI TPIC2810 chip.
1002
1003          To compile this driver as a module, choose M here: the module will
1004          be called gpio-tpic2810.
1005
1006config GPIO_TS4900
1007        tristate "Technologic Systems FPGA I2C GPIO"
1008        depends on SOC_IMX6 || COMPILE_TEST
1009        select REGMAP_I2C
1010        help
1011          Say yes here to enabled the GPIO driver for Technologic's FPGA core.
1012          Series supported include TS-4100, TS-4900, TS-7970 and TS-7990.
1013
1014endmenu
1015
1016menu "MFD GPIO expanders"
1017
1018config GPIO_ADP5520
1019        tristate "GPIO Support for ADP5520 PMIC"
1020        depends on PMIC_ADP5520
1021        help
1022          This option enables support for on-chip GPIO found
1023          on Analog Devices ADP5520 PMICs.
1024
1025config GPIO_ALTERA_A10SR
1026        tristate "Altera Arria10 System Resource GPIO"
1027        depends on MFD_ALTERA_A10SR
1028        help
1029          Driver for Arria10 Development Kit GPIO expansion which
1030          includes reads of pushbuttons and DIP switches as well
1031          as writes to LEDs.
1032
1033config GPIO_ARIZONA
1034        tristate "Wolfson Microelectronics Arizona class devices"
1035        depends on MFD_ARIZONA
1036        help
1037          Support for GPIOs on Wolfson Arizona class devices.
1038
1039config GPIO_BD70528
1040        tristate "ROHM BD70528 GPIO support"
1041        depends on MFD_ROHM_BD70528
1042        help
1043          Support for GPIOs on ROHM BD70528 PMIC. There are four GPIOs
1044          available on the ROHM PMIC in total. The GPIOs can also
1045          generate interrupts.
1046
1047          This driver can also be built as a module. If so, the module
1048          will be called gpio-bd70528.
1049
1050config GPIO_BD71828
1051        tristate "ROHM BD71828 GPIO support"
1052        depends on MFD_ROHM_BD71828
1053        help
1054          Support for GPIOs on ROHM BD71828 PMIC. There are three GPIOs
1055          available on the ROHM PMIC in total. The GPIOs are limited to
1056          outputs only and pins must be configured to GPIO outputs by
1057          OTP. Enable this only if you want to use these pins as outputs.
1058
1059          This driver can also be built as a module. If so, the module
1060          will be called gpio-bd71828.
1061
1062config GPIO_BD9571MWV
1063        tristate "ROHM BD9571 GPIO support"
1064        depends on MFD_BD9571MWV
1065        help
1066          Support for GPIOs on ROHM BD9571 PMIC. There are two GPIOs
1067          available on the ROHM PMIC in total, both of which can also
1068          generate interrupts.
1069
1070          This driver can also be built as a module. If so, the module
1071          will be called gpio-bd9571mwv.
1072
1073config GPIO_CRYSTAL_COVE
1074        tristate "GPIO support for Crystal Cove PMIC"
1075        depends on (X86 || COMPILE_TEST) && INTEL_SOC_PMIC
1076        select GPIOLIB_IRQCHIP
1077        help
1078          Support for GPIO pins on Crystal Cove PMIC.
1079
1080          Say Yes if you have a Intel SoC based tablet with Crystal Cove PMIC
1081          inside.
1082
1083          This driver can also be built as a module. If so, the module will be
1084          called gpio-crystalcove.
1085
1086config GPIO_CS5535
1087        tristate "AMD CS5535/CS5536 GPIO support"
1088        depends on X86 || MIPS || COMPILE_TEST
1089        depends on MFD_CS5535
1090        help
1091          The AMD CS5535 and CS5536 southbridges support 28 GPIO pins that
1092          can be used for quite a number of things.  The CS5535/6 is found on
1093          AMD Geode and Lemote Yeeloong devices.
1094
1095          If unsure, say N.
1096
1097config GPIO_DA9052
1098        tristate "Dialog DA9052 GPIO"
1099        depends on PMIC_DA9052
1100        help
1101          Say yes here to enable the GPIO driver for the DA9052 chip.
1102
1103config GPIO_DA9055
1104        tristate "Dialog Semiconductor DA9055 GPIO"
1105        depends on MFD_DA9055
1106        help
1107          Say yes here to enable the GPIO driver for the DA9055 chip.
1108
1109          The Dialog DA9055 PMIC chip has 3 GPIO pins that can be
1110          be controller by this driver.
1111
1112          If driver is built as a module it will be called gpio-da9055.
1113
1114config GPIO_DLN2
1115        tristate "Diolan DLN2 GPIO support"
1116        depends on MFD_DLN2
1117        select GPIOLIB_IRQCHIP
1118
1119        help
1120          Select this option to enable GPIO driver for the Diolan DLN2
1121          board.
1122
1123          This driver can also be built as a module. If so, the module
1124          will be called gpio-dln2.
1125
1126config HTC_EGPIO
1127        bool "HTC EGPIO support"
1128        depends on ARM
1129        help
1130          This driver supports the CPLD egpio chip present on
1131          several HTC phones.  It provides basic support for input
1132          pins, output pins, and irqs.
1133
1134config GPIO_JANZ_TTL
1135        tristate "Janz VMOD-TTL Digital IO Module"
1136        depends on MFD_JANZ_CMODIO
1137        help
1138          This enables support for the Janz VMOD-TTL Digital IO module.
1139          This driver provides support for driving the pins in output
1140          mode only. Input mode is not supported.
1141
1142config GPIO_KEMPLD
1143        tristate "Kontron ETX / COMexpress GPIO"
1144        depends on MFD_KEMPLD
1145        help
1146          This enables support for the PLD GPIO interface on some Kontron ETX
1147          and COMexpress (ETXexpress) modules.
1148
1149          This driver can also be built as a module. If so, the module will be
1150          called gpio-kempld.
1151
1152config GPIO_LP3943
1153        tristate "TI/National Semiconductor LP3943 GPIO expander"
1154        depends on MFD_LP3943
1155        help
1156          GPIO driver for LP3943 MFD.
1157          LP3943 can be used as a GPIO expander which provides up to 16 GPIOs.
1158          Open drain outputs are required for this usage.
1159
1160config GPIO_LP873X
1161        tristate "TI LP873X GPO"
1162        depends on MFD_TI_LP873X
1163        help
1164          This driver supports the GPO on TI Lp873x PMICs. 2 GPOs are present
1165          on LP873X PMICs.
1166
1167          This driver can also be built as a module. If so, the module will be
1168          called gpio-lp873x.
1169
1170config GPIO_LP87565
1171        tristate "TI LP87565 GPIO"
1172        depends on MFD_TI_LP87565
1173        help
1174          This driver supports the GPIO on TI Lp873565 PMICs. 3 GPIOs are present
1175          on LP87565 PMICs.
1176
1177          This driver can also be built as a module. If so, the module will be
1178          called gpio-lp87565.
1179
1180config GPIO_MADERA
1181        tristate "Cirrus Logic Madera class codecs"
1182        depends on PINCTRL_MADERA
1183        help
1184          Support for GPIOs on Cirrus Logic Madera class codecs.
1185
1186config GPIO_MAX77620
1187        tristate "GPIO support for PMIC MAX77620 and MAX20024"
1188        depends on MFD_MAX77620
1189        select GPIOLIB_IRQCHIP
1190        help
1191          GPIO driver for MAX77620 and MAX20024 PMIC from Maxim Semiconductor.
1192          MAX77620 PMIC has 8 pins that can be configured as GPIOs. The
1193          driver also provides interrupt support for each of the gpios.
1194          Say yes here to enable the max77620 to be used as gpio controller.
1195
1196config GPIO_MAX77650
1197        tristate "Maxim MAX77650/77651 GPIO support"
1198        depends on MFD_MAX77650
1199        help
1200          GPIO driver for MAX77650/77651 PMIC from Maxim Semiconductor.
1201          These chips have a single pin that can be configured as GPIO.
1202
1203config GPIO_MSIC
1204        bool "Intel MSIC mixed signal gpio support"
1205        depends on (X86 || COMPILE_TEST) && MFD_INTEL_MSIC
1206        help
1207          Enable support for GPIO on intel MSIC controllers found in
1208          intel MID devices
1209
1210config GPIO_PALMAS
1211        bool "TI PALMAS series PMICs GPIO"
1212        depends on MFD_PALMAS
1213        help
1214          Select this option to enable GPIO driver for the TI PALMAS
1215          series chip family.
1216
1217config GPIO_RC5T583
1218        bool "RICOH RC5T583 GPIO"
1219        depends on MFD_RC5T583
1220        help
1221          Select this option to enable GPIO driver for the Ricoh RC5T583
1222          chip family.
1223          This driver provides the support for driving/reading the gpio pins
1224          of RC5T583 device through standard gpio library.
1225
1226config GPIO_STMPE
1227        bool "STMPE GPIOs"
1228        depends on MFD_STMPE
1229        depends on OF_GPIO
1230        select GPIOLIB_IRQCHIP
1231        help
1232          This enables support for the GPIOs found on the STMPE I/O
1233          Expanders.
1234
1235config GPIO_TC3589X
1236        bool "TC3589X GPIOs"
1237        depends on MFD_TC3589X
1238        depends on OF_GPIO
1239        select GPIOLIB_IRQCHIP
1240        help
1241          This enables support for the GPIOs found on the TC3589X
1242          I/O Expander.
1243
1244config GPIO_TIMBERDALE
1245        bool "Support for timberdale GPIO IP"
1246        depends on MFD_TIMBERDALE
1247        help
1248        Add support for the GPIO IP in the timberdale FPGA.
1249
1250config GPIO_TPS65086
1251        tristate "TI TPS65086 GPO"
1252        depends on MFD_TPS65086
1253        help
1254          This driver supports the GPO on TI TPS65086x PMICs.
1255
1256config GPIO_TPS65218
1257        tristate "TPS65218 GPIO"
1258        depends on MFD_TPS65218
1259        help
1260          Select this option to enable GPIO driver for the TPS65218
1261          chip family.
1262
1263config GPIO_TPS6586X
1264        bool "TPS6586X GPIO"
1265        depends on MFD_TPS6586X
1266        help
1267          Select this option to enable GPIO driver for the TPS6586X
1268          chip family.
1269
1270config GPIO_TPS65910
1271        bool "TPS65910 GPIO"
1272        depends on MFD_TPS65910
1273        help
1274          Select this option to enable GPIO driver for the TPS65910
1275          chip family.
1276
1277config GPIO_TPS65912
1278        tristate "TI TPS65912 GPIO"
1279        depends on MFD_TPS65912
1280        help
1281          This driver supports TPS65912 gpio chip
1282
1283config GPIO_TPS68470
1284        bool "TPS68470 GPIO"
1285        depends on MFD_TPS68470
1286        help
1287          Select this option to enable GPIO driver for the TPS68470
1288          chip family.
1289          There are 7 GPIOs and few sensor related GPIOs supported
1290          by the TPS68470. While the 7 GPIOs can be configured as
1291          input or output as appropriate, the sensor related GPIOs
1292          are "output only" GPIOs.
1293
1294          This driver config is bool, as the GPIO functionality
1295          of the TPS68470 must be available before dependent
1296          drivers are loaded.
1297
1298config GPIO_TQMX86
1299        tristate "TQ-Systems QTMX86 GPIO"
1300        depends on MFD_TQMX86 || COMPILE_TEST
1301        select GPIOLIB_IRQCHIP
1302        help
1303          This driver supports GPIO on the TQMX86 IO controller.
1304
1305config GPIO_TWL4030
1306        tristate "TWL4030, TWL5030, and TPS659x0 GPIOs"
1307        depends on TWL4030_CORE
1308        help
1309          Say yes here to access the GPIO signals of various multi-function
1310          power management chips from Texas Instruments.
1311
1312config GPIO_TWL6040
1313        tristate "TWL6040 GPO"
1314        depends on TWL6040_CORE
1315        help
1316          Say yes here to access the GPO signals of twl6040
1317          audio chip from Texas Instruments.
1318
1319config GPIO_UCB1400
1320        tristate "Philips UCB1400 GPIO"
1321        depends on UCB1400_CORE
1322        help
1323          This enables support for the Philips UCB1400 GPIO pins.
1324          The UCB1400 is an AC97 audio codec.
1325
1326config GPIO_WHISKEY_COVE
1327        tristate "GPIO support for Whiskey Cove PMIC"
1328        depends on (X86 || COMPILE_TEST) && INTEL_SOC_PMIC_BXTWC
1329        select GPIOLIB_IRQCHIP
1330        help
1331          Support for GPIO pins on Whiskey Cove PMIC.
1332
1333          Say Yes if you have a Intel SoC based tablet with Whiskey Cove PMIC
1334          inside.
1335
1336          This driver can also be built as a module. If so, the module will be
1337          called gpio-wcove.
1338
1339config GPIO_WM831X
1340        tristate "WM831x GPIOs"
1341        depends on MFD_WM831X
1342        help
1343          Say yes here to access the GPIO signals of WM831x power management
1344          chips from Wolfson Microelectronics.
1345
1346config GPIO_WM8350
1347        tristate "WM8350 GPIOs"
1348        depends on MFD_WM8350
1349        help
1350          Say yes here to access the GPIO signals of WM8350 power management
1351          chips from Wolfson Microelectronics.
1352
1353config GPIO_WM8994
1354        tristate "WM8994 GPIOs"
1355        depends on MFD_WM8994
1356        help
1357          Say yes here to access the GPIO signals of WM8994 audio hub
1358          CODECs from Wolfson Microelectronics.
1359
1360endmenu
1361
1362menu "PCI GPIO expanders"
1363        depends on PCI
1364
1365config GPIO_AMD8111
1366        tristate "AMD 8111 GPIO driver"
1367        depends on X86 || COMPILE_TEST
1368        help
1369          The AMD 8111 south bridge contains 32 GPIO pins which can be used.
1370
1371          Note, that usually system firmware/ACPI handles GPIO pins on their
1372          own and users might easily break their systems with uncarefull usage
1373          of this driver!
1374
1375          If unsure, say N
1376
1377config GPIO_BT8XX
1378        tristate "BT8XX GPIO abuser"
1379        depends on VIDEO_BT848=n
1380        help
1381          The BT8xx frame grabber chip has 24 GPIO pins that can be abused
1382          as a cheap PCI GPIO card.
1383
1384          This chip can be found on Miro, Hauppauge and STB TV-cards.
1385
1386          The card needs to be physically altered for using it as a
1387          GPIO card. For more information on how to build a GPIO card
1388          from a BT8xx TV card, see the documentation file at
1389          Documentation/driver-api/gpio/bt8xxgpio.rst
1390
1391          If unsure, say N.
1392
1393config GPIO_INTEL_MID
1394        bool "Intel MID GPIO support"
1395        depends on X86_INTEL_MID
1396        select GPIOLIB_IRQCHIP
1397        help
1398          Say Y here to support Intel MID GPIO.
1399
1400config GPIO_MERRIFIELD
1401        tristate "Intel Merrifield GPIO support"
1402        depends on X86_INTEL_MID
1403        select GPIOLIB_IRQCHIP
1404        help
1405          Say Y here to support Intel Merrifield GPIO.
1406
1407config GPIO_MLXBF
1408        tristate "Mellanox BlueField SoC GPIO"
1409        depends on (MELLANOX_PLATFORM && ARM64 && ACPI) || (64BIT && COMPILE_TEST)
1410        select GPIO_GENERIC
1411        help
1412          Say Y here if you want GPIO support on Mellanox BlueField SoC.
1413
1414config GPIO_MLXBF2
1415        tristate "Mellanox BlueField 2 SoC GPIO"
1416        depends on (MELLANOX_PLATFORM && ARM64 && ACPI) || (64BIT && COMPILE_TEST)
1417        select GPIO_GENERIC
1418        help
1419          Say Y here if you want GPIO support on Mellanox BlueField 2 SoC.
1420
1421config GPIO_ML_IOH
1422        tristate "OKI SEMICONDUCTOR ML7213 IOH GPIO support"
1423        depends on X86 || COMPILE_TEST
1424        select GENERIC_IRQ_CHIP
1425        help
1426          ML7213 is companion chip for Intel Atom E6xx series.
1427          This driver can be used for OKI SEMICONDUCTOR ML7213 IOH(Input/Output
1428          Hub) which is for IVI(In-Vehicle Infotainment) use.
1429          This driver can access the IOH's GPIO device.
1430
1431config GPIO_PCH
1432        tristate "Intel EG20T PCH/LAPIS Semiconductor IOH(ML7223/ML7831) GPIO"
1433        depends on X86_32 || MIPS || COMPILE_TEST
1434        select GENERIC_IRQ_CHIP
1435        help
1436          This driver is for PCH(Platform controller Hub) GPIO of Intel Topcliff
1437          which is an IOH(Input/Output Hub) for x86 embedded processor.
1438          This driver can access PCH GPIO device.
1439
1440          This driver also can be used for LAPIS Semiconductor IOH(Input/
1441          Output Hub), ML7223 and ML7831.
1442          ML7223 IOH is for MP(Media Phone) use.
1443          ML7831 IOH is for general purpose use.
1444          ML7223/ML7831 is companion chip for Intel Atom E6xx series.
1445          ML7223/ML7831 is completely compatible for Intel EG20T PCH.
1446
1447config GPIO_PCI_IDIO_16
1448        tristate "ACCES PCI-IDIO-16 GPIO support"
1449        select GPIOLIB_IRQCHIP
1450        help
1451          Enables GPIO support for the ACCES PCI-IDIO-16. An interrupt is
1452          generated when any of the inputs change state (low to high or high to
1453          low). Input filter control is not supported by this driver, and the
1454          input filters are deactivated by this driver.
1455
1456config GPIO_PCIE_IDIO_24
1457        tristate "ACCES PCIe-IDIO-24 GPIO support"
1458        select GPIOLIB_IRQCHIP
1459        help
1460          Enables GPIO support for the ACCES PCIe-IDIO-24 family (PCIe-IDIO-24,
1461          PCIe-IDI-24, PCIe-IDO-24, PCIe-IDIO-12). An interrupt is generated
1462          when any of the inputs change state (low to high or high to low).
1463          Input filter control is not supported by this driver, and the input
1464          filters are deactivated by this driver.
1465
1466config GPIO_RDC321X
1467        tristate "RDC R-321x GPIO support"
1468        select MFD_CORE
1469        select MFD_RDC321X
1470        help
1471          Support for the RDC R321x SoC GPIOs over southbridge
1472          PCI configuration space.
1473
1474config GPIO_SODAVILLE
1475        bool "Intel Sodaville GPIO support"
1476        depends on X86 && OF
1477        select GPIO_GENERIC
1478        select GENERIC_IRQ_CHIP
1479        help
1480          Say Y here to support Intel Sodaville GPIO.
1481
1482endmenu
1483
1484menu "SPI GPIO expanders"
1485        depends on SPI_MASTER
1486
1487config GPIO_74X164
1488        tristate "74x164 serial-in/parallel-out 8-bits shift register"
1489        depends on OF_GPIO
1490        help
1491          Driver for 74x164 compatible serial-in/parallel-out 8-outputs
1492          shift registers. This driver can be used to provide access
1493          to more gpio outputs.
1494
1495config GPIO_MAX3191X
1496        tristate "Maxim MAX3191x industrial serializer"
1497        select CRC8
1498        help
1499          GPIO driver for Maxim MAX31910, MAX31911, MAX31912, MAX31913,
1500          MAX31953 and MAX31963 industrial serializer, a daisy-chainable
1501          chip to make 8 digital 24V inputs available via SPI.  Supports
1502          CRC checksums to guard against electromagnetic interference,
1503          as well as undervoltage and overtemperature detection.
1504
1505config GPIO_MAX7301
1506        tristate "Maxim MAX7301 GPIO expander"
1507        select GPIO_MAX730X
1508        help
1509          GPIO driver for Maxim MAX7301 SPI-based GPIO expander.
1510
1511config GPIO_MC33880
1512        tristate "Freescale MC33880 high-side/low-side switch"
1513        help
1514          SPI driver for Freescale MC33880 high-side/low-side switch.
1515          This provides GPIO interface supporting inputs and outputs.
1516
1517config GPIO_PISOSR
1518        tristate "Generic parallel-in/serial-out shift register"
1519        help
1520          GPIO driver for SPI compatible parallel-in/serial-out shift
1521          registers. These are input only devices.
1522
1523config GPIO_XRA1403
1524        tristate "EXAR XRA1403 16-bit GPIO expander"
1525        select REGMAP_SPI
1526        help
1527          GPIO driver for EXAR XRA1403 16-bit SPI-based GPIO expander.
1528
1529config GPIO_MOXTET
1530        tristate "Turris Mox Moxtet bus GPIO expander"
1531        depends on MOXTET
1532        help
1533          Say yes here if you are building for the Turris Mox router.
1534          This is the driver needed for configuring the GPIOs via the Moxtet
1535          bus. For example the Mox module with SFP cage needs this driver
1536          so that phylink can use corresponding GPIOs.
1537
1538endmenu
1539
1540menu "USB GPIO expanders"
1541        depends on USB
1542
1543config GPIO_VIPERBOARD
1544        tristate "Viperboard GPIO a & b support"
1545        depends on MFD_VIPERBOARD
1546        help
1547          Say yes here to access the GPIO signals of Nano River
1548          Technologies Viperboard. There are two GPIO chips on the
1549          board: gpioa and gpiob.
1550          See viperboard API specification and Nano
1551          River Tech's viperboard.h for detailed meaning
1552          of the module parameters.
1553
1554endmenu
1555
1556config GPIO_AGGREGATOR
1557        tristate "GPIO Aggregator"
1558        help
1559          Say yes here to enable the GPIO Aggregator, which provides a way to
1560          aggregate existing GPIO lines into a new virtual GPIO chip.
1561          This can serve the following purposes:
1562            - Assign permissions for a collection of GPIO lines to a user,
1563            - Export a collection of GPIO lines to a virtual machine,
1564            - Provide a generic driver for a GPIO-operated device in an
1565              industrial control context, to be operated from userspace using
1566              the GPIO chardev interface.
1567
1568config GPIO_MOCKUP
1569        tristate "GPIO Testing Driver"
1570        select IRQ_SIM
1571        help
1572          This enables GPIO Testing driver, which provides a way to test GPIO
1573          subsystem through sysfs(or char device) and debugfs. GPIO_SYSFS
1574          must be selected for this test.
1575          User could use it through the script in
1576          tools/testing/selftests/gpio/gpio-mockup.sh. Reference the usage in
1577          it.
1578
1579endif
1580