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