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