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