xref: /openbmc/linux/drivers/pinctrl/Kconfig (revision 9d64fc08)
1#
2# PINCTRL infrastructure and drivers
3#
4
5config PINCTRL
6	bool
7
8menu "Pin controllers"
9	depends on 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_ADI2
35	bool "ADI pin controller driver"
36	depends on BLACKFIN
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_BF54x
67	def_bool y if BF54x
68	select PINCTRL_ADI2
69
70config PINCTRL_BF60x
71	def_bool y if BF60x
72	select PINCTRL_ADI2
73
74config PINCTRL_AT91
75	bool "AT91 pinctrl driver"
76	depends on OF
77	depends on ARCH_AT91
78	select PINMUX
79	select PINCONF
80	select GPIOLIB
81	select OF_GPIO
82	select GPIOLIB_IRQCHIP
83	help
84	  Say Y here to enable the at91 pinctrl driver
85
86config PINCTRL_AT91PIO4
87	bool "AT91 PIO4 pinctrl driver"
88	depends on OF
89	depends on ARCH_AT91
90	select PINMUX
91	select GENERIC_PINCONF
92	select GPIOLIB
93	select GPIOLIB_IRQCHIP
94	select OF_GPIO
95	help
96	  Say Y here to enable the at91 pinctrl/gpio driver for Atmel PIO4
97	  controller available on sama5d2 SoC.
98
99config PINCTRL_AMD
100	tristate "AMD GPIO pin control"
101	depends on GPIOLIB
102	select GPIOLIB_IRQCHIP
103	select PINMUX
104	select PINCONF
105	select GENERIC_PINCONF
106	help
107	  driver for memory mapped GPIO functionality on AMD platforms
108	  (x86 or arm).Most pins are usually muxed to some other
109	  functionality by firmware,so only a small amount is available
110	  for gpio use.
111
112	  Requires ACPI/FDT device enumeration code to set up a platform
113	  device.
114
115config PINCTRL_DA850_PUPD
116	tristate "TI DA850/OMAP-L138/AM18XX pullup/pulldown groups"
117	depends on OF && (ARCH_DAVINCI_DA850 || COMPILE_TEST)
118	select PINCONF
119	select GENERIC_PINCONF
120	help
121	  Driver for TI DA850/OMAP-L138/AM18XX pinconf. Used to control
122	  pullup/pulldown pin groups.
123
124config PINCTRL_DIGICOLOR
125	bool
126	depends on OF && (ARCH_DIGICOLOR || COMPILE_TEST)
127	select PINMUX
128	select GENERIC_PINCONF
129
130config PINCTRL_LANTIQ
131	bool
132	depends on LANTIQ
133	select PINMUX
134	select PINCONF
135
136config PINCTRL_LPC18XX
137	bool "NXP LPC18XX/43XX SCU pinctrl driver"
138	depends on OF && (ARCH_LPC18XX || COMPILE_TEST)
139	default ARCH_LPC18XX
140	select PINMUX
141	select GENERIC_PINCONF
142	help
143	  Pinctrl driver for NXP LPC18xx/43xx System Control Unit (SCU).
144
145config PINCTRL_FALCON
146	bool
147	depends on SOC_FALCON
148	depends on PINCTRL_LANTIQ
149
150config PINCTRL_GEMINI
151	bool
152	depends on ARCH_GEMINI
153	default ARCH_GEMINI
154	select PINMUX
155	select MFD_SYSCON
156
157config PINCTRL_MCP23S08
158	tristate "Microchip MCP23xxx I/O expander"
159	depends on SPI_MASTER || I2C
160	depends on I2C || I2C=n
161	select GPIOLIB_IRQCHIP
162	select REGMAP_I2C if I2C
163	select REGMAP_SPI if SPI_MASTER
164	select GENERIC_PINCONF
165	help
166	  SPI/I2C driver for Microchip MCP23S08/MCP23S17/MCP23008/MCP23017
167	  I/O expanders.
168	  This provides a GPIO interface supporting inputs and outputs.
169	  The I2C versions of the chips can be used as interrupt-controller.
170
171config PINCTRL_MESON
172	bool
173	depends on OF
174	select PINMUX
175	select PINCONF
176	select GENERIC_PINCONF
177	select GPIOLIB
178	select OF_GPIO
179	select REGMAP_MMIO
180
181config PINCTRL_OXNAS
182	bool
183	depends on OF
184	select PINMUX
185	select PINCONF
186	select GENERIC_PINCONF
187	select GPIOLIB
188	select OF_GPIO
189	select GPIOLIB_IRQCHIP
190	select MFD_SYSCON
191
192config PINCTRL_ROCKCHIP
193	bool
194	select PINMUX
195	select GENERIC_PINCONF
196	select GENERIC_IRQ_CHIP
197	select MFD_SYSCON
198
199config PINCTRL_RZA1
200	bool "Renesas RZ/A1 gpio and pinctrl driver"
201	depends on OF
202	depends on ARCH_R7S72100 || COMPILE_TEST
203	select GPIOLIB
204	select GENERIC_PINCTRL_GROUPS
205	select GENERIC_PINMUX_FUNCTIONS
206	select GENERIC_PINCONF
207	help
208	  This selects pinctrl driver for Renesas RZ/A1 platforms.
209
210config PINCTRL_SINGLE
211	tristate "One-register-per-pin type device tree based pinctrl driver"
212	depends on OF
213	select GENERIC_PINCTRL_GROUPS
214	select GENERIC_PINMUX_FUNCTIONS
215	select GENERIC_PINCONF
216	help
217	  This selects the device tree based generic pinctrl driver.
218
219config PINCTRL_SIRF
220	bool "CSR SiRFprimaII pin controller driver"
221	depends on ARCH_SIRF
222	select PINMUX
223	select PINCONF
224	select GENERIC_PINCONF
225	select GPIOLIB_IRQCHIP
226
227config PINCTRL_SX150X
228	bool "Semtech SX150x I2C GPIO expander pinctrl driver"
229	depends on GPIOLIB && I2C=y
230	select PINMUX
231	select PINCONF
232	select GENERIC_PINCONF
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_TZ1090
258	bool "Toumaz Xenif TZ1090 pin control driver"
259	depends on SOC_TZ1090
260	select PINMUX
261	select GENERIC_PINCONF
262
263config PINCTRL_TZ1090_PDC
264	bool "Toumaz Xenif TZ1090 PDC pin control driver"
265	depends on SOC_TZ1090
266	select PINMUX
267	select PINCONF
268
269config PINCTRL_U300
270	bool "U300 pin controller driver"
271	depends on ARCH_U300
272	select PINMUX
273	select GENERIC_PINCONF
274
275config PINCTRL_COH901
276	bool "ST-Ericsson U300 COH 901 335/571 GPIO"
277	depends on GPIOLIB && ARCH_U300 && PINCTRL_U300
278	select GPIOLIB_IRQCHIP
279	help
280	  Say yes here to support GPIO interface on ST-Ericsson U300.
281	  The names of the two IP block variants supported are
282	  COH 901 335 and COH 901 571/3. They contain 3, 5 or 7
283	  ports of 8 GPIO pins each.
284
285config PINCTRL_MAX77620
286	tristate "MAX77620/MAX20024 Pincontrol support"
287	depends on MFD_MAX77620 && OF
288	select PINMUX
289	select GENERIC_PINCONF
290	help
291	  Say Yes here to enable Pin control support for Maxim PMIC MAX77620.
292	  This PMIC has 8 GPIO pins that work as GPIO as well as special
293	  function in alternate mode. This driver also configure push-pull,
294	  open drain, FPS slots etc.
295
296config PINCTRL_PALMAS
297	tristate "Pinctrl driver for the PALMAS Series MFD devices"
298	depends on OF && MFD_PALMAS
299	select PINMUX
300	select GENERIC_PINCONF
301	help
302	  Palmas device supports the configuration of pins for different
303	  functionality. This driver supports the pinmux, push-pull and
304	  open drain configuration for the Palmas series devices like
305	  TPS65913, TPS80036 etc.
306
307config PINCTRL_PIC32
308	bool "Microchip PIC32 pin controller driver"
309	depends on OF
310	depends on MACH_PIC32
311	select PINMUX
312	select GENERIC_PINCONF
313	select GPIOLIB_IRQCHIP
314	select OF_GPIO
315	help
316	  This is the pin controller and gpio driver for Microchip PIC32
317	  microcontrollers. This option is selected automatically when specific
318	  machine and arch are selected to build.
319
320config PINCTRL_PIC32MZDA
321	def_bool y if PIC32MZDA
322	select PINCTRL_PIC32
323
324config PINCTRL_ZYNQ
325	bool "Pinctrl driver for Xilinx Zynq"
326	depends on ARCH_ZYNQ
327	select PINMUX
328	select GENERIC_PINCONF
329	help
330	  This selects the pinctrl driver for Xilinx Zynq.
331
332config PINCTRL_INGENIC
333	bool "Pinctrl driver for the Ingenic JZ47xx SoCs"
334	default y
335	depends on OF
336	depends on MACH_INGENIC || COMPILE_TEST
337	select GENERIC_PINCONF
338	select GENERIC_PINCTRL_GROUPS
339	select GENERIC_PINMUX_FUNCTIONS
340	select REGMAP_MMIO
341
342config PINCTRL_RK805
343	tristate "Pinctrl and GPIO driver for RK805 PMIC"
344	depends on MFD_RK808
345	select GPIOLIB
346	select PINMUX
347	select GENERIC_PINCONF
348	help
349	  This selects the pinctrl driver for RK805.
350
351source "drivers/pinctrl/aspeed/Kconfig"
352source "drivers/pinctrl/bcm/Kconfig"
353source "drivers/pinctrl/berlin/Kconfig"
354source "drivers/pinctrl/freescale/Kconfig"
355source "drivers/pinctrl/intel/Kconfig"
356source "drivers/pinctrl/mvebu/Kconfig"
357source "drivers/pinctrl/nomadik/Kconfig"
358source "drivers/pinctrl/pxa/Kconfig"
359source "drivers/pinctrl/qcom/Kconfig"
360source "drivers/pinctrl/samsung/Kconfig"
361source "drivers/pinctrl/sh-pfc/Kconfig"
362source "drivers/pinctrl/spear/Kconfig"
363source "drivers/pinctrl/sprd/Kconfig"
364source "drivers/pinctrl/stm32/Kconfig"
365source "drivers/pinctrl/sunxi/Kconfig"
366source "drivers/pinctrl/tegra/Kconfig"
367source "drivers/pinctrl/ti/Kconfig"
368source "drivers/pinctrl/uniphier/Kconfig"
369source "drivers/pinctrl/vt8500/Kconfig"
370source "drivers/pinctrl/mediatek/Kconfig"
371source "drivers/pinctrl/zte/Kconfig"
372
373config PINCTRL_XWAY
374	bool
375	depends on SOC_TYPE_XWAY
376	depends on PINCTRL_LANTIQ
377
378config PINCTRL_TB10X
379	bool
380	depends on OF && ARC_PLAT_TB10X
381	select GPIOLIB
382
383endmenu
384