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