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