12744e8afSLinus Walleij# 22744e8afSLinus Walleij# PINCTRL infrastructure and drivers 32744e8afSLinus Walleij# 42744e8afSLinus Walleij 545f034efSLinus Walleijconfig PINCTRL 645f034efSLinus Walleij bool 72744e8afSLinus Walleij 845f034efSLinus Walleijmenu "Pin controllers" 945f034efSLinus Walleij depends on PINCTRL 1045f034efSLinus Walleij 11c033a718SLinus Walleijconfig GENERIC_PINCTRL_GROUPS 12c7059c5aSTony Lindgren bool 13c7059c5aSTony Lindgren 142744e8afSLinus Walleijconfig PINMUX 15244e95a7SUwe Kleine-König bool "Support pin multiplexing controllers" if COMPILE_TEST 16ae6b4d85SLinus Walleij 17a76edc89STony Lindgrenconfig GENERIC_PINMUX_FUNCTIONS 18a76edc89STony Lindgren bool 19a76edc89STony Lindgren select PINMUX 20a76edc89STony Lindgren 21ae6b4d85SLinus Walleijconfig PINCONF 22244e95a7SUwe Kleine-König bool "Support pin configuration controllers" if COMPILE_TEST 232744e8afSLinus Walleij 24394349f7SLinus Walleijconfig GENERIC_PINCONF 25394349f7SLinus Walleij bool 26394349f7SLinus Walleij select PINCONF 27394349f7SLinus Walleij 282744e8afSLinus Walleijconfig DEBUG_PINCTRL 292744e8afSLinus Walleij bool "Debug PINCTRL calls" 302744e8afSLinus Walleij depends on DEBUG_KERNEL 312744e8afSLinus Walleij help 322744e8afSLinus Walleij Say Y here to add some extra checks and diagnostics to PINCTRL calls. 332744e8afSLinus Walleij 34e9a03addSSonic Zhangconfig PINCTRL_ADI2 35e9a03addSSonic Zhang bool "ADI pin controller driver" 369d7278d0SSonic Zhang depends on BLACKFIN 37e9a03addSSonic Zhang select PINMUX 38e9a03addSSonic Zhang select IRQ_DOMAIN 39e9a03addSSonic Zhang help 40e9a03addSSonic Zhang This is the pin controller and gpio driver for ADI BF54x, BF60x and 41e9a03addSSonic Zhang future processors. This option is selected automatically when specific 42e9a03addSSonic Zhang machine and arch are selected to build. 43e9a03addSSonic Zhang 4400df0582SJesper Nilssonconfig PINCTRL_ARTPEC6 4500df0582SJesper Nilsson bool "Axis ARTPEC-6 pin controller driver" 4600df0582SJesper Nilsson depends on MACH_ARTPEC6 4700df0582SJesper Nilsson select PINMUX 4800df0582SJesper Nilsson select GENERIC_PINCONF 4900df0582SJesper Nilsson help 5000df0582SJesper Nilsson This is the driver for the Axis ARTPEC-6 pin controller. This driver 5100df0582SJesper Nilsson supports pin function multiplexing as well as pin bias and drive 5200df0582SJesper Nilsson strength configuration. Device tree integration instructions can be 5300df0582SJesper Nilsson found in Documentation/devicetree/bindings/pinctrl/axis,artpec6-pinctrl.txt 5400df0582SJesper Nilsson 55c8ce8782SLaxman Dewanganconfig PINCTRL_AS3722 569385f35dSPaul Gortmaker tristate "Pinctrl and GPIO driver for ams AS3722 PMIC" 57c8ce8782SLaxman Dewangan depends on MFD_AS3722 && GPIOLIB 58c8ce8782SLaxman Dewangan select PINMUX 59c8ce8782SLaxman Dewangan select GENERIC_PINCONF 60c8ce8782SLaxman Dewangan help 61c8ce8782SLaxman Dewangan AS3722 device supports the configuration of GPIO pins for different 62c8ce8782SLaxman Dewangan functionality. This driver supports the pinmux, push-pull and 63c8ce8782SLaxman Dewangan open drain configuration for the GPIO pins of AS3722 devices. It also 64c8ce8782SLaxman Dewangan supports the GPIO functionality through gpiolib. 65c8ce8782SLaxman Dewangan 66e9a03addSSonic Zhangconfig PINCTRL_BF54x 67e9a03addSSonic Zhang def_bool y if BF54x 68e9a03addSSonic Zhang select PINCTRL_ADI2 69e9a03addSSonic Zhang 70e9a03addSSonic Zhangconfig PINCTRL_BF60x 71e9a03addSSonic Zhang def_bool y if BF60x 72e9a03addSSonic Zhang select PINCTRL_ADI2 73e9a03addSSonic Zhang 746732ae5cSJean-Christophe PLAGNIOL-VILLARDconfig PINCTRL_AT91 756732ae5cSJean-Christophe PLAGNIOL-VILLARD bool "AT91 pinctrl driver" 766732ae5cSJean-Christophe PLAGNIOL-VILLARD depends on OF 776732ae5cSJean-Christophe PLAGNIOL-VILLARD depends on ARCH_AT91 786732ae5cSJean-Christophe PLAGNIOL-VILLARD select PINMUX 796732ae5cSJean-Christophe PLAGNIOL-VILLARD select PINCONF 8080cc3732SAlexander Stein select GPIOLIB 8180cc3732SAlexander Stein select OF_GPIO 8280cc3732SAlexander Stein select GPIOLIB_IRQCHIP 836732ae5cSJean-Christophe PLAGNIOL-VILLARD help 846732ae5cSJean-Christophe PLAGNIOL-VILLARD Say Y here to enable the at91 pinctrl driver 856732ae5cSJean-Christophe PLAGNIOL-VILLARD 8677618084SLudovic Desrochesconfig PINCTRL_AT91PIO4 8777618084SLudovic Desroches bool "AT91 PIO4 pinctrl driver" 8877618084SLudovic Desroches depends on OF 8977618084SLudovic Desroches depends on ARCH_AT91 9077618084SLudovic Desroches select PINMUX 9177618084SLudovic Desroches select GENERIC_PINCONF 9277618084SLudovic Desroches select GPIOLIB 9377618084SLudovic Desroches select GPIOLIB_IRQCHIP 9477618084SLudovic Desroches select OF_GPIO 9577618084SLudovic Desroches help 9677618084SLudovic Desroches Say Y here to enable the at91 pinctrl/gpio driver for Atmel PIO4 9777618084SLudovic Desroches controller available on sama5d2 SoC. 9877618084SLudovic Desroches 99dbad75ddSKen Xueconfig PINCTRL_AMD 100337ea0fbSJean Delvare tristate "AMD GPIO pin control" 101dbad75ddSKen Xue depends on GPIOLIB 102dbad75ddSKen Xue select GPIOLIB_IRQCHIP 103dbad75ddSKen Xue select PINCONF 104dbad75ddSKen Xue select GENERIC_PINCONF 105dbad75ddSKen Xue help 106dbad75ddSKen Xue driver for memory mapped GPIO functionality on AMD platforms 107dbad75ddSKen Xue (x86 or arm).Most pins are usually muxed to some other 108dbad75ddSKen Xue functionality by firmware,so only a small amount is available 109dbad75ddSKen Xue for gpio use. 110dbad75ddSKen Xue 111dbad75ddSKen Xue Requires ACPI/FDT device enumeration code to set up a platform 112dbad75ddSKen Xue device. 113dbad75ddSKen Xue 1141ff91f0aSDavid Lechnerconfig PINCTRL_DA850_PUPD 1151ff91f0aSDavid Lechner tristate "TI DA850/OMAP-L138/AM18XX pullup/pulldown groups" 1161ff91f0aSDavid Lechner depends on OF && (ARCH_DAVINCI_DA850 || COMPILE_TEST) 1171ff91f0aSDavid Lechner select PINCONF 1181ff91f0aSDavid Lechner select GENERIC_PINCONF 1191ff91f0aSDavid Lechner help 1201ff91f0aSDavid Lechner Driver for TI DA850/OMAP-L138/AM18XX pinconf. Used to control 1211ff91f0aSDavid Lechner pullup/pulldown pin groups. 1221ff91f0aSDavid Lechner 12338b0e507SBaruch Siachconfig PINCTRL_DIGICOLOR 12438b0e507SBaruch Siach bool 12538b0e507SBaruch Siach depends on OF && (ARCH_DIGICOLOR || COMPILE_TEST) 12638b0e507SBaruch Siach select PINMUX 12738b0e507SBaruch Siach select GENERIC_PINCONF 12838b0e507SBaruch Siach 1293f8c50c9SJohn Crispinconfig PINCTRL_LANTIQ 1303f8c50c9SJohn Crispin bool 1313f8c50c9SJohn Crispin depends on LANTIQ 1323f8c50c9SJohn Crispin select PINMUX 1333f8c50c9SJohn Crispin select PINCONF 1343f8c50c9SJohn Crispin 1352f77ac93SJoachim Eastwoodconfig PINCTRL_LPC18XX 1362f77ac93SJoachim Eastwood bool "NXP LPC18XX/43XX SCU pinctrl driver" 1372f77ac93SJoachim Eastwood depends on OF && (ARCH_LPC18XX || COMPILE_TEST) 1382f77ac93SJoachim Eastwood default ARCH_LPC18XX 1392f77ac93SJoachim Eastwood select PINMUX 1402f77ac93SJoachim Eastwood select GENERIC_PINCONF 1412f77ac93SJoachim Eastwood help 1422f77ac93SJoachim Eastwood Pinctrl driver for NXP LPC18xx/43xx System Control Unit (SCU). 1432f77ac93SJoachim Eastwood 144e316cb2bSJohn Crispinconfig PINCTRL_FALCON 145e316cb2bSJohn Crispin bool 146e316cb2bSJohn Crispin depends on SOC_FALCON 147e316cb2bSJohn Crispin depends on PINCTRL_LANTIQ 148e316cb2bSJohn Crispin 14964ac43e6SSebastian Reichelconfig PINCTRL_MCP23S08 15064ac43e6SSebastian Reichel tristate "Microchip MCP23xxx I/O expander" 15164ac43e6SSebastian Reichel depends on SPI_MASTER || I2C 15264ac43e6SSebastian Reichel select GPIOLIB_IRQCHIP 15364ac43e6SSebastian Reichel select REGMAP_I2C if I2C 15464ac43e6SSebastian Reichel select REGMAP_SPI if SPI_MASTER 15582039d24SSebastian Reichel select GENERIC_PINCONF 15664ac43e6SSebastian Reichel help 15764ac43e6SSebastian Reichel SPI/I2C driver for Microchip MCP23S08/MCP23S17/MCP23008/MCP23017 15864ac43e6SSebastian Reichel I/O expanders. 15964ac43e6SSebastian Reichel This provides a GPIO interface supporting inputs and outputs. 16064ac43e6SSebastian Reichel The I2C versions of the chips can be used as interrupt-controller. 16164ac43e6SSebastian Reichel 1626ac73095SBeniamino Galvaniconfig PINCTRL_MESON 1636ac73095SBeniamino Galvani bool 164b99e6fb8SLinus Walleij depends on OF 1656ac73095SBeniamino Galvani select PINMUX 1666ac73095SBeniamino Galvani select PINCONF 1676ac73095SBeniamino Galvani select GENERIC_PINCONF 168b99e6fb8SLinus Walleij select GPIOLIB 1696ac73095SBeniamino Galvani select OF_GPIO 1706ac73095SBeniamino Galvani select REGMAP_MMIO 1716ac73095SBeniamino Galvani 172611dac1eSNeil Armstrongconfig PINCTRL_OXNAS 173611dac1eSNeil Armstrong bool 174611dac1eSNeil Armstrong depends on OF 175611dac1eSNeil Armstrong select PINMUX 176611dac1eSNeil Armstrong select PINCONF 177611dac1eSNeil Armstrong select GENERIC_PINCONF 178611dac1eSNeil Armstrong select GPIOLIB 179611dac1eSNeil Armstrong select OF_GPIO 180611dac1eSNeil Armstrong select GPIOLIB_IRQCHIP 181611dac1eSNeil Armstrong select MFD_SYSCON 182611dac1eSNeil Armstrong 183d3e51161SHeiko Stübnerconfig PINCTRL_ROCKCHIP 184d3e51161SHeiko Stübner bool 185d3e51161SHeiko Stübner select PINMUX 186d3e51161SHeiko Stübner select GENERIC_PINCONF 187d3e51161SHeiko Stübner select GENERIC_IRQ_CHIP 188751a99abSHeiko Stübner select MFD_SYSCON 189d3e51161SHeiko Stübner 1908b8b091bSTony Lindgrenconfig PINCTRL_SINGLE 1918b8b091bSTony Lindgren tristate "One-register-per-pin type device tree based pinctrl driver" 1928b8b091bSTony Lindgren depends on OF 193caeb774eSTony Lindgren select GENERIC_PINCTRL_GROUPS 194571aec4dSTony Lindgren select GENERIC_PINMUX_FUNCTIONS 1959dddb4dfSHaojian Zhuang select GENERIC_PINCONF 1968b8b091bSTony Lindgren help 1978b8b091bSTony Lindgren This selects the device tree based generic pinctrl driver. 1988b8b091bSTony Lindgren 1993bece55aSLinus Walleijconfig PINCTRL_SIRF 200a17272a4SBarry Song bool "CSR SiRFprimaII pin controller driver" 201d3e26f2fSBarry Song depends on ARCH_SIRF 202393daa81SRongjun Ying select PINMUX 203f9367793SWei Chen select PINCONF 204f9367793SWei Chen select GENERIC_PINCONF 2057420d2d0SLinus Walleij select GPIOLIB_IRQCHIP 206393daa81SRongjun Ying 2079e80f906SNeil Armstrongconfig PINCTRL_SX150X 2089e80f906SNeil Armstrong bool "Semtech SX150x I2C GPIO expander pinctrl driver" 2099e80f906SNeil Armstrong depends on GPIOLIB && I2C=y 2109e80f906SNeil Armstrong select PINMUX 2119e80f906SNeil Armstrong select PINCONF 2129e80f906SNeil Armstrong select GENERIC_PINCONF 2139e80f906SNeil Armstrong select GPIOLIB_IRQCHIP 2140db0f26cSAndrey Smirnov select REGMAP 2159e80f906SNeil Armstrong help 2169e80f906SNeil Armstrong Say yes here to provide support for Semtech SX150x-series I2C 2179e80f906SNeil Armstrong GPIO expanders as pinctrl module. 2189e80f906SNeil Armstrong Compatible models include: 2199e80f906SNeil Armstrong - 8 bits: sx1508q, sx1502q 2209e80f906SNeil Armstrong - 16 bits: sx1509q, sx1506q 2219e80f906SNeil Armstrong 222cefc03e5SAndrew Brestickerconfig PINCTRL_PISTACHIO 223cefc03e5SAndrew Bresticker def_bool y if MACH_PISTACHIO 224cefc03e5SAndrew Bresticker depends on GPIOLIB 225cefc03e5SAndrew Bresticker select PINMUX 226cefc03e5SAndrew Bresticker select GENERIC_PINCONF 227cefc03e5SAndrew Bresticker select GPIOLIB_IRQCHIP 228cefc03e5SAndrew Bresticker select OF_GPIO 229cefc03e5SAndrew Bresticker 230701016c0SSrinivas KANDAGATLAconfig PINCTRL_ST 231701016c0SSrinivas KANDAGATLA bool 232701016c0SSrinivas KANDAGATLA depends on OF 233701016c0SSrinivas KANDAGATLA select PINMUX 234701016c0SSrinivas KANDAGATLA select PINCONF 235130cbe30SLinus Walleij select GPIOLIB_IRQCHIP 236701016c0SSrinivas KANDAGATLA 237d5025f9fSJames Hoganconfig PINCTRL_TZ1090 238d5025f9fSJames Hogan bool "Toumaz Xenif TZ1090 pin control driver" 239d5025f9fSJames Hogan depends on SOC_TZ1090 240d5025f9fSJames Hogan select PINMUX 241d5025f9fSJames Hogan select GENERIC_PINCONF 242d5025f9fSJames Hogan 243b58f0273SJames Hoganconfig PINCTRL_TZ1090_PDC 244b58f0273SJames Hogan bool "Toumaz Xenif TZ1090 PDC pin control driver" 245b58f0273SJames Hogan depends on SOC_TZ1090 246b58f0273SJames Hogan select PINMUX 247b58f0273SJames Hogan select PINCONF 248b58f0273SJames Hogan 2493bece55aSLinus Walleijconfig PINCTRL_U300 2503bece55aSLinus Walleij bool "U300 pin controller driver" 25198da3529SLinus Walleij depends on ARCH_U300 25298da3529SLinus Walleij select PINMUX 253dc0b1aa3SLinus Walleij select GENERIC_PINCONF 25445f034efSLinus Walleij 255ca402d37SLinus Walleijconfig PINCTRL_COH901 256ca402d37SLinus Walleij bool "ST-Ericsson U300 COH 901 335/571 GPIO" 2573c94d1bbSLinus Walleij depends on GPIOLIB && ARCH_U300 && PINCTRL_U300 258523dcce7SLinus Walleij select GPIOLIB_IRQCHIP 259ca402d37SLinus Walleij help 260ca402d37SLinus Walleij Say yes here to support GPIO interface on ST-Ericsson U300. 261ca402d37SLinus Walleij The names of the two IP block variants supported are 262ca402d37SLinus Walleij COH 901 335 and COH 901 571/3. They contain 3, 5 or 7 263ca402d37SLinus Walleij ports of 8 GPIO pins each. 264ca402d37SLinus Walleij 2652df723d4SLaxman Dewanganconfig PINCTRL_MAX77620 2662df723d4SLaxman Dewangan tristate "MAX77620/MAX20024 Pincontrol support" 26724d6a91cSArnd Bergmann depends on MFD_MAX77620 && OF 26879f28b9fSArnd Bergmann select PINMUX 2692df723d4SLaxman Dewangan select GENERIC_PINCONF 2702df723d4SLaxman Dewangan help 2712df723d4SLaxman Dewangan Say Yes here to enable Pin control support for Maxim PMIC MAX77620. 2722df723d4SLaxman Dewangan This PMIC has 8 GPIO pins that work as GPIO as well as special 2732df723d4SLaxman Dewangan function in alternate mode. This driver also configure push-pull, 2742df723d4SLaxman Dewangan open drain, FPS slots etc. 2752df723d4SLaxman Dewangan 2760a8d3e24SLaxman Dewanganconfig PINCTRL_PALMAS 277767b8ce3SPaul Gortmaker tristate "Pinctrl driver for the PALMAS Series MFD devices" 2780a8d3e24SLaxman Dewangan depends on OF && MFD_PALMAS 27963ca8db7SAxel Lin select PINMUX 2800a8d3e24SLaxman Dewangan select GENERIC_PINCONF 2810a8d3e24SLaxman Dewangan help 2820a8d3e24SLaxman Dewangan Palmas device supports the configuration of pins for different 2830a8d3e24SLaxman Dewangan functionality. This driver supports the pinmux, push-pull and 2840a8d3e24SLaxman Dewangan open drain configuration for the Palmas series devices like 2850a8d3e24SLaxman Dewangan TPS65913, TPS80036 etc. 2860a8d3e24SLaxman Dewangan 2872ba384e6SJoshua Hendersonconfig PINCTRL_PIC32 2882ba384e6SJoshua Henderson bool "Microchip PIC32 pin controller driver" 2892ba384e6SJoshua Henderson depends on OF 2902ba384e6SJoshua Henderson depends on MACH_PIC32 2912ba384e6SJoshua Henderson select PINMUX 2922ba384e6SJoshua Henderson select GENERIC_PINCONF 2932ba384e6SJoshua Henderson select GPIOLIB_IRQCHIP 2942ba384e6SJoshua Henderson select OF_GPIO 2952ba384e6SJoshua Henderson help 2962ba384e6SJoshua Henderson This is the pin controller and gpio driver for Microchip PIC32 2972ba384e6SJoshua Henderson microcontrollers. This option is selected automatically when specific 2982ba384e6SJoshua Henderson machine and arch are selected to build. 2992ba384e6SJoshua Henderson 3002ba384e6SJoshua Hendersonconfig PINCTRL_PIC32MZDA 3012ba384e6SJoshua Henderson def_bool y if PIC32MZDA 3022ba384e6SJoshua Henderson select PINCTRL_PIC32 3032ba384e6SJoshua Henderson 304add958ceSSoren Brinkmannconfig PINCTRL_ZYNQ 305add958ceSSoren Brinkmann bool "Pinctrl driver for Xilinx Zynq" 306add958ceSSoren Brinkmann depends on ARCH_ZYNQ 307add958ceSSoren Brinkmann select PINMUX 308add958ceSSoren Brinkmann select GENERIC_PINCONF 309add958ceSSoren Brinkmann help 310485dba27SMasahiro Yamada This selects the pinctrl driver for Xilinx Zynq. 311add958ceSSoren Brinkmann 312b5c23aa4SPaul Cercueilconfig PINCTRL_INGENIC 313b5c23aa4SPaul Cercueil bool "Pinctrl driver for the Ingenic JZ47xx SoCs" 314b5c23aa4SPaul Cercueil default y 315*c504985eSLinus Walleij depends on OF 316b5c23aa4SPaul Cercueil depends on MACH_INGENIC || COMPILE_TEST 317b5c23aa4SPaul Cercueil select GENERIC_PINCONF 318b5c23aa4SPaul Cercueil select GENERIC_PINCTRL_GROUPS 319b5c23aa4SPaul Cercueil select GENERIC_PINMUX_FUNCTIONS 320b5c23aa4SPaul Cercueil select REGMAP_MMIO 321b5c23aa4SPaul Cercueil 3224d3d0e42SAndrew Jefferysource "drivers/pinctrl/aspeed/Kconfig" 323b17f2f9bSRay Juisource "drivers/pinctrl/bcm/Kconfig" 3243de68d33SAntoine Tenartsource "drivers/pinctrl/berlin/Kconfig" 325edad3b2aSLinus Walleijsource "drivers/pinctrl/freescale/Kconfig" 3265fae8b86SMika Westerbergsource "drivers/pinctrl/intel/Kconfig" 32706763c74SThomas Petazzonisource "drivers/pinctrl/mvebu/Kconfig" 3283a198059SLinus Walleijsource "drivers/pinctrl/nomadik/Kconfig" 3294b15ec9dSRobert Jarzmiksource "drivers/pinctrl/pxa/Kconfig" 33069b78b8dSLinus Walleijsource "drivers/pinctrl/qcom/Kconfig" 331ebe629a3SSachin Kamatsource "drivers/pinctrl/samsung/Kconfig" 3326e54d8d2SLaurent Pinchartsource "drivers/pinctrl/sh-pfc/Kconfig" 333deda8287SViresh Kumarsource "drivers/pinctrl/spear/Kconfig" 334aceb16dcSMaxime Coquelinsource "drivers/pinctrl/stm32/Kconfig" 3355f910777SMaxime Ripardsource "drivers/pinctrl/sunxi/Kconfig" 33625cbac77SMasahiro Yamadasource "drivers/pinctrl/tegra/Kconfig" 337003910ebSNishanth Menonsource "drivers/pinctrl/ti/Kconfig" 3386e908892SMasahiro Yamadasource "drivers/pinctrl/uniphier/Kconfig" 339170c6152STony Prisksource "drivers/pinctrl/vt8500/Kconfig" 340a6df410dSHongzhou Yangsource "drivers/pinctrl/mediatek/Kconfig" 341cbff0c4dSShawn Guosource "drivers/pinctrl/zte/Kconfig" 342deda8287SViresh Kumar 3433f8c50c9SJohn Crispinconfig PINCTRL_XWAY 3443f8c50c9SJohn Crispin bool 3453f8c50c9SJohn Crispin depends on SOC_TYPE_XWAY 3463f8c50c9SJohn Crispin depends on PINCTRL_LANTIQ 3473f8c50c9SJohn Crispin 3485aad0db1SChristian Ruppertconfig PINCTRL_TB10X 3495aad0db1SChristian Ruppert bool 350b99e6fb8SLinus Walleij depends on OF && ARC_PLAT_TB10X 351b99e6fb8SLinus Walleij select GPIOLIB 3525aad0db1SChristian Ruppert 35345f034efSLinus Walleijendmenu 354