Kconfig 10.8 KB
Newer Older
1
# SPDX-License-Identifier: GPL-2.0-only
2
3
4
5
#
# PINCTRL infrastructure and drivers
#

6
7
menuconfig PINCTRL
	bool "Pin controllers"
8

9
if PINCTRL
10

11
config GENERIC_PINCTRL_GROUPS
12
13
	bool

14
config PINMUX
15
	bool "Support pin multiplexing controllers" if COMPILE_TEST
16

17
18
19
20
config GENERIC_PINMUX_FUNCTIONS
	bool
	select PINMUX

21
config PINCONF
22
	bool "Support pin configuration controllers" if COMPILE_TEST
23

24
25
26
27
config GENERIC_PINCONF
	bool
	select PINCONF

28
29
30
31
32
33
config DEBUG_PINCTRL
	bool "Debug PINCTRL calls"
	depends on DEBUG_KERNEL
	help
	  Say Y here to add some extra checks and diagnostics to PINCTRL calls.

34
35
36
37
38
39
40
41
42
43
44
config PINCTRL_ARTPEC6
        bool "Axis ARTPEC-6 pin controller driver"
        depends on MACH_ARTPEC6
        select PINMUX
        select GENERIC_PINCONF
        help
          This is the driver for the Axis ARTPEC-6 pin controller. This driver
          supports pin function multiplexing as well as pin bias and drive
          strength configuration. Device tree integration instructions can be
          found in Documentation/devicetree/bindings/pinctrl/axis,artpec6-pinctrl.txt

45
config PINCTRL_AS3722
46
	tristate "Pinctrl and GPIO driver for ams AS3722 PMIC"
47
48
49
50
51
52
53
54
55
	depends on MFD_AS3722 && GPIOLIB
	select PINMUX
	select GENERIC_PINCONF
	help
	  AS3722 device supports the configuration of GPIO pins for different
	  functionality. This driver supports the pinmux, push-pull and
	  open drain configuration for the GPIO pins of AS3722 devices. It also
	  supports the GPIO functionality through gpiolib.

56
57
58
config PINCTRL_AXP209
	tristate "X-Powers AXP209 PMIC pinctrl and GPIO Support"
	depends on MFD_AXP20X
59
60
61
62
	depends on OF
	select PINMUX
	select GENERIC_PINCONF
	select GPIOLIB
63
64
65
66
67
68
69
	help
	  AXP PMICs provides multiple GPIOs that can be muxed for different
	  functions. This driver bundles a pinctrl driver to select the function
	  muxing and a GPIO driver to handle the GPIO when the GPIO function is
	  selected.
	  Say yes to enable pinctrl and GPIO support for the AXP209 PMIC

70
71
72
73
74
75
config PINCTRL_AT91
	bool "AT91 pinctrl driver"
	depends on OF
	depends on ARCH_AT91
	select PINMUX
	select PINCONF
76
77
78
	select GPIOLIB
	select OF_GPIO
	select GPIOLIB_IRQCHIP
79
80
81
	help
	  Say Y here to enable the at91 pinctrl driver

82
83
84
85
86
87
88
89
90
91
92
93
94
config PINCTRL_AT91PIO4
	bool "AT91 PIO4 pinctrl driver"
	depends on OF
	depends on ARCH_AT91
	select PINMUX
	select GENERIC_PINCONF
	select GPIOLIB
	select GPIOLIB_IRQCHIP
	select OF_GPIO
	help
	  Say Y here to enable the at91 pinctrl/gpio driver for Atmel PIO4
	  controller available on sama5d2 SoC.

95
config PINCTRL_AMD
96
	tristate "AMD GPIO pin control"
97
	depends on HAS_IOMEM
98
	select GPIOLIB
99
	select GPIOLIB_IRQCHIP
100
	select PINMUX
101
102
103
104
105
106
107
108
109
110
111
	select PINCONF
	select GENERIC_PINCONF
	help
	  driver for memory mapped GPIO functionality on AMD platforms
	  (x86 or arm).Most pins are usually muxed to some other
	  functionality by firmware,so only a small amount is available
	  for gpio use.

	  Requires ACPI/FDT device enumeration code to set up a platform
	  device.

112
113
config PINCTRL_BM1880
	bool "Bitmain BM1880 Pinctrl driver"
114
115
	depends on OF && (ARCH_BITMAIN || COMPILE_TEST)
	default ARCH_BITMAIN
116
117
118
119
	select PINMUX
	help
	  Pinctrl driver for Bitmain BM1880 SoC.

120
121
122
123
124
125
126
127
128
config PINCTRL_DA850_PUPD
	tristate "TI DA850/OMAP-L138/AM18XX pullup/pulldown groups"
	depends on OF && (ARCH_DAVINCI_DA850 || COMPILE_TEST)
	select PINCONF
	select GENERIC_PINCONF
	help
	  Driver for TI DA850/OMAP-L138/AM18XX pinconf. Used to control
	  pullup/pulldown pin groups.

129
130
131
132
133
134
config PINCTRL_DIGICOLOR
	bool
	depends on OF && (ARCH_DIGICOLOR || COMPILE_TEST)
	select PINMUX
	select GENERIC_PINCONF

135
136
137
138
139
140
config PINCTRL_LANTIQ
	bool
	depends on LANTIQ
	select PINMUX
	select PINCONF

141
142
143
144
145
146
147
148
149
config PINCTRL_LPC18XX
	bool "NXP LPC18XX/43XX SCU pinctrl driver"
	depends on OF && (ARCH_LPC18XX || COMPILE_TEST)
	default ARCH_LPC18XX
	select PINMUX
	select GENERIC_PINCONF
	help
	  Pinctrl driver for NXP LPC18xx/43xx System Control Unit (SCU).

150
151
152
153
154
config PINCTRL_FALCON
	bool
	depends on SOC_FALCON
	depends on PINCTRL_LANTIQ

155
156
157
158
159
config PINCTRL_GEMINI
	bool
	depends on ARCH_GEMINI
	default ARCH_GEMINI
	select PINMUX
160
	select GENERIC_PINCONF
161
162
	select MFD_SYSCON

163
164
165
config PINCTRL_MCP23S08
	tristate "Microchip MCP23xxx I/O expander"
	depends on SPI_MASTER || I2C
166
	depends on I2C || I2C=n
167
	select GPIOLIB
168
169
170
	select GPIOLIB_IRQCHIP
	select REGMAP_I2C if I2C
	select REGMAP_SPI if SPI_MASTER
171
	select GENERIC_PINCONF
172
	help
173
174
175
176
	  SPI/I2C driver for Microchip MCP23S08 / MCP23S17 / MCP23S18 /
	  MCP23008 / MCP23017 / MCP23018 I/O expanders.
	  This provides a GPIO interface supporting inputs and outputs and a
	  corresponding interrupt-controller.
177

178
179
180
181
182
183
184
185
186
187
188
config PINCTRL_OXNAS
	bool
	depends on OF
	select PINMUX
	select PINCONF
	select GENERIC_PINCONF
	select GPIOLIB
	select OF_GPIO
	select GPIOLIB_IRQCHIP
	select MFD_SYSCON

189
190
191
192
193
config PINCTRL_ROCKCHIP
	bool
	select PINMUX
	select GENERIC_PINCONF
	select GENERIC_IRQ_CHIP
194
	select MFD_SYSCON
195

196
197
198
199
200
201
202
203
204
205
206
config PINCTRL_RZA1
	bool "Renesas RZ/A1 gpio and pinctrl driver"
	depends on OF
	depends on ARCH_R7S72100 || COMPILE_TEST
	select GPIOLIB
	select GENERIC_PINCTRL_GROUPS
	select GENERIC_PINMUX_FUNCTIONS
	select GENERIC_PINCONF
	help
	  This selects pinctrl driver for Renesas RZ/A1 platforms.

207
208
209
210
211
212
213
214
215
216
217
config PINCTRL_RZA2
	bool "Renesas RZ/A2 gpio and pinctrl driver"
	depends on OF
	depends on ARCH_R7S9210 || COMPILE_TEST
	select GPIOLIB
	select GENERIC_PINCTRL_GROUPS
	select GENERIC_PINMUX_FUNCTIONS
	select GENERIC_PINCONF
	help
	  This selects GPIO and pinctrl driver for Renesas RZ/A2 platforms.

218
219
220
221
222
223
224
225
226
227
config PINCTRL_RZN1
	bool "Renesas RZ/N1 pinctrl driver"
	depends on OF
	depends on ARCH_RZN1 || COMPILE_TEST
	select GENERIC_PINCTRL_GROUPS
	select GENERIC_PINMUX_FUNCTIONS
	select GENERIC_PINCONF
	help
	  This selects pinctrl driver for Renesas RZ/N1 devices.

228
229
230
config PINCTRL_SINGLE
	tristate "One-register-per-pin type device tree based pinctrl driver"
	depends on OF
231
	depends on HAS_IOMEM
232
	select GENERIC_PINCTRL_GROUPS
233
	select GENERIC_PINMUX_FUNCTIONS
234
	select GENERIC_PINCONF
235
236
237
	help
	  This selects the device tree based generic pinctrl driver.

238
config PINCTRL_SIRF
Barry Song's avatar
Barry Song committed
239
	bool "CSR SiRFprimaII pin controller driver"
240
	depends on ARCH_SIRF
241
	select PINMUX
242
243
	select PINCONF
	select GENERIC_PINCONF
244
	select GPIOLIB_IRQCHIP
245

246
247
config PINCTRL_SX150X
	bool "Semtech SX150x I2C GPIO expander pinctrl driver"
248
	depends on I2C=y
249
250
251
	select PINMUX
	select PINCONF
	select GENERIC_PINCONF
252
	select GPIOLIB
253
	select GPIOLIB_IRQCHIP
254
	select REGMAP
255
256
257
258
259
260
261
	help
	  Say yes here to provide support for Semtech SX150x-series I2C
	  GPIO expanders as pinctrl module.
	  Compatible models include:
	  - 8 bits:  sx1508q, sx1502q
	  - 16 bits: sx1509q, sx1506q

262
263
264
265
266
267
268
269
config PINCTRL_PISTACHIO
	def_bool y if MACH_PISTACHIO
	depends on GPIOLIB
	select PINMUX
	select GENERIC_PINCONF
	select GPIOLIB_IRQCHIP
	select OF_GPIO

270
271
272
273
274
config PINCTRL_ST
	bool
	depends on OF
	select PINMUX
	select PINCONF
275
	select GPIOLIB_IRQCHIP
276

277
278
config PINCTRL_STMFX
	tristate "STMicroelectronics STMFX GPIO expander pinctrl driver"
279
	depends on I2C
280
	depends on OF_GPIO
281
282
283
284
285
286
287
288
289
290
	select GENERIC_PINCONF
	select GPIOLIB_IRQCHIP
	select MFD_STMFX
	help
	  Driver for STMicroelectronics Multi-Function eXpander (STMFX)
	  GPIO expander.
	  This provides a GPIO interface supporting inputs and outputs,
	  and configuring push-pull, open-drain, and can also be used as
	  interrupt-controller.

291
292
config PINCTRL_U300
	bool "U300 pin controller driver"
293
294
	depends on ARCH_U300
	select PINMUX
295
	select GENERIC_PINCONF
296

297
298
config PINCTRL_COH901
	bool "ST-Ericsson U300 COH 901 335/571 GPIO"
299
	depends on GPIOLIB && ARCH_U300 && PINCTRL_U300
300
	select GPIOLIB_IRQCHIP
301
302
303
304
305
306
	help
	  Say yes here to support GPIO interface on ST-Ericsson U300.
	  The names of the two IP block variants supported are
	  COH 901 335 and COH 901 571/3. They contain 3, 5 or 7
	  ports of 8 GPIO pins each.

307
308
config PINCTRL_MAX77620
	tristate "MAX77620/MAX20024 Pincontrol support"
309
	depends on MFD_MAX77620 && OF
310
	select PINMUX
311
312
313
314
315
316
317
	select GENERIC_PINCONF
	help
	  Say Yes here to enable Pin control support for Maxim PMIC MAX77620.
	  This PMIC has 8 GPIO pins that work as GPIO as well as special
	  function in alternate mode. This driver also configure push-pull,
	  open drain, FPS slots etc.

318
config PINCTRL_PALMAS
319
	tristate "Pinctrl driver for the PALMAS Series MFD devices"
320
	depends on OF && MFD_PALMAS
321
	select PINMUX
322
323
324
325
326
327
328
	select GENERIC_PINCONF
	help
	  Palmas device supports the configuration of pins for different
	  functionality. This driver supports the pinmux, push-pull and
	  open drain configuration for the Palmas series devices like
	  TPS65913, TPS80036 etc.

329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
config PINCTRL_PIC32
	bool "Microchip PIC32 pin controller driver"
	depends on OF
	depends on MACH_PIC32
	select PINMUX
	select GENERIC_PINCONF
	select GPIOLIB_IRQCHIP
	select OF_GPIO
	help
	  This is the pin controller and gpio driver for Microchip PIC32
	  microcontrollers. This option is selected automatically when specific
	  machine and arch are selected to build.

config PINCTRL_PIC32MZDA
	def_bool y if PIC32MZDA
	select PINCTRL_PIC32

Soren Brinkmann's avatar
Soren Brinkmann committed
346
347
348
349
350
351
config PINCTRL_ZYNQ
	bool "Pinctrl driver for Xilinx Zynq"
	depends on ARCH_ZYNQ
	select PINMUX
	select GENERIC_PINCONF
	help
352
	  This selects the pinctrl driver for Xilinx Zynq.
Soren Brinkmann's avatar
Soren Brinkmann committed
353

354
355
config PINCTRL_INGENIC
	bool "Pinctrl driver for the Ingenic JZ47xx SoCs"
356
	default MACH_INGENIC
357
	depends on OF
358
	depends on MIPS || COMPILE_TEST
359
360
361
	select GENERIC_PINCONF
	select GENERIC_PINCTRL_GROUPS
	select GENERIC_PINMUX_FUNCTIONS
362
363
	select GPIOLIB
	select GPIOLIB_IRQCHIP
364
365
	select REGMAP_MMIO

366
367
368
369
370
371
372
373
374
config PINCTRL_RK805
	tristate "Pinctrl and GPIO driver for RK805 PMIC"
	depends on MFD_RK808
	select GPIOLIB
	select PINMUX
	select GENERIC_PINCONF
	help
	  This selects the pinctrl driver for RK805.

375
config PINCTRL_OCELOT
376
	bool "Pinctrl driver for the Microsemi Ocelot and Jaguar2 SoCs"
377
	depends on OF
378
	depends on HAS_IOMEM
379
	select GPIOLIB
380
	select GPIOLIB_IRQCHIP
381
382
383
	select GENERIC_PINCONF
	select GENERIC_PINCTRL_GROUPS
	select GENERIC_PINMUX_FUNCTIONS
384
	select OF_GPIO
385
386
	select REGMAP_MMIO

387
source "drivers/pinctrl/actions/Kconfig"
388
source "drivers/pinctrl/aspeed/Kconfig"
389
source "drivers/pinctrl/bcm/Kconfig"
390
source "drivers/pinctrl/berlin/Kconfig"
391
source "drivers/pinctrl/freescale/Kconfig"
392
source "drivers/pinctrl/intel/Kconfig"
393
source "drivers/pinctrl/mvebu/Kconfig"
394
source "drivers/pinctrl/nomadik/Kconfig"
395
source "drivers/pinctrl/nuvoton/Kconfig"
396
source "drivers/pinctrl/pxa/Kconfig"
397
source "drivers/pinctrl/qcom/Kconfig"
398
source "drivers/pinctrl/samsung/Kconfig"
399
source "drivers/pinctrl/sh-pfc/Kconfig"
400
source "drivers/pinctrl/spear/Kconfig"
401
source "drivers/pinctrl/sprd/Kconfig"
402
source "drivers/pinctrl/stm32/Kconfig"
403
source "drivers/pinctrl/sunxi/Kconfig"
404
source "drivers/pinctrl/tegra/Kconfig"
405
source "drivers/pinctrl/ti/Kconfig"
406
source "drivers/pinctrl/uniphier/Kconfig"
407
source "drivers/pinctrl/vt8500/Kconfig"
408
source "drivers/pinctrl/mediatek/Kconfig"
409
source "drivers/pinctrl/zte/Kconfig"
410
source "drivers/pinctrl/meson/Kconfig"
411
source "drivers/pinctrl/cirrus/Kconfig"
412

413
414
415
416
417
config PINCTRL_XWAY
	bool
	depends on SOC_TYPE_XWAY
	depends on PINCTRL_LANTIQ

418
419
config PINCTRL_TB10X
	bool
420
421
	depends on OF && ARC_PLAT_TB10X
	select GPIOLIB
422

423
endif