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