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