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 1496ac73095SBeniamino Galvaniconfig PINCTRL_MESON 1506ac73095SBeniamino Galvani bool 151b99e6fb8SLinus Walleij depends on OF 1526ac73095SBeniamino Galvani select PINMUX 1536ac73095SBeniamino Galvani select PINCONF 1546ac73095SBeniamino Galvani select GENERIC_PINCONF 155b99e6fb8SLinus Walleij select GPIOLIB 1566ac73095SBeniamino Galvani select OF_GPIO 1576ac73095SBeniamino Galvani select REGMAP_MMIO 1586ac73095SBeniamino Galvani 159611dac1eSNeil Armstrongconfig PINCTRL_OXNAS 160611dac1eSNeil Armstrong bool 161611dac1eSNeil Armstrong depends on OF 162611dac1eSNeil Armstrong select PINMUX 163611dac1eSNeil Armstrong select PINCONF 164611dac1eSNeil Armstrong select GENERIC_PINCONF 165611dac1eSNeil Armstrong select GPIOLIB 166611dac1eSNeil Armstrong select OF_GPIO 167611dac1eSNeil Armstrong select GPIOLIB_IRQCHIP 168611dac1eSNeil Armstrong select MFD_SYSCON 169611dac1eSNeil Armstrong 170d3e51161SHeiko Stübnerconfig PINCTRL_ROCKCHIP 171d3e51161SHeiko Stübner bool 172d3e51161SHeiko Stübner select PINMUX 173d3e51161SHeiko Stübner select GENERIC_PINCONF 174d3e51161SHeiko Stübner select GENERIC_IRQ_CHIP 175751a99abSHeiko Stübner select MFD_SYSCON 176d3e51161SHeiko Stübner 1778b8b091bSTony Lindgrenconfig PINCTRL_SINGLE 1788b8b091bSTony Lindgren tristate "One-register-per-pin type device tree based pinctrl driver" 1798b8b091bSTony Lindgren depends on OF 180caeb774eSTony Lindgren select GENERIC_PINCTRL_GROUPS 181571aec4dSTony Lindgren select GENERIC_PINMUX_FUNCTIONS 1829dddb4dfSHaojian Zhuang select GENERIC_PINCONF 1838b8b091bSTony Lindgren help 1848b8b091bSTony Lindgren This selects the device tree based generic pinctrl driver. 1858b8b091bSTony Lindgren 1863bece55aSLinus Walleijconfig PINCTRL_SIRF 187a17272a4SBarry Song bool "CSR SiRFprimaII pin controller driver" 188d3e26f2fSBarry Song depends on ARCH_SIRF 189393daa81SRongjun Ying select PINMUX 190f9367793SWei Chen select PINCONF 191f9367793SWei Chen select GENERIC_PINCONF 1927420d2d0SLinus Walleij select GPIOLIB_IRQCHIP 193393daa81SRongjun Ying 1949e80f906SNeil Armstrongconfig PINCTRL_SX150X 1959e80f906SNeil Armstrong bool "Semtech SX150x I2C GPIO expander pinctrl driver" 1969e80f906SNeil Armstrong depends on GPIOLIB && I2C=y 1979e80f906SNeil Armstrong select PINMUX 1989e80f906SNeil Armstrong select PINCONF 1999e80f906SNeil Armstrong select GENERIC_PINCONF 2009e80f906SNeil Armstrong select GPIOLIB_IRQCHIP 2010db0f26cSAndrey Smirnov select REGMAP 2029e80f906SNeil Armstrong help 2039e80f906SNeil Armstrong Say yes here to provide support for Semtech SX150x-series I2C 2049e80f906SNeil Armstrong GPIO expanders as pinctrl module. 2059e80f906SNeil Armstrong Compatible models include: 2069e80f906SNeil Armstrong - 8 bits: sx1508q, sx1502q 2079e80f906SNeil Armstrong - 16 bits: sx1509q, sx1506q 2089e80f906SNeil Armstrong 209cefc03e5SAndrew Brestickerconfig PINCTRL_PISTACHIO 210cefc03e5SAndrew Bresticker def_bool y if MACH_PISTACHIO 211cefc03e5SAndrew Bresticker depends on GPIOLIB 212cefc03e5SAndrew Bresticker select PINMUX 213cefc03e5SAndrew Bresticker select GENERIC_PINCONF 214cefc03e5SAndrew Bresticker select GPIOLIB_IRQCHIP 215cefc03e5SAndrew Bresticker select OF_GPIO 216cefc03e5SAndrew Bresticker 217701016c0SSrinivas KANDAGATLAconfig PINCTRL_ST 218701016c0SSrinivas KANDAGATLA bool 219701016c0SSrinivas KANDAGATLA depends on OF 220701016c0SSrinivas KANDAGATLA select PINMUX 221701016c0SSrinivas KANDAGATLA select PINCONF 222130cbe30SLinus Walleij select GPIOLIB_IRQCHIP 223701016c0SSrinivas KANDAGATLA 224d5025f9fSJames Hoganconfig PINCTRL_TZ1090 225d5025f9fSJames Hogan bool "Toumaz Xenif TZ1090 pin control driver" 226d5025f9fSJames Hogan depends on SOC_TZ1090 227d5025f9fSJames Hogan select PINMUX 228d5025f9fSJames Hogan select GENERIC_PINCONF 229d5025f9fSJames Hogan 230b58f0273SJames Hoganconfig PINCTRL_TZ1090_PDC 231b58f0273SJames Hogan bool "Toumaz Xenif TZ1090 PDC pin control driver" 232b58f0273SJames Hogan depends on SOC_TZ1090 233b58f0273SJames Hogan select PINMUX 234b58f0273SJames Hogan select PINCONF 235b58f0273SJames Hogan 2363bece55aSLinus Walleijconfig PINCTRL_U300 2373bece55aSLinus Walleij bool "U300 pin controller driver" 23898da3529SLinus Walleij depends on ARCH_U300 23998da3529SLinus Walleij select PINMUX 240dc0b1aa3SLinus Walleij select GENERIC_PINCONF 24145f034efSLinus Walleij 242ca402d37SLinus Walleijconfig PINCTRL_COH901 243ca402d37SLinus Walleij bool "ST-Ericsson U300 COH 901 335/571 GPIO" 2443c94d1bbSLinus Walleij depends on GPIOLIB && ARCH_U300 && PINCTRL_U300 245523dcce7SLinus Walleij select GPIOLIB_IRQCHIP 246ca402d37SLinus Walleij help 247ca402d37SLinus Walleij Say yes here to support GPIO interface on ST-Ericsson U300. 248ca402d37SLinus Walleij The names of the two IP block variants supported are 249ca402d37SLinus Walleij COH 901 335 and COH 901 571/3. They contain 3, 5 or 7 250ca402d37SLinus Walleij ports of 8 GPIO pins each. 251ca402d37SLinus Walleij 2522df723d4SLaxman Dewanganconfig PINCTRL_MAX77620 2532df723d4SLaxman Dewangan tristate "MAX77620/MAX20024 Pincontrol support" 25424d6a91cSArnd Bergmann depends on MFD_MAX77620 && OF 25579f28b9fSArnd Bergmann select PINMUX 2562df723d4SLaxman Dewangan select GENERIC_PINCONF 2572df723d4SLaxman Dewangan help 2582df723d4SLaxman Dewangan Say Yes here to enable Pin control support for Maxim PMIC MAX77620. 2592df723d4SLaxman Dewangan This PMIC has 8 GPIO pins that work as GPIO as well as special 2602df723d4SLaxman Dewangan function in alternate mode. This driver also configure push-pull, 2612df723d4SLaxman Dewangan open drain, FPS slots etc. 2622df723d4SLaxman Dewangan 2630a8d3e24SLaxman Dewanganconfig PINCTRL_PALMAS 264767b8ce3SPaul Gortmaker tristate "Pinctrl driver for the PALMAS Series MFD devices" 2650a8d3e24SLaxman Dewangan depends on OF && MFD_PALMAS 26663ca8db7SAxel Lin select PINMUX 2670a8d3e24SLaxman Dewangan select GENERIC_PINCONF 2680a8d3e24SLaxman Dewangan help 2690a8d3e24SLaxman Dewangan Palmas device supports the configuration of pins for different 2700a8d3e24SLaxman Dewangan functionality. This driver supports the pinmux, push-pull and 2710a8d3e24SLaxman Dewangan open drain configuration for the Palmas series devices like 2720a8d3e24SLaxman Dewangan TPS65913, TPS80036 etc. 2730a8d3e24SLaxman Dewangan 2742ba384e6SJoshua Hendersonconfig PINCTRL_PIC32 2752ba384e6SJoshua Henderson bool "Microchip PIC32 pin controller driver" 2762ba384e6SJoshua Henderson depends on OF 2772ba384e6SJoshua Henderson depends on MACH_PIC32 2782ba384e6SJoshua Henderson select PINMUX 2792ba384e6SJoshua Henderson select GENERIC_PINCONF 2802ba384e6SJoshua Henderson select GPIOLIB_IRQCHIP 2812ba384e6SJoshua Henderson select OF_GPIO 2822ba384e6SJoshua Henderson help 2832ba384e6SJoshua Henderson This is the pin controller and gpio driver for Microchip PIC32 2842ba384e6SJoshua Henderson microcontrollers. This option is selected automatically when specific 2852ba384e6SJoshua Henderson machine and arch are selected to build. 2862ba384e6SJoshua Henderson 2872ba384e6SJoshua Hendersonconfig PINCTRL_PIC32MZDA 2882ba384e6SJoshua Henderson def_bool y if PIC32MZDA 2892ba384e6SJoshua Henderson select PINCTRL_PIC32 2902ba384e6SJoshua Henderson 291add958ceSSoren Brinkmannconfig PINCTRL_ZYNQ 292add958ceSSoren Brinkmann bool "Pinctrl driver for Xilinx Zynq" 293add958ceSSoren Brinkmann depends on ARCH_ZYNQ 294add958ceSSoren Brinkmann select PINMUX 295add958ceSSoren Brinkmann select GENERIC_PINCONF 296add958ceSSoren Brinkmann help 297485dba27SMasahiro Yamada This selects the pinctrl driver for Xilinx Zynq. 298add958ceSSoren Brinkmann 299*b5c23aa4SPaul Cercueilconfig PINCTRL_INGENIC 300*b5c23aa4SPaul Cercueil bool "Pinctrl driver for the Ingenic JZ47xx SoCs" 301*b5c23aa4SPaul Cercueil default y 302*b5c23aa4SPaul Cercueil depends on MACH_INGENIC || COMPILE_TEST 303*b5c23aa4SPaul Cercueil select GENERIC_PINCONF 304*b5c23aa4SPaul Cercueil select GENERIC_PINCTRL_GROUPS 305*b5c23aa4SPaul Cercueil select GENERIC_PINMUX_FUNCTIONS 306*b5c23aa4SPaul Cercueil select REGMAP_MMIO 307*b5c23aa4SPaul Cercueil 3084d3d0e42SAndrew Jefferysource "drivers/pinctrl/aspeed/Kconfig" 309b17f2f9bSRay Juisource "drivers/pinctrl/bcm/Kconfig" 3103de68d33SAntoine Tenartsource "drivers/pinctrl/berlin/Kconfig" 311edad3b2aSLinus Walleijsource "drivers/pinctrl/freescale/Kconfig" 3125fae8b86SMika Westerbergsource "drivers/pinctrl/intel/Kconfig" 31306763c74SThomas Petazzonisource "drivers/pinctrl/mvebu/Kconfig" 3143a198059SLinus Walleijsource "drivers/pinctrl/nomadik/Kconfig" 3154b15ec9dSRobert Jarzmiksource "drivers/pinctrl/pxa/Kconfig" 31669b78b8dSLinus Walleijsource "drivers/pinctrl/qcom/Kconfig" 317ebe629a3SSachin Kamatsource "drivers/pinctrl/samsung/Kconfig" 3186e54d8d2SLaurent Pinchartsource "drivers/pinctrl/sh-pfc/Kconfig" 319deda8287SViresh Kumarsource "drivers/pinctrl/spear/Kconfig" 320aceb16dcSMaxime Coquelinsource "drivers/pinctrl/stm32/Kconfig" 3215f910777SMaxime Ripardsource "drivers/pinctrl/sunxi/Kconfig" 32225cbac77SMasahiro Yamadasource "drivers/pinctrl/tegra/Kconfig" 323003910ebSNishanth Menonsource "drivers/pinctrl/ti/Kconfig" 3246e908892SMasahiro Yamadasource "drivers/pinctrl/uniphier/Kconfig" 325170c6152STony Prisksource "drivers/pinctrl/vt8500/Kconfig" 326a6df410dSHongzhou Yangsource "drivers/pinctrl/mediatek/Kconfig" 327deda8287SViresh Kumar 3283f8c50c9SJohn Crispinconfig PINCTRL_XWAY 3293f8c50c9SJohn Crispin bool 3303f8c50c9SJohn Crispin depends on SOC_TYPE_XWAY 3313f8c50c9SJohn Crispin depends on PINCTRL_LANTIQ 3323f8c50c9SJohn Crispin 3335aad0db1SChristian Ruppertconfig PINCTRL_TB10X 3345aad0db1SChristian Ruppert bool 335b99e6fb8SLinus Walleij depends on OF && ARC_PLAT_TB10X 336b99e6fb8SLinus Walleij select GPIOLIB 3375aad0db1SChristian Ruppert 33845f034efSLinus Walleijendmenu 339