Kconfig 13.5 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 45 46 47 48 49
config PINCTRL_APPLE_GPIO
	tristate "Apple SoC GPIO pin controller driver"
	depends on ARCH_APPLE
	select PINMUX
	select GPIOLIB
	select GPIOLIB_IRQCHIP
	select GENERIC_PINCTRL_GROUPS
	select GENERIC_PINMUX_FUNCTIONS
	select OF_GPIO
	help
	  This is the driver for the GPIO controller found on Apple ARM SoCs,
	  including M1.

	  This driver can also be built as a module. If so, the module
	  will be called pinctrl-apple-gpio.

50
config PINCTRL_ARTPEC6
51 52 53 54 55 56 57 58 59
	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
60

61
config PINCTRL_AS3722
62
	tristate "Pinctrl and GPIO driver for ams AS3722 PMIC"
63 64 65 66 67 68 69 70 71
	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.

72 73 74
config PINCTRL_AXP209
	tristate "X-Powers AXP209 PMIC pinctrl and GPIO Support"
	depends on MFD_AXP20X
75 76 77 78
	depends on OF
	select PINMUX
	select GENERIC_PINCONF
	select GPIOLIB
79 80 81 82 83 84 85
	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

86 87 88 89 90 91
config PINCTRL_AT91
	bool "AT91 pinctrl driver"
	depends on OF
	depends on ARCH_AT91
	select PINMUX
	select PINCONF
92 93 94
	select GPIOLIB
	select OF_GPIO
	select GPIOLIB_IRQCHIP
95 96 97
	help
	  Say Y here to enable the at91 pinctrl driver

98 99 100
config PINCTRL_AT91PIO4
	bool "AT91 PIO4 pinctrl driver"
	depends on OF
101
	depends on HAS_IOMEM
102
	depends on ARCH_AT91 || COMPILE_TEST
103 104 105 106 107 108 109 110 111
	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.

K
Ken Xue 已提交
112
config PINCTRL_AMD
113
	tristate "AMD GPIO pin control"
114
	depends on HAS_IOMEM
115
	depends on ACPI || COMPILE_TEST
116
	select GPIOLIB
K
Ken Xue 已提交
117
	select GPIOLIB_IRQCHIP
118
	select PINMUX
K
Ken Xue 已提交
119 120 121 122 123 124 125 126 127 128 129
	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.

130 131
config PINCTRL_BM1880
	bool "Bitmain BM1880 Pinctrl driver"
132 133
	depends on OF && (ARCH_BITMAIN || COMPILE_TEST)
	default ARCH_BITMAIN
134 135 136 137
	select PINMUX
	help
	  Pinctrl driver for Bitmain BM1880 SoC.

138 139 140 141 142 143 144 145 146
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.

147 148 149 150 151 152 153 154 155 156 157 158
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.

159 160 161 162 163 164
config PINCTRL_DIGICOLOR
	bool
	depends on OF && (ARCH_DIGICOLOR || COMPILE_TEST)
	select PINMUX
	select GENERIC_PINCONF

165 166 167 168 169 170
config PINCTRL_LANTIQ
	bool
	depends on LANTIQ
	select PINMUX
	select PINCONF

171 172 173 174 175 176 177 178 179
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).

180 181 182 183 184
config PINCTRL_FALCON
	bool
	depends on SOC_FALCON
	depends on PINCTRL_LANTIQ

185 186 187 188 189
config PINCTRL_GEMINI
	bool
	depends on ARCH_GEMINI
	default ARCH_GEMINI
	select PINMUX
190
	select GENERIC_PINCONF
191 192
	select MFD_SYSCON

193 194 195 196 197 198 199 200
config PINCTRL_MCP23S08_I2C
	tristate
	select REGMAP_I2C

config PINCTRL_MCP23S08_SPI
	tristate
	select REGMAP_SPI

201 202 203
config PINCTRL_MCP23S08
	tristate "Microchip MCP23xxx I/O expander"
	depends on SPI_MASTER || I2C
204
	select GPIOLIB
205
	select GPIOLIB_IRQCHIP
206
	select GENERIC_PINCONF
207 208
	select PINCTRL_MCP23S08_I2C if I2C
	select PINCTRL_MCP23S08_SPI if SPI_MASTER
209
	help
210 211 212 213
	  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.
214

215 216 217 218 219 220 221 222 223 224 225
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

226
config PINCTRL_ROCKCHIP
227
	tristate "Rockchip gpio and pinctrl driver"
228
	depends on ARCH_ROCKCHIP || COMPILE_TEST
H
Heiko Stuebner 已提交
229
	depends on OF
230
	select GPIOLIB
231 232 233
	select PINMUX
	select GENERIC_PINCONF
	select GENERIC_IRQ_CHIP
234
	select MFD_SYSCON
H
Heiko Stuebner 已提交
235
	select OF_GPIO
236 237 238
	default ARCH_ROCKCHIP
	help
          This support pinctrl and gpio driver for Rockchip SoCs.
239

240 241 242
config PINCTRL_SINGLE
	tristate "One-register-per-pin type device tree based pinctrl driver"
	depends on OF
243
	depends on HAS_IOMEM
244
	select GENERIC_PINCTRL_GROUPS
245
	select GENERIC_PINMUX_FUNCTIONS
246
	select GENERIC_PINCONF
247 248 249
	help
	  This selects the device tree based generic pinctrl driver.

250 251
config PINCTRL_SX150X
	bool "Semtech SX150x I2C GPIO expander pinctrl driver"
252
	depends on I2C=y
253 254 255
	select PINMUX
	select PINCONF
	select GENERIC_PINCONF
256
	select GPIOLIB
257
	select GPIOLIB_IRQCHIP
258
	select REGMAP
259 260 261 262 263 264 265
	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

266
config PINCTRL_PISTACHIO
267 268
	bool "IMG Pistachio SoC pinctrl driver"
	depends on OF && (MIPS || COMPILE_TEST)
269 270 271 272 273
	depends on GPIOLIB
	select PINMUX
	select GENERIC_PINCONF
	select GPIOLIB_IRQCHIP
	select OF_GPIO
274 275
    help
	  This support pinctrl and gpio driver for IMG Pistachio SoC.
276

277 278 279 280 281
config PINCTRL_ST
	bool
	depends on OF
	select PINMUX
	select PINCONF
282
	select GPIOLIB_IRQCHIP
283

284 285
config PINCTRL_STMFX
	tristate "STMicroelectronics STMFX GPIO expander pinctrl driver"
286
	depends on I2C
287
	depends on OF_GPIO
288 289 290 291 292 293 294 295 296 297
	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.

298 299
config PINCTRL_MAX77620
	tristate "MAX77620/MAX20024 Pincontrol support"
300
	depends on MFD_MAX77620 && OF
A
Arnd Bergmann 已提交
301
	select PINMUX
302 303 304 305 306 307 308
	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.

309
config PINCTRL_PALMAS
310
	tristate "Pinctrl driver for the PALMAS Series MFD devices"
311
	depends on OF && MFD_PALMAS
312
	select PINMUX
313 314 315 316 317 318 319
	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.

320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336
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

S
Soren Brinkmann 已提交
337 338 339 340 341 342
config PINCTRL_ZYNQ
	bool "Pinctrl driver for Xilinx Zynq"
	depends on ARCH_ZYNQ
	select PINMUX
	select GENERIC_PINCONF
	help
M
Masahiro Yamada 已提交
343
	  This selects the pinctrl driver for Xilinx Zynq.
S
Soren Brinkmann 已提交
344

345 346 347 348 349 350 351 352 353 354 355 356 357
config PINCTRL_ZYNQMP
	tristate "Pinctrl driver for Xilinx ZynqMP"
	depends on ZYNQMP_FIRMWARE
	select PINMUX
	select GENERIC_PINCONF
	default ZYNQMP_FIRMWARE
	help
	  This selects the pinctrl driver for Xilinx ZynqMP platform.
	  This driver will query the pin information from the firmware
	  and allow configuring the pins.
	  Configuration can include the mux function to select on those
	  pin(s)/group(s), and various pin configuration parameters
	  such as pull-up, slew rate, etc.
358 359
	  This driver can also be built as a module. If so, the module
	  will be called pinctrl-zynqmp.
360

361 362
config PINCTRL_INGENIC
	bool "Pinctrl driver for the Ingenic JZ47xx SoCs"
363
	default MACH_INGENIC
364
	depends on OF
365
	depends on MIPS || COMPILE_TEST
366 367 368
	select GENERIC_PINCONF
	select GENERIC_PINCTRL_GROUPS
	select GENERIC_PINMUX_FUNCTIONS
369 370
	select GPIOLIB
	select GPIOLIB_IRQCHIP
371 372
	select REGMAP_MMIO

373 374 375 376 377 378 379 380 381
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.

382
config PINCTRL_OCELOT
383
	bool "Pinctrl driver for the Microsemi Ocelot and Jaguar2 SoCs"
384
	depends on OF
385
	depends on HAS_IOMEM
386
	select GPIOLIB
387
	select GPIOLIB_IRQCHIP
388 389 390
	select GENERIC_PINCONF
	select GENERIC_PINCTRL_GROUPS
	select GENERIC_PINMUX_FUNCTIONS
391
	select OF_GPIO
392 393
	select REGMAP_MMIO

394 395
config PINCTRL_MICROCHIP_SGPIO
	bool "Pinctrl driver for Microsemi/Microchip Serial GPIO"
396
	depends on OF
397 398
	depends on HAS_IOMEM
	select GPIOLIB
399
	select GPIOLIB_IRQCHIP
400 401 402
	select GENERIC_PINCONF
	select GENERIC_PINCTRL_GROUPS
	select GENERIC_PINMUX_FUNCTIONS
403
	select OF_GPIO
404 405 406 407 408 409 410 411 412
	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.

413 414 415 416 417 418 419 420 421 422 423 424 425
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.

426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444
config PINCTRL_KEEMBAY
	tristate "Pinctrl driver for Intel Keem Bay SoC"
	depends on ARCH_KEEMBAY || (ARM64 && COMPILE_TEST)
	depends on HAS_IOMEM
	select PINMUX
	select PINCONF
	select GENERIC_PINCONF
	select GENERIC_PINCTRL_GROUPS
	select GENERIC_PINMUX_FUNCTIONS
	select GPIOLIB
	select GPIOLIB_IRQCHIP
	select GPIO_GENERIC
	help
	  This selects pin control driver for the Intel Keembay SoC.
	  It provides pin config functions such as pullup, pulldown,
	  interrupt, drive strength, sec lock, schmitt trigger, slew
	  rate control and direction control. This module will be
	  called as pinctrl-keembay.

445
source "drivers/pinctrl/actions/Kconfig"
446
source "drivers/pinctrl/aspeed/Kconfig"
447
source "drivers/pinctrl/bcm/Kconfig"
448
source "drivers/pinctrl/berlin/Kconfig"
449
source "drivers/pinctrl/freescale/Kconfig"
450
source "drivers/pinctrl/intel/Kconfig"
451
source "drivers/pinctrl/mvebu/Kconfig"
452
source "drivers/pinctrl/nomadik/Kconfig"
453
source "drivers/pinctrl/nuvoton/Kconfig"
454
source "drivers/pinctrl/pxa/Kconfig"
455
source "drivers/pinctrl/qcom/Kconfig"
456
source "drivers/pinctrl/ralink/Kconfig"
457
source "drivers/pinctrl/renesas/Kconfig"
458
source "drivers/pinctrl/samsung/Kconfig"
459
source "drivers/pinctrl/spear/Kconfig"
460
source "drivers/pinctrl/sprd/Kconfig"
461
source "drivers/pinctrl/stm32/Kconfig"
462
source "drivers/pinctrl/sunxi/Kconfig"
463
source "drivers/pinctrl/tegra/Kconfig"
464
source "drivers/pinctrl/ti/Kconfig"
465
source "drivers/pinctrl/uniphier/Kconfig"
466
source "drivers/pinctrl/vt8500/Kconfig"
467
source "drivers/pinctrl/mediatek/Kconfig"
468
source "drivers/pinctrl/meson/Kconfig"
469
source "drivers/pinctrl/cirrus/Kconfig"
470
source "drivers/pinctrl/visconti/Kconfig"
471

472 473 474 475 476
config PINCTRL_XWAY
	bool
	depends on SOC_TYPE_XWAY
	depends on PINCTRL_LANTIQ

477 478
config PINCTRL_TB10X
	bool
L
Linus Walleij 已提交
479 480
	depends on OF && ARC_PLAT_TB10X
	select GPIOLIB
481

482 483
config PINCTRL_EQUILIBRIUM
	tristate "Generic pinctrl and GPIO driver for Intel Lightning Mountain SoC"
484
	depends on OF && HAS_IOMEM
485
	depends on X86 || COMPILE_TEST
486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501
	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.

502
endif