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