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