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