• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# SPDX-License-Identifier: GPL-2.0-only
2#
3# PINCTRL infrastructure and drivers
4#
5
6menuconfig PINCTRL
7	bool "Pin controllers"
8
9if 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_ARTPEC6
35	bool "Axis ARTPEC-6 pin controller driver"
36	depends on MACH_ARTPEC6
37	select PINMUX
38	select GENERIC_PINCONF
39	help
40	  This is the driver for the Axis ARTPEC-6 pin controller. This driver
41	  supports pin function multiplexing as well as pin bias and drive
42	  strength configuration. Device tree integration instructions can be
43	  found in Documentation/devicetree/bindings/pinctrl/axis,artpec6-pinctrl.txt
44
45config PINCTRL_AS3722
46	tristate "Pinctrl and GPIO driver for ams AS3722 PMIC"
47	depends on MFD_AS3722 && GPIOLIB
48	select PINMUX
49	select GENERIC_PINCONF
50	help
51	  AS3722 device supports the configuration of GPIO pins for different
52	  functionality. This driver supports the pinmux, push-pull and
53	  open drain configuration for the GPIO pins of AS3722 devices. It also
54	  supports the GPIO functionality through gpiolib.
55
56config PINCTRL_AXP209
57	tristate "X-Powers AXP209 PMIC pinctrl and GPIO Support"
58	depends on MFD_AXP20X
59	depends on OF
60	select PINMUX
61	select GENERIC_PINCONF
62	select GPIOLIB
63	help
64	  AXP PMICs provides multiple GPIOs that can be muxed for different
65	  functions. This driver bundles a pinctrl driver to select the function
66	  muxing and a GPIO driver to handle the GPIO when the GPIO function is
67	  selected.
68	  Say yes to enable pinctrl and GPIO support for the AXP209 PMIC
69
70config PINCTRL_AT91
71	bool "AT91 pinctrl driver"
72	depends on OF
73	depends on ARCH_AT91
74	select PINMUX
75	select PINCONF
76	select GPIOLIB
77	select OF_GPIO
78	select GPIOLIB_IRQCHIP
79	help
80	  Say Y here to enable the at91 pinctrl driver
81
82config PINCTRL_AT91PIO4
83	bool "AT91 PIO4 pinctrl driver"
84	depends on OF
85	depends on ARCH_AT91 || COMPILE_TEST
86	select PINMUX
87	select GENERIC_PINCONF
88	select GPIOLIB
89	select GPIOLIB_IRQCHIP
90	select OF_GPIO
91	help
92	  Say Y here to enable the at91 pinctrl/gpio driver for Atmel PIO4
93	  controller available on sama5d2 SoC.
94
95config PINCTRL_AMD
96	tristate "AMD GPIO pin control"
97	depends on HAS_IOMEM
98	depends on ACPI || COMPILE_TEST
99	select GPIOLIB
100	select GPIOLIB_IRQCHIP
101	select PINMUX
102	select PINCONF
103	select GENERIC_PINCONF
104	help
105	  driver for memory mapped GPIO functionality on AMD platforms
106	  (x86 or arm).Most pins are usually muxed to some other
107	  functionality by firmware,so only a small amount is available
108	  for gpio use.
109
110	  Requires ACPI/FDT device enumeration code to set up a platform
111	  device.
112
113config PINCTRL_BM1880
114	bool "Bitmain BM1880 Pinctrl driver"
115	depends on OF && (ARCH_BITMAIN || COMPILE_TEST)
116	default ARCH_BITMAIN
117	select PINMUX
118	help
119	  Pinctrl driver for Bitmain BM1880 SoC.
120
121config PINCTRL_DA850_PUPD
122	tristate "TI DA850/OMAP-L138/AM18XX pullup/pulldown groups"
123	depends on OF && (ARCH_DAVINCI_DA850 || COMPILE_TEST)
124	select PINCONF
125	select GENERIC_PINCONF
126	help
127	  Driver for TI DA850/OMAP-L138/AM18XX pinconf. Used to control
128	  pullup/pulldown pin groups.
129
130config PINCTRL_DA9062
131	tristate "Dialog Semiconductor DA9062 PMIC pinctrl and GPIO Support"
132	depends on MFD_DA9062
133	select GPIOLIB
134	help
135	  The Dialog DA9062 PMIC provides multiple GPIOs that can be muxed for
136	  different functions. This driver bundles a pinctrl driver to select the
137	  function muxing and a GPIO driver to handle the GPIO when the GPIO
138	  function is selected.
139
140	  Say yes to enable pinctrl and GPIO support for the DA9062 PMIC.
141
142config PINCTRL_DIGICOLOR
143	bool
144	depends on OF && (ARCH_DIGICOLOR || COMPILE_TEST)
145	select PINMUX
146	select GENERIC_PINCONF
147
148config PINCTRL_LANTIQ
149	bool
150	depends on LANTIQ
151	select PINMUX
152	select PINCONF
153
154config PINCTRL_LPC18XX
155	bool "NXP LPC18XX/43XX SCU pinctrl driver"
156	depends on OF && (ARCH_LPC18XX || COMPILE_TEST)
157	default ARCH_LPC18XX
158	select PINMUX
159	select GENERIC_PINCONF
160	help
161	  Pinctrl driver for NXP LPC18xx/43xx System Control Unit (SCU).
162
163config PINCTRL_FALCON
164	bool
165	depends on SOC_FALCON
166	depends on PINCTRL_LANTIQ
167
168config PINCTRL_GEMINI
169	bool
170	depends on ARCH_GEMINI
171	default ARCH_GEMINI
172	select PINMUX
173	select GENERIC_PINCONF
174	select MFD_SYSCON
175
176config PINCTRL_MCP23S08_I2C
177	tristate
178	select REGMAP_I2C
179
180config PINCTRL_MCP23S08_SPI
181	tristate
182	select REGMAP_SPI
183
184config PINCTRL_MCP23S08
185	tristate "Microchip MCP23xxx I/O expander"
186	depends on SPI_MASTER || I2C
187	select GPIOLIB
188	select GPIOLIB_IRQCHIP
189	select GENERIC_PINCONF
190	select PINCTRL_MCP23S08_I2C if I2C
191	select PINCTRL_MCP23S08_SPI if SPI_MASTER
192	help
193	  SPI/I2C driver for Microchip MCP23S08 / MCP23S17 / MCP23S18 /
194	  MCP23008 / MCP23017 / MCP23018 I/O expanders.
195	  This provides a GPIO interface supporting inputs and outputs and a
196	  corresponding interrupt-controller.
197
198config PINCTRL_OXNAS
199	bool
200	depends on OF
201	select PINMUX
202	select PINCONF
203	select GENERIC_PINCONF
204	select GPIOLIB
205	select OF_GPIO
206	select GPIOLIB_IRQCHIP
207	select MFD_SYSCON
208
209config PINCTRL_ROCKCHIP
210	tristate "Rockchip gpio and pinctrl driver"
211	depends on ARCH_ROCKCHIP || COMPILE_TEST
212	depends on OF
213	select GPIOLIB
214	select PINMUX
215	select GENERIC_PINCONF
216	select GENERIC_IRQ_CHIP
217	select MFD_SYSCON
218	select OF_GPIO
219	default ARCH_ROCKCHIP
220	help
221          This support pinctrl and gpio driver for Rockchip SoCs.
222
223config PINCTRL_SINGLE
224	tristate "One-register-per-pin type device tree based pinctrl driver"
225	depends on OF
226	depends on HAS_IOMEM
227	select GENERIC_PINCTRL_GROUPS
228	select GENERIC_PINMUX_FUNCTIONS
229	select GENERIC_PINCONF
230	help
231	  This selects the device tree based generic pinctrl driver.
232
233config PINCTRL_SIRF
234	bool "CSR SiRFprimaII pin controller driver"
235	depends on ARCH_SIRF
236	select PINMUX
237	select PINCONF
238	select GENERIC_PINCONF
239	select GPIOLIB_IRQCHIP
240
241config PINCTRL_SX150X
242	bool "Semtech SX150x I2C GPIO expander pinctrl driver"
243	depends on I2C=y
244	select PINMUX
245	select PINCONF
246	select GENERIC_PINCONF
247	select GPIOLIB
248	select GPIOLIB_IRQCHIP
249	select REGMAP
250	help
251	  Say yes here to provide support for Semtech SX150x-series I2C
252	  GPIO expanders as pinctrl module.
253	  Compatible models include:
254	  - 8 bits:  sx1508q, sx1502q
255	  - 16 bits: sx1509q, sx1506q
256
257config PINCTRL_PISTACHIO
258	def_bool y if MACH_PISTACHIO
259	depends on GPIOLIB
260	select PINMUX
261	select GENERIC_PINCONF
262	select GPIOLIB_IRQCHIP
263	select OF_GPIO
264
265config PINCTRL_ST
266	bool
267	depends on OF
268	select PINMUX
269	select PINCONF
270	select GPIOLIB_IRQCHIP
271
272config PINCTRL_STMFX
273	tristate "STMicroelectronics STMFX GPIO expander pinctrl driver"
274	depends on I2C
275	depends on OF_GPIO
276	select GENERIC_PINCONF
277	select GPIOLIB_IRQCHIP
278	select MFD_STMFX
279	help
280	  Driver for STMicroelectronics Multi-Function eXpander (STMFX)
281	  GPIO expander.
282	  This provides a GPIO interface supporting inputs and outputs,
283	  and configuring push-pull, open-drain, and can also be used as
284	  interrupt-controller.
285
286config PINCTRL_U300
287	bool "U300 pin controller driver"
288	depends on ARCH_U300
289	select PINMUX
290	select GENERIC_PINCONF
291
292config PINCTRL_COH901
293	bool "ST-Ericsson U300 COH 901 335/571 GPIO"
294	depends on GPIOLIB && ARCH_U300 && PINCTRL_U300
295	select GPIOLIB_IRQCHIP
296	help
297	  Say yes here to support GPIO interface on ST-Ericsson U300.
298	  The names of the two IP block variants supported are
299	  COH 901 335 and COH 901 571/3. They contain 3, 5 or 7
300	  ports of 8 GPIO pins each.
301
302config PINCTRL_MAX77620
303	tristate "MAX77620/MAX20024 Pincontrol support"
304	depends on MFD_MAX77620 && OF
305	select PINMUX
306	select GENERIC_PINCONF
307	help
308	  Say Yes here to enable Pin control support for Maxim PMIC MAX77620.
309	  This PMIC has 8 GPIO pins that work as GPIO as well as special
310	  function in alternate mode. This driver also configure push-pull,
311	  open drain, FPS slots etc.
312
313config PINCTRL_PALMAS
314	tristate "Pinctrl driver for the PALMAS Series MFD devices"
315	depends on OF && MFD_PALMAS
316	select PINMUX
317	select GENERIC_PINCONF
318	help
319	  Palmas device supports the configuration of pins for different
320	  functionality. This driver supports the pinmux, push-pull and
321	  open drain configuration for the Palmas series devices like
322	  TPS65913, TPS80036 etc.
323
324config PINCTRL_PIC32
325	bool "Microchip PIC32 pin controller driver"
326	depends on OF
327	depends on MACH_PIC32
328	select PINMUX
329	select GENERIC_PINCONF
330	select GPIOLIB_IRQCHIP
331	select OF_GPIO
332	help
333	  This is the pin controller and gpio driver for Microchip PIC32
334	  microcontrollers. This option is selected automatically when specific
335	  machine and arch are selected to build.
336
337config PINCTRL_PIC32MZDA
338	def_bool y if PIC32MZDA
339	select PINCTRL_PIC32
340
341config PINCTRL_ZYNQ
342	bool "Pinctrl driver for Xilinx Zynq"
343	depends on ARCH_ZYNQ
344	select PINMUX
345	select GENERIC_PINCONF
346	help
347	  This selects the pinctrl driver for Xilinx Zynq.
348
349config PINCTRL_INGENIC
350	bool "Pinctrl driver for the Ingenic JZ47xx SoCs"
351	default MACH_INGENIC
352	depends on OF
353	depends on MIPS || COMPILE_TEST
354	select GENERIC_PINCONF
355	select GENERIC_PINCTRL_GROUPS
356	select GENERIC_PINMUX_FUNCTIONS
357	select GPIOLIB
358	select GPIOLIB_IRQCHIP
359	select REGMAP_MMIO
360
361config PINCTRL_RK805
362	tristate "Pinctrl and GPIO driver for RK805 PMIC"
363	depends on MFD_RK808
364	select GPIOLIB
365	select PINMUX
366	select GENERIC_PINCONF
367	help
368	  This selects the pinctrl driver for RK805.
369
370config PINCTRL_OCELOT
371	bool "Pinctrl driver for the Microsemi Ocelot and Jaguar2 SoCs"
372	depends on OF
373	depends on HAS_IOMEM
374	select GPIOLIB
375	select GPIOLIB_IRQCHIP
376	select GENERIC_PINCONF
377	select GENERIC_PINCTRL_GROUPS
378	select GENERIC_PINMUX_FUNCTIONS
379	select OF_GPIO
380	select REGMAP_MMIO
381
382source "drivers/pinctrl/actions/Kconfig"
383source "drivers/pinctrl/aspeed/Kconfig"
384source "drivers/pinctrl/bcm/Kconfig"
385source "drivers/pinctrl/berlin/Kconfig"
386source "drivers/pinctrl/freescale/Kconfig"
387source "drivers/pinctrl/intel/Kconfig"
388source "drivers/pinctrl/mvebu/Kconfig"
389source "drivers/pinctrl/nomadik/Kconfig"
390source "drivers/pinctrl/nuvoton/Kconfig"
391source "drivers/pinctrl/pxa/Kconfig"
392source "drivers/pinctrl/qcom/Kconfig"
393source "drivers/pinctrl/renesas/Kconfig"
394source "drivers/pinctrl/samsung/Kconfig"
395source "drivers/pinctrl/spear/Kconfig"
396source "drivers/pinctrl/sprd/Kconfig"
397source "drivers/pinctrl/stm32/Kconfig"
398source "drivers/pinctrl/sunxi/Kconfig"
399source "drivers/pinctrl/tegra/Kconfig"
400source "drivers/pinctrl/ti/Kconfig"
401source "drivers/pinctrl/uniphier/Kconfig"
402source "drivers/pinctrl/vt8500/Kconfig"
403source "drivers/pinctrl/mediatek/Kconfig"
404source "drivers/pinctrl/zte/Kconfig"
405source "drivers/pinctrl/meson/Kconfig"
406source "drivers/pinctrl/cirrus/Kconfig"
407source "drivers/pinctrl/visconti/Kconfig"
408
409config PINCTRL_XWAY
410	bool
411	depends on SOC_TYPE_XWAY
412	depends on PINCTRL_LANTIQ
413
414config PINCTRL_TB10X
415	bool
416	depends on OF && ARC_PLAT_TB10X
417	select GPIOLIB
418
419config PINCTRL_EQUILIBRIUM
420	tristate "Generic pinctrl and GPIO driver for Intel Lightning Mountain SoC"
421	depends on OF && HAS_IOMEM
422	depends on X86 || COMPILE_TEST
423	select PINMUX
424	select PINCONF
425	select GPIOLIB
426	select GPIO_GENERIC
427	select GPIOLIB_IRQCHIP
428	select GENERIC_PINCONF
429	select GENERIC_PINCTRL_GROUPS
430	select GENERIC_PINMUX_FUNCTIONS
431
432	help
433	  Equilibrium pinctrl driver is a pinctrl & GPIO driver for Intel Lightning
434	  Mountain network processor SoC that supports both the linux GPIO and pin
435	  control frameworks. It provides interfaces to setup pinmux, assign desired
436	  pin functions, configure GPIO attributes for LGM SoC pins. Pinmux and
437	  pinconf settings are retrieved from device tree.
438
439endif
440