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 tristate "Rockchip gpio and pinctrl driver" 211 depends on ARCH_ROCKCHIP || COMPILE_TEST 212 depends on OF 213 select GPIOLIB 214 select PINMUX 215 select GENERIC_PINCONF 216 select GENERIC_IRQ_CHIP 217 select MFD_SYSCON 218 select OF_GPIO 219 default ARCH_ROCKCHIP 220 help 221 This support pinctrl and gpio driver for Rockchip SoCs. 222 223config PINCTRL_SINGLE 224 tristate "One-register-per-pin type device tree based pinctrl driver" 225 depends on OF 226 depends on HAS_IOMEM 227 select GENERIC_PINCTRL_GROUPS 228 select GENERIC_PINMUX_FUNCTIONS 229 select GENERIC_PINCONF 230 help 231 This selects the device tree based generic pinctrl driver. 232 233config PINCTRL_SIRF 234 bool "CSR SiRFprimaII pin controller driver" 235 depends on ARCH_SIRF 236 select PINMUX 237 select PINCONF 238 select GENERIC_PINCONF 239 select GPIOLIB_IRQCHIP 240 241config PINCTRL_SX150X 242 bool "Semtech SX150x I2C GPIO expander pinctrl driver" 243 depends on I2C=y 244 select PINMUX 245 select PINCONF 246 select GENERIC_PINCONF 247 select GPIOLIB 248 select GPIOLIB_IRQCHIP 249 select REGMAP 250 help 251 Say yes here to provide support for Semtech SX150x-series I2C 252 GPIO expanders as pinctrl module. 253 Compatible models include: 254 - 8 bits: sx1508q, sx1502q 255 - 16 bits: sx1509q, sx1506q 256 257config PINCTRL_PISTACHIO 258 def_bool y if MACH_PISTACHIO 259 depends on GPIOLIB 260 select PINMUX 261 select GENERIC_PINCONF 262 select GPIOLIB_IRQCHIP 263 select OF_GPIO 264 265config PINCTRL_ST 266 bool 267 depends on OF 268 select PINMUX 269 select PINCONF 270 select GPIOLIB_IRQCHIP 271 272config 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 286config PINCTRL_U300 287 bool "U300 pin controller driver" 288 depends on ARCH_U300 289 select PINMUX 290 select GENERIC_PINCONF 291 292config PINCTRL_COH901 293 bool "ST-Ericsson U300 COH 901 335/571 GPIO" 294 depends on GPIOLIB && ARCH_U300 && PINCTRL_U300 295 select GPIOLIB_IRQCHIP 296 help 297 Say yes here to support GPIO interface on ST-Ericsson U300. 298 The names of the two IP block variants supported are 299 COH 901 335 and COH 901 571/3. They contain 3, 5 or 7 300 ports of 8 GPIO pins each. 301 302config PINCTRL_MAX77620 303 tristate "MAX77620/MAX20024 Pincontrol support" 304 depends on MFD_MAX77620 && OF 305 select PINMUX 306 select GENERIC_PINCONF 307 help 308 Say Yes here to enable Pin control support for Maxim PMIC MAX77620. 309 This PMIC has 8 GPIO pins that work as GPIO as well as special 310 function in alternate mode. This driver also configure push-pull, 311 open drain, FPS slots etc. 312 313config PINCTRL_PALMAS 314 tristate "Pinctrl driver for the PALMAS Series MFD devices" 315 depends on OF && MFD_PALMAS 316 select PINMUX 317 select GENERIC_PINCONF 318 help 319 Palmas device supports the configuration of pins for different 320 functionality. This driver supports the pinmux, push-pull and 321 open drain configuration for the Palmas series devices like 322 TPS65913, TPS80036 etc. 323 324config PINCTRL_PIC32 325 bool "Microchip PIC32 pin controller driver" 326 depends on OF 327 depends on MACH_PIC32 328 select PINMUX 329 select GENERIC_PINCONF 330 select GPIOLIB_IRQCHIP 331 select OF_GPIO 332 help 333 This is the pin controller and gpio driver for Microchip PIC32 334 microcontrollers. This option is selected automatically when specific 335 machine and arch are selected to build. 336 337config PINCTRL_PIC32MZDA 338 def_bool y if PIC32MZDA 339 select PINCTRL_PIC32 340 341config PINCTRL_ZYNQ 342 bool "Pinctrl driver for Xilinx Zynq" 343 depends on ARCH_ZYNQ 344 select PINMUX 345 select GENERIC_PINCONF 346 help 347 This selects the pinctrl driver for Xilinx Zynq. 348 349config PINCTRL_INGENIC 350 bool "Pinctrl driver for the Ingenic JZ47xx SoCs" 351 default MACH_INGENIC 352 depends on OF 353 depends on MIPS || COMPILE_TEST 354 select GENERIC_PINCONF 355 select GENERIC_PINCTRL_GROUPS 356 select GENERIC_PINMUX_FUNCTIONS 357 select GPIOLIB 358 select GPIOLIB_IRQCHIP 359 select REGMAP_MMIO 360 361config PINCTRL_RK805 362 tristate "Pinctrl and GPIO driver for RK805 PMIC" 363 depends on MFD_RK808 364 select GPIOLIB 365 select PINMUX 366 select GENERIC_PINCONF 367 help 368 This selects the pinctrl driver for RK805. 369 370config PINCTRL_OCELOT 371 bool "Pinctrl driver for the Microsemi Ocelot and Jaguar2 SoCs" 372 depends on OF 373 depends on HAS_IOMEM 374 select GPIOLIB 375 select GPIOLIB_IRQCHIP 376 select GENERIC_PINCONF 377 select GENERIC_PINCTRL_GROUPS 378 select GENERIC_PINMUX_FUNCTIONS 379 select OF_GPIO 380 select REGMAP_MMIO 381 382source "drivers/pinctrl/actions/Kconfig" 383source "drivers/pinctrl/aspeed/Kconfig" 384source "drivers/pinctrl/bcm/Kconfig" 385source "drivers/pinctrl/berlin/Kconfig" 386source "drivers/pinctrl/freescale/Kconfig" 387source "drivers/pinctrl/intel/Kconfig" 388source "drivers/pinctrl/mvebu/Kconfig" 389source "drivers/pinctrl/nomadik/Kconfig" 390source "drivers/pinctrl/nuvoton/Kconfig" 391source "drivers/pinctrl/pxa/Kconfig" 392source "drivers/pinctrl/qcom/Kconfig" 393source "drivers/pinctrl/renesas/Kconfig" 394source "drivers/pinctrl/samsung/Kconfig" 395source "drivers/pinctrl/spear/Kconfig" 396source "drivers/pinctrl/sprd/Kconfig" 397source "drivers/pinctrl/stm32/Kconfig" 398source "drivers/pinctrl/sunxi/Kconfig" 399source "drivers/pinctrl/tegra/Kconfig" 400source "drivers/pinctrl/ti/Kconfig" 401source "drivers/pinctrl/uniphier/Kconfig" 402source "drivers/pinctrl/vt8500/Kconfig" 403source "drivers/pinctrl/mediatek/Kconfig" 404source "drivers/pinctrl/zte/Kconfig" 405source "drivers/pinctrl/meson/Kconfig" 406source "drivers/pinctrl/cirrus/Kconfig" 407source "drivers/pinctrl/visconti/Kconfig" 408 409config PINCTRL_XWAY 410 bool 411 depends on SOC_TYPE_XWAY 412 depends on PINCTRL_LANTIQ 413 414config PINCTRL_TB10X 415 bool 416 depends on OF && ARC_PLAT_TB10X 417 select GPIOLIB 418 419config PINCTRL_EQUILIBRIUM 420 tristate "Generic pinctrl and GPIO driver for Intel Lightning Mountain SoC" 421 depends on OF && HAS_IOMEM 422 depends on X86 || COMPILE_TEST 423 select PINMUX 424 select PINCONF 425 select GPIOLIB 426 select GPIO_GENERIC 427 select GPIOLIB_IRQCHIP 428 select GENERIC_PINCONF 429 select GENERIC_PINCTRL_GROUPS 430 select GENERIC_PINMUX_FUNCTIONS 431 432 help 433 Equilibrium pinctrl driver is a pinctrl & GPIO driver for Intel Lightning 434 Mountain network processor SoC that supports both the linux GPIO and pin 435 control frameworks. It provides interfaces to setup pinmux, assign desired 436 pin functions, configure GPIO attributes for LGM SoC pins. Pinmux and 437 pinconf settings are retrieved from device tree. 438 439endif 440