1#
2# GPIO infrastructure and drivers
3#
4
5menuconfig GPIO
6	bool "GPIO support"
7	default y
8	help
9	  Enable support for GPIOs (General-purpose Input/Output) in U-Boot.
10	  GPIOs allow U-Boot to read the state of an input line (high or
11	  low) and set the state of an output line. This can be used to
12	  drive LEDs, control power to various system parts and read user
13	  input. GPIOs can be useful to enable a 'sign-of-life' LED,
14	  for example. Enable this option to build the drivers in
15	  drivers/gpio as part of an U-Boot build.
16
17if GPIO
18
19config DM_GPIO
20	bool "Enable Driver Model for GPIO drivers"
21	depends on DM
22	help
23	  Enable driver model for GPIO access. The standard GPIO
24	  interface (gpio_get_value(), etc.) is then implemented by
25	  the GPIO uclass. Drivers provide methods to query the
26	  particular GPIOs that they provide. The uclass interface
27	  is defined in include/asm-generic/gpio.h.
28
29config SPL_DM_GPIO
30	bool "Enable Driver Model for GPIO drivers in SPL"
31	depends on DM_GPIO && SPL_DM && SPL_GPIO
32	default y
33	help
34	  Enable driver model for GPIO access in SPL. The standard GPIO
35	  interface (gpio_get_value(), etc.) is then implemented by
36	  the GPIO uclass. Drivers provide methods to query the
37	  particular GPIOs that they provide. The uclass interface
38	  is defined in include/asm-generic/gpio.h.
39
40config TPL_DM_GPIO
41	bool "Enable Driver Model for GPIO drivers in TPL"
42	depends on DM_GPIO && TPL_DM && TPL_GPIO
43	default y
44	help
45	  Enable driver model for GPIO access in TPL. The standard GPIO
46	  interface (gpio_get_value(), etc.) is then implemented by
47	  the GPIO uclass. Drivers provide methods to query the
48	  particular GPIOs that they provide. The uclass interface
49	  is defined in include/asm-generic/gpio.h.
50
51config VPL_DM_GPIO
52	bool "Enable Driver Model for GPIO drivers in VPL"
53	depends on DM_GPIO && VPL_DM && VPL_GPIO
54	default y
55	help
56	  Enable driver model for GPIO access in VPL. The standard GPIO
57	  interface (gpio_get_value(), etc.) is then implemented by
58	  the GPIO uclass. Drivers provide methods to query the
59	  particular GPIOs that they provide. The uclass interface
60	  is defined in include/asm-generic/gpio.h.
61
62config GPIO_HOG
63	bool "Enable GPIO hog support"
64	depends on DM_GPIO
65	help
66	  Enable gpio hog support
67	  The GPIO chip may contain GPIO hog definitions. GPIO hogging
68	  is a mechanism providing automatic GPIO request and config-
69	  uration as part of the gpio-controller's driver probe function.
70
71config SPL_GPIO_HOG
72	bool "Enable GPIO hog support in SPL"
73	depends on SPL_GPIO
74	help
75	  Enable gpio hog support in SPL
76	  The GPIO chip may contain GPIO hog definitions. GPIO hogging
77	  is a mechanism providing automatic GPIO request and config-
78	  uration as part of the gpio-controller's driver probe function.
79
80config DM_GPIO_LOOKUP_LABEL
81	bool "Enable searching for gpio labelnames"
82	depends on DM_GPIO
83	help
84	  This option enables searching for gpio names in
85	  the defined gpio labels, if the search for the
86	  gpio bank name failed. This makes sense if you use
87	  different gpios on different hardware versions
88	  for the same functionality in board code.
89
90config SPL_DM_GPIO_LOOKUP_LABEL
91	bool "Enable searching for gpio labelnames in SPL"
92	depends on SPL_DM_GPIO
93	help
94	  This option enables searching for gpio names in
95	  the defined gpio labels, if the search for the
96	  gpio bank name failed. This makes sense if you use
97	  different gpios on different hardware versions
98	  for the same functionality in board code.
99
100config ADI_GPIO
101	bool "ADI GPIO driver"
102	depends on DM_GPIO && ARCH_SC5XX
103	help
104	  This driver supports GPIO banks on SC5xx processors. It
105	  supports inputs and outputs but does not support pin
106	  interrupt functionality (PINT) or other features in the
107	  Linux version of the driver.
108
109config ALTERA_PIO
110	bool "Altera PIO driver"
111	depends on DM_GPIO
112	help
113	  Select this to enable PIO for Altera devices. Please find
114	  details on the "Embedded Peripherals IP User Guide" of Altera.
115
116config BCM2835_GPIO
117	bool "BCM2835 GPIO driver"
118	depends on DM_GPIO && ARCH_BCM283X
119
120config BCM6345_GPIO
121	bool "BCM6345 GPIO driver"
122	depends on DM_GPIO && (ARCH_BMIPS || BCM6856 || \
123			       BCM6858 || BCM63158 || BCM6855)
124	help
125	  This driver supports the GPIO banks on BCM6345 SoCs.
126
127config CORTINA_GPIO
128	bool "Cortina-Access GPIO driver"
129	depends on DM_GPIO && CORTINA_PLATFORM
130	help
131	  Enable support for the GPIO controller in Cortina CAxxxx SoCs.
132	  This driver supports all CPU ISA variants supported by Cortina
133	  Access CAxxxx SoCs.
134
135config DWAPB_GPIO
136	bool "DWAPB GPIO driver"
137	depends on DM && DM_GPIO
138	help
139	  Support for the Designware APB GPIO driver.
140
141config AT91_GPIO
142	bool "AT91 PIO GPIO driver"
143	depends on ARCH_AT91
144	help
145	  Say yes here to select AT91 PIO GPIO driver. AT91 PIO
146	  controller manages up to 32 fully programmable input/output
147	  lines. Each I/O line may be dedicated as a general-purpose
148	  I/O or be assigned to a function of an embedded peripheral.
149	  The assignment to a function of an embedded peripheral is
150	  the responsibility of AT91 Pinctrl driver. This driver is
151	  responsible for the general-purpose I/O.
152
153config ATMEL_PIO4
154	bool "ATMEL PIO4 driver"
155	depends on DM_GPIO && ARCH_AT91
156	help
157	  Say yes here to support the Atmel PIO4 driver.
158	  The PIO4 is new version of Atmel PIO controller, which manages
159	  up to 128 fully programmable input/output lines. Each I/O line
160	  may be dedicated as a general purpose I/O or be assigned to
161	  a function of an embedded peripheral.
162
163config ASPEED_GPIO
164	bool "Aspeed GPIO Driver"
165	help
166	  Say yes here to support the Aspeed GPIO driver. The controller
167	  is found in the AST2400, AST2500 and AST2600 BMC SoCs and
168	  provides access to over 200 GPIOs on each chip.
169
170config ASPEED_SGPIO
171	bool "Aspeed SGPIO Driver"
172	help
173	  Say yes here to support the Aspeed serial GPIO driver. The controller
174	  is found in the AST2400, AST2500 and AST2600 BMC SoCs and
175	  provides access to generate serial GPIO signal.
176
177config ASPEED_G7_GPIO
178	bool "Aspeed G7 GPIO Driver"
179	help
180	  Say yes here to support the Aspeed G7 GPIO driver. The controller
181	  is found in the AST2700 BMC SoCs and provides access to over 200
182	  GPIOs on each chip.
183
184config DA8XX_GPIO
185	bool "DA8xx GPIO Driver"
186	help
187	  This driver supports the DA8xx GPIO controller
188
189config FXL6408_GPIO
190	bool "FXL6408 I2C GPIO expander driver"
191	depends on DM_GPIO && DM_I2C
192	help
193	  This driver supports the Fairchild FXL6408 device. FXL6408 is a
194	  fully configurable 8-bit I2C-controlled GPIO expander.
195
196config HIKEY_GPIO
197	bool "HI6220 GPIO driver"
198	depends on DM_GPIO && TARGET_HIKEY
199
200config INTEL_BROADWELL_GPIO
201	bool "Intel Broadwell GPIO driver"
202	depends on DM_GPIO && X86
203	help
204	  This driver supports Broadwell U devices which have an expanded
205	  GPIO feature set. The difference is large enough to merit a separate
206	  driver from the common Intel ICH6 driver. It supports a total of
207	  95 GPIOs which can be configured from the device tree.
208
209config INTEL_GPIO
210	bool "Intel generic GPIO driver"
211	depends on DM_GPIO && X86
212	help
213	  Say yes here to select Intel generic GPIO driver. This controller
214	  supports recent chips (e.g. Apollo Lake). It permits basic GPIO
215	  control including setting pins to input/output. It makes use of its
216	  parent pinctrl driver to actually effect changes.
217
218config INTEL_ICH6_GPIO
219	bool "Intel ICH6 compatible legacy GPIO driver"
220	depends on DM_GPIO && X86
221	help
222	  Say yes here to select Intel ICH6 compatible legacy GPIO driver.
223
224config IMX_RGPIO2P
225	bool "i.MX7ULP RGPIO2P driver"
226	depends on DM && (ARCH_MX7ULP || ARCH_IMX8ULP || ARCH_IMX9)
227	help
228	  This driver supports i.MX7ULP Rapid GPIO2P controller.
229
230config IPROC_GPIO
231	bool "Broadcom iProc GPIO driver(without pinconf)"
232	help
233	  The Broadcom iProc based SoCs- Cygnus, NS2, NS3, NSP and Stingray,
234	  use the same GPIO Controller IP hence this driver could be used
235	  for all.
236
237	  The Broadcom iProc based SoCs have multiple GPIO controllers and only
238	  the always-ON GPIO controller (CRMU/AON) is supported by this driver.
239
240config HSDK_CREG_GPIO
241	bool "HSDK CREG GPIO griver"
242	depends on DM_GPIO
243	help
244	  This driver supports CREG GPIOs on Synopsys HSDK SOC.
245
246config KIRKWOOD_GPIO
247	bool "Kirkwood GPIO driver"
248	depends on ARCH_KIRKWOOD
249	help
250	  This drdiver supports GPIOs on Kirkwood platforms
251
252config LPC32XX_GPIO
253	bool "LPC32XX GPIO driver"
254	depends on DM && ARCH_LPC32XX
255	help
256	  Support for the LPC32XX GPIO driver.
257
258config MAX7320_GPIO
259	bool "MAX7320 I2C GPIO Expander driver"
260	depends on DM_GPIO && DM_I2C
261	help
262	 Support for MAX7320 I2C 8/16-bit GPIO expander.
263	 original maxim device has 8 push/pull outputs,
264	 some clones offers 16bit.
265
266config MAX77663_GPIO
267	bool "MAX77663 GPIO cell of PMIC driver"
268	depends on DM_GPIO && DM_PMIC_MAX77663
269	help
270	  GPIO driver for MAX77663 PMIC from Maxim Semiconductor.
271	  MAX77663 PMIC has 8 pins that can be configured as GPIOs
272	  and 3 GPIO-like pins dedicated for power/reset buttons
273	  and LID sensor.
274
275config MCP230XX_GPIO
276	bool "MCP230XX GPIO driver"
277	depends on DM
278	help
279	  Support for Microchip's MCP230XX I2C connected GPIO devices.
280	  The following chips are supported:
281	   - MCP23008
282	   - MCP23017
283	   - MCP23018
284	   - MCP23S08
285	   - MCP23S17
286	   - MCP23S18
287
288config MSCC_SGPIO
289	bool "Microsemi Serial GPIO driver"
290	depends on DM_GPIO && SOC_VCOREIII
291	help
292	  Support for the VCoreIII SoC serial GPIO device. By using a
293          serial interface, the SIO controller significantly extends
294          the number of available GPIOs with a minimum number of
295          additional pins on the device. The primary purpose of the
296          SIO controller is to connect control signals from SFP
297          modules and to act as an LED controller.
298
299config MSM_GPIO
300	bool "Qualcomm GPIO driver"
301	depends on DM_GPIO && ARCH_SNAPDRAGON
302	help
303	  Support GPIO controllers on Qualcomm Snapdragon family of SoCs.
304	  This controller have single bank (default name "soc"), every
305	  gpio has it's own set of registers.
306	  Only simple GPIO operations are supported (get/set, change of
307	  direction and checking pin function).
308	  Supported devices:
309	  - APQ8016
310	  - MSM8916
311
312config MXC_GPIO
313	bool "Freescale/NXP MXC GPIO driver"
314	depends on MACH_IMX
315	help
316	  Support GPIO controllers on various i.MX platforms
317
318config MXS_GPIO
319	bool "Freescale/NXP MXS GPIO driver"
320	depends on ARCH_MX23 || ARCH_MX28
321	help
322	  Support GPIO controllers on i.MX23 and i.MX28 platforms
323
324config NPCM_GPIO
325	bool "Nuvoton NPCM GPIO driver"
326	depends on DM_GPIO && ARCH_NPCM
327	help
328	  Support GPIO controllers on Nuvovon NPCM SoCs.
329	  NPCM7xx/NPCM8xx contain 8 GPIO banks, each bank contains 32 pins.
330
331config NPCM_SGPIO
332	bool "Nuvoton NPCM SGPIO driver"
333	depends on DM_GPIO && ARCH_NPCM
334	help
335	  Support Nuvoton BMC NPCM7xx/NPCM8xx sgpio driver support.
336	  Nuvoton NPCM SGPIO module is combine serial to parallel IC (HC595)
337	  and parallel to serial IC (HC165).
338	  BMC can use this driver to increase 64 GPI pins and 64 GPO pins to use.
339
340config OMAP_GPIO
341	bool "TI OMAP GPIO driver"
342	depends on ARCH_OMAP2PLUS
343	default y
344	help
345	  Support GPIO controllers on the TI OMAP3/4/5 and related (such as
346	  AM335x/AM43xx/AM57xx/DRA7xx/etc) families of SoCs.
347
348config CMD_PCA953X
349	bool "Enable the pca953x command"
350	help
351	  Deprecated: This should be converted to driver model.
352
353	  This command provides access to a pca953x GPIO device using the
354	  legacy GPIO interface. Several subcommands are provided which mirror
355	  the standard 'gpio' command. It should use that instead.
356
357config QCOM_PMIC_GPIO
358	bool "Qualcomm generic PMIC GPIO/keypad driver"
359	depends on DM_GPIO && PMIC_QCOM
360	select BUTTON
361	help
362	  Support for GPIO pins and power/reset buttons found on
363	  Qualcomm SoCs PMIC.
364	  The GPIO bank is called "pmic"
365
366config PCF8575_GPIO
367	bool "PCF8575 I2C GPIO Expander driver"
368	depends on DM_GPIO && DM_I2C
369	help
370	 Support for PCF8575 I2C 16-bit GPIO expander. Most of these
371	 chips are from NXP and TI.
372
373config RCAR_GPIO
374	bool "Renesas R-Car GPIO driver"
375	depends on DM_GPIO && ARCH_RENESAS
376	help
377	  This driver supports the GPIO banks on Renesas R-Car SoCs.
378
379config RZA1_GPIO
380	bool "Renesas RZ/A1 GPIO driver"
381	depends on DM_GPIO && RZA1
382	help
383	  This driver supports the GPIO banks on Renesas RZ/A1 R7S72100 SoCs.
384
385config ROCKCHIP_GPIO
386	bool "Rockchip GPIO driver"
387	depends on DM_GPIO && ARCH_ROCKCHIP
388	help
389	  Support GPIO access on Rockchip SoCs. The GPIOs are arranged into
390	  a number of banks (different for each SoC type) each with 32 GPIOs.
391	  The GPIOs for a device are defined in the device tree with one node
392	  for each bank.
393
394config SANDBOX_GPIO
395	bool "Enable sandbox GPIO driver"
396	depends on SANDBOX && DM && DM_GPIO
397	help
398	  This driver supports some simulated GPIOs which can be adjusted
399	  using 'back door' functions like sandbox_gpio_set_value(). Then the
400	  GPIOs can be inspected through the normal get_get_value()
401	  interface. The purpose of this is to allow GPIOs to be used as
402	  normal in sandbox, perhaps with test code actually driving the
403	  behaviour of those GPIOs.
404
405config SANDBOX_GPIO_COUNT
406	int "Number of sandbox GPIOs"
407	depends on SANDBOX_GPIO
408	default 128
409	help
410	  The sandbox driver can support any number of GPIOs. Generally these
411	  are specified using the device tree. But you can also have a number
412	  of 'anonymous' GPIOs that do not belong to any device or bank.
413	  Select a suitable value depending on your needs.
414
415config SUNXI_GPIO
416	bool "Allwinner GPIO driver"
417	depends on ARCH_SUNXI
418	select SPL_STRTO if SPL
419	help
420	  Support the GPIO device in Allwinner SoCs.
421
422config SUNXI_NEW_PINCTRL
423	bool
424	depends on SUNXI_GPIO
425	---help---
426	The Allwinner D1 and other new SoCs use a different register map
427	for the GPIO block, which we need to know about in the SPL.
428
429config XILINX_GPIO
430	bool "Xilinx GPIO driver"
431	depends on DM_GPIO
432	help
433	  This config enable the Xilinx GPIO driver for Microblaze.
434
435config TEGRA_GPIO
436	bool "Tegra20..210 GPIO driver"
437	depends on DM_GPIO && ARCH_TEGRA
438	help
439	  Support for the GPIO controller contained in NVIDIA Tegra20 through
440	  Tegra210.
441
442config TEGRA186_GPIO
443	bool "Tegra186 GPIO driver"
444	depends on DM_GPIO
445	help
446	  Support for the GPIO controller contained in NVIDIA Tegra186. This
447	  covers both the "main" and "AON" controller instances, even though
448	  they have slightly different register layout.
449
450config GPIO_UNIPHIER
451	bool "UniPhier GPIO"
452	depends on ARCH_UNIPHIER
453	help
454	  Say yes here to support UniPhier GPIOs.
455
456config VYBRID_GPIO
457	bool "Vybrid GPIO driver"
458	depends on DM && MACH_IMX
459	help
460	  Say yes here to support Vybrid vf610 GPIOs.
461
462config PALMAS_GPIO
463	bool "TI PALMAS series PMICs GPIO"
464	depends on DM_GPIO && PMIC_PALMAS
465	help
466	  Select this option to enable GPIO driver for the TI PALMAS
467	  series chip family.
468
469config PIC32_GPIO
470	bool "Microchip PIC32 GPIO driver"
471	depends on DM_GPIO && MACH_PIC32
472	default y
473	help
474	  Say yes here to support Microchip PIC32 GPIOs.
475
476config OCTEON_GPIO
477	bool "Octeon II/III/TX/TX2 GPIO driver"
478	depends on DM_GPIO && PCI && (ARCH_OCTEON || ARCH_OCTEONTX || ARCH_OCTEONTX2)
479	default y
480	help
481	  Add support for the Marvell Octeon GPIO driver. This is used with
482	  various Octeon parts such as Octeon II/III and OcteonTX/TX2.
483	  Octeon II/III has 32 GPIOs (count defined via DT) and OcteonTX/TX2
484	  has 64 GPIOs (count defined via internal register).
485
486config STM32_GPIO
487	bool "ST STM32 GPIO driver"
488	depends on DM_GPIO && (ARCH_STM32 || ARCH_STM32MP)
489	default y
490	help
491	  Device model driver support for STM32 GPIO controller. It should be
492	  usable on many stm32 families like stm32f4/f7/h7 and stm32mp1.
493	  Tested on STM32F7.
494
495config SIFIVE_GPIO
496	bool "SiFive GPIO driver"
497	depends on DM_GPIO && RISCV
498	help
499	  Device model driver for GPIO controller present in SiFive FU540 SoC. This
500	  driver enables GPIO interface on HiFive Unleashed A00 board.
501
502config MVEBU_GPIO
503	bool "Marvell MVEBU GPIO driver"
504	depends on DM_GPIO && (ARCH_MVEBU || ARCH_KIRKWOOD)
505	default y
506	help
507	  Say yes here to support Marvell MVEBU (Armada XP/38x) GPIOs.
508
509config ZYNQ_GPIO
510	bool "Zynq GPIO driver"
511	depends on DM_GPIO
512	default y if ARCH_ZYNQ || ARCH_ZYNQMP || ARCH_VERSAL || ARCH_VERSAL2
513	help
514	  Supports GPIO access on Zynq SoC.
515
516config DM_74X164
517	bool "74x164 serial-in/parallel-out 8-bits shift register"
518	depends on DM_GPIO && DM_SPI
519	help
520	  Driver for 74x164 compatible serial-in/parallel-out 8-outputs
521	  shift registers, such as 74lv165, 74hc595.
522	  This driver can be used to provide access to more gpio outputs.
523
524config DM_PCA953X
525	bool "PCA95[357]x, PCA9698, TCA64xx, and MAX7310 I/O ports"
526	depends on DM_GPIO && DM_I2C
527	help
528	  Say yes here to provide access to several register-oriented
529	  SMBus I/O expanders, made mostly by NXP or TI.  Compatible
530	  models include:
531
532	  4 bits:	pca9536, pca9537
533
534	  8 bits:	max7310, max7315, pca6107, pca9534, pca9538, pca9554,
535			pca9556, pca9557, pca9574, tca6408, xra1202
536
537	  16 bits:	max7312, max7313, pca9535, pca9539, pca9555, pca9575,
538			tca6416
539
540	  24 bits:	tca6424
541
542	  40 bits:	pca9505, pca9698
543
544	  Now, max 24 bits chips and PCA953X compatible chips are
545	  supported
546
547config ADP5588_GPIO
548	bool "ADP5588 GPIO expander driver"
549	depends on DM_GPIO && DM_I2C
550	help
551	  Say yes here to support GPIO functionality of ADI ADP5588 chips.
552
553	  The ADP5588 is an 18-port I2C GPIO expander and keypad controller.
554
555config SPL_DM_PCA953X
556	bool "PCA95[357]x, PCA9698, TCA64xx, and MAX7310 I/O ports in SPL"
557	depends on SPL_DM_GPIO
558	help
559	  Say yes here to provide access to several register-oriented
560	  SMBus I/O expanders, made mostly by NXP or TI.  Compatible
561	  models include:
562
563	  4 bits:	pca9536, pca9537
564
565	  8 bits:	max7310, max7315, pca6107, pca9534, pca9538, pca9554,
566			pca9556, pca9557, pca9574, tca6408, xra1202
567
568	  16 bits:	max7312, max7313, pca9535, pca9539, pca9555, pca9575,
569			tca6416
570
571	  24 bits:	tca6424
572
573	  40 bits:	pca9505, pca9698
574
575	  Now, max 24 bits chips and PCA953X compatible chips are
576	  supported
577
578config PCA953X
579	bool "NXP's PCA953X series I2C GPIO (legacy driver)"
580	depends on !DM_PCA953X
581
582config MPC8XXX_GPIO
583	bool "Freescale MPC8XXX GPIO driver"
584	depends on DM_GPIO && (PPC || ARCH_LS1021A || FSL_LSCH2 || FSL_LSCH3)
585	help
586	  This driver supports the built-in GPIO controller of MPC8XXX CPUs.
587	  Each GPIO bank is identified by its own entry in the device tree,
588	  i.e.
589
590	  gpio-controller@fc00 {
591		#gpio-cells = <2>;
592		compatible = "fsl,pq3-gpio";
593		reg = <0xfc00 0x100>
594	  }
595
596	  By default, each bank is assumed to have 32 GPIOs, but the ngpios
597	  setting is honored, so the number of GPIOs for each bank is
598	  configurable to match the actual GPIO count of the SoC (e.g. the
599	  32/32/23 banks of the P1022 SoC).
600
601	  Aside from the standard functions of input/output mode, and output
602	  value setting, the open-drain feature, which can configure individual
603	  GPIOs to work as open-drain outputs, is supported.
604
605config QE_GPIO
606	bool "Freescale QUICC ENGINE GPIO driver"
607	depends on DM_GPIO
608	depends on QE
609	help
610	  This driver supports the QUICC Engine GPIOs of MPC83XX CPUs.
611	  Each GPIO bank is identified by its own entry in the device tree,
612	  i.e.
613
614	  qe_pio_a: gpio-controller@1400 {
615		compatible = "fsl,mpc8323-qe-pario-bank";
616		reg = <0x1400 0x18>;
617		gpio-controller;
618		#gpio-cells = <2>;
619	  };
620
621	  Each bank has 32 GPIOs.
622
623config MPC8XX_GPIO
624	bool "Freescale MPC8XX GPIO driver"
625	depends on DM_GPIO && PPC
626	help
627	  This driver supports parallel IO ports from MPC8XX CPUs.
628	  Each GPIO bank is identified by its own entry in the device tree.
629
630config MPC83XX_SPISEL_BOOT
631	bool "Freescale MPC83XX SPISEL_BOOT driver"
632	depends on DM_GPIO && ARCH_MPC830X
633	help
634	  GPIO driver to set/clear dedicated SPISEL_BOOT output on MPC83XX.
635
636	  This pin is typically used as spi chip select to a spi nor flash.
637
638config MT7620_GPIO
639	bool "MediaTek MT7620 GPIO driver"
640	depends on DM_GPIO && SOC_MT7620
641	default y
642	help
643	  Device model driver for GPIO controller present in MediaTek MT7620
644	  and earlier SoCs.
645
646config MT7621_GPIO
647	bool "MediaTek MT7621 GPIO driver"
648	depends on DM_GPIO && (SOC_MT7621 || SOC_MT7628)
649	default y
650	help
651	  Say yes here to support MediaTek MT7621 compatible GPIOs.
652
653config NX_GPIO
654	bool "Nexell GPIO driver"
655	depends on DM_GPIO
656	help
657	  Support GPIO access on Nexell SoCs. The GPIOs are arranged into
658	  a number of banks (different for each SoC type) each with 32 GPIOs.
659	  The GPIOs for a device are defined in the device tree with one node
660	  for each bank.
661
662config NOMADIK_GPIO
663	bool "Nomadik GPIO driver"
664	depends on DM_GPIO
665	help
666	  Support GPIO access on ST-Ericsson Ux500 SoCs. The GPIOs are arranged
667	  into a number of banks each with 32 GPIOs. The GPIOs for a device are
668	  defined in the device tree with one node for each bank.
669
670config ZYNQMP_GPIO_MODEPIN
671	bool "ZynqMP gpio modepin"
672	depends on DM_GPIO && ZYNQMP_FIRMWARE
673	help
674	  This config enables the ZynqMP gpio modepin driver. ZynqMP modepin
675	  driver will set and get the status of PS_MODE pins. These modepins
676	  are accessed using xilinx firmware. In modepin register, [3:0] bits
677	  set direction, [7:4] bits read IO, [11:8] bits set/clear IO.
678
679config SH_GPIO_PFC
680	bool "Pinmuxed GPIO support for SuperH"
681	depends on RCAR_GEN2 && !PINCTRL_PFC
682	default y
683
684config SL28CPLD_GPIO
685	bool "Kontron sl28cpld GPIO driver"
686	depends on DM_GPIO && SL28CPLD
687	help
688	  Support GPIO access on Kontron sl28cpld board management controllers.
689
690config SLG7XL45106_I2C_GPO
691	bool "slg7xl45106 i2c gpo expander"
692	depends on DM_GPIO && ARCH_ZYNQMP
693	help
694	   Support for slg7xl45106 i2c gpo expander. It is an i2c based
695	   8-bit gpo expander, all gpo lines are controlled by writing
696	   value into data register.
697
698config FTGPIO010
699	bool "Faraday Technology FTGPIO010 driver"
700	depends on DM_GPIO
701	help
702	   Support for GPIOs on Faraday Technology's FTGPIO010 controller.
703
704config ADP5585_GPIO
705	bool "ADP5585 GPIO driver"
706	depends on DM_GPIO && DM_I2C
707	help
708	  Support ADP5585 GPIO expander.
709
710config RZG2L_GPIO
711	bool "Renesas RZ/G2L family GPIO driver"
712	depends on DM_GPIO && PINCTRL_RZG2L
713	help
714	  Support the gpio functionality of the pin function controller (PFC)
715	  on the Renesas RZ/G2L SoC family.
716
717config SPL_ADP5585_GPIO
718	bool "ADP5585 GPIO driver in SPL"
719	depends on SPL_DM_GPIO && SPL_I2C
720	help
721	  Support ADP5585 GPIO expander in SPL.
722config MPFS_GPIO
723	bool "Enable Polarfire SoC GPIO driver"
724	depends on DM_GPIO
725	help
726		Enable to support the GPIO driver on Polarfire SoC
727
728endif
729