xref: /openbmc/u-boot/drivers/gpio/Kconfig (revision e64bdb2fcfce7e002964e72f2732920ecda4b74c)
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
24*e64bdb2fSÁlvaro Fernández Rojasconfig BCM6345_GPIO
25*e64bdb2fSÁlvaro Fernández Rojas	bool "BCM6345 GPIO driver"
26*e64bdb2fSÁlvaro Fernández Rojas	depends on DM_GPIO && ARCH_BMIPS
27*e64bdb2fSÁlvaro Fernández Rojas	help
28*e64bdb2fSÁlvaro Fernández Rojas	  This driver supports the GPIO banks on BCM6345 SoCs.
29*e64bdb2fSÁ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
6164b17977SSimon Glassconfig INTEL_BROADWELL_GPIO
6264b17977SSimon Glass	bool "Intel Broadwell GPIO driver"
6364b17977SSimon Glass	depends on DM
6464b17977SSimon Glass	help
6564b17977SSimon Glass	  This driver supports Broadwell U devices which have an expanded
6664b17977SSimon Glass	  GPIO feature set. The difference is large enough to merit a separate
6764b17977SSimon Glass	  driver from the common Intel ICH6 driver. It supports a total of
6864b17977SSimon Glass	  95 GPIOs which can be configured from the device tree.
6964b17977SSimon Glass
70d665eb61SPeng Fanconfig IMX_RGPIO2P
71d665eb61SPeng Fan	bool "i.MX7ULP RGPIO2P driver"
72d665eb61SPeng Fan	depends on DM
73d665eb61SPeng Fan	default n
74d665eb61SPeng Fan	help
75d665eb61SPeng Fan	  This driver supports i.MX7ULP Rapid GPIO2P controller.
76d665eb61SPeng Fan
77606f7047SAlbert ARIBAUD \(3ADEV\)config LPC32XX_GPIO
78606f7047SAlbert ARIBAUD \(3ADEV\)	bool "LPC32XX GPIO driver"
79606f7047SAlbert ARIBAUD \(3ADEV\)	depends on DM
80606f7047SAlbert ARIBAUD \(3ADEV\)	default n
81606f7047SAlbert ARIBAUD \(3ADEV\)	help
82606f7047SAlbert ARIBAUD \(3ADEV\)	  Support for the LPC32XX GPIO driver.
83d79c50afSSimon Glass
8481a87e18SMateusz Kulikowskiconfig MSM_GPIO
8581a87e18SMateusz Kulikowski	bool "Qualcomm GPIO driver"
8681a87e18SMateusz Kulikowski	depends on DM_GPIO
8781a87e18SMateusz Kulikowski	default n
8881a87e18SMateusz Kulikowski	help
8981a87e18SMateusz Kulikowski	  Support GPIO controllers on Qualcomm Snapdragon family of SoCs.
9081a87e18SMateusz Kulikowski	  This controller have single bank (default name "soc"), every
9181a87e18SMateusz Kulikowski	  gpio has it's own set of registers.
9281a87e18SMateusz Kulikowski	  Only simple GPIO operations are supported (get/set, change of
9381a87e18SMateusz Kulikowski	  direction and checking pin function).
9481a87e18SMateusz Kulikowski	  Supported devices:
9581a87e18SMateusz Kulikowski	  - APQ8016
9681a87e18SMateusz Kulikowski	  - MSM8916
9781a87e18SMateusz Kulikowski
98120800dfSMateusz Kulikowskiconfig PM8916_GPIO
99120800dfSMateusz Kulikowski	bool "Qualcomm PM8916 PMIC GPIO/keypad driver"
100120800dfSMateusz Kulikowski	depends on DM_GPIO && PMIC_PM8916
101120800dfSMateusz Kulikowski	help
102120800dfSMateusz Kulikowski	  Support for GPIO pins and power/reset buttons found on
103120800dfSMateusz Kulikowski	  Qualcomm PM8916 PMIC.
104120800dfSMateusz Kulikowski	  Default name for GPIO bank is "pm8916".
105120800dfSMateusz Kulikowski	  Power and reset buttons are placed in "pm8916_key" bank and
106120800dfSMateusz Kulikowski          have gpio numbers 0 and 1 respectively.
107120800dfSMateusz Kulikowski
1085746b0dfSVignesh Rconfig PCF8575_GPIO
1095746b0dfSVignesh R	bool "PCF8575 I2C GPIO Expander driver"
1105746b0dfSVignesh R	depends on DM_GPIO && DM_I2C
1115746b0dfSVignesh R	help
1125746b0dfSVignesh R	 Support for PCF8575 I2C 16-bit GPIO expander. Most of these
1135746b0dfSVignesh R	 chips are from NXP and TI.
1145746b0dfSVignesh R
1151f8f7730SSimon Glassconfig ROCKCHIP_GPIO
1161f8f7730SSimon Glass	bool "Rockchip GPIO driver"
1171f8f7730SSimon Glass	depends on DM_GPIO
1181f8f7730SSimon Glass	help
1191f8f7730SSimon Glass	  Support GPIO access on Rockchip SoCs. The GPIOs are arranged into
1201f8f7730SSimon Glass	  a number of banks (different for each SoC type) each with 32 GPIOs.
1211f8f7730SSimon Glass	  The GPIOs for a device are defined in the device tree with one node
1221f8f7730SSimon Glass	  for each bank.
1231f8f7730SSimon Glass
124d79c50afSSimon Glassconfig SANDBOX_GPIO
125d79c50afSSimon Glass	bool "Enable sandbox GPIO driver"
126d79c50afSSimon Glass	depends on SANDBOX && DM && DM_GPIO
127d79c50afSSimon Glass	help
128d79c50afSSimon Glass	  This driver supports some simulated GPIOs which can be adjusted
129d79c50afSSimon Glass	  using 'back door' functions like sandbox_gpio_set_value(). Then the
130d79c50afSSimon Glass	  GPIOs can be inspected through the normal get_get_value()
131d79c50afSSimon Glass	  interface. The purpose of this is to allow GPIOs to be used as
132d79c50afSSimon Glass	  normal in sandbox, perhaps with test code actually driving the
133d79c50afSSimon Glass	  behaviour of those GPIOs.
134d79c50afSSimon Glass
135d79c50afSSimon Glassconfig SANDBOX_GPIO_COUNT
136d79c50afSSimon Glass	int "Number of sandbox GPIOs"
137d79c50afSSimon Glass	depends on SANDBOX_GPIO
138d79c50afSSimon Glass	default 128
139d79c50afSSimon Glass	help
140d79c50afSSimon Glass	  The sandbox driver can support any number of GPIOs. Generally these
141d79c50afSSimon Glass	  are specified using the device tree. But you can also have a number
142d79c50afSSimon Glass	  of 'anonymous' GPIOs that do not belong to any device or bank.
143d79c50afSSimon Glass	  Select a suitable value depending on your needs.
144d348a943SBhuvanchandra DV
145601800beSStephen Warrenconfig TEGRA_GPIO
146601800beSStephen Warren	bool "Tegra20..210 GPIO driver"
147601800beSStephen Warren	depends on DM_GPIO
148601800beSStephen Warren	help
149601800beSStephen Warren	  Support for the GPIO controller contained in NVIDIA Tegra20 through
150601800beSStephen Warren	  Tegra210.
151601800beSStephen Warren
152074a1fddSStephen Warrenconfig TEGRA186_GPIO
153074a1fddSStephen Warren	bool "Tegra186 GPIO driver"
154074a1fddSStephen Warren	depends on DM_GPIO
155074a1fddSStephen Warren	help
156074a1fddSStephen Warren	  Support for the GPIO controller contained in NVIDIA Tegra186. This
157074a1fddSStephen Warren	  covers both the "main" and "AON" controller instances, even though
158074a1fddSStephen Warren	  they have slightly different register layout.
159074a1fddSStephen Warren
160b9a66b63SMasahiro Yamadaconfig GPIO_UNIPHIER
161b9a66b63SMasahiro Yamada	bool "UniPhier GPIO"
162b9a66b63SMasahiro Yamada	depends on ARCH_UNIPHIER
163b9a66b63SMasahiro Yamada	help
164b9a66b63SMasahiro Yamada	  Say yes here to support UniPhier GPIOs.
165b9a66b63SMasahiro Yamada
166d348a943SBhuvanchandra DVconfig VYBRID_GPIO
167d348a943SBhuvanchandra DV	bool "Vybrid GPIO driver"
168d348a943SBhuvanchandra DV	depends on DM
169d348a943SBhuvanchandra DV	default n
170d348a943SBhuvanchandra DV	help
171d348a943SBhuvanchandra DV	  Say yes here to support Vybrid vf610 GPIOs.
1720b11dbf7SMasahiro Yamada
173386d934eSPurna Chandra Mandalconfig PIC32_GPIO
174386d934eSPurna Chandra Mandal	bool "Microchip PIC32 GPIO driver"
175386d934eSPurna Chandra Mandal	depends on DM_GPIO && MACH_PIC32
176386d934eSPurna Chandra Mandal	default y
177386d934eSPurna Chandra Mandal	help
178386d934eSPurna Chandra Mandal	  Say yes here to support Microchip PIC32 GPIOs.
179386d934eSPurna Chandra Mandal
18077417102SVikas Manochaconfig STM32F7_GPIO
18177417102SVikas Manocha	bool "ST STM32 GPIO driver"
18277417102SVikas Manocha	depends on DM_GPIO && STM32
18377417102SVikas Manocha	default y
18477417102SVikas Manocha	help
18577417102SVikas Manocha	  Device model driver support for STM32 GPIO controller. It should be
18677417102SVikas Manocha	  usable on many stm32 families like stm32f4 & stm32H7.
18777417102SVikas Manocha	  Tested on STM32F7.
18877417102SVikas Manocha
189704d9a64SStefan Roeseconfig MVEBU_GPIO
190704d9a64SStefan Roese	bool "Marvell MVEBU GPIO driver"
191704d9a64SStefan Roese	depends on DM_GPIO && ARCH_MVEBU
192704d9a64SStefan Roese	default y
193704d9a64SStefan Roese	help
194704d9a64SStefan Roese	  Say yes here to support Marvell MVEBU (Armada XP/38x) GPIOs.
195704d9a64SStefan Roese
1962978ae23SSiva Durga Prasad Paladuguconfig ZYNQ_GPIO
1972978ae23SSiva Durga Prasad Paladugu	bool "Zynq GPIO driver"
198251ab06dSSiva Durga Prasad Paladugu	depends on DM_GPIO && (ARCH_ZYNQ || ARCH_ZYNQMP)
1992978ae23SSiva Durga Prasad Paladugu	default y
2002978ae23SSiva Durga Prasad Paladugu	help
2012978ae23SSiva Durga Prasad Paladugu	  Supports GPIO access on Zynq SoC.
2022978ae23SSiva Durga Prasad Paladugu
2039300f711SPeng Fanconfig DM_74X164
2049300f711SPeng Fan	bool "74x164 serial-in/parallel-out 8-bits shift register"
2059300f711SPeng Fan	depends on DM_GPIO
2069300f711SPeng Fan	help
2079300f711SPeng Fan	  Driver for 74x164 compatible serial-in/parallel-out 8-outputs
2089300f711SPeng Fan	  shift registers, such as 74lv165, 74hc595.
2099300f711SPeng Fan	  This driver can be used to provide access to more gpio outputs.
2109300f711SPeng Fan
21103773439SPeng Fanconfig DM_PCA953X
21203773439SPeng Fan	bool "PCA95[357]x, PCA9698, TCA64xx, and MAX7310 I/O ports"
21303773439SPeng Fan	depends on DM_GPIO
21403773439SPeng Fan	help
21503773439SPeng Fan	  Say yes here to provide access to several register-oriented
21603773439SPeng Fan	  SMBus I/O expanders, made mostly by NXP or TI.  Compatible
21703773439SPeng Fan	  models include:
21803773439SPeng Fan
21903773439SPeng Fan	  4 bits:	pca9536, pca9537
22003773439SPeng Fan
22103773439SPeng Fan	  8 bits:	max7310, max7315, pca6107, pca9534, pca9538, pca9554,
22203773439SPeng Fan			pca9556, pca9557, pca9574, tca6408, xra1202
22303773439SPeng Fan
22403773439SPeng Fan	  16 bits:	max7312, max7313, pca9535, pca9539, pca9555, pca9575,
22503773439SPeng Fan			tca6416
22603773439SPeng Fan
22703773439SPeng Fan	  24 bits:	tca6424
22803773439SPeng Fan
22903773439SPeng Fan	  40 bits:	pca9505, pca9698
23003773439SPeng Fan
23103773439SPeng Fan	  Now, max 24 bits chips and PCA953X compatible chips are
23203773439SPeng Fan	  supported
23307d31f8fSmario.six@gdsys.cc
23407d31f8fSmario.six@gdsys.ccconfig MPC85XX_GPIO
23507d31f8fSmario.six@gdsys.cc	bool "Freescale MPC85XX GPIO driver"
23607d31f8fSmario.six@gdsys.cc	depends on DM_GPIO
23707d31f8fSmario.six@gdsys.cc	help
23807d31f8fSmario.six@gdsys.cc	  This driver supports the built-in GPIO controller of MPC85XX CPUs.
23907d31f8fSmario.six@gdsys.cc	  Each GPIO bank is identified by its own entry in the device tree,
24007d31f8fSmario.six@gdsys.cc	  i.e.
24107d31f8fSmario.six@gdsys.cc
24207d31f8fSmario.six@gdsys.cc	  gpio-controller@fc00 {
24307d31f8fSmario.six@gdsys.cc		#gpio-cells = <2>;
24407d31f8fSmario.six@gdsys.cc		compatible = "fsl,pq3-gpio";
24507d31f8fSmario.six@gdsys.cc		reg = <0xfc00 0x100>
24607d31f8fSmario.six@gdsys.cc	  }
24707d31f8fSmario.six@gdsys.cc
24807d31f8fSmario.six@gdsys.cc	  By default, each bank is assumed to have 32 GPIOs, but the ngpios
24907d31f8fSmario.six@gdsys.cc	  setting is honored, so the number of GPIOs for each bank is
25007d31f8fSmario.six@gdsys.cc	  configurable to match the actual GPIO count of the SoC (e.g. the
25107d31f8fSmario.six@gdsys.cc	  32/32/23 banks of the P1022 SoC).
25207d31f8fSmario.six@gdsys.cc
25351781783Smario.six@gdsys.cc	  Aside from the standard functions of input/output mode, and output
25451781783Smario.six@gdsys.cc	  value setting, the open-drain feature, which can configure individual
25551781783Smario.six@gdsys.cc	  GPIOs to work as open-drain outputs, is supported.
25607d31f8fSmario.six@gdsys.cc
25707d31f8fSmario.six@gdsys.cc	  The driver has been tested on MPC85XX, but it is likely that other
25807d31f8fSmario.six@gdsys.cc	  PowerQUICC III devices will work as well.
2590b11dbf7SMasahiro Yamadaendmenu
260