| .. | .. |
|---|
| 1 | +# SPDX-License-Identifier: GPL-2.0-only |
|---|
| 1 | 2 | # |
|---|
| 2 | 3 | # PINCTRL infrastructure and drivers |
|---|
| 3 | 4 | # |
|---|
| .. | .. |
|---|
| 31 | 32 | Say Y here to add some extra checks and diagnostics to PINCTRL calls. |
|---|
| 32 | 33 | |
|---|
| 33 | 34 | config PINCTRL_ARTPEC6 |
|---|
| 34 | | - bool "Axis ARTPEC-6 pin controller driver" |
|---|
| 35 | | - depends on MACH_ARTPEC6 |
|---|
| 36 | | - select PINMUX |
|---|
| 37 | | - select GENERIC_PINCONF |
|---|
| 38 | | - help |
|---|
| 39 | | - This is the driver for the Axis ARTPEC-6 pin controller. This driver |
|---|
| 40 | | - supports pin function multiplexing as well as pin bias and drive |
|---|
| 41 | | - strength configuration. Device tree integration instructions can be |
|---|
| 42 | | - found in Documentation/devicetree/bindings/pinctrl/axis,artpec6-pinctrl.txt |
|---|
| 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 |
|---|
| 43 | 44 | |
|---|
| 44 | 45 | config PINCTRL_AS3722 |
|---|
| 45 | 46 | tristate "Pinctrl and GPIO driver for ams AS3722 PMIC" |
|---|
| .. | .. |
|---|
| 81 | 82 | config PINCTRL_AT91PIO4 |
|---|
| 82 | 83 | bool "AT91 PIO4 pinctrl driver" |
|---|
| 83 | 84 | depends on OF |
|---|
| 84 | | - depends on ARCH_AT91 |
|---|
| 85 | + depends on ARCH_AT91 || COMPILE_TEST |
|---|
| 85 | 86 | select PINMUX |
|---|
| 86 | 87 | select GENERIC_PINCONF |
|---|
| 87 | 88 | select GPIOLIB |
|---|
| .. | .. |
|---|
| 94 | 95 | config PINCTRL_AMD |
|---|
| 95 | 96 | tristate "AMD GPIO pin control" |
|---|
| 96 | 97 | depends on HAS_IOMEM |
|---|
| 98 | + depends on ACPI || COMPILE_TEST |
|---|
| 97 | 99 | select GPIOLIB |
|---|
| 98 | 100 | select GPIOLIB_IRQCHIP |
|---|
| 99 | 101 | select PINMUX |
|---|
| .. | .. |
|---|
| 108 | 110 | Requires ACPI/FDT device enumeration code to set up a platform |
|---|
| 109 | 111 | device. |
|---|
| 110 | 112 | |
|---|
| 113 | +config 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 | + |
|---|
| 111 | 121 | config PINCTRL_DA850_PUPD |
|---|
| 112 | 122 | tristate "TI DA850/OMAP-L138/AM18XX pullup/pulldown groups" |
|---|
| 113 | 123 | depends on OF && (ARCH_DAVINCI_DA850 || COMPILE_TEST) |
|---|
| .. | .. |
|---|
| 116 | 126 | help |
|---|
| 117 | 127 | Driver for TI DA850/OMAP-L138/AM18XX pinconf. Used to control |
|---|
| 118 | 128 | pullup/pulldown pin groups. |
|---|
| 129 | + |
|---|
| 130 | +config 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. |
|---|
| 119 | 141 | |
|---|
| 120 | 142 | config PINCTRL_DIGICOLOR |
|---|
| 121 | 143 | bool |
|---|
| .. | .. |
|---|
| 151 | 173 | select GENERIC_PINCONF |
|---|
| 152 | 174 | select MFD_SYSCON |
|---|
| 153 | 175 | |
|---|
| 176 | +config PINCTRL_MCP23S08_I2C |
|---|
| 177 | + tristate |
|---|
| 178 | + select REGMAP_I2C |
|---|
| 179 | + |
|---|
| 180 | +config PINCTRL_MCP23S08_SPI |
|---|
| 181 | + tristate |
|---|
| 182 | + select REGMAP_SPI |
|---|
| 183 | + |
|---|
| 154 | 184 | config PINCTRL_MCP23S08 |
|---|
| 155 | 185 | tristate "Microchip MCP23xxx I/O expander" |
|---|
| 156 | 186 | depends on SPI_MASTER || I2C |
|---|
| 157 | | - depends on I2C || I2C=n |
|---|
| 158 | 187 | select GPIOLIB |
|---|
| 159 | 188 | select GPIOLIB_IRQCHIP |
|---|
| 160 | | - select REGMAP_I2C if I2C |
|---|
| 161 | | - select REGMAP_SPI if SPI_MASTER |
|---|
| 162 | 189 | select GENERIC_PINCONF |
|---|
| 190 | + select PINCTRL_MCP23S08_I2C if I2C |
|---|
| 191 | + select PINCTRL_MCP23S08_SPI if SPI_MASTER |
|---|
| 163 | 192 | help |
|---|
| 164 | 193 | SPI/I2C driver for Microchip MCP23S08 / MCP23S17 / MCP23S18 / |
|---|
| 165 | 194 | MCP23008 / MCP23017 / MCP23018 I/O expanders. |
|---|
| .. | .. |
|---|
| 179 | 208 | |
|---|
| 180 | 209 | config PINCTRL_ROCKCHIP |
|---|
| 181 | 210 | tristate "Rockchip gpio and pinctrl driver" |
|---|
| 211 | + depends on ARCH_ROCKCHIP || COMPILE_TEST |
|---|
| 212 | + depends on OF |
|---|
| 182 | 213 | select GPIOLIB |
|---|
| 183 | 214 | select PINMUX |
|---|
| 184 | 215 | select GENERIC_PINCONF |
|---|
| 185 | 216 | select GENERIC_IRQ_CHIP |
|---|
| 186 | 217 | select MFD_SYSCON |
|---|
| 218 | + select OF_GPIO |
|---|
| 187 | 219 | default ARCH_ROCKCHIP |
|---|
| 188 | 220 | help |
|---|
| 189 | | - This support pinctrl and gpio driver for Rockchip SoCs. |
|---|
| 190 | | - |
|---|
| 191 | | -config PINCTRL_RZA1 |
|---|
| 192 | | - bool "Renesas RZ/A1 gpio and pinctrl driver" |
|---|
| 193 | | - depends on OF |
|---|
| 194 | | - depends on ARCH_R7S72100 || COMPILE_TEST |
|---|
| 195 | | - select GPIOLIB |
|---|
| 196 | | - select GENERIC_PINCTRL_GROUPS |
|---|
| 197 | | - select GENERIC_PINMUX_FUNCTIONS |
|---|
| 198 | | - select GENERIC_PINCONF |
|---|
| 199 | | - help |
|---|
| 200 | | - This selects pinctrl driver for Renesas RZ/A1 platforms. |
|---|
| 221 | + This support pinctrl and gpio driver for Rockchip SoCs. |
|---|
| 201 | 222 | |
|---|
| 202 | 223 | config PINCTRL_SINGLE |
|---|
| 203 | 224 | tristate "One-register-per-pin type device tree based pinctrl driver" |
|---|
| .. | .. |
|---|
| 248 | 269 | select PINCONF |
|---|
| 249 | 270 | select GPIOLIB_IRQCHIP |
|---|
| 250 | 271 | |
|---|
| 272 | +config 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 | + |
|---|
| 251 | 286 | config PINCTRL_U300 |
|---|
| 252 | 287 | bool "U300 pin controller driver" |
|---|
| 253 | 288 | depends on ARCH_U300 |
|---|
| .. | .. |
|---|
| 274 | 309 | This PMIC has 8 GPIO pins that work as GPIO as well as special |
|---|
| 275 | 310 | function in alternate mode. This driver also configure push-pull, |
|---|
| 276 | 311 | open drain, FPS slots etc. |
|---|
| 312 | + |
|---|
| 313 | +config PINCTRL_MAX96745 |
|---|
| 314 | + tristate "MAX96745 Pincontrol support" |
|---|
| 315 | + depends on MFD_MAX96745 && OF |
|---|
| 316 | + select PINMUX |
|---|
| 317 | + select GENERIC_PINMUX_FUNCTIONS |
|---|
| 318 | + select GENERIC_PINCTRL_GROUPS |
|---|
| 319 | + select GENERIC_PINCONF |
|---|
| 320 | + help |
|---|
| 321 | + Say Yes here to enable Pin control support for Maxim MAX96745. |
|---|
| 322 | + |
|---|
| 323 | +config PINCTRL_MAX96755F |
|---|
| 324 | + tristate "MAX96755F Pincontrol support" |
|---|
| 325 | + depends on MFD_MAX96755F && OF |
|---|
| 326 | + select PINMUX |
|---|
| 327 | + select GENERIC_PINMUX_FUNCTIONS |
|---|
| 328 | + select GENERIC_PINCTRL_GROUPS |
|---|
| 329 | + select GENERIC_PINCONF |
|---|
| 330 | + help |
|---|
| 331 | + Say Yes here to enable Pin control support for Maxim MAX96755F. |
|---|
| 277 | 332 | |
|---|
| 278 | 333 | config PINCTRL_PALMAS |
|---|
| 279 | 334 | tristate "Pinctrl driver for the PALMAS Series MFD devices" |
|---|
| .. | .. |
|---|
| 313 | 368 | |
|---|
| 314 | 369 | config PINCTRL_INGENIC |
|---|
| 315 | 370 | bool "Pinctrl driver for the Ingenic JZ47xx SoCs" |
|---|
| 316 | | - default y |
|---|
| 371 | + default MACH_INGENIC |
|---|
| 317 | 372 | depends on OF |
|---|
| 318 | | - depends on MACH_INGENIC || COMPILE_TEST |
|---|
| 373 | + depends on MIPS || COMPILE_TEST |
|---|
| 319 | 374 | select GENERIC_PINCONF |
|---|
| 320 | 375 | select GENERIC_PINCTRL_GROUPS |
|---|
| 321 | 376 | select GENERIC_PINMUX_FUNCTIONS |
|---|
| 377 | + select GPIOLIB |
|---|
| 378 | + select GPIOLIB_IRQCHIP |
|---|
| 322 | 379 | select REGMAP_MMIO |
|---|
| 323 | 380 | |
|---|
| 324 | 381 | config PINCTRL_RK628 |
|---|
| .. | .. |
|---|
| 340 | 397 | help |
|---|
| 341 | 398 | This selects the pinctrl driver for RK805. |
|---|
| 342 | 399 | |
|---|
| 400 | +config PINCTRL_RK806 |
|---|
| 401 | + tristate "Pinctrl and GPIO driver for RK806 PMIC" |
|---|
| 402 | + depends on MFD_RK806 |
|---|
| 403 | + select GPIOLIB |
|---|
| 404 | + select PINMUX |
|---|
| 405 | + select GENERIC_PINCONF |
|---|
| 406 | + help |
|---|
| 407 | + This selects the pinctrl driver for RK806 |
|---|
| 408 | + |
|---|
| 343 | 409 | config PINCTRL_OCELOT |
|---|
| 344 | | - bool "Pinctrl driver for the Microsemi Ocelot SoCs" |
|---|
| 345 | | - default y |
|---|
| 410 | + bool "Pinctrl driver for the Microsemi Ocelot and Jaguar2 SoCs" |
|---|
| 346 | 411 | depends on OF |
|---|
| 347 | | - depends on MSCC_OCELOT || COMPILE_TEST |
|---|
| 412 | + depends on HAS_IOMEM |
|---|
| 348 | 413 | select GPIOLIB |
|---|
| 349 | 414 | select GPIOLIB_IRQCHIP |
|---|
| 350 | 415 | select GENERIC_PINCONF |
|---|
| 351 | 416 | select GENERIC_PINCTRL_GROUPS |
|---|
| 352 | 417 | select GENERIC_PINMUX_FUNCTIONS |
|---|
| 418 | + select OF_GPIO |
|---|
| 353 | 419 | select REGMAP_MMIO |
|---|
| 354 | 420 | |
|---|
| 355 | 421 | source "drivers/pinctrl/actions/Kconfig" |
|---|
| .. | .. |
|---|
| 360 | 426 | source "drivers/pinctrl/intel/Kconfig" |
|---|
| 361 | 427 | source "drivers/pinctrl/mvebu/Kconfig" |
|---|
| 362 | 428 | source "drivers/pinctrl/nomadik/Kconfig" |
|---|
| 429 | +source "drivers/pinctrl/nuvoton/Kconfig" |
|---|
| 363 | 430 | source "drivers/pinctrl/pxa/Kconfig" |
|---|
| 364 | 431 | source "drivers/pinctrl/qcom/Kconfig" |
|---|
| 432 | +source "drivers/pinctrl/renesas/Kconfig" |
|---|
| 365 | 433 | source "drivers/pinctrl/samsung/Kconfig" |
|---|
| 366 | | -source "drivers/pinctrl/sh-pfc/Kconfig" |
|---|
| 367 | 434 | source "drivers/pinctrl/spear/Kconfig" |
|---|
| 368 | 435 | source "drivers/pinctrl/sprd/Kconfig" |
|---|
| 369 | 436 | source "drivers/pinctrl/stm32/Kconfig" |
|---|
| .. | .. |
|---|
| 376 | 443 | source "drivers/pinctrl/zte/Kconfig" |
|---|
| 377 | 444 | source "drivers/pinctrl/meson/Kconfig" |
|---|
| 378 | 445 | source "drivers/pinctrl/cirrus/Kconfig" |
|---|
| 446 | +source "drivers/pinctrl/visconti/Kconfig" |
|---|
| 379 | 447 | |
|---|
| 380 | 448 | config PINCTRL_XWAY |
|---|
| 381 | 449 | bool |
|---|
| .. | .. |
|---|
| 387 | 455 | depends on OF && ARC_PLAT_TB10X |
|---|
| 388 | 456 | select GPIOLIB |
|---|
| 389 | 457 | |
|---|
| 458 | +config PINCTRL_EQUILIBRIUM |
|---|
| 459 | + tristate "Generic pinctrl and GPIO driver for Intel Lightning Mountain SoC" |
|---|
| 460 | + depends on OF && HAS_IOMEM |
|---|
| 461 | + depends on X86 || COMPILE_TEST |
|---|
| 462 | + select PINMUX |
|---|
| 463 | + select PINCONF |
|---|
| 464 | + select GPIOLIB |
|---|
| 465 | + select GPIO_GENERIC |
|---|
| 466 | + select GPIOLIB_IRQCHIP |
|---|
| 467 | + select GENERIC_PINCONF |
|---|
| 468 | + select GENERIC_PINCTRL_GROUPS |
|---|
| 469 | + select GENERIC_PINMUX_FUNCTIONS |
|---|
| 470 | + |
|---|
| 471 | + help |
|---|
| 472 | + Equilibrium pinctrl driver is a pinctrl & GPIO driver for Intel Lightning |
|---|
| 473 | + Mountain network processor SoC that supports both the linux GPIO and pin |
|---|
| 474 | + control frameworks. It provides interfaces to setup pinmux, assign desired |
|---|
| 475 | + pin functions, configure GPIO attributes for LGM SoC pins. Pinmux and |
|---|
| 476 | + pinconf settings are retrieved from device tree. |
|---|
| 477 | + |
|---|
| 390 | 478 | endif |
|---|