xref: /openbmc/u-boot/drivers/gpio/Kconfig (revision be8313feee7f003ef9716a10c88e9fed75e0eb56)
10b11dbf7SMasahiro Yamada#
20b11dbf7SMasahiro Yamada# GPIO infrastructure and drivers
30b11dbf7SMasahiro Yamada#
40b11dbf7SMasahiro Yamada
50b11dbf7SMasahiro Yamadamenu "GPIO Support"
60b11dbf7SMasahiro Yamada
7da333ae7SMasahiro Yamadaconfig DM_GPIO
8da333ae7SMasahiro Yamada	bool "Enable Driver Model for GPIO drivers"
9da333ae7SMasahiro Yamada	depends on DM
10da333ae7SMasahiro Yamada	help
11f94a1bedSSimon Glass	  Enable driver model for GPIO access. The standard GPIO
12f94a1bedSSimon Glass	  interface (gpio_get_value(), etc.) is then implemented by
13f94a1bedSSimon Glass	  the GPIO uclass. Drivers provide methods to query the
14f94a1bedSSimon Glass	  particular GPIOs that they provide. The uclass interface
15f94a1bedSSimon Glass	  is defined in include/asm-generic/gpio.h.
16606f7047SAlbert ARIBAUD \(3ADEV\)
1788d5ecf4SThomas Chouconfig ALTERA_PIO
1888d5ecf4SThomas Chou	bool "Altera PIO driver"
1988d5ecf4SThomas Chou	depends on DM_GPIO
2088d5ecf4SThomas Chou	help
2188d5ecf4SThomas Chou	  Select this to enable PIO for Altera devices. Please find
2288d5ecf4SThomas Chou	  details on the "Embedded Peripherals IP User Guide" of Altera.
2388d5ecf4SThomas Chou
24e64bdb2fSÁlvaro Fernández Rojasconfig BCM6345_GPIO
25e64bdb2fSÁlvaro Fernández Rojas	bool "BCM6345 GPIO driver"
26e64bdb2fSÁlvaro Fernández Rojas	depends on DM_GPIO && ARCH_BMIPS
27e64bdb2fSÁlvaro Fernández Rojas	help
28e64bdb2fSÁlvaro Fernández Rojas	  This driver supports the GPIO banks on BCM6345 SoCs.
29e64bdb2fSÁlvaro Fernández Rojas
30e30a70c2SMarek Vasutconfig DWAPB_GPIO
31e30a70c2SMarek Vasut	bool "DWAPB GPIO driver"
32e30a70c2SMarek Vasut	depends on DM && DM_GPIO
33e30a70c2SMarek Vasut	default n
34e30a70c2SMarek Vasut	help
35e30a70c2SMarek Vasut	  Support for the Designware APB GPIO driver.
36e30a70c2SMarek Vasut
375a07a5f9SWenyou Yangconfig AT91_GPIO
385a07a5f9SWenyou Yang	bool "AT91 PIO GPIO driver"
395a07a5f9SWenyou Yang	depends on DM_GPIO
405a07a5f9SWenyou Yang	default n
415a07a5f9SWenyou Yang	help
425a07a5f9SWenyou Yang	  Say yes here to select AT91 PIO GPIO driver. AT91 PIO
435a07a5f9SWenyou Yang	  controller manages up to 32 fully programmable input/output
445a07a5f9SWenyou Yang	  lines. Each I/O line may be dedicated as a general-purpose
455a07a5f9SWenyou Yang	  I/O or be assigned to a function of an embedded peripheral.
465a07a5f9SWenyou Yang	  The assignment to a function of an embedded peripheral is
475a07a5f9SWenyou Yang	  the responsibility of AT91 Pinctrl driver. This driver is
485a07a5f9SWenyou Yang	  responsible for the general-purpose I/O.
495a07a5f9SWenyou Yang
502c62c56aSWenyou Yangconfig ATMEL_PIO4
512c62c56aSWenyou Yang	bool "ATMEL PIO4 driver"
52ee3311dbSWenyou Yang	depends on DM_GPIO
532c62c56aSWenyou Yang	default n
542c62c56aSWenyou Yang	help
552c62c56aSWenyou Yang	  Say yes here to support the Atmel PIO4 driver.
562c62c56aSWenyou Yang	  The PIO4 is new version of Atmel PIO controller, which manages
572c62c56aSWenyou Yang	  up to 128 fully programmable input/output lines. Each I/O line
582c62c56aSWenyou Yang	  may be dedicated as a general purpose I/O or be assigned to
592c62c56aSWenyou Yang	  a function of an embedded peripheral.
602c62c56aSWenyou Yang
615d653afcSAdam Fordconfig DA8XX_GPIO
625d653afcSAdam Ford	bool "DA8xx GPIO Driver"
635d653afcSAdam Ford	help
645d653afcSAdam Ford	  This driver supports the DA8xx GPIO controller
655d653afcSAdam Ford
6664b17977SSimon Glassconfig INTEL_BROADWELL_GPIO
6764b17977SSimon Glass	bool "Intel Broadwell GPIO driver"
6864b17977SSimon Glass	depends on DM
6964b17977SSimon Glass	help
7064b17977SSimon Glass	  This driver supports Broadwell U devices which have an expanded
7164b17977SSimon Glass	  GPIO feature set. The difference is large enough to merit a separate
7264b17977SSimon Glass	  driver from the common Intel ICH6 driver. It supports a total of
7364b17977SSimon Glass	  95 GPIOs which can be configured from the device tree.
7464b17977SSimon Glass
7572436892SBin Mengconfig INTEL_ICH6_GPIO
7672436892SBin Meng	bool "Intel ICH6 compatible legacy GPIO driver"
7772436892SBin Meng	depends on DM_GPIO
7872436892SBin Meng	help
7972436892SBin Meng	  Say yes here to select Intel ICH6 compatible legacy GPIO driver.
8072436892SBin Meng
81d665eb61SPeng Fanconfig IMX_RGPIO2P
82d665eb61SPeng Fan	bool "i.MX7ULP RGPIO2P driver"
83d665eb61SPeng Fan	depends on DM
84d665eb61SPeng Fan	default n
85d665eb61SPeng Fan	help
86d665eb61SPeng Fan	  This driver supports i.MX7ULP Rapid GPIO2P controller.
87d665eb61SPeng Fan
883194c3cdSEugeniy Paltsevconfig HSDK_CREG_GPIO
893194c3cdSEugeniy Paltsev	bool "HSDK CREG GPIO griver"
90d5fbcd57SAlexey Brodkin	depends on DM_GPIO
913194c3cdSEugeniy Paltsev	default n
923194c3cdSEugeniy Paltsev	help
933194c3cdSEugeniy Paltsev	  This driver supports CREG GPIOs on Synopsys HSDK SOC.
943194c3cdSEugeniy Paltsev
95606f7047SAlbert ARIBAUD \(3ADEV\)config LPC32XX_GPIO
96606f7047SAlbert ARIBAUD \(3ADEV\)	bool "LPC32XX GPIO driver"
97606f7047SAlbert ARIBAUD \(3ADEV\)	depends on DM
98606f7047SAlbert ARIBAUD \(3ADEV\)	default n
99606f7047SAlbert ARIBAUD \(3ADEV\)	help
100606f7047SAlbert ARIBAUD \(3ADEV\)	  Support for the LPC32XX GPIO driver.
101d79c50afSSimon Glass
10202aea4daSGregory CLEMENTconfig MSCC_BITBANG_SPI_GPIO
10302aea4daSGregory CLEMENT	bool "Microsemi bitbang spi GPIO driver"
10402aea4daSGregory CLEMENT	depends on DM_GPIO && SOC_VCOREIII
10502aea4daSGregory CLEMENT	help
10602aea4daSGregory CLEMENT	  Support controlling the GPIO used for SPI bitbang by software. Can
10702aea4daSGregory CLEMENT	  be used by the VCoreIII SoCs, but it was mainly useful for Luton.
10802aea4daSGregory CLEMENT
109*be8313feSLars Povlsenconfig MSCC_SGPIO
110*be8313feSLars Povlsen	bool "Microsemi Serial GPIO driver"
111*be8313feSLars Povlsen	depends on DM_GPIO && SOC_VCOREIII
112*be8313feSLars Povlsen	help
113*be8313feSLars Povlsen	  Support for the VCoreIII SoC serial GPIO device. By using a
114*be8313feSLars Povlsen          serial interface, the SIO controller significantly extends
115*be8313feSLars Povlsen          the number of available GPIOs with a minimum number of
116*be8313feSLars Povlsen          additional pins on the device. The primary purpose of the
117*be8313feSLars Povlsen          SIO controller is to connect control signals from SFP
118*be8313feSLars Povlsen          modules and to act as an LED controller.
119*be8313feSLars Povlsen
12081a87e18SMateusz Kulikowskiconfig MSM_GPIO
12181a87e18SMateusz Kulikowski	bool "Qualcomm GPIO driver"
12281a87e18SMateusz Kulikowski	depends on DM_GPIO
12381a87e18SMateusz Kulikowski	default n
12481a87e18SMateusz Kulikowski	help
12581a87e18SMateusz Kulikowski	  Support GPIO controllers on Qualcomm Snapdragon family of SoCs.
12681a87e18SMateusz Kulikowski	  This controller have single bank (default name "soc"), every
12781a87e18SMateusz Kulikowski	  gpio has it's own set of registers.
12881a87e18SMateusz Kulikowski	  Only simple GPIO operations are supported (get/set, change of
12981a87e18SMateusz Kulikowski	  direction and checking pin function).
13081a87e18SMateusz Kulikowski	  Supported devices:
13181a87e18SMateusz Kulikowski	  - APQ8016
13281a87e18SMateusz Kulikowski	  - MSM8916
13381a87e18SMateusz Kulikowski
1348bbff6a7SAdam Fordconfig MXC_GPIO
1358fd05fccSHannes Schmelzer	bool "Freescale/NXP MXC GPIO driver"
1368bbff6a7SAdam Ford	help
1378bbff6a7SAdam Ford	  Support GPIO controllers on various i.MX platforms
1388bbff6a7SAdam Ford
13929cb2b3bSTom Riniconfig OMAP_GPIO
14029cb2b3bSTom Rini	bool "TI OMAP GPIO driver"
14129cb2b3bSTom Rini	depends on ARCH_OMAP2PLUS
14229cb2b3bSTom Rini	default y
14329cb2b3bSTom Rini	help
14429cb2b3bSTom Rini	  Support GPIO controllers on the TI OMAP3/4/5 and related (such as
14529cb2b3bSTom Rini	  AM335x/AM43xx/AM57xx/DRA7xx/etc) families of SoCs.
14629cb2b3bSTom Rini
1470091362cSSimon Glassconfig CMD_PCA953X
1480091362cSSimon Glass	bool "Enable the pca953x command"
1490091362cSSimon Glass	help
1500091362cSSimon Glass	  Deprecated: This should be converted to driver model.
1510091362cSSimon Glass
1520091362cSSimon Glass	  This command provides access to a pca953x GPIO device using the
1530091362cSSimon Glass	  legacy GPIO interface. Several subcommands are provided which mirror
1540091362cSSimon Glass	  the standard 'gpio' command. It should use that instead.
1550091362cSSimon Glass
156120800dfSMateusz Kulikowskiconfig PM8916_GPIO
157120800dfSMateusz Kulikowski	bool "Qualcomm PM8916 PMIC GPIO/keypad driver"
158120800dfSMateusz Kulikowski	depends on DM_GPIO && PMIC_PM8916
159120800dfSMateusz Kulikowski	help
160120800dfSMateusz Kulikowski	  Support for GPIO pins and power/reset buttons found on
161120800dfSMateusz Kulikowski	  Qualcomm PM8916 PMIC.
162120800dfSMateusz Kulikowski	  Default name for GPIO bank is "pm8916".
163120800dfSMateusz Kulikowski	  Power and reset buttons are placed in "pm8916_key" bank and
164120800dfSMateusz Kulikowski          have gpio numbers 0 and 1 respectively.
165120800dfSMateusz Kulikowski
1665746b0dfSVignesh Rconfig PCF8575_GPIO
1675746b0dfSVignesh R	bool "PCF8575 I2C GPIO Expander driver"
1685746b0dfSVignesh R	depends on DM_GPIO && DM_I2C
1695746b0dfSVignesh R	help
1705746b0dfSVignesh R	 Support for PCF8575 I2C 16-bit GPIO expander. Most of these
1715746b0dfSVignesh R	 chips are from NXP and TI.
1725746b0dfSVignesh R
173f5f69594SMarek Vasutconfig RCAR_GPIO
174f5f69594SMarek Vasut	bool "Renesas RCar GPIO driver"
175f5f69594SMarek Vasut	depends on DM_GPIO && ARCH_RMOBILE
176f5f69594SMarek Vasut	help
177f5f69594SMarek Vasut	  This driver supports the GPIO banks on Renesas RCar SoCs.
178f5f69594SMarek Vasut
1791f8f7730SSimon Glassconfig ROCKCHIP_GPIO
1801f8f7730SSimon Glass	bool "Rockchip GPIO driver"
1811f8f7730SSimon Glass	depends on DM_GPIO
1821f8f7730SSimon Glass	help
1831f8f7730SSimon Glass	  Support GPIO access on Rockchip SoCs. The GPIOs are arranged into
1841f8f7730SSimon Glass	  a number of banks (different for each SoC type) each with 32 GPIOs.
1851f8f7730SSimon Glass	  The GPIOs for a device are defined in the device tree with one node
1861f8f7730SSimon Glass	  for each bank.
1871f8f7730SSimon Glass
188d79c50afSSimon Glassconfig SANDBOX_GPIO
189d79c50afSSimon Glass	bool "Enable sandbox GPIO driver"
190d79c50afSSimon Glass	depends on SANDBOX && DM && DM_GPIO
191d79c50afSSimon Glass	help
192d79c50afSSimon Glass	  This driver supports some simulated GPIOs which can be adjusted
193d79c50afSSimon Glass	  using 'back door' functions like sandbox_gpio_set_value(). Then the
194d79c50afSSimon Glass	  GPIOs can be inspected through the normal get_get_value()
195d79c50afSSimon Glass	  interface. The purpose of this is to allow GPIOs to be used as
196d79c50afSSimon Glass	  normal in sandbox, perhaps with test code actually driving the
197d79c50afSSimon Glass	  behaviour of those GPIOs.
198d79c50afSSimon Glass
199d79c50afSSimon Glassconfig SANDBOX_GPIO_COUNT
200d79c50afSSimon Glass	int "Number of sandbox GPIOs"
201d79c50afSSimon Glass	depends on SANDBOX_GPIO
202d79c50afSSimon Glass	default 128
203d79c50afSSimon Glass	help
204d79c50afSSimon Glass	  The sandbox driver can support any number of GPIOs. Generally these
205d79c50afSSimon Glass	  are specified using the device tree. But you can also have a number
206d79c50afSSimon Glass	  of 'anonymous' GPIOs that do not belong to any device or bank.
207d79c50afSSimon Glass	  Select a suitable value depending on your needs.
208d348a943SBhuvanchandra DV
20971d5a142SVipul Kumarconfig XILINX_GPIO
21071d5a142SVipul Kumar	bool "Xilinx GPIO driver"
2114a693669SMichal Simek	depends on DM_GPIO
21271d5a142SVipul Kumar	help
21371d5a142SVipul Kumar	  This config enable the Xilinx GPIO driver for Microblaze.
21471d5a142SVipul Kumar
21590d99e59SSimon Glassconfig CMD_TCA642X
21690d99e59SSimon Glass	bool "tca642x - Command to access tca642x state"
21790d99e59SSimon Glass	help
21890d99e59SSimon Glass	  DEPRECATED - This needs conversion to driver model
21990d99e59SSimon Glass
22090d99e59SSimon Glass	  This provides a way to looking at the pin state of this device.
22190d99e59SSimon Glass	  This mirrors the 'gpio' command and that should be used in preference
22290d99e59SSimon Glass	  to custom code.
22390d99e59SSimon Glass
224601800beSStephen Warrenconfig TEGRA_GPIO
225601800beSStephen Warren	bool "Tegra20..210 GPIO driver"
226601800beSStephen Warren	depends on DM_GPIO
227601800beSStephen Warren	help
228601800beSStephen Warren	  Support for the GPIO controller contained in NVIDIA Tegra20 through
229601800beSStephen Warren	  Tegra210.
230601800beSStephen Warren
231074a1fddSStephen Warrenconfig TEGRA186_GPIO
232074a1fddSStephen Warren	bool "Tegra186 GPIO driver"
233074a1fddSStephen Warren	depends on DM_GPIO
234074a1fddSStephen Warren	help
235074a1fddSStephen Warren	  Support for the GPIO controller contained in NVIDIA Tegra186. This
236074a1fddSStephen Warren	  covers both the "main" and "AON" controller instances, even though
237074a1fddSStephen Warren	  they have slightly different register layout.
238074a1fddSStephen Warren
239b9a66b63SMasahiro Yamadaconfig GPIO_UNIPHIER
240b9a66b63SMasahiro Yamada	bool "UniPhier GPIO"
241b9a66b63SMasahiro Yamada	depends on ARCH_UNIPHIER
242b9a66b63SMasahiro Yamada	help
243b9a66b63SMasahiro Yamada	  Say yes here to support UniPhier GPIOs.
244b9a66b63SMasahiro Yamada
245d348a943SBhuvanchandra DVconfig VYBRID_GPIO
246d348a943SBhuvanchandra DV	bool "Vybrid GPIO driver"
247d348a943SBhuvanchandra DV	depends on DM
248d348a943SBhuvanchandra DV	default n
249d348a943SBhuvanchandra DV	help
250d348a943SBhuvanchandra DV	  Say yes here to support Vybrid vf610 GPIOs.
2510b11dbf7SMasahiro Yamada
252386d934eSPurna Chandra Mandalconfig PIC32_GPIO
253386d934eSPurna Chandra Mandal	bool "Microchip PIC32 GPIO driver"
254386d934eSPurna Chandra Mandal	depends on DM_GPIO && MACH_PIC32
255386d934eSPurna Chandra Mandal	default y
256386d934eSPurna Chandra Mandal	help
257386d934eSPurna Chandra Mandal	  Say yes here to support Microchip PIC32 GPIOs.
258386d934eSPurna Chandra Mandal
25977417102SVikas Manochaconfig STM32F7_GPIO
26077417102SVikas Manocha	bool "ST STM32 GPIO driver"
2612514c2d0SPatrick Delaunay	depends on DM_GPIO && (STM32 || ARCH_STM32MP)
26277417102SVikas Manocha	default y
26377417102SVikas Manocha	help
26477417102SVikas Manocha	  Device model driver support for STM32 GPIO controller. It should be
26577417102SVikas Manocha	  usable on many stm32 families like stm32f4 & stm32H7.
26677417102SVikas Manocha	  Tested on STM32F7.
26777417102SVikas Manocha
268704d9a64SStefan Roeseconfig MVEBU_GPIO
269704d9a64SStefan Roese	bool "Marvell MVEBU GPIO driver"
270704d9a64SStefan Roese	depends on DM_GPIO && ARCH_MVEBU
271704d9a64SStefan Roese	default y
272704d9a64SStefan Roese	help
273704d9a64SStefan Roese	  Say yes here to support Marvell MVEBU (Armada XP/38x) GPIOs.
274704d9a64SStefan Roese
2752978ae23SSiva Durga Prasad Paladuguconfig ZYNQ_GPIO
2762978ae23SSiva Durga Prasad Paladugu	bool "Zynq GPIO driver"
277251ab06dSSiva Durga Prasad Paladugu	depends on DM_GPIO && (ARCH_ZYNQ || ARCH_ZYNQMP)
2782978ae23SSiva Durga Prasad Paladugu	default y
2792978ae23SSiva Durga Prasad Paladugu	help
2802978ae23SSiva Durga Prasad Paladugu	  Supports GPIO access on Zynq SoC.
2812978ae23SSiva Durga Prasad Paladugu
2829300f711SPeng Fanconfig DM_74X164
2839300f711SPeng Fan	bool "74x164 serial-in/parallel-out 8-bits shift register"
2849300f711SPeng Fan	depends on DM_GPIO
2859300f711SPeng Fan	help
2869300f711SPeng Fan	  Driver for 74x164 compatible serial-in/parallel-out 8-outputs
2879300f711SPeng Fan	  shift registers, such as 74lv165, 74hc595.
2889300f711SPeng Fan	  This driver can be used to provide access to more gpio outputs.
2899300f711SPeng Fan
29003773439SPeng Fanconfig DM_PCA953X
29103773439SPeng Fan	bool "PCA95[357]x, PCA9698, TCA64xx, and MAX7310 I/O ports"
29203773439SPeng Fan	depends on DM_GPIO
29303773439SPeng Fan	help
29403773439SPeng Fan	  Say yes here to provide access to several register-oriented
29503773439SPeng Fan	  SMBus I/O expanders, made mostly by NXP or TI.  Compatible
29603773439SPeng Fan	  models include:
29703773439SPeng Fan
29803773439SPeng Fan	  4 bits:	pca9536, pca9537
29903773439SPeng Fan
30003773439SPeng Fan	  8 bits:	max7310, max7315, pca6107, pca9534, pca9538, pca9554,
30103773439SPeng Fan			pca9556, pca9557, pca9574, tca6408, xra1202
30203773439SPeng Fan
30303773439SPeng Fan	  16 bits:	max7312, max7313, pca9535, pca9539, pca9555, pca9575,
30403773439SPeng Fan			tca6416
30503773439SPeng Fan
30603773439SPeng Fan	  24 bits:	tca6424
30703773439SPeng Fan
30803773439SPeng Fan	  40 bits:	pca9505, pca9698
30903773439SPeng Fan
31003773439SPeng Fan	  Now, max 24 bits chips and PCA953X compatible chips are
31103773439SPeng Fan	  supported
31207d31f8fSmario.six@gdsys.cc
3133c216834SMario Sixconfig MPC8XXX_GPIO
3143c216834SMario Six	bool "Freescale MPC8XXX GPIO driver"
31507d31f8fSmario.six@gdsys.cc	depends on DM_GPIO
31607d31f8fSmario.six@gdsys.cc	help
3173c216834SMario Six	  This driver supports the built-in GPIO controller of MPC8XXX CPUs.
31807d31f8fSmario.six@gdsys.cc	  Each GPIO bank is identified by its own entry in the device tree,
31907d31f8fSmario.six@gdsys.cc	  i.e.
32007d31f8fSmario.six@gdsys.cc
32107d31f8fSmario.six@gdsys.cc	  gpio-controller@fc00 {
32207d31f8fSmario.six@gdsys.cc		#gpio-cells = <2>;
32307d31f8fSmario.six@gdsys.cc		compatible = "fsl,pq3-gpio";
32407d31f8fSmario.six@gdsys.cc		reg = <0xfc00 0x100>
32507d31f8fSmario.six@gdsys.cc	  }
32607d31f8fSmario.six@gdsys.cc
32707d31f8fSmario.six@gdsys.cc	  By default, each bank is assumed to have 32 GPIOs, but the ngpios
32807d31f8fSmario.six@gdsys.cc	  setting is honored, so the number of GPIOs for each bank is
32907d31f8fSmario.six@gdsys.cc	  configurable to match the actual GPIO count of the SoC (e.g. the
33007d31f8fSmario.six@gdsys.cc	  32/32/23 banks of the P1022 SoC).
33107d31f8fSmario.six@gdsys.cc
33251781783Smario.six@gdsys.cc	  Aside from the standard functions of input/output mode, and output
33351781783Smario.six@gdsys.cc	  value setting, the open-drain feature, which can configure individual
33451781783Smario.six@gdsys.cc	  GPIOs to work as open-drain outputs, is supported.
3354751e559SStefan Roese
3364751e559SStefan Roeseconfig MT7621_GPIO
3374751e559SStefan Roese	bool "MediaTek MT7621 GPIO driver"
3384751e559SStefan Roese	depends on DM_GPIO && ARCH_MT7620
3394751e559SStefan Roese	default y
3404751e559SStefan Roese	help
3414751e559SStefan Roese	  Say yes here to support MediaTek MT7621 compatible GPIOs.
3424751e559SStefan Roese
3430b11dbf7SMasahiro Yamadaendmenu
344