blob: 447cf04578f3b364eff93fd4bff4f8bebb8c2fbf [file] [log] [blame]
Masahiro Yamada0b11dbf2015-07-26 02:46:26 +09001#
2# GPIO infrastructure and drivers
3#
4
5menu "GPIO Support"
6
Masahiro Yamadada333ae2014-10-23 22:26:09 +09007config DM_GPIO
8 bool "Enable Driver Model for GPIO drivers"
9 depends on DM
10 help
Simon Glassf94a1be2015-02-05 21:41:35 -070011 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.
Albert ARIBAUD \(3ADEV\)606f7042015-03-31 11:40:46 +020016
Simon Glassbcee8d62019-12-06 21:41:35 -070017config 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
Heiko Schocher49b10cb2019-07-17 06:59:51 +020039config GPIO_HOG
Heiko Schocher5fc7cf82019-06-12 06:11:46 +020040 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
Thomas Chou88d5ecf2015-10-21 21:33:45 +080049config 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
Álvaro Fernández Rojase64bdb22017-05-07 20:09:30 +020056config BCM6345_GPIO
57 bool "BCM6345 GPIO driver"
Philippe Reynes353496b2019-03-07 11:36:40 +010058 depends on DM_GPIO && (ARCH_BMIPS || ARCH_BCM6858 || ARCH_BCM63158)
Álvaro Fernández Rojase64bdb22017-05-07 20:09:30 +020059 help
60 This driver supports the GPIO banks on BCM6345 SoCs.
61
Marek Vasute30a70c2015-06-23 15:54:19 +020062config DWAPB_GPIO
63 bool "DWAPB GPIO driver"
64 depends on DM && DM_GPIO
65 default n
66 help
67 Support for the Designware APB GPIO driver.
68
Wenyou Yang5a07a5f2017-03-23 12:46:19 +080069config AT91_GPIO
70 bool "AT91 PIO GPIO driver"
71 depends on DM_GPIO
72 default n
73 help
74 Say yes here to select AT91 PIO GPIO driver. AT91 PIO
75 controller manages up to 32 fully programmable input/output
76 lines. Each I/O line may be dedicated as a general-purpose
77 I/O or be assigned to a function of an embedded peripheral.
78 The assignment to a function of an embedded peripheral is
79 the responsibility of AT91 Pinctrl driver. This driver is
80 responsible for the general-purpose I/O.
81
Wenyou Yang2c62c562015-11-04 14:25:13 +080082config ATMEL_PIO4
83 bool "ATMEL PIO4 driver"
Wenyou Yangee3311d2016-07-20 17:16:26 +080084 depends on DM_GPIO
Wenyou Yang2c62c562015-11-04 14:25:13 +080085 default n
86 help
87 Say yes here to support the Atmel PIO4 driver.
88 The PIO4 is new version of Atmel PIO controller, which manages
89 up to 128 fully programmable input/output lines. Each I/O line
90 may be dedicated as a general purpose I/O or be assigned to
91 a function of an embedded peripheral.
92
Adam Ford5d653af2018-07-10 07:01:20 -050093config DA8XX_GPIO
94 bool "DA8xx GPIO Driver"
95 help
96 This driver supports the DA8xx GPIO controller
97
Simon Glass64b17972016-03-11 22:07:27 -070098config INTEL_BROADWELL_GPIO
99 bool "Intel Broadwell GPIO driver"
100 depends on DM
101 help
102 This driver supports Broadwell U devices which have an expanded
103 GPIO feature set. The difference is large enough to merit a separate
104 driver from the common Intel ICH6 driver. It supports a total of
105 95 GPIOs which can be configured from the device tree.
106
Bin Meng72436892017-07-30 06:23:28 -0700107config INTEL_ICH6_GPIO
108 bool "Intel ICH6 compatible legacy GPIO driver"
109 depends on DM_GPIO
110 help
111 Say yes here to select Intel ICH6 compatible legacy GPIO driver.
112
Peng Fand665eb62017-02-22 16:21:45 +0800113config IMX_RGPIO2P
114 bool "i.MX7ULP RGPIO2P driver"
115 depends on DM
116 default n
117 help
118 This driver supports i.MX7ULP Rapid GPIO2P controller.
119
Eugeniy Paltsev3194c3c2017-10-16 16:21:32 +0300120config HSDK_CREG_GPIO
121 bool "HSDK CREG GPIO griver"
Alexey Brodkind5fbcd52017-12-10 20:55:44 +0300122 depends on DM_GPIO
Eugeniy Paltsev3194c3c2017-10-16 16:21:32 +0300123 default n
124 help
125 This driver supports CREG GPIOs on Synopsys HSDK SOC.
126
Albert ARIBAUD \(3ADEV\)606f7042015-03-31 11:40:46 +0200127config LPC32XX_GPIO
128 bool "LPC32XX GPIO driver"
129 depends on DM
130 default n
131 help
132 Support for the LPC32XX GPIO driver.
Simon Glassd79c50a2015-03-06 13:19:01 -0700133
Lars Povlsenbe8313f2019-01-02 09:52:21 +0100134config MSCC_SGPIO
135 bool "Microsemi Serial GPIO driver"
136 depends on DM_GPIO && SOC_VCOREIII
137 help
138 Support for the VCoreIII SoC serial GPIO device. By using a
139 serial interface, the SIO controller significantly extends
140 the number of available GPIOs with a minimum number of
141 additional pins on the device. The primary purpose of the
142 SIO controller is to connect control signals from SFP
143 modules and to act as an LED controller.
144
Mateusz Kulikowski81a87e12016-03-31 23:12:15 +0200145config MSM_GPIO
146 bool "Qualcomm GPIO driver"
147 depends on DM_GPIO
148 default n
149 help
150 Support GPIO controllers on Qualcomm Snapdragon family of SoCs.
151 This controller have single bank (default name "soc"), every
152 gpio has it's own set of registers.
153 Only simple GPIO operations are supported (get/set, change of
154 direction and checking pin function).
155 Supported devices:
156 - APQ8016
157 - MSM8916
158
Adam Ford8bbff6a2018-02-04 09:32:43 -0600159config MXC_GPIO
Hannes Schmelzer8fd05fc2018-06-07 12:10:09 +0200160 bool "Freescale/NXP MXC GPIO driver"
Adam Ford8bbff6a2018-02-04 09:32:43 -0600161 help
162 Support GPIO controllers on various i.MX platforms
163
Lukasz Majewski54847932019-08-13 18:10:39 +0200164config MXS_GPIO
165 bool "Freescale/NXP MXS GPIO driver"
166 help
167 Support GPIO controllers on i.MX23 and i.MX28 platforms
168
Tom Rini29cb2b32017-05-12 22:33:21 -0400169config OMAP_GPIO
170 bool "TI OMAP GPIO driver"
171 depends on ARCH_OMAP2PLUS
172 default y
173 help
174 Support GPIO controllers on the TI OMAP3/4/5 and related (such as
175 AM335x/AM43xx/AM57xx/DRA7xx/etc) families of SoCs.
176
Simon Glass00913622017-08-04 16:34:32 -0600177config CMD_PCA953X
178 bool "Enable the pca953x command"
179 help
180 Deprecated: This should be converted to driver model.
181
182 This command provides access to a pca953x GPIO device using the
183 legacy GPIO interface. Several subcommands are provided which mirror
184 the standard 'gpio' command. It should use that instead.
185
Mateusz Kulikowski120800d2016-03-31 23:12:31 +0200186config PM8916_GPIO
187 bool "Qualcomm PM8916 PMIC GPIO/keypad driver"
188 depends on DM_GPIO && PMIC_PM8916
189 help
190 Support for GPIO pins and power/reset buttons found on
191 Qualcomm PM8916 PMIC.
192 Default name for GPIO bank is "pm8916".
193 Power and reset buttons are placed in "pm8916_key" bank and
194 have gpio numbers 0 and 1 respectively.
195
Vignesh R5746b0d2016-08-02 10:14:24 +0530196config PCF8575_GPIO
197 bool "PCF8575 I2C GPIO Expander driver"
198 depends on DM_GPIO && DM_I2C
199 help
200 Support for PCF8575 I2C 16-bit GPIO expander. Most of these
201 chips are from NXP and TI.
202
Marek Vasutf5f69592017-09-15 21:13:56 +0200203config RCAR_GPIO
204 bool "Renesas RCar GPIO driver"
205 depends on DM_GPIO && ARCH_RMOBILE
206 help
207 This driver supports the GPIO banks on Renesas RCar SoCs.
208
Marek Vasut86b8e7d2019-05-04 16:00:17 +0200209config RZA1_GPIO
210 bool "Renesas RZ/A1 GPIO driver"
211 depends on DM_GPIO && RZA1
212 help
213 This driver supports the GPIO banks on Renesas RZ/A1 R7S72100 SoCs.
214
Simon Glass1f8f7732015-08-30 16:55:27 -0600215config ROCKCHIP_GPIO
216 bool "Rockchip GPIO driver"
217 depends on DM_GPIO
218 help
219 Support GPIO access on Rockchip SoCs. The GPIOs are arranged into
220 a number of banks (different for each SoC type) each with 32 GPIOs.
221 The GPIOs for a device are defined in the device tree with one node
222 for each bank.
223
Simon Glassd79c50a2015-03-06 13:19:01 -0700224config SANDBOX_GPIO
225 bool "Enable sandbox GPIO driver"
226 depends on SANDBOX && DM && DM_GPIO
227 help
228 This driver supports some simulated GPIOs which can be adjusted
229 using 'back door' functions like sandbox_gpio_set_value(). Then the
230 GPIOs can be inspected through the normal get_get_value()
231 interface. The purpose of this is to allow GPIOs to be used as
232 normal in sandbox, perhaps with test code actually driving the
233 behaviour of those GPIOs.
234
235config SANDBOX_GPIO_COUNT
236 int "Number of sandbox GPIOs"
237 depends on SANDBOX_GPIO
238 default 128
239 help
240 The sandbox driver can support any number of GPIOs. Generally these
241 are specified using the device tree. But you can also have a number
242 of 'anonymous' GPIOs that do not belong to any device or bank.
243 Select a suitable value depending on your needs.
Bhuvanchandra DVd348a942015-06-01 18:37:16 +0530244
Andre Przywara10cfbaa2019-06-23 15:09:46 +0100245config SUNXI_GPIO
246 bool "Allwinner GPIO driver"
247 depends on ARCH_SUNXI
248 help
249 Support the GPIO device in Allwinner SoCs.
250
Vipul Kumar71d5a142018-02-28 11:32:22 +0530251config XILINX_GPIO
252 bool "Xilinx GPIO driver"
Michal Simek4a693662018-07-13 08:26:28 +0200253 depends on DM_GPIO
Vipul Kumar71d5a142018-02-28 11:32:22 +0530254 help
255 This config enable the Xilinx GPIO driver for Microblaze.
256
Simon Glass90d99e52017-08-04 16:34:54 -0600257config CMD_TCA642X
258 bool "tca642x - Command to access tca642x state"
259 help
260 DEPRECATED - This needs conversion to driver model
261
262 This provides a way to looking at the pin state of this device.
263 This mirrors the 'gpio' command and that should be used in preference
264 to custom code.
265
Stephen Warren601800b2016-05-12 12:07:41 -0600266config TEGRA_GPIO
267 bool "Tegra20..210 GPIO driver"
268 depends on DM_GPIO
269 help
270 Support for the GPIO controller contained in NVIDIA Tegra20 through
271 Tegra210.
272
Stephen Warren074a1fd2016-05-25 14:38:51 -0600273config TEGRA186_GPIO
274 bool "Tegra186 GPIO driver"
275 depends on DM_GPIO
276 help
277 Support for the GPIO controller contained in NVIDIA Tegra186. This
278 covers both the "main" and "AON" controller instances, even though
279 they have slightly different register layout.
280
Masahiro Yamadab9a66b62016-02-16 17:03:48 +0900281config GPIO_UNIPHIER
282 bool "UniPhier GPIO"
283 depends on ARCH_UNIPHIER
284 help
285 Say yes here to support UniPhier GPIOs.
286
Bhuvanchandra DVd348a942015-06-01 18:37:16 +0530287config VYBRID_GPIO
288 bool "Vybrid GPIO driver"
289 depends on DM
290 default n
291 help
292 Say yes here to support Vybrid vf610 GPIOs.
Masahiro Yamada0b11dbf2015-07-26 02:46:26 +0900293
Purna Chandra Mandal386d9342016-01-28 15:30:13 +0530294config PIC32_GPIO
295 bool "Microchip PIC32 GPIO driver"
296 depends on DM_GPIO && MACH_PIC32
297 default y
298 help
299 Say yes here to support Microchip PIC32 GPIOs.
300
Patrice Chotard95fbdd12019-06-21 15:39:22 +0200301config STM32_GPIO
Vikas Manocha77417102017-04-10 15:02:57 -0700302 bool "ST STM32 GPIO driver"
Patrick Delaunay2514c2d2018-03-12 10:46:10 +0100303 depends on DM_GPIO && (STM32 || ARCH_STM32MP)
Vikas Manocha77417102017-04-10 15:02:57 -0700304 default y
305 help
306 Device model driver support for STM32 GPIO controller. It should be
Patrice Chotard95fbdd12019-06-21 15:39:22 +0200307 usable on many stm32 families like stm32f4/f7/h7 and stm32mp1.
Vikas Manocha77417102017-04-10 15:02:57 -0700308 Tested on STM32F7.
309
Sagar Shrikant Kadamd26b4042019-10-01 10:00:46 -0700310config SIFIVE_GPIO
311 bool "SiFive GPIO driver"
312 depends on DM_GPIO
313 help
314 Device model driver for GPIO controller present in SiFive FU540 SoC. This
315 driver enables GPIO interface on HiFive Unleashed A00 board.
316
Stefan Roese704d9a62016-02-12 13:46:50 +0100317config MVEBU_GPIO
318 bool "Marvell MVEBU GPIO driver"
319 depends on DM_GPIO && ARCH_MVEBU
320 default y
321 help
322 Say yes here to support Marvell MVEBU (Armada XP/38x) GPIOs.
323
Siva Durga Prasad Paladugu2978ae22016-03-10 16:27:39 +0530324config ZYNQ_GPIO
325 bool "Zynq GPIO driver"
Ashok Reddy Soma98248522019-09-16 03:35:16 -0600326 depends on DM_GPIO && (ARCH_ZYNQ || ARCH_ZYNQMP || ARCH_VERSAL)
Siva Durga Prasad Paladugu2978ae22016-03-10 16:27:39 +0530327 default y
328 help
329 Supports GPIO access on Zynq SoC.
330
Peng Fan9300f712016-05-03 10:02:23 +0800331config DM_74X164
332 bool "74x164 serial-in/parallel-out 8-bits shift register"
333 depends on DM_GPIO
334 help
335 Driver for 74x164 compatible serial-in/parallel-out 8-outputs
336 shift registers, such as 74lv165, 74hc595.
337 This driver can be used to provide access to more gpio outputs.
338
Peng Fan03773432016-04-14 21:45:06 +0800339config DM_PCA953X
340 bool "PCA95[357]x, PCA9698, TCA64xx, and MAX7310 I/O ports"
341 depends on DM_GPIO
342 help
343 Say yes here to provide access to several register-oriented
344 SMBus I/O expanders, made mostly by NXP or TI. Compatible
345 models include:
346
347 4 bits: pca9536, pca9537
348
349 8 bits: max7310, max7315, pca6107, pca9534, pca9538, pca9554,
350 pca9556, pca9557, pca9574, tca6408, xra1202
351
352 16 bits: max7312, max7313, pca9535, pca9539, pca9555, pca9575,
353 tca6416
354
355 24 bits: tca6424
356
357 40 bits: pca9505, pca9698
358
359 Now, max 24 bits chips and PCA953X compatible chips are
360 supported
mario.six@gdsys.cc07d31f82016-05-25 15:15:20 +0200361
Peng Fan16103682018-12-21 06:21:21 +0000362config SPL_DM_PCA953X
363 bool "PCA95[357]x, PCA9698, TCA64xx, and MAX7310 I/O ports in SPL"
364 depends on DM_GPIO
365 help
366 Say yes here to provide access to several register-oriented
367 SMBus I/O expanders, made mostly by NXP or TI. Compatible
368 models include:
369
370 4 bits: pca9536, pca9537
371
372 8 bits: max7310, max7315, pca6107, pca9534, pca9538, pca9554,
373 pca9556, pca9557, pca9574, tca6408, xra1202
374
375 16 bits: max7312, max7313, pca9535, pca9539, pca9555, pca9575,
376 tca6416
377
378 24 bits: tca6424
379
380 40 bits: pca9505, pca9698
381
382 Now, max 24 bits chips and PCA953X compatible chips are
383 supported
384
Mario Six3c216832018-01-15 11:07:48 +0100385config MPC8XXX_GPIO
386 bool "Freescale MPC8XXX GPIO driver"
mario.six@gdsys.cc07d31f82016-05-25 15:15:20 +0200387 depends on DM_GPIO
388 help
Mario Six3c216832018-01-15 11:07:48 +0100389 This driver supports the built-in GPIO controller of MPC8XXX CPUs.
mario.six@gdsys.cc07d31f82016-05-25 15:15:20 +0200390 Each GPIO bank is identified by its own entry in the device tree,
391 i.e.
392
393 gpio-controller@fc00 {
394 #gpio-cells = <2>;
395 compatible = "fsl,pq3-gpio";
396 reg = <0xfc00 0x100>
397 }
398
399 By default, each bank is assumed to have 32 GPIOs, but the ngpios
400 setting is honored, so the number of GPIOs for each bank is
401 configurable to match the actual GPIO count of the SoC (e.g. the
402 32/32/23 banks of the P1022 SoC).
403
mario.six@gdsys.cc51781782016-05-25 15:15:22 +0200404 Aside from the standard functions of input/output mode, and output
405 value setting, the open-drain feature, which can configure individual
406 GPIOs to work as open-drain outputs, is supported.
Stefan Roese4751e552018-10-08 12:38:01 +0200407
408config MT7621_GPIO
409 bool "MediaTek MT7621 GPIO driver"
Weijie Gao16b94902019-04-30 11:13:58 +0800410 depends on DM_GPIO && SOC_MT7628
Stefan Roese4751e552018-10-08 12:38:01 +0200411 default y
412 help
413 Say yes here to support MediaTek MT7621 compatible GPIOs.
414
Masahiro Yamada0b11dbf2015-07-26 02:46:26 +0900415endmenu