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_STMFX 277 tristate "STMicroelectronics STMFX GPIO expander pinctrl driver" 278 depends on I2C 279 depends on OF || COMPILE_TEST 280 select GENERIC_PINCONF 281 select GPIOLIB_IRQCHIP 282 select MFD_STMFX 283 help 284 Driver for STMicroelectronics Multi-Function eXpander (STMFX) 285 GPIO expander. 286 This provides a GPIO interface supporting inputs and outputs, 287 and configuring push-pull, open-drain, and can also be used as 288 interrupt-controller. 289 290config PINCTRL_U300 291 bool "U300 pin controller driver" 292 depends on ARCH_U300 293 select PINMUX 294 select GENERIC_PINCONF 295 296config PINCTRL_COH901 297 bool "ST-Ericsson U300 COH 901 335/571 GPIO" 298 depends on GPIOLIB && ARCH_U300 && PINCTRL_U300 299 select GPIOLIB_IRQCHIP 300 help 301 Say yes here to support GPIO interface on ST-Ericsson U300. 302 The names of the two IP block variants supported are 303 COH 901 335 and COH 901 571/3. They contain 3, 5 or 7 304 ports of 8 GPIO pins each. 305 306config PINCTRL_MAX77620 307 tristate "MAX77620/MAX20024 Pincontrol support" 308 depends on MFD_MAX77620 && OF 309 select PINMUX 310 select GENERIC_PINCONF 311 help 312 Say Yes here to enable Pin control support for Maxim PMIC MAX77620. 313 This PMIC has 8 GPIO pins that work as GPIO as well as special 314 function in alternate mode. This driver also configure push-pull, 315 open drain, FPS slots etc. 316 317config PINCTRL_PALMAS 318 tristate "Pinctrl driver for the PALMAS Series MFD devices" 319 depends on OF && MFD_PALMAS 320 select PINMUX 321 select GENERIC_PINCONF 322 help 323 Palmas device supports the configuration of pins for different 324 functionality. This driver supports the pinmux, push-pull and 325 open drain configuration for the Palmas series devices like 326 TPS65913, TPS80036 etc. 327 328config PINCTRL_PIC32 329 bool "Microchip PIC32 pin controller driver" 330 depends on OF 331 depends on MACH_PIC32 332 select PINMUX 333 select GENERIC_PINCONF 334 select GPIOLIB_IRQCHIP 335 select OF_GPIO 336 help 337 This is the pin controller and gpio driver for Microchip PIC32 338 microcontrollers. This option is selected automatically when specific 339 machine and arch are selected to build. 340 341config PINCTRL_PIC32MZDA 342 def_bool y if PIC32MZDA 343 select PINCTRL_PIC32 344 345config PINCTRL_ZYNQ 346 bool "Pinctrl driver for Xilinx Zynq" 347 depends on ARCH_ZYNQ 348 select PINMUX 349 select GENERIC_PINCONF 350 help 351 This selects the pinctrl driver for Xilinx Zynq. 352 353config PINCTRL_INGENIC 354 bool "Pinctrl driver for the Ingenic JZ47xx SoCs" 355 default MACH_INGENIC 356 depends on OF 357 depends on MIPS || COMPILE_TEST 358 select GENERIC_PINCONF 359 select GENERIC_PINCTRL_GROUPS 360 select GENERIC_PINMUX_FUNCTIONS 361 select GPIOLIB 362 select GPIOLIB_IRQCHIP 363 select REGMAP_MMIO 364 365config PINCTRL_RK805 366 tristate "Pinctrl and GPIO driver for RK805 PMIC" 367 depends on MFD_RK808 368 select GPIOLIB 369 select PINMUX 370 select GENERIC_PINCONF 371 help 372 This selects the pinctrl driver for RK805. 373 374config PINCTRL_OCELOT 375 bool "Pinctrl driver for the Microsemi Ocelot and Jaguar2 SoCs" 376 depends on OF 377 depends on HAS_IOMEM 378 select GPIOLIB 379 select GPIOLIB_IRQCHIP 380 select GENERIC_PINCONF 381 select GENERIC_PINCTRL_GROUPS 382 select GENERIC_PINMUX_FUNCTIONS 383 select OF_GPIO 384 select REGMAP_MMIO 385 386source "drivers/pinctrl/actions/Kconfig" 387source "drivers/pinctrl/aspeed/Kconfig" 388source "drivers/pinctrl/bcm/Kconfig" 389source "drivers/pinctrl/berlin/Kconfig" 390source "drivers/pinctrl/freescale/Kconfig" 391source "drivers/pinctrl/intel/Kconfig" 392source "drivers/pinctrl/mvebu/Kconfig" 393source "drivers/pinctrl/nomadik/Kconfig" 394source "drivers/pinctrl/nuvoton/Kconfig" 395source "drivers/pinctrl/pxa/Kconfig" 396source "drivers/pinctrl/qcom/Kconfig" 397source "drivers/pinctrl/samsung/Kconfig" 398source "drivers/pinctrl/sh-pfc/Kconfig" 399source "drivers/pinctrl/spear/Kconfig" 400source "drivers/pinctrl/sprd/Kconfig" 401source "drivers/pinctrl/stm32/Kconfig" 402source "drivers/pinctrl/sunxi/Kconfig" 403source "drivers/pinctrl/tegra/Kconfig" 404source "drivers/pinctrl/ti/Kconfig" 405source "drivers/pinctrl/uniphier/Kconfig" 406source "drivers/pinctrl/vt8500/Kconfig" 407source "drivers/pinctrl/mediatek/Kconfig" 408source "drivers/pinctrl/zte/Kconfig" 409source "drivers/pinctrl/meson/Kconfig" 410source "drivers/pinctrl/cirrus/Kconfig" 411 412config PINCTRL_XWAY 413 bool 414 depends on SOC_TYPE_XWAY 415 depends on PINCTRL_LANTIQ 416 417config PINCTRL_TB10X 418 bool 419 depends on OF && ARC_PLAT_TB10X 420 select GPIOLIB 421 422endif 423