xref: /openbmc/linux/drivers/pinctrl/Kconfig (revision 83f865d7)
1# SPDX-License-Identifier: GPL-2.0-only
2#
3# PINCTRL infrastructure and drivers
4#
5
6menuconfig PINCTRL
7	bool "Pin controllers"
8
9if PINCTRL
10
11config GENERIC_PINCTRL_GROUPS
12	bool
13
14config PINMUX
15	bool "Support pin multiplexing controllers" if COMPILE_TEST
16
17config GENERIC_PINMUX_FUNCTIONS
18	bool
19	select PINMUX
20
21config PINCONF
22	bool "Support pin configuration controllers" if COMPILE_TEST
23
24config GENERIC_PINCONF
25	bool
26	select PINCONF
27
28config 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
34config 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
45config 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
56config 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
70config 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
82config 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
95config 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
113config 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
121config 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
130config 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
142config PINCTRL_DIGICOLOR
143	bool
144	depends on OF && (ARCH_DIGICOLOR || COMPILE_TEST)
145	select PINMUX
146	select GENERIC_PINCONF
147
148config PINCTRL_LANTIQ
149	bool
150	depends on LANTIQ
151	select PINMUX
152	select PINCONF
153
154config 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
163config PINCTRL_FALCON
164	bool
165	depends on SOC_FALCON
166	depends on PINCTRL_LANTIQ
167
168config 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
176config PINCTRL_MCP23S08_I2C
177	tristate
178	select REGMAP_I2C
179
180config PINCTRL_MCP23S08_SPI
181	tristate
182	select REGMAP_SPI
183
184config 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
198config 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
209config PINCTRL_ROCKCHIP
210	bool
211	depends on OF
212	select PINMUX
213	select GENERIC_PINCONF
214	select GENERIC_IRQ_CHIP
215	select MFD_SYSCON
216	select OF_GPIO
217
218config PINCTRL_SINGLE
219	tristate "One-register-per-pin type device tree based pinctrl driver"
220	depends on OF
221	depends on HAS_IOMEM
222	select GENERIC_PINCTRL_GROUPS
223	select GENERIC_PINMUX_FUNCTIONS
224	select GENERIC_PINCONF
225	help
226	  This selects the device tree based generic pinctrl driver.
227
228config PINCTRL_SIRF
229	bool "CSR SiRFprimaII pin controller driver"
230	depends on ARCH_SIRF
231	select PINMUX
232	select PINCONF
233	select GENERIC_PINCONF
234	select GPIOLIB_IRQCHIP
235
236config PINCTRL_SX150X
237	bool "Semtech SX150x I2C GPIO expander pinctrl driver"
238	depends on I2C=y
239	select PINMUX
240	select PINCONF
241	select GENERIC_PINCONF
242	select GPIOLIB
243	select GPIOLIB_IRQCHIP
244	select REGMAP
245	help
246	  Say yes here to provide support for Semtech SX150x-series I2C
247	  GPIO expanders as pinctrl module.
248	  Compatible models include:
249	  - 8 bits:  sx1508q, sx1502q
250	  - 16 bits: sx1509q, sx1506q
251
252config PINCTRL_PISTACHIO
253	def_bool y if MACH_PISTACHIO
254	depends on GPIOLIB
255	select PINMUX
256	select GENERIC_PINCONF
257	select GPIOLIB_IRQCHIP
258	select OF_GPIO
259
260config PINCTRL_ST
261	bool
262	depends on OF
263	select PINMUX
264	select PINCONF
265	select GPIOLIB_IRQCHIP
266
267config PINCTRL_STMFX
268	tristate "STMicroelectronics STMFX GPIO expander pinctrl driver"
269	depends on I2C
270	depends on OF_GPIO
271	select GENERIC_PINCONF
272	select GPIOLIB_IRQCHIP
273	select MFD_STMFX
274	help
275	  Driver for STMicroelectronics Multi-Function eXpander (STMFX)
276	  GPIO expander.
277	  This provides a GPIO interface supporting inputs and outputs,
278	  and configuring push-pull, open-drain, and can also be used as
279	  interrupt-controller.
280
281config PINCTRL_U300
282	bool "U300 pin controller driver"
283	depends on ARCH_U300
284	select PINMUX
285	select GENERIC_PINCONF
286
287config PINCTRL_COH901
288	bool "ST-Ericsson U300 COH 901 335/571 GPIO"
289	depends on GPIOLIB && ARCH_U300 && PINCTRL_U300
290	select GPIOLIB_IRQCHIP
291	help
292	  Say yes here to support GPIO interface on ST-Ericsson U300.
293	  The names of the two IP block variants supported are
294	  COH 901 335 and COH 901 571/3. They contain 3, 5 or 7
295	  ports of 8 GPIO pins each.
296
297config PINCTRL_MAX77620
298	tristate "MAX77620/MAX20024 Pincontrol support"
299	depends on MFD_MAX77620 && OF
300	select PINMUX
301	select GENERIC_PINCONF
302	help
303	  Say Yes here to enable Pin control support for Maxim PMIC MAX77620.
304	  This PMIC has 8 GPIO pins that work as GPIO as well as special
305	  function in alternate mode. This driver also configure push-pull,
306	  open drain, FPS slots etc.
307
308config PINCTRL_PALMAS
309	tristate "Pinctrl driver for the PALMAS Series MFD devices"
310	depends on OF && MFD_PALMAS
311	select PINMUX
312	select GENERIC_PINCONF
313	help
314	  Palmas device supports the configuration of pins for different
315	  functionality. This driver supports the pinmux, push-pull and
316	  open drain configuration for the Palmas series devices like
317	  TPS65913, TPS80036 etc.
318
319config PINCTRL_PIC32
320	bool "Microchip PIC32 pin controller driver"
321	depends on OF
322	depends on MACH_PIC32
323	select PINMUX
324	select GENERIC_PINCONF
325	select GPIOLIB_IRQCHIP
326	select OF_GPIO
327	help
328	  This is the pin controller and gpio driver for Microchip PIC32
329	  microcontrollers. This option is selected automatically when specific
330	  machine and arch are selected to build.
331
332config PINCTRL_PIC32MZDA
333	def_bool y if PIC32MZDA
334	select PINCTRL_PIC32
335
336config PINCTRL_ZYNQ
337	bool "Pinctrl driver for Xilinx Zynq"
338	depends on ARCH_ZYNQ
339	select PINMUX
340	select GENERIC_PINCONF
341	help
342	  This selects the pinctrl driver for Xilinx Zynq.
343
344config PINCTRL_INGENIC
345	bool "Pinctrl driver for the Ingenic JZ47xx SoCs"
346	default MACH_INGENIC
347	depends on OF
348	depends on MIPS || COMPILE_TEST
349	select GENERIC_PINCONF
350	select GENERIC_PINCTRL_GROUPS
351	select GENERIC_PINMUX_FUNCTIONS
352	select GPIOLIB
353	select GPIOLIB_IRQCHIP
354	select REGMAP_MMIO
355
356config PINCTRL_RK805
357	tristate "Pinctrl and GPIO driver for RK805 PMIC"
358	depends on MFD_RK808
359	select GPIOLIB
360	select PINMUX
361	select GENERIC_PINCONF
362	help
363	  This selects the pinctrl driver for RK805.
364
365config PINCTRL_OCELOT
366	bool "Pinctrl driver for the Microsemi Ocelot and Jaguar2 SoCs"
367	depends on OF
368	depends on HAS_IOMEM
369	select GPIOLIB
370	select GPIOLIB_IRQCHIP
371	select GENERIC_PINCONF
372	select GENERIC_PINCTRL_GROUPS
373	select GENERIC_PINMUX_FUNCTIONS
374	select OF_GPIO
375	select REGMAP_MMIO
376
377source "drivers/pinctrl/actions/Kconfig"
378source "drivers/pinctrl/aspeed/Kconfig"
379source "drivers/pinctrl/bcm/Kconfig"
380source "drivers/pinctrl/berlin/Kconfig"
381source "drivers/pinctrl/freescale/Kconfig"
382source "drivers/pinctrl/intel/Kconfig"
383source "drivers/pinctrl/mvebu/Kconfig"
384source "drivers/pinctrl/nomadik/Kconfig"
385source "drivers/pinctrl/nuvoton/Kconfig"
386source "drivers/pinctrl/pxa/Kconfig"
387source "drivers/pinctrl/qcom/Kconfig"
388source "drivers/pinctrl/renesas/Kconfig"
389source "drivers/pinctrl/samsung/Kconfig"
390source "drivers/pinctrl/spear/Kconfig"
391source "drivers/pinctrl/sprd/Kconfig"
392source "drivers/pinctrl/stm32/Kconfig"
393source "drivers/pinctrl/sunxi/Kconfig"
394source "drivers/pinctrl/tegra/Kconfig"
395source "drivers/pinctrl/ti/Kconfig"
396source "drivers/pinctrl/uniphier/Kconfig"
397source "drivers/pinctrl/vt8500/Kconfig"
398source "drivers/pinctrl/mediatek/Kconfig"
399source "drivers/pinctrl/zte/Kconfig"
400source "drivers/pinctrl/meson/Kconfig"
401source "drivers/pinctrl/cirrus/Kconfig"
402source "drivers/pinctrl/visconti/Kconfig"
403
404config PINCTRL_XWAY
405	bool
406	depends on SOC_TYPE_XWAY
407	depends on PINCTRL_LANTIQ
408
409config PINCTRL_TB10X
410	bool
411	depends on OF && ARC_PLAT_TB10X
412	select GPIOLIB
413
414config PINCTRL_EQUILIBRIUM
415	tristate "Generic pinctrl and GPIO driver for Intel Lightning Mountain SoC"
416	depends on OF && HAS_IOMEM
417	depends on X86 || COMPILE_TEST
418	select PINMUX
419	select PINCONF
420	select GPIOLIB
421	select GPIO_GENERIC
422	select GPIOLIB_IRQCHIP
423	select GENERIC_PINCONF
424	select GENERIC_PINCTRL_GROUPS
425	select GENERIC_PINMUX_FUNCTIONS
426
427	help
428	  Equilibrium pinctrl driver is a pinctrl & GPIO driver for Intel Lightning
429	  Mountain network processor SoC that supports both the linux GPIO and pin
430	  control frameworks. It provides interfaces to setup pinmux, assign desired
431	  pin functions, configure GPIO attributes for LGM SoC pins. Pinmux and
432	  pinconf settings are retrieved from device tree.
433
434endif
435