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