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