Kconfig 11.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
config PINCTRL_ARTPEC6
35 36 37 38 39 40 41 42 43
	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
44

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
config PINCTRL_AT91PIO4
	bool "AT91 PIO4 pinctrl driver"
	depends on OF
85
	depends on HAS_IOMEM
86
	depends on ARCH_AT91 || COMPILE_TEST
87 88 89 90 91 92 93 94 95
	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.

96
config PINCTRL_AMD
97
	tristate "AMD GPIO pin control"
98
	depends on HAS_IOMEM
99
	depends on ACPI || COMPILE_TEST
100
	select GPIOLIB
101
	select GPIOLIB_IRQCHIP
102
	select PINMUX
103 104 105 106 107 108 109 110 111 112 113
	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.

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

122 123 124 125 126 127 128 129 130
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.

131 132 133 134 135 136 137 138 139 140 141 142
config PINCTRL_DA9062
	tristate "Dialog Semiconductor DA9062 PMIC pinctrl and GPIO Support"
	depends on MFD_DA9062
	select GPIOLIB
	help
	  The Dialog DA9062 PMIC 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 DA9062 PMIC.

143 144 145 146 147 148
config PINCTRL_DIGICOLOR
	bool
	depends on OF && (ARCH_DIGICOLOR || COMPILE_TEST)
	select PINMUX
	select GENERIC_PINCONF

149 150 151 152 153 154
config PINCTRL_LANTIQ
	bool
	depends on LANTIQ
	select PINMUX
	select PINCONF

155 156 157 158 159 160 161 162 163
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).

164 165 166 167 168
config PINCTRL_FALCON
	bool
	depends on SOC_FALCON
	depends on PINCTRL_LANTIQ

169 170 171 172 173
config PINCTRL_GEMINI
	bool
	depends on ARCH_GEMINI
	default ARCH_GEMINI
	select PINMUX
174
	select GENERIC_PINCONF
175 176
	select MFD_SYSCON

177 178 179 180 181 182 183 184
config PINCTRL_MCP23S08_I2C
	tristate
	select REGMAP_I2C

config PINCTRL_MCP23S08_SPI
	tristate
	select REGMAP_SPI

185 186 187
config PINCTRL_MCP23S08
	tristate "Microchip MCP23xxx I/O expander"
	depends on SPI_MASTER || I2C
188
	select GPIOLIB
189
	select GPIOLIB_IRQCHIP
190
	select GENERIC_PINCONF
191 192
	select PINCTRL_MCP23S08_I2C if I2C
	select PINCTRL_MCP23S08_SPI if SPI_MASTER
193
	help
194 195 196 197
	  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.
198

199 200 201 202 203 204 205 206 207 208 209
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

210
config PINCTRL_ROCKCHIP
211
	tristate "Rockchip gpio and pinctrl driver"
212
	depends on ARCH_ROCKCHIP || COMPILE_TEST
213
	depends on OF
214
	select GPIOLIB
215 216 217
	select PINMUX
	select GENERIC_PINCONF
	select GENERIC_IRQ_CHIP
218
	select MFD_SYSCON
219
	select OF_GPIO
220 221 222
	default ARCH_ROCKCHIP
	help
          This support pinctrl and gpio driver for Rockchip SoCs.
223

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

234 235
config PINCTRL_SX150X
	bool "Semtech SX150x I2C GPIO expander pinctrl driver"
236
	depends on I2C=y
237 238 239
	select PINMUX
	select PINCONF
	select GENERIC_PINCONF
240
	select GPIOLIB
241
	select GPIOLIB_IRQCHIP
242
	select REGMAP
243 244 245 246 247 248 249
	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

250 251 252 253 254 255 256 257
config PINCTRL_PISTACHIO
	def_bool y if MACH_PISTACHIO
	depends on GPIOLIB
	select PINMUX
	select GENERIC_PINCONF
	select GPIOLIB_IRQCHIP
	select OF_GPIO

258 259 260 261 262
config PINCTRL_ST
	bool
	depends on OF
	select PINMUX
	select PINCONF
263
	select GPIOLIB_IRQCHIP
264

265 266
config PINCTRL_STMFX
	tristate "STMicroelectronics STMFX GPIO expander pinctrl driver"
267
	depends on I2C
268
	depends on OF_GPIO
269 270 271 272 273 274 275 276 277 278
	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.

279 280
config PINCTRL_MAX77620
	tristate "MAX77620/MAX20024 Pincontrol support"
281
	depends on MFD_MAX77620 && OF
282
	select PINMUX
283 284 285 286 287 288 289
	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.

290
config PINCTRL_PALMAS
291
	tristate "Pinctrl driver for the PALMAS Series MFD devices"
292
	depends on OF && MFD_PALMAS
293
	select PINMUX
294 295 296 297 298 299 300
	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.

301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317
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

318 319 320 321 322 323
config PINCTRL_ZYNQ
	bool "Pinctrl driver for Xilinx Zynq"
	depends on ARCH_ZYNQ
	select PINMUX
	select GENERIC_PINCONF
	help
324
	  This selects the pinctrl driver for Xilinx Zynq.
325

326 327
config PINCTRL_INGENIC
	bool "Pinctrl driver for the Ingenic JZ47xx SoCs"
328
	default MACH_INGENIC
329
	depends on OF
330
	depends on MIPS || COMPILE_TEST
331 332 333
	select GENERIC_PINCONF
	select GENERIC_PINCTRL_GROUPS
	select GENERIC_PINMUX_FUNCTIONS
334 335
	select GPIOLIB
	select GPIOLIB_IRQCHIP
336 337
	select REGMAP_MMIO

338 339 340 341 342 343 344 345 346
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.

347
config PINCTRL_OCELOT
348
	bool "Pinctrl driver for the Microsemi Ocelot and Jaguar2 SoCs"
349
	depends on OF
350
	depends on HAS_IOMEM
351
	select GPIOLIB
352
	select GPIOLIB_IRQCHIP
353 354 355
	select GENERIC_PINCONF
	select GENERIC_PINCTRL_GROUPS
	select GENERIC_PINMUX_FUNCTIONS
356
	select OF_GPIO
357 358
	select REGMAP_MMIO

359 360
config PINCTRL_MICROCHIP_SGPIO
	bool "Pinctrl driver for Microsemi/Microchip Serial GPIO"
361
	depends on OF
362 363
	depends on HAS_IOMEM
	select GPIOLIB
364
	select GPIOLIB_IRQCHIP
365 366 367
	select GENERIC_PINCONF
	select GENERIC_PINCTRL_GROUPS
	select GENERIC_PINMUX_FUNCTIONS
368
	select OF_GPIO
369 370 371 372 373 374 375 376 377
	help
	  Support for the serial GPIO interface used on Microsemi and
	  Microchip SoC's. By using a serial interface, the SIO
	  controller significantly extends the number of available
	  GPIOs with a minimum number of additional pins on the
	  device. The primary purpose of the SIO controller is to
	  connect control signals from SFP modules and to act as an
	  LED controller.

378 379 380 381 382 383 384 385 386 387 388 389 390
config PINCTRL_K210
	bool "Pinctrl driver for the Canaan Kendryte K210 SoC"
	depends on RISCV && SOC_CANAAN && OF
	select GENERIC_PINMUX_FUNCTIONS
	select GENERIC_PINCONF
	select GPIOLIB
	select OF_GPIO
	select REGMAP_MMIO
	default SOC_CANAAN
	help
	  Add support for the Canaan Kendryte K210 RISC-V SOC Field
	  Programmable IO Array (FPIOA) controller.

391
source "drivers/pinctrl/actions/Kconfig"
392
source "drivers/pinctrl/aspeed/Kconfig"
393
source "drivers/pinctrl/bcm/Kconfig"
394
source "drivers/pinctrl/berlin/Kconfig"
395
source "drivers/pinctrl/freescale/Kconfig"
396
source "drivers/pinctrl/intel/Kconfig"
397
source "drivers/pinctrl/mvebu/Kconfig"
398
source "drivers/pinctrl/nomadik/Kconfig"
399
source "drivers/pinctrl/nuvoton/Kconfig"
400
source "drivers/pinctrl/pxa/Kconfig"
401
source "drivers/pinctrl/qcom/Kconfig"
402
source "drivers/pinctrl/ralink/Kconfig"
403
source "drivers/pinctrl/renesas/Kconfig"
404
source "drivers/pinctrl/samsung/Kconfig"
405
source "drivers/pinctrl/spear/Kconfig"
406
source "drivers/pinctrl/sprd/Kconfig"
407
source "drivers/pinctrl/stm32/Kconfig"
408
source "drivers/pinctrl/sunxi/Kconfig"
409
source "drivers/pinctrl/tegra/Kconfig"
410
source "drivers/pinctrl/ti/Kconfig"
411
source "drivers/pinctrl/uniphier/Kconfig"
412
source "drivers/pinctrl/vt8500/Kconfig"
413
source "drivers/pinctrl/mediatek/Kconfig"
414
source "drivers/pinctrl/meson/Kconfig"
415
source "drivers/pinctrl/cirrus/Kconfig"
416
source "drivers/pinctrl/visconti/Kconfig"
417

418 419 420 421 422
config PINCTRL_XWAY
	bool
	depends on SOC_TYPE_XWAY
	depends on PINCTRL_LANTIQ

423 424
config PINCTRL_TB10X
	bool
425 426
	depends on OF && ARC_PLAT_TB10X
	select GPIOLIB
427

428 429
config PINCTRL_EQUILIBRIUM
	tristate "Generic pinctrl and GPIO driver for Intel Lightning Mountain SoC"
430
	depends on OF && HAS_IOMEM
431
	depends on X86 || COMPILE_TEST
432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447
	select PINMUX
	select PINCONF
	select GPIOLIB
	select GPIO_GENERIC
	select GPIOLIB_IRQCHIP
	select GENERIC_PINCONF
	select GENERIC_PINCTRL_GROUPS
	select GENERIC_PINMUX_FUNCTIONS

	help
	  Equilibrium pinctrl driver is a pinctrl & GPIO driver for Intel Lightning
	  Mountain network processor SoC that supports both the linux GPIO and pin
	  control frameworks. It provides interfaces to setup pinmux, assign desired
	  pin functions, configure GPIO attributes for LGM SoC pins. Pinmux and
	  pinconf settings are retrieved from device tree.

448
endif