xref: /openbmc/linux/drivers/pinctrl/Kconfig (revision 023e4163)
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_DA850_PUPD
112	tristate "TI DA850/OMAP-L138/AM18XX pullup/pulldown groups"
113	depends on OF && (ARCH_DAVINCI_DA850 || COMPILE_TEST)
114	select PINCONF
115	select GENERIC_PINCONF
116	help
117	  Driver for TI DA850/OMAP-L138/AM18XX pinconf. Used to control
118	  pullup/pulldown pin groups.
119
120config PINCTRL_DIGICOLOR
121	bool
122	depends on OF && (ARCH_DIGICOLOR || COMPILE_TEST)
123	select PINMUX
124	select GENERIC_PINCONF
125
126config PINCTRL_LANTIQ
127	bool
128	depends on LANTIQ
129	select PINMUX
130	select PINCONF
131
132config PINCTRL_LPC18XX
133	bool "NXP LPC18XX/43XX SCU pinctrl driver"
134	depends on OF && (ARCH_LPC18XX || COMPILE_TEST)
135	default ARCH_LPC18XX
136	select PINMUX
137	select GENERIC_PINCONF
138	help
139	  Pinctrl driver for NXP LPC18xx/43xx System Control Unit (SCU).
140
141config PINCTRL_FALCON
142	bool
143	depends on SOC_FALCON
144	depends on PINCTRL_LANTIQ
145
146config PINCTRL_GEMINI
147	bool
148	depends on ARCH_GEMINI
149	default ARCH_GEMINI
150	select PINMUX
151	select GENERIC_PINCONF
152	select MFD_SYSCON
153
154config PINCTRL_MCP23S08
155	tristate "Microchip MCP23xxx I/O expander"
156	depends on SPI_MASTER || I2C
157	depends on I2C || I2C=n
158	select GPIOLIB
159	select GPIOLIB_IRQCHIP
160	select REGMAP_I2C if I2C
161	select REGMAP_SPI if SPI_MASTER
162	select GENERIC_PINCONF
163	help
164	  SPI/I2C driver for Microchip MCP23S08 / MCP23S17 / MCP23S18 /
165	  MCP23008 / MCP23017 / MCP23018 I/O expanders.
166	  This provides a GPIO interface supporting inputs and outputs and a
167	  corresponding interrupt-controller.
168
169config PINCTRL_OXNAS
170	bool
171	depends on OF
172	select PINMUX
173	select PINCONF
174	select GENERIC_PINCONF
175	select GPIOLIB
176	select OF_GPIO
177	select GPIOLIB_IRQCHIP
178	select MFD_SYSCON
179
180config PINCTRL_ROCKCHIP
181	bool
182	select PINMUX
183	select GENERIC_PINCONF
184	select GENERIC_IRQ_CHIP
185	select MFD_SYSCON
186
187config PINCTRL_RZA1
188	bool "Renesas RZ/A1 gpio and pinctrl driver"
189	depends on OF
190	depends on ARCH_R7S72100 || COMPILE_TEST
191	select GPIOLIB
192	select GENERIC_PINCTRL_GROUPS
193	select GENERIC_PINMUX_FUNCTIONS
194	select GENERIC_PINCONF
195	help
196	  This selects pinctrl driver for Renesas RZ/A1 platforms.
197
198config PINCTRL_RZA2
199	bool "Renesas RZ/A2 gpio and pinctrl driver"
200	depends on OF
201	depends on ARCH_R7S9210 || COMPILE_TEST
202	select GPIOLIB
203	select GENERIC_PINCTRL_GROUPS
204	select GENERIC_PINMUX_FUNCTIONS
205	select GENERIC_PINCONF
206	help
207	  This selects GPIO and pinctrl driver for Renesas RZ/A2 platforms.
208
209config PINCTRL_RZN1
210	bool "Renesas RZ/N1 pinctrl driver"
211	depends on OF
212	depends on ARCH_RZN1 || COMPILE_TEST
213	select GENERIC_PINCTRL_GROUPS
214	select GENERIC_PINMUX_FUNCTIONS
215	select GENERIC_PINCONF
216	help
217	  This selects pinctrl driver for Renesas RZ/N1 devices.
218
219config PINCTRL_SINGLE
220	tristate "One-register-per-pin type device tree based pinctrl driver"
221	depends on OF
222	depends on HAS_IOMEM
223	select GENERIC_PINCTRL_GROUPS
224	select GENERIC_PINMUX_FUNCTIONS
225	select GENERIC_PINCONF
226	help
227	  This selects the device tree based generic pinctrl driver.
228
229config PINCTRL_SIRF
230	bool "CSR SiRFprimaII pin controller driver"
231	depends on ARCH_SIRF
232	select PINMUX
233	select PINCONF
234	select GENERIC_PINCONF
235	select GPIOLIB_IRQCHIP
236
237config PINCTRL_SX150X
238	bool "Semtech SX150x I2C GPIO expander pinctrl driver"
239	depends on I2C=y
240	select PINMUX
241	select PINCONF
242	select GENERIC_PINCONF
243	select GPIOLIB
244	select GPIOLIB_IRQCHIP
245	select REGMAP
246	help
247	  Say yes here to provide support for Semtech SX150x-series I2C
248	  GPIO expanders as pinctrl module.
249	  Compatible models include:
250	  - 8 bits:  sx1508q, sx1502q
251	  - 16 bits: sx1509q, sx1506q
252
253config PINCTRL_PISTACHIO
254	def_bool y if MACH_PISTACHIO
255	depends on GPIOLIB
256	select PINMUX
257	select GENERIC_PINCONF
258	select GPIOLIB_IRQCHIP
259	select OF_GPIO
260
261config PINCTRL_ST
262	bool
263	depends on OF
264	select PINMUX
265	select PINCONF
266	select GPIOLIB_IRQCHIP
267
268config PINCTRL_U300
269	bool "U300 pin controller driver"
270	depends on ARCH_U300
271	select PINMUX
272	select GENERIC_PINCONF
273
274config PINCTRL_COH901
275	bool "ST-Ericsson U300 COH 901 335/571 GPIO"
276	depends on GPIOLIB && ARCH_U300 && PINCTRL_U300
277	select GPIOLIB_IRQCHIP
278	help
279	  Say yes here to support GPIO interface on ST-Ericsson U300.
280	  The names of the two IP block variants supported are
281	  COH 901 335 and COH 901 571/3. They contain 3, 5 or 7
282	  ports of 8 GPIO pins each.
283
284config PINCTRL_MAX77620
285	tristate "MAX77620/MAX20024 Pincontrol support"
286	depends on MFD_MAX77620 && OF
287	select PINMUX
288	select GENERIC_PINCONF
289	help
290	  Say Yes here to enable Pin control support for Maxim PMIC MAX77620.
291	  This PMIC has 8 GPIO pins that work as GPIO as well as special
292	  function in alternate mode. This driver also configure push-pull,
293	  open drain, FPS slots etc.
294
295config PINCTRL_PALMAS
296	tristate "Pinctrl driver for the PALMAS Series MFD devices"
297	depends on OF && MFD_PALMAS
298	select PINMUX
299	select GENERIC_PINCONF
300	help
301	  Palmas device supports the configuration of pins for different
302	  functionality. This driver supports the pinmux, push-pull and
303	  open drain configuration for the Palmas series devices like
304	  TPS65913, TPS80036 etc.
305
306config PINCTRL_PIC32
307	bool "Microchip PIC32 pin controller driver"
308	depends on OF
309	depends on MACH_PIC32
310	select PINMUX
311	select GENERIC_PINCONF
312	select GPIOLIB_IRQCHIP
313	select OF_GPIO
314	help
315	  This is the pin controller and gpio driver for Microchip PIC32
316	  microcontrollers. This option is selected automatically when specific
317	  machine and arch are selected to build.
318
319config PINCTRL_PIC32MZDA
320	def_bool y if PIC32MZDA
321	select PINCTRL_PIC32
322
323config PINCTRL_ZYNQ
324	bool "Pinctrl driver for Xilinx Zynq"
325	depends on ARCH_ZYNQ
326	select PINMUX
327	select GENERIC_PINCONF
328	help
329	  This selects the pinctrl driver for Xilinx Zynq.
330
331config PINCTRL_INGENIC
332	bool "Pinctrl driver for the Ingenic JZ47xx SoCs"
333	default MACH_INGENIC
334	depends on OF
335	depends on MIPS || COMPILE_TEST
336	select GENERIC_PINCONF
337	select GENERIC_PINCTRL_GROUPS
338	select GENERIC_PINMUX_FUNCTIONS
339	select GPIOLIB
340	select GPIOLIB_IRQCHIP
341	select REGMAP_MMIO
342
343config PINCTRL_RK805
344	tristate "Pinctrl and GPIO driver for RK805 PMIC"
345	depends on MFD_RK808
346	select GPIOLIB
347	select PINMUX
348	select GENERIC_PINCONF
349	help
350	  This selects the pinctrl driver for RK805.
351
352config PINCTRL_OCELOT
353	bool "Pinctrl driver for the Microsemi Ocelot and Jaguar2 SoCs"
354	depends on OF
355	depends on HAS_IOMEM
356	select GPIOLIB
357	select GPIOLIB_IRQCHIP
358	select GENERIC_PINCONF
359	select GENERIC_PINCTRL_GROUPS
360	select GENERIC_PINMUX_FUNCTIONS
361	select OF_GPIO
362	select REGMAP_MMIO
363
364source "drivers/pinctrl/actions/Kconfig"
365source "drivers/pinctrl/aspeed/Kconfig"
366source "drivers/pinctrl/bcm/Kconfig"
367source "drivers/pinctrl/berlin/Kconfig"
368source "drivers/pinctrl/freescale/Kconfig"
369source "drivers/pinctrl/intel/Kconfig"
370source "drivers/pinctrl/mvebu/Kconfig"
371source "drivers/pinctrl/nomadik/Kconfig"
372source "drivers/pinctrl/nuvoton/Kconfig"
373source "drivers/pinctrl/pxa/Kconfig"
374source "drivers/pinctrl/qcom/Kconfig"
375source "drivers/pinctrl/samsung/Kconfig"
376source "drivers/pinctrl/sh-pfc/Kconfig"
377source "drivers/pinctrl/spear/Kconfig"
378source "drivers/pinctrl/sprd/Kconfig"
379source "drivers/pinctrl/stm32/Kconfig"
380source "drivers/pinctrl/sunxi/Kconfig"
381source "drivers/pinctrl/tegra/Kconfig"
382source "drivers/pinctrl/ti/Kconfig"
383source "drivers/pinctrl/uniphier/Kconfig"
384source "drivers/pinctrl/vt8500/Kconfig"
385source "drivers/pinctrl/mediatek/Kconfig"
386source "drivers/pinctrl/zte/Kconfig"
387source "drivers/pinctrl/meson/Kconfig"
388source "drivers/pinctrl/cirrus/Kconfig"
389
390config PINCTRL_XWAY
391	bool
392	depends on SOC_TYPE_XWAY
393	depends on PINCTRL_LANTIQ
394
395config PINCTRL_TB10X
396	bool
397	depends on OF && ARC_PLAT_TB10X
398	select GPIOLIB
399
400endif
401