pico-imx7d: Increase the CONFIG_ENV_OFFSET size
[pandora-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 ALTERA_PIO
18         bool "Altera PIO driver"
19         depends on DM_GPIO
20         help
21           Select this to enable PIO for Altera devices. Please find
22           details on the "Embedded Peripherals IP User Guide" of Altera.
23
24 config BCM6345_GPIO
25         bool "BCM6345 GPIO driver"
26         depends on DM_GPIO && ARCH_BMIPS
27         help
28           This driver supports the GPIO banks on BCM6345 SoCs.
29
30 config DWAPB_GPIO
31         bool "DWAPB GPIO driver"
32         depends on DM && DM_GPIO
33         default n
34         help
35           Support for the Designware APB GPIO driver.
36
37 config AT91_GPIO
38         bool "AT91 PIO GPIO driver"
39         depends on DM_GPIO
40         default n
41         help
42           Say yes here to select AT91 PIO GPIO driver. AT91 PIO
43           controller manages up to 32 fully programmable input/output
44           lines. Each I/O line may be dedicated as a general-purpose
45           I/O or be assigned to a function of an embedded peripheral.
46           The assignment to a function of an embedded peripheral is
47           the responsibility of AT91 Pinctrl driver. This driver is
48           responsible for the general-purpose I/O.
49
50 config ATMEL_PIO4
51         bool "ATMEL PIO4 driver"
52         depends on DM_GPIO
53         default n
54         help
55           Say yes here to support the Atmel PIO4 driver.
56           The PIO4 is new version of Atmel PIO controller, which manages
57           up to 128 fully programmable input/output lines. Each I/O line
58           may be dedicated as a general purpose I/O or be assigned to
59           a function of an embedded peripheral.
60
61 config DA8XX_GPIO
62         bool "DA8xx GPIO Driver"
63         help
64           This driver supports the DA8xx GPIO controller
65
66 config INTEL_BROADWELL_GPIO
67         bool "Intel Broadwell GPIO driver"
68         depends on DM
69         help
70           This driver supports Broadwell U devices which have an expanded
71           GPIO feature set. The difference is large enough to merit a separate
72           driver from the common Intel ICH6 driver. It supports a total of
73           95 GPIOs which can be configured from the device tree.
74
75 config INTEL_ICH6_GPIO
76         bool "Intel ICH6 compatible legacy GPIO driver"
77         depends on DM_GPIO
78         help
79           Say yes here to select Intel ICH6 compatible legacy GPIO driver.
80
81 config IMX_RGPIO2P
82         bool "i.MX7ULP RGPIO2P driver"
83         depends on DM
84         default n
85         help
86           This driver supports i.MX7ULP Rapid GPIO2P controller.
87
88 config HSDK_CREG_GPIO
89         bool "HSDK CREG GPIO griver"
90         depends on DM_GPIO
91         default n
92         help
93           This driver supports CREG GPIOs on Synopsys HSDK SOC.
94
95 config LPC32XX_GPIO
96         bool "LPC32XX GPIO driver"
97         depends on DM
98         default n
99         help
100           Support for the LPC32XX GPIO driver.
101
102 config MSM_GPIO
103         bool "Qualcomm GPIO driver"
104         depends on DM_GPIO
105         default n
106         help
107           Support GPIO controllers on Qualcomm Snapdragon family of SoCs.
108           This controller have single bank (default name "soc"), every
109           gpio has it's own set of registers.
110           Only simple GPIO operations are supported (get/set, change of
111           direction and checking pin function).
112           Supported devices:
113           - APQ8016
114           - MSM8916
115
116 config MXC_GPIO
117         bool "Freescale/NXP MXC GPIO driver"
118         help
119           Support GPIO controllers on various i.MX platforms
120
121 config OMAP_GPIO
122         bool "TI OMAP GPIO driver"
123         depends on ARCH_OMAP2PLUS
124         default y
125         help
126           Support GPIO controllers on the TI OMAP3/4/5 and related (such as
127           AM335x/AM43xx/AM57xx/DRA7xx/etc) families of SoCs.
128
129 config CMD_PCA953X
130         bool "Enable the pca953x command"
131         help
132           Deprecated: This should be converted to driver model.
133
134           This command provides access to a pca953x GPIO device using the
135           legacy GPIO interface. Several subcommands are provided which mirror
136           the standard 'gpio' command. It should use that instead.
137
138 config PM8916_GPIO
139         bool "Qualcomm PM8916 PMIC GPIO/keypad driver"
140         depends on DM_GPIO && PMIC_PM8916
141         help
142           Support for GPIO pins and power/reset buttons found on
143           Qualcomm PM8916 PMIC.
144           Default name for GPIO bank is "pm8916".
145           Power and reset buttons are placed in "pm8916_key" bank and
146           have gpio numbers 0 and 1 respectively.
147
148 config PCF8575_GPIO
149         bool "PCF8575 I2C GPIO Expander driver"
150         depends on DM_GPIO && DM_I2C
151         help
152          Support for PCF8575 I2C 16-bit GPIO expander. Most of these
153          chips are from NXP and TI.
154
155 config RCAR_GPIO
156         bool "Renesas RCar GPIO driver"
157         depends on DM_GPIO && ARCH_RMOBILE
158         help
159           This driver supports the GPIO banks on Renesas RCar SoCs.
160
161 config ROCKCHIP_GPIO
162         bool "Rockchip GPIO driver"
163         depends on DM_GPIO
164         help
165           Support GPIO access on Rockchip SoCs. The GPIOs are arranged into
166           a number of banks (different for each SoC type) each with 32 GPIOs.
167           The GPIOs for a device are defined in the device tree with one node
168           for each bank.
169
170 config SANDBOX_GPIO
171         bool "Enable sandbox GPIO driver"
172         depends on SANDBOX && DM && DM_GPIO
173         help
174           This driver supports some simulated GPIOs which can be adjusted
175           using 'back door' functions like sandbox_gpio_set_value(). Then the
176           GPIOs can be inspected through the normal get_get_value()
177           interface. The purpose of this is to allow GPIOs to be used as
178           normal in sandbox, perhaps with test code actually driving the
179           behaviour of those GPIOs.
180
181 config SANDBOX_GPIO_COUNT
182         int "Number of sandbox GPIOs"
183         depends on SANDBOX_GPIO
184         default 128
185         help
186           The sandbox driver can support any number of GPIOs. Generally these
187           are specified using the device tree. But you can also have a number
188           of 'anonymous' GPIOs that do not belong to any device or bank.
189           Select a suitable value depending on your needs.
190
191 config XILINX_GPIO
192         bool "Xilinx GPIO driver"
193         depends on DM_GPIO
194         help
195           This config enable the Xilinx GPIO driver for Microblaze.
196
197 config CMD_TCA642X
198         bool "tca642x - Command to access tca642x state"
199         help
200           DEPRECATED - This needs conversion to driver model
201
202           This provides a way to looking at the pin state of this device.
203           This mirrors the 'gpio' command and that should be used in preference
204           to custom code.
205
206 config TEGRA_GPIO
207         bool "Tegra20..210 GPIO driver"
208         depends on DM_GPIO
209         help
210           Support for the GPIO controller contained in NVIDIA Tegra20 through
211           Tegra210.
212
213 config TEGRA186_GPIO
214         bool "Tegra186 GPIO driver"
215         depends on DM_GPIO
216         help
217           Support for the GPIO controller contained in NVIDIA Tegra186. This
218           covers both the "main" and "AON" controller instances, even though
219           they have slightly different register layout.
220
221 config GPIO_UNIPHIER
222         bool "UniPhier GPIO"
223         depends on ARCH_UNIPHIER
224         help
225           Say yes here to support UniPhier GPIOs.
226
227 config VYBRID_GPIO
228         bool "Vybrid GPIO driver"
229         depends on DM
230         default n
231         help
232           Say yes here to support Vybrid vf610 GPIOs.
233
234 config PIC32_GPIO
235         bool "Microchip PIC32 GPIO driver"
236         depends on DM_GPIO && MACH_PIC32
237         default y
238         help
239           Say yes here to support Microchip PIC32 GPIOs.
240
241 config STM32F7_GPIO
242         bool "ST STM32 GPIO driver"
243         depends on DM_GPIO && (STM32 || ARCH_STM32MP)
244         default y
245         help
246           Device model driver support for STM32 GPIO controller. It should be
247           usable on many stm32 families like stm32f4 & stm32H7.
248           Tested on STM32F7.
249
250 config MVEBU_GPIO
251         bool "Marvell MVEBU GPIO driver"
252         depends on DM_GPIO && ARCH_MVEBU
253         default y
254         help
255           Say yes here to support Marvell MVEBU (Armada XP/38x) GPIOs.
256
257 config ZYNQ_GPIO
258         bool "Zynq GPIO driver"
259         depends on DM_GPIO && (ARCH_ZYNQ || ARCH_ZYNQMP)
260         default y
261         help
262           Supports GPIO access on Zynq SoC.
263
264 config DM_74X164
265         bool "74x164 serial-in/parallel-out 8-bits shift register"
266         depends on DM_GPIO
267         help
268           Driver for 74x164 compatible serial-in/parallel-out 8-outputs
269           shift registers, such as 74lv165, 74hc595.
270           This driver can be used to provide access to more gpio outputs.
271
272 config DM_PCA953X
273         bool "PCA95[357]x, PCA9698, TCA64xx, and MAX7310 I/O ports"
274         depends on DM_GPIO
275         help
276           Say yes here to provide access to several register-oriented
277           SMBus I/O expanders, made mostly by NXP or TI.  Compatible
278           models include:
279
280           4 bits:       pca9536, pca9537
281
282           8 bits:       max7310, max7315, pca6107, pca9534, pca9538, pca9554,
283                         pca9556, pca9557, pca9574, tca6408, xra1202
284
285           16 bits:      max7312, max7313, pca9535, pca9539, pca9555, pca9575,
286                         tca6416
287
288           24 bits:      tca6424
289
290           40 bits:      pca9505, pca9698
291
292           Now, max 24 bits chips and PCA953X compatible chips are
293           supported
294
295 config MPC8XXX_GPIO
296         bool "Freescale MPC8XXX GPIO driver"
297         depends on DM_GPIO
298         help
299           This driver supports the built-in GPIO controller of MPC8XXX CPUs.
300           Each GPIO bank is identified by its own entry in the device tree,
301           i.e.
302
303           gpio-controller@fc00 {
304                 #gpio-cells = <2>;
305                 compatible = "fsl,pq3-gpio";
306                 reg = <0xfc00 0x100>
307           }
308
309           By default, each bank is assumed to have 32 GPIOs, but the ngpios
310           setting is honored, so the number of GPIOs for each bank is
311           configurable to match the actual GPIO count of the SoC (e.g. the
312           32/32/23 banks of the P1022 SoC).
313
314           Aside from the standard functions of input/output mode, and output
315           value setting, the open-drain feature, which can configure individual
316           GPIOs to work as open-drain outputs, is supported.
317
318 config MT7621_GPIO
319         bool "MediaTek MT7621 GPIO driver"
320         depends on DM_GPIO && ARCH_MT7620
321         default y
322         help
323           Say yes here to support MediaTek MT7621 compatible GPIOs.
324
325 endmenu