0001 # SPDX-License-Identifier: GPL-2.0-only
0002 #
0003 # GPIO infrastructure and drivers
0004 #
0005
0006 config ARCH_HAVE_CUSTOM_GPIO_H
0007 bool
0008 help
0009 Selecting this config option from the architecture Kconfig allows
0010 the architecture to provide a custom asm/gpio.h implementation
0011 overriding the default implementations. New uses of this are
0012 strongly discouraged.
0013
0014 menuconfig GPIOLIB
0015 bool "GPIO Support"
0016 help
0017 This enables GPIO support through the generic GPIO library.
0018 You only need to enable this if you also want to enable
0019 one or more of the GPIO drivers below.
0020
0021 If unsure, say N.
0022
0023 if GPIOLIB
0024
0025 config GPIOLIB_FASTPATH_LIMIT
0026 int "Maximum number of GPIOs for fast path"
0027 range 32 512
0028 default 512
0029 help
0030 This adjusts the point at which certain APIs will switch from
0031 using a stack allocated buffer to a dynamically allocated buffer.
0032
0033 You shouldn't need to change this unless you really need to
0034 optimize either stack space or performance. Change this carefully
0035 since setting an incorrect value could cause stack corruption.
0036
0037 config OF_GPIO
0038 def_bool y
0039 depends on OF
0040 depends on HAS_IOMEM
0041
0042 config GPIO_ACPI
0043 def_bool y
0044 depends on ACPI
0045
0046 config GPIOLIB_IRQCHIP
0047 select IRQ_DOMAIN
0048 bool
0049
0050 config DEBUG_GPIO
0051 bool "Debug GPIO calls"
0052 depends on DEBUG_KERNEL
0053 help
0054 Say Y here to add some extra checks and diagnostics to GPIO calls.
0055 These checks help ensure that GPIOs have been properly initialized
0056 before they are used, and that sleeping calls are not made from
0057 non-sleeping contexts. They can make bitbanged serial protocols
0058 slower. The diagnostics help catch the type of setup errors
0059 that are most common when setting up new platforms or boards.
0060
0061 config GPIO_SYSFS
0062 bool "/sys/class/gpio/... (sysfs interface)" if EXPERT
0063 depends on SYSFS
0064 select GPIO_CDEV # We need to encourage the new ABI
0065 help
0066 Say Y here to add the legacy sysfs interface for GPIOs.
0067
0068 This ABI is deprecated. If you want to use GPIO from userspace,
0069 use the character device /dev/gpiochipN with the appropriate
0070 ioctl() operations instead.
0071
0072 config GPIO_CDEV
0073 bool
0074 prompt "Character device (/dev/gpiochipN) support" if EXPERT
0075 default y
0076 help
0077 Say Y here to add the character device /dev/gpiochipN interface
0078 for GPIOs. The character device allows userspace to control GPIOs
0079 using ioctl() operations.
0080
0081 Only say N if you are sure that the GPIO character device is not
0082 required.
0083
0084 If unsure, say Y.
0085
0086 config GPIO_CDEV_V1
0087 bool "Support GPIO ABI Version 1"
0088 default y
0089 depends on GPIO_CDEV
0090 help
0091 Say Y here to support version 1 of the GPIO CDEV ABI.
0092
0093 This ABI version is deprecated.
0094 Please use the latest ABI for new developments.
0095
0096 If unsure, say Y.
0097
0098 config GPIO_GENERIC
0099 depends on HAS_IOMEM # Only for IOMEM drivers
0100 tristate
0101
0102 config GPIO_REGMAP
0103 depends on REGMAP
0104 tristate
0105
0106 # put drivers in the right section, in alphabetical order
0107
0108 # This symbol is selected by both I2C and SPI expanders
0109 config GPIO_MAX730X
0110 tristate
0111
0112 menu "Memory mapped GPIO drivers"
0113 depends on HAS_IOMEM
0114
0115 config GPIO_74XX_MMIO
0116 tristate "GPIO driver for 74xx-ICs with MMIO access"
0117 depends on OF_GPIO
0118 select GPIO_GENERIC
0119 help
0120 Say yes here to support GPIO functionality for 74xx-compatible ICs
0121 with MMIO access. Compatible models include:
0122 1 bit: 741G125 (Input), 741G74 (Output)
0123 2 bits: 742G125 (Input), 7474 (Output)
0124 4 bits: 74125 (Input), 74175 (Output)
0125 6 bits: 74365 (Input), 74174 (Output)
0126 8 bits: 74244 (Input), 74273 (Output)
0127 16 bits: 741624 (Input), 7416374 (Output)
0128
0129 config GPIO_ALTERA
0130 tristate "Altera GPIO"
0131 depends on OF_GPIO
0132 select GPIOLIB_IRQCHIP
0133 help
0134 Say Y or M here to build support for the Altera PIO device.
0135
0136 If driver is built as a module it will be called gpio-altera.
0137
0138 config GPIO_AMDPT
0139 tristate "AMD Promontory GPIO support"
0140 depends on ACPI
0141 select GPIO_GENERIC
0142 help
0143 Driver for GPIO functionality on Promontory IOHub.
0144 Requires ACPI ASL code to enumerate as a platform device.
0145
0146 config GPIO_ASPEED
0147 tristate "Aspeed GPIO support"
0148 depends on (ARCH_ASPEED || COMPILE_TEST) && OF_GPIO
0149 select GPIOLIB_IRQCHIP
0150 help
0151 Say Y here to support Aspeed AST2400 and AST2500 GPIO controllers.
0152
0153 config GPIO_ASPEED_SGPIO
0154 bool "Aspeed SGPIO support"
0155 depends on (ARCH_ASPEED || COMPILE_TEST) && OF_GPIO
0156 select GPIO_GENERIC
0157 select GPIOLIB_IRQCHIP
0158 help
0159 Say Y here to support Aspeed AST2500 SGPIO functionality.
0160
0161 config GPIO_ATH79
0162 tristate "Atheros AR71XX/AR724X/AR913X GPIO support"
0163 default y if ATH79
0164 depends on ATH79 || COMPILE_TEST
0165 select GPIO_GENERIC
0166 select GPIOLIB_IRQCHIP
0167 help
0168 Select this option to enable GPIO driver for
0169 Atheros AR71XX/AR724X/AR913X SoC devices.
0170
0171 config GPIO_RASPBERRYPI_EXP
0172 tristate "Raspberry Pi 3 GPIO Expander"
0173 default RASPBERRYPI_FIRMWARE
0174 depends on OF_GPIO
0175 # Make sure not 'y' when RASPBERRYPI_FIRMWARE is 'm'. This can only
0176 # happen when COMPILE_TEST=y, hence the added !RASPBERRYPI_FIRMWARE.
0177 depends on (ARCH_BCM2835 && RASPBERRYPI_FIRMWARE) || (COMPILE_TEST && !RASPBERRYPI_FIRMWARE)
0178 help
0179 Turn on GPIO support for the expander on Raspberry Pi 3 boards, using
0180 the firmware mailbox to communicate with VideoCore on BCM283x chips.
0181
0182 config GPIO_BCM_KONA
0183 bool "Broadcom Kona GPIO"
0184 depends on OF_GPIO && (ARCH_BCM_MOBILE || COMPILE_TEST)
0185 help
0186 Turn on GPIO support for Broadcom "Kona" chips.
0187
0188 config GPIO_BCM_XGS_IPROC
0189 tristate "BRCM XGS iProc GPIO support"
0190 depends on OF_GPIO && (ARCH_BCM_IPROC || COMPILE_TEST)
0191 select GPIO_GENERIC
0192 select GPIOLIB_IRQCHIP
0193 default ARCH_BCM_IPROC
0194 help
0195 Say yes here to enable GPIO support for Broadcom XGS iProc SoCs.
0196
0197 config GPIO_BRCMSTB
0198 tristate "BRCMSTB GPIO support"
0199 default y if (ARCH_BRCMSTB || BMIPS_GENERIC)
0200 depends on OF_GPIO && (ARCH_BRCMSTB || BMIPS_GENERIC || COMPILE_TEST)
0201 select GPIO_GENERIC
0202 select IRQ_DOMAIN
0203 help
0204 Say yes here to enable GPIO support for Broadcom STB (BCM7XXX) SoCs.
0205
0206 config GPIO_CADENCE
0207 tristate "Cadence GPIO support"
0208 depends on OF_GPIO
0209 select GPIO_GENERIC
0210 select GPIOLIB_IRQCHIP
0211 help
0212 Say yes here to enable support for Cadence GPIO controller.
0213
0214 config GPIO_CLPS711X
0215 tristate "CLPS711X GPIO support"
0216 depends on ARCH_CLPS711X || COMPILE_TEST
0217 select GPIO_GENERIC
0218 help
0219 Say yes here to support GPIO on CLPS711X SoCs.
0220
0221 config GPIO_DAVINCI
0222 bool "TI Davinci/Keystone GPIO support"
0223 default y if ARCH_DAVINCI
0224 depends on (ARM || ARM64) && (ARCH_DAVINCI || ARCH_KEYSTONE || ARCH_K3)
0225 help
0226 Say yes here to enable GPIO support for TI Davinci/Keystone SoCs.
0227
0228 config GPIO_DWAPB
0229 tristate "Synopsys DesignWare APB GPIO driver"
0230 select GPIO_GENERIC
0231 select GPIOLIB_IRQCHIP
0232 help
0233 Say Y or M here to build support for the Synopsys DesignWare APB
0234 GPIO block.
0235
0236 config GPIO_EIC_SPRD
0237 tristate "Spreadtrum EIC support"
0238 depends on ARCH_SPRD || COMPILE_TEST
0239 depends on OF_GPIO
0240 select GPIOLIB_IRQCHIP
0241 help
0242 Say yes here to support Spreadtrum EIC device.
0243
0244 config GPIO_EM
0245 tristate "Emma Mobile GPIO"
0246 depends on (ARCH_EMEV2 || COMPILE_TEST) && OF_GPIO
0247 help
0248 Say yes here to support GPIO on Renesas Emma Mobile SoCs.
0249
0250 config GPIO_EN7523
0251 tristate "Airoha GPIO support"
0252 depends on ARCH_AIROHA
0253 default ARCH_AIROHA
0254 select GPIO_GENERIC
0255 select GPIOLIB_IRQCHIP
0256 help
0257 Say Y or M here to support the GPIO controller block on the
0258 Airoha EN7523 SoC. It supports two banks of 32 GPIOs.
0259
0260 config GPIO_EP93XX
0261 def_bool y
0262 depends on ARCH_EP93XX
0263 select GPIO_GENERIC
0264 select GPIOLIB_IRQCHIP
0265
0266 config GPIO_EXAR
0267 tristate "Support for GPIO pins on XR17V352/354/358"
0268 depends on SERIAL_8250_EXAR
0269 select REGMAP_MMIO
0270 help
0271 Selecting this option will enable handling of GPIO pins present
0272 on Exar XR17V352/354/358 chips.
0273
0274 config GPIO_GE_FPGA
0275 bool "GE FPGA based GPIO"
0276 depends on GE_FPGA
0277 select GPIO_GENERIC
0278 help
0279 Support for common GPIO functionality provided on some GE Single Board
0280 Computers.
0281
0282 This driver provides basic support (configure as input or output, read
0283 and write pin state) for GPIO implemented in a number of GE single
0284 board computers.
0285
0286 config GPIO_FTGPIO010
0287 bool "Faraday FTGPIO010 GPIO"
0288 depends on OF_GPIO
0289 select GPIO_GENERIC
0290 select GPIOLIB_IRQCHIP
0291 default (ARCH_GEMINI || ARCH_MOXART)
0292 help
0293 Support for common GPIOs from the Faraday FTGPIO010 IP core, found in
0294 Cortina systems Gemini platforms, Moxa ART and others.
0295
0296 config GPIO_GENERIC_PLATFORM
0297 tristate "Generic memory-mapped GPIO controller support (MMIO platform device)"
0298 select GPIO_GENERIC
0299 help
0300 Say yes here to support basic platform_device memory-mapped GPIO controllers.
0301
0302 config GPIO_GRGPIO
0303 tristate "Aeroflex Gaisler GRGPIO support"
0304 depends on OF_GPIO
0305 select GPIO_GENERIC
0306 select IRQ_DOMAIN
0307 help
0308 Select this to support Aeroflex Gaisler GRGPIO cores from the GRLIB
0309 VHDL IP core library.
0310
0311 config GPIO_HISI
0312 tristate "HiSilicon GPIO controller driver"
0313 depends on (ARM64 && ACPI) || COMPILE_TEST
0314 select GPIO_GENERIC
0315 select GPIOLIB_IRQCHIP
0316 help
0317 Say Y or M here to build support for the HiSilicon GPIO controller
0318 driver GPIO block.
0319 This GPIO controller supports double-edge interrupt and multi-core
0320 concurrent access.
0321
0322 config GPIO_HLWD
0323 tristate "Nintendo Wii (Hollywood) GPIO"
0324 depends on OF_GPIO
0325 select GPIO_GENERIC
0326 select GPIOLIB_IRQCHIP
0327 help
0328 Select this to support the GPIO controller of the Nintendo Wii.
0329
0330 If unsure, say N.
0331
0332 config GPIO_ICH
0333 tristate "Intel ICH GPIO"
0334 depends on X86
0335 depends on LPC_ICH
0336 help
0337 Say yes here to support the GPIO functionality of a number of Intel
0338 ICH-based chipsets. Currently supported devices: ICH6, ICH7, ICH8
0339 ICH9, ICH10, Series 5/3400 (e.g. Ibex Peak), Series 6/C200 (e.g.
0340 Cougar Point), NM10 (Tiger Point), and 3100 (Whitmore Lake).
0341
0342 If unsure, say N.
0343
0344 config GPIO_IOP
0345 tristate "Intel IOP GPIO"
0346 depends on ARCH_IOP32X || COMPILE_TEST
0347 select GPIO_GENERIC
0348 help
0349 Say yes here to support the GPIO functionality of a number of Intel
0350 IOP32X or IOP33X series of chips.
0351
0352 If unsure, say N.
0353
0354 config GPIO_IXP4XX
0355 bool "Intel IXP4xx GPIO"
0356 depends on ARCH_IXP4XX
0357 depends on OF
0358 select GPIO_GENERIC
0359 select GPIOLIB_IRQCHIP
0360 select IRQ_DOMAIN_HIERARCHY
0361 help
0362 Say yes here to support the GPIO functionality of a number of Intel
0363 IXP4xx series of chips.
0364
0365 If unsure, say N.
0366
0367 config GPIO_LOGICVC
0368 tristate "Xylon LogiCVC GPIO support"
0369 depends on MFD_SYSCON && OF
0370 help
0371 Say yes here to support GPIO functionality of the Xylon LogiCVC
0372 programmable logic block.
0373
0374 config GPIO_LOONGSON
0375 bool "Loongson-2/3 GPIO support"
0376 depends on CPU_LOONGSON2EF || CPU_LOONGSON64
0377 help
0378 Driver for GPIO functionality on Loongson-2F/3A/3B processors.
0379
0380 config GPIO_LPC18XX
0381 tristate "NXP LPC18XX/43XX GPIO support"
0382 default y if ARCH_LPC18XX
0383 depends on OF_GPIO && (ARCH_LPC18XX || COMPILE_TEST)
0384 select IRQ_DOMAIN_HIERARCHY
0385 help
0386 Select this option to enable GPIO driver for
0387 NXP LPC18XX/43XX devices.
0388
0389 config GPIO_LPC32XX
0390 tristate "NXP LPC32XX GPIO support"
0391 depends on OF_GPIO && (ARCH_LPC32XX || COMPILE_TEST)
0392 help
0393 Select this option to enable GPIO driver for
0394 NXP LPC32XX devices.
0395
0396 config GPIO_MB86S7X
0397 tristate "GPIO support for Fujitsu MB86S7x Platforms"
0398 help
0399 Say yes here to support the GPIO controller in Fujitsu MB86S70 SoCs.
0400
0401 config GPIO_MENZ127
0402 tristate "MEN 16Z127 GPIO support"
0403 depends on MCB
0404 select GPIO_GENERIC
0405 help
0406 Say yes here to support the MEN 16Z127 GPIO Controller.
0407
0408 config GPIO_MM_LANTIQ
0409 bool "Lantiq Memory mapped GPIOs"
0410 depends on LANTIQ && SOC_XWAY
0411 help
0412 This enables support for memory mapped GPIOs on the External Bus Unit
0413 (EBU) found on Lantiq SoCs. The GPIOs are output only as they are
0414 created by attaching a 16-bit latch to the bus.
0415
0416 config GPIO_MPC5200
0417 def_bool y
0418 depends on PPC_MPC52xx
0419
0420 config GPIO_MPC8XXX
0421 bool "MPC512x/MPC8xxx/QorIQ GPIO support"
0422 depends on PPC_MPC512x || PPC_MPC831x || PPC_MPC834x || PPC_MPC837x || \
0423 FSL_SOC_BOOKE || PPC_86xx || ARCH_LAYERSCAPE || ARM || \
0424 COMPILE_TEST
0425 select GPIO_GENERIC
0426 select IRQ_DOMAIN
0427 help
0428 Say Y here if you're going to use hardware that connects to the
0429 MPC512x/831x/834x/837x/8572/8610/QorIQ GPIOs.
0430
0431 config GPIO_MT7621
0432 bool "Mediatek MT7621 GPIO Support"
0433 depends on SOC_MT7620 || SOC_MT7621 || COMPILE_TEST
0434 depends on OF_GPIO
0435 select GPIO_GENERIC
0436 select GPIOLIB_IRQCHIP
0437 help
0438 Say yes here to support the Mediatek MT7621 SoC GPIO device.
0439
0440 config GPIO_MVEBU
0441 def_bool y
0442 depends on PLAT_ORION || ARCH_MVEBU
0443 depends on OF_GPIO
0444 select GENERIC_IRQ_CHIP
0445 select REGMAP_MMIO
0446
0447 config GPIO_MXC
0448 tristate "i.MX GPIO support"
0449 depends on ARCH_MXC || COMPILE_TEST
0450 select GPIO_GENERIC
0451 select GENERIC_IRQ_CHIP
0452
0453 config GPIO_MXS
0454 bool "Freescale MXS GPIO support" if COMPILE_TEST
0455 depends on ARCH_MXS || COMPILE_TEST
0456 default y if ARCH_MXS
0457 select GPIO_GENERIC
0458 select GENERIC_IRQ_CHIP
0459
0460 config GPIO_OCTEON
0461 tristate "Cavium OCTEON GPIO"
0462 depends on CAVIUM_OCTEON_SOC
0463 default y
0464 help
0465 Say yes here to support the on-chip GPIO lines on the OCTEON
0466 family of SOCs.
0467
0468 config GPIO_OMAP
0469 tristate "TI OMAP GPIO support" if ARCH_OMAP2PLUS || COMPILE_TEST
0470 default y if ARCH_OMAP
0471 depends on ARM
0472 select GENERIC_IRQ_CHIP
0473 select GPIOLIB_IRQCHIP
0474 help
0475 Say yes here to enable GPIO support for TI OMAP SoCs.
0476
0477 config GPIO_PL061
0478 tristate "PrimeCell PL061 GPIO support"
0479 depends on ARM_AMBA
0480 select IRQ_DOMAIN
0481 select GPIOLIB_IRQCHIP
0482 help
0483 Say yes here to support the PrimeCell PL061 GPIO device.
0484
0485 config GPIO_PMIC_EIC_SPRD
0486 tristate "Spreadtrum PMIC EIC support"
0487 depends on MFD_SC27XX_PMIC || COMPILE_TEST
0488 depends on OF_GPIO
0489 select GPIOLIB_IRQCHIP
0490 help
0491 Say yes here to support Spreadtrum PMIC EIC device.
0492
0493 config GPIO_PXA
0494 bool "PXA GPIO support"
0495 depends on ARCH_PXA || ARCH_MMP || COMPILE_TEST
0496 help
0497 Say yes here to support the PXA GPIO device.
0498
0499 config GPIO_RCAR
0500 tristate "Renesas R-Car and RZ/G GPIO support"
0501 depends on ARCH_RENESAS || COMPILE_TEST
0502 select GPIOLIB_IRQCHIP
0503 help
0504 Say yes here to support GPIO on Renesas R-Car or RZ/G SoCs.
0505
0506 config GPIO_RDA
0507 bool "RDA Micro GPIO controller support"
0508 depends on ARCH_RDA || COMPILE_TEST
0509 depends on OF_GPIO
0510 select GPIO_GENERIC
0511 select GPIOLIB_IRQCHIP
0512 help
0513 Say Y here to support RDA Micro GPIO controller.
0514
0515 config GPIO_REALTEK_OTTO
0516 tristate "Realtek Otto GPIO support"
0517 depends on MACH_REALTEK_RTL
0518 default MACH_REALTEK_RTL
0519 select GPIO_GENERIC
0520 select GPIOLIB_IRQCHIP
0521 help
0522 The GPIO controller on the Otto MIPS platform supports up to two
0523 banks of 32 GPIOs, with edge triggered interrupts. The 32 GPIOs
0524 are grouped in four 8-bit wide ports.
0525
0526 When built as a module, the module will be called realtek_otto_gpio.
0527
0528 config GPIO_REG
0529 bool
0530 help
0531 A 32-bit single register GPIO fixed in/out implementation. This
0532 can be used to represent any register as a set of GPIO signals.
0533
0534 config GPIO_ROCKCHIP
0535 tristate "Rockchip GPIO support"
0536 depends on ARCH_ROCKCHIP || COMPILE_TEST
0537 select GENERIC_IRQ_CHIP
0538 select GPIOLIB_IRQCHIP
0539 default ARCH_ROCKCHIP
0540 help
0541 Say yes here to support GPIO on Rockchip SoCs.
0542
0543 config GPIO_SAMA5D2_PIOBU
0544 tristate "SAMA5D2 PIOBU GPIO support"
0545 depends on MFD_SYSCON
0546 depends on OF_GPIO
0547 depends on ARCH_AT91 || COMPILE_TEST
0548 select GPIO_SYSCON
0549 help
0550 Say yes here to use the PIOBU pins as GPIOs.
0551
0552 PIOBU pins on the SAMA5D2 can be used as GPIOs.
0553 The difference from regular GPIOs is that they
0554 maintain their value during backup/self-refresh.
0555
0556 config GPIO_SIFIVE
0557 bool "SiFive GPIO support"
0558 depends on OF_GPIO
0559 select IRQ_DOMAIN_HIERARCHY
0560 select GPIO_GENERIC
0561 select GPIOLIB_IRQCHIP
0562 select REGMAP_MMIO
0563 help
0564 Say yes here to support the GPIO device on SiFive SoCs.
0565
0566 config GPIO_SIOX
0567 tristate "SIOX GPIO support"
0568 depends on SIOX
0569 select GPIOLIB_IRQCHIP
0570 help
0571 Say yes here to support SIOX I/O devices. These are units connected
0572 via a SIOX bus and have a number of fixed-direction I/O lines.
0573
0574 config GPIO_SNPS_CREG
0575 bool "Synopsys GPIO via CREG (Control REGisters) driver"
0576 depends on ARC || COMPILE_TEST
0577 depends on OF_GPIO
0578 help
0579 This driver supports GPIOs via CREG on various Synopsys SoCs.
0580 This is a single-register MMIO GPIO driver for complex cases
0581 where only several fields in register belong to GPIO lines and
0582 each GPIO line owns a field with different length and on/off value.
0583
0584 config GPIO_SPEAR_SPICS
0585 bool "ST SPEAr13xx SPI Chip Select as GPIO support"
0586 depends on PLAT_SPEAR
0587 select GENERIC_IRQ_CHIP
0588 help
0589 Say yes here to support ST SPEAr SPI Chip Select as GPIO device.
0590
0591 config GPIO_SPRD
0592 tristate "Spreadtrum GPIO support"
0593 depends on ARCH_SPRD || COMPILE_TEST
0594 depends on OF_GPIO
0595 select GPIOLIB_IRQCHIP
0596 help
0597 Say yes here to support Spreadtrum GPIO device.
0598
0599 config GPIO_STA2X11
0600 bool "STA2x11/ConneXt GPIO support"
0601 depends on MFD_STA2X11
0602 select GENERIC_IRQ_CHIP
0603 help
0604 Say yes here to support the STA2x11/ConneXt GPIO device.
0605 The GPIO module has 128 GPIO pins with alternate functions.
0606
0607 config GPIO_STP_XWAY
0608 bool "XWAY STP GPIOs"
0609 depends on SOC_XWAY || COMPILE_TEST
0610 depends on OF_GPIO
0611 help
0612 This enables support for the Serial To Parallel (STP) unit found on
0613 XWAY SoC. The STP allows the SoC to drive a shift registers cascade,
0614 that can be up to 24 bits. This peripheral is aimed at driving LEDs.
0615 Some of the GPIOs/LEDs can be auto updated by the SoC with DSL and
0616 phy status.
0617
0618 config GPIO_SYSCON
0619 tristate "GPIO based on SYSCON"
0620 depends on MFD_SYSCON && OF
0621 help
0622 Say yes here to support GPIO functionality though SYSCON driver.
0623
0624 config GPIO_TB10X
0625 bool
0626 select GPIO_GENERIC
0627 select GENERIC_IRQ_CHIP
0628 select OF_GPIO
0629
0630 config GPIO_TEGRA
0631 tristate "NVIDIA Tegra GPIO support"
0632 default ARCH_TEGRA
0633 depends on ARCH_TEGRA || COMPILE_TEST
0634 depends on OF_GPIO
0635 select GPIOLIB_IRQCHIP
0636 select IRQ_DOMAIN_HIERARCHY
0637 help
0638 Say yes here to support GPIO pins on NVIDIA Tegra SoCs.
0639
0640 config GPIO_TEGRA186
0641 tristate "NVIDIA Tegra186 GPIO support"
0642 default ARCH_TEGRA_186_SOC || ARCH_TEGRA_194_SOC
0643 depends on ARCH_TEGRA_186_SOC || ARCH_TEGRA_194_SOC || COMPILE_TEST
0644 depends on OF_GPIO
0645 select GPIOLIB_IRQCHIP
0646 select IRQ_DOMAIN_HIERARCHY
0647 help
0648 Say yes here to support GPIO pins on NVIDIA Tegra186 SoCs.
0649
0650 config GPIO_TS4800
0651 tristate "TS-4800 DIO blocks and compatibles"
0652 depends on OF_GPIO
0653 depends on SOC_IMX51 || COMPILE_TEST
0654 select GPIO_GENERIC
0655 help
0656 This driver support TS-4800 FPGA GPIO controllers.
0657
0658 config GPIO_THUNDERX
0659 tristate "Cavium ThunderX/OCTEON-TX GPIO"
0660 depends on ARCH_THUNDER || (64BIT && COMPILE_TEST)
0661 depends on PCI_MSI
0662 select GPIOLIB_IRQCHIP
0663 select IRQ_DOMAIN_HIERARCHY
0664 select IRQ_FASTEOI_HIERARCHY_HANDLERS
0665 help
0666 Say yes here to support the on-chip GPIO lines on the ThunderX
0667 and OCTEON-TX families of SoCs.
0668
0669 config GPIO_UNIPHIER
0670 tristate "UniPhier GPIO support"
0671 depends on ARCH_UNIPHIER || COMPILE_TEST
0672 depends on OF_GPIO
0673 select IRQ_DOMAIN_HIERARCHY
0674 help
0675 Say yes here to support UniPhier GPIOs.
0676
0677 config GPIO_VF610
0678 def_bool y
0679 depends on ARCH_MXC
0680 select GPIOLIB_IRQCHIP
0681 help
0682 Say yes here to support i.MX or Vybrid vf610 GPIOs.
0683
0684 config GPIO_VISCONTI
0685 tristate "Toshiba Visconti GPIO support"
0686 depends on ARCH_VISCONTI || COMPILE_TEST
0687 depends on OF_GPIO
0688 select GPIOLIB_IRQCHIP
0689 select GPIO_GENERIC
0690 select IRQ_DOMAIN_HIERARCHY
0691 help
0692 Say yes here to support GPIO on Tohisba Visconti.
0693
0694 config GPIO_VX855
0695 tristate "VIA VX855/VX875 GPIO"
0696 depends on (X86 || COMPILE_TEST) && PCI
0697 select MFD_CORE
0698 select MFD_VX855
0699 help
0700 Support access to the VX855/VX875 GPIO lines through the GPIO library.
0701
0702 This driver provides common support for accessing the device.
0703 Additional drivers must be enabled in order to use the
0704 functionality of the device.
0705
0706 config GPIO_WCD934X
0707 tristate "Qualcomm Technologies Inc WCD9340/WCD9341 GPIO controller driver"
0708 depends on MFD_WCD934X && OF_GPIO
0709 help
0710 This driver is to support GPIO block found on the Qualcomm Technologies
0711 Inc WCD9340/WCD9341 Audio Codec.
0712
0713 config GPIO_XGENE
0714 bool "APM X-Gene GPIO controller support"
0715 depends on ARM64 && OF_GPIO
0716 help
0717 This driver is to support the GPIO block within the APM X-Gene SoC
0718 platform's generic flash controller. The GPIO pins are muxed with
0719 the generic flash controller's address and data pins. Say yes
0720 here to enable the GFC GPIO functionality.
0721
0722 config GPIO_XGENE_SB
0723 tristate "APM X-Gene GPIO standby controller support"
0724 depends on (ARCH_XGENE || COMPILE_TEST)
0725 select GPIO_GENERIC
0726 select GPIOLIB_IRQCHIP
0727 select IRQ_DOMAIN_HIERARCHY
0728 help
0729 This driver supports the GPIO block within the APM X-Gene
0730 Standby Domain. Say yes here to enable the GPIO functionality.
0731
0732 config GPIO_XILINX
0733 tristate "Xilinx GPIO support"
0734 select GPIOLIB_IRQCHIP
0735 depends on OF_GPIO
0736 help
0737 Say yes here to support the Xilinx FPGA GPIO device.
0738
0739 config GPIO_XLP
0740 tristate "Cavium ThunderX2 GPIO support"
0741 depends on ARCH_THUNDER2 || COMPILE_TEST
0742 select GPIOLIB_IRQCHIP
0743 help
0744 This driver provides support for GPIO interface on Cavium's ThunderX2
0745 CN99XX SoCs (Originally from Netlogic XLP).
0746
0747 If unsure, say N.
0748
0749 config GPIO_XTENSA
0750 bool "Xtensa GPIO32 support"
0751 depends on XTENSA
0752 depends on HAVE_XTENSA_GPIO32
0753 depends on !SMP
0754 help
0755 Say yes here to support the Xtensa internal GPIO32 IMPWIRE (input)
0756 and EXPSTATE (output) ports.
0757
0758 config GPIO_ZEVIO
0759 bool "LSI ZEVIO SoC memory mapped GPIOs"
0760 depends on ARM && OF_GPIO
0761 help
0762 Say yes here to support the GPIO controller in LSI ZEVIO SoCs.
0763
0764 config GPIO_ZYNQ
0765 tristate "Xilinx Zynq GPIO support"
0766 depends on ARCH_ZYNQ || ARCH_ZYNQMP
0767 select GPIOLIB_IRQCHIP
0768 help
0769 Say yes here to support Xilinx Zynq GPIO controller.
0770
0771 config GPIO_ZYNQMP_MODEPIN
0772 tristate "ZynqMP ps-mode pin GPIO configuration driver"
0773 depends on ZYNQMP_FIRMWARE
0774 default ZYNQMP_FIRMWARE
0775 help
0776 Say yes here to support the ZynqMP ps-mode pin GPIO configuration
0777 driver.
0778
0779 This ps-mode pin GPIO driver is based on GPIO framework. PS_MODE
0780 is 4-bits boot mode pins. It sets and gets the status of
0781 the ps-mode pin. Every pin can be configured as input/output.
0782
0783 config GPIO_LOONGSON1
0784 tristate "Loongson1 GPIO support"
0785 depends on MACH_LOONGSON32
0786 select GPIO_GENERIC
0787 help
0788 Say Y or M here to support GPIO on Loongson1 SoCs.
0789
0790 config GPIO_AMD_FCH
0791 tristate "GPIO support for AMD Fusion Controller Hub (G-series SOCs)"
0792 help
0793 This option enables driver for GPIO on AMD's Fusion Controller Hub,
0794 as found on G-series SOCs (e.g. GX-412TC).
0795
0796 Note: This driver doesn't register itself automatically, as it
0797 needs to be provided with platform-specific configuration.
0798 (See e.g. CONFIG_PCENGINES_APU2.)
0799
0800 config GPIO_MSC313
0801 bool "MStar MSC313 GPIO support"
0802 depends on ARCH_MSTARV7
0803 default ARCH_MSTARV7
0804 select GPIOLIB_IRQCHIP
0805 select IRQ_DOMAIN_HIERARCHY
0806 help
0807 Say Y here to support the main GPIO block on MStar/SigmaStar
0808 ARMv7-based SoCs.
0809
0810 config GPIO_IDT3243X
0811 tristate "IDT 79RC3243X GPIO support"
0812 depends on MIKROTIK_RB532 || COMPILE_TEST
0813 select GPIO_GENERIC
0814 select GPIOLIB_IRQCHIP
0815 help
0816 Select this option to enable GPIO driver for
0817 IDT 79RC3243X-based devices like Mikrotik RB532.
0818
0819 To compile this driver as a module, choose M here: the module will
0820 be called gpio-idt3243x.
0821
0822 endmenu
0823
0824 menu "Port-mapped I/O GPIO drivers"
0825 depends on X86 # Unconditional I/O space access
0826
0827 config GPIO_I8255
0828 tristate
0829 help
0830 Enables support for the i8255 interface library functions. The i8255
0831 interface library provides functions to facilitate communication with
0832 interfaces compatible with the venerable Intel 8255 Programmable
0833 Peripheral Interface (PPI). The Intel 8255 PPI chip was first released
0834 in the early 1970s but compatible interfaces are nowadays typically
0835 found embedded in larger VLSI processing chips and FPGA components.
0836
0837 If built as a module its name will be gpio-i8255.
0838
0839 config GPIO_104_DIO_48E
0840 tristate "ACCES 104-DIO-48E GPIO support"
0841 depends on PC104
0842 select ISA_BUS_API
0843 select GPIOLIB_IRQCHIP
0844 select GPIO_I8255
0845 help
0846 Enables GPIO support for the ACCES 104-DIO-48E series (104-DIO-48E,
0847 104-DIO-24E). The base port addresses for the devices may be
0848 configured via the base module parameter. The interrupt line numbers
0849 for the devices may be configured via the irq module parameter.
0850
0851 config GPIO_104_IDIO_16
0852 tristate "ACCES 104-IDIO-16 GPIO support"
0853 depends on PC104
0854 select ISA_BUS_API
0855 select GPIOLIB_IRQCHIP
0856 help
0857 Enables GPIO support for the ACCES 104-IDIO-16 family (104-IDIO-16,
0858 104-IDIO-16E, 104-IDO-16, 104-IDIO-8, 104-IDIO-8E, 104-IDO-8). The
0859 base port addresses for the devices may be configured via the base
0860 module parameter. The interrupt line numbers for the devices may be
0861 configured via the irq module parameter.
0862
0863 config GPIO_104_IDI_48
0864 tristate "ACCES 104-IDI-48 GPIO support"
0865 depends on PC104
0866 select ISA_BUS_API
0867 select GPIOLIB_IRQCHIP
0868 select GPIO_I8255
0869 help
0870 Enables GPIO support for the ACCES 104-IDI-48 family (104-IDI-48A,
0871 104-IDI-48AC, 104-IDI-48B, 104-IDI-48BC). The base port addresses for
0872 the devices may be configured via the base module parameter. The
0873 interrupt line numbers for the devices may be configured via the irq
0874 module parameter.
0875
0876 config GPIO_F7188X
0877 tristate "F71869, F71869A, F71882FG, F71889F and F81866 GPIO support"
0878 help
0879 This option enables support for GPIOs found on Fintek Super-I/O
0880 chips F71869, F71869A, F71882FG, F71889F and F81866.
0881
0882 To compile this driver as a module, choose M here: the module will
0883 be called f7188x-gpio.
0884
0885 config GPIO_GPIO_MM
0886 tristate "Diamond Systems GPIO-MM GPIO support"
0887 depends on PC104
0888 select ISA_BUS_API
0889 select GPIO_I8255
0890 help
0891 Enables GPIO support for the Diamond Systems GPIO-MM and GPIO-MM-12.
0892
0893 The Diamond Systems GPIO-MM device features 48 lines of digital I/O
0894 via the emulation of dual 82C55A PPI chips. This driver provides GPIO
0895 support for these 48 channels of digital I/O.
0896
0897 The base port addresses for the devices may be configured via the base
0898 array module parameter.
0899
0900 config GPIO_IT87
0901 tristate "IT87xx GPIO support"
0902 help
0903 Say yes here to support GPIO functionality of IT87xx Super I/O chips.
0904
0905 This driver is tested with ITE IT8728 and IT8732 Super I/O chips, and
0906 supports the IT8761E, IT8613, IT8620E, and IT8628E Super I/O chips as
0907 well.
0908
0909 To compile this driver as a module, choose M here: the module will
0910 be called gpio_it87.
0911
0912 config GPIO_SCH
0913 tristate "Intel SCH/TunnelCreek/Centerton/Quark X1000 GPIO"
0914 depends on (X86 || COMPILE_TEST) && ACPI
0915 depends on LPC_SCH
0916 select GPIOLIB_IRQCHIP
0917 help
0918 Say yes here to support GPIO interface on Intel Poulsbo SCH,
0919 Intel Tunnel Creek processor, Intel Centerton processor or
0920 Intel Quark X1000 SoC.
0921
0922 The Intel SCH contains a total of 14 GPIO pins. Ten GPIOs are
0923 powered by the core power rail and are turned off during sleep
0924 modes (S3 and higher). The remaining four GPIOs are powered by
0925 the Intel SCH suspend power supply. These GPIOs remain
0926 active during S3. The suspend-powered GPIOs can be used to wake the
0927 system from the Suspend-to-RAM state.
0928
0929 The Intel Tunnel Creek processor has 5 GPIOs powered by the
0930 core power rail and 9 from suspend power supply.
0931
0932 The Intel Centerton processor has a total of 30 GPIO pins.
0933 Twenty-one are powered by the core power rail and 9 from the
0934 suspend power supply.
0935
0936 The Intel Quark X1000 SoC has 2 GPIOs powered by the core
0937 power well and 6 from the suspend power well.
0938
0939 config GPIO_SCH311X
0940 tristate "SMSC SCH311x SuperI/O GPIO"
0941 help
0942 Driver to enable the GPIOs found on SMSC SMSC SCH3112, SCH3114 and
0943 SCH3116 "Super I/O" chipsets.
0944
0945 To compile this driver as a module, choose M here: the module will
0946 be called gpio-sch311x.
0947
0948 config GPIO_TS5500
0949 tristate "TS-5500 DIO blocks and compatibles"
0950 depends on TS5500 || COMPILE_TEST
0951 help
0952 This driver supports Digital I/O exposed by pin blocks found on some
0953 Technologic Systems platforms. It includes, but is not limited to, 3
0954 blocks of the TS-5500: DIO1, DIO2 and the LCD port, and the TS-5600
0955 LCD port.
0956
0957 config GPIO_WINBOND
0958 tristate "Winbond Super I/O GPIO support"
0959 select ISA_BUS_API
0960 help
0961 This option enables support for GPIOs found on Winbond Super I/O
0962 chips.
0963 Currently, only W83627UHG (also known as Nuvoton NCT6627UD) is
0964 supported.
0965
0966 You will need to provide a module parameter "gpios", or a
0967 boot-time parameter "gpio_winbond.gpios" with a bitmask of GPIO
0968 ports to enable (bit 0 is GPIO1, bit 1 is GPIO2, etc.).
0969
0970 To compile this driver as a module, choose M here: the module will
0971 be called gpio-winbond.
0972
0973 config GPIO_WS16C48
0974 tristate "WinSystems WS16C48 GPIO support"
0975 select ISA_BUS_API
0976 select GPIOLIB_IRQCHIP
0977 help
0978 Enables GPIO support for the WinSystems WS16C48. The base port
0979 addresses for the devices may be configured via the base module
0980 parameter. The interrupt line numbers for the devices may be
0981 configured via the irq module parameter.
0982
0983 endmenu
0984
0985 menu "I2C GPIO expanders"
0986 depends on I2C
0987
0988 config GPIO_ADP5588
0989 tristate "ADP5588 I2C GPIO expander"
0990 help
0991 This option enables support for 18 GPIOs found
0992 on Analog Devices ADP5588 GPIO Expanders.
0993
0994 config GPIO_ADP5588_IRQ
0995 bool "Interrupt controller support for ADP5588"
0996 depends on GPIO_ADP5588=y
0997 select GPIOLIB_IRQCHIP
0998 help
0999 Say yes here to enable the adp5588 to be used as an interrupt
1000 controller. It requires the driver to be built in the kernel.
1001
1002 config GPIO_ADNP
1003 tristate "Avionic Design N-bit GPIO expander"
1004 depends on OF_GPIO
1005 select GPIOLIB_IRQCHIP
1006 help
1007 This option enables support for N GPIOs found on Avionic Design
1008 I2C GPIO expanders. The register space will be extended by powers
1009 of two, so the controller will need to accommodate for that. For
1010 example: if a controller provides 48 pins, 6 registers will be
1011 enough to represent all pins, but the driver will assume a
1012 register layout for 64 pins (8 registers).
1013
1014 config GPIO_GW_PLD
1015 tristate "Gateworks PLD GPIO Expander"
1016 depends on OF_GPIO
1017 help
1018 Say yes here to provide access to the Gateworks I2C PLD GPIO
1019 Expander. This is used at least on the Cambria GW2358-4.
1020
1021 config GPIO_MAX7300
1022 tristate "Maxim MAX7300 GPIO expander"
1023 select GPIO_MAX730X
1024 help
1025 GPIO driver for Maxim MAX7300 I2C-based GPIO expander.
1026
1027 config GPIO_MAX732X
1028 tristate "MAX7319, MAX7320-7327 I2C Port Expanders"
1029 help
1030 Say yes here to support the MAX7319, MAX7320-7327 series of I2C
1031 Port Expanders. Each IO port on these chips has a fixed role of
1032 Input (designated by 'I'), Push-Pull Output ('O'), or Open-Drain
1033 Input and Output (designed by 'P'). The combinations are listed
1034 below:
1035
1036 8 bits: max7319 (8I), max7320 (8O), max7321 (8P),
1037 max7322 (4I4O), max7323 (4P4O)
1038
1039 16 bits: max7324 (8I8O), max7325 (8P8O),
1040 max7326 (4I12O), max7327 (4P12O)
1041
1042 Board setup code must specify the model to use, and the start
1043 number for these GPIOs.
1044
1045 config GPIO_MAX732X_IRQ
1046 bool "Interrupt controller support for MAX732x"
1047 depends on GPIO_MAX732X=y
1048 select GPIOLIB_IRQCHIP
1049 help
1050 Say yes here to enable the max732x to be used as an interrupt
1051 controller. It requires the driver to be built in the kernel.
1052
1053 config GPIO_PCA953X
1054 tristate "PCA95[357]x, PCA9698, TCA64xx, and MAX7310 I/O ports"
1055 select REGMAP_I2C
1056 help
1057 Say yes here to provide access to several register-oriented
1058 SMBus I/O expanders, made mostly by NXP or TI. Compatible
1059 models include:
1060
1061 4 bits: pca9536, pca9537
1062
1063 8 bits: max7310, max7315, pca6107, pca9534, pca9538, pca9554,
1064 pca9556, pca9557, pca9574, tca6408, tca9554, xra1202
1065
1066 16 bits: max7312, max7313, pca9535, pca9539, pca9555, pca9575,
1067 tca6416
1068
1069 24 bits: tca6424
1070
1071 40 bits: pca9505, pca9698
1072
1073 config GPIO_PCA953X_IRQ
1074 bool "Interrupt controller support for PCA953x"
1075 depends on GPIO_PCA953X
1076 select GPIOLIB_IRQCHIP
1077 help
1078 Say yes here to enable the pca953x to be used as an interrupt
1079 controller.
1080
1081 config GPIO_PCA9570
1082 tristate "PCA9570 4-Bit I2C GPO expander"
1083 help
1084 Say yes here to enable the GPO driver for the NXP PCA9570 chip.
1085
1086 To compile this driver as a module, choose M here: the module will
1087 be called gpio-pca9570.
1088
1089 config GPIO_PCF857X
1090 tristate "PCF857x, PCA{85,96}7x, and MAX732[89] I2C GPIO expanders"
1091 select GPIOLIB_IRQCHIP
1092 select IRQ_DOMAIN
1093 help
1094 Say yes here to provide access to most "quasi-bidirectional" I2C
1095 GPIO expanders used for additional digital outputs or inputs.
1096 Most of these parts are from NXP, though TI is a second source for
1097 some of them. Compatible models include:
1098
1099 8 bits: pcf8574, pcf8574a, pca8574, pca8574a,
1100 pca9670, pca9672, pca9674, pca9674a,
1101 max7328, max7329
1102
1103 16 bits: pcf8575, pcf8575c, pca8575,
1104 pca9671, pca9673, pca9675
1105
1106 Your board setup code will need to declare the expanders in
1107 use, and assign numbers to the GPIOs they expose. Those GPIOs
1108 can then be used from drivers and other kernel code, just like
1109 other GPIOs, but only accessible from task contexts.
1110
1111 This driver provides an in-kernel interface to those GPIOs using
1112 platform-neutral GPIO calls.
1113
1114 config GPIO_TPIC2810
1115 tristate "TPIC2810 8-Bit I2C GPO expander"
1116 help
1117 Say yes here to enable the GPO driver for the TI TPIC2810 chip.
1118
1119 To compile this driver as a module, choose M here: the module will
1120 be called gpio-tpic2810.
1121
1122 config GPIO_TS4900
1123 tristate "Technologic Systems FPGA I2C GPIO"
1124 depends on SOC_IMX6 || COMPILE_TEST
1125 select REGMAP_I2C
1126 help
1127 Say yes here to enabled the GPIO driver for Technologic's FPGA core.
1128 Series supported include TS-4100, TS-4900, TS-7970 and TS-7990.
1129
1130 endmenu
1131
1132 menu "MFD GPIO expanders"
1133
1134 config GPIO_ADP5520
1135 tristate "GPIO Support for ADP5520 PMIC"
1136 depends on PMIC_ADP5520
1137 help
1138 This option enables support for on-chip GPIO found
1139 on Analog Devices ADP5520 PMICs.
1140
1141 config GPIO_ALTERA_A10SR
1142 tristate "Altera Arria10 System Resource GPIO"
1143 depends on MFD_ALTERA_A10SR
1144 help
1145 Driver for Arria10 Development Kit GPIO expansion which
1146 includes reads of pushbuttons and DIP switches as well
1147 as writes to LEDs.
1148
1149 config GPIO_ARIZONA
1150 tristate "Wolfson Microelectronics Arizona class devices"
1151 depends on MFD_ARIZONA
1152 help
1153 Support for GPIOs on Wolfson Arizona class devices.
1154
1155 config GPIO_BD71815
1156 tristate "ROHM BD71815 PMIC GPIO support"
1157 depends on MFD_ROHM_BD71828
1158 help
1159 Support for GPO(s) on ROHM BD71815 PMIC. There are two GPOs
1160 available on the ROHM PMIC.
1161
1162 This driver can also be built as a module. If so, the module
1163 will be called gpio-bd71815.
1164
1165 config GPIO_BD71828
1166 tristate "ROHM BD71828 GPIO support"
1167 depends on MFD_ROHM_BD71828
1168 help
1169 Support for GPIOs on ROHM BD71828 PMIC. There are three GPIOs
1170 available on the ROHM PMIC in total. The GPIOs are limited to
1171 outputs only and pins must be configured to GPIO outputs by
1172 OTP. Enable this only if you want to use these pins as outputs.
1173
1174 This driver can also be built as a module. If so, the module
1175 will be called gpio-bd71828.
1176
1177 config GPIO_BD9571MWV
1178 tristate "ROHM BD9571 GPIO support"
1179 depends on MFD_BD9571MWV
1180 help
1181 Support for GPIOs on ROHM BD9571 PMIC. There are two GPIOs
1182 available on the ROHM PMIC in total, both of which can also
1183 generate interrupts.
1184
1185 This driver can also be built as a module. If so, the module
1186 will be called gpio-bd9571mwv.
1187
1188 config GPIO_CRYSTAL_COVE
1189 tristate "GPIO support for Crystal Cove PMIC"
1190 depends on (X86 || COMPILE_TEST) && INTEL_SOC_PMIC
1191 select GPIOLIB_IRQCHIP
1192 help
1193 Support for GPIO pins on Crystal Cove PMIC.
1194
1195 Say Yes if you have a Intel SoC-based tablet with Crystal Cove PMIC
1196 inside.
1197
1198 This driver can also be built as a module. If so, the module will be
1199 called gpio-crystalcove.
1200
1201 config GPIO_CS5535
1202 tristate "AMD CS5535/CS5536 GPIO support"
1203 depends on X86 || MIPS || COMPILE_TEST
1204 depends on MFD_CS5535
1205 help
1206 The AMD CS5535 and CS5536 southbridges support 28 GPIO pins that
1207 can be used for quite a number of things. The CS5535/6 is found on
1208 AMD Geode and Lemote Yeeloong devices.
1209
1210 If unsure, say N.
1211
1212 config GPIO_DA9052
1213 tristate "Dialog DA9052 GPIO"
1214 depends on PMIC_DA9052
1215 help
1216 Say yes here to enable the GPIO driver for the DA9052 chip.
1217
1218 config GPIO_DA9055
1219 tristate "Dialog Semiconductor DA9055 GPIO"
1220 depends on MFD_DA9055
1221 help
1222 Say yes here to enable the GPIO driver for the DA9055 chip.
1223
1224 The Dialog DA9055 PMIC chip has 3 GPIO pins that can be
1225 be controlled by this driver.
1226
1227 If driver is built as a module it will be called gpio-da9055.
1228
1229 config GPIO_DLN2
1230 tristate "Diolan DLN2 GPIO support"
1231 depends on MFD_DLN2
1232 select GPIOLIB_IRQCHIP
1233
1234 help
1235 Select this option to enable GPIO driver for the Diolan DLN2
1236 board.
1237
1238 This driver can also be built as a module. If so, the module
1239 will be called gpio-dln2.
1240
1241 config HTC_EGPIO
1242 bool "HTC EGPIO support"
1243 depends on ARM
1244 help
1245 This driver supports the CPLD egpio chip present on
1246 several HTC phones. It provides basic support for input
1247 pins, output pins, and IRQs.
1248
1249 config GPIO_JANZ_TTL
1250 tristate "Janz VMOD-TTL Digital IO Module"
1251 depends on MFD_JANZ_CMODIO
1252 help
1253 This enables support for the Janz VMOD-TTL Digital IO module.
1254 This driver provides support for driving the pins in output
1255 mode only. Input mode is not supported.
1256
1257 config GPIO_KEMPLD
1258 tristate "Kontron ETX / COMexpress GPIO"
1259 depends on MFD_KEMPLD
1260 help
1261 This enables support for the PLD GPIO interface on some Kontron ETX
1262 and COMexpress (ETXexpress) modules.
1263
1264 This driver can also be built as a module. If so, the module will be
1265 called gpio-kempld.
1266
1267 config GPIO_LP3943
1268 tristate "TI/National Semiconductor LP3943 GPIO expander"
1269 depends on MFD_LP3943
1270 help
1271 GPIO driver for LP3943 MFD.
1272 LP3943 can be used as a GPIO expander which provides up to 16 GPIOs.
1273 Open drain outputs are required for this usage.
1274
1275 config GPIO_LP873X
1276 tristate "TI LP873X GPO"
1277 depends on MFD_TI_LP873X
1278 help
1279 This driver supports the GPO on TI Lp873x PMICs. 2 GPOs are present
1280 on LP873X PMICs.
1281
1282 This driver can also be built as a module. If so, the module will be
1283 called gpio-lp873x.
1284
1285 config GPIO_LP87565
1286 tristate "TI LP87565 GPIO"
1287 depends on MFD_TI_LP87565
1288 help
1289 This driver supports the GPIO on TI Lp873565 PMICs. 3 GPIOs are present
1290 on LP87565 PMICs.
1291
1292 This driver can also be built as a module. If so, the module will be
1293 called gpio-lp87565.
1294
1295 config GPIO_MADERA
1296 tristate "Cirrus Logic Madera class codecs"
1297 depends on PINCTRL_MADERA
1298 help
1299 Support for GPIOs on Cirrus Logic Madera class codecs.
1300
1301 config GPIO_MAX77620
1302 tristate "GPIO support for PMIC MAX77620 and MAX20024"
1303 depends on MFD_MAX77620
1304 select GPIOLIB_IRQCHIP
1305 help
1306 GPIO driver for MAX77620 and MAX20024 PMIC from Maxim Semiconductor.
1307 MAX77620 PMIC has 8 pins that can be configured as GPIOs. The
1308 driver also provides interrupt support for each of the GPIOs.
1309 Say yes here to enable the max77620 to be used as GPIO controller.
1310
1311 config GPIO_MAX77650
1312 tristate "Maxim MAX77650/77651 GPIO support"
1313 depends on MFD_MAX77650
1314 help
1315 GPIO driver for MAX77650/77651 PMIC from Maxim Semiconductor.
1316 These chips have a single pin that can be configured as GPIO.
1317
1318 config GPIO_PALMAS
1319 bool "TI PALMAS series PMICs GPIO"
1320 depends on MFD_PALMAS
1321 help
1322 Select this option to enable GPIO driver for the TI PALMAS
1323 series chip family.
1324
1325 config GPIO_RC5T583
1326 bool "RICOH RC5T583 GPIO"
1327 depends on MFD_RC5T583
1328 help
1329 Select this option to enable GPIO driver for the Ricoh RC5T583
1330 chip family.
1331 This driver provides the support for driving/reading the GPIO pins
1332 of RC5T583 device through standard GPIO library.
1333
1334 config GPIO_SL28CPLD
1335 tristate "Kontron sl28cpld GPIO support"
1336 depends on MFD_SL28CPLD || COMPILE_TEST
1337 select GPIO_REGMAP
1338 select GPIOLIB_IRQCHIP
1339 select REGMAP_IRQ
1340 help
1341 This enables support for the GPIOs found on the Kontron sl28 CPLD.
1342
1343 This driver can also be built as a module. If so, the module will be
1344 called gpio-sl28cpld.
1345
1346 config GPIO_STMPE
1347 bool "STMPE GPIOs"
1348 depends on MFD_STMPE
1349 depends on OF_GPIO
1350 select GPIOLIB_IRQCHIP
1351 help
1352 This enables support for the GPIOs found on the STMPE I/O
1353 Expanders.
1354
1355 config GPIO_TC3589X
1356 bool "TC3589X GPIOs"
1357 depends on MFD_TC3589X
1358 depends on OF_GPIO
1359 select GPIOLIB_IRQCHIP
1360 help
1361 This enables support for the GPIOs found on the TC3589X
1362 I/O Expander.
1363
1364 config GPIO_TIMBERDALE
1365 bool "Support for timberdale GPIO IP"
1366 depends on MFD_TIMBERDALE
1367 help
1368 Add support for the GPIO IP in the timberdale FPGA.
1369
1370 config GPIO_TN48M_CPLD
1371 tristate "Delta Networks TN48M switch CPLD GPIO driver"
1372 depends on MFD_TN48M_CPLD
1373 select GPIO_REGMAP
1374 help
1375 This enables support for the GPIOs found on the Delta
1376 Networks TN48M switch Lattice CPLD. It provides 12 pins in total,
1377 they are input-only or output-only type.
1378
1379 This driver can also be built as a module. If so, the
1380 module will be called gpio-tn48m.
1381
1382 config GPIO_TPS65086
1383 tristate "TI TPS65086 GPO"
1384 depends on MFD_TPS65086
1385 help
1386 This driver supports the GPO on TI TPS65086x PMICs.
1387
1388 config GPIO_TPS65218
1389 tristate "TPS65218 GPIO"
1390 depends on MFD_TPS65218
1391 help
1392 Select this option to enable GPIO driver for the TPS65218
1393 chip family.
1394
1395 config GPIO_TPS6586X
1396 bool "TPS6586X GPIO"
1397 depends on MFD_TPS6586X
1398 help
1399 Select this option to enable GPIO driver for the TPS6586X
1400 chip family.
1401
1402 config GPIO_TPS65910
1403 bool "TPS65910 GPIO"
1404 depends on MFD_TPS65910
1405 help
1406 Select this option to enable GPIO driver for the TPS65910
1407 chip family.
1408
1409 config GPIO_TPS65912
1410 tristate "TI TPS65912 GPIO"
1411 depends on MFD_TPS65912
1412 help
1413 This driver supports TPS65912 GPIO chip.
1414
1415 config GPIO_TPS68470
1416 tristate "TPS68470 GPIO"
1417 depends on INTEL_SKL_INT3472
1418 help
1419 Select this option to enable GPIO driver for the TPS68470
1420 chip family.
1421 There are 7 GPIOs and few sensor-related GPIOs supported
1422 by the TPS68470. While the 7 GPIOs can be configured as
1423 input or output as appropriate, the sensor related GPIOs
1424 are "output only" GPIOs.
1425
1426 config GPIO_TQMX86
1427 tristate "TQ-Systems QTMX86 GPIO"
1428 depends on MFD_TQMX86 || COMPILE_TEST
1429 depends on HAS_IOPORT_MAP
1430 select GPIOLIB_IRQCHIP
1431 help
1432 This driver supports GPIO on the TQMX86 IO controller.
1433
1434 config GPIO_TWL4030
1435 tristate "TWL4030, TWL5030, and TPS659x0 GPIOs"
1436 depends on TWL4030_CORE
1437 help
1438 Say yes here to access the GPIO signals of various multi-function
1439 power management chips from Texas Instruments.
1440
1441 config GPIO_TWL6040
1442 tristate "TWL6040 GPO"
1443 depends on TWL6040_CORE
1444 help
1445 Say yes here to access the GPO signals of twl6040
1446 audio chip from Texas Instruments.
1447
1448 config GPIO_UCB1400
1449 tristate "Philips UCB1400 GPIO"
1450 depends on UCB1400_CORE
1451 help
1452 This enables support for the Philips UCB1400 GPIO pins.
1453 The UCB1400 is an AC97 audio codec.
1454
1455 config GPIO_WHISKEY_COVE
1456 tristate "GPIO support for Whiskey Cove PMIC"
1457 depends on (X86 || COMPILE_TEST) && INTEL_SOC_PMIC_BXTWC
1458 select GPIOLIB_IRQCHIP
1459 help
1460 Support for GPIO pins on Whiskey Cove PMIC.
1461
1462 Say Yes if you have an Intel SoC-based tablet with Whiskey Cove PMIC
1463 inside.
1464
1465 This driver can also be built as a module. If so, the module will be
1466 called gpio-wcove.
1467
1468 config GPIO_WM831X
1469 tristate "WM831x GPIOs"
1470 depends on MFD_WM831X
1471 help
1472 Say yes here to access the GPIO signals of WM831x power management
1473 chips from Wolfson Microelectronics.
1474
1475 config GPIO_WM8350
1476 tristate "WM8350 GPIOs"
1477 depends on MFD_WM8350
1478 help
1479 Say yes here to access the GPIO signals of WM8350 power management
1480 chips from Wolfson Microelectronics.
1481
1482 config GPIO_WM8994
1483 tristate "WM8994 GPIOs"
1484 depends on MFD_WM8994
1485 help
1486 Say yes here to access the GPIO signals of WM8994 audio hub
1487 CODECs from Wolfson Microelectronics.
1488
1489 endmenu
1490
1491 menu "PCI GPIO expanders"
1492 depends on PCI
1493
1494 config GPIO_AMD8111
1495 tristate "AMD 8111 GPIO driver"
1496 depends on X86 || COMPILE_TEST
1497 depends on HAS_IOPORT_MAP
1498 help
1499 The AMD 8111 southbridge contains 32 GPIO pins which can be used.
1500
1501 Note that usually system firmware/ACPI handles GPIO pins on their
1502 own and users might easily break their systems with uncareful usage
1503 of this driver!
1504
1505 If unsure, say N
1506
1507 config GPIO_BT8XX
1508 tristate "BT8XX GPIO abuser"
1509 depends on VIDEO_BT848=n
1510 help
1511 The BT8xx frame grabber chip has 24 GPIO pins that can be abused
1512 as a cheap PCI GPIO card.
1513
1514 This chip can be found on Miro, Hauppauge and STB TV-cards.
1515
1516 The card needs to be physically altered for using it as a
1517 GPIO card. For more information on how to build a GPIO card
1518 from a BT8xx TV card, see the documentation file at
1519 Documentation/driver-api/gpio/bt8xxgpio.rst
1520
1521 If unsure, say N.
1522
1523 config GPIO_MERRIFIELD
1524 tristate "Intel Merrifield GPIO support"
1525 depends on X86_INTEL_MID
1526 select GPIOLIB_IRQCHIP
1527 help
1528 Say Y here to support Intel Merrifield GPIO.
1529
1530 config GPIO_MLXBF
1531 tristate "Mellanox BlueField SoC GPIO"
1532 depends on (MELLANOX_PLATFORM && ARM64 && ACPI) || (64BIT && COMPILE_TEST)
1533 select GPIO_GENERIC
1534 help
1535 Say Y here if you want GPIO support on Mellanox BlueField SoC.
1536
1537 config GPIO_MLXBF2
1538 tristate "Mellanox BlueField 2 SoC GPIO"
1539 depends on (MELLANOX_PLATFORM && ARM64 && ACPI) || (64BIT && COMPILE_TEST)
1540 select GPIO_GENERIC
1541 help
1542 Say Y here if you want GPIO support on Mellanox BlueField 2 SoC.
1543
1544 config GPIO_ML_IOH
1545 tristate "OKI SEMICONDUCTOR ML7213 IOH GPIO support"
1546 depends on X86 || COMPILE_TEST
1547 select GENERIC_IRQ_CHIP
1548 help
1549 ML7213 is companion chip for Intel Atom E6xx series.
1550 This driver can be used for OKI SEMICONDUCTOR ML7213 IOH (Input/Output
1551 Hub) which is for IVI (In-Vehicle Infotainment) use.
1552 This driver can access the IOH's GPIO device.
1553
1554 config GPIO_PCH
1555 tristate "Intel EG20T PCH/LAPIS Semiconductor IOH (ML7223/ML7831) GPIO"
1556 depends on X86_32 || MIPS || COMPILE_TEST
1557 select GENERIC_IRQ_CHIP
1558 help
1559 This driver is for PCH (Platform Controller Hub) GPIO of Intel Topcliff,
1560 which is an IOH (Input/Output Hub) for x86 embedded processor.
1561 This driver can access PCH GPIO device.
1562
1563 This driver also can be used for LAPIS Semiconductor IOH (Input/
1564 Output Hub), ML7223 and ML7831.
1565 ML7223 IOH is for MP (Media Phone) use.
1566 ML7831 IOH is for general purpose use.
1567 ML7223/ML7831 is companion chip for Intel Atom E6xx series.
1568 ML7223/ML7831 is completely compatible for Intel EG20T PCH.
1569
1570 config GPIO_PCI_IDIO_16
1571 tristate "ACCES PCI-IDIO-16 GPIO support"
1572 select GPIOLIB_IRQCHIP
1573 help
1574 Enables GPIO support for the ACCES PCI-IDIO-16. An interrupt is
1575 generated when any of the inputs change state (low to high or high to
1576 low). Input filter control is not supported by this driver, and the
1577 input filters are deactivated by this driver.
1578
1579 config GPIO_PCIE_IDIO_24
1580 tristate "ACCES PCIe-IDIO-24 GPIO support"
1581 select GPIOLIB_IRQCHIP
1582 help
1583 Enables GPIO support for the ACCES PCIe-IDIO-24 family (PCIe-IDIO-24,
1584 PCIe-IDI-24, PCIe-IDO-24, PCIe-IDIO-12). An interrupt is generated
1585 when any of the inputs change state (low to high or high to low).
1586 Input filter control is not supported by this driver, and the input
1587 filters are deactivated by this driver.
1588
1589 config GPIO_RDC321X
1590 tristate "RDC R-321x GPIO support"
1591 select MFD_CORE
1592 select MFD_RDC321X
1593 help
1594 Support for the RDC R321x SoC GPIOs over southbridge
1595 PCI configuration space.
1596
1597 config GPIO_SODAVILLE
1598 bool "Intel Sodaville GPIO support"
1599 depends on X86 && OF
1600 select GPIO_GENERIC
1601 select GENERIC_IRQ_CHIP
1602 help
1603 Say Y here to support Intel Sodaville GPIO.
1604
1605 endmenu
1606
1607 menu "SPI GPIO expanders"
1608 depends on SPI_MASTER
1609
1610 config GPIO_74X164
1611 tristate "74x164 serial-in/parallel-out 8-bits shift register"
1612 depends on OF_GPIO
1613 help
1614 Driver for 74x164 compatible serial-in/parallel-out 8-outputs
1615 shift registers. This driver can be used to provide access
1616 to more GPIO outputs.
1617
1618 config GPIO_MAX3191X
1619 tristate "Maxim MAX3191x industrial serializer"
1620 select CRC8
1621 help
1622 GPIO driver for Maxim MAX31910, MAX31911, MAX31912, MAX31913,
1623 MAX31953 and MAX31963 industrial serializer, a daisy-chainable
1624 chip to make 8 digital 24V inputs available via SPI. Supports
1625 CRC checksums to guard against electromagnetic interference,
1626 as well as undervoltage and overtemperature detection.
1627
1628 config GPIO_MAX7301
1629 tristate "Maxim MAX7301 GPIO expander"
1630 select GPIO_MAX730X
1631 help
1632 GPIO driver for Maxim MAX7301 SPI-based GPIO expander.
1633
1634 config GPIO_MC33880
1635 tristate "Freescale MC33880 high-side/low-side switch"
1636 help
1637 SPI driver for Freescale MC33880 high-side/low-side switch.
1638 This provides GPIO interface supporting inputs and outputs.
1639
1640 config GPIO_PISOSR
1641 tristate "Generic parallel-in/serial-out shift register"
1642 help
1643 GPIO driver for SPI compatible parallel-in/serial-out shift
1644 registers. These are input only devices.
1645
1646 config GPIO_XRA1403
1647 tristate "EXAR XRA1403 16-bit GPIO expander"
1648 select REGMAP_SPI
1649 help
1650 GPIO driver for EXAR XRA1403 16-bit SPI-based GPIO expander.
1651
1652 config GPIO_MOXTET
1653 tristate "Turris Mox Moxtet bus GPIO expander"
1654 depends on MOXTET
1655 help
1656 Say yes here if you are building for the Turris Mox router.
1657 This is the driver needed for configuring the GPIOs via the Moxtet
1658 bus. For example the Mox module with SFP cage needs this driver
1659 so that phylink can use corresponding GPIOs.
1660
1661 endmenu
1662
1663 menu "USB GPIO expanders"
1664 depends on USB
1665
1666 config GPIO_VIPERBOARD
1667 tristate "Viperboard GPIO a & b support"
1668 depends on MFD_VIPERBOARD
1669 help
1670 Say yes here to access the GPIO signals of Nano River
1671 Technologies Viperboard. There are two GPIO chips on the
1672 board: gpioa and gpiob.
1673 See viperboard API specification and Nano
1674 River Tech's viperboard.h for detailed meaning
1675 of the module parameters.
1676
1677 endmenu
1678
1679 menu "Virtual GPIO drivers"
1680
1681 config GPIO_AGGREGATOR
1682 tristate "GPIO Aggregator"
1683 help
1684 Say yes here to enable the GPIO Aggregator, which provides a way to
1685 aggregate existing GPIO lines into a new virtual GPIO chip.
1686 This can serve the following purposes:
1687 - Assign permissions for a collection of GPIO lines to a user,
1688 - Export a collection of GPIO lines to a virtual machine,
1689 - Provide a generic driver for a GPIO-operated device in an
1690 industrial control context, to be operated from userspace using
1691 the GPIO chardev interface.
1692
1693 config GPIO_MOCKUP
1694 tristate "GPIO Testing Driver"
1695 select IRQ_SIM
1696 help
1697 This enables GPIO Testing driver, which provides a way to test GPIO
1698 subsystem through sysfs (or char device) and debugfs.
1699 User could use it through the script in
1700 tools/testing/selftests/gpio/gpio-mockup.sh. Reference the usage in
1701 it.
1702
1703 config GPIO_VIRTIO
1704 tristate "VirtIO GPIO support"
1705 depends on VIRTIO
1706 select GPIOLIB_IRQCHIP
1707 help
1708 Say Y here to enable guest support for virtio-based GPIO controllers.
1709
1710 These virtual GPIOs can be routed to real GPIOs or attached to
1711 simulators on the host (like QEMU).
1712
1713 config GPIO_SIM
1714 tristate "GPIO Simulator Module"
1715 select IRQ_SIM
1716 select CONFIGFS_FS
1717 help
1718 This enables the GPIO simulator - a configfs-based GPIO testing
1719 driver.
1720
1721 endmenu
1722
1723 endif