Merge tag 'u-boot-at91-2022.07-a' of https://source.denx.de/u-boot/custodians/u-boot...
[platform/kernel/u-boot.git] / drivers / gpio / Kconfig
index 11e9a17..a55e368 100644 (file)
@@ -2,7 +2,19 @@
 # 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"
@@ -16,7 +28,7 @@ config DM_GPIO
 
 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
@@ -27,7 +39,7 @@ config SPL_DM_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
@@ -39,7 +51,6 @@ config TPL_DM_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
@@ -58,7 +69,7 @@ config DM_GPIO_LOOKUP_LABEL
 
 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
@@ -73,10 +84,15 @@ config ALTERA_PIO
          Select this to enable PIO for Altera devices. Please find
          details on the "Embedded Peripherals IP User Guide" of Altera.
 
+config BCM2835_GPIO
+       bool "BCM2835 GPIO driver"
+       depends on DM_GPIO
+
 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.
 
@@ -91,13 +107,11 @@ config CORTINA_GPIO
 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
@@ -110,7 +124,6 @@ config AT91_GPIO
 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
@@ -118,11 +131,25 @@ config ATMEL_PIO4
          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
@@ -150,13 +177,11 @@ config INTEL_ICH6_GPIO
 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
@@ -168,17 +193,38 @@ config IPROC_GPIO
 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
@@ -193,7 +239,6 @@ config MSCC_SGPIO
 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
@@ -335,7 +380,6 @@ config GPIO_UNIPHIER
 config VYBRID_GPIO
        bool "Vybrid GPIO driver"
        depends on DM
-       default n
        help
          Say yes here to support Vybrid vf610 GPIOs.
 
@@ -348,7 +392,7 @@ config PIC32_GPIO
 
 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
@@ -374,15 +418,15 @@ config SIFIVE_GPIO
 
 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.
 
@@ -396,7 +440,7 @@ config DM_74X164
 
 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
@@ -471,6 +515,14 @@ config MPC83XX_SPISEL_BOOT
 
          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
@@ -487,4 +539,35 @@ config NX_GPIO
          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