1# SPDX-License-Identifier: GPL-2.0-only 2# 3# PINCTRL infrastructure and drivers 4# 5 6menuconfig PINCTRL 7 bool "Pin controllers" 8 9if PINCTRL 10 11config GENERIC_PINCTRL_GROUPS 12 bool 13 14config PINMUX 15 bool "Support pin multiplexing controllers" if COMPILE_TEST 16 17config GENERIC_PINMUX_FUNCTIONS 18 bool 19 select PINMUX 20 21config PINCONF 22 bool "Support pin configuration controllers" if COMPILE_TEST 23 24config GENERIC_PINCONF 25 bool 26 select PINCONF 27 28config DEBUG_PINCTRL 29 bool "Debug PINCTRL calls" 30 depends on DEBUG_KERNEL 31 help 32 Say Y here to add some extra checks and diagnostics to PINCTRL calls. 33 34config PINCTRL_ARTPEC6 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 44 45config PINCTRL_AS3722 46 tristate "Pinctrl and GPIO driver for ams AS3722 PMIC" 47 depends on MFD_AS3722 && GPIOLIB 48 select PINMUX 49 select GENERIC_PINCONF 50 help 51 AS3722 device supports the configuration of GPIO pins for different 52 functionality. This driver supports the pinmux, push-pull and 53 open drain configuration for the GPIO pins of AS3722 devices. It also 54 supports the GPIO functionality through gpiolib. 55 56config PINCTRL_AXP209 57 tristate "X-Powers AXP209 PMIC pinctrl and GPIO Support" 58 depends on MFD_AXP20X 59 depends on OF 60 select PINMUX 61 select GENERIC_PINCONF 62 select GPIOLIB 63 help 64 AXP PMICs provides multiple GPIOs that can be muxed for different 65 functions. This driver bundles a pinctrl driver to select the function 66 muxing and a GPIO driver to handle the GPIO when the GPIO function is 67 selected. 68 Say yes to enable pinctrl and GPIO support for the AXP209 PMIC 69 70config PINCTRL_AT91 71 bool "AT91 pinctrl driver" 72 depends on OF 73 depends on ARCH_AT91 74 select PINMUX 75 select PINCONF 76 select GPIOLIB 77 select OF_GPIO 78 select GPIOLIB_IRQCHIP 79 help 80 Say Y here to enable the at91 pinctrl driver 81 82config PINCTRL_AT91PIO4 83 bool "AT91 PIO4 pinctrl driver" 84 depends on OF 85 depends on ARCH_AT91 || COMPILE_TEST 86 select PINMUX 87 select GENERIC_PINCONF 88 select GPIOLIB 89 select GPIOLIB_IRQCHIP 90 select OF_GPIO 91 help 92 Say Y here to enable the at91 pinctrl/gpio driver for Atmel PIO4 93 controller available on sama5d2 SoC. 94 95config PINCTRL_AMD 96 tristate "AMD GPIO pin control" 97 depends on HAS_IOMEM 98 depends on ACPI || COMPILE_TEST 99 select GPIOLIB 100 select GPIOLIB_IRQCHIP 101 select PINMUX 102 select PINCONF 103 select GENERIC_PINCONF 104 help 105 driver for memory mapped GPIO functionality on AMD platforms 106 (x86 or arm).Most pins are usually muxed to some other 107 functionality by firmware,so only a small amount is available 108 for gpio use. 109 110 Requires ACPI/FDT device enumeration code to set up a platform 111 device. 112 113config 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 121config PINCTRL_DA850_PUPD 122 tristate "TI DA850/OMAP-L138/AM18XX pullup/pulldown groups" 123 depends on OF && (ARCH_DAVINCI_DA850 || COMPILE_TEST) 124 select PINCONF 125 select GENERIC_PINCONF 126 help 127 Driver for TI DA850/OMAP-L138/AM18XX pinconf. Used to control 128 pullup/pulldown pin groups. 129 130config 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. 141 142config PINCTRL_DIGICOLOR 143 bool 144 depends on OF && (ARCH_DIGICOLOR || COMPILE_TEST) 145 select PINMUX 146 select GENERIC_PINCONF 147 148config PINCTRL_LANTIQ 149 bool 150 depends on LANTIQ 151 select PINMUX 152 select PINCONF 153 154config PINCTRL_LPC18XX 155 bool "NXP LPC18XX/43XX SCU pinctrl driver" 156 depends on OF && (ARCH_LPC18XX || COMPILE_TEST) 157 default ARCH_LPC18XX 158 select PINMUX 159 select GENERIC_PINCONF 160 help 161 Pinctrl driver for NXP LPC18xx/43xx System Control Unit (SCU). 162 163config PINCTRL_FALCON 164 bool 165 depends on SOC_FALCON 166 depends on PINCTRL_LANTIQ 167 168config PINCTRL_GEMINI 169 bool 170 depends on ARCH_GEMINI 171 default ARCH_GEMINI 172 select PINMUX 173 select GENERIC_PINCONF 174 select MFD_SYSCON 175 176config PINCTRL_MCP23S08_I2C 177 tristate 178 select REGMAP_I2C 179 180config PINCTRL_MCP23S08_SPI 181 tristate 182 select REGMAP_SPI 183 184config PINCTRL_MCP23S08 185 tristate "Microchip MCP23xxx I/O expander" 186 depends on SPI_MASTER || I2C 187 select GPIOLIB 188 select GPIOLIB_IRQCHIP 189 select GENERIC_PINCONF 190 select PINCTRL_MCP23S08_I2C if I2C 191 select PINCTRL_MCP23S08_SPI if SPI_MASTER 192 help 193 SPI/I2C driver for Microchip MCP23S08 / MCP23S17 / MCP23S18 / 194 MCP23008 / MCP23017 / MCP23018 I/O expanders. 195 This provides a GPIO interface supporting inputs and outputs and a 196 corresponding interrupt-controller. 197 198config PINCTRL_OXNAS 199 bool 200 depends on OF 201 select PINMUX 202 select PINCONF 203 select GENERIC_PINCONF 204 select GPIOLIB 205 select OF_GPIO 206 select GPIOLIB_IRQCHIP 207 select MFD_SYSCON 208 209config PINCTRL_ROCKCHIP 210 bool 211 select PINMUX 212 select GENERIC_PINCONF 213 select GENERIC_IRQ_CHIP 214 select MFD_SYSCON 215 216config PINCTRL_RZA1 217 bool "Renesas RZ/A1 gpio and pinctrl driver" 218 depends on OF 219 depends on ARCH_R7S72100 || COMPILE_TEST 220 select GPIOLIB 221 select GENERIC_PINCTRL_GROUPS 222 select GENERIC_PINMUX_FUNCTIONS 223 select GENERIC_PINCONF 224 help 225 This selects pinctrl driver for Renesas RZ/A1 platforms. 226 227config PINCTRL_RZA2 228 bool "Renesas RZ/A2 gpio and pinctrl driver" 229 depends on OF 230 depends on ARCH_R7S9210 || COMPILE_TEST 231 select GPIOLIB 232 select GENERIC_PINCTRL_GROUPS 233 select GENERIC_PINMUX_FUNCTIONS 234 select GENERIC_PINCONF 235 help 236 This selects GPIO and pinctrl driver for Renesas RZ/A2 platforms. 237 238config PINCTRL_RZN1 239 bool "Renesas RZ/N1 pinctrl driver" 240 depends on OF 241 depends on ARCH_RZN1 || COMPILE_TEST 242 select GENERIC_PINCTRL_GROUPS 243 select GENERIC_PINMUX_FUNCTIONS 244 select GENERIC_PINCONF 245 help 246 This selects pinctrl driver for Renesas RZ/N1 devices. 247 248config PINCTRL_SINGLE 249 tristate "One-register-per-pin type device tree based pinctrl driver" 250 depends on OF 251 depends on HAS_IOMEM 252 select GENERIC_PINCTRL_GROUPS 253 select GENERIC_PINMUX_FUNCTIONS 254 select GENERIC_PINCONF 255 help 256 This selects the device tree based generic pinctrl driver. 257 258config PINCTRL_SIRF 259 bool "CSR SiRFprimaII pin controller driver" 260 depends on ARCH_SIRF 261 select PINMUX 262 select PINCONF 263 select GENERIC_PINCONF 264 select GPIOLIB_IRQCHIP 265 266config PINCTRL_SX150X 267 bool "Semtech SX150x I2C GPIO expander pinctrl driver" 268 depends on I2C=y 269 select PINMUX 270 select PINCONF 271 select GENERIC_PINCONF 272 select GPIOLIB 273 select GPIOLIB_IRQCHIP 274 select REGMAP 275 help 276 Say yes here to provide support for Semtech SX150x-series I2C 277 GPIO expanders as pinctrl module. 278 Compatible models include: 279 - 8 bits: sx1508q, sx1502q 280 - 16 bits: sx1509q, sx1506q 281 282config PINCTRL_PISTACHIO 283 def_bool y if MACH_PISTACHIO 284 depends on GPIOLIB 285 select PINMUX 286 select GENERIC_PINCONF 287 select GPIOLIB_IRQCHIP 288 select OF_GPIO 289 290config PINCTRL_ST 291 bool 292 depends on OF 293 select PINMUX 294 select PINCONF 295 select GPIOLIB_IRQCHIP 296 297config PINCTRL_STMFX 298 tristate "STMicroelectronics STMFX GPIO expander pinctrl driver" 299 depends on I2C 300 depends on OF_GPIO 301 select GENERIC_PINCONF 302 select GPIOLIB_IRQCHIP 303 select MFD_STMFX 304 help 305 Driver for STMicroelectronics Multi-Function eXpander (STMFX) 306 GPIO expander. 307 This provides a GPIO interface supporting inputs and outputs, 308 and configuring push-pull, open-drain, and can also be used as 309 interrupt-controller. 310 311config PINCTRL_U300 312 bool "U300 pin controller driver" 313 depends on ARCH_U300 314 select PINMUX 315 select GENERIC_PINCONF 316 317config PINCTRL_COH901 318 bool "ST-Ericsson U300 COH 901 335/571 GPIO" 319 depends on GPIOLIB && ARCH_U300 && PINCTRL_U300 320 select GPIOLIB_IRQCHIP 321 help 322 Say yes here to support GPIO interface on ST-Ericsson U300. 323 The names of the two IP block variants supported are 324 COH 901 335 and COH 901 571/3. They contain 3, 5 or 7 325 ports of 8 GPIO pins each. 326 327config PINCTRL_MAX77620 328 tristate "MAX77620/MAX20024 Pincontrol support" 329 depends on MFD_MAX77620 && OF 330 select PINMUX 331 select GENERIC_PINCONF 332 help 333 Say Yes here to enable Pin control support for Maxim PMIC MAX77620. 334 This PMIC has 8 GPIO pins that work as GPIO as well as special 335 function in alternate mode. This driver also configure push-pull, 336 open drain, FPS slots etc. 337 338config PINCTRL_PALMAS 339 tristate "Pinctrl driver for the PALMAS Series MFD devices" 340 depends on OF && MFD_PALMAS 341 select PINMUX 342 select GENERIC_PINCONF 343 help 344 Palmas device supports the configuration of pins for different 345 functionality. This driver supports the pinmux, push-pull and 346 open drain configuration for the Palmas series devices like 347 TPS65913, TPS80036 etc. 348 349config PINCTRL_PIC32 350 bool "Microchip PIC32 pin controller driver" 351 depends on OF 352 depends on MACH_PIC32 353 select PINMUX 354 select GENERIC_PINCONF 355 select GPIOLIB_IRQCHIP 356 select OF_GPIO 357 help 358 This is the pin controller and gpio driver for Microchip PIC32 359 microcontrollers. This option is selected automatically when specific 360 machine and arch are selected to build. 361 362config PINCTRL_PIC32MZDA 363 def_bool y if PIC32MZDA 364 select PINCTRL_PIC32 365 366config PINCTRL_ZYNQ 367 bool "Pinctrl driver for Xilinx Zynq" 368 depends on ARCH_ZYNQ 369 select PINMUX 370 select GENERIC_PINCONF 371 help 372 This selects the pinctrl driver for Xilinx Zynq. 373 374config PINCTRL_INGENIC 375 bool "Pinctrl driver for the Ingenic JZ47xx SoCs" 376 default MACH_INGENIC 377 depends on OF 378 depends on MIPS || COMPILE_TEST 379 select GENERIC_PINCONF 380 select GENERIC_PINCTRL_GROUPS 381 select GENERIC_PINMUX_FUNCTIONS 382 select GPIOLIB 383 select GPIOLIB_IRQCHIP 384 select REGMAP_MMIO 385 386config PINCTRL_RK805 387 tristate "Pinctrl and GPIO driver for RK805 PMIC" 388 depends on MFD_RK808 389 select GPIOLIB 390 select PINMUX 391 select GENERIC_PINCONF 392 help 393 This selects the pinctrl driver for RK805. 394 395config PINCTRL_OCELOT 396 bool "Pinctrl driver for the Microsemi Ocelot and Jaguar2 SoCs" 397 depends on OF 398 depends on HAS_IOMEM 399 select GPIOLIB 400 select GPIOLIB_IRQCHIP 401 select GENERIC_PINCONF 402 select GENERIC_PINCTRL_GROUPS 403 select GENERIC_PINMUX_FUNCTIONS 404 select OF_GPIO 405 select REGMAP_MMIO 406 407source "drivers/pinctrl/actions/Kconfig" 408source "drivers/pinctrl/aspeed/Kconfig" 409source "drivers/pinctrl/bcm/Kconfig" 410source "drivers/pinctrl/berlin/Kconfig" 411source "drivers/pinctrl/freescale/Kconfig" 412source "drivers/pinctrl/intel/Kconfig" 413source "drivers/pinctrl/mvebu/Kconfig" 414source "drivers/pinctrl/nomadik/Kconfig" 415source "drivers/pinctrl/nuvoton/Kconfig" 416source "drivers/pinctrl/pxa/Kconfig" 417source "drivers/pinctrl/qcom/Kconfig" 418source "drivers/pinctrl/samsung/Kconfig" 419source "drivers/pinctrl/sh-pfc/Kconfig" 420source "drivers/pinctrl/spear/Kconfig" 421source "drivers/pinctrl/sprd/Kconfig" 422source "drivers/pinctrl/stm32/Kconfig" 423source "drivers/pinctrl/sunxi/Kconfig" 424source "drivers/pinctrl/tegra/Kconfig" 425source "drivers/pinctrl/ti/Kconfig" 426source "drivers/pinctrl/uniphier/Kconfig" 427source "drivers/pinctrl/vt8500/Kconfig" 428source "drivers/pinctrl/mediatek/Kconfig" 429source "drivers/pinctrl/zte/Kconfig" 430source "drivers/pinctrl/meson/Kconfig" 431source "drivers/pinctrl/cirrus/Kconfig" 432 433config PINCTRL_XWAY 434 bool 435 depends on SOC_TYPE_XWAY 436 depends on PINCTRL_LANTIQ 437 438config PINCTRL_TB10X 439 bool 440 depends on OF && ARC_PLAT_TB10X 441 select GPIOLIB 442 443config PINCTRL_EQUILIBRIUM 444 tristate "Generic pinctrl and GPIO driver for Intel Lightning Mountain SoC" 445 depends on OF && HAS_IOMEM 446 depends on X86 || COMPILE_TEST 447 select PINMUX 448 select PINCONF 449 select GPIOLIB 450 select GPIO_GENERIC 451 select GPIOLIB_IRQCHIP 452 select GENERIC_PINCONF 453 select GENERIC_PINCTRL_GROUPS 454 select GENERIC_PINMUX_FUNCTIONS 455 456 help 457 Equilibrium pinctrl driver is a pinctrl & GPIO driver for Intel Lightning 458 Mountain network processor SoC that supports both the linux GPIO and pin 459 control frameworks. It provides interfaces to setup pinmux, assign desired 460 pin functions, configure GPIO attributes for LGM SoC pins. Pinmux and 461 pinconf settings are retrieved from device tree. 462 463endif 464