1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only 22744e8afSLinus Walleij# 32744e8afSLinus Walleij# PINCTRL infrastructure and drivers 42744e8afSLinus Walleij# 52744e8afSLinus Walleij 6d219b924SPhil Reidmenuconfig PINCTRL 7d219b924SPhil Reid bool "Pin controllers" 82744e8afSLinus Walleij 9d219b924SPhil Reidif 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 34b124c8bdSAndy Shevchenkoconfig PINCTRL_AMD 3541ef3c1aSMario Limonciello bool "AMD GPIO pin control" 36b124c8bdSAndy Shevchenko depends on HAS_IOMEM 37b124c8bdSAndy Shevchenko depends on ACPI || COMPILE_TEST 38b124c8bdSAndy Shevchenko select GPIOLIB 39b124c8bdSAndy Shevchenko select GPIOLIB_IRQCHIP 40b124c8bdSAndy Shevchenko select PINMUX 41b124c8bdSAndy Shevchenko select PINCONF 42b124c8bdSAndy Shevchenko select GENERIC_PINCONF 43b124c8bdSAndy Shevchenko help 44b124c8bdSAndy Shevchenko The driver for memory mapped GPIO functionality on AMD platforms 45b124c8bdSAndy Shevchenko (x86 or arm). Most of the pins are usually muxed to some other 46b124c8bdSAndy Shevchenko functionality by firmware, so only a small amount is available 47b124c8bdSAndy Shevchenko for GPIO use. 48b124c8bdSAndy Shevchenko 49b124c8bdSAndy Shevchenko Requires ACPI/FDT device enumeration code to set up a platform 50b124c8bdSAndy Shevchenko device. 51b124c8bdSAndy Shevchenko 52*e97435abSPratap Nirujogiconfig PINCTRL_AMDISP 53*e97435abSPratap Nirujogi tristate "AMDISP GPIO pin control" 54*e97435abSPratap Nirujogi depends on HAS_IOMEM 55*e97435abSPratap Nirujogi select GPIOLIB 56*e97435abSPratap Nirujogi select PINCONF 57*e97435abSPratap Nirujogi select GENERIC_PINCONF 58*e97435abSPratap Nirujogi help 59*e97435abSPratap Nirujogi The driver for memory mapped GPIO functionality on AMD platforms 60*e97435abSPratap Nirujogi with ISP support. All the pins are output controlled only 61*e97435abSPratap Nirujogi 62*e97435abSPratap Nirujogi Requires AMDGPU to MFD add device for enumeration to set up as 63*e97435abSPratap Nirujogi platform device. 64*e97435abSPratap Nirujogi 65a0f160ffSJoey Goulyconfig PINCTRL_APPLE_GPIO 66a0f160ffSJoey Gouly tristate "Apple SoC GPIO pin controller driver" 67a0f160ffSJoey Gouly depends on ARCH_APPLE 68a0f160ffSJoey Gouly select PINMUX 69a0f160ffSJoey Gouly select GPIOLIB 70a0f160ffSJoey Gouly select GPIOLIB_IRQCHIP 71a0f160ffSJoey Gouly select GENERIC_PINCTRL_GROUPS 72a0f160ffSJoey Gouly select GENERIC_PINMUX_FUNCTIONS 73a0f160ffSJoey Gouly select OF_GPIO 74a0f160ffSJoey Gouly help 75a0f160ffSJoey Gouly This is the driver for the GPIO controller found on Apple ARM SoCs, 76a0f160ffSJoey Gouly including M1. 77a0f160ffSJoey Gouly 78a0f160ffSJoey Gouly This driver can also be built as a module. If so, the module 79a0f160ffSJoey Gouly will be called pinctrl-apple-gpio. 80a0f160ffSJoey Gouly 8100df0582SJesper Nilssonconfig PINCTRL_ARTPEC6 8200df0582SJesper Nilsson bool "Axis ARTPEC-6 pin controller driver" 8300df0582SJesper Nilsson depends on MACH_ARTPEC6 8400df0582SJesper Nilsson select PINMUX 8500df0582SJesper Nilsson select GENERIC_PINCONF 8600df0582SJesper Nilsson help 8700df0582SJesper Nilsson This is the driver for the Axis ARTPEC-6 pin controller. This driver 8800df0582SJesper Nilsson supports pin function multiplexing as well as pin bias and drive 8900df0582SJesper Nilsson strength configuration. Device tree integration instructions can be 9000df0582SJesper Nilsson found in Documentation/devicetree/bindings/pinctrl/axis,artpec6-pinctrl.txt 9100df0582SJesper Nilsson 92c8ce8782SLaxman Dewanganconfig PINCTRL_AS3722 939385f35dSPaul Gortmaker tristate "Pinctrl and GPIO driver for ams AS3722 PMIC" 94c8ce8782SLaxman Dewangan depends on MFD_AS3722 && GPIOLIB 95c8ce8782SLaxman Dewangan select PINMUX 96c8ce8782SLaxman Dewangan select GENERIC_PINCONF 97c8ce8782SLaxman Dewangan help 98c8ce8782SLaxman Dewangan AS3722 device supports the configuration of GPIO pins for different 99c8ce8782SLaxman Dewangan functionality. This driver supports the pinmux, push-pull and 100c8ce8782SLaxman Dewangan open drain configuration for the GPIO pins of AS3722 devices. It also 101c8ce8782SLaxman Dewangan supports the GPIO functionality through gpiolib. 102c8ce8782SLaxman Dewangan 1036732ae5cSJean-Christophe PLAGNIOL-VILLARDconfig PINCTRL_AT91 1046732ae5cSJean-Christophe PLAGNIOL-VILLARD bool "AT91 pinctrl driver" 1056732ae5cSJean-Christophe PLAGNIOL-VILLARD depends on OF 1066732ae5cSJean-Christophe PLAGNIOL-VILLARD depends on ARCH_AT91 1076732ae5cSJean-Christophe PLAGNIOL-VILLARD select PINMUX 1086732ae5cSJean-Christophe PLAGNIOL-VILLARD select PINCONF 10980cc3732SAlexander Stein select GPIOLIB 11080cc3732SAlexander Stein select OF_GPIO 11180cc3732SAlexander Stein select GPIOLIB_IRQCHIP 1126732ae5cSJean-Christophe PLAGNIOL-VILLARD help 1136732ae5cSJean-Christophe PLAGNIOL-VILLARD Say Y here to enable the at91 pinctrl driver 1146732ae5cSJean-Christophe PLAGNIOL-VILLARD 11577618084SLudovic Desrochesconfig PINCTRL_AT91PIO4 11677618084SLudovic Desroches bool "AT91 PIO4 pinctrl driver" 11777618084SLudovic Desroches depends on OF 1180a03658dSTiezhu Yang depends on HAS_IOMEM 119e682fcc7STiezhu Yang depends on ARCH_AT91 || COMPILE_TEST 12077618084SLudovic Desroches select PINMUX 12177618084SLudovic Desroches select GENERIC_PINCONF 12277618084SLudovic Desroches select GPIOLIB 12377618084SLudovic Desroches select GPIOLIB_IRQCHIP 12477618084SLudovic Desroches select OF_GPIO 12577618084SLudovic Desroches help 12677618084SLudovic Desroches Say Y here to enable the at91 pinctrl/gpio driver for Atmel PIO4 12777618084SLudovic Desroches controller available on sama5d2 SoC. 12877618084SLudovic Desroches 129b124c8bdSAndy Shevchenkoconfig PINCTRL_AXP209 130b124c8bdSAndy Shevchenko tristate "X-Powers AXP209 PMIC pinctrl and GPIO Support" 131b124c8bdSAndy Shevchenko depends on MFD_AXP20X 132b124c8bdSAndy Shevchenko depends on OF 13383b31c2aSPetr Mladek select PINMUX 134dbad75ddSKen Xue select GENERIC_PINCONF 135b124c8bdSAndy Shevchenko select GPIOLIB 136dbad75ddSKen Xue help 137b124c8bdSAndy Shevchenko AXP PMICs provides multiple GPIOs that can be muxed for different 138b124c8bdSAndy Shevchenko functions. This driver bundles a pinctrl driver to select the function 139b124c8bdSAndy Shevchenko muxing and a GPIO driver to handle the GPIO when the GPIO function is 140b124c8bdSAndy Shevchenko selected. 141b124c8bdSAndy Shevchenko Say Y to enable pinctrl and GPIO support for the AXP209 PMIC. 142dbad75ddSKen Xue 143576623d7SAngeloGioacchino Del Regnoconfig PINCTRL_AW9523 144d295ad7eSLinus Walleij tristate "Awinic AW9523/AW9523B I2C GPIO expander pinctrl driver" 145576623d7SAngeloGioacchino Del Regno depends on OF && I2C 146576623d7SAngeloGioacchino Del Regno select PINMUX 147576623d7SAngeloGioacchino Del Regno select PINCONF 148576623d7SAngeloGioacchino Del Regno select GENERIC_PINCONF 149576623d7SAngeloGioacchino Del Regno select GPIOLIB 150576623d7SAngeloGioacchino Del Regno select GPIOLIB_IRQCHIP 151576623d7SAngeloGioacchino Del Regno select REGMAP 152576623d7SAngeloGioacchino Del Regno select REGMAP_I2C 153576623d7SAngeloGioacchino Del Regno help 154576623d7SAngeloGioacchino Del Regno The Awinic AW9523/AW9523B is a multi-function I2C GPIO 155576623d7SAngeloGioacchino Del Regno expander with PWM functionality. This driver bundles a 156576623d7SAngeloGioacchino Del Regno pinctrl driver to select the function muxing and a GPIO 157576623d7SAngeloGioacchino Del Regno driver to handle GPIO, when the GPIO function is selected. 158576623d7SAngeloGioacchino Del Regno 159576623d7SAngeloGioacchino Del Regno Say yes to enable pinctrl and GPIO support for the AW9523(B). 160576623d7SAngeloGioacchino Del Regno 1618f3f0246SManivannan Sadhasivamconfig PINCTRL_BM1880 1628f3f0246SManivannan Sadhasivam bool "Bitmain BM1880 Pinctrl driver" 1638293b3c6SManivannan Sadhasivam depends on OF && (ARCH_BITMAIN || COMPILE_TEST) 1648293b3c6SManivannan Sadhasivam default ARCH_BITMAIN 1658f3f0246SManivannan Sadhasivam select PINMUX 1668f3f0246SManivannan Sadhasivam help 1678f3f0246SManivannan Sadhasivam Pinctrl driver for Bitmain BM1880 SoC. 1688f3f0246SManivannan Sadhasivam 169e6cbbe42SPatrick Rudolphconfig PINCTRL_CY8C95X0 170e6cbbe42SPatrick Rudolph tristate "Cypress CY8C95X0 I2C pinctrl and GPIO driver" 1718586466eSAndy Shevchenko depends on I2C 172e6cbbe42SPatrick Rudolph select GPIOLIB 173e6cbbe42SPatrick Rudolph select GPIOLIB_IRQCHIP 174e6cbbe42SPatrick Rudolph select PINMUX 175e6cbbe42SPatrick Rudolph select PINCONF 176e6cbbe42SPatrick Rudolph select GENERIC_PINCONF 177e6cbbe42SPatrick Rudolph select REGMAP_I2C 178e6cbbe42SPatrick Rudolph help 179e6cbbe42SPatrick Rudolph Support for 20/40/60 pin Cypress Cy8C95x0 pinctrl/gpio I2C expander. 180e6cbbe42SPatrick Rudolph This driver can also be built as a module. If so, the module will be 181e6cbbe42SPatrick Rudolph called pinctrl-cy8c95x0. 182e6cbbe42SPatrick Rudolph 1831ff91f0aSDavid Lechnerconfig PINCTRL_DA850_PUPD 184b124c8bdSAndy Shevchenko tristate "TI DA850/OMAP-L138/AM18XX pull-up and pull-down groups" 1851ff91f0aSDavid Lechner depends on OF && (ARCH_DAVINCI_DA850 || COMPILE_TEST) 1861ff91f0aSDavid Lechner select PINCONF 1871ff91f0aSDavid Lechner select GENERIC_PINCONF 1881ff91f0aSDavid Lechner help 1891ff91f0aSDavid Lechner Driver for TI DA850/OMAP-L138/AM18XX pinconf. Used to control 190b124c8bdSAndy Shevchenko pull-up and pull-down pin groups. 1911ff91f0aSDavid Lechner 19256cc3af4SMarco Felschconfig PINCTRL_DA9062 19356cc3af4SMarco Felsch tristate "Dialog Semiconductor DA9062 PMIC pinctrl and GPIO Support" 19456cc3af4SMarco Felsch depends on MFD_DA9062 19556cc3af4SMarco Felsch select GPIOLIB 19656cc3af4SMarco Felsch help 19756cc3af4SMarco Felsch The Dialog DA9062 PMIC provides multiple GPIOs that can be muxed for 19856cc3af4SMarco Felsch different functions. This driver bundles a pinctrl driver to select the 19956cc3af4SMarco Felsch function muxing and a GPIO driver to handle the GPIO when the GPIO 20056cc3af4SMarco Felsch function is selected. 20156cc3af4SMarco Felsch 202b124c8bdSAndy Shevchenko Say Y to enable pinctrl and GPIO support for the DA9062 PMIC. 20356cc3af4SMarco Felsch 20438b0e507SBaruch Siachconfig PINCTRL_DIGICOLOR 20538b0e507SBaruch Siach bool 206083b0230SAndy Shevchenko depends on ARCH_DIGICOLOR || COMPILE_TEST 20738b0e507SBaruch Siach select PINMUX 20838b0e507SBaruch Siach select GENERIC_PINCONF 20938b0e507SBaruch Siach 210035f9007SNikita Shubinconfig PINCTRL_EP93XX 211035f9007SNikita Shubin bool 212035f9007SNikita Shubin depends on ARCH_EP93XX || COMPILE_TEST 213035f9007SNikita Shubin select PINMUX 214035f9007SNikita Shubin select GENERIC_PINCONF 215035f9007SNikita Shubin select MFD_SYSCON 216035f9007SNikita Shubin 217b124c8bdSAndy Shevchenkoconfig PINCTRL_EQUILIBRIUM 218b124c8bdSAndy Shevchenko tristate "Generic pinctrl and GPIO driver for Intel Lightning Mountain SoC" 219b124c8bdSAndy Shevchenko depends on OF && HAS_IOMEM 220b124c8bdSAndy Shevchenko depends on X86 || COMPILE_TEST 221b124c8bdSAndy Shevchenko select PINMUX 222b124c8bdSAndy Shevchenko select PINCONF 223b124c8bdSAndy Shevchenko select GPIOLIB 224b124c8bdSAndy Shevchenko select GPIO_GENERIC 225b124c8bdSAndy Shevchenko select GPIOLIB_IRQCHIP 226b124c8bdSAndy Shevchenko select GENERIC_PINCONF 227b124c8bdSAndy Shevchenko select GENERIC_PINCTRL_GROUPS 228b124c8bdSAndy Shevchenko select GENERIC_PINMUX_FUNCTIONS 229b124c8bdSAndy Shevchenko help 230b124c8bdSAndy Shevchenko Equilibrium driver is a pinctrl and GPIO driver for Intel Lightning 231b124c8bdSAndy Shevchenko Mountain network processor SoC that supports both the GPIO and pin 232b124c8bdSAndy Shevchenko control frameworks. It provides interfaces to setup pin muxing, assign 233b124c8bdSAndy Shevchenko desired pin functions, configure GPIO attributes for LGM SoC pins. 234b124c8bdSAndy Shevchenko Pin muxing and pin config settings are retrieved from device tree. 235b124c8bdSAndy Shevchenko 23641795aa1SThéo Lebrunconfig PINCTRL_EYEQ5 23741795aa1SThéo Lebrun bool "Mobileye EyeQ5 pinctrl driver" 23841795aa1SThéo Lebrun depends on OF 23941795aa1SThéo Lebrun depends on MACH_EYEQ5 || COMPILE_TEST 24041795aa1SThéo Lebrun select PINMUX 24141795aa1SThéo Lebrun select GENERIC_PINCONF 24241795aa1SThéo Lebrun select AUXILIARY_BUS 24341795aa1SThéo Lebrun default MACH_EYEQ5 24441795aa1SThéo Lebrun help 24541795aa1SThéo Lebrun Pin controller driver for the Mobileye EyeQ5 platform. It does both 24641795aa1SThéo Lebrun pin config & pin muxing. It does not handle GPIO. 24741795aa1SThéo Lebrun 24841795aa1SThéo Lebrun Pin muxing supports two functions for each pin: first is GPIO, second 24941795aa1SThéo Lebrun is pin-dependent. Pin config is about bias & drive strength. 25041795aa1SThéo Lebrun 251b124c8bdSAndy Shevchenkoconfig PINCTRL_GEMINI 252b124c8bdSAndy Shevchenko bool 253b124c8bdSAndy Shevchenko depends on ARCH_GEMINI 254b124c8bdSAndy Shevchenko default ARCH_GEMINI 255b124c8bdSAndy Shevchenko select PINMUX 256b124c8bdSAndy Shevchenko select GENERIC_PINCONF 257b124c8bdSAndy Shevchenko select MFD_SYSCON 258b124c8bdSAndy Shevchenko 259b124c8bdSAndy Shevchenkoconfig PINCTRL_INGENIC 260b124c8bdSAndy Shevchenko bool "Pinctrl driver for the Ingenic JZ47xx SoCs" 261b124c8bdSAndy Shevchenko default MACH_INGENIC 262b124c8bdSAndy Shevchenko depends on OF 263b124c8bdSAndy Shevchenko depends on MIPS || COMPILE_TEST 264b124c8bdSAndy Shevchenko select GENERIC_PINCONF 265b124c8bdSAndy Shevchenko select GENERIC_PINCTRL_GROUPS 266b124c8bdSAndy Shevchenko select GENERIC_PINMUX_FUNCTIONS 267b124c8bdSAndy Shevchenko select GPIOLIB 268b124c8bdSAndy Shevchenko select GPIOLIB_IRQCHIP 269b124c8bdSAndy Shevchenko select REGMAP_MMIO 270b124c8bdSAndy Shevchenko 271b124c8bdSAndy Shevchenkoconfig PINCTRL_K210 272b124c8bdSAndy Shevchenko bool "Pinctrl driver for the Canaan Kendryte K210 SoC" 273c1556a9bSYangyu Chen depends on RISCV && SOC_CANAAN_K210 && OF 274b124c8bdSAndy Shevchenko select GENERIC_PINMUX_FUNCTIONS 275b124c8bdSAndy Shevchenko select GENERIC_PINCONF 276b124c8bdSAndy Shevchenko select GPIOLIB 277b124c8bdSAndy Shevchenko select OF_GPIO 278b124c8bdSAndy Shevchenko select REGMAP_MMIO 279c1556a9bSYangyu Chen default SOC_CANAAN_K210 280b124c8bdSAndy Shevchenko help 281b124c8bdSAndy Shevchenko Add support for the Canaan Kendryte K210 RISC-V SOC Field 282b124c8bdSAndy Shevchenko Programmable IO Array (FPIOA) controller. 283b124c8bdSAndy Shevchenko 284545887eaSZe Huangconfig PINCTRL_K230 285545887eaSZe Huang bool "Pinctrl driver for the Canaan Kendryte K230 SoC" 286545887eaSZe Huang depends on OF 287642490b5SGeert Uytterhoeven depends on ARCH_CANAAN || COMPILE_TEST 288545887eaSZe Huang select GENERIC_PINCTRL_GROUPS 289545887eaSZe Huang select GENERIC_PINMUX_FUNCTIONS 290545887eaSZe Huang select GENERIC_PINCONF 291545887eaSZe Huang select REGMAP_MMIO 292545887eaSZe Huang help 293545887eaSZe Huang Add support for the Canaan Kendryte K230 RISC-V SOC pin controller. 294545887eaSZe Huang 295b124c8bdSAndy Shevchenkoconfig PINCTRL_KEEMBAY 296b124c8bdSAndy Shevchenko tristate "Pinctrl driver for Intel Keem Bay SoC" 297b124c8bdSAndy Shevchenko depends on ARCH_KEEMBAY || (ARM64 && COMPILE_TEST) 298b124c8bdSAndy Shevchenko depends on HAS_IOMEM 299b124c8bdSAndy Shevchenko select PINMUX 300b124c8bdSAndy Shevchenko select PINCONF 301b124c8bdSAndy Shevchenko select GENERIC_PINCONF 302b124c8bdSAndy Shevchenko select GENERIC_PINCTRL_GROUPS 303b124c8bdSAndy Shevchenko select GENERIC_PINMUX_FUNCTIONS 304b124c8bdSAndy Shevchenko select GPIOLIB 305b124c8bdSAndy Shevchenko select GPIOLIB_IRQCHIP 306b124c8bdSAndy Shevchenko select GPIO_GENERIC 307b124c8bdSAndy Shevchenko help 308b124c8bdSAndy Shevchenko This selects pin control driver for the Intel Keem Bay SoC. 309b124c8bdSAndy Shevchenko It provides pin config functions such as pull-up, pull-down, 310b124c8bdSAndy Shevchenko interrupt, drive strength, sec lock, Schmitt trigger, slew 311b124c8bdSAndy Shevchenko rate control and direction control. This module will be 312b124c8bdSAndy Shevchenko called as pinctrl-keembay. 313b124c8bdSAndy Shevchenko 3143f8c50c9SJohn Crispinconfig PINCTRL_LANTIQ 3153f8c50c9SJohn Crispin bool 3163f8c50c9SJohn Crispin depends on LANTIQ 3173f8c50c9SJohn Crispin select PINMUX 3183f8c50c9SJohn Crispin select PINCONF 3193f8c50c9SJohn Crispin 320b124c8bdSAndy Shevchenkoconfig PINCTRL_FALCON 321b124c8bdSAndy Shevchenko bool 322b124c8bdSAndy Shevchenko depends on SOC_FALCON 323b124c8bdSAndy Shevchenko depends on PINCTRL_LANTIQ 324b124c8bdSAndy Shevchenko 325f73f88acSzhanghongchenconfig PINCTRL_LOONGSON2 326f73f88acSzhanghongchen tristate "Pinctrl driver for the Loongson-2 SoC" 327c0f358fdSRen Zhijie depends on OF && (LOONGARCH || COMPILE_TEST) 328f73f88acSzhanghongchen select PINMUX 329f73f88acSzhanghongchen select GENERIC_PINCONF 330f73f88acSzhanghongchen help 331f73f88acSzhanghongchen This selects pin control driver for the Loongson-2 SoC. It 332f73f88acSzhanghongchen provides pin config functions multiplexing. GPIO pin pull-up, 333f73f88acSzhanghongchen pull-down functions are not supported. Say yes to enable 334f73f88acSzhanghongchen pinctrl for Loongson-2 SoC. 335f73f88acSzhanghongchen 336b124c8bdSAndy Shevchenkoconfig PINCTRL_XWAY 337b124c8bdSAndy Shevchenko bool 338b124c8bdSAndy Shevchenko depends on SOC_TYPE_XWAY 339b124c8bdSAndy Shevchenko depends on PINCTRL_LANTIQ 340b124c8bdSAndy Shevchenko 3412f77ac93SJoachim Eastwoodconfig PINCTRL_LPC18XX 3422f77ac93SJoachim Eastwood bool "NXP LPC18XX/43XX SCU pinctrl driver" 3432f77ac93SJoachim Eastwood depends on OF && (ARCH_LPC18XX || COMPILE_TEST) 3442f77ac93SJoachim Eastwood default ARCH_LPC18XX 3452f77ac93SJoachim Eastwood select PINMUX 3462f77ac93SJoachim Eastwood select GENERIC_PINCONF 3472f77ac93SJoachim Eastwood help 3482f77ac93SJoachim Eastwood Pinctrl driver for NXP LPC18xx/43xx System Control Unit (SCU). 3492f77ac93SJoachim Eastwood 350b124c8bdSAndy Shevchenkoconfig PINCTRL_MAX77620 351b124c8bdSAndy Shevchenko tristate "MAX77620/MAX20024 Pincontrol support" 352b124c8bdSAndy Shevchenko depends on MFD_MAX77620 && OF 35306351d13SLinus Walleij select PINMUX 3541c5b7f3cSLinus Walleij select GENERIC_PINCONF 355b124c8bdSAndy Shevchenko help 356b124c8bdSAndy Shevchenko Say Y here to enable Pin control support for Maxim MAX77620 PMIC. 357b124c8bdSAndy Shevchenko This PMIC has 8 GPIO pins that work as GPIO as well as special 358b124c8bdSAndy Shevchenko function in alternate mode. This driver also configure push-pull, 359b124c8bdSAndy Shevchenko open drain, FPS slots etc. 36006351d13SLinus Walleij 3610f04a817SAndy Shevchenkoconfig PINCTRL_MCP23S08_I2C 3620f04a817SAndy Shevchenko tristate 3630f04a817SAndy Shevchenko select REGMAP_I2C 3640f04a817SAndy Shevchenko 3650f04a817SAndy Shevchenkoconfig PINCTRL_MCP23S08_SPI 3660f04a817SAndy Shevchenko tristate 3670f04a817SAndy Shevchenko select REGMAP_SPI 3680f04a817SAndy Shevchenko 36964ac43e6SSebastian Reichelconfig PINCTRL_MCP23S08 37064ac43e6SSebastian Reichel tristate "Microchip MCP23xxx I/O expander" 37164ac43e6SSebastian Reichel depends on SPI_MASTER || I2C 372e2a021d4SLinus Walleij select GPIOLIB 37364ac43e6SSebastian Reichel select GPIOLIB_IRQCHIP 37482039d24SSebastian Reichel select GENERIC_PINCONF 3750f04a817SAndy Shevchenko select PINCTRL_MCP23S08_I2C if I2C 3760f04a817SAndy Shevchenko select PINCTRL_MCP23S08_SPI if SPI_MASTER 37764ac43e6SSebastian Reichel help 3786ff45566SJan Kundrát SPI/I2C driver for Microchip MCP23S08 / MCP23S17 / MCP23S18 / 3796ff45566SJan Kundrát MCP23008 / MCP23017 / MCP23018 I/O expanders. 3806ff45566SJan Kundrát This provides a GPIO interface supporting inputs and outputs and a 3816ff45566SJan Kundrát corresponding interrupt-controller. 38264ac43e6SSebastian Reichel 383b124c8bdSAndy Shevchenkoconfig PINCTRL_MICROCHIP_SGPIO 3842f65923cSColin Foster tristate "Pinctrl driver for Microsemi/Microchip Serial GPIO" 385b124c8bdSAndy Shevchenko depends on OF 386b124c8bdSAndy Shevchenko depends on HAS_IOMEM 387b124c8bdSAndy Shevchenko select GPIOLIB 388b124c8bdSAndy Shevchenko select GPIOLIB_IRQCHIP 389b124c8bdSAndy Shevchenko select GENERIC_PINCONF 390b124c8bdSAndy Shevchenko select GENERIC_PINCTRL_GROUPS 391b124c8bdSAndy Shevchenko select GENERIC_PINMUX_FUNCTIONS 392b124c8bdSAndy Shevchenko select OF_GPIO 393b124c8bdSAndy Shevchenko help 394b124c8bdSAndy Shevchenko Support for the serial GPIO interface used on Microsemi and 395b124c8bdSAndy Shevchenko Microchip SoCs. By using a serial interface, the SIO 396b124c8bdSAndy Shevchenko controller significantly extends the number of available 397b124c8bdSAndy Shevchenko GPIOs with a minimum number of additional pins on the 398b124c8bdSAndy Shevchenko device. The primary purpose of the SIO controller is to 399b124c8bdSAndy Shevchenko connect control signals from SFP modules and to act as an 400b124c8bdSAndy Shevchenko LED controller. 401b124c8bdSAndy Shevchenko 4022f65923cSColin Foster If compiled as a module, the module name will be 4032f65923cSColin Foster pinctrl-microchip-sgpio. 4042f65923cSColin Foster 405b124c8bdSAndy Shevchenkoconfig PINCTRL_OCELOT 4064425205eSClément Léger tristate "Pinctrl driver for the Microsemi Ocelot and Jaguar2 SoCs" 407b124c8bdSAndy Shevchenko depends on OF 408b124c8bdSAndy Shevchenko depends on HAS_IOMEM 409b124c8bdSAndy Shevchenko select GPIOLIB 410b124c8bdSAndy Shevchenko select GPIOLIB_IRQCHIP 411b124c8bdSAndy Shevchenko select GENERIC_PINCONF 412b124c8bdSAndy Shevchenko select GENERIC_PINCTRL_GROUPS 413b124c8bdSAndy Shevchenko select GENERIC_PINMUX_FUNCTIONS 414b124c8bdSAndy Shevchenko select OF_GPIO 415b124c8bdSAndy Shevchenko select REGMAP_MMIO 4163f668365SColin Foster help 4173f668365SColin Foster Support for the internal GPIO interfaces on Microsemi Ocelot and 4183f668365SColin Foster Jaguar2 SoCs. 4193f668365SColin Foster 4203f668365SColin Foster If conpiled as a module, the module name will be pinctrl-ocelot. 421b124c8bdSAndy Shevchenko 4220a8d3e24SLaxman Dewanganconfig PINCTRL_PALMAS 423767b8ce3SPaul Gortmaker tristate "Pinctrl driver for the PALMAS Series MFD devices" 4240a8d3e24SLaxman Dewangan depends on OF && MFD_PALMAS 42563ca8db7SAxel Lin select PINMUX 4260a8d3e24SLaxman Dewangan select GENERIC_PINCONF 4270a8d3e24SLaxman Dewangan help 4280a8d3e24SLaxman Dewangan Palmas device supports the configuration of pins for different 4290a8d3e24SLaxman Dewangan functionality. This driver supports the pinmux, push-pull and 4300a8d3e24SLaxman Dewangan open drain configuration for the Palmas series devices like 4310a8d3e24SLaxman Dewangan TPS65913, TPS80036 etc. 4320a8d3e24SLaxman Dewangan 43337c646dcSHerve Codinaconfig PINCTRL_PEF2256 43437c646dcSHerve Codina tristate "Lantiq PEF2256 (FALC56) pin controller driver" 43537c646dcSHerve Codina depends on OF && FRAMER_PEF2256 43637c646dcSHerve Codina select PINMUX 43737c646dcSHerve Codina select PINCONF 43837c646dcSHerve Codina select GENERIC_PINCONF 43937c646dcSHerve Codina help 44037c646dcSHerve Codina This option enables the pin controller support for the Lantiq PEF2256 44137c646dcSHerve Codina framer, also known as FALC56. 44237c646dcSHerve Codina 44337c646dcSHerve Codina If unsure, say N. 44437c646dcSHerve Codina 44537c646dcSHerve Codina To compile this driver as a module, choose M here: the 44637c646dcSHerve Codina module will be called pinctrl-pef2256. 44737c646dcSHerve Codina 4482ba384e6SJoshua Hendersonconfig PINCTRL_PIC32 4492ba384e6SJoshua Henderson bool "Microchip PIC32 pin controller driver" 4502ba384e6SJoshua Henderson depends on OF 4512ba384e6SJoshua Henderson depends on MACH_PIC32 4522ba384e6SJoshua Henderson select PINMUX 4532ba384e6SJoshua Henderson select GENERIC_PINCONF 4542ba384e6SJoshua Henderson select GPIOLIB_IRQCHIP 4552ba384e6SJoshua Henderson select OF_GPIO 4562ba384e6SJoshua Henderson help 4572ba384e6SJoshua Henderson This is the pin controller and gpio driver for Microchip PIC32 4582ba384e6SJoshua Henderson microcontrollers. This option is selected automatically when specific 4592ba384e6SJoshua Henderson machine and arch are selected to build. 4602ba384e6SJoshua Henderson 4612ba384e6SJoshua Hendersonconfig PINCTRL_PIC32MZDA 4622ba384e6SJoshua Henderson def_bool y if PIC32MZDA 4632ba384e6SJoshua Henderson select PINCTRL_PIC32 4642ba384e6SJoshua Henderson 465b124c8bdSAndy Shevchenkoconfig PINCTRL_PISTACHIO 466b124c8bdSAndy Shevchenko bool "IMG Pistachio SoC pinctrl driver" 467b124c8bdSAndy Shevchenko depends on OF && (MIPS || COMPILE_TEST) 468b124c8bdSAndy Shevchenko depends on GPIOLIB 469b124c8bdSAndy Shevchenko select PINMUX 470b124c8bdSAndy Shevchenko select GENERIC_PINCONF 471b124c8bdSAndy Shevchenko select GPIOLIB_IRQCHIP 472b124c8bdSAndy Shevchenko select OF_GPIO 473b124c8bdSAndy Shevchenko help 474b124c8bdSAndy Shevchenko This support pinctrl and GPIO driver for IMG Pistachio SoC. 475b124c8bdSAndy Shevchenko 476b124c8bdSAndy Shevchenkoconfig PINCTRL_RK805 477b124c8bdSAndy Shevchenko tristate "Pinctrl and GPIO driver for RK805 PMIC" 478c20e8c5bSSebastian Reichel depends on MFD_RK8XX 479b124c8bdSAndy Shevchenko select GPIOLIB 480b124c8bdSAndy Shevchenko select PINMUX 481b124c8bdSAndy Shevchenko select GENERIC_PINCONF 482b124c8bdSAndy Shevchenko help 483b124c8bdSAndy Shevchenko This selects the pinctrl driver for RK805. 484b124c8bdSAndy Shevchenko 485b58f0273SJames Hoganconfig PINCTRL_ROCKCHIP 486b58f0273SJames Hogan tristate "Rockchip gpio and pinctrl driver" 487b58f0273SJames Hogan depends on ARCH_ROCKCHIP || COMPILE_TEST 488b58f0273SJames Hogan depends on OF 489b58f0273SJames Hogan select GPIOLIB 4903bece55aSLinus Walleij select PINMUX 4913bece55aSLinus Walleij select GENERIC_PINCONF 49298da3529SLinus Walleij select GENERIC_IRQ_CHIP 49398da3529SLinus Walleij select MFD_SYSCON 494dc0b1aa3SLinus Walleij select OF_GPIO 49545f034efSLinus Walleij default ARCH_ROCKCHIP 496ca402d37SLinus Walleij help 497b124c8bdSAndy Shevchenko This support pinctrl and GPIO driver for Rockchip SoCs. 498f0b9a7e5SThomas Abraham 499eb524cb6SPeng Fanconfig PINCTRL_SCMI 500eb524cb6SPeng Fan tristate "Pinctrl driver using SCMI protocol interface" 501eb524cb6SPeng Fan depends on ARM_SCMI_PROTOCOL || COMPILE_TEST 502eb524cb6SPeng Fan select PINMUX 503eb524cb6SPeng Fan select GENERIC_PINCONF 504eb524cb6SPeng Fan help 505eb524cb6SPeng Fan This driver provides support for pinctrl which is controlled 506eb524cb6SPeng Fan by firmware that implements the SCMI interface. 507eb524cb6SPeng Fan It uses SCMI Message Protocol to interact with the 508eb524cb6SPeng Fan firmware providing all the pinctrl controls. 509eb524cb6SPeng Fan 510af99a750SHeiko Stuebnerconfig PINCTRL_SINGLE 511af99a750SHeiko Stuebner tristate "One-register-per-pin type device tree based pinctrl driver" 512af99a750SHeiko Stuebner depends on OF 513af99a750SHeiko Stuebner depends on HAS_IOMEM 51461dd7261STomasz Figa select GENERIC_PINCTRL_GROUPS 51561dd7261STomasz Figa select GENERIC_PINMUX_FUNCTIONS 51661dd7261STomasz Figa select GENERIC_PINCONF 51761dd7261STomasz Figa help 51861dd7261STomasz Figa This selects the device tree based generic pinctrl driver. 51906763c74SThomas Petazzoni 520ca402d37SLinus Walleijconfig PINCTRL_ST 521ca402d37SLinus Walleij bool 522ca402d37SLinus Walleij depends on OF 52330574f0dSThomas Abraham select PINMUX 524cbc351abSArnd Bergmann select PINCONF 525924da314SAxel Lin select GPIOLIB_IRQCHIP 52630574f0dSThomas Abraham 52730574f0dSThomas Abrahamconfig PINCTRL_STMFX 52830574f0dSThomas Abraham tristate "STMicroelectronics STMFX GPIO expander pinctrl driver" 52943b169dbSThomas Abraham depends on I2C 53043b169dbSThomas Abraham depends on OF_GPIO 531924da314SAxel Lin select GENERIC_PINCONF 53243b169dbSThomas Abraham select GPIOLIB_IRQCHIP 53343b169dbSThomas Abraham select MFD_STMFX 5347e8d9415SSebastian Hesselbarth help 5357e8d9415SSebastian Hesselbarth Driver for STMicroelectronics Multi-Function eXpander (STMFX) 5367e8d9415SSebastian Hesselbarth GPIO expander. 5377e8d9415SSebastian Hesselbarth This provides a GPIO interface supporting inputs and outputs, 5387e8d9415SSebastian Hesselbarth and configuring push-pull, open-drain, and can also be used as 5397e8d9415SSebastian Hesselbarth interrupt-controller. 540c9f95cedSSebastian Hesselbarth 541b124c8bdSAndy Shevchenkoconfig PINCTRL_SX150X 542b124c8bdSAndy Shevchenko bool "Semtech SX150x I2C GPIO expander pinctrl driver" 543b124c8bdSAndy Shevchenko depends on I2C=y 544deda8287SViresh Kumar select PINMUX 545b124c8bdSAndy Shevchenko select PINCONF 5462744e8afSLinus Walleij select GENERIC_PINCONF 547b124c8bdSAndy Shevchenko select GPIOLIB 548485dba27SMasahiro Yamada select GPIOLIB_IRQCHIP 549b124c8bdSAndy Shevchenko select REGMAP 550b17f2f9bSRay Jui help 551b124c8bdSAndy Shevchenko Say Y here to provide support for Semtech SX150x-series I2C 552b124c8bdSAndy Shevchenko GPIO expanders as pinctrl module. 553b124c8bdSAndy Shevchenko Compatible models include: 554b124c8bdSAndy Shevchenko - 8 bits: sx1508q, sx1502q 555b124c8bdSAndy Shevchenko - 16 bits: sx1509q, sx1506q 5562744e8afSLinus Walleij 557b124c8bdSAndy Shevchenkoconfig PINCTRL_TB10X 558b124c8bdSAndy Shevchenko bool 559b124c8bdSAndy Shevchenko depends on OF && ARC_PLAT_TB10X 560b124c8bdSAndy Shevchenko select GPIOLIB 561b124c8bdSAndy Shevchenko 562901b277eSEsteban Blancconfig PINCTRL_TPS6594 563901b277eSEsteban Blanc tristate "Pinctrl and GPIO driver for TI TPS6594 PMIC" 564901b277eSEsteban Blanc depends on OF && MFD_TPS6594 565901b277eSEsteban Blanc default MFD_TPS6594 566901b277eSEsteban Blanc select PINMUX 567901b277eSEsteban Blanc select GPIOLIB 568901b277eSEsteban Blanc select REGMAP 569901b277eSEsteban Blanc select GPIO_REGMAP 570901b277eSEsteban Blanc select GENERIC_PINCONF 571901b277eSEsteban Blanc help 572901b277eSEsteban Blanc Say Y to select the pinmuxing and GPIOs driver for the TPS6594 573901b277eSEsteban Blanc PMICs chip family. 574901b277eSEsteban Blanc 575901b277eSEsteban Blanc This driver can also be built as a module 576901b277eSEsteban Blanc called tps6594-pinctrl. 577901b277eSEsteban Blanc 578bed5cd6fSEmil Renner Berthingconfig PINCTRL_TH1520 579bed5cd6fSEmil Renner Berthing tristate "Pinctrl driver for the T-Head TH1520 SoC" 580bed5cd6fSEmil Renner Berthing depends on ARCH_THEAD || COMPILE_TEST 58160ba5da2SArnd Bergmann depends on OF 582bed5cd6fSEmil Renner Berthing select GENERIC_PINMUX_FUNCTIONS 583bed5cd6fSEmil Renner Berthing select GENERIC_PINCONF 584bed5cd6fSEmil Renner Berthing select PINMUX 585bed5cd6fSEmil Renner Berthing help 586bed5cd6fSEmil Renner Berthing This is the driver for the pin controller blocks on the 587bed5cd6fSEmil Renner Berthing T-Head TH1520 SoC. 588bed5cd6fSEmil Renner Berthing 589bed5cd6fSEmil Renner Berthing This driver is needed for RISC-V development boards like 590bed5cd6fSEmil Renner Berthing the BeagleV Ahead and the LicheePi 4A. 591bed5cd6fSEmil Renner Berthing 5922744e8afSLinus Walleijconfig PINCTRL_ZYNQ 5932744e8afSLinus Walleij bool "Pinctrl driver for Xilinx Zynq" 5942744e8afSLinus Walleij depends on ARCH_ZYNQ 5952744e8afSLinus Walleij select PINMUX 5962744e8afSLinus Walleij select GENERIC_PINCONF 5972744e8afSLinus Walleij help 5982744e8afSLinus Walleij This selects the pinctrl driver for Xilinx Zynq. 5992744e8afSLinus Walleij 6008b242ca7SSai Krishna Potthuriconfig PINCTRL_ZYNQMP 6018b242ca7SSai Krishna Potthuri tristate "Pinctrl driver for Xilinx ZynqMP" 6028b242ca7SSai Krishna Potthuri depends on ZYNQMP_FIRMWARE 6038b242ca7SSai Krishna Potthuri select PINMUX 6048b242ca7SSai Krishna Potthuri select GENERIC_PINCONF 6058b242ca7SSai Krishna Potthuri default ZYNQMP_FIRMWARE 6068b242ca7SSai Krishna Potthuri help 6078b242ca7SSai Krishna Potthuri This selects the pinctrl driver for Xilinx ZynqMP platform. 6088b242ca7SSai Krishna Potthuri This driver will query the pin information from the firmware 6098b242ca7SSai Krishna Potthuri and allow configuring the pins. 6108b242ca7SSai Krishna Potthuri Configuration can include the mux function to select on those 6118b242ca7SSai Krishna Potthuri pin(s)/group(s), and various pin configuration parameters 6128b242ca7SSai Krishna Potthuri such as pull-up, slew rate, etc. 613fa99e701SSai Krishna Potthuri This driver can also be built as a module. If so, the module 614fa99e701SSai Krishna Potthuri will be called pinctrl-zynqmp. 6158b242ca7SSai Krishna Potthuri 616d11f9328SAsmaa Mnebhiconfig PINCTRL_MLXBF3 617d11f9328SAsmaa Mnebhi tristate "NVIDIA BlueField-3 SoC Pinctrl driver" 618d11f9328SAsmaa Mnebhi depends on (MELLANOX_PLATFORM && ARM64) || COMPILE_TEST 619d11f9328SAsmaa Mnebhi select PINMUX 620d11f9328SAsmaa Mnebhi select GPIOLIB 621d11f9328SAsmaa Mnebhi select GPIOLIB_IRQCHIP 622d11f9328SAsmaa Mnebhi help 623d11f9328SAsmaa Mnebhi Say Y to select the pinctrl driver for BlueField-3 SoCs. 624d11f9328SAsmaa Mnebhi This pin controller allows selecting the mux function for 625d11f9328SAsmaa Mnebhi each pin. This driver can also be built as a module called 626d11f9328SAsmaa Mnebhi pinctrl-mlxbf3. 627d11f9328SAsmaa Mnebhi 6282242ddfbSManivannan Sadhasivamsource "drivers/pinctrl/actions/Kconfig" 6294d3d0e42SAndrew Jefferysource "drivers/pinctrl/aspeed/Kconfig" 6302744e8afSLinus Walleijsource "drivers/pinctrl/bcm/Kconfig" 6312744e8afSLinus Walleijsource "drivers/pinctrl/berlin/Kconfig" 632b124c8bdSAndy Shevchenkosource "drivers/pinctrl/cirrus/Kconfig" 6332744e8afSLinus Walleijsource "drivers/pinctrl/freescale/Kconfig" 6342744e8afSLinus Walleijsource "drivers/pinctrl/intel/Kconfig" 635b124c8bdSAndy Shevchenkosource "drivers/pinctrl/mediatek/Kconfig" 636b124c8bdSAndy Shevchenkosource "drivers/pinctrl/meson/Kconfig" 6372744e8afSLinus Walleijsource "drivers/pinctrl/mvebu/Kconfig" 6383a198059SLinus Walleijsource "drivers/pinctrl/nomadik/Kconfig" 6393b588e43STomer Maimonsource "drivers/pinctrl/nuvoton/Kconfig" 640fd84aaa8SChester Linsource "drivers/pinctrl/nxp/Kconfig" 6414b15ec9dSRobert Jarzmiksource "drivers/pinctrl/pxa/Kconfig" 64269b78b8dSLinus Walleijsource "drivers/pinctrl/qcom/Kconfig" 643e99ce780STzuyi Changsource "drivers/pinctrl/realtek/Kconfig" 644077365a9SGeert Uytterhoevensource "drivers/pinctrl/renesas/Kconfig" 645ebe629a3SSachin Kamatsource "drivers/pinctrl/samsung/Kconfig" 646a29d8e93SInochi Amaotosource "drivers/pinctrl/sophgo/Kconfig" 647a83c29e1SYixun Lansource "drivers/pinctrl/spacemit/Kconfig" 6482744e8afSLinus Walleijsource "drivers/pinctrl/spear/Kconfig" 64941d32cfcSBaolin Wangsource "drivers/pinctrl/sprd/Kconfig" 650ba7fdf88SJianlong Huangsource "drivers/pinctrl/starfive/Kconfig" 651aceb16dcSMaxime Coquelinsource "drivers/pinctrl/stm32/Kconfig" 652aa74c44bSWells Lusource "drivers/pinctrl/sunplus/Kconfig" 6535f910777SMaxime Ripardsource "drivers/pinctrl/sunxi/Kconfig" 65425cbac77SMasahiro Yamadasource "drivers/pinctrl/tegra/Kconfig" 655003910ebSNishanth Menonsource "drivers/pinctrl/ti/Kconfig" 6566e908892SMasahiro Yamadasource "drivers/pinctrl/uniphier/Kconfig" 657a68a7844SNobuhiro Iwamatsusource "drivers/pinctrl/visconti/Kconfig" 658b124c8bdSAndy Shevchenkosource "drivers/pinctrl/vt8500/Kconfig" 6591948d5c5SRahul Tanwar 660d219b924SPhil Reidendif 661