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_DA850_PUPD 112 tristate "TI DA850/OMAP-L138/AM18XX pullup/pulldown groups" 113 depends on OF && (ARCH_DAVINCI_DA850 || COMPILE_TEST) 114 select PINCONF 115 select GENERIC_PINCONF 116 help 117 Driver for TI DA850/OMAP-L138/AM18XX pinconf. Used to control 118 pullup/pulldown pin groups. 119 120config PINCTRL_DIGICOLOR 121 bool 122 depends on OF && (ARCH_DIGICOLOR || COMPILE_TEST) 123 select PINMUX 124 select GENERIC_PINCONF 125 126config PINCTRL_LANTIQ 127 bool 128 depends on LANTIQ 129 select PINMUX 130 select PINCONF 131 132config PINCTRL_LPC18XX 133 bool "NXP LPC18XX/43XX SCU pinctrl driver" 134 depends on OF && (ARCH_LPC18XX || COMPILE_TEST) 135 default ARCH_LPC18XX 136 select PINMUX 137 select GENERIC_PINCONF 138 help 139 Pinctrl driver for NXP LPC18xx/43xx System Control Unit (SCU). 140 141config PINCTRL_FALCON 142 bool 143 depends on SOC_FALCON 144 depends on PINCTRL_LANTIQ 145 146config PINCTRL_GEMINI 147 bool 148 depends on ARCH_GEMINI 149 default ARCH_GEMINI 150 select PINMUX 151 select GENERIC_PINCONF 152 select MFD_SYSCON 153 154config PINCTRL_MCP23S08 155 tristate "Microchip MCP23xxx I/O expander" 156 depends on SPI_MASTER || I2C 157 depends on I2C || I2C=n 158 select GPIOLIB 159 select GPIOLIB_IRQCHIP 160 select REGMAP_I2C if I2C 161 select REGMAP_SPI if SPI_MASTER 162 select GENERIC_PINCONF 163 help 164 SPI/I2C driver for Microchip MCP23S08 / MCP23S17 / MCP23S18 / 165 MCP23008 / MCP23017 / MCP23018 I/O expanders. 166 This provides a GPIO interface supporting inputs and outputs and a 167 corresponding interrupt-controller. 168 169config PINCTRL_OXNAS 170 bool 171 depends on OF 172 select PINMUX 173 select PINCONF 174 select GENERIC_PINCONF 175 select GPIOLIB 176 select OF_GPIO 177 select GPIOLIB_IRQCHIP 178 select MFD_SYSCON 179 180config PINCTRL_ROCKCHIP 181 bool 182 select PINMUX 183 select GENERIC_PINCONF 184 select GENERIC_IRQ_CHIP 185 select MFD_SYSCON 186 187config PINCTRL_RZA1 188 bool "Renesas RZ/A1 gpio and pinctrl driver" 189 depends on OF 190 depends on ARCH_R7S72100 || COMPILE_TEST 191 select GPIOLIB 192 select GENERIC_PINCTRL_GROUPS 193 select GENERIC_PINMUX_FUNCTIONS 194 select GENERIC_PINCONF 195 help 196 This selects pinctrl driver for Renesas RZ/A1 platforms. 197 198config PINCTRL_RZA2 199 bool "Renesas RZ/A2 gpio and pinctrl driver" 200 depends on OF 201 depends on ARCH_R7S9210 || COMPILE_TEST 202 select GPIOLIB 203 select GENERIC_PINCTRL_GROUPS 204 select GENERIC_PINMUX_FUNCTIONS 205 select GENERIC_PINCONF 206 help 207 This selects GPIO and pinctrl driver for Renesas RZ/A2 platforms. 208 209config PINCTRL_RZN1 210 bool "Renesas RZ/N1 pinctrl driver" 211 depends on OF 212 depends on ARCH_RZN1 || COMPILE_TEST 213 select GENERIC_PINCTRL_GROUPS 214 select GENERIC_PINMUX_FUNCTIONS 215 select GENERIC_PINCONF 216 help 217 This selects pinctrl driver for Renesas RZ/N1 devices. 218 219config PINCTRL_SINGLE 220 tristate "One-register-per-pin type device tree based pinctrl driver" 221 depends on OF 222 depends on HAS_IOMEM 223 select GENERIC_PINCTRL_GROUPS 224 select GENERIC_PINMUX_FUNCTIONS 225 select GENERIC_PINCONF 226 help 227 This selects the device tree based generic pinctrl driver. 228 229config PINCTRL_SIRF 230 bool "CSR SiRFprimaII pin controller driver" 231 depends on ARCH_SIRF 232 select PINMUX 233 select PINCONF 234 select GENERIC_PINCONF 235 select GPIOLIB_IRQCHIP 236 237config PINCTRL_SX150X 238 bool "Semtech SX150x I2C GPIO expander pinctrl driver" 239 depends on I2C=y 240 select PINMUX 241 select PINCONF 242 select GENERIC_PINCONF 243 select GPIOLIB 244 select GPIOLIB_IRQCHIP 245 select REGMAP 246 help 247 Say yes here to provide support for Semtech SX150x-series I2C 248 GPIO expanders as pinctrl module. 249 Compatible models include: 250 - 8 bits: sx1508q, sx1502q 251 - 16 bits: sx1509q, sx1506q 252 253config PINCTRL_PISTACHIO 254 def_bool y if MACH_PISTACHIO 255 depends on GPIOLIB 256 select PINMUX 257 select GENERIC_PINCONF 258 select GPIOLIB_IRQCHIP 259 select OF_GPIO 260 261config PINCTRL_ST 262 bool 263 depends on OF 264 select PINMUX 265 select PINCONF 266 select GPIOLIB_IRQCHIP 267 268config PINCTRL_U300 269 bool "U300 pin controller driver" 270 depends on ARCH_U300 271 select PINMUX 272 select GENERIC_PINCONF 273 274config PINCTRL_COH901 275 bool "ST-Ericsson U300 COH 901 335/571 GPIO" 276 depends on GPIOLIB && ARCH_U300 && PINCTRL_U300 277 select GPIOLIB_IRQCHIP 278 help 279 Say yes here to support GPIO interface on ST-Ericsson U300. 280 The names of the two IP block variants supported are 281 COH 901 335 and COH 901 571/3. They contain 3, 5 or 7 282 ports of 8 GPIO pins each. 283 284config PINCTRL_MAX77620 285 tristate "MAX77620/MAX20024 Pincontrol support" 286 depends on MFD_MAX77620 && OF 287 select PINMUX 288 select GENERIC_PINCONF 289 help 290 Say Yes here to enable Pin control support for Maxim PMIC MAX77620. 291 This PMIC has 8 GPIO pins that work as GPIO as well as special 292 function in alternate mode. This driver also configure push-pull, 293 open drain, FPS slots etc. 294 295config PINCTRL_PALMAS 296 tristate "Pinctrl driver for the PALMAS Series MFD devices" 297 depends on OF && MFD_PALMAS 298 select PINMUX 299 select GENERIC_PINCONF 300 help 301 Palmas device supports the configuration of pins for different 302 functionality. This driver supports the pinmux, push-pull and 303 open drain configuration for the Palmas series devices like 304 TPS65913, TPS80036 etc. 305 306config PINCTRL_PIC32 307 bool "Microchip PIC32 pin controller driver" 308 depends on OF 309 depends on MACH_PIC32 310 select PINMUX 311 select GENERIC_PINCONF 312 select GPIOLIB_IRQCHIP 313 select OF_GPIO 314 help 315 This is the pin controller and gpio driver for Microchip PIC32 316 microcontrollers. This option is selected automatically when specific 317 machine and arch are selected to build. 318 319config PINCTRL_PIC32MZDA 320 def_bool y if PIC32MZDA 321 select PINCTRL_PIC32 322 323config PINCTRL_ZYNQ 324 bool "Pinctrl driver for Xilinx Zynq" 325 depends on ARCH_ZYNQ 326 select PINMUX 327 select GENERIC_PINCONF 328 help 329 This selects the pinctrl driver for Xilinx Zynq. 330 331config PINCTRL_INGENIC 332 bool "Pinctrl driver for the Ingenic JZ47xx SoCs" 333 default MACH_INGENIC 334 depends on OF 335 depends on MIPS || COMPILE_TEST 336 select GENERIC_PINCONF 337 select GENERIC_PINCTRL_GROUPS 338 select GENERIC_PINMUX_FUNCTIONS 339 select GPIOLIB 340 select GPIOLIB_IRQCHIP 341 select REGMAP_MMIO 342 343config PINCTRL_RK805 344 tristate "Pinctrl and GPIO driver for RK805 PMIC" 345 depends on MFD_RK808 346 select GPIOLIB 347 select PINMUX 348 select GENERIC_PINCONF 349 help 350 This selects the pinctrl driver for RK805. 351 352config PINCTRL_OCELOT 353 bool "Pinctrl driver for the Microsemi Ocelot SoCs" 354 default y 355 depends on OF 356 depends on MSCC_OCELOT || COMPILE_TEST 357 select GPIOLIB 358 select GPIOLIB_IRQCHIP 359 select GENERIC_PINCONF 360 select GENERIC_PINCTRL_GROUPS 361 select GENERIC_PINMUX_FUNCTIONS 362 select REGMAP_MMIO 363 364source "drivers/pinctrl/actions/Kconfig" 365source "drivers/pinctrl/aspeed/Kconfig" 366source "drivers/pinctrl/bcm/Kconfig" 367source "drivers/pinctrl/berlin/Kconfig" 368source "drivers/pinctrl/freescale/Kconfig" 369source "drivers/pinctrl/intel/Kconfig" 370source "drivers/pinctrl/mvebu/Kconfig" 371source "drivers/pinctrl/nomadik/Kconfig" 372source "drivers/pinctrl/nuvoton/Kconfig" 373source "drivers/pinctrl/pxa/Kconfig" 374source "drivers/pinctrl/qcom/Kconfig" 375source "drivers/pinctrl/samsung/Kconfig" 376source "drivers/pinctrl/sh-pfc/Kconfig" 377source "drivers/pinctrl/spear/Kconfig" 378source "drivers/pinctrl/sprd/Kconfig" 379source "drivers/pinctrl/stm32/Kconfig" 380source "drivers/pinctrl/sunxi/Kconfig" 381source "drivers/pinctrl/tegra/Kconfig" 382source "drivers/pinctrl/ti/Kconfig" 383source "drivers/pinctrl/uniphier/Kconfig" 384source "drivers/pinctrl/vt8500/Kconfig" 385source "drivers/pinctrl/mediatek/Kconfig" 386source "drivers/pinctrl/zte/Kconfig" 387source "drivers/pinctrl/meson/Kconfig" 388source "drivers/pinctrl/cirrus/Kconfig" 389 390config PINCTRL_XWAY 391 bool 392 depends on SOC_TYPE_XWAY 393 depends on PINCTRL_LANTIQ 394 395config PINCTRL_TB10X 396 bool 397 depends on OF && ARC_PLAT_TB10X 398 select GPIOLIB 399 400endif 401