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 152*adeac775SArnd Bergmann depends on I2C || I2C=n 15364ac43e6SSebastian Reichel select GPIOLIB_IRQCHIP 15464ac43e6SSebastian Reichel select REGMAP_I2C if I2C 15564ac43e6SSebastian Reichel select REGMAP_SPI if SPI_MASTER 15682039d24SSebastian Reichel select GENERIC_PINCONF 15764ac43e6SSebastian Reichel help 15864ac43e6SSebastian Reichel SPI/I2C driver for Microchip MCP23S08/MCP23S17/MCP23008/MCP23017 15964ac43e6SSebastian Reichel I/O expanders. 16064ac43e6SSebastian Reichel This provides a GPIO interface supporting inputs and outputs. 16164ac43e6SSebastian Reichel The I2C versions of the chips can be used as interrupt-controller. 16264ac43e6SSebastian Reichel 1636ac73095SBeniamino Galvaniconfig PINCTRL_MESON 1646ac73095SBeniamino Galvani bool 165b99e6fb8SLinus Walleij depends on OF 1666ac73095SBeniamino Galvani select PINMUX 1676ac73095SBeniamino Galvani select PINCONF 1686ac73095SBeniamino Galvani select GENERIC_PINCONF 169b99e6fb8SLinus Walleij select GPIOLIB 1706ac73095SBeniamino Galvani select OF_GPIO 1716ac73095SBeniamino Galvani select REGMAP_MMIO 1726ac73095SBeniamino Galvani 173611dac1eSNeil Armstrongconfig PINCTRL_OXNAS 174611dac1eSNeil Armstrong bool 175611dac1eSNeil Armstrong depends on OF 176611dac1eSNeil Armstrong select PINMUX 177611dac1eSNeil Armstrong select PINCONF 178611dac1eSNeil Armstrong select GENERIC_PINCONF 179611dac1eSNeil Armstrong select GPIOLIB 180611dac1eSNeil Armstrong select OF_GPIO 181611dac1eSNeil Armstrong select GPIOLIB_IRQCHIP 182611dac1eSNeil Armstrong select MFD_SYSCON 183611dac1eSNeil Armstrong 184d3e51161SHeiko Stübnerconfig PINCTRL_ROCKCHIP 185d3e51161SHeiko Stübner bool 186d3e51161SHeiko Stübner select PINMUX 187d3e51161SHeiko Stübner select GENERIC_PINCONF 188d3e51161SHeiko Stübner select GENERIC_IRQ_CHIP 189751a99abSHeiko Stübner select MFD_SYSCON 190d3e51161SHeiko Stübner 1918b8b091bSTony Lindgrenconfig PINCTRL_SINGLE 1928b8b091bSTony Lindgren tristate "One-register-per-pin type device tree based pinctrl driver" 1938b8b091bSTony Lindgren depends on OF 194caeb774eSTony Lindgren select GENERIC_PINCTRL_GROUPS 195571aec4dSTony Lindgren select GENERIC_PINMUX_FUNCTIONS 1969dddb4dfSHaojian Zhuang select GENERIC_PINCONF 1978b8b091bSTony Lindgren help 1988b8b091bSTony Lindgren This selects the device tree based generic pinctrl driver. 1998b8b091bSTony Lindgren 2003bece55aSLinus Walleijconfig PINCTRL_SIRF 201a17272a4SBarry Song bool "CSR SiRFprimaII pin controller driver" 202d3e26f2fSBarry Song depends on ARCH_SIRF 203393daa81SRongjun Ying select PINMUX 204f9367793SWei Chen select PINCONF 205f9367793SWei Chen select GENERIC_PINCONF 2067420d2d0SLinus Walleij select GPIOLIB_IRQCHIP 207393daa81SRongjun Ying 2089e80f906SNeil Armstrongconfig PINCTRL_SX150X 2099e80f906SNeil Armstrong bool "Semtech SX150x I2C GPIO expander pinctrl driver" 2109e80f906SNeil Armstrong depends on GPIOLIB && I2C=y 2119e80f906SNeil Armstrong select PINMUX 2129e80f906SNeil Armstrong select PINCONF 2139e80f906SNeil Armstrong select GENERIC_PINCONF 2149e80f906SNeil Armstrong select GPIOLIB_IRQCHIP 2150db0f26cSAndrey Smirnov select REGMAP 2169e80f906SNeil Armstrong help 2179e80f906SNeil Armstrong Say yes here to provide support for Semtech SX150x-series I2C 2189e80f906SNeil Armstrong GPIO expanders as pinctrl module. 2199e80f906SNeil Armstrong Compatible models include: 2209e80f906SNeil Armstrong - 8 bits: sx1508q, sx1502q 2219e80f906SNeil Armstrong - 16 bits: sx1509q, sx1506q 2229e80f906SNeil Armstrong 223cefc03e5SAndrew Brestickerconfig PINCTRL_PISTACHIO 224cefc03e5SAndrew Bresticker def_bool y if MACH_PISTACHIO 225cefc03e5SAndrew Bresticker depends on GPIOLIB 226cefc03e5SAndrew Bresticker select PINMUX 227cefc03e5SAndrew Bresticker select GENERIC_PINCONF 228cefc03e5SAndrew Bresticker select GPIOLIB_IRQCHIP 229cefc03e5SAndrew Bresticker select OF_GPIO 230cefc03e5SAndrew Bresticker 231701016c0SSrinivas KANDAGATLAconfig PINCTRL_ST 232701016c0SSrinivas KANDAGATLA bool 233701016c0SSrinivas KANDAGATLA depends on OF 234701016c0SSrinivas KANDAGATLA select PINMUX 235701016c0SSrinivas KANDAGATLA select PINCONF 236130cbe30SLinus Walleij select GPIOLIB_IRQCHIP 237701016c0SSrinivas KANDAGATLA 238d5025f9fSJames Hoganconfig PINCTRL_TZ1090 239d5025f9fSJames Hogan bool "Toumaz Xenif TZ1090 pin control driver" 240d5025f9fSJames Hogan depends on SOC_TZ1090 241d5025f9fSJames Hogan select PINMUX 242d5025f9fSJames Hogan select GENERIC_PINCONF 243d5025f9fSJames Hogan 244b58f0273SJames Hoganconfig PINCTRL_TZ1090_PDC 245b58f0273SJames Hogan bool "Toumaz Xenif TZ1090 PDC pin control driver" 246b58f0273SJames Hogan depends on SOC_TZ1090 247b58f0273SJames Hogan select PINMUX 248b58f0273SJames Hogan select PINCONF 249b58f0273SJames Hogan 2503bece55aSLinus Walleijconfig PINCTRL_U300 2513bece55aSLinus Walleij bool "U300 pin controller driver" 25298da3529SLinus Walleij depends on ARCH_U300 25398da3529SLinus Walleij select PINMUX 254dc0b1aa3SLinus Walleij select GENERIC_PINCONF 25545f034efSLinus Walleij 256ca402d37SLinus Walleijconfig PINCTRL_COH901 257ca402d37SLinus Walleij bool "ST-Ericsson U300 COH 901 335/571 GPIO" 2583c94d1bbSLinus Walleij depends on GPIOLIB && ARCH_U300 && PINCTRL_U300 259523dcce7SLinus Walleij select GPIOLIB_IRQCHIP 260ca402d37SLinus Walleij help 261ca402d37SLinus Walleij Say yes here to support GPIO interface on ST-Ericsson U300. 262ca402d37SLinus Walleij The names of the two IP block variants supported are 263ca402d37SLinus Walleij COH 901 335 and COH 901 571/3. They contain 3, 5 or 7 264ca402d37SLinus Walleij ports of 8 GPIO pins each. 265ca402d37SLinus Walleij 2662df723d4SLaxman Dewanganconfig PINCTRL_MAX77620 2672df723d4SLaxman Dewangan tristate "MAX77620/MAX20024 Pincontrol support" 26824d6a91cSArnd Bergmann depends on MFD_MAX77620 && OF 26979f28b9fSArnd Bergmann select PINMUX 2702df723d4SLaxman Dewangan select GENERIC_PINCONF 2712df723d4SLaxman Dewangan help 2722df723d4SLaxman Dewangan Say Yes here to enable Pin control support for Maxim PMIC MAX77620. 2732df723d4SLaxman Dewangan This PMIC has 8 GPIO pins that work as GPIO as well as special 2742df723d4SLaxman Dewangan function in alternate mode. This driver also configure push-pull, 2752df723d4SLaxman Dewangan open drain, FPS slots etc. 2762df723d4SLaxman Dewangan 2770a8d3e24SLaxman Dewanganconfig PINCTRL_PALMAS 278767b8ce3SPaul Gortmaker tristate "Pinctrl driver for the PALMAS Series MFD devices" 2790a8d3e24SLaxman Dewangan depends on OF && MFD_PALMAS 28063ca8db7SAxel Lin select PINMUX 2810a8d3e24SLaxman Dewangan select GENERIC_PINCONF 2820a8d3e24SLaxman Dewangan help 2830a8d3e24SLaxman Dewangan Palmas device supports the configuration of pins for different 2840a8d3e24SLaxman Dewangan functionality. This driver supports the pinmux, push-pull and 2850a8d3e24SLaxman Dewangan open drain configuration for the Palmas series devices like 2860a8d3e24SLaxman Dewangan TPS65913, TPS80036 etc. 2870a8d3e24SLaxman Dewangan 2882ba384e6SJoshua Hendersonconfig PINCTRL_PIC32 2892ba384e6SJoshua Henderson bool "Microchip PIC32 pin controller driver" 2902ba384e6SJoshua Henderson depends on OF 2912ba384e6SJoshua Henderson depends on MACH_PIC32 2922ba384e6SJoshua Henderson select PINMUX 2932ba384e6SJoshua Henderson select GENERIC_PINCONF 2942ba384e6SJoshua Henderson select GPIOLIB_IRQCHIP 2952ba384e6SJoshua Henderson select OF_GPIO 2962ba384e6SJoshua Henderson help 2972ba384e6SJoshua Henderson This is the pin controller and gpio driver for Microchip PIC32 2982ba384e6SJoshua Henderson microcontrollers. This option is selected automatically when specific 2992ba384e6SJoshua Henderson machine and arch are selected to build. 3002ba384e6SJoshua Henderson 3012ba384e6SJoshua Hendersonconfig PINCTRL_PIC32MZDA 3022ba384e6SJoshua Henderson def_bool y if PIC32MZDA 3032ba384e6SJoshua Henderson select PINCTRL_PIC32 3042ba384e6SJoshua Henderson 305add958ceSSoren Brinkmannconfig PINCTRL_ZYNQ 306add958ceSSoren Brinkmann bool "Pinctrl driver for Xilinx Zynq" 307add958ceSSoren Brinkmann depends on ARCH_ZYNQ 308add958ceSSoren Brinkmann select PINMUX 309add958ceSSoren Brinkmann select GENERIC_PINCONF 310add958ceSSoren Brinkmann help 311485dba27SMasahiro Yamada This selects the pinctrl driver for Xilinx Zynq. 312add958ceSSoren Brinkmann 313b5c23aa4SPaul Cercueilconfig PINCTRL_INGENIC 314b5c23aa4SPaul Cercueil bool "Pinctrl driver for the Ingenic JZ47xx SoCs" 315b5c23aa4SPaul Cercueil default y 316c504985eSLinus Walleij depends on OF 317b5c23aa4SPaul Cercueil depends on MACH_INGENIC || COMPILE_TEST 318b5c23aa4SPaul Cercueil select GENERIC_PINCONF 319b5c23aa4SPaul Cercueil select GENERIC_PINCTRL_GROUPS 320b5c23aa4SPaul Cercueil select GENERIC_PINMUX_FUNCTIONS 321b5c23aa4SPaul Cercueil select REGMAP_MMIO 322b5c23aa4SPaul Cercueil 3234d3d0e42SAndrew Jefferysource "drivers/pinctrl/aspeed/Kconfig" 324b17f2f9bSRay Juisource "drivers/pinctrl/bcm/Kconfig" 3253de68d33SAntoine Tenartsource "drivers/pinctrl/berlin/Kconfig" 326edad3b2aSLinus Walleijsource "drivers/pinctrl/freescale/Kconfig" 3275fae8b86SMika Westerbergsource "drivers/pinctrl/intel/Kconfig" 32806763c74SThomas Petazzonisource "drivers/pinctrl/mvebu/Kconfig" 3293a198059SLinus Walleijsource "drivers/pinctrl/nomadik/Kconfig" 3304b15ec9dSRobert Jarzmiksource "drivers/pinctrl/pxa/Kconfig" 33169b78b8dSLinus Walleijsource "drivers/pinctrl/qcom/Kconfig" 332ebe629a3SSachin Kamatsource "drivers/pinctrl/samsung/Kconfig" 3336e54d8d2SLaurent Pinchartsource "drivers/pinctrl/sh-pfc/Kconfig" 334deda8287SViresh Kumarsource "drivers/pinctrl/spear/Kconfig" 335aceb16dcSMaxime Coquelinsource "drivers/pinctrl/stm32/Kconfig" 3365f910777SMaxime Ripardsource "drivers/pinctrl/sunxi/Kconfig" 33725cbac77SMasahiro Yamadasource "drivers/pinctrl/tegra/Kconfig" 338003910ebSNishanth Menonsource "drivers/pinctrl/ti/Kconfig" 3396e908892SMasahiro Yamadasource "drivers/pinctrl/uniphier/Kconfig" 340170c6152STony Prisksource "drivers/pinctrl/vt8500/Kconfig" 341a6df410dSHongzhou Yangsource "drivers/pinctrl/mediatek/Kconfig" 342cbff0c4dSShawn Guosource "drivers/pinctrl/zte/Kconfig" 343deda8287SViresh Kumar 3443f8c50c9SJohn Crispinconfig PINCTRL_XWAY 3453f8c50c9SJohn Crispin bool 3463f8c50c9SJohn Crispin depends on SOC_TYPE_XWAY 3473f8c50c9SJohn Crispin depends on PINCTRL_LANTIQ 3483f8c50c9SJohn Crispin 3495aad0db1SChristian Ruppertconfig PINCTRL_TB10X 3505aad0db1SChristian Ruppert bool 351b99e6fb8SLinus Walleij depends on OF && ARC_PLAT_TB10X 352b99e6fb8SLinus Walleij select GPIOLIB 3535aad0db1SChristian Ruppert 35445f034efSLinus Walleijendmenu 355