Merge tag 'u-boot-imx-20190101' of git://www.denx.de/git/u-boot-imx
[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 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 MSCC_BITBANG_SPI_GPIO
103         bool "Microsemi bitbang spi GPIO driver"
104         depends on DM_GPIO && SOC_VCOREIII
105         help
106           Support controlling the GPIO used for SPI bitbang by software. Can
107           be used by the VCoreIII SoCs, but it was mainly useful for Luton.
108
109 config MSM_GPIO
110         bool "Qualcomm GPIO driver"
111         depends on DM_GPIO
112         default n
113         help
114           Support GPIO controllers on Qualcomm Snapdragon family of SoCs.
115           This controller have single bank (default name "soc"), every
116           gpio has it's own set of registers.
117           Only simple GPIO operations are supported (get/set, change of
118           direction and checking pin function).
119           Supported devices:
120           - APQ8016
121           - MSM8916
122
123 config MXC_GPIO
124         bool "Freescale/NXP MXC GPIO driver"
125         help
126           Support GPIO controllers on various i.MX platforms
127
128 config OMAP_GPIO
129         bool "TI OMAP GPIO driver"
130         depends on ARCH_OMAP2PLUS
131         default y
132         help
133           Support GPIO controllers on the TI OMAP3/4/5 and related (such as
134           AM335x/AM43xx/AM57xx/DRA7xx/etc) families of SoCs.
135
136 config CMD_PCA953X
137         bool "Enable the pca953x command"
138         help
139           Deprecated: This should be converted to driver model.
140
141           This command provides access to a pca953x GPIO device using the
142           legacy GPIO interface. Several subcommands are provided which mirror
143           the standard 'gpio' command. It should use that instead.
144
145 config PM8916_GPIO
146         bool "Qualcomm PM8916 PMIC GPIO/keypad driver"
147         depends on DM_GPIO && PMIC_PM8916
148         help
149           Support for GPIO pins and power/reset buttons found on
150           Qualcomm PM8916 PMIC.
151           Default name for GPIO bank is "pm8916".
152           Power and reset buttons are placed in "pm8916_key" bank and
153           have gpio numbers 0 and 1 respectively.
154
155 config PCF8575_GPIO
156         bool "PCF8575 I2C GPIO Expander driver"
157         depends on DM_GPIO && DM_I2C
158         help
159          Support for PCF8575 I2C 16-bit GPIO expander. Most of these
160          chips are from NXP and TI.
161
162 config RCAR_GPIO
163         bool "Renesas RCar GPIO driver"
164         depends on DM_GPIO && ARCH_RMOBILE
165         help
166           This driver supports the GPIO banks on Renesas RCar SoCs.
167
168 config ROCKCHIP_GPIO
169         bool "Rockchip GPIO driver"
170         depends on DM_GPIO
171         help
172           Support GPIO access on Rockchip SoCs. The GPIOs are arranged into
173           a number of banks (different for each SoC type) each with 32 GPIOs.
174           The GPIOs for a device are defined in the device tree with one node
175           for each bank.
176
177 config SANDBOX_GPIO
178         bool "Enable sandbox GPIO driver"
179         depends on SANDBOX && DM && DM_GPIO
180         help
181           This driver supports some simulated GPIOs which can be adjusted
182           using 'back door' functions like sandbox_gpio_set_value(). Then the
183           GPIOs can be inspected through the normal get_get_value()
184           interface. The purpose of this is to allow GPIOs to be used as
185           normal in sandbox, perhaps with test code actually driving the
186           behaviour of those GPIOs.
187
188 config SANDBOX_GPIO_COUNT
189         int "Number of sandbox GPIOs"
190         depends on SANDBOX_GPIO
191         default 128
192         help
193           The sandbox driver can support any number of GPIOs. Generally these
194           are specified using the device tree. But you can also have a number
195           of 'anonymous' GPIOs that do not belong to any device or bank.
196           Select a suitable value depending on your needs.
197
198 config XILINX_GPIO
199         bool "Xilinx GPIO driver"
200         depends on DM_GPIO
201         help
202           This config enable the Xilinx GPIO driver for Microblaze.
203
204 config CMD_TCA642X
205         bool "tca642x - Command to access tca642x state"
206         help
207           DEPRECATED - This needs conversion to driver model
208
209           This provides a way to looking at the pin state of this device.
210           This mirrors the 'gpio' command and that should be used in preference
211           to custom code.
212
213 config TEGRA_GPIO
214         bool "Tegra20..210 GPIO driver"
215         depends on DM_GPIO
216         help
217           Support for the GPIO controller contained in NVIDIA Tegra20 through
218           Tegra210.
219
220 config TEGRA186_GPIO
221         bool "Tegra186 GPIO driver"
222         depends on DM_GPIO
223         help
224           Support for the GPIO controller contained in NVIDIA Tegra186. This
225           covers both the "main" and "AON" controller instances, even though
226           they have slightly different register layout.
227
228 config GPIO_UNIPHIER
229         bool "UniPhier GPIO"
230         depends on ARCH_UNIPHIER
231         help
232           Say yes here to support UniPhier GPIOs.
233
234 config VYBRID_GPIO
235         bool "Vybrid GPIO driver"
236         depends on DM
237         default n
238         help
239           Say yes here to support Vybrid vf610 GPIOs.
240
241 config PIC32_GPIO
242         bool "Microchip PIC32 GPIO driver"
243         depends on DM_GPIO && MACH_PIC32
244         default y
245         help
246           Say yes here to support Microchip PIC32 GPIOs.
247
248 config STM32F7_GPIO
249         bool "ST STM32 GPIO driver"
250         depends on DM_GPIO && (STM32 || ARCH_STM32MP)
251         default y
252         help
253           Device model driver support for STM32 GPIO controller. It should be
254           usable on many stm32 families like stm32f4 & stm32H7.
255           Tested on STM32F7.
256
257 config MVEBU_GPIO
258         bool "Marvell MVEBU GPIO driver"
259         depends on DM_GPIO && ARCH_MVEBU
260         default y
261         help
262           Say yes here to support Marvell MVEBU (Armada XP/38x) GPIOs.
263
264 config ZYNQ_GPIO
265         bool "Zynq GPIO driver"
266         depends on DM_GPIO && (ARCH_ZYNQ || ARCH_ZYNQMP)
267         default y
268         help
269           Supports GPIO access on Zynq SoC.
270
271 config DM_74X164
272         bool "74x164 serial-in/parallel-out 8-bits shift register"
273         depends on DM_GPIO
274         help
275           Driver for 74x164 compatible serial-in/parallel-out 8-outputs
276           shift registers, such as 74lv165, 74hc595.
277           This driver can be used to provide access to more gpio outputs.
278
279 config DM_PCA953X
280         bool "PCA95[357]x, PCA9698, TCA64xx, and MAX7310 I/O ports"
281         depends on DM_GPIO
282         help
283           Say yes here to provide access to several register-oriented
284           SMBus I/O expanders, made mostly by NXP or TI.  Compatible
285           models include:
286
287           4 bits:       pca9536, pca9537
288
289           8 bits:       max7310, max7315, pca6107, pca9534, pca9538, pca9554,
290                         pca9556, pca9557, pca9574, tca6408, xra1202
291
292           16 bits:      max7312, max7313, pca9535, pca9539, pca9555, pca9575,
293                         tca6416
294
295           24 bits:      tca6424
296
297           40 bits:      pca9505, pca9698
298
299           Now, max 24 bits chips and PCA953X compatible chips are
300           supported
301
302 config MPC8XXX_GPIO
303         bool "Freescale MPC8XXX GPIO driver"
304         depends on DM_GPIO
305         help
306           This driver supports the built-in GPIO controller of MPC8XXX CPUs.
307           Each GPIO bank is identified by its own entry in the device tree,
308           i.e.
309
310           gpio-controller@fc00 {
311                 #gpio-cells = <2>;
312                 compatible = "fsl,pq3-gpio";
313                 reg = <0xfc00 0x100>
314           }
315
316           By default, each bank is assumed to have 32 GPIOs, but the ngpios
317           setting is honored, so the number of GPIOs for each bank is
318           configurable to match the actual GPIO count of the SoC (e.g. the
319           32/32/23 banks of the P1022 SoC).
320
321           Aside from the standard functions of input/output mode, and output
322           value setting, the open-drain feature, which can configure individual
323           GPIOs to work as open-drain outputs, is supported.
324
325 config MT7621_GPIO
326         bool "MediaTek MT7621 GPIO driver"
327         depends on DM_GPIO && ARCH_MT7620
328         default y
329         help
330           Say yes here to support MediaTek MT7621 compatible GPIOs.
331
332 endmenu