xref: /linux/drivers/pinctrl/Kconfig (revision 2ac5e38ea4203852d6e99edd3cf11f044b0a409f)
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_RZN1
199	bool "Renesas RZ/N1 pinctrl driver"
200	depends on OF
201	depends on ARCH_RZN1 || COMPILE_TEST
202	select GENERIC_PINCTRL_GROUPS
203	select GENERIC_PINMUX_FUNCTIONS
204	select GENERIC_PINCONF
205	help
206	  This selects pinctrl driver for Renesas RZ/N1 devices.
207
208config PINCTRL_SINGLE
209	tristate "One-register-per-pin type device tree based pinctrl driver"
210	depends on OF
211	depends on HAS_IOMEM
212	select GENERIC_PINCTRL_GROUPS
213	select GENERIC_PINMUX_FUNCTIONS
214	select GENERIC_PINCONF
215	help
216	  This selects the device tree based generic pinctrl driver.
217
218config PINCTRL_SIRF
219	bool "CSR SiRFprimaII pin controller driver"
220	depends on ARCH_SIRF
221	select PINMUX
222	select PINCONF
223	select GENERIC_PINCONF
224	select GPIOLIB_IRQCHIP
225
226config PINCTRL_SX150X
227	bool "Semtech SX150x I2C GPIO expander pinctrl driver"
228	depends on I2C=y
229	select PINMUX
230	select PINCONF
231	select GENERIC_PINCONF
232	select GPIOLIB
233	select GPIOLIB_IRQCHIP
234	select REGMAP
235	help
236	  Say yes here to provide support for Semtech SX150x-series I2C
237	  GPIO expanders as pinctrl module.
238	  Compatible models include:
239	  - 8 bits:  sx1508q, sx1502q
240	  - 16 bits: sx1509q, sx1506q
241
242config PINCTRL_PISTACHIO
243	def_bool y if MACH_PISTACHIO
244	depends on GPIOLIB
245	select PINMUX
246	select GENERIC_PINCONF
247	select GPIOLIB_IRQCHIP
248	select OF_GPIO
249
250config PINCTRL_ST
251	bool
252	depends on OF
253	select PINMUX
254	select PINCONF
255	select GPIOLIB_IRQCHIP
256
257config PINCTRL_U300
258	bool "U300 pin controller driver"
259	depends on ARCH_U300
260	select PINMUX
261	select GENERIC_PINCONF
262
263config PINCTRL_COH901
264	bool "ST-Ericsson U300 COH 901 335/571 GPIO"
265	depends on GPIOLIB && ARCH_U300 && PINCTRL_U300
266	select GPIOLIB_IRQCHIP
267	help
268	  Say yes here to support GPIO interface on ST-Ericsson U300.
269	  The names of the two IP block variants supported are
270	  COH 901 335 and COH 901 571/3. They contain 3, 5 or 7
271	  ports of 8 GPIO pins each.
272
273config PINCTRL_MAX77620
274	tristate "MAX77620/MAX20024 Pincontrol support"
275	depends on MFD_MAX77620 && OF
276	select PINMUX
277	select GENERIC_PINCONF
278	help
279	  Say Yes here to enable Pin control support for Maxim PMIC MAX77620.
280	  This PMIC has 8 GPIO pins that work as GPIO as well as special
281	  function in alternate mode. This driver also configure push-pull,
282	  open drain, FPS slots etc.
283
284config PINCTRL_PALMAS
285	tristate "Pinctrl driver for the PALMAS Series MFD devices"
286	depends on OF && MFD_PALMAS
287	select PINMUX
288	select GENERIC_PINCONF
289	help
290	  Palmas device supports the configuration of pins for different
291	  functionality. This driver supports the pinmux, push-pull and
292	  open drain configuration for the Palmas series devices like
293	  TPS65913, TPS80036 etc.
294
295config PINCTRL_PIC32
296	bool "Microchip PIC32 pin controller driver"
297	depends on OF
298	depends on MACH_PIC32
299	select PINMUX
300	select GENERIC_PINCONF
301	select GPIOLIB_IRQCHIP
302	select OF_GPIO
303	help
304	  This is the pin controller and gpio driver for Microchip PIC32
305	  microcontrollers. This option is selected automatically when specific
306	  machine and arch are selected to build.
307
308config PINCTRL_PIC32MZDA
309	def_bool y if PIC32MZDA
310	select PINCTRL_PIC32
311
312config PINCTRL_ZYNQ
313	bool "Pinctrl driver for Xilinx Zynq"
314	depends on ARCH_ZYNQ
315	select PINMUX
316	select GENERIC_PINCONF
317	help
318	  This selects the pinctrl driver for Xilinx Zynq.
319
320config PINCTRL_INGENIC
321	bool "Pinctrl driver for the Ingenic JZ47xx SoCs"
322	default MACH_INGENIC
323	depends on OF
324	depends on MIPS || COMPILE_TEST
325	select GENERIC_PINCONF
326	select GENERIC_PINCTRL_GROUPS
327	select GENERIC_PINMUX_FUNCTIONS
328	select GPIOLIB
329	select GPIOLIB_IRQCHIP
330	select REGMAP_MMIO
331
332config PINCTRL_RK805
333	tristate "Pinctrl and GPIO driver for RK805 PMIC"
334	depends on MFD_RK808
335	select GPIOLIB
336	select PINMUX
337	select GENERIC_PINCONF
338	help
339	  This selects the pinctrl driver for RK805.
340
341config PINCTRL_OCELOT
342	bool "Pinctrl driver for the Microsemi Ocelot SoCs"
343	default y
344	depends on OF
345	depends on MSCC_OCELOT || COMPILE_TEST
346	select GPIOLIB
347	select GPIOLIB_IRQCHIP
348	select GENERIC_PINCONF
349	select GENERIC_PINCTRL_GROUPS
350	select GENERIC_PINMUX_FUNCTIONS
351	select REGMAP_MMIO
352
353source "drivers/pinctrl/actions/Kconfig"
354source "drivers/pinctrl/aspeed/Kconfig"
355source "drivers/pinctrl/bcm/Kconfig"
356source "drivers/pinctrl/berlin/Kconfig"
357source "drivers/pinctrl/freescale/Kconfig"
358source "drivers/pinctrl/intel/Kconfig"
359source "drivers/pinctrl/mvebu/Kconfig"
360source "drivers/pinctrl/nomadik/Kconfig"
361source "drivers/pinctrl/nuvoton/Kconfig"
362source "drivers/pinctrl/pxa/Kconfig"
363source "drivers/pinctrl/qcom/Kconfig"
364source "drivers/pinctrl/samsung/Kconfig"
365source "drivers/pinctrl/sh-pfc/Kconfig"
366source "drivers/pinctrl/spear/Kconfig"
367source "drivers/pinctrl/sprd/Kconfig"
368source "drivers/pinctrl/stm32/Kconfig"
369source "drivers/pinctrl/sunxi/Kconfig"
370source "drivers/pinctrl/tegra/Kconfig"
371source "drivers/pinctrl/ti/Kconfig"
372source "drivers/pinctrl/uniphier/Kconfig"
373source "drivers/pinctrl/vt8500/Kconfig"
374source "drivers/pinctrl/mediatek/Kconfig"
375source "drivers/pinctrl/zte/Kconfig"
376source "drivers/pinctrl/meson/Kconfig"
377source "drivers/pinctrl/cirrus/Kconfig"
378
379config PINCTRL_XWAY
380	bool
381	depends on SOC_TYPE_XWAY
382	depends on PINCTRL_LANTIQ
383
384config PINCTRL_TB10X
385	bool
386	depends on OF && ARC_PLAT_TB10X
387	select GPIOLIB
388
389endif
390