# GPIO infrastructure and drivers
#
-menu "GPIO Support"
+menuconfig GPIO
+ bool "GPIO support"
+ default y
+ help
+ Enable support for GPIOs (General-purpose Input/Output) in U-Boot.
+ GPIOs allow U-Boot to read the state of an input line (high or
+ low) and set the state of an output line. This can be used to
+ drive LEDs, control power to various system parts and read user
+ input. GPIOs can be useful to enable a 'sign-of-life' LED,
+ for example. Enable this option to build the drivers in
+ drivers/gpio as part of an U-Boot build.
+
+if GPIO
config DM_GPIO
bool "Enable Driver Model for GPIO drivers"
config SPL_DM_GPIO
bool "Enable Driver Model for GPIO drivers in SPL"
- depends on DM_GPIO && SPL_DM && SPL_GPIO_SUPPORT
+ depends on DM_GPIO && SPL_DM && SPL_GPIO
default y
help
Enable driver model for GPIO access in SPL. The standard GPIO
config TPL_DM_GPIO
bool "Enable Driver Model for GPIO drivers in TPL"
- depends on DM_GPIO && TPL_DM && TPL_GPIO_SUPPORT
+ depends on DM_GPIO && TPL_DM && TPL_GPIO
default y
help
Enable driver model for GPIO access in TPL. The standard GPIO
config GPIO_HOG
bool "Enable GPIO hog support"
depends on DM_GPIO
- default n
help
Enable gpio hog support
The GPIO chip may contain GPIO hog definitions. GPIO hogging
config SPL_DM_GPIO_LOOKUP_LABEL
bool "Enable searching for gpio labelnames"
- depends on DM_GPIO && SPL_DM && SPL_GPIO_SUPPORT
+ depends on DM_GPIO && SPL_DM && SPL_GPIO
help
This option enables searching for gpio names in
the defined gpio labels, if the search for the
config BCM6345_GPIO
bool "BCM6345 GPIO driver"
depends on DM_GPIO && (ARCH_BMIPS || ARCH_BCM68360 || \
- ARCH_BCM6858 || ARCH_BCM63158)
+ ARCH_BCM6858 || ARCH_BCM63158 || \
+ ARCH_BCM6753)
help
This driver supports the GPIO banks on BCM6345 SoCs.
config DWAPB_GPIO
bool "DWAPB GPIO driver"
depends on DM && DM_GPIO
- default n
help
Support for the Designware APB GPIO driver.
config AT91_GPIO
bool "AT91 PIO GPIO driver"
- default n
help
Say yes here to select AT91 PIO GPIO driver. AT91 PIO
controller manages up to 32 fully programmable input/output
config ATMEL_PIO4
bool "ATMEL PIO4 driver"
depends on DM_GPIO
- default n
help
Say yes here to support the Atmel PIO4 driver.
The PIO4 is new version of Atmel PIO controller, which manages
may be dedicated as a general purpose I/O or be assigned to
a function of an embedded peripheral.
+config ASPEED_GPIO
+ bool "Aspeed GPIO Driver"
+ help
+ Say yes here to support the Aspeed GPIO driver. The controller
+ is found in the AST2400, AST2500 and AST2600 BMC SoCs and
+ provides access to over 200 GPIOs on each chip.
+
config DA8XX_GPIO
bool "DA8xx GPIO Driver"
help
This driver supports the DA8xx GPIO controller
+config FXL6408_GPIO
+ bool "FXL6408 I2C GPIO expander driver"
+ depends on DM_GPIO && DM_I2C
+ help
+ This driver supports the Fairchild FXL6408 device. FXL6408 is a
+ fully configurable 8-bit I2C-controlled GPIO expander.
+
config INTEL_BROADWELL_GPIO
bool "Intel Broadwell GPIO driver"
depends on DM
config IMX_RGPIO2P
bool "i.MX7ULP RGPIO2P driver"
depends on DM
- default n
help
This driver supports i.MX7ULP Rapid GPIO2P controller.
config IPROC_GPIO
bool "Broadcom iProc GPIO driver(without pinconf)"
- default n
help
The Broadcom iProc based SoCs- Cygnus, NS2, NS3, NSP and Stingray,
use the same GPIO Controller IP hence this driver could be used
config HSDK_CREG_GPIO
bool "HSDK CREG GPIO griver"
depends on DM_GPIO
- default n
help
This driver supports CREG GPIOs on Synopsys HSDK SOC.
+config KIRKWOOD_GPIO
+ bool "Kirkwood GPIO driver"
+ help
+ This drdiver supports GPIOs on Kirkwood platforms
+
config LPC32XX_GPIO
bool "LPC32XX GPIO driver"
depends on DM
- default n
help
Support for the LPC32XX GPIO driver.
+config MAX7320_GPIO
+ bool "MAX7320 I2C GPIO Expander driver"
+ depends on DM_GPIO && DM_I2C
+ help
+ Support for MAX7320 I2C 8/16-bit GPIO expander.
+ original maxim device has 8 push/pull outputs,
+ some clones offers 16bit.
+
+config MCP230XX_GPIO
+ bool "MCP230XX GPIO driver"
+ depends on DM
+ help
+ Support for Microchip's MCP230XX I2C connected GPIO devices.
+ The following chips are supported:
+ - MCP23008
+ - MCP23017
+ - MCP23018
+
config MSCC_SGPIO
bool "Microsemi Serial GPIO driver"
depends on DM_GPIO && SOC_VCOREIII
config MSM_GPIO
bool "Qualcomm GPIO driver"
depends on DM_GPIO
- default n
help
Support GPIO controllers on Qualcomm Snapdragon family of SoCs.
This controller have single bank (default name "soc"), every
config VYBRID_GPIO
bool "Vybrid GPIO driver"
depends on DM
- default n
help
Say yes here to support Vybrid vf610 GPIOs.
config OCTEON_GPIO
bool "Octeon II/III/TX/TX2 GPIO driver"
- depends on DM_GPIO && DM_PCI && (ARCH_OCTEON || ARCH_OCTEONTX || ARCH_OCTEONTX2)
+ depends on DM_GPIO && PCI && (ARCH_OCTEON || ARCH_OCTEONTX || ARCH_OCTEONTX2)
default y
help
Add support for the Marvell Octeon GPIO driver. This is used with
config MVEBU_GPIO
bool "Marvell MVEBU GPIO driver"
- depends on DM_GPIO && ARCH_MVEBU
+ depends on DM_GPIO && (ARCH_MVEBU || ARCH_KIRKWOOD)
default y
help
Say yes here to support Marvell MVEBU (Armada XP/38x) GPIOs.
config ZYNQ_GPIO
bool "Zynq GPIO driver"
- depends on DM_GPIO && (ARCH_ZYNQ || ARCH_ZYNQMP || ARCH_VERSAL)
- default y
+ depends on DM_GPIO
+ default y if ARCH_ZYNQ || ARCH_ZYNQMP || ARCH_VERSAL
help
Supports GPIO access on Zynq SoC.
config DM_PCA953X
bool "PCA95[357]x, PCA9698, TCA64xx, and MAX7310 I/O ports"
- depends on DM_GPIO
+ depends on DM_GPIO && DM_I2C
help
Say yes here to provide access to several register-oriented
SMBus I/O expanders, made mostly by NXP or TI. Compatible
This pin is typically used as spi chip select to a spi nor flash.
+config MT7620_GPIO
+ bool "MediaTek MT7620 GPIO driver"
+ depends on DM_GPIO && SOC_MT7620
+ default y
+ help
+ Device model driver for GPIO controller present in MediaTek MT7620
+ and earlier SoCs.
+
config MT7621_GPIO
bool "MediaTek MT7621 GPIO driver"
depends on DM_GPIO && SOC_MT7628
The GPIOs for a device are defined in the device tree with one node
for each bank.
-endmenu
+config NOMADIK_GPIO
+ bool "Nomadik GPIO driver"
+ depends on DM_GPIO
+ help
+ Support GPIO access on ST-Ericsson Ux500 SoCs. The GPIOs are arranged
+ into a number of banks each with 32 GPIOs. The GPIOs for a device are
+ defined in the device tree with one node for each bank.
+
+config ZYNQMP_GPIO_MODEPIN
+ bool "ZynqMP gpio modepin"
+ depends on DM_GPIO
+ help
+ This config enables the ZynqMP gpio modepin driver. ZynqMP modepin
+ driver will set and get the status of PS_MODE pins. These modepins
+ are accessed using xilinx firmware. In modepin register, [3:0] bits
+ set direction, [7:4] bits read IO, [11:8] bits set/clear IO.
+
+config SL28CPLD_GPIO
+ bool "Kontron sl28cpld GPIO driver"
+ depends on DM_GPIO && SL28CPLD
+ help
+ Support GPIO access on Kontron sl28cpld board management controllers.
+
+config SLG7XL45106_I2C_GPO
+ bool "slg7xl45106 i2c gpo expander"
+ depends on DM_GPIO
+ help
+ Support for slg7xl45106 i2c gpo expander. It is an i2c based
+ 8-bit gpo expander, all gpo lines are controlled by writing
+ value into data register.
+
+endif