162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
262306a36Sopenharmony_ci#
362306a36Sopenharmony_ci# GPIO infrastructure and drivers
462306a36Sopenharmony_ci#
562306a36Sopenharmony_ci
662306a36Sopenharmony_cimenuconfig GPIOLIB
762306a36Sopenharmony_ci	bool "GPIO Support"
862306a36Sopenharmony_ci	help
962306a36Sopenharmony_ci	  This enables GPIO support through the generic GPIO library.
1062306a36Sopenharmony_ci	  You only need to enable this if you also want to enable
1162306a36Sopenharmony_ci	  one or more of the GPIO drivers below.
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ci	  If unsure, say N.
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ciif GPIOLIB
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ciconfig GPIOLIB_FASTPATH_LIMIT
1862306a36Sopenharmony_ci	int "Maximum number of GPIOs for fast path"
1962306a36Sopenharmony_ci	range 32 512
2062306a36Sopenharmony_ci	default 512
2162306a36Sopenharmony_ci	help
2262306a36Sopenharmony_ci	  This adjusts the point at which certain APIs will switch from
2362306a36Sopenharmony_ci	  using a stack allocated buffer to a dynamically allocated buffer.
2462306a36Sopenharmony_ci
2562306a36Sopenharmony_ci	  You shouldn't need to change this unless you really need to
2662306a36Sopenharmony_ci	  optimize either stack space or performance. Change this carefully
2762306a36Sopenharmony_ci	  since setting an incorrect value could cause stack corruption.
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ciconfig OF_GPIO
3062306a36Sopenharmony_ci	def_bool y
3162306a36Sopenharmony_ci	depends on OF
3262306a36Sopenharmony_ci	depends on HAS_IOMEM
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_ciconfig GPIO_ACPI
3562306a36Sopenharmony_ci	def_bool y
3662306a36Sopenharmony_ci	depends on ACPI
3762306a36Sopenharmony_ci
3862306a36Sopenharmony_ciconfig GPIOLIB_IRQCHIP
3962306a36Sopenharmony_ci	select IRQ_DOMAIN
4062306a36Sopenharmony_ci	bool
4162306a36Sopenharmony_ci
4262306a36Sopenharmony_ciconfig OF_GPIO_MM_GPIOCHIP
4362306a36Sopenharmony_ci	bool
4462306a36Sopenharmony_ci	help
4562306a36Sopenharmony_ci	  This adds support for the legacy 'struct of_mm_gpio_chip' interface
4662306a36Sopenharmony_ci	  from PowerPC. Existing drivers using this interface need to select
4762306a36Sopenharmony_ci	  this symbol, but new drivers should use the generic gpio-regmap
4862306a36Sopenharmony_ci	  infrastructure instead.
4962306a36Sopenharmony_ci
5062306a36Sopenharmony_ciconfig DEBUG_GPIO
5162306a36Sopenharmony_ci	bool "Debug GPIO calls"
5262306a36Sopenharmony_ci	depends on DEBUG_KERNEL
5362306a36Sopenharmony_ci	help
5462306a36Sopenharmony_ci	  Say Y here to add some extra checks and diagnostics to GPIO calls.
5562306a36Sopenharmony_ci	  These checks help ensure that GPIOs have been properly initialized
5662306a36Sopenharmony_ci	  before they are used, and that sleeping calls are not made from
5762306a36Sopenharmony_ci	  non-sleeping contexts.  They can make bitbanged serial protocols
5862306a36Sopenharmony_ci	  slower.  The diagnostics help catch the type of setup errors
5962306a36Sopenharmony_ci	  that are most common when setting up new platforms or boards.
6062306a36Sopenharmony_ci
6162306a36Sopenharmony_ciconfig GPIO_SYSFS
6262306a36Sopenharmony_ci	bool "/sys/class/gpio/... (sysfs interface)" if EXPERT
6362306a36Sopenharmony_ci	depends on SYSFS
6462306a36Sopenharmony_ci	select GPIO_CDEV # We need to encourage the new ABI
6562306a36Sopenharmony_ci	help
6662306a36Sopenharmony_ci	  Say Y here to add the legacy sysfs interface for GPIOs.
6762306a36Sopenharmony_ci
6862306a36Sopenharmony_ci	  This ABI is deprecated. If you want to use GPIO from userspace,
6962306a36Sopenharmony_ci	  use the character device /dev/gpiochipN with the appropriate
7062306a36Sopenharmony_ci	  ioctl() operations instead.
7162306a36Sopenharmony_ci
7262306a36Sopenharmony_ciconfig GPIO_CDEV
7362306a36Sopenharmony_ci	bool
7462306a36Sopenharmony_ci	prompt "Character device (/dev/gpiochipN) support" if EXPERT
7562306a36Sopenharmony_ci	default y
7662306a36Sopenharmony_ci	help
7762306a36Sopenharmony_ci	  Say Y here to add the character device /dev/gpiochipN interface
7862306a36Sopenharmony_ci	  for GPIOs. The character device allows userspace to control GPIOs
7962306a36Sopenharmony_ci	  using ioctl() operations.
8062306a36Sopenharmony_ci
8162306a36Sopenharmony_ci	  Only say N if you are sure that the GPIO character device is not
8262306a36Sopenharmony_ci	  required.
8362306a36Sopenharmony_ci
8462306a36Sopenharmony_ci	  If unsure, say Y.
8562306a36Sopenharmony_ci
8662306a36Sopenharmony_ciconfig GPIO_CDEV_V1
8762306a36Sopenharmony_ci	bool "Support GPIO ABI Version 1"
8862306a36Sopenharmony_ci	default y
8962306a36Sopenharmony_ci	depends on GPIO_CDEV
9062306a36Sopenharmony_ci	help
9162306a36Sopenharmony_ci	  Say Y here to support version 1 of the GPIO CDEV ABI.
9262306a36Sopenharmony_ci
9362306a36Sopenharmony_ci	  This ABI version is deprecated.
9462306a36Sopenharmony_ci	  Please use the latest ABI for new developments.
9562306a36Sopenharmony_ci
9662306a36Sopenharmony_ci	  If unsure, say Y.
9762306a36Sopenharmony_ci
9862306a36Sopenharmony_ciconfig GPIO_GENERIC
9962306a36Sopenharmony_ci	depends on HAS_IOMEM # Only for IOMEM drivers
10062306a36Sopenharmony_ci	tristate
10162306a36Sopenharmony_ci
10262306a36Sopenharmony_ciconfig GPIO_REGMAP
10362306a36Sopenharmony_ci	select REGMAP
10462306a36Sopenharmony_ci	tristate
10562306a36Sopenharmony_ci
10662306a36Sopenharmony_ci# put drivers in the right section, in alphabetical order
10762306a36Sopenharmony_ci
10862306a36Sopenharmony_ci# This symbol is selected by both I2C and SPI expanders
10962306a36Sopenharmony_ciconfig GPIO_MAX730X
11062306a36Sopenharmony_ci	tristate
11162306a36Sopenharmony_ci
11262306a36Sopenharmony_ciconfig GPIO_IDIO_16
11362306a36Sopenharmony_ci	tristate
11462306a36Sopenharmony_ci	select REGMAP_IRQ
11562306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
11662306a36Sopenharmony_ci	select GPIO_REGMAP
11762306a36Sopenharmony_ci	help
11862306a36Sopenharmony_ci	  Enables support for the idio-16 library functions. The idio-16 library
11962306a36Sopenharmony_ci	  provides functions to facilitate communication with devices within the
12062306a36Sopenharmony_ci	  ACCES IDIO-16 family such as the 104-IDIO-16 and the PCI-IDIO-16.
12162306a36Sopenharmony_ci
12262306a36Sopenharmony_ci	  If built as a module its name will be gpio-idio-16.
12362306a36Sopenharmony_ci
12462306a36Sopenharmony_cimenu "Memory mapped GPIO drivers"
12562306a36Sopenharmony_ci	depends on HAS_IOMEM
12662306a36Sopenharmony_ci
12762306a36Sopenharmony_ciconfig GPIO_74XX_MMIO
12862306a36Sopenharmony_ci	tristate "GPIO driver for 74xx-ICs with MMIO access"
12962306a36Sopenharmony_ci	depends on OF_GPIO
13062306a36Sopenharmony_ci	select GPIO_GENERIC
13162306a36Sopenharmony_ci	help
13262306a36Sopenharmony_ci	  Say yes here to support GPIO functionality for 74xx-compatible ICs
13362306a36Sopenharmony_ci	  with MMIO access. Compatible models include:
13462306a36Sopenharmony_ci	    1 bit:	741G125 (Input), 741G74 (Output)
13562306a36Sopenharmony_ci	    2 bits:	742G125 (Input), 7474 (Output)
13662306a36Sopenharmony_ci	    4 bits:	74125 (Input), 74175 (Output)
13762306a36Sopenharmony_ci	    6 bits:	74365 (Input), 74174 (Output)
13862306a36Sopenharmony_ci	    8 bits:	74244 (Input), 74273 (Output)
13962306a36Sopenharmony_ci	    16 bits:	741624 (Input), 7416374 (Output)
14062306a36Sopenharmony_ci
14162306a36Sopenharmony_ciconfig GPIO_ALTERA
14262306a36Sopenharmony_ci	tristate "Altera GPIO"
14362306a36Sopenharmony_ci	depends on OF_GPIO
14462306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
14562306a36Sopenharmony_ci	select OF_GPIO_MM_GPIOCHIP
14662306a36Sopenharmony_ci	help
14762306a36Sopenharmony_ci	  Say Y or M here to build support for the Altera PIO device.
14862306a36Sopenharmony_ci
14962306a36Sopenharmony_ci	  If driver is built as a module it will be called gpio-altera.
15062306a36Sopenharmony_ci
15162306a36Sopenharmony_ciconfig GPIO_AMDPT
15262306a36Sopenharmony_ci	tristate "AMD Promontory GPIO support"
15362306a36Sopenharmony_ci	depends on ACPI
15462306a36Sopenharmony_ci	select GPIO_GENERIC
15562306a36Sopenharmony_ci	help
15662306a36Sopenharmony_ci	  Driver for GPIO functionality on Promontory IOHub.
15762306a36Sopenharmony_ci	  Requires ACPI ASL code to enumerate as a platform device.
15862306a36Sopenharmony_ci
15962306a36Sopenharmony_ciconfig GPIO_ASPEED
16062306a36Sopenharmony_ci	tristate "Aspeed GPIO support"
16162306a36Sopenharmony_ci	depends on (ARCH_ASPEED || COMPILE_TEST) && OF_GPIO
16262306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
16362306a36Sopenharmony_ci	help
16462306a36Sopenharmony_ci	  Say Y here to support Aspeed AST2400 and AST2500 GPIO controllers.
16562306a36Sopenharmony_ci
16662306a36Sopenharmony_ciconfig GPIO_ASPEED_SGPIO
16762306a36Sopenharmony_ci	bool "Aspeed SGPIO support"
16862306a36Sopenharmony_ci	depends on (ARCH_ASPEED || COMPILE_TEST) && OF_GPIO
16962306a36Sopenharmony_ci	select GPIO_GENERIC
17062306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
17162306a36Sopenharmony_ci	help
17262306a36Sopenharmony_ci	  Say Y here to support Aspeed AST2500 SGPIO functionality.
17362306a36Sopenharmony_ci
17462306a36Sopenharmony_ciconfig GPIO_ATH79
17562306a36Sopenharmony_ci	tristate "Atheros AR71XX/AR724X/AR913X GPIO support"
17662306a36Sopenharmony_ci	default y if ATH79
17762306a36Sopenharmony_ci	depends on ATH79 || COMPILE_TEST
17862306a36Sopenharmony_ci	select GPIO_GENERIC
17962306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
18062306a36Sopenharmony_ci	help
18162306a36Sopenharmony_ci	  Select this option to enable GPIO driver for
18262306a36Sopenharmony_ci	  Atheros AR71XX/AR724X/AR913X SoC devices.
18362306a36Sopenharmony_ci
18462306a36Sopenharmony_ciconfig GPIO_RASPBERRYPI_EXP
18562306a36Sopenharmony_ci	tristate "Raspberry Pi 3 GPIO Expander"
18662306a36Sopenharmony_ci	default RASPBERRYPI_FIRMWARE
18762306a36Sopenharmony_ci	depends on OF_GPIO
18862306a36Sopenharmony_ci	# Make sure not 'y' when RASPBERRYPI_FIRMWARE is 'm'. This can only
18962306a36Sopenharmony_ci	# happen when COMPILE_TEST=y, hence the added !RASPBERRYPI_FIRMWARE.
19062306a36Sopenharmony_ci	depends on (ARCH_BCM2835 && RASPBERRYPI_FIRMWARE) || (COMPILE_TEST && !RASPBERRYPI_FIRMWARE)
19162306a36Sopenharmony_ci	help
19262306a36Sopenharmony_ci	  Turn on GPIO support for the expander on Raspberry Pi 3 boards, using
19362306a36Sopenharmony_ci	  the firmware mailbox to communicate with VideoCore on BCM283x chips.
19462306a36Sopenharmony_ci
19562306a36Sopenharmony_ciconfig GPIO_BCM_KONA
19662306a36Sopenharmony_ci	bool "Broadcom Kona GPIO"
19762306a36Sopenharmony_ci	depends on ARCH_BCM_MOBILE || COMPILE_TEST
19862306a36Sopenharmony_ci	help
19962306a36Sopenharmony_ci	  Turn on GPIO support for Broadcom "Kona" chips.
20062306a36Sopenharmony_ci
20162306a36Sopenharmony_ciconfig GPIO_BCM_XGS_IPROC
20262306a36Sopenharmony_ci	tristate "BRCM XGS iProc GPIO support"
20362306a36Sopenharmony_ci	depends on OF_GPIO && (ARCH_BCM_IPROC || COMPILE_TEST)
20462306a36Sopenharmony_ci	select GPIO_GENERIC
20562306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
20662306a36Sopenharmony_ci	default ARCH_BCM_IPROC
20762306a36Sopenharmony_ci	help
20862306a36Sopenharmony_ci	  Say yes here to enable GPIO support for Broadcom XGS iProc SoCs.
20962306a36Sopenharmony_ci
21062306a36Sopenharmony_ciconfig GPIO_BRCMSTB
21162306a36Sopenharmony_ci	tristate "BRCMSTB GPIO support"
21262306a36Sopenharmony_ci	default y if (ARCH_BRCMSTB || BMIPS_GENERIC)
21362306a36Sopenharmony_ci	depends on OF_GPIO && (ARCH_BRCMSTB || BMIPS_GENERIC || COMPILE_TEST)
21462306a36Sopenharmony_ci	select GPIO_GENERIC
21562306a36Sopenharmony_ci	select IRQ_DOMAIN
21662306a36Sopenharmony_ci	help
21762306a36Sopenharmony_ci	  Say yes here to enable GPIO support for Broadcom STB (BCM7XXX) SoCs.
21862306a36Sopenharmony_ci
21962306a36Sopenharmony_ciconfig GPIO_CADENCE
22062306a36Sopenharmony_ci	tristate "Cadence GPIO support"
22162306a36Sopenharmony_ci	depends on OF_GPIO
22262306a36Sopenharmony_ci	select GPIO_GENERIC
22362306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
22462306a36Sopenharmony_ci	help
22562306a36Sopenharmony_ci	  Say yes here to enable support for Cadence GPIO controller.
22662306a36Sopenharmony_ci
22762306a36Sopenharmony_ciconfig GPIO_CLPS711X
22862306a36Sopenharmony_ci	tristate "CLPS711X GPIO support"
22962306a36Sopenharmony_ci	depends on ARCH_CLPS711X || COMPILE_TEST
23062306a36Sopenharmony_ci	select GPIO_GENERIC
23162306a36Sopenharmony_ci	help
23262306a36Sopenharmony_ci	  Say yes here to support GPIO on CLPS711X SoCs.
23362306a36Sopenharmony_ci
23462306a36Sopenharmony_ciconfig GPIO_DAVINCI
23562306a36Sopenharmony_ci	tristate "TI Davinci/Keystone GPIO support"
23662306a36Sopenharmony_ci	default y if ARCH_DAVINCI
23762306a36Sopenharmony_ci	depends on (ARM || ARM64) && (ARCH_DAVINCI || ARCH_KEYSTONE || ARCH_K3)
23862306a36Sopenharmony_ci	help
23962306a36Sopenharmony_ci	  Say yes here to enable GPIO support for TI Davinci/Keystone SoCs.
24062306a36Sopenharmony_ci
24162306a36Sopenharmony_ciconfig GPIO_DWAPB
24262306a36Sopenharmony_ci	tristate "Synopsys DesignWare APB GPIO driver"
24362306a36Sopenharmony_ci	select GPIO_GENERIC
24462306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
24562306a36Sopenharmony_ci	help
24662306a36Sopenharmony_ci	  Say Y or M here to build support for the Synopsys DesignWare APB
24762306a36Sopenharmony_ci	  GPIO block.
24862306a36Sopenharmony_ci
24962306a36Sopenharmony_ciconfig GPIO_EIC_SPRD
25062306a36Sopenharmony_ci	tristate "Spreadtrum EIC support"
25162306a36Sopenharmony_ci	depends on ARCH_SPRD || COMPILE_TEST
25262306a36Sopenharmony_ci	depends on OF_GPIO
25362306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
25462306a36Sopenharmony_ci	help
25562306a36Sopenharmony_ci	  Say yes here to support Spreadtrum EIC device.
25662306a36Sopenharmony_ci
25762306a36Sopenharmony_ciconfig GPIO_EM
25862306a36Sopenharmony_ci	tristate "Emma Mobile GPIO"
25962306a36Sopenharmony_ci	depends on (ARCH_EMEV2 || COMPILE_TEST) && OF_GPIO
26062306a36Sopenharmony_ci	help
26162306a36Sopenharmony_ci	  Say yes here to support GPIO on Renesas Emma Mobile SoCs.
26262306a36Sopenharmony_ci
26362306a36Sopenharmony_ciconfig GPIO_EN7523
26462306a36Sopenharmony_ci	tristate "Airoha GPIO support"
26562306a36Sopenharmony_ci	depends on ARCH_AIROHA
26662306a36Sopenharmony_ci	default ARCH_AIROHA
26762306a36Sopenharmony_ci	select GPIO_GENERIC
26862306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
26962306a36Sopenharmony_ci	help
27062306a36Sopenharmony_ci	  Say Y or M here to support the GPIO controller block on the
27162306a36Sopenharmony_ci	  Airoha EN7523 SoC. It supports two banks of 32 GPIOs.
27262306a36Sopenharmony_ci
27362306a36Sopenharmony_ciconfig GPIO_EP93XX
27462306a36Sopenharmony_ci	def_bool y
27562306a36Sopenharmony_ci	depends on ARCH_EP93XX
27662306a36Sopenharmony_ci	select GPIO_GENERIC
27762306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
27862306a36Sopenharmony_ci
27962306a36Sopenharmony_ciconfig GPIO_EXAR
28062306a36Sopenharmony_ci	tristate "Support for GPIO pins on XR17V352/354/358"
28162306a36Sopenharmony_ci	depends on SERIAL_8250_EXAR
28262306a36Sopenharmony_ci	select REGMAP_MMIO
28362306a36Sopenharmony_ci	help
28462306a36Sopenharmony_ci	  Selecting this option will enable handling of GPIO pins present
28562306a36Sopenharmony_ci	  on Exar XR17V352/354/358 chips.
28662306a36Sopenharmony_ci
28762306a36Sopenharmony_ciconfig GPIO_GE_FPGA
28862306a36Sopenharmony_ci	bool "GE FPGA based GPIO"
28962306a36Sopenharmony_ci	depends on GE_FPGA || COMPILE_TEST
29062306a36Sopenharmony_ci	select GPIO_GENERIC
29162306a36Sopenharmony_ci	help
29262306a36Sopenharmony_ci	  Support for common GPIO functionality provided on some GE Single Board
29362306a36Sopenharmony_ci	  Computers.
29462306a36Sopenharmony_ci
29562306a36Sopenharmony_ci	  This driver provides basic support (configure as input or output, read
29662306a36Sopenharmony_ci	  and write pin state) for GPIO implemented in a number of GE single
29762306a36Sopenharmony_ci	  board computers.
29862306a36Sopenharmony_ci
29962306a36Sopenharmony_ciconfig GPIO_FTGPIO010
30062306a36Sopenharmony_ci	bool "Faraday FTGPIO010 GPIO"
30162306a36Sopenharmony_ci	depends on OF_GPIO
30262306a36Sopenharmony_ci	select GPIO_GENERIC
30362306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
30462306a36Sopenharmony_ci	default (ARCH_GEMINI || ARCH_MOXART)
30562306a36Sopenharmony_ci	help
30662306a36Sopenharmony_ci	  Support for common GPIOs from the Faraday FTGPIO010 IP core, found in
30762306a36Sopenharmony_ci	  Cortina systems Gemini platforms, Moxa ART and others.
30862306a36Sopenharmony_ci
30962306a36Sopenharmony_ciconfig GPIO_GENERIC_PLATFORM
31062306a36Sopenharmony_ci	tristate "Generic memory-mapped GPIO controller support (MMIO platform device)"
31162306a36Sopenharmony_ci	select GPIO_GENERIC
31262306a36Sopenharmony_ci	help
31362306a36Sopenharmony_ci	  Say yes here to support basic platform_device memory-mapped GPIO controllers.
31462306a36Sopenharmony_ci
31562306a36Sopenharmony_ciconfig GPIO_GRGPIO
31662306a36Sopenharmony_ci	tristate "Aeroflex Gaisler GRGPIO support"
31762306a36Sopenharmony_ci	depends on OF_GPIO
31862306a36Sopenharmony_ci	select GPIO_GENERIC
31962306a36Sopenharmony_ci	select IRQ_DOMAIN
32062306a36Sopenharmony_ci	help
32162306a36Sopenharmony_ci	  Select this to support Aeroflex Gaisler GRGPIO cores from the GRLIB
32262306a36Sopenharmony_ci	  VHDL IP core library.
32362306a36Sopenharmony_ci
32462306a36Sopenharmony_ciconfig GPIO_HISI
32562306a36Sopenharmony_ci	tristate "HiSilicon GPIO controller driver"
32662306a36Sopenharmony_ci	depends on ARM64 || COMPILE_TEST
32762306a36Sopenharmony_ci	select GPIO_GENERIC
32862306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
32962306a36Sopenharmony_ci	help
33062306a36Sopenharmony_ci	  Say Y or M here to build support for the HiSilicon GPIO controller
33162306a36Sopenharmony_ci	  driver GPIO block.
33262306a36Sopenharmony_ci	  This GPIO controller supports double-edge interrupt and multi-core
33362306a36Sopenharmony_ci	  concurrent access.
33462306a36Sopenharmony_ci
33562306a36Sopenharmony_ciconfig GPIO_HLWD
33662306a36Sopenharmony_ci	tristate "Nintendo Wii (Hollywood) GPIO"
33762306a36Sopenharmony_ci	depends on OF_GPIO
33862306a36Sopenharmony_ci	select GPIO_GENERIC
33962306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
34062306a36Sopenharmony_ci	help
34162306a36Sopenharmony_ci	  Select this to support the GPIO controller of the Nintendo Wii.
34262306a36Sopenharmony_ci
34362306a36Sopenharmony_ci	  If unsure, say N.
34462306a36Sopenharmony_ci
34562306a36Sopenharmony_ciconfig GPIO_ICH
34662306a36Sopenharmony_ci	tristate "Intel ICH GPIO"
34762306a36Sopenharmony_ci	depends on X86
34862306a36Sopenharmony_ci	depends on LPC_ICH
34962306a36Sopenharmony_ci	help
35062306a36Sopenharmony_ci	  Say yes here to support the GPIO functionality of a number of Intel
35162306a36Sopenharmony_ci	  ICH-based chipsets.  Currently supported devices: ICH6, ICH7, ICH8
35262306a36Sopenharmony_ci	  ICH9, ICH10, Series 5/3400 (e.g. Ibex Peak), Series 6/C200 (e.g.
35362306a36Sopenharmony_ci	  Cougar Point), NM10 (Tiger Point), and 3100 (Whitmore Lake).
35462306a36Sopenharmony_ci
35562306a36Sopenharmony_ci	  If unsure, say N.
35662306a36Sopenharmony_ci
35762306a36Sopenharmony_ciconfig GPIO_IMX_SCU
35862306a36Sopenharmony_ci       def_bool y
35962306a36Sopenharmony_ci       depends on IMX_SCU
36062306a36Sopenharmony_ci
36162306a36Sopenharmony_ciconfig GPIO_IXP4XX
36262306a36Sopenharmony_ci	bool "Intel IXP4xx GPIO"
36362306a36Sopenharmony_ci	depends on ARCH_IXP4XX
36462306a36Sopenharmony_ci	depends on OF
36562306a36Sopenharmony_ci	select GPIO_GENERIC
36662306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
36762306a36Sopenharmony_ci	select IRQ_DOMAIN_HIERARCHY
36862306a36Sopenharmony_ci	help
36962306a36Sopenharmony_ci	  Say yes here to support the GPIO functionality of a number of Intel
37062306a36Sopenharmony_ci	  IXP4xx series of chips.
37162306a36Sopenharmony_ci
37262306a36Sopenharmony_ci	  If unsure, say N.
37362306a36Sopenharmony_ci
37462306a36Sopenharmony_ciconfig GPIO_LOGICVC
37562306a36Sopenharmony_ci	tristate "Xylon LogiCVC GPIO support"
37662306a36Sopenharmony_ci	depends on MFD_SYSCON && OF
37762306a36Sopenharmony_ci	help
37862306a36Sopenharmony_ci	  Say yes here to support GPIO functionality of the Xylon LogiCVC
37962306a36Sopenharmony_ci	  programmable logic block.
38062306a36Sopenharmony_ci
38162306a36Sopenharmony_ciconfig GPIO_LOONGSON
38262306a36Sopenharmony_ci	bool "Loongson-2/3 GPIO support"
38362306a36Sopenharmony_ci	depends on CPU_LOONGSON2EF || CPU_LOONGSON64
38462306a36Sopenharmony_ci	help
38562306a36Sopenharmony_ci	  Driver for GPIO functionality on Loongson-2F/3A/3B processors.
38662306a36Sopenharmony_ci
38762306a36Sopenharmony_ciconfig GPIO_LOONGSON_64BIT
38862306a36Sopenharmony_ci	tristate "Loongson 64 bit GPIO support"
38962306a36Sopenharmony_ci	depends on LOONGARCH || COMPILE_TEST
39062306a36Sopenharmony_ci	depends on OF_GPIO
39162306a36Sopenharmony_ci	select GPIO_GENERIC
39262306a36Sopenharmony_ci	help
39362306a36Sopenharmony_ci	  Say yes here to support the GPIO functionality of a number of
39462306a36Sopenharmony_ci	  Loongson series of chips. The Loongson GPIO controller supports
39562306a36Sopenharmony_ci	  up to 60 GPIOS in total, 4 of which are dedicated GPIO pins, and
39662306a36Sopenharmony_ci	  the remaining 56 are reused with other functions, with edge or
39762306a36Sopenharmony_ci	  level triggered interrupts.
39862306a36Sopenharmony_ci
39962306a36Sopenharmony_ciconfig GPIO_LPC18XX
40062306a36Sopenharmony_ci	tristate "NXP LPC18XX/43XX GPIO support"
40162306a36Sopenharmony_ci	default y if ARCH_LPC18XX
40262306a36Sopenharmony_ci	depends on OF_GPIO && (ARCH_LPC18XX || COMPILE_TEST)
40362306a36Sopenharmony_ci	select IRQ_DOMAIN_HIERARCHY
40462306a36Sopenharmony_ci	help
40562306a36Sopenharmony_ci	  Select this option to enable GPIO driver for
40662306a36Sopenharmony_ci	  NXP LPC18XX/43XX devices.
40762306a36Sopenharmony_ci
40862306a36Sopenharmony_ciconfig GPIO_LPC32XX
40962306a36Sopenharmony_ci	tristate "NXP LPC32XX GPIO support"
41062306a36Sopenharmony_ci	depends on OF_GPIO && (ARCH_LPC32XX || COMPILE_TEST)
41162306a36Sopenharmony_ci	help
41262306a36Sopenharmony_ci	  Select this option to enable GPIO driver for
41362306a36Sopenharmony_ci	  NXP LPC32XX devices.
41462306a36Sopenharmony_ci
41562306a36Sopenharmony_ciconfig GPIO_MB86S7X
41662306a36Sopenharmony_ci	tristate "GPIO support for Fujitsu MB86S7x Platforms"
41762306a36Sopenharmony_ci	help
41862306a36Sopenharmony_ci	  Say yes here to support the GPIO controller in Fujitsu MB86S70 SoCs.
41962306a36Sopenharmony_ci
42062306a36Sopenharmony_ciconfig GPIO_MENZ127
42162306a36Sopenharmony_ci	tristate "MEN 16Z127 GPIO support"
42262306a36Sopenharmony_ci	depends on MCB
42362306a36Sopenharmony_ci	select GPIO_GENERIC
42462306a36Sopenharmony_ci	help
42562306a36Sopenharmony_ci	  Say yes here to support the MEN 16Z127 GPIO Controller.
42662306a36Sopenharmony_ci
42762306a36Sopenharmony_ciconfig GPIO_MM_LANTIQ
42862306a36Sopenharmony_ci	bool "Lantiq Memory mapped GPIOs"
42962306a36Sopenharmony_ci	depends on LANTIQ && SOC_XWAY
43062306a36Sopenharmony_ci	select OF_GPIO_MM_GPIOCHIP
43162306a36Sopenharmony_ci	help
43262306a36Sopenharmony_ci	  This enables support for memory mapped GPIOs on the External Bus Unit
43362306a36Sopenharmony_ci	  (EBU) found on Lantiq SoCs. The GPIOs are output only as they are
43462306a36Sopenharmony_ci	  created by attaching a 16-bit latch to the bus.
43562306a36Sopenharmony_ci
43662306a36Sopenharmony_ciconfig GPIO_MPC5200
43762306a36Sopenharmony_ci	def_bool y
43862306a36Sopenharmony_ci	depends on PPC_MPC52xx
43962306a36Sopenharmony_ci	select OF_GPIO_MM_GPIOCHIP
44062306a36Sopenharmony_ci
44162306a36Sopenharmony_ciconfig GPIO_MPC8XXX
44262306a36Sopenharmony_ci	bool "MPC512x/MPC8xxx/QorIQ GPIO support"
44362306a36Sopenharmony_ci	depends on PPC_MPC512x || PPC_MPC831x || PPC_MPC834x || PPC_MPC837x || \
44462306a36Sopenharmony_ci		   FSL_SOC_BOOKE || PPC_86xx || ARCH_LAYERSCAPE || ARM || \
44562306a36Sopenharmony_ci		   COMPILE_TEST
44662306a36Sopenharmony_ci	select GPIO_GENERIC
44762306a36Sopenharmony_ci	select IRQ_DOMAIN
44862306a36Sopenharmony_ci	help
44962306a36Sopenharmony_ci	  Say Y here if you're going to use hardware that connects to the
45062306a36Sopenharmony_ci	  MPC512x/831x/834x/837x/8572/8610/QorIQ GPIOs.
45162306a36Sopenharmony_ci
45262306a36Sopenharmony_ciconfig GPIO_MT7621
45362306a36Sopenharmony_ci	bool "Mediatek MT7621 GPIO Support"
45462306a36Sopenharmony_ci	depends on SOC_MT7620 || SOC_MT7621 || COMPILE_TEST
45562306a36Sopenharmony_ci	depends on OF_GPIO
45662306a36Sopenharmony_ci	select GPIO_GENERIC
45762306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
45862306a36Sopenharmony_ci	help
45962306a36Sopenharmony_ci	  Say yes here to support the Mediatek MT7621 SoC GPIO device.
46062306a36Sopenharmony_ci
46162306a36Sopenharmony_ciconfig GPIO_MVEBU
46262306a36Sopenharmony_ci	def_bool y
46362306a36Sopenharmony_ci	depends on PLAT_ORION || ARCH_MVEBU
46462306a36Sopenharmony_ci	depends on OF_GPIO
46562306a36Sopenharmony_ci	select GENERIC_IRQ_CHIP
46662306a36Sopenharmony_ci	select REGMAP_MMIO
46762306a36Sopenharmony_ci
46862306a36Sopenharmony_ciconfig GPIO_MXC
46962306a36Sopenharmony_ci	tristate "i.MX GPIO support"
47062306a36Sopenharmony_ci	depends on ARCH_MXC || COMPILE_TEST
47162306a36Sopenharmony_ci	select GPIO_GENERIC
47262306a36Sopenharmony_ci	select GENERIC_IRQ_CHIP
47362306a36Sopenharmony_ci
47462306a36Sopenharmony_ciconfig GPIO_MXS
47562306a36Sopenharmony_ci	bool "Freescale MXS GPIO support" if COMPILE_TEST
47662306a36Sopenharmony_ci	depends on ARCH_MXS || COMPILE_TEST
47762306a36Sopenharmony_ci	default y if ARCH_MXS
47862306a36Sopenharmony_ci	select GPIO_GENERIC
47962306a36Sopenharmony_ci	select GENERIC_IRQ_CHIP
48062306a36Sopenharmony_ci
48162306a36Sopenharmony_ciconfig GPIO_OCTEON
48262306a36Sopenharmony_ci	tristate "Cavium OCTEON GPIO"
48362306a36Sopenharmony_ci	depends on CAVIUM_OCTEON_SOC
48462306a36Sopenharmony_ci	default y
48562306a36Sopenharmony_ci	help
48662306a36Sopenharmony_ci	  Say yes here to support the on-chip GPIO lines on the OCTEON
48762306a36Sopenharmony_ci	  family of SOCs.
48862306a36Sopenharmony_ci
48962306a36Sopenharmony_ciconfig GPIO_OMAP
49062306a36Sopenharmony_ci	tristate "TI OMAP GPIO support" if ARCH_OMAP2PLUS || COMPILE_TEST
49162306a36Sopenharmony_ci	default y if ARCH_OMAP
49262306a36Sopenharmony_ci	depends on ARM
49362306a36Sopenharmony_ci	select GENERIC_IRQ_CHIP
49462306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
49562306a36Sopenharmony_ci	help
49662306a36Sopenharmony_ci	  Say yes here to enable GPIO support for TI OMAP SoCs.
49762306a36Sopenharmony_ci
49862306a36Sopenharmony_ciconfig GPIO_PL061
49962306a36Sopenharmony_ci	tristate "PrimeCell PL061 GPIO support"
50062306a36Sopenharmony_ci	depends on ARM_AMBA
50162306a36Sopenharmony_ci	select IRQ_DOMAIN
50262306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
50362306a36Sopenharmony_ci	help
50462306a36Sopenharmony_ci	  Say yes here to support the PrimeCell PL061 GPIO device.
50562306a36Sopenharmony_ci
50662306a36Sopenharmony_ciconfig GPIO_PXA
50762306a36Sopenharmony_ci	bool "PXA GPIO support"
50862306a36Sopenharmony_ci	depends on ARCH_PXA || ARCH_MMP || COMPILE_TEST
50962306a36Sopenharmony_ci	help
51062306a36Sopenharmony_ci	  Say yes here to support the PXA GPIO device.
51162306a36Sopenharmony_ci
51262306a36Sopenharmony_ciconfig GPIO_RCAR
51362306a36Sopenharmony_ci	tristate "Renesas R-Car and RZ/G GPIO support"
51462306a36Sopenharmony_ci	depends on ARCH_RENESAS || COMPILE_TEST
51562306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
51662306a36Sopenharmony_ci	help
51762306a36Sopenharmony_ci	  Say yes here to support GPIO on Renesas R-Car or RZ/G SoCs.
51862306a36Sopenharmony_ci
51962306a36Sopenharmony_ciconfig GPIO_RDA
52062306a36Sopenharmony_ci	bool "RDA Micro GPIO controller support"
52162306a36Sopenharmony_ci	depends on ARCH_RDA || COMPILE_TEST
52262306a36Sopenharmony_ci	depends on OF_GPIO
52362306a36Sopenharmony_ci	select GPIO_GENERIC
52462306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
52562306a36Sopenharmony_ci	help
52662306a36Sopenharmony_ci	  Say Y here to support RDA Micro GPIO controller.
52762306a36Sopenharmony_ci
52862306a36Sopenharmony_ciconfig GPIO_REALTEK_OTTO
52962306a36Sopenharmony_ci	tristate "Realtek Otto GPIO support"
53062306a36Sopenharmony_ci	depends on MACH_REALTEK_RTL
53162306a36Sopenharmony_ci	default MACH_REALTEK_RTL
53262306a36Sopenharmony_ci	select GPIO_GENERIC
53362306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
53462306a36Sopenharmony_ci	help
53562306a36Sopenharmony_ci	  The GPIO controller on the Otto MIPS platform supports up to two
53662306a36Sopenharmony_ci	  banks of 32 GPIOs, with edge triggered interrupts. The 32 GPIOs
53762306a36Sopenharmony_ci	  are grouped in four 8-bit wide ports.
53862306a36Sopenharmony_ci
53962306a36Sopenharmony_ci	  When built as a module, the module will be called realtek_otto_gpio.
54062306a36Sopenharmony_ci
54162306a36Sopenharmony_ciconfig GPIO_REG
54262306a36Sopenharmony_ci	bool
54362306a36Sopenharmony_ci	help
54462306a36Sopenharmony_ci	  A 32-bit single register GPIO fixed in/out implementation.  This
54562306a36Sopenharmony_ci	  can be used to represent any register as a set of GPIO signals.
54662306a36Sopenharmony_ci
54762306a36Sopenharmony_ciconfig GPIO_ROCKCHIP
54862306a36Sopenharmony_ci	tristate "Rockchip GPIO support"
54962306a36Sopenharmony_ci	depends on ARCH_ROCKCHIP || COMPILE_TEST
55062306a36Sopenharmony_ci	select GENERIC_IRQ_CHIP
55162306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
55262306a36Sopenharmony_ci	default ARCH_ROCKCHIP
55362306a36Sopenharmony_ci	help
55462306a36Sopenharmony_ci	  Say yes here to support GPIO on Rockchip SoCs.
55562306a36Sopenharmony_ci
55662306a36Sopenharmony_ciconfig GPIO_SAMA5D2_PIOBU
55762306a36Sopenharmony_ci	tristate "SAMA5D2 PIOBU GPIO support"
55862306a36Sopenharmony_ci	depends on MFD_SYSCON
55962306a36Sopenharmony_ci	depends on OF_GPIO
56062306a36Sopenharmony_ci	depends on ARCH_AT91 || COMPILE_TEST
56162306a36Sopenharmony_ci	select GPIO_SYSCON
56262306a36Sopenharmony_ci	help
56362306a36Sopenharmony_ci	  Say yes here to use the PIOBU pins as GPIOs.
56462306a36Sopenharmony_ci
56562306a36Sopenharmony_ci	  PIOBU pins on the SAMA5D2 can be used as GPIOs.
56662306a36Sopenharmony_ci	  The difference from regular GPIOs is that they
56762306a36Sopenharmony_ci	  maintain their value during backup/self-refresh.
56862306a36Sopenharmony_ci
56962306a36Sopenharmony_ciconfig GPIO_SIFIVE
57062306a36Sopenharmony_ci	tristate "SiFive GPIO support"
57162306a36Sopenharmony_ci	depends on OF_GPIO
57262306a36Sopenharmony_ci	select IRQ_DOMAIN_HIERARCHY
57362306a36Sopenharmony_ci	select GPIO_GENERIC
57462306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
57562306a36Sopenharmony_ci	select REGMAP_MMIO
57662306a36Sopenharmony_ci	help
57762306a36Sopenharmony_ci	  Say yes here to support the GPIO device on SiFive SoCs.
57862306a36Sopenharmony_ci
57962306a36Sopenharmony_ciconfig GPIO_SIOX
58062306a36Sopenharmony_ci	tristate "SIOX GPIO support"
58162306a36Sopenharmony_ci	depends on SIOX
58262306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
58362306a36Sopenharmony_ci	help
58462306a36Sopenharmony_ci	  Say yes here to support SIOX I/O devices. These are units connected
58562306a36Sopenharmony_ci	  via a SIOX bus and have a number of fixed-direction I/O lines.
58662306a36Sopenharmony_ci
58762306a36Sopenharmony_ciconfig GPIO_SNPS_CREG
58862306a36Sopenharmony_ci	bool "Synopsys GPIO via CREG (Control REGisters) driver"
58962306a36Sopenharmony_ci	depends on ARC || COMPILE_TEST
59062306a36Sopenharmony_ci	depends on OF_GPIO
59162306a36Sopenharmony_ci	help
59262306a36Sopenharmony_ci	  This driver supports GPIOs via CREG on various Synopsys SoCs.
59362306a36Sopenharmony_ci	  This is a single-register MMIO GPIO driver for complex cases
59462306a36Sopenharmony_ci	  where only several fields in register belong to GPIO lines and
59562306a36Sopenharmony_ci	  each GPIO line owns a field with different length and on/off value.
59662306a36Sopenharmony_ci
59762306a36Sopenharmony_ciconfig GPIO_SPEAR_SPICS
59862306a36Sopenharmony_ci	bool "ST SPEAr13xx SPI Chip Select as GPIO support"
59962306a36Sopenharmony_ci	depends on PLAT_SPEAR
60062306a36Sopenharmony_ci	select GENERIC_IRQ_CHIP
60162306a36Sopenharmony_ci	help
60262306a36Sopenharmony_ci	  Say yes here to support ST SPEAr SPI Chip Select as GPIO device.
60362306a36Sopenharmony_ci
60462306a36Sopenharmony_ciconfig GPIO_SPRD
60562306a36Sopenharmony_ci	tristate "Spreadtrum GPIO support"
60662306a36Sopenharmony_ci	depends on ARCH_SPRD || COMPILE_TEST
60762306a36Sopenharmony_ci	depends on OF_GPIO
60862306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
60962306a36Sopenharmony_ci	help
61062306a36Sopenharmony_ci	  Say yes here to support Spreadtrum GPIO device.
61162306a36Sopenharmony_ci
61262306a36Sopenharmony_ciconfig GPIO_STP_XWAY
61362306a36Sopenharmony_ci	bool "XWAY STP GPIOs"
61462306a36Sopenharmony_ci	depends on SOC_XWAY || COMPILE_TEST
61562306a36Sopenharmony_ci	depends on OF_GPIO
61662306a36Sopenharmony_ci	help
61762306a36Sopenharmony_ci	  This enables support for the Serial To Parallel (STP) unit found on
61862306a36Sopenharmony_ci	  XWAY SoC. The STP allows the SoC to drive a shift registers cascade,
61962306a36Sopenharmony_ci	  that can be up to 24 bits. This peripheral is aimed at driving LEDs.
62062306a36Sopenharmony_ci	  Some of the GPIOs/LEDs can be auto updated by the SoC with DSL and
62162306a36Sopenharmony_ci	  phy status.
62262306a36Sopenharmony_ci
62362306a36Sopenharmony_ciconfig GPIO_SYSCON
62462306a36Sopenharmony_ci	tristate "GPIO based on SYSCON"
62562306a36Sopenharmony_ci	depends on MFD_SYSCON && OF
62662306a36Sopenharmony_ci	help
62762306a36Sopenharmony_ci	  Say yes here to support GPIO functionality though SYSCON driver.
62862306a36Sopenharmony_ci
62962306a36Sopenharmony_ciconfig GPIO_TANGIER
63062306a36Sopenharmony_ci	tristate
63162306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
63262306a36Sopenharmony_ci	help
63362306a36Sopenharmony_ci	  GPIO support for Intel Tangier and compatible platforms.
63462306a36Sopenharmony_ci	  Currently supported:
63562306a36Sopenharmony_ci	   - Elkhart Lake
63662306a36Sopenharmony_ci	   - Merrifield
63762306a36Sopenharmony_ci
63862306a36Sopenharmony_ci	  If built as a module its name will be gpio-tangier.
63962306a36Sopenharmony_ci
64062306a36Sopenharmony_ciconfig GPIO_TB10X
64162306a36Sopenharmony_ci	bool
64262306a36Sopenharmony_ci	select GPIO_GENERIC
64362306a36Sopenharmony_ci	select GENERIC_IRQ_CHIP
64462306a36Sopenharmony_ci	select OF_GPIO
64562306a36Sopenharmony_ci
64662306a36Sopenharmony_ciconfig GPIO_TEGRA
64762306a36Sopenharmony_ci	tristate "NVIDIA Tegra GPIO support"
64862306a36Sopenharmony_ci	default ARCH_TEGRA
64962306a36Sopenharmony_ci	depends on ARCH_TEGRA || COMPILE_TEST
65062306a36Sopenharmony_ci	depends on OF_GPIO
65162306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
65262306a36Sopenharmony_ci	select IRQ_DOMAIN_HIERARCHY
65362306a36Sopenharmony_ci	help
65462306a36Sopenharmony_ci	  Say yes here to support GPIO pins on NVIDIA Tegra SoCs.
65562306a36Sopenharmony_ci
65662306a36Sopenharmony_ciconfig GPIO_TEGRA186
65762306a36Sopenharmony_ci	tristate "NVIDIA Tegra186 GPIO support"
65862306a36Sopenharmony_ci	default ARCH_TEGRA_186_SOC || ARCH_TEGRA_194_SOC
65962306a36Sopenharmony_ci	depends on ARCH_TEGRA_186_SOC || ARCH_TEGRA_194_SOC || COMPILE_TEST
66062306a36Sopenharmony_ci	depends on OF_GPIO
66162306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
66262306a36Sopenharmony_ci	select IRQ_DOMAIN_HIERARCHY
66362306a36Sopenharmony_ci	help
66462306a36Sopenharmony_ci	  Say yes here to support GPIO pins on NVIDIA Tegra186 SoCs.
66562306a36Sopenharmony_ci
66662306a36Sopenharmony_ciconfig GPIO_TS4800
66762306a36Sopenharmony_ci	tristate "TS-4800 DIO blocks and compatibles"
66862306a36Sopenharmony_ci	depends on OF_GPIO
66962306a36Sopenharmony_ci	depends on SOC_IMX51 || COMPILE_TEST
67062306a36Sopenharmony_ci	select GPIO_GENERIC
67162306a36Sopenharmony_ci	help
67262306a36Sopenharmony_ci	  This driver support TS-4800 FPGA GPIO controllers.
67362306a36Sopenharmony_ci
67462306a36Sopenharmony_ciconfig GPIO_THUNDERX
67562306a36Sopenharmony_ci	tristate "Cavium ThunderX/OCTEON-TX GPIO"
67662306a36Sopenharmony_ci	depends on ARCH_THUNDER || (64BIT && COMPILE_TEST)
67762306a36Sopenharmony_ci	depends on PCI_MSI
67862306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
67962306a36Sopenharmony_ci	select IRQ_DOMAIN_HIERARCHY
68062306a36Sopenharmony_ci	select IRQ_FASTEOI_HIERARCHY_HANDLERS
68162306a36Sopenharmony_ci	help
68262306a36Sopenharmony_ci	  Say yes here to support the on-chip GPIO lines on the ThunderX
68362306a36Sopenharmony_ci	  and OCTEON-TX families of SoCs.
68462306a36Sopenharmony_ci
68562306a36Sopenharmony_ciconfig GPIO_UNIPHIER
68662306a36Sopenharmony_ci	tristate "UniPhier GPIO support"
68762306a36Sopenharmony_ci	depends on ARCH_UNIPHIER || COMPILE_TEST
68862306a36Sopenharmony_ci	depends on OF_GPIO
68962306a36Sopenharmony_ci	select IRQ_DOMAIN_HIERARCHY
69062306a36Sopenharmony_ci	help
69162306a36Sopenharmony_ci	  Say yes here to support UniPhier GPIOs.
69262306a36Sopenharmony_ci
69362306a36Sopenharmony_ciconfig GPIO_VF610
69462306a36Sopenharmony_ci	bool "VF610 GPIO support"
69562306a36Sopenharmony_ci	default y if SOC_VF610
69662306a36Sopenharmony_ci	depends on ARCH_MXC
69762306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
69862306a36Sopenharmony_ci	help
69962306a36Sopenharmony_ci	  Say yes here to support i.MX or Vybrid vf610 GPIOs.
70062306a36Sopenharmony_ci
70162306a36Sopenharmony_ciconfig GPIO_VISCONTI
70262306a36Sopenharmony_ci	tristate "Toshiba Visconti GPIO support"
70362306a36Sopenharmony_ci	depends on ARCH_VISCONTI || COMPILE_TEST
70462306a36Sopenharmony_ci	depends on OF_GPIO
70562306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
70662306a36Sopenharmony_ci	select GPIO_GENERIC
70762306a36Sopenharmony_ci	select IRQ_DOMAIN_HIERARCHY
70862306a36Sopenharmony_ci	help
70962306a36Sopenharmony_ci	  Say yes here to support GPIO on Tohisba Visconti.
71062306a36Sopenharmony_ci
71162306a36Sopenharmony_ciconfig GPIO_WCD934X
71262306a36Sopenharmony_ci	tristate "Qualcomm Technologies Inc WCD9340/WCD9341 GPIO controller driver"
71362306a36Sopenharmony_ci	depends on MFD_WCD934X && OF_GPIO
71462306a36Sopenharmony_ci	help
71562306a36Sopenharmony_ci         This driver is to support GPIO block found on the Qualcomm Technologies
71662306a36Sopenharmony_ci	 Inc WCD9340/WCD9341 Audio Codec.
71762306a36Sopenharmony_ci
71862306a36Sopenharmony_ciconfig GPIO_XGENE
71962306a36Sopenharmony_ci	bool "APM X-Gene GPIO controller support"
72062306a36Sopenharmony_ci	depends on ARM64 && OF_GPIO
72162306a36Sopenharmony_ci	help
72262306a36Sopenharmony_ci	  This driver is to support the GPIO block within the APM X-Gene SoC
72362306a36Sopenharmony_ci	  platform's generic flash controller. The GPIO pins are muxed with
72462306a36Sopenharmony_ci	  the generic flash controller's address and data pins. Say yes
72562306a36Sopenharmony_ci	  here to enable the GFC GPIO functionality.
72662306a36Sopenharmony_ci
72762306a36Sopenharmony_ciconfig GPIO_XGENE_SB
72862306a36Sopenharmony_ci	tristate "APM X-Gene GPIO standby controller support"
72962306a36Sopenharmony_ci	depends on (ARCH_XGENE || COMPILE_TEST)
73062306a36Sopenharmony_ci	select GPIO_GENERIC
73162306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
73262306a36Sopenharmony_ci	select IRQ_DOMAIN_HIERARCHY
73362306a36Sopenharmony_ci	help
73462306a36Sopenharmony_ci	  This driver supports the GPIO block within the APM X-Gene
73562306a36Sopenharmony_ci	  Standby Domain. Say yes here to enable the GPIO functionality.
73662306a36Sopenharmony_ci
73762306a36Sopenharmony_ciconfig GPIO_XILINX
73862306a36Sopenharmony_ci	tristate "Xilinx GPIO support"
73962306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
74062306a36Sopenharmony_ci	depends on OF_GPIO
74162306a36Sopenharmony_ci	help
74262306a36Sopenharmony_ci	  Say yes here to support the Xilinx FPGA GPIO device.
74362306a36Sopenharmony_ci
74462306a36Sopenharmony_ciconfig GPIO_XLP
74562306a36Sopenharmony_ci	tristate "Cavium ThunderX2 GPIO support"
74662306a36Sopenharmony_ci	depends on ARCH_THUNDER2 || COMPILE_TEST
74762306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
74862306a36Sopenharmony_ci	help
74962306a36Sopenharmony_ci	  This driver provides support for GPIO interface on Cavium's ThunderX2
75062306a36Sopenharmony_ci	  CN99XX SoCs (Originally from Netlogic XLP).
75162306a36Sopenharmony_ci
75262306a36Sopenharmony_ci	  If unsure, say N.
75362306a36Sopenharmony_ci
75462306a36Sopenharmony_ciconfig GPIO_XTENSA
75562306a36Sopenharmony_ci	bool "Xtensa GPIO32 support"
75662306a36Sopenharmony_ci	depends on XTENSA
75762306a36Sopenharmony_ci	depends on HAVE_XTENSA_GPIO32
75862306a36Sopenharmony_ci	depends on !SMP
75962306a36Sopenharmony_ci	help
76062306a36Sopenharmony_ci	  Say yes here to support the Xtensa internal GPIO32 IMPWIRE (input)
76162306a36Sopenharmony_ci	  and EXPSTATE (output) ports.
76262306a36Sopenharmony_ci
76362306a36Sopenharmony_ciconfig GPIO_ZEVIO
76462306a36Sopenharmony_ci	bool "LSI ZEVIO SoC memory mapped GPIOs"
76562306a36Sopenharmony_ci	depends on ARM
76662306a36Sopenharmony_ci	help
76762306a36Sopenharmony_ci	  Say yes here to support the GPIO controller in LSI ZEVIO SoCs.
76862306a36Sopenharmony_ci
76962306a36Sopenharmony_ciconfig GPIO_ZYNQ
77062306a36Sopenharmony_ci	tristate "Xilinx Zynq GPIO support"
77162306a36Sopenharmony_ci	depends on ARCH_ZYNQ || ARCH_ZYNQMP
77262306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
77362306a36Sopenharmony_ci	help
77462306a36Sopenharmony_ci	  Say yes here to support Xilinx Zynq GPIO controller.
77562306a36Sopenharmony_ci
77662306a36Sopenharmony_ciconfig GPIO_ZYNQMP_MODEPIN
77762306a36Sopenharmony_ci	tristate "ZynqMP ps-mode pin GPIO configuration driver"
77862306a36Sopenharmony_ci	depends on ZYNQMP_FIRMWARE
77962306a36Sopenharmony_ci	default ZYNQMP_FIRMWARE
78062306a36Sopenharmony_ci	help
78162306a36Sopenharmony_ci	  Say yes here to support the ZynqMP ps-mode pin GPIO configuration
78262306a36Sopenharmony_ci	  driver.
78362306a36Sopenharmony_ci
78462306a36Sopenharmony_ci	  This ps-mode pin GPIO driver is based on GPIO framework. PS_MODE
78562306a36Sopenharmony_ci	  is 4-bits boot mode pins. It sets and gets the status of
78662306a36Sopenharmony_ci	  the ps-mode pin. Every pin can be configured as input/output.
78762306a36Sopenharmony_ci
78862306a36Sopenharmony_ciconfig GPIO_LOONGSON1
78962306a36Sopenharmony_ci	tristate "Loongson1 GPIO support"
79062306a36Sopenharmony_ci	depends on MACH_LOONGSON32
79162306a36Sopenharmony_ci	select GPIO_GENERIC
79262306a36Sopenharmony_ci	help
79362306a36Sopenharmony_ci	  Say Y or M here to support GPIO on Loongson1 SoCs.
79462306a36Sopenharmony_ci
79562306a36Sopenharmony_ciconfig GPIO_AMD_FCH
79662306a36Sopenharmony_ci	tristate "GPIO support for AMD Fusion Controller Hub (G-series SOCs)"
79762306a36Sopenharmony_ci	help
79862306a36Sopenharmony_ci	  This option enables driver for GPIO on AMD's Fusion Controller Hub,
79962306a36Sopenharmony_ci	  as found on G-series SOCs (e.g. GX-412TC).
80062306a36Sopenharmony_ci
80162306a36Sopenharmony_ci	  Note: This driver doesn't register itself automatically, as it
80262306a36Sopenharmony_ci	  needs to be provided with platform-specific configuration.
80362306a36Sopenharmony_ci	  (See e.g. CONFIG_PCENGINES_APU2.)
80462306a36Sopenharmony_ci
80562306a36Sopenharmony_ciconfig GPIO_MSC313
80662306a36Sopenharmony_ci	bool "MStar MSC313 GPIO support"
80762306a36Sopenharmony_ci	depends on ARCH_MSTARV7
80862306a36Sopenharmony_ci	default ARCH_MSTARV7
80962306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
81062306a36Sopenharmony_ci	select IRQ_DOMAIN_HIERARCHY
81162306a36Sopenharmony_ci	help
81262306a36Sopenharmony_ci	  Say Y here to support the main GPIO block on MStar/SigmaStar
81362306a36Sopenharmony_ci	  ARMv7-based SoCs.
81462306a36Sopenharmony_ci
81562306a36Sopenharmony_ciconfig GPIO_IDT3243X
81662306a36Sopenharmony_ci	tristate "IDT 79RC3243X GPIO support"
81762306a36Sopenharmony_ci	depends on MIKROTIK_RB532 || COMPILE_TEST
81862306a36Sopenharmony_ci	select GPIO_GENERIC
81962306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
82062306a36Sopenharmony_ci	help
82162306a36Sopenharmony_ci	  Select this option to enable GPIO driver for
82262306a36Sopenharmony_ci	  IDT 79RC3243X-based devices like Mikrotik RB532.
82362306a36Sopenharmony_ci
82462306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module will
82562306a36Sopenharmony_ci	  be called gpio-idt3243x.
82662306a36Sopenharmony_ci
82762306a36Sopenharmony_ciendmenu
82862306a36Sopenharmony_ci
82962306a36Sopenharmony_cimenu "Port-mapped I/O GPIO drivers"
83062306a36Sopenharmony_ci	depends on X86 && HAS_IOPORT # I/O space access
83162306a36Sopenharmony_ci
83262306a36Sopenharmony_ciconfig GPIO_VX855
83362306a36Sopenharmony_ci	tristate "VIA VX855/VX875 GPIO"
83462306a36Sopenharmony_ci	depends on PCI
83562306a36Sopenharmony_ci	select MFD_CORE
83662306a36Sopenharmony_ci	select MFD_VX855
83762306a36Sopenharmony_ci	help
83862306a36Sopenharmony_ci	  Support access to the VX855/VX875 GPIO lines through the GPIO library.
83962306a36Sopenharmony_ci
84062306a36Sopenharmony_ci	  This driver provides common support for accessing the device.
84162306a36Sopenharmony_ci	  Additional drivers must be enabled in order to use the
84262306a36Sopenharmony_ci	  functionality of the device.
84362306a36Sopenharmony_ci
84462306a36Sopenharmony_ciconfig GPIO_I8255
84562306a36Sopenharmony_ci	tristate
84662306a36Sopenharmony_ci	select GPIO_REGMAP
84762306a36Sopenharmony_ci	help
84862306a36Sopenharmony_ci	  Enables support for the i8255 interface library functions. The i8255
84962306a36Sopenharmony_ci	  interface library provides functions to facilitate communication with
85062306a36Sopenharmony_ci	  interfaces compatible with the venerable Intel 8255 Programmable
85162306a36Sopenharmony_ci	  Peripheral Interface (PPI). The Intel 8255 PPI chip was first released
85262306a36Sopenharmony_ci	  in the early 1970s but compatible interfaces are nowadays typically
85362306a36Sopenharmony_ci	  found embedded in larger VLSI processing chips and FPGA components.
85462306a36Sopenharmony_ci
85562306a36Sopenharmony_ci	  If built as a module its name will be gpio-i8255.
85662306a36Sopenharmony_ci
85762306a36Sopenharmony_ciconfig GPIO_104_DIO_48E
85862306a36Sopenharmony_ci	tristate "ACCES 104-DIO-48E GPIO support"
85962306a36Sopenharmony_ci	depends on PC104
86062306a36Sopenharmony_ci	select ISA_BUS_API
86162306a36Sopenharmony_ci	select REGMAP_MMIO
86262306a36Sopenharmony_ci	select REGMAP_IRQ
86362306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
86462306a36Sopenharmony_ci	select GPIO_I8255
86562306a36Sopenharmony_ci	select I8254
86662306a36Sopenharmony_ci	help
86762306a36Sopenharmony_ci	  Enables GPIO support for the ACCES 104-DIO-48E series (104-DIO-48E,
86862306a36Sopenharmony_ci	  104-DIO-24E). The base port addresses for the devices may be
86962306a36Sopenharmony_ci	  configured via the base module parameter. The interrupt line numbers
87062306a36Sopenharmony_ci	  for the devices may be configured via the irq module parameter.
87162306a36Sopenharmony_ci
87262306a36Sopenharmony_ciconfig GPIO_104_IDIO_16
87362306a36Sopenharmony_ci	tristate "ACCES 104-IDIO-16 GPIO support"
87462306a36Sopenharmony_ci	depends on PC104
87562306a36Sopenharmony_ci	select ISA_BUS_API
87662306a36Sopenharmony_ci	select REGMAP_MMIO
87762306a36Sopenharmony_ci	select GPIO_IDIO_16
87862306a36Sopenharmony_ci	help
87962306a36Sopenharmony_ci	  Enables GPIO support for the ACCES 104-IDIO-16 family (104-IDIO-16,
88062306a36Sopenharmony_ci	  104-IDIO-16E, 104-IDO-16, 104-IDIO-8, 104-IDIO-8E, 104-IDO-8). The
88162306a36Sopenharmony_ci	  base port addresses for the devices may be configured via the base
88262306a36Sopenharmony_ci	  module parameter. The interrupt line numbers for the devices may be
88362306a36Sopenharmony_ci	  configured via the irq module parameter.
88462306a36Sopenharmony_ci
88562306a36Sopenharmony_ciconfig GPIO_104_IDI_48
88662306a36Sopenharmony_ci	tristate "ACCES 104-IDI-48 GPIO support"
88762306a36Sopenharmony_ci	depends on PC104
88862306a36Sopenharmony_ci	select ISA_BUS_API
88962306a36Sopenharmony_ci	select REGMAP_MMIO
89062306a36Sopenharmony_ci	select REGMAP_IRQ
89162306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
89262306a36Sopenharmony_ci	select GPIO_REGMAP
89362306a36Sopenharmony_ci	help
89462306a36Sopenharmony_ci	  Enables GPIO support for the ACCES 104-IDI-48 family (104-IDI-48A,
89562306a36Sopenharmony_ci	  104-IDI-48AC, 104-IDI-48B, 104-IDI-48BC). The base port addresses for
89662306a36Sopenharmony_ci	  the devices may be configured via the base module parameter. The
89762306a36Sopenharmony_ci	  interrupt line numbers for the devices may be configured via the irq
89862306a36Sopenharmony_ci	  module parameter.
89962306a36Sopenharmony_ci
90062306a36Sopenharmony_ciconfig GPIO_F7188X
90162306a36Sopenharmony_ci	tristate "Fintek and Nuvoton Super-I/O GPIO support"
90262306a36Sopenharmony_ci	help
90362306a36Sopenharmony_ci	  This option enables support for GPIOs found on Fintek Super-I/O
90462306a36Sopenharmony_ci	  chips F71869, F71869A, F71882FG, F71889F and F81866.
90562306a36Sopenharmony_ci	  As well as Nuvoton Super-I/O chip NCT6126D.
90662306a36Sopenharmony_ci
90762306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module will
90862306a36Sopenharmony_ci	  be called f7188x-gpio.
90962306a36Sopenharmony_ci
91062306a36Sopenharmony_ciconfig GPIO_GPIO_MM
91162306a36Sopenharmony_ci	tristate "Diamond Systems GPIO-MM GPIO support"
91262306a36Sopenharmony_ci	depends on PC104
91362306a36Sopenharmony_ci	select ISA_BUS_API
91462306a36Sopenharmony_ci	select REGMAP_MMIO
91562306a36Sopenharmony_ci	select GPIO_I8255
91662306a36Sopenharmony_ci	help
91762306a36Sopenharmony_ci	  Enables GPIO support for the Diamond Systems GPIO-MM and GPIO-MM-12.
91862306a36Sopenharmony_ci
91962306a36Sopenharmony_ci	  The Diamond Systems GPIO-MM device features 48 lines of digital I/O
92062306a36Sopenharmony_ci	  via the emulation of dual 82C55A PPI chips. This driver provides GPIO
92162306a36Sopenharmony_ci	  support for these 48 channels of digital I/O.
92262306a36Sopenharmony_ci
92362306a36Sopenharmony_ci	  The base port addresses for the devices may be configured via the base
92462306a36Sopenharmony_ci	  array module parameter.
92562306a36Sopenharmony_ci
92662306a36Sopenharmony_ciconfig GPIO_IT87
92762306a36Sopenharmony_ci	tristate "IT87xx GPIO support"
92862306a36Sopenharmony_ci	help
92962306a36Sopenharmony_ci	  Say yes here to support GPIO functionality of IT87xx Super I/O chips.
93062306a36Sopenharmony_ci
93162306a36Sopenharmony_ci	  This driver is tested with ITE IT8728 and IT8732 Super I/O chips, and
93262306a36Sopenharmony_ci	  supports the IT8761E, IT8613, IT8620E, and IT8628E Super I/O chips as
93362306a36Sopenharmony_ci	  well.
93462306a36Sopenharmony_ci
93562306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module will
93662306a36Sopenharmony_ci	  be called gpio_it87.
93762306a36Sopenharmony_ci
93862306a36Sopenharmony_ciconfig GPIO_SCH
93962306a36Sopenharmony_ci	tristate "Intel SCH/TunnelCreek/Centerton/Quark X1000 GPIO"
94062306a36Sopenharmony_ci	depends on (X86 || COMPILE_TEST) && ACPI
94162306a36Sopenharmony_ci	depends on LPC_SCH
94262306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
94362306a36Sopenharmony_ci	help
94462306a36Sopenharmony_ci	  Say yes here to support GPIO interface on Intel Poulsbo SCH,
94562306a36Sopenharmony_ci	  Intel Tunnel Creek processor, Intel Centerton processor or
94662306a36Sopenharmony_ci	  Intel Quark X1000 SoC.
94762306a36Sopenharmony_ci
94862306a36Sopenharmony_ci	  The Intel SCH contains a total of 14 GPIO pins. Ten GPIOs are
94962306a36Sopenharmony_ci	  powered by the core power rail and are turned off during sleep
95062306a36Sopenharmony_ci	  modes (S3 and higher). The remaining four GPIOs are powered by
95162306a36Sopenharmony_ci	  the Intel SCH suspend power supply. These GPIOs remain
95262306a36Sopenharmony_ci	  active during S3. The suspend-powered GPIOs can be used to wake the
95362306a36Sopenharmony_ci	  system from the Suspend-to-RAM state.
95462306a36Sopenharmony_ci
95562306a36Sopenharmony_ci	  The Intel Tunnel Creek processor has 5 GPIOs powered by the
95662306a36Sopenharmony_ci	  core power rail and 9 from suspend power supply.
95762306a36Sopenharmony_ci
95862306a36Sopenharmony_ci	  The Intel Centerton processor has a total of 30 GPIO pins.
95962306a36Sopenharmony_ci	  Twenty-one are powered by the core power rail and 9 from the
96062306a36Sopenharmony_ci	  suspend power supply.
96162306a36Sopenharmony_ci
96262306a36Sopenharmony_ci	  The Intel Quark X1000 SoC has 2 GPIOs powered by the core
96362306a36Sopenharmony_ci	  power well and 6 from the suspend power well.
96462306a36Sopenharmony_ci
96562306a36Sopenharmony_ciconfig GPIO_SCH311X
96662306a36Sopenharmony_ci	tristate "SMSC SCH311x SuperI/O GPIO"
96762306a36Sopenharmony_ci	help
96862306a36Sopenharmony_ci	  Driver to enable the GPIOs found on SMSC SMSC SCH3112, SCH3114 and
96962306a36Sopenharmony_ci	  SCH3116 "Super I/O" chipsets.
97062306a36Sopenharmony_ci
97162306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module will
97262306a36Sopenharmony_ci	  be called gpio-sch311x.
97362306a36Sopenharmony_ci
97462306a36Sopenharmony_ciconfig GPIO_TS5500
97562306a36Sopenharmony_ci	tristate "TS-5500 DIO blocks and compatibles"
97662306a36Sopenharmony_ci	depends on TS5500 || COMPILE_TEST
97762306a36Sopenharmony_ci	help
97862306a36Sopenharmony_ci	  This driver supports Digital I/O exposed by pin blocks found on some
97962306a36Sopenharmony_ci	  Technologic Systems platforms. It includes, but is not limited to, 3
98062306a36Sopenharmony_ci	  blocks of the TS-5500: DIO1, DIO2 and the LCD port, and the TS-5600
98162306a36Sopenharmony_ci	  LCD port.
98262306a36Sopenharmony_ci
98362306a36Sopenharmony_ciconfig GPIO_WINBOND
98462306a36Sopenharmony_ci	tristate "Winbond Super I/O GPIO support"
98562306a36Sopenharmony_ci	select ISA_BUS_API
98662306a36Sopenharmony_ci	help
98762306a36Sopenharmony_ci	  This option enables support for GPIOs found on Winbond Super I/O
98862306a36Sopenharmony_ci	  chips.
98962306a36Sopenharmony_ci	  Currently, only W83627UHG (also known as Nuvoton NCT6627UD) is
99062306a36Sopenharmony_ci	  supported.
99162306a36Sopenharmony_ci
99262306a36Sopenharmony_ci	  You will need to provide a module parameter "gpios", or a
99362306a36Sopenharmony_ci	  boot-time parameter "gpio_winbond.gpios" with a bitmask of GPIO
99462306a36Sopenharmony_ci	  ports to enable (bit 0 is GPIO1, bit 1 is GPIO2, etc.).
99562306a36Sopenharmony_ci
99662306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module will
99762306a36Sopenharmony_ci	  be called gpio-winbond.
99862306a36Sopenharmony_ci
99962306a36Sopenharmony_ciconfig GPIO_WS16C48
100062306a36Sopenharmony_ci	tristate "WinSystems WS16C48 GPIO support"
100162306a36Sopenharmony_ci	select ISA_BUS_API
100262306a36Sopenharmony_ci	select REGMAP_IRQ
100362306a36Sopenharmony_ci	select REGMAP_MMIO
100462306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
100562306a36Sopenharmony_ci	select GPIO_REGMAP
100662306a36Sopenharmony_ci	help
100762306a36Sopenharmony_ci	  Enables GPIO support for the WinSystems WS16C48. The base port
100862306a36Sopenharmony_ci	  addresses for the devices may be configured via the base module
100962306a36Sopenharmony_ci	  parameter. The interrupt line numbers for the devices may be
101062306a36Sopenharmony_ci	  configured via the irq module parameter.
101162306a36Sopenharmony_ci
101262306a36Sopenharmony_ciendmenu
101362306a36Sopenharmony_ci
101462306a36Sopenharmony_cimenu "I2C GPIO expanders"
101562306a36Sopenharmony_ci	depends on I2C
101662306a36Sopenharmony_ci
101762306a36Sopenharmony_ciconfig GPIO_ADNP
101862306a36Sopenharmony_ci	tristate "Avionic Design N-bit GPIO expander"
101962306a36Sopenharmony_ci	depends on OF_GPIO
102062306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
102162306a36Sopenharmony_ci	help
102262306a36Sopenharmony_ci	  This option enables support for N GPIOs found on Avionic Design
102362306a36Sopenharmony_ci	  I2C GPIO expanders. The register space will be extended by powers
102462306a36Sopenharmony_ci	  of two, so the controller will need to accommodate for that. For
102562306a36Sopenharmony_ci	  example: if a controller provides 48 pins, 6 registers will be
102662306a36Sopenharmony_ci	  enough to represent all pins, but the driver will assume a
102762306a36Sopenharmony_ci	  register layout for 64 pins (8 registers).
102862306a36Sopenharmony_ci
102962306a36Sopenharmony_ciconfig GPIO_FXL6408
103062306a36Sopenharmony_ci	tristate "FXL6408 I2C GPIO expander"
103162306a36Sopenharmony_ci	select GPIO_REGMAP
103262306a36Sopenharmony_ci	select REGMAP_I2C
103362306a36Sopenharmony_ci	help
103462306a36Sopenharmony_ci	  GPIO driver for Fairchild Semiconductor FXL6408 GPIO expander.
103562306a36Sopenharmony_ci
103662306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module will
103762306a36Sopenharmony_ci	  be called gpio-fxl6408.
103862306a36Sopenharmony_ci
103962306a36Sopenharmony_ciconfig GPIO_DS4520
104062306a36Sopenharmony_ci	tristate "DS4520 I2C GPIO expander"
104162306a36Sopenharmony_ci	select REGMAP_I2C
104262306a36Sopenharmony_ci	select GPIO_REGMAP
104362306a36Sopenharmony_ci	help
104462306a36Sopenharmony_ci	  GPIO driver for ADI DS4520 I2C-based GPIO expander.
104562306a36Sopenharmony_ci	  Say yes here to enable the GPIO driver for the ADI DS4520 chip.
104662306a36Sopenharmony_ci
104762306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module will
104862306a36Sopenharmony_ci	  be called gpio-ds4520.
104962306a36Sopenharmony_ci
105062306a36Sopenharmony_ciconfig GPIO_GW_PLD
105162306a36Sopenharmony_ci	tristate "Gateworks PLD GPIO Expander"
105262306a36Sopenharmony_ci	depends on OF_GPIO
105362306a36Sopenharmony_ci	help
105462306a36Sopenharmony_ci	  Say yes here to provide access to the Gateworks I2C PLD GPIO
105562306a36Sopenharmony_ci	  Expander. This is used at least on the Cambria GW2358-4.
105662306a36Sopenharmony_ci
105762306a36Sopenharmony_ciconfig GPIO_MAX7300
105862306a36Sopenharmony_ci	tristate "Maxim MAX7300 GPIO expander"
105962306a36Sopenharmony_ci	select GPIO_MAX730X
106062306a36Sopenharmony_ci	help
106162306a36Sopenharmony_ci	  GPIO driver for Maxim MAX7300 I2C-based GPIO expander.
106262306a36Sopenharmony_ci
106362306a36Sopenharmony_ciconfig GPIO_MAX732X
106462306a36Sopenharmony_ci	tristate "MAX7319, MAX7320-7327 I2C Port Expanders"
106562306a36Sopenharmony_ci	help
106662306a36Sopenharmony_ci	  Say yes here to support the MAX7319, MAX7320-7327 series of I2C
106762306a36Sopenharmony_ci	  Port Expanders. Each IO port on these chips has a fixed role of
106862306a36Sopenharmony_ci	  Input (designated by 'I'), Push-Pull Output ('O'), or Open-Drain
106962306a36Sopenharmony_ci	  Input and Output (designed by 'P'). The combinations are listed
107062306a36Sopenharmony_ci	  below:
107162306a36Sopenharmony_ci
107262306a36Sopenharmony_ci	  8 bits:       max7319 (8I), max7320 (8O), max7321 (8P),
107362306a36Sopenharmony_ci	                max7322 (4I4O), max7323 (4P4O)
107462306a36Sopenharmony_ci
107562306a36Sopenharmony_ci	  16 bits:      max7324 (8I8O), max7325 (8P8O),
107662306a36Sopenharmony_ci	                max7326 (4I12O), max7327 (4P12O)
107762306a36Sopenharmony_ci
107862306a36Sopenharmony_ci	  Board setup code must specify the model to use, and the start
107962306a36Sopenharmony_ci	  number for these GPIOs.
108062306a36Sopenharmony_ci
108162306a36Sopenharmony_ciconfig GPIO_MAX732X_IRQ
108262306a36Sopenharmony_ci	bool "Interrupt controller support for MAX732x"
108362306a36Sopenharmony_ci	depends on GPIO_MAX732X=y
108462306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
108562306a36Sopenharmony_ci	help
108662306a36Sopenharmony_ci	  Say yes here to enable the max732x to be used as an interrupt
108762306a36Sopenharmony_ci	  controller. It requires the driver to be built in the kernel.
108862306a36Sopenharmony_ci
108962306a36Sopenharmony_ciconfig GPIO_PCA953X
109062306a36Sopenharmony_ci	tristate "PCA95[357]x, PCA9698, TCA64xx, and MAX7310 I/O ports"
109162306a36Sopenharmony_ci	select REGMAP_I2C
109262306a36Sopenharmony_ci	help
109362306a36Sopenharmony_ci	  Say yes here to provide access to several register-oriented
109462306a36Sopenharmony_ci	  SMBus I/O expanders, made mostly by NXP or TI.  Compatible
109562306a36Sopenharmony_ci	  models include:
109662306a36Sopenharmony_ci
109762306a36Sopenharmony_ci	  4 bits:       pca9536, pca9537
109862306a36Sopenharmony_ci
109962306a36Sopenharmony_ci	  8 bits:       max7310, max7315, pca6107, pca9534, pca9538, pca9554,
110062306a36Sopenharmony_ci	                pca9556, pca9557, pca9574, tca6408, tca9554, xra1202
110162306a36Sopenharmony_ci
110262306a36Sopenharmony_ci	  16 bits:      max7312, max7313, pca9535, pca9539, pca9555, pca9575,
110362306a36Sopenharmony_ci	                tca6416
110462306a36Sopenharmony_ci
110562306a36Sopenharmony_ci	  24 bits:      tca6424
110662306a36Sopenharmony_ci
110762306a36Sopenharmony_ci	  40 bits:      pca9505, pca9698
110862306a36Sopenharmony_ci
110962306a36Sopenharmony_ciconfig GPIO_PCA953X_IRQ
111062306a36Sopenharmony_ci	bool "Interrupt controller support for PCA953x"
111162306a36Sopenharmony_ci	depends on GPIO_PCA953X
111262306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
111362306a36Sopenharmony_ci	help
111462306a36Sopenharmony_ci	  Say yes here to enable the pca953x to be used as an interrupt
111562306a36Sopenharmony_ci	  controller.
111662306a36Sopenharmony_ci
111762306a36Sopenharmony_ciconfig GPIO_PCA9570
111862306a36Sopenharmony_ci	tristate "PCA9570 4-Bit I2C GPO expander"
111962306a36Sopenharmony_ci	help
112062306a36Sopenharmony_ci	  Say yes here to enable the GPO driver for the NXP PCA9570 chip.
112162306a36Sopenharmony_ci
112262306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module will
112362306a36Sopenharmony_ci	  be called gpio-pca9570.
112462306a36Sopenharmony_ci
112562306a36Sopenharmony_ciconfig GPIO_PCF857X
112662306a36Sopenharmony_ci	tristate "PCF857x, PCA{85,96}7x, and MAX732[89] I2C GPIO expanders"
112762306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
112862306a36Sopenharmony_ci	select IRQ_DOMAIN
112962306a36Sopenharmony_ci	help
113062306a36Sopenharmony_ci	  Say yes here to provide access to most "quasi-bidirectional" I2C
113162306a36Sopenharmony_ci	  GPIO expanders used for additional digital outputs or inputs.
113262306a36Sopenharmony_ci	  Most of these parts are from NXP, though TI is a second source for
113362306a36Sopenharmony_ci	  some of them.  Compatible models include:
113462306a36Sopenharmony_ci
113562306a36Sopenharmony_ci	  8 bits:   pcf8574, pcf8574a, pca8574, pca8574a,
113662306a36Sopenharmony_ci	            pca9670, pca9672, pca9674, pca9674a,
113762306a36Sopenharmony_ci	            max7328, max7329
113862306a36Sopenharmony_ci
113962306a36Sopenharmony_ci	  16 bits:  pcf8575, pcf8575c, pca8575,
114062306a36Sopenharmony_ci	            pca9671, pca9673, pca9675
114162306a36Sopenharmony_ci
114262306a36Sopenharmony_ci	  Your board setup code will need to declare the expanders in
114362306a36Sopenharmony_ci	  use, and assign numbers to the GPIOs they expose.  Those GPIOs
114462306a36Sopenharmony_ci	  can then be used from drivers and other kernel code, just like
114562306a36Sopenharmony_ci	  other GPIOs, but only accessible from task contexts.
114662306a36Sopenharmony_ci
114762306a36Sopenharmony_ci	  This driver provides an in-kernel interface to those GPIOs using
114862306a36Sopenharmony_ci	  platform-neutral GPIO calls.
114962306a36Sopenharmony_ci
115062306a36Sopenharmony_ciconfig GPIO_TPIC2810
115162306a36Sopenharmony_ci	tristate "TPIC2810 8-Bit I2C GPO expander"
115262306a36Sopenharmony_ci	help
115362306a36Sopenharmony_ci	  Say yes here to enable the GPO driver for the TI TPIC2810 chip.
115462306a36Sopenharmony_ci
115562306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module will
115662306a36Sopenharmony_ci	  be called gpio-tpic2810.
115762306a36Sopenharmony_ci
115862306a36Sopenharmony_ciconfig GPIO_TS4900
115962306a36Sopenharmony_ci	tristate "Technologic Systems FPGA I2C GPIO"
116062306a36Sopenharmony_ci	depends on SOC_IMX6 || COMPILE_TEST
116162306a36Sopenharmony_ci	select REGMAP_I2C
116262306a36Sopenharmony_ci	help
116362306a36Sopenharmony_ci	  Say yes here to enabled the GPIO driver for Technologic's FPGA core.
116462306a36Sopenharmony_ci	  Series supported include TS-4100, TS-4900, TS-7970 and TS-7990.
116562306a36Sopenharmony_ci
116662306a36Sopenharmony_ciendmenu
116762306a36Sopenharmony_ci
116862306a36Sopenharmony_cimenu "MFD GPIO expanders"
116962306a36Sopenharmony_ci
117062306a36Sopenharmony_ciconfig GPIO_ADP5520
117162306a36Sopenharmony_ci	tristate "GPIO Support for ADP5520 PMIC"
117262306a36Sopenharmony_ci	depends on PMIC_ADP5520
117362306a36Sopenharmony_ci	help
117462306a36Sopenharmony_ci	  This option enables support for on-chip GPIO found
117562306a36Sopenharmony_ci	  on Analog Devices ADP5520 PMICs.
117662306a36Sopenharmony_ci
117762306a36Sopenharmony_ciconfig GPIO_ALTERA_A10SR
117862306a36Sopenharmony_ci	tristate "Altera Arria10 System Resource GPIO"
117962306a36Sopenharmony_ci	depends on MFD_ALTERA_A10SR
118062306a36Sopenharmony_ci	help
118162306a36Sopenharmony_ci	  Driver for Arria10 Development Kit GPIO expansion which
118262306a36Sopenharmony_ci	  includes reads of pushbuttons and DIP switches as well
118362306a36Sopenharmony_ci	  as writes to LEDs.
118462306a36Sopenharmony_ci
118562306a36Sopenharmony_ciconfig GPIO_ARIZONA
118662306a36Sopenharmony_ci	tristate "Wolfson Microelectronics Arizona class devices"
118762306a36Sopenharmony_ci	depends on MFD_ARIZONA
118862306a36Sopenharmony_ci	help
118962306a36Sopenharmony_ci	  Support for GPIOs on Wolfson Arizona class devices.
119062306a36Sopenharmony_ci
119162306a36Sopenharmony_ciconfig GPIO_BD71815
119262306a36Sopenharmony_ci	tristate "ROHM BD71815 PMIC GPIO support"
119362306a36Sopenharmony_ci	depends on MFD_ROHM_BD71828
119462306a36Sopenharmony_ci	help
119562306a36Sopenharmony_ci	  Support for GPO(s) on ROHM BD71815 PMIC. There are two GPOs
119662306a36Sopenharmony_ci	  available on the ROHM PMIC.
119762306a36Sopenharmony_ci
119862306a36Sopenharmony_ci	  This driver can also be built as a module. If so, the module
119962306a36Sopenharmony_ci	  will be called gpio-bd71815.
120062306a36Sopenharmony_ci
120162306a36Sopenharmony_ciconfig GPIO_BD71828
120262306a36Sopenharmony_ci	tristate "ROHM BD71828 GPIO support"
120362306a36Sopenharmony_ci	depends on MFD_ROHM_BD71828
120462306a36Sopenharmony_ci	help
120562306a36Sopenharmony_ci	  Support for GPIOs on ROHM BD71828 PMIC. There are three GPIOs
120662306a36Sopenharmony_ci	  available on the ROHM PMIC in total. The GPIOs are limited to
120762306a36Sopenharmony_ci	  outputs only and pins must be configured to GPIO outputs by
120862306a36Sopenharmony_ci	  OTP. Enable this only if you want to use these pins as outputs.
120962306a36Sopenharmony_ci
121062306a36Sopenharmony_ci	  This driver can also be built as a module. If so, the module
121162306a36Sopenharmony_ci	  will be called gpio-bd71828.
121262306a36Sopenharmony_ci
121362306a36Sopenharmony_ciconfig GPIO_BD9571MWV
121462306a36Sopenharmony_ci	tristate "ROHM BD9571 GPIO support"
121562306a36Sopenharmony_ci	depends on MFD_BD9571MWV
121662306a36Sopenharmony_ci	help
121762306a36Sopenharmony_ci	  Support for GPIOs on ROHM BD9571 PMIC. There are two GPIOs
121862306a36Sopenharmony_ci	  available on the ROHM PMIC in total, both of which can also
121962306a36Sopenharmony_ci	  generate interrupts.
122062306a36Sopenharmony_ci
122162306a36Sopenharmony_ci	  This driver can also be built as a module. If so, the module
122262306a36Sopenharmony_ci	  will be called gpio-bd9571mwv.
122362306a36Sopenharmony_ci
122462306a36Sopenharmony_ciconfig GPIO_CRYSTAL_COVE
122562306a36Sopenharmony_ci	tristate "GPIO support for Crystal Cove PMIC"
122662306a36Sopenharmony_ci	depends on (X86 || COMPILE_TEST) && INTEL_SOC_PMIC
122762306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
122862306a36Sopenharmony_ci	help
122962306a36Sopenharmony_ci	  Support for GPIO pins on Crystal Cove PMIC.
123062306a36Sopenharmony_ci
123162306a36Sopenharmony_ci	  Say Yes if you have a Intel SoC-based tablet with Crystal Cove PMIC
123262306a36Sopenharmony_ci	  inside.
123362306a36Sopenharmony_ci
123462306a36Sopenharmony_ci	  This driver can also be built as a module. If so, the module will be
123562306a36Sopenharmony_ci	  called gpio-crystalcove.
123662306a36Sopenharmony_ci
123762306a36Sopenharmony_ciconfig GPIO_CS5535
123862306a36Sopenharmony_ci	tristate "AMD CS5535/CS5536 GPIO support"
123962306a36Sopenharmony_ci	depends on X86 || MIPS || COMPILE_TEST
124062306a36Sopenharmony_ci	depends on MFD_CS5535
124162306a36Sopenharmony_ci	help
124262306a36Sopenharmony_ci	  The AMD CS5535 and CS5536 southbridges support 28 GPIO pins that
124362306a36Sopenharmony_ci	  can be used for quite a number of things.  The CS5535/6 is found on
124462306a36Sopenharmony_ci	  AMD Geode and Lemote Yeeloong devices.
124562306a36Sopenharmony_ci
124662306a36Sopenharmony_ci	  If unsure, say N.
124762306a36Sopenharmony_ci
124862306a36Sopenharmony_ciconfig GPIO_DA9052
124962306a36Sopenharmony_ci	tristate "Dialog DA9052 GPIO"
125062306a36Sopenharmony_ci	depends on PMIC_DA9052
125162306a36Sopenharmony_ci	help
125262306a36Sopenharmony_ci	  Say yes here to enable the GPIO driver for the DA9052 chip.
125362306a36Sopenharmony_ci
125462306a36Sopenharmony_ciconfig GPIO_DA9055
125562306a36Sopenharmony_ci	tristate "Dialog Semiconductor DA9055 GPIO"
125662306a36Sopenharmony_ci	depends on MFD_DA9055
125762306a36Sopenharmony_ci	help
125862306a36Sopenharmony_ci	  Say yes here to enable the GPIO driver for the DA9055 chip.
125962306a36Sopenharmony_ci
126062306a36Sopenharmony_ci	  The Dialog DA9055 PMIC chip has 3 GPIO pins that can be
126162306a36Sopenharmony_ci	  be controlled by this driver.
126262306a36Sopenharmony_ci
126362306a36Sopenharmony_ci	  If driver is built as a module it will be called gpio-da9055.
126462306a36Sopenharmony_ci
126562306a36Sopenharmony_ciconfig GPIO_DLN2
126662306a36Sopenharmony_ci	tristate "Diolan DLN2 GPIO support"
126762306a36Sopenharmony_ci	depends on MFD_DLN2
126862306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
126962306a36Sopenharmony_ci
127062306a36Sopenharmony_ci	help
127162306a36Sopenharmony_ci	  Select this option to enable GPIO driver for the Diolan DLN2
127262306a36Sopenharmony_ci	  board.
127362306a36Sopenharmony_ci
127462306a36Sopenharmony_ci	  This driver can also be built as a module. If so, the module
127562306a36Sopenharmony_ci	  will be called gpio-dln2.
127662306a36Sopenharmony_ci
127762306a36Sopenharmony_ciconfig HTC_EGPIO
127862306a36Sopenharmony_ci	bool "HTC EGPIO support"
127962306a36Sopenharmony_ci	depends on ARM
128062306a36Sopenharmony_ci	help
128162306a36Sopenharmony_ci	  This driver supports the CPLD egpio chip present on
128262306a36Sopenharmony_ci	  several HTC phones.  It provides basic support for input
128362306a36Sopenharmony_ci	  pins, output pins, and IRQs.
128462306a36Sopenharmony_ci
128562306a36Sopenharmony_ciconfig GPIO_ELKHARTLAKE
128662306a36Sopenharmony_ci	tristate "Intel Elkhart Lake PSE GPIO support"
128762306a36Sopenharmony_ci	depends on X86 || COMPILE_TEST
128862306a36Sopenharmony_ci	select GPIO_TANGIER
128962306a36Sopenharmony_ci	help
129062306a36Sopenharmony_ci	  Select this option to enable GPIO support for Intel Elkhart Lake
129162306a36Sopenharmony_ci	  PSE GPIO IP.
129262306a36Sopenharmony_ci
129362306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module will
129462306a36Sopenharmony_ci	  be called gpio-elkhartlake.
129562306a36Sopenharmony_ci
129662306a36Sopenharmony_ciconfig GPIO_JANZ_TTL
129762306a36Sopenharmony_ci	tristate "Janz VMOD-TTL Digital IO Module"
129862306a36Sopenharmony_ci	depends on MFD_JANZ_CMODIO
129962306a36Sopenharmony_ci	help
130062306a36Sopenharmony_ci	  This enables support for the Janz VMOD-TTL Digital IO module.
130162306a36Sopenharmony_ci	  This driver provides support for driving the pins in output
130262306a36Sopenharmony_ci	  mode only. Input mode is not supported.
130362306a36Sopenharmony_ci
130462306a36Sopenharmony_ciconfig GPIO_KEMPLD
130562306a36Sopenharmony_ci	tristate "Kontron ETX / COMexpress GPIO"
130662306a36Sopenharmony_ci	depends on MFD_KEMPLD
130762306a36Sopenharmony_ci	help
130862306a36Sopenharmony_ci	  This enables support for the PLD GPIO interface on some Kontron ETX
130962306a36Sopenharmony_ci	  and COMexpress (ETXexpress) modules.
131062306a36Sopenharmony_ci
131162306a36Sopenharmony_ci	  This driver can also be built as a module. If so, the module will be
131262306a36Sopenharmony_ci	  called gpio-kempld.
131362306a36Sopenharmony_ci
131462306a36Sopenharmony_ciconfig GPIO_LJCA
131562306a36Sopenharmony_ci	tristate "INTEL La Jolla Cove Adapter GPIO support"
131662306a36Sopenharmony_ci	depends on MFD_LJCA
131762306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
131862306a36Sopenharmony_ci	default MFD_LJCA
131962306a36Sopenharmony_ci	help
132062306a36Sopenharmony_ci	  Select this option to enable GPIO driver for the INTEL
132162306a36Sopenharmony_ci	  La Jolla Cove Adapter (LJCA) board.
132262306a36Sopenharmony_ci
132362306a36Sopenharmony_ci	  This driver can also be built as a module. If so, the module
132462306a36Sopenharmony_ci	  will be called gpio-ljca.
132562306a36Sopenharmony_ci
132662306a36Sopenharmony_ciconfig GPIO_LP3943
132762306a36Sopenharmony_ci	tristate "TI/National Semiconductor LP3943 GPIO expander"
132862306a36Sopenharmony_ci	depends on MFD_LP3943
132962306a36Sopenharmony_ci	help
133062306a36Sopenharmony_ci	  GPIO driver for LP3943 MFD.
133162306a36Sopenharmony_ci	  LP3943 can be used as a GPIO expander which provides up to 16 GPIOs.
133262306a36Sopenharmony_ci	  Open drain outputs are required for this usage.
133362306a36Sopenharmony_ci
133462306a36Sopenharmony_ciconfig GPIO_LP873X
133562306a36Sopenharmony_ci	tristate "TI LP873X GPO"
133662306a36Sopenharmony_ci	depends on MFD_TI_LP873X
133762306a36Sopenharmony_ci	help
133862306a36Sopenharmony_ci	  This driver supports the GPO on TI Lp873x PMICs. 2 GPOs are present
133962306a36Sopenharmony_ci	  on LP873X PMICs.
134062306a36Sopenharmony_ci
134162306a36Sopenharmony_ci	  This driver can also be built as a module. If so, the module will be
134262306a36Sopenharmony_ci	  called gpio-lp873x.
134362306a36Sopenharmony_ci
134462306a36Sopenharmony_ciconfig GPIO_LP87565
134562306a36Sopenharmony_ci	tristate "TI LP87565 GPIO"
134662306a36Sopenharmony_ci	depends on MFD_TI_LP87565
134762306a36Sopenharmony_ci	help
134862306a36Sopenharmony_ci	  This driver supports the GPIO on TI Lp873565 PMICs. 3 GPIOs are present
134962306a36Sopenharmony_ci	  on LP87565 PMICs.
135062306a36Sopenharmony_ci
135162306a36Sopenharmony_ci	  This driver can also be built as a module. If so, the module will be
135262306a36Sopenharmony_ci	  called gpio-lp87565.
135362306a36Sopenharmony_ci
135462306a36Sopenharmony_ciconfig GPIO_MADERA
135562306a36Sopenharmony_ci	tristate "Cirrus Logic Madera class codecs"
135662306a36Sopenharmony_ci	depends on PINCTRL_MADERA
135762306a36Sopenharmony_ci	help
135862306a36Sopenharmony_ci	  Support for GPIOs on Cirrus Logic Madera class codecs.
135962306a36Sopenharmony_ci
136062306a36Sopenharmony_ciconfig GPIO_MAX77620
136162306a36Sopenharmony_ci	tristate "GPIO support for PMIC MAX77620 and MAX20024"
136262306a36Sopenharmony_ci	depends on MFD_MAX77620
136362306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
136462306a36Sopenharmony_ci	help
136562306a36Sopenharmony_ci	  GPIO driver for MAX77620 and MAX20024 PMIC from Maxim Semiconductor.
136662306a36Sopenharmony_ci	  MAX77620 PMIC has 8 pins that can be configured as GPIOs. The
136762306a36Sopenharmony_ci	  driver also provides interrupt support for each of the GPIOs.
136862306a36Sopenharmony_ci	  Say yes here to enable the max77620 to be used as GPIO controller.
136962306a36Sopenharmony_ci
137062306a36Sopenharmony_ciconfig GPIO_MAX77650
137162306a36Sopenharmony_ci	tristate "Maxim MAX77650/77651 GPIO support"
137262306a36Sopenharmony_ci	depends on MFD_MAX77650
137362306a36Sopenharmony_ci	help
137462306a36Sopenharmony_ci	  GPIO driver for MAX77650/77651 PMIC from Maxim Semiconductor.
137562306a36Sopenharmony_ci	  These chips have a single pin that can be configured as GPIO.
137662306a36Sopenharmony_ci
137762306a36Sopenharmony_ciconfig GPIO_PALMAS
137862306a36Sopenharmony_ci	bool "TI PALMAS series PMICs GPIO"
137962306a36Sopenharmony_ci	depends on MFD_PALMAS
138062306a36Sopenharmony_ci	help
138162306a36Sopenharmony_ci	  Select this option to enable GPIO driver for the TI PALMAS
138262306a36Sopenharmony_ci	  series chip family.
138362306a36Sopenharmony_ci
138462306a36Sopenharmony_ciconfig GPIO_PMIC_EIC_SPRD
138562306a36Sopenharmony_ci	tristate "Spreadtrum PMIC EIC support"
138662306a36Sopenharmony_ci	depends on MFD_SC27XX_PMIC || COMPILE_TEST
138762306a36Sopenharmony_ci	depends on OF_GPIO
138862306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
138962306a36Sopenharmony_ci	help
139062306a36Sopenharmony_ci	  Say yes here to support Spreadtrum PMIC EIC device.
139162306a36Sopenharmony_ci
139262306a36Sopenharmony_ciconfig GPIO_RC5T583
139362306a36Sopenharmony_ci	bool "RICOH RC5T583 GPIO"
139462306a36Sopenharmony_ci	depends on MFD_RC5T583
139562306a36Sopenharmony_ci	help
139662306a36Sopenharmony_ci	  Select this option to enable GPIO driver for the Ricoh RC5T583
139762306a36Sopenharmony_ci	  chip family.
139862306a36Sopenharmony_ci	  This driver provides the support for driving/reading the GPIO pins
139962306a36Sopenharmony_ci	  of RC5T583 device through standard GPIO library.
140062306a36Sopenharmony_ci
140162306a36Sopenharmony_ciconfig GPIO_SL28CPLD
140262306a36Sopenharmony_ci	tristate "Kontron sl28cpld GPIO support"
140362306a36Sopenharmony_ci	depends on MFD_SL28CPLD || COMPILE_TEST
140462306a36Sopenharmony_ci	select GPIO_REGMAP
140562306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
140662306a36Sopenharmony_ci	select REGMAP_IRQ
140762306a36Sopenharmony_ci	help
140862306a36Sopenharmony_ci	  This enables support for the GPIOs found on the Kontron sl28 CPLD.
140962306a36Sopenharmony_ci
141062306a36Sopenharmony_ci	  This driver can also be built as a module. If so, the module will be
141162306a36Sopenharmony_ci	  called gpio-sl28cpld.
141262306a36Sopenharmony_ci
141362306a36Sopenharmony_ciconfig GPIO_STMPE
141462306a36Sopenharmony_ci	bool "STMPE GPIOs"
141562306a36Sopenharmony_ci	depends on MFD_STMPE
141662306a36Sopenharmony_ci	depends on OF_GPIO
141762306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
141862306a36Sopenharmony_ci	help
141962306a36Sopenharmony_ci	  This enables support for the GPIOs found on the STMPE I/O
142062306a36Sopenharmony_ci	  Expanders.
142162306a36Sopenharmony_ci
142262306a36Sopenharmony_ciconfig GPIO_TC3589X
142362306a36Sopenharmony_ci	bool "TC3589X GPIOs"
142462306a36Sopenharmony_ci	depends on MFD_TC3589X
142562306a36Sopenharmony_ci	depends on OF_GPIO
142662306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
142762306a36Sopenharmony_ci	help
142862306a36Sopenharmony_ci	  This enables support for the GPIOs found on the TC3589X
142962306a36Sopenharmony_ci	  I/O Expander.
143062306a36Sopenharmony_ci
143162306a36Sopenharmony_ciconfig GPIO_TIMBERDALE
143262306a36Sopenharmony_ci	bool "Support for timberdale GPIO IP"
143362306a36Sopenharmony_ci	depends on MFD_TIMBERDALE
143462306a36Sopenharmony_ci	help
143562306a36Sopenharmony_ci	Add support for the GPIO IP in the timberdale FPGA.
143662306a36Sopenharmony_ci
143762306a36Sopenharmony_ciconfig GPIO_TN48M_CPLD
143862306a36Sopenharmony_ci	tristate "Delta Networks TN48M switch CPLD GPIO driver"
143962306a36Sopenharmony_ci	depends on MFD_TN48M_CPLD
144062306a36Sopenharmony_ci	select GPIO_REGMAP
144162306a36Sopenharmony_ci	help
144262306a36Sopenharmony_ci	  This enables support for the GPIOs found on the Delta
144362306a36Sopenharmony_ci	  Networks TN48M switch Lattice CPLD. It provides 12 pins in total,
144462306a36Sopenharmony_ci	  they are input-only or output-only type.
144562306a36Sopenharmony_ci
144662306a36Sopenharmony_ci	  This driver can also be built as a module. If so, the
144762306a36Sopenharmony_ci	  module will be called gpio-tn48m.
144862306a36Sopenharmony_ci
144962306a36Sopenharmony_ciconfig GPIO_TPS65086
145062306a36Sopenharmony_ci	tristate "TI TPS65086 GPO"
145162306a36Sopenharmony_ci	depends on MFD_TPS65086
145262306a36Sopenharmony_ci	help
145362306a36Sopenharmony_ci	  This driver supports the GPO on TI TPS65086x PMICs.
145462306a36Sopenharmony_ci
145562306a36Sopenharmony_ciconfig GPIO_TPS65218
145662306a36Sopenharmony_ci	tristate "TPS65218 GPIO"
145762306a36Sopenharmony_ci	depends on MFD_TPS65218
145862306a36Sopenharmony_ci	help
145962306a36Sopenharmony_ci	  Select this option to enable GPIO driver for the TPS65218
146062306a36Sopenharmony_ci	  chip family.
146162306a36Sopenharmony_ci
146262306a36Sopenharmony_ciconfig GPIO_TPS65219
146362306a36Sopenharmony_ci	tristate "TPS65219 GPIO"
146462306a36Sopenharmony_ci	depends on MFD_TPS65219
146562306a36Sopenharmony_ci	default MFD_TPS65219
146662306a36Sopenharmony_ci	help
146762306a36Sopenharmony_ci	  Select this option to enable GPIO driver for the TPS65219 chip
146862306a36Sopenharmony_ci	  family.
146962306a36Sopenharmony_ci	  GPIO0 is statically configured as either input or output prior to
147062306a36Sopenharmony_ci	  Linux boot. It is used for MULTI_DEVICE_ENABLE function. This setting
147162306a36Sopenharmony_ci	  is statically configured by NVM. GPIO0 can't be used as a generic
147262306a36Sopenharmony_ci	  GPIO. It's either a GPO when MULTI_DEVICE_EN=0 or a GPI when
147362306a36Sopenharmony_ci	  MULTI_DEVICE_EN=1.
147462306a36Sopenharmony_ci
147562306a36Sopenharmony_ci	  This driver can also be built as a module. If so, the module will be
147662306a36Sopenharmony_ci	  called gpio_tps65219.
147762306a36Sopenharmony_ci
147862306a36Sopenharmony_ciconfig GPIO_TPS6586X
147962306a36Sopenharmony_ci	bool "TPS6586X GPIO"
148062306a36Sopenharmony_ci	depends on MFD_TPS6586X
148162306a36Sopenharmony_ci	help
148262306a36Sopenharmony_ci	  Select this option to enable GPIO driver for the TPS6586X
148362306a36Sopenharmony_ci	  chip family.
148462306a36Sopenharmony_ci
148562306a36Sopenharmony_ciconfig GPIO_TPS65910
148662306a36Sopenharmony_ci	bool "TPS65910 GPIO"
148762306a36Sopenharmony_ci	depends on MFD_TPS65910
148862306a36Sopenharmony_ci	help
148962306a36Sopenharmony_ci	  Select this option to enable GPIO driver for the TPS65910
149062306a36Sopenharmony_ci	  chip family.
149162306a36Sopenharmony_ci
149262306a36Sopenharmony_ciconfig GPIO_TPS65912
149362306a36Sopenharmony_ci	tristate "TI TPS65912 GPIO"
149462306a36Sopenharmony_ci	depends on MFD_TPS65912
149562306a36Sopenharmony_ci	help
149662306a36Sopenharmony_ci	  This driver supports TPS65912 GPIO chip.
149762306a36Sopenharmony_ci
149862306a36Sopenharmony_ciconfig GPIO_TPS68470
149962306a36Sopenharmony_ci	tristate "TPS68470 GPIO"
150062306a36Sopenharmony_ci	depends on INTEL_SKL_INT3472
150162306a36Sopenharmony_ci	help
150262306a36Sopenharmony_ci	  Select this option to enable GPIO driver for the TPS68470
150362306a36Sopenharmony_ci	  chip family.
150462306a36Sopenharmony_ci	  There are 7 GPIOs and few sensor-related GPIOs supported
150562306a36Sopenharmony_ci	  by the TPS68470. While the 7 GPIOs can be configured as
150662306a36Sopenharmony_ci	  input or output as appropriate, the sensor related GPIOs
150762306a36Sopenharmony_ci	  are "output only" GPIOs.
150862306a36Sopenharmony_ci
150962306a36Sopenharmony_ciconfig GPIO_TQMX86
151062306a36Sopenharmony_ci	tristate "TQ-Systems QTMX86 GPIO"
151162306a36Sopenharmony_ci	depends on MFD_TQMX86 || COMPILE_TEST
151262306a36Sopenharmony_ci	depends on HAS_IOPORT_MAP
151362306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
151462306a36Sopenharmony_ci	help
151562306a36Sopenharmony_ci	  This driver supports GPIO on the TQMX86 IO controller.
151662306a36Sopenharmony_ci
151762306a36Sopenharmony_ciconfig GPIO_TWL4030
151862306a36Sopenharmony_ci	tristate "TWL4030, TWL5030, and TPS659x0 GPIOs"
151962306a36Sopenharmony_ci	depends on TWL4030_CORE
152062306a36Sopenharmony_ci	help
152162306a36Sopenharmony_ci	  Say yes here to access the GPIO signals of various multi-function
152262306a36Sopenharmony_ci	  power management chips from Texas Instruments.
152362306a36Sopenharmony_ci
152462306a36Sopenharmony_ciconfig GPIO_TWL6040
152562306a36Sopenharmony_ci	tristate "TWL6040 GPO"
152662306a36Sopenharmony_ci	depends on TWL6040_CORE
152762306a36Sopenharmony_ci	help
152862306a36Sopenharmony_ci	  Say yes here to access the GPO signals of twl6040
152962306a36Sopenharmony_ci	  audio chip from Texas Instruments.
153062306a36Sopenharmony_ci
153162306a36Sopenharmony_ciconfig GPIO_WHISKEY_COVE
153262306a36Sopenharmony_ci	tristate "GPIO support for Whiskey Cove PMIC"
153362306a36Sopenharmony_ci	depends on (X86 || COMPILE_TEST) && INTEL_SOC_PMIC_BXTWC
153462306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
153562306a36Sopenharmony_ci	help
153662306a36Sopenharmony_ci	  Support for GPIO pins on Whiskey Cove PMIC.
153762306a36Sopenharmony_ci
153862306a36Sopenharmony_ci	  Say Yes if you have an Intel SoC-based tablet with Whiskey Cove PMIC
153962306a36Sopenharmony_ci	  inside.
154062306a36Sopenharmony_ci
154162306a36Sopenharmony_ci	  This driver can also be built as a module. If so, the module will be
154262306a36Sopenharmony_ci	  called gpio-wcove.
154362306a36Sopenharmony_ci
154462306a36Sopenharmony_ciconfig GPIO_WM831X
154562306a36Sopenharmony_ci	tristate "WM831x GPIOs"
154662306a36Sopenharmony_ci	depends on MFD_WM831X
154762306a36Sopenharmony_ci	help
154862306a36Sopenharmony_ci	  Say yes here to access the GPIO signals of WM831x power management
154962306a36Sopenharmony_ci	  chips from Wolfson Microelectronics.
155062306a36Sopenharmony_ci
155162306a36Sopenharmony_ciconfig GPIO_WM8350
155262306a36Sopenharmony_ci	tristate "WM8350 GPIOs"
155362306a36Sopenharmony_ci	depends on MFD_WM8350
155462306a36Sopenharmony_ci	help
155562306a36Sopenharmony_ci	  Say yes here to access the GPIO signals of WM8350 power management
155662306a36Sopenharmony_ci	  chips from Wolfson Microelectronics.
155762306a36Sopenharmony_ci
155862306a36Sopenharmony_ciconfig GPIO_WM8994
155962306a36Sopenharmony_ci	tristate "WM8994 GPIOs"
156062306a36Sopenharmony_ci	depends on MFD_WM8994
156162306a36Sopenharmony_ci	help
156262306a36Sopenharmony_ci	  Say yes here to access the GPIO signals of WM8994 audio hub
156362306a36Sopenharmony_ci	  CODECs from Wolfson Microelectronics.
156462306a36Sopenharmony_ci
156562306a36Sopenharmony_ciendmenu
156662306a36Sopenharmony_ci
156762306a36Sopenharmony_cimenu "PCI GPIO expanders"
156862306a36Sopenharmony_ci	depends on PCI
156962306a36Sopenharmony_ci
157062306a36Sopenharmony_ciconfig GPIO_AMD8111
157162306a36Sopenharmony_ci	tristate "AMD 8111 GPIO driver"
157262306a36Sopenharmony_ci	depends on X86 || COMPILE_TEST
157362306a36Sopenharmony_ci	depends on HAS_IOPORT_MAP
157462306a36Sopenharmony_ci	help
157562306a36Sopenharmony_ci	  The AMD 8111 southbridge contains 32 GPIO pins which can be used.
157662306a36Sopenharmony_ci
157762306a36Sopenharmony_ci	  Note that usually system firmware/ACPI handles GPIO pins on their
157862306a36Sopenharmony_ci	  own and users might easily break their systems with uncareful usage
157962306a36Sopenharmony_ci	  of this driver!
158062306a36Sopenharmony_ci
158162306a36Sopenharmony_ci	  If unsure, say N
158262306a36Sopenharmony_ci
158362306a36Sopenharmony_ciconfig GPIO_BT8XX
158462306a36Sopenharmony_ci	tristate "BT8XX GPIO abuser"
158562306a36Sopenharmony_ci	depends on VIDEO_BT848=n
158662306a36Sopenharmony_ci	help
158762306a36Sopenharmony_ci	  The BT8xx frame grabber chip has 24 GPIO pins that can be abused
158862306a36Sopenharmony_ci	  as a cheap PCI GPIO card.
158962306a36Sopenharmony_ci
159062306a36Sopenharmony_ci	  This chip can be found on Miro, Hauppauge and STB TV-cards.
159162306a36Sopenharmony_ci
159262306a36Sopenharmony_ci	  The card needs to be physically altered for using it as a
159362306a36Sopenharmony_ci	  GPIO card. For more information on how to build a GPIO card
159462306a36Sopenharmony_ci	  from a BT8xx TV card, see the documentation file at
159562306a36Sopenharmony_ci	  Documentation/driver-api/gpio/bt8xxgpio.rst
159662306a36Sopenharmony_ci
159762306a36Sopenharmony_ci	  If unsure, say N.
159862306a36Sopenharmony_ci
159962306a36Sopenharmony_ciconfig GPIO_MERRIFIELD
160062306a36Sopenharmony_ci	tristate "Intel Merrifield GPIO support"
160162306a36Sopenharmony_ci	depends on X86_INTEL_MID
160262306a36Sopenharmony_ci	select GPIO_TANGIER
160362306a36Sopenharmony_ci	help
160462306a36Sopenharmony_ci	  Say Y here to support Intel Merrifield GPIO.
160562306a36Sopenharmony_ci
160662306a36Sopenharmony_ciconfig GPIO_MLXBF
160762306a36Sopenharmony_ci	tristate "Mellanox BlueField SoC GPIO"
160862306a36Sopenharmony_ci	depends on (MELLANOX_PLATFORM && ARM64 && ACPI) || (64BIT && COMPILE_TEST)
160962306a36Sopenharmony_ci	select GPIO_GENERIC
161062306a36Sopenharmony_ci	help
161162306a36Sopenharmony_ci	  Say Y here if you want GPIO support on Mellanox BlueField SoC.
161262306a36Sopenharmony_ci
161362306a36Sopenharmony_ciconfig GPIO_MLXBF2
161462306a36Sopenharmony_ci	tristate "Mellanox BlueField 2 SoC GPIO"
161562306a36Sopenharmony_ci	depends on (MELLANOX_PLATFORM && ARM64 && ACPI) || (64BIT && COMPILE_TEST)
161662306a36Sopenharmony_ci	select GPIO_GENERIC
161762306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
161862306a36Sopenharmony_ci	help
161962306a36Sopenharmony_ci	  Say Y here if you want GPIO support on Mellanox BlueField 2 SoC.
162062306a36Sopenharmony_ci
162162306a36Sopenharmony_ciconfig GPIO_MLXBF3
162262306a36Sopenharmony_ci	tristate "Mellanox BlueField 3 SoC GPIO"
162362306a36Sopenharmony_ci	depends on (MELLANOX_PLATFORM && ARM64) || COMPILE_TEST
162462306a36Sopenharmony_ci	select GPIO_GENERIC
162562306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
162662306a36Sopenharmony_ci	help
162762306a36Sopenharmony_ci	  Say Y if you want GPIO support on Mellanox BlueField 3 SoC.
162862306a36Sopenharmony_ci	  This GPIO controller supports interrupt handling and enables the
162962306a36Sopenharmony_ci	  manipulation of certain GPIO pins.
163062306a36Sopenharmony_ci	  This controller should be used in parallel with pinctrl-mlxbf3 to
163162306a36Sopenharmony_ci	  control the desired GPIOs.
163262306a36Sopenharmony_ci	  This driver can also be built as a module called mlxbf3-gpio.
163362306a36Sopenharmony_ci
163462306a36Sopenharmony_ciconfig GPIO_ML_IOH
163562306a36Sopenharmony_ci	tristate "OKI SEMICONDUCTOR ML7213 IOH GPIO support"
163662306a36Sopenharmony_ci	depends on X86 || COMPILE_TEST
163762306a36Sopenharmony_ci	select GENERIC_IRQ_CHIP
163862306a36Sopenharmony_ci	help
163962306a36Sopenharmony_ci	  ML7213 is companion chip for Intel Atom E6xx series.
164062306a36Sopenharmony_ci	  This driver can be used for OKI SEMICONDUCTOR ML7213 IOH (Input/Output
164162306a36Sopenharmony_ci	  Hub) which is for IVI (In-Vehicle Infotainment) use.
164262306a36Sopenharmony_ci	  This driver can access the IOH's GPIO device.
164362306a36Sopenharmony_ci
164462306a36Sopenharmony_ciconfig GPIO_PCH
164562306a36Sopenharmony_ci	tristate "Intel EG20T PCH/LAPIS Semiconductor IOH (ML7223/ML7831) GPIO"
164662306a36Sopenharmony_ci	depends on X86_32 || MIPS || COMPILE_TEST
164762306a36Sopenharmony_ci	select GENERIC_IRQ_CHIP
164862306a36Sopenharmony_ci	help
164962306a36Sopenharmony_ci	  This driver is for PCH (Platform Controller Hub) GPIO of Intel Topcliff,
165062306a36Sopenharmony_ci	  which is an IOH (Input/Output Hub) for x86 embedded processor.
165162306a36Sopenharmony_ci	  This driver can access PCH GPIO device.
165262306a36Sopenharmony_ci
165362306a36Sopenharmony_ci	  This driver also can be used for LAPIS Semiconductor IOH (Input/
165462306a36Sopenharmony_ci	  Output Hub), ML7223 and ML7831.
165562306a36Sopenharmony_ci	  ML7223 IOH is for MP (Media Phone) use.
165662306a36Sopenharmony_ci	  ML7831 IOH is for general purpose use.
165762306a36Sopenharmony_ci	  ML7223/ML7831 is companion chip for Intel Atom E6xx series.
165862306a36Sopenharmony_ci	  ML7223/ML7831 is completely compatible for Intel EG20T PCH.
165962306a36Sopenharmony_ci
166062306a36Sopenharmony_ciconfig GPIO_PCI_IDIO_16
166162306a36Sopenharmony_ci	tristate "ACCES PCI-IDIO-16 GPIO support"
166262306a36Sopenharmony_ci	select REGMAP_MMIO
166362306a36Sopenharmony_ci	select GPIO_IDIO_16
166462306a36Sopenharmony_ci	help
166562306a36Sopenharmony_ci	  Enables GPIO support for the ACCES PCI-IDIO-16. An interrupt is
166662306a36Sopenharmony_ci	  generated when any of the inputs change state (low to high or high to
166762306a36Sopenharmony_ci	  low). Input filter control is not supported by this driver, and the
166862306a36Sopenharmony_ci	  input filters are deactivated by this driver.
166962306a36Sopenharmony_ci
167062306a36Sopenharmony_ciconfig GPIO_PCIE_IDIO_24
167162306a36Sopenharmony_ci	tristate "ACCES PCIe-IDIO-24 GPIO support"
167262306a36Sopenharmony_ci	select REGMAP_IRQ
167362306a36Sopenharmony_ci	select REGMAP_MMIO
167462306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
167562306a36Sopenharmony_ci	select GPIO_REGMAP
167662306a36Sopenharmony_ci	help
167762306a36Sopenharmony_ci	  Enables GPIO support for the ACCES PCIe-IDIO-24 family (PCIe-IDIO-24,
167862306a36Sopenharmony_ci	  PCIe-IDI-24, PCIe-IDO-24, PCIe-IDIO-12). An interrupt is generated
167962306a36Sopenharmony_ci	  when any of the inputs change state (low to high or high to low).
168062306a36Sopenharmony_ci	  Input filter control is not supported by this driver, and the input
168162306a36Sopenharmony_ci	  filters are deactivated by this driver.
168262306a36Sopenharmony_ci
168362306a36Sopenharmony_ciconfig GPIO_RDC321X
168462306a36Sopenharmony_ci	tristate "RDC R-321x GPIO support"
168562306a36Sopenharmony_ci	select MFD_CORE
168662306a36Sopenharmony_ci	select MFD_RDC321X
168762306a36Sopenharmony_ci	help
168862306a36Sopenharmony_ci	  Support for the RDC R321x SoC GPIOs over southbridge
168962306a36Sopenharmony_ci	  PCI configuration space.
169062306a36Sopenharmony_ci
169162306a36Sopenharmony_ciconfig GPIO_SODAVILLE
169262306a36Sopenharmony_ci	bool "Intel Sodaville GPIO support"
169362306a36Sopenharmony_ci	depends on X86 && OF
169462306a36Sopenharmony_ci	select GPIO_GENERIC
169562306a36Sopenharmony_ci	select GENERIC_IRQ_CHIP
169662306a36Sopenharmony_ci	help
169762306a36Sopenharmony_ci	  Say Y here to support Intel Sodaville GPIO.
169862306a36Sopenharmony_ci
169962306a36Sopenharmony_ciendmenu
170062306a36Sopenharmony_ci
170162306a36Sopenharmony_cimenu "SPI GPIO expanders"
170262306a36Sopenharmony_ci	depends on SPI_MASTER
170362306a36Sopenharmony_ci
170462306a36Sopenharmony_ciconfig GPIO_74X164
170562306a36Sopenharmony_ci	tristate "74x164 serial-in/parallel-out 8-bits shift register"
170662306a36Sopenharmony_ci	depends on OF_GPIO
170762306a36Sopenharmony_ci	help
170862306a36Sopenharmony_ci	  Driver for 74x164 compatible serial-in/parallel-out 8-outputs
170962306a36Sopenharmony_ci	  shift registers. This driver can be used to provide access
171062306a36Sopenharmony_ci	  to more GPIO outputs.
171162306a36Sopenharmony_ci
171262306a36Sopenharmony_ciconfig GPIO_MAX3191X
171362306a36Sopenharmony_ci	tristate "Maxim MAX3191x industrial serializer"
171462306a36Sopenharmony_ci	select CRC8
171562306a36Sopenharmony_ci	help
171662306a36Sopenharmony_ci	  GPIO driver for Maxim MAX31910, MAX31911, MAX31912, MAX31913,
171762306a36Sopenharmony_ci	  MAX31953 and MAX31963 industrial serializer, a daisy-chainable
171862306a36Sopenharmony_ci	  chip to make 8 digital 24V inputs available via SPI.  Supports
171962306a36Sopenharmony_ci	  CRC checksums to guard against electromagnetic interference,
172062306a36Sopenharmony_ci	  as well as undervoltage and overtemperature detection.
172162306a36Sopenharmony_ci
172262306a36Sopenharmony_ciconfig GPIO_MAX7301
172362306a36Sopenharmony_ci	tristate "Maxim MAX7301 GPIO expander"
172462306a36Sopenharmony_ci	select GPIO_MAX730X
172562306a36Sopenharmony_ci	help
172662306a36Sopenharmony_ci	  GPIO driver for Maxim MAX7301 SPI-based GPIO expander.
172762306a36Sopenharmony_ci
172862306a36Sopenharmony_ciconfig GPIO_MC33880
172962306a36Sopenharmony_ci	tristate "Freescale MC33880 high-side/low-side switch"
173062306a36Sopenharmony_ci	help
173162306a36Sopenharmony_ci	  SPI driver for Freescale MC33880 high-side/low-side switch.
173262306a36Sopenharmony_ci	  This provides GPIO interface supporting inputs and outputs.
173362306a36Sopenharmony_ci
173462306a36Sopenharmony_ciconfig GPIO_PISOSR
173562306a36Sopenharmony_ci	tristate "Generic parallel-in/serial-out shift register"
173662306a36Sopenharmony_ci	help
173762306a36Sopenharmony_ci	  GPIO driver for SPI compatible parallel-in/serial-out shift
173862306a36Sopenharmony_ci	  registers. These are input only devices.
173962306a36Sopenharmony_ci
174062306a36Sopenharmony_ciconfig GPIO_XRA1403
174162306a36Sopenharmony_ci	tristate "EXAR XRA1403 16-bit GPIO expander"
174262306a36Sopenharmony_ci	select REGMAP_SPI
174362306a36Sopenharmony_ci	help
174462306a36Sopenharmony_ci	  GPIO driver for EXAR XRA1403 16-bit SPI-based GPIO expander.
174562306a36Sopenharmony_ci
174662306a36Sopenharmony_ciconfig GPIO_MOXTET
174762306a36Sopenharmony_ci	tristate "Turris Mox Moxtet bus GPIO expander"
174862306a36Sopenharmony_ci	depends on MOXTET
174962306a36Sopenharmony_ci	help
175062306a36Sopenharmony_ci	  Say yes here if you are building for the Turris Mox router.
175162306a36Sopenharmony_ci	  This is the driver needed for configuring the GPIOs via the Moxtet
175262306a36Sopenharmony_ci	  bus. For example the Mox module with SFP cage needs this driver
175362306a36Sopenharmony_ci	  so that phylink can use corresponding GPIOs.
175462306a36Sopenharmony_ci
175562306a36Sopenharmony_ciendmenu
175662306a36Sopenharmony_ci
175762306a36Sopenharmony_cimenu "USB GPIO expanders"
175862306a36Sopenharmony_ci	depends on USB
175962306a36Sopenharmony_ci
176062306a36Sopenharmony_ciconfig GPIO_VIPERBOARD
176162306a36Sopenharmony_ci	tristate "Viperboard GPIO a & b support"
176262306a36Sopenharmony_ci	depends on MFD_VIPERBOARD
176362306a36Sopenharmony_ci	help
176462306a36Sopenharmony_ci	  Say yes here to access the GPIO signals of Nano River
176562306a36Sopenharmony_ci	  Technologies Viperboard. There are two GPIO chips on the
176662306a36Sopenharmony_ci	  board: gpioa and gpiob.
176762306a36Sopenharmony_ci	  See viperboard API specification and Nano
176862306a36Sopenharmony_ci	  River Tech's viperboard.h for detailed meaning
176962306a36Sopenharmony_ci	  of the module parameters.
177062306a36Sopenharmony_ci
177162306a36Sopenharmony_ciendmenu
177262306a36Sopenharmony_ci
177362306a36Sopenharmony_cimenu "Virtual GPIO drivers"
177462306a36Sopenharmony_ci
177562306a36Sopenharmony_ciconfig GPIO_AGGREGATOR
177662306a36Sopenharmony_ci	tristate "GPIO Aggregator"
177762306a36Sopenharmony_ci	help
177862306a36Sopenharmony_ci	  Say yes here to enable the GPIO Aggregator, which provides a way to
177962306a36Sopenharmony_ci	  aggregate existing GPIO lines into a new virtual GPIO chip.
178062306a36Sopenharmony_ci	  This can serve the following purposes:
178162306a36Sopenharmony_ci	    - Assign permissions for a collection of GPIO lines to a user,
178262306a36Sopenharmony_ci	    - Export a collection of GPIO lines to a virtual machine,
178362306a36Sopenharmony_ci	    - Provide a generic driver for a GPIO-operated device in an
178462306a36Sopenharmony_ci	      industrial control context, to be operated from userspace using
178562306a36Sopenharmony_ci	      the GPIO chardev interface.
178662306a36Sopenharmony_ci
178762306a36Sopenharmony_ciconfig GPIO_LATCH
178862306a36Sopenharmony_ci	tristate "GPIO latch driver"
178962306a36Sopenharmony_ci	help
179062306a36Sopenharmony_ci	  Say yes here to enable a driver for GPIO multiplexers based on latches
179162306a36Sopenharmony_ci	  connected to other GPIOs.
179262306a36Sopenharmony_ci
179362306a36Sopenharmony_ciconfig GPIO_MOCKUP
179462306a36Sopenharmony_ci	tristate "GPIO Testing Driver"
179562306a36Sopenharmony_ci	select IRQ_SIM
179662306a36Sopenharmony_ci	help
179762306a36Sopenharmony_ci	  This enables GPIO Testing driver, which provides a way to test GPIO
179862306a36Sopenharmony_ci	  subsystem through sysfs (or char device) and debugfs.
179962306a36Sopenharmony_ci	  User could use it through the script in
180062306a36Sopenharmony_ci	  tools/testing/selftests/gpio/gpio-mockup.sh. Reference the usage in
180162306a36Sopenharmony_ci	  it.
180262306a36Sopenharmony_ci
180362306a36Sopenharmony_ciconfig GPIO_VIRTIO
180462306a36Sopenharmony_ci	tristate "VirtIO GPIO support"
180562306a36Sopenharmony_ci	depends on VIRTIO
180662306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
180762306a36Sopenharmony_ci	help
180862306a36Sopenharmony_ci	  Say Y here to enable guest support for virtio-based GPIO controllers.
180962306a36Sopenharmony_ci
181062306a36Sopenharmony_ci	  These virtual GPIOs can be routed to real GPIOs or attached to
181162306a36Sopenharmony_ci	  simulators on the host (like QEMU).
181262306a36Sopenharmony_ci
181362306a36Sopenharmony_ciconfig GPIO_SIM
181462306a36Sopenharmony_ci	tristate "GPIO Simulator Module"
181562306a36Sopenharmony_ci	select IRQ_SIM
181662306a36Sopenharmony_ci	select CONFIGFS_FS
181762306a36Sopenharmony_ci	help
181862306a36Sopenharmony_ci	  This enables the GPIO simulator - a configfs-based GPIO testing
181962306a36Sopenharmony_ci	  driver.
182062306a36Sopenharmony_ci
182162306a36Sopenharmony_ciendmenu
182262306a36Sopenharmony_ci
182362306a36Sopenharmony_ciendif
1824