blob: a73c794bed035bdd21df511dd15cf9a65647c927 [file] [log] [blame]
rjw1f884582022-01-06 17:20:42 +08001#
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 (BF54x || BF60x)
37 depends on !GPIO_ADI
38 select PINMUX
39 select IRQ_DOMAIN
40 help
41 This is the pin controller and gpio driver for ADI BF54x, BF60x and
42 future processors. This option is selected automatically when specific
43 machine and arch are selected to build.
44
45config PINCTRL_ARTPEC6
46 bool "Axis ARTPEC-6 pin controller driver"
47 depends on MACH_ARTPEC6
48 select PINMUX
49 select GENERIC_PINCONF
50 help
51 This is the driver for the Axis ARTPEC-6 pin controller. This driver
52 supports pin function multiplexing as well as pin bias and drive
53 strength configuration. Device tree integration instructions can be
54 found in Documentation/devicetree/bindings/pinctrl/axis,artpec6-pinctrl.txt
55
56config PINCTRL_AS3722
57 tristate "Pinctrl and GPIO driver for ams AS3722 PMIC"
58 depends on MFD_AS3722 && GPIOLIB
59 select PINMUX
60 select GENERIC_PINCONF
61 help
62 AS3722 device supports the configuration of GPIO pins for different
63 functionality. This driver supports the pinmux, push-pull and
64 open drain configuration for the GPIO pins of AS3722 devices. It also
65 supports the GPIO functionality through gpiolib.
66
67config PINCTRL_BF54x
68 def_bool y if BF54x
69 select PINCTRL_ADI2
70
71config PINCTRL_BF60x
72 def_bool y if BF60x
73 select PINCTRL_ADI2
74
75config PINCTRL_AT91
76 bool "AT91 pinctrl driver"
77 depends on OF
78 depends on ARCH_AT91
79 select PINMUX
80 select PINCONF
81 select GPIOLIB
82 select OF_GPIO
83 select GPIOLIB_IRQCHIP
84 help
85 Say Y here to enable the at91 pinctrl driver
86
87config PINCTRL_AT91PIO4
88 bool "AT91 PIO4 pinctrl driver"
89 depends on OF
90 depends on ARCH_AT91
91 select PINMUX
92 select GENERIC_PINCONF
93 select GPIOLIB
94 select GPIOLIB_IRQCHIP
95 select OF_GPIO
96 help
97 Say Y here to enable the at91 pinctrl/gpio driver for Atmel PIO4
98 controller available on sama5d2 SoC.
99
100config PINCTRL_AMD
101 tristate "AMD GPIO pin control"
102 depends on 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 MFD_SYSCON
157
158config PINCTRL_MCP23S08
159 tristate "Microchip MCP23xxx I/O expander"
160 depends on SPI_MASTER || I2C
161 depends on I2C || I2C=n
162 select GPIOLIB_IRQCHIP
163 select REGMAP_I2C if I2C
164 select REGMAP_SPI if SPI_MASTER
165 select GENERIC_PINCONF
166 help
167 SPI/I2C driver for Microchip MCP23S08/MCP23S17/MCP23008/MCP23017
168 I/O expanders.
169 This provides a GPIO interface supporting inputs and outputs.
170 The I2C versions of the chips can be used as interrupt-controller.
171
172config PINCTRL_MESON
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 REGMAP_MMIO
181
182config PINCTRL_OXNAS
183 bool
184 depends on OF
185 select PINMUX
186 select PINCONF
187 select GENERIC_PINCONF
188 select GPIOLIB
189 select OF_GPIO
190 select GPIOLIB_IRQCHIP
191 select MFD_SYSCON
192
193config PINCTRL_ROCKCHIP
194 bool
195 select PINMUX
196 select GENERIC_PINCONF
197 select GENERIC_IRQ_CHIP
198 select MFD_SYSCON
199
200config PINCTRL_RZA1
201 bool "Renesas RZ/A1 gpio and pinctrl driver"
202 depends on OF
203 depends on ARCH_R7S72100 || COMPILE_TEST
204 select GPIOLIB
205 select GENERIC_PINCTRL_GROUPS
206 select GENERIC_PINMUX_FUNCTIONS
207 select GENERIC_PINCONF
208 help
209 This selects pinctrl driver for Renesas RZ/A1 platforms.
210
211config PINCTRL_SINGLE
212 tristate "One-register-per-pin type device tree based pinctrl driver"
213 depends on OF
214 select GENERIC_PINCTRL_GROUPS
215 select GENERIC_PINMUX_FUNCTIONS
216 select GENERIC_PINCONF
217 help
218 This selects the device tree based generic pinctrl driver.
219
220config PINCTRL_SIRF
221 bool "CSR SiRFprimaII pin controller driver"
222 depends on ARCH_SIRF
223 select PINMUX
224 select PINCONF
225 select GENERIC_PINCONF
226 select GPIOLIB_IRQCHIP
227
228config PINCTRL_SX150X
229 bool "Semtech SX150x I2C GPIO expander pinctrl driver"
230 depends on GPIOLIB && I2C=y
231 select PINMUX
232 select PINCONF
233 select GENERIC_PINCONF
234 select GPIOLIB_IRQCHIP
235 select REGMAP
236 help
237 Say yes here to provide support for Semtech SX150x-series I2C
238 GPIO expanders as pinctrl module.
239 Compatible models include:
240 - 8 bits: sx1508q, sx1502q
241 - 16 bits: sx1509q, sx1506q
242
243config PINCTRL_PISTACHIO
244 def_bool y if MACH_PISTACHIO
245 depends on GPIOLIB
246 select PINMUX
247 select GENERIC_PINCONF
248 select GPIOLIB_IRQCHIP
249 select OF_GPIO
250
251config PINCTRL_ST
252 bool
253 depends on OF
254 select PINMUX
255 select PINCONF
256 select GPIOLIB_IRQCHIP
257
258config PINCTRL_TZ1090
259 bool "Toumaz Xenif TZ1090 pin control driver"
260 depends on SOC_TZ1090
261 select PINMUX
262 select GENERIC_PINCONF
263
264config PINCTRL_TZ1090_PDC
265 bool "Toumaz Xenif TZ1090 PDC pin control driver"
266 depends on SOC_TZ1090
267 select PINMUX
268 select PINCONF
269
270config PINCTRL_U300
271 bool "U300 pin controller driver"
272 depends on ARCH_U300
273 select PINMUX
274 select GENERIC_PINCONF
275
276config PINCTRL_COH901
277 bool "ST-Ericsson U300 COH 901 335/571 GPIO"
278 depends on GPIOLIB && ARCH_U300 && PINCTRL_U300
279 select GPIOLIB_IRQCHIP
280 help
281 Say yes here to support GPIO interface on ST-Ericsson U300.
282 The names of the two IP block variants supported are
283 COH 901 335 and COH 901 571/3. They contain 3, 5 or 7
284 ports of 8 GPIO pins each.
285
286config PINCTRL_MAX77620
287 tristate "MAX77620/MAX20024 Pincontrol support"
288 depends on MFD_MAX77620 && OF
289 select PINMUX
290 select GENERIC_PINCONF
291 help
292 Say Yes here to enable Pin control support for Maxim PMIC MAX77620.
293 This PMIC has 8 GPIO pins that work as GPIO as well as special
294 function in alternate mode. This driver also configure push-pull,
295 open drain, FPS slots etc.
296
297config PINCTRL_PALMAS
298 tristate "Pinctrl driver for the PALMAS Series MFD devices"
299 depends on OF && MFD_PALMAS
300 select PINMUX
301 select GENERIC_PINCONF
302 help
303 Palmas device supports the configuration of pins for different
304 functionality. This driver supports the pinmux, push-pull and
305 open drain configuration for the Palmas series devices like
306 TPS65913, TPS80036 etc.
307
308config PINCTRL_PIC32
309 bool "Microchip PIC32 pin controller driver"
310 depends on OF
311 depends on MACH_PIC32
312 select PINMUX
313 select GENERIC_PINCONF
314 select GPIOLIB_IRQCHIP
315 select OF_GPIO
316 help
317 This is the pin controller and gpio driver for Microchip PIC32
318 microcontrollers. This option is selected automatically when specific
319 machine and arch are selected to build.
320
321config PINCTRL_PIC32MZDA
322 def_bool y if PIC32MZDA
323 select PINCTRL_PIC32
324
325config PINCTRL_ZYNQ
326 bool "Pinctrl driver for Xilinx Zynq"
327 depends on ARCH_ZYNQ
328 select PINMUX
329 select GENERIC_PINCONF
330 help
331 This selects the pinctrl driver for Xilinx Zynq.
332
333config PINCTRL_INGENIC
334 bool "Pinctrl driver for the Ingenic JZ47xx SoCs"
335 default y
336 depends on OF
337 depends on MACH_INGENIC || COMPILE_TEST
338 select GENERIC_PINCONF
339 select GENERIC_PINCTRL_GROUPS
340 select GENERIC_PINMUX_FUNCTIONS
341 select REGMAP_MMIO
342
343config PINCTRL_RK805
344 tristate "Pinctrl and GPIO driver for RK805 PMIC"
345 depends on MFD_RK808
346 select GPIOLIB
347 select PINMUX
348 select GENERIC_PINCONF
349 help
350 This selects the pinctrl driver for RK805.
351
352source "drivers/pinctrl/aspeed/Kconfig"
353source "drivers/pinctrl/bcm/Kconfig"
354source "drivers/pinctrl/berlin/Kconfig"
355source "drivers/pinctrl/freescale/Kconfig"
356source "drivers/pinctrl/intel/Kconfig"
357source "drivers/pinctrl/mvebu/Kconfig"
358source "drivers/pinctrl/nomadik/Kconfig"
359source "drivers/pinctrl/pxa/Kconfig"
360source "drivers/pinctrl/qcom/Kconfig"
361source "drivers/pinctrl/samsung/Kconfig"
362source "drivers/pinctrl/sh-pfc/Kconfig"
363source "drivers/pinctrl/spear/Kconfig"
364source "drivers/pinctrl/sprd/Kconfig"
365source "drivers/pinctrl/stm32/Kconfig"
366source "drivers/pinctrl/sunxi/Kconfig"
367source "drivers/pinctrl/tegra/Kconfig"
368source "drivers/pinctrl/ti/Kconfig"
369source "drivers/pinctrl/uniphier/Kconfig"
370source "drivers/pinctrl/vt8500/Kconfig"
371source "drivers/pinctrl/mediatek/Kconfig"
372source "drivers/pinctrl/zte/Kconfig"
373
374config PINCTRL_XWAY
375 bool
376 depends on SOC_TYPE_XWAY
377 depends on PINCTRL_LANTIQ
378
379config PINCTRL_TB10X
380 bool
381 depends on OF && ARC_PLAT_TB10X
382 select GPIOLIB
383
384endmenu