blob: e11109fb56d01adf4eba628d4363b648281944ac [file] [log] [blame]
Masahiro Yamadacc85b7b2015-07-26 02:46:26 +09001#
2# GPIO infrastructure and drivers
3#
4
Simon Glass12cf6022021-08-08 12:20:24 -06005menuconfig GPIO
6 bool "GPIO support"
7 default y
8 help
9 Enable support for GPIOs (General-purpose Input/Output) in U-Boot.
10 GPIOs allow U-Boot to read the state of an input line (high or
11 low) and set the state of an output line. This can be used to
12 drive LEDs, control power to various system parts and read user
13 input. GPIOs can be useful to enable a 'sign-of-life' LED,
14 for example. Enable this option to build the drivers in
15 drivers/gpio as part of an U-Boot build.
16
17if GPIO
Masahiro Yamadacc85b7b2015-07-26 02:46:26 +090018
Masahiro Yamada57ad8ee2014-10-23 22:26:09 +090019config DM_GPIO
20 bool "Enable Driver Model for GPIO drivers"
21 depends on DM
22 help
Simon Glassd8b771d2015-02-05 21:41:35 -070023 Enable driver model for GPIO access. The standard GPIO
24 interface (gpio_get_value(), etc.) is then implemented by
25 the GPIO uclass. Drivers provide methods to query the
26 particular GPIOs that they provide. The uclass interface
27 is defined in include/asm-generic/gpio.h.
Albert ARIBAUD \(3ADEV\)eb135ad2015-03-31 11:40:46 +020028
Simon Glassfa4689a2019-12-06 21:41:35 -070029config SPL_DM_GPIO
30 bool "Enable Driver Model for GPIO drivers in SPL"
Simon Glass035939e2021-07-10 21:14:30 -060031 depends on DM_GPIO && SPL_DM && SPL_GPIO
Simon Glassfa4689a2019-12-06 21:41:35 -070032 default y
33 help
34 Enable driver model for GPIO access in SPL. The standard GPIO
35 interface (gpio_get_value(), etc.) is then implemented by
36 the GPIO uclass. Drivers provide methods to query the
37 particular GPIOs that they provide. The uclass interface
38 is defined in include/asm-generic/gpio.h.
39
40config TPL_DM_GPIO
41 bool "Enable Driver Model for GPIO drivers in TPL"
Simon Glass035939e2021-07-10 21:14:30 -060042 depends on DM_GPIO && TPL_DM && TPL_GPIO
Simon Glassfa4689a2019-12-06 21:41:35 -070043 default y
44 help
45 Enable driver model for GPIO access in TPL. The standard GPIO
46 interface (gpio_get_value(), etc.) is then implemented by
47 the GPIO uclass. Drivers provide methods to query the
48 particular GPIOs that they provide. The uclass interface
49 is defined in include/asm-generic/gpio.h.
50
Simon Glasse7ca7da2022-04-30 00:56:53 -060051config VPL_DM_GPIO
52 bool "Enable Driver Model for GPIO drivers in VPL"
53 depends on DM_GPIO && VPL_DM && VPL_GPIO
54 default y
55 help
56 Enable driver model for GPIO access in VPL. The standard GPIO
57 interface (gpio_get_value(), etc.) is then implemented by
58 the GPIO uclass. Drivers provide methods to query the
59 particular GPIOs that they provide. The uclass interface
60 is defined in include/asm-generic/gpio.h.
61
Heiko Schocher58e4c382019-07-17 06:59:51 +020062config GPIO_HOG
Heiko Schocher39cb3402019-06-12 06:11:46 +020063 bool "Enable GPIO hog support"
64 depends on DM_GPIO
Heiko Schocher39cb3402019-06-12 06:11:46 +020065 help
66 Enable gpio hog support
67 The GPIO chip may contain GPIO hog definitions. GPIO hogging
68 is a mechanism providing automatic GPIO request and config-
69 uration as part of the gpio-controller's driver probe function.
70
Eddie James652b8692022-02-07 17:09:01 -060071config SPL_GPIO_HOG
72 bool "Enable GPIO hog support in SPL"
Quentin Schulze74c6542022-07-12 17:44:19 +020073 depends on SPL_GPIO
Eddie James652b8692022-02-07 17:09:01 -060074 help
75 Enable gpio hog support in SPL
76 The GPIO chip may contain GPIO hog definitions. GPIO hogging
77 is a mechanism providing automatic GPIO request and config-
78 uration as part of the gpio-controller's driver probe function.
79
Heiko Schochera3e793c2020-05-22 11:08:59 +020080config DM_GPIO_LOOKUP_LABEL
81 bool "Enable searching for gpio labelnames"
82 depends on DM_GPIO
83 help
84 This option enables searching for gpio names in
85 the defined gpio labels, if the search for the
86 gpio bank name failed. This makes sense if you use
87 different gpios on different hardware versions
88 for the same functionality in board code.
89
90config SPL_DM_GPIO_LOOKUP_LABEL
91 bool "Enable searching for gpio labelnames"
Tom Rini0a83cc22022-06-10 23:03:09 -040092 depends on SPL_DM_GPIO
Heiko Schochera3e793c2020-05-22 11:08:59 +020093 help
94 This option enables searching for gpio names in
95 the defined gpio labels, if the search for the
96 gpio bank name failed. This makes sense if you use
97 different gpios on different hardware versions
98 for the same functionality in board code.
99
Greg Malysa4dc391e2025-02-26 12:30:25 -0500100config ADI_GPIO
101 bool "ADI GPIO driver"
102 depends on DM_GPIO && ARCH_SC5XX
103 help
104 This driver supports GPIO banks on SC5xx processors. It
105 supports inputs and outputs but does not support pin
106 interrupt functionality (PINT) or other features in the
107 Linux version of the driver.
108
Thomas Choufb1a4bf2015-10-21 21:33:45 +0800109config ALTERA_PIO
110 bool "Altera PIO driver"
111 depends on DM_GPIO
112 help
113 Select this to enable PIO for Altera devices. Please find
114 details on the "Embedded Peripherals IP User Guide" of Altera.
115
Tom Rinibb4934f2022-03-21 21:33:30 -0400116config BCM2835_GPIO
117 bool "BCM2835 GPIO driver"
118 depends on DM_GPIO
119
Álvaro Fernández Rojase9301112017-05-07 20:09:30 +0200120config BCM6345_GPIO
121 bool "BCM6345 GPIO driver"
William Zhangdf0b5bb2022-08-22 11:31:43 -0700122 depends on DM_GPIO && (ARCH_BMIPS || BCM6856 || \
William Zhang38921822022-08-22 11:49:08 -0700123 BCM6858 || BCM63158 || BCM6855)
Álvaro Fernández Rojase9301112017-05-07 20:09:30 +0200124 help
125 This driver supports the GPIO banks on BCM6345 SoCs.
126
Jason Li5ec230c2020-01-30 12:34:56 -0800127config CORTINA_GPIO
128 bool "Cortina-Access GPIO driver"
129 depends on DM_GPIO && CORTINA_PLATFORM
130 help
131 Enable support for the GPIO controller in Cortina CAxxxx SoCs.
132 This driver supports all CPU ISA variants supported by Cortina
133 Access CAxxxx SoCs.
134
Marek Vasut12a8d792015-06-23 15:54:19 +0200135config DWAPB_GPIO
136 bool "DWAPB GPIO driver"
137 depends on DM && DM_GPIO
Marek Vasut12a8d792015-06-23 15:54:19 +0200138 help
139 Support for the Designware APB GPIO driver.
140
Wenyou Yangad054482017-03-23 12:46:19 +0800141config AT91_GPIO
142 bool "AT91 PIO GPIO driver"
Wenyou Yangad054482017-03-23 12:46:19 +0800143 help
144 Say yes here to select AT91 PIO GPIO driver. AT91 PIO
145 controller manages up to 32 fully programmable input/output
146 lines. Each I/O line may be dedicated as a general-purpose
147 I/O or be assigned to a function of an embedded peripheral.
148 The assignment to a function of an embedded peripheral is
149 the responsibility of AT91 Pinctrl driver. This driver is
150 responsible for the general-purpose I/O.
151
Wenyou Yang5a09d132015-11-04 14:25:13 +0800152config ATMEL_PIO4
153 bool "ATMEL PIO4 driver"
Wenyou Yang0b971522016-07-20 17:16:26 +0800154 depends on DM_GPIO
Wenyou Yang5a09d132015-11-04 14:25:13 +0800155 help
156 Say yes here to support the Atmel PIO4 driver.
157 The PIO4 is new version of Atmel PIO controller, which manages
158 up to 128 fully programmable input/output lines. Each I/O line
159 may be dedicated as a general purpose I/O or be assigned to
160 a function of an embedded peripheral.
161
Andrew Jeffery80fb3372022-02-16 10:26:56 +1030162config ASPEED_GPIO
163 bool "Aspeed GPIO Driver"
164 help
165 Say yes here to support the Aspeed GPIO driver. The controller
166 is found in the AST2400, AST2500 and AST2600 BMC SoCs and
167 provides access to over 200 GPIOs on each chip.
168
Billy Tsai71aeeec2024-10-16 16:59:53 +0800169config ASPEED_SGPIO
170 bool "Aspeed SGPIO Driver"
171 help
172 Say yes here to support the Aspeed serial GPIO driver. The controller
173 is found in the AST2400, AST2500 and AST2600 BMC SoCs and
174 provides access to generate serial GPIO signal.
175
Billy Tsaief123392024-08-20 15:27:36 +0800176config ASPEED_G7_GPIO
177 bool "Aspeed G7 GPIO Driver"
178 help
179 Say yes here to support the Aspeed G7 GPIO driver. The controller
180 is found in the AST2700 BMC SoCs and provides access to over 200
181 GPIOs on each chip.
182
Adam Fordbaad83a2018-07-10 07:01:20 -0500183config DA8XX_GPIO
184 bool "DA8xx GPIO Driver"
185 help
186 This driver supports the DA8xx GPIO controller
187
Oleksandr Suvorov3151e422021-11-21 18:05:16 +0200188config FXL6408_GPIO
189 bool "FXL6408 I2C GPIO expander driver"
190 depends on DM_GPIO && DM_I2C
191 help
192 This driver supports the Fairchild FXL6408 device. FXL6408 is a
193 fully configurable 8-bit I2C-controlled GPIO expander.
194
Tom Rini54c62242022-11-19 18:45:14 -0500195config HIKEY_GPIO
196 bool "HI6220 GPIO driver"
197 depends on DM_GPIO
198
Simon Glass52c365f2016-03-11 22:07:27 -0700199config INTEL_BROADWELL_GPIO
200 bool "Intel Broadwell GPIO driver"
201 depends on DM
202 help
203 This driver supports Broadwell U devices which have an expanded
204 GPIO feature set. The difference is large enough to merit a separate
205 driver from the common Intel ICH6 driver. It supports a total of
206 95 GPIOs which can be configured from the device tree.
207
Simon Glass83490512019-12-06 21:42:54 -0700208config INTEL_GPIO
209 bool "Intel generic GPIO driver"
210 depends on DM_GPIO
211 help
212 Say yes here to select Intel generic GPIO driver. This controller
213 supports recent chips (e.g. Apollo Lake). It permits basic GPIO
214 control including setting pins to input/output. It makes use of its
215 parent pinctrl driver to actually effect changes.
216
Bin Mengce9d1b02017-07-30 06:23:28 -0700217config INTEL_ICH6_GPIO
218 bool "Intel ICH6 compatible legacy GPIO driver"
219 depends on DM_GPIO
220 help
221 Say yes here to select Intel ICH6 compatible legacy GPIO driver.
222
Peng Fanc5f49862017-02-22 16:21:45 +0800223config IMX_RGPIO2P
224 bool "i.MX7ULP RGPIO2P driver"
225 depends on DM
Peng Fanc5f49862017-02-22 16:21:45 +0800226 help
227 This driver supports i.MX7ULP Rapid GPIO2P controller.
228
Rayagonda Kokatanurf600db42020-05-05 23:26:46 +0530229config IPROC_GPIO
230 bool "Broadcom iProc GPIO driver(without pinconf)"
Rayagonda Kokatanurf600db42020-05-05 23:26:46 +0530231 help
232 The Broadcom iProc based SoCs- Cygnus, NS2, NS3, NSP and Stingray,
233 use the same GPIO Controller IP hence this driver could be used
234 for all.
235
236 The Broadcom iProc based SoCs have multiple GPIO controllers and only
237 the always-ON GPIO controller (CRMU/AON) is supported by this driver.
238
Eugeniy Paltsev92d32fc2017-10-16 16:21:32 +0300239config HSDK_CREG_GPIO
240 bool "HSDK CREG GPIO griver"
Alexey Brodkin72593382017-12-10 20:55:44 +0300241 depends on DM_GPIO
Eugeniy Paltsev92d32fc2017-10-16 16:21:32 +0300242 help
243 This driver supports CREG GPIOs on Synopsys HSDK SOC.
244
Tom Rinif7c69852021-12-17 18:08:46 -0500245config KIRKWOOD_GPIO
246 bool "Kirkwood GPIO driver"
247 help
248 This drdiver supports GPIOs on Kirkwood platforms
249
Albert ARIBAUD \(3ADEV\)eb135ad2015-03-31 11:40:46 +0200250config LPC32XX_GPIO
251 bool "LPC32XX GPIO driver"
252 depends on DM
Albert ARIBAUD \(3ADEV\)eb135ad2015-03-31 11:40:46 +0200253 help
254 Support for the LPC32XX GPIO driver.
Simon Glass084a3fe2015-03-06 13:19:01 -0700255
Hannes Schmelzerd3254ce2021-10-01 13:37:57 +0200256config MAX7320_GPIO
257 bool "MAX7320 I2C GPIO Expander driver"
258 depends on DM_GPIO && DM_I2C
259 help
260 Support for MAX7320 I2C 8/16-bit GPIO expander.
261 original maxim device has 8 push/pull outputs,
262 some clones offers 16bit.
263
Svyatoslav Ryhel16360b82023-07-15 22:25:03 +0300264config MAX77663_GPIO
265 bool "MAX77663 GPIO cell of PMIC driver"
266 depends on DM_GPIO && DM_PMIC_MAX77663
267 help
268 GPIO driver for MAX77663 PMIC from Maxim Semiconductor.
269 MAX77663 PMIC has 8 pins that can be configured as GPIOs
270 and 3 GPIO-like pins dedicated for power/reset buttons
271 and LID sensor.
272
Sebastian Reicheld761e822021-07-15 17:40:00 +0200273config MCP230XX_GPIO
274 bool "MCP230XX GPIO driver"
275 depends on DM
276 help
277 Support for Microchip's MCP230XX I2C connected GPIO devices.
278 The following chips are supported:
279 - MCP23008
280 - MCP23017
281 - MCP23018
Piotr Wojtaszczyk9050d042024-03-13 12:54:56 +0100282 - MCP23S08
283 - MCP23S17
284 - MCP23S18
Sebastian Reicheld761e822021-07-15 17:40:00 +0200285
Lars Povlsen37a209c2019-01-02 09:52:21 +0100286config MSCC_SGPIO
287 bool "Microsemi Serial GPIO driver"
288 depends on DM_GPIO && SOC_VCOREIII
289 help
290 Support for the VCoreIII SoC serial GPIO device. By using a
291 serial interface, the SIO controller significantly extends
292 the number of available GPIOs with a minimum number of
293 additional pins on the device. The primary purpose of the
294 SIO controller is to connect control signals from SFP
295 modules and to act as an LED controller.
296
Mateusz Kulikowskia1b3ae92016-03-31 23:12:15 +0200297config MSM_GPIO
298 bool "Qualcomm GPIO driver"
299 depends on DM_GPIO
Mateusz Kulikowskia1b3ae92016-03-31 23:12:15 +0200300 help
301 Support GPIO controllers on Qualcomm Snapdragon family of SoCs.
302 This controller have single bank (default name "soc"), every
303 gpio has it's own set of registers.
304 Only simple GPIO operations are supported (get/set, change of
305 direction and checking pin function).
306 Supported devices:
307 - APQ8016
308 - MSM8916
309
Adam Fordb413c452018-02-04 09:32:43 -0600310config MXC_GPIO
Hannes Schmelzerfd94af52018-06-07 12:10:09 +0200311 bool "Freescale/NXP MXC GPIO driver"
Adam Fordb413c452018-02-04 09:32:43 -0600312 help
313 Support GPIO controllers on various i.MX platforms
314
Lukasz Majewskie076d7c2019-08-13 18:10:39 +0200315config MXS_GPIO
316 bool "Freescale/NXP MXS GPIO driver"
317 help
318 Support GPIO controllers on i.MX23 and i.MX28 platforms
319
Stanley Chu71d1ed02022-02-25 10:14:50 +0800320config NPCM_GPIO
321 bool "Nuvoton NPCM GPIO driver"
322 depends on DM_GPIO
323 help
324 Support GPIO controllers on Nuvovon NPCM SoCs.
325 NPCM7xx/NPCM8xx contain 8 GPIO banks, each bank contains 32 pins.
326
Jim Liu0d500532024-07-29 16:51:03 +0800327config NPCM_SGPIO
328 bool "Nuvoton NPCM SGPIO driver"
329 depends on DM_GPIO
330 help
331 Support Nuvoton BMC NPCM7xx/NPCM8xx sgpio driver support.
332 Nuvoton NPCM SGPIO module is combine serial to parallel IC (HC595)
333 and parallel to serial IC (HC165).
334 BMC can use this driver to increase 64 GPI pins and 64 GPO pins to use.
335
Tom Rinifd36c192017-05-12 22:33:21 -0400336config OMAP_GPIO
337 bool "TI OMAP GPIO driver"
338 depends on ARCH_OMAP2PLUS
339 default y
340 help
341 Support GPIO controllers on the TI OMAP3/4/5 and related (such as
342 AM335x/AM43xx/AM57xx/DRA7xx/etc) families of SoCs.
343
Simon Glassa9e7f2c2017-08-04 16:34:32 -0600344config CMD_PCA953X
345 bool "Enable the pca953x command"
346 help
347 Deprecated: This should be converted to driver model.
348
349 This command provides access to a pca953x GPIO device using the
350 legacy GPIO interface. Several subcommands are provided which mirror
351 the standard 'gpio' command. It should use that instead.
352
Sumit Garg60900b42022-08-04 19:57:17 +0530353config QCOM_PMIC_GPIO
354 bool "Qualcomm generic PMIC GPIO/keypad driver"
355 depends on DM_GPIO && PMIC_QCOM
Caleb Connollyd4b4d972023-12-05 13:46:49 +0000356 select BUTTON
Mateusz Kulikowski15a58532016-03-31 23:12:31 +0200357 help
358 Support for GPIO pins and power/reset buttons found on
Sumit Garg60900b42022-08-04 19:57:17 +0530359 Qualcomm SoCs PMIC.
Caleb Connollyd4b4d972023-12-05 13:46:49 +0000360 The GPIO bank is called "pmic"
Mateusz Kulikowski15a58532016-03-31 23:12:31 +0200361
Vignesh R0caf07c2016-08-02 10:14:24 +0530362config PCF8575_GPIO
363 bool "PCF8575 I2C GPIO Expander driver"
364 depends on DM_GPIO && DM_I2C
365 help
366 Support for PCF8575 I2C 16-bit GPIO expander. Most of these
367 chips are from NXP and TI.
368
Marek Vasutfefed7a2017-09-15 21:13:56 +0200369config RCAR_GPIO
Marek Vasut436a01b2024-12-11 08:30:28 +0100370 bool "Renesas R-Car GPIO driver"
Marek Vasut6468c4c2024-02-27 17:05:55 +0100371 depends on DM_GPIO && ARCH_RENESAS
Marek Vasutfefed7a2017-09-15 21:13:56 +0200372 help
Marek Vasut436a01b2024-12-11 08:30:28 +0100373 This driver supports the GPIO banks on Renesas R-Car SoCs.
Marek Vasutfefed7a2017-09-15 21:13:56 +0200374
Marek Vasut6d99d962019-05-04 16:00:17 +0200375config RZA1_GPIO
376 bool "Renesas RZ/A1 GPIO driver"
377 depends on DM_GPIO && RZA1
378 help
379 This driver supports the GPIO banks on Renesas RZ/A1 R7S72100 SoCs.
380
Simon Glass8fa4d5a2015-08-30 16:55:27 -0600381config ROCKCHIP_GPIO
382 bool "Rockchip GPIO driver"
383 depends on DM_GPIO
384 help
385 Support GPIO access on Rockchip SoCs. The GPIOs are arranged into
386 a number of banks (different for each SoC type) each with 32 GPIOs.
387 The GPIOs for a device are defined in the device tree with one node
388 for each bank.
389
Simon Glass084a3fe2015-03-06 13:19:01 -0700390config SANDBOX_GPIO
391 bool "Enable sandbox GPIO driver"
392 depends on SANDBOX && DM && DM_GPIO
393 help
394 This driver supports some simulated GPIOs which can be adjusted
395 using 'back door' functions like sandbox_gpio_set_value(). Then the
396 GPIOs can be inspected through the normal get_get_value()
397 interface. The purpose of this is to allow GPIOs to be used as
398 normal in sandbox, perhaps with test code actually driving the
399 behaviour of those GPIOs.
400
401config SANDBOX_GPIO_COUNT
402 int "Number of sandbox GPIOs"
403 depends on SANDBOX_GPIO
404 default 128
405 help
406 The sandbox driver can support any number of GPIOs. Generally these
407 are specified using the device tree. But you can also have a number
408 of 'anonymous' GPIOs that do not belong to any device or bank.
409 Select a suitable value depending on your needs.
Bhuvanchandra DV6d236aa2015-06-01 18:37:16 +0530410
Andre Przywara9d3bab92019-06-23 15:09:46 +0100411config SUNXI_GPIO
412 bool "Allwinner GPIO driver"
413 depends on ARCH_SUNXI
Samuel Holland290713f2022-05-10 19:03:34 -0500414 select SPL_STRTO if SPL
Andre Przywara9d3bab92019-06-23 15:09:46 +0100415 help
416 Support the GPIO device in Allwinner SoCs.
417
Andre Przywaraf6ad5102022-09-06 12:12:50 +0100418config SUNXI_NEW_PINCTRL
419 bool
420 depends on SUNXI_GPIO
421 ---help---
422 The Allwinner D1 and other new SoCs use a different register map
423 for the GPIO block, which we need to know about in the SPL.
424
Vipul Kumar06905872018-02-28 11:32:22 +0530425config XILINX_GPIO
426 bool "Xilinx GPIO driver"
Michal Simek4e39ea82018-07-13 08:26:28 +0200427 depends on DM_GPIO
Vipul Kumar06905872018-02-28 11:32:22 +0530428 help
429 This config enable the Xilinx GPIO driver for Microblaze.
430
Tom Rini54c62242022-11-19 18:45:14 -0500431config TCA642X
432 bool "TCA642x legacy GPIO driver"
433
Simon Glass35432062017-08-04 16:34:54 -0600434config CMD_TCA642X
435 bool "tca642x - Command to access tca642x state"
Tom Rini54c62242022-11-19 18:45:14 -0500436 depends on TCA642X
437 default y
Simon Glass35432062017-08-04 16:34:54 -0600438 help
439 DEPRECATED - This needs conversion to driver model
440
441 This provides a way to looking at the pin state of this device.
442 This mirrors the 'gpio' command and that should be used in preference
443 to custom code.
444
Stephen Warrenaf974be2016-05-12 12:07:41 -0600445config TEGRA_GPIO
446 bool "Tegra20..210 GPIO driver"
447 depends on DM_GPIO
448 help
449 Support for the GPIO controller contained in NVIDIA Tegra20 through
450 Tegra210.
451
Stephen Warren0c5403f2016-05-25 14:38:51 -0600452config TEGRA186_GPIO
453 bool "Tegra186 GPIO driver"
454 depends on DM_GPIO
455 help
456 Support for the GPIO controller contained in NVIDIA Tegra186. This
457 covers both the "main" and "AON" controller instances, even though
458 they have slightly different register layout.
459
Masahiro Yamada2dbca982016-02-16 17:03:48 +0900460config GPIO_UNIPHIER
461 bool "UniPhier GPIO"
462 depends on ARCH_UNIPHIER
463 help
464 Say yes here to support UniPhier GPIOs.
465
Bhuvanchandra DV6d236aa2015-06-01 18:37:16 +0530466config VYBRID_GPIO
467 bool "Vybrid GPIO driver"
468 depends on DM
Bhuvanchandra DV6d236aa2015-06-01 18:37:16 +0530469 help
470 Say yes here to support Vybrid vf610 GPIOs.
Masahiro Yamadacc85b7b2015-07-26 02:46:26 +0900471
Svyatoslav Ryhel32648d32023-07-21 10:50:15 +0300472config PALMAS_GPIO
473 bool "TI PALMAS series PMICs GPIO"
474 depends on DM_GPIO && PMIC_PALMAS
475 help
476 Select this option to enable GPIO driver for the TI PALMAS
477 series chip family.
478
Purna Chandra Mandal0ee99ca2016-01-28 15:30:13 +0530479config PIC32_GPIO
480 bool "Microchip PIC32 GPIO driver"
481 depends on DM_GPIO && MACH_PIC32
482 default y
483 help
484 Say yes here to support Microchip PIC32 GPIOs.
485
Suneel Garapatia432c252020-07-30 13:56:13 +0200486config OCTEON_GPIO
487 bool "Octeon II/III/TX/TX2 GPIO driver"
Simon Glass3933d292021-08-01 18:54:44 -0600488 depends on DM_GPIO && PCI && (ARCH_OCTEON || ARCH_OCTEONTX || ARCH_OCTEONTX2)
Suneel Garapatia432c252020-07-30 13:56:13 +0200489 default y
490 help
491 Add support for the Marvell Octeon GPIO driver. This is used with
492 various Octeon parts such as Octeon II/III and OcteonTX/TX2.
493 Octeon II/III has 32 GPIOs (count defined via DT) and OcteonTX/TX2
494 has 64 GPIOs (count defined via internal register).
495
Patrice Chotarddaf1a592019-06-21 15:39:22 +0200496config STM32_GPIO
Vikas Manochaec8630a2017-04-10 15:02:57 -0700497 bool "ST STM32 GPIO driver"
Trevor Woerner2bcc1ed2020-05-06 08:02:42 -0400498 depends on DM_GPIO && (ARCH_STM32 || ARCH_STM32MP)
Vikas Manochaec8630a2017-04-10 15:02:57 -0700499 default y
500 help
501 Device model driver support for STM32 GPIO controller. It should be
Patrice Chotarddaf1a592019-06-21 15:39:22 +0200502 usable on many stm32 families like stm32f4/f7/h7 and stm32mp1.
Vikas Manochaec8630a2017-04-10 15:02:57 -0700503 Tested on STM32F7.
504
Sagar Shrikant Kadam211be3b2019-10-01 10:00:46 -0700505config SIFIVE_GPIO
506 bool "SiFive GPIO driver"
507 depends on DM_GPIO
508 help
509 Device model driver for GPIO controller present in SiFive FU540 SoC. This
510 driver enables GPIO interface on HiFive Unleashed A00 board.
511
Stefan Roesee0e70422016-02-12 13:46:50 +0100512config MVEBU_GPIO
513 bool "Marvell MVEBU GPIO driver"
Harm Berntsen1e220b22020-11-29 10:08:02 +0000514 depends on DM_GPIO && (ARCH_MVEBU || ARCH_KIRKWOOD)
Stefan Roesee0e70422016-02-12 13:46:50 +0100515 default y
516 help
517 Say yes here to support Marvell MVEBU (Armada XP/38x) GPIOs.
518
Siva Durga Prasad Paladugud6d00822016-03-10 16:27:39 +0530519config ZYNQ_GPIO
520 bool "Zynq GPIO driver"
Michal Simekc28665d2020-08-06 15:18:36 +0200521 depends on DM_GPIO
Michal Simekd903ce42024-05-29 16:47:58 +0200522 default y if ARCH_ZYNQ || ARCH_ZYNQMP || ARCH_VERSAL || ARCH_VERSAL2
Siva Durga Prasad Paladugud6d00822016-03-10 16:27:39 +0530523 help
524 Supports GPIO access on Zynq SoC.
525
Peng Fan28b4a1c2016-05-03 10:02:23 +0800526config DM_74X164
527 bool "74x164 serial-in/parallel-out 8-bits shift register"
J. Neuschäfer1675e792025-02-17 12:18:03 +0100528 depends on DM_GPIO && DM_SPI
Peng Fan28b4a1c2016-05-03 10:02:23 +0800529 help
530 Driver for 74x164 compatible serial-in/parallel-out 8-outputs
531 shift registers, such as 74lv165, 74hc595.
532 This driver can be used to provide access to more gpio outputs.
533
Peng Fanca675072016-04-14 21:45:06 +0800534config DM_PCA953X
535 bool "PCA95[357]x, PCA9698, TCA64xx, and MAX7310 I/O ports"
Michal Simeka917de72021-06-02 12:40:45 +0200536 depends on DM_GPIO && DM_I2C
Peng Fanca675072016-04-14 21:45:06 +0800537 help
538 Say yes here to provide access to several register-oriented
539 SMBus I/O expanders, made mostly by NXP or TI. Compatible
540 models include:
541
542 4 bits: pca9536, pca9537
543
544 8 bits: max7310, max7315, pca6107, pca9534, pca9538, pca9554,
545 pca9556, pca9557, pca9574, tca6408, xra1202
546
547 16 bits: max7312, max7313, pca9535, pca9539, pca9555, pca9575,
548 tca6416
549
550 24 bits: tca6424
551
552 40 bits: pca9505, pca9698
553
554 Now, max 24 bits chips and PCA953X compatible chips are
555 supported
mario.six@gdsys.cc5b59a352016-05-25 15:15:20 +0200556
Nathan Barrett-Morrison5315ff82025-02-26 12:30:26 -0500557config ADP5588_GPIO
558 bool "ADP5588 GPIO expander driver"
559 depends on DM_GPIO && DM_I2C
560 help
561 Say yes here to support GPIO functionality of ADI ADP5588 chips.
562
563 The ADP5588 is an 18-port I2C GPIO expander and keypad controller.
564
Peng Fane67502c2018-12-21 06:21:21 +0000565config SPL_DM_PCA953X
566 bool "PCA95[357]x, PCA9698, TCA64xx, and MAX7310 I/O ports in SPL"
Tom Rini0a83cc22022-06-10 23:03:09 -0400567 depends on SPL_DM_GPIO
Peng Fane67502c2018-12-21 06:21:21 +0000568 help
569 Say yes here to provide access to several register-oriented
570 SMBus I/O expanders, made mostly by NXP or TI. Compatible
571 models include:
572
573 4 bits: pca9536, pca9537
574
575 8 bits: max7310, max7315, pca6107, pca9534, pca9538, pca9554,
576 pca9556, pca9557, pca9574, tca6408, xra1202
577
578 16 bits: max7312, max7313, pca9535, pca9539, pca9555, pca9575,
579 tca6416
580
581 24 bits: tca6424
582
583 40 bits: pca9505, pca9698
584
585 Now, max 24 bits chips and PCA953X compatible chips are
586 supported
587
Tom Rini27b8f422022-11-19 18:45:30 -0500588config PCA953X
589 bool "NXP's PCA953X series I2C GPIO (legacy driver)"
590 depends on !DM_PCA953X
591
Mario Sixd006f682018-01-15 11:07:48 +0100592config MPC8XXX_GPIO
593 bool "Freescale MPC8XXX GPIO driver"
mario.six@gdsys.cc5b59a352016-05-25 15:15:20 +0200594 depends on DM_GPIO
595 help
Mario Sixd006f682018-01-15 11:07:48 +0100596 This driver supports the built-in GPIO controller of MPC8XXX CPUs.
mario.six@gdsys.cc5b59a352016-05-25 15:15:20 +0200597 Each GPIO bank is identified by its own entry in the device tree,
598 i.e.
599
600 gpio-controller@fc00 {
601 #gpio-cells = <2>;
602 compatible = "fsl,pq3-gpio";
603 reg = <0xfc00 0x100>
604 }
605
606 By default, each bank is assumed to have 32 GPIOs, but the ngpios
607 setting is honored, so the number of GPIOs for each bank is
608 configurable to match the actual GPIO count of the SoC (e.g. the
609 32/32/23 banks of the P1022 SoC).
610
mario.six@gdsys.cc7b4cf8b2016-05-25 15:15:22 +0200611 Aside from the standard functions of input/output mode, and output
612 value setting, the open-drain feature, which can configure individual
613 GPIOs to work as open-drain outputs, is supported.
Stefan Roesebbd6fe42018-10-08 12:38:01 +0200614
Christophe Leroyd4f79cb2023-02-21 19:31:11 +0100615config QE_GPIO
616 bool "Freescale QUICC ENGINE GPIO driver"
617 depends on DM_GPIO
618 depends on QE
619 help
620 This driver supports the QUICC Engine GPIOs of MPC83XX CPUs.
621 Each GPIO bank is identified by its own entry in the device tree,
622 i.e.
623
624 qe_pio_a: gpio-controller@1400 {
625 compatible = "fsl,mpc8323-qe-pario-bank";
626 reg = <0x1400 0x18>;
627 gpio-controller;
628 #gpio-cells = <2>;
629 };
630
631 Each bank has 32 GPIOs.
632
Christophe Leroyb7df9082022-10-14 10:01:41 +0200633config MPC8XX_GPIO
634 bool "Freescale MPC8XX GPIO driver"
635 depends on DM_GPIO
636 help
637 This driver supports parallel IO ports from MPC8XX CPUs.
638 Each GPIO bank is identified by its own entry in the device tree.
639
Klaus H. Sorensene308da02020-02-11 15:20:22 +0000640config MPC83XX_SPISEL_BOOT
641 bool "Freescale MPC83XX SPISEL_BOOT driver"
642 depends on DM_GPIO && ARCH_MPC830X
643 help
644 GPIO driver to set/clear dedicated SPISEL_BOOT output on MPC83XX.
645
646 This pin is typically used as spi chip select to a spi nor flash.
647
developer58690932020-11-12 16:36:33 +0800648config MT7620_GPIO
649 bool "MediaTek MT7620 GPIO driver"
650 depends on DM_GPIO && SOC_MT7620
651 default y
652 help
653 Device model driver for GPIO controller present in MediaTek MT7620
654 and earlier SoCs.
655
Stefan Roesebbd6fe42018-10-08 12:38:01 +0200656config MT7621_GPIO
657 bool "MediaTek MT7621 GPIO driver"
developer6d471b12022-05-20 11:23:14 +0800658 depends on DM_GPIO && (SOC_MT7621 || SOC_MT7628)
Stefan Roesebbd6fe42018-10-08 12:38:01 +0200659 default y
660 help
661 Say yes here to support MediaTek MT7621 compatible GPIOs.
662
Stefan Bosch9c21d402020-07-10 19:07:27 +0200663config NX_GPIO
664 bool "Nexell GPIO driver"
665 depends on DM_GPIO
666 help
667 Support GPIO access on Nexell SoCs. The GPIOs are arranged into
668 a number of banks (different for each SoC type) each with 32 GPIOs.
669 The GPIOs for a device are defined in the device tree with one node
670 for each bank.
671
Stephan Gerholddf839d52021-07-02 17:06:18 +0200672config NOMADIK_GPIO
673 bool "Nomadik GPIO driver"
674 depends on DM_GPIO
675 help
676 Support GPIO access on ST-Ericsson Ux500 SoCs. The GPIOs are arranged
677 into a number of banks each with 32 GPIOs. The GPIOs for a device are
678 defined in the device tree with one node for each bank.
679
T Karthik Reddy01719722021-10-29 13:11:43 +0200680config ZYNQMP_GPIO_MODEPIN
681 bool "ZynqMP gpio modepin"
Michal Simekec561672024-06-06 16:44:54 +0200682 depends on DM_GPIO && ZYNQMP_FIRMWARE
T Karthik Reddy01719722021-10-29 13:11:43 +0200683 help
684 This config enables the ZynqMP gpio modepin driver. ZynqMP modepin
685 driver will set and get the status of PS_MODE pins. These modepins
686 are accessed using xilinx firmware. In modepin register, [3:0] bits
687 set direction, [7:4] bits read IO, [11:8] bits set/clear IO.
688
Tom Rinic48c0402022-11-19 18:45:32 -0500689config SH_GPIO_PFC
690 bool "Pinmuxed GPIO support for SuperH"
691 depends on RCAR_GEN2 && !PINCTRL_PFC
692 default y
693
Michael Wallec66c2562022-02-25 18:10:24 +0530694config SL28CPLD_GPIO
695 bool "Kontron sl28cpld GPIO driver"
696 depends on DM_GPIO && SL28CPLD
697 help
698 Support GPIO access on Kontron sl28cpld board management controllers.
699
T Karthik Reddy64fa3e82022-02-23 16:21:30 +0100700config SLG7XL45106_I2C_GPO
701 bool "slg7xl45106 i2c gpo expander"
702 depends on DM_GPIO
703 help
704 Support for slg7xl45106 i2c gpo expander. It is an i2c based
705 8-bit gpo expander, all gpo lines are controlled by writing
706 value into data register.
707
Sergei Antonov03027a52022-09-12 13:09:15 +0300708config FTGPIO010
709 bool "Faraday Technology FTGPIO010 driver"
710 depends on DM_GPIO
711 help
712 Support for GPIOs on Faraday Technology's FTGPIO010 controller.
713
Alice Guo4ce47782022-10-09 11:19:22 +0800714config ADP5585_GPIO
715 bool "ADP5585 GPIO driver"
716 depends on DM_GPIO && DM_I2C
717 help
718 Support ADP5585 GPIO expander.
719
Paul Barkerde430eb2023-10-16 10:25:33 +0100720config RZG2L_GPIO
721 bool "Renesas RZ/G2L family GPIO driver"
722 depends on DM_GPIO && PINCTRL_RZG2L
723 help
724 Support the gpio functionality of the pin function controller (PFC)
725 on the Renesas RZ/G2L SoC family.
726
Ye Li4b3e6562024-09-29 09:32:26 +0800727config SPL_ADP5585_GPIO
728 bool "ADP5585 GPIO driver in SPL"
729 depends on SPL_DM_GPIO && SPL_I2C
730 help
731 Support ADP5585 GPIO expander in SPL.
732
Simon Glass12cf6022021-08-08 12:20:24 -0600733endif