Merge branch 'master' of git://git.denx.de/u-boot-mpc85xx
[platform/kernel/u-boot.git] / drivers / gpio / Kconfig
1 #
2 # GPIO infrastructure and drivers
3 #
4
5 menu "GPIO Support"
6
7 config 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
17 config ALTERA_PIO
18         bool "Altera PIO driver"
19         depends on DM_GPIO
20         help
21           Select this to enable PIO for Altera devices. Please find
22           details on the "Embedded Peripherals IP User Guide" of Altera.
23
24 config DWAPB_GPIO
25         bool "DWAPB GPIO driver"
26         depends on DM && DM_GPIO
27         default n
28         help
29           Support for the Designware APB GPIO driver.
30
31 config ATMEL_PIO4
32         bool "ATMEL PIO4 driver"
33         depends on DM
34         default n
35         help
36           Say yes here to support the Atmel PIO4 driver.
37           The PIO4 is new version of Atmel PIO controller, which manages
38           up to 128 fully programmable input/output lines. Each I/O line
39           may be dedicated as a general purpose I/O or be assigned to
40           a function of an embedded peripheral.
41
42 config INTEL_BROADWELL_GPIO
43         bool "Intel Broadwell GPIO driver"
44         depends on DM
45         help
46           This driver supports Broadwell U devices which have an expanded
47           GPIO feature set. The difference is large enough to merit a separate
48           driver from the common Intel ICH6 driver. It supports a total of
49           95 GPIOs which can be configured from the device tree.
50
51 config LPC32XX_GPIO
52         bool "LPC32XX GPIO driver"
53         depends on DM
54         default n
55         help
56           Support for the LPC32XX GPIO driver.
57
58 config MSM_GPIO
59         bool "Qualcomm GPIO driver"
60         depends on DM_GPIO
61         default n
62         help
63           Support GPIO controllers on Qualcomm Snapdragon family of SoCs.
64           This controller have single bank (default name "soc"), every
65           gpio has it's own set of registers.
66           Only simple GPIO operations are supported (get/set, change of
67           direction and checking pin function).
68           Supported devices:
69           - APQ8016
70           - MSM8916
71
72 config PM8916_GPIO
73         bool "Qualcomm PM8916 PMIC GPIO/keypad driver"
74         depends on DM_GPIO && PMIC_PM8916
75         help
76           Support for GPIO pins and power/reset buttons found on
77           Qualcomm PM8916 PMIC.
78           Default name for GPIO bank is "pm8916".
79           Power and reset buttons are placed in "pm8916_key" bank and
80           have gpio numbers 0 and 1 respectively.
81
82 config ROCKCHIP_GPIO
83         bool "Rockchip GPIO driver"
84         depends on DM_GPIO
85         help
86           Support GPIO access on Rockchip SoCs. The GPIOs are arranged into
87           a number of banks (different for each SoC type) each with 32 GPIOs.
88           The GPIOs for a device are defined in the device tree with one node
89           for each bank.
90
91 config SANDBOX_GPIO
92         bool "Enable sandbox GPIO driver"
93         depends on SANDBOX && DM && DM_GPIO
94         help
95           This driver supports some simulated GPIOs which can be adjusted
96           using 'back door' functions like sandbox_gpio_set_value(). Then the
97           GPIOs can be inspected through the normal get_get_value()
98           interface. The purpose of this is to allow GPIOs to be used as
99           normal in sandbox, perhaps with test code actually driving the
100           behaviour of those GPIOs.
101
102 config SANDBOX_GPIO_COUNT
103         int "Number of sandbox GPIOs"
104         depends on SANDBOX_GPIO
105         default 128
106         help
107           The sandbox driver can support any number of GPIOs. Generally these
108           are specified using the device tree. But you can also have a number
109           of 'anonymous' GPIOs that do not belong to any device or bank.
110           Select a suitable value depending on your needs.
111
112 config GPIO_UNIPHIER
113         bool "UniPhier GPIO"
114         depends on ARCH_UNIPHIER
115         help
116           Say yes here to support UniPhier GPIOs.
117
118 config VYBRID_GPIO
119         bool "Vybrid GPIO driver"
120         depends on DM
121         default n
122         help
123           Say yes here to support Vybrid vf610 GPIOs.
124
125 config PIC32_GPIO
126         bool "Microchip PIC32 GPIO driver"
127         depends on DM_GPIO && MACH_PIC32
128         default y
129         help
130           Say yes here to support Microchip PIC32 GPIOs.
131
132 config MVEBU_GPIO
133         bool "Marvell MVEBU GPIO driver"
134         depends on DM_GPIO && ARCH_MVEBU
135         default y
136         help
137           Say yes here to support Marvell MVEBU (Armada XP/38x) GPIOs.
138
139 config ZYNQ_GPIO
140         bool "Zynq GPIO driver"
141         depends on DM_GPIO && (ARCH_ZYNQ || ARCH_ZYNQMP)
142         default y
143         help
144           Supports GPIO access on Zynq SoC.
145
146 config DM_74X164
147         bool "74x164 serial-in/parallel-out 8-bits shift register"
148         depends on DM_GPIO
149         help
150           Driver for 74x164 compatible serial-in/parallel-out 8-outputs
151           shift registers, such as 74lv165, 74hc595.
152           This driver can be used to provide access to more gpio outputs.
153
154 config DM_PCA953X
155         bool "PCA95[357]x, PCA9698, TCA64xx, and MAX7310 I/O ports"
156         depends on DM_GPIO
157         help
158           Say yes here to provide access to several register-oriented
159           SMBus I/O expanders, made mostly by NXP or TI.  Compatible
160           models include:
161
162           4 bits:       pca9536, pca9537
163
164           8 bits:       max7310, max7315, pca6107, pca9534, pca9538, pca9554,
165                         pca9556, pca9557, pca9574, tca6408, xra1202
166
167           16 bits:      max7312, max7313, pca9535, pca9539, pca9555, pca9575,
168                         tca6416
169
170           24 bits:      tca6424
171
172           40 bits:      pca9505, pca9698
173
174           Now, max 24 bits chips and PCA953X compatible chips are
175           supported
176 endmenu