ce126955212ccbe716d4990f2d540f68a9d8524c
[platform/kernel/linux-rpi.git] / drivers / pinctrl / Kconfig
1 #
2 # PINCTRL infrastructure and drivers
3 #
4
5 menuconfig PINCTRL
6         bool "Pin controllers"
7
8 if PINCTRL
9
10 config GENERIC_PINCTRL_GROUPS
11         bool
12
13 config PINMUX
14         bool "Support pin multiplexing controllers" if COMPILE_TEST
15
16 config GENERIC_PINMUX_FUNCTIONS
17         bool
18         select PINMUX
19
20 config PINCONF
21         bool "Support pin configuration controllers" if COMPILE_TEST
22
23 config GENERIC_PINCONF
24         bool
25         select PINCONF
26
27 config DEBUG_PINCTRL
28         bool "Debug PINCTRL calls"
29         depends on DEBUG_KERNEL
30         help
31           Say Y here to add some extra checks and diagnostics to PINCTRL calls.
32
33 config PINCTRL_ADI2
34         bool "ADI pin controller driver"
35         depends on (BF54x || BF60x)
36         depends on !GPIO_ADI
37         select PINMUX
38         select IRQ_DOMAIN
39         help
40           This is the pin controller and gpio driver for ADI BF54x, BF60x and
41           future processors. This option is selected automatically when specific
42           machine and arch are selected to build.
43
44 config PINCTRL_ARTPEC6
45         bool "Axis ARTPEC-6 pin controller driver"
46         depends on MACH_ARTPEC6
47         select PINMUX
48         select GENERIC_PINCONF
49         help
50           This is the driver for the Axis ARTPEC-6 pin controller. This driver
51           supports pin function multiplexing as well as pin bias and drive
52           strength configuration. Device tree integration instructions can be
53           found in Documentation/devicetree/bindings/pinctrl/axis,artpec6-pinctrl.txt
54
55 config PINCTRL_AS3722
56         tristate "Pinctrl and GPIO driver for ams AS3722 PMIC"
57         depends on MFD_AS3722 && GPIOLIB
58         select PINMUX
59         select GENERIC_PINCONF
60         help
61           AS3722 device supports the configuration of GPIO pins for different
62           functionality. This driver supports the pinmux, push-pull and
63           open drain configuration for the GPIO pins of AS3722 devices. It also
64           supports the GPIO functionality through gpiolib.
65
66 config PINCTRL_AXP209
67         tristate "X-Powers AXP209 PMIC pinctrl and GPIO Support"
68         depends on MFD_AXP20X
69         help
70           AXP PMICs provides multiple GPIOs that can be muxed for different
71           functions. This driver bundles a pinctrl driver to select the function
72           muxing and a GPIO driver to handle the GPIO when the GPIO function is
73           selected.
74           Say yes to enable pinctrl and GPIO support for the AXP209 PMIC
75
76 config PINCTRL_BF54x
77         def_bool y if BF54x
78         select PINCTRL_ADI2
79
80 config PINCTRL_BF60x
81         def_bool y if BF60x
82         select PINCTRL_ADI2
83
84 config PINCTRL_AT91
85         bool "AT91 pinctrl driver"
86         depends on OF
87         depends on ARCH_AT91
88         select PINMUX
89         select PINCONF
90         select GPIOLIB
91         select OF_GPIO
92         select GPIOLIB_IRQCHIP
93         help
94           Say Y here to enable the at91 pinctrl driver
95
96 config PINCTRL_AT91PIO4
97         bool "AT91 PIO4 pinctrl driver"
98         depends on OF
99         depends on ARCH_AT91
100         select PINMUX
101         select GENERIC_PINCONF
102         select GPIOLIB
103         select GPIOLIB_IRQCHIP
104         select OF_GPIO
105         help
106           Say Y here to enable the at91 pinctrl/gpio driver for Atmel PIO4
107           controller available on sama5d2 SoC.
108
109 config PINCTRL_AMD
110         tristate "AMD GPIO pin control"
111         depends on HAS_IOMEM
112         select GPIOLIB
113         select GPIOLIB_IRQCHIP
114         select PINMUX
115         select PINCONF
116         select GENERIC_PINCONF
117         help
118           driver for memory mapped GPIO functionality on AMD platforms
119           (x86 or arm).Most pins are usually muxed to some other
120           functionality by firmware,so only a small amount is available
121           for gpio use.
122
123           Requires ACPI/FDT device enumeration code to set up a platform
124           device.
125
126 config PINCTRL_DA850_PUPD
127         tristate "TI DA850/OMAP-L138/AM18XX pullup/pulldown groups"
128         depends on OF && (ARCH_DAVINCI_DA850 || COMPILE_TEST)
129         select PINCONF
130         select GENERIC_PINCONF
131         help
132           Driver for TI DA850/OMAP-L138/AM18XX pinconf. Used to control
133           pullup/pulldown pin groups.
134
135 config PINCTRL_DIGICOLOR
136         bool
137         depends on OF && (ARCH_DIGICOLOR || COMPILE_TEST)
138         select PINMUX
139         select GENERIC_PINCONF
140
141 config PINCTRL_LANTIQ
142         bool
143         depends on LANTIQ
144         select PINMUX
145         select PINCONF
146
147 config PINCTRL_LPC18XX
148         bool "NXP LPC18XX/43XX SCU pinctrl driver"
149         depends on OF && (ARCH_LPC18XX || COMPILE_TEST)
150         default ARCH_LPC18XX
151         select PINMUX
152         select GENERIC_PINCONF
153         help
154           Pinctrl driver for NXP LPC18xx/43xx System Control Unit (SCU).
155
156 config PINCTRL_FALCON
157         bool
158         depends on SOC_FALCON
159         depends on PINCTRL_LANTIQ
160
161 config PINCTRL_GEMINI
162         bool
163         depends on ARCH_GEMINI
164         default ARCH_GEMINI
165         select PINMUX
166         select GENERIC_PINCONF
167         select MFD_SYSCON
168
169 config PINCTRL_MCP23S08
170         tristate "Microchip MCP23xxx I/O expander"
171         depends on SPI_MASTER || I2C
172         depends on I2C || I2C=n
173         select GPIOLIB
174         select GPIOLIB_IRQCHIP
175         select REGMAP_I2C if I2C
176         select REGMAP_SPI if SPI_MASTER
177         select GENERIC_PINCONF
178         help
179           SPI/I2C driver for Microchip MCP23S08/MCP23S17/MCP23008/MCP23017
180           I/O expanders.
181           This provides a GPIO interface supporting inputs and outputs.
182           The I2C versions of the chips can be used as interrupt-controller.
183
184 config PINCTRL_OXNAS
185         bool
186         depends on OF
187         select PINMUX
188         select PINCONF
189         select GENERIC_PINCONF
190         select GPIOLIB
191         select OF_GPIO
192         select GPIOLIB_IRQCHIP
193         select MFD_SYSCON
194
195 config PINCTRL_ROCKCHIP
196         bool
197         select PINMUX
198         select GENERIC_PINCONF
199         select GENERIC_IRQ_CHIP
200         select MFD_SYSCON
201
202 config PINCTRL_RZA1
203         bool "Renesas RZ/A1 gpio and pinctrl driver"
204         depends on OF
205         depends on ARCH_R7S72100 || COMPILE_TEST
206         select GPIOLIB
207         select GENERIC_PINCTRL_GROUPS
208         select GENERIC_PINMUX_FUNCTIONS
209         select GENERIC_PINCONF
210         help
211           This selects pinctrl driver for Renesas RZ/A1 platforms.
212
213 config PINCTRL_SINGLE
214         tristate "One-register-per-pin type device tree based pinctrl driver"
215         depends on OF
216         depends on HAS_IOMEM
217         select GENERIC_PINCTRL_GROUPS
218         select GENERIC_PINMUX_FUNCTIONS
219         select GENERIC_PINCONF
220         help
221           This selects the device tree based generic pinctrl driver.
222
223 config PINCTRL_SIRF
224         bool "CSR SiRFprimaII pin controller driver"
225         depends on ARCH_SIRF
226         select PINMUX
227         select PINCONF
228         select GENERIC_PINCONF
229         select GPIOLIB_IRQCHIP
230
231 config PINCTRL_SX150X
232         bool "Semtech SX150x I2C GPIO expander pinctrl driver"
233         depends on I2C=y
234         select PINMUX
235         select PINCONF
236         select GENERIC_PINCONF
237         select GPIOLIB
238         select GPIOLIB_IRQCHIP
239         select REGMAP
240         help
241           Say yes here to provide support for Semtech SX150x-series I2C
242           GPIO expanders as pinctrl module.
243           Compatible models include:
244           - 8 bits:  sx1508q, sx1502q
245           - 16 bits: sx1509q, sx1506q
246
247 config PINCTRL_PISTACHIO
248         def_bool y if MACH_PISTACHIO
249         depends on GPIOLIB
250         select PINMUX
251         select GENERIC_PINCONF
252         select GPIOLIB_IRQCHIP
253         select OF_GPIO
254
255 config PINCTRL_ST
256         bool
257         depends on OF
258         select PINMUX
259         select PINCONF
260         select GPIOLIB_IRQCHIP
261
262 config PINCTRL_TZ1090
263         bool "Toumaz Xenif TZ1090 pin control driver"
264         depends on SOC_TZ1090
265         select PINMUX
266         select GENERIC_PINCONF
267
268 config PINCTRL_TZ1090_PDC
269         bool "Toumaz Xenif TZ1090 PDC pin control driver"
270         depends on SOC_TZ1090
271         select PINMUX
272         select PINCONF
273
274 config PINCTRL_U300
275         bool "U300 pin controller driver"
276         depends on ARCH_U300
277         select PINMUX
278         select GENERIC_PINCONF
279
280 config PINCTRL_COH901
281         bool "ST-Ericsson U300 COH 901 335/571 GPIO"
282         depends on GPIOLIB && ARCH_U300 && PINCTRL_U300
283         select GPIOLIB_IRQCHIP
284         help
285           Say yes here to support GPIO interface on ST-Ericsson U300.
286           The names of the two IP block variants supported are
287           COH 901 335 and COH 901 571/3. They contain 3, 5 or 7
288           ports of 8 GPIO pins each.
289
290 config PINCTRL_MAX77620
291         tristate "MAX77620/MAX20024 Pincontrol support"
292         depends on MFD_MAX77620 && OF
293         select PINMUX
294         select GENERIC_PINCONF
295         help
296           Say Yes here to enable Pin control support for Maxim PMIC MAX77620.
297           This PMIC has 8 GPIO pins that work as GPIO as well as special
298           function in alternate mode. This driver also configure push-pull,
299           open drain, FPS slots etc.
300
301 config PINCTRL_PALMAS
302         tristate "Pinctrl driver for the PALMAS Series MFD devices"
303         depends on OF && MFD_PALMAS
304         select PINMUX
305         select GENERIC_PINCONF
306         help
307           Palmas device supports the configuration of pins for different
308           functionality. This driver supports the pinmux, push-pull and
309           open drain configuration for the Palmas series devices like
310           TPS65913, TPS80036 etc.
311
312 config PINCTRL_PIC32
313         bool "Microchip PIC32 pin controller driver"
314         depends on OF
315         depends on MACH_PIC32
316         select PINMUX
317         select GENERIC_PINCONF
318         select GPIOLIB_IRQCHIP
319         select OF_GPIO
320         help
321           This is the pin controller and gpio driver for Microchip PIC32
322           microcontrollers. This option is selected automatically when specific
323           machine and arch are selected to build.
324
325 config PINCTRL_PIC32MZDA
326         def_bool y if PIC32MZDA
327         select PINCTRL_PIC32
328
329 config PINCTRL_ZYNQ
330         bool "Pinctrl driver for Xilinx Zynq"
331         depends on ARCH_ZYNQ
332         select PINMUX
333         select GENERIC_PINCONF
334         help
335           This selects the pinctrl driver for Xilinx Zynq.
336
337 config PINCTRL_INGENIC
338         bool "Pinctrl driver for the Ingenic JZ47xx SoCs"
339         default y
340         depends on OF
341         depends on MACH_INGENIC || COMPILE_TEST
342         select GENERIC_PINCONF
343         select GENERIC_PINCTRL_GROUPS
344         select GENERIC_PINMUX_FUNCTIONS
345         select REGMAP_MMIO
346
347 config PINCTRL_RK805
348         tristate "Pinctrl and GPIO driver for RK805 PMIC"
349         depends on MFD_RK808
350         select GPIOLIB
351         select PINMUX
352         select GENERIC_PINCONF
353         help
354           This selects the pinctrl driver for RK805.
355
356 source "drivers/pinctrl/aspeed/Kconfig"
357 source "drivers/pinctrl/bcm/Kconfig"
358 source "drivers/pinctrl/berlin/Kconfig"
359 source "drivers/pinctrl/freescale/Kconfig"
360 source "drivers/pinctrl/intel/Kconfig"
361 source "drivers/pinctrl/mvebu/Kconfig"
362 source "drivers/pinctrl/nomadik/Kconfig"
363 source "drivers/pinctrl/pxa/Kconfig"
364 source "drivers/pinctrl/qcom/Kconfig"
365 source "drivers/pinctrl/samsung/Kconfig"
366 source "drivers/pinctrl/sh-pfc/Kconfig"
367 source "drivers/pinctrl/spear/Kconfig"
368 source "drivers/pinctrl/sprd/Kconfig"
369 source "drivers/pinctrl/stm32/Kconfig"
370 source "drivers/pinctrl/sunxi/Kconfig"
371 source "drivers/pinctrl/tegra/Kconfig"
372 source "drivers/pinctrl/ti/Kconfig"
373 source "drivers/pinctrl/uniphier/Kconfig"
374 source "drivers/pinctrl/vt8500/Kconfig"
375 source "drivers/pinctrl/mediatek/Kconfig"
376 source "drivers/pinctrl/zte/Kconfig"
377 source "drivers/pinctrl/meson/Kconfig"
378
379 config PINCTRL_XWAY
380         bool
381         depends on SOC_TYPE_XWAY
382         depends on PINCTRL_LANTIQ
383
384 config PINCTRL_TB10X
385         bool
386         depends on OF && ARC_PLAT_TB10X
387         select GPIOLIB
388
389 endif