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