| 1 | # SPDX-License-Identifier: GPL-2.0-only |
| 2 | # |
| 3 | # PINCTRL infrastructure and drivers |
| 4 | # |
| 5 | |
| 6 | menuconfig PINCTRL |
| 7 | bool "Pin controllers" |
| 8 | |
| 9 | if PINCTRL |
| 10 | |
| 11 | config GENERIC_PINCTRL_GROUPS |
| 12 | bool |
| 13 | |
| 14 | config PINMUX |
| 15 | bool "Support pin multiplexing controllers" if COMPILE_TEST |
| 16 | |
| 17 | config GENERIC_PINMUX_FUNCTIONS |
| 18 | bool |
| 19 | select PINMUX |
| 20 | |
| 21 | config PINCONF |
| 22 | bool "Support pin configuration controllers" if COMPILE_TEST |
| 23 | |
| 24 | config GENERIC_PINCONF |
| 25 | bool |
| 26 | select PINCONF |
| 27 | |
| 28 | config GENERIC_PINCTRL |
| 29 | bool |
| 30 | select GENERIC_PINCONF |
| 31 | select GENERIC_PINCTRL_GROUPS |
| 32 | select GENERIC_PINMUX_FUNCTIONS |
| 33 | |
| 34 | config DEBUG_PINCTRL |
| 35 | bool "Debug PINCTRL calls" |
| 36 | depends on DEBUG_KERNEL |
| 37 | help |
| 38 | Say Y here to add some extra checks and diagnostics to PINCTRL calls. |
| 39 | |
| 40 | config PINCTRL_AMD |
| 41 | bool "AMD GPIO pin control" |
| 42 | depends on HAS_IOMEM |
| 43 | depends on ACPI || COMPILE_TEST |
| 44 | select GPIOLIB |
| 45 | select GPIOLIB_IRQCHIP |
| 46 | select PINMUX |
| 47 | select PINCONF |
| 48 | select GENERIC_PINCONF |
| 49 | help |
| 50 | The driver for memory mapped GPIO functionality on AMD platforms |
| 51 | (x86 or arm). Most of the pins are usually muxed to some other |
| 52 | functionality by firmware, so only a small amount is available |
| 53 | for GPIO use. |
| 54 | |
| 55 | Requires ACPI/FDT device enumeration code to set up a platform |
| 56 | device. |
| 57 | |
| 58 | config PINCTRL_AMDISP |
| 59 | tristate "AMDISP GPIO pin control" |
| 60 | depends on DRM_AMD_ISP || COMPILE_TEST |
| 61 | depends on HAS_IOMEM |
| 62 | select GPIOLIB |
| 63 | select PINCONF |
| 64 | select GENERIC_PINCONF |
| 65 | help |
| 66 | The driver for memory mapped GPIO functionality on AMD platforms |
| 67 | with ISP support. All the pins are output controlled only |
| 68 | |
| 69 | Requires AMDGPU to MFD add device for enumeration to set up as |
| 70 | platform device. |
| 71 | |
| 72 | config PINCTRL_APPLE_GPIO |
| 73 | tristate "Apple SoC GPIO pin controller driver" |
| 74 | depends on ARCH_APPLE |
| 75 | select PINMUX |
| 76 | select GPIOLIB |
| 77 | select GPIOLIB_IRQCHIP |
| 78 | select GENERIC_PINCTRL_GROUPS |
| 79 | select GENERIC_PINMUX_FUNCTIONS |
| 80 | help |
| 81 | This is the driver for the GPIO controller found on Apple ARM SoCs, |
| 82 | including M1. |
| 83 | |
| 84 | This driver can also be built as a module. If so, the module |
| 85 | will be called pinctrl-apple-gpio. |
| 86 | |
| 87 | config PINCTRL_ARTPEC6 |
| 88 | bool "Axis ARTPEC-6 pin controller driver" |
| 89 | depends on MACH_ARTPEC6 |
| 90 | select PINMUX |
| 91 | select GENERIC_PINCONF |
| 92 | help |
| 93 | This is the driver for the Axis ARTPEC-6 pin controller. This driver |
| 94 | supports pin function multiplexing as well as pin bias and drive |
| 95 | strength configuration. Device tree integration instructions can be |
| 96 | found in Documentation/devicetree/bindings/pinctrl/axis,artpec6-pinctrl.txt |
| 97 | |
| 98 | config PINCTRL_AS3722 |
| 99 | tristate "Pinctrl and GPIO driver for ams AS3722 PMIC" |
| 100 | depends on MFD_AS3722 && GPIOLIB |
| 101 | select PINMUX |
| 102 | select GENERIC_PINCONF |
| 103 | help |
| 104 | AS3722 device supports the configuration of GPIO pins for different |
| 105 | functionality. This driver supports the pinmux, push-pull and |
| 106 | open drain configuration for the GPIO pins of AS3722 devices. It also |
| 107 | supports the GPIO functionality through gpiolib. |
| 108 | |
| 109 | config PINCTRL_AT91 |
| 110 | bool "AT91 pinctrl driver" |
| 111 | depends on (OF && ARCH_AT91) || COMPILE_TEST |
| 112 | select PINMUX |
| 113 | select PINCONF |
| 114 | select GPIOLIB |
| 115 | select GPIOLIB_IRQCHIP |
| 116 | help |
| 117 | Say Y here to enable the at91 pinctrl driver |
| 118 | |
| 119 | config PINCTRL_AT91PIO4 |
| 120 | bool "AT91 PIO4 pinctrl driver" |
| 121 | depends on OF |
| 122 | depends on HAS_IOMEM |
| 123 | depends on ARCH_AT91 || COMPILE_TEST |
| 124 | select PINMUX |
| 125 | select GENERIC_PINCONF |
| 126 | select GPIOLIB |
| 127 | select GPIOLIB_IRQCHIP |
| 128 | help |
| 129 | Say Y here to enable the at91 pinctrl/gpio driver for Atmel PIO4 |
| 130 | controller available on sama5d2 SoC. |
| 131 | |
| 132 | config PINCTRL_AXP209 |
| 133 | tristate "X-Powers AXP209 PMIC pinctrl and GPIO Support" |
| 134 | depends on MFD_AXP20X |
| 135 | depends on OF |
| 136 | select PINMUX |
| 137 | select GENERIC_PINCONF |
| 138 | select GPIOLIB |
| 139 | help |
| 140 | AXP PMICs provides multiple GPIOs that can be muxed for different |
| 141 | functions. This driver bundles a pinctrl driver to select the function |
| 142 | muxing and a GPIO driver to handle the GPIO when the GPIO function is |
| 143 | selected. |
| 144 | Say Y to enable pinctrl and GPIO support for the AXP209 PMIC. |
| 145 | |
| 146 | config PINCTRL_AW9523 |
| 147 | tristate "Awinic AW9523/AW9523B I2C GPIO expander pinctrl driver" |
| 148 | depends on OF && I2C |
| 149 | select PINMUX |
| 150 | select PINCONF |
| 151 | select GENERIC_PINCONF |
| 152 | select GPIOLIB |
| 153 | select GPIOLIB_IRQCHIP |
| 154 | select REGMAP |
| 155 | select REGMAP_I2C |
| 156 | help |
| 157 | The Awinic AW9523/AW9523B is a multi-function I2C GPIO |
| 158 | expander with PWM functionality. This driver bundles a |
| 159 | pinctrl driver to select the function muxing and a GPIO |
| 160 | driver to handle GPIO, when the GPIO function is selected. |
| 161 | |
| 162 | Say yes to enable pinctrl and GPIO support for the AW9523(B). |
| 163 | |
| 164 | config PINCTRL_BM1880 |
| 165 | bool "Bitmain BM1880 Pinctrl driver" |
| 166 | depends on OF && (ARCH_BITMAIN || COMPILE_TEST) |
| 167 | default ARCH_BITMAIN |
| 168 | select PINMUX |
| 169 | select GENERIC_PINCONF |
| 170 | help |
| 171 | Pinctrl driver for Bitmain BM1880 SoC. |
| 172 | |
| 173 | config PINCTRL_CY8C95X0 |
| 174 | tristate "Cypress CY8C95X0 I2C pinctrl and GPIO driver" |
| 175 | depends on I2C |
| 176 | select GPIOLIB |
| 177 | select GPIOLIB_IRQCHIP |
| 178 | select PINMUX |
| 179 | select PINCONF |
| 180 | select GENERIC_PINCONF |
| 181 | select REGMAP_I2C |
| 182 | help |
| 183 | Support for 20/40/60 pin Cypress Cy8C95x0 pinctrl/gpio I2C expander. |
| 184 | This driver can also be built as a module. If so, the module will be |
| 185 | called pinctrl-cy8c95x0. |
| 186 | |
| 187 | config PINCTRL_DA850_PUPD |
| 188 | tristate "TI DA850/OMAP-L138/AM18XX pull-up and pull-down groups" |
| 189 | depends on OF && (ARCH_DAVINCI_DA850 || COMPILE_TEST) |
| 190 | select PINCONF |
| 191 | select GENERIC_PINCONF |
| 192 | help |
| 193 | Driver for TI DA850/OMAP-L138/AM18XX pinconf. Used to control |
| 194 | pull-up and pull-down pin groups. |
| 195 | |
| 196 | config PINCTRL_DA9062 |
| 197 | tristate "Dialog Semiconductor DA9062 PMIC pinctrl and GPIO Support" |
| 198 | depends on MFD_DA9062 |
| 199 | select GPIOLIB |
| 200 | help |
| 201 | The Dialog DA9062 PMIC provides multiple GPIOs that can be muxed for |
| 202 | different functions. This driver bundles a pinctrl driver to select the |
| 203 | function muxing and a GPIO driver to handle the GPIO when the GPIO |
| 204 | function is selected. |
| 205 | |
| 206 | Say Y to enable pinctrl and GPIO support for the DA9062 PMIC. |
| 207 | |
| 208 | config PINCTRL_DIGICOLOR |
| 209 | bool |
| 210 | depends on ARCH_DIGICOLOR || COMPILE_TEST |
| 211 | select PINMUX |
| 212 | select GENERIC_PINCONF |
| 213 | |
| 214 | config PINCTRL_EIC7700 |
| 215 | tristate "EIC7700 PINCTRL driver" |
| 216 | depends on ARCH_ESWIN || COMPILE_TEST |
| 217 | select PINMUX |
| 218 | select GENERIC_PINCONF |
| 219 | select REGULATOR |
| 220 | select REGULATOR_FIXED_VOLTAGE |
| 221 | help |
| 222 | This driver support for the pin controller in ESWIN's EIC7700 SoC, |
| 223 | which supports pin multiplexing, pin configuration,and rgmii voltage |
| 224 | control. |
| 225 | Say Y here to enable the eic7700 pinctrl driver |
| 226 | |
| 227 | config PINCTRL_EP93XX |
| 228 | bool |
| 229 | depends on ARCH_EP93XX || COMPILE_TEST |
| 230 | select PINMUX |
| 231 | select GENERIC_PINCONF |
| 232 | select MFD_SYSCON |
| 233 | |
| 234 | config PINCTRL_EQUILIBRIUM |
| 235 | tristate "Generic pinctrl and GPIO driver for Intel Lightning Mountain SoC" |
| 236 | depends on OF && HAS_IOMEM |
| 237 | depends on X86 || COMPILE_TEST |
| 238 | select PINMUX |
| 239 | select PINCONF |
| 240 | select GPIOLIB |
| 241 | select GPIO_GENERIC |
| 242 | select GPIOLIB_IRQCHIP |
| 243 | select GENERIC_PINCONF |
| 244 | select GENERIC_PINCTRL_GROUPS |
| 245 | select GENERIC_PINMUX_FUNCTIONS |
| 246 | help |
| 247 | Equilibrium driver is a pinctrl and GPIO driver for Intel Lightning |
| 248 | Mountain network processor SoC that supports both the GPIO and pin |
| 249 | control frameworks. It provides interfaces to setup pin muxing, assign |
| 250 | desired pin functions, configure GPIO attributes for LGM SoC pins. |
| 251 | Pin muxing and pin config settings are retrieved from device tree. |
| 252 | |
| 253 | config PINCTRL_EYEQ5 |
| 254 | bool "Mobileye EyeQ5 pinctrl driver" |
| 255 | depends on OF |
| 256 | depends on MACH_EYEQ5 || MACH_EYEQ6LPLUS || COMPILE_TEST |
| 257 | select PINMUX |
| 258 | select GENERIC_PINCONF |
| 259 | select AUXILIARY_BUS |
| 260 | default MACH_EYEQ5 || MACH_EYEQ6LPLUS |
| 261 | help |
| 262 | Pin controller driver for the Mobileye EyeQ5 platform. It does both |
| 263 | pin config & pin muxing. It does not handle GPIO. |
| 264 | |
| 265 | Pin muxing supports two functions for each pin: first is GPIO, second |
| 266 | is pin-dependent. Pin config is about bias & drive strength. |
| 267 | |
| 268 | config PINCTRL_GEMINI |
| 269 | bool |
| 270 | depends on ARCH_GEMINI |
| 271 | default ARCH_GEMINI |
| 272 | select PINMUX |
| 273 | select GENERIC_PINCONF |
| 274 | select MFD_SYSCON |
| 275 | |
| 276 | config PINCTRL_GENERIC_MUX |
| 277 | tristate "Generic Pinctrl driver by using multiplexer" |
| 278 | depends on OF |
| 279 | select MULTIPLEXER |
| 280 | select PINMUX |
| 281 | select GENERIC_PINCTRL |
| 282 | help |
| 283 | Generic pinctrl driver by MULTIPLEXER framework to control on |
| 284 | board pin selection. |
| 285 | |
| 286 | config PINCTRL_INGENIC |
| 287 | bool "Pinctrl driver for the Ingenic JZ47xx SoCs" |
| 288 | default MACH_INGENIC |
| 289 | depends on OF |
| 290 | depends on MIPS || COMPILE_TEST |
| 291 | select GENERIC_PINCONF |
| 292 | select GENERIC_PINCTRL_GROUPS |
| 293 | select GENERIC_PINMUX_FUNCTIONS |
| 294 | select GPIOLIB |
| 295 | select GPIOLIB_IRQCHIP |
| 296 | select REGMAP_MMIO |
| 297 | |
| 298 | config PINCTRL_K210 |
| 299 | bool "Pinctrl driver for the Canaan Kendryte K210 SoC" |
| 300 | depends on RISCV && SOC_CANAAN_K210 || COMPILE_TEST |
| 301 | depends on OF |
| 302 | select GENERIC_PINMUX_FUNCTIONS |
| 303 | select GENERIC_PINCONF |
| 304 | select GPIOLIB |
| 305 | select REGMAP_MMIO |
| 306 | default SOC_CANAAN_K210 |
| 307 | help |
| 308 | Add support for the Canaan Kendryte K210 RISC-V SOC Field |
| 309 | Programmable IO Array (FPIOA) controller. |
| 310 | |
| 311 | config PINCTRL_K230 |
| 312 | bool "Pinctrl driver for the Canaan Kendryte K230 SoC" |
| 313 | depends on OF |
| 314 | depends on ARCH_CANAAN || COMPILE_TEST |
| 315 | select GENERIC_PINCTRL_GROUPS |
| 316 | select GENERIC_PINMUX_FUNCTIONS |
| 317 | select GENERIC_PINCONF |
| 318 | select REGMAP_MMIO |
| 319 | help |
| 320 | Add support for the Canaan Kendryte K230 RISC-V SOC pin controller. |
| 321 | |
| 322 | config PINCTRL_KEEMBAY |
| 323 | tristate "Pinctrl driver for Intel Keem Bay SoC" |
| 324 | depends on ARCH_KEEMBAY || (ARM64 && COMPILE_TEST) |
| 325 | depends on HAS_IOMEM |
| 326 | select PINMUX |
| 327 | select PINCONF |
| 328 | select GENERIC_PINCONF |
| 329 | select GENERIC_PINCTRL_GROUPS |
| 330 | select GENERIC_PINMUX_FUNCTIONS |
| 331 | select GPIOLIB |
| 332 | select GPIOLIB_IRQCHIP |
| 333 | select GPIO_GENERIC |
| 334 | help |
| 335 | This selects pin control driver for the Intel Keem Bay SoC. |
| 336 | It provides pin config functions such as pull-up, pull-down, |
| 337 | interrupt, drive strength, sec lock, Schmitt trigger, slew |
| 338 | rate control and direction control. This module will be |
| 339 | called as pinctrl-keembay. |
| 340 | |
| 341 | config PINCTRL_LANTIQ |
| 342 | bool |
| 343 | depends on LANTIQ |
| 344 | select PINMUX |
| 345 | select PINCONF |
| 346 | |
| 347 | config PINCTRL_FALCON |
| 348 | bool |
| 349 | depends on SOC_FALCON |
| 350 | depends on PINCTRL_LANTIQ |
| 351 | |
| 352 | config PINCTRL_LOONGSON2 |
| 353 | tristate "Pinctrl driver for the Loongson-2 SoC" |
| 354 | depends on OF && (LOONGARCH || COMPILE_TEST) |
| 355 | select PINMUX |
| 356 | select GENERIC_PINCONF |
| 357 | help |
| 358 | This selects pin control driver for the Loongson-2 SoC. It |
| 359 | provides pin config functions multiplexing. GPIO pin pull-up, |
| 360 | pull-down functions are not supported. Say yes to enable |
| 361 | pinctrl for Loongson-2 SoC. |
| 362 | |
| 363 | config PINCTRL_XWAY |
| 364 | bool |
| 365 | depends on SOC_TYPE_XWAY |
| 366 | depends on PINCTRL_LANTIQ |
| 367 | |
| 368 | config PINCTRL_LPC18XX |
| 369 | bool "NXP LPC18XX/43XX SCU pinctrl driver" |
| 370 | depends on OF && (ARCH_LPC18XX || COMPILE_TEST) |
| 371 | default ARCH_LPC18XX |
| 372 | select PINMUX |
| 373 | select GENERIC_PINCONF |
| 374 | help |
| 375 | Pinctrl driver for NXP LPC18xx/43xx System Control Unit (SCU). |
| 376 | |
| 377 | config PINCTRL_MAX7360 |
| 378 | tristate "MAX7360 Pincontrol support" |
| 379 | depends on MFD_MAX7360 |
| 380 | select PINMUX |
| 381 | select GENERIC_PINCONF |
| 382 | help |
| 383 | Say Y here to enable pin control support for Maxim MAX7360 keypad |
| 384 | controller. |
| 385 | This keypad controller has 8 GPIO pins that may work as GPIO, or PWM, |
| 386 | or rotary encoder alternate modes. |
| 387 | |
| 388 | config PINCTRL_MAX77620 |
| 389 | tristate "MAX77620/MAX20024 Pincontrol support" |
| 390 | depends on MFD_MAX77620 && OF |
| 391 | select PINMUX |
| 392 | select GENERIC_PINCONF |
| 393 | help |
| 394 | Say Y here to enable Pin control support for Maxim MAX77620 PMIC. |
| 395 | This PMIC has 8 GPIO pins that work as GPIO as well as special |
| 396 | function in alternate mode. This driver also configure push-pull, |
| 397 | open drain, FPS slots etc. |
| 398 | |
| 399 | config PINCTRL_MCP23S08_I2C |
| 400 | tristate |
| 401 | select REGMAP_I2C |
| 402 | |
| 403 | config PINCTRL_MCP23S08_SPI |
| 404 | tristate |
| 405 | select REGMAP_SPI |
| 406 | |
| 407 | config PINCTRL_MCP23S08 |
| 408 | tristate "Microchip MCP23xxx I/O expander" |
| 409 | depends on SPI_MASTER || I2C |
| 410 | select GPIOLIB |
| 411 | select GPIOLIB_IRQCHIP |
| 412 | select GENERIC_PINCONF |
| 413 | select PINCTRL_MCP23S08_I2C if I2C |
| 414 | select PINCTRL_MCP23S08_SPI if SPI_MASTER |
| 415 | help |
| 416 | SPI/I2C driver for Microchip MCP23S08 / MCP23S17 / MCP23S18 / |
| 417 | MCP23008 / MCP23017 / MCP23018 I/O expanders. |
| 418 | This provides a GPIO interface supporting inputs and outputs and a |
| 419 | corresponding interrupt-controller. |
| 420 | |
| 421 | config PINCTRL_MICROCHIP_SGPIO |
| 422 | tristate "Pinctrl driver for Microsemi/Microchip Serial GPIO" |
| 423 | depends on OF |
| 424 | depends on HAS_IOMEM |
| 425 | select GPIOLIB |
| 426 | select GPIOLIB_IRQCHIP |
| 427 | select GENERIC_PINCONF |
| 428 | select GENERIC_PINCTRL_GROUPS |
| 429 | select GENERIC_PINMUX_FUNCTIONS |
| 430 | select REGMAP_MMIO |
| 431 | help |
| 432 | Support for the serial GPIO interface used on Microsemi and |
| 433 | Microchip SoCs. By using a serial interface, the SIO |
| 434 | controller significantly extends the number of available |
| 435 | GPIOs with a minimum number of additional pins on the |
| 436 | device. The primary purpose of the SIO controller is to |
| 437 | connect control signals from SFP modules and to act as an |
| 438 | LED controller. |
| 439 | |
| 440 | If compiled as a module, the module name will be |
| 441 | pinctrl-microchip-sgpio. |
| 442 | |
| 443 | config PINCTRL_OCELOT |
| 444 | tristate "Pinctrl driver for the Microsemi Ocelot and Jaguar2 SoCs" |
| 445 | depends on OF |
| 446 | depends on HAS_IOMEM |
| 447 | select GPIOLIB |
| 448 | select GPIOLIB_IRQCHIP |
| 449 | select GENERIC_PINCONF |
| 450 | select GENERIC_PINCTRL_GROUPS |
| 451 | select GENERIC_PINMUX_FUNCTIONS |
| 452 | select REGMAP_MMIO |
| 453 | help |
| 454 | Support for the internal GPIO interfaces on Microsemi Ocelot and |
| 455 | Jaguar2 SoCs. |
| 456 | |
| 457 | If conpiled as a module, the module name will be pinctrl-ocelot. |
| 458 | |
| 459 | config PINCTRL_PALMAS |
| 460 | tristate "Pinctrl driver for the PALMAS Series MFD devices" |
| 461 | depends on OF && MFD_PALMAS |
| 462 | select PINMUX |
| 463 | select GENERIC_PINCONF |
| 464 | help |
| 465 | Palmas device supports the configuration of pins for different |
| 466 | functionality. This driver supports the pinmux, push-pull and |
| 467 | open drain configuration for the Palmas series devices like |
| 468 | TPS65913, TPS80036 etc. |
| 469 | |
| 470 | config PINCTRL_PEF2256 |
| 471 | tristate "Lantiq PEF2256 (FALC56) pin controller driver" |
| 472 | depends on OF && FRAMER_PEF2256 |
| 473 | select PINMUX |
| 474 | select PINCONF |
| 475 | select GENERIC_PINCONF |
| 476 | help |
| 477 | This option enables the pin controller support for the Lantiq PEF2256 |
| 478 | framer, also known as FALC56. |
| 479 | |
| 480 | If unsure, say N. |
| 481 | |
| 482 | To compile this driver as a module, choose M here: the |
| 483 | module will be called pinctrl-pef2256. |
| 484 | |
| 485 | config PINCTRL_PIC32 |
| 486 | bool "Microchip PIC32 pin controller driver" |
| 487 | depends on OF |
| 488 | depends on MACH_PIC32 || COMPILE_TEST |
| 489 | select PINMUX |
| 490 | select GENERIC_PINCONF |
| 491 | select GPIOLIB |
| 492 | select GPIOLIB_IRQCHIP |
| 493 | help |
| 494 | This is the pin controller and gpio driver for Microchip PIC32 |
| 495 | microcontrollers. This option is selected automatically when specific |
| 496 | machine and arch are selected to build. |
| 497 | |
| 498 | config PINCTRL_PIC32MZDA |
| 499 | def_bool y if PIC32MZDA |
| 500 | select PINCTRL_PIC32 |
| 501 | |
| 502 | config PINCTRL_PISTACHIO |
| 503 | bool "IMG Pistachio SoC pinctrl driver" |
| 504 | depends on OF && (MIPS || COMPILE_TEST) |
| 505 | depends on GPIOLIB |
| 506 | select PINMUX |
| 507 | select GENERIC_PINCONF |
| 508 | select GPIOLIB_IRQCHIP |
| 509 | help |
| 510 | This support pinctrl and GPIO driver for IMG Pistachio SoC. |
| 511 | |
| 512 | config PINCTRL_RK805 |
| 513 | tristate "Pinctrl and GPIO driver for RK805 PMIC" |
| 514 | depends on MFD_RK8XX |
| 515 | select GPIOLIB |
| 516 | select PINMUX |
| 517 | select GENERIC_PINCONF |
| 518 | help |
| 519 | This selects the pinctrl driver for RK805. |
| 520 | |
| 521 | config PINCTRL_ROCKCHIP |
| 522 | tristate "Rockchip gpio and pinctrl driver" |
| 523 | depends on ARCH_ROCKCHIP || COMPILE_TEST |
| 524 | depends on OF |
| 525 | select GPIOLIB |
| 526 | select PINMUX |
| 527 | select GENERIC_PINCONF |
| 528 | select GENERIC_IRQ_CHIP |
| 529 | select MFD_SYSCON |
| 530 | default ARCH_ROCKCHIP |
| 531 | help |
| 532 | This support pinctrl and GPIO driver for Rockchip SoCs. |
| 533 | |
| 534 | config PINCTRL_SCMI |
| 535 | tristate "Pinctrl driver using SCMI protocol interface" |
| 536 | depends on ARM_SCMI_PROTOCOL || COMPILE_TEST |
| 537 | select PINMUX |
| 538 | select GENERIC_PINCONF |
| 539 | help |
| 540 | This driver provides support for pinctrl which is controlled |
| 541 | by firmware that implements the SCMI interface. |
| 542 | It uses SCMI Message Protocol to interact with the |
| 543 | firmware providing all the pinctrl controls. |
| 544 | |
| 545 | config PINCTRL_SINGLE |
| 546 | tristate "One-register-per-pin type device tree based pinctrl driver" |
| 547 | depends on OF |
| 548 | depends on HAS_IOMEM |
| 549 | select GENERIC_PINCTRL_GROUPS |
| 550 | select GENERIC_PINMUX_FUNCTIONS |
| 551 | select GENERIC_PINCONF |
| 552 | help |
| 553 | This selects the device tree based generic pinctrl driver. |
| 554 | |
| 555 | config PINCTRL_ST |
| 556 | bool |
| 557 | depends on OF |
| 558 | select PINMUX |
| 559 | select PINCONF |
| 560 | select GPIOLIB_IRQCHIP |
| 561 | |
| 562 | config PINCTRL_STMFX |
| 563 | tristate "STMicroelectronics STMFX GPIO expander pinctrl driver" |
| 564 | depends on OF |
| 565 | depends on I2C |
| 566 | depends on HAS_IOMEM |
| 567 | select GENERIC_PINCONF |
| 568 | select GPIOLIB |
| 569 | select GPIOLIB_IRQCHIP |
| 570 | select MFD_STMFX |
| 571 | help |
| 572 | Driver for STMicroelectronics Multi-Function eXpander (STMFX) |
| 573 | GPIO expander. |
| 574 | This provides a GPIO interface supporting inputs and outputs, |
| 575 | and configuring push-pull, open-drain, and can also be used as |
| 576 | interrupt-controller. |
| 577 | |
| 578 | config PINCTRL_SX150X |
| 579 | tristate "Semtech SX150x I2C GPIO expander pinctrl driver" |
| 580 | depends on I2C |
| 581 | select PINMUX |
| 582 | select PINCONF |
| 583 | select GENERIC_PINCONF |
| 584 | select GPIOLIB |
| 585 | select GPIOLIB_IRQCHIP |
| 586 | select REGMAP |
| 587 | help |
| 588 | Say Y here to provide support for Semtech SX150x-series I2C |
| 589 | GPIO expanders as pinctrl module. |
| 590 | Compatible models include: |
| 591 | - 8 bits: sx1508q, sx1502q |
| 592 | - 16 bits: sx1509q, sx1506q |
| 593 | |
| 594 | config PINCTRL_TB10X |
| 595 | bool "Pinctrl for TB10X" if COMPILE_TEST |
| 596 | depends on OF && ARC_PLAT_TB10X || COMPILE_TEST |
| 597 | select GPIOLIB |
| 598 | |
| 599 | config PINCTRL_TPS6594 |
| 600 | tristate "Pinctrl and GPIO driver for TI TPS6594 PMIC" |
| 601 | depends on OF && MFD_TPS6594 |
| 602 | default MFD_TPS6594 |
| 603 | select PINMUX |
| 604 | select GPIOLIB |
| 605 | select REGMAP |
| 606 | select GPIO_REGMAP |
| 607 | select GENERIC_PINCONF |
| 608 | help |
| 609 | Say Y to select the pinmuxing and GPIOs driver for the TPS6594 |
| 610 | PMICs chip family. |
| 611 | |
| 612 | This driver can also be built as a module |
| 613 | called tps6594-pinctrl. |
| 614 | |
| 615 | config PINCTRL_TH1520 |
| 616 | tristate "Pinctrl driver for the T-Head TH1520 SoC" |
| 617 | depends on ARCH_THEAD || COMPILE_TEST |
| 618 | depends on OF |
| 619 | select GENERIC_PINMUX_FUNCTIONS |
| 620 | select GENERIC_PINCONF |
| 621 | select PINMUX |
| 622 | help |
| 623 | This is the driver for the pin controller blocks on the |
| 624 | T-Head TH1520 SoC. |
| 625 | |
| 626 | This driver is needed for RISC-V development boards like |
| 627 | the BeagleV Ahead and the LicheePi 4A. |
| 628 | |
| 629 | config PINCTRL_UPBOARD |
| 630 | tristate "AAeon UP board FPGA pin controller" |
| 631 | depends on MFD_UPBOARD_FPGA |
| 632 | select PINMUX |
| 633 | select GENERIC_PINCTRL_GROUPS |
| 634 | select GENERIC_PINMUX_FUNCTIONS |
| 635 | select GPIOLIB |
| 636 | select GPIO_AGGREGATOR |
| 637 | help |
| 638 | Pin controller for the FPGA GPIO lines on UP boards. Due to the |
| 639 | hardware layout, the driver controls the FPGA pins in tandem with |
| 640 | their corresponding Intel SoC GPIOs. |
| 641 | |
| 642 | Currently supported: |
| 643 | - UP Squared |
| 644 | |
| 645 | To compile this driver as a module, choose M here: the module |
| 646 | will be called pinctrl-upboard. |
| 647 | |
| 648 | config PINCTRL_ZYNQ |
| 649 | bool "Pinctrl driver for Xilinx Zynq" |
| 650 | depends on ARCH_ZYNQ || COMPILE_TEST |
| 651 | depends on OF |
| 652 | select PINMUX |
| 653 | select GENERIC_PINCONF |
| 654 | help |
| 655 | This selects the pinctrl driver for Xilinx Zynq. |
| 656 | |
| 657 | config PINCTRL_ZYNQMP |
| 658 | tristate "Pinctrl driver for Xilinx ZynqMP" |
| 659 | depends on ZYNQMP_FIRMWARE |
| 660 | select PINMUX |
| 661 | select GENERIC_PINCONF |
| 662 | default ZYNQMP_FIRMWARE |
| 663 | help |
| 664 | This selects the pinctrl driver for Xilinx ZynqMP platform. |
| 665 | This driver will query the pin information from the firmware |
| 666 | and allow configuring the pins. |
| 667 | Configuration can include the mux function to select on those |
| 668 | pin(s)/group(s), and various pin configuration parameters |
| 669 | such as pull-up, slew rate, etc. |
| 670 | This driver can also be built as a module. If so, the module |
| 671 | will be called pinctrl-zynqmp. |
| 672 | |
| 673 | config PINCTRL_MLXBF3 |
| 674 | tristate "NVIDIA BlueField-3 SoC Pinctrl driver" |
| 675 | depends on (MELLANOX_PLATFORM && ARM64) || COMPILE_TEST |
| 676 | select PINMUX |
| 677 | select GPIOLIB |
| 678 | select GPIOLIB_IRQCHIP |
| 679 | help |
| 680 | Say Y to select the pinctrl driver for BlueField-3 SoCs. |
| 681 | This pin controller allows selecting the mux function for |
| 682 | each pin. This driver can also be built as a module called |
| 683 | pinctrl-mlxbf3. |
| 684 | |
| 685 | config PINCTRL_RP1 |
| 686 | tristate "Pinctrl driver for RP1" |
| 687 | depends on MISC_RP1 |
| 688 | default MISC_RP1 |
| 689 | select PINMUX |
| 690 | select PINCONF |
| 691 | select GENERIC_PINCONF |
| 692 | help |
| 693 | Enable the gpio and pinctrl/mux driver for RaspberryPi RP1 |
| 694 | multi function device. |
| 695 | |
| 696 | source "drivers/pinctrl/actions/Kconfig" |
| 697 | source "drivers/pinctrl/airoha/Kconfig" |
| 698 | source "drivers/pinctrl/aspeed/Kconfig" |
| 699 | source "drivers/pinctrl/bcm/Kconfig" |
| 700 | source "drivers/pinctrl/berlin/Kconfig" |
| 701 | source "drivers/pinctrl/cirrus/Kconfig" |
| 702 | source "drivers/pinctrl/cix/Kconfig" |
| 703 | source "drivers/pinctrl/freescale/Kconfig" |
| 704 | source "drivers/pinctrl/intel/Kconfig" |
| 705 | source "drivers/pinctrl/mediatek/Kconfig" |
| 706 | source "drivers/pinctrl/meson/Kconfig" |
| 707 | source "drivers/pinctrl/microchip/Kconfig" |
| 708 | source "drivers/pinctrl/mvebu/Kconfig" |
| 709 | source "drivers/pinctrl/nomadik/Kconfig" |
| 710 | source "drivers/pinctrl/nuvoton/Kconfig" |
| 711 | source "drivers/pinctrl/nxp/Kconfig" |
| 712 | source "drivers/pinctrl/pxa/Kconfig" |
| 713 | source "drivers/pinctrl/qcom/Kconfig" |
| 714 | source "drivers/pinctrl/realtek/Kconfig" |
| 715 | source "drivers/pinctrl/renesas/Kconfig" |
| 716 | source "drivers/pinctrl/samsung/Kconfig" |
| 717 | source "drivers/pinctrl/sophgo/Kconfig" |
| 718 | source "drivers/pinctrl/spacemit/Kconfig" |
| 719 | source "drivers/pinctrl/spear/Kconfig" |
| 720 | source "drivers/pinctrl/sprd/Kconfig" |
| 721 | source "drivers/pinctrl/starfive/Kconfig" |
| 722 | source "drivers/pinctrl/stm32/Kconfig" |
| 723 | source "drivers/pinctrl/sunplus/Kconfig" |
| 724 | source "drivers/pinctrl/sunxi/Kconfig" |
| 725 | source "drivers/pinctrl/tegra/Kconfig" |
| 726 | source "drivers/pinctrl/ti/Kconfig" |
| 727 | source "drivers/pinctrl/ultrarisc/Kconfig" |
| 728 | source "drivers/pinctrl/uniphier/Kconfig" |
| 729 | source "drivers/pinctrl/visconti/Kconfig" |
| 730 | source "drivers/pinctrl/vt8500/Kconfig" |
| 731 | |
| 732 | endif |