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