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