xref: /openbmc/u-boot/drivers/gpio/Kconfig (revision d665eb6114c91f433473d4af8ff4e87e021b3ad8)
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
24e30a70c2SMarek Vasutconfig DWAPB_GPIO
25e30a70c2SMarek Vasut	bool "DWAPB GPIO driver"
26e30a70c2SMarek Vasut	depends on DM && DM_GPIO
27e30a70c2SMarek Vasut	default n
28e30a70c2SMarek Vasut	help
29e30a70c2SMarek Vasut	  Support for the Designware APB GPIO driver.
30e30a70c2SMarek Vasut
312c62c56aSWenyou Yangconfig ATMEL_PIO4
322c62c56aSWenyou Yang	bool "ATMEL PIO4 driver"
33ee3311dbSWenyou Yang	depends on DM_GPIO
342c62c56aSWenyou Yang	default n
352c62c56aSWenyou Yang	help
362c62c56aSWenyou Yang	  Say yes here to support the Atmel PIO4 driver.
372c62c56aSWenyou Yang	  The PIO4 is new version of Atmel PIO controller, which manages
382c62c56aSWenyou Yang	  up to 128 fully programmable input/output lines. Each I/O line
392c62c56aSWenyou Yang	  may be dedicated as a general purpose I/O or be assigned to
402c62c56aSWenyou Yang	  a function of an embedded peripheral.
412c62c56aSWenyou Yang
4264b17977SSimon Glassconfig INTEL_BROADWELL_GPIO
4364b17977SSimon Glass	bool "Intel Broadwell GPIO driver"
4464b17977SSimon Glass	depends on DM
4564b17977SSimon Glass	help
4664b17977SSimon Glass	  This driver supports Broadwell U devices which have an expanded
4764b17977SSimon Glass	  GPIO feature set. The difference is large enough to merit a separate
4864b17977SSimon Glass	  driver from the common Intel ICH6 driver. It supports a total of
4964b17977SSimon Glass	  95 GPIOs which can be configured from the device tree.
5064b17977SSimon Glass
51*d665eb61SPeng Fanconfig IMX_RGPIO2P
52*d665eb61SPeng Fan	bool "i.MX7ULP RGPIO2P driver"
53*d665eb61SPeng Fan	depends on DM
54*d665eb61SPeng Fan	default n
55*d665eb61SPeng Fan	help
56*d665eb61SPeng Fan	  This driver supports i.MX7ULP Rapid GPIO2P controller.
57*d665eb61SPeng Fan
58606f7047SAlbert ARIBAUD \(3ADEV\)config LPC32XX_GPIO
59606f7047SAlbert ARIBAUD \(3ADEV\)	bool "LPC32XX GPIO driver"
60606f7047SAlbert ARIBAUD \(3ADEV\)	depends on DM
61606f7047SAlbert ARIBAUD \(3ADEV\)	default n
62606f7047SAlbert ARIBAUD \(3ADEV\)	help
63606f7047SAlbert ARIBAUD \(3ADEV\)	  Support for the LPC32XX GPIO driver.
64d79c50afSSimon Glass
6581a87e18SMateusz Kulikowskiconfig MSM_GPIO
6681a87e18SMateusz Kulikowski	bool "Qualcomm GPIO driver"
6781a87e18SMateusz Kulikowski	depends on DM_GPIO
6881a87e18SMateusz Kulikowski	default n
6981a87e18SMateusz Kulikowski	help
7081a87e18SMateusz Kulikowski	  Support GPIO controllers on Qualcomm Snapdragon family of SoCs.
7181a87e18SMateusz Kulikowski	  This controller have single bank (default name "soc"), every
7281a87e18SMateusz Kulikowski	  gpio has it's own set of registers.
7381a87e18SMateusz Kulikowski	  Only simple GPIO operations are supported (get/set, change of
7481a87e18SMateusz Kulikowski	  direction and checking pin function).
7581a87e18SMateusz Kulikowski	  Supported devices:
7681a87e18SMateusz Kulikowski	  - APQ8016
7781a87e18SMateusz Kulikowski	  - MSM8916
7881a87e18SMateusz Kulikowski
79120800dfSMateusz Kulikowskiconfig PM8916_GPIO
80120800dfSMateusz Kulikowski	bool "Qualcomm PM8916 PMIC GPIO/keypad driver"
81120800dfSMateusz Kulikowski	depends on DM_GPIO && PMIC_PM8916
82120800dfSMateusz Kulikowski	help
83120800dfSMateusz Kulikowski	  Support for GPIO pins and power/reset buttons found on
84120800dfSMateusz Kulikowski	  Qualcomm PM8916 PMIC.
85120800dfSMateusz Kulikowski	  Default name for GPIO bank is "pm8916".
86120800dfSMateusz Kulikowski	  Power and reset buttons are placed in "pm8916_key" bank and
87120800dfSMateusz Kulikowski          have gpio numbers 0 and 1 respectively.
88120800dfSMateusz Kulikowski
895746b0dfSVignesh Rconfig PCF8575_GPIO
905746b0dfSVignesh R	bool "PCF8575 I2C GPIO Expander driver"
915746b0dfSVignesh R	depends on DM_GPIO && DM_I2C
925746b0dfSVignesh R	help
935746b0dfSVignesh R	 Support for PCF8575 I2C 16-bit GPIO expander. Most of these
945746b0dfSVignesh R	 chips are from NXP and TI.
955746b0dfSVignesh R
961f8f7730SSimon Glassconfig ROCKCHIP_GPIO
971f8f7730SSimon Glass	bool "Rockchip GPIO driver"
981f8f7730SSimon Glass	depends on DM_GPIO
991f8f7730SSimon Glass	help
1001f8f7730SSimon Glass	  Support GPIO access on Rockchip SoCs. The GPIOs are arranged into
1011f8f7730SSimon Glass	  a number of banks (different for each SoC type) each with 32 GPIOs.
1021f8f7730SSimon Glass	  The GPIOs for a device are defined in the device tree with one node
1031f8f7730SSimon Glass	  for each bank.
1041f8f7730SSimon Glass
105d79c50afSSimon Glassconfig SANDBOX_GPIO
106d79c50afSSimon Glass	bool "Enable sandbox GPIO driver"
107d79c50afSSimon Glass	depends on SANDBOX && DM && DM_GPIO
108d79c50afSSimon Glass	help
109d79c50afSSimon Glass	  This driver supports some simulated GPIOs which can be adjusted
110d79c50afSSimon Glass	  using 'back door' functions like sandbox_gpio_set_value(). Then the
111d79c50afSSimon Glass	  GPIOs can be inspected through the normal get_get_value()
112d79c50afSSimon Glass	  interface. The purpose of this is to allow GPIOs to be used as
113d79c50afSSimon Glass	  normal in sandbox, perhaps with test code actually driving the
114d79c50afSSimon Glass	  behaviour of those GPIOs.
115d79c50afSSimon Glass
116d79c50afSSimon Glassconfig SANDBOX_GPIO_COUNT
117d79c50afSSimon Glass	int "Number of sandbox GPIOs"
118d79c50afSSimon Glass	depends on SANDBOX_GPIO
119d79c50afSSimon Glass	default 128
120d79c50afSSimon Glass	help
121d79c50afSSimon Glass	  The sandbox driver can support any number of GPIOs. Generally these
122d79c50afSSimon Glass	  are specified using the device tree. But you can also have a number
123d79c50afSSimon Glass	  of 'anonymous' GPIOs that do not belong to any device or bank.
124d79c50afSSimon Glass	  Select a suitable value depending on your needs.
125d348a943SBhuvanchandra DV
126601800beSStephen Warrenconfig TEGRA_GPIO
127601800beSStephen Warren	bool "Tegra20..210 GPIO driver"
128601800beSStephen Warren	depends on DM_GPIO
129601800beSStephen Warren	help
130601800beSStephen Warren	  Support for the GPIO controller contained in NVIDIA Tegra20 through
131601800beSStephen Warren	  Tegra210.
132601800beSStephen Warren
133074a1fddSStephen Warrenconfig TEGRA186_GPIO
134074a1fddSStephen Warren	bool "Tegra186 GPIO driver"
135074a1fddSStephen Warren	depends on DM_GPIO
136074a1fddSStephen Warren	help
137074a1fddSStephen Warren	  Support for the GPIO controller contained in NVIDIA Tegra186. This
138074a1fddSStephen Warren	  covers both the "main" and "AON" controller instances, even though
139074a1fddSStephen Warren	  they have slightly different register layout.
140074a1fddSStephen Warren
141b9a66b63SMasahiro Yamadaconfig GPIO_UNIPHIER
142b9a66b63SMasahiro Yamada	bool "UniPhier GPIO"
143b9a66b63SMasahiro Yamada	depends on ARCH_UNIPHIER
144b9a66b63SMasahiro Yamada	help
145b9a66b63SMasahiro Yamada	  Say yes here to support UniPhier GPIOs.
146b9a66b63SMasahiro Yamada
147d348a943SBhuvanchandra DVconfig VYBRID_GPIO
148d348a943SBhuvanchandra DV	bool "Vybrid GPIO driver"
149d348a943SBhuvanchandra DV	depends on DM
150d348a943SBhuvanchandra DV	default n
151d348a943SBhuvanchandra DV	help
152d348a943SBhuvanchandra DV	  Say yes here to support Vybrid vf610 GPIOs.
1530b11dbf7SMasahiro Yamada
154386d934eSPurna Chandra Mandalconfig PIC32_GPIO
155386d934eSPurna Chandra Mandal	bool "Microchip PIC32 GPIO driver"
156386d934eSPurna Chandra Mandal	depends on DM_GPIO && MACH_PIC32
157386d934eSPurna Chandra Mandal	default y
158386d934eSPurna Chandra Mandal	help
159386d934eSPurna Chandra Mandal	  Say yes here to support Microchip PIC32 GPIOs.
160386d934eSPurna Chandra Mandal
161704d9a64SStefan Roeseconfig MVEBU_GPIO
162704d9a64SStefan Roese	bool "Marvell MVEBU GPIO driver"
163704d9a64SStefan Roese	depends on DM_GPIO && ARCH_MVEBU
164704d9a64SStefan Roese	default y
165704d9a64SStefan Roese	help
166704d9a64SStefan Roese	  Say yes here to support Marvell MVEBU (Armada XP/38x) GPIOs.
167704d9a64SStefan Roese
1682978ae23SSiva Durga Prasad Paladuguconfig ZYNQ_GPIO
1692978ae23SSiva Durga Prasad Paladugu	bool "Zynq GPIO driver"
170251ab06dSSiva Durga Prasad Paladugu	depends on DM_GPIO && (ARCH_ZYNQ || ARCH_ZYNQMP)
1712978ae23SSiva Durga Prasad Paladugu	default y
1722978ae23SSiva Durga Prasad Paladugu	help
1732978ae23SSiva Durga Prasad Paladugu	  Supports GPIO access on Zynq SoC.
1742978ae23SSiva Durga Prasad Paladugu
1759300f711SPeng Fanconfig DM_74X164
1769300f711SPeng Fan	bool "74x164 serial-in/parallel-out 8-bits shift register"
1779300f711SPeng Fan	depends on DM_GPIO
1789300f711SPeng Fan	help
1799300f711SPeng Fan	  Driver for 74x164 compatible serial-in/parallel-out 8-outputs
1809300f711SPeng Fan	  shift registers, such as 74lv165, 74hc595.
1819300f711SPeng Fan	  This driver can be used to provide access to more gpio outputs.
1829300f711SPeng Fan
18303773439SPeng Fanconfig DM_PCA953X
18403773439SPeng Fan	bool "PCA95[357]x, PCA9698, TCA64xx, and MAX7310 I/O ports"
18503773439SPeng Fan	depends on DM_GPIO
18603773439SPeng Fan	help
18703773439SPeng Fan	  Say yes here to provide access to several register-oriented
18803773439SPeng Fan	  SMBus I/O expanders, made mostly by NXP or TI.  Compatible
18903773439SPeng Fan	  models include:
19003773439SPeng Fan
19103773439SPeng Fan	  4 bits:	pca9536, pca9537
19203773439SPeng Fan
19303773439SPeng Fan	  8 bits:	max7310, max7315, pca6107, pca9534, pca9538, pca9554,
19403773439SPeng Fan			pca9556, pca9557, pca9574, tca6408, xra1202
19503773439SPeng Fan
19603773439SPeng Fan	  16 bits:	max7312, max7313, pca9535, pca9539, pca9555, pca9575,
19703773439SPeng Fan			tca6416
19803773439SPeng Fan
19903773439SPeng Fan	  24 bits:	tca6424
20003773439SPeng Fan
20103773439SPeng Fan	  40 bits:	pca9505, pca9698
20203773439SPeng Fan
20303773439SPeng Fan	  Now, max 24 bits chips and PCA953X compatible chips are
20403773439SPeng Fan	  supported
20507d31f8fSmario.six@gdsys.cc
20607d31f8fSmario.six@gdsys.ccconfig MPC85XX_GPIO
20707d31f8fSmario.six@gdsys.cc	bool "Freescale MPC85XX GPIO driver"
20807d31f8fSmario.six@gdsys.cc	depends on DM_GPIO
20907d31f8fSmario.six@gdsys.cc	help
21007d31f8fSmario.six@gdsys.cc	  This driver supports the built-in GPIO controller of MPC85XX CPUs.
21107d31f8fSmario.six@gdsys.cc	  Each GPIO bank is identified by its own entry in the device tree,
21207d31f8fSmario.six@gdsys.cc	  i.e.
21307d31f8fSmario.six@gdsys.cc
21407d31f8fSmario.six@gdsys.cc	  gpio-controller@fc00 {
21507d31f8fSmario.six@gdsys.cc		#gpio-cells = <2>;
21607d31f8fSmario.six@gdsys.cc		compatible = "fsl,pq3-gpio";
21707d31f8fSmario.six@gdsys.cc		reg = <0xfc00 0x100>
21807d31f8fSmario.six@gdsys.cc	  }
21907d31f8fSmario.six@gdsys.cc
22007d31f8fSmario.six@gdsys.cc	  By default, each bank is assumed to have 32 GPIOs, but the ngpios
22107d31f8fSmario.six@gdsys.cc	  setting is honored, so the number of GPIOs for each bank is
22207d31f8fSmario.six@gdsys.cc	  configurable to match the actual GPIO count of the SoC (e.g. the
22307d31f8fSmario.six@gdsys.cc	  32/32/23 banks of the P1022 SoC).
22407d31f8fSmario.six@gdsys.cc
22551781783Smario.six@gdsys.cc	  Aside from the standard functions of input/output mode, and output
22651781783Smario.six@gdsys.cc	  value setting, the open-drain feature, which can configure individual
22751781783Smario.six@gdsys.cc	  GPIOs to work as open-drain outputs, is supported.
22807d31f8fSmario.six@gdsys.cc
22907d31f8fSmario.six@gdsys.cc	  The driver has been tested on MPC85XX, but it is likely that other
23007d31f8fSmario.six@gdsys.cc	  PowerQUICC III devices will work as well.
2310b11dbf7SMasahiro Yamadaendmenu
232