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