xref: /linux/drivers/pinctrl/Kconfig (revision c504985e3be8ab4d232d7ff63e773948e06f2da6)
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 PINCONF
104	select GENERIC_PINCONF
105	help
106	  driver for memory mapped GPIO functionality on AMD platforms
107	  (x86 or arm).Most pins are usually muxed to some other
108	  functionality by firmware,so only a small amount is available
109	  for gpio use.
110
111	  Requires ACPI/FDT device enumeration code to set up a platform
112	  device.
113
114config PINCTRL_DA850_PUPD
115	tristate "TI DA850/OMAP-L138/AM18XX pullup/pulldown groups"
116	depends on OF && (ARCH_DAVINCI_DA850 || COMPILE_TEST)
117	select PINCONF
118	select GENERIC_PINCONF
119	help
120	  Driver for TI DA850/OMAP-L138/AM18XX pinconf. Used to control
121	  pullup/pulldown pin groups.
122
123config PINCTRL_DIGICOLOR
124	bool
125	depends on OF && (ARCH_DIGICOLOR || COMPILE_TEST)
126	select PINMUX
127	select GENERIC_PINCONF
128
129config PINCTRL_LANTIQ
130	bool
131	depends on LANTIQ
132	select PINMUX
133	select PINCONF
134
135config PINCTRL_LPC18XX
136	bool "NXP LPC18XX/43XX SCU pinctrl driver"
137	depends on OF && (ARCH_LPC18XX || COMPILE_TEST)
138	default ARCH_LPC18XX
139	select PINMUX
140	select GENERIC_PINCONF
141	help
142	  Pinctrl driver for NXP LPC18xx/43xx System Control Unit (SCU).
143
144config PINCTRL_FALCON
145	bool
146	depends on SOC_FALCON
147	depends on PINCTRL_LANTIQ
148
149config PINCTRL_MCP23S08
150	tristate "Microchip MCP23xxx I/O expander"
151	depends on SPI_MASTER || I2C
152	select GPIOLIB_IRQCHIP
153	select REGMAP_I2C if I2C
154	select REGMAP_SPI if SPI_MASTER
155	select GENERIC_PINCONF
156	help
157	  SPI/I2C driver for Microchip MCP23S08/MCP23S17/MCP23008/MCP23017
158	  I/O expanders.
159	  This provides a GPIO interface supporting inputs and outputs.
160	  The I2C versions of the chips can be used as interrupt-controller.
161
162config PINCTRL_MESON
163	bool
164	depends on OF
165	select PINMUX
166	select PINCONF
167	select GENERIC_PINCONF
168	select GPIOLIB
169	select OF_GPIO
170	select REGMAP_MMIO
171
172config PINCTRL_OXNAS
173	bool
174	depends on OF
175	select PINMUX
176	select PINCONF
177	select GENERIC_PINCONF
178	select GPIOLIB
179	select OF_GPIO
180	select GPIOLIB_IRQCHIP
181	select MFD_SYSCON
182
183config PINCTRL_ROCKCHIP
184	bool
185	select PINMUX
186	select GENERIC_PINCONF
187	select GENERIC_IRQ_CHIP
188	select MFD_SYSCON
189
190config PINCTRL_SINGLE
191	tristate "One-register-per-pin type device tree based pinctrl driver"
192	depends on OF
193	select GENERIC_PINCTRL_GROUPS
194	select GENERIC_PINMUX_FUNCTIONS
195	select GENERIC_PINCONF
196	help
197	  This selects the device tree based generic pinctrl driver.
198
199config PINCTRL_SIRF
200	bool "CSR SiRFprimaII pin controller driver"
201	depends on ARCH_SIRF
202	select PINMUX
203	select PINCONF
204	select GENERIC_PINCONF
205	select GPIOLIB_IRQCHIP
206
207config PINCTRL_SX150X
208	bool "Semtech SX150x I2C GPIO expander pinctrl driver"
209	depends on GPIOLIB && I2C=y
210	select PINMUX
211	select PINCONF
212	select GENERIC_PINCONF
213	select GPIOLIB_IRQCHIP
214	select REGMAP
215	help
216	  Say yes here to provide support for Semtech SX150x-series I2C
217	  GPIO expanders as pinctrl module.
218	  Compatible models include:
219	  - 8 bits:  sx1508q, sx1502q
220	  - 16 bits: sx1509q, sx1506q
221
222config PINCTRL_PISTACHIO
223	def_bool y if MACH_PISTACHIO
224	depends on GPIOLIB
225	select PINMUX
226	select GENERIC_PINCONF
227	select GPIOLIB_IRQCHIP
228	select OF_GPIO
229
230config PINCTRL_ST
231	bool
232	depends on OF
233	select PINMUX
234	select PINCONF
235	select GPIOLIB_IRQCHIP
236
237config PINCTRL_TZ1090
238	bool "Toumaz Xenif TZ1090 pin control driver"
239	depends on SOC_TZ1090
240	select PINMUX
241	select GENERIC_PINCONF
242
243config PINCTRL_TZ1090_PDC
244	bool "Toumaz Xenif TZ1090 PDC pin control driver"
245	depends on SOC_TZ1090
246	select PINMUX
247	select PINCONF
248
249config PINCTRL_U300
250	bool "U300 pin controller driver"
251	depends on ARCH_U300
252	select PINMUX
253	select GENERIC_PINCONF
254
255config PINCTRL_COH901
256	bool "ST-Ericsson U300 COH 901 335/571 GPIO"
257	depends on GPIOLIB && ARCH_U300 && PINCTRL_U300
258	select GPIOLIB_IRQCHIP
259	help
260	  Say yes here to support GPIO interface on ST-Ericsson U300.
261	  The names of the two IP block variants supported are
262	  COH 901 335 and COH 901 571/3. They contain 3, 5 or 7
263	  ports of 8 GPIO pins each.
264
265config PINCTRL_MAX77620
266	tristate "MAX77620/MAX20024 Pincontrol support"
267	depends on MFD_MAX77620 && OF
268	select PINMUX
269	select GENERIC_PINCONF
270	help
271	  Say Yes here to enable Pin control support for Maxim PMIC MAX77620.
272	  This PMIC has 8 GPIO pins that work as GPIO as well as special
273	  function in alternate mode. This driver also configure push-pull,
274	  open drain, FPS slots etc.
275
276config PINCTRL_PALMAS
277	tristate "Pinctrl driver for the PALMAS Series MFD devices"
278	depends on OF && MFD_PALMAS
279	select PINMUX
280	select GENERIC_PINCONF
281	help
282	  Palmas device supports the configuration of pins for different
283	  functionality. This driver supports the pinmux, push-pull and
284	  open drain configuration for the Palmas series devices like
285	  TPS65913, TPS80036 etc.
286
287config PINCTRL_PIC32
288	bool "Microchip PIC32 pin controller driver"
289	depends on OF
290	depends on MACH_PIC32
291	select PINMUX
292	select GENERIC_PINCONF
293	select GPIOLIB_IRQCHIP
294	select OF_GPIO
295	help
296	  This is the pin controller and gpio driver for Microchip PIC32
297	  microcontrollers. This option is selected automatically when specific
298	  machine and arch are selected to build.
299
300config PINCTRL_PIC32MZDA
301	def_bool y if PIC32MZDA
302	select PINCTRL_PIC32
303
304config PINCTRL_ZYNQ
305	bool "Pinctrl driver for Xilinx Zynq"
306	depends on ARCH_ZYNQ
307	select PINMUX
308	select GENERIC_PINCONF
309	help
310	  This selects the pinctrl driver for Xilinx Zynq.
311
312config PINCTRL_INGENIC
313	bool "Pinctrl driver for the Ingenic JZ47xx SoCs"
314	default y
315	depends on OF
316	depends on MACH_INGENIC || COMPILE_TEST
317	select GENERIC_PINCONF
318	select GENERIC_PINCTRL_GROUPS
319	select GENERIC_PINMUX_FUNCTIONS
320	select REGMAP_MMIO
321
322source "drivers/pinctrl/aspeed/Kconfig"
323source "drivers/pinctrl/bcm/Kconfig"
324source "drivers/pinctrl/berlin/Kconfig"
325source "drivers/pinctrl/freescale/Kconfig"
326source "drivers/pinctrl/intel/Kconfig"
327source "drivers/pinctrl/mvebu/Kconfig"
328source "drivers/pinctrl/nomadik/Kconfig"
329source "drivers/pinctrl/pxa/Kconfig"
330source "drivers/pinctrl/qcom/Kconfig"
331source "drivers/pinctrl/samsung/Kconfig"
332source "drivers/pinctrl/sh-pfc/Kconfig"
333source "drivers/pinctrl/spear/Kconfig"
334source "drivers/pinctrl/stm32/Kconfig"
335source "drivers/pinctrl/sunxi/Kconfig"
336source "drivers/pinctrl/tegra/Kconfig"
337source "drivers/pinctrl/ti/Kconfig"
338source "drivers/pinctrl/uniphier/Kconfig"
339source "drivers/pinctrl/vt8500/Kconfig"
340source "drivers/pinctrl/mediatek/Kconfig"
341source "drivers/pinctrl/zte/Kconfig"
342
343config PINCTRL_XWAY
344	bool
345	depends on SOC_TYPE_XWAY
346	depends on PINCTRL_LANTIQ
347
348config PINCTRL_TB10X
349	bool
350	depends on OF && ARC_PLAT_TB10X
351	select GPIOLIB
352
353endmenu
354