uboot/drivers/gpio/Kconfig
<<
>>
Prefs
   1#
   2# GPIO infrastructure and drivers
   3#
   4
   5menu "GPIO Support"
   6
   7config DM_GPIO
   8        bool "Enable Driver Model for GPIO drivers"
   9        depends on DM
  10        help
  11          Enable driver model for GPIO access. The standard GPIO
  12          interface (gpio_get_value(), etc.) is then implemented by
  13          the GPIO uclass. Drivers provide methods to query the
  14          particular GPIOs that they provide. The uclass interface
  15          is defined in include/asm-generic/gpio.h.
  16
  17config SPL_DM_GPIO
  18        bool "Enable Driver Model for GPIO drivers in SPL"
  19        depends on DM_GPIO && SPL_DM && SPL_GPIO_SUPPORT
  20        default y
  21        help
  22          Enable driver model for GPIO access in SPL. The standard GPIO
  23          interface (gpio_get_value(), etc.) is then implemented by
  24          the GPIO uclass. Drivers provide methods to query the
  25          particular GPIOs that they provide. The uclass interface
  26          is defined in include/asm-generic/gpio.h.
  27
  28config TPL_DM_GPIO
  29        bool "Enable Driver Model for GPIO drivers in TPL"
  30        depends on DM_GPIO && TPL_DM && TPL_GPIO_SUPPORT
  31        default y
  32        help
  33          Enable driver model for GPIO access in TPL. The standard GPIO
  34          interface (gpio_get_value(), etc.) is then implemented by
  35          the GPIO uclass. Drivers provide methods to query the
  36          particular GPIOs that they provide. The uclass interface
  37          is defined in include/asm-generic/gpio.h.
  38
  39config GPIO_HOG
  40        bool "Enable GPIO hog support"
  41        depends on DM_GPIO
  42        default n
  43        help
  44          Enable gpio hog support
  45          The GPIO chip may contain GPIO hog definitions. GPIO hogging
  46          is a mechanism providing automatic GPIO request and config-
  47          uration as part of the gpio-controller's driver probe function.
  48
  49config ALTERA_PIO
  50        bool "Altera PIO driver"
  51        depends on DM_GPIO
  52        help
  53          Select this to enable PIO for Altera devices. Please find
  54          details on the "Embedded Peripherals IP User Guide" of Altera.
  55
  56config BCM6345_GPIO
  57        bool "BCM6345 GPIO driver"
  58        depends on DM_GPIO && (ARCH_BMIPS || ARCH_BCM68360 || \
  59                               ARCH_BCM6858 || ARCH_BCM63158)
  60        help
  61          This driver supports the GPIO banks on BCM6345 SoCs.
  62
  63config CORTINA_GPIO
  64        bool "Cortina-Access GPIO driver"
  65        depends on DM_GPIO && CORTINA_PLATFORM
  66        help
  67          Enable support for the GPIO controller in Cortina CAxxxx SoCs.
  68          This driver supports all CPU ISA variants supported by Cortina
  69          Access CAxxxx SoCs.
  70
  71config DWAPB_GPIO
  72        bool "DWAPB GPIO driver"
  73        depends on DM && DM_GPIO
  74        default n
  75        help
  76          Support for the Designware APB GPIO driver.
  77
  78config AT91_GPIO
  79        bool "AT91 PIO GPIO driver"
  80        depends on DM_GPIO
  81        default n
  82        help
  83          Say yes here to select AT91 PIO GPIO driver. AT91 PIO
  84          controller manages up to 32 fully programmable input/output
  85          lines. Each I/O line may be dedicated as a general-purpose
  86          I/O or be assigned to a function of an embedded peripheral.
  87          The assignment to a function of an embedded peripheral is
  88          the responsibility of AT91 Pinctrl driver. This driver is
  89          responsible for the general-purpose I/O.
  90
  91config ATMEL_PIO4
  92        bool "ATMEL PIO4 driver"
  93        depends on DM_GPIO
  94        default n
  95        help
  96          Say yes here to support the Atmel PIO4 driver.
  97          The PIO4 is new version of Atmel PIO controller, which manages
  98          up to 128 fully programmable input/output lines. Each I/O line
  99          may be dedicated as a general purpose I/O or be assigned to
 100          a function of an embedded peripheral.
 101
 102config DA8XX_GPIO
 103        bool "DA8xx GPIO Driver"
 104        help
 105          This driver supports the DA8xx GPIO controller
 106
 107config INTEL_BROADWELL_GPIO
 108        bool "Intel Broadwell GPIO driver"
 109        depends on DM
 110        help
 111          This driver supports Broadwell U devices which have an expanded
 112          GPIO feature set. The difference is large enough to merit a separate
 113          driver from the common Intel ICH6 driver. It supports a total of
 114          95 GPIOs which can be configured from the device tree.
 115
 116config INTEL_GPIO
 117        bool "Intel generic GPIO driver"
 118        depends on DM_GPIO
 119        help
 120          Say yes here to select Intel generic GPIO driver. This controller
 121          supports recent chips (e.g. Apollo Lake). It permits basic GPIO
 122          control including setting pins to input/output. It makes use of its
 123          parent pinctrl driver to actually effect changes.
 124
 125config INTEL_ICH6_GPIO
 126        bool "Intel ICH6 compatible legacy GPIO driver"
 127        depends on DM_GPIO
 128        help
 129          Say yes here to select Intel ICH6 compatible legacy GPIO driver.
 130
 131config IMX_RGPIO2P
 132        bool "i.MX7ULP RGPIO2P driver"
 133        depends on DM
 134        default n
 135        help
 136          This driver supports i.MX7ULP Rapid GPIO2P controller.
 137
 138config HSDK_CREG_GPIO
 139        bool "HSDK CREG GPIO griver"
 140        depends on DM_GPIO
 141        default n
 142        help
 143          This driver supports CREG GPIOs on Synopsys HSDK SOC.
 144
 145config LPC32XX_GPIO
 146        bool "LPC32XX GPIO driver"
 147        depends on DM
 148        default n
 149        help
 150          Support for the LPC32XX GPIO driver.
 151
 152config MSCC_SGPIO
 153        bool "Microsemi Serial GPIO driver"
 154        depends on DM_GPIO && SOC_VCOREIII
 155        help
 156          Support for the VCoreIII SoC serial GPIO device. By using a
 157          serial interface, the SIO controller significantly extends
 158          the number of available GPIOs with a minimum number of
 159          additional pins on the device. The primary purpose of the
 160          SIO controller is to connect control signals from SFP
 161          modules and to act as an LED controller.
 162
 163config MSM_GPIO
 164        bool "Qualcomm GPIO driver"
 165        depends on DM_GPIO
 166        default n
 167        help
 168          Support GPIO controllers on Qualcomm Snapdragon family of SoCs.
 169          This controller have single bank (default name "soc"), every
 170          gpio has it's own set of registers.
 171          Only simple GPIO operations are supported (get/set, change of
 172          direction and checking pin function).
 173          Supported devices:
 174          - APQ8016
 175          - MSM8916
 176
 177config MXC_GPIO
 178        bool "Freescale/NXP MXC GPIO driver"
 179        help
 180          Support GPIO controllers on various i.MX platforms
 181
 182config MXS_GPIO
 183        bool "Freescale/NXP MXS GPIO driver"
 184        help
 185          Support GPIO controllers on i.MX23 and i.MX28 platforms
 186
 187config OMAP_GPIO
 188        bool "TI OMAP GPIO driver"
 189        depends on ARCH_OMAP2PLUS
 190        default y
 191        help
 192          Support GPIO controllers on the TI OMAP3/4/5 and related (such as
 193          AM335x/AM43xx/AM57xx/DRA7xx/etc) families of SoCs.
 194
 195config CMD_PCA953X
 196        bool "Enable the pca953x command"
 197        help
 198          Deprecated: This should be converted to driver model.
 199
 200          This command provides access to a pca953x GPIO device using the
 201          legacy GPIO interface. Several subcommands are provided which mirror
 202          the standard 'gpio' command. It should use that instead.
 203
 204config PM8916_GPIO
 205        bool "Qualcomm PM8916 PMIC GPIO/keypad driver"
 206        depends on DM_GPIO && PMIC_PM8916
 207        help
 208          Support for GPIO pins and power/reset buttons found on
 209          Qualcomm PM8916 PMIC.
 210          Default name for GPIO bank is "pm8916".
 211          Power and reset buttons are placed in "pm8916_key" bank and
 212          have gpio numbers 0 and 1 respectively.
 213
 214config PCF8575_GPIO
 215        bool "PCF8575 I2C GPIO Expander driver"
 216        depends on DM_GPIO && DM_I2C
 217        help
 218         Support for PCF8575 I2C 16-bit GPIO expander. Most of these
 219         chips are from NXP and TI.
 220
 221config RCAR_GPIO
 222        bool "Renesas RCar GPIO driver"
 223        depends on DM_GPIO && ARCH_RMOBILE
 224        help
 225          This driver supports the GPIO banks on Renesas RCar SoCs.
 226
 227config RZA1_GPIO
 228        bool "Renesas RZ/A1 GPIO driver"
 229        depends on DM_GPIO && RZA1
 230        help
 231          This driver supports the GPIO banks on Renesas RZ/A1 R7S72100 SoCs.
 232
 233config ROCKCHIP_GPIO
 234        bool "Rockchip GPIO driver"
 235        depends on DM_GPIO
 236        help
 237          Support GPIO access on Rockchip SoCs. The GPIOs are arranged into
 238          a number of banks (different for each SoC type) each with 32 GPIOs.
 239          The GPIOs for a device are defined in the device tree with one node
 240          for each bank.
 241
 242config SANDBOX_GPIO
 243        bool "Enable sandbox GPIO driver"
 244        depends on SANDBOX && DM && DM_GPIO
 245        help
 246          This driver supports some simulated GPIOs which can be adjusted
 247          using 'back door' functions like sandbox_gpio_set_value(). Then the
 248          GPIOs can be inspected through the normal get_get_value()
 249          interface. The purpose of this is to allow GPIOs to be used as
 250          normal in sandbox, perhaps with test code actually driving the
 251          behaviour of those GPIOs.
 252
 253config SANDBOX_GPIO_COUNT
 254        int "Number of sandbox GPIOs"
 255        depends on SANDBOX_GPIO
 256        default 128
 257        help
 258          The sandbox driver can support any number of GPIOs. Generally these
 259          are specified using the device tree. But you can also have a number
 260          of 'anonymous' GPIOs that do not belong to any device or bank.
 261          Select a suitable value depending on your needs.
 262
 263config SUNXI_GPIO
 264        bool "Allwinner GPIO driver"
 265        depends on ARCH_SUNXI
 266        help
 267          Support the GPIO device in Allwinner SoCs.
 268
 269config XILINX_GPIO
 270        bool "Xilinx GPIO driver"
 271        depends on DM_GPIO
 272        help
 273          This config enable the Xilinx GPIO driver for Microblaze.
 274
 275config CMD_TCA642X
 276        bool "tca642x - Command to access tca642x state"
 277        help
 278          DEPRECATED - This needs conversion to driver model
 279
 280          This provides a way to looking at the pin state of this device.
 281          This mirrors the 'gpio' command and that should be used in preference
 282          to custom code.
 283
 284config TEGRA_GPIO
 285        bool "Tegra20..210 GPIO driver"
 286        depends on DM_GPIO
 287        help
 288          Support for the GPIO controller contained in NVIDIA Tegra20 through
 289          Tegra210.
 290
 291config TEGRA186_GPIO
 292        bool "Tegra186 GPIO driver"
 293        depends on DM_GPIO
 294        help
 295          Support for the GPIO controller contained in NVIDIA Tegra186. This
 296          covers both the "main" and "AON" controller instances, even though
 297          they have slightly different register layout.
 298
 299config GPIO_UNIPHIER
 300        bool "UniPhier GPIO"
 301        depends on ARCH_UNIPHIER
 302        help
 303          Say yes here to support UniPhier GPIOs.
 304
 305config VYBRID_GPIO
 306        bool "Vybrid GPIO driver"
 307        depends on DM
 308        default n
 309        help
 310          Say yes here to support Vybrid vf610 GPIOs.
 311
 312config PIC32_GPIO
 313        bool "Microchip PIC32 GPIO driver"
 314        depends on DM_GPIO && MACH_PIC32
 315        default y
 316        help
 317          Say yes here to support Microchip PIC32 GPIOs.
 318
 319config STM32_GPIO
 320        bool "ST STM32 GPIO driver"
 321        depends on DM_GPIO && (STM32 || ARCH_STM32MP)
 322        default y
 323        help
 324          Device model driver support for STM32 GPIO controller. It should be
 325          usable on many stm32 families like stm32f4/f7/h7 and stm32mp1.
 326          Tested on STM32F7.
 327
 328config SIFIVE_GPIO
 329        bool "SiFive GPIO driver"
 330        depends on DM_GPIO
 331        help
 332          Device model driver for GPIO controller present in SiFive FU540 SoC. This
 333          driver enables GPIO interface on HiFive Unleashed A00 board.
 334
 335config MVEBU_GPIO
 336        bool "Marvell MVEBU GPIO driver"
 337        depends on DM_GPIO && ARCH_MVEBU
 338        default y
 339        help
 340          Say yes here to support Marvell MVEBU (Armada XP/38x) GPIOs.
 341
 342config ZYNQ_GPIO
 343        bool "Zynq GPIO driver"
 344        depends on DM_GPIO && (ARCH_ZYNQ || ARCH_ZYNQMP || ARCH_VERSAL)
 345        default y
 346        help
 347          Supports GPIO access on Zynq SoC.
 348
 349config DM_74X164
 350        bool "74x164 serial-in/parallel-out 8-bits shift register"
 351        depends on DM_GPIO
 352        help
 353          Driver for 74x164 compatible serial-in/parallel-out 8-outputs
 354          shift registers, such as 74lv165, 74hc595.
 355          This driver can be used to provide access to more gpio outputs.
 356
 357config DM_PCA953X
 358        bool "PCA95[357]x, PCA9698, TCA64xx, and MAX7310 I/O ports"
 359        depends on DM_GPIO
 360        help
 361          Say yes here to provide access to several register-oriented
 362          SMBus I/O expanders, made mostly by NXP or TI.  Compatible
 363          models include:
 364
 365          4 bits:       pca9536, pca9537
 366
 367          8 bits:       max7310, max7315, pca6107, pca9534, pca9538, pca9554,
 368                        pca9556, pca9557, pca9574, tca6408, xra1202
 369
 370          16 bits:      max7312, max7313, pca9535, pca9539, pca9555, pca9575,
 371                        tca6416
 372
 373          24 bits:      tca6424
 374
 375          40 bits:      pca9505, pca9698
 376
 377          Now, max 24 bits chips and PCA953X compatible chips are
 378          supported
 379
 380config SPL_DM_PCA953X
 381        bool "PCA95[357]x, PCA9698, TCA64xx, and MAX7310 I/O ports in SPL"
 382        depends on DM_GPIO
 383        help
 384          Say yes here to provide access to several register-oriented
 385          SMBus I/O expanders, made mostly by NXP or TI.  Compatible
 386          models include:
 387
 388          4 bits:       pca9536, pca9537
 389
 390          8 bits:       max7310, max7315, pca6107, pca9534, pca9538, pca9554,
 391                        pca9556, pca9557, pca9574, tca6408, xra1202
 392
 393          16 bits:      max7312, max7313, pca9535, pca9539, pca9555, pca9575,
 394                        tca6416
 395
 396          24 bits:      tca6424
 397
 398          40 bits:      pca9505, pca9698
 399
 400          Now, max 24 bits chips and PCA953X compatible chips are
 401          supported
 402
 403config MPC8XXX_GPIO
 404        bool "Freescale MPC8XXX GPIO driver"
 405        depends on DM_GPIO
 406        help
 407          This driver supports the built-in GPIO controller of MPC8XXX CPUs.
 408          Each GPIO bank is identified by its own entry in the device tree,
 409          i.e.
 410
 411          gpio-controller@fc00 {
 412                #gpio-cells = <2>;
 413                compatible = "fsl,pq3-gpio";
 414                reg = <0xfc00 0x100>
 415          }
 416
 417          By default, each bank is assumed to have 32 GPIOs, but the ngpios
 418          setting is honored, so the number of GPIOs for each bank is
 419          configurable to match the actual GPIO count of the SoC (e.g. the
 420          32/32/23 banks of the P1022 SoC).
 421
 422          Aside from the standard functions of input/output mode, and output
 423          value setting, the open-drain feature, which can configure individual
 424          GPIOs to work as open-drain outputs, is supported.
 425
 426config MPC83XX_SPISEL_BOOT
 427        bool "Freescale MPC83XX SPISEL_BOOT driver"
 428        depends on DM_GPIO && ARCH_MPC830X
 429        help
 430          GPIO driver to set/clear dedicated SPISEL_BOOT output on MPC83XX.
 431
 432          This pin is typically used as spi chip select to a spi nor flash.
 433
 434config MT7621_GPIO
 435        bool "MediaTek MT7621 GPIO driver"
 436        depends on DM_GPIO && SOC_MT7628
 437        default y
 438        help
 439          Say yes here to support MediaTek MT7621 compatible GPIOs.
 440
 441endmenu
 442