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